Sponsored Content
Top Forums Shell Programming and Scripting Custom directory path variable Post 302461071 by rwuerth on Friday 8th of October 2010 11:17:52 AM
Old 10-08-2010
The only option I see is testing the user input to the shell to see what you want to do from there. A case/esac structure might work well in this instance. Perhaps coupled with "dirname"

Something like


Code:
 
USERIN=$1 

case "$(dirname $USERIN)" in
  /) echo fully qualified;;
  .) echo relative to current directory;;
  ..) echo relative to parent directory;;
  ../..) echo relative to parent/parent directory;;
...  # < --- replace this
esac

You need to replace the ellipses with one test for each level it can go beyond the script's parent/parent directory back to root.

Obviously you replace the echo statements with code that actually works for you.

dirname seems to know that if you give the name "somewhere" or the name "./somewhere" it will translate that to a single dot "." so that reduces the amount of
tests by one.

And of course after I post that, I realize there's still a host of things that wont work correctly, depending upon input like (../somewhere/else) but maybe this will get you started somewhat? :-)

Last edited by rwuerth; 10-08-2010 at 12:23 PM..
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Sed variable substitution when variable constructed of a directory path

Hello, i have another sed question.. I'm trying to do variable substition with sed and i'm running into a problem. my var1 is a string constructed like this: filename1 filerev1 filepath1 my var2 is another string constructed like this: filename2 filerev2 filepath2 when i do... (2 Replies)
Discussion started by: alrinno
2 Replies

2. Shell Programming and Scripting

Variable directory name in path

I need to write a login script for multiple computers, however, one of the directories in question will have a different name from computer to computer. ~/Library/Application\ Support/Firefox/Profiles/<unique filename>.default/myfile For the directory named <unique filename>.default , I... (2 Replies)
Discussion started by: glev2005
2 Replies

3. Shell Programming and Scripting

zlib.h in custom path

I am trying to configure gpac. I get the error as follows. # ./configure error: zlib not found on system or in local libs I have installed zlib on custom path /usr/local/myapps. I know the above error occurs when devel package or .h file is not present. Its present on the server. # ll... (7 Replies)
Discussion started by: anilcliff
7 Replies

4. UNIX for Dummies Questions & Answers

Find command fails when a space is in the directory path variable

I have a script like this running under OS X 10.8. The problem arises when the find command encounters a space in the path name. I need the "dir" variable as I'll be extending the script to more general use. #!/bin/bash CFS=$IFS IFS=$(echo) set dir = "/Users/apta/Library/Mail\... (3 Replies)
Discussion started by: apta
3 Replies

5. UNIX for Dummies Questions & Answers

Make install in custom path

I would like to install a binary from source on a custom path, say /usr/local/myapps. There is no --prefix option in ./configure How can I "make install" at custom path. I tried this. No --prefix root@server # ./configure --help | grep prefix root@server # Make install ... (3 Replies)
Discussion started by: anil510
3 Replies

6. UNIX for Dummies Questions & Answers

How can i assign directory path to a variable in perl?

Hai how can I assign directory path to a variable in perl Thanks&Regards kiran (2 Replies)
Discussion started by: kiran425
2 Replies

7. UNIX for Advanced & Expert Users

How can i assign directory path to a variable in perl?

Hai how can I assign directory path to a variable in perl Thanks&Regards kiran (3 Replies)
Discussion started by: kiran425
3 Replies

8. Shell Programming and Scripting

Variable of Path directory is not parsing in awk

Hi All, i had to split one files into 10 equally. For that i have coded below awk. OUTPUT_FILE=/home/sit/path/Files/file_EXPORT.lst DIR_NM=`dirname ${OUTPUT_FILE}` awk -v CURR_DATE="$(date +'%d-%m-%Y-%H-%M')" -v pth=$DIR_NM '{print >> pth/"tgt_file_name"CURR_DATE"_"NR%10 }' ${OUTPUT_FILE} ... (7 Replies)
Discussion started by: looney
7 Replies

9. UNIX for Beginners Questions & Answers

Convert Relative path to Absolute path, without changing directory to the file location.

Hello, I am creating a file with all the source folders included in my git branch, when i grep for the used source, i found source included as relative path instead of absolute path, how can convert relative path to absolute path without changing directory to that folder and using readlink -f ? ... (4 Replies)
Discussion started by: Sekhar419
4 Replies

10. UNIX for Beginners Questions & Answers

What is the difference ../directory path and ./directory path in ksh?

What is the difference ../directory path and ./directory path in ksh? (1 Reply)
Discussion started by: TestKing
1 Replies
DIRNAME(3)						   BSD Library Functions Manual 						DIRNAME(3)

NAME
dirname -- extract the directory part of a pathname SYNOPSIS
#include <libgen.h> char * dirname(char *path); DESCRIPTION
The dirname() function is the converse of basename(3); it returns a pointer to the parent directory of the pathname pointed to by path. Any trailing '/' characters are not counted as part of the directory name. If path is a null pointer, the empty string, or contains no '/' char- acters, dirname() returns a pointer to the string ".", signifying the current directory. IMPLEMENTATION NOTES
The dirname() function returns a pointer to internal storage space allocated on the first call that will be overwritten by subsequent calls. Other vendor implementations of dirname() may modify the contents of the string passed to dirname(); if portability is desired, this should be taken into account when writing code which calls this function. LEGACY SYNOPSIS
#include <libgen.h> char * dirname(const char *path); In legacy mode, path will not be changed. RETURN VALUES
On successful completion, dirname() returns a pointer to the parent directory of path. If dirname() fails, a null pointer is returned and the global variable errno is set to indicate the error. ERRORS
The following error codes may be set in errno: [ENAMETOOLONG] The path component to be returned was larger than MAXPATHLEN. SEE ALSO
basename(1), dirname(1), basename(3), compat(5) STANDARDS
The dirname() function conforms to X/Open Portability Guide Issue 4, Version 2 (``XPG4.2''). HISTORY
The dirname() function first appeared in OpenBSD 2.2 and FreeBSD 4.2. AUTHORS
Todd C. Miller BSD
October 12, 2006 BSD
All times are GMT -4. The time now is 07:11 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy