appearing in B\bBA\bAS\bSH\bHO\bOP\bPT\bTS\bS are those reported as _\bo_\bn by s\bsh\bho\bop\bpt\bt. If
this variable is in the environment when b\bba\bas\bsh\bh starts up, the
shell enables each option in the list before reading any startup
- files. This variable is read-only.
+ files. If this variable is exported, child shells will enable
+ each option in the list. This variable is read-only.
B\bBA\bAS\bSH\bHP\bPI\bID\bD
- Expands to the process ID of the current b\bba\bas\bsh\bh process. This
- differs from $\b$$\b$ under certain circumstances, such as subshells
- that do not require b\bba\bas\bsh\bh to be re-initialized. Assignments to
- B\bBA\bAS\bSH\bHP\bPI\bID\bD have no effect. If B\bBA\bAS\bSH\bHP\bPI\bID\bD is unset, it loses its spe-
+ Expands to the process ID of the current b\bba\bas\bsh\bh process. This
+ differs from $\b$$\b$ under certain circumstances, such as subshells
+ that do not require b\bba\bas\bsh\bh to be re-initialized. Assignments to
+ B\bBA\bAS\bSH\bHP\bPI\bID\bD have no effect. If B\bBA\bAS\bSH\bHP\bPI\bID\bD is unset, it loses its spe-
cial properties, even if it is subsequently reset.
B\bBA\bAS\bSH\bH_\b_A\bAL\bLI\bIA\bAS\bSE\bES\bS
- An associative array variable whose members correspond to the
- internal list of aliases as maintained by the a\bal\bli\bia\bas\bs builtin.
- Elements added to this array appear in the alias list; however,
- unsetting array elements currently does not remove aliases from
- the alias list. If B\bBA\bAS\bSH\bH_\b_A\bAL\bLI\bIA\bAS\bSE\bES\bS is unset, it loses its special
+ An associative array variable whose members correspond to the
+ internal list of aliases as maintained by the a\bal\bli\bia\bas\bs builtin.
+ Elements added to this array appear in the alias list; however,
+ unsetting array elements currently does not remove aliases from
+ the alias list. If B\bBA\bAS\bSH\bH_\b_A\bAL\bLI\bIA\bAS\bSE\bES\bS is unset, it loses its special
properties, even if it is subsequently reset.
B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGC\bC
- An array variable whose values are the number of parameters in
+ An array variable whose values are the number of parameters in
each frame of the current b\bba\bas\bsh\bh execution call stack. The number
- of parameters to the current subroutine (shell function or
- script executed with .\b. or s\bso\bou\bur\brc\bce\be) is at the top of the stack.
- When a subroutine is executed, the number of parameters passed
+ of parameters to the current subroutine (shell function or
+ script executed with .\b. or s\bso\bou\bur\brc\bce\be) is at the top of the stack.
+ When a subroutine is executed, the number of parameters passed
is pushed onto B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGC\bC. The shell sets B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGC\bC only when in
extended debugging mode (see the description of the e\bex\bxt\btd\bde\beb\bbu\bug\bg op-
- tion to the s\bsh\bho\bop\bpt\bt builtin below). Setting e\bex\bxt\btd\bde\beb\bbu\bug\bg after the
+ tion to the s\bsh\bho\bop\bpt\bt builtin below). Setting e\bex\bxt\btd\bde\beb\bbu\bug\bg after the
shell has started to execute a script, or referencing this vari-
- able when e\bex\bxt\btd\bde\beb\bbu\bug\bg is not set, may result in inconsistent val-
+ able when e\bex\bxt\btd\bde\beb\bbu\bug\bg is not set, may result in inconsistent val-
ues. Assignments to B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGC\bC have no effect, and it may not be
unset.
B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV
- An array variable containing all of the parameters in the cur-
+ An array variable containing all of the parameters in the cur-
rent b\bba\bas\bsh\bh execution call stack. The final parameter of the last
- subroutine call is at the top of the stack; the first parameter
+ subroutine call is at the top of the stack; the first parameter
of the initial call is at the bottom. When a subroutine is exe-
- cuted, the shell pushes the supplied parameters onto B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV.
- The shell sets B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV only when in extended debugging mode
+ cuted, the shell pushes the supplied parameters onto B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV.
+ The shell sets B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV only when in extended debugging mode
(see the description of the e\bex\bxt\btd\bde\beb\bbu\bug\bg option to the s\bsh\bho\bop\bpt\bt builtin
below). Setting e\bex\bxt\btd\bde\beb\bbu\bug\bg after the shell has started to execute
a script, or referencing this variable when e\bex\bxt\btd\bde\beb\bbu\bug\bg is not set,
- may result in inconsistent values. Assignments to B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV
+ may result in inconsistent values. Assignments to B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV
have no effect, and it may not be unset.
B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV0\b0
- When referenced, this variable expands to the name of the shell
+ When referenced, this variable expands to the name of the shell
or shell script (identical to $\b$0\b0; see the description of special
- parameter 0 above). Assigning a value to B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV0\b0 sets $\b$0\b0 to
- the same value. If B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV0\b0 is unset, it loses its special
+ parameter 0 above). Assigning a value to B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV0\b0 sets $\b$0\b0 to
+ the same value. If B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV0\b0 is unset, it loses its special
properties, even if it is subsequently reset.
B\bBA\bAS\bSH\bH_\b_C\bCM\bMD\bDS\bS
- An associative array variable whose members correspond to the
- internal hash table of commands as maintained by the h\bha\bas\bsh\bh
+ An associative array variable whose members correspond to the
+ internal hash table of commands as maintained by the h\bha\bas\bsh\bh
builtin. Adding elements to this array makes them appear in the
hash table; however, unsetting array elements currently does not
- remove command names from the hash table. If B\bBA\bAS\bSH\bH_\b_C\bCM\bMD\bDS\bS is un-
+ remove command names from the hash table. If B\bBA\bAS\bSH\bH_\b_C\bCM\bMD\bDS\bS is un-
set, it loses its special properties, even if it is subsequently
reset.
B\bBA\bAS\bSH\bH_\b_C\bCO\bOM\bMM\bMA\bAN\bND\bD
- Expands to the command currently being executed or about to be
- executed, unless the shell is executing a command as the result
+ Expands to the command currently being executed or about to be
+ executed, unless the shell is executing a command as the result
of a trap, in which case it is the command executing at the time
- of the trap. If B\bBA\bAS\bSH\bH_\b_C\bCO\bOM\bMM\bMA\bAN\bND\bD is unset, it loses its special
+ of the trap. If B\bBA\bAS\bSH\bH_\b_C\bCO\bOM\bMM\bMA\bAN\bND\bD is unset, it loses its special
properties, even if it is subsequently reset.
B\bBA\bAS\bSH\bH_\b_E\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\bN_\b_S\bST\bTR\bRI\bIN\bNG\bG
The command argument to the -\b-c\bc invocation option.
B\bBA\bAS\bSH\bH_\b_L\bLI\bIN\bNE\bEN\bNO\bO
- An array variable whose members are the line numbers in source
- files where each corresponding member of F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE was invoked.
+ An array variable whose members are the line numbers in source
+ files where each corresponding member of F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE was invoked.
$\b${\b{B\bBA\bAS\bSH\bH_\b_L\bLI\bIN\bNE\bEN\bNO\bO[\b[_\b$_\bi]\b]}\b} is the line number in the source file
($\b${\b{B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE[\b[_\b$_\bi_\b+_\b1]\b]}\b}) where $\b${\b{F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE[\b[_\b$_\bi]\b]}\b} was called (or
- $\b${\b{B\bBA\bAS\bSH\bH_\b_L\bLI\bIN\bNE\bEN\bNO\bO[\b[_\b$_\bi_\b-_\b1]\b]}\b} if referenced within another shell func-
- tion). Use L\bLI\bIN\bNE\bEN\bNO\bO to obtain the current line number. Assign-
+ $\b${\b{B\bBA\bAS\bSH\bH_\b_L\bLI\bIN\bNE\bEN\bNO\bO[\b[_\b$_\bi_\b-_\b1]\b]}\b} if referenced within another shell func-
+ tion). Use L\bLI\bIN\bNE\bEN\bNO\bO to obtain the current line number. Assign-
ments to B\bBA\bAS\bSH\bH_\b_L\bLI\bIN\bNE\bEN\bNO\bO have no effect, and it may not be unset.
B\bBA\bAS\bSH\bH_\b_L\bLO\bOA\bAD\bDA\bAB\bBL\bLE\bES\bS_\b_P\bPA\bAT\bTH\bH
- A colon-separated list of directories in which the e\ben\bna\bab\bbl\ble\be com-
+ A colon-separated list of directories in which the e\ben\bna\bab\bbl\ble\be com-
mand looks for dynamically loadable builtins.
B\bBA\bAS\bSH\bH_\b_M\bMO\bON\bNO\bOS\bSE\bEC\bCO\bON\bND\bDS\bS
- Each time this variable is referenced, it expands to the value
- returned by the system's monotonic clock, if one is available.
- If there is no monotonic clock, this is equivalent to E\bEP\bPO\bOC\bCH\bHS\bSE\bEC\bC-\b-
- O\bON\bND\bDS\bS. If B\bBA\bAS\bSH\bH_\b_M\bMO\bON\bNO\bOS\bSE\bEC\bCO\bON\bND\bDS\bS is unset, it loses its special prop-
+ Each time this variable is referenced, it expands to the value
+ returned by the system's monotonic clock, if one is available.
+ If there is no monotonic clock, this is equivalent to E\bEP\bPO\bOC\bCH\bHS\bSE\bEC\bC-\b-
+ O\bON\bND\bDS\bS. If B\bBA\bAS\bSH\bH_\b_M\bMO\bON\bNO\bOS\bSE\bEC\bCO\bON\bND\bDS\bS is unset, it loses its special prop-
erties, even if it is subsequently reset.
B\bBA\bAS\bSH\bH_\b_R\bRE\bEM\bMA\bAT\bTC\bCH\bH
- An array variable whose members are assigned by the =\b=~\b~ binary
- operator to the [\b[[\b[ conditional command. The element with index
- 0 is the portion of the string matching the entire regular ex-
+ An array variable whose members are assigned by the =\b=~\b~ binary
+ operator to the [\b[[\b[ conditional command. The element with index
+ 0 is the portion of the string matching the entire regular ex-
pression. The element with index _\bn is the portion of the string
matching the _\bnth parenthesized subexpression.
B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE
- An array variable whose members are the source filenames where
- the corresponding shell function names in the F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE array
+ An array variable whose members are the source filenames where
+ the corresponding shell function names in the F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE array
variable are defined. The shell function $\b${\b{F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE[\b[_\b$_\bi]\b]}\b} is de-
- fined in the file $\b${\b{B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE[\b[_\b$_\bi]\b]}\b} and called from
- $\b${\b{B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE[\b[_\b$_\bi_\b+_\b1]\b]}\b}. Assignments to B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE have no ef-
+ fined in the file $\b${\b{B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE[\b[_\b$_\bi]\b]}\b} and called from
+ $\b${\b{B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE[\b[_\b$_\bi_\b+_\b1]\b]}\b}. Assignments to B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE have no ef-
fect, and it may not be unset.
B\bBA\bAS\bSH\bH_\b_S\bSU\bUB\bBS\bSH\bHE\bEL\bLL\bL
- Incremented by one within each subshell or subshell environment
- when the shell begins executing in that environment. The ini-
- tial value is 0. If B\bBA\bAS\bSH\bH_\b_S\bSU\bUB\bBS\bSH\bHE\bEL\bLL\bL is unset, it loses its spe-
+ Incremented by one within each subshell or subshell environment
+ when the shell begins executing in that environment. The ini-
+ tial value is 0. If B\bBA\bAS\bSH\bH_\b_S\bSU\bUB\bBS\bSH\bHE\bEL\bLL\bL is unset, it loses its spe-
cial properties, even if it is subsequently reset.
B\bBA\bAS\bSH\bH_\b_T\bTR\bRA\bAP\bPS\bSI\bIG\bG
- Set to the signal number corresponding to the trap action being
- executed during its execution. See the description of t\btr\bra\bap\bp un-
- der S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below for information about signal
+ Set to the signal number corresponding to the trap action being
+ executed during its execution. See the description of t\btr\bra\bap\bp un-
+ der S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below for information about signal
numbers and trap execution.
B\bBA\bAS\bSH\bH_\b_V\bVE\bER\bRS\bSI\bIN\bNF\bFO\bO
A readonly array variable whose members hold version information
- for this instance of b\bba\bas\bsh\bh. The values assigned to the array
+ for this instance of b\bba\bas\bsh\bh. The values assigned to the array
members are as follows:
B\bBA\bAS\bSH\bH_\b_V\bVE\bER\bRS\bSI\bIN\bNF\bFO\bO[\b[0]\b] The major version number (the _\br_\be_\bl_\be_\ba_\bs_\be).
B\bBA\bAS\bSH\bH_\b_V\bVE\bER\bRS\bSI\bIN\bNF\bFO\bO[\b[1]\b] The minor version number (the _\bv_\be_\br_\bs_\bi_\bo_\bn).
B\bBA\bAS\bSH\bH_\b_V\bVE\bER\bRS\bSI\bIN\bNF\bFO\bO[\b[4]\b] The release status (e.g., _\bb_\be_\bt_\ba).
B\bBA\bAS\bSH\bH_\b_V\bVE\bER\bRS\bSI\bIN\bNF\bFO\bO[\b[5]\b] The value of M\bMA\bAC\bCH\bHT\bTY\bYP\bPE\bE.
B\bBA\bAS\bSH\bH_\b_V\bVE\bER\bRS\bSI\bIO\bON\bN
- Expands to a string describing the version of this instance of
+ Expands to a string describing the version of this instance of
b\bba\bas\bsh\bh (e.g., 5.2.37(3)-release).
C\bCO\bOM\bMP\bP_\b_C\bCW\bWO\bOR\bRD\bD
- An index into $\b${\b{C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDS\bS}\b} of the word containing the current
+ An index into $\b${\b{C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDS\bS}\b} of the word containing the current
cursor position. This variable is available only in shell func-
- tions invoked by the programmable completion facilities (see
+ tions invoked by the programmable completion facilities (see
P\bPr\bro\bog\bgr\bra\bam\bmm\bma\bab\bbl\ble\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn below).
C\bCO\bOM\bMP\bP_\b_K\bKE\bEY\bY
The key (or final key of a key sequence) used to invoke the cur-
- rent completion function. This variable is available only in
- shell functions and external commands invoked by the programma-
+ rent completion function. This variable is available only in
+ shell functions and external commands invoked by the programma-
ble completion facilities (see P\bPr\bro\bog\bgr\bra\bam\bmm\bma\bab\bbl\ble\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn below).
C\bCO\bOM\bMP\bP_\b_L\bLI\bIN\bNE\bE
- The current command line. This variable is available only in
- shell functions and external commands invoked by the programma-
+ The current command line. This variable is available only in
+ shell functions and external commands invoked by the programma-
ble completion facilities (see P\bPr\bro\bog\bgr\bra\bam\bmm\bma\bab\bbl\ble\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn below).
C\bCO\bOM\bMP\bP_\b_P\bPO\bOI\bIN\bNT\bT
- The index of the current cursor position relative to the begin-
- ning of the current command. If the current cursor position is
+ The index of the current cursor position relative to the begin-
+ ning of the current command. If the current cursor position is
at the end of the current command, the value of this variable is
- equal to $\b${\b{#\b#C\bCO\bOM\bMP\bP_\b_L\bLI\bIN\bNE\bE}\b}. This variable is available only in
- shell functions and external commands invoked by the programma-
+ equal to $\b${\b{#\b#C\bCO\bOM\bMP\bP_\b_L\bLI\bIN\bNE\bE}\b}. This variable is available only in
+ shell functions and external commands invoked by the programma-
ble completion facilities (see P\bPr\bro\bog\bgr\bra\bam\bmm\bma\bab\bbl\ble\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn below).
C\bCO\bOM\bMP\bP_\b_T\bTY\bYP\bPE\bE
- Set to an integer value corresponding to the type of attempted
- completion that caused a completion function to be called: _\bT_\bA_\bB,
- for normal completion, _\b?, for listing completions after succes-
- sive tabs, _\b!, for listing alternatives on partial word comple-
- tion, _\b@, to list completions if the word is not unmodified, or
- _\b%, for menu completion. This variable is available only in
- shell functions and external commands invoked by the programma-
+ Set to an integer value corresponding to the type of attempted
+ completion that caused a completion function to be called: _\bT_\bA_\bB,
+ for normal completion, _\b?, for listing completions after succes-
+ sive tabs, _\b!, for listing alternatives on partial word comple-
+ tion, _\b@, to list completions if the word is not unmodified, or
+ _\b%, for menu completion. This variable is available only in
+ shell functions and external commands invoked by the programma-
ble completion facilities (see P\bPr\bro\bog\bgr\bra\bam\bmm\bma\bab\bbl\ble\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn below).
C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDB\bBR\bRE\bEA\bAK\bKS\bS
- The set of characters that the r\bre\bea\bad\bdl\bli\bin\bne\be library treats as word
- separators when performing word completion. If C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDB\bBR\bRE\bEA\bAK\bKS\bS
- is unset, it loses its special properties, even if it is subse-
+ The set of characters that the r\bre\bea\bad\bdl\bli\bin\bne\be library treats as word
+ separators when performing word completion. If C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDB\bBR\bRE\bEA\bAK\bKS\bS
+ is unset, it loses its special properties, even if it is subse-
quently reset.
C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDS\bS
- An array variable (see A\bAr\brr\bra\bay\bys\bs below) consisting of the individ-
- ual words in the current command line. The line is split into
- words as r\bre\bea\bad\bdl\bli\bin\bne\be would split it, using C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDB\bBR\bRE\bEA\bAK\bKS\bS as de-
- scribed above. This variable is available only in shell func-
- tions invoked by the programmable completion facilities (see
+ An array variable (see A\bAr\brr\bra\bay\bys\bs below) consisting of the individ-
+ ual words in the current command line. The line is split into
+ words as r\bre\bea\bad\bdl\bli\bin\bne\be would split it, using C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDB\bBR\bRE\bEA\bAK\bKS\bS as de-
+ scribed above. This variable is available only in shell func-
+ tions invoked by the programmable completion facilities (see
P\bPr\bro\bog\bgr\bra\bam\bmm\bma\bab\bbl\ble\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn below).
- C\bCO\bOP\bPR\bRO\bOC\bC An array variable (see A\bAr\brr\bra\bay\bys\bs below) created to hold the file
- descriptors for output from and input to an unnamed coprocess
+ C\bCO\bOP\bPR\bRO\bOC\bC An array variable (see A\bAr\brr\bra\bay\bys\bs below) created to hold the file
+ descriptors for output from and input to an unnamed coprocess
(see C\bCo\bop\bpr\bro\boc\bce\bes\bss\bse\bes\bs above).
D\bDI\bIR\bRS\bST\bTA\bAC\bCK\bK
An array variable (see A\bAr\brr\bra\bay\bys\bs below) containing the current con-
- tents of the directory stack. Directories appear in the stack
- in the order they are displayed by the d\bdi\bir\brs\bs builtin. Assigning
+ tents of the directory stack. Directories appear in the stack
+ in the order they are displayed by the d\bdi\bir\brs\bs builtin. Assigning
to members of this array variable may be used to modify directo-
- ries already in the stack, but the p\bpu\bus\bsh\bhd\bd and p\bpo\bop\bpd\bd builtins must
- be used to add and remove directories. Assigning to this vari-
- able does not change the current directory. If D\bDI\bIR\bRS\bST\bTA\bAC\bCK\bK is un-
+ ries already in the stack, but the p\bpu\bus\bsh\bhd\bd and p\bpo\bop\bpd\bd builtins must
+ be used to add and remove directories. Assigning to this vari-
+ able does not change the current directory. If D\bDI\bIR\bRS\bST\bTA\bAC\bCK\bK is un-
set, it loses its special properties, even if it is subsequently
reset.
E\bEP\bPO\bOC\bCH\bHR\bRE\bEA\bAL\bLT\bTI\bIM\bME\bE
Each time this parameter is referenced, it expands to the number
- of seconds since the Unix Epoch (see _\bt_\bi_\bm_\be(3)) as a floating-
+ of seconds since the Unix Epoch (see _\bt_\bi_\bm_\be(3)) as a floating-
point value with micro-second granularity. Assignments to
- E\bEP\bPO\bOC\bCH\bHR\bRE\bEA\bAL\bLT\bTI\bIM\bME\bE are ignored. If E\bEP\bPO\bOC\bCH\bHR\bRE\bEA\bAL\bLT\bTI\bIM\bME\bE is unset, it loses
+ E\bEP\bPO\bOC\bCH\bHR\bRE\bEA\bAL\bLT\bTI\bIM\bME\bE are ignored. If E\bEP\bPO\bOC\bCH\bHR\bRE\bEA\bAL\bLT\bTI\bIM\bME\bE is unset, it loses
its special properties, even if it is subsequently reset.
E\bEP\bPO\bOC\bCH\bHS\bSE\bEC\bCO\bON\bND\bDS\bS
Each time this parameter is referenced, it expands to the number
- of seconds since the Unix Epoch (see _\bt_\bi_\bm_\be(3)). Assignments to
- E\bEP\bPO\bOC\bCH\bHS\bSE\bEC\bCO\bON\bND\bDS\bS are ignored. If E\bEP\bPO\bOC\bCH\bHS\bSE\bEC\bCO\bON\bND\bDS\bS is unset, it loses
+ of seconds since the Unix Epoch (see _\bt_\bi_\bm_\be(3)). Assignments to
+ E\bEP\bPO\bOC\bCH\bHS\bSE\bEC\bCO\bON\bND\bDS\bS are ignored. If E\bEP\bPO\bOC\bCH\bHS\bSE\bEC\bCO\bON\bND\bDS\bS is unset, it loses
its special properties, even if it is subsequently reset.
- E\bEU\bUI\bID\bD Expands to the effective user ID of the current user, initial-
+ E\bEU\bUI\bID\bD Expands to the effective user ID of the current user, initial-
ized at shell startup. This variable is readonly.
F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE
- An array variable containing the names of all shell functions
+ An array variable containing the names of all shell functions
currently in the execution call stack. The element with index 0
is the name of any currently-executing shell function. The bot-
- tom-most element (the one with the highest index) is "main".
- This variable exists only when a shell function is executing.
- Assignments to F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE have no effect. If F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE is unset,
- it loses its special properties, even if it is subsequently re-
+ tom-most element (the one with the highest index) is "main".
+ This variable exists only when a shell function is executing.
+ Assignments to F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE have no effect. If F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE is unset,
+ it loses its special properties, even if it is subsequently re-
set.
- This variable can be used with B\bBA\bAS\bSH\bH_\b_L\bLI\bIN\bNE\bEN\bNO\bO and B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE.
- Each element of F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE has corresponding elements in
+ This variable can be used with B\bBA\bAS\bSH\bH_\b_L\bLI\bIN\bNE\bEN\bNO\bO and B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE.
+ Each element of F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE has corresponding elements in
B\bBA\bAS\bSH\bH_\b_L\bLI\bIN\bNE\bEN\bNO\bO and B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE to describe the call stack. For in-
- stance, $\b${\b{F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE[\b[_\b$_\bi]\b]}\b} was called from the file
- $\b${\b{B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE[\b[_\b$_\bi_\b+_\b1]\b]}\b} at line number $\b${\b{B\bBA\bAS\bSH\bH_\b_L\bLI\bIN\bNE\bEN\bNO\bO[\b[_\b$_\bi]\b]}\b}. The
+ stance, $\b${\b{F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE[\b[_\b$_\bi]\b]}\b} was called from the file
+ $\b${\b{B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE[\b[_\b$_\bi_\b+_\b1]\b]}\b} at line number $\b${\b{B\bBA\bAS\bSH\bH_\b_L\bLI\bIN\bNE\bEN\bNO\bO[\b[_\b$_\bi]\b]}\b}. The
c\bca\bal\bll\ble\ber\br builtin displays the current call stack using this infor-
mation.
- G\bGR\bRO\bOU\bUP\bPS\bS An array variable containing the list of groups of which the
+ G\bGR\bRO\bOU\bUP\bPS\bS An array variable containing the list of groups of which the
current user is a member. Assignments to G\bGR\bRO\bOU\bUP\bPS\bS have no effect.
- If G\bGR\bRO\bOU\bUP\bPS\bS is unset, it loses its special properties, even if it
+ If G\bGR\bRO\bOU\bUP\bPS\bS is unset, it loses its special properties, even if it
is subsequently reset.
H\bHI\bIS\bST\bTC\bCM\bMD\bD
The history number, or index in the history list, of the current
- command. Assignments to H\bHI\bIS\bST\bTC\bCM\bMD\bD have no effect. If H\bHI\bIS\bST\bTC\bCM\bMD\bD is
- unset, it loses its special properties, even if it is subse-
+ command. Assignments to H\bHI\bIS\bST\bTC\bCM\bMD\bD have no effect. If H\bHI\bIS\bST\bTC\bCM\bMD\bD is
+ unset, it loses its special properties, even if it is subse-
quently reset.
H\bHO\bOS\bST\bTN\bNA\bAM\bME\bE
Automatically set to the name of the current host.
H\bHO\bOS\bST\bTT\bTY\bYP\bPE\bE
- Automatically set to a string that uniquely describes the type
- of machine on which b\bba\bas\bsh\bh is executing. The default is system-
+ Automatically set to a string that uniquely describes the type
+ of machine on which b\bba\bas\bsh\bh is executing. The default is system-
dependent.
- L\bLI\bIN\bNE\bEN\bNO\bO Each time this parameter is referenced, the shell substitutes a
- decimal number representing the current sequential line number
- (starting with 1) within a script or function. When not in a
- script or function, the value substituted is not guaranteed to
+ L\bLI\bIN\bNE\bEN\bNO\bO Each time this parameter is referenced, the shell substitutes a
+ decimal number representing the current sequential line number
+ (starting with 1) within a script or function. When not in a
+ script or function, the value substituted is not guaranteed to
be meaningful. If L\bLI\bIN\bNE\bEN\bNO\bO is unset, it loses its special proper-
ties, even if it is subsequently reset.
M\bMA\bAC\bCH\bHT\bTY\bYP\bPE\bE
- Automatically set to a string that fully describes the system
- type on which b\bba\bas\bsh\bh is executing, in the standard GNU _\bc_\bp_\bu_\b-_\bc_\bo_\bm_\b-
+ Automatically set to a string that fully describes the system
+ type on which b\bba\bas\bsh\bh is executing, in the standard GNU _\bc_\bp_\bu_\b-_\bc_\bo_\bm_\b-
_\bp_\ba_\bn_\by_\b-_\bs_\by_\bs_\bt_\be_\bm format. The default is system-dependent.
M\bMA\bAP\bPF\bFI\bIL\bLE\bE
- An array variable (see A\bAr\brr\bra\bay\bys\bs below) created to hold the text
+ An array variable (see A\bAr\brr\bra\bay\bys\bs below) created to hold the text
read by the m\bma\bap\bpf\bfi\bil\ble\be builtin when no variable name is supplied.
O\bOL\bLD\bDP\bPW\bWD\bD The previous working directory as set by the c\bcd\bd command.
- O\bOP\bPT\bTA\bAR\bRG\bG The value of the last option argument processed by the g\bge\bet\bto\bop\bpt\bts\bs
+ O\bOP\bPT\bTA\bAR\bRG\bG The value of the last option argument processed by the g\bge\bet\bto\bop\bpt\bts\bs
builtin command (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below).
- O\bOP\bPT\bTI\bIN\bND\bD The index of the next argument to be processed by the g\bge\bet\bto\bop\bpt\bts\bs
+ O\bOP\bPT\bTI\bIN\bND\bD The index of the next argument to be processed by the g\bge\bet\bto\bop\bpt\bts\bs
builtin command (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below).
- O\bOS\bST\bTY\bYP\bPE\bE Automatically set to a string that describes the operating sys-
- tem on which b\bba\bas\bsh\bh is executing. The default is system-depen-
+ O\bOS\bST\bTY\bYP\bPE\bE Automatically set to a string that describes the operating sys-
+ tem on which b\bba\bas\bsh\bh is executing. The default is system-depen-
dent.
P\bPI\bIP\bPE\bES\bST\bTA\bAT\bTU\bUS\bS
- An array variable (see A\bAr\brr\bra\bay\bys\bs below) containing a list of exit
- status values from the commands in the most-recently-executed
- foreground pipeline, which may consist of only a simple command
+ An array variable (see A\bAr\brr\bra\bay\bys\bs below) containing a list of exit
+ status values from the commands in the most-recently-executed
+ foreground pipeline, which may consist of only a simple command
(see S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR above). B\bBa\bas\bsh\bh sets P\bPI\bIP\bPE\bES\bST\bTA\bAT\bTU\bUS\bS after executing
- multi-element pipelines, timed and negated pipelines, simple
- commands, subshells created with the ( operator, the [\b[[\b[ and (\b((\b(
+ multi-element pipelines, timed and negated pipelines, simple
+ commands, subshells created with the ( operator, the [\b[[\b[ and (\b((\b(
compound commands, and after error conditions that result in the
shell aborting command execution.
- P\bPP\bPI\bID\bD The process ID of the shell's parent. This variable is read-
+ P\bPP\bPI\bID\bD The process ID of the shell's parent. This variable is read-
only.
P\bPW\bWD\bD The current working directory as set by the c\bcd\bd command.
- R\bRA\bAN\bND\bDO\bOM\bM Each time this parameter is referenced, it expands to a random
- integer between 0 and 32767. Assigning a value to R\bRA\bAN\bND\bDO\bOM\bM ini-
- tializes (seeds) the sequence of random numbers. Seeding the
- random number generator with the same constant value produces
- the same sequence of values. If R\bRA\bAN\bND\bDO\bOM\bM is unset, it loses its
+ R\bRA\bAN\bND\bDO\bOM\bM Each time this parameter is referenced, it expands to a random
+ integer between 0 and 32767. Assigning a value to R\bRA\bAN\bND\bDO\bOM\bM ini-
+ tializes (seeds) the sequence of random numbers. Seeding the
+ random number generator with the same constant value produces
+ the same sequence of values. If R\bRA\bAN\bND\bDO\bOM\bM is unset, it loses its
special properties, even if it is subsequently reset.
R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE_\b_A\bAR\bRG\bGU\bUM\bME\bEN\bNT\bT
- Any numeric argument given to a r\bre\bea\bad\bdl\bli\bin\bne\be command that was de-
+ Any numeric argument given to a r\bre\bea\bad\bdl\bli\bin\bne\be command that was de-
fined using "bind -x" (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below) when it
was invoked.
R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE_\b_L\bLI\bIN\bNE\bE
(see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below).
R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE_\b_M\bMA\bAR\bRK\bK
The position of the mark (saved insertion point) in the r\bre\bea\bad\bdl\bli\bin\bne\be
- line buffer, for use with "bind -x" (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
+ line buffer, for use with "bind -x" (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
below). The characters between the insertion point and the mark
are often called the _\br_\be_\bg_\bi_\bo_\bn.
R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE_\b_P\bPO\bOI\bIN\bNT\bT
The position of the insertion point in the r\bre\bea\bad\bdl\bli\bin\bne\be line buffer,
for use with "bind -x" (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below).
- R\bRE\bEP\bPL\bLY\bY Set to the line of input read by the r\bre\bea\bad\bd builtin command when
+ R\bRE\bEP\bPL\bLY\bY Set to the line of input read by the r\bre\bea\bad\bd builtin command when
no arguments are supplied.
S\bSE\bEC\bCO\bON\bND\bDS\bS
Each time this parameter is referenced, it expands to the number
- of seconds since shell invocation. If a value is assigned to
- S\bSE\bEC\bCO\bON\bND\bDS\bS, the value returned upon subsequent references is the
- number of seconds since the assignment plus the value assigned.
- The number of seconds at shell invocation and the current time
+ of seconds since shell invocation. If a value is assigned to
+ S\bSE\bEC\bCO\bON\bND\bDS\bS, the value returned upon subsequent references is the
+ number of seconds since the assignment plus the value assigned.
+ The number of seconds at shell invocation and the current time
are always determined by querying the system clock at one-second
- resolution. If S\bSE\bEC\bCO\bON\bND\bDS\bS is unset, it loses its special proper-
+ resolution. If S\bSE\bEC\bCO\bON\bND\bDS\bS is unset, it loses its special proper-
ties, even if it is subsequently reset.
S\bSH\bHE\bEL\bLL\bLO\bOP\bPT\bTS\bS
- A colon-separated list of enabled shell options. Each word in
- the list is a valid argument for the -\b-o\bo option to the s\bse\bet\bt
+ A colon-separated list of enabled shell options. Each word in
+ the list is a valid argument for the -\b-o\bo option to the s\bse\bet\bt
builtin command (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below). The options
- appearing in S\bSH\bHE\bEL\bLL\bLO\bOP\bPT\bTS\bS are those reported as _\bo_\bn by s\bse\bet\bt -\b-o\bo. If
- this variable is in the environment when b\bba\bas\bsh\bh starts up, the
+ appearing in S\bSH\bHE\bEL\bLL\bLO\bOP\bPT\bTS\bS are those reported as _\bo_\bn by s\bse\bet\bt -\b-o\bo. If
+ this variable is in the environment when b\bba\bas\bsh\bh starts up, the
shell enables each option in the list before reading any startup
- files. If this variable is exported, child shells will enable
+ files. If this variable is exported, child shells will enable
each option in the list. This variable is read-only.
S\bSH\bHL\bLV\bVL\bL Incremented by one each time an instance of b\bba\bas\bsh\bh is started.
S\bSR\bRA\bAN\bND\bDO\bOM\bM
- Each time it is referenced, this variable expands to a 32-bit
+ Each time it is referenced, this variable expands to a 32-bit
pseudo-random number. The random number generator is not linear
- on systems that support _\b/_\bd_\be_\bv_\b/_\bu_\br_\ba_\bn_\bd_\bo_\bm or _\ba_\br_\bc_\b4_\br_\ba_\bn_\bd_\bo_\bm(3), so each
+ on systems that support _\b/_\bd_\be_\bv_\b/_\bu_\br_\ba_\bn_\bd_\bo_\bm or _\ba_\br_\bc_\b4_\br_\ba_\bn_\bd_\bo_\bm(3), so each
returned number has no relationship to the numbers preceding it.
- The random number generator cannot be seeded, so assignments to
+ The random number generator cannot be seeded, so assignments to
this variable have no effect. If S\bSR\bRA\bAN\bND\bDO\bOM\bM is unset, it loses its
special properties, even if it is subsequently reset.
U\bUI\bID\bD Expands to the user ID of the current user, initialized at shell
startup. This variable is readonly.
- The shell uses the following variables. In some cases, b\bba\bas\bsh\bh assigns a
+ The shell uses the following variables. In some cases, b\bba\bas\bsh\bh assigns a
default value to a variable; these cases are noted below.
B\bBA\bAS\bSH\bH_\b_C\bCO\bOM\bMP\bPA\bAT\bT
- The value is used to set the shell's compatibility level. See
- S\bSH\bHE\bEL\bLL\bL C\bCO\bOM\bMP\bPA\bAT\bTI\bIB\bBI\bIL\bLI\bIT\bTY\bY M\bMO\bOD\bDE\bE below for a description of the various
+ The value is used to set the shell's compatibility level. See
+ S\bSH\bHE\bEL\bLL\bL C\bCO\bOM\bMP\bPA\bAT\bTI\bIB\bBI\bIL\bLI\bIT\bTY\bY M\bMO\bOD\bDE\bE below for a description of the various
compatibility levels and their effects. The value may be a dec-
- imal number (e.g., 4.2) or an integer (e.g., 42) corresponding
- to the desired compatibility level. If B\bBA\bAS\bSH\bH_\b_C\bCO\bOM\bMP\bPA\bAT\bT is unset or
- set to the empty string, the compatibility level is set to the
- default for the current version. If B\bBA\bAS\bSH\bH_\b_C\bCO\bOM\bMP\bPA\bAT\bT is set to a
- value that is not one of the valid compatibility levels, the
- shell prints an error message and sets the compatibility level
- to the default for the current version. A subset of the valid
- values correspond to the compatibility levels described below
- under S\bSH\bHE\bEL\bLL\bL C\bCO\bOM\bMP\bPA\bAT\bTI\bIB\bBI\bIL\bLI\bIT\bTY\bY M\bMO\bOD\bDE\bE. For example, 4.2 and 42 are
- valid values that correspond to the c\bco\bom\bmp\bpa\bat\bt4\b42\b2 s\bsh\bho\bop\bpt\bt option and
- set the compatibility level to 42. The current version is also
+ imal number (e.g., 4.2) or an integer (e.g., 42) corresponding
+ to the desired compatibility level. If B\bBA\bAS\bSH\bH_\b_C\bCO\bOM\bMP\bPA\bAT\bT is unset or
+ set to the empty string, the compatibility level is set to the
+ default for the current version. If B\bBA\bAS\bSH\bH_\b_C\bCO\bOM\bMP\bPA\bAT\bT is set to a
+ value that is not one of the valid compatibility levels, the
+ shell prints an error message and sets the compatibility level
+ to the default for the current version. A subset of the valid
+ values correspond to the compatibility levels described below
+ under S\bSH\bHE\bEL\bLL\bL C\bCO\bOM\bMP\bPA\bAT\bTI\bIB\bBI\bIL\bLI\bIT\bTY\bY M\bMO\bOD\bDE\bE. For example, 4.2 and 42 are
+ valid values that correspond to the c\bco\bom\bmp\bpa\bat\bt4\b42\b2 s\bsh\bho\bop\bpt\bt option and
+ set the compatibility level to 42. The current version is also
a valid value.
B\bBA\bAS\bSH\bH_\b_E\bEN\bNV\bV
- If this parameter is set when b\bba\bas\bsh\bh is executing a shell script,
- its expanded value is interpreted as a filename containing com-
- mands to initialize the shell before it reads and executes com-
- mands from the script. The value of B\bBA\bAS\bSH\bH_\b_E\bEN\bNV\bV is subjected to
+ If this parameter is set when b\bba\bas\bsh\bh is executing a shell script,
+ its expanded value is interpreted as a filename containing com-
+ mands to initialize the shell before it reads and executes com-
+ mands from the script. The value of B\bBA\bAS\bSH\bH_\b_E\bEN\bNV\bV is subjected to
parameter expansion, command substitution, and arithmetic expan-
- sion before being interpreted as a filename. P\bPA\bAT\bTH\bH is not used
+ sion before being interpreted as a filename. P\bPA\bAT\bTH\bH is not used
to search for the resultant filename.
B\bBA\bAS\bSH\bH_\b_X\bXT\bTR\bRA\bAC\bCE\bEF\bFD\bD
- If set to an integer corresponding to a valid file descriptor,
- b\bba\bas\bsh\bh writes the trace output generated when "set -x" is enabled
- to that file descriptor, instead of the standard error. The
- file descriptor is closed when B\bBA\bAS\bSH\bH_\b_X\bXT\bTR\bRA\bAC\bCE\bEF\bFD\bD is unset or as-
+ If set to an integer corresponding to a valid file descriptor,
+ b\bba\bas\bsh\bh writes the trace output generated when "set -x" is enabled
+ to that file descriptor, instead of the standard error. The
+ file descriptor is closed when B\bBA\bAS\bSH\bH_\b_X\bXT\bTR\bRA\bAC\bCE\bEF\bFD\bD is unset or as-
signed a new value. Unsetting B\bBA\bAS\bSH\bH_\b_X\bXT\bTR\bRA\bAC\bCE\bEF\bFD\bD or assigning it the
- empty string causes the trace output to be sent to the standard
+ empty string causes the trace output to be sent to the standard
error. Note that setting B\bBA\bAS\bSH\bH_\b_X\bXT\bTR\bRA\bAC\bCE\bEF\bFD\bD to 2 (the standard error
- file descriptor) and then unsetting it will result in the stan-
+ file descriptor) and then unsetting it will result in the stan-
dard error being closed.
- C\bCD\bDP\bPA\bAT\bTH\bH The search path for the c\bcd\bd command. This is a colon-separated
+ C\bCD\bDP\bPA\bAT\bTH\bH The search path for the c\bcd\bd command. This is a colon-separated
list of directories where the shell looks for directories speci-
- fied as arguments to the c\bcd\bd command. A sample value is
+ fied as arguments to the c\bcd\bd command. A sample value is
".:~:/usr".
C\bCH\bHI\bIL\bLD\bD_\b_M\bMA\bAX\bX
- Set the number of exited child status values for the shell to
- remember. B\bBa\bas\bsh\bh will not allow this value to be decreased below
- a POSIX-mandated minimum, and there is a maximum value (cur-
- rently 8192) that this may not exceed. The minimum value is
+ Set the number of exited child status values for the shell to
+ remember. B\bBa\bas\bsh\bh will not allow this value to be decreased below
+ a POSIX-mandated minimum, and there is a maximum value (cur-
+ rently 8192) that this may not exceed. The minimum value is
system-dependent.
C\bCO\bOL\bLU\bUM\bMN\bNS\bS
- Used by the s\bse\bel\ble\bec\bct\bt compound command to determine the terminal
- width when printing selection lists. Automatically set if the
- c\bch\bhe\bec\bck\bkw\bwi\bin\bns\bsi\biz\bze\be option is enabled or in an interactive shell upon
+ Used by the s\bse\bel\ble\bec\bct\bt compound command to determine the terminal
+ width when printing selection lists. Automatically set if the
+ c\bch\bhe\bec\bck\bkw\bwi\bin\bns\bsi\biz\bze\be option is enabled or in an interactive shell upon
receipt of a S\bSI\bIG\bGW\bWI\bIN\bNC\bCH\bH.
C\bCO\bOM\bMP\bPR\bRE\bEP\bPL\bLY\bY
An array variable from which b\bba\bas\bsh\bh reads the possible completions
- generated by a shell function invoked by the programmable com-
- pletion facility (see P\bPr\bro\bog\bgr\bra\bam\bmm\bma\bab\bbl\ble\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn below). Each ar-
+ generated by a shell function invoked by the programmable com-
+ pletion facility (see P\bPr\bro\bog\bgr\bra\bam\bmm\bma\bab\bbl\ble\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn below). Each ar-
ray element contains one possible completion.
- E\bEM\bMA\bAC\bCS\bS If b\bba\bas\bsh\bh finds this variable in the environment when the shell
- starts with value "t", it assumes that the shell is running in
+ E\bEM\bMA\bAC\bCS\bS If b\bba\bas\bsh\bh finds this variable in the environment when the shell
+ starts with value "t", it assumes that the shell is running in
an Emacs shell buffer and disables line editing.
- E\bEN\bNV\bV Expanded and executed similarly to B\bBA\bAS\bSH\bH_\b_E\bEN\bNV\bV (see I\bIN\bNV\bVO\bOC\bCA\bAT\bTI\bIO\bON\bN
+ E\bEN\bNV\bV Expanded and executed similarly to B\bBA\bAS\bSH\bH_\b_E\bEN\bNV\bV (see I\bIN\bNV\bVO\bOC\bCA\bAT\bTI\bIO\bON\bN
above) when an interactive shell is invoked in posix mode.
E\bEX\bXE\bEC\bCI\bIG\bGN\bNO\bOR\bRE\bE
- A colon-separated list of shell patterns (see P\bPa\bat\btt\bte\ber\brn\bn M\bMa\bat\btc\bch\bhi\bin\bng\bg)
- defining the set of filenames to be ignored by command search
- using P\bPA\bAT\bTH\bH. Files whose full pathnames match one of these pat-
- terns are not considered executable files for the purposes of
+ A colon-separated list of shell patterns (see P\bPa\bat\btt\bte\ber\brn\bn M\bMa\bat\btc\bch\bhi\bin\bng\bg)
+ defining the set of filenames to be ignored by command search
+ using P\bPA\bAT\bTH\bH. Files whose full pathnames match one of these pat-
+ terns are not considered executable files for the purposes of
completion and command execution via P\bPA\bAT\bTH\bH lookup. This does not
affect the behavior of the [\b[, t\bte\bes\bst\bt, and [\b[[\b[ commands. Full path-
- names in the command hash table are not subject to E\bEX\bXE\bEC\bCI\bIG\bGN\bNO\bOR\bRE\bE.
- Use this variable to ignore shared library files that have the
- executable bit set, but are not executable files. The pattern
+ names in the command hash table are not subject to E\bEX\bXE\bEC\bCI\bIG\bGN\bNO\bOR\bRE\bE.
+ Use this variable to ignore shared library files that have the
+ executable bit set, but are not executable files. The pattern
matching honors the setting of the e\bex\bxt\btg\bgl\blo\bob\bb shell option.
F\bFC\bCE\bED\bDI\bIT\bT The default editor for the f\bfc\bc builtin command.
F\bFI\bIG\bGN\bNO\bOR\bRE\bE
- A colon-separated list of suffixes to ignore when performing
+ A colon-separated list of suffixes to ignore when performing
filename completion (see R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE below). A filename whose suf-
- fix matches one of the entries in F\bFI\bIG\bGN\bNO\bOR\bRE\bE is excluded from the
+ fix matches one of the entries in F\bFI\bIG\bGN\bNO\bOR\bRE\bE is excluded from the
list of matched filenames. A sample value is ".o:~".
F\bFU\bUN\bNC\bCN\bNE\bES\bST\bT
- If set to a numeric value greater than 0, defines a maximum
- function nesting level. Function invocations that exceed this
+ If set to a numeric value greater than 0, defines a maximum
+ function nesting level. Function invocations that exceed this
nesting level cause the current command to abort.
G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE
- A colon-separated list of patterns defining the set of file
- names to be ignored by pathname expansion. If a file name
- matched by a pathname expansion pattern also matches one of the
- patterns in G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE, it is removed from the list of matches.
+ A colon-separated list of patterns defining the set of file
+ names to be ignored by pathname expansion. If a file name
+ matched by a pathname expansion pattern also matches one of the
+ patterns in G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE, it is removed from the list of matches.
The pattern matching honors the setting of the e\bex\bxt\btg\bgl\blo\bob\bb shell op-
tion.
G\bGL\bLO\bOB\bBS\bSO\bOR\bRT\bT
- Controls how the results of pathname expansion are sorted. The
- value of this variable specifies the sort criteria and sort or-
- der for the results of pathname expansion. If this variable is
- unset or set to the null string, pathname expansion uses the
- historical behavior of sorting by name, in ascending lexico-
+ Controls how the results of pathname expansion are sorted. The
+ value of this variable specifies the sort criteria and sort or-
+ der for the results of pathname expansion. If this variable is
+ unset or set to the null string, pathname expansion uses the
+ historical behavior of sorting by name, in ascending lexico-
graphic order as determined by the L\bLC\bC_\b_C\bCO\bOL\bLL\bLA\bAT\bTE\bE shell variable.
- If set, a valid value begins with an optional _\b+, which is ig-
+ If set, a valid value begins with an optional _\b+, which is ig-
nored, or _\b-, which reverses the sort order from ascending to de-
- scending, followed by a sort specifier. The valid sort speci-
- fiers are _\bn_\ba_\bm_\be, _\bn_\bu_\bm_\be_\br_\bi_\bc, _\bs_\bi_\bz_\be, _\bm_\bt_\bi_\bm_\be, _\ba_\bt_\bi_\bm_\be, _\bc_\bt_\bi_\bm_\be, and _\bb_\bl_\bo_\bc_\bk_\bs,
+ scending, followed by a sort specifier. The valid sort speci-
+ fiers are _\bn_\ba_\bm_\be, _\bn_\bu_\bm_\be_\br_\bi_\bc, _\bs_\bi_\bz_\be, _\bm_\bt_\bi_\bm_\be, _\ba_\bt_\bi_\bm_\be, _\bc_\bt_\bi_\bm_\be, and _\bb_\bl_\bo_\bc_\bk_\bs,
which sort the files on name, names in numeric rather than lexi-
- cographic order, file size, modification time, access time, in-
- ode change time, and number of blocks, respectively. If any of
- the non-name keys compare as equal (e.g., if two files are the
+ cographic order, file size, modification time, access time, in-
+ ode change time, and number of blocks, respectively. If any of
+ the non-name keys compare as equal (e.g., if two files are the
same size), sorting uses the name as a secondary sort key.
- For example, a value of _\b-_\bm_\bt_\bi_\bm_\be sorts the results in descending
+ For example, a value of _\b-_\bm_\bt_\bi_\bm_\be sorts the results in descending
order by modification time (newest first).
- The _\bn_\bu_\bm_\be_\br_\bi_\bc specifier treats names consisting solely of digits
- as numbers and sorts them using their numeric value (so "2"
+ The _\bn_\bu_\bm_\be_\br_\bi_\bc specifier treats names consisting solely of digits
+ as numbers and sorts them using their numeric value (so "2"
sorts before "10", for example). When using _\bn_\bu_\bm_\be_\br_\bi_\bc, names con-
- taining non-digits sort after all the all-digit names and are
+ taining non-digits sort after all the all-digit names and are
sorted by name using the traditional behavior.
A sort specifier of _\bn_\bo_\bs_\bo_\br_\bt disables sorting completely; b\bba\bas\bsh\bh re-
- turns the results in the order they are read from the file sys-
+ turns the results in the order they are read from the file sys-
tem, ignoring any leading _\b-.
- If the sort specifier is missing, it defaults to _\bn_\ba_\bm_\be, so a
- value of _\b+ is equivalent to the null string, and a value of _\b-
- sorts by name in descending order. Any invalid value restores
+ If the sort specifier is missing, it defaults to _\bn_\ba_\bm_\be, so a
+ value of _\b+ is equivalent to the null string, and a value of _\b-
+ sorts by name in descending order. Any invalid value restores
the historical sorting behavior.
H\bHI\bIS\bST\bTC\bCO\bON\bNT\bTR\bRO\bOL\bL
- A colon-separated list of values controlling how commands are
- saved on the history list. If the list of values includes
- _\bi_\bg_\bn_\bo_\br_\be_\bs_\bp_\ba_\bc_\be, lines which begin with a s\bsp\bpa\bac\bce\be character are not
- saved in the history list. A value of _\bi_\bg_\bn_\bo_\br_\be_\bd_\bu_\bp_\bs causes lines
+ A colon-separated list of values controlling how commands are
+ saved on the history list. If the list of values includes
+ _\bi_\bg_\bn_\bo_\br_\be_\bs_\bp_\ba_\bc_\be, lines which begin with a s\bsp\bpa\bac\bce\be character are not
+ saved in the history list. A value of _\bi_\bg_\bn_\bo_\br_\be_\bd_\bu_\bp_\bs causes lines
matching the previous history entry not to be saved. A value of
_\bi_\bg_\bn_\bo_\br_\be_\bb_\bo_\bt_\bh is shorthand for _\bi_\bg_\bn_\bo_\br_\be_\bs_\bp_\ba_\bc_\be and _\bi_\bg_\bn_\bo_\br_\be_\bd_\bu_\bp_\bs. A value
of _\be_\br_\ba_\bs_\be_\bd_\bu_\bp_\bs causes all previous lines matching the current line
- to be removed from the history list before that line is saved.
- Any value not in the above list is ignored. If H\bHI\bIS\bST\bTC\bCO\bON\bNT\bTR\bRO\bOL\bL is
- unset, or does not include a valid value, b\bba\bas\bsh\bh saves all lines
- read by the shell parser on the history list, subject to the
+ to be removed from the history list before that line is saved.
+ Any value not in the above list is ignored. If H\bHI\bIS\bST\bTC\bCO\bON\bNT\bTR\bRO\bOL\bL is
+ unset, or does not include a valid value, b\bba\bas\bsh\bh saves all lines
+ read by the shell parser on the history list, subject to the
value of H\bHI\bIS\bST\bTI\bIG\bGN\bNO\bOR\bRE\bE. If the first line of a multi-line compound
- command was saved, the second and subsequent lines are not
- tested, and are added to the history regardless of the value of
- H\bHI\bIS\bST\bTC\bCO\bON\bNT\bTR\bRO\bOL\bL. If the first line was not saved, the second and
+ command was saved, the second and subsequent lines are not
+ tested, and are added to the history regardless of the value of
+ H\bHI\bIS\bST\bTC\bCO\bON\bNT\bTR\bRO\bOL\bL. If the first line was not saved, the second and
subsequent lines of the command are not saved either.
H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE
The name of the file in which command history is saved (see H\bHI\bIS\bS-\b-
- T\bTO\bOR\bRY\bY below). B\bBa\bas\bsh\bh assigns a default value of _\b~_\b/_\b._\bb_\ba_\bs_\bh_\b__\bh_\bi_\bs_\bt_\bo_\br_\by.
- If H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE is unset or null, the shell does not save the com-
+ T\bTO\bOR\bRY\bY below). B\bBa\bas\bsh\bh assigns a default value of _\b~_\b/_\b._\bb_\ba_\bs_\bh_\b__\bh_\bi_\bs_\bt_\bo_\br_\by.
+ If H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE is unset or null, the shell does not save the com-
mand history when it exits.
H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bES\bSI\bIZ\bZE\bE
The maximum number of lines contained in the history file. When
- this variable is assigned a value, the history file is trun-
- cated, if necessary, to contain no more than that number of
- lines by removing the oldest entries. The history file is also
+ this variable is assigned a value, the history file is trun-
+ cated, if necessary, to contain no more than that number of
+ lines by removing the oldest entries. The history file is also
truncated to this size after writing it when a shell exits or by
- the h\bhi\bis\bst\bto\bor\bry\by builtin. If the value is 0, the history file is
- truncated to zero size. Non-numeric values and numeric values
- less than zero inhibit truncation. The shell sets the default
+ the h\bhi\bis\bst\bto\bor\bry\by builtin. If the value is 0, the history file is
+ truncated to zero size. Non-numeric values and numeric values
+ less than zero inhibit truncation. The shell sets the default
value to the value of H\bHI\bIS\bST\bTS\bSI\bIZ\bZE\bE after reading any startup files.
H\bHI\bIS\bST\bTI\bIG\bGN\bNO\bOR\bRE\bE
- A colon-separated list of patterns used to decide which command
- lines should be saved on the history list. If a command line
- matches one of the patterns in the value of H\bHI\bIS\bST\bTI\bIG\bGN\bNO\bOR\bRE\bE, it is
- not saved on the history list. Each pattern is anchored at the
- beginning of the line and must match the complete line (b\bba\bas\bsh\bh
- does not implicitly append a "*\b*"). Each pattern is tested
- against the line after the checks specified by H\bHI\bIS\bST\bTC\bCO\bON\bNT\bTR\bRO\bOL\bL are
+ A colon-separated list of patterns used to decide which command
+ lines should be saved on the history list. If a command line
+ matches one of the patterns in the value of H\bHI\bIS\bST\bTI\bIG\bGN\bNO\bOR\bRE\bE, it is
+ not saved on the history list. Each pattern is anchored at the
+ beginning of the line and must match the complete line (b\bba\bas\bsh\bh
+ does not implicitly append a "*\b*"). Each pattern is tested
+ against the line after the checks specified by H\bHI\bIS\bST\bTC\bCO\bON\bNT\bTR\bRO\bOL\bL are
applied. In addition to the normal shell pattern matching char-
- acters, "&\b&" matches the previous history line. A backslash es-
- capes the "&\b&"; the backslash is removed before attempting a
- match. If the first line of a multi-line compound command was
- saved, the second and subsequent lines are not tested, and are
- added to the history regardless of the value of H\bHI\bIS\bST\bTI\bIG\bGN\bNO\bOR\bRE\bE. If
+ acters, "&\b&" matches the previous history line. A backslash es-
+ capes the "&\b&"; the backslash is removed before attempting a
+ match. If the first line of a multi-line compound command was
+ saved, the second and subsequent lines are not tested, and are
+ added to the history regardless of the value of H\bHI\bIS\bST\bTI\bIG\bGN\bNO\bOR\bRE\bE. If
the first line was not saved, the second and subsequent lines of
- the command are not saved either. The pattern matching honors
+ the command are not saved either. The pattern matching honors
the setting of the e\bex\bxt\btg\bgl\blo\bob\bb shell option.
H\bHI\bIS\bST\bTI\bIG\bGN\bNO\bOR\bRE\bE subsumes some of the function of H\bHI\bIS\bST\bTC\bCO\bON\bNT\bTR\bRO\bOL\bL. A pat-
- tern of "&" is identical to "ignoredups", and a pattern of "[
- ]*" is identical to "ignorespace". Combining these two pat-
- terns, separating them with a colon, provides the functionality
+ tern of "&" is identical to "ignoredups", and a pattern of "[
+ ]*" is identical to "ignorespace". Combining these two pat-
+ terns, separating them with a colon, provides the functionality
of "ignoreboth".
H\bHI\bIS\bST\bTS\bSI\bIZ\bZE\bE
- The number of commands to remember in the command history (see
- H\bHI\bIS\bST\bTO\bOR\bRY\bY below). If the value is 0, commands are not saved in
+ The number of commands to remember in the command history (see
+ H\bHI\bIS\bST\bTO\bOR\bRY\bY below). If the value is 0, commands are not saved in
the history list. Numeric values less than zero result in every
- command being saved on the history list (there is no limit).
- The shell sets the default value to 500 after reading any
+ command being saved on the history list (there is no limit).
+ The shell sets the default value to 500 after reading any
startup files.
H\bHI\bIS\bST\bTT\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT
- If this variable is set and not null, its value is used as a
+ If this variable is set and not null, its value is used as a
format string for _\bs_\bt_\br_\bf_\bt_\bi_\bm_\be(3) to print the time stamp associated
- with each history entry displayed by the h\bhi\bis\bst\bto\bor\bry\by builtin. If
- this variable is set, the shell writes time stamps to the his-
- tory file so they may be preserved across shell sessions. This
- uses the history comment character to distinguish timestamps
+ with each history entry displayed by the h\bhi\bis\bst\bto\bor\bry\by builtin. If
+ this variable is set, the shell writes time stamps to the his-
+ tory file so they may be preserved across shell sessions. This
+ uses the history comment character to distinguish timestamps
from other history lines.
H\bHO\bOM\bME\bE The home directory of the current user; the default argument for
the c\bcd\bd builtin command. The value of this variable is also used
when performing tilde expansion.
H\bHO\bOS\bST\bTF\bFI\bIL\bLE\bE
- Contains the name of a file in the same format as _\b/_\be_\bt_\bc_\b/_\bh_\bo_\bs_\bt_\bs
+ Contains the name of a file in the same format as _\b/_\be_\bt_\bc_\b/_\bh_\bo_\bs_\bt_\bs
that should be read when the shell needs to complete a hostname.
- The list of possible hostname completions may be changed while
- the shell is running; the next time hostname completion is at-
- tempted after the value is changed, b\bba\bas\bsh\bh adds the contents of
- the new file to the existing list. If H\bHO\bOS\bST\bTF\bFI\bIL\bLE\bE is set, but has
- no value, or does not name a readable file, b\bba\bas\bsh\bh attempts to
- read _\b/_\be_\bt_\bc_\b/_\bh_\bo_\bs_\bt_\bs to obtain the list of possible hostname comple-
+ The list of possible hostname completions may be changed while
+ the shell is running; the next time hostname completion is at-
+ tempted after the value is changed, b\bba\bas\bsh\bh adds the contents of
+ the new file to the existing list. If H\bHO\bOS\bST\bTF\bFI\bIL\bLE\bE is set, but has
+ no value, or does not name a readable file, b\bba\bas\bsh\bh attempts to
+ read _\b/_\be_\bt_\bc_\b/_\bh_\bo_\bs_\bt_\bs to obtain the list of possible hostname comple-
tions. When H\bHO\bOS\bST\bTF\bFI\bIL\bLE\bE is unset, b\bba\bas\bsh\bh clears the hostname list.
I\bIF\bFS\bS The _\bI_\bn_\bt_\be_\br_\bn_\ba_\bl _\bF_\bi_\be_\bl_\bd _\bS_\be_\bp_\ba_\br_\ba_\bt_\bo_\br that is used for word splitting af-
- ter expansion and to split lines into words with the r\bre\bea\bad\bd
+ ter expansion and to split lines into words with the r\bre\bea\bad\bd
builtin command. Word splitting is described below under E\bEX\bXP\bPA\bAN\bN-\b-
S\bSI\bIO\bON\bN. The default value is "<space><tab><newline>".
I\bIG\bGN\bNO\bOR\bRE\bEE\bEO\bOF\bF
Controls the action of an interactive shell on receipt of an E\bEO\bOF\bF
character as the sole input. If set, the value is the number of
- consecutive E\bEO\bOF\bF characters which must be typed as the first
- characters on an input line before b\bba\bas\bsh\bh exits. If the variable
- is set but does not have a numeric value, or the value is null,
- the default value is 10. If it is unset, E\bEO\bOF\bF signifies the end
+ consecutive E\bEO\bOF\bF characters which must be typed as the first
+ characters on an input line before b\bba\bas\bsh\bh exits. If the variable
+ is set but does not have a numeric value, or the value is null,
+ the default value is 10. If it is unset, E\bEO\bOF\bF signifies the end
of input to the shell.
I\bIN\bNP\bPU\bUT\bTR\bRC\bC
- The filename for the r\bre\bea\bad\bdl\bli\bin\bne\be startup file, overriding the de-
+ The filename for the r\bre\bea\bad\bdl\bli\bin\bne\be startup file, overriding the de-
fault of _\b~_\b/_\b._\bi_\bn_\bp_\bu_\bt_\br_\bc (see R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE below).
I\bIN\bNS\bSI\bID\bDE\bE_\b_E\bEM\bMA\bAC\bCS\bS
- If this variable appears in the environment when the shell
- starts, b\bba\bas\bsh\bh assumes that it is running inside an Emacs shell
- buffer and may disable line editing, depending on the value of
+ If this variable appears in the environment when the shell
+ starts, b\bba\bas\bsh\bh assumes that it is running inside an Emacs shell
+ buffer and may disable line editing, depending on the value of
T\bTE\bER\bRM\bM.
- L\bLA\bAN\bNG\bG Used to determine the locale category for any category not
+ L\bLA\bAN\bNG\bG Used to determine the locale category for any category not
specifically selected with a variable starting with L\bLC\bC_\b_.
- L\bLC\bC_\b_A\bAL\bLL\bL This variable overrides the value of L\bLA\bAN\bNG\bG and any other L\bLC\bC_\b_
+ L\bLC\bC_\b_A\bAL\bLL\bL This variable overrides the value of L\bLA\bAN\bNG\bG and any other L\bLC\bC_\b_
variable specifying a locale category.
L\bLC\bC_\b_C\bCO\bOL\bLL\bLA\bAT\bTE\bE
- This variable determines the collation order used when sorting
- the results of pathname expansion, and determines the behavior
- of range expressions, equivalence classes, and collating se-
+ This variable determines the collation order used when sorting
+ the results of pathname expansion, and determines the behavior
+ of range expressions, equivalence classes, and collating se-
quences within pathname expansion and pattern matching.
L\bLC\bC_\b_C\bCT\bTY\bYP\bPE\bE
- This variable determines the interpretation of characters and
- the behavior of character classes within pathname expansion and
+ This variable determines the interpretation of characters and
+ the behavior of character classes within pathname expansion and
pattern matching.
L\bLC\bC_\b_M\bME\bES\bSS\bSA\bAG\bGE\bES\bS
- This variable determines the locale used to translate double-
+ This variable determines the locale used to translate double-
quoted strings preceded by a $\b$.
L\bLC\bC_\b_N\bNU\bUM\bME\bER\bRI\bIC\bC
- This variable determines the locale category used for number
+ This variable determines the locale category used for number
formatting.
L\bLC\bC_\b_T\bTI\bIM\bME\bE
- This variable determines the locale category used for data and
+ This variable determines the locale category used for data and
time formatting.
- L\bLI\bIN\bNE\bES\bS Used by the s\bse\bel\ble\bec\bct\bt compound command to determine the column
- length for printing selection lists. Automatically set if the
- c\bch\bhe\bec\bck\bkw\bwi\bin\bns\bsi\biz\bze\be option is enabled or in an interactive shell upon
+ L\bLI\bIN\bNE\bES\bS Used by the s\bse\bel\ble\bec\bct\bt compound command to determine the column
+ length for printing selection lists. Automatically set if the
+ c\bch\bhe\bec\bck\bkw\bwi\bin\bns\bsi\biz\bze\be option is enabled or in an interactive shell upon
receipt of a S\bSI\bIG\bGW\bWI\bIN\bNC\bCH\bH.
M\bMA\bAI\bIL\bL If the value is set to a file or directory name and the M\bMA\bAI\bIL\bLP\bPA\bAT\bTH\bH
- variable is not set, b\bba\bas\bsh\bh informs the user of the arrival of
+ variable is not set, b\bba\bas\bsh\bh informs the user of the arrival of
mail in the specified file or Maildir-format directory.
M\bMA\bAI\bIL\bLC\bCH\bHE\bEC\bCK\bK
- Specifies how often (in seconds) b\bba\bas\bsh\bh checks for mail. The de-
- fault is 60 seconds. When it is time to check for mail, the
- shell does so before displaying the primary prompt. If this
- variable is unset, or set to a value that is not a number
+ Specifies how often (in seconds) b\bba\bas\bsh\bh checks for mail. The de-
+ fault is 60 seconds. When it is time to check for mail, the
+ shell does so before displaying the primary prompt. If this
+ variable is unset, or set to a value that is not a number
greater than or equal to zero, the shell disables mail checking.
M\bMA\bAI\bIL\bLP\bPA\bAT\bTH\bH
A colon-separated list of filenames to be checked for mail. The
message to be printed when mail arrives in a particular file may
- be specified by separating the filename from the message with a
- "?". When used in the text of the message, $\b$_\b_ expands to the
+ be specified by separating the filename from the message with a
+ "?". When used in the text of the message, $\b$_\b_ expands to the
name of the current mailfile. For example:
M\bMA\bAI\bIL\bLP\bPA\bAT\bTH\bH='/var/mail/bfox?"You have mail":~/shell-mail?"$_ has mail!"'
- B\bBa\bas\bsh\bh can be configured to supply a default value for this vari-
- able (there is no value by default), but the location of the
+ B\bBa\bas\bsh\bh can be configured to supply a default value for this vari-
+ able (there is no value by default), but the location of the
user mail files that it uses is system dependent (e.g.,
/var/mail/$\b$U\bUS\bSE\bER\bR).
O\bOP\bPT\bTE\bER\bRR\bR If set to the value 1, b\bba\bas\bsh\bh displays error messages generated by
- the g\bge\bet\bto\bop\bpt\bts\bs builtin command (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below).
- O\bOP\bPT\bTE\bER\bRR\bR is initialized to 1 each time the shell is invoked or a
+ the g\bge\bet\bto\bop\bpt\bts\bs builtin command (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below).
+ O\bOP\bPT\bTE\bER\bRR\bR is initialized to 1 each time the shell is invoked or a
shell script is executed.
- P\bPA\bAT\bTH\bH The search path for commands. It is a colon-separated list of
- directories in which the shell looks for commands (see C\bCO\bOM\bMM\bMA\bAN\bND\bD
- E\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\bN below). A zero-length (null) directory name in the
+ P\bPA\bAT\bTH\bH The search path for commands. It is a colon-separated list of
+ directories in which the shell looks for commands (see C\bCO\bOM\bMM\bMA\bAN\bND\bD
+ E\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\bN below). A zero-length (null) directory name in the
value of P\bPA\bAT\bTH\bH indicates the current directory. A null directory
- name may appear as two adjacent colons, or as an initial or
- trailing colon. The default path is system-dependent, and is
+ name may appear as two adjacent colons, or as an initial or
+ trailing colon. The default path is system-dependent, and is
set by the administrator who installs b\bba\bas\bsh\bh. A common value is
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin
P\bPO\bOS\bSI\bIX\bXL\bLY\bY_\b_C\bCO\bOR\bRR\bRE\bEC\bCT\bT
- If this variable is in the environment when b\bba\bas\bsh\bh starts, the
- shell enters posix mode before reading the startup files, as if
- the -\b--\b-p\bpo\bos\bsi\bix\bx invocation option had been supplied. If it is set
- while the shell is running, b\bba\bas\bsh\bh enables posix mode, as if the
+ If this variable is in the environment when b\bba\bas\bsh\bh starts, the
+ shell enters posix mode before reading the startup files, as if
+ the -\b--\b-p\bpo\bos\bsi\bix\bx invocation option had been supplied. If it is set
+ while the shell is running, b\bba\bas\bsh\bh enables posix mode, as if the
command "set -o posix" had been executed. When the shell enters
posix mode, it sets this variable if it was not already set.
P\bPR\bRO\bOM\bMP\bPT\bT_\b_C\bCO\bOM\bMM\bMA\bAN\bND\bD
- If this variable is set, and is an array, the value of each set
- element is executed as a command prior to issuing each primary
- prompt. If this is set but not an array variable, its value is
+ If this variable is set, and is an array, the value of each set
+ element is executed as a command prior to issuing each primary
+ prompt. If this is set but not an array variable, its value is
used as a command to execute instead.
P\bPR\bRO\bOM\bMP\bPT\bT_\b_D\bDI\bIR\bRT\bTR\bRI\bIM\bM
- If set to a number greater than zero, the value is used as the
+ If set to a number greater than zero, the value is used as the
number of trailing directory components to retain when expanding
- the \\b\w\bw and \\b\W\bW prompt string escapes (see P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\bG below).
+ the \\b\w\bw and \\b\W\bW prompt string escapes (see P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\bG below).
Characters removed are replaced with an ellipsis.
- P\bPS\bS0\b0 The value of this parameter is expanded (see P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\bG below)
- and displayed by interactive shells after reading a command and
+ P\bPS\bS0\b0 The value of this parameter is expanded (see P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\bG below)
+ and displayed by interactive shells after reading a command and
before the command is executed.
- P\bPS\bS1\b1 The value of this parameter is expanded (see P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\bG below)
- and used as the primary prompt string. The default value is
+ P\bPS\bS1\b1 The value of this parameter is expanded (see P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\bG below)
+ and used as the primary prompt string. The default value is
"\s-\v\$ ".
- P\bPS\bS2\b2 The value of this parameter is expanded as with P\bPS\bS1\b1 and used as
+ P\bPS\bS2\b2 The value of this parameter is expanded as with P\bPS\bS1\b1 and used as
the secondary prompt string. The default is "> ".
P\bPS\bS3\b3 The value of this parameter is used as the prompt for the s\bse\bel\ble\bec\bct\bt
command (see S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR above).
- P\bPS\bS4\b4 The value of this parameter is expanded as with P\bPS\bS1\b1 and the
+ P\bPS\bS4\b4 The value of this parameter is expanded as with P\bPS\bS1\b1 and the
value is printed before each command b\bba\bas\bsh\bh displays during an ex-
ecution trace. The first character of the expanded value of P\bPS\bS4\b4
is replicated multiple times, as necessary, to indicate multiple
levels of indirection. The default is "+ ".
- S\bSH\bHE\bEL\bLL\bL This variable expands to the full pathname to the shell. If it
- is not set when the shell starts, b\bba\bas\bsh\bh assigns to it the full
+ S\bSH\bHE\bEL\bLL\bL This variable expands to the full pathname to the shell. If it
+ is not set when the shell starts, b\bba\bas\bsh\bh assigns to it the full
pathname of the current user's login shell.
T\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT
- The value of this parameter is used as a format string specify-
- ing how the timing information for pipelines prefixed with the
- t\bti\bim\bme\be reserved word should be displayed. The %\b% character intro-
- duces an escape sequence that is expanded to a time value or
- other information. The escape sequences and their meanings are
+ The value of this parameter is used as a format string specify-
+ ing how the timing information for pipelines prefixed with the
+ t\bti\bim\bme\be reserved word should be displayed. The %\b% character intro-
+ duces an escape sequence that is expanded to a time value or
+ other information. The escape sequences and their meanings are
as follows; the brackets denote optional portions.
%\b%%\b% A literal %\b%.
%\b%[\b[_\bp]\b][\b[l\bl]\b]R\bR The elapsed time in seconds.
%\b%[\b[_\bp]\b][\b[l\bl]\b]S\bS The number of CPU seconds spent in system mode.
%\b%P\bP The CPU percentage, computed as (%U + %S) / %R.
- The optional _\bp is a digit specifying the _\bp_\br_\be_\bc_\bi_\bs_\bi_\bo_\bn, the number
+ The optional _\bp is a digit specifying the _\bp_\br_\be_\bc_\bi_\bs_\bi_\bo_\bn, the number
of fractional digits after a decimal point. A value of 0 causes
- no decimal point or fraction to be output. t\bti\bim\bme\be prints at most
- six digits after the decimal point; values of _\bp greater than 6
+ no decimal point or fraction to be output. t\bti\bim\bme\be prints at most
+ six digits after the decimal point; values of _\bp greater than 6
are changed to 6. If _\bp is not specified, t\bti\bim\bme\be prints three dig-
its after the decimal point.
- The optional l\bl specifies a longer format, including minutes, of
- the form _\bM_\bMm_\bS_\bS._\bF_\bFs. The value of _\bp determines whether or not
+ The optional l\bl specifies a longer format, including minutes, of
+ the form _\bM_\bMm_\bS_\bS._\bF_\bFs. The value of _\bp determines whether or not
the fraction is included.
- If this variable is not set, b\bba\bas\bsh\bh acts as if it had the value
- $\b$'\b'\\b\n\bnr\bre\bea\bal\bl\\b\t\bt%\b%3\b3l\blR\bR\\b\n\bnu\bus\bse\ber\br\\b\t\bt%\b%3\b3l\blU\bU\\b\n\bns\bsy\bys\bs\\b\t\bt%\b%3\b3l\blS\bS'\b'. If the value is null,
- b\bba\bas\bsh\bh does not display any timing information. A trailing new-
+ If this variable is not set, b\bba\bas\bsh\bh acts as if it had the value
+ $\b$'\b'\\b\n\bnr\bre\bea\bal\bl\\b\t\bt%\b%3\b3l\blR\bR\\b\n\bnu\bus\bse\ber\br\\b\t\bt%\b%3\b3l\blU\bU\\b\n\bns\bsy\bys\bs\\b\t\bt%\b%3\b3l\blS\bS'\b'. If the value is null,
+ b\bba\bas\bsh\bh does not display any timing information. A trailing new-
line is added when the format string is displayed.
- T\bTM\bMO\bOU\bUT\bT If set to a value greater than zero, the r\bre\bea\bad\bd builtin uses the
- value as its default timeout. The s\bse\bel\ble\bec\bct\bt command terminates if
- input does not arrive after T\bTM\bMO\bOU\bUT\bT seconds when input is coming
- from a terminal. In an interactive shell, the value is inter-
- preted as the number of seconds to wait for a line of input af-
- ter issuing the primary prompt. B\bBa\bas\bsh\bh terminates after waiting
- for that number of seconds if a complete line of input does not
+ T\bTM\bMO\bOU\bUT\bT If set to a value greater than zero, the r\bre\bea\bad\bd builtin uses the
+ value as its default timeout. The s\bse\bel\ble\bec\bct\bt command terminates if
+ input does not arrive after T\bTM\bMO\bOU\bUT\bT seconds when input is coming
+ from a terminal. In an interactive shell, the value is inter-
+ preted as the number of seconds to wait for a line of input af-
+ ter issuing the primary prompt. B\bBa\bas\bsh\bh terminates after waiting
+ for that number of seconds if a complete line of input does not
arrive.
- T\bTM\bMP\bPD\bDI\bIR\bR If set, b\bba\bas\bsh\bh uses its value as the name of a directory in which
+ T\bTM\bMP\bPD\bDI\bIR\bR If set, b\bba\bas\bsh\bh uses its value as the name of a directory in which
b\bba\bas\bsh\bh creates temporary files for the shell's use.
a\bau\but\bto\bo_\b_r\bre\bes\bsu\bum\bme\be
This variable controls how the shell interacts with the user and
- job control. If this variable is set, simple commands consist-
- ing of only a single word, without redirections, are treated as
- candidates for resumption of an existing stopped job. There is
- no ambiguity allowed; if there is more than one job beginning
- with or containing the word, this selects the most recently ac-
- cessed job. The _\bn_\ba_\bm_\be of a stopped job, in this context, is the
- command line used to start it, as displayed by j\bjo\bob\bbs\bs. If set to
- the value _\be_\bx_\ba_\bc_\bt, the word must match the name of a stopped job
- exactly; if set to _\bs_\bu_\bb_\bs_\bt_\br_\bi_\bn_\bg, the word needs to match a sub-
- string of the name of a stopped job. The _\bs_\bu_\bb_\bs_\bt_\br_\bi_\bn_\bg value pro-
+ job control. If this variable is set, simple commands consist-
+ ing of only a single word, without redirections, are treated as
+ candidates for resumption of an existing stopped job. There is
+ no ambiguity allowed; if there is more than one job beginning
+ with or containing the word, this selects the most recently ac-
+ cessed job. The _\bn_\ba_\bm_\be of a stopped job, in this context, is the
+ command line used to start it, as displayed by j\bjo\bob\bbs\bs. If set to
+ the value _\be_\bx_\ba_\bc_\bt, the word must match the name of a stopped job
+ exactly; if set to _\bs_\bu_\bb_\bs_\bt_\br_\bi_\bn_\bg, the word needs to match a sub-
+ string of the name of a stopped job. The _\bs_\bu_\bb_\bs_\bt_\br_\bi_\bn_\bg value pro-
vides functionality analogous to the %\b%?\b? job identifier (see J\bJO\bOB\bB
- C\bCO\bON\bNT\bTR\bRO\bOL\bL below). If set to any other value (e.g., _\bp_\br_\be_\bf_\bi_\bx), the
- word must be a prefix of a stopped job's name; this provides
+ C\bCO\bON\bNT\bTR\bRO\bOL\bL below). If set to any other value (e.g., _\bp_\br_\be_\bf_\bi_\bx), the
+ word must be a prefix of a stopped job's name; this provides
functionality analogous to the %\b%_\bs_\bt_\br_\bi_\bn_\bg job identifier.
h\bhi\bis\bst\btc\bch\bha\bar\brs\bs
- The two or three characters which control history expansion,
- quick substitution, and tokenization (see H\bHI\bIS\bST\bTO\bOR\bRY\bY E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN be-
- low). The first character is the _\bh_\bi_\bs_\bt_\bo_\br_\by _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn character,
- the character which begins a history expansion, normally "!\b!".
- The second character is the _\bq_\bu_\bi_\bc_\bk _\bs_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn character, nor-
- mally "^\b^". When it appears as the first character on the line,
+ The two or three characters which control history expansion,
+ quick substitution, and tokenization (see H\bHI\bIS\bST\bTO\bOR\bRY\bY E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN be-
+ low). The first character is the _\bh_\bi_\bs_\bt_\bo_\br_\by _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn character,
+ the character which begins a history expansion, normally "!\b!".
+ The second character is the _\bq_\bu_\bi_\bc_\bk _\bs_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn character, nor-
+ mally "^\b^". When it appears as the first character on the line,
history substitution repeats the previous command, replacing one
- string with another. The optional third character is the _\bh_\bi_\bs_\b-
- _\bt_\bo_\br_\by _\bc_\bo_\bm_\bm_\be_\bn_\bt character, normally "#\b#", which indicates that the
- remainder of the line is a comment when it appears as the first
- character of a word. The history comment character disables
- history substitution for the remaining words on the line. It
+ string with another. The optional third character is the _\bh_\bi_\bs_\b-
+ _\bt_\bo_\br_\by _\bc_\bo_\bm_\bm_\be_\bn_\bt character, normally "#\b#", which indicates that the
+ remainder of the line is a comment when it appears as the first
+ character of a word. The history comment character disables
+ history substitution for the remaining words on the line. It
does not necessarily cause the shell parser to treat the rest of
the line as a comment.
A\bAr\brr\bra\bay\bys\bs
- B\bBa\bas\bsh\bh provides one-dimensional indexed and associative array variables.
- Any variable may be used as an indexed array; the d\bde\bec\bcl\bla\bar\bre\be builtin ex-
- plicitly declares an array. There is no maximum limit on the size of
- an array, nor any requirement that members be indexed or assigned con-
- tiguously. Indexed arrays are referenced using arithmetic expressions
- that must expand to an integer (see A\bAR\bRI\bIT\bTH\bHM\bME\bET\bTI\bIC\bC E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN below) and
- are zero-based; associative arrays are referenced using arbitrary
- strings. Unless otherwise noted, indexed array indices must be non-
+ B\bBa\bas\bsh\bh provides one-dimensional indexed and associative array variables.
+ Any variable may be used as an indexed array; the d\bde\bec\bcl\bla\bar\bre\be builtin ex-
+ plicitly declares an array. There is no maximum limit on the size of
+ an array, nor any requirement that members be indexed or assigned con-
+ tiguously. Indexed arrays are referenced using arithmetic expressions
+ that must expand to an integer (see A\bAR\bRI\bIT\bTH\bHM\bME\bET\bTI\bIC\bC E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN below) and
+ are zero-based; associative arrays are referenced using arbitrary
+ strings. Unless otherwise noted, indexed array indices must be non-
negative integers.
- An indexed array is created automatically if any variable is assigned
+ An indexed array is created automatically if any variable is assigned
to using the syntax
_\bn_\ba_\bm_\be[_\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt]=_\bv_\ba_\bl_\bu_\be .
The _\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt is treated as an arithmetic expression that must evaluate
- to a number greater than or equal to zero. To explicitly declare an
+ to a number greater than or equal to zero. To explicitly declare an
indexed array, use
d\bde\bec\bcl\bla\bar\bre\be -\b-a\ba _\bn_\ba_\bm_\be
(see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below).
r\bre\bea\bad\bdo\bon\bnl\bly\by builtins. Each attribute applies to all members of an array.
Arrays are assigned using compound assignments of the form _\bn_\ba_\bm_\be=(\b(value_\b1
- ... value_\bn)\b), where each _\bv_\ba_\bl_\bu_\be may be of the form [_\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt]=_\bs_\bt_\br_\bi_\bn_\bg.
- Indexed array assignments do not require anything but _\bs_\bt_\br_\bi_\bn_\bg. Each
- _\bv_\ba_\bl_\bu_\be in the list is expanded using the shell expansions described be-
+ ... value_\bn)\b), where each _\bv_\ba_\bl_\bu_\be may be of the form [_\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt]=_\bs_\bt_\br_\bi_\bn_\bg.
+ Indexed array assignments do not require anything but _\bs_\bt_\br_\bi_\bn_\bg. Each
+ _\bv_\ba_\bl_\bu_\be in the list is expanded using the shell expansions described be-
low under E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN, but _\bv_\ba_\bl_\bu_\bes that are valid variable assignments in-
- cluding the brackets and subscript do not undergo brace expansion and
+ cluding the brackets and subscript do not undergo brace expansion and
word splitting, as with individual variable assignments.
- When assigning to indexed arrays, if the optional brackets and sub-
- script are supplied, that index is assigned to; otherwise the index of
- the element assigned is the last index assigned to by the statement
+ When assigning to indexed arrays, if the optional brackets and sub-
+ script are supplied, that index is assigned to; otherwise the index of
+ the element assigned is the last index assigned to by the statement
plus one. Indexing starts at zero.
When assigning to an associative array, the words in a compound assign-
- ment may be either assignment statements, for which the subscript is
- required, or a list of words that is interpreted as a sequence of al-
- ternating keys and values: _\bn_\ba_\bm_\be=(\b( _\bk_\be_\by_\b1 _\bv_\ba_\bl_\bu_\be_\b1 _\bk_\be_\by_\b2 _\bv_\ba_\bl_\bu_\be_\b2 ...)\b). These
- are treated identically to _\bn_\ba_\bm_\be=(\b( [_\bk_\be_\by_\b1]=_\bv_\ba_\bl_\bu_\be_\b1 [_\bk_\be_\by_\b2]=_\bv_\ba_\bl_\bu_\be_\b2 ...)\b).
- The first word in the list determines how the remaining words are in-
- terpreted; all assignments in a list must be of the same type. When
- using key/value pairs, the keys may not be missing or empty; a final
+ ment may be either assignment statements, for which the subscript is
+ required, or a list of words that is interpreted as a sequence of al-
+ ternating keys and values: _\bn_\ba_\bm_\be=(\b( _\bk_\be_\by_\b1 _\bv_\ba_\bl_\bu_\be_\b1 _\bk_\be_\by_\b2 _\bv_\ba_\bl_\bu_\be_\b2 ...)\b). These
+ are treated identically to _\bn_\ba_\bm_\be=(\b( [_\bk_\be_\by_\b1]=_\bv_\ba_\bl_\bu_\be_\b1 [_\bk_\be_\by_\b2]=_\bv_\ba_\bl_\bu_\be_\b2 ...)\b).
+ The first word in the list determines how the remaining words are in-
+ terpreted; all assignments in a list must be of the same type. When
+ using key/value pairs, the keys may not be missing or empty; a final
missing value is treated like the empty string.
- This syntax is also accepted by the d\bde\bec\bcl\bla\bar\bre\be builtin. Individual array
- elements may be assigned to using the _\bn_\ba_\bm_\be[_\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt]=_\bv_\ba_\bl_\bu_\be syntax in-
+ This syntax is also accepted by the d\bde\bec\bcl\bla\bar\bre\be builtin. Individual array
+ elements may be assigned to using the _\bn_\ba_\bm_\be[_\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt]=_\bv_\ba_\bl_\bu_\be syntax in-
troduced above.
- When assigning to an indexed array, if _\bn_\ba_\bm_\be is subscripted by a nega-
+ When assigning to an indexed array, if _\bn_\ba_\bm_\be is subscripted by a nega-
tive number, that number is interpreted as relative to one greater than
- the maximum index of _\bn_\ba_\bm_\be, so negative indices count back from the end
+ the maximum index of _\bn_\ba_\bm_\be, so negative indices count back from the end
of the array, and an index of -1 references the last element.
The "+=" operator appends to an array variable when assigning using the
compound assignment syntax; see P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS above.
- An array element is referenced using ${_\bn_\ba_\bm_\be[_\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt]}. The braces
- are required to avoid conflicts with pathname expansion. If _\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt
+ An array element is referenced using ${_\bn_\ba_\bm_\be[_\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt]}. The braces
+ are required to avoid conflicts with pathname expansion. If _\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt
is @\b@ or *\b*, the word expands to all members of _\bn_\ba_\bm_\be, unless noted in the
- description of a builtin or word expansion. These subscripts differ
- only when the word appears within double quotes. If the word is dou-
- ble-quoted, ${_\bn_\ba_\bm_\be[*]} expands to a single word with the value of each
- array member separated by the first character of the I\bIF\bFS\bS special vari-
- able, and ${_\bn_\ba_\bm_\be[@]} expands each element of _\bn_\ba_\bm_\be to a separate word.
+ description of a builtin or word expansion. These subscripts differ
+ only when the word appears within double quotes. If the word is dou-
+ ble-quoted, ${_\bn_\ba_\bm_\be[*]} expands to a single word with the value of each
+ array member separated by the first character of the I\bIF\bFS\bS special vari-
+ able, and ${_\bn_\ba_\bm_\be[@]} expands each element of _\bn_\ba_\bm_\be to a separate word.
When there are no array members, ${_\bn_\ba_\bm_\be[@]} expands to nothing. If the
- double-quoted expansion occurs within a word, the expansion of the
- first parameter is joined with the beginning part of the expansion of
- the original word, and the expansion of the last parameter is joined
- with the last part of the expansion of the original word. This is
- analogous to the expansion of the special parameters *\b* and @\b@ (see S\bSp\bpe\be-\b-
+ double-quoted expansion occurs within a word, the expansion of the
+ first parameter is joined with the beginning part of the expansion of
+ the original word, and the expansion of the last parameter is joined
+ with the last part of the expansion of the original word. This is
+ analogous to the expansion of the special parameters *\b* and @\b@ (see S\bSp\bpe\be-\b-
c\bci\bia\bal\bl P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs above).
- ${#_\bn_\ba_\bm_\be[_\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt]} expands to the length of ${_\bn_\ba_\bm_\be[_\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt]}. If
+ ${#_\bn_\ba_\bm_\be[_\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt]} expands to the length of ${_\bn_\ba_\bm_\be[_\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt]}. If
_\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt is *\b* or @\b@, the expansion is the number of elements in the ar-
ray.
If the _\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt used to reference an element of an indexed array eval-
- uates to a number less than zero, it is interpreted as relative to one
- greater than the maximum index of the array, so negative indices count
- back from the end of the array, and an index of -1 references the last
+ uates to a number less than zero, it is interpreted as relative to one
+ greater than the maximum index of the array, so negative indices count
+ back from the end of the array, and an index of -1 references the last
element.
Referencing an array variable without a subscript is equivalent to ref-
- erencing the array with a subscript of 0. Any reference to a variable
+ erencing the array with a subscript of 0. Any reference to a variable
using a valid subscript is valid; b\bba\bas\bsh\bh creates an array if necessary.
- An array variable is considered set if a subscript has been assigned a
+ An array variable is considered set if a subscript has been assigned a
value. The null string is a valid value.
- It is possible to obtain the keys (indices) of an array as well as the
- values. ${!\b!_\bn_\ba_\bm_\be[_\b@]} and ${!\b!_\bn_\ba_\bm_\be[_\b*]} expand to the indices assigned in
+ It is possible to obtain the keys (indices) of an array as well as the
+ values. ${!\b!_\bn_\ba_\bm_\be[_\b@]} and ${!\b!_\bn_\ba_\bm_\be[_\b*]} expand to the indices assigned in
array variable _\bn_\ba_\bm_\be. The treatment when in double quotes is similar to
the expansion of the special parameters _\b@ and _\b* within double quotes.
The u\bun\bns\bse\bet\bt builtin is used to destroy arrays. u\bun\bns\bse\bet\bt _\bn_\ba_\bm_\be[_\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt] un-
- sets the array element at index _\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt, for both indexed and asso-
- ciative arrays. Negative subscripts to indexed arrays are interpreted
- as described above. Unsetting the last element of an array variable
- does not unset the variable. u\bun\bns\bse\bet\bt _\bn_\ba_\bm_\be, where _\bn_\ba_\bm_\be is an array, re-
- moves the entire array. u\bun\bns\bse\bet\bt _\bn_\ba_\bm_\be[_\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt] behaves differently de-
- pending on whether _\bn_\ba_\bm_\be is an indexed or associative array when _\bs_\bu_\bb_\b-
+ sets the array element at index _\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt, for both indexed and asso-
+ ciative arrays. Negative subscripts to indexed arrays are interpreted
+ as described above. Unsetting the last element of an array variable
+ does not unset the variable. u\bun\bns\bse\bet\bt _\bn_\ba_\bm_\be, where _\bn_\ba_\bm_\be is an array, re-
+ moves the entire array. u\bun\bns\bse\bet\bt _\bn_\ba_\bm_\be[_\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt] behaves differently de-
+ pending on whether _\bn_\ba_\bm_\be is an indexed or associative array when _\bs_\bu_\bb_\b-
_\bs_\bc_\br_\bi_\bp_\bt is *\b* or @\b@. If _\bn_\ba_\bm_\be is an associative array, this unsets the el-
- ement with subscript *\b* or @\b@. If _\bn_\ba_\bm_\be is an indexed array, unset re-
+ ement with subscript *\b* or @\b@. If _\bn_\ba_\bm_\be is an indexed array, unset re-
moves all of the elements but does not remove the array itself.
- When using a variable name with a subscript as an argument to a com-
- mand, such as with u\bun\bns\bse\bet\bt, without using the word expansion syntax de-
- scribed above, (e.g., unset a[4]), the argument is subject to pathname
- expansion. Quote the argument if pathname expansion is not desired
+ When using a variable name with a subscript as an argument to a com-
+ mand, such as with u\bun\bns\bse\bet\bt, without using the word expansion syntax de-
+ scribed above, (e.g., unset a[4]), the argument is subject to pathname
+ expansion. Quote the argument if pathname expansion is not desired
(e.g., unset 'a[4]').
- The d\bde\bec\bcl\bla\bar\bre\be, l\blo\boc\bca\bal\bl, and r\bre\bea\bad\bdo\bon\bnl\bly\by builtins each accept a -\b-a\ba option to
- specify an indexed array and a -\b-A\bA option to specify an associative ar-
- ray. If both options are supplied, -\b-A\bA takes precedence. The r\bre\bea\bad\bd
- builtin accepts a -\b-a\ba option to assign a list of words read from the
+ The d\bde\bec\bcl\bla\bar\bre\be, l\blo\boc\bca\bal\bl, and r\bre\bea\bad\bdo\bon\bnl\bly\by builtins each accept a -\b-a\ba option to
+ specify an indexed array and a -\b-A\bA option to specify an associative ar-
+ ray. If both options are supplied, -\b-A\bA takes precedence. The r\bre\bea\bad\bd
+ builtin accepts a -\b-a\ba option to assign a list of words read from the
standard input to an array. The s\bse\bet\bt and d\bde\bec\bcl\bla\bar\bre\be builtins display array
- values in a way that allows them to be reused as assignments. Other
- builtins accept array name arguments as well (e.g., m\bma\bap\bpf\bfi\bil\ble\be); see the
- descriptions of individual builtins below for details. The shell pro-
+ values in a way that allows them to be reused as assignments. Other
+ builtins accept array name arguments as well (e.g., m\bma\bap\bpf\bfi\bil\ble\be); see the
+ descriptions of individual builtins below for details. The shell pro-
vides a number of builtin array variables.
E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN
_\bm_\be_\bt_\bi_\bc _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn, _\bw_\bo_\br_\bd _\bs_\bp_\bl_\bi_\bt_\bt_\bi_\bn_\bg, _\bp_\ba_\bt_\bh_\bn_\ba_\bm_\be _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn, and _\bq_\bu_\bo_\bt_\be _\br_\be_\bm_\bo_\bv_\ba_\bl.
The order of expansions is: brace expansion; tilde expansion, parameter
- and variable expansion, arithmetic expansion, and command substitution
- (done in a left-to-right fashion); word splitting; pathname expansion;
+ and variable expansion, arithmetic expansion, and command substitution
+ (done in a left-to-right fashion); word splitting; pathname expansion;
and quote removal.
On systems that can support it, there is an additional expansion avail-
- able: _\bp_\br_\bo_\bc_\be_\bs_\bs _\bs_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn. This is performed at the same time as
- tilde, parameter, variable, and arithmetic expansion and command sub-
+ able: _\bp_\br_\bo_\bc_\be_\bs_\bs _\bs_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn. This is performed at the same time as
+ tilde, parameter, variable, and arithmetic expansion and command sub-
stitution.
- _\bQ_\bu_\bo_\bt_\be _\br_\be_\bm_\bo_\bv_\ba_\bl is always performed last. It removes quote characters
- present in the original word, not ones resulting from one of the other
+ _\bQ_\bu_\bo_\bt_\be _\br_\be_\bm_\bo_\bv_\ba_\bl is always performed last. It removes quote characters
+ present in the original word, not ones resulting from one of the other
expansions, unless they have been quoted themselves.
- Only brace expansion, word splitting, and pathname expansion can in-
- crease the number of words of the expansion; other expansions expand a
- single word to a single word. The only exceptions to this are the ex-
+ Only brace expansion, word splitting, and pathname expansion can in-
+ crease the number of words of the expansion; other expansions expand a
+ single word to a single word. The only exceptions to this are the ex-
pansions of "\b"$\b$@\b@"\b" and "\b"$\b${\b{_\bn_\ba_\bm_\be[\b[@\b@]\b]}\b}"\b", and, in most cases, $\b$*\b* and
$\b${\b{_\bn_\ba_\bm_\be[\b[*\b*]\b]}\b} as explained above (see P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS).
B\bBr\bra\bac\bce\be E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn
- _\bB_\br_\ba_\bc_\be _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn is a mechanism to generate arbitrary strings sharing a
+ _\bB_\br_\ba_\bc_\be _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn is a mechanism to generate arbitrary strings sharing a
common prefix and suffix, either of which can be empty. This mechanism
- is similar to _\bp_\ba_\bt_\bh_\bn_\ba_\bm_\be _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn, but the filenames generated need not
- exist. Patterns to be brace expanded are formed from an optional _\bp_\br_\be_\b-
- _\ba_\bm_\bb_\bl_\be, followed by either a series of comma-separated strings or a se-
- quence expression between a pair of braces, followed by an optional
- _\bp_\bo_\bs_\bt_\bs_\bc_\br_\bi_\bp_\bt. The preamble is prefixed to each string contained within
- the braces, and the postscript is then appended to each resulting
+ is similar to _\bp_\ba_\bt_\bh_\bn_\ba_\bm_\be _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn, but the filenames generated need not
+ exist. Patterns to be brace expanded are formed from an optional _\bp_\br_\be_\b-
+ _\ba_\bm_\bb_\bl_\be, followed by either a series of comma-separated strings or a se-
+ quence expression between a pair of braces, followed by an optional
+ _\bp_\bo_\bs_\bt_\bs_\bc_\br_\bi_\bp_\bt. The preamble is prefixed to each string contained within
+ the braces, and the postscript is then appended to each resulting
string, expanding left to right.
- Brace expansions may be nested. The results of each expanded string
+ Brace expansions may be nested. The results of each expanded string
are not sorted; brace expansion preserves left to right order. For ex-
ample, a{\b{d,c,b}\b}e expands into "ade ace abe".
- A sequence expression takes the form {\b{_\bx.\b..\b._\by[\b[.\b..\b._\bi_\bn_\bc_\br]\b]}\b}, where _\bx and _\by are
- either integers or single letters, and _\bi_\bn_\bc_\br, an optional increment, is
+ A sequence expression takes the form {\b{_\bx.\b..\b._\by[\b[.\b..\b._\bi_\bn_\bc_\br]\b]}\b}, where _\bx and _\by are
+ either integers or single letters, and _\bi_\bn_\bc_\br, an optional increment, is
an integer. When integers are supplied, the expression expands to each
- number between _\bx and _\by, inclusive. If either _\bx or _\by begins with a
+ number between _\bx and _\by, inclusive. If either _\bx or _\by begins with a
zero, each generated term will contain the same number of digits, zero-
padding where necessary. When letters are supplied, the expression ex-
- pands to each character lexicographically between _\bx and _\by, inclusive,
+ pands to each character lexicographically between _\bx and _\by, inclusive,
using the default C locale. Note that both _\bx and _\by must be of the same
- type (integer or letter). When the increment is supplied, it is used
- as the difference between each term. The default increment is 1 or -1
+ type (integer or letter). When the increment is supplied, it is used
+ as the difference between each term. The default increment is 1 or -1
as appropriate.
Brace expansion is performed before any other expansions, and any char-
- acters special to other expansions are preserved in the result. It is
- strictly textual. B\bBa\bas\bsh\bh does not apply any syntactic interpretation to
+ acters special to other expansions are preserved in the result. It is
+ strictly textual. B\bBa\bas\bsh\bh does not apply any syntactic interpretation to
the context of the expansion or the text between the braces.
- A correctly-formed brace expansion must contain unquoted opening and
+ A correctly-formed brace expansion must contain unquoted opening and
closing braces, and at least one unquoted comma or a valid sequence ex-
pression. Any incorrectly formed brace expansion is left unchanged.
- A "{" or Q , may be quoted with a backslash to prevent its being con-
- sidered part of a brace expression. To avoid conflicts with parameter
- expansion, the string "${" is not considered eligible for brace expan-
+ A "{" or Q , may be quoted with a backslash to prevent its being con-
+ sidered part of a brace expression. To avoid conflicts with parameter
+ expansion, the string "${" is not considered eligible for brace expan-
sion, and inhibits brace expansion until the closing "}".
This construct is typically used as shorthand when the common prefix of
or
chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}
- Brace expansion introduces a slight incompatibility with historical
- versions of s\bsh\bh. s\bsh\bh does not treat opening or closing braces specially
- when they appear as part of a word, and preserves them in the output.
- B\bBa\bas\bsh\bh removes braces from words as a consequence of brace expansion.
+ Brace expansion introduces a slight incompatibility with historical
+ versions of s\bsh\bh. s\bsh\bh does not treat opening or closing braces specially
+ when they appear as part of a word, and preserves them in the output.
+ B\bBa\bas\bsh\bh removes braces from words as a consequence of brace expansion.
For example, a word entered to s\bsh\bh as "file{1,2}" appears identically in
the output. B\bBa\bas\bsh\bh outputs that word as "file1 file2" after brace expan-
- sion. Start b\bba\bas\bsh\bh with the +\b+B\bB option or disable brace expansion with
+ sion. Start b\bba\bas\bsh\bh with the +\b+B\bB option or disable brace expansion with
the +\b+B\bB option to the s\bse\bet\bt command (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below) for
strict s\bsh\bh compatibility.
T\bTi\bil\bld\bde\be E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn
- If a word begins with an unquoted tilde character ("~\b~"), all of the
- characters preceding the first unquoted slash (or all characters, if
- there is no unquoted slash) are considered a _\bt_\bi_\bl_\bd_\be_\b-_\bp_\br_\be_\bf_\bi_\bx. If none of
- the characters in the tilde-prefix are quoted, the characters in the
- tilde-prefix following the tilde are treated as a possible _\bl_\bo_\bg_\bi_\bn _\bn_\ba_\bm_\be.
- If this login name is the null string, the tilde is replaced with the
+ If a word begins with an unquoted tilde character ("~\b~"), all of the
+ characters preceding the first unquoted slash (or all characters, if
+ there is no unquoted slash) are considered a _\bt_\bi_\bl_\bd_\be_\b-_\bp_\br_\be_\bf_\bi_\bx. If none of
+ the characters in the tilde-prefix are quoted, the characters in the
+ tilde-prefix following the tilde are treated as a possible _\bl_\bo_\bg_\bi_\bn _\bn_\ba_\bm_\be.
+ If this login name is the null string, the tilde is replaced with the
value of the shell parameter H\bHO\bOM\bME\bE. If H\bHO\bOM\bME\bE is unset, the tilde expands
- to the home directory of the user executing the shell instead. Other-
- wise, the tilde-prefix is replaced with the home directory associated
+ to the home directory of the user executing the shell instead. Other-
+ wise, the tilde-prefix is replaced with the home directory associated
with the specified login name.
- If the tilde-prefix is a "~+", the value of the shell variable P\bPW\bWD\bD re-
+ If the tilde-prefix is a "~+", the value of the shell variable P\bPW\bWD\bD re-
places the tilde-prefix. If the tilde-prefix is a "~-", the shell sub-
- stitutes the value of the shell variable O\bOL\bLD\bDP\bPW\bWD\bD, if it is set. If the
- characters following the tilde in the tilde-prefix consist of a number
- _\bN, optionally prefixed by a "+" or a "-", the tilde-prefix is replaced
+ stitutes the value of the shell variable O\bOL\bLD\bDP\bPW\bWD\bD, if it is set. If the
+ characters following the tilde in the tilde-prefix consist of a number
+ _\bN, optionally prefixed by a "+" or a "-", the tilde-prefix is replaced
with the corresponding element from the directory stack, as it would be
displayed by the d\bdi\bir\brs\bs builtin invoked with the characters following the
- tilde in the tilde-prefix as an argument. If the characters following
+ tilde in the tilde-prefix as an argument. If the characters following
the tilde in the tilde-prefix consist of a number without a leading "+"
or "-", tilde expansion assumes "+".
- The results of tilde expansion are treated as if they were quoted, so
- the replacement is not subject to word splitting and pathname expan-
+ The results of tilde expansion are treated as if they were quoted, so
+ the replacement is not subject to word splitting and pathname expan-
sion.
- If the login name is invalid, or the tilde expansion fails, the tilde-
+ If the login name is invalid, or the tilde expansion fails, the tilde-
prefix is unchanged.
- B\bBa\bas\bsh\bh checks each variable assignment for unquoted tilde-prefixes imme-
- diately following a :\b: or the first =\b=, and performs tilde expansion in
- these cases. Consequently, one may use filenames with tildes in as-
- signments to P\bPA\bAT\bTH\bH, M\bMA\bAI\bIL\bLP\bPA\bAT\bTH\bH, and C\bCD\bDP\bPA\bAT\bTH\bH, and the shell assigns the ex-
+ B\bBa\bas\bsh\bh checks each variable assignment for unquoted tilde-prefixes imme-
+ diately following a :\b: or the first =\b=, and performs tilde expansion in
+ these cases. Consequently, one may use filenames with tildes in as-
+ signments to P\bPA\bAT\bTH\bH, M\bMA\bAI\bIL\bLP\bPA\bAT\bTH\bH, and C\bCD\bDP\bPA\bAT\bTH\bH, and the shell assigns the ex-
panded value.
- B\bBa\bas\bsh\bh also performs tilde expansion on words satisfying the conditions
+ B\bBa\bas\bsh\bh also performs tilde expansion on words satisfying the conditions
of variable assignments (as described above under P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS) when they
- appear as arguments to simple commands. B\bBa\bas\bsh\bh does not do this, except
+ appear as arguments to simple commands. B\bBa\bas\bsh\bh does not do this, except
for the _\bd_\be_\bc_\bl_\ba_\br_\ba_\bt_\bi_\bo_\bn commands listed above, when in posix mode.
P\bPa\bar\bra\bam\bme\bet\bte\ber\br E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn
The "$\b$" character introduces parameter expansion, command substitution,
- or arithmetic expansion. The parameter name or symbol to be expanded
- may be enclosed in braces, which are optional but serve to protect the
- variable to be expanded from characters immediately following it which
+ or arithmetic expansion. The parameter name or symbol to be expanded
+ may be enclosed in braces, which are optional but serve to protect the
+ variable to be expanded from characters immediately following it which
could be interpreted as part of the name.
- When braces are used, the matching ending brace is the first "}\b}" not
+ When braces are used, the matching ending brace is the first "}\b}" not
escaped by a backslash or within a quoted string, and not within an em-
- bedded arithmetic expansion, command substitution, or parameter expan-
+ bedded arithmetic expansion, command substitution, or parameter expan-
sion.
The basic form of parameter expansion is
${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br}
which substitutes the value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br. The braces are required when
- _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is a positional parameter with more than one digit, or when
- _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is followed by a character which is not to be interpreted as
- part of its name. The _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is a shell parameter as described
+ _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is a positional parameter with more than one digit, or when
+ _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is followed by a character which is not to be interpreted as
+ part of its name. The _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is a shell parameter as described
above P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS) or an array reference (A\bAr\brr\bra\bay\bys\bs).
- If the first character of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is an exclamation point (!\b!), and
+ If the first character of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is an exclamation point (!\b!), and
_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is not a _\bn_\ba_\bm_\be_\br_\be_\bf, it introduces a level of indirection. B\bBa\bas\bsh\bh
uses the value formed by expanding the rest of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br as the new _\bp_\ba_\b-
- _\br_\ba_\bm_\be_\bt_\be_\br; this new parameter is then expanded and that value is used in
- the rest of the expansion, rather than the expansion of the original
- _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br. This is known as _\bi_\bn_\bd_\bi_\br_\be_\bc_\bt _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn. The value is subject
- to tilde expansion, parameter expansion, command substitution, and
- arithmetic expansion. If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is a nameref, this expands to the
+ _\br_\ba_\bm_\be_\bt_\be_\br; this new parameter is then expanded and that value is used in
+ the rest of the expansion, rather than the expansion of the original
+ _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br. This is known as _\bi_\bn_\bd_\bi_\br_\be_\bc_\bt _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn. The value is subject
+ to tilde expansion, parameter expansion, command substitution, and
+ arithmetic expansion. If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is a nameref, this expands to the
name of the parameter referenced by _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br instead of performing the
complete indirect expansion, for compatibility. The exceptions to this
are the expansions of ${!\b!_\bp_\br_\be_\bf_\bi_\bx*\b*} and ${!\b!_\bn_\ba_\bm_\be[_\b@]} described below. The
- exclamation point must immediately follow the left brace in order to
+ exclamation point must immediately follow the left brace in order to
introduce indirection.
In each of the cases below, _\bw_\bo_\br_\bd is subject to tilde expansion, parame-
ter expansion, command substitution, and arithmetic expansion.
When not performing substring expansion, using the forms documented be-
- low (e.g., :\b:-\b-), b\bba\bas\bsh\bh tests for a parameter that is unset or null.
+ low (e.g., :\b:-\b-), b\bba\bas\bsh\bh tests for a parameter that is unset or null.
Omitting the colon tests only for a parameter that is unset.
${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br:\b:-\b-_\bw_\bo_\br_\bd}
- U\bUs\bse\be D\bDe\bef\bfa\bau\bul\blt\bt V\bVa\bal\blu\bue\bes\bs. If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is unset or null, the expan-
- sion of _\bw_\bo_\br_\bd is substituted. Otherwise, the value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br
+ U\bUs\bse\be D\bDe\bef\bfa\bau\bul\blt\bt V\bVa\bal\blu\bue\bes\bs. If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is unset or null, the expan-
+ sion of _\bw_\bo_\br_\bd is substituted. Otherwise, the value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br
is substituted.
${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br:\b:=\b=_\bw_\bo_\br_\bd}
- A\bAs\bss\bsi\big\bgn\bn D\bDe\bef\bfa\bau\bul\blt\bt V\bVa\bal\blu\bue\bes\bs. If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is unset or null, the ex-
- pansion of _\bw_\bo_\br_\bd is assigned to _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br, and the expansion is
+ A\bAs\bss\bsi\big\bgn\bn D\bDe\bef\bfa\bau\bul\blt\bt V\bVa\bal\blu\bue\bes\bs. If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is unset or null, the ex-
+ pansion of _\bw_\bo_\br_\bd is assigned to _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br, and the expansion is
the final value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br. Positional parameters and special
parameters may not be assigned in this way.
${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br:\b:?\b?_\bw_\bo_\br_\bd}
- D\bDi\bis\bsp\bpl\bla\bay\by E\bEr\brr\bro\bor\br i\bif\bf N\bNu\bul\bll\bl o\bor\br U\bUn\bns\bse\bet\bt. If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is null or unset,
+ D\bDi\bis\bsp\bpl\bla\bay\by E\bEr\brr\bro\bor\br i\bif\bf N\bNu\bul\bll\bl o\bor\br U\bUn\bns\bse\bet\bt. If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is null or unset,
the shell writes the expansion of _\bw_\bo_\br_\bd (or a message to that ef-
fect if _\bw_\bo_\br_\bd is not present) to the standard error and, if it is
- not interactive, exits with a non-zero status. An interactive
+ not interactive, exits with a non-zero status. An interactive
shell does not exit, but does not execute the command associated
- with the expansion. Otherwise, the value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is sub-
+ with the expansion. Otherwise, the value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is sub-
stituted.
${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br:\b:+\b+_\bw_\bo_\br_\bd}
- U\bUs\bse\be A\bAl\blt\bte\ber\brn\bna\bat\bte\be V\bVa\bal\blu\bue\be. If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is null or unset, nothing is
- substituted, otherwise the expansion of _\bw_\bo_\br_\bd is substituted.
+ U\bUs\bse\be A\bAl\blt\bte\ber\brn\bna\bat\bte\be V\bVa\bal\blu\bue\be. If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is null or unset, nothing is
+ substituted, otherwise the expansion of _\bw_\bo_\br_\bd is substituted.
The value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is not used.
${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br:\b:_\bo_\bf_\bf_\bs_\be_\bt}
${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br:\b:_\bo_\bf_\bf_\bs_\be_\bt:\b:_\bl_\be_\bn_\bg_\bt_\bh}
- S\bSu\bub\bbs\bst\btr\bri\bin\bng\bg E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn. Expands to up to _\bl_\be_\bn_\bg_\bt_\bh characters of the
- value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br starting at the character specified by _\bo_\bf_\bf_\b-
- _\bs_\be_\bt. If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is @\b@ or *\b*, an indexed array subscripted by @\b@
- or *\b*, or an associative array name, the results differ as de-
- scribed below. If _\bl_\be_\bn_\bg_\bt_\bh is omitted, expands to the substring
+ S\bSu\bub\bbs\bst\btr\bri\bin\bng\bg E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn. Expands to up to _\bl_\be_\bn_\bg_\bt_\bh characters of the
+ value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br starting at the character specified by _\bo_\bf_\bf_\b-
+ _\bs_\be_\bt. If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is @\b@ or *\b*, an indexed array subscripted by @\b@
+ or *\b*, or an associative array name, the results differ as de-
+ scribed below. If _\bl_\be_\bn_\bg_\bt_\bh is omitted, expands to the substring
of the value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br starting at the character specified by
_\bo_\bf_\bf_\bs_\be_\bt and extending to the end of the value. _\bl_\be_\bn_\bg_\bt_\bh and _\bo_\bf_\bf_\bs_\be_\bt
are arithmetic expressions (see A\bAR\bRI\bIT\bTH\bHM\bME\bET\bTI\bIC\bC E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN below).
- If _\bo_\bf_\bf_\bs_\be_\bt evaluates to a number less than zero, the value is
+ If _\bo_\bf_\bf_\bs_\be_\bt evaluates to a number less than zero, the value is
used as an offset in characters from the end of the value of _\bp_\ba_\b-
- _\br_\ba_\bm_\be_\bt_\be_\br. If _\bl_\be_\bn_\bg_\bt_\bh evaluates to a number less than zero, it is
+ _\br_\ba_\bm_\be_\bt_\be_\br. If _\bl_\be_\bn_\bg_\bt_\bh evaluates to a number less than zero, it is
interpreted as an offset in characters from the end of the value
- of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br rather than a number of characters, and the expan-
- sion is the characters between _\bo_\bf_\bf_\bs_\be_\bt and that result. Note
- that a negative offset must be separated from the colon by at
+ of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br rather than a number of characters, and the expan-
+ sion is the characters between _\bo_\bf_\bf_\bs_\be_\bt and that result. Note
+ that a negative offset must be separated from the colon by at
least one space to avoid being confused with the :\b:-\b- expansion.
- If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is @\b@ or *\b*, the result is _\bl_\be_\bn_\bg_\bt_\bh positional parame-
- ters beginning at _\bo_\bf_\bf_\bs_\be_\bt. A negative _\bo_\bf_\bf_\bs_\be_\bt is taken relative
- to one greater than the greatest positional parameter, so an
+ If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is @\b@ or *\b*, the result is _\bl_\be_\bn_\bg_\bt_\bh positional parame-
+ ters beginning at _\bo_\bf_\bf_\bs_\be_\bt. A negative _\bo_\bf_\bf_\bs_\be_\bt is taken relative
+ to one greater than the greatest positional parameter, so an
offset of -1 evaluates to the last positional parameter (or 0 if
- there are no positional parameters). It is an expansion error
+ there are no positional parameters). It is an expansion error
if _\bl_\be_\bn_\bg_\bt_\bh evaluates to a number less than zero.
If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is an indexed array name subscripted by @ or *, the
result is the _\bl_\be_\bn_\bg_\bt_\bh members of the array beginning with ${_\bp_\ba_\br_\ba_\b-
- _\bm_\be_\bt_\be_\br[_\bo_\bf_\bf_\bs_\be_\bt]}. A negative _\bo_\bf_\bf_\bs_\be_\bt is taken relative to one
+ _\bm_\be_\bt_\be_\br[_\bo_\bf_\bf_\bs_\be_\bt]}. A negative _\bo_\bf_\bf_\bs_\be_\bt is taken relative to one
greater than the maximum index of the specified array. It is an
expansion error if _\bl_\be_\bn_\bg_\bt_\bh evaluates to a number less than zero.
Substring expansion applied to an associative array produces un-
defined results.
- Substring indexing is zero-based unless the positional parame-
- ters are used, in which case the indexing starts at 1 by de-
- fault. If _\bo_\bf_\bf_\bs_\be_\bt is 0, and the positional parameters are used,
+ Substring indexing is zero-based unless the positional parame-
+ ters are used, in which case the indexing starts at 1 by de-
+ fault. If _\bo_\bf_\bf_\bs_\be_\bt is 0, and the positional parameters are used,
$\b$0\b0 is prefixed to the list.
${!\b!_\bp_\br_\be_\bf_\bi_\bx*\b*}
${!\b!_\bp_\br_\be_\bf_\bi_\bx@\b@}
- N\bNa\bam\bme\bes\bs m\bma\bat\btc\bch\bhi\bin\bng\bg p\bpr\bre\bef\bfi\bix\bx. Expands to the names of variables whose
+ N\bNa\bam\bme\bes\bs m\bma\bat\btc\bch\bhi\bin\bng\bg p\bpr\bre\bef\bfi\bix\bx. Expands to the names of variables whose
names begin with _\bp_\br_\be_\bf_\bi_\bx, separated by the first character of the
- I\bIF\bFS\bS special variable. When _\b@ is used and the expansion appears
- within double quotes, each variable name expands to a separate
+ I\bIF\bFS\bS special variable. When _\b@ is used and the expansion appears
+ within double quotes, each variable name expands to a separate
word.
${!\b!_\bn_\ba_\bm_\be[_\b@]}
${!\b!_\bn_\ba_\bm_\be[_\b*]}
- L\bLi\bis\bst\bt o\bof\bf a\bar\brr\bra\bay\by k\bke\bey\bys\bs. If _\bn_\ba_\bm_\be is an array variable, expands to
- the list of array indices (keys) assigned in _\bn_\ba_\bm_\be. If _\bn_\ba_\bm_\be is
- not an array, expands to 0 if _\bn_\ba_\bm_\be is set and null otherwise.
- When _\b@ is used and the expansion appears within double quotes,
+ L\bLi\bis\bst\bt o\bof\bf a\bar\brr\bra\bay\by k\bke\bey\bys\bs. If _\bn_\ba_\bm_\be is an array variable, expands to
+ the list of array indices (keys) assigned in _\bn_\ba_\bm_\be. If _\bn_\ba_\bm_\be is
+ not an array, expands to 0 if _\bn_\ba_\bm_\be is set and null otherwise.
+ When _\b@ is used and the expansion appears within double quotes,
each key expands to a separate word.
${#\b#_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br}
- P\bPa\bar\bra\bam\bme\bet\bte\ber\br l\ble\ben\bng\bgt\bth\bh. Substitutes the length in characters of the
- expanded value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br. If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is *\b* or @\b@, the value
- substituted is the number of positional parameters. If _\bp_\ba_\br_\ba_\bm_\be_\b-
- _\bt_\be_\br is an array name subscripted by *\b* or @\b@, the value substi-
- tuted is the number of elements in the array. If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is
- an indexed array name subscripted by a negative number, that
- number is interpreted as relative to one greater than the maxi-
- mum index of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br, so negative indices count back from the
- end of the array, and an index of -1 references the last ele-
+ P\bPa\bar\bra\bam\bme\bet\bte\ber\br l\ble\ben\bng\bgt\bth\bh. Substitutes the length in characters of the
+ expanded value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br. If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is *\b* or @\b@, the value
+ substituted is the number of positional parameters. If _\bp_\ba_\br_\ba_\bm_\be_\b-
+ _\bt_\be_\br is an array name subscripted by *\b* or @\b@, the value substi-
+ tuted is the number of elements in the array. If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is
+ an indexed array name subscripted by a negative number, that
+ number is interpreted as relative to one greater than the maxi-
+ mum index of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br, so negative indices count back from the
+ end of the array, and an index of -1 references the last ele-
ment.
${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br#\b#_\bw_\bo_\br_\bd}
R\bRe\bem\bmo\bov\bve\be m\bma\bat\btc\bch\bhi\bin\bng\bg p\bpr\bre\bef\bfi\bix\bx p\bpa\bat\btt\bte\ber\brn\bn. The _\bw_\bo_\br_\bd is expanded to produce
a pattern just as in pathname expansion, and matched against the
expanded value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br using the rules described under P\bPa\bat\bt-\b-
- t\bte\ber\brn\bn M\bMa\bat\btc\bch\bhi\bin\bng\bg below. If the pattern matches the beginning of
- the value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br, then the result of the expansion is the
- expanded value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br with the shortest matching pattern
- (the "#" case) or the longest matching pattern (the "##" case)
- deleted. If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is @\b@ or *\b*, the pattern removal operation
- is applied to each positional parameter in turn, and the expan-
- sion is the resultant list. If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is an array variable
- subscripted with @\b@ or *\b*, the pattern removal operation is ap-
- plied to each member of the array in turn, and the expansion is
+ t\bte\ber\brn\bn M\bMa\bat\btc\bch\bhi\bin\bng\bg below. If the pattern matches the beginning of
+ the value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br, then the result of the expansion is the
+ expanded value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br with the shortest matching pattern
+ (the "#" case) or the longest matching pattern (the "##" case)
+ deleted. If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is @\b@ or *\b*, the pattern removal operation
+ is applied to each positional parameter in turn, and the expan-
+ sion is the resultant list. If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is an array variable
+ subscripted with @\b@ or *\b*, the pattern removal operation is ap-
+ plied to each member of the array in turn, and the expansion is
the resultant list.
${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br%\b%_\bw_\bo_\br_\bd}
R\bRe\bem\bmo\bov\bve\be m\bma\bat\btc\bch\bhi\bin\bng\bg s\bsu\buf\bff\bfi\bix\bx p\bpa\bat\btt\bte\ber\brn\bn. The _\bw_\bo_\br_\bd is expanded to produce
a pattern just as in pathname expansion, and matched against the
expanded value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br using the rules described under P\bPa\bat\bt-\b-
- t\bte\ber\brn\bn M\bMa\bat\btc\bch\bhi\bin\bng\bg below. If the pattern matches a trailing portion
- of the expanded value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br, then the result of the ex-
- pansion is the expanded value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br with the shortest
- matching pattern (the "%" case) or the longest matching pattern
- (the "%%" case) deleted. If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is @\b@ or *\b*, the pattern
- removal operation is applied to each positional parameter in
- turn, and the expansion is the resultant list. If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is
- an array variable subscripted with @\b@ or *\b*, the pattern removal
- operation is applied to each member of the array in turn, and
+ t\bte\ber\brn\bn M\bMa\bat\btc\bch\bhi\bin\bng\bg below. If the pattern matches a trailing portion
+ of the expanded value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br, then the result of the ex-
+ pansion is the expanded value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br with the shortest
+ matching pattern (the "%" case) or the longest matching pattern
+ (the "%%" case) deleted. If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is @\b@ or *\b*, the pattern
+ removal operation is applied to each positional parameter in
+ turn, and the expansion is the resultant list. If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is
+ an array variable subscripted with @\b@ or *\b*, the pattern removal
+ operation is applied to each member of the array in turn, and
the expansion is the resultant list.
${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br/\b/_\bp_\ba_\bt_\bt_\be_\br_\bn/\b/_\bs_\bt_\br_\bi_\bn_\bg}
${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br/\b/#\b#_\bp_\ba_\bt_\bt_\be_\br_\bn/\b/_\bs_\bt_\br_\bi_\bn_\bg}
${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br/\b/%\b%_\bp_\ba_\bt_\bt_\be_\br_\bn/\b/_\bs_\bt_\br_\bi_\bn_\bg}
P\bPa\bat\btt\bte\ber\brn\bn s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn. The _\bp_\ba_\bt_\bt_\be_\br_\bn is expanded to produce a pat-
- tern just as in pathname expansion and matched against the ex-
- panded value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br using the rules described under P\bPa\bat\bt-\b-
- t\bte\ber\brn\bn M\bMa\bat\btc\bch\bhi\bin\bng\bg below. The longest match of _\bp_\ba_\bt_\bt_\be_\br_\bn in the ex-
- panded value is replaced with _\bs_\bt_\br_\bi_\bn_\bg. _\bs_\bt_\br_\bi_\bn_\bg undergoes tilde
- expansion, parameter and variable expansion, arithmetic expan-
- sion, command and process substitution, and quote removal.
+ tern and matched against the expanded value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br as de-
+ scribed under P\bPa\bat\btt\bte\ber\brn\bn M\bMa\bat\btc\bch\bhi\bin\bng\bg below. The longest match of _\bp_\ba_\bt_\b-
+ _\bt_\be_\br_\bn in the expanded value is replaced with _\bs_\bt_\br_\bi_\bn_\bg. _\bs_\bt_\br_\bi_\bn_\bg un-
+ dergoes tilde expansion, parameter and variable expansion,
+ arithmetic expansion, command and process substitution, and
+ quote removal.
In the first form above, only the first match is replaced. If
there are two slashes separating _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br and _\bp_\ba_\bt_\bt_\be_\br_\bn (the sec-
${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br,\b,_\bp_\ba_\bt_\bt_\be_\br_\bn}
${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br,\b,,\b,_\bp_\ba_\bt_\bt_\be_\br_\bn}
C\bCa\bas\bse\be m\bmo\bod\bdi\bif\bfi\bic\bca\bat\bti\bio\bon\bn. This expansion modifies the case of alpha-
- betic characters in _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br. The _\bp_\ba_\bt_\bt_\be_\br_\bn is expanded to pro-
- duce a pattern just as in pathname expansion. Each character in
- the expanded value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is tested against _\bp_\ba_\bt_\bt_\be_\br_\bn, and,
- if it matches the pattern, its case is converted. The pattern
- should not attempt to match more than one character.
-
- The ^\b^ operator converts lowercase letters matching _\bp_\ba_\bt_\bt_\be_\br_\bn to
- uppercase; the ,\b, operator converts matching uppercase letters to
- lowercase. The ^\b^^\b^ and ,\b,,\b, expansions convert each matched char-
- acter in the expanded value; the ^\b^ and ,\b, expansions match and
- convert only the first character in the expanded value. If _\bp_\ba_\bt_\b-
- _\bt_\be_\br_\bn is omitted, it is treated like a ?\b?, which matches every
- character.
+ betic characters in _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br. First, the _\bp_\ba_\bt_\bt_\be_\br_\bn is expanded
+ to produce a pattern as described below under P\bPa\bat\btt\bte\ber\brn\bn M\bMa\bat\btc\bch\bhi\bin\bng\bg.
+ B\bBa\bas\bsh\bh then examines characters in the expanded value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br
+ against _\bp_\ba_\bt_\bt_\be_\br_\bn as described below. If a character matches the
+ pattern, its case is converted. The pattern should not attempt
+ to match more than one character.
+
+ Using "^" converts lowercase letters matching _\bp_\ba_\bt_\bt_\be_\br_\bn to upper-
+ case; "," converts matching uppercase letters to lowercase. The
+ ^\b^ and ,\b, variants examine the first character in the expanded
+ value and convert its case if it matches _\bp_\ba_\bt_\bt_\be_\br_\bn; the ^\b^^\b^ and ,\b,,\b,
+ variants examine all characters in the expanded value and con-
+ vert each one that matches _\bp_\ba_\bt_\bt_\be_\br_\bn. If _\bp_\ba_\bt_\bt_\be_\br_\bn is omitted, it
+ is treated like a ?\b?, which matches every character.
If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is @\b@ or *\b*, the case modification operation is ap-
plied to each positional parameter in turn, and the expansion is
c\bco\bom\bmp\bpa\bat\bt4\b42\b2
c\bco\bom\bmp\bpa\bat\bt4\b43\b3
c\bco\bom\bmp\bpa\bat\bt4\b44\b4
- c\bco\bom\bmp\bpa\bat\bt5\b50\b0
These control aspects of the shell's compatibility mode
(see S\bSH\bHE\bEL\bLL\bL C\bCO\bOM\bMP\bPA\bAT\bTI\bIB\bBI\bIL\bLI\bIT\bTY\bY M\bMO\bOD\bDE\bE below).
c\bco\bom\bmp\bpl\ble\bet\bte\be_\b_f\bfu\bul\bll\blq\bqu\buo\bot\bte\be
+\bo Importing function definitions from the shell environment at
startup.
- +\bo Parsing the value of S\bSH\bHE\bEL\bLL\bLO\bOP\bPT\bTS\bS from the shell environment at
- startup.
+ +\bo Parsing the values of B\bBA\bAS\bSH\bHO\bOP\bPT\bTS\bS and S\bSH\bHE\bEL\bLL\bLO\bOP\bPT\bTS\bS from the shell en-
+ vironment at startup.
+\bo Redirecting output using the >, >|, <>, >&, &>, and >> redirec-
tion operators.
‘${PARAMETER//PATTERN/STRING}’
‘${PARAMETER/#PATTERN/STRING}’
‘${PARAMETER/%PATTERN/STRING}’
- The PATTERN is expanded to produce a pattern just as in filename
- expansion and matched against the expanded value of PARAMETER
- according to the rules described below (*note Pattern Matching::).
- The longest match of PATTERN in the expanded value is replaced with
- STRING. STRING undergoes tilde expansion, parameter and variable
- expansion, arithmetic expansion, command and process substitution,
- and quote removal.
+ The PATTERN is expanded to produce a pattern and matched against
+ the expanded value of PARAMETER as described below (*note Pattern
+ Matching::). The longest match of PATTERN in the expanded value is
+ replaced with STRING. STRING undergoes tilde expansion, parameter
+ and variable expansion, arithmetic expansion, command and process
+ substitution, and quote removal.
In the first form above, only the first match is replaced. If
there are two slashes separating PARAMETER and PATTERN (the second
‘${PARAMETER,PATTERN}’
‘${PARAMETER,,PATTERN}’
This expansion modifies the case of alphabetic characters in
- PARAMETER. The PATTERN is expanded to produce a pattern just as in
- filename expansion. Each character in the expanded value of
- PARAMETER is tested against PATTERN, and, if it matches the
+ PARAMETER. First, the PATTERN is expanded to produce a pattern as
+ described below in *note Pattern Matching::.
+
+ ‘Bash’ then examines characters in the expanded value of PARAMETER
+ against PATTERN as described below. If a character matches the
pattern, its case is converted. The pattern should not attempt to
match more than one character.
- The ‘^’ operator converts lowercase letters matching PATTERN to
- uppercase; the ‘,’ operator converts matching uppercase letters to
- lowercase. The ‘^^’ and ‘,,’ expansions convert each matched
- character in the expanded value; the ‘^’ and ‘,’ expansions match
- and convert only the first character in the expanded value. If
- PATTERN is omitted, it is treated like a ‘?’, which matches every
- character.
+ Using ‘^’ converts lowercase letters matching PATTERN to uppercase;
+ ‘,’ converts matching uppercase letters to lowercase. The ‘^’ and
+ ‘,’ variants examine the first character in the expanded value and
+ convert its case if it matches PATTERN; the ‘^^’ and ‘,,’ variants
+ examine all characters in the expanded value and convert each one
+ that matches PATTERN. If PATTERN is omitted, it is treated like a
+ ‘?’, which matches every character.
If PARAMETER is ‘@’ or ‘*’, the case modification operation is
applied to each positional parameter in turn, and the expansion is
command (*note The Shopt Builtin::). The options appearing in
‘BASHOPTS’ are those reported as ‘on’ by ‘shopt’. If this variable
is in the environment when Bash starts up, the shell enables each
- option in the list before reading any startup files. This variable
- is readonly.
+ option in the list before reading any startup files. If this
+ variable is exported, child shells will enable each option in the
+ list. This variable is readonly.
‘BASHPID’
Expands to the process ID of the current Bash process. This
specification from the word designator. It may be omitted if the word
designator begins with a ‘^’, ‘$’, ‘*’, ‘-’, or ‘%’. Words are numbered
from the beginning of the line, with the first word being denoted by 0
-(zero). Words are inserted into the current line separated by single
-spaces.
+(zero). That first word is usually the command word, and the arguments
+begin with the second word. Words are inserted into the current line
+separated by single spaces.
For example,
preceding command is repeated in toto.
‘!!:$’
- designates the last argument of the preceding command. This may be
+ designates the last word of the preceding command. This may be
shortened to ‘!$’.
‘!fi:2’
* auto_resume: Job Control Variables.
(line 6)
* BASH: Bash Variables. (line 24)
-* BASH_ALIASES: Bash Variables. (line 43)
-* BASH_ARGC: Bash Variables. (line 52)
-* BASH_ARGV: Bash Variables. (line 66)
-* BASH_ARGV0: Bash Variables. (line 79)
-* BASH_CMDS: Bash Variables. (line 87)
-* BASH_COMMAND: Bash Variables. (line 96)
-* BASH_COMPAT: Bash Variables. (line 103)
-* BASH_ENV: Bash Variables. (line 119)
-* BASH_EXECUTION_STRING: Bash Variables. (line 125)
-* BASH_LINENO: Bash Variables. (line 128)
-* BASH_LOADABLES_PATH: Bash Variables. (line 138)
-* BASH_MONOSECONDS: Bash Variables. (line 142)
-* BASH_REMATCH: Bash Variables. (line 149)
-* BASH_SOURCE: Bash Variables. (line 157)
-* BASH_SUBSHELL: Bash Variables. (line 165)
-* BASH_TRAPSIG: Bash Variables. (line 171)
-* BASH_VERSINFO: Bash Variables. (line 177)
-* BASH_VERSION: Bash Variables. (line 200)
-* BASH_XTRACEFD: Bash Variables. (line 204)
+* BASH_ALIASES: Bash Variables. (line 44)
+* BASH_ARGC: Bash Variables. (line 53)
+* BASH_ARGV: Bash Variables. (line 67)
+* BASH_ARGV0: Bash Variables. (line 80)
+* BASH_CMDS: Bash Variables. (line 88)
+* BASH_COMMAND: Bash Variables. (line 97)
+* BASH_COMPAT: Bash Variables. (line 104)
+* BASH_ENV: Bash Variables. (line 120)
+* BASH_EXECUTION_STRING: Bash Variables. (line 126)
+* BASH_LINENO: Bash Variables. (line 129)
+* BASH_LOADABLES_PATH: Bash Variables. (line 139)
+* BASH_MONOSECONDS: Bash Variables. (line 143)
+* BASH_REMATCH: Bash Variables. (line 150)
+* BASH_SOURCE: Bash Variables. (line 158)
+* BASH_SUBSHELL: Bash Variables. (line 166)
+* BASH_TRAPSIG: Bash Variables. (line 172)
+* BASH_VERSINFO: Bash Variables. (line 178)
+* BASH_VERSION: Bash Variables. (line 201)
+* BASH_XTRACEFD: Bash Variables. (line 205)
* BASHOPTS: Bash Variables. (line 27)
-* BASHPID: Bash Variables. (line 36)
+* BASHPID: Bash Variables. (line 37)
* bell-style: Readline Init File Syntax.
(line 64)
* bind-tty-special-chars: Readline Init File Syntax.
(line 79)
* CDPATH: Bourne Shell Variables.
(line 9)
-* CHILD_MAX: Bash Variables. (line 216)
+* CHILD_MAX: Bash Variables. (line 217)
* colored-completion-prefix: Readline Init File Syntax.
(line 84)
* colored-stats: Readline Init File Syntax.
(line 94)
-* COLUMNS: Bash Variables. (line 223)
+* COLUMNS: Bash Variables. (line 224)
* comment-begin: Readline Init File Syntax.
(line 100)
-* COMP_CWORD: Bash Variables. (line 229)
-* COMP_KEY: Bash Variables. (line 235)
-* COMP_LINE: Bash Variables. (line 241)
-* COMP_POINT: Bash Variables. (line 246)
-* COMP_TYPE: Bash Variables. (line 254)
-* COMP_WORDBREAKS: Bash Variables. (line 264)
-* COMP_WORDS: Bash Variables. (line 270)
+* COMP_CWORD: Bash Variables. (line 230)
+* COMP_KEY: Bash Variables. (line 236)
+* COMP_LINE: Bash Variables. (line 242)
+* COMP_POINT: Bash Variables. (line 247)
+* COMP_TYPE: Bash Variables. (line 255)
+* COMP_WORDBREAKS: Bash Variables. (line 265)
+* COMP_WORDS: Bash Variables. (line 271)
* completion-display-width: Readline Init File Syntax.
(line 104)
* completion-ignore-case: Readline Init File Syntax.
(line 122)
* completion-query-items: Readline Init File Syntax.
(line 131)
-* COMPREPLY: Bash Variables. (line 277)
+* COMPREPLY: Bash Variables. (line 278)
* convert-meta: Readline Init File Syntax.
(line 142)
-* COPROC: Bash Variables. (line 283)
-* DIRSTACK: Bash Variables. (line 287)
+* COPROC: Bash Variables. (line 284)
+* DIRSTACK: Bash Variables. (line 288)
* disable-completion: Readline Init File Syntax.
(line 154)
* echo-control-characters: Readline Init File Syntax.
(line 159)
* editing-mode: Readline Init File Syntax.
(line 164)
-* EMACS: Bash Variables. (line 297)
+* EMACS: Bash Variables. (line 298)
* emacs-mode-string: Readline Init File Syntax.
(line 170)
* enable-active-region The: Readline Init File Syntax.
(line 202)
* enable-meta-key: Readline Init File Syntax.
(line 207)
-* ENV: Bash Variables. (line 302)
-* EPOCHREALTIME: Bash Variables. (line 307)
-* EPOCHSECONDS: Bash Variables. (line 315)
-* EUID: Bash Variables. (line 322)
-* EXECIGNORE: Bash Variables. (line 326)
+* ENV: Bash Variables. (line 303)
+* EPOCHREALTIME: Bash Variables. (line 308)
+* EPOCHSECONDS: Bash Variables. (line 316)
+* EUID: Bash Variables. (line 323)
+* EXECIGNORE: Bash Variables. (line 327)
* expand-tilde: Readline Init File Syntax.
(line 217)
-* FCEDIT: Bash Variables. (line 338)
-* FIGNORE: Bash Variables. (line 341)
+* FCEDIT: Bash Variables. (line 339)
+* FIGNORE: Bash Variables. (line 342)
* force-meta-prefix: Readline Init File Syntax.
(line 221)
-* FUNCNAME: Bash Variables. (line 347)
-* FUNCNEST: Bash Variables. (line 364)
-* GLOBIGNORE: Bash Variables. (line 369)
-* GLOBSORT: Bash Variables. (line 376)
-* GROUPS: Bash Variables. (line 414)
-* histchars: Bash Variables. (line 420)
-* HISTCMD: Bash Variables. (line 436)
-* HISTCONTROL: Bash Variables. (line 442)
-* HISTFILE: Bash Variables. (line 460)
-* HISTFILESIZE: Bash Variables. (line 466)
-* HISTIGNORE: Bash Variables. (line 477)
+* FUNCNAME: Bash Variables. (line 348)
+* FUNCNEST: Bash Variables. (line 365)
+* GLOBIGNORE: Bash Variables. (line 370)
+* GLOBSORT: Bash Variables. (line 377)
+* GROUPS: Bash Variables. (line 415)
+* histchars: Bash Variables. (line 421)
+* HISTCMD: Bash Variables. (line 437)
+* HISTCONTROL: Bash Variables. (line 443)
+* HISTFILE: Bash Variables. (line 461)
+* HISTFILESIZE: Bash Variables. (line 467)
+* HISTIGNORE: Bash Variables. (line 478)
* history-preserve-point: Readline Init File Syntax.
(line 234)
* history-size: Readline Init File Syntax.
(line 240)
-* HISTSIZE: Bash Variables. (line 501)
-* HISTTIMEFORMAT: Bash Variables. (line 508)
+* HISTSIZE: Bash Variables. (line 502)
+* HISTTIMEFORMAT: Bash Variables. (line 509)
* HOME: Bourne Shell Variables.
(line 13)
* horizontal-scroll-mode: Readline Init File Syntax.
(line 250)
-* HOSTFILE: Bash Variables. (line 517)
-* HOSTNAME: Bash Variables. (line 528)
-* HOSTTYPE: Bash Variables. (line 531)
+* HOSTFILE: Bash Variables. (line 518)
+* HOSTNAME: Bash Variables. (line 529)
+* HOSTTYPE: Bash Variables. (line 532)
* IFS: Bourne Shell Variables.
(line 18)
-* IGNOREEOF: Bash Variables. (line 534)
+* IGNOREEOF: Bash Variables. (line 535)
* input-meta: Readline Init File Syntax.
(line 258)
-* INPUTRC: Bash Variables. (line 543)
-* INSIDE_EMACS: Bash Variables. (line 547)
+* INPUTRC: Bash Variables. (line 544)
+* INSIDE_EMACS: Bash Variables. (line 548)
* isearch-terminators: Readline Init File Syntax.
(line 269)
* keymap: Readline Init File Syntax.
(line 276)
* LANG: Creating Internationalized Scripts.
(line 51)
-* LANG <1>: Bash Variables. (line 553)
-* LC_ALL: Bash Variables. (line 557)
-* LC_COLLATE: Bash Variables. (line 561)
-* LC_CTYPE: Bash Variables. (line 568)
+* LANG <1>: Bash Variables. (line 554)
+* LC_ALL: Bash Variables. (line 558)
+* LC_COLLATE: Bash Variables. (line 562)
+* LC_CTYPE: Bash Variables. (line 569)
* LC_MESSAGES: Creating Internationalized Scripts.
(line 51)
-* LC_MESSAGES <1>: Bash Variables. (line 573)
-* LC_NUMERIC: Bash Variables. (line 577)
-* LC_TIME: Bash Variables. (line 581)
-* LINENO: Bash Variables. (line 585)
-* LINES: Bash Variables. (line 592)
-* MACHTYPE: Bash Variables. (line 598)
+* LC_MESSAGES <1>: Bash Variables. (line 574)
+* LC_NUMERIC: Bash Variables. (line 578)
+* LC_TIME: Bash Variables. (line 582)
+* LINENO: Bash Variables. (line 586)
+* LINES: Bash Variables. (line 593)
+* MACHTYPE: Bash Variables. (line 599)
* MAIL: Bourne Shell Variables.
(line 24)
-* MAILCHECK: Bash Variables. (line 602)
+* MAILCHECK: Bash Variables. (line 603)
* MAILPATH: Bourne Shell Variables.
(line 29)
-* MAPFILE: Bash Variables. (line 610)
+* MAPFILE: Bash Variables. (line 611)
* mark-modified-lines: Readline Init File Syntax.
(line 306)
* mark-symlinked-directories: Readline Init File Syntax.
(line 323)
* meta-flag: Readline Init File Syntax.
(line 258)
-* OLDPWD: Bash Variables. (line 614)
+* OLDPWD: Bash Variables. (line 615)
* OPTARG: Bourne Shell Variables.
(line 36)
-* OPTERR: Bash Variables. (line 617)
+* OPTERR: Bash Variables. (line 618)
* OPTIND: Bourne Shell Variables.
(line 40)
-* OSTYPE: Bash Variables. (line 622)
+* OSTYPE: Bash Variables. (line 623)
* output-meta: Readline Init File Syntax.
(line 328)
* page-completions: Readline Init File Syntax.
(line 337)
* PATH: Bourne Shell Variables.
(line 44)
-* PIPESTATUS: Bash Variables. (line 625)
-* POSIXLY_CORRECT: Bash Variables. (line 635)
-* PPID: Bash Variables. (line 645)
-* PROMPT_COMMAND: Bash Variables. (line 649)
-* PROMPT_DIRTRIM: Bash Variables. (line 655)
-* PS0: Bash Variables. (line 661)
+* PIPESTATUS: Bash Variables. (line 626)
+* POSIXLY_CORRECT: Bash Variables. (line 636)
+* PPID: Bash Variables. (line 646)
+* PROMPT_COMMAND: Bash Variables. (line 650)
+* PROMPT_DIRTRIM: Bash Variables. (line 656)
+* PS0: Bash Variables. (line 662)
* PS1: Bourne Shell Variables.
(line 53)
* PS2: Bourne Shell Variables.
(line 58)
-* PS3: Bash Variables. (line 666)
-* PS4: Bash Variables. (line 671)
-* PWD: Bash Variables. (line 679)
-* RANDOM: Bash Variables. (line 682)
-* READLINE_ARGUMENT: Bash Variables. (line 690)
-* READLINE_LINE: Bash Variables. (line 694)
-* READLINE_MARK: Bash Variables. (line 698)
-* READLINE_POINT: Bash Variables. (line 704)
-* REPLY: Bash Variables. (line 708)
+* PS3: Bash Variables. (line 667)
+* PS4: Bash Variables. (line 672)
+* PWD: Bash Variables. (line 680)
+* RANDOM: Bash Variables. (line 683)
+* READLINE_ARGUMENT: Bash Variables. (line 691)
+* READLINE_LINE: Bash Variables. (line 695)
+* READLINE_MARK: Bash Variables. (line 699)
+* READLINE_POINT: Bash Variables. (line 705)
+* REPLY: Bash Variables. (line 709)
* revert-all-at-newline: Readline Init File Syntax.
(line 350)
* search-ignore-case: Readline Init File Syntax.
(line 357)
-* SECONDS: Bash Variables. (line 712)
-* SHELL: Bash Variables. (line 722)
-* SHELLOPTS: Bash Variables. (line 727)
-* SHLVL: Bash Variables. (line 737)
+* SECONDS: Bash Variables. (line 713)
+* SHELL: Bash Variables. (line 723)
+* SHELLOPTS: Bash Variables. (line 728)
+* SHLVL: Bash Variables. (line 738)
* show-all-if-ambiguous: Readline Init File Syntax.
(line 362)
* show-all-if-unmodified: Readline Init File Syntax.
(line 377)
* skip-completed-text: Readline Init File Syntax.
(line 383)
-* SRANDOM: Bash Variables. (line 742)
+* SRANDOM: Bash Variables. (line 743)
* TEXTDOMAIN: Creating Internationalized Scripts.
(line 51)
* TEXTDOMAINDIR: Creating Internationalized Scripts.
(line 51)
-* TIMEFORMAT: Bash Variables. (line 751)
-* TMOUT: Bash Variables. (line 790)
-* TMPDIR: Bash Variables. (line 802)
-* UID: Bash Variables. (line 806)
+* TIMEFORMAT: Bash Variables. (line 752)
+* TMOUT: Bash Variables. (line 791)
+* TMPDIR: Bash Variables. (line 803)
+* UID: Bash Variables. (line 807)
* vi-cmd-mode-string: Readline Init File Syntax.
(line 396)
* vi-ins-mode-string: Readline Init File Syntax.
Node: Brace Expansion\7f76232
Node: Tilde Expansion\7f79578
Node: Shell Parameter Expansion\7f82533
-Node: Command Substitution\7f102293
-Node: Arithmetic Expansion\7f105822
-Node: Process Substitution\7f106836
-Node: Word Splitting\7f107944
-Node: Filename Expansion\7f110388
-Node: Pattern Matching\7f113612
-Node: Quote Removal\7f119335
-Node: Redirections\7f119639
-Node: Executing Commands\7f129902
-Node: Simple Command Expansion\7f130569
-Node: Command Search and Execution\7f132677
-Node: Command Execution Environment\7f135121
-Node: Environment\7f138569
-Node: Exit Status\7f140472
-Node: Signals\7f142530
-Node: Shell Scripts\7f147459
-Node: Shell Builtin Commands\7f150757
-Node: Bourne Shell Builtins\7f152868
-Node: Bash Builtins\7f179432
-Node: Modifying Shell Behavior\7f216356
-Node: The Set Builtin\7f216698
-Node: The Shopt Builtin\7f228686
-Node: Special Builtins\7f245738
-Node: Shell Variables\7f246727
-Node: Bourne Shell Variables\7f247161
-Node: Bash Variables\7f249669
-Node: Bash Features\7f288488
-Node: Invoking Bash\7f289502
-Node: Bash Startup Files\7f296086
-Node: Interactive Shells\7f301328
-Node: What is an Interactive Shell?\7f301736
-Node: Is this Shell Interactive?\7f302398
-Node: Interactive Shell Behavior\7f303222
-Node: Bash Conditional Expressions\7f306983
-Node: Shell Arithmetic\7f312194
-Node: Aliases\7f315523
-Node: Arrays\7f318657
-Node: The Directory Stack\7f325749
-Node: Directory Stack Builtins\7f326546
-Node: Controlling the Prompt\7f330991
-Node: The Restricted Shell\7f333876
-Node: Bash POSIX Mode\7f336758
-Node: Shell Compatibility Mode\7f354819
-Node: Job Control\7f363826
-Node: Job Control Basics\7f364283
-Node: Job Control Builtins\7f370561
-Node: Job Control Variables\7f377243
-Node: Command Line Editing\7f378474
-Node: Introduction and Notation\7f380177
-Node: Readline Interaction\7f382529
-Node: Readline Bare Essentials\7f383717
-Node: Readline Movement Commands\7f385525
-Node: Readline Killing Commands\7f386521
-Node: Readline Arguments\7f388544
-Node: Searching\7f389601
-Node: Readline Init File\7f391844
-Node: Readline Init File Syntax\7f393147
-Node: Conditional Init Constructs\7f419972
-Node: Sample Init File\7f424357
-Node: Bindable Readline Commands\7f427477
-Node: Commands For Moving\7f429015
-Node: Commands For History\7f431383
-Node: Commands For Text\7f436773
-Node: Commands For Killing\7f440898
-Node: Numeric Arguments\7f443686
-Node: Commands For Completion\7f444838
-Node: Keyboard Macros\7f450534
-Node: Miscellaneous Commands\7f451235
-Node: Readline vi Mode\7f457802
-Node: Programmable Completion\7f458779
-Node: Programmable Completion Builtins\7f467516
-Node: A Programmable Completion Example\7f479253
-Node: Using History Interactively\7f484598
-Node: Bash History Facilities\7f485279
-Node: Bash History Builtins\7f489014
-Node: History Interaction\7f495485
-Node: Event Designators\7f500435
-Node: Word Designators\7f502013
-Node: Modifiers\7f504317
-Node: Installing Bash\7f506254
-Node: Basic Installation\7f507370
-Node: Compilers and Options\7f511246
-Node: Compiling For Multiple Architectures\7f511996
-Node: Installation Names\7f513749
-Node: Specifying the System Type\7f515983
-Node: Sharing Defaults\7f516729
-Node: Operation Controls\7f517443
-Node: Optional Features\7f518462
-Node: Reporting Bugs\7f530842
-Node: Major Differences From The Bourne Shell\7f532199
-Node: GNU Free Documentation License\7f553619
-Node: Indexes\7f578796
-Node: Builtin Index\7f579247
-Node: Reserved Word Index\7f586345
-Node: Variable Index\7f588790
-Node: Function Index\7f606203
-Node: Concept Index\7f620198
+Node: Command Substitution\7f102341
+Node: Arithmetic Expansion\7f105870
+Node: Process Substitution\7f106884
+Node: Word Splitting\7f107992
+Node: Filename Expansion\7f110436
+Node: Pattern Matching\7f113660
+Node: Quote Removal\7f119383
+Node: Redirections\7f119687
+Node: Executing Commands\7f129950
+Node: Simple Command Expansion\7f130617
+Node: Command Search and Execution\7f132725
+Node: Command Execution Environment\7f135169
+Node: Environment\7f138617
+Node: Exit Status\7f140520
+Node: Signals\7f142578
+Node: Shell Scripts\7f147507
+Node: Shell Builtin Commands\7f150805
+Node: Bourne Shell Builtins\7f152916
+Node: Bash Builtins\7f179480
+Node: Modifying Shell Behavior\7f216404
+Node: The Set Builtin\7f216746
+Node: The Shopt Builtin\7f228734
+Node: Special Builtins\7f245786
+Node: Shell Variables\7f246775
+Node: Bourne Shell Variables\7f247209
+Node: Bash Variables\7f249717
+Node: Bash Features\7f288622
+Node: Invoking Bash\7f289636
+Node: Bash Startup Files\7f296220
+Node: Interactive Shells\7f301462
+Node: What is an Interactive Shell?\7f301870
+Node: Is this Shell Interactive?\7f302532
+Node: Interactive Shell Behavior\7f303356
+Node: Bash Conditional Expressions\7f307117
+Node: Shell Arithmetic\7f312328
+Node: Aliases\7f315657
+Node: Arrays\7f318791
+Node: The Directory Stack\7f325883
+Node: Directory Stack Builtins\7f326680
+Node: Controlling the Prompt\7f331125
+Node: The Restricted Shell\7f334010
+Node: Bash POSIX Mode\7f336892
+Node: Shell Compatibility Mode\7f354953
+Node: Job Control\7f363960
+Node: Job Control Basics\7f364417
+Node: Job Control Builtins\7f370695
+Node: Job Control Variables\7f377377
+Node: Command Line Editing\7f378608
+Node: Introduction and Notation\7f380311
+Node: Readline Interaction\7f382663
+Node: Readline Bare Essentials\7f383851
+Node: Readline Movement Commands\7f385659
+Node: Readline Killing Commands\7f386655
+Node: Readline Arguments\7f388678
+Node: Searching\7f389735
+Node: Readline Init File\7f391978
+Node: Readline Init File Syntax\7f393281
+Node: Conditional Init Constructs\7f420106
+Node: Sample Init File\7f424491
+Node: Bindable Readline Commands\7f427611
+Node: Commands For Moving\7f429149
+Node: Commands For History\7f431517
+Node: Commands For Text\7f436907
+Node: Commands For Killing\7f441032
+Node: Numeric Arguments\7f443820
+Node: Commands For Completion\7f444972
+Node: Keyboard Macros\7f450668
+Node: Miscellaneous Commands\7f451369
+Node: Readline vi Mode\7f457936
+Node: Programmable Completion\7f458913
+Node: Programmable Completion Builtins\7f467650
+Node: A Programmable Completion Example\7f479387
+Node: Using History Interactively\7f484732
+Node: Bash History Facilities\7f485413
+Node: Bash History Builtins\7f489148
+Node: History Interaction\7f495619
+Node: Event Designators\7f500569
+Node: Word Designators\7f502147
+Node: Modifiers\7f504539
+Node: Installing Bash\7f506476
+Node: Basic Installation\7f507592
+Node: Compilers and Options\7f511468
+Node: Compiling For Multiple Architectures\7f512218
+Node: Installation Names\7f513971
+Node: Specifying the System Type\7f516205
+Node: Sharing Defaults\7f516951
+Node: Operation Controls\7f517665
+Node: Optional Features\7f518684
+Node: Reporting Bugs\7f531064
+Node: Major Differences From The Bourne Shell\7f532421
+Node: GNU Free Documentation License\7f553841
+Node: Indexes\7f579018
+Node: Builtin Index\7f579469
+Node: Reserved Word Index\7f586567
+Node: Variable Index\7f589012
+Node: Function Index\7f606425
+Node: Concept Index\7f620420
\1f
End Tag Table
‘${PARAMETER//PATTERN/STRING}’
‘${PARAMETER/#PATTERN/STRING}’
‘${PARAMETER/%PATTERN/STRING}’
- The PATTERN is expanded to produce a pattern just as in filename
- expansion and matched against the expanded value of PARAMETER
- according to the rules described below (*note Pattern Matching::).
- The longest match of PATTERN in the expanded value is replaced with
- STRING. STRING undergoes tilde expansion, parameter and variable
- expansion, arithmetic expansion, command and process substitution,
- and quote removal.
+ The PATTERN is expanded to produce a pattern and matched against
+ the expanded value of PARAMETER as described below (*note Pattern
+ Matching::). The longest match of PATTERN in the expanded value is
+ replaced with STRING. STRING undergoes tilde expansion, parameter
+ and variable expansion, arithmetic expansion, command and process
+ substitution, and quote removal.
In the first form above, only the first match is replaced. If
there are two slashes separating PARAMETER and PATTERN (the second
‘${PARAMETER,PATTERN}’
‘${PARAMETER,,PATTERN}’
This expansion modifies the case of alphabetic characters in
- PARAMETER. The PATTERN is expanded to produce a pattern just as in
- filename expansion. Each character in the expanded value of
- PARAMETER is tested against PATTERN, and, if it matches the
+ PARAMETER. First, the PATTERN is expanded to produce a pattern as
+ described below in *note Pattern Matching::.
+
+ ‘Bash’ then examines characters in the expanded value of PARAMETER
+ against PATTERN as described below. If a character matches the
pattern, its case is converted. The pattern should not attempt to
match more than one character.
- The ‘^’ operator converts lowercase letters matching PATTERN to
- uppercase; the ‘,’ operator converts matching uppercase letters to
- lowercase. The ‘^^’ and ‘,,’ expansions convert each matched
- character in the expanded value; the ‘^’ and ‘,’ expansions match
- and convert only the first character in the expanded value. If
- PATTERN is omitted, it is treated like a ‘?’, which matches every
- character.
+ Using ‘^’ converts lowercase letters matching PATTERN to uppercase;
+ ‘,’ converts matching uppercase letters to lowercase. The ‘^’ and
+ ‘,’ variants examine the first character in the expanded value and
+ convert its case if it matches PATTERN; the ‘^^’ and ‘,,’ variants
+ examine all characters in the expanded value and convert each one
+ that matches PATTERN. If PATTERN is omitted, it is treated like a
+ ‘?’, which matches every character.
If PARAMETER is ‘@’ or ‘*’, the case modification operation is
applied to each positional parameter in turn, and the expansion is
command (*note The Shopt Builtin::). The options appearing in
‘BASHOPTS’ are those reported as ‘on’ by ‘shopt’. If this variable
is in the environment when Bash starts up, the shell enables each
- option in the list before reading any startup files. This variable
- is readonly.
+ option in the list before reading any startup files. If this
+ variable is exported, child shells will enable each option in the
+ list. This variable is readonly.
‘BASHPID’
Expands to the process ID of the current Bash process. This
specification from the word designator. It may be omitted if the word
designator begins with a ‘^’, ‘$’, ‘*’, ‘-’, or ‘%’. Words are numbered
from the beginning of the line, with the first word being denoted by 0
-(zero). Words are inserted into the current line separated by single
-spaces.
+(zero). That first word is usually the command word, and the arguments
+begin with the second word. Words are inserted into the current line
+separated by single spaces.
For example,
preceding command is repeated in toto.
‘!!:$’
- designates the last argument of the preceding command. This may be
+ designates the last word of the preceding command. This may be
shortened to ‘!$’.
‘!fi:2’
* auto_resume: Job Control Variables.
(line 6)
* BASH: Bash Variables. (line 24)
-* BASH_ALIASES: Bash Variables. (line 43)
-* BASH_ARGC: Bash Variables. (line 52)
-* BASH_ARGV: Bash Variables. (line 66)
-* BASH_ARGV0: Bash Variables. (line 79)
-* BASH_CMDS: Bash Variables. (line 87)
-* BASH_COMMAND: Bash Variables. (line 96)
-* BASH_COMPAT: Bash Variables. (line 103)
-* BASH_ENV: Bash Variables. (line 119)
-* BASH_EXECUTION_STRING: Bash Variables. (line 125)
-* BASH_LINENO: Bash Variables. (line 128)
-* BASH_LOADABLES_PATH: Bash Variables. (line 138)
-* BASH_MONOSECONDS: Bash Variables. (line 142)
-* BASH_REMATCH: Bash Variables. (line 149)
-* BASH_SOURCE: Bash Variables. (line 157)
-* BASH_SUBSHELL: Bash Variables. (line 165)
-* BASH_TRAPSIG: Bash Variables. (line 171)
-* BASH_VERSINFO: Bash Variables. (line 177)
-* BASH_VERSION: Bash Variables. (line 200)
-* BASH_XTRACEFD: Bash Variables. (line 204)
+* BASH_ALIASES: Bash Variables. (line 44)
+* BASH_ARGC: Bash Variables. (line 53)
+* BASH_ARGV: Bash Variables. (line 67)
+* BASH_ARGV0: Bash Variables. (line 80)
+* BASH_CMDS: Bash Variables. (line 88)
+* BASH_COMMAND: Bash Variables. (line 97)
+* BASH_COMPAT: Bash Variables. (line 104)
+* BASH_ENV: Bash Variables. (line 120)
+* BASH_EXECUTION_STRING: Bash Variables. (line 126)
+* BASH_LINENO: Bash Variables. (line 129)
+* BASH_LOADABLES_PATH: Bash Variables. (line 139)
+* BASH_MONOSECONDS: Bash Variables. (line 143)
+* BASH_REMATCH: Bash Variables. (line 150)
+* BASH_SOURCE: Bash Variables. (line 158)
+* BASH_SUBSHELL: Bash Variables. (line 166)
+* BASH_TRAPSIG: Bash Variables. (line 172)
+* BASH_VERSINFO: Bash Variables. (line 178)
+* BASH_VERSION: Bash Variables. (line 201)
+* BASH_XTRACEFD: Bash Variables. (line 205)
* BASHOPTS: Bash Variables. (line 27)
-* BASHPID: Bash Variables. (line 36)
+* BASHPID: Bash Variables. (line 37)
* bell-style: Readline Init File Syntax.
(line 64)
* bind-tty-special-chars: Readline Init File Syntax.
(line 79)
* CDPATH: Bourne Shell Variables.
(line 9)
-* CHILD_MAX: Bash Variables. (line 216)
+* CHILD_MAX: Bash Variables. (line 217)
* colored-completion-prefix: Readline Init File Syntax.
(line 84)
* colored-stats: Readline Init File Syntax.
(line 94)
-* COLUMNS: Bash Variables. (line 223)
+* COLUMNS: Bash Variables. (line 224)
* comment-begin: Readline Init File Syntax.
(line 100)
-* COMP_CWORD: Bash Variables. (line 229)
-* COMP_KEY: Bash Variables. (line 235)
-* COMP_LINE: Bash Variables. (line 241)
-* COMP_POINT: Bash Variables. (line 246)
-* COMP_TYPE: Bash Variables. (line 254)
-* COMP_WORDBREAKS: Bash Variables. (line 264)
-* COMP_WORDS: Bash Variables. (line 270)
+* COMP_CWORD: Bash Variables. (line 230)
+* COMP_KEY: Bash Variables. (line 236)
+* COMP_LINE: Bash Variables. (line 242)
+* COMP_POINT: Bash Variables. (line 247)
+* COMP_TYPE: Bash Variables. (line 255)
+* COMP_WORDBREAKS: Bash Variables. (line 265)
+* COMP_WORDS: Bash Variables. (line 271)
* completion-display-width: Readline Init File Syntax.
(line 104)
* completion-ignore-case: Readline Init File Syntax.
(line 122)
* completion-query-items: Readline Init File Syntax.
(line 131)
-* COMPREPLY: Bash Variables. (line 277)
+* COMPREPLY: Bash Variables. (line 278)
* convert-meta: Readline Init File Syntax.
(line 142)
-* COPROC: Bash Variables. (line 283)
-* DIRSTACK: Bash Variables. (line 287)
+* COPROC: Bash Variables. (line 284)
+* DIRSTACK: Bash Variables. (line 288)
* disable-completion: Readline Init File Syntax.
(line 154)
* echo-control-characters: Readline Init File Syntax.
(line 159)
* editing-mode: Readline Init File Syntax.
(line 164)
-* EMACS: Bash Variables. (line 297)
+* EMACS: Bash Variables. (line 298)
* emacs-mode-string: Readline Init File Syntax.
(line 170)
* enable-active-region The: Readline Init File Syntax.
(line 202)
* enable-meta-key: Readline Init File Syntax.
(line 207)
-* ENV: Bash Variables. (line 302)
-* EPOCHREALTIME: Bash Variables. (line 307)
-* EPOCHSECONDS: Bash Variables. (line 315)
-* EUID: Bash Variables. (line 322)
-* EXECIGNORE: Bash Variables. (line 326)
+* ENV: Bash Variables. (line 303)
+* EPOCHREALTIME: Bash Variables. (line 308)
+* EPOCHSECONDS: Bash Variables. (line 316)
+* EUID: Bash Variables. (line 323)
+* EXECIGNORE: Bash Variables. (line 327)
* expand-tilde: Readline Init File Syntax.
(line 217)
-* FCEDIT: Bash Variables. (line 338)
-* FIGNORE: Bash Variables. (line 341)
+* FCEDIT: Bash Variables. (line 339)
+* FIGNORE: Bash Variables. (line 342)
* force-meta-prefix: Readline Init File Syntax.
(line 221)
-* FUNCNAME: Bash Variables. (line 347)
-* FUNCNEST: Bash Variables. (line 364)
-* GLOBIGNORE: Bash Variables. (line 369)
-* GLOBSORT: Bash Variables. (line 376)
-* GROUPS: Bash Variables. (line 414)
-* histchars: Bash Variables. (line 420)
-* HISTCMD: Bash Variables. (line 436)
-* HISTCONTROL: Bash Variables. (line 442)
-* HISTFILE: Bash Variables. (line 460)
-* HISTFILESIZE: Bash Variables. (line 466)
-* HISTIGNORE: Bash Variables. (line 477)
+* FUNCNAME: Bash Variables. (line 348)
+* FUNCNEST: Bash Variables. (line 365)
+* GLOBIGNORE: Bash Variables. (line 370)
+* GLOBSORT: Bash Variables. (line 377)
+* GROUPS: Bash Variables. (line 415)
+* histchars: Bash Variables. (line 421)
+* HISTCMD: Bash Variables. (line 437)
+* HISTCONTROL: Bash Variables. (line 443)
+* HISTFILE: Bash Variables. (line 461)
+* HISTFILESIZE: Bash Variables. (line 467)
+* HISTIGNORE: Bash Variables. (line 478)
* history-preserve-point: Readline Init File Syntax.
(line 234)
* history-size: Readline Init File Syntax.
(line 240)
-* HISTSIZE: Bash Variables. (line 501)
-* HISTTIMEFORMAT: Bash Variables. (line 508)
+* HISTSIZE: Bash Variables. (line 502)
+* HISTTIMEFORMAT: Bash Variables. (line 509)
* HOME: Bourne Shell Variables.
(line 13)
* horizontal-scroll-mode: Readline Init File Syntax.
(line 250)
-* HOSTFILE: Bash Variables. (line 517)
-* HOSTNAME: Bash Variables. (line 528)
-* HOSTTYPE: Bash Variables. (line 531)
+* HOSTFILE: Bash Variables. (line 518)
+* HOSTNAME: Bash Variables. (line 529)
+* HOSTTYPE: Bash Variables. (line 532)
* IFS: Bourne Shell Variables.
(line 18)
-* IGNOREEOF: Bash Variables. (line 534)
+* IGNOREEOF: Bash Variables. (line 535)
* input-meta: Readline Init File Syntax.
(line 258)
-* INPUTRC: Bash Variables. (line 543)
-* INSIDE_EMACS: Bash Variables. (line 547)
+* INPUTRC: Bash Variables. (line 544)
+* INSIDE_EMACS: Bash Variables. (line 548)
* isearch-terminators: Readline Init File Syntax.
(line 269)
* keymap: Readline Init File Syntax.
(line 276)
* LANG: Creating Internationalized Scripts.
(line 51)
-* LANG <1>: Bash Variables. (line 553)
-* LC_ALL: Bash Variables. (line 557)
-* LC_COLLATE: Bash Variables. (line 561)
-* LC_CTYPE: Bash Variables. (line 568)
+* LANG <1>: Bash Variables. (line 554)
+* LC_ALL: Bash Variables. (line 558)
+* LC_COLLATE: Bash Variables. (line 562)
+* LC_CTYPE: Bash Variables. (line 569)
* LC_MESSAGES: Creating Internationalized Scripts.
(line 51)
-* LC_MESSAGES <1>: Bash Variables. (line 573)
-* LC_NUMERIC: Bash Variables. (line 577)
-* LC_TIME: Bash Variables. (line 581)
-* LINENO: Bash Variables. (line 585)
-* LINES: Bash Variables. (line 592)
-* MACHTYPE: Bash Variables. (line 598)
+* LC_MESSAGES <1>: Bash Variables. (line 574)
+* LC_NUMERIC: Bash Variables. (line 578)
+* LC_TIME: Bash Variables. (line 582)
+* LINENO: Bash Variables. (line 586)
+* LINES: Bash Variables. (line 593)
+* MACHTYPE: Bash Variables. (line 599)
* MAIL: Bourne Shell Variables.
(line 24)
-* MAILCHECK: Bash Variables. (line 602)
+* MAILCHECK: Bash Variables. (line 603)
* MAILPATH: Bourne Shell Variables.
(line 29)
-* MAPFILE: Bash Variables. (line 610)
+* MAPFILE: Bash Variables. (line 611)
* mark-modified-lines: Readline Init File Syntax.
(line 306)
* mark-symlinked-directories: Readline Init File Syntax.
(line 323)
* meta-flag: Readline Init File Syntax.
(line 258)
-* OLDPWD: Bash Variables. (line 614)
+* OLDPWD: Bash Variables. (line 615)
* OPTARG: Bourne Shell Variables.
(line 36)
-* OPTERR: Bash Variables. (line 617)
+* OPTERR: Bash Variables. (line 618)
* OPTIND: Bourne Shell Variables.
(line 40)
-* OSTYPE: Bash Variables. (line 622)
+* OSTYPE: Bash Variables. (line 623)
* output-meta: Readline Init File Syntax.
(line 328)
* page-completions: Readline Init File Syntax.
(line 337)
* PATH: Bourne Shell Variables.
(line 44)
-* PIPESTATUS: Bash Variables. (line 625)
-* POSIXLY_CORRECT: Bash Variables. (line 635)
-* PPID: Bash Variables. (line 645)
-* PROMPT_COMMAND: Bash Variables. (line 649)
-* PROMPT_DIRTRIM: Bash Variables. (line 655)
-* PS0: Bash Variables. (line 661)
+* PIPESTATUS: Bash Variables. (line 626)
+* POSIXLY_CORRECT: Bash Variables. (line 636)
+* PPID: Bash Variables. (line 646)
+* PROMPT_COMMAND: Bash Variables. (line 650)
+* PROMPT_DIRTRIM: Bash Variables. (line 656)
+* PS0: Bash Variables. (line 662)
* PS1: Bourne Shell Variables.
(line 53)
* PS2: Bourne Shell Variables.
(line 58)
-* PS3: Bash Variables. (line 666)
-* PS4: Bash Variables. (line 671)
-* PWD: Bash Variables. (line 679)
-* RANDOM: Bash Variables. (line 682)
-* READLINE_ARGUMENT: Bash Variables. (line 690)
-* READLINE_LINE: Bash Variables. (line 694)
-* READLINE_MARK: Bash Variables. (line 698)
-* READLINE_POINT: Bash Variables. (line 704)
-* REPLY: Bash Variables. (line 708)
+* PS3: Bash Variables. (line 667)
+* PS4: Bash Variables. (line 672)
+* PWD: Bash Variables. (line 680)
+* RANDOM: Bash Variables. (line 683)
+* READLINE_ARGUMENT: Bash Variables. (line 691)
+* READLINE_LINE: Bash Variables. (line 695)
+* READLINE_MARK: Bash Variables. (line 699)
+* READLINE_POINT: Bash Variables. (line 705)
+* REPLY: Bash Variables. (line 709)
* revert-all-at-newline: Readline Init File Syntax.
(line 350)
* search-ignore-case: Readline Init File Syntax.
(line 357)
-* SECONDS: Bash Variables. (line 712)
-* SHELL: Bash Variables. (line 722)
-* SHELLOPTS: Bash Variables. (line 727)
-* SHLVL: Bash Variables. (line 737)
+* SECONDS: Bash Variables. (line 713)
+* SHELL: Bash Variables. (line 723)
+* SHELLOPTS: Bash Variables. (line 728)
+* SHLVL: Bash Variables. (line 738)
* show-all-if-ambiguous: Readline Init File Syntax.
(line 362)
* show-all-if-unmodified: Readline Init File Syntax.
(line 377)
* skip-completed-text: Readline Init File Syntax.
(line 383)
-* SRANDOM: Bash Variables. (line 742)
+* SRANDOM: Bash Variables. (line 743)
* TEXTDOMAIN: Creating Internationalized Scripts.
(line 51)
* TEXTDOMAINDIR: Creating Internationalized Scripts.
(line 51)
-* TIMEFORMAT: Bash Variables. (line 751)
-* TMOUT: Bash Variables. (line 790)
-* TMPDIR: Bash Variables. (line 802)
-* UID: Bash Variables. (line 806)
+* TIMEFORMAT: Bash Variables. (line 752)
+* TMOUT: Bash Variables. (line 791)
+* TMPDIR: Bash Variables. (line 803)
+* UID: Bash Variables. (line 807)
* vi-cmd-mode-string: Readline Init File Syntax.
(line 396)
* vi-ins-mode-string: Readline Init File Syntax.
Node: Brace Expansion\7f76331
Node: Tilde Expansion\7f79680
Node: Shell Parameter Expansion\7f82638
-Node: Command Substitution\7f102401
-Node: Arithmetic Expansion\7f105933
-Node: Process Substitution\7f106950
-Node: Word Splitting\7f108061
-Node: Filename Expansion\7f110508
-Node: Pattern Matching\7f113735
-Node: Quote Removal\7f119461
-Node: Redirections\7f119768
-Node: Executing Commands\7f130034
-Node: Simple Command Expansion\7f130704
-Node: Command Search and Execution\7f132815
-Node: Command Execution Environment\7f135262
-Node: Environment\7f138713
-Node: Exit Status\7f140619
-Node: Signals\7f142680
-Node: Shell Scripts\7f147612
-Node: Shell Builtin Commands\7f150913
-Node: Bourne Shell Builtins\7f153027
-Node: Bash Builtins\7f179594
-Node: Modifying Shell Behavior\7f216521
-Node: The Set Builtin\7f216866
-Node: The Shopt Builtin\7f228857
-Node: Special Builtins\7f245912
-Node: Shell Variables\7f246904
-Node: Bourne Shell Variables\7f247341
-Node: Bash Variables\7f249852
-Node: Bash Features\7f288674
-Node: Invoking Bash\7f289691
-Node: Bash Startup Files\7f296278
-Node: Interactive Shells\7f301523
-Node: What is an Interactive Shell?\7f301934
-Node: Is this Shell Interactive?\7f302599
-Node: Interactive Shell Behavior\7f303426
-Node: Bash Conditional Expressions\7f307190
-Node: Shell Arithmetic\7f312404
-Node: Aliases\7f315736
-Node: Arrays\7f318873
-Node: The Directory Stack\7f325968
-Node: Directory Stack Builtins\7f326768
-Node: Controlling the Prompt\7f331216
-Node: The Restricted Shell\7f334104
-Node: Bash POSIX Mode\7f336989
-Node: Shell Compatibility Mode\7f355053
-Node: Job Control\7f364063
-Node: Job Control Basics\7f364523
-Node: Job Control Builtins\7f370804
-Node: Job Control Variables\7f377489
-Node: Command Line Editing\7f378723
-Node: Introduction and Notation\7f380429
-Node: Readline Interaction\7f382784
-Node: Readline Bare Essentials\7f383975
-Node: Readline Movement Commands\7f385786
-Node: Readline Killing Commands\7f386785
-Node: Readline Arguments\7f388811
-Node: Searching\7f389871
-Node: Readline Init File\7f392117
-Node: Readline Init File Syntax\7f393423
-Node: Conditional Init Constructs\7f420251
-Node: Sample Init File\7f424639
-Node: Bindable Readline Commands\7f427762
-Node: Commands For Moving\7f429303
-Node: Commands For History\7f431674
-Node: Commands For Text\7f437067
-Node: Commands For Killing\7f441195
-Node: Numeric Arguments\7f443986
-Node: Commands For Completion\7f445141
-Node: Keyboard Macros\7f450840
-Node: Miscellaneous Commands\7f451544
-Node: Readline vi Mode\7f458114
-Node: Programmable Completion\7f459094
-Node: Programmable Completion Builtins\7f467834
-Node: A Programmable Completion Example\7f479574
-Node: Using History Interactively\7f484922
-Node: Bash History Facilities\7f485606
-Node: Bash History Builtins\7f489344
-Node: History Interaction\7f495818
-Node: Event Designators\7f500771
-Node: Word Designators\7f502352
-Node: Modifiers\7f504659
-Node: Installing Bash\7f506599
-Node: Basic Installation\7f507718
-Node: Compilers and Options\7f511597
-Node: Compiling For Multiple Architectures\7f512350
-Node: Installation Names\7f514106
-Node: Specifying the System Type\7f516343
-Node: Sharing Defaults\7f517092
-Node: Operation Controls\7f517809
-Node: Optional Features\7f518831
-Node: Reporting Bugs\7f531214
-Node: Major Differences From The Bourne Shell\7f532574
-Node: GNU Free Documentation License\7f553997
-Node: Indexes\7f579177
-Node: Builtin Index\7f579631
-Node: Reserved Word Index\7f586732
-Node: Variable Index\7f589180
-Node: Function Index\7f606596
-Node: Concept Index\7f620594
+Node: Command Substitution\7f102449
+Node: Arithmetic Expansion\7f105981
+Node: Process Substitution\7f106998
+Node: Word Splitting\7f108109
+Node: Filename Expansion\7f110556
+Node: Pattern Matching\7f113783
+Node: Quote Removal\7f119509
+Node: Redirections\7f119816
+Node: Executing Commands\7f130082
+Node: Simple Command Expansion\7f130752
+Node: Command Search and Execution\7f132863
+Node: Command Execution Environment\7f135310
+Node: Environment\7f138761
+Node: Exit Status\7f140667
+Node: Signals\7f142728
+Node: Shell Scripts\7f147660
+Node: Shell Builtin Commands\7f150961
+Node: Bourne Shell Builtins\7f153075
+Node: Bash Builtins\7f179642
+Node: Modifying Shell Behavior\7f216569
+Node: The Set Builtin\7f216914
+Node: The Shopt Builtin\7f228905
+Node: Special Builtins\7f245960
+Node: Shell Variables\7f246952
+Node: Bourne Shell Variables\7f247389
+Node: Bash Variables\7f249900
+Node: Bash Features\7f288808
+Node: Invoking Bash\7f289825
+Node: Bash Startup Files\7f296412
+Node: Interactive Shells\7f301657
+Node: What is an Interactive Shell?\7f302068
+Node: Is this Shell Interactive?\7f302733
+Node: Interactive Shell Behavior\7f303560
+Node: Bash Conditional Expressions\7f307324
+Node: Shell Arithmetic\7f312538
+Node: Aliases\7f315870
+Node: Arrays\7f319007
+Node: The Directory Stack\7f326102
+Node: Directory Stack Builtins\7f326902
+Node: Controlling the Prompt\7f331350
+Node: The Restricted Shell\7f334238
+Node: Bash POSIX Mode\7f337123
+Node: Shell Compatibility Mode\7f355187
+Node: Job Control\7f364197
+Node: Job Control Basics\7f364657
+Node: Job Control Builtins\7f370938
+Node: Job Control Variables\7f377623
+Node: Command Line Editing\7f378857
+Node: Introduction and Notation\7f380563
+Node: Readline Interaction\7f382918
+Node: Readline Bare Essentials\7f384109
+Node: Readline Movement Commands\7f385920
+Node: Readline Killing Commands\7f386919
+Node: Readline Arguments\7f388945
+Node: Searching\7f390005
+Node: Readline Init File\7f392251
+Node: Readline Init File Syntax\7f393557
+Node: Conditional Init Constructs\7f420385
+Node: Sample Init File\7f424773
+Node: Bindable Readline Commands\7f427896
+Node: Commands For Moving\7f429437
+Node: Commands For History\7f431808
+Node: Commands For Text\7f437201
+Node: Commands For Killing\7f441329
+Node: Numeric Arguments\7f444120
+Node: Commands For Completion\7f445275
+Node: Keyboard Macros\7f450974
+Node: Miscellaneous Commands\7f451678
+Node: Readline vi Mode\7f458248
+Node: Programmable Completion\7f459228
+Node: Programmable Completion Builtins\7f467968
+Node: A Programmable Completion Example\7f479708
+Node: Using History Interactively\7f485056
+Node: Bash History Facilities\7f485740
+Node: Bash History Builtins\7f489478
+Node: History Interaction\7f495952
+Node: Event Designators\7f500905
+Node: Word Designators\7f502486
+Node: Modifiers\7f504881
+Node: Installing Bash\7f506821
+Node: Basic Installation\7f507940
+Node: Compilers and Options\7f511819
+Node: Compiling For Multiple Architectures\7f512572
+Node: Installation Names\7f514328
+Node: Specifying the System Type\7f516565
+Node: Sharing Defaults\7f517314
+Node: Operation Controls\7f518031
+Node: Optional Features\7f519053
+Node: Reporting Bugs\7f531436
+Node: Major Differences From The Bourne Shell\7f532796
+Node: GNU Free Documentation License\7f554219
+Node: Indexes\7f579399
+Node: Builtin Index\7f579853
+Node: Reserved Word Index\7f586954
+Node: Variable Index\7f589402
+Node: Function Index\7f606818
+Node: Concept Index\7f620816
\1f
End Tag Table