[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
1.1.4 Executable awk
Programs
Once you have learned awk
, you may want to write self-contained
awk
scripts, using the ‘#!’ script mechanism. You can do
this on many systems.(9)
For example, you could update the file ‘advice’ to look like this:
#! /bin/awk -f BEGIN { print "Don't Panic!" } |
After making this file executable (with the chmod
utility),
simply type ‘advice’
at the shell and the system arranges to run awk
(10) as if you had
typed ‘awk -f advice’:
$ chmod +x advice $ advice -| Don't Panic! |
(We assume you have the current directory in your shell’s search
path variable [typically $PATH
]. If not, you may need
to type ‘./advice’ at the shell.)
Self-contained awk
scripts are useful when you want to write a
program that users can invoke without their having to know that the program is
written in awk
.
Advanced Notes: Portability Issues with ‘#!’
Some systems limit the length of the interpreter name to 32 characters. Often, this can be dealt with by using a symbolic link.
You should not put more than one argument on the ‘#!’
line after the path to awk
. It does not work. The operating system
treats the rest of the line as a single argument and passes it to awk
.
Doing this leads to confusing behavior—most likely a usage diagnostic
of some sort from awk
.
Finally,
the value of ARGV[0]
(see section Built-in Variables)
varies depending upon your operating system.
Some systems put ‘awk’ there, some put the full pathname
of awk
(such as ‘/bin/awk’), and some put the name
of your script (‘advice’). (d.c.)
Don’t rely on the value of ARGV[0]
to provide your script name.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |