Web page hosting and cheap domain registration service
  

 

Finding Program Name; Multiple Program Names

[previous] [next] [table of contents] [index]

A UNIX program should use its name as the first word in error messages it prints. That's important when the program is running in the background or as part of a pipeline -- you need to know which program has the problem:

someprog: quitting: can't read file xxx

It's tempting to use just the program name in the echo commands:

echo "someprog: quitting: can't read file $file" 1>&2

but, if you ever change the program name, it's easy to forget to fix the messages. A better way is to store the program name in a shell variable at the top of the script file, and then use the variable in all messages:

myname=someprog
    ...
echo "$myname: quitting: can't read file $file" 1>&2

Even better, use the $0 parameter. The shell automatically puts the script's name there. But $0 can have the full pathname of the script, such as /xxx/yyy/bin/someprog. The basename program fixes this: basename strips off the head of a pathname -- everything but the filename.

For example, if $0 is /u/ehuser/bin/sendit, then:

myname="`basename $0`"

would put sendit into the myname shell variable.

Just as MH can use links to give messages more than one name (see the Section Using Links), and just as you can make links to give MH programs several names (see the Chapter New Versions of MH Commands), you can use links to give your program several names. For instance, see the script named both rmmer and rmmer_1 in the Section Explanation of rmmer. Use $0 to get the current name of the program.

The sidebar What Good is a File with 1000 Links? shows a handy use of multiple program names.

 

 

 

 

Cheap domains registrar | Buy domain name & domain registration | Domain registration 

Disclaimers: This document is provided as free service for the benefits of Active-Venture.com's web hosting customers only.

 
Quotes: What we call happiness in the strictest sense comes from the (preferably sudden) satisfaction of needs which have been dammed up to a high degree.Illusions commend themselves to us because they save us pain and allow us to enjoy pleasure instead. We must therefore accept it without complaint when they sometimes collide with a bit of reality against which they are dashed to pieces.