You should have a healthy grasp of shell programming techniques now that you have gone through the previous chapters. What you have learned up to this point enables you to write many nontrivial, useful shell scripts and functions.
Still, you may have noticed some remaining gaps in the knowledge
you need to write shell code that behaves like the Unix commands you
are used to. In particular, if you are an experienced Unix user,
it might have occurred to you
that none of the example scripts shown so far have the
ability to handle options (preceded by a dash (
on the command line.
And if you
program in a conventional language like C or Pascal, you will have
noticed that the only type of data that we have seen in shell variables
is character strings; we haven’t seen how to do arithmetic, for example.
These capabilities are certainly crucial to the shell’s ability to function as a useful Unix programming language. In this chapter, we show how the Korn shell supports these and related features.
We have already seen many examples of the positional parameters
that the shell uses to store the command-line
arguments to a shell script or function when it runs. We have also
seen related variables like
(for the string(s) of all arguments)
# (for the number of arguments).
Indeed, these variables hold all the information on the user’s command line. But consider what happens ...