mirror of
https://github.com/flokoe/bash-hackers-wiki.git
synced 2024-11-25 07:43:42 +01:00
5.0 KiB
5.0 KiB
The set builtin command
!!! warning "FIXME" incomplete text, examples, maybe extended description
Synopsis
set [--abefhkmnptuvxBCHP] <-o OPTIONNAME> [-][--] <POSPARAMS>
Description
set
is primarily made to
- set the positional parameters (see handling positional
parameters) to
<POSPARAMS>
- set shell attributes with short options (see below)
- set shell attributes with long option names (see below)
Without any options, set
displays all shell- and environment-variables
(only is POSIX-mode) in a re-usable format NAME=VALUE
.
Attributes
All attributes below can be switched on using -X
and switched off
using +X
. This is done because of the historical meaning of the -
to
set flags (true for most commands on UNIX(r)).
Flag | Optionname | Description |
---|---|---|
-a |
allexport |
Automatically mark new and altered variables to be exported to subsequent environments. |
-b |
notify |
Don't wait for the next prompt to print when showing the reports for a terminated background job (only with job control) |
-e |
errexit |
When set, the shell exits when a simple command in a command list exits non-zero (FALSE ). This is not done in situations, where the exit code is already checked (if , while , until , ` |
-f |
noglob |
Disable pathname expansion (globbing) |
-h |
hashall |
Remembers the location of commands when they're called (hashing). Enabled by default. |
-k |
keyword |
Allows to place environment-assignments everywhere in the commandline, not only infront of the called command. |
-m |
monitor |
Monitor mode. With job control, a short descriptive line is printed when a backgroud job ends. Default is "on" for interactive shells (with job control). |
-n |
noexec |
Read and parse but do not execute commands - useful for checking scripts for syntax errors. Ignored by interactive shells. |
-o |
Set/unset attributes with long option names, e.g. set -o noglob . The long option names are in the second column of this table. If no option name is given, all options are printed with their current status. |
|
-p |
privileged |
Turn on privileged mode. |
-t |
onecmd |
Exit after reading and executing one command. |
-u |
nounset |
Treat unset variables as an error when performing parameter expansion. Non-interactive shells exit on this error. |
-v |
verbose |
Print shell input lines as they are read - useful for debugging. |
-x |
xtrace |
Print commands just before execution - with all expansions and substitutions done, and words marked - useful for debugging. |
-B |
braceexpand |
The shell performs brace expansion This is on by default. |
-C |
noclobber |
Don't overwrite files on redirection operations. You can override that by specifying the `> |
-E |
errtrace |
ERR -traps are inherited by by shell functions, command substitutions, and commands executed in a subshell environment. |
-H |
histexpand |
Enable ! -style history expansion. Defaults to on for interactive shells. |
-P |
physical |
Don't follow symlinks when changing directories - use the physical filesystem structure. |
-T |
functrace |
DEBUG - and RETURN -traps are inherited by subsequent environments, like -E for ERR trap. |
- |
"End of options" - all following arguments are assigned to the positional parameters, even when they begin with a dash. -x and -v options are turned off. Positional parameters are unchanged (unlike using -- !) when no further arguments are given. |
|
-- |
If no arguments follow, the positional parameters are unset. With arguments, the positional parameters are set, even if the strings begin with a - (dash) like an option. |
|
Long options usable with -o without a short equivalent |
||
emacs |
Use an emacs-style command line editing interface. This is enabled by default when the shell is interactive, unless the shell is started with --noediting option. |
|
history |
If set, command historization is done (enabled by default on interactive shells) | |
ignoreeof |
The effect is as if the shell command IGNOREEOF=10 had been executed. See shell variables. |
|
nolog |
(currently ignored) | |
pipefail |
If set, the exit code from a pipeline is different from the normal ("last command in pipeline") behaviour: TRUE when no command failed, FALSE when something failed (code of the rightmost command that failed) |
|
posix |
When set, Bash runs in POSIX mode. | |
vi |
Enables a vi -style command line editing interface. |
Examples
Tag a part of a shell script to output debugging information (-x
):
#!/bin/bash
...
set -x # on
...
set +x # off
...
Portability considerations
set
and its basic behaviour and options are specified by POSIX(r).
However, options that influence Bash-specific things are not portable,
naturally.
See also
- Internal: The shopt builtin command