This chapter has a bunch of tricks and techniques for programming with the Bourne shell. Some of them are documented but hard to find; others aren’t documented at all. Here is a summary of this chapter’s articles:
The first group of articles is about making a file directly executable with #! on the first line. On many versions of Unix, an executable file can start with a first line like this:
The kernel will start the program named in that line and give it the
file to read. Chris Torek’s Usenet classic, Section 36.2, explains how
#! started. Section 36.3 explains that your
“shell scripts” may not need a shell at all.
The next bunch of articles are about processes and commands. The exec command, Section 36.5, replaces the shell with another process; it can also be used to change input/output redirection (see below). The : (colon) operator evaluates its arguments and returns a zero status — Section 36.6 explains why you should care.
Next are techniques for handling variables and parameters. Parameter
substitution, explained in Section
36.7, is a compact way to test, set, and give default values
for variables. You can use the
parameter and Unix links to give the same script multiple names and make
it do multiple things; see Section
36.8. Section 36.9
shows the easy way to get the last command-line argument. Section 36.10 has an easy way
to remove all the command-line arguments.
Four articles cover ...