
218
|
Chapter 10: Scripting
variable is the name of the script itself. The $* variable contains all the arguments as
one string value. These variables can then be passed along to commands the script
runs:
admin@server1:~$ cat files
#!/bin/bash
ls -Alv $*
admin@server1:~$ ./files hello hello2 today
-rwxr-xr-x 1 admin admin 48 2006-07-25 13:25 hello
-rwxr-xr-x 1 admin admin 51 2006-07-25 14:45 hello2
-rwxr-xr-x 1 admin admin 45 2006-07-25 14:49 today
admin@server1:~$
The special variable $$ contains the current process’s process ID. This can be used to
create a unique temporary filename. If multiple copies of the same script are running
at the same time, each will have a different process ID and thus a different tempo-
rary filename.
Another useful variable is
$?, which contains the return status of the most recent
command executed. We’ll use this later in this chapter to check for the success or
failure of program execution in a script.
Useful Elements for bash Scripts
We’ve introduced the basic elements of bash that you’ll use in the everyday running
of interactive commands. Now let’s look at some things that will help you write
effective scripts.
Expressions
bash expressions contain variables and operators such as == (equals) and > (greater
than). These are usually used in tests, which can be specified in several ways:
test $file == "test"
[ $file == "test" ]
[[ $file == "test" ]]
If you use the test command, ...