11-14-2012
Quote:
Originally Posted by
legato22
Thanks! Finally got the right search term. After a little more searching, fyi for posterity, i set the variables with:
DIR=`dirname $1`
INPUT=`basename $1`
I was having problems before too because I didn't realize that there could be no spaces when setting variables!
Works now, thanks again.
EDIT: Not working... sort of pissing me off. I did this the first time, and it returned the dirname and basename of the file the script was running on with $1, but now it won't anymore. dirname is empty and it just returns "usage:dirname path"
EDIT: And somehow it randomly works again.
As a wild guess, I'd say that the times it didn't work, you invoked your shell script with no operands.
In other words,
yourscript filename should work, but
yourscript will fail with errors similar to what you described above.
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
I need to refer a remote(present on another unix server) directory from my unix machine as a local file.
e.g.
I have one directory D1 on 10.10.10.10 and i need to access files in this directory just like they are present on my unix machine 20.20.20.20.
Is there any way out... i read a bit... (1 Reply)
Discussion started by: blackeyed
1 Replies
2. Shell Programming and Scripting
i have got many files like this in my folder temp(say)
imp_02042008.txt for date 02-04-2008
imp_03092009.txt for date 03-09-2009
imp_25112009.txt for date 25-11-2009
...................
........
in some folder.
and one of my shell code uses one of the above files based on date.... (0 Replies)
Discussion started by: Maruti
0 Replies
3. Shell Programming and Scripting
i have got many files like this in my folder temp(say)
imp_02042008.txt for date 02-04-2008
imp_03092009.txt for date 03-09-2009
imp_25112009.txt for date 25-11-2009
...................
........
in some folder.
and one of my shell code uses one of the above files based on date.... (9 Replies)
Discussion started by: Maruti
9 Replies
4. Shell Programming and Scripting
Ok, I have a script with a commandline option that allows the user to add a custom function to the script file. I have tried everything in my limited knowledge of sed to get this to work and keep coming up short. I need sed to search for a line starting with a pattern, I've got that part so far,... (0 Replies)
Discussion started by: DC Slick
0 Replies
5. UNIX for Dummies Questions & Answers
This is my input file like this
03,105581,,015,+00000416418,,,901,+00000000148,,,922,+00000000354,,/
49,+00000000000416920,00002/
03,5313236,,015,+00231036992,,,045,+00231036992,,,901,+00000048428,,/
88,100,+0000000000000,0000000,,400,+0000000000000,0000000,/
88,902,+0000000079077,,/... (0 Replies)
Discussion started by: sgoud
0 Replies
6. Shell Programming and Scripting
hello. this is the code
#!/bin/sh
total1024=0
total2048=0
total8192=0
if ; then
if ; then
while read variable
do
if ; then
total1024=$(( $total1024 + 1 ))
fi
if ; then
total2048=$((... (4 Replies)
Discussion started by: Telis
4 Replies
7. UNIX for Dummies Questions & Answers
Hi Guys,
How to retrieve/get *.sql file names which we refer in all *.sh files.
Can any one help me on this.
Thanks,
Kolipaka (3 Replies)
Discussion started by: lakshmanrk811
3 Replies
8. Shell Programming and Scripting
Below is my Scenario.
I wrote one script to search the specific log files for Yesterdays date and gives the result.
I need a script like
1. Once I run the Script, The script should ask me which date I want to search.
2. Once i enter the date, That script should search the log files for... (3 Replies)
Discussion started by: Padmanabhan
3 Replies
9. Shell Programming and Scripting
Hi all,
I have a script which should take more than 9 command line inputs while running. Likescript.sh a s d f g h j j k l o p i u y t r e w
Now in the script if I have to access one of the input which is at position after 9, in this case say 'p' then how can I do that?
echo $12 will not work... (15 Replies)
Discussion started by: pat_pramod
15 Replies
10. Shell Programming and Scripting
Hi All,
I'm having a python script: test.py in /path/to/script/test.py
I'm using a properties file: test_properties.py (it is having values as dictionary{}) which is in same DIR as the script.
Sample Properties file:
params = {
'target_db' : 'a1_db'
'src_db' : ... (15 Replies)
Discussion started by: saps19
15 Replies
LEARN ABOUT REDHAT
basename
DIRNAME(3) Linux Programmer's Manual DIRNAME(3)
NAME
dirname, basename - Parse pathname components
SYNOPSIS
#include <libgen.h>
char *dirname(char *path);
char *basename(char *path);
DESCRIPTION
The functions dirname and basename break a null-terminated pathname string into directory and filename components. In the usual case,
dirname returns the string up to, but not including, the final '/', and basename returns the component following the final '/'. Trailing
'/' characters are not counted as part of the pathname.
If path does not contain a slash, dirname returns the string "." while basename returns a copy of path. If path is the string "/", then
both dirname and basename return the string "/". If path is a NULL pointer or points to an empty string, then both dirname and basename
return the string ".".
Concatenating the string returned by dirname, a "/", and the string returned by basename yields a complete pathname.
Both dirname and basename may modify the contents of path, so if you need to preserve the pathname string, copies should be passed to these
functions. Furthermore, dirname and basename may return pointers to statically allocated memory which may be overwritten by subsequent
calls.
The following list of examples (taken from SUSv2) shows the strings returned by dirname and basename for different paths:
path dirname basename
"/usr/lib" "/usr" "lib"
"/usr/" "/" "usr"
"usr" "." "usr"
"/" "/" "/"
"." "." "."
".." "." ".."
EXAMPLE
char *dirc, *basec, *bname, *dname;
char *path = "/etc/passwd";
dirc = strdup(path);
basec = strdup(path);
dname = dirname(dirc);
bname = basename(basec);
printf("dirname=%s, basename=%s
", dname, bname);
free(dirc);
free(basec);
RETURN VALUE
Both dirname and basename return pointers to null-terminated strings.
BUGS
In versions of glibc up to and including 2.2.1, dirname does not correctly handle pathnames with trailing '/' characters, and generates a
segmentation violation if given a NULL argument.
CONFORMING TO
SUSv2
SEE ALSO
dirname(1), basename(1),
GNU
2000-12-14 DIRNAME(3)