| GNU Bash Reference Manual by Chet Ramey and Brian Fox Paperback (6"x9"), 180 pages ISBN 0954161777 RRP £19.95 ($29.95) "An essential resource .... the most detailed coverage available for all aspects of Bash" --- Linux User and Developer Magazine (Issue 37, Mar 2004) Get a printed copy>>> |
4.3 The Set Builtin
This builtin is so complicated that it deserves its own section.
set-
set [--abefhkmnptuvxBCHP] [-o option] [argument ...]
If no options or arguments are supplied,setdisplays the names and values of all shell variables and functions, sorted according to the current locale, in a format that may be reused as input for setting or resetting the currently-set variables. Read-only variables cannot be reset. In POSIX mode, only shell variables are listed. When options are supplied, they set or unset shell attributes. Options, if specified, have the following meanings:-a- Mark variables and function which are modified or created for export to the environment of subsequent commands.
-b- Cause the status of terminated background jobs to be reported immediately, rather than before printing the next primary prompt.
-e-
Exit immediately if a simple command (see section 3.2.1 Simple Commands) exits
with a non-zero status, unless the command that fails is part of the
command list immediately following a
whileoruntilkeyword, part of the test in anifstatement, part of a&&or||list, or if the command's return status is being inverted using!. A trap onERR, if set, is executed before the shell exits. -f- Disable file name generation (globbing).
-h- Locate and remember (hash) commands as they are looked up for execution. This option is enabled by default.
-k- All arguments in the form of assignment statements are placed in the environment for a command, not just those that precede the command name.
-m- Job control is enabled (see section 7 Job Control).
-n- Read commands but do not execute them; this may be used to check a script for syntax errors. This option is ignored by interactive shells.
-o option-name-
Set the option corresponding to option-name:
allexport-
Same as
-a. braceexpand-
Same as
-B. emacs-
Use an
emacs-style line editing interface (see section 8 Command Line Editing). errexit-
Same as
-e. errtrace-
Same as
-E. functrace-
Same as
-T. hashall-
Same as
-h. histexpand-
Same as
-H. history- Enable command history, as described in section 9.1 Bash History Facilities. This option is on by default in interactive shells.
ignoreeof- An interactive shell will not exit upon reading EOF.
keyword-
Same as
-k. monitor-
Same as
-m. noclobber-
Same as
-C. noexec-
Same as
-n. noglob-
Same as
-f. nolog- Currently ignored.
notify-
Same as
-b. nounset-
Same as
-u. onecmd-
Same as
-t. physical-
Same as
-P. pipefail- If set, the return value of a pipeline is the value of the last (rightmost) command to exit with a non-zero status, or zero if all commands in the pipeline exit successfully. This option is disabled by default.
posix- Change the behavior of Bash where the default operation differs from the POSIX standard to match the standard (see section 6.11 Bash POSIX Mode). This is intended to make Bash behave as a strict superset of that standard.
privileged-
Same as
-p. verbose-
Same as
-v. vi-
Use a
vi-style line editing interface. xtrace-
Same as
-x.
-p-
Turn on privileged mode.
In this mode, the
$BASH_ENVand$ENVfiles are not processed, shell functions are not inherited from the environment, and theSHELLOPTSvariable, if it appears in the environment, is ignored. If the shell is started with the effective user (group) id not equal to the real user (group) id, and the-poption is not supplied, these actions are taken and the effective user id is set to the real user id. If the-poption is supplied at startup, the effective user id is not reset. Turning this option off causes the effective user and group ids to be set to the real user and group ids. -t- Exit after reading and executing one command.
-u- Treat unset variables as an error when performing parameter expansion. An error message will be written to the standard error, and a non-interactive shell will exit.
-v- Print shell input lines as they are read.
-x-
Print a trace of simple commands,
forcommands,casecommands,selectcommands, and arithmeticforcommands and their arguments or associated word lists after they are expanded and before they are executed. The value of thePS4variable is expanded and the resultant value is printed before the command and its expanded arguments. -B- The shell will perform brace expansion (see section 3.5.1 Brace Expansion). This option is on by default.
-C- Prevent output redirection using ‘>’, ‘>&’, and ‘<>’ from overwriting existing files.
-E-
If set, any trap on
ERRis inherited by shell functions, command substitutions, and commands executed in a subshell environment. TheERRtrap is normally not inherited in such cases. -H- Enable ‘!’ style history substitution (see section 9.3 History Expansion). This option is on by default for interactive shells.
-P-
If set, do not follow symbolic links when performing commands such as
cdwhich change the current directory. The physical directory is used instead. By default, Bash follows the logical chain of directories when performing commands which change the current directory. For example, if ‘/usr/sys’ is a symbolic link to ‘/usr/local/sys’ then:$ cd /usr/sys; echo $PWD /usr/sys $ cd ..; pwd /usr
Ifset -Pis on, then:$ cd /usr/sys; echo $PWD /usr/local/sys $ cd ..; pwd /usr/local
-T-
If set, any trap on
DEBUGandRETURNare inherited by shell functions, command substitutions, and commands executed in a subshell environment. TheDEBUGandRETURNtraps are normally not inherited in such cases. --- If no arguments follow this option, then the positional parameters are unset. Otherwise, the positional parameters are set to the arguments, even if some of them begin with a ‘-’.
--
Signal the end of options, cause all remaining arguments
to be assigned to the positional parameters. The
-xand-voptions are turned off. If there are no arguments, the positional parameters remain unchanged.
$-. The remaining N arguments are positional parameters and are assigned, in order, to$1,$2, ...$N. The special parameter#is set to N. The return status is always zero unless an invalid option is supplied.
| ISBN 0954161777 | GNU Bash Reference Manual | See the print edition |