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. |