GNU Info

Info Node: (gawk.info)Executable Scripts

(gawk.info)Executable Scripts


Next: Comments Prev: Long Up: Running gawk
Enter node , (file) or (file)node

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 Unix systems(1) as well as on the GNU system.  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'(2) as
if you had typed `awk -f advice':

     $ chmod +x advice
     $ advice
     -| Don't Panic!

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]' (Note: 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').  Don't rely on the value of
`ARGV[0]' to provide your script name.

   ---------- Footnotes ----------

   (1) The `#!' mechanism works on Linux systems, systems derived from
the 4.4-Lite Berkeley Software Distribution, and most commercial Unix
systems.

   (2) The line beginning with `#!' lists the full file name of an
interpreter to run and an optional initial command-line argument to
pass to that interpreter.  The operating system then runs the
interpreter with the given argument and the full argument list of the
executed program.  The first argument in the list is the full file name
of the `awk' program.  The rest of the argument list is either options
to `awk', or data files, or both.


automatically generated by info2www version 1.2.2.9