whats this NAME=${0##*/}


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting whats this NAME=${0##*/}
# 1  
Old 09-30-2008
Java whats this NAME=${0##*/}

hi all,

i found NAME=${0##*/} in a script.
i given this coomand in my unix box(presently in ksh).

echo ${0##*/} it returned ksh.
the purpose of the above is to return the shell name or more than that.

do you have any more information like this, please share with me.

one more query
what is set -xv and +xv.
i read the above with "man". but i am not clear with that.
# 2  
Old 09-30-2008
I guess as they say, RTFM more carefully. Just kidding. Smilie

NAME=${0##*/}
simply gets the name of the currently executing script. The $0 is what does it, and the rest strips of the leading path names. It's useful when the script name is supposed to different things depending on how its invoked. For instance, if you have a softlink to your script named "foo" and another softlink named "bar", then your script can do print out "FU" instead of "Beyond All Recognition". Or something.

set -xv +xv are shorthand for
Code:
set -x
set -v

The first turns on "eXecution debugging". Every command that is executed, and after parsing, is printed to stderr. The second turns on "Verbose mode" which prints to stderr every line that is read in and before being parsed, whether or not it is executed.
# 3  
Old 09-30-2008
I guess as they say, RTFM more carefully. Just kidding. Smilie

NAME=${0##*/}
simply gets the name of the currently executing script. The $0 is what does it, and the rest strips of the leading path names. It's useful when the script name is supposed to different things depending on how its invoked. For instance, if you have a softlink to your script named "foo" and another softlink named "bar", then your script can do print out "FU" instead of "Beyond All Recognition". Or something.

set -xv +xv are shorthand for
Code:
set -x
set -v

The first turns on "eXecution debugging". Every command that is executed, and after parsing, is printed to stderr. The second turns on "Verbose mode" which prints to stderr every line that is read in and before being parsed, whether or not it is executed.
# 4  
Old 10-01-2008
NAME=${0##*/} is a fancy awy of doing "basename $0"
$0 is a special variable that hold the name of the script (or if you doit in a loguin shell, the name of the shell), including the full path to the executable
the other ##, well, is complicated and must admit i dont know why it works, to advanced for me
if you want, you can read the "basename" man page to get a grasp of what it does
# 5  
Old 10-02-2008
yeah Broli,
i do it.

Thanks for your update
# 6  
Old 10-02-2008
iam using ksh, i doesn't find in man page for basename about ##.
# 7  
Old 10-02-2008
No, ## is described in the man page for the shell. The basename command is just a different way to do this particular substitution.
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Homework & Coursework Questions

Whats wrong with the following

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: ls -ld htdocs drwxr-x--- 3 root root 8192 2006-11-19 10:41 htdocs How would a host administrator... (1 Reply)
Discussion started by: Larry_1
1 Replies

2. UNIX for Dummies Questions & Answers

whats wrong with this?

can anyone tell me why this code doesn't work how its supposed to, its the hangman game but it doesn't play how its supposed to #!/bin/bash NoAttempts="0" livesgiven="5" LivesRemain=$livesgiven LettersAttempted="" wordfile=words numwords=0 function menu() { clear cat << menu... (1 Reply)
Discussion started by: ferrycorsten73
1 Replies

3. Shell Programming and Scripting

##*_ - whats this?

Hi all, could you please tell me whats this stands ##*_ 0##*/ i knew this alone if some more is there please tell me that also. (3 Replies)
Discussion started by: Arunprasad
3 Replies

4. Shell Programming and Scripting

tell me whats wrong with this

#! /bin/bash USAGE=" | ] if then echo "$USAGE" exit 1 fi while getopts lb: OPTION do case $(OPTION)in a) echo Hi there! exit 2;; b) echo hello o) OARG=$OPTARG;; \?)echo "$USAGE" ;; exit 2;; esac done shift `expr... (1 Reply)
Discussion started by: nadman123
1 Replies

5. Shell Programming and Scripting

tell me whats wrong in this?

#! /bin/bash head -5 $1 echo "remove $1 ?" read answer if then echo invalid answer elif rm $1 echo "$1 is deleted" elif then echo file is not deleted else echo "invalid answer" fi What i really want this to do is to ask to delete the file or not..it says something wrong... (1 Reply)
Discussion started by: nadman123
1 Replies

6. Shell Programming and Scripting

whats the difference between $* and $@

Hi, whats the difference between $* and $@ in command line arguments to a shell scripts (3 Replies)
Discussion started by: pbsrinivas
3 Replies

7. What is on Your Mind?

Whats Behind Your Name?

Looking at the member list, there are alot of interesting names, some unique, some bizarre, and some that are just plain. How did you come by your name? Why did you choose your label? Me? Well, I wish I could change mine. I chose Google because thats how I stumbled upon this site. I wasn't sure... (66 Replies)
Discussion started by: google
66 Replies

8. Post Here to Contact Site Administrators and Moderators

Whats the go?

woofie, Your posts are being deleted because your use of profanity. I am close to changing your status to read only. In fact, if you argue with the mods again, I will ban you from these boards. Neo (1 Reply)
Discussion started by: Neo
1 Replies

9. Shell Programming and Scripting

Whats does this mean

Found this piece of code written in ksh. I have no ideas what do the stuff like ${SRF##*\.} do. SUFFIX=${SRF##*\.} if ; then SUFFIX="" fi I have encountered similar expressions in other programs also. Any pointers on where to learn more about these... (1 Reply)
Discussion started by: jyotipg
1 Replies
Login or Register to Ask a Question