Options are settings that change shell and/or script
behavior.
The set command (see Section 3.9) enables options within a script. At the
point in the script where you want the options to take effect,
use set -o option-name or, in short form,
set -option-abbrev. These two forms are
equivalent.
#!/bin/bash
set -o verbose
# Echoes all commands before executing.
|
#!/bin/bash
set -v
# Exact same effect as above.
|
Note: To disable an option within a script,
use set +o option-name or set
+option-abbrev.
#!/bin/bash
set -o verbose
# Command echoing on.
command
...
command
set +o verbose
# Command echoing off.
command
# Not echoed.
set -v
# Command echoing on.
command
...
command
set +v
# Command echoing off.
command
exit 0
|
An alternate method of enabling options in a script is
to specify them immediately following the
#! script header.
#!/bin/bash -x
#
# Body of script follows.
|
It is also possible to enable script options from the command
line. Some options that will not work with
set are available this way. Among these
are -i, force script to run
interactive.
bash -v script-name
bash -o verbose script-name
The following is a listing of some useful options. They may be
specified in either abbreviated form or by complete name.
Table 3-1. bash options
| Abbreviation | Name | Effect |
|---|
| -C | noclobber | Prevent overwriting of files by redirection (may be
overridden by >|) |
| -D | (none) | List double-quoted strings prefixed by $,
but do not execute commands in script |
| -a | allexport | Export all defined variables |
| -b | notify | Notify when jobs running in background terminate (not of
much use in a script) |
| -c xxx | (none) | Read commands from xxx |
| -f | noglob | Filename expansion (globbing) disabled |
| -i | interactive | Script runs in interactive mode |
| -p | privileged | Script runs as "suid" (caution!) |
| -r | restricted | Script runs in restricted
mode (see Section 3.17). |
| -u | nounset | Attempt to use undefined variable
outputs error message |
| -v | verbose | Print each command to stdout before executing it |
| -x | xtrace | Similar to -v, but expands commands |
| -e | errexit | Abort script at first error (when a command exits with
non-zero status) |
| -n | noexec | Read commands in script, but do not execute them |
| -s | stdin | Read commands from stdin |
| -t | (none) | Exit after first command |
| - | (none) | End of options flag. All other arguments
are positional parameters. |
| -- | (none) | Unset positional parameters.
If arguments given (--arg1arg2),
positional parameters set to arguments. |