Options are settings that change shell and/or script behavior.
The set command 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.
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
-i, force script to run
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 (preceded by a single dash)
or by complete name (preceded by a double
dash or by
Table 33.1. Bash options
|brace expansion||Enable brace expansion (default setting = on)|
|brace expansion||Disable brace expansion|
|noclobber||Prevent overwriting of files by redirection (may be overridden by >|)|
|(none)||List double-quoted strings prefixed by $, but do not execute commands in script|
|allexport||Export all defined variables|
|notify||Notify when jobs running in background terminate (not of much use in a script)|
|(none)||Read commands from ...|
|Informs user of any open jobs upon shell exit. Introduced in version 4 of Bash, and still “experimental.” Usage: shopt -s checkjobs (Caution: may hang!)|
|errexit||Abort script at first error, when a command exits with non-zero status (except in until or while loops, if-tests, list constructs)|
|noglob||Filename expansion (globbing) disabled|
|globbing star-match||Enables the ** globbing operator (version 4+ of Bash). Usage: shopt -s globstar|
|interactive||Script runs in interactive mode|
|noexec||Read commands in script, but do not execute them (syntax check)|
|(none)||Invoke the Option-Name option|
|POSIX||Change the behavior of Bash, or invoked script, to conform to POSIX standard.|
|pipe failure||Causes a pipeline to return the exit status of the last command in the pipe that returned a non-zero return value.|
|privileged||Script runs as “suid” (caution!)|
|restricted||Script runs in restricted mode (see Chapter 22, Restricted Shells).|
|stdin||Read commands from |
|(none)||Exit after first command|
|nounset||Attempt to use undefined variable outputs error message, and forces an exit|
|verbose||Print each command to |
|xtrace||Similar to |
|(none)||End of options flag. All other arguments are positional parameters.|
|(none)||Unset positional parameters.
If arguments given (|