Not used yet, but could be used for another array parameter
expansion, like ksh93's array[s..e]
-
+ 2/5
+ ---
+builtins/read.def
+ - read_builtin: if the delimiter happens to be _POSIX_VDISABLE, use
+ the old character-at-a-time cbreak mode code path if we're reading
+ from a tty
+ Report from Martin D Kealey <martin@kurahaupo.gen.nz>
MANIFEST.doc f
doc/article.ps f
doc/rose94.ps f
-doc/bash.ps f
-doc/bashbug.ps f
-doc/builtins.ps f
-doc/rbash.ps f
-doc/bashref.dvi f
doc/bash.0 f
doc/bashbug.0 f
doc/builtins.0 f
doc/rbash.0 f
doc/article.txt f
-doc/bash.html f
-doc/bashref.html f
doc/bash.info f
doc/bashref.info f
+doc/bash.html f
+doc/bashref.html f
doc/article.pdf f
doc/bash.pdf f
doc/bashref.pdf f
+doc/builtins.pdf f
+doc/rbash.pdf f
doc/rose94.pdf f
doc/aosa-bash.pdf f
doc/aosa-bash-full.pdf f
specification. The Bash “posix mode” changes the Bash behavior in these
areas so that it conforms more strictly to the standard.
-Starting Bash with the ‘--posix’ command-line option or executing ‘set
--o posix’ while Bash is running will cause Bash to conform more closely
-to the POSIX standard by changing the behavior to match that specified
-by POSIX in areas where the Bash default differs.
+Starting Bash with the ‘--posix’ or ‘-o posix’ command-line option or
+executing ‘set -o posix’ while Bash is running will cause Bash to
+conform more closely to the POSIX standard by changing the behavior to
+match that specified by POSIX in areas where the Bash default differs.
When invoked as ‘sh’, Bash enters POSIX mode after reading the startup
files.
1. Bash ensures that the ‘POSIXLY_CORRECT’ variable is set.
2. Bash reads and executes the POSIX startup files (‘$ENV’) rather
- than the normal Bash files (*note Bash Startup Files::.
+ than the normal Bash files (*note Bash Startup Files::).
3. Alias expansion is always enabled, even in non-interactive shells.
the command hash table, even if it returns it as a (last-ditch)
result from a ‘$PATH’ search.
- 22. The message printed by the job control code and builtins when a
- job exits with a non-zero status is 'Done(status)'.
+ 22. Normally, when job control is not enabled, the shell implicitly
+ redirects the standard input of asynchronous commands from
+ ‘/dev/null’. A redirection to the standard input in this command
+ inhibits this implicit redirection. In POSIX mode, a redirection
+ that redirects file descriptor 0 to itself (e.g., ‘<&0’) does not
+ count as a redirection that overrides the implicit redirection from
+ ‘/dev/null’.
23. The message printed by the job control code and builtins when a
- job is stopped is 'Stopped(SIGNAME)', where SIGNAME is, for
+ job exits with a non-zero status is "Done(status)".
+
+ 24. The message printed by the job control code and builtins when a
+ job is stopped is "Stopped(SIGNAME)", where SIGNAME is, for
example, ‘SIGTSTP’.
- 24. If the shell is interactive, Bash does not perform job
+ 25. If the shell is interactive, Bash does not perform job
notifications between executing commands in lists separated by ‘;’
or newline. Non-interactive shells print status messages after a
foreground job in a list completes.
- 25. If the shell is interactive, Bash waits until the next prompt
+ 26. If the shell is interactive, Bash waits until the next prompt
before printing the status of a background job that changes status
or a foreground job that terminates due to a signal.
Non-interactive shells print status messages after a foreground job
completes.
- 26. Bash permanently removes jobs from the jobs table after notifying
+ 27. Bash permanently removes jobs from the jobs table after notifying
the user of their termination via the ‘wait’ or ‘jobs’ builtins.
It removes the job from the jobs list after notifying the user of
its termination, but the status is still available via ‘wait’, as
long as ‘wait’ is supplied a PID argument.
- 27. The ‘vi’ editing mode will invoke the ‘vi’ editor directly when
+ 28. The ‘vi’ editing mode will invoke the ‘vi’ editor directly when
the ‘v’ command is run, instead of checking ‘$VISUAL’ and
‘$EDITOR’.
- 28. Prompt expansion enables the POSIX ‘PS1’ and ‘PS2’ expansions of
+ 29. Prompt expansion enables the POSIX ‘PS1’ and ‘PS2’ expansions of
‘!’ to the history number and ‘!!’ to ‘!’, and Bash performs
parameter expansion on the values of ‘PS1’ and ‘PS2’ regardless of
the setting of the ‘promptvars’ option.
- 29. The default history file is ‘~/.sh_history’ (this is the default
+ 30. The default history file is ‘~/.sh_history’ (this is the default
value the shell assigns to ‘$HISTFILE’).
- 30. The ‘!’ character does not introduce history expansion within a
+ 31. The ‘!’ character does not introduce history expansion within a
double-quoted string, even if the ‘histexpand’ option is enabled.
- 31. When printing shell function definitions (e.g., by ‘type’), Bash
+ 32. When printing shell function definitions (e.g., by ‘type’), Bash
does not print the ‘function’ reserved word unless necessary.
- 32. Non-interactive shells exit if a syntax error in an arithmetic
+ 33. Non-interactive shells exit if a syntax error in an arithmetic
expansion results in an invalid expression.
- 33. Non-interactive shells exit if a parameter expansion error occurs.
+ 34. Non-interactive shells exit if a parameter expansion error occurs.
- 34. If a POSIX special builtin returns an error status, a
+ 35. If a POSIX special builtin returns an error status, a
non-interactive shell exits. The fatal errors are those listed in
the POSIX standard, and include things like passing incorrect
options, redirection errors, variable assignment errors for
assignments preceding the command name, and so on.
- 35. A non-interactive shell exits with an error status if a variable
+ 36. A non-interactive shell exits with an error status if a variable
assignment error occurs when no command name follows the assignment
statements. A variable assignment error occurs, for example, when
trying to assign a value to a readonly variable.
- 36. A non-interactive shell exits with an error status if a variable
+ 37. A non-interactive shell exits with an error status if a variable
assignment error occurs in an assignment statement preceding a
special builtin, but not with any other simple command. For any
other simple command, the shell aborts execution of that command,
perform any further processing of the command in which the error
occurred").
- 37. A non-interactive shell exits with an error status if the
+ 38. A non-interactive shell exits with an error status if the
iteration variable in a ‘for’ statement or the selection variable
in a ‘select’ statement is a readonly variable or has an invalid
name.
- 38. Non-interactive shells exit if FILENAME in ‘.’ FILENAME is not
+ 39. Non-interactive shells exit if FILENAME in ‘.’ FILENAME is not
found.
- 39. Non-interactive shells exit if there is a syntax error in a script
+ 40. Non-interactive shells exit if there is a syntax error in a script
read with the ‘.’ or ‘source’ builtins, or in a string processed by
the ‘eval’ builtin.
- 40. Non-interactive shells exit if the ‘export’, ‘readonly’ or ‘unset’
+ 41. Non-interactive shells exit if the ‘export’, ‘readonly’ or ‘unset’
builtin commands get an argument that is not a valid identifier,
and they are not operating on shell functions. These errors force
an exit because these are special builtins.
- 41. Assignment statements preceding POSIX special builtins persist in
+ 42. Assignment statements preceding POSIX special builtins persist in
the shell environment after the builtin completes.
- 42. The ‘command’ builtin does not prevent builtins that take
+ 43. The ‘command’ builtin does not prevent builtins that take
assignment statements as arguments from expanding them as
assignment statements; when not in POSIX mode, declaration commands
lose their assignment statement expansion properties when preceded
by ‘command’.
- 43. Enabling POSIX mode has the effect of setting the
+ 44. Enabling POSIX mode has the effect of setting the
‘inherit_errexit’ option, so subshells spawned to execute command
substitutions inherit the value of the ‘-e’ option from the parent
shell. When the ‘inherit_errexit’ option is not enabled, Bash
clears the ‘-e’ option in such subshells.
- 44. Enabling POSIX mode has the effect of setting the ‘shift_verbose’
+ 45. Enabling POSIX mode has the effect of setting the ‘shift_verbose’
option, so numeric arguments to ‘shift’ that exceed the number of
positional parameters will result in an error message.
- 45. Enabling POSIX mode has the effect of setting the
+ 46. Enabling POSIX mode has the effect of setting the
‘interactive_comments’ option (*note Comments::).
- 46. The ‘.’ and ‘source’ builtins do not search the current directory
+ 47. The ‘.’ and ‘source’ builtins do not search the current directory
for the filename argument if it is not found by searching ‘PATH’.
- 47. When the ‘alias’ builtin displays alias definitions, it does not
+ 48. When the ‘alias’ builtin displays alias definitions, it does not
display them with a leading ‘alias ’ unless the ‘-p’ option is
supplied.
- 48. The ‘bg’ builtin uses the required format to describe each job
+ 49. The ‘bg’ builtin uses the required format to describe each job
placed in the background, which does not include an indication of
whether the job is the current or previous job.
- 49. When the ‘cd’ builtin is invoked in logical mode, and the pathname
+ 50. When the ‘cd’ builtin is invoked in logical mode, and the pathname
constructed from ‘$PWD’ and the directory name supplied as an
argument does not refer to an existing directory, ‘cd’ will fail
instead of falling back to physical mode.
- 50. When the ‘cd’ builtin cannot change a directory because the length
+ 51. When the ‘cd’ builtin cannot change a directory because the length
of the pathname constructed from ‘$PWD’ and the directory name
supplied as an argument exceeds ‘PATH_MAX’ when canonicalized, ‘cd’
will attempt to use the supplied directory name.
- 51. When the ‘xpg_echo’ option is enabled, Bash does not attempt to
+ 52. When the ‘xpg_echo’ option is enabled, Bash does not attempt to
interpret any arguments to ‘echo’ as options. ‘echo’ displays each
argument after converting escape sequences.
- 52. The ‘export’ and ‘readonly’ builtin commands display their output
+ 53. The ‘export’ and ‘readonly’ builtin commands display their output
in the format required by POSIX.
- 53. When listing the history, the ‘fc’ builtin does not include an
+ 54. When listing the history, the ‘fc’ builtin does not include an
indication of whether or not a history entry has been modified.
- 54. The default editor used by ‘fc’ is ‘ed’.
+ 55. The default editor used by ‘fc’ is ‘ed’.
- 55. ‘fc’ treats extra arguments as an error instead of ignoring them.
+ 56. ‘fc’ treats extra arguments as an error instead of ignoring them.
- 56. If there are too many arguments supplied to ‘fc -s’, ‘fc’ prints
+ 57. If there are too many arguments supplied to ‘fc -s’, ‘fc’ prints
an error message and returns failure.
- 57. The output of ‘kill -l’ prints all the signal names on a single
+ 58. The output of ‘kill -l’ prints all the signal names on a single
line, separated by spaces, without the ‘SIG’ prefix.
- 58. The ‘kill’ builtin does not accept signal names with a ‘SIG’
+ 59. The ‘kill’ builtin does not accept signal names with a ‘SIG’
prefix.
- 59. The ‘kill’ builtin returns a failure status if any of the pid or
+ 60. The ‘kill’ builtin returns a failure status if any of the pid or
job arguments are invalid or if sending the specified signal to any
of them fails. In default mode, ‘kill’ returns success if the
signal was successfully sent to any of the specified processes.
- 60. The ‘printf’ builtin uses ‘double’ (via ‘strtod’) to convert
+ 61. The ‘printf’ builtin uses ‘double’ (via ‘strtod’) to convert
arguments corresponding to floating point conversion specifiers,
instead of ‘long double’ if it's available. The ‘L’ length
modifier forces ‘printf’ to use ‘long double’ if it's available.
- 61. The ‘pwd’ builtin verifies that the value it prints is the same as
+ 62. The ‘pwd’ builtin verifies that the value it prints is the same as
the current directory, even if it is not asked to check the file
system with the ‘-P’ option.
- 62. The ‘read’ builtin may be interrupted by a signal for which a trap
+ 63. The ‘read’ builtin may be interrupted by a signal for which a trap
has been set. If Bash receives a trapped signal while executing
‘read’, the trap handler executes and ‘read’ returns an exit status
greater than 128.
- 63. When the ‘set’ builtin is invoked without options, it does not
+ 64. When the ‘set’ builtin is invoked without options, it does not
display shell function names and definitions.
- 64. When the ‘set’ builtin is invoked without options, it displays
+ 65. When the ‘set’ builtin is invoked without options, it displays
variable values without quotes, unless they contain shell
metacharacters, even if the result contains nonprinting characters.
- 65. The ‘test’ builtin compares strings using the current locale when
+ 66. The ‘test’ builtin compares strings using the current locale when
evaluating the ‘<’ and ‘>’ binary operators.
- 66. The ‘test’ builtin's ‘-t’ unary primary requires an argument.
+ 67. The ‘test’ builtin's ‘-t’ unary primary requires an argument.
Historical versions of ‘test’ made the argument optional in certain
cases, and Bash attempts to accommodate those for backwards
compatibility.
- 67. The ‘trap’ builtin displays signal names without the leading
+ 68. The ‘trap’ builtin displays signal names without the leading
‘SIG’.
- 68. The ‘trap’ builtin doesn't check the first argument for a possible
+ 69. The ‘trap’ builtin doesn't check the first argument for a possible
signal specification and revert the signal handling to the original
disposition if it is, unless that argument consists solely of
digits and is a valid signal number. If users want to reset the
handler for a given signal to the original disposition, they should
use ‘-’ as the first argument.
- 69. ‘trap -p’ without arguments displays signals whose dispositions
+ 70. ‘trap -p’ without arguments displays signals whose dispositions
are set to SIG_DFL and those that were ignored when the shell
started, not just trapped signals.
- 70. The ‘type’ and ‘command’ builtins will not report a non-executable
+ 71. The ‘type’ and ‘command’ builtins will not report a non-executable
file as having been found, though the shell will attempt to execute
such a file if it is the only so-named file found in ‘$PATH’.
- 71. The ‘ulimit’ builtin uses a block size of 512 bytes for the ‘-c’
+ 72. The ‘ulimit’ builtin uses a block size of 512 bytes for the ‘-c’
and ‘-f’ options.
- 72. The ‘unset’ builtin with the ‘-v’ option specified returns a fatal
+ 73. The ‘unset’ builtin with the ‘-v’ option specified returns a fatal
error if it attempts to unset a ‘readonly’ or ‘non-unsettable’
variable, which causes a non-interactive shell to exit.
- 73. When asked to unset a variable that appears in an assignment
+ 74. When asked to unset a variable that appears in an assignment
statement preceding the command, the ‘unset’ builtin attempts to
unset a variable of the same name in the current or previous scope
as well. This implements the required "if an assigned variable is
further modified by the utility, the modifications made by the
utility shall persist" behavior.
- 74. The arrival of ‘SIGCHLD’ when a trap is set on ‘SIGCHLD’ does not
+ 75. The arrival of ‘SIGCHLD’ when a trap is set on ‘SIGCHLD’ does not
interrupt the ‘wait’ builtin and cause it to return immediately.
The trap command is run once for each child that exits.
- 75. Bash removes an exited background process's status from the list
+ 76. Bash removes an exited background process's status from the list
of such statuses after the ‘wait’ builtin returns it.
There is additional POSIX behavior that Bash does not implement by
directory to a non-writable directory other than ‘$HOME’ after login,
not allowing the restricted shell to execute shell scripts, and cleaning
the environment of variables that cause some commands to modify their
-behavior (e.g., ‘VISUAL’ or ‘PAGER’).
+behavior (e.g., ‘VISUAL’ or ‘PAGER’). When setting up a restricted
+environment like this, it's important not to install or allow symbolic
+links in the new current directory, since those could be used to
+circumvent restrictions on writing to files.
Modern systems provide more secure ways to implement a restricted
environment, such as ‘jails’, ‘zones’, or ‘containers’.
+++ /dev/null
-_\bB_\bA_\bS_\bH(1) General Commands Manual _\bB_\bA_\bS_\bH(1)
-
-N\bNA\bAM\bME\bE
- bash - GNU Bourne-Again SHell
-
-S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
- b\bba\bas\bsh\bh [options] [command_string | file]
-
-C\bCO\bOP\bPY\bYR\bRI\bIG\bGH\bHT\bT
- Bash is Copyright (C) 1989-2025 by the Free Software Foundation, Inc.
-
-D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
- B\bBa\bas\bsh\bh is a command language interpreter that executes commands read from
- the standard input, from a string, or from a file. It is a reimplemen-
- tation and extension of the Bourne shell, the historical Unix command
- language interpreter. B\bBa\bas\bsh\bh also incorporates useful features from the
- _\bK_\bo_\br_\bn and _\bC shells (k\bks\bsh\bh and c\bcs\bsh\bh).
-
- POSIX is the name for a family of computing standards based on Unix.
- B\bBa\bas\bsh\bh is intended to be a conformant implementation of the Shell and
- Utilities portion of the IEEE POSIX specification (IEEE Standard
- 1003.1). B\bBa\bas\bsh\bh POSIX mode (hereafter referred to as _\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be) changes
- the shell's behavior where its default operation differs from the stan-
- dard to strictly conform to the standard. See S\bSE\bEE\bE A\bAL\bLS\bSO\bO below for a
- reference to a document that details how posix mode affects b\bba\bas\bsh\bh's be-
- havior. B\bBa\bas\bsh\bh can be configured to be POSIX-conformant by default.
-
-O\bOP\bPT\bTI\bIO\bON\bNS\bS
- All of the single-character shell options documented in the description
- of the s\bse\bet\bt builtin command, including -\b-o\bo, can be used as options when
- the shell is invoked. In addition, b\bba\bas\bsh\bh interprets the following op-
- tions when it is invoked:
-
- -\b-c\bc If the -\b-c\bc option is present, then commands are read from the
- first non-option argument _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b__\bs_\bt_\br_\bi_\bn_\bg. If there are argu-
- ments after the _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b__\bs_\bt_\br_\bi_\bn_\bg, the first argument is as-
- signed to $\b$0\b0 and any remaining arguments are assigned to the
- positional parameters. The assignment to $\b$0\b0 sets the name of
- the shell, which is used in warning and error messages.
-
- -\b-i\bi If the -\b-i\bi option is present, the shell is _\bi_\bn_\bt_\be_\br_\ba_\bc_\bt_\bi_\bv_\be.
-
- -\b-l\bl Make b\bba\bas\bsh\bh act as if it had been invoked as a login shell (see
- I\bIN\bNV\bVO\bOC\bCA\bAT\bTI\bIO\bON\bN below).
-
- -\b-r\br If the -\b-r\br option is present, the shell becomes _\br_\be_\bs_\bt_\br_\bi_\bc_\bt_\be_\bd
- (see R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTE\bED\bD S\bSH\bHE\bEL\bLL\bL below).
-
- -\b-s\bs If the -\b-s\bs option is present, or if no arguments remain after
- option processing, the shell reads commands from the standard
- input. This option allows the positional parameters to be
- set when invoking an interactive shell or when reading input
- through a pipe.
-
- -\b-D\bD Print a list of all double-quoted strings preceded by $\b$ on
- the standard output. These are the strings that are subject
- to language translation when the current locale is not C\bC or
- P\bPO\bOS\bSI\bIX\bX. This implies the -\b-n\bn option; no commands will be exe-
- cuted.
-
- [\b[-\b-+\b+]\b]O\bO [\b[_\bs_\bh_\bo_\bp_\bt_\b__\bo_\bp_\bt_\bi_\bo_\bn]\b]
- _\bs_\bh_\bo_\bp_\bt_\b__\bo_\bp_\bt_\bi_\bo_\bn is one of the shell options accepted by the
- s\bsh\bho\bop\bpt\bt builtin (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). If
- _\bs_\bh_\bo_\bp_\bt_\b__\bo_\bp_\bt_\bi_\bo_\bn is present, -\b-O\bO sets the value of that option; +\b+O\bO
- unsets it. If _\bs_\bh_\bo_\bp_\bt_\b__\bo_\bp_\bt_\bi_\bo_\bn is not supplied, b\bba\bas\bsh\bh prints the
- names and values of the shell options accepted by s\bsh\bho\bop\bpt\bt on
- the standard output. If the invocation option is +\b+O\bO, the
- output is displayed in a format that may be reused as input.
-
- -\b--\b- A -\b--\b- signals the end of options and disables further option
- processing. Any arguments after the -\b--\b- are treated as a
- shell script filename (see below) and arguments passed to
- that script. An argument of -\b- is equivalent to -\b--\b-.
-
- B\bBa\bas\bsh\bh also interprets a number of multi-character options. These op-
- tions must appear on the command line before the single-character op-
- tions to be recognized.
-
- -\b--\b-d\bde\beb\bbu\bug\bgg\bge\ber\br
- Arrange for the debugger profile to be executed before the shell
- starts. Turns on 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).
-
- -\b--\b-d\bdu\bum\bmp\bp-\b-p\bpo\bo-\b-s\bst\btr\bri\bin\bng\bgs\bs
- Equivalent to -\b-D\bD, but the output is in the GNU _\bg_\be_\bt_\bt_\be_\bx_\bt "po"
- (portable object) file format.
-
- -\b--\b-d\bdu\bum\bmp\bp-\b-s\bst\btr\bri\bin\bng\bgs\bs
- Equivalent to -\b-D\bD.
-
- -\b--\b-h\bhe\bel\blp\bp Display a usage message on standard output and exit success-
- fully.
-
- -\b--\b-i\bin\bni\bit\bt-\b-f\bfi\bil\ble\be _\bf_\bi_\bl_\be
- -\b--\b-r\brc\bcf\bfi\bil\ble\be _\bf_\bi_\bl_\be
- Execute commands from _\bf_\bi_\bl_\be instead of the standard personal ini-
- tialization file _\b~_\b/_\b._\bb_\ba_\bs_\bh_\br_\bc if the shell is interactive (see I\bIN\bN-\b-
- V\bVO\bOC\bCA\bAT\bTI\bIO\bON\bN below).
-
- -\b--\b-l\blo\bog\bgi\bin\bn
- Equivalent to -\b-l\bl.
-
- -\b--\b-n\bno\boe\bed\bdi\bit\bti\bin\bng\bg
- Do not use the GNU r\bre\bea\bad\bdl\bli\bin\bne\be library to read command lines when
- the shell is interactive.
-
- -\b--\b-n\bno\bop\bpr\bro\bof\bfi\bil\ble\be
- Do not read either the system-wide startup file _\b/_\be_\bt_\bc_\b/_\bp_\br_\bo_\bf_\bi_\bl_\be or
- any of the personal initialization files _\b~_\b/_\b._\bb_\ba_\bs_\bh_\b__\bp_\br_\bo_\bf_\bi_\bl_\be,
- _\b~_\b/_\b._\bb_\ba_\bs_\bh_\b__\bl_\bo_\bg_\bi_\bn, or _\b~_\b/_\b._\bp_\br_\bo_\bf_\bi_\bl_\be. By default, b\bba\bas\bsh\bh reads these
- files when it is invoked as a login shell (see I\bIN\bNV\bVO\bOC\bCA\bAT\bTI\bIO\bON\bN be-
- low).
-
- -\b--\b-n\bno\bor\brc\bc Do not read and execute the personal initialization file
- _\b~_\b/_\b._\bb_\ba_\bs_\bh_\br_\bc if the shell is interactive. This option is on by de-
- fault if the shell is invoked as s\bsh\bh.
-
- -\b--\b-p\bpo\bos\bsi\bix\bx
- Enable posix mode; change the behavior of b\bba\bas\bsh\bh where the default
- operation differs from the POSIX standard to match the standard.
-
- -\b--\b-r\bre\bes\bst\btr\bri\bic\bct\bte\bed\bd
- The shell becomes restricted (see R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTE\bED\bD S\bSH\bHE\bEL\bLL\bL below).
-
- -\b--\b-v\bve\ber\brb\bbo\bos\bse\be
- Equivalent to -\b-v\bv.
-
- -\b--\b-v\bve\ber\brs\bsi\bio\bon\bn
- Show version information for this instance of b\bba\bas\bsh\bh on the stan-
- dard output and exit successfully.
-
-A\bAR\bRG\bGU\bUM\bME\bEN\bNT\bTS\bS
- If arguments remain after option processing, and neither the -\b-c\bc nor the
- -\b-s\bs option has been supplied, the first argument is treated as the name
- of a file containing shell commands (a _\bs_\bh_\be_\bl_\bl _\bs_\bc_\br_\bi_\bp_\bt). When b\bba\bas\bsh\bh is in-
- voked in this fashion, $\b$0\b0 is set to the name of the file, and the posi-
- tional parameters are set to the remaining arguments. B\bBa\bas\bsh\bh reads and
- executes commands from this file, then exits. B\bBa\bas\bsh\bh's exit status is
- the exit status of the last command executed in the script. If no com-
- mands are executed, the exit status is 0. B\bBa\bas\bsh\bh first attempts to open
- the file in the current directory, and, if no file is found, searches
- the directories in P\bPA\bAT\bTH\bH for the script.
-
-I\bIN\bNV\bVO\bOC\bCA\bAT\bTI\bIO\bON\bN
- A _\bl_\bo_\bg_\bi_\bn _\bs_\bh_\be_\bl_\bl is one whose first character of argument zero is a -\b-, or
- one started with the -\b--\b-l\blo\bog\bgi\bin\bn option.
-
- An _\bi_\bn_\bt_\be_\br_\ba_\bc_\bt_\bi_\bv_\be _\bs_\bh_\be_\bl_\bl is one started without non-option arguments (un-
- less -\b-s\bs is specified) and without the -\b-c\bc option, and whose standard in-
- put and standard error are both connected to terminals (as determined
- by _\bi_\bs_\ba_\bt_\bt_\by(3)), or one started with the -\b-i\bi option. B\bBa\bas\bsh\bh sets P\bPS\bS1\b1 and $\b$-\b-
- includes i\bi if the shell is interactive, so a shell script or a startup
- file can test this state.
-
- The following paragraphs describe how b\bba\bas\bsh\bh executes its startup files.
- If any of the files exist but cannot be read, b\bba\bas\bsh\bh reports an error.
- Tildes are expanded in filenames as described below under T\bTi\bil\bld\bde\be E\bEx\bxp\bpa\ban\bn-\b-
- s\bsi\bio\bon\bn in the E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN section.
-
- When b\bba\bas\bsh\bh is invoked as an interactive login shell, or as a non-inter-
- active shell with the -\b--\b-l\blo\bog\bgi\bin\bn option, it first reads and executes com-
- mands from the file _\b/_\be_\bt_\bc_\b/_\bp_\br_\bo_\bf_\bi_\bl_\be, if that file exists. After reading
- that file, it looks for _\b~_\b/_\b._\bb_\ba_\bs_\bh_\b__\bp_\br_\bo_\bf_\bi_\bl_\be, _\b~_\b/_\b._\bb_\ba_\bs_\bh_\b__\bl_\bo_\bg_\bi_\bn, and _\b~_\b/_\b._\bp_\br_\bo_\bf_\bi_\bl_\be,
- in that order, and reads and executes commands from the first one that
- exists and is readable. The -\b--\b-n\bno\bop\bpr\bro\bof\bfi\bil\ble\be option may be used when the
- shell is started to inhibit this behavior.
-
- When an interactive login shell exits, or a non-interactive login shell
- executes the e\bex\bxi\bit\bt builtin command, b\bba\bas\bsh\bh reads and executes commands
- from the file _\b~_\b/_\b._\bb_\ba_\bs_\bh_\b__\bl_\bo_\bg_\bo_\bu_\bt, if it exists.
-
- When an interactive shell that is not a login shell is started, b\bba\bas\bsh\bh
- reads and executes commands from _\b~_\b/_\b._\bb_\ba_\bs_\bh_\br_\bc, if that file exists. The
- -\b--\b-n\bno\bor\brc\bc option inhibits this behavior. The -\b--\b-r\brc\bcf\bfi\bil\ble\be _\bf_\bi_\bl_\be option causes
- b\bba\bas\bsh\bh to use _\bf_\bi_\bl_\be instead of _\b~_\b/_\b._\bb_\ba_\bs_\bh_\br_\bc.
-
- When b\bba\bas\bsh\bh is started non-interactively, to run a shell script, for ex-
- ample, it looks for the variable B\bBA\bAS\bSH\bH_\b_E\bEN\bNV\bV in the environment, expands
- its value if it appears there, and uses the expanded value as the name
- of a file to read and execute. B\bBa\bas\bsh\bh behaves as if the following com-
- mand were executed:
-
- if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi
-
- but does not use the value of the P\bPA\bAT\bTH\bH variable to search for the file-
- name.
-
- If b\bba\bas\bsh\bh is invoked with the name s\bsh\bh, it tries to mimic the startup be-
- havior of historical versions of s\bsh\bh as closely as possible, while con-
- forming to the POSIX standard as well. When invoked as an interactive
- login shell, or a non-interactive shell with the -\b--\b-l\blo\bog\bgi\bin\bn option, it
- first attempts to read and execute commands from _\b/_\be_\bt_\bc_\b/_\bp_\br_\bo_\bf_\bi_\bl_\be and
- _\b~_\b/_\b._\bp_\br_\bo_\bf_\bi_\bl_\be, in that order. The -\b--\b-n\bno\bop\bpr\bro\bof\bfi\bil\ble\be option inhibits this behav-
- ior. When invoked as an interactive shell with the name s\bsh\bh, b\bba\bas\bsh\bh looks
- for the variable E\bEN\bNV\bV, expands its value if it is defined, and uses the
- expanded value as the name of a file to read and execute. Since a
- shell invoked as s\bsh\bh does not attempt to read and execute commands from
- any other startup files, the -\b--\b-r\brc\bcf\bfi\bil\ble\be option has no effect. A non-in-
- teractive shell invoked with the name s\bsh\bh does not attempt to read any
- other startup files.
-
- When invoked as s\bsh\bh, b\bba\bas\bsh\bh enters posix mode after reading the startup
- files.
-
- When b\bba\bas\bsh\bh is started in posix mode, as with the -\b--\b-p\bpo\bos\bsi\bix\bx command line
- option, it follows the POSIX standard for startup files. In this mode,
- interactive shells expand the E\bEN\bNV\bV variable and read and execute com-
- mands from the file whose name is the expanded value. No other startup
- files are read.
-
- B\bBa\bas\bsh\bh attempts to determine when it is being run with its standard input
- connected to a network connection, as when executed by the historical
- and rarely-seen remote shell daemon, usually _\br_\bs_\bh_\bd, or the secure shell
- daemon _\bs_\bs_\bh_\bd. If b\bba\bas\bsh\bh determines it is being run non-interactively in
- this fashion, it reads and executes commands from _\b~_\b/_\b._\bb_\ba_\bs_\bh_\br_\bc, if that
- file exists and is readable. B\bBa\bas\bsh\bh does not read this file if invoked
- as s\bsh\bh. The -\b--\b-n\bno\bor\brc\bc option inhibits this behavior, and the -\b--\b-r\brc\bcf\bfi\bil\ble\be op-
- tion makes b\bba\bas\bsh\bh use a different file instead of _\b~_\b/_\b._\bb_\ba_\bs_\bh_\br_\bc, but neither
- _\br_\bs_\bh_\bd nor _\bs_\bs_\bh_\bd generally invoke the shell with those options or allow
- them to be specified.
-
- If the shell is started with the effective user (group) id not equal to
- the real user (group) id, and the -\b-p\bp option is not supplied, no startup
- files are read, shell functions are not inherited from the environment,
- the S\bSH\bHE\bEL\bLL\bLO\bOP\bPT\bTS\bS, B\bBA\bAS\bSH\bHO\bOP\bPT\bTS\bS, C\bCD\bDP\bPA\bAT\bTH\bH, and G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE variables, if they ap-
- pear in the environment, are ignored, and the effective user id is set
- to the real user id. If the -\b-p\bp option is supplied at invocation, the
- startup behavior is the same, but the effective user id is not reset.
-
-D\bDE\bEF\bFI\bIN\bNI\bIT\bTI\bIO\bON\bNS\bS
- The following definitions are used throughout the rest of this docu-
- ment.
- b\bbl\bla\ban\bnk\bk A space or tab.
- w\bwh\bhi\bit\bte\bes\bsp\bpa\bac\bce\be
- A character belonging to the s\bsp\bpa\bac\bce\be character class in the cur-
- rent locale, or for which _\bi_\bs_\bs_\bp_\ba_\bc_\be(3) returns true.
- w\bwo\bor\brd\bd A sequence of characters considered as a single unit by the
- shell. Also known as a t\bto\bok\bke\ben\bn.
- n\bna\bam\bme\be A _\bw_\bo_\br_\bd consisting only of alphanumeric characters and under-
- scores, and beginning with an alphabetic character or an under-
- score. Also referred to as an i\bid\bde\ben\bnt\bti\bif\bfi\bie\ber\br.
- m\bme\bet\bta\bac\bch\bha\bar\bra\bac\bct\bte\ber\br
- A character that, when unquoted, separates words. One of the
- following:
- |\b| &\b& ;\b; (\b( )\b) <\b< >\b> s\bsp\bpa\bac\bce\be t\bta\bab\bb n\bne\bew\bwl\bli\bin\bne\be
- c\bco\bon\bnt\btr\bro\bol\bl o\bop\bpe\ber\bra\bat\bto\bor\br
- A _\bt_\bo_\bk_\be_\bn that performs a control function. It is one of the fol-
- lowing symbols:
- |\b||\b| &\b& &\b&&\b& ;\b; ;\b;;\b; ;\b;&\b& ;\b;;\b;&\b& (\b( )\b) |\b| |\b|&\b& <\b<n\bne\bew\bwl\bli\bin\bne\be>\b>
-
-R\bRE\bES\bSE\bER\bRV\bVE\bED\bD W\bWO\bOR\bRD\bDS\bS
- _\bR_\be_\bs_\be_\br_\bv_\be_\bd _\bw_\bo_\br_\bd_\bs are words that have a special meaning to the shell. The
- following words are recognized as reserved when unquoted and either the
- first word of a command (see S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR below), the third word of a
- c\bca\bas\bse\be or s\bse\bel\ble\bec\bct\bt command (only i\bin\bn is valid), or the third word of a f\bfo\bor\br
- command (only i\bin\bn and d\bdo\bo are valid):
-
- !\b! c\bca\bas\bse\be c\bco\bop\bpr\bro\boc\bc d\bdo\bo d\bdo\bon\bne\be e\bel\bli\bif\bf e\bel\bls\bse\be e\bes\bsa\bac\bc f\bfi\bi f\bfo\bor\br f\bfu\bun\bnc\bct\bti\bio\bon\bn i\bif\bf i\bin\bn s\bse\bel\ble\bec\bct\bt
- t\bth\bhe\ben\bn u\bun\bnt\bti\bil\bl w\bwh\bhi\bil\ble\be {\b{ }\b} t\bti\bim\bme\be [\b[[\b[ ]\b]]\b]
-
-S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR
- This section describes the syntax of the various forms of shell com-
- mands.
-
- S\bSi\bim\bmp\bpl\ble\be C\bCo\bom\bmm\bma\ban\bnd\bds\bs
- A _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd is a sequence of optional variable assignments fol-
- lowed by b\bbl\bla\ban\bnk\bk-separated words and redirections, and terminated by a
- _\bc_\bo_\bn_\bt_\br_\bo_\bl _\bo_\bp_\be_\br_\ba_\bt_\bo_\br. The first word specifies the command to be executed,
- and is passed as argument zero. The remaining words are passed as ar-
- guments to the invoked command.
-
- The return value of a _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd is its exit status, or 128+_\bn if
- the command is terminated by signal _\bn.
-
- P\bPi\bip\bpe\bel\bli\bin\bne\bes\bs
- A _\bp_\bi_\bp_\be_\bl_\bi_\bn_\be is a sequence of one or more commands separated by one of
- the control operators |\b| or |\b|&\b&. The format for a pipeline is:
-
- [t\bti\bim\bme\be [-\b-p\bp]] [ ! ] _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b1 [ [|\b|||\b|&\b&] _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b2 ... ]
-
- The standard output of _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b1 is connected via a pipe to the standard
- input of _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b2. This connection is performed before any redirec-
- tions specified by the _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b1(see R\bRE\bED\bDI\bIR\bRE\bEC\bCT\bTI\bIO\bON\bN below). If |\b|&\b& is the
- pipeline operator, _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b1's standard error, in addition to its stan-
- dard output, is connected to _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b2's standard input through the
- pipe; it is shorthand for 2\b2>\b>&\b&1\b1 |\b|. This implicit redirection of the
- standard error to the standard output is performed after any redirec-
- tions specified by _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b1.
-
- The return status of a pipeline is the exit status of the last command,
- unless the p\bpi\bip\bpe\bef\bfa\bai\bil\bl option is enabled. If p\bpi\bip\bpe\bef\bfa\bai\bil\bl is enabled, the
- pipeline's return status is the value of the last (rightmost) command
- to exit with a non-zero status, or zero if all commands exit success-
- fully. If the reserved word !\b! precedes a pipeline, the exit status of
- that pipeline is the logical negation of the exit status as described
- above. If a pipeline is executed synchronously, the shell waits for
- all commands in the pipeline to terminate before returning a value.
-
- If the t\bti\bim\bme\be reserved word precedes a pipeline, the shell reports the
- elapsed as well as user and system time consumed by its execution when
- the pipeline terminates. The -\b-p\bp option changes the output format to
- that specified by POSIX. When the shell is in posix mode, it does not
- recognize t\bti\bim\bme\be as a reserved word if the next token begins with a "-".
- The value of the T\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT variable is a format string that specifies
- how the timing information should be displayed; see the description of
- T\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT below under S\bSh\bhe\bel\bll\bl V\bVa\bar\bri\bia\bab\bbl\ble\bes\bs.
-
- When the shell is in posix mode, t\bti\bim\bme\be may appear by itself as the only
- word in a simple command. In this case, the shell displays the total
- user and system time consumed by the shell and its children. The T\bTI\bIM\bME\bE-\b-
- F\bFO\bOR\bRM\bMA\bAT\bT variable specifies the format of the time information.
-
- Each command in a multi-command pipeline, where pipes are created, is
- executed in a _\bs_\bu_\bb_\bs_\bh_\be_\bl_\bl, which is a separate process. See C\bCO\bOM\bMM\bMA\bAN\bND\bD E\bEX\bXE\bE-\b-
- C\bCU\bUT\bTI\bIO\bON\bN E\bEN\bNV\bVI\bIR\bRO\bON\bNM\bME\bEN\bNT\bT for a description of subshells and a subshell envi-
- ronment. If the l\bla\bas\bst\btp\bpi\bip\bpe\be option is enabled using the s\bsh\bho\bop\bpt\bt builtin
- (see the description of s\bsh\bho\bop\bpt\bt below), and job control is not active,
- the last element of a pipeline may be run by the shell process.
-
- L\bLi\bis\bst\bts\bs
- A _\bl_\bi_\bs_\bt is a sequence of one or more pipelines separated by one of the
- operators ;\b;, &\b&, &\b&&\b&, or |\b||\b|, and optionally terminated by one of ;\b;, &\b&, or
- <\b<n\bne\bew\bwl\bli\bin\bne\be>\b>.
-
- Of these list operators, &\b&&\b& and |\b||\b| have equal precedence, followed by ;\b;
- and &\b&, which have equal precedence.
-
- A sequence of one or more newlines may appear in a _\bl_\bi_\bs_\bt instead of a
- semicolon to delimit commands.
-
- If a command is terminated by the control operator &\b&, the shell exe-
- cutes the command in the _\bb_\ba_\bc_\bk_\bg_\br_\bo_\bu_\bn_\bd in a subshell. The shell does not
- wait for the command to finish, and the return status is 0. These are
- referred to as _\ba_\bs_\by_\bn_\bc_\bh_\br_\bo_\bn_\bo_\bu_\bs commands. Commands separated by a ;\b; are
- executed sequentially; the shell waits for each command to terminate in
- turn. The return status is the exit status of the last command exe-
- cuted.
-
- AND and OR lists are sequences of one or more pipelines separated by
- the &\b&&\b& and |\b||\b| control operators, respectively. AND and OR lists are
- executed with left associativity. An AND list has the form
-
- _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b1 &\b&&\b& _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b2
-
- _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b2 is executed if, and only if, _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b1 returns an exit status
- of zero (success).
-
- An OR list has the form
-
- _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b1 |\b||\b| _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b2
-
- _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b2 is executed if, and only if, _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b1 returns a non-zero exit
- status. The return status of AND and OR lists is the exit status of
- the last command executed in the list.
-
- C\bCo\bom\bmp\bpo\bou\bun\bnd\bd C\bCo\bom\bmm\bma\ban\bnd\bds\bs
- A _\bc_\bo_\bm_\bp_\bo_\bu_\bn_\bd _\bc_\bo_\bm_\bm_\ba_\bn_\bd is one of the following. In most cases a _\bl_\bi_\bs_\bt in a
- command's description may be separated from the rest of the command by
- one or more newlines, and may be followed by a newline in place of a
- semicolon.
-
- (_\bl_\bi_\bs_\bt) _\bl_\bi_\bs_\bt is executed in a subshell (see C\bCO\bOM\bMM\bMA\bAN\bND\bD E\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\bN E\bEN\bNV\bVI\bIR\bRO\bON\bN-\b-
- M\bME\bEN\bNT\bT below for a description of a subshell environment). Vari-
- able assignments and builtin commands that affect the shell's
- environment do not remain in effect after the command completes.
- The return status is the exit status of _\bl_\bi_\bs_\bt.
-
- { _\bl_\bi_\bs_\bt; }
- _\bl_\bi_\bs_\bt is executed in the current shell environment. _\bl_\bi_\bs_\bt must be
- terminated with a newline or semicolon. This is known as a
- _\bg_\br_\bo_\bu_\bp _\bc_\bo_\bm_\bm_\ba_\bn_\bd. The return status is the exit status of _\bl_\bi_\bs_\bt.
-
- Note that unlike the metacharacters (\b( and )\b), {\b{ and }\b} are _\br_\be_\b-
- _\bs_\be_\br_\bv_\be_\bd _\bw_\bo_\br_\bd_\bs and must occur where a reserved word is permitted
- to be recognized. Since they do not cause a word break, they
- must be separated from _\bl_\bi_\bs_\bt by whitespace or another shell
- metacharacter.
-
- ((_\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn))
- The arithmetic _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn is evaluated according to the rules
- described below under A\bAR\bRI\bIT\bTH\bHM\bME\bET\bTI\bIC\bC E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN. If the value of
- the expression is non-zero, the return status is 0; otherwise
- the return status is 1. The _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn undergoes the same ex-
- pansions as if it were within double quotes, but unescaped dou-
- ble quote characters in _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn are not treated specially and
- are removed. Since this can potentially result in empty
- strings, this command treats those as expressions that evaluate
- to 0.
-
- [\b[[\b[ _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn ]\b]]\b]
- Evaluate the conditional expression _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn and return a sta-
- tus of zero (true) or non-zero (false). Expressions are com-
- posed of the primaries described below under C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bS-\b-
- S\bSI\bIO\bON\bNS\bS. The words between the [\b[[\b[ and ]\b]]\b] do not undergo word
- splitting and pathname expansion. The shell performs tilde ex-
- pansion, parameter and variable expansion, arithmetic expansion,
- command substitution, process substitution, and quote removal on
- those words. Conditional operators such as -\b-f\bf must be unquoted
- to be recognized as primaries.
-
- When used with [\b[[\b[, the <\b< and >\b> operators sort lexicographically
- using the current locale.
-
- When the =\b==\b= and !\b!=\b= operators are used, the string to the right
- of the operator is considered a pattern and matched according to
- the rules described below under P\bPa\bat\btt\bte\ber\brn\bn M\bMa\bat\btc\bch\bhi\bin\bng\bg, as if the e\bex\bxt\bt-\b-
- g\bgl\blo\bob\bb shell option were enabled. The =\b= operator is equivalent to
- =\b==\b=. If the n\bno\boc\bca\bas\bse\bem\bma\bat\btc\bch\bh shell option is enabled, the match is
- performed without regard to the case of alphabetic characters.
- The return value is 0 if the string matches (=\b==\b=) or does not
- match (!\b!=\b=) the pattern, and 1 otherwise. If any part of the
- pattern is quoted, the quoted portion is matched as a string:
- every character in the quoted portion matches itself, instead of
- having any special pattern matching meaning.
-
- An additional binary operator, =\b=~\b~, is available, with the same
- precedence as =\b==\b= and !\b!=\b=. When it is used, the string to the
- right of the operator is considered a POSIX extended regular ex-
- pression and matched accordingly (using the POSIX _\br_\be_\bg_\bc_\bo_\bm_\bp and
- _\br_\be_\bg_\be_\bx_\be_\bc interfaces usually described in _\br_\be_\bg_\be_\bx(3)). The return
- value is 0 if the string matches the pattern, and 1 otherwise.
- If the regular expression is syntactically incorrect, the condi-
- tional expression's return value is 2. If the n\bno\boc\bca\bas\bse\bem\bma\bat\btc\bch\bh shell
- option is enabled, the match is performed without regard to the
- case of alphabetic characters.
-
- If any part of the pattern is quoted, the quoted portion is
- matched literally, as above. If the pattern is stored in a
- shell variable, quoting the variable expansion forces the entire
- pattern to be matched literally. Treat bracket expressions in
- regular expressions carefully, since normal quoting and pattern
- characters lose their meanings between brackets.
-
- The match succeeds if the pattern matches any part of the
- string. Anchor the pattern using the ^\b^ and $\b$ regular expression
- operators to force it to match the entire string.
-
- The array variable B\bBA\bAS\bSH\bH_\b_R\bRE\bEM\bMA\bAT\bTC\bCH\bH records which parts of the
- string matched the pattern. The element of B\bBA\bAS\bSH\bH_\b_R\bRE\bEM\bMA\bAT\bTC\bCH\bH with
- index 0 contains the portion of the string matching the entire
- regular expression. Substrings matched by parenthesized subex-
- pressions within the regular expression are saved in the remain-
- ing B\bBA\bAS\bSH\bH_\b_R\bRE\bEM\bMA\bAT\bTC\bCH\bH indices. The element of B\bBA\bAS\bSH\bH_\b_R\bRE\bEM\bMA\bAT\bTC\bCH\bH with in-
- dex _\bn is the portion of the string matching the _\bnth parenthe-
- sized subexpression. B\bBa\bas\bsh\bh sets B\bBA\bAS\bSH\bH_\b_R\bRE\bEM\bMA\bAT\bTC\bCH\bH in the global
- scope; declaring it as a local variable will lead to unexpected
- results.
-
- Expressions may be combined using the following operators,
- listed in decreasing order of precedence:
-
- (\b( _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn )\b)
- Returns the value of _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn. This may be used to
- override the normal precedence of operators.
- !\b! _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn
- True if _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn is false.
- _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b1 &\b&&\b& _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b2
- True if both _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b1 and _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b2 are true.
- _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b1 |\b||\b| _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b2
- True if either _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b1 or _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b2 is true.
-
- The &\b&&\b& and |\b||\b| operators do not evaluate _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b2 if the value
- of _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b1 is sufficient to determine the return value of
- the entire conditional expression.
-
- f\bfo\bor\br _\bn_\ba_\bm_\be [ [ i\bin\bn _\bw_\bo_\br_\bd _\b._\b._\b. ] ; ] d\bdo\bo _\bl_\bi_\bs_\bt ; d\bdo\bon\bne\be
- First, expand The list of words following i\bin\bn, generating a list
- of items. Then, the variable _\bn_\ba_\bm_\be is set to each element of
- this list in turn, and _\bl_\bi_\bs_\bt is executed each time. If the i\bin\bn
- _\bw_\bo_\br_\bd is omitted, the f\bfo\bor\br command executes _\bl_\bi_\bs_\bt once for each po-
- sitional parameter that is set (see P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS below). The re-
- turn status is the exit status of the last command that exe-
- cutes. If the expansion of the items following i\bin\bn results in an
- empty list, no commands are executed, and the return status is
- 0.
-
- f\bfo\bor\br (( _\be_\bx_\bp_\br_\b1 ; _\be_\bx_\bp_\br_\b2 ; _\be_\bx_\bp_\br_\b3 )) [;] d\bdo\bo _\bl_\bi_\bs_\bt ; d\bdo\bon\bne\be
- First, evaluate the arithmetic expression _\be_\bx_\bp_\br_\b1 according to the
- rules described below under A\bAR\bRI\bIT\bTH\bHM\bME\bET\bTI\bIC\bC E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN. Then, re-
- peatedly evaluate the arithmetic expression _\be_\bx_\bp_\br_\b2 until it eval-
- uates to zero. Each time _\be_\bx_\bp_\br_\b2 evaluates to a non-zero value,
- execute _\bl_\bi_\bs_\bt and evaluate the arithmetic expression _\be_\bx_\bp_\br_\b3. If
- any expression is omitted, it behaves as if it evaluates to 1.
- The return value is the exit status of the last command in _\bl_\bi_\bs_\bt
- that is executed, or non-zero if any of the expressions is in-
- valid.
-
- Use the b\bbr\bre\bea\bak\bk and c\bco\bon\bnt\bti\bin\bnu\bue\be builtins (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) to control loop execution.
-
- s\bse\bel\ble\bec\bct\bt _\bn_\ba_\bm_\be [ i\bin\bn _\bw_\bo_\br_\bd ] ; d\bdo\bo _\bl_\bi_\bs_\bt ; d\bdo\bon\bne\be
- First, expand the list of words following i\bin\bn, generating a list
- of items, and print the set of expanded words the standard er-
- ror, each preceded by a number. If the i\bin\bn _\bw_\bo_\br_\bd is omitted,
- print the positional parameters (see P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS below). s\bse\bel\ble\bec\bct\bt
- then displays the P\bPS\bS3\b3 prompt and reads a line from the standard
- input. If the line consists of a number corresponding to one of
- the displayed words, then s\bse\bel\ble\bec\bct\bt sets the value of _\bn_\ba_\bm_\be to that
- word. If the line is empty, s\bse\bel\ble\bec\bct\bt displays the words and
- prompt again. If EOF is read, s\bse\bel\ble\bec\bct\bt completes and returns 1.
- Any other value sets _\bn_\ba_\bm_\be to null. The line read is saved in
- the variable R\bRE\bEP\bPL\bLY\bY. The _\bl_\bi_\bs_\bt is executed after each selection
- until a b\bbr\bre\bea\bak\bk command is executed. The exit status of s\bse\bel\ble\bec\bct\bt is
- the exit status of the last command executed in _\bl_\bi_\bs_\bt, or zero if
- no commands were executed.
-
- c\bca\bas\bse\be _\bw_\bo_\br_\bd i\bin\bn [ [(] _\bp_\ba_\bt_\bt_\be_\br_\bn [ |\b| _\bp_\ba_\bt_\bt_\be_\br_\bn ] ... ) _\bl_\bi_\bs_\bt ;; ] ... e\bes\bsa\bac\bc
- A c\bca\bas\bse\be command first expands _\bw_\bo_\br_\bd, and tries to match it against
- each _\bp_\ba_\bt_\bt_\be_\br_\bn in turn, proceeding from first to last, using the
- matching rules described under P\bPa\bat\btt\bte\ber\brn\bn M\bMa\bat\btc\bch\bhi\bin\bng\bg below. A pat-
- tern list is a set of one or more patterns separated by , and
- the ) operator terminates the pattern list. The _\bw_\bo_\br_\bd is ex-
- panded using tilde expansion, parameter and variable expansion,
- arithmetic expansion, command substitution, process substitution
- and quote removal. Each _\bp_\ba_\bt_\bt_\be_\br_\bn examined is expanded using
- tilde expansion, parameter and variable expansion, arithmetic
- expansion, command substitution, process substitution, and quote
- removal. If the n\bno\boc\bca\bas\bse\bem\bma\bat\btc\bch\bh shell option is enabled, the match
- is performed without regard to the case of alphabetic charac-
- ters. A _\bc_\bl_\ba_\bu_\bs_\be is a pattern list and an associated _\bl_\bi_\bs_\bt.
-
- When a match is found, c\bca\bas\bse\be executes the corresponding _\bl_\bi_\bs_\bt. If
- the ;\b;;\b; operator terminates the case clause, the c\bca\bas\bse\be command
- completes after the first match. Using ;\b;&\b& in place of ;\b;;\b; causes
- execution to continue with the _\bl_\bi_\bs_\bt associated with the next
- pattern list. Using ;\b;;\b;&\b& in place of ;\b;;\b; causes the shell to test
- the next pattern list in the statement, if any, and execute any
- associated _\bl_\bi_\bs_\bt if the match succeeds, continuing the case
- statement execution as if the pattern list had not matched. The
- exit status is zero if no pattern matches.
-
- Otherwise, it is the exit status of the last command executed in
- the last _\bl_\bi_\bs_\bt executed.
-
- i\bif\bf _\bl_\bi_\bs_\bt; t\bth\bhe\ben\bn _\bl_\bi_\bs_\bt; [ e\bel\bli\bif\bf _\bl_\bi_\bs_\bt; t\bth\bhe\ben\bn _\bl_\bi_\bs_\bt; ] ... [ e\bel\bls\bse\be _\bl_\bi_\bs_\bt; ] f\bfi\bi
- The i\bif\bf _\bl_\bi_\bs_\bt is executed. If its exit status is zero, the t\bth\bhe\ben\bn
- _\bl_\bi_\bs_\bt is executed. Otherwise, each e\bel\bli\bif\bf _\bl_\bi_\bs_\bt is executed in
- turn, and if its exit status is zero, the corresponding t\bth\bhe\ben\bn
- _\bl_\bi_\bs_\bt is executed and the command completes. Otherwise, the e\bel\bls\bse\be
- _\bl_\bi_\bs_\bt is executed, if present. The exit status is the exit sta-
- tus of the last command executed, or zero if no condition tested
- true.
-
- w\bwh\bhi\bil\ble\be _\bl_\bi_\bs_\bt_\b-_\b1; d\bdo\bo _\bl_\bi_\bs_\bt_\b-_\b2; d\bdo\bon\bne\be
- u\bun\bnt\bti\bil\bl _\bl_\bi_\bs_\bt_\b-_\b1; d\bdo\bo _\bl_\bi_\bs_\bt_\b-_\b2; d\bdo\bon\bne\be
- The w\bwh\bhi\bil\ble\be command continuously executes the list _\bl_\bi_\bs_\bt_\b-_\b2 as long
- as the last command in the list _\bl_\bi_\bs_\bt_\b-_\b1 returns an exit status of
- zero. The u\bun\bnt\bti\bil\bl command is identical to the w\bwh\bhi\bil\ble\be command, ex-
- cept that the test is negated: _\bl_\bi_\bs_\bt_\b-_\b2 is executed as long as the
- last command in _\bl_\bi_\bs_\bt_\b-_\b1 returns a non-zero exit status. The exit
- status of the w\bwh\bhi\bil\ble\be and u\bun\bnt\bti\bil\bl commands is the exit status of the
- last command executed in _\bl_\bi_\bs_\bt_\b-_\b2, or zero if none was executed.
-
- C\bCo\bop\bpr\bro\boc\bce\bes\bss\bse\bes\bs
- A _\bc_\bo_\bp_\br_\bo_\bc_\be_\bs_\bs is a shell command preceded by the c\bco\bop\bpr\bro\boc\bc reserved word. A
- coprocess is executed asynchronously in a subshell, as if the command
- had been terminated with the &\b& control operator, with a two-way pipe
- established between the executing shell and the coprocess.
-
- The syntax for a coprocess is:
-
- c\bco\bop\bpr\bro\boc\bc [_\bN_\bA_\bM_\bE] _\bc_\bo_\bm_\bm_\ba_\bn_\bd [_\br_\be_\bd_\bi_\br_\be_\bc_\bt_\bi_\bo_\bn_\bs]
-
- This creates a coprocess named _\bN_\bA_\bM_\bE. _\bc_\bo_\bm_\bm_\ba_\bn_\bd may be either a simple
- command or a compound command (see above). _\bN_\bA_\bM_\bE is a shell variable
- name. If _\bN_\bA_\bM_\bE is not supplied, the default name is C\bCO\bOP\bPR\bRO\bOC\bC.
-
- The recommended form to use for a coprocess is
-
- c\bco\bop\bpr\bro\boc\bc _\bN_\bA_\bM_\bE { _\bc_\bo_\bm_\bm_\ba_\bn_\bd [_\br_\be_\bd_\bi_\br_\be_\bc_\bt_\bi_\bo_\bn_\bs]; }
-
- This form is preferred because simple commands result in the coprocess
- always being named C\bCO\bOP\bPR\bRO\bOC\bC, and it is simpler to use and more complete
- than the other compound commands.
-
- If _\bc_\bo_\bm_\bm_\ba_\bn_\bd is a compound command, _\bN_\bA_\bM_\bE is optional. The word following
- c\bco\bop\bpr\bro\boc\bc determines whether that word is interpreted as a variable name:
- it is interpreted as _\bN_\bA_\bM_\bE if it is not a reserved word that introduces
- a compound command. If _\bc_\bo_\bm_\bm_\ba_\bn_\bd is a simple command, _\bN_\bA_\bM_\bE is not al-
- lowed; this is to avoid confusion between _\bN_\bA_\bM_\bE and the first word of
- the simple command.
-
- When the coprocess is executed, the shell creates an array variable
- (see A\bAr\brr\bra\bay\bys\bs below) named _\bN_\bA_\bM_\bE in the context of the executing shell.
- The standard output of _\bc_\bo_\bm_\bm_\ba_\bn_\bd is connected via a pipe to a file de-
- scriptor in the executing shell, and that file descriptor is assigned
- to _\bN_\bA_\bM_\bE[0]. The standard input of _\bc_\bo_\bm_\bm_\ba_\bn_\bd is connected via a pipe to a
- file descriptor in the executing shell, and that file descriptor is as-
- signed to _\bN_\bA_\bM_\bE[1]. This pipe is established before any redirections
- specified by the command (see R\bRE\bED\bDI\bIR\bRE\bEC\bCT\bTI\bIO\bON\bN below). The file descriptors
- can be utilized as arguments to shell commands and redirections using
- standard word expansions. Other than those created to execute command
- and process substitutions, the file descriptors are not available in
- subshells.
-
- The process ID of the shell spawned to execute the coprocess is avail-
- able as the value of the variable _\bN_\bA_\bM_\bE_PID. The w\bwa\bai\bit\bt builtin may be
- used to wait for the coprocess to terminate.
-
- Since the coprocess is created as an asynchronous command, the c\bco\bop\bpr\bro\boc\bc
- command always returns success. The return status of a coprocess is
- the exit status of _\bc_\bo_\bm_\bm_\ba_\bn_\bd.
-
- S\bSh\bhe\bel\bll\bl F\bFu\bun\bnc\bct\bti\bio\bon\bn D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bns\bs
- A shell function is an object that is called like a simple command and
- executes a compound command with a new set of positional parameters.
- Shell functions are declared as follows:
-
- _\bf_\bn_\ba_\bm_\be () _\bc_\bo_\bm_\bp_\bo_\bu_\bn_\bd_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd [_\br_\be_\bd_\bi_\br_\be_\bc_\bt_\bi_\bo_\bn]
- f\bfu\bun\bnc\bct\bti\bio\bon\bn _\bf_\bn_\ba_\bm_\be [()] _\bc_\bo_\bm_\bp_\bo_\bu_\bn_\bd_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd [_\br_\be_\bd_\bi_\br_\be_\bc_\bt_\bi_\bo_\bn]
- This defines a function named _\bf_\bn_\ba_\bm_\be. The reserved word f\bfu\bun\bnc\bct\bti\bio\bon\bn
- is optional. If the f\bfu\bun\bnc\bct\bti\bio\bon\bn reserved word is supplied, the
- parentheses are optional. The _\bb_\bo_\bd_\by of the function is the com-
- pound command _\bc_\bo_\bm_\bp_\bo_\bu_\bn_\bd_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd (see C\bCo\bom\bmp\bpo\bou\bun\bnd\bd C\bCo\bom\bmm\bma\ban\bnd\bds\bs above).
- That command is usually a _\bl_\bi_\bs_\bt of commands between { and }, but
- may be any command listed under C\bCo\bom\bmp\bpo\bou\bun\bnd\bd C\bCo\bom\bmm\bma\ban\bnd\bds\bs above. If the
- f\bfu\bun\bnc\bct\bti\bio\bon\bn reserved word is used, but the parentheses are not sup-
- plied, the braces are recommended. _\bc_\bo_\bm_\bp_\bo_\bu_\bn_\bd_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd is executed
- whenever _\bf_\bn_\ba_\bm_\be is specified as the name of a simple command.
- When in posix mode, _\bf_\bn_\ba_\bm_\be must be a valid shell _\bn_\ba_\bm_\be and may not
- be the name of one of the POSIX _\bs_\bp_\be_\bc_\bi_\ba_\bl _\bb_\bu_\bi_\bl_\bt_\bi_\bn_\bs. In default
- mode, a function name can be any unquoted shell word that does
- not contain $\b$.
-
- Any redirections (see R\bRE\bED\bDI\bIR\bRE\bEC\bCT\bTI\bIO\bON\bN below) specified when a function is
- defined are performed when the function is executed.
-
- The exit status of a function definition is zero unless a syntax error
- occurs or a readonly function with the same name already exists. When
- executed, the exit status of a function is the exit status of the last
- command executed in the body. (See F\bFU\bUN\bNC\bCT\bTI\bIO\bON\bNS\bS below.)
-
-C\bCO\bOM\bMM\bME\bEN\bNT\bTS\bS
- In a non-interactive shell, or an interactive shell in which the i\bin\bnt\bte\ber\br-\b-
- a\bac\bct\bti\biv\bve\be_\b_c\bco\bom\bmm\bme\ben\bnt\bts\bs option to the s\bsh\bho\bop\bpt\bt builtin is enabled (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), a word beginning with #\b# introduces a comment.
- A word begins at the beginning of a line, after unquoted whitespace, or
- after an operator. The comment causes that word and all remaining
- characters on that line to be ignored. An interactive shell without
- the i\bin\bnt\bte\ber\bra\bac\bct\bti\biv\bve\be_\b_c\bco\bom\bmm\bme\ben\bnt\bts\bs option enabled does not allow comments. The
- i\bin\bnt\bte\ber\bra\bac\bct\bti\biv\bve\be_\b_c\bco\bom\bmm\bme\ben\bnt\bts\bs option is enabled by default in interactive
- shells.
-
-Q\bQU\bUO\bOT\bTI\bIN\bNG\bG
- _\bQ_\bu_\bo_\bt_\bi_\bn_\bg is used to remove the special meaning of certain characters or
- words to the shell. Quoting can be used to disable special treatment
- for special characters, to prevent reserved words from being recognized
- as such, and to prevent parameter expansion.
-
- Each of the _\bm_\be_\bt_\ba_\bc_\bh_\ba_\br_\ba_\bc_\bt_\be_\br_\bs listed above under D\bDE\bEF\bFI\bIN\bNI\bIT\bTI\bIO\bON\bNS\bS has special
- meaning to the shell and must be quoted if it is to represent itself.
-
- When the command history expansion facilities are being used (see H\bHI\bIS\bS-\b-
- T\bTO\bOR\bRY\bY E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN below), the _\bh_\bi_\bs_\bt_\bo_\br_\by _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn character, usually !\b!, must
- be quoted to prevent history expansion.
-
- There are four quoting mechanisms: the _\be_\bs_\bc_\ba_\bp_\be _\bc_\bh_\ba_\br_\ba_\bc_\bt_\be_\br, single quotes,
- double quotes, and dollar-single quotes.
-
- A non-quoted backslash (\\b\) is the _\be_\bs_\bc_\ba_\bp_\be _\bc_\bh_\ba_\br_\ba_\bc_\bt_\be_\br. It preserves the
- literal value of the next character that follows, removing any special
- meaning it has, with the exception of <newline>. If a \\b\<newline> pair
- appears, and the backslash is not itself quoted, the \\b\<newline> is
- treated as a line continuation (that is, it is removed from the input
- stream and effectively ignored).
-
- Enclosing characters in single quotes preserves the literal value of
- each character within the quotes. A single quote may not occur between
- single quotes, even when preceded by a backslash.
-
- Enclosing characters in double quotes preserves the literal value of
- all characters within the quotes, with the exception of $\b$, `\b`, \\b\, and,
- when history expansion is enabled, !\b!. When the shell is in posix mode,
- the !\b! has no special meaning within double quotes, even when history
- expansion is enabled. The characters $\b$ and `\b` retain their special
- meaning within double quotes. The backslash retains its special mean-
- ing only when followed by one of the following characters: $\b$, `\b`, "\b", \\b\,
- or <\b<n\bne\bew\bwl\bli\bin\bne\be>\b>. Backslashes preceding characters without a special mean-
- ing are left unmodified.
-
- A double quote may be quoted within double quotes by preceding it with
- a backslash. If enabled, history expansion will be performed unless an
- !\b! appearing in double quotes is escaped using a backslash. The back-
- slash preceding the !\b! is not removed.
-
- The special parameters *\b* and @\b@ have special meaning when in double
- quotes (see P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS below).
-
- Character sequences of the form $\b$'_\bs_\bt_\br_\bi_\bn_\bg' are treated as a special
- variant of single quotes. The sequence expands to _\bs_\bt_\br_\bi_\bn_\bg, with back-
- slash-escaped characters in _\bs_\bt_\br_\bi_\bn_\bg replaced as specified by the ANSI C
- standard. Backslash escape sequences, if present, are decoded as fol-
- lows:
- \\b\a\ba alert (bell)
- \\b\b\bb backspace
- \\b\e\be
- \\b\E\bE an escape character
- \\b\f\bf form feed
- \\b\n\bn new line
- \\b\r\br carriage return
- \\b\t\bt horizontal tab
- \\b\v\bv vertical tab
- \\b\\\b\ backslash
- \\b\'\b' single quote
- \\b\"\b" double quote
- \\b\?\b? question mark
- \\b\_\bn_\bn_\bn The eight-bit character whose value is the octal value
- _\bn_\bn_\bn (one to three octal digits).
- \\b\x\bx_\bH_\bH The eight-bit character whose value is the hexadecimal
- value _\bH_\bH (one or two hex digits).
- \\b\u\bu_\bH_\bH_\bH_\bH The Unicode (ISO/IEC 10646) character whose value is the
- hexadecimal value _\bH_\bH_\bH_\bH (one to four hex digits).
- \\b\U\bU_\bH_\bH_\bH_\bH_\bH_\bH_\bH_\bH
- The Unicode (ISO/IEC 10646) character whose value is the
- hexadecimal value _\bH_\bH_\bH_\bH_\bH_\bH_\bH_\bH (one to eight hex digits).
- \\b\c\bc_\bx A control-_\bx character.
-
- The expanded result is single-quoted, as if the dollar sign had not
- been present.
-
- T\bTr\bra\ban\bns\bsl\bla\bat\bti\bin\bng\bg S\bSt\btr\bri\bin\bng\bgs\bs
- A double-quoted string preceded by a dollar sign ($\b$"_\bs_\bt_\br_\bi_\bn_\bg") causes the
- string to be translated according to the current locale. The _\bg_\be_\bt_\bt_\be_\bx_\bt
- infrastructure performs the lookup and translation, using the L\bLC\bC_\b_M\bME\bES\bS-\b-
- S\bSA\bAG\bGE\bES\bS, T\bTE\bEX\bXT\bTD\bDO\bOM\bMA\bAI\bIN\bND\bDI\bIR\bR, and T\bTE\bEX\bXT\bTD\bDO\bOM\bMA\bAI\bIN\bN shell variables. If the current
- locale is C\bC or P\bPO\bOS\bSI\bIX\bX, if there are no translations available, or if the
- string is not translated, the dollar sign is ignored, and the string is
- treated as double-quoted as described above. This is a form of double
- quoting, so the string remains double-quoted by default, whether or not
- it is translated and replaced. If the n\bno\boe\bex\bxp\bpa\ban\bnd\bd_\b_t\btr\bra\ban\bns\bsl\bla\bat\bti\bio\bon\bn option is
- enabled using the s\bsh\bho\bop\bpt\bt builtin, translated strings are single-quoted
- instead of double-quoted. See the description of s\bsh\bho\bop\bpt\bt below under
- S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS.
-
-P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS
- A _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is an entity that stores values. It can be a _\bn_\ba_\bm_\be, a num-
- ber, or one of the special characters listed below under S\bSp\bpe\bec\bci\bia\bal\bl P\bPa\bar\bra\ba-\b-
- m\bme\bet\bte\ber\brs\bs. A _\bv_\ba_\br_\bi_\ba_\bb_\bl_\be is a parameter denoted by a _\bn_\ba_\bm_\be. A variable has a
- _\bv_\ba_\bl_\bu_\be and zero or more _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\bs. Attributes are assigned using the
- d\bde\bec\bcl\bla\bar\bre\be builtin command (see d\bde\bec\bcl\bla\bar\bre\be below in S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS).
- The e\bex\bxp\bpo\bor\brt\bt and r\bre\bea\bad\bdo\bon\bnl\bly\by builtins assign specific attributes.
-
- A parameter is set if it has been assigned a value. The null string is
- a valid value. Once a variable is set, it may be unset only by using
- the u\bun\bns\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).
-
- A _\bv_\ba_\br_\bi_\ba_\bb_\bl_\be is assigned to using a statement of the form
-
- _\bn_\ba_\bm_\be=[_\bv_\ba_\bl_\bu_\be]
-
- If _\bv_\ba_\bl_\bu_\be is not given, the variable is assigned the null string. All
- _\bv_\ba_\bl_\bu_\be_\bs undergo tilde expansion, parameter and variable expansion, com-
- mand substitution, arithmetic expansion, and quote removal (see E\bEX\bXP\bPA\bAN\bN-\b-
- S\bSI\bIO\bON\bN below). If the variable has its i\bin\bnt\bte\beg\bge\ber\br attribute set, then _\bv_\ba_\bl_\bu_\be
- is evaluated as an arithmetic expression even if the $\b$(\b((\b(...)\b))\b) expansion
- is not used (see A\bAr\bri\bit\bth\bhm\bme\bet\bti\bic\bc E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn below). Word splitting and path-
- name expansion are not performed. Assignment statements may also ap-
- pear as arguments to the a\bal\bli\bia\bas\bs, d\bde\bec\bcl\bla\bar\bre\be, t\bty\byp\bpe\bes\bse\bet\bt, e\bex\bxp\bpo\bor\brt\bt, r\bre\bea\bad\bdo\bon\bnl\bly\by, and
- l\blo\boc\bca\bal\bl builtin commands (_\bd_\be_\bc_\bl_\ba_\br_\ba_\bt_\bi_\bo_\bn commands). When in posix mode,
- these builtins may appear in a command after one or more instances of
- the c\bco\bom\bmm\bma\ban\bnd\bd builtin and retain these assignment statement properties.
-
- In the context where an assignment statement is assigning a value to a
- shell variable or array index, the "+=" operator appends to or adds to
- the variable's previous value. This includes arguments to _\bd_\be_\bc_\bl_\ba_\br_\ba_\bt_\bi_\bo_\bn
- commands such as d\bde\bec\bcl\bla\bar\bre\be that accept assignment statements. When "+="
- is applied to a variable for which the i\bin\bnt\bte\beg\bge\ber\br attribute has been set,
- the variable's current value and _\bv_\ba_\bl_\bu_\be are each evaluated as arithmetic
- expressions, and the sum of the results is assigned as the variable's
- value. The current value is usually an integer constant, but may be an
- expression. When "+=" is applied to an array variable using compound
- assignment (see A\bAr\brr\bra\bay\bys\bs below), the variable's value is not unset (as it
- is when using "="), and new values are appended to the array beginning
- at one greater than the array's maximum index (for indexed arrays) or
- added as additional key-value pairs in an associative array. When ap-
- plied to a string-valued variable, _\bv_\ba_\bl_\bu_\be is expanded and appended to
- the variable's value.
-
- A variable can be assigned the _\bn_\ba_\bm_\be_\br_\be_\bf attribute using the -\b-n\bn option to
- the d\bde\bec\bcl\bla\bar\bre\be or l\blo\boc\bca\bal\bl builtin commands (see the descriptions of d\bde\bec\bcl\bla\bar\bre\be
- and l\blo\boc\bca\bal\bl below) to create a _\bn_\ba_\bm_\be_\br_\be_\bf, or a reference to another vari-
- able. This allows variables to be manipulated indirectly. Whenever
- the nameref variable is referenced, assigned to, unset, or has its at-
- tributes modified (other than using or changing the _\bn_\ba_\bm_\be_\br_\be_\bf attribute
- itself), the operation is actually performed on the variable specified
- by the nameref variable's value. A nameref is commonly used within
- shell functions to refer to a variable whose name is passed as an argu-
- ment to the function. For instance, if a variable name is passed to a
- shell function as its first argument, running
-
- declare -n ref=$1
-
- inside the function creates a local nameref variable r\bre\bef\bf whose value is
- the variable name passed as the first argument. References and assign-
- ments to r\bre\bef\bf, and changes to its attributes, are treated as references,
- assignments, and attribute modifications to the variable whose name was
- passed as $\b$1\b1. If the control variable in a f\bfo\bor\br loop has the nameref
- attribute, the list of words can be a list of shell variables, and a
- name reference is established for each word in the list, in turn, when
- the loop is executed. Array variables cannot be given the n\bna\bam\bme\ber\bre\bef\bf at-
- tribute. However, nameref variables can reference array variables and
- subscripted array variables. Namerefs can be unset using the -\b-n\bn option
- to the u\bun\bns\bse\bet\bt builtin. Otherwise, if u\bun\bns\bse\bet\bt is executed with the name of
- a nameref variable as an argument, the variable referenced by the
- nameref variable is unset.
-
- When the shell starts, it reads its environment and creates a shell
- variable from each environment variable that has a valid name, as de-
- scribed below (see E\bEN\bNV\bVI\bIR\bRO\bON\bNM\bME\bEN\bNT\bT).
-
- P\bPo\bos\bsi\bit\bti\bio\bon\bna\bal\bl P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs
- A _\bp_\bo_\bs_\bi_\bt_\bi_\bo_\bn_\ba_\bl _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is a parameter denoted by one or more digits,
- other than the single digit 0. Positional parameters are assigned from
- the shell's arguments when it is invoked, and may be reassigned using
- the s\bse\bet\bt builtin command. Positional parameters may not be assigned to
- with assignment statements. The positional parameters are temporarily
- replaced when a shell function is executed (see F\bFU\bUN\bNC\bCT\bTI\bIO\bON\bNS\bS below).
-
- When a positional parameter consisting of more than a single digit is
- expanded, it must be enclosed in braces (see E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN below). Without
- braces, a digit following $ can only refer to one of the first nine po-
- sitional parameters ($\b$1\b1-\b-$\b$9\b9) or the special parameter $\b$0\b0 (see the next
- section).
-
- S\bSp\bpe\bec\bci\bia\bal\bl P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs
- The shell treats several parameters specially. These parameters may
- only be referenced; assignment to them is not allowed. Special parame-
- ters are denoted by one of the following characters.
-
- *\b* ($\b$*\b*) Expands to the positional parameters, starting from one.
- When the expansion is not within double quotes, each positional
- parameter expands to a separate word. In contexts where word
- expansions are performed, those words are subject to further
- word splitting and pathname expansion. When the expansion oc-
- curs within double quotes, it expands to a single word with the
- value of each parameter separated by the first character of the
- I\bIF\bFS\bS variable. That is, "\b"$\b$*\b*"\b" is equivalent to "\b"$\b$1\b1_\bc$\b$2\b2_\bc.\b..\b..\b."\b", where
- _\bc is the first character of the value of the I\bIF\bFS\bS variable. If
- I\bIF\bFS\bS is unset, the parameters are separated by spaces. If I\bIF\bFS\bS is
- null, the parameters are joined without intervening separators.
- @\b@ ($\b$@\b@) Expands to the positional parameters, starting from one.
- In contexts where word splitting is performed, this expands each
- positional parameter to a separate word; if not within double
- quotes, these words are subject to word splitting. In contexts
- where word splitting is not performed, such as the value portion
- of an assignment statement, this expands to a single word with
- each positional parameter separated by a space. When the expan-
- sion occurs within double quotes, and word splitting is per-
- formed, each parameter expands to a separate word. That is,
- "\b"$\b$@\b@"\b" is equivalent to "\b"$\b$1\b1"\b" "\b"$\b$2\b2"\b" .\b..\b..\b. If the double-quoted expan-
- sion occurs within a word, the expansion of the first parameter
- is joined with the expansion of the beginning part of the origi-
- nal word, and the expansion of the last parameter is joined with
- the expansion of the last part of the original word. When there
- are no positional parameters, "\b"$\b$@\b@"\b" and $\b$@\b@ expand to nothing
- (i.e., they are removed).
- #\b# ($\b$#\b#) Expands to the number of positional parameters in decimal.
- ?\b? ($\b$?\b?) Expands to the exit status of the most recently executed
- command.
- -\b- ($\b$-\b-) Expands to the current option flags as specified upon invo-
- cation, by the s\bse\bet\bt builtin command, or those set by the shell
- itself (such as the -\b-i\bi option).
- $\b$ ($\b$$\b$) Expands to the process ID of the shell. In a subshell, it
- expands to the process ID of the parent shell, not the subshell.
- !\b! ($\b$!\b!)Expands to the process ID of the job most recently placed
- into the background, whether executed as an asynchronous command
- or using the b\bbg\bg builtin (see J\bJO\bOB\bB C\bCO\bON\bNT\bTR\bRO\bOL\bL below).
- 0\b0 ($\b$0\b0) Expands to the name of the shell or shell script. This is
- set at shell initialization. If b\bba\bas\bsh\bh is invoked with a file of
- commands, $\b$0\b0 is set to the name of that file. If b\bba\bas\bsh\bh is
- started with the -\b-c\bc option, then $\b$0\b0 is set to the first argument
- after the string to be executed, if one is present. Otherwise,
- it is set to the filename used to invoke b\bba\bas\bsh\bh, as given by argu-
- ment zero.
-
- S\bSh\bhe\bel\bll\bl V\bVa\bar\bri\bia\bab\bbl\ble\bes\bs
- The shell sets following variables:
-
- _\b_ ($\b$_\b_, an underscore) This has a number of meanings depending on
- context. At shell startup, _\b_ is set to the pathname used to in-
- voke the shell or shell script being executed as passed in the
- environment or argument list. Subsequently, it expands to the
- last argument to the previous simple command executed in the
- foreground, after expansion. It is also set to the full path-
- name used to invoke each command executed and placed in the en-
- vironment exported to that command. When checking mail, $\b$_\b_ ex-
- pands to the name of the mail file currently being checked.
- B\bBA\bAS\bSH\bH Expands to the full filename used to invoke this instance of
- b\bba\bas\bsh\bh.
- B\bBA\bAS\bSH\bHO\bOP\bPT\bTS\bS
- A colon-separated list of enabled shell options. Each word in
- the list is a valid argument for the -\b-s\bs option to the s\bsh\bho\bop\bpt\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 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. 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-
- 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
- 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
- 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
- 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
- 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-
- 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-
- 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
- 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
- (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
- 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
- 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
- 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
- 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-
- 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
- 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
- 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.
- $\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-
- 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-
- 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-
- 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-
- 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
- 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-
- 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-
- 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
- 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
- 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[2]\b] The patch level.
- B\bBA\bAS\bSH\bH_\b_V\bVE\bER\bRS\bSI\bIN\bNF\bFO\bO[\b[3]\b] The build version.
- 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
- 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
- cursor position. 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\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-
- 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-
- 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
- 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-
- 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-
- 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-
- 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
- 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
- (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
- 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-
- 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-
- 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
- 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
- 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-
- 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
- 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-
- 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
- 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
- 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
- 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
- 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-
- 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-
- 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
- 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-
- _\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
- 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
- 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
- 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-
- 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
- (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(
- 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-
- 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
- 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-
- 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
- The contents of 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\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
- 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
- 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
- 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-
- 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
- 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
- shell enables each 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 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
- 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
- returned number has no relationship to the numbers preceding it.
- 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
- 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
- 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
- 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
- parameter expansion, command substitution, and arithmetic expan-
- 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-
- 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
- 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-
- 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
- list of directories where the shell looks for directories speci-
- 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
- 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
- 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-
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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.
- 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-
- 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-
- 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,
- 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
- 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
- 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"
- 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
- 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-
- 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
- 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
- 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
- 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
- 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-
- 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 the number of his-
- tory entries that total no more than that number of lines by re-
- moving the oldest entries. If the history list contains multi-
- line entries, the history file may contain more lines than this
- maximum to avoid leaving partial history 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 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
- 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
- the first line was not saved, the second and subsequent lines of
- 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
- 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 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
- 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
- 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
- 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
- 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-
- 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
- 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
- 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-
- 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
- T\bTE\bER\bRM\bM.
- 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_
- 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-
- 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
- pattern matching.
- L\bLC\bC_\b_M\bME\bES\bSS\bSA\bAG\bGE\bES\bS
- 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
- formatting.
- L\bLC\bC_\b_T\bTI\bIM\bME\bE
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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).
- 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
- 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
- "\s-\v\$ ".
- 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
- 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
- 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
- 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]U\bU The number of CPU seconds spent in user mode.
- %\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
- 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
- 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 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-
- 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
- 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
- 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-
- 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
- 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,
- 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
- 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-
- negative integers.
-
- The shell performs parameter and variable expansion, arithmetic expan-
- sion, command substitution, and quote removal on indexed array sub-
- scripts. Since this can potentially result in empty strings, subscript
- indexing treats those as expressions that evaluate to 0.
-
- The shell performs tilde expansion, parameter and variable expansion,
- arithmetic expansion, command substitution, and quote removal on asso-
- ciative array subscripts. Empty strings cannot be used as associative
- array keys.
-
- B\bBa\bas\bsh\bh automatically creates an indexed array 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
- 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).
- d\bde\bec\bcl\bla\bar\bre\be -\b-a\ba _\bn_\ba_\bm_\be[_\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt]
- is also accepted; the _\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt is ignored.
-
- Associative arrays are created using
- d\bde\bec\bcl\bla\bar\bre\be -\b-A\bA _\bn_\ba_\bm_\be
- .
-
- Attributes may be specified for an array variable using the d\bde\bec\bcl\bla\bar\bre\be and
- 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-
- 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
- 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
- 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
- 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-
- troduced above.
-
- 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
- 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
- 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.
- 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-
- 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
- _\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
- 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
- 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
- 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
- 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-
- _\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-
- 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
- (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
- 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-
- vides a number of builtin array variables.
-
-E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN
- Expansion is performed on the command line after it has been split into
- words. The shell performs these expansions: _\bb_\br_\ba_\bc_\be _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn, _\bt_\bi_\bl_\bd_\be _\be_\bx_\b-
- _\bp_\ba_\bn_\bs_\bi_\bo_\bn, _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br _\ba_\bn_\bd _\bv_\ba_\br_\bi_\ba_\bb_\bl_\be _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn, _\bc_\bo_\bm_\bm_\ba_\bn_\bd _\bs_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn, _\ba_\br_\bi_\bt_\bh_\b-
- _\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 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-
- 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
- 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-
- 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
- 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
- string, expanding left to right.
-
- 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 _\bx.\b..\b._\by[\b[.\b..\b._\bi_\bn_\bc_\br]\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
- 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,
- using the 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 as ap-
- propriate.
-
- 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
- the context of the expansion or the text between the braces.
-
- 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-
- sion, and inhibits brace expansion until the closing "}".
-
- This construct is typically used as shorthand when the common prefix of
- the strings to be generated is longer than in the above example:
-
- mkdir /usr/local/src/bash/{old,new,dist,bugs}
- 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.
- 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
- 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
- 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
- with the specified login name.
-
- 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
- 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
- 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-
- sion.
-
- 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-
- panded value.
-
- 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
- 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
- could be interpreted as part of the name.
-
- 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-
- 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
- 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
- _\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
- 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
- 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.
- 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
- 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
- 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,
- 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
- 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-
- 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.
- 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 :\b:_\bl_\be_\bn_\bg_\bt_\bh is omitted (the first form above),
- this 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. If _\bo_\bf_\bf_\bs_\be_\bt is omitted, it is treated as 0. If _\bl_\be_\bn_\bg_\bt_\bh
- is omitted, but the colon after _\bo_\bf_\bf_\bs_\be_\bt is present, it is treated
- as 0. _\bl_\be_\bn_\bg_\bt_\bh and _\bo_\bf_\bf_\bs_\be_\bt are arithmetic expressions (see A\bAR\bRI\bIT\bTH\bH-\b-
- M\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
- 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
- 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
- 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
- offset of -1 evaluates to the last positional parameter (or 0 if
- 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
- 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,
- $\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
- 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
- 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,
- 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-
- ment.
-
- ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br#\b#_\bw_\bo_\br_\bd}
- ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br#\b##\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
- the resultant list.
-
- ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br%\b%_\bw_\bo_\br_\bd}
- ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br%\b%%\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
- 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}
- ${_\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 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-
- ond form above), all matches of _\bp_\ba_\bt_\bt_\be_\br_\bn are replaced with
- _\bs_\bt_\br_\bi_\bn_\bg. If _\bp_\ba_\bt_\bt_\be_\br_\bn is preceded by #\b# (the third form above), it
- must match at the beginning of the expanded value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br.
- If _\bp_\ba_\bt_\bt_\be_\br_\bn is preceded by %\b% (the fourth form above), it must
- match at the end of the expanded value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br.
-
- If the expansion of _\bs_\bt_\br_\bi_\bn_\bg is null, matches of _\bp_\ba_\bt_\bt_\be_\br_\bn are
- deleted and the /\b/ following _\bp_\ba_\bt_\bt_\be_\br_\bn may be omitted.
-
- If the p\bpa\bat\bts\bsu\bub\bb_\b_r\bre\bep\bpl\bla\bac\bce\bem\bme\ben\bnt\bt shell option is enabled using s\bsh\bho\bop\bpt\bt,
- any unquoted instances of &\b& in _\bs_\bt_\br_\bi_\bn_\bg are replaced with the
- matching portion of _\bp_\ba_\bt_\bt_\be_\br_\bn.
-
- Quoting any part of _\bs_\bt_\br_\bi_\bn_\bg inhibits replacement in the expansion
- of the quoted portion, including replacement strings stored in
- shell variables. Backslash escapes &\b& in _\bs_\bt_\br_\bi_\bn_\bg; the backslash
- is removed in order to permit a literal &\b& in the replacement
- string. Backslash can also be used to escape a backslash; \\b\\\b\
- results in a literal backslash in the replacement. Users should
- take care if _\bs_\bt_\br_\bi_\bn_\bg is double-quoted to avoid unwanted interac-
- tions between the backslash and double-quoting, since backslash
- has special meaning within double quotes. Pattern substitution
- performs the check for unquoted &\b& after expanding _\bs_\bt_\br_\bi_\bn_\bg; shell
- programmers should quote any occurrences of &\b& they want to be
- taken literally in the replacement and ensure any instances of &\b&
- they want to be replaced are unquoted.
-
- Like the pattern removal operators, double quotes surrounding
- the replacement string quote the expanded characters, while dou-
- ble quotes enclosing the entire parameter substitution do not,
- since the expansion is performed in a context that doesn't take
- any enclosing double quotes into account.
-
- If the n\bno\boc\bca\bas\bse\bem\bma\bat\btc\bch\bh shell option is enabled, the match is per-
- formed without regard to the case of alphabetic characters.
-
- If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is @\b@ or *\b*, the substitution operation is applied to
- each positional parameter in turn, and the expansion is the re-
- sultant list. If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is an array variable subscripted
- with @\b@ or *\b*, the substitution operation is applied to each mem-
- ber 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}
- ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br^\b^^\b^_\bp_\ba_\bt_\bt_\be_\br_\bn}
- ${_\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. 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
- the resultant list. If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is an array variable sub-
- scripted with @\b@ or *\b*, the case modification 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@_\bo_\bp_\be_\br_\ba_\bt_\bo_\br}
- P\bPa\bar\bra\bam\bme\bet\bte\ber\br t\btr\bra\ban\bns\bsf\bfo\bor\brm\bma\bat\bti\bio\bon\bn. The expansion is either a transforma-
- tion of the value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br or information about _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br
- itself, depending on the value of _\bo_\bp_\be_\br_\ba_\bt_\bo_\br. Each _\bo_\bp_\be_\br_\ba_\bt_\bo_\br is a
- single letter:
- U\bU The expansion is a string that is the value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br
- with lowercase alphabetic characters converted to upper-
- case.
- u\bu The expansion is a string that is the value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br
- with the first character converted to uppercase, if it is
- alphabetic.
- L\bL The expansion is a string that is the value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br
- with uppercase alphabetic characters converted to lower-
- case.
- Q\bQ The expansion is a string that is the value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br
- quoted in a format that can be reused as input.
- E\bE The expansion is a string that is the value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br
- with backslash escape sequences expanded as with the
- $\b$'\b'...'\b' quoting mechanism.
- P\bP The expansion is a string that is the result of expanding
- the value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br as if it were a prompt string (see
- P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\bG below).
- A\bA The expansion is a string in the form of an assignment
- statement or d\bde\bec\bcl\bla\bar\bre\be command that, if evaluated, recre-
- ates _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br with its attributes and value.
- K\bK Produces a possibly-quoted version of the value of _\bp_\ba_\br_\ba_\b-
- _\bm_\be_\bt_\be_\br, except that it prints the values of indexed and
- associative arrays as a sequence of quoted key-value
- pairs (see A\bAr\brr\bra\bay\bys\bs above). The keys and values are quoted
- in a format that can be reused as input.
- a\ba The expansion is a string consisting of flag values rep-
- resenting _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br's attributes.
- k\bk Like the K transformation, but expands the keys and val-
- ues of indexed and associative arrays to separate words
- after word splitting.
-
- If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is @\b@ or *\b*, the operation is applied to each posi-
- tional 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 operation is applied to each member of the array in turn,
- and the expansion is the resultant list.
-
- The result of the expansion is subject to word splitting and
- pathname expansion as described below.
-
- C\bCo\bom\bmm\bma\ban\bnd\bd S\bSu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
- _\bC_\bo_\bm_\bm_\ba_\bn_\bd _\bs_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn allows the output of a command to replace the com-
- mand itself. There are two standard forms:
-
- $\b$(\b(_\bc_\bo_\bm_\bm_\ba_\bn_\bd)\b)
- or (deprecated)
- `\b`_\bc_\bo_\bm_\bm_\ba_\bn_\bd`\b`.
-
- B\bBa\bas\bsh\bh performs the expansion by executing _\bc_\bo_\bm_\bm_\ba_\bn_\bd in a subshell environ-
- ment and replacing the command substitution with the standard output of
- the command, with any trailing newlines deleted. Embedded newlines are
- not deleted, but they may be removed during word splitting. The com-
- mand substitution $\b$(\b(c\bca\bat\bt _\bf_\bi_\bl_\be)\b) can be replaced by the equivalent but
- faster $\b$(\b(<\b< _\bf_\bi_\bl_\be)\b).
-
- With the old-style backquote form of substitution, backslash retains
- its literal meaning except when followed by $\b$, `\b`, or \\b\. The first
- backquote not preceded by a backslash terminates the command substitu-
- tion. When using the $(_\bc_\bo_\bm_\bm_\ba_\bn_\bd) form, all characters between the
- parentheses make up the command; none are treated specially.
-
- There is an alternate form of command substitution:
-
- $\b${\b{_\bc _\bc_\bo_\bm_\bm_\ba_\bn_\bd;\b;}\b}
-
- which executes _\bc_\bo_\bm_\bm_\ba_\bn_\bd in the current execution environment and cap-
- tures its output, again with trailing newlines removed.
-
- The character _\bc following the open brace must be a space, tab, newline,
- or |\b|, and the close brace must be in a position where a reserved word
- may appear (i.e., preceded by a command terminator such as semicolon).
- B\bBa\bas\bsh\bh allows the close brace to be joined to the remaining characters in
- the word without being followed by a shell metacharacter as a reserved
- word would usually require.
-
- Any side effects of _\bc_\bo_\bm_\bm_\ba_\bn_\bd take effect immediately in the current exe-
- cution environment and persist in the current environment after the
- command completes (e.g., the e\bex\bxi\bit\bt builtin exits the shell).
-
- This type of command substitution superficially resembles executing an
- unnamed shell function: local variables are created as when a shell
- function is executing, and the r\bre\bet\btu\bur\brn\bn builtin forces _\bc_\bo_\bm_\bm_\ba_\bn_\bd to com-
- plete; however, the rest of the execution environment, including the
- positional parameters, is shared with the caller.
-
- If the first character following the open brace is a |\b|, the construct
- expands to the value of the R\bRE\bEP\bPL\bLY\bY shell variable after _\bc_\bo_\bm_\bm_\ba_\bn_\bd exe-
- cutes, without removing any trailing newlines, and the standard output
- of _\bc_\bo_\bm_\bm_\ba_\bn_\bd remains the same as in the calling shell. B\bBa\bas\bsh\bh creates R\bRE\bE-\b-
- P\bPL\bLY\bY as an initially-unset local variable when _\bc_\bo_\bm_\bm_\ba_\bn_\bd executes, and re-
- stores R\bRE\bEP\bPL\bLY\bY to the value it had before the command substitution after
- _\bc_\bo_\bm_\bm_\ba_\bn_\bd completes, as with any local variable.
-
- Command substitutions may be nested. To nest when using the backquoted
- form, escape the inner backquotes with backslashes.
-
- If the substitution appears within double quotes, b\bba\bas\bsh\bh does not perform
- word splitting and pathname expansion on the results.
-
- A\bAr\bri\bit\bth\bhm\bme\bet\bti\bic\bc E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn
- Arithmetic expansion evaluates an arithmetic expression and substitutes
- the result. The format for arithmetic expansion is:
-
- $\b$(\b((\b(_\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn)\b))\b)
-
- The _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn undergoes the same expansions as if it were within dou-
- ble quotes, but unescaped double quote characters in _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn are not
- treated specially and are removed. All tokens in the expression un-
- dergo parameter and variable expansion, command substitution, and quote
- removal. The result is treated as the arithmetic expression to be
- evaluated. Since the way Bash handles double quotes can potentially
- result in empty strings, arithmetic expansion treats those as expres-
- sions that evaluate to 0. Arithmetic expansions may be nested.
-
- The evaluation is performed according to the rules listed below under
- A\bAR\bRI\bIT\bTH\bHM\bME\bET\bTI\bIC\bC E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN. If _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn is invalid, b\bba\bas\bsh\bh prints a message
- to standard error indicating failure, does not perform the substitu-
- tion, and does not execute the command associated with the expansion.
-
- P\bPr\bro\boc\bce\bes\bss\bs S\bSu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
- _\bP_\br_\bo_\bc_\be_\bs_\bs _\bs_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn allows a process's input or output to be referred
- to using a filename. It takes the form of <\b<(\b(_\bl_\bi_\bs_\bt)\b) or >\b>(\b(_\bl_\bi_\bs_\bt)\b). The
- process _\bl_\bi_\bs_\bt is run asynchronously, and its input or output appears as
- a filename. This filename is passed as an argument to the current com-
- mand as the result of the expansion.
-
- If the >\b>(\b(_\bl_\bi_\bs_\bt)\b) form is used, writing to the file provides input for
- _\bl_\bi_\bs_\bt. If the <\b<(\b(_\bl_\bi_\bs_\bt)\b) form is used, reading the file obtains the output
- of _\bl_\bi_\bs_\bt. No space may appear between the <\b< or >\b> and the left parenthe-
- sis, otherwise the construct would be interpreted as a redirection.
-
- Process substitution is supported on systems that support named pipes
- (_\bF_\bI_\bF_\bO_\bs) or the _\b/_\bd_\be_\bv_\b/_\bf_\bd method of naming open files.
-
- When available, process substitution is performed simultaneously with
- parameter and variable expansion, command substitution, and arithmetic
- expansion.
-
- W\bWo\bor\brd\bd S\bSp\bpl\bli\bit\btt\bti\bin\bng\bg
- The shell scans the results of parameter expansion, command substitu-
- tion, and arithmetic expansion that did not occur within double quotes
- for _\bw_\bo_\br_\bd _\bs_\bp_\bl_\bi_\bt_\bt_\bi_\bn_\bg. Words that were not expanded are not split.
-
- The shell treats each character of I\bIF\bFS\bS as a delimiter, and splits the
- results of the other expansions into words using these characters as
- field terminators.
-
- An _\bI_\bF_\bS _\bw_\bh_\bi_\bt_\be_\bs_\bp_\ba_\bc_\be character is whitespace as defined above (see D\bDe\bef\bfi\bin\bni\bi-\b-
- t\bti\bio\bon\bns\bs) that appears in the value of I\bIF\bFS\bS. Space, tab, and newline are
- always considered IFS whitespace, even if they don't appear in the lo-
- cale's s\bsp\bpa\bac\bce\be category.
-
- If I\bIF\bFS\bS is unset, field splitting acts as if its value were
- <\b<s\bsp\bpa\bac\bce\be>\b><\b<t\bta\bab\bb>\b><\b<n\bne\bew\bwl\bli\bin\bne\be>\b>, and treats these characters as IFS whitespace.
- If the value of I\bIF\bFS\bS is null, no word splitting occurs, but implicit
- null arguments (see below) are still removed.
-
- Word splitting begins by removing sequences of IFS whitespace charac-
- ters from the beginning and end of the results of the previous expan-
- sions, then splits the remaining words.
-
- If the value of I\bIF\bFS\bS consists solely of IFS whitespace, any sequence of
- IFS whitespace characters delimits a field, so a field consists of
- characters that are not unquoted IFS whitespace, and null fields result
- only from quoting.
-
- If I\bIF\bFS\bS contains a non-whitespace character, then any character in the
- value of I\bIF\bFS\bS that is not IFS whitespace, along with any adjacent IFS
- whitespace characters, delimits a field. This means that adjacent non-
- IFS-whitespace delimiters produce a null field. A sequence of IFS
- whitespace characters also delimits a field.
-
- Explicit null arguments ("\b""\b" or '\b''\b') are retained and passed to commands
- as empty strings. Unquoted implicit null arguments, resulting from the
- expansion of parameters that have no values, are removed. Expanding a
- parameter with no value within double quotes produces a null field,
- which is retained and passed to a command as an empty string.
-
- When a quoted null argument appears as part of a word whose expansion
- is non-null, word splitting removes the null argument portion, leaving
- the non-null expansion. That is, the word "-d''" becomes "-d" after
- word splitting and null argument removal.
-
- P\bPa\bat\bth\bhn\bna\bam\bme\be E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn
- After word splitting, unless the -\b-f\bf option has been set, b\bba\bas\bsh\bh scans
- each word for the characters *\b*, ?\b?, and [\b[. If one of these characters
- appears, and is not quoted, then the word is regarded as a _\bp_\ba_\bt_\bt_\be_\br_\bn, and
- replaced with a sorted list of filenames matching the pattern (see P\bPa\bat\bt-\b-
- t\bte\ber\brn\bn M\bMa\bat\btc\bch\bhi\bin\bng\bg below) subject to the value of the G\bGL\bLO\bOB\bBS\bSO\bOR\bRT\bT shell vari-
- able.
-
- If no matching filenames are found, and the shell option n\bnu\bul\bll\blg\bgl\blo\bob\bb is
- not enabled, the word is left unchanged. If the n\bnu\bul\bll\blg\bgl\blo\bob\bb option is
- set, and no matches are found, the word is removed. If the f\bfa\bai\bil\blg\bgl\blo\bob\bb
- shell option is set, and no matches are found, b\bba\bas\bsh\bh prints an error
- message and does not execute the command. If the shell option n\bno\boc\bca\bas\bse\be-\b-
- g\bgl\blo\bob\bb is enabled, the match is performed without regard to the case of
- alphabetic characters.
-
- When a pattern is used for pathname expansion, the character "." at the
- start of a name or immediately following a slash must be matched ex-
- plicitly, unless the shell option d\bdo\bot\btg\bgl\blo\bob\bb is set. In order to match
- the filenames _\b. and _\b._\b., the pattern must begin with "." (for example,
- ".?"), even if d\bdo\bot\btg\bgl\blo\bob\bb is set. If the g\bgl\blo\bob\bbs\bsk\bki\bip\bpd\bdo\bot\bts\bs shell option is en-
- abled, the filenames _\b. and _\b._\b. never match, even if the pattern begins
- with a ".". When not matching pathnames, the "." character is not
- treated specially.
-
- When matching a pathname, the slash character must always be matched
- explicitly by a slash in the pattern, but in other matching contexts it
- can be matched by a special pattern character as described below under
- P\bPa\bat\btt\bte\ber\brn\bn M\bMa\bat\btc\bch\bhi\bin\bng\bg.
-
- See the description of s\bsh\bho\bop\bpt\bt below under S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS for a
- description of the n\bno\boc\bca\bas\bse\beg\bgl\blo\bob\bb, n\bnu\bul\bll\blg\bgl\blo\bob\bb, g\bgl\blo\bob\bbs\bsk\bki\bip\bpd\bdo\bot\bts\bs, f\bfa\bai\bil\blg\bgl\blo\bob\bb, and
- d\bdo\bot\btg\bgl\blo\bob\bb shell options.
-
- The G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE shell variable may be used to restrict the set of file
- names matching a _\bp_\ba_\bt_\bt_\be_\br_\bn. If G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE is set, each matching file
- name that also matches one of the patterns in G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE is removed
- from the list of matches. If the n\bno\boc\bca\bas\bse\beg\bgl\blo\bob\bb option is set, the match-
- ing against the patterns in G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE is performed without regard to
- case. The filenames _\b. and _\b._\b. are always ignored when G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE is set
- and not null. However, setting G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE to a non-null value has the
- effect of enabling the d\bdo\bot\btg\bgl\blo\bob\bb shell option, so all other filenames be-
- ginning with a "." match. To get the old behavior of ignoring file-
- names beginning with a ".", make ".*" one of the patterns in G\bGL\bLO\bOB\bBI\bIG\bG-\b-
- N\bNO\bOR\bRE\bE. The d\bdo\bot\btg\bgl\blo\bob\bb option is disabled when G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE is unset. The
- G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE pattern matching honors the setting of the e\bex\bxt\btg\bgl\blo\bob\bb shell op-
- tion.
-
- The value of the G\bGL\bLO\bOB\bBS\bSO\bOR\bRT\bT shell variable controls how the results of
- pathname expansion are sorted, as described above under S\bSh\bhe\bel\bll\bl V\bVa\bar\bri\bi-\b-
- a\bab\bbl\ble\bes\bs.
-
- P\bPa\bat\btt\bte\ber\brn\bn M\bMa\bat\btc\bch\bhi\bin\bng\bg
-
- Any character that appears in a pattern, other than the special pattern
- characters described below, matches itself. The NUL character may not
- occur in a pattern. A backslash escapes the following character; the
- escaping backslash is discarded when matching. The special pattern
- characters must be quoted if they are to be matched literally.
-
- The special pattern characters have the following meanings:
-
- *\b* Matches any string, including the null string. When the
- g\bgl\blo\bob\bbs\bst\bta\bar\br shell option is enabled, and *\b* is used in a
- pathname expansion context, two adjacent *\b*s used as a
- single pattern match all files and zero or more directo-
- ries and subdirectories. If followed by a /\b/, two adja-
- cent *\b*s match only directories and subdirectories.
- ?\b? Matches any single character.
- [\b[...]\b] Matches any one of the characters enclosed between the
- brackets. This is known as a _\bb_\br_\ba_\bc_\bk_\be_\bt _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn and
- matches a single character. A pair of characters sepa-
- rated by a hyphen denotes a _\br_\ba_\bn_\bg_\be _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn; any charac-
- ter that falls between those two characters, inclusive,
- using the current locale's collating sequence and charac-
- ter set, matches. If the first character following the [\b[
- is a !\b! or a ^\b^ then any character not within the range
- matches. To match a -\b-, include it as the first or last
- character in the set. To match a ]\b], include it as the
- first character in the set.
-
- The sorting order of characters in range expressions, and
- the characters included in the range, are determined by
- the current locale and the values of the L\bLC\bC_\b_C\bCO\bOL\bLL\bLA\bAT\bTE\bE or
- L\bLC\bC_\b_A\bAL\bLL\bL shell variables, if set. To obtain the tradi-
- tional interpretation of range expressions, where [\b[a\ba-\b-d\bd]\b]
- is equivalent to [\b[a\bab\bbc\bcd\bd]\b], set the value of the L\bLC\bC_\b_C\bCO\bOL\bLL\bLA\bAT\bTE\bE
- or L\bLC\bC_\b_A\bAL\bLL\bL shell variables to C\bC, or enable the g\bgl\blo\bob\bba\bas\bsc\bci\bi-\b-
- i\bir\bra\ban\bng\bge\bes\bs shell option.
-
- Within a bracket expression, _\bc_\bh_\ba_\br_\ba_\bc_\bt_\be_\br _\bc_\bl_\ba_\bs_\bs_\be_\bs can be
- specified using the syntax [\b[:\b:_\bc_\bl_\ba_\bs_\bs:\b:]\b], where _\bc_\bl_\ba_\bs_\bs is one
- of the following classes defined in the POSIX standard:
-
- a\bal\bln\bnu\bum\bm a\bal\blp\bph\bha\ba a\bas\bsc\bci\bii\bi b\bbl\bla\ban\bnk\bk c\bcn\bnt\btr\brl\bl d\bdi\big\bgi\bit\bt g\bgr\bra\bap\bph\bh l\blo\bow\bwe\ber\br p\bpr\bri\bin\bnt\bt
- p\bpu\bun\bnc\bct\bt s\bsp\bpa\bac\bce\be u\bup\bpp\bpe\ber\br w\bwo\bor\brd\bd x\bxd\bdi\big\bgi\bit\bt
-
- A character class matches any character belonging to that
- class. The w\bwo\bor\brd\bd character class matches letters, digits,
- and the character _.
-
- Within a bracket expression, an _\be_\bq_\bu_\bi_\bv_\ba_\bl_\be_\bn_\bc_\be _\bc_\bl_\ba_\bs_\bs can be
- specified using the syntax [\b[=\b=_\bc=\b=]\b], which matches all char-
- acters with the same collation weight (as defined by the
- current locale) as the character _\bc.
-
- Within a bracket expression, the syntax [\b[.\b._\bs_\by_\bm_\bb_\bo_\bl.\b.]\b]
- matches the collating symbol _\bs_\by_\bm_\bb_\bo_\bl.
-
- If the e\bex\bxt\btg\bgl\blo\bob\bb shell option is enabled using the s\bsh\bho\bop\bpt\bt builtin, the
- shell recognizes several extended pattern matching operators. In the
- following description, a _\bp_\ba_\bt_\bt_\be_\br_\bn_\b-_\bl_\bi_\bs_\bt is a list of one or more patterns
- separated by a |\b|. Composite patterns may be formed using one or more
- of the following sub-patterns:
-
- ?\b?(\b(_\bp_\ba_\bt_\bt_\be_\br_\bn_\b-_\bl_\bi_\bs_\bt)\b)
- Matches zero or one occurrence of the given patterns.
- *\b*(\b(_\bp_\ba_\bt_\bt_\be_\br_\bn_\b-_\bl_\bi_\bs_\bt)\b)
- Matches zero or more occurrences of the given patterns.
- +\b+(\b(_\bp_\ba_\bt_\bt_\be_\br_\bn_\b-_\bl_\bi_\bs_\bt)\b)
- Matches one or more occurrences of the given patterns.
- @\b@(\b(_\bp_\ba_\bt_\bt_\be_\br_\bn_\b-_\bl_\bi_\bs_\bt)\b)
- Matches one of the given patterns.
- !\b!(\b(_\bp_\ba_\bt_\bt_\be_\br_\bn_\b-_\bl_\bi_\bs_\bt)\b)
- Matches anything except one of the given patterns.
-
- The e\bex\bxt\btg\bgl\blo\bob\bb option changes the behavior of the parser, since the paren-
- theses are normally treated as operators with syntactic meaning. To
- ensure that extended matching patterns are parsed correctly, make sure
- that e\bex\bxt\btg\bgl\blo\bob\bb is enabled before parsing constructs containing the pat-
- terns, including shell functions and command substitutions.
-
- When matching filenames, the d\bdo\bot\btg\bgl\blo\bob\bb shell option determines the set of
- filenames that are tested: when d\bdo\bot\btg\bgl\blo\bob\bb is enabled, the set of file-
- names includes all files beginning with ".", but _\b. and _\b._\b. must be
- matched by a pattern or sub-pattern that begins with a dot; when it is
- disabled, the set does not include any filenames beginning with "." un-
- less the pattern or sub-pattern begins with a ".". If the g\bgl\blo\bob\bbs\bsk\bki\bip\bpd\bdo\bot\bts\bs
- shell option is enabled, the filenames _\b. and _\b._\b. never appear in the
- set. As above, "." only has a special meaning when matching filenames.
-
- Complicated extended pattern matching against long strings is slow, es-
- pecially when the patterns contain alternations and the strings contain
- multiple matches. Using separate matches against shorter strings, or
- using arrays of strings instead of a single long string, may be faster.
-
- Q\bQu\buo\bot\bte\be R\bRe\bem\bmo\bov\bva\bal\bl
- After the preceding expansions, all unquoted occurrences of the charac-
- ters \\b\, '\b', and "\b" that did not result from one of the above expansions
- are removed.
-
-R\bRE\bED\bDI\bIR\bRE\bEC\bCT\bTI\bIO\bON\bN
- Before a command is executed, its input and output may be _\br_\be_\bd_\bi_\br_\be_\bc_\bt_\be_\bd
- using a special notation interpreted by the shell. _\bR_\be_\bd_\bi_\br_\be_\bc_\bt_\bi_\bo_\bn allows
- commands' file handles to be duplicated, opened, closed, made to refer
- to different files, and can change the files the command reads from and
- writes to. When used with the e\bex\bxe\bec\bc builtin, redirections modify file
- handles in the current shell execution environment. The following
- redirection operators may precede or appear anywhere within a _\bs_\bi_\bm_\bp_\bl_\be
- _\bc_\bo_\bm_\bm_\ba_\bn_\bd or may follow a _\bc_\bo_\bm_\bm_\ba_\bn_\bd. Redirections are processed in the or-
- der they appear, from left to right.
-
- Each redirection that may be preceded by a file descriptor number may
- instead be preceded by a word of the form {_\bv_\ba_\br_\bn_\ba_\bm_\be}. In this case, for
- each redirection operator except >\b>&\b&-\b- and <\b<&\b&-\b-, the shell allocates a
- file descriptor greater than or equal to 10 and assigns it to _\bv_\ba_\br_\bn_\ba_\bm_\be.
- If {_\bv_\ba_\br_\bn_\ba_\bm_\be} precedes >\b>&\b&-\b- or <\b<&\b&-\b-, the value of _\bv_\ba_\br_\bn_\ba_\bm_\be defines the file
- descriptor to close. If {_\bv_\ba_\br_\bn_\ba_\bm_\be} is supplied, the redirection per-
- sists beyond the scope of the command, which allows the shell program-
- mer to manage the file descriptor's lifetime manually without using the
- e\bex\bxe\bec\bc builtin. The v\bva\bar\brr\bre\bed\bdi\bir\br_\b_c\bcl\blo\bos\bse\be shell option manages this behavior.
-
- In the following descriptions, if the file descriptor number is omit-
- ted, and the first character of the redirection operator is "<", the
- redirection refers to the standard input (file descriptor 0). If the
- first character of the redirection operator is ">", the redirection
- refers to the standard output (file descriptor 1).
-
- The _\bw_\bo_\br_\bd following the redirection operator in the following descrip-
- tions, unless otherwise noted, is subjected to brace expansion, tilde
- expansion, parameter and variable expansion, command substitution,
- arithmetic expansion, quote removal, pathname expansion, and word
- splitting. If it expands to more than one word, b\bba\bas\bsh\bh reports an error.
-
- The order of redirections is significant. For example, the command
-
- ls >\b> dirlist 2>\b>&\b&1
-
- directs both standard output and standard error to the file _\bd_\bi_\br_\bl_\bi_\bs_\bt,
- while the command
-
- ls 2>\b>&\b&1 >\b> dirlist
-
- directs only the standard output to file _\bd_\bi_\br_\bl_\bi_\bs_\bt, because the standard
- error was directed to the standard output before the standard output
- was redirected to _\bd_\bi_\br_\bl_\bi_\bs_\bt.
-
- B\bBa\bas\bsh\bh handles several filenames specially when they are used in redirec-
- tions, as described in the following table. If the operating system on
- which b\bba\bas\bsh\bh is running provides these special files, b\bba\bas\bsh\bh uses them;
- otherwise it emulates them internally with the behavior described be-
- low.
-
- /\b/d\bde\bev\bv/\b/f\bfd\bd/\b/_\bf_\bd
- If _\bf_\bd is a valid integer, duplicate file descriptor _\bf_\bd.
- /\b/d\bde\bev\bv/\b/s\bst\btd\bdi\bin\bn
- File descriptor 0 is duplicated.
- /\b/d\bde\bev\bv/\b/s\bst\btd\bdo\bou\but\bt
- File descriptor 1 is duplicated.
- /\b/d\bde\bev\bv/\b/s\bst\btd\bde\ber\brr\br
- File descriptor 2 is duplicated.
- /\b/d\bde\bev\bv/\b/t\btc\bcp\bp/\b/_\bh_\bo_\bs_\bt/\b/_\bp_\bo_\br_\bt
- If _\bh_\bo_\bs_\bt is a valid hostname or Internet address, and _\bp_\bo_\br_\bt
- is an integer port number or service name, b\bba\bas\bsh\bh attempts
- to open the corresponding TCP socket.
- /\b/d\bde\bev\bv/\b/u\bud\bdp\bp/\b/_\bh_\bo_\bs_\bt/\b/_\bp_\bo_\br_\bt
- If _\bh_\bo_\bs_\bt is a valid hostname or Internet address, and _\bp_\bo_\br_\bt
- is an integer port number or service name, b\bba\bas\bsh\bh attempts
- to open the corresponding UDP socket.
-
- A failure to open or create a file causes the redirection to fail.
-
- Redirections using file descriptors greater than 9 should be used with
- care, as they may conflict with file descriptors the shell uses inter-
- nally.
-
- R\bRe\bed\bdi\bir\bre\bec\bct\bti\bin\bng\bg I\bIn\bnp\bpu\but\bt
- Redirecting input opens the file whose name results from the expansion
- of _\bw_\bo_\br_\bd for reading on file descriptor _\bn, or the standard input (file
- descriptor 0) if _\bn is not specified.
-
- The general format for redirecting input is:
-
- [_\bn]<\b<_\bw_\bo_\br_\bd
-
- R\bRe\bed\bdi\bir\bre\bec\bct\bti\bin\bng\bg O\bOu\but\btp\bpu\but\bt
- Redirecting output opens the file whose name results from the expansion
- of _\bw_\bo_\br_\bd for writing on file descriptor _\bn, or the standard output (file
- descriptor 1) if _\bn is not specified. If the file does not exist it is
- created; if it does exist it is truncated to zero size.
-
- The general format for redirecting output is:
-
- [_\bn]>\b>_\bw_\bo_\br_\bd
-
- If the redirection operator is >\b>, and the n\bno\boc\bcl\blo\bob\bbb\bbe\ber\br option to the s\bse\bet\bt
- builtin command has been enabled, the redirection fails if the file
- whose name results from the expansion of _\bw_\bo_\br_\bd exists and is a regular
- file. If the redirection operator is >\b>|\b|, or the redirection operator
- is >\b> and the n\bno\boc\bcl\blo\bob\bbb\bbe\ber\br option to the s\bse\bet\bt builtin is not enabled, b\bba\bas\bsh\bh
- attempts the redirection even if the file named by _\bw_\bo_\br_\bd exists.
-
- A\bAp\bpp\bpe\ben\bnd\bdi\bin\bng\bg R\bRe\bed\bdi\bir\bre\bec\bct\bte\bed\bd O\bOu\but\btp\bpu\but\bt
- Redirecting output in this fashion opens the file whose name results
- from the expansion of _\bw_\bo_\br_\bd for appending on file descriptor _\bn, or the
- standard output (file descriptor 1) if _\bn is not specified. If the file
- does not exist it is created.
-
- The general format for appending output is:
-
- [_\bn]>\b>>\b>_\bw_\bo_\br_\bd
-
- R\bRe\bed\bdi\bir\bre\bec\bct\bti\bin\bng\bg S\bSt\bta\ban\bnd\bda\bar\brd\bd O\bOu\but\btp\bpu\but\bt a\ban\bnd\bd S\bSt\bta\ban\bnd\bda\bar\brd\bd E\bEr\brr\bro\bor\br
- This construct redirects both the standard output (file descriptor 1)
- and the standard error output (file descriptor 2) to the file whose
- name is the expansion of _\bw_\bo_\br_\bd.
-
- There are two formats for redirecting standard output and standard er-
- ror:
-
- &\b&>\b>_\bw_\bo_\br_\bd
- and
- >\b>&\b&_\bw_\bo_\br_\bd
-
- Of the two forms, the first is preferred. This is semantically equiva-
- lent to
-
- >\b>_\bw_\bo_\br_\bd 2>\b>&\b&1
-
- When using the second form, _\bw_\bo_\br_\bd may not expand to a number or -\b-. If
- it does, other redirection operators apply (see D\bDu\bup\bpl\bli\bic\bca\bat\bti\bin\bng\bg F\bFi\bil\ble\be D\bDe\be-\b-
- s\bsc\bcr\bri\bip\bpt\bto\bor\brs\bs below) for compatibility reasons.
-
- A\bAp\bpp\bpe\ben\bnd\bdi\bin\bng\bg S\bSt\bta\ban\bnd\bda\bar\brd\bd O\bOu\but\btp\bpu\but\bt a\ban\bnd\bd S\bSt\bta\ban\bnd\bda\bar\brd\bd E\bEr\brr\bro\bor\br
- This construct appends both the standard output (file descriptor 1) and
- the standard error output (file descriptor 2) to the file whose name is
- the expansion of _\bw_\bo_\br_\bd.
-
- The format for appending standard output and standard error is:
-
- &\b&>\b>>\b>_\bw_\bo_\br_\bd
-
- This is semantically equivalent to
-
- >\b>>\b>_\bw_\bo_\br_\bd 2>\b>&\b&1
-
- (see D\bDu\bup\bpl\bli\bic\bca\bat\bti\bin\bng\bg F\bFi\bil\ble\be D\bDe\bes\bsc\bcr\bri\bip\bpt\bto\bor\brs\bs below).
-
- H\bHe\ber\bre\be D\bDo\boc\bcu\bum\bme\ben\bnt\bts\bs
- This type of redirection instructs the shell to read input from the
- current source until it reads a line containing only _\bd_\be_\bl_\bi_\bm_\bi_\bt_\be_\br (with no
- trailing blanks). All of the lines read up to that point then become
- the standard input (or file descriptor _\bn if _\bn is specified) for a com-
- mand.
-
- The format of here-documents is:
-
- [_\bn]<\b<<\b<[-\b-]_\bw_\bo_\br_\bd
- _\bh_\be_\br_\be_\b-_\bd_\bo_\bc_\bu_\bm_\be_\bn_\bt
- _\bd_\be_\bl_\bi_\bm_\bi_\bt_\be_\br
-
- The shell does not perform parameter and variable expansion, command
- substitution, arithmetic expansion, or pathname expansion on _\bw_\bo_\br_\bd.
-
- If any part of _\bw_\bo_\br_\bd is quoted, the _\bd_\be_\bl_\bi_\bm_\bi_\bt_\be_\br is the result of quote re-
- moval on _\bw_\bo_\br_\bd, and the lines in the here-document are not expanded. If
- _\bw_\bo_\br_\bd is unquoted, the _\bd_\be_\bl_\bi_\bm_\bi_\bt_\be_\br is _\bw_\bo_\br_\bd itself, and the here-document
- text is treated similarly to a double-quoted string: all lines of the
- here-document are subjected to parameter expansion, command substitu-
- tion, and arithmetic expansion, the character sequence \\b\<\b<n\bne\bew\bwl\bli\bin\bne\be>\b> is
- treated literally, and \\b\ must be used to quote the characters \\b\, $\b$, and
- `\b`; however, double quote characters have no special meaning.
-
- If the redirection operator is <\b<<\b<-\b-, then the shell strips all leading
- tab characters from input lines and the line containing _\bd_\be_\bl_\bi_\bm_\bi_\bt_\be_\br.
- This allows here-documents within shell scripts to be indented in a
- natural fashion.
-
- If the delimiter is not quoted, the shell treats the \\b\<\b<n\bne\bew\bwl\bli\bin\bne\be>\b> se-
- quence as a line continuation: the two lines are joined and the back-
- slash-newline is removed. This happens while reading the here-docu-
- ment, before the check for the ending delimiter, so joined lines can
- form the end delimiter.
-
- H\bHe\ber\bre\be S\bSt\btr\bri\bin\bng\bgs\bs
- A variant of here documents, the format is:
-
- [_\bn]<\b<<\b<<\b<_\bw_\bo_\br_\bd
-
- The _\bw_\bo_\br_\bd undergoes tilde expansion, parameter and variable expansion,
- command substitution, arithmetic expansion, and quote removal. Path-
- name expansion and word splitting are not performed. The result is
- supplied as a single string, with a newline appended, to the command on
- its standard input (or file descriptor _\bn if _\bn is specified).
-
- D\bDu\bup\bpl\bli\bic\bca\bat\bti\bin\bng\bg F\bFi\bil\ble\be D\bDe\bes\bsc\bcr\bri\bip\bpt\bto\bor\brs\bs
- The redirection operator
-
- [_\bn]<\b<&\b&_\bw_\bo_\br_\bd
-
- is used to duplicate input file descriptors. If _\bw_\bo_\br_\bd expands to one or
- more digits, file descriptor _\bn is made to be a copy of that file de-
- scriptor. It is a redirection error if the digits in _\bw_\bo_\br_\bd do not spec-
- ify a file descriptor open for input. If _\bw_\bo_\br_\bd evaluates to -\b-, file de-
- scriptor _\bn is closed. If _\bn is not specified, this uses the standard
- input (file descriptor 0).
-
- The operator
-
- [_\bn]>\b>&\b&_\bw_\bo_\br_\bd
-
- is used similarly to duplicate output file descriptors. If _\bn is not
- specified, this uses the standard output (file descriptor 1). It is a
- redirection error if the digits in _\bw_\bo_\br_\bd do not specify a file descrip-
- tor open for output. If _\bw_\bo_\br_\bd evaluates to -\b-, file descriptor _\bn is
- closed. As a special case, if _\bn is omitted, and _\bw_\bo_\br_\bd does not expand
- to one or more digits or -\b-, this redirects the standard output and
- standard error as described previously.
-
- M\bMo\bov\bvi\bin\bng\bg F\bFi\bil\ble\be D\bDe\bes\bsc\bcr\bri\bip\bpt\bto\bor\brs\bs
- The redirection operator
-
- [_\bn]<\b<&\b&_\bd_\bi_\bg_\bi_\bt-\b-
-
- moves the file descriptor _\bd_\bi_\bg_\bi_\bt to file descriptor _\bn, or the standard
- input (file descriptor 0) if _\bn is not specified. _\bd_\bi_\bg_\bi_\bt is closed after
- being duplicated to _\bn.
-
- Similarly, the redirection operator
-
- [_\bn]>\b>&\b&_\bd_\bi_\bg_\bi_\bt-\b-
-
- moves the file descriptor _\bd_\bi_\bg_\bi_\bt to file descriptor _\bn, or the standard
- output (file descriptor 1) if _\bn is not specified.
-
- O\bOp\bpe\ben\bni\bin\bng\bg F\bFi\bil\ble\be D\bDe\bes\bsc\bcr\bri\bip\bpt\bto\bor\brs\bs f\bfo\bor\br R\bRe\bea\bad\bdi\bin\bng\bg a\ban\bnd\bd W\bWr\bri\bit\bti\bin\bng\bg
- The redirection operator
-
- [_\bn]<\b<>\b>_\bw_\bo_\br_\bd
-
- opens the file whose name is the expansion of _\bw_\bo_\br_\bd for both reading and
- writing on file descriptor _\bn, or on file descriptor 0 if _\bn is not spec-
- ified. If the file does not exist, it is created.
-
-A\bAL\bLI\bIA\bAS\bSE\bES\bS
- _\bA_\bl_\bi_\ba_\bs_\be_\bs allow a string to be substituted for a word that is in a posi-
- tion in the input where it can be the first word of a simple command.
- Aliases have names and corresponding values that are set and unset us-
- ing the a\bal\bli\bia\bas\bs and u\bun\bna\bal\bli\bia\bas\bs builtin commands (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).
-
- If the shell reads an unquoted word in the right position, it checks
- the word to see if it matches an alias name. If it matches, the shell
- replaces the word with the alias value, and reads that value as if it
- had been read instead of the word. The shell doesn't look at any char-
- acters following the word before attempting alias substitution.
-
- The characters /\b/, $\b$, `\b`, and =\b= and any of the shell _\bm_\be_\bt_\ba_\bc_\bh_\ba_\br_\ba_\bc_\bt_\be_\br_\bs or
- quoting characters listed above may not appear in an alias name. The
- replacement text may contain any valid shell input, including shell
- metacharacters. The first word of the replacement text is tested for
- aliases, but a word that is identical to an alias being expanded is not
- expanded a second time. This means that one may alias l\bls\bs to l\bls\bs -\b-F\bF, for
- instance, and b\bba\bas\bsh\bh does not try to recursively expand the replacement
- text.
-
- If the last character of the alias value is a _\bb_\bl_\ba_\bn_\bk, the shell checks
- the next command word following the alias for alias expansion.
-
- Aliases are created and listed with the a\bal\bli\bia\bas\bs command, and removed with
- the u\bun\bna\bal\bli\bia\bas\bs command.
-
- There is no mechanism for using arguments in the replacement text. If
- arguments are needed, use a shell function (see F\bFU\bUN\bNC\bCT\bTI\bIO\bON\bNS\bS below) in-
- stead.
-
- Aliases are not expanded when the shell is not interactive, unless the
- e\bex\bxp\bpa\ban\bnd\bd_\b_a\bal\bli\bia\bas\bse\bes\bs shell option is set using s\bsh\bho\bop\bpt\bt (see the description of
- s\bsh\bho\bop\bpt\bt under 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 rules concerning the definition and use of aliases are somewhat
- confusing. B\bBa\bas\bsh\bh always reads at least one complete line of input, and
- all lines that make up a compound command, before executing any of the
- commands on that line or the compound command. Aliases are expanded
- when a command is read, not when it is executed. Therefore, an alias
- definition appearing on the same line as another command does not take
- effect until the shell reads the next line of input, and an alias defi-
- nition in a compound command does not take effect until the shell
- parses and executes the entire compound command. The commands follow-
- ing the alias definition on that line, or in the rest of a compound
- command, are not affected by the new alias. This behavior is also an
- issue when functions are executed. Aliases are expanded when a func-
- tion definition is read, not when the function is executed, because a
- function definition is itself a command. As a consequence, aliases de-
- fined in a function are not available until after that function is exe-
- cuted. To be safe, always put alias definitions on a separate line,
- and do not use a\bal\bli\bia\bas\bs in compound commands.
-
- For almost every purpose, shell functions are preferable to aliases.
-
-F\bFU\bUN\bNC\bCT\bTI\bIO\bON\bNS\bS
- A shell function, defined as described above under S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR,
- stores a series of commands for later execution. When the name of a
- shell function is used as a simple command name, the shell executes the
- list of commands associated with that function name. Functions are ex-
- ecuted in the context of the calling shell; there is no new process
- created to interpret them (contrast this with the execution of a shell
- script).
-
- When a function is executed, the arguments to the function become the
- positional parameters during its execution. The special parameter #\b# is
- updated to reflect the new positional parameters. Special parameter 0\b0
- is unchanged. The first element of the F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE variable is set to the
- name of the function while the function is executing.
-
- All other aspects of the shell execution environment are identical be-
- tween a function and its caller with these exceptions: the D\bDE\bEB\bBU\bUG\bG and
- R\bRE\bET\bTU\bUR\bRN\bN traps (see the description of the t\btr\bra\bap\bp builtin under S\bSH\bHE\bEL\bLL\bL
- B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below) are not inherited unless the function has been
- given the t\btr\bra\bac\bce\be attribute (see the description of the d\bde\bec\bcl\bla\bar\bre\be builtin
- below) or the -\b-o\bo f\bfu\bun\bnc\bct\btr\bra\bac\bce\be shell option has been enabled with the s\bse\bet\bt
- builtin (in which case all functions inherit the D\bDE\bEB\bBU\bUG\bG and R\bRE\bET\bTU\bUR\bRN\bN
- traps), and the E\bER\bRR\bR trap is not inherited unless the -\b-o\bo e\ber\brr\brt\btr\bra\bac\bce\be shell
- option has been enabled.
-
- Variables local to the function are declared with the l\blo\boc\bca\bal\bl builtin
- command (_\bl_\bo_\bc_\ba_\bl _\bv_\ba_\br_\bi_\ba_\bb_\bl_\be_\bs). Ordinarily, variables and their values are
- shared between the function and its caller. If a variable is declared
- l\blo\boc\bca\bal\bl, the variable's visible scope is restricted to that function and
- its children (including the functions it calls).
-
- In the following description, the _\bc_\bu_\br_\br_\be_\bn_\bt _\bs_\bc_\bo_\bp_\be is a currently- execut-
- ing function. Previous scopes consist of that function's caller and so
- on, back to the "global" scope, where the shell is not executing any
- shell function. A local variable at the current scope is a variable
- declared using the l\blo\boc\bca\bal\bl or d\bde\bec\bcl\bla\bar\bre\be builtins in the function that is
- currently executing.
-
- Local variables "shadow" variables with the same name declared at pre-
- vious scopes. For instance, a local variable declared in a function
- hides variables with the same name declared at previous scopes, includ-
- ing global variables: references and assignments refer to the local
- variable, leaving the variables at previous scopes unmodified. When
- the function returns, the global variable is once again visible.
-
- The shell uses _\bd_\by_\bn_\ba_\bm_\bi_\bc _\bs_\bc_\bo_\bp_\bi_\bn_\bg to control a variable's visibility
- within functions. With dynamic scoping, visible variables and their
- values are a result of the sequence of function calls that caused exe-
- cution to reach the current function. The value of a variable that a
- function sees depends on its value within its caller, if any, whether
- that caller is the global scope or another shell function. This is
- also the value that a local variable declaration shadows, and the value
- that is restored when the function returns.
-
- For example, if a variable _\bv_\ba_\br is declared as local in function _\bf_\bu_\bn_\bc_\b1,
- and _\bf_\bu_\bn_\bc_\b1 calls another function _\bf_\bu_\bn_\bc_\b2, references to _\bv_\ba_\br made from
- within _\bf_\bu_\bn_\bc_\b2 resolve to the local variable _\bv_\ba_\br from _\bf_\bu_\bn_\bc_\b1, shadowing
- any global variable named _\bv_\ba_\br.
-
- The u\bun\bns\bse\bet\bt builtin also acts using the same dynamic scope: if a variable
- is local to the current scope, u\bun\bns\bse\bet\bt unsets it; otherwise the unset
- will refer to the variable found in any calling scope as described
- above. If a variable at the current local scope is unset, it remains
- so (appearing as unset) until it is reset in that scope or until the
- function returns. Once the function returns, any instance of the vari-
- able at a previous scope becomes visible. If the unset acts on a vari-
- able at a previous scope, any instance of a variable with that name
- that had been shadowed becomes visible (see below how the l\blo\boc\bca\bal\blv\bva\bar\br_\b_u\bun\bn-\b-
- s\bse\bet\bt shell option changes this behavior).
-
- The F\bFU\bUN\bNC\bCN\bNE\bES\bST\bT variable, if set to a numeric value greater than 0, de-
- fines a maximum function nesting level. Function invocations that ex-
- ceed the limit cause the entire command to abort.
-
- If the builtin command r\bre\bet\btu\bur\brn\bn is executed in a function, the function
- completes and execution resumes with the next command after the func-
- tion call. If r\bre\bet\btu\bur\brn\bn is supplied a numeric argument, that is the func-
- tion's return status; otherwise the function's return status is the
- exit status of the last command executed before the r\bre\bet\btu\bur\brn\bn. Any com-
- mand associated with the R\bRE\bET\bTU\bUR\bRN\bN trap is executed before execution re-
- sumes. When a function completes, the values of the positional parame-
- ters and the special parameter #\b# are restored to the values they had
- prior to the function's execution.
-
- The -\b-f\bf option to the d\bde\bec\bcl\bla\bar\bre\be or t\bty\byp\bpe\bes\bse\bet\bt builtin commands lists function
- names and definitions. The -\b-F\bF option to d\bde\bec\bcl\bla\bar\bre\be or t\bty\byp\bpe\bes\bse\bet\bt lists the
- function names only (and optionally the source file and line number, if
- the e\bex\bxt\btd\bde\beb\bbu\bug\bg shell option is enabled). Functions may be exported so
- that child shell processes (those created when executing a separate
- shell invocation) automatically have them defined with the -\b-f\bf option to
- the e\bex\bxp\bpo\bor\brt\bt builtin. The -\b-f\bf option to the u\bun\bns\bse\bet\bt builtin deletes a func-
- tion definition.
-
- Functions may be recursive. The F\bFU\bUN\bNC\bCN\bNE\bES\bST\bT variable may be used to limit
- the depth of the function call stack and restrict the number of func-
- tion invocations. By default, b\bba\bas\bsh\bh imposes no limit on the number of
- recursive calls.
-
-A\bAR\bRI\bIT\bTH\bHM\bME\bET\bTI\bIC\bC E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN
- The shell allows arithmetic expressions to be evaluated, under certain
- circumstances (see the l\ble\bet\bt and d\bde\bec\bcl\bla\bar\bre\be builtin commands, the (\b((\b( com-
- pound command, the arithmetic f\bfo\bor\br command, the [\b[[\b[ conditional command,
- and A\bAr\bri\bit\bth\bhm\bme\bet\bti\bic\bc E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn).
-
- Evaluation is done in the largest fixed-width integers available, with
- no check for overflow, though division by 0 is trapped and flagged as
- an error. The operators and their precedence, associativity, and val-
- ues are the same as in the C language. The following list of operators
- is grouped into levels of equal-precedence operators. The levels are
- listed in order of decreasing precedence.
-
- _\bi_\bd+\b++\b+ _\bi_\bd-\b--\b-
- variable post-increment and post-decrement
- +\b++\b+_\bi_\bd -\b--\b-_\bi_\bd
- variable pre-increment and pre-decrement
- -\b- +\b+ unary minus and plus
- !\b! ~\b~ logical and bitwise negation
- *\b**\b* exponentiation
- *\b* /\b/ %\b% multiplication, division, remainder
- +\b+ -\b- addition, subtraction
- <\b<<\b< >\b>>\b> left and right bitwise shifts
- <\b<=\b= >\b>=\b= <\b< >\b>
- comparison
- =\b==\b= !\b!=\b= equality and inequality
- &\b& bitwise AND
- ^\b^ bitwise exclusive OR
- |\b| bitwise OR
- &\b&&\b& logical AND
- |\b||\b| logical OR
- _\be_\bx_\bp_\br?\b?_\be_\bx_\bp_\br:\b:_\be_\bx_\bp_\br
- conditional operator
- =\b= *\b*=\b= /\b/=\b= %\b%=\b= +\b+=\b= -\b-=\b= <\b<<\b<=\b= >\b>>\b>=\b= &\b&=\b= ^\b^=\b= |\b|=\b=
- assignment
- _\be_\bx_\bp_\br_\b1 ,\b, _\be_\bx_\bp_\br_\b2
- comma
-
- Shell variables are allowed as operands; parameter expansion is per-
- formed before the expression is evaluated. Within an expression, shell
- variables may also be referenced by name without using the parameter
- expansion syntax. This means you can use "x", where _\bx is a shell vari-
- able name, in an arithmetic expression, and the shell will evaluate its
- value as an expression and use the result. A shell variable that is
- null or unset evaluates to 0 when referenced by name in an expression.
-
- The value of a variable is evaluated as an arithmetic expression when
- it is referenced, or when a variable which has been given the _\bi_\bn_\bt_\be_\bg_\be_\br
- attribute using d\bde\bec\bcl\bla\bar\bre\be -\b-i\bi is assigned a value. A null value evaluates
- to 0. A shell variable need not have its _\bi_\bn_\bt_\be_\bg_\be_\br attribute enabled to
- be used in an expression.
-
- Integer constants follow the C language definition, without suffixes or
- character constants. Constants with a leading 0 are interpreted as oc-
- tal numbers. A leading 0x or 0X denotes hexadecimal. Otherwise, num-
- bers take the form [_\bb_\ba_\bs_\be_\b#]n, where the optional _\bb_\ba_\bs_\be is a decimal num-
- ber between 2 and 64 representing the arithmetic base, and _\bn is a num-
- ber in that base. If _\bb_\ba_\bs_\be_\b# is omitted, then base 10 is used. When
- specifying _\bn, if a non-digit is required, the digits greater than 9 are
- represented by the lowercase letters, the uppercase letters, @, and _,
- in that order. If _\bb_\ba_\bs_\be is less than or equal to 36, lowercase and up-
- percase letters may be used interchangeably to represent numbers be-
- tween 10 and 35.
-
- Operators are evaluated in precedence order. Sub-expressions in paren-
- theses are evaluated first and may override the precedence rules above.
-
-C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS
- Conditional expressions are used by the [\b[[\b[ compound command and the
- t\bte\bes\bst\bt and [\b[ builtin commands to test file attributes and perform string
- and arithmetic comparisons. The t\bte\bes\bst\bt and [\b[ commands determine their
- behavior based on the number of arguments; see the descriptions of
- those commands for any other command-specific actions.
-
- Expressions are formed from the unary or binary primaries listed below.
- Unary expressions are often used to examine the status of a file or
- shell variable. Binary operators are used for string, numeric, and
- file attribute comparisons.
-
- B\bBa\bas\bsh\bh handles several filenames specially when they are used in expres-
- sions. If the operating system on which b\bba\bas\bsh\bh is running provides these
- special files, bash will use them; otherwise it will emulate them in-
- ternally with this behavior: If any _\bf_\bi_\bl_\be argument to one of the pri-
- maries is of the form _\b/_\bd_\be_\bv_\b/_\bf_\bd_\b/_\bn, then b\bba\bas\bsh\bh checks file descriptor _\bn.
- If the _\bf_\bi_\bl_\be argument to one of the primaries is one of _\b/_\bd_\be_\bv_\b/_\bs_\bt_\bd_\bi_\bn,
- _\b/_\bd_\be_\bv_\b/_\bs_\bt_\bd_\bo_\bu_\bt, or _\b/_\bd_\be_\bv_\b/_\bs_\bt_\bd_\be_\br_\br, b\bba\bas\bsh\bh checks file descriptor 0, 1, or 2,
- respectively.
-
- Unless otherwise specified, primaries that operate on files follow sym-
- bolic links and operate on the target of the link, rather than the link
- itself.
-
- When used with [\b[[\b[, or when the shell is in posix mode, the <\b< and >\b> op-
- erators sort lexicographically using the current locale. When the
- shell is not in posix mode, the t\bte\bes\bst\bt command sorts using ASCII order-
- ing.
-
- -\b-a\ba _\bf_\bi_\bl_\be
- True if _\bf_\bi_\bl_\be exists.
- -\b-b\bb _\bf_\bi_\bl_\be
- True if _\bf_\bi_\bl_\be exists and is a block special file.
- -\b-c\bc _\bf_\bi_\bl_\be
- True if _\bf_\bi_\bl_\be exists and is a character special file.
- -\b-d\bd _\bf_\bi_\bl_\be
- True if _\bf_\bi_\bl_\be exists and is a directory.
- -\b-e\be _\bf_\bi_\bl_\be
- True if _\bf_\bi_\bl_\be exists.
- -\b-f\bf _\bf_\bi_\bl_\be
- True if _\bf_\bi_\bl_\be exists and is a regular file.
- -\b-g\bg _\bf_\bi_\bl_\be
- True if _\bf_\bi_\bl_\be exists and is set-group-id.
- -\b-h\bh _\bf_\bi_\bl_\be
- True if _\bf_\bi_\bl_\be exists and is a symbolic link.
- -\b-k\bk _\bf_\bi_\bl_\be
- True if _\bf_\bi_\bl_\be exists and its "sticky" bit is set.
- -\b-p\bp _\bf_\bi_\bl_\be
- True if _\bf_\bi_\bl_\be exists and is a named pipe (FIFO).
- -\b-r\br _\bf_\bi_\bl_\be
- True if _\bf_\bi_\bl_\be exists and is readable.
- -\b-s\bs _\bf_\bi_\bl_\be
- True if _\bf_\bi_\bl_\be exists and has a size greater than zero.
- -\b-t\bt _\bf_\bd True if file descriptor _\bf_\bd is open and refers to a terminal.
- -\b-u\bu _\bf_\bi_\bl_\be
- True if _\bf_\bi_\bl_\be exists and its set-user-id bit is set.
- -\b-w\bw _\bf_\bi_\bl_\be
- True if _\bf_\bi_\bl_\be exists and is writable.
- -\b-x\bx _\bf_\bi_\bl_\be
- True if _\bf_\bi_\bl_\be exists and is executable.
- -\b-G\bG _\bf_\bi_\bl_\be
- True if _\bf_\bi_\bl_\be exists and is owned by the effective group id.
- -\b-L\bL _\bf_\bi_\bl_\be
- True if _\bf_\bi_\bl_\be exists and is a symbolic link.
- -\b-N\bN _\bf_\bi_\bl_\be
- True if _\bf_\bi_\bl_\be exists and has been modified since it was last ac-
- cessed.
- -\b-O\bO _\bf_\bi_\bl_\be
- True if _\bf_\bi_\bl_\be exists and is owned by the effective user id.
- -\b-S\bS _\bf_\bi_\bl_\be
- True if _\bf_\bi_\bl_\be exists and is a socket.
- -\b-o\bo _\bo_\bp_\bt_\bn_\ba_\bm_\be
- True if the shell option _\bo_\bp_\bt_\bn_\ba_\bm_\be is enabled. See the list of
- options under the description of the -\b-o\bo option to the s\bse\bet\bt
- builtin below.
- -\b-v\bv _\bv_\ba_\br_\bn_\ba_\bm_\be
- True if the shell variable _\bv_\ba_\br_\bn_\ba_\bm_\be is set (has been assigned a
- value). If _\bv_\ba_\br_\bn_\ba_\bm_\be is an indexed array variable name sub-
- scripted by _\b@ or _\b*, this returns true if the array has any set
- elements. If _\bv_\ba_\br_\bn_\ba_\bm_\be is an associative array variable name sub-
- scripted by _\b@ or _\b*, this returns true if an element with that
- key is set.
- -\b-R\bR _\bv_\ba_\br_\bn_\ba_\bm_\be
- True if the shell variable _\bv_\ba_\br_\bn_\ba_\bm_\be is set and is a name refer-
- ence.
- -\b-z\bz _\bs_\bt_\br_\bi_\bn_\bg
- True if the length of _\bs_\bt_\br_\bi_\bn_\bg is zero.
- _\bs_\bt_\br_\bi_\bn_\bg
- -\b-n\bn _\bs_\bt_\br_\bi_\bn_\bg
- True if the length of _\bs_\bt_\br_\bi_\bn_\bg is non-zero.
-
- _\bs_\bt_\br_\bi_\bn_\bg_\b1 =\b==\b= _\bs_\bt_\br_\bi_\bn_\bg_\b2
- _\bs_\bt_\br_\bi_\bn_\bg_\b1 =\b= _\bs_\bt_\br_\bi_\bn_\bg_\b2
- True if the strings are equal. =\b= should be used with the t\bte\bes\bst\bt
- command for POSIX conformance. When used with the [\b[[\b[ command,
- this performs pattern matching as described above (C\bCo\bom\bmp\bpo\bou\bun\bnd\bd C\bCo\bom\bm-\b-
- m\bma\ban\bnd\bds\bs).
- _\bs_\bt_\br_\bi_\bn_\bg_\b1 !\b!=\b= _\bs_\bt_\br_\bi_\bn_\bg_\b2
- True if the strings are not equal.
- _\bs_\bt_\br_\bi_\bn_\bg_\b1 <\b< _\bs_\bt_\br_\bi_\bn_\bg_\b2
- True if _\bs_\bt_\br_\bi_\bn_\bg_\b1 sorts before _\bs_\bt_\br_\bi_\bn_\bg_\b2 lexicographically.
- _\bs_\bt_\br_\bi_\bn_\bg_\b1 >\b> _\bs_\bt_\br_\bi_\bn_\bg_\b2
- True if _\bs_\bt_\br_\bi_\bn_\bg_\b1 sorts after _\bs_\bt_\br_\bi_\bn_\bg_\b2 lexicographically.
-
- _\bf_\bi_\bl_\be_\b1 -\b-e\bef\bf _\bf_\bi_\bl_\be_\b2
- True if _\bf_\bi_\bl_\be_\b1 and _\bf_\bi_\bl_\be_\b2 refer to the same device and inode num-
- bers.
- _\bf_\bi_\bl_\be_\b1 -n\bnt\bt _\bf_\bi_\bl_\be_\b2
- True if _\bf_\bi_\bl_\be_\b1 is newer (according to modification date) than
- _\bf_\bi_\bl_\be_\b2, or if _\bf_\bi_\bl_\be_\b1 exists and _\bf_\bi_\bl_\be_\b2 does not.
- _\bf_\bi_\bl_\be_\b1 -o\bot\bt _\bf_\bi_\bl_\be_\b2
- True if _\bf_\bi_\bl_\be_\b1 is older than _\bf_\bi_\bl_\be_\b2, or if _\bf_\bi_\bl_\be_\b2 exists and _\bf_\bi_\bl_\be_\b1
- does not.
-
- _\ba_\br_\bg_\b1 O\bOP\bP _\ba_\br_\bg_\b2
- O\bOP\bP is one of -\b-e\beq\bq, -\b-n\bne\be, -\b-l\blt\bt, -\b-l\ble\be, -\b-g\bgt\bt, or -\b-g\bge\be. These arithmetic
- binary operators return true if _\ba_\br_\bg_\b1 is equal to, not equal to,
- less than, less than or equal to, greater than, or greater than
- or equal to _\ba_\br_\bg_\b2, respectively. _\ba_\br_\bg_\b1 and _\ba_\br_\bg_\b2 may be positive
- or negative integers. When used with the [\b[[\b[ command, _\ba_\br_\bg_\b1 and
- _\ba_\br_\bg_\b2 are evaluated as 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 above). Since the expansions the [\b[[\b[ command performs
- on _\ba_\br_\bg_\b1 and _\ba_\br_\bg_\b2 can potentially result in empty strings, arith-
- metic expression evaluation treats those as expressions that
- evaluate to 0.
-
-S\bSI\bIM\bMP\bPL\bLE\bE C\bCO\bOM\bMM\bMA\bAN\bND\bD E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN
- When the shell executes a simple command, it performs the following ex-
- pansions, assignments, and redirections, from left to right, in the
- following order.
-
- 1. The words that the parser has marked as variable assignments
- (those preceding the command name) and redirections are saved
- for later processing.
-
- 2. The words that are not variable assignments or redirections are
- expanded. If any words remain after expansion, the first word
- is taken to be the name of the command and the remaining words
- are the arguments.
-
- 3. Redirections are performed as described above under R\bRE\bED\bDI\bIR\bRE\bEC\bCT\bTI\bIO\bON\bN.
-
- 4. The text after the =\b= in each variable assignment undergoes tilde
- expansion, parameter expansion, command substitution, arithmetic
- expansion, and quote removal before being assigned to the vari-
- able.
-
- If no command name results, the variable assignments affect the current
- shell environment. In the case of such a command (one that consists
- only of assignment statements and redirections), assignment statements
- are performed before redirections. Otherwise, the variables are added
- to the environment of the executed command and do not affect the cur-
- rent shell environment. If any of the assignments attempts to assign a
- value to a readonly variable, an error occurs, and the command exits
- with a non-zero status.
-
- If no command name results, redirections are performed, but do not af-
- fect the current shell environment. A redirection error causes the
- command to exit with a non-zero status.
-
- If there is a command name left after expansion, execution proceeds as
- described below. Otherwise, the command exits. If one of the expan-
- sions contained a command substitution, the exit status of the command
- is the exit status of the last command substitution performed. If
- there were no command substitutions, the command exits with a zero sta-
- tus.
-
-C\bCO\bOM\bMM\bMA\bAN\bND\bD E\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\bN
- After a command has been split into words, if it results in a simple
- command and an optional list of arguments, the shell performs the fol-
- lowing actions.
-
- If the command name contains no slashes, the shell attempts to locate
- it. If there exists a shell function by that name, that function is
- invoked as described above in F\bFU\bUN\bNC\bCT\bTI\bIO\bON\bNS\bS. If the name does not match a
- function, the shell searches for it in the list of shell builtins. If
- a match is found, that builtin is invoked.
-
- If the name is neither a shell function nor a builtin, and contains no
- slashes, b\bba\bas\bsh\bh searches each element of the P\bPA\bAT\bTH\bH for a directory con-
- taining an executable file by that name. B\bBa\bas\bsh\bh uses a hash table to re-
- member the full pathnames of executable files (see h\bha\bas\bsh\bh under S\bSH\bHE\bEL\bLL\bL
- B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below). Bash performs a full search of the directo-
- ries in P\bPA\bAT\bTH\bH only if the command is not found in the hash table. If
- the search is unsuccessful, the shell searches for a defined shell
- function named c\bco\bom\bmm\bma\ban\bnd\bd_\b_n\bno\bot\bt_\b_f\bfo\bou\bun\bnd\bd_\b_h\bha\ban\bnd\bdl\ble\be. If that function exists, it
- is invoked in a separate execution environment with the original com-
- mand and the original command's arguments as its arguments, and the
- function's exit status becomes the exit status of that subshell. If
- that function is not defined, the shell prints an error message and re-
- turns an exit status of 127.
-
- If the search is successful, or if the command name contains one or
- more slashes, the shell executes the named program in a separate execu-
- tion environment. Argument 0 is set to the name given, and the remain-
- ing arguments to the command are set to the arguments given, if any.
-
- If this execution fails because the file is not in executable format,
- and the file is not a directory, it is assumed to be a _\bs_\bh_\be_\bl_\bl _\bs_\bc_\br_\bi_\bp_\bt, a
- file containing shell commands, and the shell creates a new instance of
- itself to execute it. Bash tries to determine whether the file is a
- text file or a binary, and will not execute files it determines to be
- binaries. This subshell reinitializes itself, so that the effect is as
- if a new shell had been invoked to handle the script, with the excep-
- tion that the locations of commands remembered by the parent (see h\bha\bas\bsh\bh
- below under S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS are retained by the child.
-
- If the program is a file beginning with #\b#!\b!, the remainder of the first
- line specifies an interpreter for the program. The shell executes the
- specified interpreter on operating systems that do not handle this exe-
- cutable format themselves. The arguments to the interpreter consist of
- a single optional argument following the interpreter name on the first
- line of the program, followed by the name of the program, followed by
- the command arguments, if any.
-
-C\bCO\bOM\bMM\bMA\bAN\bND\bD E\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\bN E\bEN\bNV\bVI\bIR\bRO\bON\bNM\bME\bEN\bNT\bT
- The shell has an _\be_\bx_\be_\bc_\bu_\bt_\bi_\bo_\bn _\be_\bn_\bv_\bi_\br_\bo_\bn_\bm_\be_\bn_\bt, which consists of the follow-
- ing:
-
- +\bo Open files inherited by the shell at invocation, as modified by
- redirections supplied to the e\bex\bxe\bec\bc builtin.
-
- +\bo The current working directory as set by c\bcd\bd, p\bpu\bus\bsh\bhd\bd, or p\bpo\bop\bpd\bd, or
- inherited by the shell at invocation.
-
- +\bo The file creation mode mask as set by u\bum\bma\bas\bsk\bk or inherited from
- the shell's parent.
-
- +\bo Current traps set by t\btr\bra\bap\bp.
-
- +\bo Shell parameters that are set by variable assignment or with s\bse\bet\bt
- or inherited from the shell's parent in the environment.
-
- +\bo Shell functions defined during execution or inherited from the
- shell's parent in the environment.
-
- +\bo Options enabled at invocation (either by default or with com-
- mand-line arguments) or by s\bse\bet\bt.
-
- +\bo Options enabled by s\bsh\bho\bop\bpt\bt.
-
- +\bo Shell aliases defined with a\bal\bli\bia\bas\bs.
-
- +\bo Various process IDs, including those of background jobs, the
- value of $\b$$\b$, and the value of P\bPP\bPI\bID\bD.
-
- When a simple command other than a builtin or shell function is to be
- executed, it is invoked in a separate execution environment that con-
- sists of the following. Unless otherwise noted, the values are inher-
- ited from the shell.
-
- +\bo The shell's open files, plus any modifications and additions
- specified by redirections to the command.
-
- +\bo The current working directory.
-
- +\bo The file creation mode mask.
-
- +\bo Shell variables and functions marked for export, along with
- variables exported for the command, passed in the environment.
-
- +\bo Traps caught by the shell are reset to the values inherited from
- the shell's parent, and traps ignored by the shell are ignored.
-
- A command invoked in this separate environment cannot affect the
- shell's execution environment.
-
- A _\bs_\bu_\bb_\bs_\bh_\be_\bl_\bl is a copy of the shell process.
-
- Command substitution, commands grouped with parentheses, and asynchro-
- nous commands are invoked in a subshell environment that is a duplicate
- of the shell environment, except that traps caught by the shell are re-
- set to the values that the shell inherited from its parent at invoca-
- tion. Builtin commands that are invoked as part of a pipeline, except
- possibly in the last element depending on the value of the l\bla\bas\bst\btp\bpi\bip\bpe\be
- shell option, are also executed in a subshell environment. Changes
- made to the subshell environment cannot affect the shell's execution
- environment.
-
- When the shell is in posix mode, subshells spawned to execute command
- substitutions inherit the value of the -\b-e\be option from their parent
- shell. When not in posix mode, b\bba\bas\bsh\bh clears the -\b-e\be option in such sub-
- shells. See the description of the i\bin\bnh\bhe\ber\bri\bit\bt_\b_e\ber\brr\bre\bex\bxi\bit\bt shell option below
- for how to control this behavior when not in posix mode.
-
- If a command is followed by a &\b& and job control is not active, the de-
- fault standard input for the command is the empty file _\b/_\bd_\be_\bv_\b/_\bn_\bu_\bl_\bl. Oth-
- erwise, the invoked command inherits the file descriptors of the call-
- ing shell as modified by redirections.
-
-E\bEN\bNV\bVI\bIR\bRO\bON\bNM\bME\bEN\bNT\bT
- When a program is invoked it is given an array of strings called the
- _\be_\bn_\bv_\bi_\br_\bo_\bn_\bm_\be_\bn_\bt. This is a list of _\bn_\ba_\bm_\be-_\bv_\ba_\bl_\bu_\be pairs, of the form
- _\bn_\ba_\bm_\be=_\bv_\ba_\bl_\bu_\be.
-
- The shell provides several ways to manipulate the environment. On in-
- vocation, the shell scans its own environment and creates a parameter
- for each name found, automatically marking it for _\be_\bx_\bp_\bo_\br_\bt to child
- processes. Executed commands inherit the environment. The e\bex\bxp\bpo\bor\brt\bt, d\bde\be-\b-
- c\bcl\bla\bar\bre\be -\b-x\bx, and u\bun\bns\bse\bet\bt commands modify the environment by adding and
- deleting parameters and functions. If the value of a parameter in the
- environment is modified, the new value automatically becomes part of
- the environment, replacing the old. The environment inherited by any
- executed command consists of the shell's initial environment, whose
- values may be modified in the shell, less any pairs removed by the u\bun\bn-\b-
- s\bse\bet\bt or e\bex\bxp\bpo\bor\brt\bt -\b-n\bn commands, plus any additions via the e\bex\bxp\bpo\bor\brt\bt and d\bde\be-\b-
- c\bcl\bla\bar\bre\be -\b-x\bx commands.
-
- If any parameter assignments, as described above in P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS, appear
- before a _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd, the variable assignments are part of that com-
- mand's environment for as long as it executes. These assignment state-
- ments affect only the environment seen by that command. If these as-
- signments precede a call to a shell function, the variables are local
- to the function and exported to that function's children.
-
- If the -\b-k\bk option is set (see the s\bse\bet\bt builtin command below), then _\ba_\bl_\bl
- parameter assignments are placed in the environment for a command, not
- just those that precede the command name.
-
- When b\bba\bas\bsh\bh invokes an external command, the variable _\b_ is set to the
- full pathname of the command and passed to that command in its environ-
- ment.
-
-E\bEX\bXI\bIT\bT S\bST\bTA\bAT\bTU\bUS\bS
- The exit status of an executed command is the value returned by the
- _\bw_\ba_\bi_\bt_\bp_\bi_\bd system call or equivalent function. Exit statuses fall between
- 0 and 255, though, as explained below, the shell may use values above
- 125 specially. Exit statuses from shell builtins and compound commands
- are also limited to this range. Under certain circumstances, the shell
- will use special values to indicate specific failure modes.
-
- For the shell's purposes, a command which exits with a zero exit status
- has succeeded. So while an exit status of zero indicates success, a
- non-zero exit status indicates failure.
-
- When a command terminates on a fatal signal _\bN, b\bba\bas\bsh\bh uses the value of
- 128+_\bN as the exit status.
-
- If a command is not found, the child process created to execute it re-
- turns a status of 127. If a command is found but is not executable,
- the return status is 126.
-
- If a command fails because of an error during expansion or redirection,
- the exit status is greater than zero.
-
- Shell builtin commands return a status of 0 (_\bt_\br_\bu_\be) if successful, and
- non-zero (_\bf_\ba_\bl_\bs_\be) if an error occurs while they execute. All builtins
- return an exit status of 2 to indicate incorrect usage, generally in-
- valid options or missing arguments.
-
- The exit status of the last command is available in the special parame-
- ter $?.
-
- B\bBa\bas\bsh\bh itself returns the exit status of the last command executed, un-
- less a syntax error occurs, in which case it exits with a non-zero
- value. See also the e\bex\bxi\bit\bt builtin command below.
-
-S\bSI\bIG\bGN\bNA\bAL\bLS\bS
- When b\bba\bas\bsh\bh is interactive, in the absence of any traps, it ignores
- S\bSI\bIG\bGT\bTE\bER\bRM\bM (so that k\bki\bil\bll\bl 0\b0 does not kill an interactive shell), and
- catches and handles S\bSI\bIG\bGI\bIN\bNT\bT (so that the w\bwa\bai\bit\bt builtin is interruptible).
- When b\bba\bas\bsh\bh receives S\bSI\bIG\bGI\bIN\bNT\bT, it breaks out of any executing loops. In
- all cases, b\bba\bas\bsh\bh ignores S\bSI\bIG\bGQ\bQU\bUI\bIT\bT. If job control is in effect, b\bba\bas\bsh\bh ig-
- nores S\bSI\bIG\bGT\bTT\bTI\bIN\bN, S\bSI\bIG\bGT\bTT\bTO\bOU\bU, and S\bSI\bIG\bGT\bTS\bST\bTP\bP.
-
- The t\btr\bra\bap\bp builtin modifies the shell's signal handling, as described be-
- low.
-
- Non-builtin commands b\bba\bas\bsh\bh executes have signal handlers set to the val-
- ues inherited by the shell from its parent, unless t\btr\bra\bap\bp sets them to be
- ignored, in which case the child process will ignore them as well.
- When job control is not in effect, asynchronous commands ignore S\bSI\bIG\bGI\bIN\bNT\bT
- and S\bSI\bIG\bGQ\bQU\bUI\bIT\bT in addition to these inherited handlers. Commands run as a
- result of command substitution ignore the keyboard-generated job con-
- trol signals S\bSI\bIG\bGT\bTT\bTI\bIN\bN, S\bSI\bIG\bGT\bTT\bTO\bOU\bU, and S\bSI\bIG\bGT\bTS\bST\bTP\bP.
-
- The shell exits by default upon receipt of a S\bSI\bIG\bGH\bHU\bUP\bP. Before exiting,
- an interactive shell resends the S\bSI\bIG\bGH\bHU\bUP\bP to all jobs, running or
- stopped. The shell sends S\bSI\bIG\bGC\bCO\bON\bNT\bT to stopped jobs to ensure that they
- receive the S\bSI\bIG\bGH\bHU\bUP\bP (see J\bJO\bOB\bB C\bCO\bON\bNT\bTR\bRO\bOL\bL below for more information about
- running and stopped jobs). To prevent the shell from sending the sig-
- nal to a particular job, remove it from the jobs table with the d\bdi\bis\bso\bow\bwn\bn
- builtin (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) or mark it not to receive
- S\bSI\bIG\bGH\bHU\bUP\bP using d\bdi\bis\bso\bow\bwn\bn -\b-h\bh.
-
- If the h\bhu\bup\bpo\bon\bne\bex\bxi\bit\bt shell option has been set using s\bsh\bho\bop\bpt\bt, b\bba\bas\bsh\bh sends a
- S\bSI\bIG\bGH\bHU\bUP\bP to all jobs when an interactive login shell exits.
-
- If b\bba\bas\bsh\bh is waiting for a command to complete and receives a signal for
- which a trap has been set, it will not execute the trap until the com-
- mand completes. If b\bba\bas\bsh\bh is waiting for an asynchronous command via the
- w\bwa\bai\bit\bt builtin, and it receives a signal for which a trap has been set,
- the w\bwa\bai\bit\bt builtin will return immediately with an exit status greater
- than 128, immediately after which the shell executes the trap.
-
- When job control is not enabled, and b\bba\bas\bsh\bh is waiting for a foreground
- command to complete, the shell receives keyboard-generated signals such
- as S\bSI\bIG\bGI\bIN\bNT\bT (usually generated by ^\b^C\bC) that users commonly intend to send
- to that command. This happens because the shell and the command are in
- the same process group as the terminal, and ^\b^C\bC sends S\bSI\bIG\bGI\bIN\bNT\bT to all
- processes in that process group. Since b\bba\bas\bsh\bh does not enable job con-
- trol by default when the shell is not interactive, this scenario is
- most common in non-interactive shells.
-
- When job control is enabled, and b\bba\bas\bsh\bh is waiting for a foreground com-
- mand to complete, the shell does not receive keyboard-generated sig-
- nals, because it is not in the same process group as the terminal.
- This scenario is most common in interactive shells, where b\bba\bas\bsh\bh attempts
- to enable job control by default. See J\bJO\bOB\bB C\bCO\bON\bNT\bTR\bRO\bOL\bL below for more in-
- formation about process groups.
-
- When job control is not enabled, and b\bba\bas\bsh\bh receives S\bSI\bIG\bGI\bIN\bNT\bT while waiting
- for a foreground command, it waits until that foreground command termi-
- nates and then decides what to do about the S\bSI\bIG\bGI\bIN\bNT\bT:
-
- 1. If the command terminates due to the S\bSI\bIG\bGI\bIN\bNT\bT, b\bba\bas\bsh\bh concludes that
- the user meant to send the S\bSI\bIG\bGI\bIN\bNT\bT to the shell as well, and acts
- on the S\bSI\bIG\bGI\bIN\bNT\bT (e.g., by running a S\bSI\bIG\bGI\bIN\bNT\bT trap, exiting a non-in-
- teractive shell, or returning to the top level to read a new
- command).
-
- 2. If the command does not terminate due to S\bSI\bIG\bGI\bIN\bNT\bT, the program
- handled the S\bSI\bIG\bGI\bIN\bNT\bT itself and did not treat it as a fatal sig-
- nal. In that case, b\bba\bas\bsh\bh does not treat S\bSI\bIG\bGI\bIN\bNT\bT as a fatal sig-
- nal, either, instead assuming that the S\bSI\bIG\bGI\bIN\bNT\bT was used as part
- of the program's normal operation (e.g., emacs uses it to abort
- editing commands) or deliberately discarded. However, b\bba\bas\bsh\bh will
- run any trap set on S\bSI\bIG\bGI\bIN\bNT\bT, as it does with any other trapped
- signal it receives while it is waiting for the foreground com-
- mand to complete, for compatibility.
-
- When job control is enabled, b\bba\bas\bsh\bh does not receive keyboard-generated
- signals such as S\bSI\bIG\bGI\bIN\bNT\bT while it is waiting for a foreground command.
- An interactive shell does not pay attention to the S\bSI\bIG\bGI\bIN\bNT\bT, even if the
- foreground command terminates as a result, other than noting its exit
- status. If the shell is not interactive, and the foreground command
- terminates due to the S\bSI\bIG\bGI\bIN\bNT\bT, b\bba\bas\bsh\bh pretends it received the S\bSI\bIG\bGI\bIN\bNT\bT it-
- self (scenario 1 above), for compatibility.
-
-J\bJO\bOB\bB C\bCO\bON\bNT\bTR\bRO\bOL\bL
- _\bJ_\bo_\bb _\bc_\bo_\bn_\bt_\br_\bo_\bl refers to the ability to selectively stop (_\bs_\bu_\bs_\bp_\be_\bn_\bd) the ex-
- ecution of processes and continue (_\br_\be_\bs_\bu_\bm_\be) their execution at a later
- point. A user typically employs this facility via an interactive in-
- terface supplied jointly by the operating system kernel's terminal dri-
- ver and b\bba\bas\bsh\bh.
-
- The shell associates a _\bj_\bo_\bb with each pipeline. It keeps a table of
- currently executing jobs, which the j\bjo\bob\bbs\bs command will display. Each
- job has a _\bj_\bo_\bb _\bn_\bu_\bm_\bb_\be_\br, which j\bjo\bob\bbs\bs displays between brackets. Job num-
- bers start at 1. When b\bba\bas\bsh\bh starts a job asynchronously (in the _\bb_\ba_\bc_\bk_\b-
- _\bg_\br_\bo_\bu_\bn_\bd), it prints a line that looks like:
-
- [1] 25647
-
- indicating that this job is job number 1 and that the process ID of the
- last process in the pipeline associated with this job is 25647. All of
- the processes in a single pipeline are members of the same job. B\bBa\bas\bsh\bh
- uses the _\bj_\bo_\bb abstraction as the basis for job control.
-
- To facilitate the implementation of the user interface to job control,
- each process has a _\bp_\br_\bo_\bc_\be_\bs_\bs _\bg_\br_\bo_\bu_\bp _\bI_\bD, and the operating system maintains
- the notion of a _\bc_\bu_\br_\br_\be_\bn_\bt _\bt_\be_\br_\bm_\bi_\bn_\ba_\bl _\bp_\br_\bo_\bc_\be_\bs_\bs _\bg_\br_\bo_\bu_\bp _\bI_\bD. This terminal
- process group ID is associated with the _\bc_\bo_\bn_\bt_\br_\bo_\bl_\bl_\bi_\bn_\bg _\bt_\be_\br_\bm_\bi_\bn_\ba_\bl.
-
- Processes that have the same process group ID are said to be part of
- the same _\bp_\br_\bo_\bc_\be_\bs_\bs _\bg_\br_\bo_\bu_\bp. Members of the _\bf_\bo_\br_\be_\bg_\br_\bo_\bu_\bn_\bd process group
- (processes whose process group ID is equal to the current terminal
- process group ID) receive keyboard-generated signals such as S\bSI\bIG\bGI\bIN\bNT\bT.
- Processes in the foreground process group are said to be _\bf_\bo_\br_\be_\bg_\br_\bo_\bu_\bn_\bd
- processes. _\bB_\ba_\bc_\bk_\bg_\br_\bo_\bu_\bn_\bd processes are those whose process group ID dif-
- fers from the controlling terminal's; such processes are immune to key-
- board-generated signals. Only foreground processes are allowed to read
- from or, if the user so specifies with "stty tostop", write to the con-
- trolling terminal. The system sends a S\bSI\bIG\bGT\bTT\bTI\bIN\bN (\b(S\bSI\bIG\bGT\bTT\bTO\bOU\bU)\b) signal to
- background processes which attempt to read from (write to when "tostop"
- is in effect) the terminal, which, unless caught, suspends the process.
-
- If the operating system on which b\bba\bas\bsh\bh is running supports job control,
- b\bba\bas\bsh\bh contains facilities to use it. Typing the _\bs_\bu_\bs_\bp_\be_\bn_\bd character (typ-
- ically ^\b^Z\bZ, Control-Z) while a process is running stops that process and
- returns control to b\bba\bas\bsh\bh. Typing the _\bd_\be_\bl_\ba_\by_\be_\bd _\bs_\bu_\bs_\bp_\be_\bn_\bd character (typi-
- cally ^\b^Y\bY, Control-Y) causes the process stop when it attempts to read
- input from the terminal, and returns control to b\bba\bas\bsh\bh. The user then
- manipulates the state of this job, using the b\bbg\bg command to continue it
- in the background, the f\bfg\bg command to continue it in the foreground, or
- the k\bki\bil\bll\bl command to kill it. The suspend character takes effect imme-
- diately, and has the additional side effect of discarding any pending
- output and typeahead. To force a background process to stop, or stop a
- process that's not associated with the current terminal session, send
- it the S\bSI\bIG\bGS\bST\bTO\bOP\bP signal using k\bki\bil\bll\bl.
-
- There are a number of ways to refer to a job in the shell. The %\b% char-
- acter introduces a job specification (jobspec).
-
- Job number _\bn may be referred to as %\b%n\bn. A job may also be referred to
- using a prefix of the name used to start it, or using a substring that
- appears in its command line. For example, %\b%c\bce\be refers to a job whose
- command name begins with c\bce\be. Using %\b%?\b?c\bce\be, on the other hand, refers to
- any job containing the string c\bce\be in its command line. If the prefix or
- substring matches more than one job, b\bba\bas\bsh\bh reports an error.
-
- The symbols %\b%%\b% and %\b%+\b+ refer to the shell's notion of the _\bc_\bu_\br_\br_\be_\bn_\bt _\bj_\bo_\bb.
- A single % (with no accompanying job specification) also refers to the
- current job. %\b%-\b- refers to the _\bp_\br_\be_\bv_\bi_\bo_\bu_\bs _\bj_\bo_\bb. When a job starts in the
- background, a job stops while in the foreground, or a job is resumed in
- the background, it becomes the current job. The job that was the cur-
- rent job becomes the previous job. When the current job terminates,
- the previous job becomes the current job. If there is only a single
- job, %\b%+\b+ and %\b%-\b- can both be used to refer to that job. In output per-
- taining to jobs (e.g., the output of the j\bjo\bob\bbs\bs command), the current job
- is always marked with a +\b+, and the previous job with a -\b-.
-
- Simply naming a job can be used to bring it into the foreground: %\b%1\b1 is
- a synonym for "fg %1", bringing job 1 from the background into the
- foreground. Similarly, "%1 &" resumes job 1 in the background, equiva-
- lent to "bg %1".
-
- The shell learns immediately whenever a job changes state. Normally,
- b\bba\bas\bsh\bh waits until it is about to print a prompt before notifying the
- user about changes in a job's status so as to not interrupt any other
- output, though it will notify of changes in a job's status after a
- foreground command in a list completes, before executing the next com-
- mand in the list. If the -\b-b\bb option to the s\bse\bet\bt builtin command is en-
- abled, b\bba\bas\bsh\bh reports status changes immediately. B\bBa\bas\bsh\bh executes any trap
- on S\bSI\bIG\bGC\bCH\bHL\bLD\bD for each child that terminates.
-
- When a job terminates and b\bba\bas\bsh\bh notifies the user about it, b\bba\bas\bsh\bh removes
- the job from the table. It will not appear in j\bjo\bob\bbs\bs output, but w\bwa\bai\bit\bt
- will report its exit status, as long as it's supplied the process ID
- associated with the job as an argument. When the table is empty, job
- numbers start over at 1.
-
- If a user attempts to exit b\bba\bas\bsh\bh while jobs are stopped (or, if the
- c\bch\bhe\bec\bck\bkj\bjo\bob\bbs\bs shell option has been enabled using the s\bsh\bho\bop\bpt\bt builtin, run-
- ning), the shell prints a warning message, and, if the c\bch\bhe\bec\bck\bkj\bjo\bob\bbs\bs option
- is enabled, lists the jobs and their statuses. The j\bjo\bob\bbs\bs command may
- then be used to inspect their status. If the user immediately attempts
- to exit again, without an intervening command, b\bba\bas\bsh\bh does not print an-
- other warning, and terminates any stopped jobs.
-
- When the shell is waiting for a job or process using the w\bwa\bai\bit\bt builtin,
- and job control is enabled, w\bwa\bai\bit\bt will return when the job changes
- state. The -\b-f\bf option causes w\bwa\bai\bit\bt to wait until the job or process ter-
- minates before returning.
-
-P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\bG
- When executing interactively, b\bba\bas\bsh\bh displays the primary prompt P\bPS\bS1\b1 when
- it is ready to read a command, and the secondary prompt P\bPS\bS2\b2 when it
- needs more input to complete a command.
-
- B\bBa\bas\bsh\bh examines the value of the array variable P\bPR\bRO\bOM\bMP\bPT\bT_\b_C\bCO\bOM\bMM\bMA\bAN\bND\bD just be-
- fore printing each primary prompt. If any elements in P\bPR\bRO\bOM\bMP\bPT\bT_\b_C\bCO\bOM\bMM\bMA\bAN\bND\bD
- are set and non-null, Bash executes each value, in numeric order, just
- as if it had been typed on the command line. B\bBa\bas\bsh\bh displays P\bPS\bS0\b0 after
- it reads a command but before executing it.
-
- B\bBa\bas\bsh\bh displays P\bPS\bS4\b4 as described above before tracing each command when
- the -\b-x\bx option is enabled.
-
- B\bBa\bas\bsh\bh allows the prompt strings P\bPS\bS0\b0, P\bPS\bS1\b1, P\bPS\bS2\b2, and P\bPS\bS4\b4, to be customized
- by inserting a number of backslash-escaped special characters that are
- decoded as follows:
-
- \\b\a\ba An ASCII bell character (07).
- \\b\d\bd The date in "Weekday Month Date" format (e.g., "Tue May
- 26").
- \\b\D\bD{\b{_\bf_\bo_\br_\bm_\ba_\bt}\b}
- The _\bf_\bo_\br_\bm_\ba_\bt is passed to _\bs_\bt_\br_\bf_\bt_\bi_\bm_\be(3) and the result is in-
- serted into the prompt string; an empty _\bf_\bo_\br_\bm_\ba_\bt results in
- a locale-specific time representation. The braces are
- required.
- \\b\e\be An ASCII escape character (033).
- \\b\h\bh The hostname up to the first ".".
- \\b\H\bH The hostname.
- \\b\j\bj The number of jobs currently managed by the shell.
- \\b\l\bl The basename of the shell's terminal device name (e.g.,
- "ttys0").
- \\b\n\bn A newline.
- \\b\r\br A carriage return.
- \\b\s\bs The name of the shell: the basename of $\b$0\b0 (the portion
- following the final slash).
- \\b\t\bt The current time in 24-hour HH:MM:SS format.
- \\b\T\bT The current time in 12-hour HH:MM:SS format.
- \\b\@\b@ The current time in 12-hour am/pm format.
- \\b\A\bA The current time in 24-hour HH:MM format.
- \\b\u\bu The username of the current user.
- \\b\v\bv The b\bba\bas\bsh\bh version (e.g., 2.00).
- \\b\V\bV The b\bba\bas\bsh\bh release, version + patch level (e.g., 2.00.0)
- \\b\w\bw The value of the P\bPW\bWD\bD shell variable ($\b$P\bPW\bWD\bD), with $\b$H\bHO\bOM\bME\bE
- abbreviated with a tilde (uses the value of the
- P\bPR\bRO\bOM\bMP\bPT\bT_\b_D\bDI\bIR\bRT\bTR\bRI\bIM\bM variable).
- \\b\W\bW The basename of $\b$P\bPW\bWD\bD, with $\b$H\bHO\bOM\bME\bE abbreviated with a
- tilde.
- \\b\!\b! The history number of this command.
- \\b\#\b# The command number of this command.
- \\b\$\b$ If the effective UID is 0, a #\b#, otherwise a $\b$.
- \\b\_\bn_\bn_\bn The character corresponding to the octal number _\bn_\bn_\bn.
- \\b\\\b\ A backslash.
- \\b\[\b[ Begin a sequence of non-printing characters, which could
- be used to embed a terminal control sequence into the
- prompt.
- \\b\]\b] End a sequence of non-printing characters.
-
- The command number and the history number are usually different: the
- history number of a command is its position in the history list, which
- may include commands restored from the history file (see H\bHI\bIS\bST\bTO\bOR\bRY\bY be-
- low), while the command number is the position in the sequence of com-
- mands executed during the current shell session. After the string is
- decoded, it is expanded via parameter expansion, command substitution,
- arithmetic expansion, and quote removal, subject to the value of the
- p\bpr\bro\bom\bmp\bpt\btv\bva\bar\brs\bs shell option (see the description of the s\bsh\bho\bop\bpt\bt command under
- S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below). This can have unwanted side effects if
- escaped portions of the string appear within command substitution or
- contain characters special to word expansion.
-
-R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
- This is the library that handles reading input when using an interac-
- tive shell, unless the -\b--\b-n\bno\boe\bed\bdi\bit\bti\bin\bng\bg option is supplied at shell invoca-
- tion. Line editing is also used when using the -\b-e\be option to the r\bre\bea\bad\bd
- builtin. By default, the line editing commands are similar to those of
- emacs; a vi-style line editing interface is also available. Line edit-
- ing can be enabled at any time using the -\b-o\bo e\bem\bma\bac\bcs\bs or -\b-o\bo v\bvi\bi options to
- the s\bse\bet\bt builtin (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). To turn off line
- editing after the shell is running, use the +\b+o\bo e\bem\bma\bac\bcs\bs or +\b+o\bo v\bvi\bi options
- to the s\bse\bet\bt builtin.
-
- R\bRe\bea\bad\bdl\bli\bin\bne\be N\bNo\bot\bta\bat\bti\bio\bon\bn
- This section uses Emacs-style editing concepts and uses its notation
- for keystrokes. Control keys are denoted by C-_\bk_\be_\by, e.g., C-n means
- Control-N. Similarly, _\bm_\be_\bt_\ba keys are denoted by M-_\bk_\be_\by, so M-x means
- Meta-X. The Meta key is often labeled "Alt" or "Option".
-
- On keyboards without a _\bM_\be_\bt_\ba key, M-_\bx means ESC _\bx, i.e., press and re-
- lease the Escape key, then press and release the _\bx key, in sequence.
- This makes ESC the _\bm_\be_\bt_\ba _\bp_\br_\be_\bf_\bi_\bx. The combination M-C-_\bx means ESC Con-
- trol-_\bx: press and release the Escape key, then press and hold the Con-
- trol key while pressing the _\bx key, then release both.
-
- On some keyboards, the Meta key modifier produces characters with the
- eighth bit (0200) set. You can use the e\ben\bna\bab\bbl\ble\be-\b-m\bme\bet\bta\ba-\b-k\bke\bey\by variable to
- control whether or not it does this, if the keyboard allows it. On
- many others, the terminal or terminal emulator converts the metafied
- key to a key sequence beginning with ESC as described in the preceding
- paragraph.
-
- If your _\bM_\be_\bt_\ba key produces a key sequence with the ESC meta prefix, you
- can make M-_\bk_\be_\by key bindings you specify (see R\bRe\bea\bad\bdl\bli\bin\bne\be K\bKe\bey\by B\bBi\bin\bnd\bdi\bin\bng\bgs\bs be-
- low) do the same thing by setting the f\bfo\bor\brc\bce\be-\b-m\bme\bet\bta\ba-\b-p\bpr\bre\bef\bfi\bix\bx variable.
-
- R\bRe\bea\bad\bdl\bli\bin\bne\be commands may be given numeric _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs, which normally act as
- a repeat count. Sometimes, however, it is the sign of the argument
- that is significant. Passing a negative argument to a command that
- acts in the forward direction (e.g., k\bki\bil\bll\bl-\b-l\bli\bin\bne\be) makes that command act
- in a backward direction. Commands whose behavior with arguments devi-
- ates from this are noted below.
-
- The _\bp_\bo_\bi_\bn_\bt is the current cursor position, and _\bm_\ba_\br_\bk refers to a saved
- cursor position. The text between the point and mark is referred to as
- the _\br_\be_\bg_\bi_\bo_\bn. R\bRe\bea\bad\bdl\bli\bin\bne\be has the concept of an _\ba_\bc_\bt_\bi_\bv_\be _\br_\be_\bg_\bi_\bo_\bn: when the re-
- gion is active, r\bre\bea\bad\bdl\bli\bin\bne\be redisplay highlights the region using the
- value of the a\bac\bct\bti\biv\bve\be-\b-r\bre\beg\bgi\bio\bon\bn-\b-s\bst\bta\bar\brt\bt-\b-c\bco\bol\blo\bor\br variable. The e\ben\bna\bab\bbl\ble\be-\b-a\bac\bct\bti\biv\bve\be-\b-r\bre\be-\b-
- g\bgi\bio\bon\bn variable turns this on and off. Several commands set the region
- to active; those are noted below.
-
- When a command is described as _\bk_\bi_\bl_\bl_\bi_\bn_\bg text, the text deleted is saved
- for possible future retrieval (_\by_\ba_\bn_\bk_\bi_\bn_\bg). The killed text is saved in a
- _\bk_\bi_\bl_\bl _\br_\bi_\bn_\bg. Consecutive kills accumulate the deleted text into one
- unit, which can be yanked all at once. Commands which do not kill text
- separate the chunks of text on the kill ring.
-
- R\bRe\bea\bad\bdl\bli\bin\bne\be I\bIn\bni\bit\bti\bia\bal\bli\biz\bza\bat\bti\bio\bon\bn
- R\bRe\bea\bad\bdl\bli\bin\bne\be is customized by putting commands in an initialization file
- (the _\bi_\bn_\bp_\bu_\bt_\br_\bc file). The name of this file is taken from the value of
- the I\bIN\bNP\bPU\bUT\bTR\bRC\bC shell variable. If that variable is unset, the default is
- _\b~_\b/_\b._\bi_\bn_\bp_\bu_\bt_\br_\bc. If that file does not exist or cannot be read, r\bre\bea\bad\bdl\bli\bin\bne\be
- looks for _\b/_\be_\bt_\bc_\b/_\bi_\bn_\bp_\bu_\bt_\br_\bc. When a program that uses the r\bre\bea\bad\bdl\bli\bin\bne\be library
- starts up, r\bre\bea\bad\bdl\bli\bin\bne\be reads the initialization file and sets the key
- bindings and variables found there, before reading any user input.
-
- There are only a few basic constructs allowed in the inputrc file.
- Blank lines are ignored. Lines beginning with a #\b# are comments. Lines
- beginning with a $\b$ indicate conditional constructs. Other lines denote
- key bindings and variable settings.
-
- The default key-bindings in this section may be changed using key bind-
- ing commands in the _\bi_\bn_\bp_\bu_\bt_\br_\bc file. Programs that use the r\bre\bea\bad\bdl\bli\bin\bne\be li-
- brary, including b\bba\bas\bsh\bh, may add their own commands and bindings.
-
- For example, placing
-
- M-Control-u: universal-argument
- or
- C-Meta-u: universal-argument
-
- into the _\bi_\bn_\bp_\bu_\bt_\br_\bc would make M-C-u execute the r\bre\bea\bad\bdl\bli\bin\bne\be command _\bu_\bn_\bi_\bv_\be_\br_\b-
- _\bs_\ba_\bl_\b-_\ba_\br_\bg_\bu_\bm_\be_\bn_\bt.
-
- Key bindings may contain the following symbolic character names: _\bD_\bE_\bL,
- _\bE_\bS_\bC, _\bE_\bS_\bC_\bA_\bP_\bE, _\bL_\bF_\bD, _\bN_\bE_\bW_\bL_\bI_\bN_\bE, _\bR_\bE_\bT, _\bR_\bE_\bT_\bU_\bR_\bN, _\bR_\bU_\bB_\bO_\bU_\bT (a destructive back-
- space), _\bS_\bP_\bA_\bC_\bE, _\bS_\bP_\bC, and _\bT_\bA_\bB.
-
- In addition to command names, r\bre\bea\bad\bdl\bli\bin\bne\be allows keys to be bound to a
- string that is inserted when the key is pressed (a _\bm_\ba_\bc_\br_\bo). The differ-
- ence between a macro and a command is that a macro is enclosed in sin-
- gle or double quotes.
-
- R\bRe\bea\bad\bdl\bli\bin\bne\be K\bKe\bey\by B\bBi\bin\bnd\bdi\bin\bng\bgs\bs
- The syntax for controlling key bindings in the _\bi_\bn_\bp_\bu_\bt_\br_\bc file is simple.
- All that is required is the name of the command or the text of a macro
- and a key sequence to which it should be bound. The key sequence may
- be specified in one of two ways: as a symbolic key name, possibly with
- _\bM_\be_\bt_\ba_\b- or _\bC_\bo_\bn_\bt_\br_\bo_\bl_\b- prefixes, or as a key sequence composed of one or
- more characters enclosed in double quotes. The key sequence and name
- are separated by a colon. There can be no whitespace between the name
- and the colon.
-
- When using the form k\bke\bey\byn\bna\bam\bme\be:_\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be or _\bm_\ba_\bc_\br_\bo, _\bk_\be_\by_\bn_\ba_\bm_\be is the name
- of a key spelled out in English. For example:
-
- Control-u: universal-argument
- Meta-Rubout: backward-kill-word
- Control-o: "> output"
-
- In the above example, _\bC_\b-_\bu is bound to the function u\bun\bni\biv\bve\ber\brs\bsa\bal\bl-\b-a\bar\brg\bgu\bum\bme\ben\bnt\bt,
- _\bM_\b-_\bD_\bE_\bL is bound to the function b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-k\bki\bil\bll\bl-\b-w\bwo\bor\brd\bd, and _\bC_\b-_\bo is bound to
- run the macro expressed on the right hand side (that is, to insert the
- text "> output" into the line).
-
- In the second form, "\b"k\bke\bey\bys\bse\beq\bq"\b":_\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be or _\bm_\ba_\bc_\br_\bo, k\bke\bey\bys\bse\beq\bq differs
- from k\bke\bey\byn\bna\bam\bme\be above in that strings denoting an entire key sequence may
- be specified by placing the sequence within double quotes. Some GNU
- Emacs style key escapes can be used, as in the following example, but
- none of the symbolic character names are recognized.
-
- "\C-u": universal-argument
- "\C-x\C-r": re-read-init-file
- "\e[11~": "Function Key 1"
-
- In this example, _\bC_\b-_\bu is again bound to the function u\bun\bni\biv\bve\ber\brs\bsa\bal\bl-\b-a\bar\brg\bgu\bum\bme\ben\bnt\bt.
- _\bC_\b-_\bx _\bC_\b-_\br is bound to the function r\bre\be-\b-r\bre\bea\bad\bd-\b-i\bin\bni\bit\bt-\b-f\bfi\bil\ble\be, and _\bE_\bS_\bC _\b[ _\b1 _\b1 _\b~ is
- bound to insert the text "Function Key 1".
-
- The full set of GNU Emacs style escape sequences available when speci-
- fying key sequences is
- \\b\C\bC-\b- A control prefix.
- \\b\M\bM-\b- Adding the meta prefix or converting the following char-
- acter to a meta character, as described below under
- f\bfo\bor\brc\bce\be-\b-m\bme\bet\bta\ba-\b-p\bpr\bre\bef\bfi\bix\bx.
- \\b\e\be An escape character.
- \\b\\\b\ Backslash.
- \\b\"\b" Literal ", a double quote.
- \\b\'\b' Literal ', a single quote.
-
- In addition to the GNU Emacs style escape sequences, a second set of
- backslash escapes is available:
- \\b\a\ba alert (bell)
- \\b\b\bb backspace
- \\b\d\bd delete
- \\b\f\bf form feed
- \\b\n\bn newline
- \\b\r\br carriage return
- \\b\t\bt horizontal tab
- \\b\v\bv vertical tab
- \\b\_\bn_\bn_\bn The eight-bit character whose value is the octal value
- _\bn_\bn_\bn (one to three digits).
- \\b\x\bx_\bH_\bH The eight-bit character whose value is the hexadecimal
- value _\bH_\bH (one or two hex digits).
-
- When entering the text of a macro, single or double quotes must be used
- to indicate a macro definition. Unquoted text is assumed to be a func-
- tion name. The backslash escapes described above are expanded in the
- macro body. Backslash quotes any other character in the macro text,
- including " and '.
-
- B\bBa\bas\bsh\bh will display or modify the current r\bre\bea\bad\bdl\bli\bin\bne\be key bindings with the
- b\bbi\bin\bnd\bd builtin command. The -\b-o\bo e\bem\bma\bac\bcs\bs or -\b-o\bo v\bvi\bi options to the s\bse\bet\bt builtin
- (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) change the editing mode during in-
- teractive use.
-
- R\bRe\bea\bad\bdl\bli\bin\bne\be V\bVa\bar\bri\bia\bab\bbl\ble\bes\bs
- R\bRe\bea\bad\bdl\bli\bin\bne\be has variables that can be used to further customize its behav-
- ior. A variable may be set in the _\bi_\bn_\bp_\bu_\bt_\br_\bc file with a statement of the
- form
-
- s\bse\bet\bt _\bv_\ba_\br_\bi_\ba_\bb_\bl_\be_\b-_\bn_\ba_\bm_\be _\bv_\ba_\bl_\bu_\be
- or using the b\bbi\bin\bnd\bd 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).
-
- Except where noted, r\bre\bea\bad\bdl\bli\bin\bne\be variables can take the values O\bOn\bn or O\bOf\bff\bf
- (without regard to case). Unrecognized variable names are ignored.
- When r\bre\bea\bad\bdl\bli\bin\bne\be reads a variable value, empty or null values, "on" (case-
- insensitive), and "1" are equivalent to O\bOn\bn. All other values are
- equivalent to O\bOf\bff\bf.
-
- The b\bbi\bin\bnd\bd -\b-V\bV command lists the current r\bre\bea\bad\bdl\bli\bin\bne\be variable names and val-
- ues (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 variables and their default values are:
-
- a\bac\bct\bti\biv\bve\be-\b-r\bre\beg\bgi\bio\bon\bn-\b-s\bst\bta\bar\brt\bt-\b-c\bco\bol\blo\bor\br
- A string variable that controls the text color and background
- when displaying the text in the active region (see the descrip-
- tion of e\ben\bna\bab\bbl\ble\be-\b-a\bac\bct\bti\biv\bve\be-\b-r\bre\beg\bgi\bio\bon\bn below). This string must not take
- up any physical character positions on the display, so it should
- consist only of terminal escape sequences. It is output to the
- terminal before displaying the text in the active region. This
- variable is reset to the default value whenever the terminal
- type changes. The default value is the string that puts the
- terminal in standout mode, as obtained from the terminal's ter-
- minfo description. A sample value might be "\e[01;33m".
- a\bac\bct\bti\biv\bve\be-\b-r\bre\beg\bgi\bio\bon\bn-\b-e\ben\bnd\bd-\b-c\bco\bol\blo\bor\br
- A string variable that "undoes" the effects of a\bac\bct\bti\biv\bve\be-\b-r\bre\be-\b-
- g\bgi\bio\bon\bn-\b-s\bst\bta\bar\brt\bt-\b-c\bco\bol\blo\bor\br and restores "normal" terminal display appear-
- ance after displaying text in the active region. This string
- must not take up any physical character positions on the dis-
- play, so it should consist only of terminal escape sequences.
- It is output to the terminal after displaying the text in the
- active region. This variable is reset to the default value
- whenever the terminal type changes. The default value is the
- string that restores the terminal from standout mode, as ob-
- tained from the terminal's terminfo description. A sample value
- might be "\e[0m".
- b\bbe\bel\bll\bl-\b-s\bst\bty\byl\ble\be (\b(a\bau\bud\bdi\bib\bbl\ble\be)\b)
- Controls what happens when r\bre\bea\bad\bdl\bli\bin\bne\be wants to ring the terminal
- bell. If set to n\bno\bon\bne\be, r\bre\bea\bad\bdl\bli\bin\bne\be never rings the bell. If set to
- v\bvi\bis\bsi\bib\bbl\ble\be, r\bre\bea\bad\bdl\bli\bin\bne\be uses a visible bell if one is available. If
- set to a\bau\bud\bdi\bib\bbl\ble\be, r\bre\bea\bad\bdl\bli\bin\bne\be attempts to ring the terminal's bell.
- b\bbi\bin\bnd\bd-\b-t\btt\bty\by-\b-s\bsp\bpe\bec\bci\bia\bal\bl-\b-c\bch\bha\bar\brs\bs (\b(O\bOn\bn)\b)
- If set to O\bOn\bn, r\bre\bea\bad\bdl\bli\bin\bne\be attempts to bind the control characters
- that are treated specially by the kernel's terminal driver to
- their r\bre\bea\bad\bdl\bli\bin\bne\be equivalents. These override the default r\bre\bea\bad\bdl\bli\bin\bne\be
- bindings described here. Type "stty -a" at a b\bba\bas\bsh\bh prompt to see
- your current terminal settings, including the special control
- characters (usually c\bcc\bch\bha\bar\brs\bs). This binding takes place on each
- call to r\bre\bea\bad\bdl\bli\bin\bne\be, so changes made by "stty" can take effect.
- b\bbl\bli\bin\bnk\bk-\b-m\bma\bat\btc\bch\bhi\bin\bng\bg-\b-p\bpa\bar\bre\ben\bn (\b(O\bOf\bff\bf)\b)
- If set to O\bOn\bn, r\bre\bea\bad\bdl\bli\bin\bne\be attempts to briefly move the cursor to an
- opening parenthesis when a closing parenthesis is inserted.
- c\bco\bol\blo\bor\bre\bed\bd-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bn-\b-p\bpr\bre\bef\bfi\bix\bx (\b(O\bOf\bff\bf)\b)
- If set to O\bOn\bn, when listing completions, r\bre\bea\bad\bdl\bli\bin\bne\be displays the
- common prefix of the set of possible completions using a differ-
- ent color. The color definitions are taken from the value of
- the L\bLS\bS_\b_C\bCO\bOL\bLO\bOR\bRS\bS environment variable. If there is a color defini-
- tion in $\b$L\bLS\bS_\b_C\bCO\bOL\bLO\bOR\bRS\bS for the custom suffix ".readline-colored-com-
- pletion-prefix", r\bre\bea\bad\bdl\bli\bin\bne\be uses this color for the common prefix
- instead of its default.
- c\bco\bol\blo\bor\bre\bed\bd-\b-s\bst\bta\bat\bts\bs (\b(O\bOf\bff\bf)\b)
- If set to O\bOn\bn, r\bre\bea\bad\bdl\bli\bin\bne\be displays possible completions using dif-
- ferent colors to indicate their file type. The color defini-
- tions are taken from the value of the L\bLS\bS_\b_C\bCO\bOL\bLO\bOR\bRS\bS environment
- variable.
- c\bco\bom\bmm\bme\ben\bnt\bt-\b-b\bbe\beg\bgi\bin\bn (\b("#\b#")\b)
- The string that the r\bre\bea\bad\bdl\bli\bin\bne\be i\bin\bns\bse\ber\brt\bt-\b-c\bco\bom\bmm\bme\ben\bnt\bt command inserts.
- This command is bound to M\bM-\b-#\b# in emacs mode and to #\b# in vi com-
- mand mode.
- c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bn-\b-d\bdi\bis\bsp\bpl\bla\bay\by-\b-w\bwi\bid\bdt\bth\bh (\b(-\b-1\b1)\b)
- The number of screen columns used to display possible matches
- when performing completion. The value is ignored if it is less
- than 0 or greater than the terminal screen width. A value of 0
- causes matches to be displayed one per line. The default value
- is -1.
- c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bn-\b-i\big\bgn\bno\bor\bre\be-\b-c\bca\bas\bse\be (\b(O\bOf\bff\bf)\b)
- If set to O\bOn\bn, r\bre\bea\bad\bdl\bli\bin\bne\be performs filename matching and completion
- in a case-insensitive fashion.
- c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bn-\b-m\bma\bap\bp-\b-c\bca\bas\bse\be (\b(O\bOf\bff\bf)\b)
- If set to O\bOn\bn, and c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bn-\b-i\big\bgn\bno\bor\bre\be-\b-c\bca\bas\bse\be is enabled, r\bre\bea\bad\bdl\bli\bin\bne\be
- treats hyphens (_\b-) and underscores (_\b_) as equivalent when per-
- forming case-insensitive filename matching and completion.
- c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bn-\b-p\bpr\bre\bef\bfi\bix\bx-\b-d\bdi\bis\bsp\bpl\bla\bay\by-\b-l\ble\ben\bng\bgt\bth\bh (\b(0\b0)\b)
- The maximum length in characters of the common prefix of a list
- of possible completions that is displayed without modification.
- When set to a value greater than zero, r\bre\bea\bad\bdl\bli\bin\bne\be replaces common
- prefixes longer than this value with an ellipsis when displaying
- possible completions. If a completion begins with a period, and
- e\bea\bad\bdl\bli\bin\bne\be is completing filenames, it uses three underscores in-
- stead of an ellipsis.
- c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bn-\b-q\bqu\bue\ber\bry\by-\b-i\bit\bte\bem\bms\bs (\b(1\b10\b00\b0)\b)
- This determines when the user is queried about viewing the num-
- ber of possible completions generated by the p\bpo\bos\bss\bsi\bib\bbl\ble\be-\b-c\bco\bom\bmp\bpl\ble\be-\b-
- t\bti\bio\bon\bns\bs command. It may be set to any integer value greater than
- or equal to zero. If the number of possible completions is
- greater than or equal to the value of this variable, r\bre\bea\bad\bdl\bli\bin\bne\be
- asks whether or not the user wishes to view them; otherwise
- r\bre\bea\bad\bdl\bli\bin\bne\be simply lists them on the terminal. A zero value means
- r\bre\bea\bad\bdl\bli\bin\bne\be should never ask; negative values are treated as zero.
- c\bco\bon\bnv\bve\ber\brt\bt-\b-m\bme\bet\bta\ba (\b(O\bOn\bn)\b)
- If set to O\bOn\bn, r\bre\bea\bad\bdl\bli\bin\bne\be converts characters it reads that have
- the eighth bit set to an ASCII key sequence by clearing the
- eighth bit and prefixing it with an escape character (converting
- the character to have the meta prefix). The default is _\bO_\bn, but
- r\bre\bea\bad\bdl\bli\bin\bne\be sets it to _\bO_\bf_\bf if the locale contains characters whose
- encodings may include bytes with the eighth bit set. This vari-
- able is dependent on the L\bLC\bC_\b_C\bCT\bTY\bYP\bPE\bE locale category, and may
- change if the locale changes. This variable also affects key
- bindings; see the description of f\bfo\bor\brc\bce\be-\b-m\bme\bet\bta\ba-\b-p\bpr\bre\bef\bfi\bix\bx below.
- d\bdi\bis\bsa\bab\bbl\ble\be-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bn (\b(O\bOf\bff\bf)\b)
- If set to O\bOn\bn, r\bre\bea\bad\bdl\bli\bin\bne\be inhibits word completion. Completion
- characters are inserted into the line as if they had been mapped
- to s\bse\bel\blf\bf-\b-i\bin\bns\bse\ber\brt\bt.
- e\bec\bch\bho\bo-\b-c\bco\bon\bnt\btr\bro\bol\bl-\b-c\bch\bha\bar\bra\bac\bct\bte\ber\brs\bs (\b(O\bOn\bn)\b)
- When set to O\bOn\bn, on operating systems that indicate they support
- it, r\bre\bea\bad\bdl\bli\bin\bne\be echoes a character corresponding to a signal gener-
- ated from the keyboard.
- e\bed\bdi\bit\bti\bin\bng\bg-\b-m\bmo\bod\bde\be (\b(e\bem\bma\bac\bcs\bs)\b)
- Controls whether r\bre\bea\bad\bdl\bli\bin\bne\be uses a set of key bindings similar to
- _\bE_\bm_\ba_\bc_\bs or _\bv_\bi. e\bed\bdi\bit\bti\bin\bng\bg-\b-m\bmo\bod\bde\be can be set to either e\bem\bma\bac\bcs\bs or v\bvi\bi.
- e\bem\bma\bac\bcs\bs-\b-m\bmo\bod\bde\be-\b-s\bst\btr\bri\bin\bng\bg (\b(@\b@)\b)
- If the _\bs_\bh_\bo_\bw_\b-_\bm_\bo_\bd_\be_\b-_\bi_\bn_\b-_\bp_\br_\bo_\bm_\bp_\bt variable is enabled, this string is
- displayed immediately before the last line of the primary prompt
- when emacs editing mode is active. The value is expanded like a
- key binding, so the standard set of meta- and control- prefixes
- and backslash escape sequences is available. The \1 and \2 es-
- capes begin and end sequences of non-printing characters, which
- can be used to embed a terminal control sequence into the mode
- string.
- e\ben\bna\bab\bbl\ble\be-\b-a\bac\bct\bti\biv\bve\be-\b-r\bre\beg\bgi\bio\bon\bn (\b(O\bOn\bn)\b)
- When this variable is set to _\bO_\bn, r\bre\bea\bad\bdl\bli\bin\bne\be allows certain com-
- mands to designate the region as _\ba_\bc_\bt_\bi_\bv_\be. When the region is ac-
- tive, r\bre\bea\bad\bdl\bli\bin\bne\be highlights the text in the region using the value
- of the a\bac\bct\bti\biv\bve\be-\b-r\bre\beg\bgi\bio\bon\bn-\b-s\bst\bta\bar\brt\bt-\b-c\bco\bol\blo\bor\br variable, which defaults to the
- string that enables the terminal's standout mode. The active
- region shows the text inserted by bracketed-paste and any match-
- ing text found by incremental and non-incremental history
- searches.
- e\ben\bna\bab\bbl\ble\be-\b-b\bbr\bra\bac\bck\bke\bet\bte\bed\bd-\b-p\bpa\bas\bst\bte\be (\b(O\bOn\bn)\b)
- When set to O\bOn\bn, r\bre\bea\bad\bdl\bli\bin\bne\be configures the terminal to insert each
- paste into the editing buffer as a single string of characters,
- instead of treating each character as if it had been read from
- the keyboard. This is called _\bb_\br_\ba_\bc_\bk_\be_\bt_\be_\bd_\b-_\bp_\ba_\bs_\bt_\be _\bm_\bo_\bd_\be; it prevents
- r\bre\bea\bad\bdl\bli\bin\bne\be from executing any editing commands bound to key se-
- quences appearing in the pasted text.
- e\ben\bna\bab\bbl\ble\be-\b-k\bke\bey\byp\bpa\bad\bd (\b(O\bOf\bff\bf)\b)
- When set to O\bOn\bn, r\bre\bea\bad\bdl\bli\bin\bne\be tries to enable the application keypad
- when it is called. Some systems need this to enable the arrow
- keys.
- e\ben\bna\bab\bbl\ble\be-\b-m\bme\bet\bta\ba-\b-k\bke\bey\by (\b(O\bOn\bn)\b)
- When set to O\bOn\bn, r\bre\bea\bad\bdl\bli\bin\bne\be tries to enable any meta modifier key
- the terminal claims to support. On many terminals, the Meta key
- is used to send eight-bit characters; this variable checks for
- the terminal capability that indicates the terminal can enable
- and disable a mode that sets the eighth bit of a character
- (0200) if the Meta key is held down when the character is typed
- (a meta character).
- e\bex\bxp\bpa\ban\bnd\bd-\b-t\bti\bil\bld\bde\be (\b(O\bOf\bff\bf)\b)
- If set to O\bOn\bn, r\bre\bea\bad\bdl\bli\bin\bne\be performs tilde expansion when it attempts
- word completion.
- f\bfo\bor\brc\bce\be-\b-m\bme\bet\bta\ba-\b-p\bpr\bre\bef\bfi\bix\bx (\b(O\bOf\bff\bf)\b)
- If set to O\bOn\bn, r\bre\bea\bad\bdl\bli\bin\bne\be modifies its behavior when binding key
- sequences containing \M- or Meta- (see K\bKe\bey\by B\bBi\bin\bnd\bdi\bin\bng\bgs\bs above) by
- converting a key sequence of the form \M-_\bC or Meta-_\bC to the two-
- character sequence E\bES\bSC\bC _\bC (adding the meta prefix). If
- f\bfo\bor\brc\bce\be-\b-m\bme\bet\bta\ba-\b-p\bpr\bre\bef\bfi\bix\bx is set to O\bOf\bff\bf (the default), r\bre\bea\bad\bdl\bli\bin\bne\be uses the
- value of the c\bco\bon\bnv\bve\ber\brt\bt-\b-m\bme\bet\bta\ba variable to determine whether to per-
- form this conversion: if c\bco\bon\bnv\bve\ber\brt\bt-\b-m\bme\bet\bta\ba is O\bOn\bn, r\bre\bea\bad\bdl\bli\bin\bne\be performs
- the conversion described above; if it is O\bOf\bff\bf, r\bre\bea\bad\bdl\bli\bin\bne\be converts
- _\bC to a meta character by setting the eighth bit (0200).
- h\bhi\bis\bst\bto\bor\bry\by-\b-p\bpr\bre\bes\bse\ber\brv\bve\be-\b-p\bpo\boi\bin\bnt\bt (\b(O\bOf\bff\bf)\b)
- If set to O\bOn\bn, the history code attempts to place point at the
- same location on each history line retrieved with p\bpr\bre\bev\bvi\bio\bou\bus\bs-\b-h\bhi\bis\bs-\b-
- t\bto\bor\bry\by or n\bne\bex\bxt\bt-\b-h\bhi\bis\bst\bto\bor\bry\by.
- h\bhi\bis\bst\bto\bor\bry\by-\b-s\bsi\biz\bze\be (\b(u\bun\bns\bse\bet\bt)\b)
- Set the maximum number of history entries saved in the history
- list. If set to zero, any existing history entries are deleted
- and no new entries are saved. If set to a value less than zero,
- the number of history entries is not limited. By default, b\bba\bas\bsh\bh
- sets the maximum number of history entries to the value of the
- H\bHI\bIS\bST\bTS\bSI\bIZ\bZE\bE shell variable. Setting _\bh_\bi_\bs_\bt_\bo_\br_\by_\b-_\bs_\bi_\bz_\be to a non-numeric
- value will set the maximum number of history entries to 500.
- h\bho\bor\bri\biz\bzo\bon\bnt\bta\bal\bl-\b-s\bsc\bcr\bro\bol\bll\bl-\b-m\bmo\bod\bde\be (\b(O\bOf\bff\bf)\b)
- Setting this variable to O\bOn\bn makes r\bre\bea\bad\bdl\bli\bin\bne\be use a single line for
- display, scrolling the input horizontally on a single screen
- line when it becomes longer than the screen width rather than
- wrapping to a new line. This setting is automatically enabled
- for terminals of height 1.
- i\bin\bnp\bpu\but\bt-\b-m\bme\bet\bta\ba (\b(O\bOf\bff\bf)\b)
- If set to O\bOn\bn, r\bre\bea\bad\bdl\bli\bin\bne\be enables eight-bit input (that is, it does
- not clear the eighth bit in the characters it reads), regardless
- of what the terminal claims it can support. The default is _\bO_\bf_\bf,
- but r\bre\bea\bad\bdl\bli\bin\bne\be sets it to _\bO_\bn if the locale contains characters
- whose encodings may include bytes with the eighth bit set. This
- variable is dependent on the L\bLC\bC_\b_C\bCT\bTY\bYP\bPE\bE locale category, and its
- value may change if the locale changes. The name m\bme\bet\bta\ba-\b-f\bfl\bla\bag\bg is a
- synonym for i\bin\bnp\bpu\but\bt-\b-m\bme\bet\bta\ba.
- i\bis\bse\bea\bar\brc\bch\bh-\b-t\bte\ber\brm\bmi\bin\bna\bat\bto\bor\brs\bs (\b("C\bC-\b-[\b[C\bC-\b-j\bj")\b)
- The string of characters that should terminate an incremental
- search without subsequently executing the character as a com-
- mand. If this variable has not been given a value, the charac-
- ters _\bE_\bS_\bC and C\bC-\b-j\bj terminate an incremental search.
- k\bke\bey\bym\bma\bap\bp (\b(e\bem\bma\bac\bcs\bs)\b)
- Set the current r\bre\bea\bad\bdl\bli\bin\bne\be keymap. The set of valid keymap names
- is _\be_\bm_\ba_\bc_\bs_\b, _\be_\bm_\ba_\bc_\bs_\b-_\bs_\bt_\ba_\bn_\bd_\ba_\br_\bd_\b, _\be_\bm_\ba_\bc_\bs_\b-_\bm_\be_\bt_\ba_\b, _\be_\bm_\ba_\bc_\bs_\b-_\bc_\bt_\bl_\bx_\b, _\bv_\bi_\b, _\bv_\bi_\b-_\bc_\bo_\bm_\b-
- _\bm_\ba_\bn_\bd, and _\bv_\bi_\b-_\bi_\bn_\bs_\be_\br_\bt. _\bv_\bi is equivalent to _\bv_\bi_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd; _\be_\bm_\ba_\bc_\bs is
- equivalent to _\be_\bm_\ba_\bc_\bs_\b-_\bs_\bt_\ba_\bn_\bd_\ba_\br_\bd. The default value is _\be_\bm_\ba_\bc_\bs; the
- value of e\bed\bdi\bit\bti\bin\bng\bg-\b-m\bmo\bod\bde\be also affects the default keymap.
- k\bke\bey\bys\bse\beq\bq-\b-t\bti\bim\bme\beo\bou\but\bt (\b(5\b50\b00\b0)\b)
- Specifies the duration r\bre\bea\bad\bdl\bli\bin\bne\be will wait for a character when
- reading an ambiguous key sequence (one that can form a complete
- key sequence using the input read so far, or can take additional
- input to complete a longer key sequence). If r\bre\bea\bad\bdl\bli\bin\bne\be does not
- receive any input within the timeout, it uses the shorter but
- complete key sequence. The value is specified in milliseconds,
- so a value of 1000 means that r\bre\bea\bad\bdl\bli\bin\bne\be will wait one second for
- additional input. If this variable is set to a value less than
- or equal to zero, or to a non-numeric value, r\bre\bea\bad\bdl\bli\bin\bne\be waits un-
- til another key is pressed to decide which key sequence to com-
- plete.
- m\bma\bar\brk\bk-\b-d\bdi\bir\bre\bec\bct\bto\bor\bri\bie\bes\bs (\b(O\bOn\bn)\b)
- If set to O\bOn\bn, completed directory names have a slash appended.
- m\bma\bar\brk\bk-\b-m\bmo\bod\bdi\bif\bfi\bie\bed\bd-\b-l\bli\bin\bne\bes\bs (\b(O\bOf\bff\bf)\b)
- If set to O\bOn\bn, r\bre\bea\bad\bdl\bli\bin\bne\be displays history lines that have been
- modified with a preceding asterisk (*\b*).
- m\bma\bar\brk\bk-\b-s\bsy\bym\bml\bli\bin\bnk\bke\bed\bd-\b-d\bdi\bir\bre\bec\bct\bto\bor\bri\bie\bes\bs (\b(O\bOf\bff\bf)\b)
- If set to O\bOn\bn, completed names which are symbolic links to direc-
- tories have a slash appended, subject to the value of m\bma\bar\brk\bk-\b-d\bdi\bi-\b-
- r\bre\bec\bct\bto\bor\bri\bie\bes\bs.
- m\bma\bat\btc\bch\bh-\b-h\bhi\bid\bdd\bde\ben\bn-\b-f\bfi\bil\ble\bes\bs (\b(O\bOn\bn)\b)
- This variable, when set to O\bOn\bn, forces r\bre\bea\bad\bdl\bli\bin\bne\be to match files
- whose names begin with a "." (hidden files) when performing
- filename completion. If set to O\bOf\bff\bf, the user must include the
- leading "." in the filename to be completed.
- m\bme\ben\bnu\bu-\b-c\bco\bom\bmp\bpl\ble\bet\bte\be-\b-d\bdi\bis\bsp\bpl\bla\bay\by-\b-p\bpr\bre\bef\bfi\bix\bx (\b(O\bOf\bff\bf)\b)
- If set to O\bOn\bn, menu completion displays the common prefix of the
- list of possible completions (which may be empty) before cycling
- through the list.
- o\bou\but\btp\bpu\but\bt-\b-m\bme\bet\bta\ba (\b(O\bOf\bff\bf)\b)
- If set to O\bOn\bn, r\bre\bea\bad\bdl\bli\bin\bne\be displays characters with the eighth bit
- set directly rather than as a meta-prefixed escape sequence.
- The default is _\bO_\bf_\bf, but r\bre\bea\bad\bdl\bli\bin\bne\be sets it to _\bO_\bn if the locale
- contains characters whose encodings may include bytes with the
- eighth bit set. This variable is dependent on the L\bLC\bC_\b_C\bCT\bTY\bYP\bPE\bE lo-
- cale category, and its value may change if the locale changes.
- p\bpa\bag\bge\be-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs (\b(O\bOn\bn)\b)
- If set to O\bOn\bn, r\bre\bea\bad\bdl\bli\bin\bne\be uses an internal pager resembling _\bm_\bo_\br_\be(1)
- to display a screenful of possible completions at a time.
- p\bpr\bre\bef\bfe\ber\br-\b-v\bvi\bis\bsi\bib\bbl\ble\be-\b-b\bbe\bel\bll\bl
- See b\bbe\bel\bll\bl-\b-s\bst\bty\byl\ble\be.
- p\bpr\bri\bin\bnt\bt-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs-\b-h\bho\bor\bri\biz\bzo\bon\bnt\bta\bal\bll\bly\by (\b(O\bOf\bff\bf)\b)
- If set to O\bOn\bn, r\bre\bea\bad\bdl\bli\bin\bne\be displays completions with matches sorted
- horizontally in alphabetical order, rather than down the screen.
- r\bre\bev\bve\ber\brt\bt-\b-a\bal\bll\bl-\b-a\bat\bt-\b-n\bne\bew\bwl\bli\bin\bne\be (\b(O\bOf\bff\bf)\b)
- If set to O\bOn\bn, r\bre\bea\bad\bdl\bli\bin\bne\be will undo all changes to history lines
- before returning when executing a\bac\bcc\bce\bep\bpt\bt-\b-l\bli\bin\bne\be. By default, his-
- tory lines may be modified and retain individual undo lists
- across calls to r\bre\bea\bad\bdl\bli\bin\bne\be.
- s\bse\bea\bar\brc\bch\bh-\b-i\big\bgn\bno\bor\bre\be-\b-c\bca\bas\bse\be (\b(O\bOf\bff\bf)\b)
- If set to O\bOn\bn, r\bre\bea\bad\bdl\bli\bin\bne\be performs incremental and non-incremental
- history list searches in a case-insensitive fashion.
- s\bsh\bho\bow\bw-\b-a\bal\bll\bl-\b-i\bif\bf-\b-a\bam\bmb\bbi\big\bgu\buo\bou\bus\bs (\b(O\bOf\bff\bf)\b)
- This alters the default behavior of the completion functions.
- If set to O\bOn\bn, words which have more than one possible completion
- cause the matches to be listed immediately instead of ringing
- the bell.
- s\bsh\bho\bow\bw-\b-a\bal\bll\bl-\b-i\bif\bf-\b-u\bun\bnm\bmo\bod\bdi\bif\bfi\bie\bed\bd (\b(O\bOf\bff\bf)\b)
- This alters the default behavior of the completion functions in
- a fashion similar to s\bsh\bho\bow\bw-\b-a\bal\bll\bl-\b-i\bif\bf-\b-a\bam\bmb\bbi\big\bgu\buo\bou\bus\bs. If set to O\bOn\bn, words
- which have more than one possible completion without any possi-
- ble partial completion (the possible completions don't share a
- common prefix) cause the matches to be listed immediately in-
- stead of ringing the bell.
- s\bsh\bho\bow\bw-\b-m\bmo\bod\bde\be-\b-i\bin\bn-\b-p\bpr\bro\bom\bmp\bpt\bt (\b(O\bOf\bff\bf)\b)
- If set to O\bOn\bn, add a string to the beginning of the prompt indi-
- cating the editing mode: emacs, vi command, or vi insertion.
- The mode strings are user-settable (e.g., _\be_\bm_\ba_\bc_\bs_\b-_\bm_\bo_\bd_\be_\b-_\bs_\bt_\br_\bi_\bn_\bg).
- s\bsk\bki\bip\bp-\b-c\bco\bom\bmp\bpl\ble\bet\bte\bed\bd-\b-t\bte\bex\bxt\bt (\b(O\bOf\bff\bf)\b)
- If set to O\bOn\bn, this alters the default completion behavior when
- inserting a single match into the line. It's only active when
- performing completion in the middle of a word. If enabled,
- r\bre\bea\bad\bdl\bli\bin\bne\be does not insert characters from the completion that
- match characters after point in the word being completed, so
- portions of the word following the cursor are not duplicated.
- v\bvi\bi-\b-c\bcm\bmd\bd-\b-m\bmo\bod\bde\be-\b-s\bst\btr\bri\bin\bng\bg (\b((\b(c\bcm\bmd\bd)\b))\b)
- If the _\bs_\bh_\bo_\bw_\b-_\bm_\bo_\bd_\be_\b-_\bi_\bn_\b-_\bp_\br_\bo_\bm_\bp_\bt variable is enabled, this string is
- displayed immediately before the last line of the primary prompt
- when vi editing mode is active and in command mode. The value
- is expanded like a key binding, so the standard set of meta- and
- control- prefixes and backslash escape sequences is available.
- The \1 and \2 escapes begin and end sequences of non-printing
- characters, which can be used to embed a terminal control se-
- quence into the mode string.
- v\bvi\bi-\b-i\bin\bns\bs-\b-m\bmo\bod\bde\be-\b-s\bst\btr\bri\bin\bng\bg (\b((\b(i\bin\bns\bs)\b))\b)
- If the _\bs_\bh_\bo_\bw_\b-_\bm_\bo_\bd_\be_\b-_\bi_\bn_\b-_\bp_\br_\bo_\bm_\bp_\bt variable is enabled, this string is
- displayed immediately before the last line of the primary prompt
- when vi editing mode is active and in insertion mode. The value
- is expanded like a key binding, so the standard set of meta- and
- control- prefixes and backslash escape sequences is available.
- The \1 and \2 escapes begin and end sequences of non-printing
- characters, which can be used to embed a terminal control se-
- quence into the mode string.
- v\bvi\bis\bsi\bib\bbl\ble\be-\b-s\bst\bta\bat\bts\bs (\b(O\bOf\bff\bf)\b)
- If set to O\bOn\bn, a character denoting a file's type as reported by
- _\bs_\bt_\ba_\bt(2) is appended to the filename when listing possible com-
- pletions.
-
- R\bRe\bea\bad\bdl\bli\bin\bne\be C\bCo\bon\bnd\bdi\bit\bti\bio\bon\bna\bal\bl C\bCo\bon\bns\bst\btr\bru\buc\bct\bts\bs
- R\bRe\bea\bad\bdl\bli\bin\bne\be implements a facility similar in spirit to the conditional
- compilation features of the C preprocessor which allows key bindings
- and variable settings to be performed as the result of tests. There
- are four parser directives available.
-
- $\b$i\bif\bf The $\b$i\bif\bf construct allows bindings to be made based on the edit-
- ing mode, the terminal being used, or the application using
- r\bre\bea\bad\bdl\bli\bin\bne\be. The text of the test, after any comparison operator,
- extends to the end of the line; unless otherwise noted, no char-
- acters are required to isolate it.
-
- m\bmo\bod\bde\be The m\bmo\bod\bde\be=\b= form of the $\b$i\bif\bf directive is used to test
- whether r\bre\bea\bad\bdl\bli\bin\bne\be is in emacs or vi mode. This may be
- used in conjunction with the s\bse\bet\bt k\bke\bey\bym\bma\bap\bp command, for in-
- stance, to set bindings in the _\be_\bm_\ba_\bc_\bs_\b-_\bs_\bt_\ba_\bn_\bd_\ba_\br_\bd and
- _\be_\bm_\ba_\bc_\bs_\b-_\bc_\bt_\bl_\bx keymaps only if r\bre\bea\bad\bdl\bli\bin\bne\be is starting out in
- emacs mode.
-
- t\bte\ber\brm\bm The t\bte\ber\brm\bm=\b= form may be used to include terminal-specific
- key bindings, perhaps to bind the key sequences output by
- the terminal's function keys. The word on the right side
- of the =\b= is tested against both the full name of the ter-
- minal and the portion of the terminal name before the
- first -\b-. This allows _\bx_\bt_\be_\br_\bm to match both _\bx_\bt_\be_\br_\bm and
- _\bx_\bt_\be_\br_\bm_\b-_\b2_\b5_\b6_\bc_\bo_\bl_\bo_\br, for instance.
-
- v\bve\ber\brs\bsi\bio\bon\bn
- The v\bve\ber\brs\bsi\bio\bon\bn test may be used to perform comparisons
- against specific r\bre\bea\bad\bdl\bli\bin\bne\be versions. The v\bve\ber\brs\bsi\bio\bon\bn expands
- to the current r\bre\bea\bad\bdl\bli\bin\bne\be version. The set of comparison
- operators includes =\b=, (and =\b==\b=), !\b!=\b=, <\b<=\b=, >\b>=\b=, <\b<, and >\b>.
- The version number supplied on the right side of the op-
- erator consists of a major version number, an optional
- decimal point, and an optional minor version (e.g., 7\b7.\b.1\b1).
- If the minor version is omitted, it defaults to 0\b0. The
- operator may be separated from the string v\bve\ber\brs\bsi\bio\bon\bn and
- from the version number argument by whitespace.
-
- _\ba_\bp_\bp_\bl_\bi_\bc_\ba_\bt_\bi_\bo_\bn
- The _\ba_\bp_\bp_\bl_\bi_\bc_\ba_\bt_\bi_\bo_\bn construct is used to include application-
- specific settings. Each program using the r\bre\bea\bad\bdl\bli\bin\bne\be li-
- brary sets the _\ba_\bp_\bp_\bl_\bi_\bc_\ba_\bt_\bi_\bo_\bn _\bn_\ba_\bm_\be, and an initialization
- file can test for a particular value. This could be used
- to bind key sequences to functions useful for a specific
- program. For instance, the following command adds a key
- sequence that quotes the current or previous word in
- b\bba\bas\bsh\bh:
-
- $\b$i\bif\bf Bash
- # Quote the current or previous word
- "\C-xq": "\eb\"\ef\""
- $\b$e\ben\bnd\bdi\bif\bf
-
- _\bv_\ba_\br_\bi_\ba_\bb_\bl_\be
- The _\bv_\ba_\br_\bi_\ba_\bb_\bl_\be construct provides simple equality tests for
- r\bre\bea\bad\bdl\bli\bin\bne\be variables and values. The permitted comparison
- operators are _\b=, _\b=_\b=, and _\b!_\b=. The variable name must be
- separated from the comparison operator by whitespace; the
- operator may be separated from the value on the right
- hand side by whitespace. String and boolean variables
- may be tested. Boolean variables must be tested against
- the values _\bo_\bn and _\bo_\bf_\bf.
-
- $\b$e\bel\bls\bse\be Commands in this branch of the $\b$i\bif\bf directive are executed if the
- test fails.
-
- $\b$e\ben\bnd\bdi\bif\bf This command, as seen in the previous example, terminates an $\b$i\bif\bf
- command.
-
- $\b$i\bin\bnc\bcl\blu\bud\bde\be
- This directive takes a single filename as an argument and reads
- commands and key bindings from that file. For example, the fol-
- lowing directive would read _\b/_\be_\bt_\bc_\b/_\bi_\bn_\bp_\bu_\bt_\br_\bc:
-
- $\b$i\bin\bnc\bcl\blu\bud\bde\be _\b/_\be_\bt_\bc_\b/_\bi_\bn_\bp_\bu_\bt_\br_\bc
-
- S\bSe\bea\bar\brc\bch\bhi\bin\bng\bg
- R\bRe\bea\bad\bdl\bli\bin\bne\be provides commands for searching through the command history
- (see H\bHI\bIS\bST\bTO\bOR\bRY\bY below) for lines containing a specified string. There are
- two search modes: _\bi_\bn_\bc_\br_\be_\bm_\be_\bn_\bt_\ba_\bl and _\bn_\bo_\bn_\b-_\bi_\bn_\bc_\br_\be_\bm_\be_\bn_\bt_\ba_\bl.
-
- Incremental searches begin before the user has finished typing the
- search string. As each character of the search string is typed, r\bre\bea\bad\bd-\b-
- l\bli\bin\bne\be displays the next entry from the history matching the string typed
- so far. An incremental search requires only as many characters as
- needed to find the desired history entry. When using emacs editing
- mode, type C\bC-\b-r\br to search backward in the history for a particular
- string. Typing C\bC-\b-s\bs searches forward through the history. The charac-
- ters present in the value of the i\bis\bse\bea\bar\brc\bch\bh-\b-t\bte\ber\brm\bmi\bin\bna\bat\bto\bor\brs\bs variable are used
- to terminate an incremental search. If that variable has not been as-
- signed a value, _\bE_\bS_\bC and C\bC-\b-j\bj terminate an incremental search. C\bC-\b-g\bg
- aborts an incremental search and restores the original line. When the
- search is terminated, the history entry containing the search string
- becomes the current line.
-
- To find other matching entries in the history list, type C\bC-\b-r\br or C\bC-\b-s\bs as
- appropriate. This searches backward or forward in the history for the
- next entry matching the search string typed so far. Any other key se-
- quence bound to a r\bre\bea\bad\bdl\bli\bin\bne\be command terminates the search and executes
- that command. For instance, a newline terminates the search and ac-
- cepts the line, thereby executing the command from the history list. A
- movement command will terminate the search, make the last line found
- the current line, and begin editing.
-
- R\bRe\bea\bad\bdl\bli\bin\bne\be remembers the last incremental search string. If two C\bC-\b-r\brs are
- typed without any intervening characters defining a new search string,
- r\bre\bea\bad\bdl\bli\bin\bne\be uses any remembered search string.
-
- Non-incremental searches read the entire search string before starting
- to search for matching history entries. The search string may be typed
- by the user or be part of the contents of the current line.
-
- R\bRe\bea\bad\bdl\bli\bin\bne\be C\bCo\bom\bmm\bma\ban\bnd\bd N\bNa\bam\bme\bes\bs
- The following is a list of the names of the commands and the default
- key sequences to which they are bound. Command names without an accom-
- panying key sequence are unbound by default.
-
- In the following descriptions, _\bp_\bo_\bi_\bn_\bt refers to the current cursor posi-
- tion, and _\bm_\ba_\br_\bk refers to a cursor position saved by the s\bse\bet\bt-\b-m\bma\bar\brk\bk com-
- mand. The text between the point and mark is referred to as the _\br_\be_\b-
- _\bg_\bi_\bo_\bn. R\bRe\bea\bad\bdl\bli\bin\bne\be has the concept of an _\ba_\bc_\bt_\bi_\bv_\be _\br_\be_\bg_\bi_\bo_\bn: when the region is
- active, r\bre\bea\bad\bdl\bli\bin\bne\be redisplay highlights the region using the value of the
- a\bac\bct\bti\biv\bve\be-\b-r\bre\beg\bgi\bio\bon\bn-\b-s\bst\bta\bar\brt\bt-\b-c\bco\bol\blo\bor\br variable. The e\ben\bna\bab\bbl\ble\be-\b-a\bac\bct\bti\biv\bve\be-\b-r\bre\beg\bgi\bio\bon\bn r\bre\bea\bad\bdl\bli\bin\bne\be
- variable turns this on and off. Several commands set the region to ac-
- tive; those are noted below.
-
- C\bCo\bom\bmm\bma\ban\bnd\bds\bs f\bfo\bor\br M\bMo\bov\bvi\bin\bng\bg
- b\bbe\beg\bgi\bin\bnn\bni\bin\bng\bg-\b-o\bof\bf-\b-l\bli\bin\bne\be (\b(C\bC-\b-a\ba)\b)
- Move to the start of the current line. This may also be bound
- to the Home key on some keyboards.
- e\ben\bnd\bd-\b-o\bof\bf-\b-l\bli\bin\bne\be (\b(C\bC-\b-e\be)\b)
- Move to the end of the line. This may also be bound to the End
- key on some keyboards.
- f\bfo\bor\brw\bwa\bar\brd\bd-\b-c\bch\bha\bar\br (\b(C\bC-\b-f\bf)\b)
- Move forward a character. This may also be bound to the right
- arrow key on some keyboards.
- b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-c\bch\bha\bar\br (\b(C\bC-\b-b\bb)\b)
- Move back a character. This may also be bound to the left arrow
- key on some keyboards.
- f\bfo\bor\brw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd (\b(M\bM-\b-f\bf)\b)
- Move forward to the end of the next word. Words are composed of
- alphanumeric characters (letters and digits).
- b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd (\b(M\bM-\b-b\bb)\b)
- Move back to the start of the current or previous word. Words
- are composed of alphanumeric characters (letters and digits).
- s\bsh\bhe\bel\bll\bl-\b-f\bfo\bor\brw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd (\b(M\bM-\b-C\bC-\b-f\bf)\b)
- Move forward to the end of the next word. Words are delimited
- by non-quoted shell metacharacters.
- s\bsh\bhe\bel\bll\bl-\b-b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd (\b(M\bM-\b-C\bC-\b-b\bb)\b)
- Move back to the start of the current or previous word. Words
- are delimited by non-quoted shell metacharacters.
- p\bpr\bre\bev\bvi\bio\bou\bus\bs-\b-s\bsc\bcr\bre\bee\ben\bn-\b-l\bli\bin\bne\be
- Attempt to move point to the same physical screen column on the
- previous physical screen line. This will not have the desired
- effect if the current r\bre\bea\bad\bdl\bli\bin\bne\be line does not take up more than
- one physical line or if point is not greater than the length of
- the prompt plus the screen width.
- n\bne\bex\bxt\bt-\b-s\bsc\bcr\bre\bee\ben\bn-\b-l\bli\bin\bne\be
- Attempt to move point to the same physical screen column on the
- next physical screen line. This will not have the desired ef-
- fect if the current r\bre\bea\bad\bdl\bli\bin\bne\be line does not take up more than one
- physical line or if the length of the current r\bre\bea\bad\bdl\bli\bin\bne\be line is
- not greater than the length of the prompt plus the screen width.
- c\bcl\ble\bea\bar\br-\b-d\bdi\bis\bsp\bpl\bla\bay\by (\b(M\bM-\b-C\bC-\b-l\bl)\b)
- Clear the screen and, if possible, the terminal's scrollback
- buffer, then redraw the current line, leaving the current line
- at the top of the screen.
- c\bcl\ble\bea\bar\br-\b-s\bsc\bcr\bre\bee\ben\bn (\b(C\bC-\b-l\bl)\b)
- Clear the screen, then redraw the current line, leaving the cur-
- rent line at the top of the screen. With a numeric argument,
- refresh the current line without clearing the screen.
- r\bre\bed\bdr\bra\baw\bw-\b-c\bcu\bur\brr\bre\ben\bnt\bt-\b-l\bli\bin\bne\be
- Refresh the current line.
-
- C\bCo\bom\bmm\bma\ban\bnd\bds\bs f\bfo\bor\br M\bMa\ban\bni\bip\bpu\bul\bla\bat\bti\bin\bng\bg t\bth\bhe\be H\bHi\bis\bst\bto\bor\bry\by
- a\bac\bcc\bce\bep\bpt\bt-\b-l\bli\bin\bne\be (\b(N\bNe\bew\bwl\bli\bin\bne\be,\b, R\bRe\bet\btu\bur\brn\bn)\b)
- Accept the line regardless of where the cursor is. If this line
- is non-empty, add it to the history list according to the state
- of the H\bHI\bIS\bST\bTC\bCO\bON\bNT\bTR\bRO\bOL\bL and H\bHI\bIS\bST\bTI\bIG\bGN\bNO\bOR\bRE\bE variables. If the line is a
- modified history line, restore the history line to its original
- state.
- p\bpr\bre\bev\bvi\bio\bou\bus\bs-\b-h\bhi\bis\bst\bto\bor\bry\by (\b(C\bC-\b-p\bp)\b)
- Fetch the previous command from the history list, moving back in
- the list. This may also be bound to the up arrow key on some
- keyboards.
- n\bne\bex\bxt\bt-\b-h\bhi\bis\bst\bto\bor\bry\by (\b(C\bC-\b-n\bn)\b)
- Fetch the next command from the history list, moving forward in
- the list. This may also be bound to the down arrow key on some
- keyboards.
- b\bbe\beg\bgi\bin\bnn\bni\bin\bng\bg-\b-o\bof\bf-\b-h\bhi\bis\bst\bto\bor\bry\by (\b(M\bM-\b-<\b<)\b)
- Move to the first line in the history.
- e\ben\bnd\bd-\b-o\bof\bf-\b-h\bhi\bis\bst\bto\bor\bry\by (\b(M\bM-\b->\b>)\b)
- Move to the end of the input history, i.e., the line currently
- being entered.
- o\bop\bpe\ber\bra\bat\bte\be-\b-a\ban\bnd\bd-\b-g\bge\bet\bt-\b-n\bne\bex\bxt\bt (\b(C\bC-\b-o\bo)\b)
- Accept the current line for execution as if a newline had been
- entered, and fetch the next line relative to the current line
- from the history for editing. A numeric argument, if supplied,
- specifies the history entry to use instead of the current line.
- f\bfe\bet\btc\bch\bh-\b-h\bhi\bis\bst\bto\bor\bry\by
- With a numeric argument, fetch that entry from the history list
- and make it the current line. Without an argument, move back to
- the first entry in the history list.
- r\bre\bev\bve\ber\brs\bse\be-\b-s\bse\bea\bar\brc\bch\bh-\b-h\bhi\bis\bst\bto\bor\bry\by (\b(C\bC-\b-r\br)\b)
- Search backward starting at the current line and moving "up"
- through the history as necessary. This is an incremental
- search. This command sets the region to the matched text and
- activates the region.
- f\bfo\bor\brw\bwa\bar\brd\bd-\b-s\bse\bea\bar\brc\bch\bh-\b-h\bhi\bis\bst\bto\bor\bry\by (\b(C\bC-\b-s\bs)\b)
- Search forward starting at the current line and moving "down"
- through the history as necessary. This is an incremental
- search. This command sets the region to the matched text and
- activates the region.
- n\bno\bon\bn-\b-i\bin\bnc\bcr\bre\bem\bme\ben\bnt\bta\bal\bl-\b-r\bre\bev\bve\ber\brs\bse\be-\b-s\bse\bea\bar\brc\bch\bh-\b-h\bhi\bis\bst\bto\bor\bry\by (\b(M\bM-\b-p\bp)\b)
- Search backward through the history starting at the current line
- using a non-incremental search for a string supplied by the
- user. The search string may match anywhere in a history line.
- n\bno\bon\bn-\b-i\bin\bnc\bcr\bre\bem\bme\ben\bnt\bta\bal\bl-\b-f\bfo\bor\brw\bwa\bar\brd\bd-\b-s\bse\bea\bar\brc\bch\bh-\b-h\bhi\bis\bst\bto\bor\bry\by (\b(M\bM-\b-n\bn)\b)
- Search forward through the history using a non-incremental
- search for a string supplied by the user. The search string may
- match anywhere in a history line.
- h\bhi\bis\bst\bto\bor\bry\by-\b-s\bse\bea\bar\brc\bch\bh-\b-b\bba\bac\bck\bkw\bwa\bar\brd\bd
- Search backward through the history for the string of characters
- between the start of the current line and the point. The search
- string must match at the beginning of a history line. This is a
- non-incremental search. This may be bound to the Page Up key on
- some keyboards.
- h\bhi\bis\bst\bto\bor\bry\by-\b-s\bse\bea\bar\brc\bch\bh-\b-f\bfo\bor\brw\bwa\bar\brd\bd
- Search forward through the history for the string of characters
- between the start of the current line and the point. The search
- string must match at the beginning of a history line. This is a
- non-incremental search. This may be bound to the Page Down key
- on some keyboards.
- h\bhi\bis\bst\bto\bor\bry\by-\b-s\bsu\bub\bbs\bst\btr\bri\bin\bng\bg-\b-s\bse\bea\bar\brc\bch\bh-\b-b\bba\bac\bck\bkw\bwa\bar\brd\bd
- Search backward through the history for the string of characters
- between the start of the current line and the point. The search
- string may match anywhere in a history line. This is a non-in-
- cremental search.
- h\bhi\bis\bst\bto\bor\bry\by-\b-s\bsu\bub\bbs\bst\btr\bri\bin\bng\bg-\b-s\bse\bea\bar\brc\bch\bh-\b-f\bfo\bor\brw\bwa\bar\brd\bd
- Search forward through the history for the string of characters
- between the start of the current line and the point. The search
- string may match anywhere in a history line. This is a non-in-
- cremental search.
- y\bya\ban\bnk\bk-\b-n\bnt\bth\bh-\b-a\bar\brg\bg (\b(M\bM-\b-C\bC-\b-y\by)\b)
- Insert the first argument to the previous command (usually the
- second word on the previous line) at point. With an argument _\bn,
- insert the _\bnth word from the previous command (the words in the
- previous command begin with word 0). A negative argument in-
- serts the _\bnth word from the end of the previous command. Once
- the argument _\bn is computed, this uses the history expansion fa-
- cilities to extract the _\bnth word, as if the "!_\bn" history expan-
- sion had been specified.
- y\bya\ban\bnk\bk-\b-l\bla\bas\bst\bt-\b-a\bar\brg\bg (\b(M\bM-\b-.\b.,\b, M\bM-\b-_\b_)\b)
- Insert the last argument to the previous command (the last word
- of the previous history entry). With a numeric argument, behave
- exactly like y\bya\ban\bnk\bk-\b-n\bnt\bth\bh-\b-a\bar\brg\bg. Successive calls to y\bya\ban\bnk\bk-\b-l\bla\bas\bst\bt-\b-a\bar\brg\bg
- move back through the history list, inserting the last word (or
- the word specified by the argument to the first call) of each
- line in turn. Any numeric argument supplied to these successive
- calls determines the direction to move through the history. A
- negative argument switches the direction through the history
- (back or forward). This uses the history expansion facilities
- to extract the last word, as if the "!$" history expansion had
- been specified.
- s\bsh\bhe\bel\bll\bl-\b-e\bex\bxp\bpa\ban\bnd\bd-\b-l\bli\bin\bne\be (\b(M\bM-\b-C\bC-\b-e\be)\b)
- Expand the line by performing shell word expansions. This per-
- forms alias and history expansion, $\b$'_\bs_\bt_\br_\bi_\bn_\bg' and $\b$"_\bs_\bt_\br_\bi_\bn_\bg" quot-
- ing, tilde expansion, parameter and variable expansion, arith-
- metic expansion, command and process substitution, word split-
- ting, and quote removal. An explicit argument suppresses com-
- mand and process substitution. See H\bHI\bIS\bST\bTO\bOR\bRY\bY E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN below for
- a description of history expansion.
- h\bhi\bis\bst\bto\bor\bry\by-\b-e\bex\bxp\bpa\ban\bnd\bd-\b-l\bli\bin\bne\be (\b(M\bM-\b-^\b^)\b)
- Perform history expansion on the current line. See H\bHI\bIS\bST\bTO\bOR\bRY\bY E\bEX\bX-\b-
- P\bPA\bAN\bNS\bSI\bIO\bON\bN below for a description of history expansion.
- m\bma\bag\bgi\bic\bc-\b-s\bsp\bpa\bac\bce\be
- Perform history expansion on the current line and insert a
- space. See H\bHI\bIS\bST\bTO\bOR\bRY\bY E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN below for a description of history
- expansion.
- a\bal\bli\bia\bas\bs-\b-e\bex\bxp\bpa\ban\bnd\bd-\b-l\bli\bin\bne\be
- Perform alias expansion on the current line. See A\bAL\bLI\bIA\bAS\bSE\bES\bS above
- for a description of alias expansion.
- h\bhi\bis\bst\bto\bor\bry\by-\b-a\ban\bnd\bd-\b-a\bal\bli\bia\bas\bs-\b-e\bex\bxp\bpa\ban\bnd\bd-\b-l\bli\bin\bne\be
- Perform history and alias expansion on the current line.
- i\bin\bns\bse\ber\brt\bt-\b-l\bla\bas\bst\bt-\b-a\bar\brg\bgu\bum\bme\ben\bnt\bt (\b(M\bM-\b-.\b.,\b, M\bM-\b-_\b_)\b)
- A synonym for y\bya\ban\bnk\bk-\b-l\bla\bas\bst\bt-\b-a\bar\brg\bg.
- e\bed\bdi\bit\bt-\b-a\ban\bnd\bd-\b-e\bex\bxe\bec\bcu\but\bte\be-\b-c\bco\bom\bmm\bma\ban\bnd\bd (\b(C\bC-\b-x\bx C\bC-\b-e\be)\b)
- Invoke an editor on the current command line, and execute the
- result as shell commands. B\bBa\bas\bsh\bh attempts to invoke $\b$V\bVI\bIS\bSU\bUA\bAL\bL, $\b$E\bED\bD-\b-
- I\bIT\bTO\bOR\bR, and _\be_\bm_\ba_\bc_\bs as the editor, in that order.
-
- C\bCo\bom\bmm\bma\ban\bnd\bds\bs f\bfo\bor\br C\bCh\bha\ban\bng\bgi\bin\bng\bg T\bTe\bex\bxt\bt
- _\be_\bn_\bd_\b-_\bo_\bf_\b-_\bf_\bi_\bl_\be (\b(u\bus\bsu\bua\bal\bll\bly\by C\bC-\b-d\bd)\b)
- The character indicating end-of-file as set, for example, by
- _\bs_\bt_\bt_\by(1). If this character is read when there are no characters
- on the line, and point is at the beginning of the line, r\bre\bea\bad\bdl\bli\bin\bne\be
- interprets it as the end of input and returns E\bEO\bOF\bF.
- d\bde\bel\ble\bet\bte\be-\b-c\bch\bha\bar\br (\b(C\bC-\b-d\bd)\b)
- Delete the character at point. If this function is bound to the
- same character as the tty E\bEO\bOF\bF character, as C\bC-\b-d\bd commonly is, see
- above for the effects. This may also be bound to the Delete key
- on some keyboards.
- b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-d\bde\bel\ble\bet\bte\be-\b-c\bch\bha\bar\br (\b(R\bRu\bub\bbo\bou\but\bt)\b)
- Delete the character behind the cursor. When given a numeric
- argument, save the deleted text on the kill ring.
- f\bfo\bor\brw\bwa\bar\brd\bd-\b-b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-d\bde\bel\ble\bet\bte\be-\b-c\bch\bha\bar\br
- Delete the character under the cursor, unless the cursor is at
- the end of the line, in which case the character behind the cur-
- sor is deleted.
- q\bqu\buo\bot\bte\bed\bd-\b-i\bin\bns\bse\ber\brt\bt (\b(C\bC-\b-q\bq,\b, C\bC-\b-v\bv)\b)
- Add the next character typed to the line verbatim. This is how
- to insert characters like C\bC-\b-q\bq, for example.
- t\bta\bab\bb-\b-i\bin\bns\bse\ber\brt\bt (\b(C\bC-\b-v\bv T\bTA\bAB\bB)\b)
- Insert a tab character.
- s\bse\bel\blf\bf-\b-i\bin\bns\bse\ber\brt\bt (\b(a\ba,\b, b\bb,\b, A\bA,\b, 1\b1,\b, !\b!,\b, ...)\b)
- Insert the character typed.
- b\bbr\bra\bac\bck\bke\bet\bte\bed\bd-\b-p\bpa\bas\bst\bte\be-\b-b\bbe\beg\bgi\bin\bn
- This function is intended to be bound to the "bracketed paste"
- escape sequence sent by some terminals, and such a binding is
- assigned by default. It allows r\bre\bea\bad\bdl\bli\bin\bne\be to insert the pasted
- text as a single unit without treating each character as if it
- had been read from the keyboard. The pasted characters are in-
- serted as if each one was bound to s\bse\bel\blf\bf-\b-i\bin\bns\bse\ber\brt\bt instead of exe-
- cuting any editing commands.
- Bracketed paste sets the region to the inserted text and acti-
- vates the region.
- t\btr\bra\ban\bns\bsp\bpo\bos\bse\be-\b-c\bch\bha\bar\brs\bs (\b(C\bC-\b-t\bt)\b)
- Drag the character before point forward over the character at
- point, moving point forward as well. If point is at the end of
- the line, then this transposes the two characters before point.
- Negative arguments have no effect.
- t\btr\bra\ban\bns\bsp\bpo\bos\bse\be-\b-w\bwo\bor\brd\bds\bs (\b(M\bM-\b-t\bt)\b)
- Drag the word before point past the word after point, moving
- point past that word as well. If point is at the end of the
- line, this transposes the last two words on the line.
- s\bsh\bhe\bel\bll\bl-\b-t\btr\bra\ban\bns\bsp\bpo\bos\bse\be-\b-w\bwo\bor\brd\bds\bs (\b(M\bM-\b-C\bC-\b-t\bt)\b)
- Drag the word before point past the word after point, moving
- point past that word as well. If the insertion point is at the
- end of the line, this transposes the last two words on the line.
- Word boundaries are the same as s\bsh\bhe\bel\bll\bl-\b-f\bfo\bor\brw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd and
- s\bsh\bhe\bel\bll\bl-\b-b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd.
- u\bup\bpc\bca\bas\bse\be-\b-w\bwo\bor\brd\bd (\b(M\bM-\b-u\bu)\b)
- Uppercase the current (or following) word. With a negative ar-
- gument, uppercase the previous word, but do not move point.
- d\bdo\bow\bwn\bnc\bca\bas\bse\be-\b-w\bwo\bor\brd\bd (\b(M\bM-\b-l\bl)\b)
- Lowercase the current (or following) word. With a negative ar-
- gument, lowercase the previous word, but do not move point.
- c\bca\bap\bpi\bit\bta\bal\bli\biz\bze\be-\b-w\bwo\bor\brd\bd (\b(M\bM-\b-c\bc)\b)
- Capitalize the current (or following) word. With a negative ar-
- gument, capitalize the previous word, but do not move point.
- o\bov\bve\ber\brw\bwr\bri\bit\bte\be-\b-m\bmo\bod\bde\be
- Toggle overwrite mode. With an explicit positive numeric argu-
- ment, switches to overwrite mode. With an explicit non-positive
- numeric argument, switches to insert mode. This command affects
- only e\bem\bma\bac\bcs\bs mode; v\bvi\bi mode does overwrite differently. Each call
- to _\br_\be_\ba_\bd_\bl_\bi_\bn_\be_\b(_\b) starts in insert mode.
- In overwrite mode, characters bound to s\bse\bel\blf\bf-\b-i\bin\bns\bse\ber\brt\bt replace the
- text at point rather than pushing the text to the right. Char-
- acters bound to b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-d\bde\bel\ble\bet\bte\be-\b-c\bch\bha\bar\br replace the character be-
- fore point with a space. By default, this command is unbound,
- but may be bound to the Insert key on some keyboards.
-
- K\bKi\bil\bll\bli\bin\bng\bg a\ban\bnd\bd Y\bYa\ban\bnk\bki\bin\bng\bg
- k\bki\bil\bll\bl-\b-l\bli\bin\bne\be (\b(C\bC-\b-k\bk)\b)
- Kill the text from point to the end of the current line. With a
- negative numeric argument, kill backward from the cursor to the
- beginning of the line.
- b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-k\bki\bil\bll\bl-\b-l\bli\bin\bne\be (\b(C\bC-\b-x\bx R\bRu\bub\bbo\bou\but\bt)\b)
- Kill backward to the beginning of the current line. With a neg-
- ative numeric argument, kill forward from the cursor to the end
- of the line.
- u\bun\bni\bix\bx-\b-l\bli\bin\bne\be-\b-d\bdi\bis\bsc\bca\bar\brd\bd (\b(C\bC-\b-u\bu)\b)
- Kill backward from point to the beginning of the line, saving
- the killed text on the kill-ring.
- k\bki\bil\bll\bl-\b-w\bwh\bho\bol\ble\be-\b-l\bli\bin\bne\be
- Kill all characters on the current line, no matter where point
- is.
- k\bki\bil\bll\bl-\b-w\bwo\bor\brd\bd (\b(M\bM-\b-d\bd)\b)
- Kill from point to the end of the current word, or if between
- words, to the end of the next word. Word boundaries are the
- same as those used by f\bfo\bor\brw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd.
- b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-k\bki\bil\bll\bl-\b-w\bwo\bor\brd\bd (\b(M\bM-\b-R\bRu\bub\bbo\bou\but\bt)\b)
- Kill the word behind point. Word boundaries are the same as
- those used by b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd.
- s\bsh\bhe\bel\bll\bl-\b-k\bki\bil\bll\bl-\b-w\bwo\bor\brd\bd (\b(M\bM-\b-C\bC-\b-d\bd)\b)
- Kill from point to the end of the current word, or if between
- words, to the end of the next word. Word boundaries are the
- same as those used by s\bsh\bhe\bel\bll\bl-\b-f\bfo\bor\brw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd.
- s\bsh\bhe\bel\bll\bl-\b-b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-k\bki\bil\bll\bl-\b-w\bwo\bor\brd\bd
- Kill the word behind point. Word boundaries are the same as
- those used by s\bsh\bhe\bel\bll\bl-\b-b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd.
- u\bun\bni\bix\bx-\b-w\bwo\bor\brd\bd-\b-r\bru\bub\bbo\bou\but\bt (\b(C\bC-\b-w\bw)\b)
- Kill the word behind point, using white space as a word bound-
- ary, saving the killed text on the kill-ring.
- u\bun\bni\bix\bx-\b-f\bfi\bil\ble\ben\bna\bam\bme\be-\b-r\bru\bub\bbo\bou\but\bt
- Kill the word behind point, using white space and the slash
- character as the word boundaries, saving the killed text on the
- kill-ring.
- d\bde\bel\ble\bet\bte\be-\b-h\bho\bor\bri\biz\bzo\bon\bnt\bta\bal\bl-\b-s\bsp\bpa\bac\bce\be (\b(M\bM-\b-\\b\)\b)
- Delete all spaces and tabs around point.
- k\bki\bil\bll\bl-\b-r\bre\beg\bgi\bio\bon\bn
- Kill the text in the current region.
- c\bco\bop\bpy\by-\b-r\bre\beg\bgi\bio\bon\bn-\b-a\bas\bs-\b-k\bki\bil\bll\bl
- Copy the text in the region to the kill buffer, so it can be
- yanked immediately.
- c\bco\bop\bpy\by-\b-b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd
- Copy the word before point to the kill buffer. The word bound-
- aries are the same as b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd.
- c\bco\bop\bpy\by-\b-f\bfo\bor\brw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd
- Copy the word following point to the kill buffer. The word
- boundaries are the same as f\bfo\bor\brw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd.
- y\bya\ban\bnk\bk (\b(C\bC-\b-y\by)\b)
- Yank the top of the kill ring into the buffer at point.
- y\bya\ban\bnk\bk-\b-p\bpo\bop\bp (\b(M\bM-\b-y\by)\b)
- Rotate the kill ring, and yank the new top. Only works follow-
- ing y\bya\ban\bnk\bk or y\bya\ban\bnk\bk-\b-p\bpo\bop\bp.
-
- N\bNu\bum\bme\ber\bri\bic\bc A\bAr\brg\bgu\bum\bme\ben\bnt\bts\bs
- d\bdi\big\bgi\bit\bt-\b-a\bar\brg\bgu\bum\bme\ben\bnt\bt (\b(M\bM-\b-0\b0,\b, M\bM-\b-1\b1,\b, ...,\b, M\bM-\b--\b-)\b)
- Add this digit to the argument already accumulating, or start a
- new argument. M-- starts a negative argument.
- u\bun\bni\biv\bve\ber\brs\bsa\bal\bl-\b-a\bar\brg\bgu\bum\bme\ben\bnt\bt
- This is another way to specify an argument. If this command is
- followed by one or more digits, optionally with a leading minus
- sign, those digits define the argument. If the command is fol-
- lowed by digits, executing u\bun\bni\biv\bve\ber\brs\bsa\bal\bl-\b-a\bar\brg\bgu\bum\bme\ben\bnt\bt again ends the nu-
- meric argument, but is otherwise ignored. As a special case, if
- this command is immediately followed by a character that is nei-
- ther a digit nor minus sign, the argument count for the next
- command is multiplied by four. The argument count is initially
- one, so executing this function the first time makes the argu-
- ment count four, a second time makes the argument count sixteen,
- and so on.
-
- C\bCo\bom\bmp\bpl\ble\bet\bti\bin\bng\bg
- c\bco\bom\bmp\bpl\ble\bet\bte\be (\b(T\bTA\bAB\bB)\b)
- Attempt to perform completion on the text before point. B\bBa\bas\bsh\bh
- attempts completion by first checking for any programmable com-
- pletions for the command word (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 be-
- low), otherwise treating the text as a variable (if the text be-
- gins with $\b$), username (if the text begins with ~\b~), hostname (if
- the text begins with @\b@), or command (including aliases, func-
- tions, and builtins) in turn. If none of these produces a
- match, it falls back to filename completion.
- p\bpo\bos\bss\bsi\bib\bbl\ble\be-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs (\b(M\bM-\b-?\b?)\b)
- List the possible completions of the text before point. When
- displaying completions, r\bre\bea\bad\bdl\bli\bin\bne\be sets the number of columns used
- for display to the value of c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bn-\b-d\bdi\bis\bsp\bpl\bla\bay\by-\b-w\bwi\bid\bdt\bth\bh, the value
- of the shell variable C\bCO\bOL\bLU\bUM\bMN\bNS\bS, or the screen width, in that or-
- der.
- i\bin\bns\bse\ber\brt\bt-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs (\b(M\bM-\b-*\b*)\b)
- Insert all completions of the text before point that would have
- been generated by p\bpo\bos\bss\bsi\bib\bbl\ble\be-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs, separated by a space.
- m\bme\ben\bnu\bu-\b-c\bco\bom\bmp\bpl\ble\bet\bte\be
- Similar to c\bco\bom\bmp\bpl\ble\bet\bte\be, but replaces the word to be completed with
- a single match from the list of possible completions. Repeat-
- edly executing m\bme\ben\bnu\bu-\b-c\bco\bom\bmp\bpl\ble\bet\bte\be steps through the list of possible
- completions, inserting each match in turn. At the end of the
- list of completions, m\bme\ben\bnu\bu-\b-c\bco\bom\bmp\bpl\ble\bet\bte\be rings the bell (subject to
- the setting of b\bbe\bel\bll\bl-\b-s\bst\bty\byl\ble\be) and restores the original text. An
- argument of _\bn moves _\bn positions forward in the list of matches;
- a negative argument moves backward through the list. This com-
- mand is intended to be bound to T\bTA\bAB\bB, but is unbound by default.
- m\bme\ben\bnu\bu-\b-c\bco\bom\bmp\bpl\ble\bet\bte\be-\b-b\bba\bac\bck\bkw\bwa\bar\brd\bd
- Identical to m\bme\ben\bnu\bu-\b-c\bco\bom\bmp\bpl\ble\bet\bte\be, but moves backward through the list
- of possible completions, as if m\bme\ben\bnu\bu-\b-c\bco\bom\bmp\bpl\ble\bet\bte\be had been given a
- negative argument. This command is unbound by default.
- e\bex\bxp\bpo\bor\brt\bt-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs
- Perform completion on the word before point as described above
- and write the list of possible completions to r\bre\bea\bad\bdl\bli\bin\bne\be's output
- stream using the following format, writing information on sepa-
- rate lines:
-
- +\bo the number of matches _\bN;
- +\bo the word being completed;
- +\bo _\bS:_\bE, where _\bS and _\bE are the start and end offsets of the
- word in the r\bre\bea\bad\bdl\bli\bin\bne\be line buffer; then
- +\bo each match, one per line
-
- If there are no matches, the first line will be "0", and this
- command does not print any output after the _\bS:_\bE. If there is
- only a single match, this prints a single line containing it.
- If there is more than one match, this prints the common prefix
- of the matches, which may be empty, on the first line after the
- _\bS:_\bE, then the matches on subsequent lines. In this case, _\bN will
- include the first line with the common prefix.
-
- The user or application should be able to accommodate the possi-
- bility of a blank line. The intent is that the user or applica-
- tion reads _\bN lines after the line containing _\bS:_\bE to obtain the
- match list. This command is unbound by default.
-
- d\bde\bel\ble\bet\bte\be-\b-c\bch\bha\bar\br-\b-o\bor\br-\b-l\bli\bis\bst\bt
- Deletes the character under the cursor if not at the beginning
- or end of the line (like d\bde\bel\ble\bet\bte\be-\b-c\bch\bha\bar\br). At the end of the line,
- it behaves identically to p\bpo\bos\bss\bsi\bib\bbl\ble\be-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs. This command is
- unbound by default.
-
- c\bco\bom\bmp\bpl\ble\bet\bte\be-\b-f\bfi\bil\ble\ben\bna\bam\bme\be (\b(M\bM-\b-/\b/)\b)
- Attempt filename completion on the text before point.
-
- p\bpo\bos\bss\bsi\bib\bbl\ble\be-\b-f\bfi\bil\ble\ben\bna\bam\bme\be-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs (\b(C\bC-\b-x\bx /\b/)\b)
- List the possible completions of the text before point, treating
- it as a filename.
-
- c\bco\bom\bmp\bpl\ble\bet\bte\be-\b-u\bus\bse\ber\brn\bna\bam\bme\be (\b(M\bM-\b-~\b~)\b)
- Attempt completion on the text before point, treating it as a
- username.
-
- p\bpo\bos\bss\bsi\bib\bbl\ble\be-\b-u\bus\bse\ber\brn\bna\bam\bme\be-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs (\b(C\bC-\b-x\bx ~\b~)\b)
- List the possible completions of the text before point, treating
- it as a username.
-
- c\bco\bom\bmp\bpl\ble\bet\bte\be-\b-v\bva\bar\bri\bia\bab\bbl\ble\be (\b(M\bM-\b-$\b$)\b)
- Attempt completion on the text before point, treating it as a
- shell variable.
-
- p\bpo\bos\bss\bsi\bib\bbl\ble\be-\b-v\bva\bar\bri\bia\bab\bbl\ble\be-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs (\b(C\bC-\b-x\bx $\b$)\b)
- List the possible completions of the text before point, treating
- it as a shell variable.
-
- c\bco\bom\bmp\bpl\ble\bet\bte\be-\b-h\bho\bos\bst\btn\bna\bam\bme\be (\b(M\bM-\b-@\b@)\b)
- Attempt completion on the text before point, treating it as a
- hostname.
-
- p\bpo\bos\bss\bsi\bib\bbl\ble\be-\b-h\bho\bos\bst\btn\bna\bam\bme\be-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs (\b(C\bC-\b-x\bx @\b@)\b)
- List the possible completions of the text before point, treating
- it as a hostname.
-
- c\bco\bom\bmp\bpl\ble\bet\bte\be-\b-c\bco\bom\bmm\bma\ban\bnd\bd (\b(M\bM-\b-!\b!)\b)
- Attempt completion on the text before point, treating it as a
- command name. Command completion attempts to match the text
- against aliases, reserved words, shell functions, shell
- builtins, and finally executable filenames, in that order.
-
- p\bpo\bos\bss\bsi\bib\bbl\ble\be-\b-c\bco\bom\bmm\bma\ban\bnd\bd-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs (\b(C\bC-\b-x\bx !\b!)\b)
- List the possible completions of the text before point, treating
- it as a command name.
-
- d\bdy\byn\bna\bam\bmi\bic\bc-\b-c\bco\bom\bmp\bpl\ble\bet\bte\be-\b-h\bhi\bis\bst\bto\bor\bry\by (\b(M\bM-\b-T\bTA\bAB\bB)\b)
- Attempt completion on the text before point, comparing the text
- against history list entries for possible completion matches.
-
- d\bda\bab\bbb\bbr\bre\bev\bv-\b-e\bex\bxp\bpa\ban\bnd\bd
- Attempt menu completion on the text before point, comparing the
- text against lines from the history list for possible completion
- matches.
-
- c\bco\bom\bmp\bpl\ble\bet\bte\be-\b-i\bin\bnt\bto\bo-\b-b\bbr\bra\bac\bce\bes\bs (\b(M\bM-\b-{\b{)\b)
- Perform filename completion and insert the list of possible com-
- pletions enclosed within braces so the list is available to the
- shell (see B\bBr\bra\bac\bce\be E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn above).
-
- K\bKe\bey\byb\bbo\boa\bar\brd\bd M\bMa\bac\bcr\bro\bos\bs
- s\bst\bta\bar\brt\bt-\b-k\bkb\bbd\bd-\b-m\bma\bac\bcr\bro\bo (\b(C\bC-\b-x\bx (\b()\b)
- Begin saving the characters typed into the current keyboard
- macro.
- e\ben\bnd\bd-\b-k\bkb\bbd\bd-\b-m\bma\bac\bcr\bro\bo (\b(C\bC-\b-x\bx )\b))\b)
- Stop saving the characters typed into the current keyboard macro
- and store the definition.
- c\bca\bal\bll\bl-\b-l\bla\bas\bst\bt-\b-k\bkb\bbd\bd-\b-m\bma\bac\bcr\bro\bo (\b(C\bC-\b-x\bx e\be)\b)
- Re-execute the last keyboard macro defined, by making the char-
- acters in the macro appear as if typed at the keyboard.
- p\bpr\bri\bin\bnt\bt-\b-l\bla\bas\bst\bt-\b-k\bkb\bbd\bd-\b-m\bma\bac\bcr\bro\bo (\b()\b)
- Print the last keyboard macro defined in a format suitable for
- the _\bi_\bn_\bp_\bu_\bt_\br_\bc file.
-
- M\bMi\bis\bsc\bce\bel\bll\bla\ban\bne\beo\bou\bus\bs
- r\bre\be-\b-r\bre\bea\bad\bd-\b-i\bin\bni\bit\bt-\b-f\bfi\bil\ble\be (\b(C\bC-\b-x\bx C\bC-\b-r\br)\b)
- Read in the contents of the _\bi_\bn_\bp_\bu_\bt_\br_\bc file, and incorporate any
- bindings or variable assignments found there.
- a\bab\bbo\bor\brt\bt (\b(C\bC-\b-g\bg)\b)
- Abort the current editing command and ring the terminal's bell
- (subject to the setting of b\bbe\bel\bll\bl-\b-s\bst\bty\byl\ble\be).
- d\bdo\bo-\b-l\blo\bow\bwe\ber\brc\bca\bas\bse\be-\b-v\bve\ber\brs\bsi\bio\bon\bn (\b(M\bM-\b-A\bA,\b, M\bM-\b-B\bB,\b, M\bM-\b-_\bx,\b, ...)\b)
- If the metafied character _\bx is uppercase, run the command that
- is bound to the corresponding metafied lowercase character. The
- behavior is undefined if _\bx is already lowercase.
- p\bpr\bre\bef\bfi\bix\bx-\b-m\bme\bet\bta\ba (\b(E\bES\bSC\bC)\b)
- Metafy the next character typed. E\bES\bSC\bC f\bf is equivalent to M\bMe\bet\bta\ba-\b-f\bf.
- u\bun\bnd\bdo\bo (\b(C\bC-\b-_\b_,\b, C\bC-\b-x\bx C\bC-\b-u\bu)\b)
- Incremental undo, separately remembered for each line.
- r\bre\bev\bve\ber\brt\bt-\b-l\bli\bin\bne\be (\b(M\bM-\b-r\br)\b)
- Undo all changes made to this line. This is like executing the
- u\bun\bnd\bdo\bo command enough times to return the line to its initial
- state.
- t\bti\bil\bld\bde\be-\b-e\bex\bxp\bpa\ban\bnd\bd (\b(M\bM-\b-&\b&)\b)
- Perform tilde expansion on the current word.
- s\bse\bet\bt-\b-m\bma\bar\brk\bk (\b(C\bC-\b-@\b@,\b, M\bM-\b-<\b<s\bsp\bpa\bac\bce\be>\b>)\b)
- Set the mark to the point. If a numeric argument is supplied,
- set the mark to that position.
- e\bex\bxc\bch\bha\ban\bng\bge\be-\b-p\bpo\boi\bin\bnt\bt-\b-a\ban\bnd\bd-\b-m\bma\bar\brk\bk (\b(C\bC-\b-x\bx C\bC-\b-x\bx)\b)
- Swap the point with the mark. Set the current cursor position
- to the saved position, then set the mark to the old cursor posi-
- tion.
- c\bch\bha\bar\bra\bac\bct\bte\ber\br-\b-s\bse\bea\bar\brc\bch\bh (\b(C\bC-\b-]\b])\b)
- Read a character and move point to the next occurrence of that
- character. A negative argument searches for previous occur-
- rences.
- c\bch\bha\bar\bra\bac\bct\bte\ber\br-\b-s\bse\bea\bar\brc\bch\bh-\b-b\bba\bac\bck\bkw\bwa\bar\brd\bd (\b(M\bM-\b-C\bC-\b-]\b])\b)
- Read a character and move point to the previous occurrence of
- that character. A negative argument searches for subsequent oc-
- currences.
- s\bsk\bki\bip\bp-\b-c\bcs\bsi\bi-\b-s\bse\beq\bqu\bue\ben\bnc\bce\be
- Read enough characters to consume a multi-key sequence such as
- those defined for keys like Home and End. CSI sequences begin
- with a Control Sequence Indicator (CSI), usually _\bE_\bS_\bC _\b[. If this
- sequence is bound to "\e[", keys producing CSI sequences have no
- effect unless explicitly bound to a r\bre\bea\bad\bdl\bli\bin\bne\be command, instead of
- inserting stray characters into the editing buffer. This is un-
- bound by default, but usually bound to _\bE_\bS_\bC _\b[.
- i\bin\bns\bse\ber\brt\bt-\b-c\bco\bom\bmm\bme\ben\bnt\bt (\b(M\bM-\b-#\b#)\b)
- Without a numeric argument, insert the value of the r\bre\bea\bad\bdl\bli\bin\bne\be
- c\bco\bom\bmm\bme\ben\bnt\bt-\b-b\bbe\beg\bgi\bin\bn variable at the beginning of the current line. If
- a numeric argument is supplied, this command acts as a toggle:
- if the characters at the beginning of the line do not match the
- value of c\bco\bom\bmm\bme\ben\bnt\bt-\b-b\bbe\beg\bgi\bin\bn, insert the value; otherwise delete the
- characters in c\bco\bom\bmm\bme\ben\bnt\bt-\b-b\bbe\beg\bgi\bin\bn from the beginning of the line. In
- either case, the line is accepted as if a newline had been
- typed. The default value of c\bco\bom\bmm\bme\ben\bnt\bt-\b-b\bbe\beg\bgi\bin\bn causes this command
- to make the current line a shell comment. If a numeric argument
- causes the comment character to be removed, the line will be ex-
- ecuted by the shell.
- s\bsp\bpe\bel\bll\bl-\b-c\bco\bor\brr\bre\bec\bct\bt-\b-w\bwo\bor\brd\bd (\b(C\bC-\b-x\bx s\bs)\b)
- Perform spelling correction on the current word, treating it as
- a directory or filename, in the same way as the c\bcd\bds\bsp\bpe\bel\bll\bl shell
- option. Word boundaries are the same as those used by
- s\bsh\bhe\bel\bll\bl-\b-f\bfo\bor\brw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd.
- g\bgl\blo\bob\bb-\b-c\bco\bom\bmp\bpl\ble\bet\bte\be-\b-w\bwo\bor\brd\bd (\b(M\bM-\b-g\bg)\b)
- Treat the word before point as a pattern for pathname expansion,
- with an asterisk implicitly appended, then use the pattern to
- generate a list of matching file names for possible completions.
- g\bgl\blo\bob\bb-\b-e\bex\bxp\bpa\ban\bnd\bd-\b-w\bwo\bor\brd\bd (\b(C\bC-\b-x\bx *\b*)\b)
- Treat the word before point as a pattern for pathname expansion,
- and insert the list of matching file names, replacing the word.
- If a numeric argument is supplied, append a *\b* before pathname
- expansion.
- g\bgl\blo\bob\bb-\b-l\bli\bis\bst\bt-\b-e\bex\bxp\bpa\ban\bns\bsi\bio\bon\bns\bs (\b(C\bC-\b-x\bx g\bg)\b)
- Display the list of expansions that would have been generated by
- g\bgl\blo\bob\bb-\b-e\bex\bxp\bpa\ban\bnd\bd-\b-w\bwo\bor\brd\bd and redisplay the line. If a numeric argument
- is supplied, append a *\b* before pathname expansion.
- d\bdu\bum\bmp\bp-\b-f\bfu\bun\bnc\bct\bti\bio\bon\bns\bs
- Print all of the functions and their key bindings to the r\bre\bea\bad\bd-\b-
- l\bli\bin\bne\be output stream. If a numeric argument is supplied, the out-
- put is formatted in such a way that it can be made part of an
- _\bi_\bn_\bp_\bu_\bt_\br_\bc file.
- d\bdu\bum\bmp\bp-\b-v\bva\bar\bri\bia\bab\bbl\ble\bes\bs
- Print all of the settable r\bre\bea\bad\bdl\bli\bin\bne\be variables and their values to
- the r\bre\bea\bad\bdl\bli\bin\bne\be output stream. If a numeric argument is supplied,
- the output is formatted in such a way that it can be made part
- of an _\bi_\bn_\bp_\bu_\bt_\br_\bc file.
- d\bdu\bum\bmp\bp-\b-m\bma\bac\bcr\bro\bos\bs
- Print all of the r\bre\bea\bad\bdl\bli\bin\bne\be key sequences bound to macros and the
- strings they output to the r\bre\bea\bad\bdl\bli\bin\bne\be output stream. If a numeric
- argument is supplied, the output is formatted in such a way that
- it can be made part of an _\bi_\bn_\bp_\bu_\bt_\br_\bc file.
- e\bex\bxe\bec\bcu\but\bte\be-\b-n\bna\bam\bme\bed\bd-\b-c\bco\bom\bmm\bma\ban\bnd\bd (\b(M\bM-\b-x\bx)\b)
- Read a bindable r\bre\bea\bad\bdl\bli\bin\bne\be command name from the input and execute
- the function to which it's bound, as if the key sequence to
- which it was bound appeared in the input. If this function is
- supplied with a numeric argument, it passes that argument to the
- function it executes.
- d\bdi\bis\bsp\bpl\bla\bay\by-\b-s\bsh\bhe\bel\bll\bl-\b-v\bve\ber\brs\bsi\bio\bon\bn (\b(C\bC-\b-x\bx C\bC-\b-v\bv)\b)
- Display version information about the current instance of b\bba\bas\bsh\bh.
-
- P\bPr\bro\bog\bgr\bra\bam\bmm\bma\bab\bbl\ble\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn
- When a user attempts word completion for a command or an argument to a
- command for which a completion specification (a _\bc_\bo_\bm_\bp_\bs_\bp_\be_\bc) has been de-
- fined using the c\bco\bom\bmp\bpl\ble\bet\bte\be builtin (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 invokes the programmable completion facilities.
-
- First, b\bba\bas\bsh\bh identifies the command name. If a compspec has been de-
- fined for that command, the compspec is used to generate the list of
- possible completions for the word. If the command word is the empty
- string (completion attempted at the beginning of an empty line), b\bba\bas\bsh\bh
- uses any compspec defined with the -\b-E\bE option to c\bco\bom\bmp\bpl\ble\bet\bte\be. The -\b-I\bI op-
- tion to c\bco\bom\bmp\bpl\ble\bet\bte\be indicates that the command word is the first non-as-
- signment word on the line, or after a command delimiter such as ;\b; or |\b|.
- This usually indicates command name completion.
-
- If the command word is a full pathname, b\bba\bas\bsh\bh searches for a compspec
- for the full pathname first. If there is no compspec for the full
- pathname, b\bba\bas\bsh\bh attempts to find a compspec for the portion following
- the final slash. If those searches do not result in a compspec, or if
- there is no compspec for the command word, b\bba\bas\bsh\bh uses any compspec de-
- fined with the -\b-D\bD option to c\bco\bom\bmp\bpl\ble\bet\bte\be as the default. If there is no
- default compspec, b\bba\bas\bsh\bh performs alias expansion on the command word as
- a final resort, and attempts to find a compspec for the command word
- resulting from any successful expansion.
-
- If a compspec is not found, b\bba\bas\bsh\bh performs its default completion as de-
- scribed above under C\bCo\bom\bmp\bpl\ble\bet\bti\bin\bng\bg. Otherwise, once a compspec has been
- found, b\bba\bas\bsh\bh uses it to generate the list of matching words.
-
- First, b\bba\bas\bsh\bh performs the _\ba_\bc_\bt_\bi_\bo_\bn_\bs specified by the compspec. This only
- returns matches which are prefixes of the word being completed. When
- the -\b-f\bf or -\b-d\bd option is used for filename or directory name completion,
- b\bba\bas\bsh\bh uses the shell variable F\bFI\bIG\bGN\bNO\bOR\bRE\bE to filter the matches.
-
- Next, programmable completion generates matches specified by a pathname
- expansion pattern supplied as an argument to the -\b-G\bG option. The words
- generated by the pattern need not match the word being completed. B\bBa\bas\bsh\bh
- uses the F\bFI\bIG\bGN\bNO\bOR\bRE\bE variable to filter the matches, but does not use the
- G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE shell variable.
-
- Next, completion considers the string specified as the argument to the
- -\b-W\bW option. The string is first split using the characters in the I\bIF\bFS\bS
- special variable as delimiters. This honors shell quoting within the
- string, in order to provide a mechanism for the words to contain shell
- metacharacters or characters in the value of I\bIF\bFS\bS. Each word is then
- expanded using brace expansion, tilde expansion, parameter and variable
- expansion, command substitution, and arithmetic expansion, as described
- above under E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN. The results are split using the rules described
- above under W\bWo\bor\brd\bd S\bSp\bpl\bli\bit\btt\bti\bin\bng\bg. The results of the expansion are prefix-
- matched against the word being completed, and the matching words become
- possible completions.
-
- After these matches have been generated, b\bba\bas\bsh\bh executes any shell func-
- tion or command specified with the -\b-F\bF and -\b-C\bC options. When the command
- or function is invoked, b\bba\bas\bsh\bh assigns values to the C\bCO\bOM\bMP\bP_\b_L\bLI\bIN\bNE\bE,
- C\bCO\bOM\bMP\bP_\b_P\bPO\bOI\bIN\bNT\bT, C\bCO\bOM\bMP\bP_\b_K\bKE\bEY\bY, and C\bCO\bOM\bMP\bP_\b_T\bTY\bYP\bPE\bE variables as described above under
- S\bSh\bhe\bel\bll\bl V\bVa\bar\bri\bia\bab\bbl\ble\bes\bs. If a shell function is being invoked, b\bba\bas\bsh\bh also sets
- the C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDS\bS and C\bCO\bOM\bMP\bP_\b_C\bCW\bWO\bOR\bRD\bD variables. When the function or command
- is invoked, the first argument ($\b$1\b1) is the name of the command whose
- arguments are being completed, the second argument ($\b$2\b2) is the word be-
- ing completed, and the third argument ($\b$3\b3) is the word preceding the
- word being completed on the current command line. There is no filter-
- ing of the generated completions against the word being completed; the
- function or command has complete freedom in generating the matches and
- they do not need to match a prefix of the word.
-
- Any function specified with -\b-F\bF is invoked first. The function may use
- any of the shell facilities, including the c\bco\bom\bmp\bpg\bge\ben\bn and c\bco\bom\bmp\bpo\bop\bpt\bt builtins
- described below, to generate the matches. It must put the possible
- completions in the C\bCO\bOM\bMP\bPR\bRE\bEP\bPL\bLY\bY array variable, one per array element.
-
- Next, any command specified with the -\b-C\bC option is invoked in an envi-
- ronment equivalent to command substitution. It should print a list of
- completions, one per line, to the standard output. Backslash will es-
- cape a newline, if necessary. These are added to the set of possible
- completions.
-
- External commands that are invoked to generate completions ( "external
- completers") receive the word preceding the completion word as an argu-
- ment, as described above. This provides context that is sometimes use-
- ful, but may include information that is considered sensitive or part
- of a word expansion that will not appear in the command line after ex-
- pansion. That word may be visible in process listings or in audit
- logs. This may be a concern to users and completion specification au-
- thors if there is sensitive information on the command line before ex-
- pansion, since completion takes place before words are expanded. If
- this is an issue, completion authors should use functions as wrappers
- around external commands and pass context information to the external
- command in a different way. External completers can infer context from
- the C\bCO\bOM\bMP\bP_\b_L\bLI\bIN\bNE\bE and C\bCO\bOM\bMP\bP_\b_P\bPO\bOI\bIN\bNT\bT environment variables, but they need to
- ensure they break words in the same way r\bre\bea\bad\bdl\bli\bin\bne\be does, using the
- C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDB\bBR\bRE\bEA\bAK\bKS\bS variable.
-
- After generating all of the possible completions, b\bba\bas\bsh\bh applies any fil-
- ter specified with the -\b-X\bX option to the completions in the list. The
- filter is a pattern as used for pathname expansion; a &\b& in the pattern
- is replaced with the text of the word being completed. A literal &\b& may
- be escaped with a backslash; the backslash is removed before attempting
- a match. Any completion that matches the pattern is removed from the
- list. A leading !\b! negates the pattern; in this case b\bba\bas\bsh\bh removes any
- completion that does not match the pattern. If the n\bno\boc\bca\bas\bse\bem\bma\bat\btc\bch\bh shell
- option is enabled, b\bba\bas\bsh\bh performs the match without regard to the case
- of alphabetic characters.
-
- Finally, programmable completion adds any prefix and suffix specified
- with the -\b-P\bP and -\b-S\bS options, respectively, to each completion, and re-
- turns the result to r\bre\bea\bad\bdl\bli\bin\bne\be as the list of possible completions.
-
- If the previously-applied actions do not generate any matches, and the
- -\b-o\bo d\bdi\bir\brn\bna\bam\bme\bes\bs option was supplied to c\bco\bom\bmp\bpl\ble\bet\bte\be when the compspec was de-
- fined, b\bba\bas\bsh\bh attempts directory name completion.
-
- If the -\b-o\bo p\bpl\blu\bus\bsd\bdi\bir\brs\bs option was supplied to c\bco\bom\bmp\bpl\ble\bet\bte\be when the compspec
- was defined, b\bba\bas\bsh\bh attempts directory name completion and adds any
- matches to the set of possible completions.
-
- By default, if a compspec is found, whatever it generates is returned
- to the completion code as the full set of possible completions. The
- default b\bba\bas\bsh\bh completions and the r\bre\bea\bad\bdl\bli\bin\bne\be default of filename comple-
- tion are disabled. If the -\b-o\bo b\bba\bas\bsh\bhd\bde\bef\bfa\bau\bul\blt\bt option was supplied to c\bco\bom\bm-\b-
- p\bpl\ble\bet\bte\be when the compspec was defined, and the compspec generates no
- matches, b\bba\bas\bsh\bh attempts its default completions. If the compspec and,
- if attempted, the default b\bba\bas\bsh\bh completions generate no matches, and the
- -\b-o\bo d\bde\bef\bfa\bau\bul\blt\bt option was supplied to c\bco\bom\bmp\bpl\ble\bet\bte\be when the compspec was de-
- fined, programmable completion performs r\bre\bea\bad\bdl\bli\bin\bne\be's default completion.
-
- The options supplied to c\bco\bom\bmp\bpl\ble\bet\bte\be and c\bco\bom\bmp\bpo\bop\bpt\bt can control how r\bre\bea\bad\bdl\bli\bin\bne\be
- treats the completions. For instance, the _\b-_\bo _\bf_\bu_\bl_\bl_\bq_\bu_\bo_\bt_\be option tells
- r\bre\bea\bad\bdl\bli\bin\bne\be to quote the matches as if they were filenames. See the de-
- scription of c\bco\bom\bmp\bpl\ble\bet\bte\be below for details.
-
- When a compspec indicates that it wants directory name completion, the
- programmable completion functions force r\bre\bea\bad\bdl\bli\bin\bne\be to append a slash to
- completed names which are symbolic links to directories, subject to the
- value of the m\bma\bar\brk\bk-\b-d\bdi\bir\bre\bec\bct\bto\bor\bri\bie\bes\bs r\bre\bea\bad\bdl\bli\bin\bne\be variable, regardless of the set-
- ting of the m\bma\bar\brk\bk-\b-s\bsy\bym\bml\bli\bin\bnk\bke\bed\bd-\b-d\bdi\bir\bre\bec\bct\bto\bor\bri\bie\bes\bs r\bre\bea\bad\bdl\bli\bin\bne\be variable.
-
- There is some support for dynamically modifying completions. This is
- most useful when used in combination with a default completion speci-
- fied with c\bco\bom\bmp\bpl\ble\bet\bte\be -\b-D\bD. It's possible for shell functions executed as
- completion functions to indicate that completion should be retried by
- returning an exit status of 124. If a shell function returns 124, and
- changes the compspec associated with the command on which completion is
- being attempted (supplied as the first argument when the function is
- executed), programmable completion restarts from the beginning, with an
- attempt to find a new compspec for that command. This can be used to
- build a set of completions dynamically as completion is attempted,
- rather than loading them all at once.
-
- For instance, assuming that there is a library of compspecs, each kept
- in a file corresponding to the name of the command, the following de-
- fault completion function would load completions dynamically:
- _completion_loader()
- {
- . "/etc/bash_completion.d/$1.sh" \
- >/dev/null 2>&1 && return 124
- }
- complete -D -F _completion_loader \
- -o bashdefault -o default
-
-H\bHI\bIS\bST\bTO\bOR\bRY\bY
- When the -\b-o\bo h\bhi\bis\bst\bto\bor\bry\by option to the s\bse\bet\bt builtin is enabled, the shell
- provides access to the _\bc_\bo_\bm_\bm_\ba_\bn_\bd _\bh_\bi_\bs_\bt_\bo_\br_\by, the list of commands previously
- typed. The value of the H\bHI\bIS\bST\bTS\bSI\bIZ\bZE\bE variable is used as the number of
- commands to save in a history list: the shell saves the text of the
- last H\bHI\bIS\bST\bTS\bSI\bIZ\bZE\bE commands (default 500). The shell stores each command in
- the history list prior to parameter and variable expansion (see E\bEX\bXP\bPA\bAN\bN-\b-
- S\bSI\bIO\bON\bN above) but after history expansion is performed, subject to the
- values of the shell variables H\bHI\bIS\bST\bTI\bIG\bGN\bNO\bOR\bRE\bE and H\bHI\bIS\bST\bTC\bCO\bON\bNT\bTR\bRO\bOL\bL.
-
- On startup, b\bba\bas\bsh\bh initializes the history list by reading history en-
- tries from the file named by the H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE variable (default
- _\b~_\b/_\b._\bb_\ba_\bs_\bh_\b__\bh_\bi_\bs_\bt_\bo_\br_\by). That file is referred to as the _\bh_\bi_\bs_\bt_\bo_\br_\by _\bf_\bi_\bl_\be. The
- history file is truncated, if necessary, to contain no more than the
- number of history entries specified by the value of the H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bES\bSI\bIZ\bZE\bE
- variable. If H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bES\bSI\bIZ\bZE\bE is unset, or set to null, a non-numeric
- value, or a numeric value less than zero, the history file is not trun-
- cated.
-
- When the history file is read, lines beginning with the history comment
- character followed immediately by a digit are interpreted as timestamps
- for the following history line. These timestamps are optionally dis-
- played depending on the value of the H\bHI\bIS\bST\bTT\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT variable. When
- present, history timestamps delimit history entries, making multi-line
- entries possible.
-
- When a shell with history enabled exits, b\bba\bas\bsh\bh copies the last $\b$H\bHI\bIS\bST\bTS\bSI\bIZ\bZE\bE
- entries from the history list to $\b$H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE. If the h\bhi\bis\bst\bta\bap\bpp\bpe\ben\bnd\bd shell
- option is enabled (see the description of s\bsh\bho\bop\bpt\bt under S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN
- C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below), b\bba\bas\bsh\bh appends the entries to the history file, other-
- wise it overwrites the history file. If H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE is unset or null, or
- if the history file is unwritable, the history is not saved. After
- saving the history, b\bba\bas\bsh\bh truncates the history file to contain no more
- than H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bES\bSI\bIZ\bZE\bE lines as described above.
-
- If the H\bHI\bIS\bST\bTT\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT variable is set, the shell writes the timestamp
- information associated with each history entry to the history file,
- marked with the history comment character, so timestamps are preserved
- across shell sessions. This uses the history comment character to dis-
- tinguish timestamps from other history lines. As above, when using
- H\bHI\bIS\bST\bTT\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT, the timestamps delimit multi-line history entries.
-
- The f\bfc\bc 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) will list or
- edit and re-execute a portion of the history list. The h\bhi\bis\bst\bto\bor\bry\by builtin
- can display or modify the history list and manipulate the history file.
- When using command-line editing, search commands are available in each
- editing mode that provide access to the history list.
-
- The shell allows control over which commands are saved on the history
- list. The H\bHI\bIS\bST\bTC\bCO\bON\bNT\bTR\bRO\bOL\bL and H\bHI\bIS\bST\bTI\bIG\bGN\bNO\bOR\bRE\bE variables are used to save only a
- subset of the commands entered. If the c\bcm\bmd\bdh\bhi\bis\bst\bt shell option is en-
- abled, the shell attempts to save each line of a multi-line command in
- the same history entry, adding semicolons where necessary to preserve
- syntactic correctness. The l\bli\bit\bth\bhi\bis\bst\bt shell option modifies c\bcm\bmd\bdh\bhi\bis\bst\bt by
- saving the command with embedded newlines instead of semicolons. See
- the description of the s\bsh\bho\bop\bpt\bt builtin below under S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
- for information on setting and unsetting shell options.
-
-H\bHI\bIS\bST\bTO\bOR\bRY\bY E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN
- The shell supports a history expansion feature that is similar to the
- history expansion in c\bcs\bsh\bh. This section describes what syntax features
- are available.
-
- History expansion is enabled by default for interactive shells, and can
- be disabled using the +\b+H\bH 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). Non-interactive shells do not perform history
- expansion by default, but it can be enabled with "set -H".
-
- History expansions introduce words from the history list into the input
- stream, making it easy to repeat commands, insert the arguments to a
- previous command into the current input line, or fix errors in previous
- commands quickly.
-
- History expansion is performed immediately after a complete line is
- read, before the shell breaks it into words, and is performed on each
- line individually. The shell attempts to inform the history expansion
- functions about quoting still in effect from previous lines.
-
- It takes place in two parts. The first is to determine which history
- list entry to use during substitution. The second is to select por-
- tions of that entry to include into the current one.
-
- The entry selected from the history is the _\be_\bv_\be_\bn_\bt, and the portions of
- that entry that are acted upon are _\bw_\bo_\br_\bd_\bs. Various _\bm_\bo_\bd_\bi_\bf_\bi_\be_\br_\bs are avail-
- able to manipulate the selected words. The entry is split into words
- in the same fashion as when reading input, so that several _\bm_\be_\bt_\ba_\bc_\bh_\ba_\br_\ba_\bc_\b-
- _\bt_\be_\br-separated words surrounded by quotes are considered one word. The
- _\be_\bv_\be_\bn_\bt _\bd_\be_\bs_\bi_\bg_\bn_\ba_\bt_\bo_\br selects the event, the optional _\bw_\bo_\br_\bd _\bd_\be_\bs_\bi_\bg_\bn_\ba_\bt_\bo_\br se-
- lects words from the event, and various optional _\bm_\bo_\bd_\bi_\bf_\bi_\be_\br_\bs are avail-
- able to manipulate the selected words.
-
- History expansions are introduced by the appearance of the history ex-
- pansion character, which is !\b! by default. History expansions may ap-
- pear anywhere in the input, but do not nest.
-
- Only backslash (\\b\) and single quotes can quote the history expansion
- character, but the history expansion character is also treated as
- quoted if it immediately precedes the closing double quote in a double-
- quoted string.
-
- Several characters inhibit history expansion if found immediately fol-
- lowing the history expansion character, even if it is unquoted: space,
- tab, newline, carriage return, =\b=, and the other shell metacharacters
- defined above.
-
- There is a special abbreviation for substitution, active when the _\bq_\bu_\bi_\bc_\bk
- _\bs_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn character (described above under h\bhi\bis\bst\btc\bch\bha\bar\brs\bs) is the first
- character on the line. It selects the previous history list entry, us-
- ing an event designator equivalent to !\b!!\b!, and substitutes one string
- for another in that entry. It is described below under E\bEv\bve\ben\bnt\bt D\bDe\bes\bsi\big\bgn\bna\ba-\b-
- t\bto\bor\brs\bs. This is the only history expansion that does not begin with the
- history expansion character.
-
- Several shell options settable with the s\bsh\bho\bop\bpt\bt builtin will modify his-
- tory expansion behavior (see the description of the s\bsh\bho\bop\bpt\bt builtin be-
- low).and If the h\bhi\bis\bst\btv\bve\ber\bri\bif\bfy\by shell option is enabled, and r\bre\bea\bad\bdl\bli\bin\bne\be is be-
- ing used, history substitutions are not immediately passed to the shell
- parser. Instead, the expanded line is reloaded into the r\bre\bea\bad\bdl\bli\bin\bne\be edit-
- ing buffer for further modification. If r\bre\bea\bad\bdl\bli\bin\bne\be is being used, and
- the h\bhi\bis\bst\btr\bre\bee\bed\bdi\bit\bt shell option is enabled, a failed history substitution
- is reloaded into the r\bre\bea\bad\bdl\bli\bin\bne\be editing buffer for correction.
-
- The -\b-p\bp option to the h\bhi\bis\bst\bto\bor\bry\by builtin command shows what a history ex-
- pansion will do before using it. The -\b-s\bs option to the h\bhi\bis\bst\bto\bor\bry\by builtin
- will add commands to the end of the history list without actually exe-
- cuting them, so that they are available for subsequent recall.
-
- The shell allows control of the various characters used by the history
- expansion mechanism (see the description of h\bhi\bis\bst\btc\bch\bha\bar\brs\bs above under S\bSh\bhe\bel\bll\bl
- V\bVa\bar\bri\bia\bab\bbl\ble\bes\bs). The shell uses the history comment character to mark his-
- tory timestamps when writing the history file.
-
- E\bEv\bve\ben\bnt\bt D\bDe\bes\bsi\big\bgn\bna\bat\bto\bor\brs\bs
- An event designator is a reference to an entry in the history list.
- The event designator consists of the portion of the word beginning with
- the history expansion character and ending with the word designator if
- present, or the end of the word. Unless the reference is absolute,
- events are relative to the current position in the history list.
-
- !\b! Start a history substitution, except when followed by a b\bbl\bla\ban\bnk\bk,
- newline, carriage return, =, or, when the e\bex\bxt\btg\bgl\blo\bob\bb shell option
- is enabled using the s\bsh\bho\bop\bpt\bt builtin, (.
- !\b!_\bn Refer to history list entry _\bn.
- !\b!-\b-_\bn Refer to the current entry minus _\bn.
- !\b!!\b! Refer to the previous entry. This is a synonym for "!-1".
- !\b!_\bs_\bt_\br_\bi_\bn_\bg
- Refer to the most recent command preceding the current position
- in the history list starting with _\bs_\bt_\br_\bi_\bn_\bg.
- !\b!?\b?_\bs_\bt_\br_\bi_\bn_\bg[\b[?\b?]\b]
- Refer to the most recent command preceding the current position
- in the history list containing _\bs_\bt_\br_\bi_\bn_\bg. The trailing ?\b? may be
- omitted if _\bs_\bt_\br_\bi_\bn_\bg is followed immediately by a newline. If
- _\bs_\bt_\br_\bi_\bn_\bg is missing, this uses the string from the most recent
- search; it is an error if there is no previous search string.
- ^\b^_\bs_\bt_\br_\bi_\bn_\bg_\b1^\b^_\bs_\bt_\br_\bi_\bn_\bg_\b2^\b^
- Quick substitution. Repeat the previous command, replacing
- _\bs_\bt_\br_\bi_\bn_\bg_\b1 with _\bs_\bt_\br_\bi_\bn_\bg_\b2. Equivalent to "!!:s^_\bs_\bt_\br_\bi_\bn_\bg_\b1^_\bs_\bt_\br_\bi_\bn_\bg_\b2^"
- (see M\bMo\bod\bdi\bif\bfi\bie\ber\brs\bs below).
- !\b!#\b# The entire command line typed so far.
-
- W\bWo\bor\brd\bd D\bDe\bes\bsi\big\bgn\bna\bat\bto\bor\brs\bs
- Word designators are used to select desired words from the event. They
- are optional; if the word designator isn't supplied, the history expan-
- sion uses the entire event. A :\b: separates the event specification from
- the word designator. It may be omitted if the word designator begins
- with a ^\b^, $\b$, *\b*, -\b-, or %\b%. Words are numbered from the beginning of the
- line, with the first word being denoted by 0 (zero). Words are in-
- serted into the current line separated by single spaces.
-
- 0\b0 (\b(z\bze\ber\bro\bo)\b)
- The zeroth word. For the shell, this is the command word.
- _\bn The _\bnth word.
- ^\b^ The first argument: word 1.
- $\b$ The last word. This is usually the last argument, but will ex-
- pand to the zeroth word if there is only one word in the line.
- %\b% The first word matched by the most recent "?_\bs_\bt_\br_\bi_\bn_\bg?" search, if
- the search string begins with a character that is part of a
- word. By default, searches begin at the end of each line and
- proceed to the beginning, so the first word matched is the one
- closest to the end of the line.
- _\bx-\b-_\by A range of words; "-_\by" abbreviates "0-_\by".
- *\b* All of the words but the zeroth. This is a synonym for "_\b1_\b-_\b$".
- It is not an error to use *\b* if there is just one word in the
- event; it expands to the empty string in that case.
- x\bx*\b* Abbreviates _\bx_\b-_\b$.
- x\bx-\b- Abbreviates _\bx_\b-_\b$ like x\bx*\b*, but omits the last word. If x\bx is miss-
- ing, it defaults to 0.
-
- If a word designator is supplied without an event specification, the
- previous command is used as the event, equivalent to !\b!!\b!.
-
- M\bMo\bod\bdi\bif\bfi\bie\ber\brs\bs
- After the optional word designator, the expansion may include a se-
- quence of one or more of the following modifiers, each preceded by a
- ":". These modify, or edit, the word or words selected from the his-
- tory event.
-
- h\bh Remove a trailing pathname component, leaving only the head.
- t\bt Remove all leading pathname components, leaving the tail.
- r\br Remove a trailing suffix of the form _\b._\bx_\bx_\bx, leaving the basename.
- e\be Remove all but the trailing suffix.
- p\bp Print the new command but do not execute it.
- q\bq Quote the substituted words, escaping further substitutions.
- x\bx Quote the substituted words as with q\bq, but break into words at
- b\bbl\bla\ban\bnk\bks\bs and newlines. The q\bq and x\bx modifiers are mutually exclu-
- sive; expansion uses the last one supplied.
- s\bs/\b/_\bo_\bl_\bd/\b/_\bn_\be_\bw/\b/
- Substitute _\bn_\be_\bw for the first occurrence of _\bo_\bl_\bd in the event
- line. Any character may be used as the delimiter in place of /.
- The final delimiter is optional if it is the last character of
- the event line. A single backslash quotes the delimiter in _\bo_\bl_\bd
- and _\bn_\be_\bw. If & appears in _\bn_\be_\bw, it is replaced with _\bo_\bl_\bd. A sin-
- gle backslash quotes the &. If _\bo_\bl_\bd is null, it is set to the
- last _\bo_\bl_\bd substituted, or, if no previous history substitutions
- took place, the last _\bs_\bt_\br_\bi_\bn_\bg in a !\b!?\b?_\bs_\bt_\br_\bi_\bn_\bg[\b[?\b?]\b] search. If _\bn_\be_\bw is
- null, each matching _\bo_\bl_\bd is deleted.
- &\b& Repeat the previous substitution.
- g\bg Cause changes to be applied over the entire event line. This is
- used in conjunction with ":\b:s\bs" (e.g., ":\b:g\bgs\bs/\b/_\bo_\bl_\bd/\b/_\bn_\be_\bw/\b/") or ":\b:&\b&".
- If used with ":\b:s\bs", any delimiter can be used in place of /, and
- the final delimiter is optional if it is the last character of
- the event line. An a\ba may be used as a synonym for g\bg.
- G\bG Apply the following "s\bs" or "&\b&" modifier once to each word in the
- event line.
-
-S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
- Unless otherwise noted, each builtin command documented in this section
- as accepting options preceded by -\b- accepts -\b--\b- to signify the end of the
- options. The :\b:, t\btr\bru\bue\be, f\bfa\bal\bls\bse\be, and t\bte\bes\bst\bt/[\b[ builtins do not accept options
- and do not treat -\b--\b- specially. The e\bex\bxi\bit\bt, l\blo\bog\bgo\bou\but\bt, r\bre\bet\btu\bur\brn\bn, b\bbr\bre\bea\bak\bk, c\bco\bon\bn-\b-
- t\bti\bin\bnu\bue\be, l\ble\bet\bt, and s\bsh\bhi\bif\bft\bt builtins accept and process arguments beginning
- with -\b- without requiring -\b--\b-. Other builtins that accept arguments but
- are not specified as accepting options interpret arguments beginning
- with -\b- as invalid options and require -\b--\b- to prevent this interpreta-
- tion.
-
- :\b: [_\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs]
- No effect; the command does nothing beyond expanding _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs
- and performing any specified redirections. The return status is
- zero.
-
- .\b. [-\b-p\bp _\bp_\ba_\bt_\bh] _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be [_\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs]
- s\bso\bou\bur\brc\bce\be [-\b-p\bp _\bp_\ba_\bt_\bh] _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be [_\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs]
- The .\b. command (s\bso\bou\bur\brc\bce\be) reads and execute commands from _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be
- in the current shell environment and returns the exit status of
- the last command executed from _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be.
-
- If _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be does not contain a slash, .\b. searches for it. If the
- -\b-p\bp option is supplied, .\b. treats _\bp_\ba_\bt_\bh as a colon-separated list
- of directories in which to find _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be; otherwise, .\b. uses the
- entries in P\bPA\bAT\bTH\bH to find the directory containing _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be.
- _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be does not need to be executable. When b\bba\bas\bsh\bh is not in
- posix mode, it searches the current directory if _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be is not
- found in P\bPA\bAT\bTH\bH, but does not search the current directory if -\b-p\bp
- is supplied. If the s\bso\bou\bur\brc\bce\bep\bpa\bat\bth\bh option to the s\bsh\bho\bop\bpt\bt builtin com-
- mand is turned off, .\b. does not search P\bPA\bAT\bTH\bH.
-
- If any _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs are supplied, they become the positional para-
- meters when _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be is executed. Otherwise the positional pa-
- rameters are unchanged.
-
- If the -\b-T\bT option is enabled, .\b. inherits any trap on D\bDE\bEB\bBU\bUG\bG; if it
- is not, any D\bDE\bEB\bBU\bUG\bG trap string is saved and restored around the
- call to .\b., and .\b. unsets the D\bDE\bEB\bBU\bUG\bG trap while it executes. If -\b-T\bT
- is not set, and the sourced file changes the D\bDE\bEB\bBU\bUG\bG trap, the new
- value persists after .\b. completes. The return status is the sta-
- tus of the last command executed from _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be (0 if no commands
- are executed), and non-zero if _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be is not found or cannot
- be read.
-
- a\bal\bli\bia\bas\bs [-\b-p\bp] [_\bn_\ba_\bm_\be[=_\bv_\ba_\bl_\bu_\be] ...]
- With no arguments or with the -\b-p\bp option, a\bal\bli\bia\bas\bs prints the list
- of aliases in the form a\bal\bli\bia\bas\bs _\bn_\ba_\bm_\be=_\bv_\ba_\bl_\bu_\be on standard output.
- When arguments are supplied, define an alias for each _\bn_\ba_\bm_\be whose
- _\bv_\ba_\bl_\bu_\be is given. A trailing space in _\bv_\ba_\bl_\bu_\be causes the next word
- to be checked for alias substitution when the alias is expanded
- during command parsing. For each _\bn_\ba_\bm_\be in the argument list for
- which no _\bv_\ba_\bl_\bu_\be is supplied, print the name and value of the
- alias _\bn_\ba_\bm_\be. a\bal\bli\bia\bas\bs returns true unless a _\bn_\ba_\bm_\be is given (without
- a corresponding =_\bv_\ba_\bl_\bu_\be) for which no alias has been defined.
-
- b\bbg\bg [_\bj_\bo_\bb_\bs_\bp_\be_\bc ...]
- Resume each suspended job _\bj_\bo_\bb_\bs_\bp_\be_\bc in the background, as if it
- had been started with &\b&. If _\bj_\bo_\bb_\bs_\bp_\be_\bc is not present, the shell
- uses its notion of the _\bc_\bu_\br_\br_\be_\bn_\bt _\bj_\bo_\bb. b\bbg\bg _\bj_\bo_\bb_\bs_\bp_\be_\bc returns 0 unless
- run when job control is disabled or, when run with job control
- enabled, any specified _\bj_\bo_\bb_\bs_\bp_\be_\bc was not found or was started
- without job control.
-
- b\bbi\bin\bnd\bd [-\b-m\bm _\bk_\be_\by_\bm_\ba_\bp] [-\b-l\bls\bsv\bvS\bSV\bVX\bX]
- b\bbi\bin\bnd\bd [-\b-m\bm _\bk_\be_\by_\bm_\ba_\bp] [-\b-q\bq _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn] [-\b-u\bu _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn] [-\b-r\br _\bk_\be_\by_\bs_\be_\bq]
- b\bbi\bin\bnd\bd [-\b-m\bm _\bk_\be_\by_\bm_\ba_\bp] -\b-f\bf _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be
- b\bbi\bin\bnd\bd [-\b-m\bm _\bk_\be_\by_\bm_\ba_\bp] -\b-x\bx _\bk_\be_\by_\bs_\be_\bq[:] _\bs_\bh_\be_\bl_\bl_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd
- b\bbi\bin\bnd\bd [-\b-m\bm _\bk_\be_\by_\bm_\ba_\bp] _\bk_\be_\by_\bs_\be_\bq:_\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be
- b\bbi\bin\bnd\bd [-\b-m\bm _\bk_\be_\by_\bm_\ba_\bp] -\b-p\bp|-\b-P\bP [_\br_\be_\ba_\bd_\bl_\bi_\bn_\be_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd]
- b\bbi\bin\bnd\bd [-\b-m\bm _\bk_\be_\by_\bm_\ba_\bp] _\bk_\be_\by_\bs_\be_\bq:_\br_\be_\ba_\bd_\bl_\bi_\bn_\be_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd
- b\bbi\bin\bnd\bd _\br_\be_\ba_\bd_\bl_\bi_\bn_\be_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b-_\bl_\bi_\bn_\be
- Display current r\bre\bea\bad\bdl\bli\bin\bne\be key and function bindings, bind a key
- sequence to a r\bre\bea\bad\bdl\bli\bin\bne\be function or macro or to a shell command,
- or set a r\bre\bea\bad\bdl\bli\bin\bne\be variable. Each non-option argument is a key
- binding or command as it would appear in a r\bre\bea\bad\bdl\bli\bin\bne\be initializa-
- tion file such as _\b._\bi_\bn_\bp_\bu_\bt_\br_\bc, but each binding or command must be
- passed as a separate argument; e.g., '"\C-x\C-r":
- re-read-init-file'. In the following descriptions, output
- available to be re-read is formatted as commands that would ap-
- pear in a r\bre\bea\bad\bdl\bli\bin\bne\be initialization file or that would be supplied
- as individual arguments to a b\bbi\bin\bnd\bd command. Options, if sup-
- plied, have the following meanings:
- -\b-m\bm _\bk_\be_\by_\bm_\ba_\bp
- Use _\bk_\be_\by_\bm_\ba_\bp as the keymap to be affected by the subsequent
- bindings. Acceptable _\bk_\be_\by_\bm_\ba_\bp names are _\be_\bm_\ba_\bc_\bs_\b, _\be_\bm_\ba_\bc_\bs_\b-_\bs_\bt_\ba_\bn_\b-
- _\bd_\ba_\br_\bd_\b, _\be_\bm_\ba_\bc_\bs_\b-_\bm_\be_\bt_\ba_\b, _\be_\bm_\ba_\bc_\bs_\b-_\bc_\bt_\bl_\bx_\b, _\bv_\bi_\b, _\bv_\bi_\b-_\bm_\bo_\bv_\be_\b, _\bv_\bi_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd,
- and _\bv_\bi_\b-_\bi_\bn_\bs_\be_\br_\bt. _\bv_\bi is equivalent to _\bv_\bi_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd (_\bv_\bi_\b-_\bm_\bo_\bv_\be
- is also a synonym); _\be_\bm_\ba_\bc_\bs is equivalent to _\be_\bm_\ba_\bc_\bs_\b-_\bs_\bt_\ba_\bn_\b-
- _\bd_\ba_\br_\bd.
- -\b-l\bl List the names of all r\bre\bea\bad\bdl\bli\bin\bne\be functions.
- -\b-p\bp Display r\bre\bea\bad\bdl\bli\bin\bne\be function names and bindings in such a
- way that they can be used as an argument to a subsequent
- b\bbi\bin\bnd\bd command or in a r\bre\bea\bad\bdl\bli\bin\bne\be initialization file. If
- arguments remain after option processing, b\bbi\bin\bnd\bd treats
- them as r\bre\bea\bad\bdl\bli\bin\bne\be command names and restricts output to
- those names.
- -\b-P\bP List current r\bre\bea\bad\bdl\bli\bin\bne\be function names and bindings. If
- arguments remain after option processing, b\bbi\bin\bnd\bd treats
- them as r\bre\bea\bad\bdl\bli\bin\bne\be command names and restricts output to
- those names.
- -\b-s\bs Display r\bre\bea\bad\bdl\bli\bin\bne\be key sequences bound to macros and the
- strings they output in such a way that they can be used
- as an argument to a subsequent b\bbi\bin\bnd\bd command or in a r\bre\bea\bad\bd-\b-
- l\bli\bin\bne\be initialization file.
- -\b-S\bS Display r\bre\bea\bad\bdl\bli\bin\bne\be key sequences bound to macros and the
- strings they output.
- -\b-v\bv Display r\bre\bea\bad\bdl\bli\bin\bne\be variable names and values in such a way
- that they can be used as an argument to a subsequent b\bbi\bin\bnd\bd
- command or in a r\bre\bea\bad\bdl\bli\bin\bne\be initialization file.
- -\b-V\bV List current r\bre\bea\bad\bdl\bli\bin\bne\be variable names and values.
- -\b-f\bf _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be
- Read key bindings from _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be.
- -\b-q\bq _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn
- Display key sequences that invoke the named r\bre\bea\bad\bdl\bli\bin\bne\be
- _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn.
- -\b-u\bu _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn
- Unbind all key sequences bound to the named r\bre\bea\bad\bdl\bli\bin\bne\be
- _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn.
- -\b-r\br _\bk_\be_\by_\bs_\be_\bq
- Remove any current binding for _\bk_\be_\by_\bs_\be_\bq.
- -\b-x\bx _\bk_\be_\by_\bs_\be_\bq[\b[:\b: ]\b]_\bs_\bh_\be_\bl_\bl_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd
- Cause _\bs_\bh_\be_\bl_\bl_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd to be executed whenever _\bk_\be_\by_\bs_\be_\bq is en-
- tered. The separator between _\bk_\be_\by_\bs_\be_\bq and _\bs_\bh_\be_\bl_\bl_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd is
- either whitespace or a colon optionally followed by
- whitespace. If the separator is whitespace, _\bs_\bh_\be_\bl_\bl_\b-_\bc_\bo_\bm_\b-
- _\bm_\ba_\bn_\bd must be enclosed in double quotes and r\bre\bea\bad\bdl\bli\bin\bne\be ex-
- pands any of its special backslash-escapes in _\bs_\bh_\be_\bl_\bl_\b-_\bc_\bo_\bm_\b-
- _\bm_\ba_\bn_\bd before saving it. If the separator is a colon, any
- enclosing double quotes are optional, and r\bre\bea\bad\bdl\bli\bin\bne\be does
- not expand the command string before saving it. Since
- the entire key binding expression must be a single argu-
- ment, it should be enclosed in single quotes. When
- _\bs_\bh_\be_\bl_\bl_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd is executed, the shell sets the R\bRE\bEA\bAD\bD-\b-
- L\bLI\bIN\bNE\bE_\b_L\bLI\bIN\bNE\bE variable to the contents of the r\bre\bea\bad\bdl\bli\bin\bne\be line
- buffer and the R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE_\b_P\bPO\bOI\bIN\bNT\bT and R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE_\b_M\bMA\bAR\bRK\bK variables
- to the current location of the insertion point and the
- saved insertion point (the mark), respectively. The
- shell assigns any numeric argument the user supplied to
- the R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE_\b_A\bAR\bRG\bGU\bUM\bME\bEN\bNT\bT variable. If there was no argu-
- ment, that variable is not set. If the executed command
- changes the value of any of R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE_\b_L\bLI\bIN\bNE\bE, R\bRE\bEA\bAD\bD-\b-
- L\bLI\bIN\bNE\bE_\b_P\bPO\bOI\bIN\bNT\bT, or R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE_\b_M\bMA\bAR\bRK\bK, those new values will be
- reflected in the editing state.
- -\b-X\bX List all key sequences bound to shell commands and the
- associated commands in a format that can be reused as an
- argument to a subsequent b\bbi\bin\bnd\bd command.
-
- The return value is 0 unless an unrecognized option is supplied
- or an error occurred.
-
- b\bbr\bre\bea\bak\bk [_\bn]
- Exit from within a f\bfo\bor\br, w\bwh\bhi\bil\ble\be, u\bun\bnt\bti\bil\bl, or s\bse\bel\ble\bec\bct\bt loop. If _\bn is
- specified, b\bbr\bre\bea\bak\bk exits _\bn enclosing loops. _\bn must be >= 1. If _\bn
- is greater than the number of enclosing loops, all enclosing
- loops are exited. The return value is 0 unless _\bn is not greater
- than or equal to 1.
-
- b\bbu\bui\bil\blt\bti\bin\bn _\bs_\bh_\be_\bl_\bl_\b-_\bb_\bu_\bi_\bl_\bt_\bi_\bn [_\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs]
- Execute the specified shell builtin _\bs_\bh_\be_\bl_\bl_\b-_\bb_\bu_\bi_\bl_\bt_\bi_\bn, passing it
- _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs, and return its exit status. This is useful when
- defining a function whose name is the same as a shell builtin,
- retaining the functionality of the builtin within the function.
- The c\bcd\bd builtin is commonly redefined this way. The return sta-
- tus is false if _\bs_\bh_\be_\bl_\bl_\b-_\bb_\bu_\bi_\bl_\bt_\bi_\bn is not a shell builtin command.
-
- c\bca\bal\bll\ble\ber\br [_\be_\bx_\bp_\br]
- Returns the context of any active subroutine call (a shell func-
- tion or a script executed with the .\b. or s\bso\bou\bur\brc\bce\be builtins).
-
- Without _\be_\bx_\bp_\br, c\bca\bal\bll\ble\ber\br displays the line number and source file-
- name of the current subroutine call. If a non-negative integer
- is supplied as _\be_\bx_\bp_\br, c\bca\bal\bll\ble\ber\br displays the line number, subroutine
- name, and source file corresponding to that position in the cur-
- rent execution call stack. This extra information may be used,
- for example, to print a stack trace. The current frame is frame
- 0.
-
- The return value is 0 unless the shell is not executing a sub-
- routine call or _\be_\bx_\bp_\br does not correspond to a valid position in
- the call stack.
-
- c\bcd\bd [-\b-L\bL] [-\b-@\b@] [_\bd_\bi_\br]
- c\bcd\bd -\b-P\bP [-\b-e\be] [-\b-@\b@] [_\bd_\bi_\br]
- Change the current directory to _\bd_\bi_\br. if _\bd_\bi_\br is not supplied,
- the value of the H\bHO\bOM\bME\bE shell variable is used as _\bd_\bi_\br. If _\bd_\bi_\br is
- the empty string, c\bcd\bd treats it as an error. The variable C\bCD\bDP\bPA\bAT\bTH\bH
- exists, and _\bd_\bi_\br does not begin with a slash (/), c\bcd\bd uses it as a
- search path: the shell searches each directory name in C\bCD\bDP\bPA\bAT\bTH\bH
- for _\bd_\bi_\br. Alternative directory names in C\bCD\bDP\bPA\bAT\bTH\bH are separated by
- a colon (:). A null directory name in C\bCD\bDP\bPA\bAT\bTH\bH is the same as the
- current directory, i.e., ".".
-
- The -\b-P\bP option causes c\bcd\bd to use the physical directory structure
- by resolving symbolic links while traversing _\bd_\bi_\br and before pro-
- cessing instances of _\b._\b. in _\bd_\bi_\br (see also the -\b-P\bP option to the
- s\bse\bet\bt builtin command).
-
- The -\b-L\bL option forces c\bcd\bd to follow symbolic links by resolving
- the link after processing instances of _\b._\b. in _\bd_\bi_\br. If _\b._\b. appears
- in _\bd_\bi_\br, c\bcd\bd processes it by removing the immediately previous
- pathname component from _\bd_\bi_\br, back to a slash or the beginning of
- _\bd_\bi_\br, and verifying that the portion of _\bd_\bi_\br it has processed to
- that point is still a valid directory name after removing the
- pathname component. If it is not a valid directory name, c\bcd\bd re-
- turns a non-zero status. If neither -\b-L\bL nor -\b-P\bP is supplied, c\bcd\bd
- behaves as if -\b-L\bL had been supplied.
-
- If the -\b-e\be option is supplied with -\b-P\bP, and c\bcd\bd cannot successfully
- determine the current working directory after a successful di-
- rectory change, it returns a non-zero status.
-
- On systems that support it, the -\b-@\b@ option presents the extended
- attributes associated with a file as a directory.
-
- An argument of -\b- is converted to $\b$O\bOL\bLD\bDP\bPW\bWD\bD before attempting the
- directory change.
-
- If c\bcd\bd uses a non-empty directory name from C\bCD\bDP\bPA\bAT\bTH\bH, or if -\b- is
- the first argument, and the directory change is successful, c\bcd\bd
- writes the absolute pathname of the new working directory to the
- standard output.
-
- If the directory change is successful, c\bcd\bd sets the value of the
- P\bPW\bWD\bD environment variable to the new directory name, and sets the
- O\bOL\bLD\bDP\bPW\bWD\bD environment variable to the value of the current working
- directory before the change.
-
- The return value is true if the directory was successfully
- changed; false otherwise.
-
- c\bco\bom\bmm\bma\ban\bnd\bd [-\b-p\bpV\bVv\bv] _\bc_\bo_\bm_\bm_\ba_\bn_\bd [_\ba_\br_\bg ...]
- The c\bco\bom\bmm\bma\ban\bnd\bd builtin runs _\bc_\bo_\bm_\bm_\ba_\bn_\bd with _\ba_\br_\bg_\bs suppressing the nor-
- mal shell function lookup for _\bc_\bo_\bm_\bm_\ba_\bn_\bd. Only builtin commands or
- commands found in the P\bPA\bAT\bTH\bH named _\bc_\bo_\bm_\bm_\ba_\bn_\bd are executed. If the
- -\b-p\bp option is supplied, the search for _\bc_\bo_\bm_\bm_\ba_\bn_\bd is performed using
- a default value for P\bPA\bAT\bTH\bH that is guaranteed to find all of the
- standard utilities.
-
- If either the -\b-V\bV or -\b-v\bv option is supplied, c\bco\bom\bmm\bma\ban\bnd\bd prints a de-
- scription of _\bc_\bo_\bm_\bm_\ba_\bn_\bd. The -\b-v\bv option displays a single word in-
- dicating the command or filename used to invoke _\bc_\bo_\bm_\bm_\ba_\bn_\bd; the -\b-V\bV
- option produces a more verbose description.
-
- If the -\b-V\bV or -\b-v\bv option is supplied, the exit status is zero if
- _\bc_\bo_\bm_\bm_\ba_\bn_\bd was found, and non-zero if not. If neither option is
- supplied and an error occurred or _\bc_\bo_\bm_\bm_\ba_\bn_\bd cannot be found, the
- exit status is 127. Otherwise, the exit status of the c\bco\bom\bmm\bma\ban\bnd\bd
- builtin is the exit status of _\bc_\bo_\bm_\bm_\ba_\bn_\bd.
-
- c\bco\bom\bmp\bpg\bge\ben\bn [-\b-V\bV _\bv_\ba_\br_\bn_\ba_\bm_\be] [_\bo_\bp_\bt_\bi_\bo_\bn] [_\bw_\bo_\br_\bd]
- Generate possible completion matches for _\bw_\bo_\br_\bd according to the
- _\bo_\bp_\bt_\bi_\bo_\bns, which may be any option accepted by the c\bco\bom\bmp\bpl\ble\bet\bte\be
- builtin with the exceptions of -\b-p\bp, -\b-r\br, -\b-D\bD, -\b-E\bE, and -\b-I\bI, and write
- the matches to the standard output.
-
- If the -\b-V\bV option is supplied, c\bco\bom\bmp\bpg\bge\ben\bn stores the generated com-
- pletions into the indexed array variable _\bv_\ba_\br_\bn_\ba_\bm_\be instead of
- writing them to the standard output.
-
- When using the -\b-F\bF or -\b-C\bC options, the various shell variables set
- by the programmable completion facilities, while available, will
- not have useful values.
-
- The matches will be generated in the same way as if the program-
- mable completion code had generated them directly from a comple-
- tion specification with the same flags. If _\bw_\bo_\br_\bd is specified,
- only those completions matching _\bw_\bo_\br_\bd will be displayed or
- stored.
-
- The return value is true unless an invalid option is supplied,
- or no matches were generated.
-
- c\bco\bom\bmp\bpl\ble\bet\bte\be [-\b-a\bab\bbc\bcd\bde\bef\bfg\bgj\bjk\bks\bsu\buv\bv] [-\b-o\bo _\bc_\bo_\bm_\bp_\b-_\bo_\bp_\bt_\bi_\bo_\bn] [-\b-D\bDE\bEI\bI] [-\b-A\bA _\ba_\bc_\bt_\bi_\bo_\bn]
- [-\b-G\bG _\bg_\bl_\bo_\bb_\bp_\ba_\bt] [-\b-W\bW _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt] [-\b-F\bF _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn] [-\b-C\bC _\bc_\bo_\bm_\bm_\ba_\bn_\bd]
- [-\b-X\bX _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt] [-\b-P\bP _\bp_\br_\be_\bf_\bi_\bx] [-\b-S\bS _\bs_\bu_\bf_\bf_\bi_\bx] _\bn_\ba_\bm_\be [_\bn_\ba_\bm_\be ...]
- c\bco\bom\bmp\bpl\ble\bet\bte\be -\b-p\bpr\br [-\b-D\bDE\bEI\bI] [_\bn_\ba_\bm_\be ...]
- Specify how arguments to each _\bn_\ba_\bm_\be should be completed.
-
- If the -\b-p\bp option is supplied, or if no options or _\bn_\ba_\bm_\bes are sup-
- plied, print existing completion specifications in a way that
- allows them to be reused as input. The -\b-r\br option removes a com-
- pletion specification for each _\bn_\ba_\bm_\be, or, if no _\bn_\ba_\bm_\bes are sup-
- plied, all completion specifications.
-
- The -\b-D\bD option indicates that other supplied options and actions
- should apply to the "default" command completion; that is, com-
- pletion attempted on a command for which no completion has pre-
- viously been defined. The -\b-E\bE option indicates that other sup-
- plied options and actions should apply to "empty" command com-
- pletion; that is, completion attempted on a blank line. The -\b-I\bI
- option indicates that other supplied options and actions should
- apply to completion on the initial non-assignment word on the
- line, or after a command delimiter such as ;\b; or |\b|, which is usu-
- ally command name completion. If multiple options are supplied,
- the -\b-D\bD option takes precedence over -\b-E\bE, and both take precedence
- over -\b-I\bI. If any of -\b-D\bD, -\b-E\bE, or -\b-I\bI are supplied, any other _\bn_\ba_\bm_\be
- arguments are ignored; these completions only apply to the case
- specified by the option.
-
- The process of applying these completion specifications when at-
- tempting word completion is described above under P\bPr\bro\bog\bgr\bra\bam\bmm\bma\bab\bbl\ble\be
- C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn.
-
- Other options, if specified, have the following meanings. The
- arguments to the -\b-G\bG, -\b-W\bW, and -\b-X\bX options (and, if necessary, the
- -\b-P\bP and -\b-S\bS options) should be quoted to protect them from expan-
- sion before the c\bco\bom\bmp\bpl\ble\bet\bte\be builtin is invoked.
-
- -\b-o\bo _\bc_\bo_\bm_\bp_\b-_\bo_\bp_\bt_\bi_\bo_\bn
- The _\bc_\bo_\bm_\bp_\b-_\bo_\bp_\bt_\bi_\bo_\bn controls several aspects of the comp-
- spec's behavior beyond the simple generation of comple-
- tions. _\bc_\bo_\bm_\bp_\b-_\bo_\bp_\bt_\bi_\bo_\bn may be one of:
- b\bba\bas\bsh\bhd\bde\bef\bfa\bau\bul\blt\bt
- Perform the rest of the default b\bba\bas\bsh\bh completions
- if the compspec generates no matches.
- d\bde\bef\bfa\bau\bul\blt\bt Use r\bre\bea\bad\bdl\bli\bin\bne\be's default filename completion if
- the compspec generates no matches.
- d\bdi\bir\brn\bna\bam\bme\bes\bs
- Perform directory name completion if the comp-
- spec generates no matches.
- f\bfi\bil\ble\ben\bna\bam\bme\bes\bs
- Tell r\bre\bea\bad\bdl\bli\bin\bne\be that the compspec generates file-
- names, so it can perform any filename-specific
- processing (such as adding a slash to directory
- names, quoting special characters, or suppress-
- ing trailing spaces). This is intended to be
- used with shell functions.
- f\bfu\bul\bll\blq\bqu\buo\bot\bte\be
- Tell r\bre\bea\bad\bdl\bli\bin\bne\be to quote all the completed words
- even if they are not filenames.
- n\bno\boq\bqu\buo\bot\bte\be Tell r\bre\bea\bad\bdl\bli\bin\bne\be not to quote the completed words
- if they are filenames (quoting filenames is the
- default).
- n\bno\bos\bso\bor\brt\bt Tell r\bre\bea\bad\bdl\bli\bin\bne\be not to sort the list of possible
- completions alphabetically.
- n\bno\bos\bsp\bpa\bac\bce\be Tell r\bre\bea\bad\bdl\bli\bin\bne\be not to append a space (the de-
- fault) to words completed at the end of the
- line.
- p\bpl\blu\bus\bsd\bdi\bir\brs\bs
- After generating any matches defined by the
- compspec, attempt directory name completion and
- add any matches to the results of the other ac-
- tions.
- -\b-A\bA _\ba_\bc_\bt_\bi_\bo_\bn
- The _\ba_\bc_\bt_\bi_\bo_\bn may be one of the following to generate a
- list of possible completions:
- a\bal\bli\bia\bas\bs Alias names. May also be specified as -\b-a\ba.
- a\bar\brr\bra\bay\byv\bva\bar\br
- Array variable names.
- b\bbi\bin\bnd\bdi\bin\bng\bg R\bRe\bea\bad\bdl\bli\bin\bne\be key binding names.
- b\bbu\bui\bil\blt\bti\bin\bn Names of shell builtin commands. May also be
- specified as -\b-b\bb.
- c\bco\bom\bmm\bma\ban\bnd\bd Command names. May also be specified as -\b-c\bc.
- d\bdi\bir\bre\bec\bct\bto\bor\bry\by
- Directory names. May also be specified as -\b-d\bd.
- d\bdi\bis\bsa\bab\bbl\ble\bed\bd
- Names of disabled shell builtins.
- e\ben\bna\bab\bbl\ble\bed\bd Names of enabled shell builtins.
- e\bex\bxp\bpo\bor\brt\bt Names of exported shell variables. May also be
- specified as -\b-e\be.
- f\bfi\bil\ble\be File and directory names, similar to r\bre\bea\bad\bdl\bli\bin\bne\be's
- filename completion. May also be specified as
- -\b-f\bf.
- f\bfu\bun\bnc\bct\bti\bio\bon\bn
- Names of shell functions.
- g\bgr\bro\bou\bup\bp Group names. May also be specified as -\b-g\bg.
- h\bhe\bel\blp\bpt\bto\bop\bpi\bic\bc
- Help topics as accepted by the h\bhe\bel\blp\bp builtin.
- h\bho\bos\bst\btn\bna\bam\bme\be
- Hostnames, as taken from the file specified by
- the H\bHO\bOS\bST\bTF\bFI\bIL\bLE\bE shell variable.
- j\bjo\bob\bb Job names, if job control is active. May also
- be specified as -\b-j\bj.
- k\bke\bey\byw\bwo\bor\brd\bd Shell reserved words. May also be specified as
- -\b-k\bk.
- r\bru\bun\bnn\bni\bin\bng\bg Names of running jobs, if job control is active.
- s\bse\ber\brv\bvi\bic\bce\be Service names. May also be specified as -\b-s\bs.
- s\bse\bet\bto\bop\bpt\bt Valid arguments for the -\b-o\bo option to the s\bse\bet\bt
- builtin.
- s\bsh\bho\bop\bpt\bt Shell option names as accepted by the s\bsh\bho\bop\bpt\bt
- builtin.
- s\bsi\big\bgn\bna\bal\bl Signal names.
- s\bst\bto\bop\bpp\bpe\bed\bd Names of stopped jobs, if job control is active.
- u\bus\bse\ber\br User names. May also be specified as -\b-u\bu.
- v\bva\bar\bri\bia\bab\bbl\ble\be
- Names of all shell variables. May also be spec-
- ified as -\b-v\bv.
- -\b-C\bC _\bc_\bo_\bm_\bm_\ba_\bn_\bd
- _\bc_\bo_\bm_\bm_\ba_\bn_\bd is executed in a subshell environment, and its
- output is used as the possible completions. Arguments
- are passed as with the -\b-F\bF option.
- -\b-F\bF _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn
- The shell function _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn is executed in the current
- shell environment. When the function is executed, the
- first argument ($\b$1\b1) is the name of the command whose ar-
- guments are being completed, the second argument ($\b$2\b2) is
- the word being completed, and the third argument ($\b$3\b3) is
- the word preceding the word being completed on the cur-
- rent command line. When _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn finishes, programmable
- completion retrieves the possible completions from the
- value of the C\bCO\bOM\bMP\bPR\bRE\bEP\bPL\bLY\bY array variable.
- -\b-G\bG _\bg_\bl_\bo_\bb_\bp_\ba_\bt
- Expand the pathname expansion pattern _\bg_\bl_\bo_\bb_\bp_\ba_\bt to gener-
- ate the possible completions.
- -\b-P\bP _\bp_\br_\be_\bf_\bi_\bx
- Add _\bp_\br_\be_\bf_\bi_\bx to the beginning of each possible completion
- after all other options have been applied.
- -\b-S\bS _\bs_\bu_\bf_\bf_\bi_\bx
- Append _\bs_\bu_\bf_\bf_\bi_\bx to each possible completion after all
- other options have been applied.
- -\b-W\bW _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
- Split the _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt using the characters in the I\bIF\bFS\bS spe-
- cial variable as delimiters, and expand each resulting
- word. Shell quoting is honored within _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt, in or-
- der to provide a mechanism for the words to contain
- shell metacharacters or characters in the value of I\bIF\bFS\bS.
- The possible completions are the members of the resul-
- tant list which match a prefix of the word being com-
- pleted.
- -\b-X\bX _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt
- _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt is a pattern as used for pathname expansion.
- It is applied to the list of possible completions gener-
- ated by the preceding options and arguments, and each
- completion matching _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt is removed from the list.
- A leading !\b! in _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt negates the pattern; in this
- case, any completion not matching _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt is removed.
-
- The return value is true unless an invalid option is supplied,
- an option other than -\b-p\bp, -\b-r\br, -\b-D\bD, -\b-E\bE, or -\b-I\bI is supplied without a
- _\bn_\ba_\bm_\be argument, an attempt is made to remove a completion speci-
- fication for a _\bn_\ba_\bm_\be for which no specification exists, or an er-
- ror occurs adding a completion specification.
-
- c\bco\bom\bmp\bpo\bop\bpt\bt [-\b-o\bo _\bo_\bp_\bt_\bi_\bo_\bn] [-\b-D\bDE\bEI\bI] [+\b+o\bo _\bo_\bp_\bt_\bi_\bo_\bn] [_\bn_\ba_\bm_\be]
- Modify completion options for each _\bn_\ba_\bm_\be according to the _\bo_\bp_\b-
- _\bt_\bi_\bo_\bns, or for the currently-executing completion if no _\bn_\ba_\bm_\bes are
- supplied. If no _\bo_\bp_\bt_\bi_\bo_\bns are supplied, display the completion
- options for each _\bn_\ba_\bm_\be or the current completion. The possible
- values of _\bo_\bp_\bt_\bi_\bo_\bn are those valid for the c\bco\bom\bmp\bpl\ble\bet\bte\be builtin de-
- scribed above.
-
- The -\b-D\bD option indicates that other supplied options should apply
- to the "default" command completion; the -\b-E\bE option indicates
- that other supplied options should apply to "empty" command com-
- pletion; and the -\b-I\bI option indicates that other supplied options
- should apply to completion on the initial word on the line.
- These are determined in the same way as the c\bco\bom\bmp\bpl\ble\bet\bte\be builtin.
-
- If multiple options are supplied, the -\b-D\bD option takes precedence
- over -\b-E\bE, and both take precedence over -\b-I\bI.
-
- The return value is true unless an invalid option is supplied,
- an attempt is made to modify the options for a _\bn_\ba_\bm_\be for which no
- completion specification exists, or an output error occurs.
-
- c\bco\bon\bnt\bti\bin\bnu\bue\be [_\bn]
- c\bco\bon\bnt\bti\bin\bnu\bue\be resumes the next iteration of the enclosing f\bfo\bor\br, w\bwh\bhi\bil\ble\be,
- u\bun\bnt\bti\bil\bl, or s\bse\bel\ble\bec\bct\bt loop. If _\bn is specified, b\bba\bas\bsh\bh resumes the _\bnth
- enclosing loop. _\bn must be >= 1. If _\bn is greater than the num-
- ber of enclosing loops, the shell resumes the last enclosing
- loop (the "top-level" loop). The return value is 0 unless _\bn is
- not greater than or equal to 1.
-
- d\bde\bec\bcl\bla\bar\bre\be [-\b-a\baA\bAf\bfF\bFg\bgi\biI\bIl\bln\bnr\brt\btu\bux\bx] [-\b-p\bp] [_\bn_\ba_\bm_\be[=_\bv_\ba_\bl_\bu_\be] ...]
- t\bty\byp\bpe\bes\bse\bet\bt [-\b-a\baA\bAf\bfF\bFg\bgi\biI\bIl\bln\bnr\brt\btu\bux\bx] [-\b-p\bp] [_\bn_\ba_\bm_\be[=_\bv_\ba_\bl_\bu_\be] ...]
- Declare variables and/or give them attributes. If no _\bn_\ba_\bm_\bes are
- given then display the values of variables or functions. The -\b-p\bp
- option will display the attributes and values of each _\bn_\ba_\bm_\be.
- When -\b-p\bp is used with _\bn_\ba_\bm_\be arguments, additional options, other
- than -\b-f\bf and -\b-F\bF, are ignored.
-
- When -\b-p\bp is supplied without _\bn_\ba_\bm_\be arguments, d\bde\bec\bcl\bla\bar\bre\be will display
- the attributes and values of all variables having the attributes
- specified by the additional options. If no other options are
- supplied with -\b-p\bp, d\bde\bec\bcl\bla\bar\bre\be will display the attributes and values
- of all shell variables. The -\b-f\bf option restricts the display to
- shell functions.
-
- The -\b-F\bF option inhibits the display of function definitions; only
- the function name and attributes are printed. If the e\bex\bxt\btd\bde\beb\bbu\bug\bg
- shell option is enabled using s\bsh\bho\bop\bpt\bt, the source file name and
- line number where each _\bn_\ba_\bm_\be is defined are displayed as well.
- The -\b-F\bF option implies -\b-f\bf.
-
- The -\b-g\bg option forces variables to be created or modified at the
- global scope, even when d\bde\bec\bcl\bla\bar\bre\be is executed in a shell function.
- It is ignored when d\bde\bec\bcl\bla\bar\bre\be is not executed in a shell function.
-
- The -\b-I\bI option causes local variables to inherit the attributes
- (except the _\bn_\ba_\bm_\be_\br_\be_\bf attribute) and value of any existing vari-
- able with the same _\bn_\ba_\bm_\be at a surrounding scope. If there is no
- existing variable, the local variable is initially unset.
-
- The following options can be used to restrict output to vari-
- ables with the specified attribute or to give variables attrib-
- utes:
- -\b-a\ba Each _\bn_\ba_\bm_\be is an indexed array variable (see A\bAr\brr\bra\bay\bys\bs
- above).
- -\b-A\bA Each _\bn_\ba_\bm_\be is an associative array variable (see A\bAr\brr\bra\bay\bys\bs
- above).
- -\b-f\bf Each _\bn_\ba_\bm_\be refers to a shell function.
- -\b-i\bi The variable is treated as an integer; arithmetic evalua-
- tion (see A\bAR\bRI\bIT\bTH\bHM\bME\bET\bTI\bIC\bC E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN above) is performed when
- the variable is assigned a value.
- -\b-l\bl When the variable is assigned a value, all upper-case
- characters are converted to lower-case. The upper-case
- attribute is disabled.
- -\b-n\bn Give each _\bn_\ba_\bm_\be the _\bn_\ba_\bm_\be_\br_\be_\bf attribute, making it a name
- reference to another variable. That other variable is
- defined by the value of _\bn_\ba_\bm_\be. All references, assign-
- ments, and attribute modifications to _\bn_\ba_\bm_\be, except those
- using or changing the -\b-n\bn attribute itself, are performed
- on the variable referenced by _\bn_\ba_\bm_\be's value. The nameref
- attribute cannot be applied to array variables.
- -\b-r\br Make _\bn_\ba_\bm_\bes readonly. These names cannot then be assigned
- values by subsequent assignment statements or unset.
- -\b-t\bt Give each _\bn_\ba_\bm_\be the _\bt_\br_\ba_\bc_\be attribute. Traced functions in-
- herit the D\bDE\bEB\bBU\bUG\bG and R\bRE\bET\bTU\bUR\bRN\bN traps from the calling shell.
- The trace attribute has no special meaning for variables.
- -\b-u\bu When the variable is assigned a value, all lower-case
- characters are converted to upper-case. The lower-case
- attribute is disabled.
- -\b-x\bx Mark each _\bn_\ba_\bm_\be for export to subsequent commands via the
- environment.
-
- Using "+" instead of "-" turns off the specified attribute in-
- stead, with the exceptions that +\b+a\ba and +\b+A\bA may not be used to de-
- stroy array variables and +\b+r\br will not remove the readonly at-
- tribute.
-
- When used in a function, d\bde\bec\bcl\bla\bar\bre\be and t\bty\byp\bpe\bes\bse\bet\bt make each _\bn_\ba_\bm_\be lo-
- cal, as with the l\blo\boc\bca\bal\bl command, unless the -\b-g\bg option is sup-
- plied. If a variable name is followed by =_\bv_\ba_\bl_\bu_\be, the value of
- the variable is set to _\bv_\ba_\bl_\bu_\be. When using -\b-a\ba or -\b-A\bA and the com-
- pound assignment syntax to create array variables, additional
- attributes do not take effect until subsequent assignments.
-
- The return value is 0 unless an invalid option is encountered,
- an attempt is made to define a function using "-f foo=bar", an
- attempt is made to assign a value to a readonly variable, an at-
- tempt is made to assign a value to an array variable without us-
- ing the compound assignment syntax (see A\bAr\brr\bra\bay\bys\bs above), one of
- the _\bn_\ba_\bm_\be_\bs is not a valid shell variable name, an attempt is made
- to turn off readonly status for a readonly variable, an attempt
- is made to turn off array status for an array variable, or an
- attempt is made to display a non-existent function with -\b-f\bf.
-
- d\bdi\bir\brs\bs [\b[-\b-c\bcl\blp\bpv\bv]\b] [\b[+\b+_\bn]\b] [\b[-\b-_\bn]\b]
- Without options, display the list of currently remembered direc-
- tories. The default display is on a single line with directory
- names separated by spaces. Directories are added to the list
- with the p\bpu\bus\bsh\bhd\bd command; the p\bpo\bop\bpd\bd command removes entries from
- the list. The current directory is always the first directory
- in the stack.
-
- Options, if supplied, have the following meanings:
- -\b-c\bc Clears the directory stack by deleting all of the en-
- tries.
- -\b-l\bl Produces a listing using full pathnames; the default
- listing format uses a tilde to denote the home directory.
- -\b-p\bp Print the directory stack with one entry per line.
- -\b-v\bv Print the directory stack with one entry per line, pre-
- fixing each entry with its index in the stack.
- +\b+_\bn Displays the _\bnth entry counting from the left of the list
- shown by d\bdi\bir\brs\bs when invoked without options, starting with
- zero.
- -\b-_\bn Displays the _\bnth entry counting from the right of the
- list shown by d\bdi\bir\brs\bs when invoked without options, starting
- with zero.
-
- The return value is 0 unless an invalid option is supplied or _\bn
- indexes beyond the end of the directory stack.
-
- d\bdi\bis\bso\bow\bwn\bn [-\b-a\bar\br] [-\b-h\bh] [_\bi_\bd ...]
- Without options, remove each _\bi_\bd from the table of active jobs.
- Each _\bi_\bd may be a job specification _\bj_\bo_\bb_\bs_\bp_\be_\bc or a process ID _\bp_\bi_\bd;
- if _\bi_\bd is a _\bp_\bi_\bd, d\bdi\bis\bso\bow\bwn\bn uses the job containing _\bp_\bi_\bd as _\bj_\bo_\bb_\bs_\bp_\be_\bc.
-
- If the -\b-h\bh option is supplied, d\bdi\bis\bso\bow\bwn\bn does not remove the jobs
- corresponding to each _\bi_\bd from the jobs table, but rather marks
- them so the shell does not send S\bSI\bIG\bGH\bHU\bUP\bP to the job if the shell
- receives a S\bSI\bIG\bGH\bHU\bUP\bP.
-
- If no _\bi_\bd is supplied, the -\b-a\ba option means to remove or mark all
- jobs; the -\b-r\br option without an _\bi_\bd argument removes or marks run-
- ning jobs. If no _\bi_\bd is supplied, and neither the -\b-a\ba nor the -\b-r\br
- option is supplied, d\bdi\bis\bso\bow\bwn\bn removes or marks the current job.
-
- The return value is 0 unless an _\bi_\bd does not specify a valid job.
-
- e\bec\bch\bho\bo [-\b-n\bne\beE\bE] [_\ba_\br_\bg ...]
- Output the _\ba_\br_\bgs, separated by spaces, followed by a newline.
- The return status is 0 unless a write error occurs. If -\b-n\bn is
- specified, the trailing newline is not printed.
-
- If the -\b-e\be option is given, e\bec\bch\bho\bo interprets the following back-
- slash-escaped characters. The -\b-E\bE option disables interpretation
- of these escape characters, even on systems where they are in-
- terpreted by default. The x\bxp\bpg\bg_\b_e\bec\bch\bho\bo shell option determines
- whether or not e\bec\bch\bho\bo interprets any options and expands these es-
- cape characters. e\bec\bch\bho\bo does not interpret -\b--\b- to mean the end of
- options.
-
- e\bec\bch\bho\bo interprets the following escape sequences:
- \\b\a\ba alert (bell)
- \\b\b\bb backspace
- \\b\c\bc suppress further output
- \\b\e\be
- \\b\E\bE an escape character
- \\b\f\bf form feed
- \\b\n\bn new line
- \\b\r\br carriage return
- \\b\t\bt horizontal tab
- \\b\v\bv vertical tab
- \\b\\\b\ backslash
- \\b\0\b0_\bn_\bn_\bn The eight-bit character whose value is the octal value
- _\bn_\bn_\bn (zero to three octal digits).
- \\b\x\bx_\bH_\bH The eight-bit character whose value is the hexadecimal
- value _\bH_\bH (one or two hex digits).
- \\b\u\bu_\bH_\bH_\bH_\bH The Unicode (ISO/IEC 10646) character whose value is the
- hexadecimal value _\bH_\bH_\bH_\bH (one to four hex digits).
- \\b\U\bU_\bH_\bH_\bH_\bH_\bH_\bH_\bH_\bH
- The Unicode (ISO/IEC 10646) character whose value is the
- hexadecimal value _\bH_\bH_\bH_\bH_\bH_\bH_\bH_\bH (one to eight hex digits).
-
- e\bec\bch\bho\bo writes any unrecognized backslash-escaped characters un-
- changed.
-
- e\ben\bna\bab\bbl\ble\be [-\b-a\ba] [-\b-d\bdn\bnp\bps\bs] [-\b-f\bf _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be] [_\bn_\ba_\bm_\be ...]
- Enable and disable builtin shell commands. Disabling a builtin
- allows an executable file which has the same name as a shell
- builtin to be executed without specifying a full pathname, even
- though the shell normally searches for builtins before files.
-
- If -\b-n\bn is supplied, each _\bn_\ba_\bm_\be is disabled; otherwise, _\bn_\ba_\bm_\bes are
- enabled. For example, to use the t\bte\bes\bst\bt binary found using P\bPA\bAT\bTH\bH
- instead of the shell builtin version, run "enable -n test".
-
- If no _\bn_\ba_\bm_\be arguments are supplied, or if the -\b-p\bp option is sup-
- plied, print a list of shell builtins. With no other option ar-
- guments, the list consists of all enabled shell builtins. If -\b-n\bn
- is supplied, print only disabled builtins. If -\b-a\ba is supplied,
- the list printed includes all builtins, with an indication of
- whether or not each is enabled. The -\b-s\bs option means to restrict
- the output to the POSIX _\bs_\bp_\be_\bc_\bi_\ba_\bl builtins.
-
- The -\b-f\bf option means to load the new builtin command _\bn_\ba_\bm_\be from
- shared object _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be, on systems that support dynamic loading.
- If _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be does not contain a slash, B\bBa\bas\bsh\bh will use the value of
- the B\bBA\bAS\bSH\bH_\b_L\bLO\bOA\bAD\bDA\bAB\bBL\bLE\bES\bS_\b_P\bPA\bAT\bTH\bH variable as a colon-separated list of
- directories in which to search for _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be. The default for
- B\bBA\bAS\bSH\bH_\b_L\bLO\bOA\bAD\bDA\bAB\bBL\bLE\bES\bS_\b_P\bPA\bAT\bTH\bH is system-dependent, and may include "." to
- force a search of the current directory. The -\b-d\bd option will
- delete a builtin previously loaded with -\b-f\bf. If _\b-_\bs is used with
- _\b-_\bf, the new builtin becomes a POSIX special builtin.
-
- If no options are supplied and a _\bn_\ba_\bm_\be is not a shell builtin,
- e\ben\bna\bab\bbl\ble\be will attempt to load _\bn_\ba_\bm_\be from a shared object named
- _\bn_\ba_\bm_\be, as if the command were "enable -f _\bn_\ba_\bm_\be _\bn_\ba_\bm_\be".
-
- The return value is 0 unless a _\bn_\ba_\bm_\be is not a shell builtin or
- there is an error loading a new builtin from a shared object.
-
- e\bev\bva\bal\bl [_\ba_\br_\bg ...]
- Concatenate the _\ba_\br_\bgs together into a single command, separating
- them with spaces. B\bBa\bas\bsh\bh then reads and execute this command, and
- returns its exit status as the return status of e\bev\bva\bal\bl. If there
- are no _\ba_\br_\bg_\bs, or only null arguments, e\bev\bva\bal\bl returns 0.
-
- e\bex\bxe\bec\bc [-\b-c\bcl\bl] [-\b-a\ba _\bn_\ba_\bm_\be] [_\bc_\bo_\bm_\bm_\ba_\bn_\bd [_\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs]]
- If _\bc_\bo_\bm_\bm_\ba_\bn_\bd is specified, it replaces the shell without creating
- a new process. _\bc_\bo_\bm_\bm_\ba_\bn_\bd cannot be a shell builtin or function.
- The _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs become the arguments to _\bc_\bo_\bm_\bm_\ba_\bn_\bd. If the -\b-l\bl option
- is supplied, the shell places a dash at the beginning of the ze-
- roth argument passed to _\bc_\bo_\bm_\bm_\ba_\bn_\bd. This is what _\bl_\bo_\bg_\bi_\bn(1) does.
- The -\b-c\bc option causes _\bc_\bo_\bm_\bm_\ba_\bn_\bd to be executed with an empty envi-
- ronment. If -\b-a\ba is supplied, the shell passes _\bn_\ba_\bm_\be as the zeroth
- argument to the executed command.
-
- If _\bc_\bo_\bm_\bm_\ba_\bn_\bd cannot be executed for some reason, a non-interactive
- shell exits, unless the e\bex\bxe\bec\bcf\bfa\bai\bil\bl shell option is enabled. In
- that case, it returns a non-zero status. An interactive shell
- returns a non-zero status if the file cannot be executed. A
- subshell exits unconditionally if e\bex\bxe\bec\bc fails.
-
- If _\bc_\bo_\bm_\bm_\ba_\bn_\bd is not specified, any redirections take effect in the
- current shell, and the return status is 0. If there is a redi-
- rection error, the return status is 1.
-
- e\bex\bxi\bit\bt [_\bn]
- Cause the shell to exit with a status of _\bn. If _\bn is omitted,
- the exit status is that of the last command executed. Any trap
- on E\bEX\bXI\bIT\bT is executed before the shell terminates.
-
- e\bex\bxp\bpo\bor\brt\bt [-\b-f\bfn\bn] [_\bn_\ba_\bm_\be[=_\bv_\ba_\bl_\bu_\be]] ...
- e\bex\bxp\bpo\bor\brt\bt -\b-p\bp [\b[-\b-f\bf]\b]
- The supplied _\bn_\ba_\bm_\be_\bs are marked for automatic export to the envi-
- ronment of subsequently executed commands. If the -\b-f\bf option is
- given, the _\bn_\ba_\bm_\be_\bs refer to functions.
-
- The -\b-n\bn option unexports, or removes the export attribute, from
- each _\bn_\ba_\bm_\be. If no _\bn_\ba_\bm_\be_\bs are given, or if only the -\b-p\bp option is
- supplied, e\bex\bxp\bpo\bor\brt\bt displays a list of names of all exported vari-
- ables on the standard output. Using -\b-p\bp and -\b-f\bf together displays
- exported functions. The -\b-p\bp option displays output in a form
- that may be reused as input.
-
- e\bex\bxp\bpo\bor\brt\bt allows the value of a variable to be set when it is ex-
- ported or unexported by following the variable name with =_\bv_\ba_\bl_\bu_\be.
- This sets the value of the variable to _\bv_\ba_\bl_\bu_\be while modifying the
- export attribute. e\bex\bxp\bpo\bor\brt\bt returns an exit status of 0 unless an
- invalid option is encountered, one of the _\bn_\ba_\bm_\be_\bs is not a valid
- shell variable name, or -\b-f\bf is supplied with a _\bn_\ba_\bm_\be that is not a
- function.
-
- f\bfa\bal\bls\bse\be Does nothing; returns a non-zero status.
-
- f\bfc\bc [-\b-e\be _\be_\bn_\ba_\bm_\be] [-\b-l\bln\bnr\br] [_\bf_\bi_\br_\bs_\bt] [_\bl_\ba_\bs_\bt]
- f\bfc\bc -\b-s\bs [_\bp_\ba_\bt=_\br_\be_\bp] [_\bc_\bm_\bd]
- The first form selects a range of commands from _\bf_\bi_\br_\bs_\bt to _\bl_\ba_\bs_\bt
- from the history list and displays or edits and re-executes
- them. _\bF_\bi_\br_\bs_\bt and _\bl_\ba_\bs_\bt may be specified as a string (to locate
- the last command beginning with that string) or as a number (an
- index into the history list, where a negative number is used as
- an offset from the current command number).
-
- When listing, a _\bf_\bi_\br_\bs_\bt or _\bl_\ba_\bs_\bt of 0 is equivalent to -1 and -0 is
- equivalent to the current command (usually the f\bfc\bc command); oth-
- erwise 0 is equivalent to -1 and -0 is invalid. If _\bl_\ba_\bs_\bt is not
- specified, it is set to the current command for listing (so that
- "fc -l -10" prints the last 10 commands) and to _\bf_\bi_\br_\bs_\bt otherwise.
- If _\bf_\bi_\br_\bs_\bt is not specified, it is set to the previous command for
- editing and -16 for listing.
-
- If the -\b-l\bl option is supplied, the commands are listed on the
- standard output. The -\b-n\bn option suppresses the command numbers
- when listing. The -\b-r\br option reverses the order of the commands.
-
- Otherwise, f\bfc\bc invokes the editor named by _\be_\bn_\ba_\bm_\be on a file con-
- taining those commands. If _\be_\bn_\ba_\bm_\be is not supplied, f\bfc\bc uses the
- value of the F\bFC\bCE\bED\bDI\bIT\bT variable, and the value of E\bED\bDI\bIT\bTO\bOR\bR if F\bFC\bCE\bED\bDI\bIT\bT
- is not set. If neither variable is set, f\bfc\bc uses _\bv_\bi_\b. When edit-
- ing is complete, f\bfc\bc reads the file containing the edited com-
- mands and echoes and executes them.
-
- In the second form, f\bfc\bc re-executes _\bc_\bo_\bm_\bm_\ba_\bn_\bd after replacing each
- instance of _\bp_\ba_\bt with _\br_\be_\bp. _\bC_\bo_\bm_\bm_\ba_\bn_\bd is interpreted the same as
- _\bf_\bi_\br_\bs_\bt above.
-
- A useful alias to use with f\bfc\bc is "r="fc -s"", so that typing "r
- cc" runs the last command beginning with "cc" and typing "r" re-
- executes the last command.
-
- If the first form is used, the return value is zero unless an
- invalid option is encountered or _\bf_\bi_\br_\bs_\bt or _\bl_\ba_\bs_\bt specify history
- lines out of range. When editing and re-executing a file of
- commands, the return value is the value of the last command exe-
- cuted or failure if an error occurs with the temporary file. If
- the second form is used, the return status is that of the re-ex-
- ecuted command, unless _\bc_\bm_\bd does not specify a valid history en-
- try, in which case f\bfc\bc returns a non-zero status.
-
- f\bfg\bg [_\bj_\bo_\bb_\bs_\bp_\be_\bc]
- Resume _\bj_\bo_\bb_\bs_\bp_\be_\bc in the foreground, and make it the current job.
- If _\bj_\bo_\bb_\bs_\bp_\be_\bc is not present, f\bfg\bg uses the shell's notion of the
- _\bc_\bu_\br_\br_\be_\bn_\bt _\bj_\bo_\bb. The return value is that of the command placed
- into the foreground, or failure if run when job control is dis-
- abled or, when run with job control enabled, if _\bj_\bo_\bb_\bs_\bp_\be_\bc does not
- specify a valid job or _\bj_\bo_\bb_\bs_\bp_\be_\bc specifies a job that was started
- without job control.
-
- g\bge\bet\bto\bop\bpt\bts\bs _\bo_\bp_\bt_\bs_\bt_\br_\bi_\bn_\bg _\bn_\ba_\bm_\be [_\ba_\br_\bg ...]
- g\bge\bet\bto\bop\bpt\bts\bs is used by shell scripts and functions to parse posi-
- tional parameters and obtain options and their arguments. _\bo_\bp_\bt_\b-
- _\bs_\bt_\br_\bi_\bn_\bg contains the option characters to be recognized; if a
- character is followed by a colon, the option is expected to have
- an argument, which should be separated from it by white space.
- The colon and question mark characters may not be used as option
- characters.
-
- Each time it is invoked, g\bge\bet\bto\bop\bpt\bts\bs places the next option in the
- shell variable _\bn_\ba_\bm_\be, initializing _\bn_\ba_\bm_\be if it does not exist, and
- the index of the next argument to be processed into the variable
- O\bOP\bPT\bTI\bIN\bND\bD. O\bOP\bPT\bTI\bIN\bND\bD is initialized to 1 each time the shell or a
- shell script is invoked. When an option requires an argument,
- g\bge\bet\bto\bop\bpt\bts\bs places that argument into the variable O\bOP\bPT\bTA\bAR\bRG\bG.
-
- The shell does not reset O\bOP\bPT\bTI\bIN\bND\bD automatically; it must be manu-
- ally reset between multiple calls to g\bge\bet\bto\bop\bpt\bts\bs within the same
- shell invocation to use a new set of parameters.
-
- When it reaches the end of options, g\bge\bet\bto\bop\bpt\bts\bs exits with a return
- value greater than zero. O\bOP\bPT\bTI\bIN\bND\bD is set to the index of the
- first non-option argument, and _\bn_\ba_\bm_\be is set to ?.
-
- g\bge\bet\bto\bop\bpt\bts\bs normally parses the positional parameters, but if more
- arguments are supplied as _\ba_\br_\bg values, g\bge\bet\bto\bop\bpt\bts\bs parses those in-
- stead.
-
- g\bge\bet\bto\bop\bpt\bts\bs can report errors in two ways. If the first character
- of _\bo_\bp_\bt_\bs_\bt_\br_\bi_\bn_\bg is a colon, g\bge\bet\bto\bop\bpt\bts\bs uses _\bs_\bi_\bl_\be_\bn_\bt error reporting.
- In normal operation, g\bge\bet\bto\bop\bpt\bts\bs prints diagnostic messages when it
- encounters invalid options or missing option arguments. If the
- variable O\bOP\bPT\bTE\bER\bRR\bR is set to 0, g\bge\bet\bto\bop\bpt\bts\bs does not display any error
- messages, even if the first character of _\bo_\bp_\bt_\bs_\bt_\br_\bi_\bn_\bg is not a
- colon.
-
- If g\bge\bet\bto\bop\bpt\bts\bs detects an invalid option, it places ? into _\bn_\ba_\bm_\be and,
- if not silent, prints an error message and unsets O\bOP\bPT\bTA\bAR\bRG\bG. If
- g\bge\bet\bto\bop\bpt\bts\bs is silent, it assigns the option character found to O\bOP\bP-\b-
- T\bTA\bAR\bRG\bG and does not print a diagnostic message.
-
- If a required argument is not found, and g\bge\bet\bto\bop\bpt\bts\bs is not silent,
- it sets the value of _\bn_\ba_\bm_\be to a question mark (?\b?), unsets O\bOP\bPT\bTA\bAR\bRG\bG,
- and prints a diagnostic message. If g\bge\bet\bto\bop\bpt\bts\bs is silent, it sets
- the value of _\bn_\ba_\bm_\be to a colon (:\b:) and sets O\bOP\bPT\bTA\bAR\bRG\bG to the option
- character found.
-
- g\bge\bet\bto\bop\bpt\bts\bs returns true if an option, specified or unspecified, is
- found. It returns false if the end of options is encountered or
- an error occurs.
-
- h\bha\bas\bsh\bh [-\b-l\blr\br] [-\b-p\bp _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be] [-\b-d\bdt\bt] [_\bn_\ba_\bm_\be]
- Each time h\bha\bas\bsh\bh is invoked, it remembers the full pathname of the
- command _\bn_\ba_\bm_\be as determined by searching the directories in
- $\b$P\bPA\bAT\bTH\bH. Any previously-remembered pathname associated with _\bn_\ba_\bm_\be
- is discarded. If the -\b-p\bp option is supplied, h\bha\bas\bsh\bh uses _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be
- as the full pathname of the command.
-
- The -\b-r\br option causes the shell to forget all remembered loca-
- tions. Assigning to the P\bPA\bAT\bTH\bH variable also clears all hashed
- filenames. The -\b-d\bd option causes the shell to forget the remem-
- bered location of each _\bn_\ba_\bm_\be.
-
- If the -\b-t\bt option is supplied, h\bha\bas\bsh\bh prints the full pathname cor-
- responding to each _\bn_\ba_\bm_\be. If multiple _\bn_\ba_\bm_\be arguments are sup-
- plied with -\b-t\bt, h\bha\bas\bsh\bh prints the _\bn_\ba_\bm_\be before the corresponding
- hashed full pathname. The -\b-l\bl option displays output in a format
- that may be reused as input.
-
- If no arguments are given, or if only -\b-l\bl is supplied, h\bha\bas\bsh\bh
- prints information about remembered commands. The -\b-t\bt, -\b-d\bd, and
- -\b-p\bp options (the options that act on the _\bn_\ba_\bm_\be arguments) are mu-
- tually exclusive. Only one will be active. If more than one is
- supplied, -\b-t\bt has higher priority than -\b-p\bp, and both have higher
- priority than -\b-d\bd.
-
- The return status is zero unless a _\bn_\ba_\bm_\be is not found or an in-
- valid option is supplied.
-
- h\bhe\bel\blp\bp [-\b-d\bdm\bms\bs] [_\bp_\ba_\bt_\bt_\be_\br_\bn]
- Display helpful information about builtin commands. If _\bp_\ba_\bt_\bt_\be_\br_\bn
- is specified, h\bhe\bel\blp\bp gives detailed help on all commands matching
- _\bp_\ba_\bt_\bt_\be_\br_\bn as described below; otherwise it displays a list of all
- the builtins and shell compound commands.
-
- Options, if supplied, have the follow meanings:
-
- -\b-d\bd Display a short description of each _\bp_\ba_\bt_\bt_\be_\br_\bn
- -\b-m\bm Display the description of each _\bp_\ba_\bt_\bt_\be_\br_\bn in a manpage-like
- format
- -\b-s\bs Display only a short usage synopsis for each _\bp_\ba_\bt_\bt_\be_\br_\bn
-
- If _\bp_\ba_\bt_\bt_\be_\br_\bn contains pattern matching characters (see P\bPa\bat\btt\bte\ber\brn\bn
- M\bMa\bat\btc\bch\bhi\bin\bng\bg above) it's treated as a shell pattern and h\bhe\bel\blp\bp prints
- the description of each help topic matching _\bp_\ba_\bt_\bt_\be_\br_\bn.
-
- If not, and _\bp_\ba_\bt_\bt_\be_\br_\bn exactly matches the name of a help topic,
- h\bhe\bel\blp\bp prints the description associated with that topic. Other-
- wise, h\bhe\bel\blp\bp performs prefix matching and prints the descriptions
- of all matching help topics.
-
- The return status is 0 unless no command matches _\bp_\ba_\bt_\bt_\be_\br_\bn.
-
- h\bhi\bis\bst\bto\bor\bry\by [\b[_\bn]\b]
- h\bhi\bis\bst\bto\bor\bry\by -\b-c\bc
- h\bhi\bis\bst\bto\bor\bry\by -\b-d\bd _\bo_\bf_\bf_\bs_\be_\bt
- h\bhi\bis\bst\bto\bor\bry\by -\b-d\bd _\bs_\bt_\ba_\br_\bt-_\be_\bn_\bd
- h\bhi\bis\bst\bto\bor\bry\by -\b-a\ban\bnr\brw\bw [_\bf_\bi_\bl_\be_\bn_\ba_\bm_\be]
- h\bhi\bis\bst\bto\bor\bry\by -\b-p\bp _\ba_\br_\bg [_\ba_\br_\bg ...]
- h\bhi\bis\bst\bto\bor\bry\by -\b-s\bs _\ba_\br_\bg [_\ba_\br_\bg ...]
- With no options, display the command history list with numbers.
- Entries prefixed with a *\b* have been modified. An argument of _\bn
- lists only the last _\bn entries. If the shell variable H\bHI\bIS\bST\bTT\bTI\bIM\bME\bE-\b-
- F\bFO\bOR\bRM\bMA\bAT\bT is set and not null, it is used as a format string for
- _\bs_\bt_\br_\bf_\bt_\bi_\bm_\be(3) to display the time stamp associated with each dis-
- played history entry. If h\bhi\bis\bst\bto\bor\bry\by uses H\bHI\bIS\bST\bTT\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT, it does
- not print an intervening space between the formatted time stamp
- and the history entry.
-
- If _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be is supplied, h\bhi\bis\bst\bto\bor\bry\by uses it as the name of the his-
- tory file; if not, it uses the value of H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE. If _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be
- is not supplied and H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE is unset or null, the -\b-a\ba,\b, -\b-n\bn,\b, -\b-r\br,\b,
- and -\b-w\bw options have no effect.
-
- Options, if supplied, have the following meanings:
- -\b-c\bc Clear the history list by deleting all the entries. This
- can be used with the other options to replace the history
- list.
- -\b-d\bd _\bo_\bf_\bf_\bs_\be_\bt
- Delete the history entry at position _\bo_\bf_\bf_\bs_\be_\bt. If _\bo_\bf_\bf_\bs_\be_\bt
- is negative, it is interpreted as relative to one greater
- than the last history position, so negative indices count
- back from the end of the history, and an index of -1
- refers to the current h\bhi\bis\bst\bto\bor\bry\by -\b-d\bd command.
- -\b-d\bd _\bs_\bt_\ba_\br_\bt-_\be_\bn_\bd
- Delete the range of history entries between positions
- _\bs_\bt_\ba_\br_\bt and _\be_\bn_\bd, inclusive. Positive and negative values
- for _\bs_\bt_\ba_\br_\bt and _\be_\bn_\bd are interpreted as described above.
- -\b-a\ba Append the "new" history lines to the history file.
- These are history lines entered since the beginning of
- the current b\bba\bas\bsh\bh session, but not already appended to the
- history file.
- -\b-n\bn Read the history lines not already read from the history
- file and add them to the current history list. These are
- lines appended to the history file since the beginning of
- the current b\bba\bas\bsh\bh session.
- -\b-r\br Read the history file and append its contents to the cur-
- rent history list.
- -\b-w\bw Write the current history list to the history file, over-
- writing the history file.
- -\b-p\bp Perform history substitution on the following _\ba_\br_\bg_\bs and
- display the result on the standard output, without stor-
- ing the results in the history list. Each _\ba_\br_\bg must be
- quoted to disable normal history expansion.
- -\b-s\bs Store the _\ba_\br_\bg_\bs in the history list as a single entry.
- The last command in the history list is removed before
- adding the _\ba_\br_\bg_\bs.
-
- If the H\bHI\bIS\bST\bTT\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT variable is set, h\bhi\bis\bst\bto\bor\bry\by writes the time
- stamp information associated with each history entry to the his-
- tory file, marked with the history comment character as de-
- scribed above. When the history file is read, lines beginning
- with the history comment character followed immediately by a
- digit are interpreted as timestamps for the following history
- entry.
-
- The return value is 0 unless an invalid option is encountered,
- an error occurs while reading or writing the history file, an
- invalid _\bo_\bf_\bf_\bs_\be_\bt or range is supplied as an argument to -\b-d\bd, or the
- history expansion supplied as an argument to -\b-p\bp fails.
-
- j\bjo\bob\bbs\bs [-\b-l\bln\bnp\bpr\brs\bs] [ _\bj_\bo_\bb_\bs_\bp_\be_\bc ... ]
- j\bjo\bob\bbs\bs -\b-x\bx _\bc_\bo_\bm_\bm_\ba_\bn_\bd [ _\ba_\br_\bg_\bs ... ]
- The first form lists the active jobs. The options have the fol-
- lowing meanings:
- -\b-l\bl List process IDs in addition to the normal information.
- -\b-n\bn Display information only about jobs that have changed
- status since the user was last notified of their status.
- -\b-p\bp List only the process ID of the job's process group
- leader.
- -\b-r\br Display only running jobs.
- -\b-s\bs Display only stopped jobs.
-
- If _\bj_\bo_\bb_\bs_\bp_\be_\bc is supplied, j\bjo\bob\bbs\bs restricts output to information
- about that job. The return status is 0 unless an invalid option
- is encountered or an invalid _\bj_\bo_\bb_\bs_\bp_\be_\bc is supplied.
-
- If the -\b-x\bx option is supplied, j\bjo\bob\bbs\bs replaces any _\bj_\bo_\bb_\bs_\bp_\be_\bc found in
- _\bc_\bo_\bm_\bm_\ba_\bn_\bd or _\ba_\br_\bg_\bs with the corresponding process group ID, and ex-
- ecutes _\bc_\bo_\bm_\bm_\ba_\bn_\bd, passing it _\ba_\br_\bg_\bs, returning its exit status.
-
- k\bki\bil\bll\bl [-\b-s\bs _\bs_\bi_\bg_\bs_\bp_\be_\bc | -\b-n\bn _\bs_\bi_\bg_\bn_\bu_\bm | -\b-_\bs_\bi_\bg_\bs_\bp_\be_\bc] _\bi_\bd [ ... ]
- k\bki\bil\bll\bl -\b-l\bl|-\b-L\bL [_\bs_\bi_\bg_\bs_\bp_\be_\bc | _\be_\bx_\bi_\bt_\b__\bs_\bt_\ba_\bt_\bu_\bs]
- Send the signal specified by _\bs_\bi_\bg_\bs_\bp_\be_\bc or _\bs_\bi_\bg_\bn_\bu_\bm to the processes
- named by each _\bi_\bd. Each _\bi_\bd may be a job specification _\bj_\bo_\bb_\bs_\bp_\be_\bc or
- a process ID _\bp_\bi_\bd. _\bs_\bi_\bg_\bs_\bp_\be_\bc is either a case-insensitive signal
- name such as S\bSI\bIG\bGK\bKI\bIL\bLL\bL (with or without the S\bSI\bIG\bG prefix) or a sig-
- nal number; _\bs_\bi_\bg_\bn_\bu_\bm is a signal number. If _\bs_\bi_\bg_\bs_\bp_\be_\bc is not sup-
- plied, then k\bki\bil\bll\bl sends S\bSI\bIG\bGT\bTE\bER\bRM\bM.
-
- The -\b-l\bl option lists the signal names. If any arguments are sup-
- plied when -\b-l\bl is given, k\bki\bil\bll\bl lists the names of the signals cor-
- responding to the arguments, and the return status is 0. The
- _\be_\bx_\bi_\bt_\b__\bs_\bt_\ba_\bt_\bu_\bs argument to -\b-l\bl is a number specifying either a sig-
- nal number or the exit status of a process terminated by a sig-
- nal; if it is supplied, k\bki\bil\bll\bl prints the name of the signal that
- caused the process to terminate. k\bki\bil\bll\bl assumes that process exit
- statuses are greater than 128; anything less than that is a sig-
- nal number. The -\b-L\bL option is equivalent to -\b-l\bl.
-
- k\bki\bil\bll\bl returns true if at least one signal was successfully sent,
- or false if an error occurs or an invalid option is encountered.
-
- l\ble\bet\bt _\ba_\br_\bg [_\ba_\br_\bg ...]
- Each _\ba_\br_\bg is evaluated as an arithmetic expression (see A\bAR\bRI\bIT\bTH\bH-\b-
- M\bME\bET\bTI\bIC\bC E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN above). If the last _\ba_\br_\bg evaluates to 0, l\ble\bet\bt
- returns 1; otherwise l\ble\bet\bt returns 0.
-
- l\blo\boc\bca\bal\bl [_\bo_\bp_\bt_\bi_\bo_\bn] [_\bn_\ba_\bm_\be[=_\bv_\ba_\bl_\bu_\be] ... | - ]
- For each argument, create a local variable named _\bn_\ba_\bm_\be and assign
- it _\bv_\ba_\bl_\bu_\be. The _\bo_\bp_\bt_\bi_\bo_\bn can be any of the options accepted by d\bde\be-\b-
- c\bcl\bla\bar\bre\be. When l\blo\boc\bca\bal\bl is used within a function, it causes the
- variable _\bn_\ba_\bm_\be to have a visible scope restricted to that func-
- tion and its children. It is an error to use l\blo\boc\bca\bal\bl when not
- within a function.
-
- If _\bn_\ba_\bm_\be is -, it makes the set of shell options local to the
- function in which l\blo\boc\bca\bal\bl is invoked: any shell options changed
- using the s\bse\bet\bt builtin inside the function after the call to l\blo\bo-\b-
- c\bca\bal\bl are restored to their original values when the function re-
- turns. The restore is performed as if a series of s\bse\bet\bt commands
- were executed to restore the values that were in place before
- the function.
-
- With no operands, l\blo\boc\bca\bal\bl writes a list of local variables to the
- standard output.
-
- The return status is 0 unless l\blo\boc\bca\bal\bl is used outside a function,
- an invalid _\bn_\ba_\bm_\be is supplied, or _\bn_\ba_\bm_\be is a readonly variable.
-
- l\blo\bog\bgo\bou\but\bt [\b[_\bn]\b]
- Exit a login shell, returning a status of _\bn to the shell's par-
- ent.
-
- m\bma\bap\bpf\bfi\bil\ble\be [-\b-d\bd _\bd_\be_\bl_\bi_\bm] [-\b-n\bn _\bc_\bo_\bu_\bn_\bt] [-\b-O\bO _\bo_\br_\bi_\bg_\bi_\bn] [-\b-s\bs _\bc_\bo_\bu_\bn_\bt] [-\b-t\bt] [-\b-u\bu _\bf_\bd] [-\b-C\bC
- _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk] [-\b-c\bc _\bq_\bu_\ba_\bn_\bt_\bu_\bm] [_\ba_\br_\br_\ba_\by]
- r\bre\bea\bad\bda\bar\brr\bra\bay\by [-\b-d\bd _\bd_\be_\bl_\bi_\bm] [-\b-n\bn _\bc_\bo_\bu_\bn_\bt] [-\b-O\bO _\bo_\br_\bi_\bg_\bi_\bn] [-\b-s\bs _\bc_\bo_\bu_\bn_\bt] [-\b-t\bt] [-\b-u\bu _\bf_\bd] [-\b-C\bC
- _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk] [-\b-c\bc _\bq_\bu_\ba_\bn_\bt_\bu_\bm] [_\ba_\br_\br_\ba_\by]
- Read lines from the standard input, or from file descriptor _\bf_\bd
- if the -\b-u\bu option is supplied, into the indexed array variable
- _\ba_\br_\br_\ba_\by. The variable M\bMA\bAP\bPF\bFI\bIL\bLE\bE is the default _\ba_\br_\br_\ba_\by. Options, if
- supplied, have the following meanings:
- -\b-d\bd Use the first character of _\bd_\be_\bl_\bi_\bm to terminate each input
- line, rather than newline. If _\bd_\be_\bl_\bi_\bm is the empty string,
- m\bma\bap\bpf\bfi\bil\ble\be will terminate a line when it reads a NUL charac-
- ter.
- -\b-n\bn Copy at most _\bc_\bo_\bu_\bn_\bt lines. If _\bc_\bo_\bu_\bn_\bt is 0, copy all lines.
- -\b-O\bO Begin assigning to _\ba_\br_\br_\ba_\by at index _\bo_\br_\bi_\bg_\bi_\bn. The default
- index is 0.
- -\b-s\bs Discard the first _\bc_\bo_\bu_\bn_\bt lines read.
- -\b-t\bt Remove a trailing _\bd_\be_\bl_\bi_\bm (default newline) from each line
- read.
- -\b-u\bu Read lines from file descriptor _\bf_\bd instead of the stan-
- dard input.
- -\b-C\bC Evaluate _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk each time _\bq_\bu_\ba_\bn_\bt_\bu_\bm lines are read. The
- -\b-c\bc option specifies _\bq_\bu_\ba_\bn_\bt_\bu_\bm.
- -\b-c\bc Specify the number of lines read between each call to
- _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk.
-
- If -\b-C\bC is specified without -\b-c\bc, the default quantum is 5000.
- When _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk is evaluated, it is supplied the index of the next
- array element to be assigned and the line to be assigned to that
- element as additional arguments. _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk is evaluated after
- the line is read but before the array element is assigned.
-
- If not supplied with an explicit origin, m\bma\bap\bpf\bfi\bil\ble\be will clear _\ba_\br_\b-
- _\br_\ba_\by before assigning to it.
-
- m\bma\bap\bpf\bfi\bil\ble\be returns zero unless an invalid option or option argument
- is supplied, _\ba_\br_\br_\ba_\by is invalid or unassignable, or if _\ba_\br_\br_\ba_\by is
- not an indexed array.
-
- p\bpo\bop\bpd\bd [-n\bn] [+_\bn] [-_\bn]
- Remove entries from the directory stack. The elements are num-
- bered from 0 starting at the first directory listed by d\bdi\bir\brs\bs, so
- p\bpo\bop\bpd\bd is equivalent to "popd +0." With no arguments, p\bpo\bop\bpd\bd re-
- moves the top directory from the stack, and changes to the new
- top directory. Arguments, if supplied, have the following mean-
- ings:
- -\b-n\bn Suppress the normal change of directory when removing di-
- rectories from the stack, only manipulate the stack.
- +\b+_\bn Remove the _\bnth entry counting from the left of the list
- shown by d\bdi\bir\brs\bs, starting with zero, from the stack. For
- example: "popd +0" removes the first directory, "popd +1"
- the second.
- -\b-_\bn Remove the _\bnth entry counting from the right of the list
- shown by d\bdi\bir\brs\bs, starting with zero. For example: "popd
- -0" removes the last directory, "popd -1" the next to
- last.
-
- If the top element of the directory stack is modified, and the
- _\b-_\bn option was not supplied, p\bpo\bop\bpd\bd uses the c\bcd\bd builtin to change
- to the directory at the top of the stack. If the c\bcd\bd fails, p\bpo\bop\bpd\bd
- returns a non-zero value.
-
- Otherwise, p\bpo\bop\bpd\bd returns false if an invalid option is supplied,
- the directory stack is empty, or _\bn specifies a non-existent di-
- rectory stack entry.
-
- If the p\bpo\bop\bpd\bd command is successful, b\bba\bas\bsh\bh runs d\bdi\bir\brs\bs to show the
- final contents of the directory stack, and the return status is
- 0.
-
- p\bpr\bri\bin\bnt\btf\bf [-\b-v\bv _\bv_\ba_\br] _\bf_\bo_\br_\bm_\ba_\bt [_\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs]
- Write the formatted _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs to the standard output under the
- control of the _\bf_\bo_\br_\bm_\ba_\bt. The -\b-v\bv option assigns the output to the
- variable _\bv_\ba_\br rather than printing it to the standard output.
-
- The _\bf_\bo_\br_\bm_\ba_\bt is a character string which contains three types of
- objects: plain characters, which are simply copied to standard
- output, character escape sequences, which are converted and
- copied to the standard output, and format specifications, each
- of which causes printing of the next successive _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt. In
- addition to the standard _\bp_\br_\bi_\bn_\bt_\bf(3) format characters c\bcC\bCs\bsS\bS-\b-
- n\bnd\bdi\bio\bou\bux\bxX\bXe\beE\bEf\bfF\bFg\bgG\bGa\baA\bA, p\bpr\bri\bin\bnt\btf\bf interprets the following additional for-
- mat specifiers:
- %\b%b\bb causes p\bpr\bri\bin\bnt\btf\bf to expand backslash escape sequences in the
- corresponding _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt in the same way as e\bec\bch\bho\bo -\b-e\be.
- %\b%q\bq causes p\bpr\bri\bin\bnt\btf\bf to output the corresponding _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt in a
- format that can be reused as shell input. %\b%q\bq and %\b%Q\bQ use
- the $\b$'\b''\b' quoting style if any characters in the argument
- string require it, and backslash quoting otherwise. If
- the format string uses the _\bp_\br_\bi_\bn_\bt_\bf alternate form, these
- two formats quote the argument string using single
- quotes.
- %\b%Q\bQ like %\b%q\bq, but applies any supplied precision to the _\ba_\br_\bg_\bu_\b-
- _\bm_\be_\bn_\bt before quoting it.
- %\b%(\b(_\bd_\ba_\bt_\be_\bf_\bm_\bt)\b)T\bT
- causes p\bpr\bri\bin\bnt\btf\bf to output the date-time string resulting
- from using _\bd_\ba_\bt_\be_\bf_\bm_\bt as a format string for _\bs_\bt_\br_\bf_\bt_\bi_\bm_\be(3).
- The corresponding _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt is an integer representing the
- number of seconds since the epoch. This format specifier
- recognizes two special argument values: -1 represents the
- current time, and -2 represents the time the shell was
- invoked. If no argument is specified, conversion behaves
- as if -1 had been supplied. This is an exception to the
- usual p\bpr\bri\bin\bnt\btf\bf behavior.
-
- The %b, %q, and %T format specifiers all use the field width and
- precision arguments from the format specification and write that
- many bytes from (or use that wide a field for) the expanded ar-
- gument, which usually contains more characters than the origi-
- nal.
-
- The %n format specifier accepts a corresponding argument that is
- treated as a shell variable name.
-
- The %s and %c format specifiers accept an l (long) modifier,
- which forces them to convert the argument string to a wide-char-
- acter string and apply any supplied field width and precision in
- terms of characters, not bytes. The %S and %C format specifiers
- are equivalent to %ls and %lc, respectively.
-
- Arguments to non-string format specifiers are treated as C con-
- stants, except that a leading plus or minus sign is allowed, and
- if the leading character is a single or double quote, the value
- is the numeric value of the following character, using the cur-
- rent locale.
-
- The _\bf_\bo_\br_\bm_\ba_\bt is reused as necessary to consume all of the _\ba_\br_\bg_\bu_\b-
- _\bm_\be_\bn_\bt_\bs. If the _\bf_\bo_\br_\bm_\ba_\bt requires more _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs than are supplied,
- the extra format specifications behave as if a zero value or
- null string, as appropriate, had been supplied. The return
- value is zero on success, non-zero if an invalid option is sup-
- plied or a write or assignment error occurs.
-
- p\bpu\bus\bsh\bhd\bd [-\b-n\bn] [+_\bn] [-_\bn]
- p\bpu\bus\bsh\bhd\bd [-\b-n\bn] [_\bd_\bi_\br]
- Add a directory to the top of the directory stack, or rotate the
- stack, making the new top of the stack the current working di-
- rectory. With no arguments, p\bpu\bus\bsh\bhd\bd exchanges the top two ele-
- ments of the directory stack. Arguments, if supplied, have the
- following meanings:
- -\b-n\bn Suppress the normal change of directory when rotating or
- adding directories to the stack, only manipulate the
- stack.
- +\b+_\bn Rotate the stack so that the _\bnth directory (counting from
- the left of the list shown by d\bdi\bir\brs\bs, starting with zero)
- is at the top.
- -\b-_\bn Rotates the stack so that the _\bnth directory (counting
- from the right of the list shown by d\bdi\bir\brs\bs, starting with
- zero) is at the top.
- _\bd_\bi_\br Adds _\bd_\bi_\br to the directory stack at the top.
-
- After the stack has been modified, if the -\b-n\bn option was not sup-
- plied, p\bpu\bus\bsh\bhd\bd uses the c\bcd\bd builtin to change to the directory at
- the top of the stack. If the c\bcd\bd fails, p\bpu\bus\bsh\bhd\bd returns a non-zero
- value.
-
- Otherwise, if no arguments are supplied, p\bpu\bus\bsh\bhd\bd returns zero un-
- less the directory stack is empty. When rotating the directory
- stack, p\bpu\bus\bsh\bhd\bd returns zero unless the directory stack is empty or
- _\bn specifies a non-existent directory stack element.
-
- If the p\bpu\bus\bsh\bhd\bd command is successful, b\bba\bas\bsh\bh runs d\bdi\bir\brs\bs to show the
- final contents of the directory stack.
-
- p\bpw\bwd\bd [-\b-L\bLP\bP]
- Print the absolute pathname of the current working directory.
- The pathname printed contains no symbolic links if the -\b-P\bP option
- is supplied or the -\b-o\bo p\bph\bhy\bys\bsi\bic\bca\bal\bl option to the s\bse\bet\bt builtin command
- is enabled. If the -\b-L\bL option is used, the pathname printed may
- contain symbolic links. The return status is 0 unless an error
- occurs while reading the name of the current directory or an in-
- valid option is supplied.
-
- r\bre\bea\bad\bd [-\b-E\bEe\ber\brs\bs] [-\b-a\ba _\ba_\bn_\ba_\bm_\be] [-\b-d\bd _\bd_\be_\bl_\bi_\bm] [-\b-i\bi _\bt_\be_\bx_\bt] [-\b-n\bn _\bn_\bc_\bh_\ba_\br_\bs] [-\b-N\bN _\bn_\bc_\bh_\ba_\br_\bs]
- [-\b-p\bp _\bp_\br_\bo_\bm_\bp_\bt] [-\b-t\bt _\bt_\bi_\bm_\be_\bo_\bu_\bt] [-\b-u\bu _\bf_\bd] [_\bn_\ba_\bm_\be ...]
- Read one line from the standard input, or from the file descrip-
- tor _\bf_\bd supplied as an argument to the -\b-u\bu option, split it into
- words as described above under W\bWo\bor\brd\bd S\bSp\bpl\bli\bit\btt\bti\bin\bng\bg, and assign the
- first word to the first _\bn_\ba_\bm_\be, the second word to the second
- _\bn_\ba_\bm_\be, and so on. If there are more words than names, the re-
- maining words and their intervening delimiters are assigned to
- the last _\bn_\ba_\bm_\be. If there are fewer words read from the input
- stream than names, the remaining names are assigned empty val-
- ues. The characters in the value of the I\bIF\bFS\bS variable are used
- to split the line into words using the same rules the shell uses
- for expansion (described above under W\bWo\bor\brd\bd S\bSp\bpl\bli\bit\btt\bti\bin\bng\bg). The back-
- slash character (\\b\) removes any special meaning for the next
- character read and is used for line continuation.
-
- Options, if supplied, have the following meanings:
- -\b-a\ba _\ba_\bn_\ba_\bm_\be
- The words are assigned to sequential indices of the array
- variable _\ba_\bn_\ba_\bm_\be, starting at 0. _\ba_\bn_\ba_\bm_\be is unset before any
- new values are assigned. Other _\bn_\ba_\bm_\be arguments are ig-
- nored.
- -\b-d\bd _\bd_\be_\bl_\bi_\bm
- The first character of _\bd_\be_\bl_\bi_\bm terminates the input line,
- rather than newline. If _\bd_\be_\bl_\bi_\bm is the empty string, r\bre\bea\bad\bd
- will terminate a line when it reads a NUL character.
- -\b-e\be If the standard input is coming from a terminal, r\bre\bea\bad\bd
- uses r\bre\bea\bad\bdl\bli\bin\bne\be (see R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE above) to obtain the line.
- R\bRe\bea\bad\bdl\bli\bin\bne\be uses the current (or default, if line editing
- was not previously active) editing settings, but uses
- r\bre\bea\bad\bdl\bli\bin\bne\be's default filename completion.
- -\b-E\bE If the standard input is coming from a terminal, r\bre\bea\bad\bd
- uses r\bre\bea\bad\bdl\bli\bin\bne\be (see R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE above) to obtain the line.
- R\bRe\bea\bad\bdl\bli\bin\bne\be uses the current (or default, if line editing
- was not previously active) editing settings, but uses
- bash's default completion, including programmable comple-
- tion.
- -\b-i\bi _\bt_\be_\bx_\bt
- If r\bre\bea\bad\bdl\bli\bin\bne\be is being used to read the line, r\bre\bea\bad\bd places
- _\bt_\be_\bx_\bt into the editing buffer before editing begins.
- -\b-n\bn _\bn_\bc_\bh_\ba_\br_\bs
- r\bre\bea\bad\bd returns after reading _\bn_\bc_\bh_\ba_\br_\bs characters rather than
- waiting for a complete line of input, unless it encoun-
- ters EOF or r\bre\bea\bad\bd times out, but honors a delimiter if it
- reads fewer than _\bn_\bc_\bh_\ba_\br_\bs characters before the delimiter.
- -\b-N\bN _\bn_\bc_\bh_\ba_\br_\bs
- r\bre\bea\bad\bd returns after reading exactly _\bn_\bc_\bh_\ba_\br_\bs characters
- rather than waiting for a complete line of input, unless
- it encounters EOF or r\bre\bea\bad\bd times out. Any delimiter char-
- acters in the input are not treated specially and do not
- cause r\bre\bea\bad\bd to return until it has read _\bn_\bc_\bh_\ba_\br_\bs characters.
- The result is not split on the characters in I\bIF\bFS\bS; the in-
- tent is that the variable is assigned exactly the charac-
- ters read (with the exception of backslash; see the -\b-r\br
- option below).
- -\b-p\bp _\bp_\br_\bo_\bm_\bp_\bt
- Display _\bp_\br_\bo_\bm_\bp_\bt on standard error, without a trailing new-
- line, before attempting to read any input, but only if
- input is coming from a terminal.
- -\b-r\br Backslash does not act as an escape character. The back-
- slash is considered to be part of the line. In particu-
- lar, a backslash-newline pair may not then be used as a
- line continuation.
- -\b-s\bs Silent mode. If input is coming from a terminal, charac-
- ters are not echoed.
- -\b-t\bt _\bt_\bi_\bm_\be_\bo_\bu_\bt
- Cause r\bre\bea\bad\bd to time out and return failure if it does not
- read a complete line of input (or a specified number of
- characters) within _\bt_\bi_\bm_\be_\bo_\bu_\bt seconds. _\bt_\bi_\bm_\be_\bo_\bu_\bt may be a
- decimal number with a fractional portion following the
- decimal point. This option is only effective if r\bre\bea\bad\bd is
- reading input from a terminal, pipe, or other special
- file; it has no effect when reading from regular files.
- If r\bre\bea\bad\bd times out, it saves any partial input read into
- the specified variable _\bn_\ba_\bm_\be, and the exit status is
- greater than 128. If _\bt_\bi_\bm_\be_\bo_\bu_\bt is 0, r\bre\bea\bad\bd returns immedi-
- ately, without trying to read any data. In this case,
- the exit status is 0 if input is available on the speci-
- fied file descriptor, or the read will return EOF, non-
- zero otherwise.
- -\b-u\bu _\bf_\bd Read input from file descriptor _\bf_\bd instead of the stan-
- dard input.
-
- Other than the case where _\bd_\be_\bl_\bi_\bm is the empty string, r\bre\bea\bad\bd ig-
- nores any NUL characters in the input.
-
- If no _\bn_\ba_\bm_\be_\bs are supplied, r\bre\bea\bad\bd assigns the line read, without
- the ending delimiter but otherwise unmodified, to the variable
- R\bRE\bEP\bPL\bLY\bY.
-
- The exit status is zero, unless end-of-file is encountered, r\bre\bea\bad\bd
- times out (in which case the status is greater than 128), a
- variable assignment error (such as assigning to a readonly vari-
- able) occurs, or an invalid file descriptor is supplied as the
- argument to -\b-u\bu.
-
- r\bre\bea\bad\bdo\bon\bnl\bly\by [-\b-a\baA\bAf\bf] [-\b-p\bp] [_\bn_\ba_\bm_\be[=_\bw_\bo_\br_\bd] ...]
- The given _\bn_\ba_\bm_\be_\bs are marked readonly; the values of these _\bn_\ba_\bm_\be_\bs
- may not be changed by subsequent assignment or unset. If the -\b-f\bf
- option is supplied, each _\bn_\ba_\bm_\be refers to a shell function. The
- -\b-a\ba option restricts the variables to indexed arrays; the -\b-A\bA op-
- tion restricts the variables to associative arrays. If both op-
- tions are supplied, -\b-A\bA takes precedence. If no _\bn_\ba_\bm_\be arguments
- are supplied, or if the -\b-p\bp option is supplied, print a list of
- all readonly names. The other options may be used to restrict
- the output to a subset of the set of readonly names. The -\b-p\bp op-
- tion displays output in a format that may be reused as input.
-
- r\bre\bea\bad\bdo\bon\bnl\bly\by allows the value of a variable to be set at the same
- time the readonly attribute is changed by following the variable
- name with =_\bv_\ba_\bl_\bu_\be. This sets the value of the variable is to
- _\bv_\ba_\bl_\bu_\be while modifying the readonly attribute.
-
- The return status is 0 unless an invalid option is encountered,
- one of the _\bn_\ba_\bm_\be_\bs is not a valid shell variable name, or -\b-f\bf is
- supplied with a _\bn_\ba_\bm_\be that is not a function.
-
- r\bre\bet\btu\bur\brn\bn [_\bn]
- Stop executing a shell function or sourced file and return the
- value specified by _\bn to its caller. If _\bn is omitted, the return
- status is that of the last command executed. If r\bre\bet\btu\bur\brn\bn is exe-
- cuted by a trap handler, the last command used to determine the
- status is the last command executed before the trap handler. If
- r\bre\bet\btu\bur\brn\bn is executed during a D\bDE\bEB\bBU\bUG\bG trap, the last command used to
- determine the status is the last command executed by the trap
- handler before r\bre\bet\btu\bur\brn\bn was invoked.
-
- When r\bre\bet\btu\bur\brn\bn is used to terminate execution of a script being ex-
- ecuted by the .\b. (s\bso\bou\bur\brc\bce\be) command, it causes the shell to stop
- executing that script and return either _\bn or the exit status of
- the last command executed within the script as the exit status
- of the script. If _\bn is supplied, the return value is its least
- significant 8 bits.
-
- Any command associated with the R\bRE\bET\bTU\bUR\bRN\bN trap is executed before
- execution resumes after the function or script.
-
- The return status is non-zero if r\bre\bet\btu\bur\brn\bn is supplied a non-nu-
- meric argument, or is used outside a function and not during ex-
- ecution of a script by .\b. or s\bso\bou\bur\brc\bce\be.
-
- s\bse\bet\bt [-\b-a\bab\bbe\bef\bfh\bhk\bkm\bmn\bnp\bpt\btu\buv\bvx\bxB\bBC\bCE\bEH\bHP\bPT\bT] [-\b-o\bo _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be] [-\b--\b-] [-\b-] [_\ba_\br_\bg ...]
- s\bse\bet\bt [+\b+a\bab\bbe\bef\bfh\bhk\bkm\bmn\bnp\bpt\btu\buv\bvx\bxB\bBC\bCE\bEH\bHP\bPT\bT] [+\b+o\bo _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be] [-\b--\b-] [-\b-] [_\ba_\br_\bg ...]
- s\bse\bet\bt -\b-o\bo
- s\bse\bet\bt +\b+o\bo Without options, display the name and value of each shell vari-
- able in a format that can be reused as input for setting or re-
- setting the currently-set variables. Read-only variables cannot
- be reset. In posix mode, only shell variables are listed. The
- output is sorted according to the current locale. When options
- are specified, they set or unset shell attributes. Any argu-
- ments remaining after option processing are treated as values
- for the positional parameters and are assigned, in order, to $\b$1\b1,
- $\b$2\b2, ..., $\b$_\bn. Options, if specified, have the following mean-
- ings:
- -\b-a\ba Each variable or function that is created or modified is
- given the export attribute and marked for export to the
- environment of subsequent commands.
- -\b-b\bb Report the status of terminated background jobs immedi-
- ately, rather than before the next primary prompt or af-
- ter a foreground command terminates. This is effective
- only when job control is enabled.
- -\b-e\be Exit immediately if a _\bp_\bi_\bp_\be_\bl_\bi_\bn_\be (which may consist of a
- single _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd), a _\bl_\bi_\bs_\bt, or a _\bc_\bo_\bm_\bp_\bo_\bu_\bn_\bd _\bc_\bo_\bm_\bm_\ba_\bn_\bd
- (see S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR above), exits with a non-zero status.
- The shell does not exit if the command that fails is
- part of the command list immediately following a w\bwh\bhi\bil\ble\be
- or u\bun\bnt\bti\bil\bl reserved word, part of the test following the
- i\bif\bf or e\bel\bli\bif\bf reserved words, part of any command executed
- in a &\b&&\b& or |\b||\b| list except the command following the fi-
- nal &\b&&\b& or |\b||\b|, any command in a pipeline but the last
- (subject to the state of the p\bpi\bip\bpe\bef\bfa\bai\bil\bl shell option), or
- if the command's return value is being inverted with !\b!.
- If a compound command other than a subshell returns a
- non-zero status because a command failed while -\b-e\be was
- being ignored, the shell does not exit. A trap on E\bER\bRR\bR,
- if set, is executed before the shell exits. This option
- applies to the shell environment and each subshell envi-
- ronment separately (see C\bCO\bOM\bMM\bMA\bAN\bND\bD E\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\bN E\bEN\bNV\bVI\bIR\bRO\bON\bNM\bME\bEN\bNT\bT
- above), and may cause subshells to exit before executing
- all the commands in the subshell.
-
- If a compound command or shell function executes in a
- context where -\b-e\be is being ignored, none of the commands
- executed within the compound command or function body
- will be affected by the -\b-e\be setting, even if -\b-e\be is set
- and a command returns a failure status. If a compound
- command or shell function sets -\b-e\be while executing in a
- context where -\b-e\be is ignored, that setting will not have
- any effect until the compound command or the command
- containing the function call completes.
- -\b-f\bf Disable pathname expansion.
- -\b-h\bh Remember the location of commands as they are looked up
- for execution. This is enabled by default.
- -\b-k\bk All arguments in the form of assignment statements are
- placed in the environment for a command, not just those
- that precede the command name.
- -\b-m\bm Monitor mode. Job control is enabled. This option is
- on by default for interactive shells on systems that
- support it (see J\bJO\bOB\bB C\bCO\bON\bNT\bTR\bRO\bOL\bL above). All processes run
- in a separate process group. When a background job com-
- pletes, the shell prints a line containing its exit sta-
- tus.
- -\b-n\bn Read commands but do not execute them. This may be used
- to check a shell script for syntax errors. This is ig-
- nored by interactive shells.
- -\b-o\bo _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be
- The _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be can be one of the following:
- a\bal\bll\ble\bex\bxp\bpo\bor\brt\bt
- Same as -\b-a\ba.
- b\bbr\bra\bac\bce\bee\bex\bxp\bpa\ban\bnd\bd
- Same as -\b-B\bB.
- e\bem\bma\bac\bcs\bs Use an emacs-style command line editing inter-
- face. This is enabled by default when the shell
- is interactive, unless the shell is started with
- the -\b--\b-n\bno\boe\bed\bdi\bit\bti\bin\bng\bg option. This also affects the
- editing interface used for r\bre\bea\bad\bd -\b-e\be.
- e\ber\brr\bre\bex\bxi\bit\bt Same as -\b-e\be.
- e\ber\brr\brt\btr\bra\bac\bce\be
- Same as -\b-E\bE.
- f\bfu\bun\bnc\bct\btr\bra\bac\bce\be
- Same as -\b-T\bT.
- h\bha\bas\bsh\bha\bal\bll\bl Same as -\b-h\bh.
- h\bhi\bis\bst\bte\bex\bxp\bpa\ban\bnd\bd
- Same as -\b-H\bH.
- h\bhi\bis\bst\bto\bor\bry\by Enable command history, as described above under
- H\bHI\bIS\bST\bTO\bOR\bRY\bY. This option is on by default in inter-
- active shells.
- i\big\bgn\bno\bor\bre\bee\beo\bof\bf
- The effect is as if the shell command
- "IGNOREEOF=10" had been executed (see S\bSh\bhe\bel\bll\bl
- V\bVa\bar\bri\bia\bab\bbl\ble\bes\bs above).
- k\bke\bey\byw\bwo\bor\brd\bd Same as -\b-k\bk.
- m\bmo\bon\bni\bit\bto\bor\br Same as -\b-m\bm.
- n\bno\boc\bcl\blo\bob\bbb\bbe\ber\br
- Same as -\b-C\bC.
- n\bno\boe\bex\bxe\bec\bc Same as -\b-n\bn.
- n\bno\bog\bgl\blo\bob\bb Same as -\b-f\bf.
- n\bno\bol\blo\bog\bg Currently ignored.
- n\bno\bot\bti\bif\bfy\by Same as -\b-b\bb.
- n\bno\bou\bun\bns\bse\bet\bt Same as -\b-u\bu.
- o\bon\bne\bec\bcm\bmd\bd Same as -\b-t\bt.
- p\bph\bhy\bys\bsi\bic\bca\bal\bl
- Same as -\b-P\bP.
- p\bpi\bip\bpe\bef\bfa\bai\bil\bl
- If set, the return value of a pipeline is the
- value of the last (rightmost) command to exit
- with a non-zero status, or zero if all commands
- in the pipeline exit successfully. This option
- is disabled by default.
- p\bpo\bos\bsi\bix\bx Enable posix mode; change the behavior of b\bba\bas\bsh\bh
- where the default operation differs from the
- POSIX standard to match the standard. See S\bSE\bEE\bE
- A\bAL\bLS\bSO\bO below for a reference to a document that
- details how posix mode affects bash's behavior.
- p\bpr\bri\biv\bvi\bil\ble\beg\bge\bed\bd
- Same as -\b-p\bp.
- v\bve\ber\brb\bbo\bos\bse\be Same as -\b-v\bv.
- v\bvi\bi Use a vi-style command line editing interface.
- This also affects the editing interface used for
- r\bre\bea\bad\bd -\b-e\be.
- x\bxt\btr\bra\bac\bce\be Same as -\b-x\bx.
- If -\b-o\bo is supplied with no _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be, s\bse\bet\bt prints the
- current shell option settings. If +\b+o\bo is supplied with
- no _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be, s\bse\bet\bt prints a series of s\bse\bet\bt commands to
- recreate the current option settings on the standard
- output.
- -\b-p\bp Turn on _\bp_\br_\bi_\bv_\bi_\bl_\be_\bg_\be_\bd mode. In this mode, the shell does
- not read the $\b$E\bEN\bNV\bV and $\b$B\bBA\bAS\bSH\bH_\b_E\bEN\bNV\bV files, shell functions
- are not inherited from the environment, and the S\bSH\bHE\bEL\bL-\b-
- L\bLO\bOP\bPT\bTS\bS, B\bBA\bAS\bSH\bHO\bOP\bPT\bTS\bS, C\bCD\bDP\bPA\bAT\bTH\bH, and G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE variables, if
- they appear in the environment, are ignored. If the
- shell is started with the effective user (group) id not
- equal to the real user (group) id, and the -\b-p\bp option is
- not supplied, these actions are taken and the effective
- user id is set to the real user id. If the -\b-p\bp option is
- supplied at startup, the effective user id is not reset.
- Turning this option off causes the effective user and
- group ids to be set to the real user and group ids.
- -\b-r\br Enable restricted shell mode. This option cannot be un-
- set once it has been set.
- -\b-t\bt Exit after reading and executing one command.
- -\b-u\bu Treat unset variables and parameters other than the spe-
- cial parameters "@" and "*", or array variables sub-
- scripted with "@" or "*", as an error when performing
- parameter expansion. If expansion is attempted on an
- unset variable or parameter, the shell prints an error
- message, and, if not interactive, exits with a non-zero
- status.
- -\b-v\bv Print shell input lines as they are read.
- -\b-x\bx After expanding each _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd, f\bfo\bor\br command, c\bca\bas\bse\be
- command, s\bse\bel\ble\bec\bct\bt command, or arithmetic f\bfo\bor\br command, dis-
- play the expanded value of P\bPS\bS4\b4, followed by the command
- and its expanded arguments or associated word list, to
- the standard error.
- -\b-B\bB The shell performs brace expansion (see B\bBr\bra\bac\bce\be E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn
- above). This is on by default.
- -\b-C\bC If set, b\bba\bas\bsh\bh does not overwrite an existing file with
- the >\b>, >\b>&\b&, and <\b<>\b> redirection operators. Using the
- redirection operator >\b>|\b| instead of >\b> will override this
- and force the creation of an output file.
- -\b-E\bE If set, any trap on E\bER\bRR\bR is inherited by shell functions,
- command substitutions, and commands executed in a sub-
- shell environment. The E\bER\bRR\bR trap is normally not inher-
- ited in such cases.
- -\b-H\bH Enable !\b! style history substitution. This option is on
- by default when the shell is interactive.
- -\b-P\bP If set, the shell does not resolve symbolic links when
- executing commands such as c\bcd\bd that change the current
- working directory. It uses the physical directory
- structure instead. By default, b\bba\bas\bsh\bh follows the logical
- chain of directories when performing commands which
- change the current directory.
- -\b-T\bT If set, any traps on D\bDE\bEB\bBU\bUG\bG and R\bRE\bET\bTU\bUR\bRN\bN are inherited by
- shell functions, command substitutions, and commands ex-
- ecuted in a subshell environment. The D\bDE\bEB\bBU\bUG\bG and R\bRE\bET\bTU\bUR\bRN\bN
- traps are normally not inherited in such cases.
- -\b--\b- If no arguments follow this option, unset the positional
- parameters. Otherwise, set the positional parameters to
- the _\ba_\br_\bgs, even if some of them begin with a -\b-.
- -\b- Signal the end of options, and assign all remaining _\ba_\br_\bgs
- to the positional parameters. The -\b-x\bx and -\b-v\bv options are
- turned off. If there are no _\ba_\br_\bgs, the positional para-
- meters remain unchanged.
-
- The options are off by default unless otherwise noted. Using +
- rather than - causes these options to be turned off. The op-
- tions can also be specified as arguments to an invocation of the
- shell. The current set of options may be found in $\b$-\b-. The re-
- turn status is always zero unless an invalid option is encoun-
- tered.
-
- s\bsh\bhi\bif\bft\bt [_\bn]
- Rename positional parameters from _\bn+1 ... to $\b$1\b1 .\b..\b..\b..\b. Parameters
- represented by the numbers $\b$#\b# down to $\b$#\b#-_\bn+1 are unset. _\bn must
- be a non-negative number less than or equal to $\b$#\b#. If _\bn is 0,
- no parameters are changed. If _\bn is not given, it is assumed to
- be 1. If _\bn is greater than $\b$#\b#, the positional parameters are
- not changed. The return status is greater than zero if _\bn is
- greater than $\b$#\b# or less than zero; otherwise 0.
-
- s\bsh\bho\bop\bpt\bt [-\b-p\bpq\bqs\bsu\bu] [-\b-o\bo] [_\bo_\bp_\bt_\bn_\ba_\bm_\be ...]
- Toggle the values of settings controlling optional shell behav-
- ior. The settings can be either those listed below, or, if the
- -\b-o\bo option is used, those available with the -\b-o\bo option to the s\bse\bet\bt
- builtin command.
-
- With no options, or with the -\b-p\bp option, display a list of all
- settable options, with an indication of whether or not each is
- set; if any _\bo_\bp_\bt_\bn_\ba_\bm_\be_\bs are supplied, the output is restricted to
- those options. The -\b-p\bp option displays output in a form that may
- be reused as input.
-
- Other options have the following meanings:
- -\b-s\bs Enable (set) each _\bo_\bp_\bt_\bn_\ba_\bm_\be.
- -\b-u\bu Disable (unset) each _\bo_\bp_\bt_\bn_\ba_\bm_\be.
- -\b-q\bq Suppresses normal output (quiet mode); the return status
- indicates whether the _\bo_\bp_\bt_\bn_\ba_\bm_\be is set or unset. If multi-
- ple _\bo_\bp_\bt_\bn_\ba_\bm_\be arguments are supplied with -\b-q\bq, the return
- status is zero if all _\bo_\bp_\bt_\bn_\ba_\bm_\be_\bs are enabled; non-zero oth-
- erwise.
- -\b-o\bo Restricts the values of _\bo_\bp_\bt_\bn_\ba_\bm_\be to be those defined for
- the -\b-o\bo option to the s\bse\bet\bt builtin.
-
- If either -\b-s\bs or -\b-u\bu is used with no _\bo_\bp_\bt_\bn_\ba_\bm_\be arguments, s\bsh\bho\bop\bpt\bt
- shows only those options which are set or unset, respectively.
- Unless otherwise noted, the s\bsh\bho\bop\bpt\bt options are disabled (unset)
- by default.
-
- The return status when listing options is zero if all _\bo_\bp_\bt_\bn_\ba_\bm_\be_\bs
- are enabled, non-zero otherwise. When setting or unsetting op-
- tions, the return status is zero unless an _\bo_\bp_\bt_\bn_\ba_\bm_\be is not a
- valid shell option.
-
- The list of s\bsh\bho\bop\bpt\bt options is:
-
- a\bar\brr\bra\bay\by_\b_e\bex\bxp\bpa\ban\bnd\bd_\b_o\bon\bnc\bce\be
- If set, the shell suppresses multiple evaluation of as-
- sociative and indexed array subscripts during arithmetic
- expression evaluation, while executing builtins that can
- perform variable assignments, and while executing
- builtins that perform array dereferencing.
- a\bas\bss\bso\boc\bc_\b_e\bex\bxp\bpa\ban\bnd\bd_\b_o\bon\bnc\bce\be
- Deprecated; a synonym for a\bar\brr\bra\bay\by_\b_e\bex\bxp\bpa\ban\bnd\bd_\b_o\bon\bnc\bce\be.
- a\bau\but\bto\boc\bcd\bd If set, a command name that is the name of a directory
- is executed as if it were the argument to the c\bcd\bd com-
- mand. This option is only used by interactive shells.
- b\bba\bas\bsh\bh_\b_s\bso\bou\bur\brc\bce\be_\b_f\bfu\bul\bll\blp\bpa\bat\bth\bh
- If set, filenames added to the B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE array vari-
- able are converted to full pathnames (see S\bSh\bhe\bel\bll\bl V\bVa\bar\bri\bi-\b-
- a\bab\bbl\ble\bes\bs above).
- c\bcd\bda\bab\bbl\ble\be_\b_v\bva\bar\brs\bs
- If set, an argument to the c\bcd\bd builtin command that is
- not a directory is assumed to be the name of a variable
- whose value is the directory to change to.
- c\bcd\bds\bsp\bpe\bel\bll\bl If set, the c\bcd\bd command attempts to correct minor errors
- in the spelling of a directory component. Minor errors
- include transposed characters, a missing character, and
- one extra character. If c\bcd\bd corrects the directory name,
- it prints the corrected filename, and the command pro-
- ceeds. This option is only used by interactive shells.
- c\bch\bhe\bec\bck\bkh\bha\bas\bsh\bh
- If set, b\bba\bas\bsh\bh checks that a command found in the hash ta-
- ble exists before trying to execute it. If a hashed
- command no longer exists, b\bba\bas\bsh\bh performs a normal path
- search.
- c\bch\bhe\bec\bck\bkj\bjo\bob\bbs\bs
- If set, b\bba\bas\bsh\bh lists the status of any stopped and running
- jobs before exiting an interactive shell. If any jobs
- are running, b\bba\bas\bsh\bh defers the exit until a second exit is
- attempted without an intervening command (see J\bJO\bOB\bB C\bCO\bON\bN-\b-
- T\bTR\bRO\bOL\bL above). The shell always postpones exiting if any
- jobs are stopped.
- c\bch\bhe\bec\bck\bkw\bwi\bin\bns\bsi\biz\bze\be
- If set, b\bba\bas\bsh\bh checks the window size after each external
- (non-builtin) command and, if necessary, updates the
- values of L\bLI\bIN\bNE\bES\bS and C\bCO\bOL\bLU\bUM\bMN\bNS\bS, using the file descriptor
- associated with the standard error if it is a terminal.
- This option is enabled by default.
- c\bcm\bmd\bdh\bhi\bis\bst\bt If set, b\bba\bas\bsh\bh attempts to save all lines of a multiple-
- line command in the same history entry. This allows
- easy re-editing of multi-line commands. This option is
- enabled by default, but only has an effect if command
- history is enabled, as described above under H\bHI\bIS\bST\bTO\bOR\bRY\bY.
- c\bco\bom\bmp\bpa\bat\bt3\b31\b1
- c\bco\bom\bmp\bpa\bat\bt3\b32\b2
- c\bco\bom\bmp\bpa\bat\bt4\b40\b0
- c\bco\bom\bmp\bpa\bat\bt4\b41\b1
- 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
- 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
- If set, b\bba\bas\bsh\bh quotes all shell metacharacters in file-
- names and directory names when performing completion.
- If not set, b\bba\bas\bsh\bh removes metacharacters such as the dol-
- lar sign from the set of characters that will be quoted
- in completed filenames when these metacharacters appear
- in shell variable references in words to be completed.
- This means that dollar signs in variable names that ex-
- pand to directories will not be quoted; however, any
- dollar signs appearing in filenames will not be quoted,
- either. This is active only when bash is using back-
- slashes to quote completed filenames. This variable is
- set by default, which is the default bash behavior in
- versions through 4.2.
- d\bdi\bir\bre\bex\bxp\bpa\ban\bnd\bd
- If set, b\bba\bas\bsh\bh replaces directory names with the results
- of word expansion when performing filename completion.
- This changes the contents of the r\bre\bea\bad\bdl\bli\bin\bne\be editing
- buffer. If not set, b\bba\bas\bsh\bh attempts to preserve what the
- user typed.
- d\bdi\bir\brs\bsp\bpe\bel\bll\bl
- If set, b\bba\bas\bsh\bh attempts spelling correction on directory
- names during word completion if the directory name ini-
- tially supplied does not exist.
- d\bdo\bot\btg\bgl\blo\bob\bb If set, b\bba\bas\bsh\bh includes filenames beginning with a "." in
- the results of pathname expansion. The filenames _\b. and
- _\b._\b. must always be matched explicitly, even if d\bdo\bot\btg\bgl\blo\bob\bb is
- set.
- e\bex\bxe\bec\bcf\bfa\bai\bil\bl
- If set, a non-interactive shell will not exit if it can-
- not execute the file specified as an argument to the
- e\bex\bxe\bec\bc builtin. An interactive shell does not exit if
- e\bex\bxe\bec\bc fails.
- e\bex\bxp\bpa\ban\bnd\bd_\b_a\bal\bli\bia\bas\bse\bes\bs
- If set, aliases are expanded as described above under
- A\bAL\bLI\bIA\bAS\bSE\bES\bS. This option is enabled by default for interac-
- tive shells.
- e\bex\bxt\btd\bde\beb\bbu\bug\bg
- If set at shell invocation, or in a shell startup file,
- arrange to execute the debugger profile before the shell
- starts, identical to the -\b--\b-d\bde\beb\bbu\bug\bgg\bge\ber\br option. If set af-
- ter invocation, behavior intended for use by debuggers
- is enabled:
- 1\b1.\b. The -\b-F\bF option to the d\bde\bec\bcl\bla\bar\bre\be builtin displays the
- source file name and line number corresponding to
- each function name supplied as an argument.
- 2\b2.\b. If the command run by the D\bDE\bEB\bBU\bUG\bG trap returns a
- non-zero value, the next command is skipped and
- not executed.
- 3\b3.\b. If the command run by the D\bDE\bEB\bBU\bUG\bG trap returns a
- value of 2, and the shell is executing in a sub-
- routine (a shell function or a shell script exe-
- cuted by the .\b. or s\bso\bou\bur\brc\bce\be builtins), the shell
- simulates a call to r\bre\bet\btu\bur\brn\bn.
- 4\b4.\b. B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGC\bC and B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV are updated as described
- in their descriptions above).
- 5\b5.\b. Function tracing is enabled: command substitu-
- tion, shell functions, and subshells invoked with
- (\b( _\bc_\bo_\bm_\bm_\ba_\bn_\bd )\b) inherit the D\bDE\bEB\bBU\bUG\bG and R\bRE\bET\bTU\bUR\bRN\bN traps.
- 6\b6.\b. Error tracing is enabled: command substitution,
- shell functions, and subshells invoked with (\b(
- _\bc_\bo_\bm_\bm_\ba_\bn_\bd )\b) inherit the E\bER\bRR\bR trap.
- e\bex\bxt\btg\bgl\blo\bob\bb If set, enable the extended pattern matching features
- described above under P\bPa\bat\bth\bhn\bna\bam\bme\be E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn.
- e\bex\bxt\btq\bqu\buo\bot\bte\be
- If set, $\b$'_\bs_\bt_\br_\bi_\bn_\bg' and $\b$"_\bs_\bt_\br_\bi_\bn_\bg" quoting is performed
- within $\b${\b{_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br}\b} expansions enclosed in double
- quotes. This option is enabled by default.
- f\bfa\bai\bil\blg\bgl\blo\bob\bb
- If set, patterns which fail to match filenames during
- pathname expansion result in an expansion error.
- f\bfo\bor\brc\bce\be_\b_f\bfi\big\bgn\bno\bor\bre\be
- If set, the suffixes specified by the F\bFI\bIG\bGN\bNO\bOR\bRE\bE shell
- variable cause words to be ignored when performing word
- completion even if the ignored words are the only possi-
- ble completions. See S\bSh\bhe\bel\bll\bl V\bVa\bar\bri\bia\bab\bbl\ble\bes\bs above for a de-
- scription of F\bFI\bIG\bGN\bNO\bOR\bRE\bE. This option is enabled by de-
- fault.
- g\bgl\blo\bob\bba\bas\bsc\bci\bii\bir\bra\ban\bng\bge\bes\bs
- If set, range expressions used in pattern matching
- bracket expressions (see P\bPa\bat\btt\bte\ber\brn\bn M\bMa\bat\btc\bch\bhi\bin\bng\bg above) behave
- as if in the traditional C locale when performing com-
- parisons. That is, pattern matching does not take the
- current locale's collating sequence into account, so b\bb
- will not collate between A\bA and B\bB, and upper-case and
- lower-case ASCII characters will collate together.
- g\bgl\blo\bob\bbs\bsk\bki\bip\bpd\bdo\bot\bts\bs
- If set, pathname expansion will never match the file-
- names _\b. and _\b._\b., even if the pattern begins with a ".".
- This option is enabled by default.
- g\bgl\blo\bob\bbs\bst\bta\bar\br
- If set, the pattern *\b**\b* used in a pathname expansion con-
- text will match all files and zero or more directories
- and subdirectories. If the pattern is followed by a /\b/,
- only directories and subdirectories match.
- g\bgn\bnu\bu_\b_e\ber\brr\brf\bfm\bmt\bt
- If set, shell error messages are written in the standard
- GNU error message format.
- h\bhi\bis\bst\bta\bap\bpp\bpe\ben\bnd\bd
- If set, the history list is appended to the file named
- by the value of the H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE variable when the shell ex-
- its, rather than overwriting the file.
- h\bhi\bis\bst\btr\bre\bee\bed\bdi\bit\bt
- If set, and r\bre\bea\bad\bdl\bli\bin\bne\be is being used, the user is given
- the opportunity to re-edit a failed history substitu-
- tion.
- h\bhi\bis\bst\btv\bve\ber\bri\bif\bfy\by
- If set, and r\bre\bea\bad\bdl\bli\bin\bne\be is being used, the results of his-
- tory substitution are not immediately passed to the
- shell parser. Instead, the resulting line is loaded
- into the r\bre\bea\bad\bdl\bli\bin\bne\be editing buffer, allowing further modi-
- fication.
- h\bho\bos\bst\btc\bco\bom\bmp\bpl\ble\bet\bte\be
- If set, and r\bre\bea\bad\bdl\bli\bin\bne\be is being used, b\bba\bas\bsh\bh will attempt to
- perform hostname completion when a word containing a @\b@
- is being completed (see C\bCo\bom\bmp\bpl\ble\bet\bti\bin\bng\bg under R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
- above). This is enabled by default.
- h\bhu\bup\bpo\bon\bne\bex\bxi\bit\bt
- If set, b\bba\bas\bsh\bh will send S\bSI\bIG\bGH\bHU\bUP\bP to all jobs when an inter-
- active login shell exits.
- i\bin\bnh\bhe\ber\bri\bit\bt_\b_e\ber\brr\bre\bex\bxi\bit\bt
- If set, command substitution inherits the value of the
- e\ber\brr\bre\bex\bxi\bit\bt option, instead of unsetting it in the subshell
- environment. This option is enabled when posix mode is
- enabled.
- i\bin\bnt\bte\ber\bra\bac\bct\bti\biv\bve\be_\b_c\bco\bom\bmm\bme\ben\bnt\bts\bs
- In an interactive shell, a word beginning with #\b# causes
- that word and all remaining characters on that line to
- be ignored, as in a non-interactive shell (see C\bCO\bOM\bMM\bME\bEN\bNT\bTS\bS
- above). This option is enabled by default.
- l\bla\bas\bst\btp\bpi\bip\bpe\be
- If set, and job control is not active, the shell runs
- the last command of a pipeline not executed in the back-
- ground in the current shell environment.
- l\bli\bit\bth\bhi\bis\bst\bt If set, and the c\bcm\bmd\bdh\bhi\bis\bst\bt option is enabled, multi-line
- commands are saved to the history with embedded newlines
- rather than using semicolon separators where possible.
- l\blo\boc\bca\bal\blv\bva\bar\br_\b_i\bin\bnh\bhe\ber\bri\bit\bt
- If set, local variables inherit the value and attributes
- of a variable of the same name that exists at a previous
- scope before any new value is assigned. The nameref at-
- tribute is not inherited.
- l\blo\boc\bca\bal\blv\bva\bar\br_\b_u\bun\bns\bse\bet\bt
- If set, calling u\bun\bns\bse\bet\bt on local variables in previous
- function scopes marks them so subsequent lookups find
- them unset until that function returns. This is identi-
- cal to the behavior of unsetting local variables at the
- current function scope.
- l\blo\bog\bgi\bin\bn_\b_s\bsh\bhe\bel\bll\bl
- The shell sets this option if it is started as a login
- shell (see I\bIN\bNV\bVO\bOC\bCA\bAT\bTI\bIO\bON\bN above). The value may not be
- changed.
- m\bma\bai\bil\blw\bwa\bar\brn\bn
- If set, and a file that b\bba\bas\bsh\bh is checking for mail has
- been accessed since the last time it was checked, b\bba\bas\bsh\bh
- displays the message "The mail in _\bm_\ba_\bi_\bl_\bf_\bi_\bl_\be has been
- read".
- n\bno\bo_\b_e\bem\bmp\bpt\bty\by_\b_c\bcm\bmd\bd_\b_c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bn
- If set, and r\bre\bea\bad\bdl\bli\bin\bne\be is being used, b\bba\bas\bsh\bh does not search
- P\bPA\bAT\bTH\bH for possible completions when completion is at-
- tempted on an empty line.
- n\bno\boc\bca\bas\bse\beg\bgl\blo\bob\bb
- If set, b\bba\bas\bsh\bh matches filenames in a case-insensitive
- fashion when performing pathname expansion (see P\bPa\bat\bth\bhn\bna\bam\bme\be
- E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn above).
- n\bno\boc\bca\bas\bse\bem\bma\bat\btc\bch\bh
- If set, b\bba\bas\bsh\bh matches patterns in a case-insensitive
- fashion when performing matching while executing c\bca\bas\bse\be or
- [\b[[\b[ conditional commands, when performing pattern substi-
- tution word expansions, or when filtering possible com-
- pletions as part of programmable completion.
- n\bno\boe\bex\bxp\bpa\ban\bnd\bd_\b_t\btr\bra\ban\bns\bsl\bla\bat\bti\bio\bon\bn
- If set, b\bba\bas\bsh\bh encloses the translated results of $\b$"\b"..."\b"
- quoting in single quotes instead of double quotes. If
- the string is not translated, this has no effect.
- n\bnu\bul\bll\blg\bgl\blo\bob\bb
- If set, pathname expansion patterns which match no files
- (see P\bPa\bat\bth\bhn\bna\bam\bme\be E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn above) expand to nothing and are
- removed, rather than expanding to themselves.
- p\bpa\bat\bts\bsu\bub\bb_\b_r\bre\bep\bpl\bla\bac\bce\bem\bme\ben\bnt\bt
- If set, b\bba\bas\bsh\bh expands occurrences of &\b& in the replacement
- string of pattern substitution to the text matched by
- the pattern, as described under P\bPa\bar\bra\bam\bme\bet\bte\ber\br E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn
- above. This option is enabled by default.
- p\bpr\bro\bog\bgc\bco\bom\bmp\bp
- If set, enable 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 above). This option is en-
- abled by default.
- p\bpr\bro\bog\bgc\bco\bom\bmp\bp_\b_a\bal\bli\bia\bas\bs
- If set, and programmable completion is enabled, b\bba\bas\bsh\bh
- treats a command name that doesn't have any completions
- as a possible alias and attempts alias expansion. If it
- has an alias, b\bba\bas\bsh\bh attempts programmable completion us-
- ing the command word resulting from the expanded alias.
- p\bpr\bro\bom\bmp\bpt\btv\bva\bar\brs\bs
- If set, prompt strings undergo parameter expansion, com-
- mand substitution, arithmetic expansion, and quote re-
- moval after being expanded as described in P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\bG
- above. This option is enabled by default.
- r\bre\bes\bst\btr\bri\bic\bct\bte\bed\bd_\b_s\bsh\bhe\bel\bll\bl
- The shell sets this option if it is started in re-
- stricted mode (see R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTE\bED\bD S\bSH\bHE\bEL\bLL\bL below). The value
- may not be changed. This is not reset when the startup
- files are executed, allowing the startup files to dis-
- cover whether or not a shell is restricted.
- s\bsh\bhi\bif\bft\bt_\b_v\bve\ber\brb\bbo\bos\bse\be
- If set, the s\bsh\bhi\bif\bft\bt builtin prints an error message when
- the shift count exceeds the number of positional parame-
- ters.
- s\bso\bou\bur\brc\bce\bep\bpa\bat\bth\bh
- If set, the .\b. (s\bso\bou\bur\brc\bce\be) builtin uses the value of P\bPA\bAT\bTH\bH to
- find the directory containing the file supplied as an
- argument when the -\b-p\bp option is not supplied. This op-
- tion is enabled by default.
- v\bva\bar\brr\bre\bed\bdi\bir\br_\b_c\bcl\blo\bos\bse\be
- If set, the shell automatically closes file descriptors
- assigned using the _\b{_\bv_\ba_\br_\bn_\ba_\bm_\be_\b} redirection syntax (see
- R\bRE\bED\bDI\bIR\bRE\bEC\bCT\bTI\bIO\bON\bN above) instead of leaving them open when the
- command completes.
- x\bxp\bpg\bg_\b_e\bec\bch\bho\bo
- If set, the e\bec\bch\bho\bo builtin expands backslash-escape se-
- quences by default. If the p\bpo\bos\bsi\bix\bx shell option is also
- enabled, e\bec\bch\bho\bo does not interpret any options.
-
- s\bsu\bus\bsp\bpe\ben\bnd\bd [-\b-f\bf]
- Suspend the execution of this shell until it receives a S\bSI\bIG\bGC\bCO\bON\bNT\bT
- signal. A login shell, or a shell without job control enabled,
- cannot be suspended; the -\b-f\bf option will override this and force
- the suspension. The return status is 0 unless the shell is a
- login shell or job control is not enabled and -\b-f\bf is not sup-
- plied.
-
- t\bte\bes\bst\bt _\be_\bx_\bp_\br
- [\b[ _\be_\bx_\bp_\br ]\b]
- Return a status of 0 (true) or 1 (false) depending on the evalu-
- ation of the conditional expression _\be_\bx_\bp_\br. Each operator and
- operand must be a separate argument. Expressions are composed
- of the primaries described above under C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS.
- t\bte\bes\bst\bt does not accept any options, nor does it accept and ignore
- an argument of -\b--\b- as signifying the end of options.
-
- Expressions may be combined using the following operators,
- listed in decreasing order of precedence. The evaluation de-
- pends on the number of arguments; see below. t\bte\bes\bst\bt uses operator
- precedence when there are five or more arguments.
- !\b! _\be_\bx_\bp_\br True if _\be_\bx_\bp_\br is false.
- (\b( _\be_\bx_\bp_\br )\b)
- Returns the value of _\be_\bx_\bp_\br. This may be used to override
- normal operator precedence.
- _\be_\bx_\bp_\br_\b1 -a\ba _\be_\bx_\bp_\br_\b2
- True if both _\be_\bx_\bp_\br_\b1 and _\be_\bx_\bp_\br_\b2 are true.
- _\be_\bx_\bp_\br_\b1 -o\bo _\be_\bx_\bp_\br_\b2
- True if either _\be_\bx_\bp_\br_\b1 or _\be_\bx_\bp_\br_\b2 is true.
-
- t\bte\bes\bst\bt and [\b[ evaluate conditional expressions using a set of rules
- based on the number of arguments.
-
- 0 arguments
- The expression is false.
- 1 argument
- The expression is true if and only if the argument is not
- null.
- 2 arguments
- If the first argument is !\b!, the expression is true if and
- only if the second argument is null. If the first argu-
- ment is one of the unary conditional operators listed
- above under C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS, the expression is
- true if the unary test is true. If the first argument is
- not a valid unary conditional operator, the expression is
- false.
- 3 arguments
- The following conditions are applied in the order listed.
- If the second argument is one of the binary conditional
- operators listed above under C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS, the
- result of the expression is the result of the binary test
- using the first and third arguments as operands. The -\b-a\ba
- and -\b-o\bo operators are considered binary operators when
- there are three arguments. If the first argument is !\b!,
- the value is the negation of the two-argument test using
- the second and third arguments. If the first argument is
- exactly (\b( and the third argument is exactly )\b), the result
- is the one-argument test of the second argument. Other-
- wise, the expression is false.
- 4 arguments
- The following conditions are applied in the order listed.
- If the first argument is !\b!, the result is the negation of
- the three-argument expression composed of the remaining
- arguments. If the first argument is exactly (\b( and the
- fourth argument is exactly )\b), the result is the two-argu-
- ment test of the second and third arguments. Otherwise,
- the expression is parsed and evaluated according to
- precedence using the rules listed above.
- 5 or more arguments
- The expression is parsed and evaluated according to
- precedence using the rules listed above.
-
- When the shell is in posix mode, or if the expression is part of
- the [\b[[\b[ command, the <\b< and >\b> operators sort using the current lo-
- cale. If the shell is not in posix mode, the t\bte\bes\bst\bt and [\b[ com-
- mands sort lexicographically using ASCII ordering.
-
- The historical operator-precedence parsing with 4 or more argu-
- ments can lead to ambiguities when it encounters strings that
- look like primaries. The POSIX standard has deprecated the -\b-a\ba
- and -\b-o\bo primaries and enclosing expressions within parentheses.
- Scripts should no longer use them. It's much more reliable to
- restrict test invocations to a single primary, and to replace
- uses of -\b-a\ba and -\b-o\bo with the shell's &\b&&\b& and |\b||\b| list operators.
-
- t\bti\bim\bme\bes\bs Print the accumulated user and system times for the shell and
- for processes run from the shell. The return status is 0.
-
- t\btr\bra\bap\bp [-\b-l\blp\bpP\bP] [[_\ba_\bc_\bt_\bi_\bo_\bn] _\bs_\bi_\bg_\bs_\bp_\be_\bc ...]
- The _\ba_\bc_\bt_\bi_\bo_\bn is a command that is read and executed when the shell
- receives any of the signals _\bs_\bi_\bg_\bs_\bp_\be_\bc. If _\ba_\bc_\bt_\bi_\bo_\bn is absent (and
- there is a single _\bs_\bi_\bg_\bs_\bp_\be_\bc) or -\b-, each specified _\bs_\bi_\bg_\bs_\bp_\be_\bc is reset
- to the value it had when the shell was started. If _\ba_\bc_\bt_\bi_\bo_\bn is
- the null string the signal specified by each _\bs_\bi_\bg_\bs_\bp_\be_\bc is ignored
- by the shell and by the commands it invokes.
-
- If no arguments are supplied, t\btr\bra\bap\bp displays the actions associ-
- ated with each trapped signal as a set of t\btr\bra\bap\bp commands that can
- be reused as shell input to restore the current signal disposi-
- tions. If -\b-p\bp is given, and _\ba_\bc_\bt_\bi_\bo_\bn is not present, then t\btr\bra\bap\bp
- displays the actions associated with each _\bs_\bi_\bg_\bs_\bp_\be_\bc or, if none
- are supplied, for all trapped signals, as a set of t\btr\bra\bap\bp commands
- that can be reused as shell input to restore the current signal
- dispositions. The -\b-P\bP option behaves similarly, but displays
- only the actions associated with each _\bs_\bi_\bg_\bs_\bp_\be_\bc argument. -\b-P\bP re-
- quires at least one _\bs_\bi_\bg_\bs_\bp_\be_\bc argument. The -\b-P\bP or -\b-p\bp options may
- be used in a subshell environment (e.g., command substitution)
- and, as long as they are used before t\btr\bra\bap\bp is used to change a
- signal's handling, will display the state of its parent's traps.
-
- The -\b-l\bl option prints a list of signal names and their corre-
- sponding numbers. Each _\bs_\bi_\bg_\bs_\bp_\be_\bc is either a signal name defined
- in <_\bs_\bi_\bg_\bn_\ba_\bl_\b._\bh>, or a signal number. Signal names are case insen-
- sitive and the S\bSI\bIG\bG prefix is optional. If -\b-l\bl is supplied with
- no _\bs_\bi_\bg_\bs_\bp_\be_\bc arguments, it prints a list of valid signal names.
-
- If a _\bs_\bi_\bg_\bs_\bp_\be_\bc is E\bEX\bXI\bIT\bT (0), _\ba_\bc_\bt_\bi_\bo_\bn is executed on exit from the
- shell. If a _\bs_\bi_\bg_\bs_\bp_\be_\bc is D\bDE\bEB\bBU\bUG\bG, _\ba_\bc_\bt_\bi_\bo_\bn is executed before every
- _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd, _\bf_\bo_\br command, _\bc_\ba_\bs_\be command, _\bs_\be_\bl_\be_\bc_\bt command, ((
- arithmetic command, [[ conditional command, arithmetic _\bf_\bo_\br com-
- mand, and before the first command executes in a shell function
- (see S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR above). Refer to the description of the
- e\bex\bxt\btd\bde\beb\bbu\bug\bg shell option (see s\bsh\bho\bop\bpt\bt above) for details of its ef-
- fect on the D\bDE\bEB\bBU\bUG\bG trap. If a _\bs_\bi_\bg_\bs_\bp_\be_\bc is R\bRE\bET\bTU\bUR\bRN\bN, _\ba_\bc_\bt_\bi_\bo_\bn is exe-
- cuted each time a shell function or a script executed with the .\b.
- or s\bso\bou\bur\brc\bce\be builtins finishes executing.
-
- If a _\bs_\bi_\bg_\bs_\bp_\be_\bc is E\bER\bRR\bR, _\ba_\bc_\bt_\bi_\bo_\bn is executed whenever a pipeline
- (which may consist of a single simple command), a list, or a
- compound command returns a non-zero exit status, subject to the
- following conditions. The E\bER\bRR\bR trap is not executed if the
- failed command is part of the command list immediately following
- a w\bwh\bhi\bil\ble\be or u\bun\bnt\bti\bil\bl reserved word, part of the test in an _\bi_\bf state-
- ment, part of a command executed in a &\b&&\b& or |\b||\b| list except the
- command following the final &\b&&\b& or |\b||\b|, any command in a pipeline
- but the last (subject to the state of the p\bpi\bip\bpe\bef\bfa\bai\bil\bl shell op-
- tion), or if the command's return value is being inverted using
- !\b!. These are the same conditions obeyed by the e\ber\brr\bre\bex\bxi\bit\bt (-\b-e\be) op-
- tion.
-
- When the shell is not interactive, signals ignored upon entry to
- the shell cannot be trapped or reset. Interactive shells permit
- trapping signals ignored on entry. Trapped signals that are not
- being ignored are reset to their original values in a subshell
- or subshell environment when one is created. The return status
- is false if any _\bs_\bi_\bg_\bs_\bp_\be_\bc is invalid; otherwise t\btr\bra\bap\bp returns true.
-
- t\btr\bru\bue\be Does nothing, returns a 0 status.
-
- t\bty\byp\bpe\be [-\b-a\baf\bft\btp\bpP\bP] _\bn_\ba_\bm_\be [_\bn_\ba_\bm_\be ...]
- Indicate how each _\bn_\ba_\bm_\be would be interpreted if used as a command
- name.
-
- If the -\b-t\bt option is used, t\bty\byp\bpe\be prints a string which is one of
- _\ba_\bl_\bi_\ba_\bs, _\bk_\be_\by_\bw_\bo_\br_\bd, _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn, _\bb_\bu_\bi_\bl_\bt_\bi_\bn, or _\bf_\bi_\bl_\be if _\bn_\ba_\bm_\be is an alias,
- shell reserved word, function, builtin, or executable file, re-
- spectively. If the _\bn_\ba_\bm_\be is not found, t\bty\byp\bpe\be prints nothing and
- returns a non-zero exit status.
-
- If the -\b-p\bp option is used, t\bty\byp\bpe\be either returns the pathname of
- the executable file that would be found by searching $\b$P\bPA\bAT\bTH\bH for
- _\bn_\ba_\bm_\be or nothing if "type -t name" would not return _\bf_\bi_\bl_\be. The -\b-P\bP
- option forces a P\bPA\bAT\bTH\bH search for each _\bn_\ba_\bm_\be, even if "type -t
- name" would not return _\bf_\bi_\bl_\be. If _\bn_\ba_\bm_\be is present in the table of
- hashed commands, -\b-p\bp and -\b-P\bP print the hashed value, which is not
- necessarily the file that appears first in P\bPA\bAT\bTH\bH.
-
- If the -\b-a\ba option is used, t\bty\byp\bpe\be prints all of the places that
- contain a command named _\bn_\ba_\bm_\be. This includes aliases, reserved
- words, functions, and builtins, but the path search options (-\b-p\bp
- and -\b-P\bP) can be supplied to restrict the output to executable
- files. t\bty\byp\bpe\be does not consult the table of hashed commands when
- using -\b-a\ba with -\b-p\bp, and only performs a P\bPA\bAT\bTH\bH search for _\bn_\ba_\bm_\be.
-
- The -\b-f\bf option suppresses shell function lookup, as with the c\bco\bom\bm-\b-
- m\bma\ban\bnd\bd builtin. t\bty\byp\bpe\be returns true if all of the arguments are
- found, false if any are not found.
-
- u\bul\bli\bim\bmi\bit\bt [-\b-H\bHS\bS] -\b-a\ba
- u\bul\bli\bim\bmi\bit\bt [-\b-H\bHS\bS] [-\b-b\bbc\bcd\bde\bef\bfi\bik\bkl\blm\bmn\bnp\bpq\bqr\brs\bst\btu\buv\bvx\bxP\bPR\bRT\bT [_\bl_\bi_\bm_\bi_\bt]]
- Provides control over the resources available to the shell and
- to processes it starts, on systems that allow such control.
-
- The -\b-H\bH and -\b-S\bS options specify whether the hard or soft limit is
- set for the given resource. A hard limit cannot be increased by
- a non-root user once it is set; a soft limit may be increased up
- to the value of the hard limit. If neither -\b-H\bH nor -\b-S\bS is speci-
- fied, u\bul\bli\bim\bmi\bit\bt sets both the soft and hard limits.
-
- The value of _\bl_\bi_\bm_\bi_\bt can be a number in the unit specified for the
- resource or one of the special values h\bha\bar\brd\bd, s\bso\bof\bft\bt, or u\bun\bnl\bli\bim\bmi\bit\bte\bed\bd,
- which stand for the current hard limit, the current soft limit,
- and no limit, respectively. If _\bl_\bi_\bm_\bi_\bt is omitted, u\bul\bli\bim\bmi\bit\bt prints
- the current value of the soft limit of the resource, unless the
- -\b-H\bH option is given. When more than one resource is specified,
- the limit name and unit, if appropriate, are printed before the
- value. Other options are interpreted as follows:
- -\b-a\ba Report all current limits; no limits are set.
- -\b-b\bb The maximum socket buffer size.
- -\b-c\bc The maximum size of core files created.
- -\b-d\bd The maximum size of a process's data segment.
- -\b-e\be The maximum scheduling priority ("nice").
- -\b-f\bf The maximum size of files written by the shell and its
- children.
- -\b-i\bi The maximum number of pending signals.
- -\b-k\bk The maximum number of kqueues that may be allocated.
- -\b-l\bl The maximum size that may be locked into memory.
- -\b-m\bm The maximum resident set size (many systems do not honor
- this limit).
- -\b-n\bn The maximum number of open file descriptors (most systems
- do not allow this value to be set).
- -\b-p\bp The pipe size in 512-byte blocks (this may not be set).
- -\b-q\bq The maximum number of bytes in POSIX message queues.
- -\b-r\br The maximum real-time scheduling priority.
- -\b-s\bs The maximum stack size.
- -\b-t\bt The maximum amount of cpu time in seconds.
- -\b-u\bu The maximum number of processes available to a single
- user.
- -\b-v\bv The maximum amount of virtual memory available to the
- shell and, on some systems, to its children.
- -\b-x\bx The maximum number of file locks.
- -\b-P\bP The maximum number of pseudoterminals.
- -\b-R\bR The maximum time a real-time process can run before
- blocking, in microseconds.
- -\b-T\bT The maximum number of threads.
-
- If _\bl_\bi_\bm_\bi_\bt is supplied, and the -\b-a\ba option is not used, _\bl_\bi_\bm_\bi_\bt is
- the new value of the specified resource. If no option is sup-
- plied, then -\b-f\bf is assumed.
-
- Values are in 1024-byte increments, except for -\b-t\bt, which is in
- seconds; -\b-R\bR, which is in microseconds; -\b-p\bp, which is in units of
- 512-byte blocks; -\b-P\bP, -\b-T\bT, -\b-b\bb, -\b-k\bk, -\b-n\bn, and -\b-u\bu, which are unscaled
- values; and, when in posix mode, -\b-c\bc and -\b-f\bf, which are in
- 512-byte increments. The return status is 0 unless an invalid
- option or argument is supplied, or an error occurs while setting
- a new limit.
-
- u\bum\bma\bas\bsk\bk [-\b-p\bp] [-\b-S\bS] [_\bm_\bo_\bd_\be]
- Set the user file-creation mask to _\bm_\bo_\bd_\be. If _\bm_\bo_\bd_\be begins with a
- digit, it is interpreted as an octal number; otherwise it is in-
- terpreted as a symbolic mode mask similar to that accepted by
- _\bc_\bh_\bm_\bo_\bd(1). If _\bm_\bo_\bd_\be is omitted, u\bum\bma\bas\bsk\bk prints the current value of
- the mask. The -\b-S\bS option without a _\bm_\bo_\bd_\be argument prints the mask
- in a symbolic format; the default output is an octal number. If
- the -\b-p\bp option is supplied, and _\bm_\bo_\bd_\be is omitted, the output is in
- a form that may be reused as input. The return status is zero
- if the mode was successfully changed or if no _\bm_\bo_\bd_\be argument was
- supplied, and non-zero otherwise.
-
- u\bun\bna\bal\bli\bia\bas\bs [-a\ba] [_\bn_\ba_\bm_\be ...]
- Remove each _\bn_\ba_\bm_\be from the list of defined aliases. If -\b-a\ba is
- supplied, remove all alias definitions. The return value is
- true unless a supplied _\bn_\ba_\bm_\be is not a defined alias.
-
- u\bun\bns\bse\bet\bt [-f\bfv\bv] [-n\bn] [_\bn_\ba_\bm_\be ...]
- For each _\bn_\ba_\bm_\be, remove the corresponding variable or function.
- If the -\b-v\bv option is given, each _\bn_\ba_\bm_\be refers to a shell variable,
- and that variable is removed. If -\b-f\bf is specified, each _\bn_\ba_\bm_\be
- refers to a shell function, and the function definition is re-
- moved. If the -\b-n\bn option is supplied, and _\bn_\ba_\bm_\be is a variable
- with the _\bn_\ba_\bm_\be_\br_\be_\bf attribute, _\bn_\ba_\bm_\be will be unset rather than the
- variable it references. -\b-n\bn has no effect if the -\b-f\bf option is
- supplied. Read-only variables and functions may not be unset.
- When variables or functions are removed, they are also removed
- from the environment passed to subsequent commands. If no op-
- tions are supplied, each _\bn_\ba_\bm_\be refers to a variable; if there is
- no variable by that name, a function with that name, if any, is
- unset. Some shell variables may not be unset. If any of
- B\bBA\bAS\bSH\bH_\b_A\bAL\bLI\bIA\bAS\bSE\bES\bS, B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV0\b0, B\bBA\bAS\bSH\bH_\b_C\bCM\bMD\bDS\bS, B\bBA\bAS\bSH\bH_\b_C\bCO\bOM\bMM\bMA\bAN\bND\bD, B\bBA\bAS\bSH\bH_\b_S\bSU\bUB\bB-\b-
- S\bSH\bHE\bEL\bLL\bL, B\bBA\bAS\bSH\bHP\bPI\bID\bD, C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDB\bBR\bRE\bEA\bAK\bKS\bS, D\bDI\bIR\bRS\bST\bTA\bAC\bCK\bK, E\bEP\bPO\bOC\bCH\bHR\bRE\bEA\bAL\bLT\bTI\bIM\bME\bE,
- E\bEP\bPO\bOC\bCH\bHS\bSE\bEC\bCO\bON\bND\bDS\bS, F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE, G\bGR\bRO\bOU\bUP\bPS\bS, H\bHI\bIS\bST\bTC\bCM\bMD\bD, L\bLI\bIN\bNE\bEN\bNO\bO, R\bRA\bAN\bND\bDO\bOM\bM, S\bSE\bEC\bC-\b-
- O\bON\bND\bDS\bS, or S\bSR\bRA\bAN\bND\bDO\bOM\bM are unset, they lose their special properties,
- even if they are subsequently reset. The exit status is true
- unless a _\bn_\ba_\bm_\be is readonly or may not be unset.
-
- w\bwa\bai\bit\bt [-\b-f\bfn\bn] [-\b-p\bp _\bv_\ba_\br_\bn_\ba_\bm_\be] [_\bi_\bd ...]
- Wait for each specified child process _\bi_\bd and return the termina-
- tion status of the last _\bi_\bd. Each _\bi_\bd may be a process ID _\bp_\bi_\bd or
- a job specification _\bj_\bo_\bb_\bs_\bp_\be_\bc; if a jobspec is supplied, w\bwa\bai\bit\bt
- waits for all processes in the job.
-
- If no options or _\bi_\bds are supplied, w\bwa\bai\bit\bt waits for all running
- background jobs and the last-executed process substitution, if
- its process id is the same as $\b$!\b!, and the return status is zero.
-
- If the -\b-n\bn option is supplied, w\bwa\bai\bit\bt waits for any one of the
- given _\bi_\bds or, if no _\bi_\bds are supplied, any job or process substi-
- tution, to complete and returns its exit status. If none of the
- supplied _\bi_\bds is a child of the shell, or if no _\bi_\bds are supplied
- and the shell has no unwaited-for children, the exit status is
- 127.
-
- If the -\b-p\bp option is supplied, w\bwa\bai\bit\bt assigns the process or job
- identifier of the job for which the exit status is returned to
- the variable _\bv_\ba_\br_\bn_\ba_\bm_\be named by the option argument. The vari-
- able, which cannot be readonly, will be unset initially, before
- any assignment. This is useful only when used with the -\b-n\bn op-
- tion.
-
- Supplying the -\b-f\bf option, when job control is enabled, forces
- w\bwa\bai\bit\bt to wait for each _\bi_\bd to terminate before returning its sta-
- tus, instead of returning when it changes status.
-
- If none of the _\bi_\bds specify one of the shell's active child
- processes, the return status is 127. If w\bwa\bai\bit\bt is interrupted by
- a signal, any _\bv_\ba_\br_\bn_\ba_\bm_\be will remain unset, and the return status
- will be greater than 128, as described under S\bSI\bIG\bGN\bNA\bAL\bLS\bS above.
- Otherwise, the return status is the exit status of the last _\bi_\bd.
-
-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
- Bash-4.0 introduced the concept of a _\bs_\bh_\be_\bl_\bl _\bc_\bo_\bm_\bp_\ba_\bt_\bi_\bb_\bi_\bl_\bi_\bt_\by _\bl_\be_\bv_\be_\bl, speci-
- fied as a set of options to the shopt builtin (c\bco\bom\bmp\bpa\bat\bt3\b31\b1, c\bco\bom\bmp\bpa\bat\bt3\b32\b2, c\bco\bom\bm-\b-
- p\bpa\bat\bt4\b40\b0, c\bco\bom\bmp\bpa\bat\bt4\b41\b1, and so on). There is only one current compatibility
- level -- each option is mutually exclusive. The compatibility level is
- intended to allow users to select behavior from previous versions that
- is incompatible with newer versions while they migrate scripts to use
- current features and behavior. It's intended to be a temporary solu-
- tion.
-
- This section does not mention behavior that is standard for a particu-
- lar version (e.g., setting c\bco\bom\bmp\bpa\bat\bt3\b32\b2 means that quoting the right hand
- side of the regexp matching operator quotes special regexp characters
- in the word, which is default behavior in bash-3.2 and subsequent ver-
- sions).
-
- If a user enables, say, c\bco\bom\bmp\bpa\bat\bt3\b32\b2, it may affect the behavior of other
- compatibility levels up to and including the current compatibility
- level. The idea is that each compatibility level controls behavior
- that changed in that version of b\bba\bas\bsh\bh, but that behavior may have been
- present in earlier versions. For instance, the change to use locale-
- based comparisons with the [\b[[\b[ command came in bash-4.1, and earlier
- versions used ASCII-based comparisons, so enabling c\bco\bom\bmp\bpa\bat\bt3\b32\b2 will enable
- ASCII-based comparisons as well. That granularity may not be suffi-
- cient for all uses, and as a result users should employ compatibility
- levels carefully. Read the documentation for a particular feature to
- find out the current behavior.
-
- Bash-4.3 introduced a new shell variable: B\bBA\bAS\bSH\bH_\b_C\bCO\bOM\bMP\bPA\bAT\bT. The value as-
- signed to this variable (a decimal version number like 4.2, or an inte-
- ger corresponding to the c\bco\bom\bmp\bpa\bat\bt_\bN_\bN option, like 42) determines the com-
- patibility level.
-
- Starting with bash-4.4, b\bba\bas\bsh\bh began deprecating older compatibility lev-
- els. Eventually, the options will be removed in favor of B\bBA\bAS\bSH\bH_\b_C\bCO\bOM\bMP\bPA\bAT\bT.
-
- Bash-5.0 was the final version for which there was an individual shopt
- option for the previous version. B\bBA\bAS\bSH\bH_\b_C\bCO\bOM\bMP\bPA\bAT\bT is the only mechanism to
- control the compatibility level in versions newer than bash-5.0.
-
- The following table describes the behavior changes controlled by each
- compatibility level setting. The c\bco\bom\bmp\bpa\bat\bt_\bN_\bN tag is used as shorthand for
- setting the compatibility level to _\bN_\bN using one of the following mecha-
- nisms. For versions prior to bash-5.0, the compatibility level may be
- set using the corresponding c\bco\bom\bmp\bpa\bat\bt_\bN_\bN shopt option. For bash-4.3 and
- later versions, the B\bBA\bAS\bSH\bH_\b_C\bCO\bOM\bMP\bPA\bAT\bT variable is preferred, and it is re-
- quired for bash-5.1 and later versions.
-
- c\bco\bom\bmp\bpa\bat\bt3\b31\b1
- +\bo Quoting the rhs of the [\b[[\b[ command's regexp matching oper-
- ator (=~) has no special effect.
-
- c\bco\bom\bmp\bpa\bat\bt3\b32\b2
- +\bo The <\b< and >\b> operators to the [\b[[\b[ command do not consider
- the current locale when comparing strings; they use ASCII
- ordering.
-
- c\bco\bom\bmp\bpa\bat\bt4\b40\b0
- +\bo The <\b< and >\b> operators to the [\b[[\b[ command do not consider
- the current locale when comparing strings; they use ASCII
- ordering. B\bBa\bas\bsh\bh versions prior to bash-4.1 use ASCII col-
- lation and _\bs_\bt_\br_\bc_\bm_\bp(3); bash-4.1 and later use the current
- locale's collation sequence and _\bs_\bt_\br_\bc_\bo_\bl_\bl(3).
-
- c\bco\bom\bmp\bpa\bat\bt4\b41\b1
- +\bo In posix mode, t\bti\bim\bme\be may be followed by options and still
- be recognized as a reserved word (this is POSIX interpre-
- tation 267).
- +\bo In _\bp_\bo_\bs_\bi_\bx mode, the parser requires that an even number of
- single quotes occur in the _\bw_\bo_\br_\bd portion of a double-
- quoted parameter expansion and treats them specially, so
- that characters within the single quotes are considered
- quoted (this is POSIX interpretation 221).
-
- c\bco\bom\bmp\bpa\bat\bt4\b42\b2
- +\bo The replacement string in double-quoted pattern substitu-
- tion does not undergo quote removal, as it does in ver-
- sions after bash-4.2.
- +\bo In posix mode, single quotes are considered special when
- expanding the _\bw_\bo_\br_\bd portion of a double-quoted parameter
- expansion and can be used to quote a closing brace or
- other special character (this is part of POSIX interpre-
- tation 221); in later versions, single quotes are not
- special within double-quoted word expansions.
-
- c\bco\bom\bmp\bpa\bat\bt4\b43\b3
- +\bo Word expansion errors are considered non-fatal errors
- that cause the current command to fail, even in posix
- mode (the default behavior is to make them fatal errors
- that cause the shell to exit).
- +\bo When executing a shell function, the loop state
- (while/until/etc.) is not reset, so b\bbr\bre\bea\bak\bk or c\bco\bon\bnt\bti\bin\bnu\bue\be in
- that function will break or continue loops in the calling
- context. Bash-4.4 and later reset the loop state to pre-
- vent this.
-
- c\bco\bom\bmp\bpa\bat\bt4\b44\b4
- +\bo The shell sets up the values used by B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV and
- B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGC\bC so they can expand to the shell's positional
- parameters even if extended debugging mode is not en-
- abled.
- +\bo A subshell inherits loops from its parent context, so
- b\bbr\bre\bea\bak\bk or c\bco\bon\bnt\bti\bin\bnu\bue\be will cause the subshell to exit.
- Bash-5.0 and later reset the loop state to prevent the
- exit
- +\bo Variable assignments preceding builtins like e\bex\bxp\bpo\bor\brt\bt and
- r\bre\bea\bad\bdo\bon\bnl\bly\by that set attributes continue to affect variables
- with the same name in the calling environment even if the
- shell is not in posix mode.
-
- c\bco\bom\bmp\bpa\bat\bt5\b50\b0
- +\bo Bash-5.1 changed the way $\b$R\bRA\bAN\bND\bDO\bOM\bM is generated to intro-
- duce slightly more randomness. If the shell compatibil-
- ity level is set to 50 or lower, it reverts to the method
- from bash-5.0 and previous versions, so seeding the ran-
- dom number generator by assigning a value to R\bRA\bAN\bND\bDO\bOM\bM will
- produce the same sequence as in bash-5.0.
- +\bo If the command hash table is empty, bash versions prior
- to bash-5.1 printed an informational message to that ef-
- fect, even when producing output that can be reused as
- input. Bash-5.1 suppresses that message when the -\b-l\bl op-
- tion is supplied.
-
- c\bco\bom\bmp\bpa\bat\bt5\b51\b1
- +\bo The u\bun\bns\bse\bet\bt builtin treats attempts to unset array sub-
- scripts @\b@ and *\b* differently depending on whether the ar-
- ray is indexed or associative, and differently than in
- previous versions.
- +\bo Arithmetic commands ( (\b((\b(...)\b))\b) ) and the expressions in an
- arithmetic for statement can be expanded more than once.
- +\bo Expressions used as arguments to arithmetic operators in
- the [\b[[\b[ conditional command can be expanded more than
- once.
- +\bo The expressions in substring parameter brace expansion
- can be expanded more than once.
- +\bo The expressions in the $\b$(\b((\b(...)\b))\b) word expansion can be ex-
- panded more than once.
- +\bo Arithmetic expressions used as indexed array subscripts
- can be expanded more than once.
- +\bo t\bte\bes\bst\bt -\b-v\bv, when given an argument of A\bA[\b[@\b@]\b], where A\bA is an
- existing associative array, will return true if the array
- has any set elements. Bash-5.2 will look for and report
- on a key named @\b@.
- +\bo The ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br[\b[:\b:]\b]=\b=_\bv_\ba_\bl_\bu_\be} word expansion will return
- _\bv_\ba_\bl_\bu_\be, before any variable-specific transformations have
- been performed (e.g., converting to lowercase). Bash-5.2
- will return the final value assigned to the variable.
- +\bo Parsing command substitutions will behave as if extended
- globbing (see the description of the s\bsh\bho\bop\bpt\bt builtin above)
- is enabled, so that parsing a command substitution con-
- taining an extglob pattern (say, as part of a shell func-
- tion) will not fail. This assumes the intent is to en-
- able extglob before the command is executed and word ex-
- pansions are performed. It will fail at word expansion
- time if extglob hasn't been enabled by the time the com-
- mand is executed.
-
- c\bco\bom\bmp\bpa\bat\bt5\b52\b2
- +\bo The t\bte\bes\bst\bt builtin uses its historical algorithm to parse
- parenthesized subexpressions when given five or more ar-
- guments.
- +\bo If the -\b-p\bp or -\b-P\bP option is supplied to the b\bbi\bin\bnd\bd builtin,
- b\bbi\bin\bnd\bd treats any arguments remaining after option process-
- ing as bindable command names, and displays any key se-
- quences bound to those commands, instead of treating the
- arguments as key sequences to bind.
-
-R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTE\bED\bD S\bSH\bHE\bEL\bLL\bL
- If b\bba\bas\bsh\bh is started with the name r\brb\bba\bas\bsh\bh, or the -\b-r\br option is supplied at
- invocation, the shell becomes _\br_\be_\bs_\bt_\br_\bi_\bc_\bt_\be_\bd. A restricted shell is used
- to set up an environment more controlled than the standard shell. It
- behaves identically to b\bba\bas\bsh\bh with the exception that the following are
- disallowed or not performed:
-
- +\bo Changing directories with c\bcd\bd.
-
- +\bo Setting or unsetting the values of S\bSH\bHE\bEL\bLL\bL, P\bPA\bAT\bTH\bH, H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE, E\bEN\bNV\bV,
- or B\bBA\bAS\bSH\bH_\b_E\bEN\bNV\bV.
-
- +\bo Specifying command names containing /\b/.
-
- +\bo Specifying a filename containing a /\b/ as an argument to the .\b.
- builtin command.
-
- +\bo Using the -\b-p\bp option to the .\b. builtin command to specify a
- search path.
-
- +\bo Specifying a filename containing a slash as an argument to the
- h\bhi\bis\bst\bto\bor\bry\by builtin command.
-
- +\bo Specifying a filename containing a slash as an argument to the
- -\b-p\bp option to the h\bha\bas\bsh\bh builtin command.
-
- +\bo Importing function definitions 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.
-
- +\bo Using the e\bex\bxe\bec\bc builtin command to replace the shell with another
- command.
-
- +\bo Adding or deleting builtin commands with the -\b-f\bf and -\b-d\bd options
- to the e\ben\bna\bab\bbl\ble\be builtin command.
-
- +\bo Using the e\ben\bna\bab\bbl\ble\be builtin command to enable disabled shell
- builtins.
-
- +\bo Specifying the -\b-p\bp option to the c\bco\bom\bmm\bma\ban\bnd\bd builtin command.
-
- +\bo Turning off restricted mode with s\bse\bet\bt +\b+r\br or s\bsh\bho\bop\bpt\bt -\b-u\bu r\bre\be-\b-
- s\bst\btr\bri\bic\bct\bte\bed\bd_\b_s\bsh\bhe\bel\bll\bl.
-
- These restrictions are enforced after any startup files are read.
-
- When a command that is found to be a shell script is executed (see C\bCO\bOM\bM-\b-
- M\bMA\bAN\bND\bD E\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\bN above), r\brb\bba\bas\bsh\bh turns off any restrictions in the shell
- spawned to execute the script.
-
-S\bSE\bEE\bE A\bAL\bLS\bSO\bO
- _\bB_\ba_\bs_\bh _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be _\bM_\ba_\bn_\bu_\ba_\bl, Brian Fox and Chet Ramey
- _\bT_\bh_\be _\bG_\bn_\bu _\bR_\be_\ba_\bd_\bl_\bi_\bn_\be _\bL_\bi_\bb_\br_\ba_\br_\by, Brian Fox and Chet Ramey
- _\bT_\bh_\be _\bG_\bn_\bu _\bH_\bi_\bs_\bt_\bo_\br_\by _\bL_\bi_\bb_\br_\ba_\br_\by, Brian Fox and Chet Ramey
- _\bP_\bo_\br_\bt_\ba_\bb_\bl_\be _\bO_\bp_\be_\br_\ba_\bt_\bi_\bn_\bg _\bS_\by_\bs_\bt_\be_\bm _\bI_\bn_\bt_\be_\br_\bf_\ba_\bc_\be _\b(_\bP_\bO_\bS_\bI_\bX_\b) _\bP_\ba_\br_\bt _\b2_\b: _\bS_\bh_\be_\bl_\bl _\ba_\bn_\bd _\bU_\bt_\bi_\bl_\bi_\b-
- _\bt_\bi_\be_\bs, IEEE --
- http://pubs.opengroup.org/onlinepubs/9799919799/
- http://tiswww.case.edu/~chet/bash/POSIX -- a description of posix mode
- _\bs_\bh(1), _\bk_\bs_\bh(1), _\bc_\bs_\bh(1)
- _\be_\bm_\ba_\bc_\bs(1), _\bv_\bi(1)
- _\br_\be_\ba_\bd_\bl_\bi_\bn_\be(3)
-
-F\bFI\bIL\bLE\bES\bS
- _\b/_\bb_\bi_\bn_\b/_\bb_\ba_\bs_\bh
- The b\bba\bas\bsh\bh executable
- _\b/_\be_\bt_\bc_\b/_\bp_\br_\bo_\bf_\bi_\bl_\be
- The systemwide initialization file, executed for login shells
- _\b~_\b/_\b._\bb_\ba_\bs_\bh_\b__\bp_\br_\bo_\bf_\bi_\bl_\be
- The personal initialization file, executed for login shells
- _\b~_\b/_\b._\bb_\ba_\bs_\bh_\br_\bc
- The individual per-interactive-shell startup file
- _\b~_\b/_\b._\bb_\ba_\bs_\bh_\b__\bl_\bo_\bg_\bo_\bu_\bt
- The individual login shell cleanup file, executed when a login
- shell exits
- _\b~_\b/_\b._\bb_\ba_\bs_\bh_\b__\bh_\bi_\bs_\bt_\bo_\br_\by
- The default value of H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE, the file in which bash saves the
- command history
- _\b~_\b/_\b._\bi_\bn_\bp_\bu_\bt_\br_\bc
- Individual _\br_\be_\ba_\bd_\bl_\bi_\bn_\be initialization file
-
-A\bAU\bUT\bTH\bHO\bOR\bRS\bS
- Brian Fox, Free Software Foundation
- bfox@gnu.org
-
- Chet Ramey, Case Western Reserve University
- chet.ramey@case.edu
-
-B\bBU\bUG\bG R\bRE\bEP\bPO\bOR\bRT\bTS\bS
- If you find a bug in b\bba\bas\bsh\bh, you should report it. But first, you should
- make sure that it really is a bug, and that it appears in the latest
- version of b\bba\bas\bsh\bh. The latest version is always available from
- _\bf_\bt_\bp_\b:_\b/_\b/_\bf_\bt_\bp_\b._\bg_\bn_\bu_\b._\bo_\br_\bg_\b/_\bp_\bu_\bb_\b/_\bg_\bn_\bu_\b/_\bb_\ba_\bs_\bh_\b/ and _\bh_\bt_\bt_\bp_\b:_\b/_\b/_\bg_\bi_\bt_\b._\bs_\ba_\bv_\ba_\bn_\b-
- _\bn_\ba_\bh_\b._\bg_\bn_\bu_\b._\bo_\br_\bg_\b/_\bc_\bg_\bi_\bt_\b/_\bb_\ba_\bs_\bh_\b._\bg_\bi_\bt_\b/_\bs_\bn_\ba_\bp_\bs_\bh_\bo_\bt_\b/_\bb_\ba_\bs_\bh_\b-_\bm_\ba_\bs_\bt_\be_\br_\b._\bt_\ba_\br_\b._\bg_\bz.
-
- Once you have determined that a bug actually exists, use the _\bb_\ba_\bs_\bh_\bb_\bu_\bg
- command to submit a bug report. If you have a fix, you are encouraged
- to mail that as well! You may send suggestions and "philosophical" bug
- reports to _\bb_\bu_\bg_\b-_\bb_\ba_\bs_\bh_\b@_\bg_\bn_\bu_\b._\bo_\br_\bg or post them to the Usenet newsgroup
- g\bgn\bnu\bu.\b.b\bba\bas\bsh\bh.\b.b\bbu\bug\bg.
-
- ALL bug reports should include:
-
- The version number of b\bba\bas\bsh\bh
- The hardware and operating system
- The compiler used to compile
- A description of the bug behavior
- A short script or "recipe" which exercises the bug
-
- _\bb_\ba_\bs_\bh_\bb_\bu_\bg inserts the first three items automatically into the template
- it provides for filing a bug report.
-
- Comments and bug reports concerning this manual page should be directed
- to _\bc_\bh_\be_\bt_\b._\br_\ba_\bm_\be_\by_\b@_\bc_\ba_\bs_\be_\b._\be_\bd_\bu.
-
-B\bBU\bUG\bGS\bS
- It's too big and too slow.
-
- There are some subtle differences between b\bba\bas\bsh\bh and traditional versions
- of s\bsh\bh, mostly because of the POSIX specification.
-
- Aliases are confusing in some uses.
-
- Shell builtin commands and functions are not stoppable/restartable.
-
- Compound commands and command lists of the form "a ; b ; c" are not
- handled gracefully when combined with process suspension. When a
- process is stopped, the shell immediately executes the next command in
- the list or breaks out of any existing loops. It suffices to enclose
- the command in parentheses to force it into a subshell, which may be
- stopped as a unit, or to start the command in the background and imme-
- diately bring it into the foreground.
-
- Array variables may not (yet) be exported.
-
-GNU Bash 5.3 2025 August 25 _\bB_\bA_\bS_\bH(1)
+++ /dev/null
-This is bash.info, produced by makeinfo version 7.2 from bashref.texi.
-
-This text is a brief description of the features that are present in the
-Bash shell (version 5.3, 7 August 2025).
-
- This is Edition 5.3, last updated 7 August 2025, of ‘The GNU Bash
-Reference Manual’, for ‘Bash’, Version 5.3.
-
- Copyright © 1988-2025 Free Software Foundation, Inc.
-
- Permission is granted to copy, distribute and/or modify this
- document under the terms of the GNU Free Documentation License,
- Version 1.3 or any later version published by the Free Software
- Foundation; with no Invariant Sections, no Front-Cover Texts, and
- no Back-Cover Texts. A copy of the license is included in the
- section entitled "GNU Free Documentation License".
-INFO-DIR-SECTION Basics
-START-INFO-DIR-ENTRY
-* Bash: (bash). The GNU Bourne-Again SHell.
-END-INFO-DIR-ENTRY
-
-\1f
-File: bash.info, Node: Top, Next: Introduction, Prev: (dir), Up: (dir)
-
-Bash Features
-*************
-
-This text is a brief description of the features that are present in the
-Bash shell (version 5.3, 7 August 2025). The Bash home page is
-<http://www.gnu.org/software/bash/>.
-
- This is Edition 5.3, last updated 7 August 2025, of ‘The GNU Bash
-Reference Manual’, for ‘Bash’, Version 5.3.
-
- Bash contains features that appear in other popular shells, and some
-features that only appear in Bash. Some of the shells that Bash has
-borrowed concepts from are the Bourne Shell (‘sh’), the Korn Shell
-(‘ksh’), and the C-shell (‘csh’ and its successor, ‘tcsh’). The
-following menu breaks the features up into categories, noting which
-features were inspired by other shells and which are specific to Bash.
-
- This manual is meant as a brief introduction to features found in
-Bash. The Bash manual page should be used as the definitive reference
-on shell behavior.
-
-* Menu:
-
-* Introduction:: An introduction to the shell.
-* Definitions:: Some definitions used in the rest of this
- manual.
-* Basic Shell Features:: The shell "building blocks".
-* Shell Builtin Commands:: Commands that are a part of the shell.
-* Shell Variables:: Variables used or set by Bash.
-* Bash Features:: Features found only in Bash.
-* Job Control:: What job control is and how Bash allows you
- to use it.
-* Command Line Editing:: Chapter describing the command line
- editing features.
-* Using History Interactively:: Command History Expansion
-* Installing Bash:: How to build and install Bash on your system.
-* Reporting Bugs:: How to report bugs in Bash.
-* Major Differences From The Bourne Shell:: A terse list of the differences
- between Bash and historical
- versions of /bin/sh.
-* GNU Free Documentation License:: Copying and sharing this documentation.
-* Indexes:: Various indexes for this manual.
-
-\1f
-File: bash.info, Node: Introduction, Next: Definitions, Up: Top
-
-1 Introduction
-**************
-
-* Menu:
-
-* What is Bash?:: A short description of Bash.
-* What is a shell?:: A brief introduction to shells.
-
-\1f
-File: bash.info, Node: What is Bash?, Next: What is a shell?, Up: Introduction
-
-1.1 What is Bash?
-=================
-
-Bash is the shell, or command language interpreter, for the GNU
-operating system. The name is an acronym for the ‘Bourne-Again SHell’,
-a pun on Stephen Bourne, the author of the direct ancestor of the
-current Unix shell ‘sh’, which appeared in the Seventh Edition Bell Labs
-Research version of Unix.
-
- Bash is largely compatible with ‘sh’ and incorporates useful features
-from the Korn shell ‘ksh’ and the C shell ‘csh’. It is intended to be a
-conformant implementation of the IEEE POSIX Shell and Tools portion of
-the IEEE POSIX specification (IEEE Standard 1003.1). It offers
-functional improvements over ‘sh’ for both interactive and programming
-use.
-
- While the GNU operating system provides other shells, including a
-version of ‘csh’, Bash is the default shell. Like other GNU software,
-Bash is quite portable. It currently runs on nearly every version of
-Unix and a few other operating systems − independently-supported ports
-exist for Windows and other platforms.
-
-\1f
-File: bash.info, Node: What is a shell?, Prev: What is Bash?, Up: Introduction
-
-1.2 What is a shell?
-====================
-
-At its base, a shell is simply a macro processor that executes commands.
-The term macro processor means functionality where text and symbols are
-expanded to create larger expressions.
-
- A Unix shell is both a command interpreter and a programming
-language. As a command interpreter, the shell provides the user
-interface to the rich set of GNU utilities. The programming language
-features allow these utilities to be combined. Users can create files
-containing commands, and these become commands themselves. These new
-commands have the same status as system commands in directories such as
-‘/bin’, allowing users or groups to establish custom environments to
-automate their common tasks.
-
- Shells may be used interactively or non-interactively. In
-interactive mode, they accept input typed from the keyboard. When
-executing non-interactively, shells execute commands read from a file or
-a string.
-
- A shell allows execution of GNU commands, both synchronously and
-asynchronously. The shell waits for synchronous commands to complete
-before accepting more input; asynchronous commands continue to execute
-in parallel with the shell while it reads and executes additional
-commands. The “redirection” constructs permit fine-grained control of
-the input and output of those commands. Moreover, the shell allows
-control over the contents of commands' environments.
-
- Shells also provide a small set of built-in commands (“builtins”)
-implementing functionality impossible or inconvenient to obtain via
-separate utilities. For example, ‘cd’, ‘break’, ‘continue’, and ‘exec’
-cannot be implemented outside of the shell because they directly
-manipulate the shell itself. The ‘history’, ‘getopts’, ‘kill’, or ‘pwd’
-builtins, among others, could be implemented in separate utilities, but
-they are more convenient to use as builtin commands. All of the shell
-builtins are described in subsequent sections.
-
- While executing commands is essential, most of the power (and
-complexity) of shells is due to their embedded programming languages.
-Like any high-level language, the shell provides variables, flow control
-constructs, quoting, and functions.
-
- Shells offer features geared specifically for interactive use rather
-than to augment the programming language. These interactive features
-include job control, command line editing, command history and aliases.
-This manual describes how Bash provides all of these features.
-
-\1f
-File: bash.info, Node: Definitions, Next: Basic Shell Features, Prev: Introduction, Up: Top
-
-2 Definitions
-*************
-
-These definitions are used throughout the remainder of this manual.
-
-‘POSIX’
- A family of open system standards based on Unix. Bash is primarily
- concerned with the Shell and Utilities portion of the POSIX 1003.1
- standard.
-
-‘blank’
- A space or tab character.
-
-‘whitespace’
- A character belonging to the ‘space’ character class in the current
- locale, or for which ‘isspace()’ returns true.
-
-‘builtin’
- A command that is implemented internally by the shell itself,
- rather than by an executable program somewhere in the file system.
-
-‘control operator’
- A ‘token’ that performs a control function. It is a ‘newline’ or
- one of the following: ‘||’, ‘&&’, ‘&’, ‘;’, ‘;;’, ‘;&’, ‘;;&’, ‘|’,
- ‘|&’, ‘(’, or ‘)’.
-
-‘exit status’
- The value returned by a command to its caller. The value is
- restricted to eight bits, so the maximum value is 255.
-
-‘field’
- A unit of text that is the result of one of the shell expansions.
- After expansion, when executing a command, the resulting fields are
- used as the command name and arguments.
-
-‘filename’
- A string of characters used to identify a file.
-
-‘job’
- A set of processes comprising a pipeline, and any processes
- descended from it, that are all in the same process group.
-
-‘job control’
- A mechanism by which users can selectively stop (suspend) and
- restart (resume) execution of processes.
-
-‘metacharacter’
- A character that, when unquoted, separates words. A metacharacter
- is a ‘space’, ‘tab’, ‘newline’, or one of the following characters:
- ‘|’, ‘&’, ‘;’, ‘(’, ‘)’, ‘<’, or ‘>’.
-
-‘name’
- A ‘word’ consisting solely of letters, numbers, and underscores,
- and beginning with a letter or underscore. ‘Name’s are used as
- shell variable and function names. Also referred to as an
- ‘identifier’.
-
-‘operator’
- A ‘control operator’ or a ‘redirection operator’. *Note
- Redirections::, for a list of redirection operators. Operators
- contain at least one unquoted ‘metacharacter’.
-
-‘process group’
- A collection of related processes each having the same process
- group ID.
-
-‘process group ID’
- A unique identifier that represents a ‘process group’ during its
- lifetime.
-
-‘reserved word’
- A ‘word’ that has a special meaning to the shell. Most reserved
- words introduce shell flow control constructs, such as ‘for’ and
- ‘while’.
-
-‘return status’
- A synonym for ‘exit status’.
-
-‘signal’
- A mechanism by which a process may be notified by the kernel of an
- event occurring in the system.
-
-‘special builtin’
- A shell builtin command that has been classified as special by the
- POSIX standard.
-
-‘token’
- A sequence of characters considered a single unit by the shell. It
- is either a ‘word’ or an ‘operator’.
-
-‘word’
- A sequence of characters treated as a unit by the shell. Words may
- not include unquoted ‘metacharacters’.
-
-\1f
-File: bash.info, Node: Basic Shell Features, Next: Shell Builtin Commands, Prev: Definitions, Up: Top
-
-3 Basic Shell Features
-**********************
-
-Bash is an acronym for ‘Bourne-Again SHell’. The Bourne shell is the
-traditional Unix shell originally written by Stephen Bourne. All of the
-Bourne shell builtin commands are available in Bash, and the rules for
-evaluation and quoting are taken from the POSIX specification for the
-"standard" Unix shell.
-
- This chapter briefly summarizes the shell's "building blocks":
-commands, control structures, shell functions, shell parameters, shell
-expansions, redirections, which are a way to direct input and output
-from and to named files, and how the shell executes commands.
-
-* Menu:
-
-* Shell Syntax:: What your input means to the shell.
-* Shell Commands:: The types of commands you can use.
-* Shell Functions:: Grouping commands by name.
-* Shell Parameters:: How the shell stores values.
-* Shell Expansions:: How Bash expands parameters and the various
- expansions available.
-* Redirections:: A way to control where input and output go.
-* Executing Commands:: What happens when you run a command.
-* Shell Scripts:: Executing files of shell commands.
-
-\1f
-File: bash.info, Node: Shell Syntax, Next: Shell Commands, Up: Basic Shell Features
-
-3.1 Shell Syntax
-================
-
-* Menu:
-
-* Shell Operation:: The basic operation of the shell.
-* Quoting:: How to remove the special meaning from characters.
-* Comments:: How to specify comments.
-
-When the shell reads input, it proceeds through a sequence of
-operations. If the input indicates the beginning of a comment, the
-shell ignores the comment symbol (‘#’), and the rest of that line.
-
- Otherwise, roughly speaking, the shell reads its input and divides
-the input into words and operators, employing the quoting rules to
-select which meanings to assign various words and characters.
-
- The shell then parses these tokens into commands and other
-constructs, removes the special meaning of certain words or characters,
-expands others, redirects input and output as needed, executes the
-specified command, waits for the command's exit status, and makes that
-exit status available for further inspection or processing.
-
-\1f
-File: bash.info, Node: Shell Operation, Next: Quoting, Up: Shell Syntax
-
-3.1.1 Shell Operation
----------------------
-
-The following is a brief description of the shell's operation when it
-reads and executes a command. Basically, the shell does the following:
-
- 1. Reads its input from a file (*note Shell Scripts::), from a string
- supplied as an argument to the ‘-c’ invocation option (*note
- Invoking Bash::), or from the user's terminal.
-
- 2. Breaks the input into words and operators, obeying the quoting
- rules described in *note Quoting::. These tokens are separated by
- ‘metacharacters’. This step performs alias expansion (*note
- Aliases::).
-
- 3. Parses the tokens into simple and compound commands (*note Shell
- Commands::).
-
- 4. Performs the various shell expansions (*note Shell Expansions::),
- breaking the expanded tokens into lists of filenames (*note
- Filename Expansion::) and commands and arguments.
-
- 5. Performs any necessary redirections (*note Redirections::) and
- removes the redirection operators and their operands from the
- argument list.
-
- 6. Executes the command (*note Executing Commands::).
-
- 7. Optionally waits for the command to complete and collects its exit
- status (*note Exit Status::).
-
-\1f
-File: bash.info, Node: Quoting, Next: Comments, Prev: Shell Operation, Up: Shell Syntax
-
-3.1.2 Quoting
--------------
-
-* Menu:
-
-* Escape Character:: How to remove the special meaning from a single
- character.
-* Single Quotes:: How to inhibit all interpretation of a sequence
- of characters.
-* Double Quotes:: How to suppress most of the interpretation of a
- sequence of characters.
-* ANSI-C Quoting:: How to expand ANSI-C sequences in quoted strings.
-* Locale Translation:: How to translate strings into different languages.
-
-Quoting is used to remove the special meaning of certain characters or
-words to the shell. Quoting can be used to disable special treatment
-for special characters, to prevent reserved words from being recognized
-as such, and to prevent parameter expansion.
-
- Each of the shell metacharacters (*note Definitions::) has special
-meaning to the shell and must be quoted if it is to represent itself.
-
- When the command history expansion facilities are being used (*note
-History Interaction::), the “history expansion” character, usually ‘!’,
-must be quoted to prevent history expansion. *Note Bash History
-Facilities::, for more details concerning history expansion.
-
- There are four quoting mechanisms: the “escape character”, single
-quotes, double quotes, and dollar-single quotes.
-
-\1f
-File: bash.info, Node: Escape Character, Next: Single Quotes, Up: Quoting
-
-3.1.2.1 Escape Character
-........................
-
-A non-quoted backslash ‘\’ is the Bash escape character. It preserves
-the literal value of the next character that follows, removing any
-special meaning it has, with the exception of ‘newline’. If a
-‘\newline’ pair appears, and the backslash itself is not quoted, the
-‘\newline’ is treated as a line continuation (that is, it is removed
-from the input stream and effectively ignored).
-
-\1f
-File: bash.info, Node: Single Quotes, Next: Double Quotes, Prev: Escape Character, Up: Quoting
-
-3.1.2.2 Single Quotes
-.....................
-
-Enclosing characters in single quotes (‘'’) preserves the literal value
-of each character within the quotes. A single quote may not occur
-between single quotes, even when preceded by a backslash.
-
-\1f
-File: bash.info, Node: Double Quotes, Next: ANSI-C Quoting, Prev: Single Quotes, Up: Quoting
-
-3.1.2.3 Double Quotes
-.....................
-
-Enclosing characters in double quotes (‘"’) preserves the literal value
-of all characters within the quotes, with the exception of ‘$’, ‘`’,
-‘\’, and, when history expansion is enabled, ‘!’. When the shell is in
-POSIX mode (*note Bash POSIX Mode::), the ‘!’ has no special meaning
-within double quotes, even when history expansion is enabled. The
-characters ‘$’ and ‘`’ retain their special meaning within double quotes
-(*note Shell Expansions::). The backslash retains its special meaning
-only when followed by one of the following characters: ‘$’, ‘`’, ‘"’,
-‘\’, or ‘newline’. Within double quotes, backslashes that are followed
-by one of these characters are removed. Backslashes preceding
-characters without a special meaning are left unmodified.
-
- A double quote may be quoted within double quotes by preceding it
-with a backslash. If enabled, history expansion will be performed
-unless an ‘!’ appearing in double quotes is escaped using a backslash.
-The backslash preceding the ‘!’ is not removed.
-
- The special parameters ‘*’ and ‘@’ have special meaning when in
-double quotes (*note Shell Parameter Expansion::).
-
-\1f
-File: bash.info, Node: ANSI-C Quoting, Next: Locale Translation, Prev: Double Quotes, Up: Quoting
-
-3.1.2.4 ANSI-C Quoting
-......................
-
-Character sequences of the form ‘$'STRING'’ are treated as a special
-kind of single quotes. The sequence expands to STRING, with
-backslash-escaped characters in STRING replaced as specified by the ANSI
-C standard. Backslash escape sequences, if present, are decoded as
-follows:
-
-‘\a’
- alert (bell)
-‘\b’
- backspace
-‘\e’
-‘\E’
- An escape character (not in ANSI C).
-‘\f’
- form feed
-‘\n’
- newline
-‘\r’
- carriage return
-‘\t’
- horizontal tab
-‘\v’
- vertical tab
-‘\\’
- backslash
-‘\'’
- single quote
-‘\"’
- double quote
-‘\?’
- question mark
-‘\NNN’
- The eight-bit character whose value is the octal value NNN (one to
- three octal digits).
-‘\xHH’
- The eight-bit character whose value is the hexadecimal value HH
- (one or two hex digits).
-‘\uHHHH’
- The Unicode (ISO/IEC 10646) character whose value is the
- hexadecimal value HHHH (one to four hex digits).
-‘\UHHHHHHHH’
- The Unicode (ISO/IEC 10646) character whose value is the
- hexadecimal value HHHHHHHH (one to eight hex digits).
-‘\cX’
- A control-X character.
-
-The expanded result is single-quoted, as if the dollar sign had not been
-present.
-
-\1f
-File: bash.info, Node: Locale Translation, Prev: ANSI-C Quoting, Up: Quoting
-
-3.1.2.5 Locale-Specific Translation
-...................................
-
-* Menu:
-
-* Creating Internationalized Scripts:: How to use translations and different
- languages in your scripts.
-
-Prefixing a double-quoted string with a dollar sign (‘$’), such as
-$"hello, world", causes the string to be translated according to the
-current locale. The ‘gettext’ infrastructure performs the lookup and
-translation, using the ‘LC_MESSAGES’, ‘TEXTDOMAINDIR’, and ‘TEXTDOMAIN’
-shell variables, as explained below. See the gettext documentation for
-additional details not covered here. If the current locale is ‘C’ or
-‘POSIX’, if there are no translations available, or if the string is not
-translated, the dollar sign is ignored, and the string is treated as
-double-quoted as described above. Since this is a form of double
-quoting, the string remains double-quoted by default, whether or not it
-is translated and replaced. If the ‘noexpand_translation’ option is
-enabled using the ‘shopt’ builtin (*note The Shopt Builtin::),
-translated strings are single-quoted instead of double-quoted.
-
- The rest of this section is a brief overview of how you use gettext
-to create translations for strings in a shell script named SCRIPTNAME.
-There are more details in the gettext documentation.
-
-\1f
-File: bash.info, Node: Creating Internationalized Scripts, Up: Locale Translation
-
-Once you've marked the strings in your script that you want to translate
-using $"...", you create a gettext "template" file using the command
-
- bash --dump-po-strings SCRIPTNAME > DOMAIN.pot
-
-The DOMAIN is your “message domain”. It's just an arbitrary string
-that's used to identify the files gettext needs, like a package or
-script name. It needs to be unique among all the message domains on
-systems where you install the translations, so gettext knows which
-translations correspond to your script. You'll use the template file to
-create translations for each target language. The template file
-conventionally has the suffix ‘.pot’.
-
- You copy this template file to a separate file for each target
-language you want to support (called "PO" files, which use the suffix
-‘.po’). PO files use various naming conventions, but when you are
-working to translate a template file into a particular language, you
-first copy the template file to a file whose name is the language you
-want to target, with the ‘.po’ suffix. For instance, the Spanish
-translations of your strings would be in a file named ‘es.po’, and to
-get started using a message domain named "example," you would run
-
- cp example.pot es.po
-
-Ultimately, PO files are often named DOMAIN.po and installed in
-directories that contain multiple translation files for a particular
-language.
-
- Whichever naming convention you choose, you will need to translate
-the strings in the PO files into the appropriate languages. This has to
-be done manually.
-
- When you have the translations and PO files complete, you'll use the
-gettext tools to produce what are called "MO" files, which are compiled
-versions of the PO files the gettext tools use to look up translations
-efficiently. MO files are also called "message catalog" files. You use
-the ‘msgfmt’ program to do this. For instance, if you had a file with
-Spanish translations, you could run
-
- msgfmt -o es.mo es.po
-
-to produce the corresponding MO file.
-
- Once you have the MO files, you decide where to install them and use
-the ‘TEXTDOMAINDIR’ shell variable to tell the gettext tools where they
-are. Make sure to use the same message domain to name the MO files as
-you did for the PO files when you install them.
-
- Your users will use the ‘LANG’ or ‘LC_MESSAGES’ shell variables to
-select the desired language.
-
- You set the ‘TEXTDOMAIN’ variable to the script's message domain. As
-above, you use the message domain to name your translation files.
-
- You, or possibly your users, set the ‘TEXTDOMAINDIR’ variable to the
-name of a directory where the message catalog files are stored. If you
-install the message files into the system's standard message catalog
-directory, you don't need to worry about this variable.
-
- The directory where the message catalog files are stored varies
-between systems. Some use the message catalog selected by the
-‘LC_MESSAGES’ shell variable. Others create the name of the message
-catalog from the value of the ‘TEXTDOMAIN’ shell variable, possibly
-adding the ‘.mo’ suffix. If you use the ‘TEXTDOMAIN’ variable, you may
-need to set the ‘TEXTDOMAINDIR’ variable to the location of the message
-catalog files, as above. It's common to use both variables in this
-fashion: ‘$TEXTDOMAINDIR’/‘$LC_MESSAGES’/LC_MESSAGES/‘$TEXTDOMAIN’.mo.
-
- If you used that last convention, and you wanted to store the message
-catalog files with Spanish (es) and Esperanto (eo) translations into a
-local directory you use for custom translation files, you could run
-
- TEXTDOMAIN=example
- TEXTDOMAINDIR=/usr/local/share/locale
-
- cp es.mo ${TEXTDOMAINDIR}/es/LC_MESSAGES/${TEXTDOMAIN}.mo
- cp eo.mo ${TEXTDOMAINDIR}/eo/LC_MESSAGES/${TEXTDOMAIN}.mo
-
- When all of this is done, and the message catalog files containing
-the compiled translations are installed in the correct location, your
-users will be able to see translated strings in any of the supported
-languages by setting the ‘LANG’ or ‘LC_MESSAGES’ environment variables
-before running your script.
-
-\1f
-File: bash.info, Node: Comments, Prev: Quoting, Up: Shell Syntax
-
-3.1.3 Comments
---------------
-
-In a non-interactive shell, or an interactive shell in which the
-‘interactive_comments’ option to the ‘shopt’ builtin is enabled (*note
-The Shopt Builtin::), a word beginning with ‘#’ introduces a comment. A
-word begins at the beginning of a line, after unquoted whitespace, or
-after an operator. The comment causes that word and all remaining
-characters on that line to be ignored. An interactive shell without the
-‘interactive_comments’ option enabled does not allow comments. The
-‘interactive_comments’ option is enabled by default in interactive
-shells. *Note Interactive Shells::, for a description of what makes a
-shell interactive.
-
-\1f
-File: bash.info, Node: Shell Commands, Next: Shell Functions, Prev: Shell Syntax, Up: Basic Shell Features
-
-3.2 Shell Commands
-==================
-
-A simple shell command such as ‘echo a b c’ consists of the command
-itself followed by arguments, separated by spaces.
-
- More complex shell commands are composed of simple commands arranged
-together in a variety of ways: in a pipeline in which the output of one
-command becomes the input of a second, in a loop or conditional
-construct, or in some other grouping.
-
-* Menu:
-
-* Reserved Words:: Words that have special meaning to the shell.
-* Simple Commands:: The most common type of command.
-* Pipelines:: Connecting the input and output of several
- commands.
-* Lists:: How to execute commands sequentially.
-* Compound Commands:: Shell commands for control flow.
-* Coprocesses:: Two-way communication between commands.
-* GNU Parallel:: Running commands in parallel.
-
-\1f
-File: bash.info, Node: Reserved Words, Next: Simple Commands, Up: Shell Commands
-
-3.2.1 Reserved Words
---------------------
-
-Reserved words are words that have special meaning to the shell. They
-are used to begin and end the shell's compound commands.
-
- The following words are recognized as reserved when unquoted and the
-first word of a command (see below for exceptions):
-
-‘if’ ‘then’ ‘elif’ ‘else’ ‘fi’ ‘time’
-‘for’ ‘in’ ‘until’ ‘while’ ‘do’ ‘done’
-‘case’ ‘esac’ ‘coproc’‘select’‘function’
-‘{’ ‘}’ ‘[[’ ‘]]’ ‘!’
-
-‘in’ is recognized as a reserved word if it is the third word of a
-‘case’ or ‘select’ command. ‘in’ and ‘do’ are recognized as reserved
-words if they are the third word in a ‘for’ command.
-
-\1f
-File: bash.info, Node: Simple Commands, Next: Pipelines, Prev: Reserved Words, Up: Shell Commands
-
-3.2.2 Simple Commands
----------------------
-
-A simple command is the kind of command that's executed most often.
-It's just a sequence of words separated by ‘blank’s, terminated by one
-of the shell's control operators (*note Definitions::). The first word
-generally specifies a command to be executed, with the rest of the words
-being that command's arguments.
-
- The return status (*note Exit Status::) of a simple command is its
-exit status as provided by the POSIX 1003.1 ‘waitpid’ function, or 128+N
-if the command was terminated by signal N.
-
-\1f
-File: bash.info, Node: Pipelines, Next: Lists, Prev: Simple Commands, Up: Shell Commands
-
-3.2.3 Pipelines
----------------
-
-A ‘pipeline’ is a sequence of one or more commands separated by one of
-the control operators ‘|’ or ‘|&’.
-
- The format for a pipeline is
- [time [-p]] [!] COMMAND1 [ | or |& COMMAND2 ] ...
-
-The output of each command in the pipeline is connected via a pipe to
-the input of the next command. That is, each command reads the previous
-command's output. This connection is performed before any redirections
-specified by COMMAND1.
-
- If ‘|&’ is the pipeline operator, COMMAND1's standard error, in
-addition to its standard output, is connected to COMMAND2's standard
-input through the pipe; it is shorthand for ‘2>&1 |’. This implicit
-redirection of the standard error to the standard output is performed
-after any redirections specified by COMMAND1, consistent with that
-shorthand.
-
- If the reserved word ‘time’ precedes the pipeline, Bash prints timing
-statistics for the pipeline once it finishes. The statistics currently
-consist of elapsed (wall-clock) time and user and system time consumed
-by the command's execution. The ‘-p’ option changes the output format
-to that specified by POSIX. When the shell is in POSIX mode (*note Bash
-POSIX Mode::), it does not recognize ‘time’ as a reserved word if the
-next token begins with a ‘-’. The value of the ‘TIMEFORMAT’ variable is
-a format string that specifies how the timing information should be
-displayed. *Note Bash Variables::, for a description of the available
-formats. Providing ‘time’ as a reserved word permits the timing of
-shell builtins, shell functions, and pipelines. An external ‘time’
-command cannot time these easily.
-
- When the shell is in POSIX mode (*note Bash POSIX Mode::), you can
-use ‘time’ by itself as a simple command. In this case, the shell
-displays the total user and system time consumed by the shell and its
-children. The ‘TIMEFORMAT’ variable specifies the format of the time
-information.
-
- If a pipeline is not executed asynchronously (*note Lists::), the
-shell waits for all commands in the pipeline to complete.
-
- Each command in a multi-command pipeline, where pipes are created, is
-executed in its own “subshell”, which is a separate process (*note
-Command Execution Environment::). If the ‘lastpipe’ option is enabled
-using the ‘shopt’ builtin (*note The Shopt Builtin::), and job control
-is not active, the last element of a pipeline may be run by the shell
-process.
-
- The exit status of a pipeline is the exit status of the last command
-in the pipeline, unless the ‘pipefail’ option is enabled (*note The Set
-Builtin::). If ‘pipefail’ is enabled, the pipeline's return status is
-the value of the last (rightmost) command to exit with a non-zero
-status, or zero if all commands exit successfully. If the reserved word
-‘!’ precedes the pipeline, the exit status is the logical negation of
-the exit status as described above. If a pipeline is not executed
-asynchronously (*note Lists::), the shell waits for all commands in the
-pipeline to terminate before returning a value. The return status of an
-asynchronous pipeline is 0.
-
-\1f
-File: bash.info, Node: Lists, Next: Compound Commands, Prev: Pipelines, Up: Shell Commands
-
-3.2.4 Lists of Commands
------------------------
-
-A ‘list’ is a sequence of one or more pipelines separated by one of the
-operators ‘;’, ‘&’, ‘&&’, or ‘||’, and optionally terminated by one of
-‘;’, ‘&’, or a ‘newline’.
-
- Of these list operators, ‘&&’ and ‘||’ have equal precedence,
-followed by ‘;’ and ‘&’, which have equal precedence.
-
- A sequence of one or more newlines may appear in a ‘list’ to delimit
-commands, equivalent to a semicolon.
-
- If a command is terminated by the control operator ‘&’, the shell
-executes the command asynchronously in a subshell. This is known as
-executing the command in the “background”, and these are referred to as
-“asynchronous” commands. The shell does not wait for the command to
-finish, and the return status is 0 (true). When job control is not
-active (*note Job Control::), the standard input for asynchronous
-commands, in the absence of any explicit redirections, is redirected
-from ‘/dev/null’.
-
- Commands separated by a ‘;’ are executed sequentially; the shell
-waits for each command to terminate in turn. The return status is the
-exit status of the last command executed.
-
- AND and OR lists are sequences of one or more pipelines separated by
-the control operators ‘&&’ and ‘||’, respectively. AND and OR lists are
-executed with left associativity.
-
- An AND list has the form
- COMMAND1 && COMMAND2
-
-COMMAND2 is executed if, and only if, COMMAND1 returns an exit status of
-zero (success).
-
- An OR list has the form
- COMMAND1 || COMMAND2
-
-COMMAND2 is executed if, and only if, COMMAND1 returns a non-zero exit
-status.
-
- The return status of AND and OR lists is the exit status of the last
-command executed in the list.
-
-\1f
-File: bash.info, Node: Compound Commands, Next: Coprocesses, Prev: Lists, Up: Shell Commands
-
-3.2.5 Compound Commands
------------------------
-
-* Menu:
-
-* Looping Constructs:: Shell commands for iterative action.
-* Conditional Constructs:: Shell commands for conditional execution.
-* Command Grouping:: Ways to group commands.
-
-Compound commands are the shell programming language constructs. Each
-construct begins with a reserved word or control operator and is
-terminated by a corresponding reserved word or operator. Any
-redirections (*note Redirections::) associated with a compound command
-apply to all commands within that compound command unless explicitly
-overridden.
-
- In most cases a list of commands in a compound command's description
-may be separated from the rest of the command by one or more newlines,
-and may be followed by a newline in place of a semicolon.
-
- Bash provides looping constructs, conditional commands, and
-mechanisms to group commands and execute them as a unit.
-
-\1f
-File: bash.info, Node: Looping Constructs, Next: Conditional Constructs, Up: Compound Commands
-
-3.2.5.1 Looping Constructs
-..........................
-
-Bash supports the following looping constructs.
-
- Note that wherever a ‘;’ appears in the description of a command's
-syntax, it may be replaced with one or more newlines.
-
-‘until’
- The syntax of the ‘until’ command is:
-
- until TEST-COMMANDS; do CONSEQUENT-COMMANDS; done
-
- Execute CONSEQUENT-COMMANDS as long as TEST-COMMANDS has an exit
- status which is not zero. The return status is the exit status of
- the last command executed in CONSEQUENT-COMMANDS, or zero if none
- was executed.
-
-‘while’
- The syntax of the ‘while’ command is:
-
- while TEST-COMMANDS; do CONSEQUENT-COMMANDS; done
-
- Execute CONSEQUENT-COMMANDS as long as TEST-COMMANDS has an exit
- status of zero. The return status is the exit status of the last
- command executed in CONSEQUENT-COMMANDS, or zero if none was
- executed.
-
-‘for’
- The syntax of the ‘for’ command is:
-
- for NAME [ [in WORDS ...] ; ] do COMMANDS; done
-
- Expand WORDS (*note Shell Expansions::), and then execute COMMANDS
- once for each word in the resultant list, with NAME bound to the
- current word. If ‘in WORDS’ is not present, the ‘for’ command
- executes the COMMANDS once for each positional parameter that is
- set, as if ‘in "$@"’ had been specified (*note Special
- Parameters::).
-
- The return status is the exit status of the last command that
- executes. If there are no items in the expansion of WORDS, no
- commands are executed, and the return status is zero.
-
- There is an alternate form of the ‘for’ command which is similar to
- the C language:
-
- for (( EXPR1 ; EXPR2 ; EXPR3 )) [;] do COMMANDS ; done
-
- First, evaluate the arithmetic expression EXPR1 according to the
- rules described below (*note Shell Arithmetic::). Then, repeatedly
- evaluate the arithmetic expression EXPR2 until it evaluates to
- zero. Each time EXPR2 evaluates to a non-zero value, execute
- COMMANDS and evaluate the arithmetic expression EXPR3. If any
- expression is omitted, it behaves as if it evaluates to 1. The
- return value is the exit status of the last command in COMMANDS
- that is executed, or non-zero if any of the expressions is invalid.
-
- Use the ‘break’ and ‘continue’ builtins (*note Bourne Shell
-Builtins::) to control loop execution.
-
-\1f
-File: bash.info, Node: Conditional Constructs, Next: Command Grouping, Prev: Looping Constructs, Up: Compound Commands
-
-3.2.5.2 Conditional Constructs
-..............................
-
-‘if’
- The syntax of the ‘if’ command is:
-
- if TEST-COMMANDS; then
- CONSEQUENT-COMMANDS;
- [elif MORE-TEST-COMMANDS; then
- MORE-CONSEQUENTS;]
- [else ALTERNATE-CONSEQUENTS;]
- fi
-
- The TEST-COMMANDS list is executed, and if its return status is
- zero, the CONSEQUENT-COMMANDS list is executed. If TEST-COMMANDS
- returns a non-zero status, each ‘elif’ list is executed in turn,
- and if its exit status is zero, the corresponding MORE-CONSEQUENTS
- is executed and the command completes. If ‘else
- ALTERNATE-CONSEQUENTS’ is present, and the final command in the
- final ‘if’ or ‘elif’ clause has a non-zero exit status, then
- ALTERNATE-CONSEQUENTS is executed. The return status is the exit
- status of the last command executed, or zero if no condition tested
- true.
-
-‘case’
- The syntax of the ‘case’ command is:
-
- case WORD in
- [ [(] PATTERN [| PATTERN]...) COMMAND-LIST ;;]...
- esac
-
- ‘case’ will selectively execute the COMMAND-LIST corresponding to
- the first PATTERN that matches WORD, proceeding from the first
- pattern to the last. The match is performed according to the rules
- described below in *note Pattern Matching::. If the ‘nocasematch’
- shell option (see the description of ‘shopt’ in *note The Shopt
- Builtin::) is enabled, the match is performed without regard to the
- case of alphabetic characters. The ‘|’ is used to separate
- multiple patterns in a pattern list, and the ‘)’ operator
- terminates the pattern list. A pattern list and an associated
- COMMAND-LIST is known as a CLAUSE.
-
- Each clause must be terminated with ‘;;’, ‘;&’, or ‘;;&’. The WORD
- undergoes tilde expansion, parameter expansion, command
- substitution, process substitution, arithmetic expansion, and quote
- removal (*note Shell Parameter Expansion::) before the shell
- attempts to match the pattern. Each PATTERN undergoes tilde
- expansion, parameter expansion, command substitution, arithmetic
- expansion, process substitution, and quote removal.
-
- There may be an arbitrary number of ‘case’ clauses, each terminated
- by a ‘;;’, ‘;&’, or ‘;;&’. The first pattern that matches
- determines the command-list that is executed. It's a common idiom
- to use ‘*’ as the final pattern to define the default case, since
- that pattern will always match.
-
- Here is an example using ‘case’ in a script that could be used to
- describe one interesting feature of an animal:
-
- echo -n "Enter the name of an animal: "
- read ANIMAL
- echo -n "The $ANIMAL has "
- case $ANIMAL in
- horse | dog | cat) echo -n "four";;
- man | kangaroo ) echo -n "two";;
- *) echo -n "an unknown number of";;
- esac
- echo " legs."
-
- If the ‘;;’ operator is used, the ‘case’ command completes after
- the first pattern match. Using ‘;&’ in place of ‘;;’ causes
- execution to continue with the COMMAND-LIST associated with the
- next clause, if any. Using ‘;;&’ in place of ‘;;’ causes the shell
- to test the patterns in the next clause, if any, and execute any
- associated COMMAND-LIST if the match succeeds, continuing the case
- statement execution as if the pattern list had not matched.
-
- The return status is zero if no PATTERN matches. Otherwise, the
- return status is the exit status of the last COMMAND-LIST executed.
-
-‘select’
-
- The ‘select’ construct allows the easy generation of menus. It has
- almost the same syntax as the ‘for’ command:
-
- select NAME [in WORDS ...]; do COMMANDS; done
-
- First, expand the list of words following ‘in’, generating a list
- of items, and print the set of expanded words on the standard error
- stream, each preceded by a number. If the ‘in WORDS’ is omitted,
- print the positional parameters, as if ‘in "$@"’ had been
- specified. ‘select’ then displays the ‘PS3’ prompt and reads a
- line from the standard input. If the line consists of a number
- corresponding to one of the displayed words, then ‘select’ sets the
- value of NAME to that word. If the line is empty, ‘select’
- displays the words and prompt again. If ‘EOF’ is read, ‘select’
- completes and returns 1. Any other value read causes NAME to be
- set to null. The line read is saved in the variable ‘REPLY’.
-
- The COMMANDS are executed after each selection until a ‘break’
- command is executed, at which point the ‘select’ command completes.
-
- Here is an example that allows the user to pick a filename from the
- current directory, and displays the name and index of the file
- selected.
-
- select fname in *;
- do
- echo you picked $fname \($REPLY\)
- break;
- done
-
-‘((...))’
- (( EXPRESSION ))
-
- The arithmetic EXPRESSION is evaluated according to the rules
- described below (*note Shell Arithmetic::). The EXPRESSION
- undergoes the same expansions as if it were within double quotes,
- but unescaped double quote characters in EXPRESSION are not treated
- specially and are removed. Since this can potentially result in
- empty strings, this command treats those as expressions that
- evaluate to 0. If the value of the expression is non-zero, the
- return status is 0; otherwise the return status is 1.
-
-‘[[...]]’
- [[ EXPRESSION ]]
-
- Evaluate the conditional expression EXPRESSION and return a status
- of zero (true) or non-zero (false). Expressions are composed of
- the primaries described below in *note Bash Conditional
- Expressions::. The words between the ‘[[’ and ‘]]’ do not undergo
- word splitting and filename expansion. The shell performs tilde
- expansion, parameter and variable expansion, arithmetic expansion,
- command substitution, process substitution, and quote removal on
- those words. Conditional operators such as ‘-f’ must be unquoted
- to be recognized as primaries.
-
- When used with ‘[[’, the ‘<’ and ‘>’ operators sort
- lexicographically using the current locale.
-
- When the ‘==’ and ‘!=’ operators are used, the string to the right
- of the operator is considered a pattern and matched according to
- the rules described below in *note Pattern Matching::, as if the
- ‘extglob’ shell option were enabled. The ‘=’ operator is identical
- to ‘==’. If the ‘nocasematch’ shell option (see the description of
- ‘shopt’ in *note The Shopt Builtin::) is enabled, the match is
- performed without regard to the case of alphabetic characters. The
- return value is 0 if the string matches (‘==’) or does not match
- (‘!=’) the pattern, and 1 otherwise.
-
- If you quote any part of the pattern, using any of the shell's
- quoting mechanisms, the quoted portion is matched literally. This
- means every character in the quoted portion matches itself, instead
- of having any special pattern matching meaning.
-
- An additional binary operator, ‘=~’, is available, with the same
- precedence as ‘==’ and ‘!=’. When you use ‘=~’, the string to the
- right of the operator is considered a POSIX extended regular
- expression pattern and matched accordingly (using the POSIX
- ‘regcomp’ and ‘regexec’ interfaces usually described in regex(3)).
- The return value is 0 if the string matches the pattern, and 1 if
- it does not. If the regular expression is syntactically incorrect,
- the conditional expression returns 2. If the ‘nocasematch’ shell
- option (see the description of ‘shopt’ in *note The Shopt
- Builtin::) is enabled, the match is performed without regard to the
- case of alphabetic characters.
-
- You can quote any part of the pattern to force the quoted portion
- to be matched literally instead of as a regular expression (see
- above). If the pattern is stored in a shell variable, quoting the
- variable expansion forces the entire pattern to be matched
- literally.
-
- The match succeeds if the pattern matches any part of the string.
- If you want to force the pattern to match the entire string, anchor
- the pattern using the ‘^’ and ‘$’ regular expression operators.
-
- For example, the following will match a line (stored in the shell
- variable ‘line’) if there is a sequence of characters anywhere in
- the value consisting of any number, including zero, of characters
- in the ‘space’ character class, immediately followed by zero or one
- instances of ‘a’, then a ‘b’:
-
- [[ $line =~ [[:space:]]*(a)?b ]]
-
- That means values for ‘line’ like ‘aab’, ‘ aaaaaab’, ‘xaby’, and ‘
- ab’ will all match, as will a line containing a ‘b’ anywhere in its
- value.
-
- If you want to match a character that's special to the regular
- expression grammar (‘^$|[]()\.*+?’), it has to be quoted to remove
- its special meaning. This means that in the pattern ‘xxx.txt’, the
- ‘.’ matches any character in the string (its usual regular
- expression meaning), but in the pattern ‘"xxx.txt"’, it can only
- match a literal ‘.’.
-
- Likewise, if you want to include a character in your pattern that
- has a special meaning to the regular expression grammar, you must
- make sure it's not quoted. If you want to anchor a pattern at the
- beginning or end of the string, for instance, you cannot quote the
- ‘^’ or ‘$’ characters using any form of shell quoting.
-
- If you want to match ‘initial string’ at the start of a line, the
- following will work:
- [[ $line =~ ^"initial string" ]]
- but this will not:
- [[ $line =~ "^initial string" ]]
- because in the second example the ‘^’ is quoted and doesn't have
- its usual special meaning.
-
- It is sometimes difficult to specify a regular expression properly
- without using quotes, or to keep track of the quoting used by
- regular expressions while paying attention to shell quoting and the
- shell's quote removal. Storing the regular expression in a shell
- variable is often a useful way to avoid problems with quoting
- characters that are special to the shell. For example, the
- following is equivalent to the pattern used above:
-
- pattern='[[:space:]]*(a)?b'
- [[ $line =~ $pattern ]]
-
- Shell programmers should take special care with backslashes, since
- backslashes are used by both the shell and regular expressions to
- remove the special meaning from the following character. This
- means that after the shell's word expansions complete (*note Shell
- Expansions::), any backslashes remaining in parts of the pattern
- that were originally not quoted can remove the special meaning of
- pattern characters. If any part of the pattern is quoted, the
- shell does its best to ensure that the regular expression treats
- those remaining backslashes as literal, if they appeared in a
- quoted portion.
-
- The following two sets of commands are _not_ equivalent:
-
- pattern='\.'
-
- [[ . =~ $pattern ]]
- [[ . =~ \. ]]
-
- [[ . =~ "$pattern" ]]
- [[ . =~ '\.' ]]
-
- The first two matches will succeed, but the second two will not,
- because in the second two the backslash will be part of the pattern
- to be matched. In the first two examples, the pattern passed to
- the regular expression parser is ‘\.’. The backslash removes the
- special meaning from ‘.’, so the literal ‘.’ matches. In the
- second two examples, the pattern passed to the regular expression
- parser has the backslash quoted (e.g., ‘\\\.’), which will not
- match the string, since it does not contain a backslash. If the
- string in the first examples were anything other than ‘.’, say ‘a’,
- the pattern would not match, because the quoted ‘.’ in the pattern
- loses its special meaning of matching any single character.
-
- Bracket expressions in regular expressions can be sources of errors
- as well, since characters that are normally special in regular
- expressions lose their special meanings between brackets. However,
- you can use bracket expressions to match special pattern characters
- without quoting them, so they are sometimes useful for this
- purpose.
-
- Though it might seem like a strange way to write it, the following
- pattern will match a ‘.’ in the string:
-
- [[ . =~ [.] ]]
-
- The shell performs any word expansions before passing the pattern
- to the regular expression functions, so you can assume that the
- shell's quoting takes precedence. As noted above, the regular
- expression parser will interpret any unquoted backslashes remaining
- in the pattern after shell expansion according to its own rules.
- The intention is to avoid making shell programmers quote things
- twice as much as possible, so shell quoting should be sufficient to
- quote special pattern characters where that's necessary.
-
- The array variable ‘BASH_REMATCH’ records which parts of the string
- matched the pattern. The element of ‘BASH_REMATCH’ with index 0
- contains the portion of the string matching the entire regular
- expression. Substrings matched by parenthesized subexpressions
- within the regular expression are saved in the remaining
- ‘BASH_REMATCH’ indices. The element of ‘BASH_REMATCH’ with index N
- is the portion of the string matching the Nth parenthesized
- subexpression.
-
- Bash sets ‘BASH_REMATCH’ in the global scope; declaring it as a
- local variable will lead to unexpected results.
-
- Expressions may be combined using the following operators, listed
- in decreasing order of precedence:
-
- ‘( EXPRESSION )’
- Returns the value of EXPRESSION. This may be used to override
- the normal precedence of operators.
-
- ‘! EXPRESSION’
- True if EXPRESSION is false.
-
- ‘EXPRESSION1 && EXPRESSION2’
- True if both EXPRESSION1 and EXPRESSION2 are true.
-
- ‘EXPRESSION1 || EXPRESSION2’
- True if either EXPRESSION1 or EXPRESSION2 is true.
-
- The ‘&&’ and ‘||’ operators do not evaluate EXPRESSION2 if the
- value of EXPRESSION1 is sufficient to determine the return value of
- the entire conditional expression.
-
-\1f
-File: bash.info, Node: Command Grouping, Prev: Conditional Constructs, Up: Compound Commands
-
-3.2.5.3 Grouping Commands
-.........................
-
-Bash provides two ways to group a list of commands to be executed as a
-unit. When commands are grouped, redirections may be applied to the
-entire command list. For example, the output of all the commands in the
-list may be redirected to a single stream.
-
-‘()’
- ( LIST )
-
- Placing a list of commands between parentheses forces the shell to
- create a subshell (*note Command Execution Environment::), and each
- of the commands in LIST is executed in that subshell environment.
- Since the LIST is executed in a subshell, variable assignments do
- not remain in effect after the subshell completes.
-
-‘{}’
- { LIST; }
-
- Placing a list of commands between curly braces causes the list to
- be executed in the current shell environment. No subshell is
- created. The semicolon (or newline) following LIST is required.
-
- In addition to the creation of a subshell, there is a subtle
-difference between these two constructs due to historical reasons. The
-braces are reserved words, so they must be separated from the LIST by
-‘blank’s or other shell metacharacters. The parentheses are operators,
-and are recognized as separate tokens by the shell even if they are not
-separated from the LIST by whitespace.
-
- The exit status of both of these constructs is the exit status of
-LIST.
-
-\1f
-File: bash.info, Node: Coprocesses, Next: GNU Parallel, Prev: Compound Commands, Up: Shell Commands
-
-3.2.6 Coprocesses
------------------
-
-A ‘coprocess’ is a shell command preceded by the ‘coproc’ reserved word.
-A coprocess is executed asynchronously in a subshell, as if the command
-had been terminated with the ‘&’ control operator, with a two-way pipe
-established between the executing shell and the coprocess.
-
- The syntax for a coprocess is:
-
- coproc [NAME] COMMAND [REDIRECTIONS]
-
-This creates a coprocess named NAME. COMMAND may be either a simple
-command (*note Simple Commands::) or a compound command (*note Compound
-Commands::). NAME is a shell variable name. If NAME is not supplied,
-the default name is ‘COPROC’.
-
- The recommended form to use for a coprocess is
-
- coproc NAME { COMMAND; }
-
-This form is preferred because simple commands result in the coprocess
-always being named ‘COPROC’, and it is simpler to use and more complete
-than the other compound commands.
-
- There are other forms of coprocesses:
-
- coproc NAME COMPOUND-COMMAND
- coproc COMPOUND-COMMAND
- coproc SIMPLE-COMMAND
-
-If COMMAND is a compound command, NAME is optional. The word following
-‘coproc’ determines whether that word is interpreted as a variable name:
-it is interpreted as NAME if it is not a reserved word that introduces a
-compound command. If COMMAND is a simple command, NAME is not allowed;
-this is to avoid confusion between NAME and the first word of the simple
-command.
-
- When the coprocess is executed, the shell creates an array variable
-(*note Arrays::) named NAME in the context of the executing shell. The
-standard output of COMMAND is connected via a pipe to a file descriptor
-in the executing shell, and that file descriptor is assigned to NAME[0].
-The standard input of COMMAND is connected via a pipe to a file
-descriptor in the executing shell, and that file descriptor is assigned
-to NAME[1]. This pipe is established before any redirections specified
-by the command (*note Redirections::). The file descriptors can be
-utilized as arguments to shell commands and redirections using standard
-word expansions. Other than those created to execute command and
-process substitutions, the file descriptors are not available in
-subshells.
-
- The process ID of the shell spawned to execute the coprocess is
-available as the value of the variable ‘NAME_PID’. The ‘wait’ builtin
-may be used to wait for the coprocess to terminate.
-
- Since the coprocess is created as an asynchronous command, the
-‘coproc’ command always returns success. The return status of a
-coprocess is the exit status of COMMAND.
-
-\1f
-File: bash.info, Node: GNU Parallel, Prev: Coprocesses, Up: Shell Commands
-
-3.2.7 GNU Parallel
-------------------
-
-There are ways to run commands in parallel that are not built into Bash.
-GNU Parallel is a tool to do just that.
-
- GNU Parallel, as its name suggests, can be used to build and run
-commands in parallel. You may run the same command with different
-arguments, whether they are filenames, usernames, hostnames, or lines
-read from files. GNU Parallel provides shorthand references to many of
-the most common operations (input lines, various portions of the input
-line, different ways to specify the input source, and so on). Parallel
-can replace ‘xargs’ or feed commands from its input sources to several
-different instances of Bash.
-
- For a complete description, refer to the GNU Parallel documentation,
-which is available at
-<https://www.gnu.org/software/parallel/parallel_tutorial.html>.
-
-\1f
-File: bash.info, Node: Shell Functions, Next: Shell Parameters, Prev: Shell Commands, Up: Basic Shell Features
-
-3.3 Shell Functions
-===================
-
-Shell functions are a way to group commands for later execution using a
-single name for the group. They are executed just like a "regular"
-simple command. When the name of a shell function is used as a simple
-command name, the shell executes the list of commands associated with
-that function name. Shell functions are executed in the current shell
-context; there is no new process created to interpret them.
-
- Functions are declared using this syntax:
- FNAME () COMPOUND-COMMAND [ REDIRECTIONS ]
-
- or
-
- function FNAME [()] COMPOUND-COMMAND [ REDIRECTIONS ]
-
- This defines a shell function named FNAME. The reserved word
-‘function’ is optional. If the ‘function’ reserved word is supplied,
-the parentheses are optional. The “body” of the function is the
-compound command COMPOUND-COMMAND (*note Compound Commands::). That
-command is usually a LIST enclosed between { and }, but may be any
-compound command listed above. If the ‘function’ reserved word is used,
-but the parentheses are not supplied, the braces are recommended. When
-the shell is in POSIX mode (*note Bash POSIX Mode::), FNAME must be a
-valid shell name and may not be the same as one of the special builtins
-(*note Special Builtins::). When not in POSIX mode, a function name can
-be any unquoted shell word that does not contain ‘$’.
-
- Any redirections (*note Redirections::) associated with the shell
-function are performed when the function is executed. Function
-definitions are deleted using the ‘-f’ option to the ‘unset’ builtin
-(*note Bourne Shell Builtins::).
-
- The exit status of a function definition is zero unless a syntax
-error occurs or a readonly function with the same name already exists.
-When executed, the exit status of a function is the exit status of the
-last command executed in the body.
-
- Note that for historical reasons, in the most common usage the curly
-braces that surround the body of the function must be separated from the
-body by ‘blank’s or newlines. This is because the braces are reserved
-words and are only recognized as such when they are separated from the
-command list by whitespace or another shell metacharacter. When using
-the braces, the LIST must be terminated by a semicolon, a ‘&’, or a
-newline.
-
- COMPOUND-COMMAND is executed whenever FNAME is specified as the name
-of a simple command. Functions are executed in the context of the
-calling shell; there is no new process created to interpret them
-(contrast this with the execution of a shell script).
-
- When a function is executed, the arguments to the function become the
-positional parameters during its execution (*note Positional
-Parameters::). The special parameter ‘#’ that expands to the number of
-positional parameters is updated to reflect the new set of positional
-parameters. Special parameter ‘0’ is unchanged. The first element of
-the ‘FUNCNAME’ variable is set to the name of the function while the
-function is executing.
-
- All other aspects of the shell execution environment are identical
-between a function and its caller with these exceptions: the ‘DEBUG’ and
-‘RETURN’ traps are not inherited unless the function has been given the
-‘trace’ attribute using the ‘declare’ builtin or the ‘-o functrace’
-option has been enabled with the ‘set’ builtin, (in which case all
-functions inherit the ‘DEBUG’ and ‘RETURN’ traps), and the ‘ERR’ trap is
-not inherited unless the ‘-o errtrace’ shell option has been enabled.
-*Note Bourne Shell Builtins::, for the description of the ‘trap’
-builtin.
-
- The ‘FUNCNEST’ variable, if set to a numeric value greater than 0,
-defines a maximum function nesting level. Function invocations that
-exceed the limit cause the entire command to abort.
-
- If the builtin command ‘return’ is executed in a function, the
-function completes and execution resumes with the next command after the
-function call. Any command associated with the ‘RETURN’ trap is
-executed before execution resumes. When a function completes, the
-values of the positional parameters and the special parameter ‘#’ are
-restored to the values they had prior to the function's execution. If
-‘return’ is supplied a numeric argument, that is the function's return
-status; otherwise the function's return status is the exit status of the
-last command executed before the ‘return’.
-
- Variables local to the function are declared with the ‘local’ builtin
-(“local variables”). Ordinarily, variables and their values are shared
-between a function and its caller. These variables are visible only to
-the function and the commands it invokes. This is particularly
-important when a shell function calls other functions.
-
- In the following description, the “current scope” is a currently-
-executing function. Previous scopes consist of that function's caller
-and so on, back to the "global" scope, where the shell is not executing
-any shell function. A local variable at the current local scope is a
-variable declared using the ‘local’ or ‘declare’ builtins in the
-function that is currently executing.
-
- Local variables "shadow" variables with the same name declared at
-previous scopes. For instance, a local variable declared in a function
-hides variables with the same name declared at previous scopes,
-including global variables: references and assignments refer to the
-local variable, leaving the variables at previous scopes unmodified.
-When the function returns, the global variable is once again visible.
-
- The shell uses “dynamic scoping” to control a variable's visibility
-within functions. With dynamic scoping, visible variables and their
-values are a result of the sequence of function calls that caused
-execution to reach the current function. The value of a variable that a
-function sees depends on its value within its caller, if any, whether
-that caller is the global scope or another shell function. This is also
-the value that a local variable declaration shadows, and the value that
-is restored when the function returns.
-
- For example, if a variable ‘var’ is declared as local in function
-‘func1’, and ‘func1’ calls another function ‘func2’, references to ‘var’
-made from within ‘func2’ resolve to the local variable ‘var’ from
-‘func1’, shadowing any global variable named ‘var’.
-
- The following script demonstrates this behavior. When executed, the
-script displays
-
- In func2, var = func1 local
-
- func1()
- {
- local var='func1 local'
- func2
- }
-
- func2()
- {
- echo "In func2, var = $var"
- }
-
- var=global
- func1
-
- The ‘unset’ builtin also acts using the same dynamic scope: if a
-variable is local to the current scope, ‘unset’ unsets it; otherwise the
-unset will refer to the variable found in any calling scope as described
-above. If a variable at the current local scope is unset, it remains so
-(appearing as unset) until it is reset in that scope or until the
-function returns. Once the function returns, any instance of the
-variable at a previous scope becomes visible. If the unset acts on a
-variable at a previous scope, any instance of a variable with that name
-that had been shadowed becomes visible (see below how the
-‘localvar_unset’ shell option changes this behavior).
-
- The ‘-f’ option to the ‘declare’ (‘typeset’) builtin command (*note
-Bash Builtins::) lists function names and definitions. The ‘-F’ option
-to ‘declare’ or ‘typeset’ lists the function names only (and optionally
-the source file and line number, if the ‘extdebug’ shell option is
-enabled). Functions may be exported so that child shell processes
-(those created when executing a separate shell invocation) automatically
-have them defined with the ‘-f’ option to the ‘export’ builtin (*note
-Bourne Shell Builtins::). The ‘-f’ option to the ‘unset’ builtin (*note
-Bourne Shell Builtins::) deletes a function definition.
-
- Functions may be recursive. The ‘FUNCNEST’ variable may be used to
-limit the depth of the function call stack and restrict the number of
-function invocations. By default, Bash places no limit on the number of
-recursive calls.
-
-\1f
-File: bash.info, Node: Shell Parameters, Next: Shell Expansions, Prev: Shell Functions, Up: Basic Shell Features
-
-3.4 Shell Parameters
-====================
-
-* Menu:
-
-* Positional Parameters:: The shell's command-line arguments.
-* Special Parameters:: Parameters denoted by special characters.
-
-A “parameter” is an entity that stores values. It can be a ‘name’, a
-number, or one of the special characters listed below. A “variable” is
-a parameter denoted by a ‘name’. A variable has a ‘value’ and zero or
-more ‘attributes’. Attributes are assigned using the ‘declare’ builtin
-command (see the description of the ‘declare’ builtin in *note Bash
-Builtins::). The ‘export’ and ‘readonly’ builtins assign specific
-attributes.
-
- A parameter is set if it has been assigned a value. The null string
-is a valid value. Once a variable is set, it may be unset only by using
-the ‘unset’ builtin command.
-
- A variable is assigned to using a statement of the form
- NAME=[VALUE]
-If VALUE is not given, the variable is assigned the null string. All
-VALUEs undergo tilde expansion, parameter and variable expansion,
-command substitution, arithmetic expansion, and quote removal (*note
-Shell Parameter Expansion::). If the variable has its ‘integer’
-attribute set, then VALUE is evaluated as an arithmetic expression even
-if the ‘$((...))’ expansion is not used (*note Arithmetic Expansion::).
-Word splitting and filename expansion are not performed. Assignment
-statements may also appear as arguments to the ‘alias’, ‘declare’,
-‘typeset’, ‘export’, ‘readonly’, and ‘local’ builtin commands
-(“declaration commands”). When in POSIX mode (*note Bash POSIX Mode::),
-these builtins may appear in a command after one or more instances of
-the ‘command’ builtin and retain these assignment statement properties.
-For example,
- command export var=value
-
- In the context where an assignment statement is assigning a value to
-a shell variable or array index (*note Arrays::), the ‘+=’ operator
-appends to or adds to the variable's previous value. This includes
-arguments to declaration commands such as ‘declare’ that accept
-assignment statements. When ‘+=’ is applied to a variable for which the
-‘integer’ attribute has been set, the variable's current value and VALUE
-are each evaluated as arithmetic expressions, and the sum of the results
-is assigned as the variable's value. The current value is usually an
-integer constant, but may be an expression. When ‘+=’ is applied to an
-array variable using compound assignment (*note Arrays::), the
-variable's value is not unset (as it is when using ‘=’), and new values
-are appended to the array beginning at one greater than the array's
-maximum index (for indexed arrays), or added as additional key-value
-pairs in an associative array. When applied to a string-valued
-variable, VALUE is expanded and appended to the variable's value.
-
- A variable can be assigned the ‘nameref’ attribute using the ‘-n’
-option to the ‘declare’ or ‘local’ builtin commands (*note Bash
-Builtins::) to create a “nameref”, or a reference to another variable.
-This allows variables to be manipulated indirectly. Whenever the
-nameref variable is referenced, assigned to, unset, or has its
-attributes modified (other than using or changing the nameref attribute
-itself), the operation is actually performed on the variable specified
-by the nameref variable's value. A nameref is commonly used within
-shell functions to refer to a variable whose name is passed as an
-argument to the function. For instance, if a variable name is passed to
-a shell function as its first argument, running
- declare -n ref=$1
-inside the function creates a local nameref variable ‘ref’ whose value
-is the variable name passed as the first argument. References and
-assignments to ‘ref’, and changes to its attributes, are treated as
-references, assignments, and attribute modifications to the variable
-whose name was passed as ‘$1’.
-
- If the control variable in a ‘for’ loop has the nameref attribute,
-the list of words can be a list of shell variables, and a name reference
-is established for each word in the list, in turn, when the loop is
-executed. Array variables cannot be given the nameref attribute.
-However, nameref variables can reference array variables and subscripted
-array variables. Namerefs can be unset using the ‘-n’ option to the
-‘unset’ builtin (*note Bourne Shell Builtins::). Otherwise, if ‘unset’
-is executed with the name of a nameref variable as an argument, the
-variable referenced by the nameref variable is unset.
-
- When the shell starts, it reads its environment and creates a shell
-variable from each environment variable that has a valid name, as
-described below (*note Environment::).
-
-\1f
-File: bash.info, Node: Positional Parameters, Next: Special Parameters, Up: Shell Parameters
-
-3.4.1 Positional Parameters
----------------------------
-
-A “positional parameter” is a parameter denoted by one or more digits,
-other than the single digit ‘0’. Positional parameters are assigned
-from the shell's arguments when it is invoked, and may be reassigned
-using the ‘set’ builtin command. Positional parameter ‘N’ may be
-referenced as ‘${N}’, or as ‘$N’ when ‘N’ consists of a single digit.
-Positional parameters may not be assigned to with assignment statements.
-The ‘set’ and ‘shift’ builtins are used to set and unset them (*note
-Shell Builtin Commands::). The positional parameters are temporarily
-replaced when a shell function is executed (*note Shell Functions::).
-
- When a positional parameter consisting of more than a single digit is
-expanded, it must be enclosed in braces. Without braces, a digit
-following ‘$’ can only refer to one of the first nine positional
-parameters ($1\-$9) or the special parameter $0 (see below).
-
-\1f
-File: bash.info, Node: Special Parameters, Prev: Positional Parameters, Up: Shell Parameters
-
-3.4.2 Special Parameters
-------------------------
-
-The shell treats several parameters specially. These parameters may
-only be referenced; assignment to them is not allowed. Special
-parameters are denoted by one of the following characters.
-
-‘*’
- ($*) Expands to the positional parameters, starting from one. When
- the expansion is not within double quotes, each positional
- parameter expands to a separate word. In contexts where word
- expansions are performed, those words are subject to further word
- splitting and filename expansion. When the expansion occurs within
- double quotes, it expands to a single word with the value of each
- parameter separated by the first character of the ‘IFS’ variable.
- That is, ‘"$*"’ is equivalent to ‘"$1C$2C..."’, where C is the
- first character of the value of the ‘IFS’ variable. If ‘IFS’ is
- unset, the parameters are separated by spaces. If ‘IFS’ is null,
- the parameters are joined without intervening separators.
-
-‘@’
- ($@) Expands to the positional parameters, starting from one. In
- contexts where word splitting is performed, this expands each
- positional parameter to a separate word; if not within double
- quotes, these words are subject to word splitting. In contexts
- where word splitting is not performed, such as the value portion of
- an assignment statement, this expands to a single word with each
- positional parameter separated by a space. When the expansion
- occurs within double quotes, and word splitting is performed, each
- parameter expands to a separate word. That is, ‘"$@"’ is
- equivalent to ‘"$1" "$2" ...’. If the double-quoted expansion
- occurs within a word, the expansion of the first parameter is
- joined with the expansion of the beginning part of the original
- word, and the expansion of the last parameter is joined with the
- expansion of the last part of the original word. When there are no
- positional parameters, ‘"$@"’ and ‘$@’ expand to nothing (i.e.,
- they are removed).
-
-‘#’
- ($#) Expands to the number of positional parameters in decimal.
-
-‘?’
- ($?) Expands to the exit status of the most recently executed
- command.
-
-‘-’
- ($-, a hyphen.) Expands to the current option flags as specified
- upon invocation, by the ‘set’ builtin command, or those set by the
- shell itself (such as the ‘-i’ option).
-
-‘$’
- ($$) Expands to the process ID of the shell. In a subshell, it
- expands to the process ID of the invoking shell, not the subshell.
-
-‘!’
- ($!) Expands to the process ID of the job most recently placed
- into the background, whether executed as an asynchronous command or
- using the ‘bg’ builtin (*note Job Control Builtins::).
-
-‘0’
- ($0) Expands to the name of the shell or shell script. This is set
- at shell initialization. If Bash is invoked with a file of
- commands (*note Shell Scripts::), ‘$0’ is set to the name of that
- file. If Bash is started with the ‘-c’ option (*note Invoking
- Bash::), then ‘$0’ is set to the first argument after the string to
- be executed, if one is present. Otherwise, it is set to the
- filename used to invoke Bash, as given by argument zero.
-
-\1f
-File: bash.info, Node: Shell Expansions, Next: Redirections, Prev: Shell Parameters, Up: Basic Shell Features
-
-3.5 Shell Expansions
-====================
-
-Expansion is performed on the command line after it has been split into
-‘token’s. Bash performs these expansions:
-
- • brace expansion
- • tilde expansion
- • parameter and variable expansion
- • command substitution
- • arithmetic expansion
- • word splitting
- • filename expansion
- • quote removal
-
-* Menu:
-
-* Brace Expansion:: Expansion of expressions within braces.
-* Tilde Expansion:: Expansion of the ~ character.
-* Shell Parameter Expansion:: How Bash expands variables to their values.
-* Command Substitution:: Using the output of a command as an argument.
-* Arithmetic Expansion:: How to use arithmetic in shell expansions.
-* Process Substitution:: A way to write and read to and from a
- command.
-* Word Splitting:: How the results of expansion are split into separate
- arguments.
-* Filename Expansion:: A shorthand for specifying filenames matching patterns.
-* Quote Removal:: How and when quote characters are removed from
- words.
-
- 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; filename
-expansion; and quote removal.
-
- On systems that can support it, there is an additional expansion
-available: “process substitution”. This is performed at the same time
-as tilde, parameter, variable, and arithmetic expansion and command
-substitution.
-
- “Quote removal” 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. *Note
-Quote Removal:: for more details.
-
- Only brace expansion, word splitting, and filename expansion can
-increase the number of words of the expansion; other expansions expand a
-single word to a single word. The only exceptions to this are the
-expansions of ‘"$@"’ and ‘$*’ (*note Special Parameters::), and
-‘"${NAME[@]}"’ and ‘${NAME[*]}’ (*note Arrays::).
-
-\1f
-File: bash.info, Node: Brace Expansion, Next: Tilde Expansion, Up: Shell Expansions
-
-3.5.1 Brace Expansion
----------------------
-
-Brace expansion is a mechanism to generate arbitrary strings sharing a
-common prefix and suffix, either of which can be empty. This mechanism
-is similar to “filename expansion” (*note Filename Expansion::), but the
-filenames generated need not exist. Patterns to be brace expanded are
-formed from an optional PREAMBLE, followed by either a series of
-comma-separated strings or a sequence expression between a pair of
-braces, followed by an optional POSTSCRIPT. 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
-are not sorted; brace expansion preserves left to right order. For
-example,
- bash$ echo a{d,c,b}e
- ade ace abe
-
- A sequence expression takes the form ‘X..Y[..INCR]’, where X and Y
-are either integers or letters, and INCR, an optional increment, is an
-integer. When integers are supplied, the expression expands to each
-number between X and Y, inclusive. If either X or Y begins with a zero,
-each generated term will contain the same number of digits, zero-padding
-where necessary. When letters are supplied, the expression expands to
-each character lexicographically between X and Y, inclusive, using the C
-locale. Note that both X and Y 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 as appropriate.
-
- Brace expansion is performed before any other expansions, and any
-characters special to other expansions are preserved in the result. It
-is strictly textual. Bash 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
-closing braces, and at least one unquoted comma or a valid sequence
-expression. Any incorrectly formed brace expansion is left unchanged.
-
- A ‘{’ or ‘,’ may be quoted with a backslash to prevent its being
-considered part of a brace expression. To avoid conflicts with
-parameter expansion, the string ‘${’ is not considered eligible for
-brace expansion, and inhibits brace expansion until the closing ‘}’.
-
- This construct is typically used as shorthand when the common prefix
-of the strings to be generated is longer than in the above example:
- mkdir /usr/local/src/bash/{old,new,dist,bugs}
- or
- chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}
-
- Brace expansion introduces a slight incompatibility with historical
-versions of ‘sh’. ‘sh’ does not treat opening or closing braces
-specially when they appear as part of a word, and preserves them in the
-output. Bash removes braces from words as a consequence of brace
-expansion. For example, a word entered to ‘sh’ as ‘file{1,2}’ appears
-identically in the output. Bash outputs that word as ‘file1 file2’
-after brace expansion. Start Bash with the ‘+B’ option or disable brace
-expansion with the ‘+B’ option to the ‘set’ command (*note Shell Builtin
-Commands::) for strict ‘sh’ compatibility.
-
-\1f
-File: bash.info, Node: Tilde Expansion, Next: Shell Parameter Expansion, Prev: Brace Expansion, Up: Shell Expansions
-
-3.5.2 Tilde Expansion
----------------------
-
-If a word begins with an unquoted tilde character (‘~’), all of the
-characters up to the first unquoted slash (or all characters, if there
-is no unquoted slash) are considered a “tilde-prefix”. 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 “login name”.
-If this login name is the null string, the tilde is replaced with the
-value of the ‘HOME’ shell variable. If ‘HOME’ is unset, the tilde
-expands to the home directory of the user executing the shell instead.
-Otherwise, the tilde-prefix is replaced with the home directory
-associated with the specified login name.
-
- If the tilde-prefix is ‘~+’, the value of the shell variable ‘PWD’
-replaces the tilde-prefix. If the tilde-prefix is ‘~-’, the shell
-substitutes the value of the shell variable ‘OLDPWD’, if it is set.
-
- If the characters following the tilde in the tilde-prefix consist of
-a number N, 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 ‘dirs’ builtin invoked with the characters
-following tilde in the tilde-prefix as an argument (*note The Directory
-Stack::). If the tilde-prefix, sans the tilde, consists 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 filename expansion.
-
- If the login name is invalid, or the tilde expansion fails, the
-tilde-prefix is left unchanged.
-
- Bash checks each variable assignment for unquoted tilde-prefixes
-immediately following a ‘:’ or the first ‘=’, and performs tilde
-expansion in these cases. Consequently, one may use filenames with
-tildes in assignments to ‘PATH’, ‘MAILPATH’, and ‘CDPATH’, and the shell
-assigns the expanded value.
-
- The following table shows how Bash treats unquoted tilde-prefixes:
-
-‘~’
- The value of ‘$HOME’.
-‘~/foo’
- ‘$HOME/foo’
-
-‘~fred/foo’
- The directory or file ‘foo’ in the home directory of the user
- ‘fred’.
-
-‘~+/foo’
- ‘$PWD/foo’
-
-‘~-/foo’
- ‘${OLDPWD-'~-'}/foo’
-
-‘~N’
- The string that would be displayed by ‘dirs +N’.
-
-‘~+N’
- The string that would be displayed by ‘dirs +N’.
-
-‘~-N’
- The string that would be displayed by ‘dirs -N’.
-
- Bash also performs tilde expansion on words satisfying the conditions
-of variable assignments (*note Shell Parameters::) when they appear as
-arguments to simple commands. Bash does not do this, except for the
-declaration commands listed above, when in POSIX mode.
-
-\1f
-File: bash.info, Node: Shell Parameter Expansion, Next: Command Substitution, Prev: Tilde Expansion, Up: Shell Expansions
-
-3.5.3 Shell Parameter Expansion
--------------------------------
-
-The ‘$’ 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
-could be interpreted as part of the name. For example, if the first
-positional parameter has the value ‘a’, then ‘${11}’ expands to the
-value of the eleventh positional parameter, while ‘$11’ expands to ‘a1’.
-
- When braces are used, the matching ending brace is the first ‘}’ not
-escaped by a backslash or within a quoted string, and not within an
-embedded arithmetic expansion, command substitution, or parameter
-expansion.
-
- The basic form of parameter expansion is ${PARAMETER}, which
-substitutes the value of PARAMETER. The PARAMETER is a shell parameter
-as described above (*note Shell Parameters::) or an array reference
-(*note Arrays::). The braces are required when PARAMETER is a
-positional parameter with more than one digit, or when PARAMETER is
-followed by a character that is not to be interpreted as part of its
-name.
-
- If the first character of PARAMETER is an exclamation point (!), and
-PARAMETER is not a nameref, it introduces a level of indirection. Bash
-uses the value formed by expanding the rest of PARAMETER as the new
-PARAMETER; this new parameter is then expanded and that value is used in
-the rest of the expansion, rather than the expansion of the original
-PARAMETER. This is known as ‘indirect expansion’. The value is subject
-to tilde expansion, parameter expansion, command substitution, and
-arithmetic expansion. If PARAMETER is a nameref, this expands to the
-name of the variable referenced by PARAMETER instead of performing the
-complete indirect expansion, for compatibility. The exceptions to this
-are the expansions of ${!PREFIX*} and ${!NAME[@]} described below. The
-exclamation point must immediately follow the left brace in order to
-introduce indirection.
-
- In each of the cases below, WORD is subject to tilde expansion,
-parameter expansion, command substitution, and arithmetic expansion.
-
- When not performing substring expansion, using the forms described
-below (e.g., ‘:-’), Bash tests for a parameter that is unset or null.
-Omitting the colon results in a test only for a parameter that is unset.
-Put another way, if the colon is included, the operator tests for both
-PARAMETER's existence and that its value is not null; if the colon is
-omitted, the operator tests only for existence.
-
-‘${PARAMETER:−WORD}’
- If PARAMETER is unset or null, the expansion of WORD is
- substituted. Otherwise, the value of PARAMETER is substituted.
-
- $ v=123
- $ echo ${v-unset}
- 123
- $ echo ${v:-unset-or-null}
- 123
- $ unset v
- $ echo ${v-unset}
- unset
- $ v=
- $ echo ${v-unset}
-
- $ echo ${v:-unset-or-null}
- unset-or-null
-
-‘${PARAMETER:=WORD}’
- If PARAMETER is unset or null, the expansion of WORD is assigned to
- PARAMETER, and the result of the expansion is the final value of
- PARAMETER. Positional parameters and special parameters may not be
- assigned in this way.
-
- $ unset var
- $ : ${var=DEFAULT}
- $ echo $var
- DEFAULT
- $ var=
- $ : ${var=DEFAULT}
- $ echo $var
-
- $ var=
- $ : ${var:=DEFAULT}
- $ echo $var
- DEFAULT
- $ unset var
- $ : ${var:=DEFAULT}
- $ echo $var
- DEFAULT
-
-‘${PARAMETER:?WORD}’
- If PARAMETER is null or unset, the shell writes the expansion of
- WORD (or a message to that effect if WORD is not present) to the
- standard error and, if it is 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
- PARAMETER is substituted.
-
- $ var=
- $ : ${var:?var is unset or null}
- bash: var: var is unset or null
- $ echo ${var?var is unset}
-
- $ unset var
- $ : ${var?var is unset}
- bash: var: var is unset
- $ : ${var:?var is unset or null}
- bash: var: var is unset or null
- $ var=123
- $ echo ${var:?var is unset or null}
- 123
-
-‘${PARAMETER:+WORD}’
- If PARAMETER is null or unset, nothing is substituted, otherwise
- the expansion of WORD is substituted. The value of PARAMETER is
- not used.
-
- $ var=123
- $ echo ${var:+var is set and not null}
- var is set and not null
- $ echo ${var+var is set}
- var is set
- $ var=
- $ echo ${var:+var is set and not null}
-
- $ echo ${var+var is set}
- var is set
- $ unset var
- $ echo ${var+var is set}
-
- $ echo ${var:+var is set and not null}
-
- $
-
-‘${PARAMETER:OFFSET}’
-‘${PARAMETER:OFFSET:LENGTH}’
- This is referred to as Substring Expansion. It expands to up to
- LENGTH characters of the value of PARAMETER starting at the
- character specified by OFFSET. If PARAMETER is ‘@’ or ‘*’, an
- indexed array subscripted by ‘@’ or ‘*’, or an associative array
- name, the results differ as described below. If :LENGTH is omitted
- (the first form above), this expands to the substring of the value
- of PARAMETER starting at the character specified by OFFSET and
- extending to the end of the value. If OFFSET is omitted, it is
- treated as 0. If LENGTH is omitted, but the colon after OFFSET is
- present, it is treated as 0. LENGTH and OFFSET are arithmetic
- expressions (*note Shell Arithmetic::).
-
- If OFFSET evaluates to a number less than zero, the value is used
- as an offset in characters from the end of the value of PARAMETER.
- If LENGTH evaluates to a number less than zero, it is interpreted
- as an offset in characters from the end of the value of PARAMETER
- rather than a number of characters, and the expansion is the
- characters between OFFSET 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 ‘:-’ expansion.
-
- Here are some examples illustrating substring expansion on
- parameters and subscripted arrays:
-
- $ string=01234567890abcdefgh
- $ echo ${string:7}
- 7890abcdefgh
- $ echo ${string:7:0}
-
- $ echo ${string:7:2}
- 78
- $ echo ${string:7:-2}
- 7890abcdef
- $ echo ${string: -7}
- bcdefgh
- $ echo ${string: -7:0}
-
- $ echo ${string: -7:2}
- bc
- $ echo ${string: -7:-2}
- bcdef
- $ set -- 01234567890abcdefgh
- $ echo ${1:7}
- 7890abcdefgh
- $ echo ${1:7:0}
-
- $ echo ${1:7:2}
- 78
- $ echo ${1:7:-2}
- 7890abcdef
- $ echo ${1: -7}
- bcdefgh
- $ echo ${1: -7:0}
-
- $ echo ${1: -7:2}
- bc
- $ echo ${1: -7:-2}
- bcdef
- $ array[0]=01234567890abcdefgh
- $ echo ${array[0]:7}
- 7890abcdefgh
- $ echo ${array[0]:7:0}
-
- $ echo ${array[0]:7:2}
- 78
- $ echo ${array[0]:7:-2}
- 7890abcdef
- $ echo ${array[0]: -7}
- bcdefgh
- $ echo ${array[0]: -7:0}
-
- $ echo ${array[0]: -7:2}
- bc
- $ echo ${array[0]: -7:-2}
- bcdef
-
- If PARAMETER is ‘@’ or ‘*’, the result is LENGTH positional
- parameters beginning at OFFSET. A negative OFFSET 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 if
- LENGTH evaluates to a number less than zero.
-
- The following examples illustrate substring expansion using
- positional parameters:
-
- $ set -- 1 2 3 4 5 6 7 8 9 0 a b c d e f g h
- $ echo ${@:7}
- 7 8 9 0 a b c d e f g h
- $ echo ${@:7:0}
-
- $ echo ${@:7:2}
- 7 8
- $ echo ${@:7:-2}
- bash: -2: substring expression < 0
- $ echo ${@: -7:2}
- b c
- $ echo ${@:0}
- ./bash 1 2 3 4 5 6 7 8 9 0 a b c d e f g h
- $ echo ${@:0:2}
- ./bash 1
- $ echo ${@: -7:0}
-
-
- If PARAMETER is an indexed array name subscripted by ‘@’ or ‘*’,
- the result is the LENGTH members of the array beginning with
- ‘${PARAMETER[OFFSET]}’. A negative OFFSET is taken relative to one
- greater than the maximum index of the specified array. It is an
- expansion error if LENGTH evaluates to a number less than zero.
-
- These examples show how you can use substring expansion with
- indexed arrays:
-
- $ array=(0 1 2 3 4 5 6 7 8 9 0 a b c d e f g h)
- $ echo ${array[@]:7}
- 7 8 9 0 a b c d e f g h
- $ echo ${array[@]:7:2}
- 7 8
- $ echo ${array[@]: -7:2}
- b c
- $ echo ${array[@]: -7:-2}
- bash: -2: substring expression < 0
- $ echo ${array[@]:0}
- 0 1 2 3 4 5 6 7 8 9 0 a b c d e f g h
- $ echo ${array[@]:0:2}
- 0 1
- $ echo ${array[@]: -7:0}
-
-
- Substring expansion applied to an associative array produces
- undefined results.
-
- Substring indexing is zero-based unless the positional parameters
- are used, in which case the indexing starts at 1 by default. If
- OFFSET is 0, and the positional parameters are used, ‘$0’ is
- prefixed to the list.
-
-‘${!PREFIX*}’
-‘${!PREFIX@}’
- Expands to the names of variables whose names begin with PREFIX,
- separated by the first character of the ‘IFS’ special variable.
- When ‘@’ is used and the expansion appears within double quotes,
- each variable name expands to a separate word.
-
-‘${!NAME[@]}’
-‘${!NAME[*]}’
- If NAME is an array variable, expands to the list of array indices
- (keys) assigned in NAME. If NAME is not an array, expands to 0 if
- NAME is set and null otherwise. When ‘@’ is used and the expansion
- appears within double quotes, each key expands to a separate word.
-
-‘${#PARAMETER}’
- Substitutes the length in characters of the value of PARAMETER. If
- PARAMETER is ‘*’ or ‘@’, the value substituted is the number of
- positional parameters. If PARAMETER is an array name subscripted
- by ‘*’ or ‘@’, the value substituted is the number of elements in
- the array. If PARAMETER is an indexed array name subscripted by a
- negative number, that number is interpreted as relative to one
- greater than the maximum index of PARAMETER, so negative indices
- count back from the end of the array, and an index of -1 references
- the last element.
-
-‘${PARAMETER#WORD}’
-‘${PARAMETER##WORD}’
- The WORD is expanded to produce a pattern and matched against the
- expanded value of PARAMETER according to the rules described below
- (*note Pattern Matching::). If the pattern matches the beginning
- of the expanded value of PARAMETER, then the result of the
- expansion is the expanded value of PARAMETER with the shortest
- matching pattern (the ‘#’ case) or the longest matching pattern
- (the ‘##’ case) deleted. If PARAMETER is ‘@’ or ‘*’, the pattern
- removal operation is applied to each positional parameter in turn,
- and the expansion is the resultant list. If PARAMETER is an array
- variable subscripted with ‘@’ or ‘*’, the pattern removal operation
- is applied to each member of the array in turn, and the expansion
- is the resultant list.
-
-‘${PARAMETER%WORD}’
-‘${PARAMETER%%WORD}’
- The WORD is expanded to produce a pattern and matched against the
- expanded value of PARAMETER according to the rules described below
- (*note Pattern Matching::). If the pattern matches a trailing
- portion of the expanded value of PARAMETER, then the result of the
- expansion is the value of PARAMETER with the shortest matching
- pattern (the ‘%’ case) or the longest matching pattern (the ‘%%’
- case) deleted. If PARAMETER is ‘@’ or ‘*’, the pattern removal
- operation is applied to each positional parameter in turn, and the
- expansion is the resultant list. If PARAMETER is an array variable
- subscripted with ‘@’ or ‘*’, the pattern removal operation is
- applied to each member of the array in turn, and the expansion is
- the resultant list.
-
-‘${PARAMETER/PATTERN/STRING}’
-‘${PARAMETER//PATTERN/STRING}’
-‘${PARAMETER/#PATTERN/STRING}’
-‘${PARAMETER/%PATTERN/STRING}’
- 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
- form above), all matches of PATTERN are replaced with STRING. If
- PATTERN is preceded by ‘#’ (the third form above), it must match at
- the beginning of the expanded value of PARAMETER. If PATTERN is
- preceded by ‘%’ (the fourth form above), it must match at the end
- of the expanded value of PARAMETER.
-
- If the expansion of STRING is null, matches of PATTERN are deleted
- and the ‘/’ following PATTERN may be omitted.
-
- If the ‘patsub_replacement’ shell option is enabled using ‘shopt’
- (*note The Shopt Builtin::), any unquoted instances of ‘&’ in
- STRING are replaced with the matching portion of PATTERN. This is
- intended to duplicate a common ‘sed’ idiom.
-
- Quoting any part of STRING inhibits replacement in the expansion of
- the quoted portion, including replacement strings stored in shell
- variables. Backslash escapes ‘&’ in STRING; the backslash is
- removed in order to permit a literal ‘&’ in the replacement string.
- Users should take care if STRING is double-quoted to avoid unwanted
- interactions between the backslash and double-quoting, since
- backslash has special meaning within double quotes. Pattern
- substitution performs the check for unquoted ‘&’ after expanding
- STRING, so users should ensure to properly quote any occurrences of
- ‘&’ they want to be taken literally in the replacement and ensure
- any instances of ‘&’ they want to be replaced are unquoted.
-
- For instance,
-
- var=abcdef
- rep='& '
- echo ${var/abc/& }
- echo "${var/abc/& }"
- echo ${var/abc/$rep}
- echo "${var/abc/$rep}"
-
- will display four lines of "abc def", while
-
- var=abcdef
- rep='& '
- echo ${var/abc/\& }
- echo "${var/abc/\& }"
- echo ${var/abc/"& "}
- echo ${var/abc/"$rep"}
-
- will display four lines of "& def". Like the pattern removal
- operators, double quotes surrounding the replacement string quote
- the expanded characters, while double quotes enclosing the entire
- parameter substitution do not, since the expansion is performed in
- a context that doesn't take any enclosing double quotes into
- account.
-
- Since backslash can escape ‘&’, it can also escape a backslash in
- the replacement string. This means that ‘\\’ will insert a literal
- backslash into the replacement, so these two ‘echo’ commands
-
- var=abcdef
- rep='\\&xyz'
- echo ${var/abc/\\&xyz}
- echo ${var/abc/$rep}
-
- will both output ‘\abcxyzdef’.
-
- It should rarely be necessary to enclose only STRING in double
- quotes.
-
- If the ‘nocasematch’ shell option (see the description of ‘shopt’
- in *note The Shopt Builtin::) is enabled, the match is performed
- without regard to the case of alphabetic characters.
-
- If PARAMETER is ‘@’ or ‘*’, the substitution operation is applied
- to each positional parameter in turn, and the expansion is the
- resultant list. If PARAMETER is an array variable subscripted with
- ‘@’ or ‘*’, the substitution operation is applied to each member of
- the array in turn, and the expansion is the resultant list.
-
-‘${PARAMETER^PATTERN}’
-‘${PARAMETER^^PATTERN}’
-‘${PARAMETER,PATTERN}’
-‘${PARAMETER,,PATTERN}’
- This expansion modifies the case of alphabetic characters in
- 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.
-
- 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
- the resultant list. If PARAMETER is an array variable subscripted
- with ‘@’ or ‘*’, the case modification operation is applied to each
- member of the array in turn, and the expansion is the resultant
- list.
-
-‘${PARAMETER@OPERATOR}’
- The expansion is either a transformation of the value of PARAMETER
- or information about PARAMETER itself, depending on the value of
- OPERATOR. Each OPERATOR is a single letter:
-
- ‘U’
- The expansion is a string that is the value of PARAMETER with
- lowercase alphabetic characters converted to uppercase.
- ‘u’
- The expansion is a string that is the value of PARAMETER with
- the first character converted to uppercase, if it is
- alphabetic.
- ‘L’
- The expansion is a string that is the value of PARAMETER with
- uppercase alphabetic characters converted to lowercase.
- ‘Q’
- The expansion is a string that is the value of PARAMETER
- quoted in a format that can be reused as input.
- ‘E’
- The expansion is a string that is the value of PARAMETER with
- backslash escape sequences expanded as with the ‘$'...'’
- quoting mechanism.
- ‘P’
- The expansion is a string that is the result of expanding the
- value of PARAMETER as if it were a prompt string (*note
- Controlling the Prompt::).
- ‘A’
- The expansion is a string in the form of an assignment
- statement or ‘declare’ command that, if evaluated, recreates
- PARAMETER with its attributes and value.
- ‘K’
- Produces a possibly-quoted version of the value of PARAMETER,
- except that it prints the values of indexed and associative
- arrays as a sequence of quoted key-value pairs (*note
- Arrays::). The keys and values are quoted in a format that
- can be reused as input.
- ‘a’
- The expansion is a string consisting of flag values
- representing PARAMETER's attributes.
- ‘k’
- Like the ‘K’ transformation, but expands the keys and values
- of indexed and associative arrays to separate words after word
- splitting.
-
- If PARAMETER is ‘@’ or ‘*’, the operation is applied to each
- positional parameter in turn, and the expansion is the resultant
- list. If PARAMETER is an array variable subscripted with ‘@’ or
- ‘*’, the operation is applied to each member of the array in turn,
- and the expansion is the resultant list.
-
- The result of the expansion is subject to word splitting and
- filename expansion as described below.
-
-\1f
-File: bash.info, Node: Command Substitution, Next: Arithmetic Expansion, Prev: Shell Parameter Expansion, Up: Shell Expansions
-
-3.5.4 Command Substitution
---------------------------
-
-Command substitution allows the output of a command to replace the
-command itself. The standard form of command substitution occurs when a
-command is enclosed as follows:
- $(COMMAND)
-or (deprecated)
- `COMMAND`.
-
-Bash performs command substitution by executing COMMAND in a subshell
-environment and replacing the command substitution with the standard
-output of the command, with any trailing newlines deleted. Embedded
-newlines are not deleted, but they may be removed during word splitting.
-The command substitution ‘$(cat FILE)’ can be replaced by the equivalent
-but faster ‘$(< FILE)’.
-
- With the old-style backquote form of substitution, backslash retains
-its literal meaning except when followed by ‘$’, ‘`’, or ‘\’. The first
-backquote not preceded by a backslash terminates the command
-substitution. When using the ‘$(COMMAND)’ form, all characters between
-the parentheses make up the command; none are treated specially.
-
- There is an alternate form of command substitution:
-
- ${C COMMAND; }
-
-which executes COMMAND in the current execution environment and captures
-its output, again with trailing newlines removed.
-
- The character C following the open brace must be a space, tab,
-newline, or ‘|’, and the close brace must be in a position where a
-reserved word may appear (i.e., preceded by a command terminator such as
-semicolon). Bash allows the close brace to be joined to the remaining
-characters in the word without being followed by a shell metacharacter
-as a reserved word would usually require.
-
- Any side effects of COMMAND take effect immediately in the current
-execution environment and persist in the current environment after the
-command completes (e.g., the ‘exit’ builtin exits the shell).
-
- This type of command substitution superficially resembles executing
-an unnamed shell function: local variables are created as when a shell
-function is executing, and the ‘return’ builtin forces COMMAND to
-complete; however, the rest of the execution environment, including the
-positional parameters, is shared with the caller.
-
- If the first character following the open brace is a ‘|’, the
-construct expands to the value of the ‘REPLY’ shell variable after
-COMMAND executes, without removing any trailing newlines, and the
-standard output of COMMAND remains the same as in the calling shell.
-Bash creates ‘REPLY’ as an initially-unset local variable when COMMAND
-executes, and restores ‘REPLY’ to the value it had before the command
-substitution after COMMAND completes, as with any local variable.
-
- For example, this construct expands to ‘12345’, and leaves the shell
-variable ‘X’ unchanged in the current execution environment:
-
-
- ${ local X=12345 ; echo $X; }
-
-(not declaring ‘X’ as local would modify its value in the current
-environment, as with normal shell function execution), while this
-construct does not require any output to expand to ‘12345’:
-
- ${| REPLY=12345; }
-
-and restores ‘REPLY’ to the value it had before the command
-substitution.
-
- Command substitutions may be nested. To nest when using the
-backquoted form, escape the inner backquotes with backslashes.
-
- If the substitution appears within double quotes, Bash does not
-perform word splitting and filename expansion on the results.
-
-\1f
-File: bash.info, Node: Arithmetic Expansion, Next: Process Substitution, Prev: Command Substitution, Up: Shell Expansions
-
-3.5.5 Arithmetic Expansion
---------------------------
-
-Arithmetic expansion evaluates an arithmetic expression and substitutes
-the result. The format for arithmetic expansion is:
-
- $(( EXPRESSION ))
-
- The EXPRESSION undergoes the same expansions as if it were within
-double quotes, but unescaped double quote characters in EXPRESSION are
-not treated specially and are removed. All tokens in the expression
-undergo parameter and variable expansion, command substitution, and
-quote removal. The result is treated as the arithmetic expression to be
-evaluated. Since the way Bash handles double quotes can potentially
-result in empty strings, arithmetic expansion treats those as
-expressions that evaluate to 0. Arithmetic expansions may be nested.
-
- The evaluation is performed according to the rules listed below
-(*note Shell Arithmetic::). If the expression is invalid, Bash prints a
-message indicating failure to the standard error, does not perform the
-substitution, and does not execute the command associated with the
-expansion.
-
-\1f
-File: bash.info, Node: Process Substitution, Next: Word Splitting, Prev: Arithmetic Expansion, Up: Shell Expansions
-
-3.5.6 Process Substitution
---------------------------
-
-Process substitution allows a process's input or output to be referred
-to using a filename. It takes the form of
- <(LIST)
-or
- >(LIST)
-The process LIST is run asynchronously, and its input or output appears
-as a filename. This filename is passed as an argument to the current
-command as the result of the expansion.
-
- If the ‘>(LIST)’ form is used, writing to the file provides input for
-LIST. If the ‘<(LIST)’ form is used, reading the file obtains the
-output of LIST. Note that no space may appear between the ‘<’ or ‘>’
-and the left parenthesis, otherwise the construct would be interpreted
-as a redirection.
-
- Process substitution is supported on systems that support named pipes
-(FIFOs) or the ‘/dev/fd’ method of naming open files.
-
- When available, process substitution is performed simultaneously with
-parameter and variable expansion, command substitution, and arithmetic
-expansion.
-
-\1f
-File: bash.info, Node: Word Splitting, Next: Filename Expansion, Prev: Process Substitution, Up: Shell Expansions
-
-3.5.7 Word Splitting
---------------------
-
-The shell scans the results of parameter expansion, command
-substitution, and arithmetic expansion that did not occur within double
-quotes for word splitting. Words that were not expanded are not split.
-
- The shell treats each character of ‘$IFS’ as a delimiter, and splits
-the results of the other expansions into fields using these characters
-as field terminators.
-
- An “IFS whitespace” character is whitespace as defined above (*note
-Definitions::) that appears in the value of ‘IFS’. Space, tab, and
-newline are always considered IFS whitespace, even if they don't appear
-in the locale's ‘space’ category.
-
- If ‘IFS’ is unset, word splitting behaves as if its value were
-‘<space><tab><newline>’, and treats these characters as IFS whitespace.
-If the value of ‘IFS’ is null, no word splitting occurs, but implicit
-null arguments (see below) are still removed.
-
- Word splitting begins by removing sequences of IFS whitespace
-characters from the beginning and end of the results of the previous
-expansions, then splits the remaining words.
-
- If the value of ‘IFS’ consists solely of IFS whitespace, any sequence
-of IFS whitespace characters delimits a field, so a field consists of
-characters that are not unquoted IFS whitespace, and null fields result
-only from quoting.
-
- If ‘IFS’ contains a non-whitespace character, then any character in
-the value of ‘IFS’ that is not IFS whitespace, along with any adjacent
-IFS whitespace characters, delimits a field. This means that adjacent
-non-IFS-whitespace delimiters produce a null field. A sequence of IFS
-whitespace characters also delimits a field.
-
- Explicit null arguments (‘""’ or ‘''’) are retained and passed to
-commands as empty strings. Unquoted implicit null arguments, resulting
-from the expansion of parameters that have no values, are removed.
-Expanding a parameter with no value within double quotes produces a null
-field, which is retained and passed to a command as an empty string.
-
- When a quoted null argument appears as part of a word whose expansion
-is non-null, word splitting removes the null argument portion, leaving
-the non-null expansion. That is, the word ‘-d''’ becomes ‘-d’ after
-word splitting and null argument removal.
-
-\1f
-File: bash.info, Node: Filename Expansion, Next: Quote Removal, Prev: Word Splitting, Up: Shell Expansions
-
-3.5.8 Filename Expansion
-------------------------
-
-* Menu:
-
-* Pattern Matching:: How the shell matches patterns.
-
-After word splitting, unless the ‘-f’ option has been set (*note The Set
-Builtin::), Bash scans each word for the characters ‘*’, ‘?’, and ‘[’.
-If one of these characters appears, and is not quoted, then the word is
-regarded as a PATTERN, and replaced with a sorted list of filenames
-matching the pattern (*note Pattern Matching::), subject to the value of
-the ‘GLOBSORT’ shell variable (*note Bash Variables::).
-
- If no matching filenames are found, and the shell option ‘nullglob’
-is disabled, the word is left unchanged. If the ‘nullglob’ option is
-set, and no matches are found, the word is removed. If the ‘failglob’
-shell option is set, and no matches are found, Bash prints an error
-message and does not execute the command. If the shell option
-‘nocaseglob’ is enabled, the match is performed without regard to the
-case of alphabetic characters.
-
- When a pattern is used for filename expansion, the character ‘.’ at
-the start of a filename or immediately following a slash must be matched
-explicitly, unless the shell option ‘dotglob’ is set. In order to match
-the filenames ‘.’ and ‘..’, the pattern must begin with ‘.’ (for
-example, ‘.?’), even if ‘dotglob’ is set. If the ‘globskipdots’ shell
-option is enabled, the filenames ‘.’ and ‘..’ never match, even if the
-pattern begins with a ‘.’. When not matching filenames, the ‘.’
-character is not treated specially.
-
- When matching a filename, the slash character must always be matched
-explicitly by a slash in the pattern, but in other matching contexts it
-can be matched by a special pattern character as described below (*note
-Pattern Matching::).
-
- See the description of ‘shopt’ in *note The Shopt Builtin::, for a
-description of the ‘nocaseglob’, ‘nullglob’, ‘globskipdots’, ‘failglob’,
-and ‘dotglob’ options.
-
- The ‘GLOBIGNORE’ shell variable may be used to restrict the set of
-file names matching a pattern. If ‘GLOBIGNORE’ is set, each matching
-file name that also matches one of the patterns in ‘GLOBIGNORE’ is
-removed from the list of matches. If the ‘nocaseglob’ option is set,
-the matching against the patterns in ‘GLOBIGNORE’ is performed without
-regard to case. The filenames ‘.’ and ‘..’ are always ignored when
-‘GLOBIGNORE’ is set and not null. However, setting ‘GLOBIGNORE’ to a
-non-null value has the effect of enabling the ‘dotglob’ shell option, so
-all other filenames beginning with a ‘.’ match. To get the old behavior
-of ignoring filenames beginning with a ‘.’, make ‘.*’ one of the
-patterns in ‘GLOBIGNORE’. The ‘dotglob’ option is disabled when
-‘GLOBIGNORE’ is unset. The ‘GLOBIGNORE’ pattern matching honors the
-setting of the ‘extglob’ shell option.
-
- The value of the ‘GLOBSORT’ shell variable controls how the results
-of pathname expansion are sorted, as described below (*note Bash
-Variables::).
-
-\1f
-File: bash.info, Node: Pattern Matching, Up: Filename Expansion
-
-3.5.8.1 Pattern Matching
-........................
-
-Any character that appears in a pattern, other than the special pattern
-characters described below, matches itself. The NUL character may not
-occur in a pattern. A backslash escapes the following character; the
-escaping backslash is discarded when matching. The special pattern
-characters must be quoted if they are to be matched literally.
-
- The special pattern characters have the following meanings:
-‘*’
- Matches any string, including the null string. When the ‘globstar’
- shell option is enabled, and ‘*’ is used in a filename expansion
- context, two adjacent ‘*’s used as a single pattern match all files
- and zero or more directories and subdirectories. If followed by a
- ‘/’, two adjacent ‘*’s match only directories and subdirectories.
-‘?’
- Matches any single character.
-‘[...]’
- Matches any one of the characters enclosed between the brackets.
- This is known as a “bracket expression” and matches a single
- character. A pair of characters separated by a hyphen denotes a
- “range expression”; any character that falls between those two
- characters, inclusive, using the current locale's collating
- sequence and character set, matches. If the first character
- following the ‘[’ is a ‘!’ or a ‘^’ then any character not within
- the range matches. To match a ‘−’, include it as the first or last
- character in the set. To match a ‘]’, include it as the first
- character in the set.
-
- The sorting order of characters in range expressions, and the
- characters included in the range, are determined by the current
- locale and the values of the ‘LC_COLLATE’ and ‘LC_ALL’ shell
- variables, if set.
-
- For example, in the default C locale, ‘[a-dx-z]’ is equivalent to
- ‘[abcdxyz]’. Many locales sort characters in dictionary order, and
- in these locales ‘[a-dx-z]’ is typically not equivalent to
- ‘[abcdxyz]’; it might be equivalent to ‘[aBbCcDdxYyZz]’, for
- example. To obtain the traditional interpretation of ranges in
- bracket expressions, you can force the use of the C locale by
- setting the ‘LC_COLLATE’ or ‘LC_ALL’ environment variable to the
- value ‘C’, or enable the ‘globasciiranges’ shell option.
-
- Within a bracket expression, “character classes” can be specified
- using the syntax ‘[:’CLASS‘:]’, where CLASS is one of the following
- classes defined in the POSIX standard:
- alnum alpha ascii blank cntrl digit graph lower
- print punct space upper word xdigit
- A character class matches any character belonging to that class.
- The ‘word’ character class matches letters, digits, and the
- character ‘_’.
-
- For instance, the following pattern will match any character
- belonging to the ‘space’ character class in the current locale,
- then any upper case letter or ‘!’, a dot, and finally any lower
- case letter or a hyphen.
-
- [[:space:]][[:upper:]!].[-[:lower:]]
-
- Within a bracket expression, an “equivalence class” can be
- specified using the syntax ‘[=’C‘=]’, which matches all characters
- with the same collation weight (as defined by the current locale)
- as the character C.
-
- Within a bracket expression, the syntax ‘[.’SYMBOL‘.]’ matches the
- collating symbol SYMBOL.
-
- If the ‘extglob’ shell option is enabled using the ‘shopt’ builtin,
-the shell recognizes several extended pattern matching operators. In
-the following description, a PATTERN-LIST is a list of one or more
-patterns separated by a ‘|’. When matching filenames, the ‘dotglob’
-shell option determines the set of filenames that are tested, as
-described above. Composite patterns may be formed using one or more of
-the following sub-patterns:
-
-‘?(PATTERN-LIST)’
- Matches zero or one occurrence of the given patterns.
-
-‘*(PATTERN-LIST)’
- Matches zero or more occurrences of the given patterns.
-
-‘+(PATTERN-LIST)’
- Matches one or more occurrences of the given patterns.
-
-‘@(PATTERN-LIST)’
- Matches one of the given patterns.
-
-‘!(PATTERN-LIST)’
- Matches anything except one of the given patterns.
-
- The ‘extglob’ option changes the behavior of the parser, since the
-parentheses are normally treated as operators with syntactic meaning.
-To ensure that extended matching patterns are parsed correctly, make
-sure that ‘extglob’ is enabled before parsing constructs containing the
-patterns, including shell functions and command substitutions.
-
- When matching filenames, the ‘dotglob’ shell option determines the
-set of filenames that are tested: when ‘dotglob’ is enabled, the set of
-filenames includes all files beginning with ‘.’, but the filenames ‘.’
-and ‘..’ must be matched by a pattern or sub-pattern that begins with a
-dot; when it is disabled, the set does not include any filenames
-beginning with ‘.’ unless the pattern or sub-pattern begins with a ‘.’.
-If the ‘globskipdots’ shell option is enabled, the filenames ‘.’ and
-‘..’ never appear in the set. As above, ‘.’ only has a special meaning
-when matching filenames.
-
- Complicated extended pattern matching against long strings is slow,
-especially when the patterns contain alternations and the strings
-contain multiple matches. Using separate matches against shorter
-strings, or using arrays of strings instead of a single long string, may
-be faster.
-
-\1f
-File: bash.info, Node: Quote Removal, Prev: Filename Expansion, Up: Shell Expansions
-
-3.5.9 Quote Removal
--------------------
-
-After the preceding expansions, all unquoted occurrences of the
-characters ‘\’, ‘'’, and ‘"’ that did not result from one of the above
-expansions are removed.
-
-\1f
-File: bash.info, Node: Redirections, Next: Executing Commands, Prev: Shell Expansions, Up: Basic Shell Features
-
-3.6 Redirections
-================
-
-Before a command is executed, its input and output may be “redirected”
-using a special notation interpreted by the shell. “Redirection” allows
-commands' file handles to be duplicated, opened, closed, made to refer
-to different files, and can change the files the command reads from and
-writes to. When used with the ‘exec’ builtin, redirections modify file
-handles in the current shell execution environment. The following
-redirection operators may precede or appear anywhere within a simple
-command or may follow a command. Redirections are processed in the
-order they appear, from left to right.
-
- Each redirection that may be preceded by a file descriptor number may
-instead be preceded by a word of the form {VARNAME}. In this case, for
-each redirection operator except ‘>&-’ and ‘<&-’, the shell allocates a
-file descriptor greater than or equal to 10 and assigns it to {VARNAME}.
-If {VARNAME} precedes ‘>&-’ or ‘<&-’, the value of VARNAME defines the
-file descriptor to close. If {VARNAME} is supplied, the redirection
-persists beyond the scope of the command, which allows the shell
-programmer to manage the file descriptor's lifetime manually without
-using the ‘exec’ builtin. The ‘varredir_close’ shell option manages
-this behavior (*note The Shopt Builtin::).
-
- In the following descriptions, if the file descriptor number is
-omitted, and the first character of the redirection operator is ‘<’, the
-redirection refers to the standard input (file descriptor 0). If the
-first character of the redirection operator is ‘>’, the redirection
-refers to the standard output (file descriptor 1).
-
- The WORD following the redirection operator in the following
-descriptions, unless otherwise noted, is subjected to brace expansion,
-tilde expansion, parameter and variable expansion, command substitution,
-arithmetic expansion, quote removal, filename expansion, and word
-splitting. If it expands to more than one word, Bash reports an error.
-
- The order of redirections is significant. For example, the command
- ls > DIRLIST 2>&1
-directs both standard output (file descriptor 1) and standard error
-(file descriptor 2) to the file DIRLIST, while the command
- ls 2>&1 > DIRLIST
-directs only the standard output to file DIRLIST, because the standard
-error was made a copy of the standard output before the standard output
-was redirected to DIRLIST.
-
- Bash handles several filenames specially when they are used in
-redirections, as described in the following table. If the operating
-system on which Bash is running provides these special files, Bash uses
-them; otherwise it emulates them internally with the behavior described
-below.
-
-‘/dev/fd/FD’
- If FD is a valid integer, duplicate file descriptor FD.
-
-‘/dev/stdin’
- File descriptor 0 is duplicated.
-
-‘/dev/stdout’
- File descriptor 1 is duplicated.
-
-‘/dev/stderr’
- File descriptor 2 is duplicated.
-
-‘/dev/tcp/HOST/PORT’
- If HOST is a valid hostname or Internet address, and PORT is an
- integer port number or service name, Bash attempts to open the
- corresponding TCP socket.
-
-‘/dev/udp/HOST/PORT’
- If HOST is a valid hostname or Internet address, and PORT is an
- integer port number or service name, Bash attempts to open the
- corresponding UDP socket.
-
- A failure to open or create a file causes the redirection to fail.
-
- Redirections using file descriptors greater than 9 should be used
-with care, as they may conflict with file descriptors the shell uses
-internally.
-
-3.6.1 Redirecting Input
------------------------
-
-Redirecting input opens the file whose name results from the expansion
-of WORD for reading on file descriptor ‘n’, or the standard input (file
-descriptor 0) if ‘n’ is not specified.
-
- The general format for redirecting input is:
- [N]<WORD
-
-3.6.2 Redirecting Output
-------------------------
-
-Redirecting output opens the file whose name results from the expansion
-of WORD for writing on file descriptor N, or the standard output (file
-descriptor 1) if N is not specified. If the file does not exist it is
-created; if it does exist it is truncated to zero size.
-
- The general format for redirecting output is:
- [N]>[|]WORD
-
- If the redirection operator is ‘>’, and the ‘noclobber’ option to the
-‘set’ builtin command has been enabled, the redirection fails if the
-file whose name results from the expansion of WORD exists and is a
-regular file. If the redirection operator is ‘>|’, or the redirection
-operator is ‘>’ and the ‘noclobber’ option to the ‘set’ builtin is not
-enabled, Bash attempts the redirection even if the file named by WORD
-exists.
-
-3.6.3 Appending Redirected Output
----------------------------------
-
-Redirecting output in this fashion opens the file whose name results
-from the expansion of WORD for appending on file descriptor N, or the
-standard output (file descriptor 1) if N is not specified. If the file
-does not exist it is created.
-
- The general format for appending output is:
- [N]>>WORD
-
-3.6.4 Redirecting Standard Output and Standard Error
-----------------------------------------------------
-
-This construct redirects both the standard output (file descriptor 1)
-and the standard error output (file descriptor 2) to the file whose name
-is the expansion of WORD.
-
- There are two formats for redirecting standard output and standard
-error:
- &>WORD
-and
- >&WORD
-Of the two forms, the first is preferred. This is semantically
-equivalent to
- >WORD 2>&1
- When using the second form, WORD may not expand to a number or ‘-’.
-If it does, other redirection operators apply (see Duplicating File
-Descriptors below) for compatibility reasons.
-
-3.6.5 Appending Standard Output and Standard Error
---------------------------------------------------
-
-This construct appends both the standard output (file descriptor 1) and
-the standard error output (file descriptor 2) to the file whose name is
-the expansion of WORD.
-
- The format for appending standard output and standard error is:
- &>>WORD
-This is semantically equivalent to
- >>WORD 2>&1
- (see Duplicating File Descriptors below).
-
-3.6.6 Here Documents
---------------------
-
-This type of redirection instructs the shell to read input from the
-current source until it reads a line containing only DELIMITER (with no
-trailing blanks). All of the lines read up to that point then become
-the standard input (or file descriptor N if N is specified) for a
-command.
-
- The format of here-documents is:
- [N]<<[−]WORD
- HERE-DOCUMENT
- DELIMITER
-
- The shell does not perform parameter and variable expansion, command
-substitution, arithmetic expansion, or filename expansion on WORD.
-
- If any part of WORD is quoted, the DELIMITER is the result of quote
-removal on WORD, and the lines in the here-document are not expanded.
-If WORD is unquoted, DELIMITER is WORD itself, and the here-document
-text is treated similarly to a double-quoted string: all lines of the
-here-document are subjected to parameter expansion, command
-substitution, and arithmetic expansion, the character sequence
-‘\newline’ is treated literally, and ‘\’ must be used to quote the
-characters ‘\’, ‘$’, and ‘`’; however, double quote characters have no
-special meaning.
-
- If the redirection operator is ‘<<-’, the shell strips leading tab
-characters from input lines and the line containing DELIMITER. This
-allows here-documents within shell scripts to be indented in a natural
-fashion.
-
- If the delimiter is not quoted, the shell treats the ‘\<newline>’
-sequence as a line continuation: the two lines are joined and the
-backslash-newline is removed. This happens while reading the
-here-document, before the check for the ending delimiter, so joined
-lines can form the end delimiter.
-
-3.6.7 Here Strings
-------------------
-
-A variant of here documents, the format is:
- [N]<<< WORD
-
- The WORD undergoes tilde expansion, parameter and variable expansion,
-command substitution, arithmetic expansion, and quote removal. Filename
-expansion and word splitting are not performed. The result is supplied
-as a single string, with a newline appended, to the command on its
-standard input (or file descriptor N if N is specified).
-
-3.6.8 Duplicating File Descriptors
-----------------------------------
-
-The redirection operator
- [N]<&WORD
-is used to duplicate input file descriptors. If WORD expands to one or
-more digits, file descriptor N is made to be a copy of that file
-descriptor. It is a redirection error if the digits in WORD do not
-specify a file descriptor open for input. If WORD evaluates to ‘-’,
-file descriptor N is closed. If N is not specified, this uses the
-standard input (file descriptor 0).
-
- The operator
- [N]>&WORD
-is used similarly to duplicate output file descriptors. If N is not
-specified, this uses the standard output (file descriptor 1). It is a
-redirection error if the digits in WORD do not specify a file descriptor
-open for output. If WORD evaluates to ‘-’, file descriptor N is closed.
-As a special case, if N is omitted, and WORD does not expand to one or
-more digits or ‘-’, this redirects the standard output and standard
-error as described previously.
-
-3.6.9 Moving File Descriptors
------------------------------
-
-The redirection operator
- [N]<&DIGIT-
-moves the file descriptor DIGIT to file descriptor N, or the standard
-input (file descriptor 0) if N is not specified. DIGIT is closed after
-being duplicated to N.
-
- Similarly, the redirection operator
- [N]>&DIGIT-
-moves the file descriptor DIGIT to file descriptor N, or the standard
-output (file descriptor 1) if N is not specified.
-
-3.6.10 Opening File Descriptors for Reading and Writing
--------------------------------------------------------
-
-The redirection operator
- [N]<>WORD
-opens the file whose name is the expansion of WORD for both reading and
-writing on file descriptor N, or on file descriptor 0 if N is not
-specified. If the file does not exist, it is created.
-
-\1f
-File: bash.info, Node: Executing Commands, Next: Shell Scripts, Prev: Redirections, Up: Basic Shell Features
-
-3.7 Executing Commands
-======================
-
-* Menu:
-
-* Simple Command Expansion:: How Bash expands simple commands before
- executing them.
-* Command Search and Execution:: How Bash finds commands and runs them.
-* Command Execution Environment:: The environment in which Bash
- executes commands that are not
- shell builtins.
-* Environment:: The environment given to a command.
-* Exit Status:: The status returned by commands and how Bash
- interprets it.
-* Signals:: What happens when Bash or a command it runs
- receives a signal.
-
-\1f
-File: bash.info, Node: Simple Command Expansion, Next: Command Search and Execution, Up: Executing Commands
-
-3.7.1 Simple Command Expansion
-------------------------------
-
-When the shell executes a simple command, it performs the following
-expansions, assignments, and redirections, from left to right, in the
-following order.
-
- 1. The words that the parser has marked as variable assignments (those
- preceding the command name) and redirections are saved for later
- processing.
-
- 2. The words that are not variable assignments or redirections are
- expanded (*note Shell Expansions::). If any words remain after
- expansion, the first word is taken to be the name of the command
- and the remaining words are the arguments.
-
- 3. Redirections are performed as described above (*note
- Redirections::).
-
- 4. The text after the ‘=’ in each variable assignment undergoes tilde
- expansion, parameter expansion, command substitution, arithmetic
- expansion, and quote removal before being assigned to the variable.
-
- If no command name results, the variable assignments affect the
-current shell environment. In the case of such a command (one that
-consists only of assignment statements and redirections), assignment
-statements are performed before redirections. Otherwise, the variables
-are added to the environment of the executed command and do not affect
-the current shell environment. If any of the assignments attempts to
-assign a value to a readonly variable, an error occurs, and the command
-exits with a non-zero status.
-
- If no command name results, redirections are performed, but do not
-affect the current shell environment. A redirection error causes the
-command to exit with a non-zero status.
-
- If there is a command name left after expansion, execution proceeds
-as described below. Otherwise, the command exits. If one of the
-expansions contained a command substitution, the exit status of the
-command is the exit status of the last command substitution performed.
-If there were no command substitutions, the command exits with a zero
-status.
-
-\1f
-File: bash.info, Node: Command Search and Execution, Next: Command Execution Environment, Prev: Simple Command Expansion, Up: Executing Commands
-
-3.7.2 Command Search and Execution
-----------------------------------
-
-After a command has been split into words, if it results in a simple
-command and an optional list of arguments, the shell performs the
-following actions.
-
- 1. If the command name contains no slashes, the shell attempts to
- locate it. If there exists a shell function by that name, that
- function is invoked as described in *note Shell Functions::.
-
- 2. If the name does not match a function, the shell searches for it in
- the list of shell builtins. If a match is found, that builtin is
- invoked.
-
- 3. If the name is neither a shell function nor a builtin, and contains
- no slashes, Bash searches each element of ‘$PATH’ for a directory
- containing an executable file by that name. Bash uses a hash table
- to remember the full pathnames of executable files to avoid
- multiple ‘PATH’ searches (see the description of ‘hash’ in *note
- Bourne Shell Builtins::). Bash performs a full search of the
- directories in ‘$PATH’ only if the command is not found in the hash
- table. If the search is unsuccessful, the shell searches for a
- defined shell function named ‘command_not_found_handle’. If that
- function exists, it is invoked in a separate execution environment
- with the original command and the original command's arguments as
- its arguments, and the function's exit status becomes the exit
- status of that subshell. If that function is not defined, the
- shell prints an error message and returns an exit status of 127.
-
- 4. If the search is successful, or if the command name contains one or
- more slashes, the shell executes the named program in a separate
- execution environment. Argument 0 is set to the name given, and
- the remaining arguments to the command are set to the arguments
- supplied, if any.
-
- 5. If this execution fails because the file is not in executable
- format, and the file is not a directory, it is assumed to be a
- “shell script”, a file containing shell commands, and the shell
- executes it as described in *note Shell Scripts::.
-
- 6. If the command was not begun asynchronously, the shell waits for
- the command to complete and collects its exit status.
-
-\1f
-File: bash.info, Node: Command Execution Environment, Next: Environment, Prev: Command Search and Execution, Up: Executing Commands
-
-3.7.3 Command Execution Environment
------------------------------------
-
-The shell has an “execution environment”, which consists of the
-following:
-
- • Open files inherited by the shell at invocation, as modified by
- redirections supplied to the ‘exec’ builtin.
-
- • The current working directory as set by ‘cd’, ‘pushd’, or ‘popd’,
- or inherited by the shell at invocation.
-
- • The file creation mode mask as set by ‘umask’ or inherited from the
- shell's parent.
-
- • Current traps set by ‘trap’.
-
- • Shell parameters that are set by variable assignment or with ‘set’
- or inherited from the shell's parent in the environment.
-
- • Shell functions defined during execution or inherited from the
- shell's parent in the environment.
-
- • Options enabled at invocation (either by default or with
- command-line arguments) or by ‘set’.
-
- • Options enabled by ‘shopt’ (*note The Shopt Builtin::).
-
- • Shell aliases defined with ‘alias’ (*note Aliases::).
-
- • Various process IDs, including those of background jobs (*note
- Lists::), the value of ‘$$’, and the value of ‘$PPID’.
-
- When a simple command other than a builtin or shell function is to be
-executed, it is invoked in a separate execution environment that
-consists of the following. Unless otherwise noted, the values are
-inherited from the shell.
-
- • The shell's open files, plus any modifications and additions
- specified by redirections to the command.
-
- • The current working directory.
-
- • The file creation mode mask.
-
- • Shell variables and functions marked for export, along with
- variables exported for the command, passed in the environment
- (*note Environment::).
-
- • Traps caught by the shell are reset to the values inherited from
- the shell's parent, and traps ignored by the shell are ignored.
-
- A command invoked in this separate environment cannot affect the
-shell's execution environment.
-
- A “subshell” is a copy of the shell process.
-
- Command substitution, commands grouped with parentheses, and
-asynchronous commands are invoked in a subshell environment that is a
-duplicate of the shell environment, except that traps caught by the
-shell are reset to the values that the shell inherited from its parent
-at invocation. Builtin commands that are invoked as part of a pipeline,
-except possibly in the last element depending on the value of the
-‘lastpipe’ shell option (*note The Shopt Builtin::), are also executed
-in a subshell environment. Changes made to the subshell environment
-cannot affect the shell's execution environment.
-
- When the shell is in POSIX mode, subshells spawned to execute command
-substitutions inherit the value of the ‘-e’ option from the parent
-shell. When not in POSIX mode, Bash clears the ‘-e’ option in such
-subshells See the description of the ‘inherit_errexit’ shell option
-(*note Bash Builtins::) for how to control this behavior when not in
-POSIX mode.
-
- If a command is followed by a ‘&’ and job control is not active, the
-default standard input for the command is the empty file ‘/dev/null’.
-Otherwise, the invoked command inherits the file descriptors of the
-calling shell as modified by redirections.
-
-\1f
-File: bash.info, Node: Environment, Next: Exit Status, Prev: Command Execution Environment, Up: Executing Commands
-
-3.7.4 Environment
------------------
-
-When a program is invoked it is given an array of strings called the
-“environment”. This is a list of name-value pairs, of the form
-‘name=value’.
-
- Bash provides several ways to manipulate the environment. On
-invocation, the shell scans its own environment and creates a parameter
-for each name found, automatically marking it for ‘export’ to child
-processes. Executed commands inherit the environment. The ‘export’,
-‘declare -x’, and ‘unset’ commands modify the environment by adding and
-deleting parameters and functions. If the value of a parameter in the
-environment is modified, the new value automatically becomes part of the
-environment, replacing the old. The environment inherited by any
-executed command consists of the shell's initial environment, whose
-values may be modified in the shell, less any pairs removed by the
-‘unset’ and ‘export -n’ commands, plus any additions via the ‘export’
-and ‘declare -x’ commands.
-
- If any parameter assignment statements, as described in *note Shell
-Parameters::, appear before a simple command, the variable assignments
-are part of that command's environment for as long as it executes.
-These assignment statements affect only the environment seen by that
-command. If these assignments precede a call to a shell function, the
-variables are local to the function and exported to that function's
-children.
-
- If the ‘-k’ option is set (*note The Set Builtin::), then all
-parameter assignments are placed in the environment for a command, not
-just those that precede the command name.
-
- When Bash invokes an external command, the variable ‘$_’ is set to
-the full pathname of the command and passed to that command in its
-environment.
-
-\1f
-File: bash.info, Node: Exit Status, Next: Signals, Prev: Environment, Up: Executing Commands
-
-3.7.5 Exit Status
------------------
-
-The exit status of an executed command is the value returned by the
-‘waitpid’ system call or equivalent function. Exit statuses fall
-between 0 and 255, though, as explained below, the shell may use values
-above 125 specially. Exit statuses from shell builtins and compound
-commands are also limited to this range. Under certain circumstances,
-the shell will use special values to indicate specific failure modes.
-
- For the shell's purposes, a command which exits with a zero exit
-status has succeeded. So while an exit status of zero indicates
-success, a non-zero exit status indicates failure. This seemingly
-counter-intuitive scheme is used so there is one well-defined way to
-indicate success and a variety of ways to indicate various failure
-modes.
-
- When a command terminates on a fatal signal whose number is N, Bash
-uses the value 128+N as the exit status.
-
- If a command is not found, the child process created to execute it
-returns a status of 127. If a command is found but is not executable,
-the return status is 126.
-
- If a command fails because of an error during expansion or
-redirection, the exit status is greater than zero.
-
- The exit status is used by the Bash conditional commands (*note
-Conditional Constructs::) and some of the list constructs (*note
-Lists::).
-
- All of the Bash builtins return an exit status of zero if they
-succeed and a non-zero status on failure, so they may be used by the
-conditional and list constructs. All builtins return an exit status of
-2 to indicate incorrect usage, generally invalid options or missing
-arguments.
-
- The exit status of the last command is available in the special
-parameter $? (*note Special Parameters::).
-
- Bash itself returns the exit status of the last command executed,
-unless a syntax error occurs, in which case it exits with a non-zero
-value. See also the ‘exit’ builtin command (*note Bourne Shell
-Builtins::).
-
-\1f
-File: bash.info, Node: Signals, Prev: Exit Status, Up: Executing Commands
-
-3.7.6 Signals
--------------
-
-When Bash is interactive, in the absence of any traps, it ignores
-‘SIGTERM’ (so that ‘kill 0’ does not kill an interactive shell), and
-catches and handles ‘SIGINT’ (so that the ‘wait’ builtin is
-interruptible). When Bash receives a ‘SIGINT’, it breaks out of any
-executing loops. In all cases, Bash ignores ‘SIGQUIT’. If job control
-is in effect (*note Job Control::), Bash ignores ‘SIGTTIN’, ‘SIGTTOU’,
-and ‘SIGTSTP’.
-
- The ‘trap’ builtin modifies the shell's signal handling, as described
-below (*note Bourne Shell Builtins::).
-
- Non-builtin commands Bash executes have signal handlers set to the
-values inherited by the shell from its parent, unless ‘trap’ sets them
-to be ignored, in which case the child process will ignore them as well.
-When job control is not in effect, asynchronous commands ignore ‘SIGINT’
-and ‘SIGQUIT’ in addition to these inherited handlers. Commands run as
-a result of command substitution ignore the keyboard-generated job
-control signals ‘SIGTTIN’, ‘SIGTTOU’, and ‘SIGTSTP’.
-
- The shell exits by default upon receipt of a ‘SIGHUP’. Before
-exiting, an interactive shell resends the ‘SIGHUP’ to all jobs, running
-or stopped. The shell sends ‘SIGCONT’ to stopped jobs to ensure that
-they receive the ‘SIGHUP’ (*Note Job Control::, for more information
-about running and stopped jobs). To prevent the shell from sending the
-‘SIGHUP’ signal to a particular job, remove it from the jobs table with
-the ‘disown’ builtin (*note Job Control Builtins::) or mark it not to
-receive ‘SIGHUP’ using ‘disown -h’.
-
- If the ‘huponexit’ shell option has been set using ‘shopt’ (*note The
-Shopt Builtin::), Bash sends a ‘SIGHUP’ to all jobs when an interactive
-login shell exits.
-
- If Bash is waiting for a command to complete and receives a signal
-for which a trap has been set, it will not execute the trap until the
-command completes. If Bash is waiting for an asynchronous command via
-the ‘wait’ builtin, and it receives a signal for which a trap has been
-set, the ‘wait’ builtin will return immediately with an exit status
-greater than 128, immediately after which the shell executes the trap.
-
- When job control is not enabled, and Bash is waiting for a foreground
-command to complete, the shell receives keyboard-generated signals such
-as ‘SIGINT’ (usually generated by ‘^C’) that users commonly intend to
-send to that command. This happens because the shell and the command
-are in the same process group as the terminal, and ‘^C’ sends ‘SIGINT’
-to all processes in that process group. Since Bash does not enable job
-control by default when the shell is not interactive, this scenario is
-most common in non-interactive shells.
-
- When job control is enabled, and Bash is waiting for a foreground
-command to complete, the shell does not receive keyboard-generated
-signals, because it is not in the same process group as the terminal.
-This scenario is most common in interactive shells, where Bash attempts
-to enable job control by default. See *note Job Control::, for a more
-in-depth discussion of process groups.
-
- When job control is not enabled, and Bash receives ‘SIGINT’ while
-waiting for a foreground command, it waits until that foreground command
-terminates and then decides what to do about the ‘SIGINT’:
-
- 1. If the command terminates due to the ‘SIGINT’, Bash concludes that
- the user meant to send the ‘SIGINT’ to the shell as well, and acts
- on the ‘SIGINT’ (e.g., by running a ‘SIGINT’ trap, exiting a
- non-interactive shell, or returning to the top level to read a new
- command).
-
- 2. If the command does not terminate due to ‘SIGINT’, the program
- handled the ‘SIGINT’ itself and did not treat it as a fatal signal.
- In that case, Bash does not treat ‘SIGINT’ as a fatal signal,
- either, instead assuming that the ‘SIGINT’ was used as part of the
- program's normal operation (e.g., ‘emacs’ uses it to abort editing
- commands) or deliberately discarded. However, Bash will run any
- trap set on ‘SIGINT’, as it does with any other trapped signal it
- receives while it is waiting for the foreground command to
- complete, for compatibility.
-
- When job control is enabled, Bash does not receive keyboard-generated
-signals such as ‘SIGINT’ while it is waiting for a foreground command.
-An interactive shell does not pay attention to the ‘SIGINT’, even if the
-foreground command terminates as a result, other than noting its exit
-status. If the shell is not interactive, and the foreground command
-terminates due to the ‘SIGINT’, Bash pretends it received the ‘SIGINT’
-itself (scenario 1 above), for compatibility.
-
-\1f
-File: bash.info, Node: Shell Scripts, Prev: Executing Commands, Up: Basic Shell Features
-
-3.8 Shell Scripts
-=================
-
-A shell script is a text file containing shell commands. When such a
-file is used as the first non-option argument when invoking Bash, and
-neither the ‘-c’ nor ‘-s’ option is supplied (*note Invoking Bash::),
-Bash reads and executes commands from the file, then exits. This mode
-of operation creates a non-interactive shell. If the filename does not
-contain any slashes, the shell first searches for the file in the
-current directory, and looks in the directories in ‘$PATH’ if not found
-there.
-
- Bash tries to determine whether the file is a text file or a binary,
-and will not execute files it determines to be binaries.
-
- When Bash runs a shell script, it sets the special parameter ‘0’ to
-the name of the file, rather than the name of the shell, and the
-positional parameters are set to the remaining arguments, if any are
-given. If no additional arguments are supplied, the positional
-parameters are unset.
-
- A shell script may be made executable by using the ‘chmod’ command to
-turn on the execute bit. When Bash finds such a file while searching
-the ‘$PATH’ for a command, it creates a new instance of itself to
-execute it. In other words, executing
- filename ARGUMENTS
-is equivalent to executing
- bash filename ARGUMENTS
-
-if ‘filename’ is an executable shell script. This subshell
-reinitializes itself, so that the effect is as if a new shell had been
-invoked to interpret the script, with the exception that the locations
-of commands remembered by the parent (see the description of ‘hash’ in
-*note Bourne Shell Builtins::) are retained by the child.
-
- The GNU operating system, and most versions of Unix, make this a part
-of the operating system's command execution mechanism. If the first
-line of a script begins with the two characters ‘#!’, the remainder of
-the line specifies an interpreter for the program and, depending on the
-operating system, one or more optional arguments for that interpreter.
-Thus, you can specify Bash, ‘awk’, Perl, or some other interpreter and
-write the rest of the script file in that language.
-
- The arguments to the interpreter consist of one or more optional
-arguments following the interpreter name on the first line of the script
-file, followed by the name of the script file, followed by the rest of
-the arguments supplied to the script. The details of how the
-interpreter line is split into an interpreter name and a set of
-arguments vary across systems. Bash will perform this action on
-operating systems that do not handle it themselves. Note that some
-older versions of Unix limit the interpreter name and a single argument
-to a maximum of 32 characters, so it's not portable to assume that using
-more than one argument will work.
-
- Bash scripts often begin with ‘#! /bin/bash’ (assuming that Bash has
-been installed in ‘/bin’), since this ensures that Bash will be used to
-interpret the script, even if it is executed under another shell. It's
-a common idiom to use ‘env’ to find ‘bash’ even if it's been installed
-in another directory: ‘#!/usr/bin/env bash’ will find the first
-occurrence of ‘bash’ in ‘$PATH’.
-
-\1f
-File: bash.info, Node: Shell Builtin Commands, Next: Shell Variables, Prev: Basic Shell Features, Up: Top
-
-4 Shell Builtin Commands
-************************
-
-* Menu:
-
-* Bourne Shell Builtins:: Builtin commands inherited from the Bourne
- Shell.
-* Bash Builtins:: Table of builtins specific to Bash.
-* Modifying Shell Behavior:: Builtins to modify shell attributes and
- optional behavior.
-* Special Builtins:: Builtin commands classified specially by
- POSIX.
-
-Builtin commands are contained within the shell itself. When the name
-of a builtin command is used as the first word of a simple command
-(*note Simple Commands::), the shell executes the command directly,
-without invoking another program. Builtin commands are necessary to
-implement functionality impossible or inconvenient to obtain with
-separate utilities.
-
- This section briefly describes the builtins which Bash inherits from
-the Bourne Shell, as well as the builtin commands which are unique to or
-have been extended in Bash.
-
- Several builtin commands are described in other chapters: builtin
-commands which provide the Bash interface to the job control facilities
-(*note Job Control Builtins::), the directory stack (*note Directory
-Stack Builtins::), the command history (*note Bash History Builtins::),
-and the programmable completion facilities (*note Programmable
-Completion Builtins::).
-
- Many of the builtins have been extended by POSIX or Bash.
-
- Unless otherwise noted, each builtin command documented as accepting
-options preceded by ‘-’ accepts ‘--’ to signify the end of the options.
-The ‘:’, ‘true’, ‘false’, and ‘test’/‘[’ builtins do not accept options
-and do not treat ‘--’ specially. The ‘exit’, ‘logout’, ‘return’,
-‘break’, ‘continue’, ‘let’, and ‘shift’ builtins accept and process
-arguments beginning with ‘-’ without requiring ‘--’. Other builtins
-that accept arguments but are not specified as accepting options
-interpret arguments beginning with ‘-’ as invalid options and require
-‘--’ to prevent this interpretation.
-
-\1f
-File: bash.info, Node: Bourne Shell Builtins, Next: Bash Builtins, Up: Shell Builtin Commands
-
-4.1 Bourne Shell Builtins
-=========================
-
-The following shell builtin commands are inherited from the Bourne
-Shell. These commands are implemented as specified by the POSIX
-standard.
-
-‘: (a colon)’
- : [ARGUMENTS]
-
- Do nothing beyond expanding ARGUMENTS and performing redirections.
- The return status is zero.
-
-‘. (a period)’
- . [-p PATH] FILENAME [ARGUMENTS]
-
- The ‘.’ command reads and execute commands from the FILENAME
- argument in the current shell context.
-
- If FILENAME does not contain a slash, ‘.’ searches for it. If ‘-p’
- is supplied, ‘.’ treats PATH as a colon-separated list of
- directories in which to find FILENAME; otherwise, ‘.’ uses the
- directories in ‘PATH’ to find FILENAME. FILENAME does not need to
- be executable. When Bash is not in POSIX mode, it searches the
- current directory if FILENAME is not found in ‘$PATH’, but does not
- search the current directory if ‘-p’ is supplied. If the
- ‘sourcepath’ option (*note The Shopt Builtin::) is turned off, ‘.’
- does not search ‘PATH’.
-
- If any ARGUMENTS are supplied, they become the positional
- parameters when FILENAME is executed. Otherwise the positional
- parameters are unchanged.
-
- If the ‘-T’ option is enabled, ‘.’ inherits any trap on ‘DEBUG’; if
- it is not, any ‘DEBUG’ trap string is saved and restored around the
- call to ‘.’, and ‘.’ unsets the ‘DEBUG’ trap while it executes. If
- ‘-T’ is not set, and the sourced file changes the ‘DEBUG’ trap, the
- new value persists after ‘.’ completes. The return status is the
- exit status of the last command executed from FILENAME, or zero if
- no commands are executed. If FILENAME is not found, or cannot be
- read, the return status is non-zero. This builtin is equivalent to
- ‘source’.
-
-‘break’
- break [N]
-
- Exit from a ‘for’, ‘while’, ‘until’, or ‘select’ loop. If N is
- supplied, ‘break’ exits the Nth enclosing loop. N must be greater
- than or equal to 1. The return status is zero unless N is not
- greater than or equal to 1.
-
-‘cd’
- cd [-L] [-@] [DIRECTORY]
- cd -P [-e] [-@] [DIRECTORY]
-
- Change the current working directory to DIRECTORY. If DIRECTORY is
- not supplied, the value of the ‘HOME’ shell variable is used as
- DIRECTORY. If DIRECTORY is the empty string, ‘cd’ treats it as an
- error. If the shell variable ‘CDPATH’ exists, and DIRECTORY does
- not begin with a slash, ‘cd’ uses it as a search path: ‘cd’
- searches each directory name in ‘CDPATH’ for DIRECTORY, with
- alternative directory names in ‘CDPATH’ separated by a colon (‘:’).
- A null directory name in ‘CDPATH’ means the same thing as the
- current directory.
-
- The ‘-P’ option means not to follow symbolic links: symbolic links
- are resolved while ‘cd’ is traversing DIRECTORY and before
- processing an instance of ‘..’ in DIRECTORY.
-
- By default, or when the ‘-L’ option is supplied, symbolic links in
- DIRECTORY are resolved after ‘cd’ processes an instance of ‘..’ in
- DIRECTORY.
-
- If ‘..’ appears in DIRECTORY, ‘cd’ processes it by removing the
- immediately preceding pathname component, back to a slash or the
- beginning of DIRECTORY, and verifying that the portion of DIRECTORY
- it has processed to that point is still a valid directory name
- after removing the pathname component. If it is not a valid
- directory name, ‘cd’ returns a non-zero status.
-
- If the ‘-e’ option is supplied with ‘-P’ and ‘cd’ cannot
- successfully determine the current working directory after a
- successful directory change, it returns a non-zero status.
-
- On systems that support it, the ‘-@’ option presents the extended
- attributes associated with a file as a directory.
-
- If DIRECTORY is ‘-’, it is converted to ‘$OLDPWD’ before attempting
- the directory change.
-
- If ‘cd’ uses a non-empty directory name from ‘CDPATH’, or if ‘-’ is
- the first argument, and the directory change is successful, ‘cd’
- writes the absolute pathname of the new working directory to the
- standard output.
-
- If the directory change is successful, ‘cd’ sets the value of the
- ‘PWD’ environment variable to the new directory name, and sets the
- ‘OLDPWD’ environment variable to the value of the current working
- directory before the change.
-
- The return status is zero if the directory is successfully changed,
- non-zero otherwise.
-
-‘continue’
- continue [N]
-
- ‘continue’ resumes the next iteration of an enclosing ‘for’,
- ‘while’, ‘until’, or ‘select’ loop. If N is supplied, Bash resumes
- the execution of the Nth enclosing loop. N must be greater than or
- equal to 1. The return status is zero unless N is not greater than
- or equal to 1.
-
-‘eval’
- eval [ARGUMENTS]
-
- The ARGUMENTS are concatenated together into a single command,
- separated by spaces. Bash then reads and executes this command and
- returns its exit status as the exit status of ‘eval’. If there are
- no arguments or only empty arguments, the return status is zero.
-
-‘exec’
- exec [-cl] [-a NAME] [COMMAND [ARGUMENTS]]
-
- If COMMAND is supplied, it replaces the shell without creating a
- new process. COMMAND cannot be a shell builtin or function. The
- ARGUMENTS become the arguments to COMMAND If the ‘-l’ option is
- supplied, the shell places a dash at the beginning of the zeroth
- argument passed to COMMAND. This is what the ‘login’ program does.
- The ‘-c’ option causes COMMAND to be executed with an empty
- environment. If ‘-a’ is supplied, the shell passes NAME as the
- zeroth argument to COMMAND.
-
- If COMMAND cannot be executed for some reason, a non-interactive
- shell exits, unless the ‘execfail’ shell option is enabled. In
- that case, it returns a non-zero status. An interactive shell
- returns a non-zero status if the file cannot be executed. A
- subshell exits unconditionally if ‘exec’ fails.
-
- If COMMAND is not specified, redirections may be used to affect the
- current shell environment. If there are no redirection errors, the
- return status is zero; otherwise the return status is non-zero.
-
-‘exit’
- exit [N]
-
- Exit the shell, returning a status of N to the shell's parent. If
- N is omitted, the exit status is that of the last command executed.
- Any trap on ‘EXIT’ is executed before the shell terminates.
-
-‘export’
- export [-fn] [-p] [NAME[=VALUE]]
-
- Mark each NAME to be passed to subsequently executed commands in
- the environment. If the ‘-f’ option is supplied, the NAMEs refer
- to shell functions; otherwise the names refer to shell variables.
-
- The ‘-n’ option means to unexport each name: no longer mark it for
- export. If no NAMEs are supplied, or if only the ‘-p’ option is
- given, ‘export’ displays a list of names of all exported variables
- on the standard output. Using ‘-p’ and ‘-f’ together displays
- exported functions. The ‘-p’ option displays output in a form that
- may be reused as input.
-
- ‘export’ allows the value of a variable to be set at the same time
- it is exported or unexported by following the variable name with
- =VALUE. This sets the value of the variable is to VALUE while
- modifying the export attribute.
-
- The return status is zero unless an invalid option is supplied, one
- of the names is not a valid shell variable name, or ‘-f’ is
- supplied with a name that is not a shell function.
-
-‘false’
- false
-
- Does nothing; returns a non-zero status.
-
-‘getopts’
- getopts OPTSTRING NAME [ARG ...]
-
- ‘getopts’ is used by shell scripts or functions to parse positional
- parameters and obtain options and their arguments. OPTSTRING
- contains the option characters to be recognized; if a character is
- followed by a colon, the option is expected to have an argument,
- which should be separated from it by whitespace. The colon (‘:’)
- and question mark (‘?’) may not be used as option characters.
-
- Each time it is invoked, ‘getopts’ places the next option in the
- shell variable NAME, initializing NAME if it does not exist, and
- the index of the next argument to be processed into the variable
- ‘OPTIND’. ‘OPTIND’ is initialized to 1 each time the shell or a
- shell script is invoked. When an option requires an argument,
- ‘getopts’ places that argument into the variable ‘OPTARG’.
-
- The shell does not reset ‘OPTIND’ automatically; it must be
- manually reset between multiple calls to ‘getopts’ within the same
- shell invocation to use a new set of parameters.
-
- When it reaches the end of options, ‘getopts’ exits with a return
- value greater than zero. ‘OPTIND’ is set to the index of the first
- non-option argument, and NAME is set to ‘?’.
-
- ‘getopts’ normally parses the positional parameters, but if more
- arguments are supplied as ARG values, ‘getopts’ parses those
- instead.
-
- ‘getopts’ can report errors in two ways. If the first character of
- OPTSTRING is a colon, ‘getopts’ uses _silent_ error reporting. In
- normal operation, ‘getopts’ prints diagnostic messages when it
- encounters invalid options or missing option arguments. If the
- variable ‘OPTERR’ is set to 0, ‘getopts’ does not display any error
- messages, even if the first character of ‘optstring’ is not a
- colon.
-
- If ‘getopts’ detects an invalid option, it places ‘?’ into NAME
- and, if not silent, prints an error message and unsets ‘OPTARG’.
- If ‘getopts’ is silent, it assigns the option character found to
- ‘OPTARG’ and does not print a diagnostic message.
-
- If a required argument is not found, and ‘getopts’ is not silent,
- it sets the value of NAME to a question mark (‘?’), unsets
- ‘OPTARG’, and prints a diagnostic message. If ‘getopts’ is silent,
- it sets the value of NAME to a colon (‘:’), and sets ‘OPTARG’ to
- the option character found.
-
- ‘getopts’ returns true if an option, specified or unspecified, is
- found. It returns false when it encounters the end of options or
- if an error occurs.
-
-‘hash’
- hash [-r] [-p FILENAME] [-dt] [NAME]
-
- Each time ‘hash’ is invoked, it remembers the full filenames of the
- commands specified as NAME arguments, so they need not be searched
- for on subsequent invocations. The commands are found by searching
- through the directories listed in ‘$PATH’. Any
- previously-remembered filename associated with NAME is discarded.
- The ‘-p’ option inhibits the path search, and ‘hash’ uses FILENAME
- as the location of NAME.
-
- The ‘-r’ option causes the shell to forget all remembered
- locations. Assigning to the ‘PATH’ variable also clears all hashed
- filenames. The ‘-d’ option causes the shell to forget the
- remembered location of each NAME.
-
- If the ‘-t’ option is supplied, ‘hash’ prints the full pathname
- corresponding to each NAME. If multiple NAME arguments are
- supplied with ‘-t’, ‘hash’ prints each NAME before the
- corresponding hashed full path. The ‘-l’ option displays output in
- a format that may be reused as input.
-
- If no arguments are given, or if only ‘-l’ is supplied, ‘hash’
- prints information about remembered commands. The ‘-t’, ‘-d’, and
- ‘-p’ options (the options that act on the NAME arguments) are
- mutually exclusive. Only one will be active. If more than one is
- supplied, ‘-t’ has higher priority than ‘-p’, and both have higher
- priority than ‘-d’.
-
- The return status is zero unless a NAME is not found or an invalid
- option is supplied.
-
-‘pwd’
- pwd [-LP]
-
- Print the absolute pathname of the current working directory. If
- the ‘-P’ option is supplied, or the ‘-o physical’ option to the
- ‘set’ builtin (*note The Set Builtin::) is enabled, the pathname
- printed will not contain symbolic links. If the ‘-L’ option is
- supplied, the pathname printed may contain symbolic links. The
- return status is zero unless an error is encountered while
- determining the name of the current directory or an invalid option
- is supplied.
-
-‘readonly’
- readonly [-aAf] [-p] [NAME[=VALUE]] ...
-
- Mark each NAME as readonly. The values of these names may not be
- changed by subsequent assignment or unset. If the ‘-f’ option is
- supplied, each NAME refers to a shell function. The ‘-a’ option
- means each NAME refers to an indexed array variable; the ‘-A’
- option means each NAME refers to an associative array variable. If
- both options are supplied, ‘-A’ takes precedence. If no NAME
- arguments are supplied, or if the ‘-p’ option is supplied, print a
- list of all readonly names. The other options may be used to
- restrict the output to a subset of the set of readonly names. The
- ‘-p’ option displays output in a format that may be reused as
- input.
-
- ‘readonly’ allows the value of a variable to be set at the same
- time the readonly attribute is changed by following the variable
- name with =VALUE. This sets the value of the variable is to VALUE
- while modifying the readonly attribute.
-
- The return status is zero unless an invalid option is supplied, one
- of the NAME arguments is not a valid shell variable or function
- name, or the ‘-f’ option is supplied with a name that is not a
- shell function.
-
-‘return’
- return [N]
-
- Stop executing a shell function or sourced file and return the
- value N to its caller. If N is not supplied, the return value is
- the exit status of the last command executed. If ‘return’ is
- executed by a trap handler, the last command used to determine the
- status is the last command executed before the trap handler. If
- ‘return’ is executed during a ‘DEBUG’ trap, the last command used
- to determine the status is the last command executed by the trap
- handler before ‘return’ was invoked.
-
- When ‘return’ is used to terminate execution of a script being
- executed with the ‘.’ (‘source’) builtin, it returns either N or
- the exit status of the last command executed within the script as
- the exit status of the script. If N is supplied, the return value
- is its least significant 8 bits.
-
- Any command associated with the ‘RETURN’ trap is executed before
- execution resumes after the function or script.
-
- The return status is non-zero if ‘return’ is supplied a non-numeric
- argument or is used outside a function and not during the execution
- of a script by ‘.’ or ‘source’.
-
-‘shift’
- shift [N]
-
- Shift the positional parameters to the left by N: the positional
- parameters from N+1 ... ‘$#’ are renamed to ‘$1’ ... ‘$#’-N.
- Parameters represented by the numbers ‘$#’ down to ‘$#’-N+1 are
- unset. N must be a non-negative number less than or equal to ‘$#’.
- If N is not supplied, it is assumed to be 1. If N is zero or
- greater than ‘$#’, the positional parameters are not changed. The
- return status is zero unless N is greater than ‘$#’ or less than
- zero, non-zero otherwise.
-
-‘test’
-‘[’
- test EXPR
-
- Evaluate a conditional expression EXPR and return a status of 0
- (true) or 1 (false). Each operator and operand must be a separate
- argument. Expressions are composed of the primaries described
- below in *note Bash Conditional Expressions::. ‘test’ does not
- accept any options, nor does it accept and ignore an argument of
- ‘--’ as signifying the end of options. When using the ‘[’ form,
- the last argument to the command must be a ‘]’.
-
- Expressions may be combined using the following operators, listed
- in decreasing order of precedence. The evaluation depends on the
- number of arguments; see below. ‘test’ uses operator precedence
- when there are five or more arguments.
-
- ‘! EXPR’
- True if EXPR is false.
-
- ‘( EXPR )’
- Returns the value of EXPR. This may be used to override
- normal operator precedence.
-
- ‘EXPR1 -a EXPR2’
- True if both EXPR1 and EXPR2 are true.
-
- ‘EXPR1 -o EXPR2’
- True if either EXPR1 or EXPR2 is true.
-
- The ‘test’ and ‘[’ builtins evaluate conditional expressions using
- a set of rules based on the number of arguments.
-
- 0 arguments
- The expression is false.
-
- 1 argument
- The expression is true if, and only if, the argument is not
- null.
-
- 2 arguments
- If the first argument is ‘!’, the expression is true if and
- only if the second argument is null. If the first argument is
- one of the unary conditional operators (*note Bash Conditional
- Expressions::), the expression is true if the unary test is
- true. If the first argument is not a valid unary operator,
- the expression is false.
-
- 3 arguments
- The following conditions are applied in the order listed.
-
- 1. If the second argument is one of the binary conditional
- operators (*note Bash Conditional Expressions::), the
- result of the expression is the result of the binary test
- using the first and third arguments as operands. The
- ‘-a’ and ‘-o’ operators are considered binary operators
- when there are three arguments.
- 2. If the first argument is ‘!’, the value is the negation
- of the two-argument test using the second and third
- arguments.
- 3. If the first argument is exactly ‘(’ and the third
- argument is exactly ‘)’, the result is the one-argument
- test of the second argument.
- 4. Otherwise, the expression is false.
-
- 4 arguments
- The following conditions are applied in the order listed.
-
- 1. If the first argument is ‘!’, the result is the negation
- of the three-argument expression composed of the
- remaining arguments.
- 2. If the first argument is exactly ‘(’ and the fourth
- argument is exactly ‘)’, the result is the two-argument
- test of the second and third arguments.
- 3. Otherwise, the expression is parsed and evaluated
- according to precedence using the rules listed above.
-
- 5 or more arguments
- The expression is parsed and evaluated according to precedence
- using the rules listed above.
-
- If the shell is in POSIX mode, or if the expression is part of the
- ‘[[’ command, the ‘<’ and ‘>’ operators sort using the current
- locale. If the shell is not in POSIX mode, the ‘test’ and ‘[’
- commands sort lexicographically using ASCII ordering.
-
- The historical operator-precedence parsing with 4 or more arguments
- can lead to ambiguities when it encounters strings that look like
- primaries. The POSIX standard has deprecated the ‘-a’ and ‘-o’
- primaries and enclosing expressions within parentheses. Scripts
- should no longer use them. It's much more reliable to restrict
- test invocations to a single primary, and to replace uses of ‘-a’
- and ‘-o’ with the shell's ‘&&’ and ‘||’ list operators. For
- example, use
-
- test -n string1 && test -n string2
-
- instead of
-
- test -n string1 -a -n string2
-
-‘times’
- times
-
- Print out the user and system times used by the shell and its
- children. The return status is zero.
-
-‘trap’
- trap [-lpP] [ACTION] [SIGSPEC ...]
-
- The ACTION is a command that is read and executed when the shell
- receives any of the signals SIGSPEC. If ACTION is absent (and
- there is a single SIGSPEC) or equal to ‘-’, each specified
- SIGSPEC's disposition is reset to the value it had when the shell
- was started. If ACTION is the null string, then the signal
- specified by each SIGSPEC is ignored by the shell and commands it
- invokes.
-
- If no arguments are supplied, ‘trap’ prints the actions associated
- with each trapped signal as a set of ‘trap’ commands that can be
- reused as shell input to restore the current signal dispositions.
-
- If ACTION is not present and ‘-p’ has been supplied, ‘trap’
- displays the trap commands associated with each SIGSPEC, or, if no
- SIGSPECs are supplied, for all trapped signals, as a set of ‘trap’
- commands that can be reused as shell input to restore the current
- signal dispositions. The ‘-P’ option behaves similarly, but
- displays only the actions associated with each SIGSPEC argument.
- ‘-P’ requires at least one SIGSPEC argument. The ‘-P’ or ‘-p’
- options may be used in a subshell environment (e.g., command
- substitution) and, as long as they are used before ‘trap’ is used
- to change a signal's handling, will display the state of its
- parent's traps.
-
- The ‘-l’ option prints a list of signal names and their
- corresponding numbers. Each SIGSPEC is either a signal name or a
- signal number. Signal names are case insensitive and the ‘SIG’
- prefix is optional. If ‘-l’ is supplied with no SIGSPEC arguments,
- it prints a list of valid signal names.
-
- If a SIGSPEC is ‘0’ or ‘EXIT’, ACTION is executed when the shell
- exits. If a SIGSPEC is ‘DEBUG’, ACTION is executed before every
- simple command, ‘for’ command, ‘case’ command, ‘select’ command, ((
- arithmetic command, [[ conditional command, arithmetic ‘for’
- command, and before the first command executes in a shell function.
- Refer to the description of the ‘extdebug’ shell option (*note The
- Shopt Builtin::) for details of its effect on the ‘DEBUG’ trap. If
- a SIGSPEC is ‘RETURN’, ACTION is executed each time a shell
- function or a script executed with the ‘.’ or ‘source’ builtins
- finishes executing.
-
- If a SIGSPEC is ‘ERR’, ACTION is executed whenever a pipeline
- (which may consist of a single simple command), a list, or a
- compound command returns a non-zero exit status, subject to the
- following conditions. The ‘ERR’ trap is not executed if the failed
- command is part of the command list immediately following an
- ‘until’ or ‘while’ reserved word, part of the test following the
- ‘if’ or ‘elif’ reserved words, part of a command executed in a ‘&&’
- or ‘||’ list except the command following the final ‘&&’ or ‘||’,
- any command in a pipeline but the last, (subject to the state of
- the ‘pipefail’ shell option), or if the command's return status is
- being inverted using ‘!’. These are the same conditions obeyed by
- the ‘errexit’ (‘-e’) option.
-
- When the shell is not interactive, signals ignored upon entry to a
- non-interactive shell cannot be trapped or reset. Interactive
- shells permit trapping signals ignored on entry. Trapped signals
- that are not being ignored are reset to their original values in a
- subshell or subshell environment when one is created.
-
- The return status is zero unless a SIGSPEC does not specify a valid
- signal; non-zero otherwise.
-
-‘true’
- true
-
- Does nothing, returns a 0 status.
-
-‘umask’
- umask [-p] [-S] [MODE]
-
- Set the shell process's file creation mask to MODE. If MODE begins
- with a digit, it is interpreted as an octal number; if not, it is
- interpreted as a symbolic mode mask similar to that accepted by the
- ‘chmod’ command. If MODE is omitted, ‘umask’ prints the current
- value of the mask. If the ‘-S’ option is supplied without a MODE
- argument, ‘umask’ prints the mask in a symbolic format; the default
- output is an octal number. If the ‘-p’ option is supplied, and
- MODE is omitted, the output is in a form that may be reused as
- input. The return status is zero if the mode is successfully
- changed or if no MODE argument is supplied, and non-zero otherwise.
-
- Note that when the mode is interpreted as an octal number, each
- number of the umask is subtracted from ‘7’. Thus, a umask of ‘022’
- results in permissions of ‘755’.
-
-‘unset’
- unset [-fnv] [NAME]
-
- Remove each variable or function NAME. If the ‘-v’ option is
- given, each NAME refers to a shell variable and that variable is
- removed. If the ‘-f’ option is given, the NAMEs refer to shell
- functions, and the function definition is removed. If the ‘-n’
- option is supplied, and NAME is a variable with the ‘nameref’
- attribute, NAME will be unset rather than the variable it
- references. ‘-n’ has no effect if the ‘-f’ option is supplied. If
- no options are supplied, each NAME refers to a variable; if there
- is no variable by that name, a function with that name, if any, is
- unset. Readonly variables and functions may not be unset. When
- variables or functions are removed, they are also removed from the
- environment passed to subsequent commands. Some shell variables
- may not be unset. Some shell variables lose their special behavior
- if they are unset; such behavior is noted in the description of the
- individual variables. The return status is zero unless a NAME is
- readonly or may not be unset.
-
-\1f
-File: bash.info, Node: Bash Builtins, Next: Modifying Shell Behavior, Prev: Bourne Shell Builtins, Up: Shell Builtin Commands
-
-4.2 Bash Builtin Commands
-=========================
-
-This section describes builtin commands which are unique to or have been
-extended in Bash. Some of these commands are specified in the POSIX
-standard.
-
-‘alias’
- alias [-p] [NAME[=VALUE] ...]
-
- Without arguments or with the ‘-p’ option, ‘alias’ prints the list
- of aliases on the standard output in a form that allows them to be
- reused as input. If arguments are supplied, define an alias for
- each NAME whose VALUE is given. If no VALUE is given, print the
- name and value of the alias NAME. A trailing space in VALUE causes
- the next word to be checked for alias substitution when the alias
- is expanded during command parsing. ‘alias’ returns true unless a
- NAME is given (without a corresponding =VALUE) for which no alias
- has been defined. Aliases are described in *note Aliases::.
-
-‘bind’
- bind [-m KEYMAP] [-lsvSVX]
- bind [-m KEYMAP] [-q FUNCTION] [-u FUNCTION] [-r KEYSEQ]
- bind [-m KEYMAP] -f FILENAME
- bind [-m KEYMAP] -x KEYSEQ[: ]SHELL-COMMAND
- bind [-m KEYMAP] KEYSEQ:FUNCTION-NAME
- bind [-m KEYMAP] KEYSEQ:READLINE-COMMAND
- bind [-m KEYMAP] -p|-P [READLINE-COMMAND]
- bind READLINE-COMMAND-LINE
-
- Display current Readline (*note Command Line Editing::) key and
- function bindings, bind a key sequence to a Readline function or
- macro or to a shell command, or set a Readline variable. Each
- non-option argument is a key binding or command as it would appear
- in a Readline initialization file (*note Readline Init File::), but
- each binding or command must be passed as a separate argument;
- e.g., ‘"\C-x\C-r":re-read-init-file’.
-
- In the following descriptions, options that display output in a
- form available to be re-read format their output as commands that
- would appear in a Readline initialization file or that would be
- supplied as individual arguments to a ‘bind’ command.
-
- Options, if supplied, have the following meanings:
-
- ‘-m KEYMAP’
- Use KEYMAP as the keymap to be affected by the subsequent
- bindings. Acceptable KEYMAP names are ‘emacs’,
- ‘emacs-standard’, ‘emacs-meta’, ‘emacs-ctlx’, ‘vi’, ‘vi-move’,
- ‘vi-command’, and ‘vi-insert’. ‘vi’ is equivalent to
- ‘vi-command’ (‘vi-move’ is also a synonym); ‘emacs’ is
- equivalent to ‘emacs-standard’.
-
- ‘-l’
- List the names of all Readline functions.
-
- ‘-p’
- Display Readline function names and bindings in such a way
- that they can be used as an argument to a subsequent ‘bind’
- command or in a Readline initialization file. If arguments
- remain after option processing, ‘bind’ treats them as readline
- command names and restricts output to those names.
-
- ‘-P’
- List current Readline function names and bindings. If
- arguments remain after option processing, ‘bind’ treats them
- as readline command names and restricts output to those names.
-
- ‘-s’
- Display Readline key sequences bound to macros and the strings
- they output in such a way that they can be used as an argument
- to a subsequent ‘bind’ command or in a Readline initialization
- file.
-
- ‘-S’
- Display Readline key sequences bound to macros and the strings
- they output.
-
- ‘-v’
- Display Readline variable names and values in such a way that
- they can be used as an argument to a subsequent ‘bind’ command
- or in a Readline initialization file.
-
- ‘-V’
- List current Readline variable names and values.
-
- ‘-f FILENAME’
- Read key bindings from FILENAME.
-
- ‘-q FUNCTION’
- Display key sequences that invoke the named Readline FUNCTION.
-
- ‘-u FUNCTION’
- Unbind all key sequences bound to the named Readline FUNCTION.
-
- ‘-r KEYSEQ’
- Remove any current binding for KEYSEQ.
-
- ‘-x KEYSEQ:SHELL-COMMAND’
- Cause SHELL-COMMAND to be executed whenever KEYSEQ is entered.
- The separator between KEYSEQ and SHELL-COMMAND is either
- whitespace or a colon optionally followed by whitespace. If
- the separator is whitespace, SHELL-COMMAND must be enclosed in
- double quotes and Readline expands any of its special
- backslash-escapes in SHELL-COMMAND before saving it. If the
- separator is a colon, any enclosing double quotes are
- optional, and Readline does not expand the command string
- before saving it. Since the entire key binding expression
- must be a single argument, it should be enclosed in single
- quotes. When SHELL-COMMAND is executed, the shell sets the
- ‘READLINE_LINE’ variable to the contents of the Readline line
- buffer and the ‘READLINE_POINT’ and ‘READLINE_MARK’ variables
- to the current location of the insertion point and the saved
- insertion point (the MARK), respectively. The shell assigns
- any numeric argument the user supplied to the
- ‘READLINE_ARGUMENT’ variable. If there was no argument, that
- variable is not set. If the executed command changes the
- value of any of ‘READLINE_LINE’, ‘READLINE_POINT’, or
- ‘READLINE_MARK’, those new values will be reflected in the
- editing state.
-
- ‘-X’
- List all key sequences bound to shell commands and the
- associated commands in a format that can be reused as an
- argument to a subsequent ‘bind’ command.
-
- The return status is zero unless an invalid option is supplied or
- an error occurs.
-
-‘builtin’
- builtin [SHELL-BUILTIN [ARGS]]
-
- Execute the specified shell builtin SHELL-BUILTIN, passing it ARGS,
- and return its exit status. This is useful when defining a shell
- function with the same name as a shell builtin, retaining the
- functionality of the builtin within the function. The return
- status is non-zero if SHELL-BUILTIN is not a shell builtin command.
-
-‘caller’
- caller [EXPR]
-
- Returns the context of any active subroutine call (a shell function
- or a script executed with the ‘.’ or ‘source’ builtins).
-
- Without EXPR, ‘caller’ displays the line number and source filename
- of the current subroutine call. If a non-negative integer is
- supplied as EXPR, ‘caller’ displays the line number, subroutine
- name, and source file corresponding to that position in the current
- execution call stack. This extra information may be used, for
- example, to print a stack trace. The current frame is frame 0.
-
- The return value is 0 unless the shell is not executing a
- subroutine call or EXPR does not correspond to a valid position in
- the call stack.
-
-‘command’
- command [-pVv] COMMAND [ARGUMENTS ...]
-
- The ‘command’ builtin runs COMMAND with ARGUMENTS ignoring any
- shell function named COMMAND. Only shell builtin commands or
- commands found by searching the ‘PATH’ are executed. If there is a
- shell function named ‘ls’, running ‘command ls’ within the function
- will execute the external command ‘ls’ instead of calling the
- function recursively. The ‘-p’ option means to use a default value
- for ‘PATH’ that is guaranteed to find all of the standard
- utilities. The return status in this case is 127 if COMMAND cannot
- be found or an error occurred, and the exit status of COMMAND
- otherwise.
-
- If either the ‘-V’ or ‘-v’ option is supplied, ‘command’ prints a
- description of COMMAND. The ‘-v’ option displays a single word
- indicating the command or file name used to invoke COMMAND; the
- ‘-V’ option produces a more verbose description. In this case, the
- return status is zero if COMMAND is found, and non-zero if not.
-
-‘declare’
- declare [-aAfFgiIlnrtux] [-p] [NAME[=VALUE] ...]
-
- Declare variables and give them attributes. If no NAMEs are given,
- then display the values of variables or shell functions instead.
-
- The ‘-p’ option will display the attributes and values of each
- NAME. When ‘-p’ is used with NAME arguments, additional options,
- other than ‘-f’ and ‘-F’, are ignored.
-
- When ‘-p’ is supplied without NAME arguments, ‘declare’ will
- display the attributes and values of all variables having the
- attributes specified by the additional options. If no other
- options are supplied with ‘-p’, ‘declare’ will display the
- attributes and values of all shell variables. The ‘-f’ option
- restricts the display to shell functions.
-
- The ‘-F’ option inhibits the display of function definitions; only
- the function name and attributes are printed. If the ‘extdebug’
- shell option is enabled using ‘shopt’ (*note The Shopt Builtin::),
- the source file name and line number where each NAME is defined are
- displayed as well. ‘-F’ implies ‘-f’.
-
- The ‘-g’ option forces variables to be created or modified at the
- global scope, even when ‘declare’ is executed in a shell function.
- It is ignored in when ‘declare’ is not executed in a shell
- function.
-
- The ‘-I’ option causes local variables to inherit the attributes
- (except the ‘nameref’ attribute) and value of any existing variable
- with the same NAME at a surrounding scope. If there is no existing
- variable, the local variable is initially unset.
-
- The following options can be used to restrict output to variables
- with the specified attributes or to give variables attributes:
-
- ‘-a’
- Each NAME is an indexed array variable (*note Arrays::).
-
- ‘-A’
- Each NAME is an associative array variable (*note Arrays::).
-
- ‘-f’
- Each NAME refers to a shell function.
-
- ‘-i’
- The variable is to be treated as an integer; arithmetic
- evaluation (*note Shell Arithmetic::) is performed when the
- variable is assigned a value.
-
- ‘-l’
- When the variable is assigned a value, all upper-case
- characters are converted to lower-case. The upper-case
- attribute is disabled.
-
- ‘-n’
- Give each NAME the ‘nameref’ attribute, making it a name
- reference to another variable. That other variable is defined
- by the value of NAME. All references, assignments, and
- attribute modifications to NAME, except for those using or
- changing the ‘-n’ attribute itself, are performed on the
- variable referenced by NAME's value. The nameref attribute
- cannot be applied to array variables.
-
- ‘-r’
- Make NAMEs readonly. These names cannot then be assigned
- values by subsequent assignment statements or unset.
-
- ‘-t’
- Give each NAME the ‘trace’ attribute. Traced functions
- inherit the ‘DEBUG’ and ‘RETURN’ traps from the calling shell.
- The trace attribute has no special meaning for variables.
-
- ‘-u’
- When the variable is assigned a value, all lower-case
- characters are converted to upper-case. The lower-case
- attribute is disabled.
-
- ‘-x’
- Mark each NAME for export to subsequent commands via the
- environment.
-
- Using ‘+’ instead of ‘-’ turns off the specified attribute instead,
- with the exceptions that ‘+a’ and ‘+A’ may not be used to destroy
- array variables and ‘+r’ will not remove the readonly attribute.
-
- When used in a function, ‘declare’ makes each NAME local, as with
- the ‘local’ command, unless the ‘-g’ option is supplied. If a
- variable name is followed by =VALUE, the value of the variable is
- set to VALUE.
-
- When using ‘-a’ or ‘-A’ and the compound assignment syntax to
- create array variables, additional attributes do not take effect
- until subsequent assignments.
-
- The return status is zero unless an invalid option is encountered,
- an attempt is made to define a function using ‘-f foo=bar’, an
- attempt is made to assign a value to a readonly variable, an
- attempt is made to assign a value to an array variable without
- using the compound assignment syntax (*note Arrays::), one of the
- NAMEs is not a valid shell variable name, an attempt is made to
- turn off readonly status for a readonly variable, an attempt is
- made to turn off array status for an array variable, or an attempt
- is made to display a non-existent function with ‘-f’.
-
-‘echo’
- echo [-neE] [ARG ...]
-
- Output the ARGs, separated by spaces, terminated with a newline.
- The return status is 0 unless a write error occurs. If ‘-n’ is
- specified, the trailing newline is not printed.
-
- If the ‘-e’ option is given, ‘echo’ interprets the following
- backslash-escaped characters. The ‘-E’ option disables
- interpretation of these escape characters, even on systems where
- they are interpreted by default. The ‘xpg_echo’ shell option
- determines whether or not ‘echo’ interprets any options and expands
- these escape characters. ‘echo’ does not interpret ‘--’ to mean
- the end of options.
-
- ‘echo’ interprets the following escape sequences:
- ‘\a’
- alert (bell)
- ‘\b’
- backspace
- ‘\c’
- suppress further output
- ‘\e’
- ‘\E’
- escape
- ‘\f’
- form feed
- ‘\n’
- new line
- ‘\r’
- carriage return
- ‘\t’
- horizontal tab
- ‘\v’
- vertical tab
- ‘\\’
- backslash
- ‘\0NNN’
- The eight-bit character whose value is the octal value NNN
- (zero to three octal digits).
- ‘\xHH’
- The eight-bit character whose value is the hexadecimal value
- HH (one or two hex digits).
- ‘\uHHHH’
- The Unicode (ISO/IEC 10646) character whose value is the
- hexadecimal value HHHH (one to four hex digits).
- ‘\UHHHHHHHH’
- The Unicode (ISO/IEC 10646) character whose value is the
- hexadecimal value HHHHHHHH (one to eight hex digits).
-
- ‘echo’ writes any unrecognized backslash-escaped characters
- unchanged.
-
-‘enable’
- enable [-a] [-dnps] [-f FILENAME] [NAME ...]
-
- Enable and disable builtin shell commands. Disabling a builtin
- allows an executable file which has the same name as a shell
- builtin to be executed without specifying a full pathname, even
- though the shell normally searches for builtins before files.
-
- If ‘-n’ is supplied, the NAMEs are disabled. Otherwise NAMEs are
- enabled. For example, to use the ‘test’ binary found using ‘$PATH’
- instead of the shell builtin version, type ‘enable -n test’.
-
- If the ‘-p’ option is supplied, or no NAME arguments are supplied,
- print a list of shell builtins. With no other arguments, the list
- consists of all enabled shell builtins. The ‘-n’ option means to
- print only disabled builtins. The ‘-a’ option means to list each
- builtin with an indication of whether or not it is enabled. The
- ‘-s’ option means to restrict ‘enable’ to the POSIX special
- builtins.
-
- The ‘-f’ option means to load the new builtin command NAME from
- shared object FILENAME, on systems that support dynamic loading.
- If FILENAME does not contain a slash. Bash will use the value of
- the ‘BASH_LOADABLES_PATH’ variable as a colon-separated list of
- directories in which to search for FILENAME. The default for
- ‘BASH_LOADABLES_PATH’ is system-dependent, and may include "." to
- force a search of the current directory. The ‘-d’ option will
- delete a builtin loaded with ‘-f’. If ‘-s’ is used with ‘-f’, the
- new builtin becomes a POSIX special builtin (*note Special
- Builtins::).
-
- If no options are supplied and a NAME is not a shell builtin,
- ‘enable’ will attempt to load NAME from a shared object named NAME,
- as if the command were ‘enable -f NAME NAME’.
-
- The return status is zero unless a NAME is not a shell builtin or
- there is an error loading a new builtin from a shared object.
-
-‘help’
- help [-dms] [PATTERN]
-
- Display helpful information about builtin commands. If PATTERN is
- specified, ‘help’ gives detailed help on all commands matching
- PATTERN as described below; otherwise it displays a list of all
- builtins and shell compound commands.
-
- Options, if supplied, have the following meanings:
-
- ‘-d’
- Display a short description of each PATTERN
- ‘-m’
- Display the description of each PATTERN in a manpage-like
- format
- ‘-s’
- Display only a short usage synopsis for each PATTERN
-
- If PATTERN contains pattern matching characters (*note Pattern
- Matching::) it's treated as a shell pattern and ‘help’ prints the
- description of each help topic matching PATTERN.
-
- If not, and PATTERN exactly matches the name of a help topic,
- ‘help’ prints the description associated with that topic.
- Otherwise, ‘help’ performs prefix matching and prints the
- descriptions of all matching help topics.
-
- The return status is zero unless no command matches PATTERN.
-
-‘let’
- let EXPRESSION [EXPRESSION ...]
-
- The ‘let’ builtin allows arithmetic to be performed on shell
- variables. Each EXPRESSION is evaluated as an arithmetic
- expression according to the rules given below in *note Shell
- Arithmetic::. If the last EXPRESSION evaluates to 0, ‘let’ returns
- 1; otherwise ‘let’ returns 0.
-
-‘local’
- local [OPTION] NAME[=VALUE] ...
-
- For each argument, create a local variable named NAME, and assign
- it VALUE. The OPTION can be any of the options accepted by
- ‘declare’. ‘local’ can only be used within a function; it makes
- the variable NAME have a visible scope restricted to that function
- and its children. It is an error to use ‘local’ when not within a
- function.
-
- If NAME is ‘-’, it makes the set of shell options local to the
- function in which ‘local’ is invoked: any shell options changed
- using the ‘set’ builtin inside the function after the call to
- ‘local’ are restored to their original values when the function
- returns. The restore is performed as if a series of ‘set’ commands
- were executed to restore the values that were in place before the
- function.
-
- With no operands, ‘local’ writes a list of local variables to the
- standard output.
-
- The return status is zero unless ‘local’ is used outside a
- function, an invalid NAME is supplied, or NAME is a readonly
- variable.
-
-‘logout’
- logout [N]
-
- Exit a login shell, returning a status of N to the shell's parent.
-
-‘mapfile’
- mapfile [-d DELIM] [-n COUNT] [-O ORIGIN] [-s COUNT]
- [-t] [-u FD] [-C CALLBACK] [-c QUANTUM] [ARRAY]
-
- Read lines from the standard input, or from file descriptor FD if
- the ‘-u’ option is supplied, into the indexed array variable ARRAY.
- The variable ‘MAPFILE’ is the default ARRAY. Options, if supplied,
- have the following meanings:
-
- ‘-d’
- Use the first character of DELIM to terminate each input line,
- rather than newline. If DELIM is the empty string, ‘mapfile’
- will terminate a line when it reads a NUL character.
- ‘-n’
- Copy at most COUNT lines. If COUNT is 0, copy all lines.
- ‘-O’
- Begin assigning to ARRAY at index ORIGIN. The default index
- is 0.
- ‘-s’
- Discard the first COUNT lines read.
- ‘-t’
- Remove a trailing DELIM (default newline) from each line read.
- ‘-u’
- Read lines from file descriptor FD instead of the standard
- input.
- ‘-C’
- Evaluate CALLBACK each time QUANTUM lines are read. The ‘-c’
- option specifies QUANTUM.
- ‘-c’
- Specify the number of lines read between each call to
- CALLBACK.
-
- If ‘-C’ is specified without ‘-c’, the default quantum is 5000.
- When CALLBACK is evaluated, it is supplied the index of the next
- array element to be assigned and the line to be assigned to that
- element as additional arguments. CALLBACK is evaluated after the
- line is read but before the array element is assigned.
-
- If not supplied with an explicit origin, ‘mapfile’ will clear ARRAY
- before assigning to it.
-
- ‘mapfile’ returns zero unless an invalid option or option argument
- is supplied, ARRAY is invalid or unassignable, or if ARRAY is not
- an indexed array.
-
-‘printf’
- printf [-v VAR] FORMAT [ARGUMENTS]
-
- Write the formatted ARGUMENTS to the standard output under the
- control of the FORMAT. The ‘-v’ option assigns the output to the
- variable VAR rather than printing it to the standard output.
-
- The FORMAT is a character string which contains three types of
- objects: plain characters, which are simply copied to standard
- output, character escape sequences, which are converted and copied
- to the standard output, and format specifications, each of which
- causes printing of the next successive ARGUMENT. In addition to
- the standard ‘printf(3)’ format characters ‘cCsSndiouxXeEfFgGaA’,
- ‘printf’ interprets the following additional format specifiers:
-
- ‘%b’
- Causes ‘printf’ to expand backslash escape sequences in the
- corresponding ARGUMENT in the same way as ‘echo -e’ (*note
- Bash Builtins::).
- ‘%q’
- Causes ‘printf’ to output the corresponding ARGUMENT in a
- format that can be reused as shell input. ‘%q’ and ‘%Q’P use
- the ANSI-C quoting style (*note ANSI-C Quoting::) if any
- characters in the argument string require it, and backslash
- quoting otherwise. If the format string uses the ‘printf’
- _alternate form_, these two formats quote the argument string
- using single quotes.
-
- ‘%Q’
- like ‘%q’, but applies any supplied precision to the ARGUMENT
- before quoting it.
-
- ‘%(DATEFMT)T’
- Causes ‘printf’ to output the date-time string resulting from
- using DATEFMT as a format string for ‘strftime’(3). The
- corresponding ARGUMENT is an integer representing the number
- of seconds since the epoch. This format specifier recognizes
- Two special argument values: -1 represents the current time,
- and -2 represents the time the shell was invoked. If no
- argument is specified, conversion behaves as if -1 had been
- supplied. This is an exception to the usual ‘printf’
- behavior.
-
- The %b, %q, and %T format specifiers all use the field width and
- precision arguments from the format specification and write that
- many bytes from (or use that wide a field for) the expanded
- argument, which usually contains more characters than the original.
-
- The %n format specifier accepts a corresponding argument that is
- treated as a shell variable name.
-
- The %s and %c format specifiers accept an l (long) modifier, which
- forces them to convert the argument string to a wide-character
- string and apply any supplied field width and precision in terms of
- characters, not bytes. The %S and %C format specifiers are
- equivalent to %ls and %lc, respectively.
-
- Arguments to non-string format specifiers are treated as C language
- constants, except that a leading plus or minus sign is allowed, and
- if the leading character is a single or double quote, the value is
- the numeric value of the following character, using the current
- locale.
-
- The FORMAT is reused as necessary to consume all of the ARGUMENTS.
- If the FORMAT requires more ARGUMENTS than are supplied, the extra
- format specifications behave as if a zero value or null string, as
- appropriate, had been supplied. The return value is zero on
- success, non-zero if an invalid option is supplied or a write or
- assignment error occurs.
-
-‘read’
- read [-Eers] [-a ANAME] [-d DELIM] [-i TEXT] [-n NCHARS]
- [-N NCHARS] [-p PROMPT] [-t TIMEOUT] [-u FD] [NAME ...]
-
- Read one line from the standard input, or from the file descriptor
- FD supplied as an argument to the ‘-u’ option, split it into words
- as described above in *note Word Splitting::, and assign the first
- word to the first NAME, the second word to the second NAME, and so
- on. If there are more words than names, the remaining words and
- their intervening delimiters are assigned to the last NAME. If
- there are fewer words read from the input stream than names, the
- remaining names are assigned empty values. The characters in the
- value of the ‘IFS’ variable are used to split the line into words
- using the same rules the shell uses for expansion (described above
- in *note Word Splitting::). The backslash character ‘\’ removes
- any special meaning for the next character read and is used for
- line continuation.
-
- Options, if supplied, have the following meanings:
-
- ‘-a ANAME’
- The words are assigned to sequential indices of the array
- variable ANAME, starting at 0. All elements are removed from
- ANAME before the assignment. Other NAME arguments are
- ignored.
-
- ‘-d DELIM’
- The first character of DELIM terminates the input line, rather
- than newline. If DELIM is the empty string, ‘read’ will
- terminate a line when it reads a NUL character.
-
- ‘-e’
- If the standard input is coming from a terminal, ‘read’ uses
- Readline (*note Command Line Editing::) to obtain the line.
- Readline uses the current (or default, if line editing was not
- previously active) editing settings, but uses Readline's
- default filename completion.
-
- ‘-E’
- If the standard input is coming from a terminal, ‘read’ uses
- Readline (*note Command Line Editing::) to obtain the line.
- Readline uses the current (or default, if line editing was not
- previously active) editing settings, but uses Bash's default
- completion, including programmable completion.
-
- ‘-i TEXT’
- If Readline is being used to read the line, ‘read’ places TEXT
- into the editing buffer before editing begins.
-
- ‘-n NCHARS’
- ‘read’ returns after reading NCHARS characters rather than
- waiting for a complete line of input, unless it encounters EOF
- or ‘read’ times out, but honors a delimiter if it reads fewer
- than NCHARS characters before the delimiter.
-
- ‘-N NCHARS’
- ‘read’ returns after reading exactly NCHARS characters rather
- than waiting for a complete line of input, unless it
- encounters EOF or ‘read’ times out. Delimiter characters in
- the input are not treated specially and do not cause ‘read’ to
- return until it has read NCHARS characters. The result is not
- split on the characters in ‘IFS’; the intent is that the
- variable is assigned exactly the characters read (with the
- exception of backslash; see the ‘-r’ option below).
-
- ‘-p PROMPT’
- Display PROMPT, without a trailing newline, before attempting
- to read any input, but only if input is coming from a
- terminal.
-
- ‘-r’
- If this option is given, backslash does not act as an escape
- character. The backslash is considered to be part of the
- line. In particular, a backslash-newline pair may not then be
- used as a line continuation.
-
- ‘-s’
- Silent mode. If input is coming from a terminal, characters
- are not echoed.
-
- ‘-t TIMEOUT’
- Cause ‘read’ to time out and return failure if it does not
- read a complete line of input (or a specified number of
- characters) within TIMEOUT seconds. TIMEOUT may be a decimal
- number with a fractional portion following the decimal point.
- This option is only effective if ‘read’ is reading input from
- a terminal, pipe, or other special file; it has no effect when
- reading from regular files. If ‘read’ times out, it saves any
- partial input read into the specified variable NAME, and
- returns a status greater than 128. If TIMEOUT is 0, ‘read’
- returns immediately, without trying to read any data. In this
- case, the exit status is 0 if input is available on the
- specified file descriptor, or the read will return EOF,
- non-zero otherwise.
-
- ‘-u FD’
- Read input from file descriptor FD instead of the standard
- input.
-
- Other than the case where DELIM is the empty string, ‘read’ ignores
- any NUL characters in the input.
-
- If no NAMEs are supplied, ‘read’ assigns the line read, without the
- ending delimiter but otherwise unmodified, to the variable ‘REPLY’.
-
- The exit status is zero, unless end-of-file is encountered, ‘read’
- times out (in which case the status is greater than 128), a
- variable assignment error (such as assigning to a readonly
- variable) occurs, or an invalid file descriptor is supplied as the
- argument to ‘-u’.
-
-‘readarray’
- readarray [-d DELIM] [-n COUNT] [-O ORIGIN] [-s COUNT]
- [-t] [-u FD] [-C CALLBACK] [-c QUANTUM] [ARRAY]
-
- Read lines from the standard input into the indexed array variable
- ARRAY, or from file descriptor FD if the ‘-u’ option is supplied.
-
- A synonym for ‘mapfile’.
-
-‘source’
- source [-p PATH] FILENAME [ARGUMENTS]
-
- A synonym for ‘.’ (*note Bourne Shell Builtins::).
-
-‘type’
- type [-afptP] [NAME ...]
-
- Indicate how each NAME would be interpreted if used as a command
- name.
-
- If the ‘-t’ option is used, ‘type’ prints a single word which is
- one of ‘alias’, ‘keyword’, ‘function’, ‘builtin’, or ‘file’, if
- NAME is an alias, shell reserved word, shell function, shell
- builtin, or executable file, respectively. If the NAME is not
- found, ‘type’ prints nothing and returns a failure status.
-
- If the ‘-p’ option is used, ‘type’ either returns the name of the
- executable file that would be found by searching ‘$PATH’ for
- ‘name’, or nothing if ‘-t’ would not return ‘file’.
-
- The ‘-P’ option forces a path search for each NAME, even if ‘-t’
- would not return ‘file’.
-
- If a NAME is present in the table of hashed commands, options ‘-p’
- and ‘-P’ print the hashed value, which is not necessarily the file
- that appears first in ‘$PATH’.
-
- If the ‘-a’ option is used, ‘type’ returns all of the places that
- contain a command named NAME. This includes aliases, reserved
- words, functions, and builtins, but the path search options (‘-p’
- and ‘-P’) can be supplied to restrict the output to executable
- files. If ‘-a’ is supplied with ‘-p’, ‘type’ does not look in the
- table of hashed commands, and only performs a ‘PATH’ search for
- NAME.
-
- If the ‘-f’ option is used, ‘type’ does not attempt to find shell
- functions, as with the ‘command’ builtin.
-
- The return status is zero if all of the NAMEs are found, non-zero
- if any are not found.
-
-‘typeset’
- typeset [-afFgrxilnrtux] [-p] [NAME[=VALUE] ...]
-
- The ‘typeset’ command is supplied for compatibility with the Korn
- shell. It is a synonym for the ‘declare’ builtin command.
-
-‘ulimit’
- ulimit [-HS] -a
- ulimit [-HS] [-bcdefiklmnpqrstuvxPRT] [LIMIT]
-
- ‘ulimit’ provides control over the resources available to the shell
- and to processes it starts, on systems that allow such control. If
- an option is given, it is interpreted as follows:
-
- ‘-S’
- Change and report the soft limit associated with a resource.
-
- ‘-H’
- Change and report the hard limit associated with a resource.
-
- ‘-a’
- Report all current limits; no limits are set.
-
- ‘-b’
- The maximum socket buffer size.
-
- ‘-c’
- The maximum size of core files created.
-
- ‘-d’
- The maximum size of a process's data segment.
-
- ‘-e’
- The maximum scheduling priority ("nice").
-
- ‘-f’
- The maximum size of files written by the shell and its
- children.
-
- ‘-i’
- The maximum number of pending signals.
-
- ‘-k’
- The maximum number of kqueues that may be allocated.
-
- ‘-l’
- The maximum size that may be locked into memory.
-
- ‘-m’
- The maximum resident set size (many systems do not honor this
- limit).
-
- ‘-n’
- The maximum number of open file descriptors (most systems do
- not allow this value to be set).
-
- ‘-p’
- The pipe buffer size.
-
- ‘-q’
- The maximum number of bytes in POSIX message queues.
-
- ‘-r’
- The maximum real-time scheduling priority.
-
- ‘-s’
- The maximum stack size.
-
- ‘-t’
- The maximum amount of cpu time in seconds.
-
- ‘-u’
- The maximum number of processes available to a single user.
-
- ‘-v’
- The maximum amount of virtual memory available to the shell,
- and, on some systems, to its children.
-
- ‘-x’
- The maximum number of file locks.
-
- ‘-P’
- The maximum number of pseudoterminals.
-
- ‘-R’
- The maximum time a real-time process can run before blocking,
- in microseconds.
-
- ‘-T’
- The maximum number of threads.
-
- If LIMIT is supplied, and the ‘-a’ option is not used, LIMIT is the
- new value of the specified resource. The special LIMIT values
- ‘hard’, ‘soft’, and ‘unlimited’ stand for the current hard limit,
- the current soft limit, and no limit, respectively. A hard limit
- cannot be increased by a non-root user once it is set; a soft limit
- may be increased up to the value of the hard limit. Otherwise,
- ‘ulimit’ prints the current value of the soft limit for the
- specified resource, unless the ‘-H’ option is supplied. When more
- than one resource is specified, the limit name and unit, if
- appropriate, are printed before the value. When setting new
- limits, if neither ‘-H’ nor ‘-S’ is supplied, ‘ulimit’ sets both
- the hard and soft limits. If no option is supplied, then ‘-f’ is
- assumed.
-
- Values are in 1024-byte increments, except for ‘-t’, which is in
- seconds; ‘-R’, which is in microseconds; ‘-p’, which is in units of
- 512-byte blocks; ‘-P’, ‘-T’, ‘-b’, ‘-k’, ‘-n’ and ‘-u’, which are
- unscaled values; and, when in POSIX mode (*note Bash POSIX Mode::),
- ‘-c’ and ‘-f’, which are in 512-byte increments.
-
- The return status is zero unless an invalid option or argument is
- supplied, or an error occurs while setting a new limit.
-
-‘unalias’
- unalias [-a] [NAME ... ]
-
- Remove each NAME from the list of aliases. If ‘-a’ is supplied,
- remove all aliases. The return value is true unless a supplied
- NAME is not a defined alias. Aliases are described in *note
- Aliases::.
-
-\1f
-File: bash.info, Node: Modifying Shell Behavior, Next: Special Builtins, Prev: Bash Builtins, Up: Shell Builtin Commands
-
-4.3 Modifying Shell Behavior
-============================
-
-* Menu:
-
-* The Set Builtin:: Change the values of shell attributes and
- positional parameters.
-* The Shopt Builtin:: Modify shell optional behavior.
-
-\1f
-File: bash.info, Node: The Set Builtin, Next: The Shopt Builtin, Up: Modifying Shell Behavior
-
-4.3.1 The Set Builtin
----------------------
-
-This builtin is so complicated that it deserves its own section. ‘set’
-allows you to change the values of shell options and set the positional
-parameters, or to display the names and values of shell variables.
-
-‘set’
- set [-abefhkmnptuvxBCEHPT] [-o OPTION-NAME] [--] [-] [ARGUMENT ...]
- set [+abefhkmnptuvxBCEHPT] [+o OPTION-NAME] [--] [-] [ARGUMENT ...]
- set -o
- set +o
-
- If no options or arguments are supplied, ‘set’ displays the names
- and values of all shell variables and functions, sorted according
- to the current locale, in a format that may be reused as input for
- setting or resetting the currently-set variables. Read-only
- variables cannot be reset. In POSIX mode, only shell variables are
- listed.
-
- When options are supplied, they set or unset shell attributes. Any
- arguments remaining after option processing replace the positional
- parameters.
-
- Options, if specified, have the following meanings:
-
- ‘-a’
- Each variable or function that is created or modified is given
- the export attribute and marked for export to the environment
- of subsequent commands.
-
- ‘-b’
- Cause the status of terminated background jobs to be reported
- immediately, rather than before printing the next primary
- prompt or, under some circumstances, when a foreground command
- exits. This is effective only when job control is enabled.
-
- ‘-e’
- Exit immediately if a pipeline (*note Pipelines::), which may
- consist of a single simple command (*note Simple Commands::),
- a list (*note Lists::), or a compound command (*note Compound
- Commands::) returns a non-zero status. The shell does not
- exit if the command that fails is part of the command list
- immediately following a ‘while’ or ‘until’ reserved word, part
- of the test in an ‘if’ statement, part of any command executed
- in a ‘&&’ or ‘||’ list except the command following the final
- ‘&&’ or ‘||’, any command in a pipeline but the last (subject
- to the state of the ‘pipefail’ shell option), or if the
- command's return status is being inverted with ‘!’. If a
- compound command other than a subshell returns a non-zero
- status because a command failed while ‘-e’ was being ignored,
- the shell does not exit. A trap on ‘ERR’, if set, is executed
- before the shell exits.
-
- This option applies to the shell environment and each subshell
- environment separately (*note Command Execution
- Environment::), and may cause subshells to exit before
- executing all the commands in the subshell.
-
- If a compound command or shell function executes in a context
- where ‘-e’ is being ignored, none of the commands executed
- within the compound command or function body will be affected
- by the ‘-e’ setting, even if ‘-e’ is set and a command returns
- a failure status. If a compound command or shell function
- sets ‘-e’ while executing in a context where ‘-e’ is ignored,
- that setting will not have any effect until the compound
- command or the command containing the function call completes.
-
- ‘-f’
- Disable filename expansion (globbing).
-
- ‘-h’
- Locate and remember (hash) commands as they are looked up for
- execution. This option is enabled by default.
-
- ‘-k’
- All arguments in the form of assignment statements are placed
- in the environment for a command, not just those that precede
- the command name.
-
- ‘-m’
- Job control is enabled (*note Job Control::). All processes
- run in a separate process group. When a background job
- completes, the shell prints a line containing its exit status.
-
- ‘-n’
- Read commands but do not execute them. This may be used to
- check a script for syntax errors. This option is ignored by
- interactive shells.
-
- ‘-o OPTION-NAME’
-
- Set the option corresponding to OPTION-NAME. If ‘-o’ is
- supplied with no OPTION-NAME, ‘set’ prints the current shell
- options settings. If ‘+o’ is supplied with no OPTION-NAME,
- ‘set’ prints a series of ‘set’ commands to recreate the
- current option settings on the standard output. Valid option
- names are:
-
- ‘allexport’
- Same as ‘-a’.
-
- ‘braceexpand’
- Same as ‘-B’.
-
- ‘emacs’
- Use an ‘emacs’-style line editing interface (*note
- Command Line Editing::). This also affects the editing
- interface used for ‘read -e’.
-
- ‘errexit’
- Same as ‘-e’.
-
- ‘errtrace’
- Same as ‘-E’.
-
- ‘functrace’
- Same as ‘-T’.
-
- ‘hashall’
- Same as ‘-h’.
-
- ‘histexpand’
- Same as ‘-H’.
-
- ‘history’
- Enable command history, as described in *note Bash
- History Facilities::. This option is on by default in
- interactive shells.
-
- ‘ignoreeof’
- An interactive shell will not exit upon reading EOF.
-
- ‘keyword’
- Same as ‘-k’.
-
- ‘monitor’
- Same as ‘-m’.
-
- ‘noclobber’
- Same as ‘-C’.
-
- ‘noexec’
- Same as ‘-n’.
-
- ‘noglob’
- Same as ‘-f’.
-
- ‘nolog’
- Currently ignored.
-
- ‘notify’
- Same as ‘-b’.
-
- ‘nounset’
- Same as ‘-u’.
-
- ‘onecmd’
- Same as ‘-t’.
-
- ‘physical’
- Same as ‘-P’.
-
- ‘pipefail’
- If set, the return value of a pipeline is the value of
- the last (rightmost) command to exit with a non-zero
- status, or zero if all commands in the pipeline exit
- successfully. This option is disabled by default.
-
- ‘posix’
- Enable POSIX mode; change the behavior of Bash where the
- default operation differs from the POSIX standard to
- match the standard (*note Bash POSIX Mode::). This is
- intended to make Bash behave as a strict superset of that
- standard.
-
- ‘privileged’
- Same as ‘-p’.
-
- ‘verbose’
- Same as ‘-v’.
-
- ‘vi’
- Use a ‘vi’-style line editing interface. This also
- affects the editing interface used for ‘read -e’.
-
- ‘xtrace’
- Same as ‘-x’.
-
- ‘-p’
- Turn on privileged mode. In this mode, the ‘$BASH_ENV’ and
- ‘$ENV’ files are not processed, shell functions are not
- inherited from the environment, and the ‘SHELLOPTS’,
- ‘BASHOPTS’, ‘CDPATH’ and ‘GLOBIGNORE’ variables, if they
- appear in the environment, are ignored. If the shell is
- started with the effective user (group) id not equal to the
- real user (group) id, and the ‘-p’ option is not supplied,
- these actions are taken and the effective user id is set to
- the real user id. If the ‘-p’ option is supplied at startup,
- the effective user id is not reset. Turning this option off
- causes the effective user and group ids to be set to the real
- user and group ids.
-
- ‘-r’
- Enable restricted shell mode (*note The Restricted Shell::).
- This option cannot be unset once it has been set.
-
- ‘-t’
- Exit after reading and executing one command.
-
- ‘-u’
- Treat unset variables and parameters other than the special
- parameters ‘@’ or ‘*’, or array variables subscripted with ‘@’
- or ‘*’, as an error when performing parameter expansion. An
- error message will be written to the standard error, and a
- non-interactive shell will exit.
-
- ‘-v’
- Print shell input lines to standard error as they are read.
-
- ‘-x’
- Print a trace of simple commands, ‘for’ commands, ‘case’
- commands, ‘select’ commands, and arithmetic ‘for’ commands and
- their arguments or associated word lists to the standard error
- after they are expanded and before they are executed. The
- shell prints the expanded value of the ‘PS4’ variable before
- the command and its expanded arguments.
-
- ‘-B’
- The shell will perform brace expansion (*note Brace
- Expansion::). This option is on by default.
-
- ‘-C’
- Prevent output redirection using ‘>’, ‘>&’, and ‘<>’ from
- overwriting existing files. Using the redirection operator
- ‘>|’ instead of ‘>’ will override this and force the creation
- of an output file.
-
- ‘-E’
- If set, any trap on ‘ERR’ is inherited by shell functions,
- command substitutions, and commands executed in a subshell
- environment. The ‘ERR’ trap is normally not inherited in such
- cases.
-
- ‘-H’
- Enable ‘!’ style history substitution (*note History
- Interaction::). This option is on by default for interactive
- shells.
-
- ‘-P’
- If set, Bash does not resolve symbolic links when executing
- commands such as ‘cd’ which change the current directory. It
- uses the physical directory structure instead. By default,
- Bash follows the logical chain of directories when performing
- commands which change the current directory.
-
- For example, if ‘/usr/sys’ is a symbolic link to
- ‘/usr/local/sys’ then:
- $ cd /usr/sys; echo $PWD
- /usr/sys
- $ cd ..; pwd
- /usr
-
- If ‘set -P’ is on, then:
- $ cd /usr/sys; echo $PWD
- /usr/local/sys
- $ cd ..; pwd
- /usr/local
-
- ‘-T’
- If set, any traps on ‘DEBUG’ and ‘RETURN’ are inherited by
- shell functions, command substitutions, and commands executed
- in a subshell environment. The ‘DEBUG’ and ‘RETURN’ traps are
- normally not inherited in such cases.
-
- ‘--’
- If no arguments follow this option, unset the positional
- parameters. Otherwise, the positional parameters are set to
- the ARGUMENTS, even if some of them begin with a ‘-’.
-
- ‘-’
- Signal the end of options, and assign all remaining ARGUMENTS
- to the positional parameters. The ‘-x’ and ‘-v’ options are
- turned off. If there are no arguments, the positional
- parameters remain unchanged.
-
- Using ‘+’ rather than ‘-’ causes these options to be turned off.
- The options can also be used upon invocation of the shell. The
- current set of options may be found in ‘$-’.
-
- The remaining N ARGUMENTS are positional parameters and are
- assigned, in order, to ‘$1’, ‘$2’, ... ‘$N’. The special parameter
- ‘#’ is set to N.
-
- The return status is always zero unless an invalid option is
- supplied.
-
-\1f
-File: bash.info, Node: The Shopt Builtin, Prev: The Set Builtin, Up: Modifying Shell Behavior
-
-4.3.2 The Shopt Builtin
------------------------
-
-This builtin allows you to change additional optional shell behavior.
-
-‘shopt’
- shopt [-pqsu] [-o] [OPTNAME ...]
-
- Toggle the values of settings controlling optional shell behavior.
- The settings can be either those listed below, or, if the ‘-o’
- option is used, those available with the ‘-o’ option to the ‘set’
- builtin command (*note The Set Builtin::).
-
- With no options, or with the ‘-p’ option, display a list of all
- settable options, with an indication of whether or not each is set;
- if any OPTNAMEs are supplied, the output is restricted to those
- options. The ‘-p’ option displays output in a form that may be
- reused as input.
-
- Other options have the following meanings:
-
- ‘-s’
- Enable (set) each OPTNAME.
-
- ‘-u’
- Disable (unset) each OPTNAME.
-
- ‘-q’
- Suppresses normal output; the return status indicates whether
- the OPTNAME is set or unset. If multiple OPTNAME arguments
- are supplied with ‘-q’, the return status is zero if all
- OPTNAMEs are enabled; non-zero otherwise.
-
- ‘-o’
- Restricts the values of OPTNAME to be those defined for the
- ‘-o’ option to the ‘set’ builtin (*note The Set Builtin::).
-
- If either ‘-s’ or ‘-u’ is used with no OPTNAME arguments, ‘shopt’
- shows only those options which are set or unset, respectively.
-
- Unless otherwise noted, the ‘shopt’ options are disabled (off) by
- default.
-
- The return status when listing options is zero if all OPTNAMEs are
- enabled, non-zero otherwise. When setting or unsetting options,
- the return status is zero unless an OPTNAME is not a valid shell
- option.
-
- The list of ‘shopt’ options is:
-
- ‘array_expand_once’
- If set, the shell suppresses multiple evaluation of
- associative and indexed array subscripts during arithmetic
- expression evaluation, while executing builtins that can
- perform variable assignments, and while executing builtins
- that perform array dereferencing.
-
- ‘assoc_expand_once’
- Deprecated; a synonym for ‘array_expand_once’.
-
- ‘autocd’
- If set, a command name that is the name of a directory is
- executed as if it were the argument to the ‘cd’ command. This
- option is only used by interactive shells.
-
- ‘bash_source_fullpath’
- If set, filenames added to the ‘BASH_SOURCE’ array variable
- are converted to full pathnames (*note Bash Variables::).
-
- ‘cdable_vars’
- If this is set, an argument to the ‘cd’ builtin command that
- is not a directory is assumed to be the name of a variable
- whose value is the directory to change to.
-
- ‘cdspell’
- If set, the ‘cd’ command attempts to correct minor errors in
- the spelling of a directory component. Minor errors include
- transposed characters, a missing character, and one extra
- character. If ‘cd’ corrects the directory name, it prints the
- corrected filename, and the command proceeds. This option is
- only used by interactive shells.
-
- ‘checkhash’
- If this is set, Bash checks that a command found in the hash
- table exists before trying to execute it. If a hashed command
- no longer exists, Bash performs a normal path search.
-
- ‘checkjobs’
- If set, Bash lists the status of any stopped and running jobs
- before exiting an interactive shell. If any jobs are running,
- Bash defers the exit until a second exit is attempted without
- an intervening command (*note Job Control::). The shell
- always postpones exiting if any jobs are stopped.
-
- ‘checkwinsize’
- If set, Bash checks the window size after each external
- (non-builtin) command and, if necessary, updates the values of
- ‘LINES’ and ‘COLUMNS’, using the file descriptor associated
- with stderr if it is a terminal. This option is enabled by
- default.
-
- ‘cmdhist’
- If set, Bash attempts to save all lines of a multiple-line
- command in the same history entry. This allows easy
- re-editing of multi-line commands. This option is enabled by
- default, but only has an effect if command history is enabled
- (*note Bash History Facilities::).
-
- ‘compat31’
- ‘compat32’
- ‘compat40’
- ‘compat41’
- ‘compat42’
- ‘compat43’
- ‘compat44’
- These control aspects of the shell's compatibility mode (*note
- Shell Compatibility Mode::).
-
- ‘complete_fullquote’
- If set, Bash quotes all shell metacharacters in filenames and
- directory names when performing completion. If not set, Bash
- removes metacharacters such as the dollar sign from the set of
- characters that will be quoted in completed filenames when
- these metacharacters appear in shell variable references in
- words to be completed. This means that dollar signs in
- variable names that expand to directories will not be quoted;
- however, any dollar signs appearing in filenames will not be
- quoted, either. This is active only when Bash is using
- backslashes to quote completed filenames. This variable is
- set by default, which is the default Bash behavior in versions
- through 4.2.
-
- ‘direxpand’
- If set, Bash replaces directory names with the results of word
- expansion when performing filename completion. This changes
- the contents of the Readline editing buffer. If not set, Bash
- attempts to preserve what the user typed.
-
- ‘dirspell’
- If set, Bash attempts spelling correction on directory names
- during word completion if the directory name initially
- supplied does not exist.
-
- ‘dotglob’
- If set, Bash includes filenames beginning with a ‘.’ in the
- results of filename expansion. The filenames ‘.’ and ‘..’
- must always be matched explicitly, even if ‘dotglob’ is set.
-
- ‘execfail’
- If this is set, a non-interactive shell will not exit if it
- cannot execute the file specified as an argument to the ‘exec’
- builtin. An interactive shell does not exit if ‘exec’ fails.
-
- ‘expand_aliases’
- If set, aliases are expanded as described below under Aliases,
- *note Aliases::. This option is enabled by default for
- interactive shells.
-
- ‘extdebug’
- If set at shell invocation, or in a shell startup file,
- arrange to execute the debugger profile before the shell
- starts, identical to the ‘--debugger’ option. If set after
- invocation, behavior intended for use by debuggers is enabled:
-
- 1. The ‘-F’ option to the ‘declare’ builtin (*note Bash
- Builtins::) displays the source file name and line number
- corresponding to each function name supplied as an
- argument.
-
- 2. If the command run by the ‘DEBUG’ trap returns a non-zero
- value, the next command is skipped and not executed.
-
- 3. If the command run by the ‘DEBUG’ trap returns a value of
- 2, and the shell is executing in a subroutine (a shell
- function or a shell script executed by the ‘.’ or
- ‘source’ builtins), the shell simulates a call to
- ‘return’.
-
- 4. ‘BASH_ARGC’ and ‘BASH_ARGV’ are updated as described in
- their descriptions (*note Bash Variables::).
-
- 5. Function tracing is enabled: command substitution, shell
- functions, and subshells invoked with ‘( COMMAND )’
- inherit the ‘DEBUG’ and ‘RETURN’ traps.
-
- 6. Error tracing is enabled: command substitution, shell
- functions, and subshells invoked with ‘( COMMAND )’
- inherit the ‘ERR’ trap.
-
- ‘extglob’
- If set, enable the extended pattern matching features
- described above (*note Pattern Matching::).
-
- ‘extquote’
- If set, ‘$'STRING'’ and ‘$"STRING"’ quoting is performed
- within ‘${PARAMETER}’ expansions enclosed in double quotes.
- This option is enabled by default.
-
- ‘failglob’
- If set, patterns which fail to match filenames during filename
- expansion result in an expansion error.
-
- ‘force_fignore’
- If set, the suffixes specified by the ‘FIGNORE’ shell variable
- cause words to be ignored when performing word completion even
- if the ignored words are the only possible completions. *Note
- Bash Variables::, for a description of ‘FIGNORE’. This option
- is enabled by default.
-
- ‘globasciiranges’
- If set, range expressions used in pattern matching bracket
- expressions (*note Pattern Matching::) behave as if in the
- traditional C locale when performing comparisons. That is,
- pattern matching does not take the current locale's collating
- sequence into account, so ‘b’ will not collate between ‘A’ and
- ‘B’, and upper-case and lower-case ASCII characters will
- collate together.
-
- ‘globskipdots’
- If set, filename expansion will never match the filenames ‘.’
- and ‘..’, even if the pattern begins with a ‘.’. This option
- is enabled by default.
-
- ‘globstar’
- If set, the pattern ‘**’ used in a filename expansion context
- will match all files and zero or more directories and
- subdirectories. If the pattern is followed by a ‘/’, only
- directories and subdirectories match.
-
- ‘gnu_errfmt’
- If set, shell error messages are written in the standard GNU
- error message format.
-
- ‘histappend’
- If set, the history list is appended to the file named by the
- value of the ‘HISTFILE’ variable when the shell exits, rather
- than overwriting the file.
-
- ‘histreedit’
- If set, and Readline is being used, the user is given the
- opportunity to re-edit a failed history substitution.
-
- ‘histverify’
- If set, and Readline is being used, the results of history
- substitution are not immediately passed to the shell parser.
- Instead, the resulting line is loaded into the Readline
- editing buffer, allowing further modification.
-
- ‘hostcomplete’
- If set, and Readline is being used, Bash will attempt to
- perform hostname completion when a word containing a ‘@’ is
- being completed (*note Commands For Completion::). This
- option is enabled by default.
-
- ‘huponexit’
- If set, Bash will send ‘SIGHUP’ to all jobs when an
- interactive login shell exits (*note Signals::).
-
- ‘inherit_errexit’
- If set, command substitution inherits the value of the
- ‘errexit’ option, instead of unsetting it in the subshell
- environment. This option is enabled when POSIX mode is
- enabled.
-
- ‘interactive_comments’
- In an interactive shell, a word beginning with ‘#’ causes that
- word and all remaining characters on that line to be ignored,
- as in a non-interactive shell. This option is enabled by
- default.
-
- ‘lastpipe’
- If set, and job control is not active, the shell runs the last
- command of a pipeline not executed in the background in the
- current shell environment.
-
- ‘lithist’
- If enabled, and the ‘cmdhist’ option is enabled, multi-line
- commands are saved to the history with embedded newlines
- rather than using semicolon separators where possible.
-
- ‘localvar_inherit’
- If set, local variables inherit the value and attributes of a
- variable of the same name that exists at a previous scope
- before any new value is assigned. The ‘nameref’ attribute is
- not inherited.
-
- ‘localvar_unset’
- If set, calling ‘unset’ on local variables in previous
- function scopes marks them so subsequent lookups find them
- unset until that function returns. This is identical to the
- behavior of unsetting local variables at the current function
- scope.
-
- ‘login_shell’
- The shell sets this option if it is started as a login shell
- (*note Invoking Bash::). The value may not be changed.
-
- ‘mailwarn’
- If set, and a file that Bash is checking for mail has been
- accessed since the last time it was checked, Bash displays the
- message ‘"The mail in MAILFILE has been read"’.
-
- ‘no_empty_cmd_completion’
- If set, and Readline is being used, Bash does not search the
- ‘PATH’ for possible completions when completion is attempted
- on an empty line.
-
- ‘nocaseglob’
- If set, Bash matches filenames in a case-insensitive fashion
- when performing filename expansion.
-
- ‘nocasematch’
- If set, Bash matches patterns in a case-insensitive fashion
- when performing matching while executing ‘case’ or ‘[[’
- conditional commands (*note Conditional Constructs::), when
- performing pattern substitution word expansions, or when
- filtering possible completions as part of programmable
- completion.
-
- ‘noexpand_translation’
- If set, Bash encloses the translated results of $"..." quoting
- in single quotes instead of double quotes. If the string is
- not translated, this has no effect.
-
- ‘nullglob’
- If set, filename expansion patterns which match no files
- (*note Filename Expansion::) expand to nothing and are
- removed, rather than expanding to themselves.
-
- ‘patsub_replacement’
- If set, Bash expands occurrences of ‘&’ in the replacement
- string of pattern substitution to the text matched by the
- pattern, as described above (*note Shell Parameter
- Expansion::). This option is enabled by default.
-
- ‘progcomp’
- If set, enable the programmable completion facilities (*note
- Programmable Completion::). This option is enabled by
- default.
-
- ‘progcomp_alias’
- If set, and programmable completion is enabled, Bash treats a
- command name that doesn't have any completions as a possible
- alias and attempts alias expansion. If it has an alias, Bash
- attempts programmable completion using the command word
- resulting from the expanded alias.
-
- ‘promptvars’
- If set, prompt strings undergo parameter expansion, command
- substitution, arithmetic expansion, and quote removal after
- being expanded as described below (*note Controlling the
- Prompt::). This option is enabled by default.
-
- ‘restricted_shell’
- The shell sets this option if it is started in restricted mode
- (*note The Restricted Shell::). The value may not be changed.
- This is not reset when the startup files are executed,
- allowing the startup files to discover whether or not a shell
- is restricted.
-
- ‘shift_verbose’
- If this is set, the ‘shift’ builtin prints an error message
- when the shift count exceeds the number of positional
- parameters.
-
- ‘sourcepath’
- If set, the ‘.’ (‘source’) builtin uses the value of ‘PATH’ to
- find the directory containing the file supplied as an argument
- when the ‘-p’ option is not supplied. This option is enabled
- by default.
-
- ‘varredir_close’
- If set, the shell automatically closes file descriptors
- assigned using the ‘{varname}’ redirection syntax (*note
- Redirections::) instead of leaving them open when the command
- completes.
-
- ‘xpg_echo’
- If set, the ‘echo’ builtin expands backslash-escape sequences
- by default. If the ‘posix’ shell option (*note The Set
- Builtin::) is also enabled, ‘echo’ does not interpret any
- options.
-
-\1f
-File: bash.info, Node: Special Builtins, Prev: Modifying Shell Behavior, Up: Shell Builtin Commands
-
-4.4 Special Builtins
-====================
-
-For historical reasons, the POSIX standard has classified several
-builtin commands as _special_. When Bash is executing in POSIX mode,
-the special builtins differ from other builtin commands in three
-respects:
-
- 1. Special builtins are found before shell functions during command
- lookup.
-
- 2. If a special builtin returns an error status, a non-interactive
- shell exits.
-
- 3. Assignment statements preceding the command stay in effect in the
- shell environment after the command completes.
-
- When Bash is not executing in POSIX mode, these builtins behave no
-differently than the rest of the Bash builtin commands. The Bash POSIX
-mode is described in *note Bash POSIX Mode::.
-
- These are the POSIX special builtins:
- break : . source continue eval exec exit export readonly return set
- shift times trap unset
-
-\1f
-File: bash.info, Node: Shell Variables, Next: Bash Features, Prev: Shell Builtin Commands, Up: Top
-
-5 Shell Variables
-*****************
-
-* Menu:
-
-* Bourne Shell Variables:: Variables which Bash uses in the same way
- as the Bourne Shell.
-* Bash Variables:: List of variables that exist in Bash.
-
-This chapter describes the shell variables that Bash uses. Bash
-automatically assigns default values to a number of variables.
-
-\1f
-File: bash.info, Node: Bourne Shell Variables, Next: Bash Variables, Up: Shell Variables
-
-5.1 Bourne Shell Variables
-==========================
-
-Bash uses certain shell variables in the same way as the Bourne shell.
-In some cases, Bash assigns a default value to the variable.
-
-‘CDPATH’
- A colon-separated list of directories used as a search path for the
- ‘cd’ builtin command.
-
-‘HOME’
- The current user's home directory; the default for the ‘cd’ builtin
- command. The value of this variable is also used by tilde
- expansion (*note Tilde Expansion::).
-
-‘IFS’
- A list of characters that separate fields; used when the shell
- splits words as part of expansion and by the ‘read’ builtin to
- split lines into words. *Note Word Splitting::, for a description
- of word splitting.
-
-‘MAIL’
- If the value is set to a filename or directory name and the
- ‘MAILPATH’ variable is not set, Bash informs the user of the
- arrival of mail in the specified file or Maildir-format directory.
-
-‘MAILPATH’
- A colon-separated list of filenames which the shell periodically
- checks for new mail. Each list entry can specify the message that
- is printed when new mail arrives in the mail file by separating the
- filename from the message with a ‘?’. When used in the text of the
- message, ‘$_’ expands to the name of the current mail file.
-
-‘OPTARG’
- The value of the last option argument processed by the ‘getopts’
- builtin.
-
-‘OPTIND’
- The index of the next argument to be processed by the ‘getopts’
- builtin.
-
-‘PATH’
- A colon-separated list of directories in which the shell looks for
- commands. A zero-length (null) directory name in the value of
- ‘PATH’ 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 set by the
- administrator who installs ‘bash’. A common value is
- "/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin".
-
-‘PS1’
- The primary prompt string. The default value is ‘\s-\v\$ ’. *Note
- Controlling the Prompt::, for the complete list of escape sequences
- that are expanded before ‘PS1’ is displayed.
-
-‘PS2’
- The secondary prompt string. The default value is ‘> ’. ‘PS2’ is
- expanded in the same way as ‘PS1’ before being displayed.
-
-\1f
-File: bash.info, Node: Bash Variables, Prev: Bourne Shell Variables, Up: Shell Variables
-
-5.2 Bash Variables
-==================
-
-These variables are set or used by Bash, but other shells do not
-normally treat them specially.
-
- A few variables used by Bash are described in different chapters:
-variables for controlling the job control facilities (*note Job Control
-Variables::).
-
-‘_’
- ($_, an underscore.) This has a number of meanings depending on
- context. At shell startup, $_ set to the pathname used to invoke
- the shell or shell script being executed as passed in the
- environment or argument list. Subsequently, it expands to the last
- argument to the previous simple command executed in the foreground,
- after expansion. It is also set to the full pathname used to
- invoke each command executed and placed in the environment exported
- to that command. When checking mail, $_ expands to the name of the
- mail file.
-
-‘BASH’
- The full pathname used to execute the current instance of Bash.
-
-‘BASHOPTS’
- A colon-separated list of enabled shell options. Each word in the
- list is a valid argument for the ‘-s’ option to the ‘shopt’ builtin
- 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. 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
- differs from ‘$$’ under certain circumstances, such as subshells
- that do not require Bash to be re-initialized. Assignments to
- ‘BASHPID’ have no effect. If ‘BASHPID’ is unset, it loses its
- special properties, even if it is subsequently reset.
-
-‘BASH_ALIASES’
- An associative array variable whose members correspond to the
- internal list of aliases as maintained by the ‘alias’ builtin.
- (*note Bourne Shell Builtins::). Elements added to this array
- appear in the alias list; however, unsetting array elements
- currently does not cause aliases to be removed from the alias list.
- If ‘BASH_ALIASES’ is unset, it loses its special properties, even
- if it is subsequently reset.
-
-‘BASH_ARGC’
- An array variable whose values are the number of parameters in each
- frame of the current Bash execution call stack. The number of
- parameters to the current subroutine (shell function or script
- executed with ‘.’ or ‘source’) is at the top of the stack. When a
- subroutine is executed, the number of parameters passed is pushed
- onto ‘BASH_ARGC’. The shell sets ‘BASH_ARGC’ only when in extended
- debugging mode (see *note The Shopt Builtin:: for a description of
- the ‘extdebug’ option to the ‘shopt’ builtin). Setting ‘extdebug’
- after the shell has started to execute a subroutine, or referencing
- this variable when ‘extdebug’ is not set, may result in
- inconsistent values. Assignments to ‘BASH_ARGC’ have no effect,
- and it may not be unset.
-
-‘BASH_ARGV’
- An array variable containing all of the parameters in the current
- Bash execution call stack. The final parameter of the last
- subroutine call is at the top of the stack; the first parameter of
- the initial call is at the bottom. When a subroutine is executed,
- the shell pushes the supplied parameters onto ‘BASH_ARGV’. The
- shell sets ‘BASH_ARGV’ only when in extended debugging mode (see
- *note The Shopt Builtin:: for a description of the ‘extdebug’
- option to the ‘shopt’ builtin). Setting ‘extdebug’ after the shell
- has started to execute a script, or referencing this variable when
- ‘extdebug’ is not set, may result in inconsistent values.
- Assignments to ‘BASH_ARGV’ have no effect, and it may not be unset.
-
-‘BASH_ARGV0’
- When referenced, this variable expands to the name of the shell or
- shell script (identical to ‘$0’; *Note Special Parameters::, for
- the description of special parameter 0). Assigning a value to
- ‘BASH_ARGV0’ sets ‘$0’ to the same value. If ‘BASH_ARGV0’ is
- unset, it loses its special properties, even if it is subsequently
- reset.
-
-‘BASH_CMDS’
- An associative array variable whose members correspond to the
- internal hash table of commands as maintained by the ‘hash’ builtin
- (*note Bourne Shell Builtins::). 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 ‘BASH_CMDS’ is unset, it loses its special properties,
- even if it is subsequently reset.
-
-‘BASH_COMMAND’
- 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 ‘BASH_COMMAND’ is unset, it loses its special
- properties, even if it is subsequently reset.
-
-‘BASH_COMPAT’
- The value is used to set the shell's compatibility level. *Note
- Shell Compatibility Mode::, for a description of the various
- compatibility levels and their effects. The value may be a decimal
- number (e.g., 4.2) or an integer (e.g., 42) corresponding to the
- desired compatibility level. If ‘BASH_COMPAT’ is unset or set to
- the empty string, the compatibility level is set to the default for
- the current version. If ‘BASH_COMPAT’ 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 (*note Shell Compatibility
- Mode::). For example, 4.2 and 42 are valid values that correspond
- to the ‘compat42’ ‘shopt’ option and set the compatibility level to
- 42. The current version is also a valid value.
-
-‘BASH_ENV’
- If this variable is set when Bash is invoked to execute a shell
- script, its value is expanded and used as the name of a startup
- file to read before executing the script. Bash does not use ‘PATH’
- to search for the resultant filename. *Note Bash Startup Files::.
-
-‘BASH_EXECUTION_STRING’
- The command argument to the ‘-c’ invocation option.
-
-‘BASH_LINENO’
- An array variable whose members are the line numbers in source
- files where each corresponding member of ‘FUNCNAME’ was invoked.
- ‘${BASH_LINENO[$i]}’ is the line number in the source file
- (‘${BASH_SOURCE[$i+1]}’) where ‘${FUNCNAME[$i]}’ was called (or
- ‘${BASH_LINENO[$i-1]}’ if referenced within another shell
- function). Use ‘LINENO’ to obtain the current line number.
- Assignments to ‘BASH_LINENO’ have no effect, and it may not be
- unset.
-
-‘BASH_LOADABLES_PATH’
- A colon-separated list of directories in which the ‘enable’ command
- looks for dynamically loadable builtins.
-
-‘BASH_MONOSECONDS’
- 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 ‘EPOCHSECONDS’.
- If ‘BASH_MONOSECONDS’ is unset, it loses its special properties,
- even if it is subsequently reset.
-
-‘BASH_REMATCH’
- An array variable whose members are assigned by the ‘=~’ binary
- operator to the ‘[[’ conditional command (*note Conditional
- Constructs::). The element with index 0 is the portion of the
- string matching the entire regular expression. The element with
- index N is the portion of the string matching the Nth parenthesized
- subexpression.
-
-‘BASH_SOURCE’
- An array variable whose members are the source filenames where the
- corresponding shell function names in the ‘FUNCNAME’ array variable
- are defined. The shell function ‘${FUNCNAME[$i]}’ is defined in
- the file ‘${BASH_SOURCE[$i]}’ and called from
- ‘${BASH_SOURCE[$i+1]}’ Assignments to ‘BASH_SOURCE’ have no effect,
- and it may not be unset.
-
-‘BASH_SUBSHELL’
- Incremented by one within each subshell or subshell environment
- when the shell begins executing in that environment. The initial
- value is 0. If ‘BASH_SUBSHELL’ is unset, it loses its special
- properties, even if it is subsequently reset.
-
-‘BASH_TRAPSIG’
- Set to the signal number corresponding to the trap action being
- executed during its execution. See the description of ‘trap’
- (*note Bourne Shell Builtins::) for information about signal
- numbers and trap execution.
-
-‘BASH_VERSINFO’
- A readonly array variable (*note Arrays::) whose members hold
- version information for this instance of Bash. The values assigned
- to the array members are as follows:
-
- ‘BASH_VERSINFO[0]’
- The major version number (the “release”).
-
- ‘BASH_VERSINFO[1]’
- The minor version number (the “version”).
-
- ‘BASH_VERSINFO[2]’
- The patch level.
-
- ‘BASH_VERSINFO[3]’
- The build version.
-
- ‘BASH_VERSINFO[4]’
- The release status (e.g., ‘beta’).
-
- ‘BASH_VERSINFO[5]’
- The value of ‘MACHTYPE’.
-
-‘BASH_VERSION’
- Expands to a string describing the version of this instance of Bash
- (e.g., 5.2.37(3)-release).
-
-‘BASH_XTRACEFD’
- If set to an integer corresponding to a valid file descriptor, Bash
- writes the trace output generated when ‘set -x’ is enabled to that
- file descriptor, instead of the standard error. This allows
- tracing output to be separated from diagnostic and error messages.
- The file descriptor is closed when ‘BASH_XTRACEFD’ is unset or
- assigned a new value. Unsetting ‘BASH_XTRACEFD’ or assigning it
- the empty string causes the trace output to be sent to the standard
- error. Note that setting ‘BASH_XTRACEFD’ to 2 (the standard error
- file descriptor) and then unsetting it will result in the standard
- error being closed.
-
-‘CHILD_MAX’
- Set the number of exited child status values for the shell to
- remember. Bash will not allow this value to be decreased below a
- POSIX-mandated minimum, and there is a maximum value (currently
- 8192) that this may not exceed. The minimum value is
- system-dependent.
-
-‘COLUMNS’
- Used by the ‘select’ command to determine the terminal width when
- printing selection lists. Automatically set if the ‘checkwinsize’
- option is enabled (*note The Shopt Builtin::), or in an interactive
- shell upon receipt of a ‘SIGWINCH’.
-
-‘COMP_CWORD’
- An index into ‘${COMP_WORDS}’ of the word containing the current
- cursor position. This variable is available only in shell
- functions invoked by the programmable completion facilities (*note
- Programmable Completion::).
-
-‘COMP_KEY’
- The key (or final key of a key sequence) used to invoke the current
- completion function. This variable is available only in shell
- functions and external commands invoked by the programmable
- completion facilities (*note Programmable Completion::).
-
-‘COMP_LINE’
- The current command line. This variable is available only in shell
- functions and external commands invoked by the programmable
- completion facilities (*note Programmable Completion::).
-
-‘COMP_POINT’
- The index of the current cursor position relative to the beginning
- 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
- ‘${#COMP_LINE}’. This variable is available only in shell
- functions and external commands invoked by the programmable
- completion facilities (*note Programmable Completion::).
-
-‘COMP_TYPE’
- Set to an integer value corresponding to the type of attempted
- completion that caused a completion function to be called: <TAB>,
- for normal completion, ‘?’, for listing completions after
- successive tabs, ‘!’, for listing alternatives on partial word
- completion, ‘@’, to list completions if the word is not unmodified,
- or ‘%’, for menu completion. This variable is available only in
- shell functions and external commands invoked by the programmable
- completion facilities (*note Programmable Completion::).
-
-‘COMP_WORDBREAKS’
- The set of characters that the Readline library treats as word
- separators when performing word completion. If ‘COMP_WORDBREAKS’
- is unset, it loses its special properties, even if it is
- subsequently reset.
-
-‘COMP_WORDS’
- An array variable consisting of the individual words in the current
- command line. The line is split into words as Readline would split
- it, using ‘COMP_WORDBREAKS’ as described above. This variable is
- available only in shell functions invoked by the programmable
- completion facilities (*note Programmable Completion::).
-
-‘COMPREPLY’
- An array variable from which Bash reads the possible completions
- generated by a shell function invoked by the programmable
- completion facility (*note Programmable Completion::). Each array
- element contains one possible completion.
-
-‘COPROC’
- An array variable created to hold the file descriptors for output
- from and input to an unnamed coprocess (*note Coprocesses::).
-
-‘DIRSTACK’
- An array variable containing the current contents of the directory
- stack. Directories appear in the stack in the order they are
- displayed by the ‘dirs’ builtin. Assigning to members of this
- array variable may be used to modify directories already in the
- stack, but the ‘pushd’ and ‘popd’ builtins must be used to add and
- remove directories. Assigning to this variable does not change the
- current directory. If ‘DIRSTACK’ is unset, it loses its special
- properties, even if it is subsequently reset.
-
-‘EMACS’
- If Bash finds this variable in the environment when the shell
- starts, and its value is ‘t’, Bash assumes that the shell is
- running in an Emacs shell buffer and disables line editing.
-
-‘ENV’
- Expanded and executed similarly to ‘BASH_ENV’ (*note Bash Startup
- Files::) when an interactive shell is invoked in POSIX mode (*note
- Bash POSIX Mode::).
-
-‘EPOCHREALTIME’
- Each time this parameter is referenced, it expands to the number of
- seconds since the Unix Epoch as a floating-point value with
- micro-second granularity (see the documentation for the C library
- function ‘time’ for the definition of Epoch). Assignments to
- ‘EPOCHREALTIME’ are ignored. If ‘EPOCHREALTIME’ is unset, it loses
- its special properties, even if it is subsequently reset.
-
-‘EPOCHSECONDS’
- Each time this parameter is referenced, it expands to the number of
- seconds since the Unix Epoch (see the documentation for the C
- library function ‘time’ for the definition of Epoch). Assignments
- to ‘EPOCHSECONDS’ are ignored. If ‘EPOCHSECONDS’ is unset, it
- loses its special properties, even if it is subsequently reset.
-
-‘EUID’
- The numeric effective user id of the current user. This variable
- is readonly.
-
-‘EXECIGNORE’
- A colon-separated list of shell patterns (*note Pattern Matching::)
- defining the set of filenames to be ignored by command search using
- ‘PATH’. Files whose full pathnames match one of these patterns are
- not considered executable files for the purposes of completion and
- command execution via ‘PATH’ lookup. This does not affect the
- behavior of the ‘[’, ‘test’, and ‘[[’ commands. Full pathnames in
- the command hash table are not subject to ‘EXECIGNORE’. 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 ‘extglob’ shell option.
-
-‘FCEDIT’
- The editor used as a default by the ‘fc’ builtin command.
-
-‘FIGNORE’
- A colon-separated list of suffixes to ignore when performing
- filename completion. A filename whose suffix matches one of the
- entries in ‘FIGNORE’ is excluded from the list of matched
- filenames. A sample value is ‘.o:~’
-
-‘FUNCNAME’
- 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
- bottom-most element (the one with the highest index) is ‘"main"’.
- This variable exists only when a shell function is executing.
- Assignments to ‘FUNCNAME’ have no effect. If ‘FUNCNAME’ is unset,
- it loses its special properties, even if it is subsequently reset.
-
- This variable can be used with ‘BASH_LINENO’ and ‘BASH_SOURCE’.
- Each element of ‘FUNCNAME’ has corresponding elements in
- ‘BASH_LINENO’ and ‘BASH_SOURCE’ to describe the call stack. For
- instance, ‘${FUNCNAME[$i]}’ was called from the file
- ‘${BASH_SOURCE[$i+1]}’ at line number ‘${BASH_LINENO[$i]}’. The
- ‘caller’ builtin displays the current call stack using this
- information.
-
-‘FUNCNEST’
- 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.
-
-‘GLOBIGNORE’
- A colon-separated list of patterns defining the set of file names
- to be ignored by filename expansion. If a file name matched by a
- filename expansion pattern also matches one of the patterns in
- ‘GLOBIGNORE’, it is removed from the list of matches. The pattern
- matching honors the setting of the ‘extglob’ shell option.
-
-‘GLOBSORT’
- Controls how the results of filename expansion are sorted. The
- value of this variable specifies the sort criteria and sort order
- for the results of filename expansion. If this variable is unset
- or set to the null string, filename expansion uses the historical
- behavior of sorting by name, in ascending lexicographic order as
- determined by the ‘LC_COLLATE’ shell variable.
-
- If set, a valid value begins with an optional ‘+’, which is
- ignored, or ‘-’, which reverses the sort order from ascending to
- descending, followed by a sort specifier. The valid sort
- specifiers are ‘name’, ‘numeric’, ‘size’, ‘mtime’, ‘atime’,
- ‘ctime’, and ‘blocks’, which sort the files on name, names in
- numeric rather than lexicographic order, file size, modification
- time, access time, inode 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 ‘-mtime’ sorts the results in descending
- order by modification time (newest first).
-
- The ‘numeric’ 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 ‘numeric’, names containing
- non-digits sort after all the all-digit names and are sorted by
- name using the traditional behavior.
-
- A sort specifier of ‘nosort’ disables sorting completely; Bash
- returns the results in the order they are read from the file
- system, ignoring any leading ‘-’.
-
- If the sort specifier is missing, it defaults to NAME, so a value
- of ‘+’ is equivalent to the null string, and a value of ‘-’ sorts
- by name in descending order.
-
- Any invalid value restores the historical sorting behavior.
-
-‘GROUPS’
- An array variable containing the list of groups of which the
- current user is a member. Assignments to ‘GROUPS’ have no effect.
- If ‘GROUPS’ is unset, it loses its special properties, even if it
- is subsequently reset.
-
-‘histchars’
- The two or three characters which control history expansion, quick
- substitution, and tokenization (*note History Interaction::). The
- first character is the “history expansion” character, the character
- which begins a history expansion, normally ‘!’. The second
- character is the “quick substitution” character, normally ‘^’.
- 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 “history
- comment” character, normally ‘#’, 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.
-
-‘HISTCMD’
- The history number, or index in the history list, of the current
- command. Assignments to ‘HISTCMD’ have no effect. If ‘HISTCMD’ is
- unset, it loses its special properties, even if it is subsequently
- reset.
-
-‘HISTCONTROL’
- A colon-separated list of values controlling how commands are saved
- on the history list. If the list of values includes ‘ignorespace’,
- lines which begin with a space character are not saved in the
- history list. A value of ‘ignoredups’ causes lines which match the
- previous history entry not to be saved. A value of ‘ignoreboth’ is
- shorthand for ‘ignorespace’ and ‘ignoredups’. A value of
- ‘erasedups’ 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 ‘HISTCONTROL’ is unset,
- or does not include a valid value, Bash saves all lines read by the
- shell parser on the history list, subject to the value of
- ‘HISTIGNORE’. 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 ‘HISTCONTROL’. If
- the first line was not saved, the second and subsequent lines of
- the command are not saved either.
-
-‘HISTFILE’
- The name of the file to which the command history is saved. Bash
- assigns a default value of ‘~/.bash_history’. If ‘HISTFILE’ is
- unset or null, the shell does not save the command history when it
- exits.
-
-‘HISTFILESIZE’
- The maximum number of lines contained in the history file. When
- this variable is assigned a value, the history file is truncated,
- if necessary, to contain no more than the number of history entries
- that total no more than that number of lines by removing the oldest
- entries. If the history list contains multi-line entries, the
- history file may contain more lines than this maximum to avoid
- leaving partial history entries. The history file is also
- truncated to this size after writing it when a shell exits or by
- the ‘history’ 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 ‘HISTSIZE’ after reading any startup files.
-
-‘HISTIGNORE’
- 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 ‘HISTIGNORE’, it is not
- saved on the history list. Each pattern is anchored at the
- beginning of the line and must match the complete line (Bash does
- not implicitly append a ‘*’). Each pattern is tested against the
- line after the checks specified by ‘HISTCONTROL’ are applied. In
- addition to the normal shell pattern matching characters, ‘&’
- matches the previous history line. A backslash escapes the ‘&’;
- 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 ‘HISTIGNORE’. If the first line was not
- saved, the second and subsequent lines of the command are not saved
- either. The pattern matching honors the setting of the ‘extglob’
- shell option.
-
- ‘HISTIGNORE’ subsumes some of the function of ‘HISTCONTROL’. A
- pattern of ‘&’ is identical to ‘ignoredups’, and a pattern of ‘[
- ]*’ is identical to ‘ignorespace’. Combining these two patterns,
- separating them with a colon, provides the functionality of
- ‘ignoreboth’.
-
-‘HISTSIZE’
- The maximum number of commands to remember on the history list. 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 startup files.
-
-‘HISTTIMEFORMAT’
- If this variable is set and not null, its value is used as a format
- string for ‘strftime’(3) to print the time stamp associated with
- each history entry displayed by the ‘history’ builtin. If this
- variable is set, the shell writes time stamps to the history file
- so they may be preserved across shell sessions. This uses the
- history comment character to distinguish timestamps from other
- history lines.
-
-‘HOSTFILE’
- Contains the name of a file in the same format as ‘/etc/hosts’ 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 attempted
- after the value is changed, Bash adds the contents of the new file
- to the existing list. If ‘HOSTFILE’ is set, but has no value, or
- does not name a readable file, Bash attempts to read ‘/etc/hosts’
- to obtain the list of possible hostname completions. When
- ‘HOSTFILE’ is unset, Bash clears the hostname list.
-
-‘HOSTNAME’
- The name of the current host.
-
-‘HOSTTYPE’
- A string describing the machine Bash is running on.
-
-‘IGNOREEOF’
- Controls the action of the shell on receipt of an ‘EOF’ character
- as the sole input. If set, the value is the number of consecutive
- ‘EOF’ characters that can be read as the first character on an
- input line before Bash exits. If the variable is set but does not
- have a numeric value, or the value is null, then the default is 10.
- If the variable is unset, then ‘EOF’ signifies the end of input to
- the shell. This is only in effect for interactive shells.
-
-‘INPUTRC’
- The name of the Readline initialization file, overriding the
- default of ‘~/.inputrc’.
-
-‘INSIDE_EMACS’
- If Bash finds this variable in the environment when the shell
- starts, it assumes that the shell is running in an Emacs shell
- buffer and may disable line editing depending on the value of
- ‘TERM’.
-
-‘LANG’
- Used to determine the locale category for any category not
- specifically selected with a variable starting with ‘LC_’.
-
-‘LC_ALL’
- This variable overrides the value of ‘LANG’ and any other ‘LC_’
- variable specifying a locale category.
-
-‘LC_COLLATE’
- This variable determines the collation order used when sorting the
- results of filename expansion, and determines the behavior of range
- expressions, equivalence classes, and collating sequences within
- filename expansion and pattern matching (*note Filename
- Expansion::).
-
-‘LC_CTYPE’
- This variable determines the interpretation of characters and the
- behavior of character classes within filename expansion and pattern
- matching (*note Filename Expansion::).
-
-‘LC_MESSAGES’
- This variable determines the locale used to translate double-quoted
- strings preceded by a ‘$’ (*note Locale Translation::).
-
-‘LC_NUMERIC’
- This variable determines the locale category used for number
- formatting.
-
-‘LC_TIME’
- This variable determines the locale category used for data and time
- formatting.
-
-‘LINENO’
- The line number in the script or shell function currently
- executing. Line numbers start with 1. When not in a script or
- function, the value is not guaranteed to be meaningful. If
- ‘LINENO’ is unset, it loses its special properties, even if it is
- subsequently reset.
-
-‘LINES’
- Used by the ‘select’ command to determine the column length for
- printing selection lists. Automatically set if the ‘checkwinsize’
- option is enabled (*note The Shopt Builtin::), or in an interactive
- shell upon receipt of a ‘SIGWINCH’.
-
-‘MACHTYPE’
- A string that fully describes the system type on which Bash is
- executing, in the standard GNU CPU-COMPANY-SYSTEM format.
-
-‘MAILCHECK’
- How often (in seconds) that the shell should check for mail in the
- files specified in the ‘MAILPATH’ or ‘MAIL’ variables. The default
- 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.
-
-‘MAPFILE’
- An array variable created to hold the text read by the ‘mapfile’
- builtin when no variable name is supplied.
-
-‘OLDPWD’
- The previous working directory as set by the ‘cd’ builtin.
-
-‘OPTERR’
- If set to the value 1, Bash displays error messages generated by
- the ‘getopts’ builtin command. ‘OPTERR’ is initialized to 1 each
- time the shell is invoked.
-
-‘OSTYPE’
- A string describing the operating system Bash is running on.
-
-‘PIPESTATUS’
- An array variable (*note Arrays::) 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 (*note Shell
- Commands::). Bash sets ‘PIPESTATUS’ after executing multi-element
- pipelines, timed and negated pipelines, simple commands, subshells
- created with the ‘(’ operator, the ‘[[’ and ‘((’ compound commands,
- and after error conditions that result in the shell aborting
- command execution.
-
-‘POSIXLY_CORRECT’
- If this variable is in the environment when Bash starts, the shell
- enters POSIX mode (*note Bash POSIX Mode::) before reading the
- startup files, as if the ‘--posix’ invocation option had been
- supplied. If it is set while the shell is running, Bash 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.
-
-‘PPID’
- The process ID of the shell's parent process. This variable is
- readonly.
-
-‘PROMPT_COMMAND’
- If this variable is set, and is an array, the value of each set
- element is interpreted as a command to execute before printing the
- primary prompt (‘$PS1’). If this is set but not an array variable,
- its value is used as a command to execute instead.
-
-‘PROMPT_DIRTRIM’
- If set to a number greater than zero, the value is used as the
- number of trailing directory components to retain when expanding
- the ‘\w’ and ‘\W’ prompt string escapes (*note Controlling the
- Prompt::). Characters removed are replaced with an ellipsis.
-
-‘PS0’
- The value of this parameter is expanded like ‘PS1’ and displayed by
- interactive shells after reading a command and before the command
- is executed.
-
-‘PS3’
- The value of this variable is used as the prompt for the ‘select’
- command. If this variable is not set, the ‘select’ command prompts
- with ‘#? ’
-
-‘PS4’
- The value of this parameter is expanded like ‘PS1’ and the expanded
- value is the prompt printed before the command line is echoed when
- the ‘-x’ option is set (*note The Set Builtin::). The first
- character of the expanded value is replicated multiple times, as
- necessary, to indicate multiple levels of indirection. The default
- is ‘+ ’.
-
-‘PWD’
- The current working directory as set by the ‘cd’ builtin.
-
-‘RANDOM’
- Each time this parameter is referenced, it expands to a random
- integer between 0 and 32767. Assigning a value to ‘RANDOM’
- initializes (seeds) the sequence of random numbers. Seeding the
- random number generator with the same constant value produces the
- same sequence of values. If ‘RANDOM’ is unset, it loses its
- special properties, even if it is subsequently reset.
-
-‘READLINE_ARGUMENT’
- Any numeric argument given to a Readline command that was defined
- using ‘bind -x’ (*note Bash Builtins::) when it was invoked.
-
-‘READLINE_LINE’
- The contents of the Readline line buffer, for use with ‘bind -x’
- (*note Bash Builtins::).
-
-‘READLINE_MARK’
- The position of the “mark” (saved insertion point) in the Readline
- line buffer, for use with ‘bind -x’ (*note Bash Builtins::). The
- characters between the insertion point and the mark are often
- called the “region”.
-
-‘READLINE_POINT’
- The position of the insertion point in the Readline line buffer,
- for use with ‘bind -x’ (*note Bash Builtins::).
-
-‘REPLY’
- The default variable for the ‘read’ builtin; set to the line read
- when ‘read’ is not supplied a variable name argument.
-
-‘SECONDS’
- This variable expands to the number of seconds since the shell was
- started. Assignment to this variable resets the count to the value
- assigned, and the expanded value becomes the value assigned plus
- the number of seconds since the assignment. The number of seconds
- at shell invocation and the current time are always determined by
- querying the system clock at one-second resolution. If ‘SECONDS’
- is unset, it loses its special properties, even if it is
- subsequently reset.
-
-‘SHELL’
- This environment variable expands to the full pathname to the
- shell. If it is not set when the shell starts, Bash assigns to it
- the full pathname of the current user's login shell.
-
-‘SHELLOPTS’
- A colon-separated list of enabled shell options. Each word in the
- list is a valid argument for the ‘-o’ option to the ‘set’ builtin
- command (*note The Set Builtin::). The options appearing in
- ‘SHELLOPTS’ are those reported as ‘on’ by ‘set -o’. If this
- variable is in the environment when Bash starts up, the shell
- enables each 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.
-
-‘SHLVL’
- Incremented by one each time a new instance of Bash is started.
- This is intended to be a count of how deeply your Bash shells are
- nested.
-
-‘SRANDOM’
- This variable expands to a 32-bit pseudo-random number each time it
- is referenced. The random number generator is not linear on
- systems that support ‘/dev/urandom’ or ‘arc4random’, so each
- returned number has no relationship to the numbers preceding it.
- The random number generator cannot be seeded, so assignments to
- this variable have no effect. If ‘SRANDOM’ is unset, it loses its
- special properties, even if it is subsequently reset.
-
-‘TIMEFORMAT’
- The value of this parameter is used as a format string specifying
- how the timing information for pipelines prefixed with the ‘time’
- reserved word should be displayed. The ‘%’ character introduces 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.
-
- ‘%%’
- A literal ‘%’.
-
- ‘%[P][l]R’
- The elapsed time in seconds.
-
- ‘%[P][l]U’
- The number of CPU seconds spent in user mode.
-
- ‘%[P][l]S’
- The number of CPU seconds spent in system mode.
-
- ‘%P’
- The CPU percentage, computed as (%U + %S) / %R.
-
- The optional P is a digit specifying the precision, the number of
- fractional digits after a decimal point. A value of 0 causes no
- decimal point or fraction to be output. ‘time’ prints at most six
- digits after the decimal point; values of P greater than 6 are
- changed to 6. If P is not specified, ‘time’ prints three digits
- after the decimal point.
-
- The optional ‘l’ specifies a longer format, including minutes, of
- the form MMmSS.FFs. The value of P determines whether or not the
- fraction is included.
-
- If this variable is not set, Bash acts as if it had the value
- $'\nreal\t%3lR\nuser\t%3lU\nsys\t%3lS'
- If the value is null, Bash does not display any timing information.
- A trailing newline is added when the format string is displayed.
-
-‘TMOUT’
- If set to a value greater than zero, the ‘read’ builtin uses the
- value as its default timeout (*note Bash Builtins::). The ‘select’
- command (*note Conditional Constructs::) terminates if input does
- not arrive after ‘TMOUT’ seconds when input is coming from a
- terminal.
-
- In an interactive shell, the value is interpreted as the number of
- seconds to wait for a line of input after issuing the primary
- prompt. Bash terminates after waiting for that number of seconds
- if a complete line of input does not arrive.
-
-‘TMPDIR’
- If set, Bash uses its value as the name of a directory in which
- Bash creates temporary files for the shell's use.
-
-‘UID’
- The numeric real user id of the current user. This variable is
- readonly.
-
-\1f
-File: bash.info, Node: Bash Features, Next: Job Control, Prev: Shell Variables, Up: Top
-
-6 Bash Features
-***************
-
-This chapter describes features unique to Bash.
-
-* Menu:
-
-* Invoking Bash:: Command line options that you can give
- to Bash.
-* Bash Startup Files:: When and how Bash executes scripts.
-* Interactive Shells:: What an interactive shell is.
-* Bash Conditional Expressions:: Primitives used in composing expressions for
- the ‘test’ builtin.
-* Shell Arithmetic:: Arithmetic on shell variables.
-* Aliases:: Substituting one command for another.
-* Arrays:: Array Variables.
-* The Directory Stack:: History of visited directories.
-* Controlling the Prompt:: Customizing the various prompt strings.
-* The Restricted Shell:: A more controlled mode of shell execution.
-* Bash POSIX Mode:: Making Bash behave more closely to what
- the POSIX standard specifies.
-* Shell Compatibility Mode:: How Bash supports behavior that was present
- in earlier versions and has changed.
-
-\1f
-File: bash.info, Node: Invoking Bash, Next: Bash Startup Files, Up: Bash Features
-
-6.1 Invoking Bash
-=================
-
- bash [long-opt] [-ir] [-abefhkmnptuvxdBCDHP] [-o OPTION]
- [-O SHOPT_OPTION] [ARGUMENT ...]
- bash [long-opt] [-abefhkmnptuvxdBCDHP] [-o OPTION]
- [-O SHOPT_OPTION] -c STRING [ARGUMENT ...]
- bash [long-opt] -s [-abefhkmnptuvxdBCDHP] [-o OPTION]
- [-O SHOPT_OPTION] [ARGUMENT ...]
-
- All of the single-character options used with the ‘set’ builtin
-(*note The Set Builtin::) can be used as options when the shell is
-invoked. In addition, there are several multi-character options that
-you can use. These options must appear on the command line before the
-single-character options to be recognized.
-
-‘--debugger’
- Arrange for the debugger profile to be executed before the shell
- starts. Turns on extended debugging mode (see *note The Shopt
- Builtin:: for a description of the ‘extdebug’ option to the ‘shopt’
- builtin).
-
-‘--dump-po-strings’
- Print a list of all double-quoted strings preceded by ‘$’ on the
- standard output in the GNU ‘gettext’ PO (portable object) file
- format. Equivalent to ‘-D’ except for the output format.
-
-‘--dump-strings’
- Equivalent to ‘-D’.
-
-‘--help’
- Display a usage message on standard output and exit successfully.
-
-‘--init-file FILENAME’
-‘--rcfile FILENAME’
- Execute commands from FILENAME (instead of ‘~/.bashrc’) in an
- interactive shell.
-
-‘--login’
- Equivalent to ‘-l’.
-
-‘--noediting’
- Do not use the GNU Readline library (*note Command Line Editing::)
- to read command lines when the shell is interactive.
-
-‘--noprofile’
- Don't load the system-wide startup file ‘/etc/profile’ or any of
- the personal initialization files ‘~/.bash_profile’,
- ‘~/.bash_login’, or ‘~/.profile’ when Bash is invoked as a login
- shell.
-
-‘--norc’
- Don't read the ‘~/.bashrc’ initialization file in an interactive
- shell. This is on by default if the shell is invoked as ‘sh’.
-
-‘--posix’
- Enable POSIX mode; change the behavior of Bash where the default
- operation differs from the POSIX standard to match the standard.
- This is intended to make Bash behave as a strict superset of that
- standard. *Note Bash POSIX Mode::, for a description of the Bash
- POSIX mode.
-
-‘--restricted’
- Equivalent to ‘-r’. Make the shell a restricted shell (*note The
- Restricted Shell::).
-
-‘--verbose’
- Equivalent to ‘-v’. Print shell input lines as they're read.
-
-‘--version’
- Show version information for this instance of Bash on the standard
- output and exit successfully.
-
- There are several single-character options that may be supplied at
-invocation which are not available with the ‘set’ builtin.
-
-‘-c’
- Read and execute commands from the first non-option argument
- COMMAND_STRING, then exit. If there are arguments after the
- COMMAND_STRING, the first argument is assigned to ‘$0’ and any
- remaining arguments are assigned to the positional parameters. The
- assignment to ‘$0’ sets the name of the shell, which is used in
- warning and error messages.
-
-‘-i’
- Force the shell to run interactively. Interactive shells are
- described in *note Interactive Shells::.
-
-‘-l’
- Make this shell act as if it had been directly invoked by login.
- When the shell is interactive, this is equivalent to starting a
- login shell with ‘exec -l bash’. When the shell is not
- interactive, it will read and execute the login shell startup
- files. ‘exec bash -l’ or ‘exec bash --login’ will replace the
- current shell with a Bash login shell. *Note Bash Startup Files::,
- for a description of the special behavior of a login shell.
-
-‘-r’
- Make the shell a restricted shell (*note The Restricted Shell::).
-
-‘-s’
- If this option is present, or if no arguments remain after option
- processing, then Bash reads commands from the standard input. This
- option allows the positional parameters to be set when invoking an
- interactive shell or when reading input through a pipe.
-
-‘-D’
- Print a list of all double-quoted strings preceded by ‘$’ on the
- standard output. These are the strings that are subject to
- language translation when the current locale is not ‘C’ or ‘POSIX’
- (*note Locale Translation::). This implies the ‘-n’ option; no
- commands will be executed.
-
-‘[-+]O [SHOPT_OPTION]’
- SHOPT_OPTION is one of the shell options accepted by the ‘shopt’
- builtin (*note The Shopt Builtin::). If SHOPT_OPTION is present,
- ‘-O’ sets the value of that option; ‘+O’ unsets it. If
- SHOPT_OPTION is not supplied, Bash prints the names and values of
- the shell options accepted by ‘shopt’ on the standard output. If
- the invocation option is ‘+O’, the output is displayed in a format
- that may be reused as input.
-
-‘--’
- A ‘--’ signals the end of options and disables further option
- processing. Any arguments after the ‘--’ are treated as a shell
- script filename (*note Shell Scripts::) and arguments passed to
- that script.
-
-‘-’
- Equivalent to ‘--’.
-
- A “login shell” is one whose first character of argument zero is ‘-’,
-or one invoked with the ‘--login’ option.
-
- An “interactive shell” is one started without non-option arguments,
-unless ‘-s’ is specified, without specifying the ‘-c’ option, and whose
-standard input and standard error are both connected to terminals (as
-determined by isatty(3)), or one started with the ‘-i’ option. *Note
-Interactive Shells::, for more information.
-
- If arguments remain after option processing, and neither the ‘-c’ nor
-the ‘-s’ option has been supplied, the first argument is treated as the
-name of a file containing shell commands (*note Shell Scripts::). When
-Bash is invoked in this fashion, ‘$0’ is set to the name of the file,
-and the positional parameters are set to the remaining arguments. Bash
-reads and executes commands from this file, then exits. Bash's exit
-status is the exit status of the last command executed in the script.
-If no commands are executed, the exit status is 0. Bash first attempts
-to open the file in the current directory, and, if no file is found,
-searches the directories in ‘PATH’ for the script.
-
-\1f
-File: bash.info, Node: Bash Startup Files, Next: Interactive Shells, Prev: Invoking Bash, Up: Bash Features
-
-6.2 Bash Startup Files
-======================
-
-This section describes how Bash executes its startup files. If any of
-the files exist but cannot be read, Bash reports an error. Tildes are
-expanded in filenames as described above under Tilde Expansion (*note
-Tilde Expansion::).
-
- Interactive shells are described in *note Interactive Shells::.
-
-Invoked as an interactive login shell, or with ‘--login’
-........................................................
-
-When Bash is invoked as an interactive login shell, or as a
-non-interactive shell with the ‘--login’ option, it first reads and
-executes commands from the file ‘/etc/profile’, if that file exists.
-After reading that file, it looks for ‘~/.bash_profile’,
-‘~/.bash_login’, and ‘~/.profile’, in that order, and reads and executes
-commands from the first one that exists and is readable. The
-‘--noprofile’ option inhibits this behavior.
-
- When an interactive login shell exits, or a non-interactive login
-shell executes the ‘exit’ builtin command, Bash reads and executes
-commands from the file ‘~/.bash_logout’, if it exists.
-
-Invoked as an interactive non-login shell
-.........................................
-
-When Bash runs as an interactive shell that is not a login shell, it
-reads and executes commands from ‘~/.bashrc’, if that file exists. The
-‘--norc’ option inhibits this behavior. The ‘--rcfile FILE’ option
-causes Bash to use FILE instead of ‘~/.bashrc’.
-
- So, typically, your ‘~/.bash_profile’ contains the line
- if [ -f ~/.bashrc ]; then . ~/.bashrc; fi
-after (or before) any login-specific initializations.
-
-Invoked non-interactively
-.........................
-
-When Bash is started non-interactively, to run a shell script, for
-example, it looks for the variable ‘BASH_ENV’ in the environment,
-expands its value if it appears there, and uses the expanded value as
-the name of a file to read and execute. Bash behaves as if the
-following command were executed:
- if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi
-but does not the value of the ‘PATH’ variable to search for the
-filename.
-
- As noted above, if a non-interactive shell is invoked with the
-‘--login’ option, Bash attempts to read and execute commands from the
-login shell startup files.
-
-Invoked with name ‘sh’
-......................
-
-If Bash is invoked with the name ‘sh’, it tries to mimic the startup
-behavior of historical versions of ‘sh’ as closely as possible, while
-conforming to the POSIX standard as well.
-
- When invoked as an interactive login shell, or as a non-interactive
-shell with the ‘--login’ option, it first attempts to read and execute
-commands from ‘/etc/profile’ and ‘~/.profile’, in that order. The
-‘--noprofile’ option inhibits this behavior.
-
- When invoked as an interactive shell with the name ‘sh’, Bash looks
-for the variable ‘ENV’, expands its value if it is defined, and uses the
-expanded value as the name of a file to read and execute. Since a shell
-invoked as ‘sh’ does not attempt to read and execute commands from any
-other startup files, the ‘--rcfile’ option has no effect.
-
- A non-interactive shell invoked with the name ‘sh’ does not attempt
-to read any other startup files.
-
- When invoked as ‘sh’, Bash enters POSIX mode after reading the
-startup files.
-
-Invoked in POSIX mode
-.....................
-
-When Bash is started in POSIX mode, as with the ‘--posix’ command line
-option, it follows the POSIX standard for startup files. In this mode,
-interactive shells expand the ‘ENV’ variable and read and execute
-commands from the file whose name is the expanded value. No other
-startup files are read.
-
-Invoked by remote shell daemon
-..............................
-
-Bash attempts to determine when it is being run with its standard input
-connected to a network connection, as when executed by the historical
-and rarely-seen remote shell daemon, usually ‘rshd’, or the secure shell
-daemon ‘sshd’. If Bash determines it is being run non-interactively in
-this fashion, it reads and executes commands from ‘~/.bashrc’, if that
-file exists and is readable. Bash does not read this file if invoked as
-‘sh’. The ‘--norc’ option inhibits this behavior, and the ‘--rcfile’
-option makes Bash use a different file instead of ‘~/.bashrc’, but
-neither ‘rshd’ nor ‘sshd’ generally invoke the shell with those options
-or allow them to be specified.
-
-Invoked with unequal effective and real UID/GIDs
-................................................
-
-If Bash is started with the effective user (group) id not equal to the
-real user (group) id, and the ‘-p’ option is not supplied, no startup
-files are read, shell functions are not inherited from the environment,
-the ‘SHELLOPTS’, ‘BASHOPTS’, ‘CDPATH’, and ‘GLOBIGNORE’ variables, if
-they appear in the environment, are ignored, and the effective user id
-is set to the real user id. If the ‘-p’ option is supplied at
-invocation, the startup behavior is the same, but the effective user id
-is not reset.
-
-\1f
-File: bash.info, Node: Interactive Shells, Next: Bash Conditional Expressions, Prev: Bash Startup Files, Up: Bash Features
-
-6.3 Interactive Shells
-======================
-
-* Menu:
-
-* What is an Interactive Shell?:: What determines whether a shell is Interactive.
-* Is this Shell Interactive?:: How to tell if a shell is interactive.
-* Interactive Shell Behavior:: What changes in an interactive shell?
-
-\1f
-File: bash.info, Node: What is an Interactive Shell?, Next: Is this Shell Interactive?, Up: Interactive Shells
-
-6.3.1 What is an Interactive Shell?
------------------------------------
-
-An interactive shell is one started without non-option arguments (unless
-‘-s’ is specified) and without specifying the ‘-c’ option, whose input
-and error output are both connected to terminals (as determined by
-‘isatty(3)’), or one started with the ‘-i’ option.
-
- An interactive shell generally reads from and writes to a user's
-terminal.
-
- The ‘-s’ invocation option may be used to set the positional
-parameters when an interactive shell starts.
-
-\1f
-File: bash.info, Node: Is this Shell Interactive?, Next: Interactive Shell Behavior, Prev: What is an Interactive Shell?, Up: Interactive Shells
-
-6.3.2 Is this Shell Interactive?
---------------------------------
-
-To determine within a startup script whether or not Bash is running
-interactively, test the value of the ‘-’ special parameter. It contains
-‘i’ when the shell is interactive. For example:
-
- case "$-" in
- *i*) echo This shell is interactive ;;
- *) echo This shell is not interactive ;;
- esac
-
- Alternatively, startup scripts may examine the variable ‘PS1’; it is
-unset in non-interactive shells, and set in interactive shells. Thus:
-
- if [ -z "$PS1" ]; then
- echo This shell is not interactive
- else
- echo This shell is interactive
- fi
-
-\1f
-File: bash.info, Node: Interactive Shell Behavior, Prev: Is this Shell Interactive?, Up: Interactive Shells
-
-6.3.3 Interactive Shell Behavior
---------------------------------
-
-When the shell is running interactively, it changes its behavior in
-several ways.
-
- 1. Bash reads and executes startup files as described in *note Bash
- Startup Files::.
-
- 2. Job Control (*note Job Control::) is enabled by default. When job
- control is in effect, Bash ignores the keyboard-generated job
- control signals ‘SIGTTIN’, ‘SIGTTOU’, and ‘SIGTSTP’.
-
- 3. Bash executes the values of the set elements of the
- ‘PROMPT_COMMAND’ array variable as commands before printing the
- primary prompt, ‘$PS1’ (*note Bash Variables::).
-
- 4. Bash expands and displays ‘PS1’ before reading the first line of a
- command, and expands and displays ‘PS2’ before reading the second
- and subsequent lines of a multi-line command. Bash expands and
- displays ‘PS0’ after it reads a command but before executing it.
- See *note Controlling the Prompt::, for a complete list of prompt
- string escape sequences.
-
- 5. Bash uses Readline (*note Command Line Editing::) to read commands
- from the user's terminal.
-
- 6. Bash inspects the value of the ‘ignoreeof’ option to ‘set -o’
- instead of exiting immediately when it receives an ‘EOF’ on its
- standard input when reading a command (*note The Set Builtin::).
-
- 7. Bash enables Command history (*note Bash History Facilities::) and
- history expansion (*note History Interaction::) by default. When a
- shell with history enabled exits, Bash saves the command history to
- the file named by ‘$HISTFILE’.
-
- 8. Alias expansion (*note Aliases::) is performed by default.
-
- 9. In the absence of any traps, Bash ignores ‘SIGTERM’ (*note
- Signals::).
-
- 10. In the absence of any traps, ‘SIGINT’ is caught and handled (*note
- Signals::). ‘SIGINT’ will interrupt some shell builtins.
-
- 11. An interactive login shell sends a ‘SIGHUP’ to all jobs on exit if
- the ‘huponexit’ shell option has been enabled (*note Signals::).
-
- 12. The ‘-n’ option has no effect, whether at invocation or when using
- ‘set -n’ (*note The Set Builtin::).
-
- 13. Bash will check for mail periodically, depending on the values of
- the ‘MAIL’, ‘MAILPATH’, and ‘MAILCHECK’ shell variables (*note Bash
- Variables::).
-
- 14. The shell will not exit on expansion errors due to references to
- unbound shell variables after ‘set -u’ has been enabled (*note The
- Set Builtin::).
-
- 15. The shell will not exit on expansion errors caused by VAR being
- unset or null in ‘${VAR:?WORD}’ expansions (*note Shell Parameter
- Expansion::).
-
- 16. Redirection errors encountered by shell builtins will not cause
- the shell to exit.
-
- 17. When running in POSIX mode, a special builtin returning an error
- status will not cause the shell to exit (*note Bash POSIX Mode::).
-
- 18. A failed ‘exec’ will not cause the shell to exit (*note Bourne
- Shell Builtins::).
-
- 19. Parser syntax errors will not cause the shell to exit.
-
- 20. If the ‘cdspell’ shell option is enabled, the shell will attempt
- simple spelling correction for directory arguments to the ‘cd’
- builtin (see the description of the ‘cdspell’ option to the ‘shopt’
- builtin in *note The Shopt Builtin::). The ‘cdspell’ option is
- only effective in interactive shells.
-
- 21. The shell will check the value of the ‘TMOUT’ variable and exit if
- a command is not read within the specified number of seconds after
- printing ‘$PS1’ (*note Bash Variables::).
-
-\1f
-File: bash.info, Node: Bash Conditional Expressions, Next: Shell Arithmetic, Prev: Interactive Shells, Up: Bash Features
-
-6.4 Bash Conditional Expressions
-================================
-
-Conditional expressions are used by the ‘[[’ compound command (*note
-Conditional Constructs::) and the ‘test’ and ‘[’ builtin commands (*note
-Bourne Shell Builtins::). The ‘test’ and ‘[’ commands determine their
-behavior based on the number of arguments; see the descriptions of those
-commands for any other command-specific actions.
-
- Expressions may be unary or binary, and are formed from the primaries
-listed below. Unary expressions are often used to examine the status of
-a file or shell variable. Binary operators are used for string,
-numeric, and file attribute comparisons.
-
- Bash handles several filenames specially when they are used in
-expressions. If the operating system on which Bash is running provides
-these special files, Bash uses them; otherwise it emulates them
-internally with this behavior: If the FILE argument to one of the
-primaries is of the form ‘/dev/fd/N’, then Bash checks file descriptor
-N. If the FILE argument to one of the primaries is one of ‘/dev/stdin’,
-‘/dev/stdout’, or ‘/dev/stderr’, Bash checks file descriptor 0, 1, or 2,
-respectively.
-
- When used with ‘[[’, the ‘<’ and ‘>’ operators sort lexicographically
-using the current locale. The ‘test’ command uses ASCII ordering.
-
- Unless otherwise specified, primaries that operate on files follow
-symbolic links and operate on the target of the link, rather than the
-link itself.
-
-‘-a FILE’
- True if FILE exists.
-
-‘-b FILE’
- True if FILE exists and is a block special file.
-
-‘-c FILE’
- True if FILE exists and is a character special file.
-
-‘-d FILE’
- True if FILE exists and is a directory.
-
-‘-e FILE’
- True if FILE exists.
-
-‘-f FILE’
- True if FILE exists and is a regular file.
-
-‘-g FILE’
- True if FILE exists and its set-group-id bit is set.
-
-‘-h FILE’
- True if FILE exists and is a symbolic link.
-
-‘-k FILE’
- True if FILE exists and its "sticky" bit is set.
-
-‘-p FILE’
- True if FILE exists and is a named pipe (FIFO).
-
-‘-r FILE’
- True if FILE exists and is readable.
-
-‘-s FILE’
- True if FILE exists and has a size greater than zero.
-
-‘-t FD’
- True if file descriptor FD is open and refers to a terminal.
-
-‘-u FILE’
- True if FILE exists and its set-user-id bit is set.
-
-‘-w FILE’
- True if FILE exists and is writable.
-
-‘-x FILE’
- True if FILE exists and is executable.
-
-‘-G FILE’
- True if FILE exists and is owned by the effective group id.
-
-‘-L FILE’
- True if FILE exists and is a symbolic link.
-
-‘-N FILE’
- True if FILE exists and has been modified since it was last
- accessed.
-
-‘-O FILE’
- True if FILE exists and is owned by the effective user id.
-
-‘-S FILE’
- True if FILE exists and is a socket.
-
-‘FILE1 -ef FILE2’
- True if FILE1 and FILE2 refer to the same device and inode numbers.
-
-‘FILE1 -nt FILE2’
- True if FILE1 is newer (according to modification date) than FILE2,
- or if FILE1 exists and FILE2 does not.
-
-‘FILE1 -ot FILE2’
- True if FILE1 is older than FILE2, or if FILE2 exists and FILE1
- does not.
-
-‘-o OPTNAME’
- True if the shell option OPTNAME is enabled. The list of options
- appears in the description of the ‘-o’ option to the ‘set’ builtin
- (*note The Set Builtin::).
-
-‘-v VARNAME’
- True if the shell variable VARNAME is set (has been assigned a
- value). If VARNAME is an indexed array variable name subscripted
- by ‘@’ or ‘*’, this returns true if the array has any set elements.
- If VARNAME is an associative array variable name subscripted by ‘@’
- or ‘*’, this returns true if an element with that key is set.
-
-‘-R VARNAME’
- True if the shell variable VARNAME is set and is a name reference.
-
-‘-z STRING’
- True if the length of STRING is zero.
-
-‘-n STRING’
-‘STRING’
- True if the length of STRING is non-zero.
-
-‘STRING1 == STRING2’
-‘STRING1 = STRING2’
- True if the strings are equal. When used with the ‘[[’ command,
- this performs pattern matching as described above (*note
- Conditional Constructs::).
-
- ‘=’ should be used with the ‘test’ command for POSIX conformance.
-
-‘STRING1 != STRING2’
- True if the strings are not equal.
-
-‘STRING1 < STRING2’
- True if STRING1 sorts before STRING2 lexicographically.
-
-‘STRING1 > STRING2’
- True if STRING1 sorts after STRING2 lexicographically.
-
-‘ARG1 OP ARG2’
- ‘OP’ is one of ‘-eq’, ‘-ne’, ‘-lt’, ‘-le’, ‘-gt’, or ‘-ge’. These
- arithmetic binary operators return true if ARG1 is equal to, not
- equal to, less than, less than or equal to, greater than, or
- greater than or equal to ARG2, respectively. ARG1 and ARG2 may be
- positive or negative integers. When used with the ‘[[’ command,
- ARG1 and ARG2 are evaluated as arithmetic expressions (*note Shell
- Arithmetic::). Since the expansions the ‘[[’ command performs on
- ARG1 and ARG2 can potentially result in empty strings, arithmetic
- expression evaluation treats those as expressions that evaluate to
- 0.
-
-\1f
-File: bash.info, Node: Shell Arithmetic, Next: Aliases, Prev: Bash Conditional Expressions, Up: Bash Features
-
-6.5 Shell Arithmetic
-====================
-
-The shell allows arithmetic expressions to be evaluated, as one of the
-shell expansions or by using the ‘((’ compound command, the ‘let’ and
-‘declare’ builtins, the arithmetic ‘for’ command, the ‘[[’ conditional
-command, or the ‘-i’ option to the ‘declare’ builtin.
-
- Evaluation is done in the largest fixed-width integers available,
-with no check for overflow, though division by 0 is trapped and flagged
-as an error. The operators and their precedence, associativity, and
-values are the same as in the C language. The following list of
-operators is grouped into levels of equal-precedence operators. The
-levels are listed in order of decreasing precedence.
-
-‘ID++ ID--’
- variable post-increment and post-decrement
-
-‘++ID --ID’
- variable pre-increment and pre-decrement
-
-‘- +’
- unary minus and plus
-
-‘! ~’
- logical and bitwise negation
-
-‘**’
- exponentiation
-
-‘* / %’
- multiplication, division, remainder
-
-‘+ -’
- addition, subtraction
-
-‘<< >>’
- left and right bitwise shifts
-
-‘<= >= < >’
- comparison
-
-‘== !=’
- equality and inequality
-
-‘&’
- bitwise AND
-
-‘^’
- bitwise exclusive OR
-
-‘|’
- bitwise OR
-
-‘&&’
- logical AND
-
-‘||’
- logical OR
-
-‘expr ? if-true-expr : if-false-expr’
- conditional operator
-
-‘= *= /= %= += -= <<= >>= &= ^= |=’
- assignment
-
-‘expr1 , expr2’
- comma
-
- Shell variables are allowed as operands; parameter expansion is
-performed before the expression is evaluated. Within an expression,
-shell variables may also be referenced by name without using the
-parameter expansion syntax. This means you can use X, where X is a
-shell variable name, in an arithmetic expression, and the shell will
-evaluate its value as an expression and use the result. A shell
-variable that is null or unset evaluates to 0 when referenced by name in
-an expression.
-
- The value of a variable is evaluated as an arithmetic expression when
-it is referenced, or when a variable which has been given the ‘integer’
-attribute using ‘declare -i’ is assigned a value. A null value
-evaluates to 0. A shell variable need not have its ‘integer’ attribute
-enabled to be used in an expression.
-
- Integer constants follow the C language definition, without suffixes
-or character constants. Constants with a leading 0 are interpreted as
-octal numbers. A leading ‘0x’ or ‘0X’ denotes hexadecimal. Otherwise,
-numbers take the form [BASE‘#’]N, where the optional BASE is a decimal
-number between 2 and 64 representing the arithmetic base, and N is a
-number in that base. If BASE‘#’ is omitted, then base 10 is used. When
-specifying N, if a non-digit is required, the digits greater than 9 are
-represented by the lowercase letters, the uppercase letters, ‘@’, and
-‘_’, in that order. If BASE is less than or equal to 36, lowercase and
-uppercase letters may be used interchangeably to represent numbers
-between 10 and 35.
-
- Operators are evaluated in precedence order. Sub-expressions in
-parentheses are evaluated first and may override the precedence rules
-above.
-
-\1f
-File: bash.info, Node: Aliases, Next: Arrays, Prev: Shell Arithmetic, Up: Bash Features
-
-6.6 Aliases
-===========
-
-“Aliases” allow a string to be substituted for a word that is in a
-position in the input where it can be the first word of a simple
-command. Aliases have names and corresponding values that are set and
-unset using the ‘alias’ and ‘unalias’ builtin commands (*note Shell
-Builtin Commands::).
-
- If the shell reads an unquoted word in the right position, it checks
-the word to see if it matches an alias name. If it matches, the shell
-replaces the word with the alias value, and reads that value as if it
-had been read instead of the word. The shell doesn't look at any
-characters following the word before attempting alias substitution.
-
- The characters ‘/’, ‘$’, ‘`’, ‘=’ and any of the shell metacharacters
-or quoting characters listed above may not appear in an alias name. The
-replacement text may contain any valid shell input, including shell
-metacharacters. The first word of the replacement text is tested for
-aliases, but a word that is identical to an alias being expanded is not
-expanded a second time. This means that one may alias ‘ls’ to ‘"ls
--F"’, for instance, and Bash does not try to recursively expand the
-replacement text.
-
- If the last character of the alias value is a ‘blank’, then the shell
-checks the next command word following the alias for alias expansion.
-
- Aliases are created and listed with the ‘alias’ command, and removed
-with the ‘unalias’ command.
-
- There is no mechanism for using arguments in the replacement text, as
-in ‘csh’. If arguments are needed, use a shell function (*note Shell
-Functions::) instead.
-
- Aliases are not expanded when the shell is not interactive, unless
-the ‘expand_aliases’ shell option is set using ‘shopt’ (*note The Shopt
-Builtin::).
-
- The rules concerning the definition and use of aliases are somewhat
-confusing. Bash always reads at least one complete line of input, and
-all lines that make up a compound command, before executing any of the
-commands on that line or the compound command. Aliases are expanded
-when a command is read, not when it is executed. Therefore, an alias
-definition appearing on the same line as another command does not take
-effect until the shell reads the next line of input, and an alias
-definition in a compound command does not take effect until the shell
-parses and executes the entire compound command. The commands following
-the alias definition on that line, or in the rest of a compound command,
-are not affected by the new alias. This behavior is also an issue when
-functions are executed. Aliases are expanded when a function definition
-is read, not when the function is executed, because a function
-definition is itself a command. As a consequence, aliases defined in a
-function are not available until after that function is executed. To be
-safe, always put alias definitions on a separate line, and do not use
-‘alias’ in compound commands.
-
- For almost every purpose, shell functions are preferable to aliases.
-
-\1f
-File: bash.info, Node: Arrays, Next: The Directory Stack, Prev: Aliases, Up: Bash Features
-
-6.7 Arrays
-==========
-
-Bash provides one-dimensional indexed and associative array variables.
-Any variable may be used as an indexed array; the ‘declare’ builtin
-explicitly declares an array. There is no maximum limit on the size of
-an array, nor any requirement that members be indexed or assigned
-contiguously. Indexed arrays are referenced using arithmetic
-expressions that must expand to an integer (*note Shell Arithmetic::))
-and are zero-based; associative arrays use arbitrary strings. Unless
-otherwise noted, indexed array indices must be non-negative integers.
-
- The shell performs parameter and variable expansion, arithmetic
-expansion, command substitution, and quote removal on indexed array
-subscripts. Since this can potentially result in empty strings,
-subscript indexing treats those as expressions that evaluate to 0.
-
- The shell performs tilde expansion, parameter and variable expansion,
-arithmetic expansion, command substitution, and quote removal on
-associative array subscripts. Empty strings cannot be used as
-associative array keys.
-
- Bash automatically creates an indexed array if any variable is
-assigned to using the syntax
- NAME[SUBSCRIPT]=VALUE
-
-The SUBSCRIPT is treated as an arithmetic expression that must evaluate
-to a number greater than or equal to zero. To explicitly declare an
-indexed array, use
- declare -a NAME
-(*note Bash Builtins::). The syntax
- declare -a NAME[SUBSCRIPT]
-is also accepted; the SUBSCRIPT is ignored.
-
-Associative arrays are created using
- declare -A NAME
-
- Attributes may be specified for an array variable using the ‘declare’
-and ‘readonly’ builtins. Each attribute applies to all members of an
-array.
-
- Arrays are assigned using compound assignments of the form
- NAME=(VALUE1 VALUE2 ... )
-where each VALUE may be of the form ‘[SUBSCRIPT]=’STRING. Indexed array
-assignments do not require anything but STRING.
-
- Each VALUE in the list undergoes the shell expansions described above
-(*note Shell Expansions::), but VALUEs that are valid variable
-assignments including 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 subscript is
-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
-assignment may be either assignment statements, for which the subscript
-is required, or a list of words that is interpreted as a sequence of
-alternating keys and values: NAME=(KEY1 VALUE1 KEY2 VALUE2 ... ). These
-are treated identically to NAME=( [KEY1]=VALUE1 [KEY2]=VALUE2 ... ).
-The first word in the list determines how the remaining words are
-interpreted; 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 ‘declare’ builtin. Individual
-array elements may be assigned to using the ‘NAME[SUBSCRIPT]=VALUE’
-syntax introduced above.
-
- When assigning to an indexed array, if NAME is subscripted by a
-negative number, that number is interpreted as relative to one greater
-than the maximum index of NAME, 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 *note Shell Parameters:: above.
-
- An array element is referenced using ‘${NAME[SUBSCRIPT]}’. The
-braces are required to avoid conflicts with the shell's filename
-expansion operators. If the SUBSCRIPT is ‘@’ or ‘*’, the word expands
-to all members of the array NAME, unless otherwise 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
-double-quoted, ‘${NAME[*]}’ expands to a single word with the value of
-each array member separated by the first character of the ‘IFS’
-variable, and ‘${NAME[@]}’ expands each element of NAME to a separate
-word. When there are no array members, ‘${NAME[@]}’ 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 ‘@’ and ‘*’.
-
- ‘${#NAME[SUBSCRIPT]}’ expands to the length of ‘${NAME[SUBSCRIPT]}’.
-If SUBSCRIPT is ‘@’ or ‘*’, the expansion is the number of elements in
-the array.
-
- If the SUBSCRIPT used to reference an element of an indexed array
-evaluates 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 refers to the
-last element.
-
- Referencing an array variable without a subscript is equivalent to
-referencing with a subscript of 0. Any reference to a variable using a
-valid subscript is valid; Bash creates an array if necessary.
-
- 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. ${!NAME[@]} and ${!NAME[*]} expand to the indices assigned
-in array variable NAME. The treatment when in double quotes is similar
-to the expansion of the special parameters ‘@’ and ‘*’ within double
-quotes.
-
- The ‘unset’ builtin is used to destroy arrays. ‘unset
-NAME[SUBSCRIPT]’ unsets the array element at index SUBSCRIPT. Negative
-subscripts to indexed arrays are interpreted as described above.
-Unsetting the last element of an array variable does not unset the
-variable. ‘unset NAME’, where NAME is an array, removes the entire
-array. ‘unset NAME[SUBSCRIPT]’ behaves differently depending on the
-array type when SUBSCRIPT is ‘*’ or ‘@’. When NAME is an associative
-array, it removes the element with key ‘*’ or ‘@’. If NAME is an
-indexed array, ‘unset’ removes all of the elements, but does not remove
-the array itself.
-
- When using a variable name with a subscript as an argument to a
-command, such as with ‘unset’, without using the word expansion syntax
-described above (e.g., unset a[4]), the argument is subject to the
-shell's filename expansion. Quote the argument if pathname expansion is
-not desired (e.g., unset 'a[4]').
-
- The ‘declare’, ‘local’, and ‘readonly’ builtins each accept a ‘-a’
-option to specify an indexed array and a ‘-A’ option to specify an
-associative array. If both options are supplied, ‘-A’ takes precedence.
-The ‘read’ builtin accepts a ‘-a’ option to assign a list of words read
-from the standard input to an array, and can read values from the
-standard input into individual array elements. The ‘set’ and ‘declare’
-builtins display array values in a way that allows them to be reused as
-input. Other builtins accept array name arguments as well (e.g.,
-‘mapfile’); see the descriptions of individual builtins for details.
-The shell provides a number of builtin array variables.
-
-\1f
-File: bash.info, Node: The Directory Stack, Next: Controlling the Prompt, Prev: Arrays, Up: Bash Features
-
-6.8 The Directory Stack
-=======================
-
-* Menu:
-
-* Directory Stack Builtins:: Bash builtin commands to manipulate
- the directory stack.
-
-The directory stack is a list of recently-visited directories. The
-‘pushd’ builtin adds directories to the stack as it changes the current
-directory, and the ‘popd’ builtin removes specified directories from the
-stack and changes the current directory to the directory removed. The
-‘dirs’ builtin displays the contents of the directory stack. The
-current directory is always the "top" of the directory stack.
-
- The contents of the directory stack are also visible as the value of
-the ‘DIRSTACK’ shell variable.
-
-\1f
-File: bash.info, Node: Directory Stack Builtins, Up: The Directory Stack
-
-6.8.1 Directory Stack Builtins
-------------------------------
-
-‘dirs’
- dirs [-clpv] [+N | -N]
-
- Without options, display the list of currently remembered
- directories. Directories are added to the list with the ‘pushd’
- command; the ‘popd’ command removes directories from the list. The
- current directory is always the first directory in the stack.
-
- Options, if supplied, have the following meanings:
-
- ‘-c’
- Clears the directory stack by deleting all of the elements.
- ‘-l’
- Produces a listing using full pathnames; the default listing
- format uses a tilde to denote the home directory.
- ‘-p’
- Causes ‘dirs’ to print the directory stack with one entry per
- line.
- ‘-v’
- Causes ‘dirs’ to print the directory stack with one entry per
- line, prefixing each entry with its index in the stack.
- ‘+N’
- Displays the Nth directory (counting from the left of the list
- printed by ‘dirs’ when invoked without options), starting with
- zero.
- ‘-N’
- Displays the Nth directory (counting from the right of the
- list printed by ‘dirs’ when invoked without options), starting
- with zero.
-
-‘popd’
- popd [-n] [+N | -N]
-
- Remove elements from the directory stack. The elements are
- numbered from 0 starting at the first directory listed by ‘dirs’;
- that is, ‘popd’ is equivalent to ‘popd +0’.
-
- When no arguments are given, ‘popd’ removes the top directory from
- the stack and changes to the new top directory.
-
- Arguments, if supplied, have the following meanings:
-
- ‘-n’
- Suppress the normal change of directory when removing
- directories from the stack, only manipulate the stack.
- ‘+N’
- Remove the Nth directory (counting from the left of the list
- printed by ‘dirs’), starting with zero, from the stack.
- ‘-N’
- Remove the Nth directory (counting from the right of the list
- printed by ‘dirs’), starting with zero, from the stack.
-
- If the top element of the directory stack is modified, and the ‘-n’
- option was not supplied, ‘popd’ uses the ‘cd’ builtin to change to
- the directory at the top of the stack. If the ‘cd’ fails, ‘popd’
- returns a non-zero value.
-
- Otherwise, ‘popd’ returns an unsuccessful status if an invalid
- option is specified, the directory stack is empty, or N specifies a
- non-existent directory stack entry.
-
- If the ‘popd’ command is successful, Bash runs ‘dirs’ to show the
- final contents of the directory stack, and the return status is 0.
-
-‘pushd’
- pushd [-n] [+N | -N | DIR]
-
- Add a directory to the top of the directory stack, or rotate the
- stack, making the new top of the stack the current working
- directory. With no arguments, ‘pushd’ exchanges the top two
- elements of the directory stack.
-
- Arguments, if supplied, have the following meanings:
-
- ‘-n’
- Suppress the normal change of directory when rotating or
- adding directories to the stack, only manipulate the stack.
- ‘+N’
- Rotate the stack so that the Nth directory (counting from the
- left of the list printed by ‘dirs’, starting with zero) is at
- the top.
- ‘-N’
- Rotate the stack so that the Nth directory (counting from the
- right of the list printed by ‘dirs’, starting with zero) is at
- the top.
- ‘DIR’
- Make DIR be the top of the stack.
-
- After the stack has been modified, if the ‘-n’ option was not
- supplied, ‘pushd’ uses the ‘cd’ builtin to change to the directory
- at the top of the stack. If the ‘cd’ fails, ‘pushd’ returns a
- non-zero value.
-
- Otherwise, if no arguments are supplied, ‘pushd’ returns zero
- unless the directory stack is empty. When rotating the directory
- stack, ‘pushd’ returns zero unless the directory stack is empty or
- N specifies a non-existent directory stack element.
-
- If the ‘pushd’ command is successful, Bash runs ‘dirs’ to show the
- final contents of the directory stack.
-
-\1f
-File: bash.info, Node: Controlling the Prompt, Next: The Restricted Shell, Prev: The Directory Stack, Up: Bash Features
-
-6.9 Controlling the Prompt
-==========================
-
-In addition, the following table describes the special characters which
-can appear in the prompt variables ‘PS0’, ‘PS1’, ‘PS2’, and ‘PS4’:
-
-‘\a’
- A bell character.
-‘\d’
- The date, in "Weekday Month Date" format (e.g., "Tue May 26").
-‘\D{FORMAT}’
- The FORMAT is passed to ‘strftime’(3) and the result is inserted
- into the prompt string; an empty FORMAT results in a
- locale-specific time representation. The braces are required.
-‘\e’
- An escape character.
-‘\h’
- The hostname, up to the first ‘.’.
-‘\H’
- The hostname.
-‘\j’
- The number of jobs currently managed by the shell.
-‘\l’
- The basename of the shell's terminal device name (e.g., "ttys0").
-‘\n’
- A newline.
-‘\r’
- A carriage return.
-‘\s’
- The name of the shell: the basename of ‘$0’ (the portion following
- the final slash).
-‘\t’
- The time, in 24-hour HH:MM:SS format.
-‘\T’
- The time, in 12-hour HH:MM:SS format.
-‘\@’
- The time, in 12-hour am/pm format.
-‘\A’
- The time, in 24-hour HH:MM format.
-‘\u’
- The username of the current user.
-‘\v’
- The Bash version (e.g., 2.00).
-‘\V’
- The Bash release, version + patchlevel (e.g., 2.00.0).
-‘\w’
- The value of the ‘PWD’ shell variable (‘$PWD’), with ‘$HOME’
- abbreviated with a tilde (uses the ‘$PROMPT_DIRTRIM’ variable).
-‘\W’
- The basename of ‘$PWD’, with ‘$HOME’ abbreviated with a tilde.
-‘\!’
- The history number of this command.
-‘\#’
- The command number of this command.
-‘\$’
- If the effective uid is 0, ‘#’, otherwise ‘$’.
-‘\NNN’
- The character whose ASCII code is the octal value NNN.
-‘\\’
- A backslash.
-‘\[’
- Begin a sequence of non-printing characters. Thiss could be used
- to embed a terminal control sequence into the prompt.
-‘\]’
- End a sequence of non-printing characters.
-
- The command number and the history number are usually different: the
-history number of a command is its position in the history list, which
-may include commands restored from the history file (*note Bash History
-Facilities::), while the command number is the position in the sequence
-of commands executed during the current shell session.
-
- After the string is decoded, it is expanded via parameter expansion,
-command substitution, arithmetic expansion, and quote removal, subject
-to the value of the ‘promptvars’ shell option (*note The Shopt
-Builtin::). This can have unwanted side effects if escaped portions of
-the string appear within command substitution or contain characters
-special to word expansion.
-
-\1f
-File: bash.info, Node: The Restricted Shell, Next: Bash POSIX Mode, Prev: Controlling the Prompt, Up: Bash Features
-
-6.10 The Restricted Shell
-=========================
-
-If Bash is started with the name ‘rbash’, or the ‘--restricted’ or ‘-r’
-option is supplied at invocation, the shell becomes RESTRICTED. A
-restricted shell is used to set up an environment more controlled than
-the standard shell. A restricted shell behaves identically to ‘bash’
-with the exception that the following are disallowed or not performed:
-
- • Changing directories with the ‘cd’ builtin.
- • Setting or unsetting the values of the ‘SHELL’, ‘PATH’, ‘HISTFILE’,
- ‘ENV’, or ‘BASH_ENV’ variables.
- • Specifying command names containing slashes.
- • Specifying a filename containing a slash as an argument to the ‘.’
- builtin command.
- • Using the ‘-p’ option to the ‘.’ builtin command to specify a
- search path.
- • Specifying a filename containing a slash as an argument to the
- ‘history’ builtin command.
- • Specifying a filename containing a slash as an argument to the ‘-p’
- option to the ‘hash’ builtin command.
- • Importing function definitions from the shell environment at
- startup.
- • Parsing the value of ‘SHELLOPTS’ from the shell environment at
- startup.
- • Redirecting output using the ‘>’, ‘>|’, ‘<>’, ‘>&’, ‘&>’, and ‘>>’
- redirection operators.
- • Using the ‘exec’ builtin to replace the shell with another command.
- • Adding or deleting builtin commands with the ‘-f’ and ‘-d’ options
- to the ‘enable’ builtin.
- • Using the ‘enable’ builtin command to enable disabled shell
- builtins.
- • Specifying the ‘-p’ option to the ‘command’ builtin.
- • Turning off restricted mode with ‘set +r’ or ‘shopt -u
- restricted_shell’.
-
- These restrictions are enforced after any startup files are read.
-
- When a command that is found to be a shell script is executed (*note
-Shell Scripts::), ‘rbash’ turns off any restrictions in the shell
-spawned to execute the script.
-
- The restricted shell mode is only one component of a useful
-restricted environment. It should be accompanied by setting ‘PATH’ to a
-value that allows execution of only a few verified commands (commands
-that allow shell escapes are particularly vulnerable), changing the
-current directory to a non-writable directory other than ‘$HOME’ after
-login, not allowing the restricted shell to execute shell scripts, and
-cleaning the environment of variables that cause some commands to modify
-their behavior (e.g., ‘VISUAL’ or ‘PAGER’).
-
- Modern systems provide more secure ways to implement a restricted
-environment, such as ‘jails’, ‘zones’, or ‘containers’.
-
-\1f
-File: bash.info, Node: Bash POSIX Mode, Next: Shell Compatibility Mode, Prev: The Restricted Shell, Up: Bash Features
-
-6.11 Bash and POSIX
-===================
-
-6.11.1 What is POSIX?
----------------------
-
-POSIX is the name for a family of standards based on Unix. A number of
-Unix services, tools, and functions are part of the standard, ranging
-from the basic system calls and C library functions to common
-applications and tools to system administration and management.
-
- The POSIX Shell and Utilities standard was originally developed by
-IEEE Working Group 1003.2 (POSIX.2). The first edition of the 1003.2
-standard was published in 1992. It was merged with the original IEEE
-1003.1 Working Group and is currently maintained by the Austin Group (a
-joint working group of the IEEE, The Open Group and ISO/IEC SC22/WG15).
-Today the Shell and Utilities are a volume within the set of documents
-that make up IEEE Std 1003.1-2024, and thus the former POSIX.2 (from
-1992) is now part of the current unified POSIX standard.
-
- The Shell and Utilities volume concentrates on the command
-interpreter interface and utility programs commonly executed from the
-command line or by other programs. The standard is freely available on
-the web at
-<https://pubs.opengroup.org/onlinepubs/9799919799/utilities/contents.html>.
-
- Bash is concerned with the aspects of the shell's behavior defined by
-the POSIX Shell and Utilities volume. The shell command language has of
-course been standardized, including the basic flow control and program
-execution constructs, I/O redirection and pipelines, argument handling,
-variable expansion, and quoting.
-
- The special builtins, which must be implemented as part of the shell
-to provide the desired functionality, are specified as being part of the
-shell; examples of these are ‘eval’ and ‘export’. Other utilities
-appear in the sections of POSIX not devoted to the shell which are
-commonly (and in some cases must be) implemented as builtin commands,
-such as ‘read’ and ‘test’. POSIX also specifies aspects of the shell's
-interactive behavior, including job control and command line editing.
-Only vi-style line editing commands have been standardized; emacs
-editing commands were left out due to objections.
-
-6.11.2 Bash POSIX Mode
-----------------------
-
-Although Bash is an implementation of the POSIX shell specification,
-there are areas where the Bash default behavior differs from the
-specification. The Bash “posix mode” changes the Bash behavior in these
-areas so that it conforms more strictly to the standard.
-
- Starting Bash with the ‘--posix’ command-line option or executing
-‘set -o posix’ while Bash is running will cause Bash to conform more
-closely to the POSIX standard by changing the behavior to match that
-specified by POSIX in areas where the Bash default differs.
-
- When invoked as ‘sh’, Bash enters POSIX mode after reading the
-startup files.
-
- The following list is what's changed when POSIX mode is in effect:
-
- 1. Bash ensures that the ‘POSIXLY_CORRECT’ variable is set.
-
- 2. Bash reads and executes the POSIX startup files (‘$ENV’) rather
- than the normal Bash files (*note Bash Startup Files::).
-
- 3. Alias expansion is always enabled, even in non-interactive shells.
-
- 4. Reserved words appearing in a context where reserved words are
- recognized do not undergo alias expansion.
-
- 5. Alias expansion is performed when initially parsing a command
- substitution. The default (non-posix) mode generally defers it,
- when enabled, until the command substitution is executed. This
- means that command substitution will not expand aliases that are
- defined after the command substitution is initially parsed (e.g.,
- as part of a function definition).
-
- 6. The ‘time’ reserved word may be used by itself as a simple command.
- When used in this way, it displays timing statistics for the shell
- and its completed children. The ‘TIMEFORMAT’ variable controls the
- format of the timing information.
-
- 7. The parser does not recognize ‘time’ as a reserved word if the next
- token begins with a ‘-’.
-
- 8. When parsing and expanding a ${...} expansion that appears within
- double quotes, single quotes are no longer special and cannot be
- used to quote a closing brace or other special character, unless
- the operator is one of those defined to perform pattern removal.
- In this case, they do not have to appear as matched pairs.
-
- 9. Redirection operators do not perform filename expansion on the word
- in a redirection unless the shell is interactive.
-
- 10. Redirection operators do not perform word splitting on the word in
- a redirection.
-
- 11. Function names may not be the same as one of the POSIX special
- builtins.
-
- 12. Tilde expansion is only performed on assignments preceding a
- command name, rather than on all assignment statements on the line.
-
- 13. While variable indirection is available, it may not be applied to
- the ‘#’ and ‘?’ special parameters.
-
- 14. Expanding the ‘*’ special parameter in a pattern context where the
- expansion is double-quoted does not treat the ‘$*’ as if it were
- double-quoted.
-
- 15. A double quote character (‘"’) is treated specially when it
- appears in a backquoted command substitution in the body of a
- here-document that undergoes expansion. That means, for example,
- that a backslash preceding a double quote character will escape it
- and the backslash will be removed.
-
- 16. Command substitutions don't set the ‘?’ special parameter. The
- exit status of a simple command without a command word is still the
- exit status of the last command substitution that occurred while
- evaluating the variable assignments and redirections in that
- command, but that does not happen until after all of the
- assignments and redirections.
-
- 17. Literal tildes that appear as the first character in elements of
- the ‘PATH’ variable are not expanded as described above under *note
- Tilde Expansion::.
-
- 18. Command lookup finds POSIX special builtins before shell
- functions, including output printed by the ‘type’ and ‘command’
- builtins.
-
- 19. Even if a shell function whose name contains a slash was defined
- before entering POSIX mode, the shell will not execute a function
- whose name contains one or more slashes.
-
- 20. When a command in the hash table no longer exists, Bash will
- re-search ‘$PATH’ to find the new location. This is also available
- with ‘shopt -s checkhash’.
-
- 21. Bash will not insert a command without the execute bit set into
- the command hash table, even if it returns it as a (last-ditch)
- result from a ‘$PATH’ search.
-
- 22. The message printed by the job control code and builtins when a
- job exits with a non-zero status is "Done(status)".
-
- 23. The message printed by the job control code and builtins when a
- job is stopped is "Stopped(SIGNAME)", where SIGNAME is, for
- example, ‘SIGTSTP’.
-
- 24. If the shell is interactive, Bash does not perform job
- notifications between executing commands in lists separated by ‘;’
- or newline. Non-interactive shells print status messages after a
- foreground job in a list completes.
-
- 25. If the shell is interactive, Bash waits until the next prompt
- before printing the status of a background job that changes status
- or a foreground job that terminates due to a signal.
- Non-interactive shells print status messages after a foreground job
- completes.
-
- 26. Bash permanently removes jobs from the jobs table after notifying
- the user of their termination via the ‘wait’ or ‘jobs’ builtins.
- It removes the job from the jobs list after notifying the user of
- its termination, but the status is still available via ‘wait’, as
- long as ‘wait’ is supplied a PID argument.
-
- 27. The ‘vi’ editing mode will invoke the ‘vi’ editor directly when
- the ‘v’ command is run, instead of checking ‘$VISUAL’ and
- ‘$EDITOR’.
-
- 28. Prompt expansion enables the POSIX ‘PS1’ and ‘PS2’ expansions of
- ‘!’ to the history number and ‘!!’ to ‘!’, and Bash performs
- parameter expansion on the values of ‘PS1’ and ‘PS2’ regardless of
- the setting of the ‘promptvars’ option.
-
- 29. The default history file is ‘~/.sh_history’ (this is the default
- value the shell assigns to ‘$HISTFILE’).
-
- 30. The ‘!’ character does not introduce history expansion within a
- double-quoted string, even if the ‘histexpand’ option is enabled.
-
- 31. When printing shell function definitions (e.g., by ‘type’), Bash
- does not print the ‘function’ reserved word unless necessary.
-
- 32. Non-interactive shells exit if a syntax error in an arithmetic
- expansion results in an invalid expression.
-
- 33. Non-interactive shells exit if a parameter expansion error occurs.
-
- 34. If a POSIX special builtin returns an error status, a
- non-interactive shell exits. The fatal errors are those listed in
- the POSIX standard, and include things like passing incorrect
- options, redirection errors, variable assignment errors for
- assignments preceding the command name, and so on.
-
- 35. A non-interactive shell exits with an error status if a variable
- assignment error occurs when no command name follows the assignment
- statements. A variable assignment error occurs, for example, when
- trying to assign a value to a readonly variable.
-
- 36. A non-interactive shell exits with an error status if a variable
- assignment error occurs in an assignment statement preceding a
- special builtin, but not with any other simple command. For any
- other simple command, the shell aborts execution of that command,
- and execution continues at the top level ("the shell shall not
- perform any further processing of the command in which the error
- occurred").
-
- 37. A non-interactive shell exits with an error status if the
- iteration variable in a ‘for’ statement or the selection variable
- in a ‘select’ statement is a readonly variable or has an invalid
- name.
-
- 38. Non-interactive shells exit if FILENAME in ‘.’ FILENAME is not
- found.
-
- 39. Non-interactive shells exit if there is a syntax error in a script
- read with the ‘.’ or ‘source’ builtins, or in a string processed by
- the ‘eval’ builtin.
-
- 40. Non-interactive shells exit if the ‘export’, ‘readonly’ or ‘unset’
- builtin commands get an argument that is not a valid identifier,
- and they are not operating on shell functions. These errors force
- an exit because these are special builtins.
-
- 41. Assignment statements preceding POSIX special builtins persist in
- the shell environment after the builtin completes.
-
- 42. The ‘command’ builtin does not prevent builtins that take
- assignment statements as arguments from expanding them as
- assignment statements; when not in POSIX mode, declaration commands
- lose their assignment statement expansion properties when preceded
- by ‘command’.
-
- 43. Enabling POSIX mode has the effect of setting the
- ‘inherit_errexit’ option, so subshells spawned to execute command
- substitutions inherit the value of the ‘-e’ option from the parent
- shell. When the ‘inherit_errexit’ option is not enabled, Bash
- clears the ‘-e’ option in such subshells.
-
- 44. Enabling POSIX mode has the effect of setting the ‘shift_verbose’
- option, so numeric arguments to ‘shift’ that exceed the number of
- positional parameters will result in an error message.
-
- 45. Enabling POSIX mode has the effect of setting the
- ‘interactive_comments’ option (*note Comments::).
-
- 46. The ‘.’ and ‘source’ builtins do not search the current directory
- for the filename argument if it is not found by searching ‘PATH’.
-
- 47. When the ‘alias’ builtin displays alias definitions, it does not
- display them with a leading ‘alias ’ unless the ‘-p’ option is
- supplied.
-
- 48. The ‘bg’ builtin uses the required format to describe each job
- placed in the background, which does not include an indication of
- whether the job is the current or previous job.
-
- 49. When the ‘cd’ builtin is invoked in logical mode, and the pathname
- constructed from ‘$PWD’ and the directory name supplied as an
- argument does not refer to an existing directory, ‘cd’ will fail
- instead of falling back to physical mode.
-
- 50. When the ‘cd’ builtin cannot change a directory because the length
- of the pathname constructed from ‘$PWD’ and the directory name
- supplied as an argument exceeds ‘PATH_MAX’ when canonicalized, ‘cd’
- will attempt to use the supplied directory name.
-
- 51. When the ‘xpg_echo’ option is enabled, Bash does not attempt to
- interpret any arguments to ‘echo’ as options. ‘echo’ displays each
- argument after converting escape sequences.
-
- 52. The ‘export’ and ‘readonly’ builtin commands display their output
- in the format required by POSIX.
-
- 53. When listing the history, the ‘fc’ builtin does not include an
- indication of whether or not a history entry has been modified.
-
- 54. The default editor used by ‘fc’ is ‘ed’.
-
- 55. ‘fc’ treats extra arguments as an error instead of ignoring them.
-
- 56. If there are too many arguments supplied to ‘fc -s’, ‘fc’ prints
- an error message and returns failure.
-
- 57. The output of ‘kill -l’ prints all the signal names on a single
- line, separated by spaces, without the ‘SIG’ prefix.
-
- 58. The ‘kill’ builtin does not accept signal names with a ‘SIG’
- prefix.
-
- 59. The ‘kill’ builtin returns a failure status if any of the pid or
- job arguments are invalid or if sending the specified signal to any
- of them fails. In default mode, ‘kill’ returns success if the
- signal was successfully sent to any of the specified processes.
-
- 60. The ‘printf’ builtin uses ‘double’ (via ‘strtod’) to convert
- arguments corresponding to floating point conversion specifiers,
- instead of ‘long double’ if it's available. The ‘L’ length
- modifier forces ‘printf’ to use ‘long double’ if it's available.
-
- 61. The ‘pwd’ builtin verifies that the value it prints is the same as
- the current directory, even if it is not asked to check the file
- system with the ‘-P’ option.
-
- 62. The ‘read’ builtin may be interrupted by a signal for which a trap
- has been set. If Bash receives a trapped signal while executing
- ‘read’, the trap handler executes and ‘read’ returns an exit status
- greater than 128.
-
- 63. When the ‘set’ builtin is invoked without options, it does not
- display shell function names and definitions.
-
- 64. When the ‘set’ builtin is invoked without options, it displays
- variable values without quotes, unless they contain shell
- metacharacters, even if the result contains nonprinting characters.
-
- 65. The ‘test’ builtin compares strings using the current locale when
- evaluating the ‘<’ and ‘>’ binary operators.
-
- 66. The ‘test’ builtin's ‘-t’ unary primary requires an argument.
- Historical versions of ‘test’ made the argument optional in certain
- cases, and Bash attempts to accommodate those for backwards
- compatibility.
-
- 67. The ‘trap’ builtin displays signal names without the leading
- ‘SIG’.
-
- 68. The ‘trap’ builtin doesn't check the first argument for a possible
- signal specification and revert the signal handling to the original
- disposition if it is, unless that argument consists solely of
- digits and is a valid signal number. If users want to reset the
- handler for a given signal to the original disposition, they should
- use ‘-’ as the first argument.
-
- 69. ‘trap -p’ without arguments displays signals whose dispositions
- are set to SIG_DFL and those that were ignored when the shell
- started, not just trapped signals.
-
- 70. The ‘type’ and ‘command’ builtins will not report a non-executable
- file as having been found, though the shell will attempt to execute
- such a file if it is the only so-named file found in ‘$PATH’.
-
- 71. The ‘ulimit’ builtin uses a block size of 512 bytes for the ‘-c’
- and ‘-f’ options.
-
- 72. The ‘unset’ builtin with the ‘-v’ option specified returns a fatal
- error if it attempts to unset a ‘readonly’ or ‘non-unsettable’
- variable, which causes a non-interactive shell to exit.
-
- 73. When asked to unset a variable that appears in an assignment
- statement preceding the command, the ‘unset’ builtin attempts to
- unset a variable of the same name in the current or previous scope
- as well. This implements the required "if an assigned variable is
- further modified by the utility, the modifications made by the
- utility shall persist" behavior.
-
- 74. The arrival of ‘SIGCHLD’ when a trap is set on ‘SIGCHLD’ does not
- interrupt the ‘wait’ builtin and cause it to return immediately.
- The trap command is run once for each child that exits.
-
- 75. Bash removes an exited background process's status from the list
- of such statuses after the ‘wait’ builtin returns it.
-
- There is additional POSIX behavior that Bash does not implement by
-default even when in POSIX mode. Specifically:
-
- 1. POSIX requires that word splitting be byte-oriented. That is, each
- _byte_ in the value of ‘IFS’ potentially splits a word, even if
- that byte is part of a multibyte character in ‘IFS’ or part of
- multibyte character in the word. Bash allows multibyte characters
- in the value of ‘IFS’, treating a valid multibyte character as a
- single delimiter, and will not split a valid multibyte character
- even if one of the bytes composing that character appears in ‘IFS’.
- This is POSIX interpretation 1560, further modified by issue 1924.
-
- 2. The ‘fc’ builtin checks ‘$EDITOR’ as a program to edit history
- entries if ‘FCEDIT’ is unset, rather than defaulting directly to
- ‘ed’. ‘fc’ uses ‘ed’ if ‘EDITOR’ is unset.
-
- 3. As noted above, Bash requires the ‘xpg_echo’ option to be enabled
- for the ‘echo’ builtin to be fully conformant.
-
- Bash can be configured to be POSIX-conformant by default, by
-specifying the ‘--enable-strict-posix-default’ to ‘configure’ when
-building (*note Optional Features::).
-
-\1f
-File: bash.info, Node: Shell Compatibility Mode, Prev: Bash POSIX Mode, Up: Bash Features
-
-6.12 Shell Compatibility Mode
-=============================
-
-Bash-4.0 introduced the concept of a “shell compatibility level”,
-specified as a set of options to the shopt builtin (‘compat31’,
-‘compat32’, ‘compat40’, ‘compat41’, and so on). There is only one
-current compatibility level - each option is mutually exclusive. The
-compatibility level is intended to allow users to select behavior from
-previous versions that is incompatible with newer versions while they
-migrate scripts to use current features and behavior. It's intended to
-be a temporary solution.
-
- This section does not mention behavior that is standard for a
-particular version (e.g., setting ‘compat32’ means that quoting the
-right hand side of the regexp matching operator quotes special regexp
-characters in the word, which is default behavior in bash-3.2 and
-subsequent versions).
-
- If a user enables, say, ‘compat32’, it may affect the behavior of
-other compatibility levels up to and including the current compatibility
-level. The idea is that each compatibility level controls behavior that
-changed in that version of Bash, but that behavior may have been present
-in earlier versions. For instance, the change to use locale-based
-comparisons with the ‘[[’ command came in bash-4.1, and earlier versions
-used ASCII-based comparisons, so enabling ‘compat32’ will enable
-ASCII-based comparisons as well. That granularity may not be sufficient
-for all uses, and as a result users should employ compatibility levels
-carefully. Read the documentation for a particular feature to find out
-the current behavior.
-
- Bash-4.3 introduced a new shell variable: ‘BASH_COMPAT’. The value
-assigned to this variable (a decimal version number like 4.2, or an
-integer corresponding to the ‘compat’NN option, like 42) determines the
-compatibility level.
-
- Starting with bash-4.4, Bash began deprecating older compatibility
-levels. Eventually, the options will be removed in favor of
-‘BASH_COMPAT’.
-
- Bash-5.0 was the final version for which there was an individual
-shopt option for the previous version. ‘BASH_COMPAT’ is the only
-mechanism to control the compatibility level in versions newer than
-bash-5.0.
-
- The following table describes the behavior changes controlled by each
-compatibility level setting. The ‘compat’NN tag is used as shorthand
-for setting the compatibility level to NN using one of the following
-mechanisms. For versions prior to bash-5.0, the compatibility level may
-be set using the corresponding ‘compat’NN shopt option. For bash-4.3
-and later versions, the ‘BASH_COMPAT’ variable is preferred, and it is
-required for bash-5.1 and later versions.
-
-‘compat31’
- • Quoting the rhs of the ‘[[’ command's regexp matching operator
- (=~) has no special effect
-
-‘compat40’
- • The ‘<’ and ‘>’ operators to the ‘[[’ command do not consider
- the current locale when comparing strings; they use ASCII
- ordering. Bash versions prior to bash-4.1 use ASCII collation
- and strcmp(3); bash-4.1 and later use the current locale's
- collation sequence and strcoll(3).
-
-‘compat41’
- • In POSIX mode, ‘time’ may be followed by options and still be
- recognized as a reserved word (this is POSIX interpretation
- 267).
- • In POSIX mode, the parser requires that an even number of
- single quotes occur in the WORD portion of a double-quoted
- ${...} parameter expansion and treats them specially, so that
- characters within the single quotes are considered quoted
- (this is POSIX interpretation 221).
-
-‘compat42’
- • The replacement string in double-quoted pattern substitution
- does not undergo quote removal, as it does in versions after
- bash-4.2.
- • In POSIX mode, single quotes are considered special when
- expanding the WORD portion of a double-quoted ${...} parameter
- expansion and can be used to quote a closing brace or other
- special character (this is part of POSIX interpretation 221);
- in later versions, single quotes are not special within
- double-quoted word expansions.
-
-‘compat43’
- • Word expansion errors are considered non-fatal errors that
- cause the current command to fail, even in POSIX mode (the
- default behavior is to make them fatal errors that cause the
- shell to exit).
- • When executing a shell function, the loop state
- (while/until/etc.) is not reset, so ‘break’ or ‘continue’ in
- that function will break or continue loops in the calling
- context. Bash-4.4 and later reset the loop state to prevent
- this.
-
-‘compat44’
- • The shell sets up the values used by ‘BASH_ARGV’ and
- ‘BASH_ARGC’ so they can expand to the shell's positional
- parameters even if extended debugging mode is not enabled.
- • A subshell inherits loops from its parent context, so ‘break’
- or ‘continue’ will cause the subshell to exit. Bash-5.0 and
- later reset the loop state to prevent the exit.
- • Variable assignments preceding builtins like ‘export’ and
- ‘readonly’ that set attributes continue to affect variables
- with the same name in the calling environment even if the
- shell is not in POSIX mode.
-
-‘compat50 (set using BASH_COMPAT)’
- • Bash-5.1 changed the way ‘$RANDOM’ is generated to introduce
- slightly more randomness. If the shell compatibility level is
- set to 50 or lower, it reverts to the method from bash-5.0 and
- previous versions, so seeding the random number generator by
- assigning a value to ‘RANDOM’ will produce the same sequence
- as in bash-5.0.
- • If the command hash table is empty, Bash versions prior to
- bash-5.1 printed an informational message to that effect, even
- when producing output that can be reused as input. Bash-5.1
- suppresses that message when the ‘-l’ option is supplied.
-
-‘compat51 (set using BASH_COMPAT)’
- • The ‘unset’ builtin will unset the array ‘a’ given an argument
- like ‘a[@]’. Bash-5.2 will unset an element with key ‘@’
- (associative arrays) or remove all the elements without
- unsetting the array (indexed arrays).
- • Arithmetic commands ( ((...)) ) and the expressions in an
- arithmetic for statement can be expanded more than once.
- • Expressions used as arguments to arithmetic operators in the
- ‘[[’ conditional command can be expanded more than once.
- • The expressions in substring parameter brace expansion can be
- expanded more than once.
- • The expressions in the $(( ... )) word expansion can be
- expanded more than once.
- • Arithmetic expressions used as indexed array subscripts can be
- expanded more than once.
- • ‘test -v’, when given an argument of ‘A[@]’, where A is an
- existing associative array, will return true if the array has
- any set elements. Bash-5.2 will look for and report on a key
- named ‘@’.
- • the ${PARAMETER[:]=VALUE} word expansion will return VALUE,
- before any variable-specific transformations have been
- performed (e.g., converting to lowercase). Bash-5.2 will
- return the final value assigned to the variable.
- • Parsing command substitutions will behave as if extended
- globbing (*note The Shopt Builtin::) is enabled, so that
- parsing a command substitution containing an extglob pattern
- (say, as part of a shell function) will not fail. This
- assumes the intent is to enable extglob before the command is
- executed and word expansions are performed. It will fail at
- word expansion time if extglob hasn't been enabled by the time
- the command is executed.
-
-‘compat52 (set using BASH_COMPAT)’
- • The ‘test’ builtin uses its historical algorithm to parse
- parenthesized subexpressions when given five or more
- arguments.
- • If the ‘-p’ or ‘-P’ option is supplied to the ‘bind’ builtin,
- ‘bind’ treats any arguments remaining after option processing
- as bindable command names, and displays any key sequences
- bound to those commands, instead of treating the arguments as
- key sequences to bind.
- • Interactive shells will notify the user of completed jobs
- while sourcing a script. Newer versions defer notification
- until script execution completes.
-
-\1f
-File: bash.info, Node: Job Control, Next: Command Line Editing, Prev: Bash Features, Up: Top
-
-7 Job Control
-*************
-
-This chapter discusses what job control is, how it works, and how Bash
-allows you to access its facilities.
-
-* Menu:
-
-* Job Control Basics:: How job control works.
-* Job Control Builtins:: Bash builtin commands used to interact
- with job control.
-* Job Control Variables:: Variables Bash uses to customize job
- control.
-
-\1f
-File: bash.info, Node: Job Control Basics, Next: Job Control Builtins, Up: Job Control
-
-7.1 Job Control Basics
-======================
-
-Job control refers to the ability to selectively stop (suspend) the
-execution of processes and continue (resume) their execution at a later
-point. A user typically employs this facility via an interactive
-interface supplied jointly by the operating system kernel's terminal
-driver and Bash.
-
- The shell associates a JOB with each pipeline. It keeps a table of
-currently executing jobs, which the ‘jobs’ command will display. Each
-job has a “job number”, which ‘jobs’ displays between brackets. Job
-numbers start at 1. When Bash starts a job asynchronously, it prints a
-line that looks like:
- [1] 25647
-indicating that this job is job number 1 and that the process ID of the
-last process in the pipeline associated with this job is 25647. All of
-the processes in a single pipeline are members of the same job. Bash
-uses the JOB abstraction as the basis for job control.
-
- To facilitate the implementation of the user interface to job
-control, each process has a “process group ID”, and the operating system
-maintains the notion of a current terminal process group ID. This
-terminal process group ID is associated with the “controlling terminal”.
-
- Processes that have the same process group ID are said to be part of
-the same “process group”. Members of the foreground process group
-(processes whose process group ID is equal to the current terminal
-process group ID) receive keyboard-generated signals such as ‘SIGINT’.
-Processes in the foreground process group are said to be foreground
-processes. Background processes are those whose process group ID
-differs from the controlling terminal's; such processes are immune to
-keyboard-generated signals. Only foreground processes are allowed to
-read from or, if the user so specifies with ‘stty tostop’, write to the
-controlling terminal. The system sends a ‘SIGTTIN’ (‘SIGTTOU’) signal
-to background processes which attempt to read from (write to when
-‘tostop’ is in effect) the terminal, which, unless caught, suspends the
-process.
-
- If the operating system on which Bash is running supports job
-control, Bash contains facilities to use it. Typing the “suspend”
-character (typically ‘^Z’, Control-Z) while a process is running stops
-that process and returns control to Bash. Typing the “delayed suspend”
-character (typically ‘^Y’, Control-Y) causes the process to stop when it
-attempts to read input from the terminal, and returns control to Bash.
-The user then manipulates the state of this job, using the ‘bg’ command
-to continue it in the background, the ‘fg’ command to continue it in the
-foreground, or the ‘kill’ command to kill it. The suspend character
-takes effect immediately, and has the additional side effect of
-discarding any pending output and typeahead. If you want to force a
-background process to stop, or stop a process that's not associated with
-your terminal session, send it the ‘SIGSTOP’ signal using ‘kill’.
-
- There are a number of ways to refer to a job in the shell. The ‘%’
-character introduces a “job specification” (jobspec).
-
- Job number ‘n’ may be referred to as ‘%n’. A job may also be
-referred to using a prefix of the name used to start it, or using a
-substring that appears in its command line. For example, ‘%ce’ refers
-to a job whose command name begins with ‘ce’. Using ‘%?ce’, on the
-other hand, refers to any job containing the string ‘ce’ in its command
-line. If the prefix or substring matches more than one job, Bash
-reports an error.
-
- The symbols ‘%%’ and ‘%+’ refer to the shell's notion of the “current
-job”. A single ‘%’ (with no accompanying job specification) also refers
-to the current job. ‘%-’ refers to the “previous job”. When a job
-starts in the background, a job stops while in the foreground, or a job
-is resumed in the background, it becomes the current job. The job that
-was the current job becomes the previous job. When the current job
-terminates, the previous job becomes the current job. If there is only
-a single job, ‘%+’ and ‘%-’ can both be used to refer to that job. In
-output pertaining to jobs (e.g., the output of the ‘jobs’ command), the
-current job is always marked with a ‘+’, and the previous job with a
-‘-’.
-
- Simply naming a job can be used to bring it into the foreground: ‘%1’
-is a synonym for ‘fg %1’, bringing job 1 from the background into the
-foreground. Similarly, ‘%1 &’ resumes job 1 in the background,
-equivalent to ‘bg %1’.
-
- The shell learns immediately whenever a job changes state. Normally,
-Bash waits until it is about to print a prompt before notifying the user
-about changes in a job's status so as to not interrupt any other output,
-though it will notify of changes in a job's status after a foreground
-command in a list completes, before executing the next command in the
-list. If the ‘-b’ option to the ‘set’ builtin is enabled, Bash reports
-status changes immediately (*note The Set Builtin::). Bash executes any
-trap on ‘SIGCHLD’ for each child process that terminates.
-
- When a job terminates and Bash notifies the user about it, Bash
-removes the job from the jobs table. It will not appear in ‘jobs’
-output, but ‘wait’ will report its exit status, as long as it's supplied
-the process ID associated with the job as an argument. When the table
-is empty, job numbers start over at 1.
-
- If a user attempts to exit Bash while jobs are stopped, (or running,
-if the ‘checkjobs’ option is enabled - see *note The Shopt Builtin::),
-the shell prints a warning message, and if the ‘checkjobs’ option is
-enabled, lists the jobs and their statuses. The ‘jobs’ command may then
-be used to inspect their status. If the user immediately attempts to
-exit again, without an intervening command, Bash does not print another
-warning, and terminates any stopped jobs.
-
- When the shell is waiting for a job or process using the ‘wait’
-builtin, and job control is enabled, ‘wait’ will return when the job
-changes state. The ‘-f’ option causes ‘wait’ to wait until the job or
-process terminates before returning.
-
-\1f
-File: bash.info, Node: Job Control Builtins, Next: Job Control Variables, Prev: Job Control Basics, Up: Job Control
-
-7.2 Job Control Builtins
-========================
-
-‘bg’
- bg [JOBSPEC ...]
-
- Resume each suspended job JOBSPEC in the background, as if it had
- been started with ‘&’. If JOBSPEC is not supplied, the shell uses
- its notion of the current job. ‘bg’ returns zero unless it is run
- when job control is not enabled, or, when run with job control
- enabled, any JOBSPEC was not found or specifies a job that was
- started without job control.
-
-‘fg’
- fg [JOBSPEC]
-
- Resume the job JOBSPEC in the foreground and make it the current
- job. If JOBSPEC is not supplied, ‘fg’ resumes the current job.
- The return status is that of the command placed into the
- foreground, or non-zero if run when job control is disabled or,
- when run with job control enabled, JOBSPEC does not specify a valid
- job or JOBSPEC specifies a job that was started without job
- control.
-
-‘jobs’
- jobs [-lnprs] [JOBSPEC]
- jobs -x COMMAND [ARGUMENTS]
-
- The first form lists the active jobs. The options have the
- following meanings:
-
- ‘-l’
- List process IDs in addition to the normal information.
-
- ‘-n’
- Display information only about jobs that have changed status
- since the user was last notified of their status.
-
- ‘-p’
- List only the process ID of the job's process group leader.
-
- ‘-r’
- Display only running jobs.
-
- ‘-s’
- Display only stopped jobs.
-
- If JOBSPEC is supplied, ‘jobs’ restricts output to information
- about that job. If JOBSPEC is not supplied, ‘jobs’ lists the
- status of all jobs. The return status is zero unless an invalid
- option is encountered or an invalid JOBSPEC is supplied.
-
- If the ‘-x’ option is supplied, ‘jobs’ replaces any JOBSPEC found
- in COMMAND or ARGUMENTS with the corresponding process group ID,
- and executes COMMAND, passing it ARGUMENTs, returning its exit
- status.
-
-‘kill’
- kill [-s SIGSPEC] [-n SIGNUM] [-SIGSPEC] ID [...]
- kill -l|-L [EXIT_STATUS]
-
- Send a signal specified by SIGSPEC or SIGNUM to the processes named
- by each ID. Each ID may be a job specification JOBSPEC or process
- ID PID. SIGSPEC is either a case-insensitive signal name such as
- ‘SIGINT’ (with or without the ‘SIG’ prefix) or a signal number;
- SIGNUM is a signal number. If SIGSPEC and SIGNUM are not present,
- ‘kill’ sends ‘SIGTERM’.
-
- The ‘-l’ option lists the signal names. If any arguments are
- supplied when ‘-l’ is supplied, ‘kill’ lists the names of the
- signals corresponding to the arguments, and the return status is
- zero. EXIT_STATUS is a number specifying a signal number or the
- exit status of a process terminated by a signal; if it is supplied,
- ‘kill’ prints the name of the signal that caused the process to
- terminate. ‘kill’ assumes that process exit statuses are greater
- than 128; anything less than that is a signal number. The ‘-L’
- option is equivalent to ‘-l’.
-
- The return status is zero if at least one signal was successfully
- sent, or non-zero if an error occurs or an invalid option is
- encountered.
-
-‘wait’
- wait [-fn] [-p VARNAME] [ID ...]
-
- Wait until the child process specified by each ID exits and return
- the exit status of the last ID. Each ID may be a process ID PID or
- a job specification JOBSPEC; if a jobspec is supplied, ‘wait’ waits
- for all processes in the job.
-
- If no options or IDs are supplied, ‘wait’ waits for all running
- background jobs and the last-executed process substitution, if its
- process id is the same as $!, and the return status is zero.
-
- If the ‘-n’ option is supplied, ‘wait’ waits for any one of the IDs
- or, if no IDs are supplied, any job or process substitution, to
- complete and returns its exit status. If none of the supplied IDs
- is a child of the shell, or if no arguments are supplied and the
- shell has no unwaited-for children, the exit status is 127.
-
- If the ‘-p’ option is supplied, ‘wait’ assigns the process or job
- identifier of the job for which the exit status is returned to the
- variable VARNAME named by the option argument. The variable, which
- cannot be readonly, will be unset initially, before any assignment.
- This is useful only when used with the ‘-n’ option.
-
- Supplying the ‘-f’ option, when job control is enabled, forces
- ‘wait’ to wait for each ID to terminate before returning its
- status, instead of returning when it changes status.
-
- If none of the IDs specify one of the shell's an active child
- processes, the return status is 127. If ‘wait’ is interrupted by a
- signal, any VARNAME will remain unset, and the return status will
- be greater than 128, as described above (*note Signals::).
- Otherwise, the return status is the exit status of the last ID.
-
-‘disown’
- disown [-ar] [-h] [ID ...]
-
- Without options, remove each ID from the table of active jobs.
- Each ID may be a job specification JOBSPEC or a process ID PID; if
- ID is a PID, ‘disown’ uses the job containing PID as JOBSPEC.
-
- If the ‘-h’ option is supplied, ‘disown’ does not remove the jobs
- corresponding to each ‘id’ from the jobs table, but rather marks
- them so the shell does not send ‘SIGHUP’ to the job if the shell
- receives a ‘SIGHUP’.
-
- If no ID is supplied, the ‘-a’ option means to remove or mark all
- jobs; the ‘-r’ option without an ID argument removes or marks
- running jobs. If no ID is supplied, and neither the ‘-a’ nor the
- ‘-r’ option is supplied, ‘disown’ removes or marks the current job.
-
- The return value is 0 unless an ID does not specify a valid job.
-
-‘suspend’
- suspend [-f]
-
- Suspend the execution of this shell until it receives a ‘SIGCONT’
- signal. A login shell, or a shell without job control enabled,
- cannot be suspended; the ‘-f’ option will override this and force
- the suspension. The return status is 0 unless the shell is a login
- shell or job control is not enabled and ‘-f’ is not supplied.
-
- When job control is not active, the ‘kill’ and ‘wait’ builtins do not
-accept JOBSPEC arguments. They must be supplied process IDs.
-
-\1f
-File: bash.info, Node: Job Control Variables, Prev: Job Control Builtins, Up: Job Control
-
-7.3 Job Control Variables
-=========================
-
-‘auto_resume’
- This variable controls how the shell interacts with the user and
- job control. If this variable exists then simple commands
- consisting of only a single word, without redirections, are treated
- as candidates for resumption of an existing job. There is no
- ambiguity allowed; if there is more than one job beginning with or
- containing the word, then this selects the most recently accessed
- job. The name of a stopped job, in this context, is the command
- line used to start it, as displayed by ‘jobs’. If this variable is
- set to the value ‘exact’, the word must match the name of a stopped
- job exactly; if set to ‘substring’, the word needs to match a
- substring of the name of a stopped job. The ‘substring’ value
- provides functionality analogous to the ‘%?string’ job ID (*note
- Job Control Basics::). If set to any other value (e.g., ‘prefix’),
- the word must be a prefix of a stopped job's name; this provides
- functionality analogous to the ‘%string’ job ID.
-
-\1f
-File: bash.info, Node: Command Line Editing, Next: Using History Interactively, Prev: Job Control, Up: Top
-
-8 Command Line Editing
-**********************
-
-This chapter describes the basic features of the GNU command line
-editing interface. Command line editing is provided by the Readline
-library, which is used by several different programs, including Bash.
-Command line editing is enabled by default when using an interactive
-shell, unless the ‘--noediting’ option is supplied at shell invocation.
-Line editing is also used when using the ‘-e’ option to the ‘read’
-builtin command (*note Bash Builtins::). By default, the line editing
-commands are similar to those of Emacs; a vi-style line editing
-interface is also available. Line editing can be enabled at any time
-using the ‘-o emacs’ or ‘-o vi’ options to the ‘set’ builtin command
-(*note The Set Builtin::), or disabled using the ‘+o emacs’ or ‘+o vi’
-options to ‘set’.
-
-* Menu:
-
-* Introduction and Notation:: Notation used in this text.
-* Readline Interaction:: The minimum set of commands for editing a line.
-* Readline Init File:: Customizing Readline from a user's view.
-* Bindable Readline Commands:: A description of most of the Readline commands
- available for binding
-* Readline vi Mode:: A short description of how to make Readline
- behave like the vi editor.
-* Programmable Completion:: How to specify the possible completions for
- a specific command.
-* Programmable Completion Builtins:: Builtin commands to specify how to
- complete arguments for a particular command.
-* A Programmable Completion Example:: An example shell function for
- generating possible completions.
-
-\1f
-File: bash.info, Node: Introduction and Notation, Next: Readline Interaction, Up: Command Line Editing
-
-8.1 Introduction to Line Editing
-================================
-
-The following paragraphs use Emacs style to describe the notation used
-to represent keystrokes.
-
- The text ‘C-k’ is read as "Control-K" and describes the character
-produced when the <k> key is pressed while the Control key is depressed.
-
- The text ‘M-k’ is read as "Meta-K" and describes the character
-produced when the Meta key (if you have one) is depressed, and the <k>
-key is pressed (a “meta character”), then both are released. The Meta
-key is labeled <ALT> or <Option> on many keyboards. On keyboards with
-two keys labeled <ALT> (usually to either side of the space bar), the
-<ALT> on the left side is generally set to work as a Meta key. One of
-the <ALT> keys may also be configured as some other modifier, such as a
-Compose key for typing accented characters.
-
- On some keyboards, the Meta key modifier produces characters with the
-eighth bit (0200) set. You can use the ‘enable-meta-key’ variable to
-control whether or not it does this, if the keyboard allows it. On many
-others, the terminal or terminal emulator converts the metafied key to a
-key sequence beginning with <ESC> as described in the next paragraph.
-
- If you do not have a Meta or <ALT> key, or another key working as a
-Meta key, you can generally achieve the latter effect by typing <ESC>
-_first_, and then typing <k>. The <ESC> character is known as the “meta
-prefix”).
-
- Either process is known as “metafying” the <k> key.
-
- If your Meta key produces a key sequence with the <ESC> meta prefix,
-you can make ‘M-key’ key bindings you specify (see ‘Key Bindings’ in
-*note Readline Init File Syntax::) do the same thing by setting the
-‘force-meta-prefix’ variable.
-
- The text ‘M-C-k’ is read as "Meta-Control-k" and describes the
-character produced by metafying ‘C-k’.
-
- In addition, several keys have their own names. Specifically, <DEL>,
-<ESC>, <LFD>, <SPC>, <RET>, and <TAB> all stand for themselves when seen
-in this text, or in an init file (*note Readline Init File::). If your
-keyboard lacks a <LFD> key, typing <C-j> will output the appropriate
-character. The <RET> key may be labeled <Return> or <Enter> on some
-keyboards.
-
-\1f
-File: bash.info, Node: Readline Interaction, Next: Readline Init File, Prev: Introduction and Notation, Up: Command Line Editing
-
-8.2 Readline Interaction
-========================
-
-Often during an interactive session you type in a long line of text,
-only to notice that the first word on the line is misspelled. The
-Readline library gives you a set of commands for manipulating the text
-as you type it in, allowing you to just fix your typo, and not forcing
-you to retype the majority of the line. Using these editing commands,
-you move the cursor to the place that needs correction, and delete or
-insert the text of the corrections. Then, when you are satisfied with
-the line, you simply press <RET>. You do not have to be at the end of
-the line to press <RET>; the entire line is accepted regardless of the
-location of the cursor within the line.
-
-* Menu:
-
-* Readline Bare Essentials:: The least you need to know about Readline.
-* Readline Movement Commands:: Moving about the input line.
-* Readline Killing Commands:: How to delete text, and how to get it back!
-* Readline Arguments:: Giving numeric arguments to commands.
-* Searching:: Searching through previous lines.
-
-\1f
-File: bash.info, Node: Readline Bare Essentials, Next: Readline Movement Commands, Up: Readline Interaction
-
-8.2.1 Readline Bare Essentials
-------------------------------
-
-In order to enter characters into the line, simply type them. The typed
-character appears where the cursor was, and then the cursor moves one
-space to the right. If you mistype a character, you can use your erase
-character to back up and delete the mistyped character.
-
- Sometimes you may mistype a character, and not notice the error until
-you have typed several other characters. In that case, you can type
-‘C-b’ to move the cursor to the left, and then correct your mistake.
-Afterwards, you can move the cursor to the right with ‘C-f’.
-
- When you add text in the middle of a line, you will notice that
-characters to the right of the cursor are "pushed over" to make room for
-the text that you have inserted. Likewise, when you delete text behind
-the cursor, characters to the right of the cursor are "pulled back" to
-fill in the blank space created by the removal of the text. These are
-the bare essentials for editing the text of an input line:
-
-‘C-b’
- Move back one character.
-‘C-f’
- Move forward one character.
-<DEL> or <Backspace>
- Delete the character to the left of the cursor.
-‘C-d’
- Delete the character underneath the cursor.
-Printing characters
- Insert the character into the line at the cursor.
-‘C-_’ or ‘C-x C-u’
- Undo the last editing command. You can undo all the way back to an
- empty line.
-
-Depending on your configuration, the <Backspace> key might be set to
-delete the character to the left of the cursor and the <DEL> key set to
-delete the character underneath the cursor, like ‘C-d’, rather than the
-character to the left of the cursor.
-
-\1f
-File: bash.info, Node: Readline Movement Commands, Next: Readline Killing Commands, Prev: Readline Bare Essentials, Up: Readline Interaction
-
-8.2.2 Readline Movement Commands
---------------------------------
-
-The above table describes the most basic keystrokes that you need in
-order to do editing of the input line. For your convenience, many other
-commands are available in addition to ‘C-b’, ‘C-f’, ‘C-d’, and <DEL>.
-Here are some commands for moving more rapidly within the line.
-
-‘C-a’
- Move to the start of the line.
-‘C-e’
- Move to the end of the line.
-‘M-f’
- Move forward a word, where a word is composed of letters and
- digits.
-‘M-b’
- Move backward a word.
-‘C-l’
- Clear the screen, reprinting the current line at the top.
-
- Notice how ‘C-f’ moves forward a character, while ‘M-f’ moves forward
-a word. It is a loose convention that control keystrokes operate on
-characters while meta keystrokes operate on words.
-
-\1f
-File: bash.info, Node: Readline Killing Commands, Next: Readline Arguments, Prev: Readline Movement Commands, Up: Readline Interaction
-
-8.2.3 Readline Killing Commands
--------------------------------
-
-“Killing” text means to delete the text from the line, but to save it
-away for later use, usually by “yanking” (re-inserting) it back into the
-line. ("Cut" and "paste" are more recent jargon for "kill" and "yank".)
-
- If the description for a command says that it "kills" text, then you
-can be sure that you can get the text back in a different (or the same)
-place later.
-
- When you use a kill command, the text is saved in a “kill-ring”. Any
-number of consecutive kills save all of the killed text together, so
-that when you yank it back, you get it all. The kill ring is not line
-specific; the text that you killed on a previously typed line is
-available to be yanked back later, when you are typing another line.
-
- Here is the list of commands for killing text.
-
-‘C-k’
- Kill the text from the current cursor position to the end of the
- line.
-
-‘M-d’
- Kill from the cursor to the end of the current word, or, if between
- words, to the end of the next word. Word boundaries are the same
- as those used by ‘M-f’.
-
-‘M-<DEL>’
- Kill from the cursor to the start of the current word, or, if
- between words, to the start of the previous word. Word boundaries
- are the same as those used by ‘M-b’.
-
-‘C-w’
- Kill from the cursor to the previous whitespace. This is different
- than ‘M-<DEL>’ because the word boundaries differ.
-
- Here is how to “yank” the text back into the line. Yanking means to
-copy the most-recently-killed text from the kill buffer into the line at
-the current cursor position.
-
-‘C-y’
- Yank the most recently killed text back into the buffer at the
- cursor.
-
-‘M-y’
- Rotate the kill-ring, and yank the new top. You can only do this
- if the prior command is ‘C-y’ or ‘M-y’.
-
-\1f
-File: bash.info, Node: Readline Arguments, Next: Searching, Prev: Readline Killing Commands, Up: Readline Interaction
-
-8.2.4 Readline Arguments
-------------------------
-
-You can pass numeric arguments to Readline commands. Sometimes the
-argument acts as a repeat count, other times it is the sign of the
-argument that is significant. If you pass a negative argument to a
-command which normally acts in a forward direction, that command will
-act in a backward direction. For example, to kill text back to the
-start of the line, you might type ‘M-- C-k’.
-
- The general way to pass numeric arguments to a command is to type the
-Meta key and then digits ("meta digits") before the command. If the
-first "digit" typed is a minus sign (‘-’), then the sign of the argument
-will be negative. Once you have typed one meta digit to get the
-argument started, you can type the remainder of the digits, and then the
-command. For example, to give the ‘C-d’ command an argument of 10, you
-could type ‘M-1 0 C-d’, which will delete the next ten characters on the
-input line.
-
-\1f
-File: bash.info, Node: Searching, Prev: Readline Arguments, Up: Readline Interaction
-
-8.2.5 Searching for Commands in the History
--------------------------------------------
-
-Readline provides commands for searching through the command history
-(*note Bash History Facilities::) for lines containing a specified
-string. There are two search modes: “incremental” and
-“non-incremental”.
-
- Incremental searches begin before the user has finished typing the
-search string. As each character of the search string is typed,
-Readline displays the next entry from the history matching the string
-typed so far. An incremental search requires only as many characters as
-needed to find the desired history entry. When using emacs editing
-mode, type ‘C-r’ to search backward in the history for a particular
-string. Typing ‘C-s’ searches forward through the history. The
-characters present in the value of the ‘isearch-terminators’ variable
-are used to terminate an incremental search. If that variable has not
-been assigned a value, the <ESC> and ‘C-j’ characters terminate an
-incremental search. ‘C-g’ aborts an incremental search and restores the
-original line. When the search is terminated, the history entry
-containing the search string becomes the current line.
-
- To find other matching entries in the history list, type ‘C-r’ or
-‘C-s’ as appropriate. This searches backward or forward in the history
-for the next entry matching the search string typed so far. Any other
-key sequence bound to a Readline command terminates the search and
-executes that command. For instance, a <RET> terminates the search and
-accepts the line, thereby executing the command from the history list.
-A movement command will terminate the search, make the last line found
-the current line, and begin editing.
-
- Readline remembers the last incremental search string. If two ‘C-r’s
-are typed without any intervening characters defining a new search
-string, Readline uses any remembered search string.
-
- Non-incremental searches read the entire search string before
-starting to search for matching history entries. The search string may
-be typed by the user or be part of the contents of the current line.
-
-\1f
-File: bash.info, Node: Readline Init File, Next: Bindable Readline Commands, Prev: Readline Interaction, Up: Command Line Editing
-
-8.3 Readline Init File
-======================
-
-Although the Readline library comes with a set of Emacs-like keybindings
-installed by default, it is possible to use a different set of
-keybindings. Any user can customize programs that use Readline by
-putting commands in an “inputrc” file, conventionally in their home
-directory. The name of this file is taken from the value of the shell
-variable ‘INPUTRC’. If that variable is unset, the default is
-‘~/.inputrc’. If that file does not exist or cannot be read, Readline
-looks for ‘/etc/inputrc’. The ‘bind’ builtin command can also be used
-to set Readline keybindings and variables. *Note Bash Builtins::.
-
- When a program that uses the Readline library starts up, Readline
-reads the init file and sets any variables and key bindings it contains.
-
- In addition, the ‘C-x C-r’ command re-reads this init file, thus
-incorporating any changes that you might have made to it.
-
-* Menu:
-
-* Readline Init File Syntax:: Syntax for the commands in the inputrc file.
-* Conditional Init Constructs:: Conditional key bindings in the inputrc file.
-* Sample Init File:: An example inputrc file.
-
-\1f
-File: bash.info, Node: Readline Init File Syntax, Next: Conditional Init Constructs, Up: Readline Init File
-
-8.3.1 Readline Init File Syntax
--------------------------------
-
-There are only a few basic constructs allowed in the Readline init file.
-Blank lines are ignored. Lines beginning with a ‘#’ are comments.
-Lines beginning with a ‘$’ indicate conditional constructs (*note
-Conditional Init Constructs::). Other lines denote variable settings
-and key bindings.
-
-Variable Settings
- You can modify the run-time behavior of Readline by altering the
- values of variables in Readline using the ‘set’ command within the
- init file. The syntax is simple:
-
- set VARIABLE VALUE
-
- Here, for example, is how to change from the default Emacs-like key
- binding to use ‘vi’ line editing commands:
-
- set editing-mode vi
-
- Variable names and values, where appropriate, are recognized
- without regard to case. Unrecognized variable names are ignored.
-
- Boolean variables (those that can be set to on or off) are set to
- on if the value is null or empty, ON (case-insensitive), or 1. Any
- other value results in the variable being set to off.
-
- The ‘bind -V’ command lists the current Readline variable names and
- values. *Note Bash Builtins::.
-
- A great deal of run-time behavior is changeable with the following
- variables.
-
- ‘active-region-start-color’
- A string variable that controls the text color and background
- when displaying the text in the active region (see the
- description of ‘enable-active-region’ below). This string
- must not take up any physical character positions on the
- display, so it should consist only of terminal escape
- sequences. It is output to the terminal before displaying the
- text in the active region. This variable is reset to the
- default value whenever the terminal type changes. The default
- value is the string that puts the terminal in standout mode,
- as obtained from the terminal's terminfo description. A
- sample value might be ‘\e[01;33m’.
-
- ‘active-region-end-color’
- A string variable that "undoes" the effects of
- ‘active-region-start-color’ and restores "normal" terminal
- display appearance after displaying text in the active region.
- This string must not take up any physical character positions
- on the display, so it should consist only of terminal escape
- sequences. It is output to the terminal after displaying the
- text in the active region. This variable is reset to the
- default value whenever the terminal type changes. The default
- value is the string that restores the terminal from standout
- mode, as obtained from the terminal's terminfo description. A
- sample value might be ‘\e[0m’.
-
- ‘bell-style’
- Controls what happens when Readline wants to ring the terminal
- bell. If set to ‘none’, Readline never rings the bell. If
- set to ‘visible’, Readline uses a visible bell if one is
- available. If set to ‘audible’ (the default), Readline
- attempts to ring the terminal's bell.
-
- ‘bind-tty-special-chars’
- If set to ‘on’ (the default), Readline attempts to bind the
- control characters that are treated specially by the kernel's
- terminal driver to their Readline equivalents. These override
- the default Readline bindings described here. Type ‘stty -a’
- at a Bash prompt to see your current terminal settings,
- including the special control characters (usually ‘cchars’).
- This binding takes place on each call to ‘readline()’, so
- changes made by ‘stty’ can take effect.
-
- ‘blink-matching-paren’
- If set to ‘on’, Readline attempts to briefly move the cursor
- to an opening parenthesis when a closing parenthesis is
- inserted. The default is ‘off’.
-
- ‘colored-completion-prefix’
- If set to ‘on’, when listing completions, Readline displays
- the common prefix of the set of possible completions using a
- different color. The color definitions are taken from the
- value of the ‘LS_COLORS’ environment variable. If there is a
- color definition in ‘LS_COLORS’ for the custom suffix
- ‘readline-colored-completion-prefix’, Readline uses this color
- for the common prefix instead of its default. The default is
- ‘off’.
-
- ‘colored-stats’
- If set to ‘on’, Readline displays possible completions using
- different colors to indicate their file type. The color
- definitions are taken from the value of the ‘LS_COLORS’
- environment variable. The default is ‘off’.
-
- ‘comment-begin’
- The string to insert at the beginning of the line by the
- ‘insert-comment’ command. The default value is ‘"#"’.
-
- ‘completion-display-width’
- The number of screen columns used to display possible matches
- when performing completion. The value is ignored if it is
- less than 0 or greater than the terminal screen width. A
- value of 0 causes matches to be displayed one per line. The
- default value is -1.
-
- ‘completion-ignore-case’
- If set to ‘on’, Readline performs filename matching and
- completion in a case-insensitive fashion. The default value
- is ‘off’.
-
- ‘completion-map-case’
- If set to ‘on’, and COMPLETION-IGNORE-CASE is enabled,
- Readline treats hyphens (‘-’) and underscores (‘_’) as
- equivalent when performing case-insensitive filename matching
- and completion. The default value is ‘off’.
-
- ‘completion-prefix-display-length’
- The maximum length in characters of the common prefix of a
- list of possible completions that is displayed without
- modification. When set to a value greater than zero, Readline
- replaces common prefixes longer than this value with an
- ellipsis when displaying possible completions. If a
- completion begins with a period, and Readline is completing
- filenames, it uses three underscores instead of an ellipsis.
-
- ‘completion-query-items’
- The number of possible completions that determines when the
- user is asked whether the list of possibilities should be
- displayed. If the number of possible completions is greater
- than or equal to this value, Readline asks whether or not the
- user wishes to view them; otherwise, Readline simply lists the
- completions. This variable must be set to an integer value
- greater than or equal to zero. A zero value means Readline
- should never ask; negative values are treated as zero. The
- default limit is ‘100’.
-
- ‘convert-meta’
- If set to ‘on’, Readline converts characters it reads that
- have the eighth bit set to an ASCII key sequence by clearing
- the eighth bit and prefixing an <ESC> character, converting
- them to a meta-prefixed key sequence. The default value is
- ‘on’, but Readline sets it to ‘off’ if the locale contains
- characters whose encodings may include bytes with the eighth
- bit set. This variable is dependent on the ‘LC_CTYPE’ locale
- category, and may change if the locale changes. This variable
- also affects key bindings; see the description of
- ‘force-meta-prefix’ below.
-
- ‘disable-completion’
- If set to ‘On’, Readline inhibits word completion. Completion
- characters are inserted into the line as if they had been
- mapped to ‘self-insert’. The default is ‘off’.
-
- ‘echo-control-characters’
- When set to ‘on’, on operating systems that indicate they
- support it, Readline echoes a character corresponding to a
- signal generated from the keyboard. The default is ‘on’.
-
- ‘editing-mode’
- The ‘editing-mode’ variable controls the default set of key
- bindings. By default, Readline starts up in emacs editing
- mode, where the keystrokes are most similar to Emacs. This
- variable can be set to either ‘emacs’ or ‘vi’.
-
- ‘emacs-mode-string’
- If the SHOW-MODE-IN-PROMPT variable is enabled, this string is
- displayed immediately before the last line of the primary
- prompt when emacs editing mode is active. The value is
- expanded like a key binding, so the standard set of meta- and
- control- prefixes and backslash escape sequences is available.
- The ‘\1’ and ‘\2’ escapes begin and end sequences of
- non-printing characters, which can be used to embed a terminal
- control sequence into the mode string. The default is ‘@’.
-
- ‘enable-active-region’
- “point” is the current cursor position, and “mark” refers to a
- saved cursor position (*note Commands For Moving::). The text
- between the point and mark is referred to as the “region”.
- When this variable is set to ‘On’, Readline allows certain
- commands to designate the region as “active”. When the region
- is active, Readline highlights the text in the region using
- the value of the ‘active-region-start-color’, which defaults
- to the string that enables the terminal's standout mode. The
- active region shows the text inserted by bracketed-paste and
- any matching text found by incremental and non-incremental
- history searches. The default is ‘On’.
-
- ‘enable-bracketed-paste’
- When set to ‘On’, Readline configures the terminal to insert
- each paste into the editing buffer as a single string of
- characters, instead of treating each character as if it had
- been read from the keyboard. This is called putting the
- terminal into “bracketed paste mode”; it prevents Readline
- from executing any editing commands bound to key sequences
- appearing in the pasted text. The default is ‘On’.
-
- ‘enable-keypad’
- When set to ‘on’, Readline tries to enable the application
- keypad when it is called. Some systems need this to enable
- the arrow keys. The default is ‘off’.
-
- ‘enable-meta-key’
- When set to ‘on’, Readline tries to enable any meta modifier
- key the terminal claims to support when it is called. On many
- terminals, the Meta key is used to send eight-bit characters;
- this variable checks for the terminal capability that
- indicates the terminal can enable and disable a mode that sets
- the eighth bit of a character (0200) if the Meta key is held
- down when the character is typed (a meta character). The
- default is ‘on’.
-
- ‘expand-tilde’
- If set to ‘on’, Readline attempts tilde expansion when it
- attempts word completion. The default is ‘off’.
-
- ‘force-meta-prefix’
- If set to ‘on’, Readline modifies its behavior when binding
- key sequences containing ‘\M-’ or ‘Meta-’ (see ‘Key Bindings’
- in *note Readline Init File Syntax::) by converting a key
- sequence of the form ‘\M-’C or ‘Meta-’C to the two-character
- sequence ‘ESC’ C (adding the meta prefix). If
- ‘force-meta-prefix’ is set to ‘off’ (the default), Readline
- uses the value of the ‘convert-meta’ variable to determine
- whether to perform this conversion: if ‘convert-meta’ is ‘on’,
- Readline performs the conversion described above; if it is
- ‘off’, Readline converts C to a meta character by setting the
- eighth bit (0200). The default is ‘off’.
-
- ‘history-preserve-point’
- If set to ‘on’, the history code attempts to place the point
- (the current cursor position) at the same location on each
- history line retrieved with ‘previous-history’ or
- ‘next-history’. The default is ‘off’.
-
- ‘history-size’
- Set the maximum number of history entries saved in the history
- list. If set to zero, any existing history entries are
- deleted and no new entries are saved. If set to a value less
- than zero, the number of history entries is not limited. By
- default, Bash sets the maximum number of history entries to
- the value of the ‘HISTSIZE’ shell variable. If you try to set
- HISTORY-SIZE to a non-numeric value, the maximum number of
- history entries will be set to 500.
-
- ‘horizontal-scroll-mode’
- Setting this variable to ‘on’ means that the text of the lines
- being edited will scroll horizontally on a single screen line
- when the lines are longer than the width of the screen,
- instead of wrapping onto a new screen line. This variable is
- automatically set to ‘on’ for terminals of height 1. By
- default, this variable is set to ‘off’.
-
- ‘input-meta’
- If set to ‘on’, Readline enables eight-bit input (that is, it
- does not clear the eighth bit in the characters it reads),
- regardless of what the terminal claims it can support. The
- default value is ‘off’, but Readline sets it to ‘on’ if the
- locale contains characters whose encodings may include bytes
- with the eighth bit set. This variable is dependent on the
- ‘LC_CTYPE’ locale category, and its value may change if the
- locale changes. The name ‘meta-flag’ is a synonym for
- ‘input-meta’.
-
- ‘isearch-terminators’
- The string of characters that should terminate an incremental
- search without subsequently executing the character as a
- command (*note Searching::). If this variable has not been
- given a value, the characters <ESC> and ‘C-j’ terminate an
- incremental search.
-
- ‘keymap’
- Sets Readline's idea of the current keymap for key binding
- commands. Built-in ‘keymap’ names are ‘emacs’,
- ‘emacs-standard’, ‘emacs-meta’, ‘emacs-ctlx’, ‘vi’, ‘vi-move’,
- ‘vi-command’, and ‘vi-insert’. ‘vi’ is equivalent to
- ‘vi-command’ (‘vi-move’ is also a synonym); ‘emacs’ is
- equivalent to ‘emacs-standard’. Applications may add
- additional names. The default value is ‘emacs’; the value of
- the ‘editing-mode’ variable also affects the default keymap.
-
- ‘keyseq-timeout’
- Specifies the duration Readline will wait for a character when
- reading an ambiguous key sequence (one that can form a
- complete key sequence using the input read so far, or can take
- additional input to complete a longer key sequence). If
- Readline doesn't receive any input within the timeout, it uses
- the shorter but complete key sequence. Readline uses this
- value to determine whether or not input is available on the
- current input source (‘rl_instream’ by default). The value is
- specified in milliseconds, so a value of 1000 means that
- Readline will wait one second for additional input. If this
- variable is set to a value less than or equal to zero, or to a
- non-numeric value, Readline waits until another key is pressed
- to decide which key sequence to complete. The default value
- is ‘500’.
-
- ‘mark-directories’
- If set to ‘on’, completed directory names have a slash
- appended. The default is ‘on’.
-
- ‘mark-modified-lines’
- When this variable is set to ‘on’, Readline displays an
- asterisk (‘*’) at the start of history lines which have been
- modified. This variable is ‘off’ by default.
-
- ‘mark-symlinked-directories’
- If set to ‘on’, completed names which are symbolic links to
- directories have a slash appended, subject to the value of
- ‘mark-directories’. The default is ‘off’.
-
- ‘match-hidden-files’
- This variable, when set to ‘on’, forces Readline to match
- files whose names begin with a ‘.’ (hidden files) when
- performing filename completion. If set to ‘off’, the user
- must include the leading ‘.’ in the filename to be completed.
- This variable is ‘on’ by default.
-
- ‘menu-complete-display-prefix’
- If set to ‘on’, menu completion displays the common prefix of
- the list of possible completions (which may be empty) before
- cycling through the list. The default is ‘off’.
-
- ‘output-meta’
- If set to ‘on’, Readline displays characters with the eighth
- bit set directly rather than as a meta-prefixed escape
- sequence. The default is ‘off’, but Readline sets it to ‘on’
- if the locale contains characters whose encodings may include
- bytes with the eighth bit set. This variable is dependent on
- the ‘LC_CTYPE’ locale category, and its value may change if
- the locale changes.
-
- ‘page-completions’
- If set to ‘on’, Readline uses an internal pager resembling
- more(1) to display a screenful of possible completions at a
- time. This variable is ‘on’ by default.
-
- ‘prefer-visible-bell’
- See ‘bell-style’.
-
- ‘print-completions-horizontally’
- If set to ‘on’, Readline displays completions with matches
- sorted horizontally in alphabetical order, rather than down
- the screen. The default is ‘off’.
-
- ‘revert-all-at-newline’
- If set to ‘on’, Readline will undo all changes to history
- lines before returning when executing ‘accept-line’. By
- default, history lines may be modified and retain individual
- undo lists across calls to ‘readline()’. The default is
- ‘off’.
-
- ‘search-ignore-case’
- If set to ‘on’, Readline performs incremental and
- non-incremental history list searches in a case-insensitive
- fashion. The default value is ‘off’.
-
- ‘show-all-if-ambiguous’
- This alters the default behavior of the completion functions.
- If set to ‘on’, words which have more than one possible
- completion cause the matches to be listed immediately instead
- of ringing the bell. The default value is ‘off’.
-
- ‘show-all-if-unmodified’
- This alters the default behavior of the completion functions
- in a fashion similar to SHOW-ALL-IF-AMBIGUOUS. If set to
- ‘on’, words which have more than one possible completion
- without any possible partial completion (the possible
- completions don't share a common prefix) cause the matches to
- be listed immediately instead of ringing the bell. The
- default value is ‘off’.
-
- ‘show-mode-in-prompt’
- If set to ‘on’, add a string to the beginning of the prompt
- indicating the editing mode: emacs, vi command, or vi
- insertion. The mode strings are user-settable (e.g.,
- EMACS-MODE-STRING). The default value is ‘off’.
-
- ‘skip-completed-text’
- If set to ‘on’, this alters the default completion behavior
- when inserting a single match into the line. It's only active
- when performing completion in the middle of a word. If
- enabled, Readline does not insert characters from the
- completion that match characters after point in the word being
- completed, so portions of the word following the cursor are
- not duplicated. For instance, if this is enabled, attempting
- completion when the cursor is after the first ‘e’ in
- ‘Makefile’ will result in ‘Makefile’ rather than
- ‘Makefilefile’, assuming there is a single possible
- completion. The default value is ‘off’.
-
- ‘vi-cmd-mode-string’
- If the SHOW-MODE-IN-PROMPT variable is enabled, this string is
- displayed immediately before the last line of the primary
- prompt when vi editing mode is active and in command mode.
- The value is expanded like a key binding, so the standard set
- of meta- and control- prefixes and backslash escape sequences
- is available. The ‘\1’ and ‘\2’ escapes begin and end
- sequences of non-printing characters, which can be used to
- embed a terminal control sequence into the mode string. The
- default is ‘(cmd)’.
-
- ‘vi-ins-mode-string’
- If the SHOW-MODE-IN-PROMPT variable is enabled, this string is
- displayed immediately before the last line of the primary
- prompt when vi editing mode is active and in insertion mode.
- The value is expanded like a key binding, so the standard set
- of meta- and control- prefixes and backslash escape sequences
- is available. The ‘\1’ and ‘\2’ escapes begin and end
- sequences of non-printing characters, which can be used to
- embed a terminal control sequence into the mode string. The
- default is ‘(ins)’.
-
- ‘visible-stats’
- If set to ‘on’, a character denoting a file's type is appended
- to the filename when listing possible completions. The
- default is ‘off’.
-
-Key Bindings
- The syntax for controlling key bindings in the init file is simple.
- First you need to find the name of the command that you want to
- change. The following sections contain tables of the command name,
- the default keybinding, if any, and a short description of what the
- command does.
-
- Once you know the name of the command, simply place on a line in
- the init file the name of the key you wish to bind the command to,
- a colon, and then the name of the command. There can be no space
- between the key name and the colon - that will be interpreted as
- part of the key name. The name of the key can be expressed in
- different ways, depending on what you find most comfortable.
-
- In addition to command names, Readline allows keys to be bound to a
- string that is inserted when the key is pressed (a MACRO). The
- difference between a macro and a command is that a macro is
- enclosed in single or double quotes.
-
- The ‘bind -p’ command displays Readline function names and bindings
- in a format that can be put directly into an initialization file.
- *Note Bash Builtins::.
-
- KEYNAME: FUNCTION-NAME or MACRO
- KEYNAME is the name of a key spelled out in English. For
- example:
- Control-u: universal-argument
- Meta-Rubout: backward-kill-word
- Control-o: "> output"
-
- In the example above, ‘C-u’ is bound to the function
- ‘universal-argument’, ‘M-DEL’ is bound to the function
- ‘backward-kill-word’, and ‘C-o’ is bound to run the macro
- expressed on the right hand side (that is, to insert the text
- ‘> output’ into the line).
-
- This key binding syntax recognizes a number of symbolic
- character names: DEL, ESC, ESCAPE, LFD, NEWLINE, RET, RETURN,
- RUBOUT (a destructive backspace), SPACE, SPC, and TAB.
-
- "KEYSEQ": FUNCTION-NAME or MACRO
- KEYSEQ differs from KEYNAME above in that strings denoting an
- entire key sequence can be specified, by placing the key
- sequence in double quotes. Some GNU Emacs style key escapes
- can be used, as in the following example, but none of the
- special character names are recognized.
-
- "\C-u": universal-argument
- "\C-x\C-r": re-read-init-file
- "\e[11~": "Function Key 1"
-
- In the above example, ‘C-u’ is again bound to the function
- ‘universal-argument’ (just as it was in the first example),
- ‘‘C-x’ ‘C-r’’ is bound to the function ‘re-read-init-file’,
- and ‘<ESC> <[> <1> <1> <~>’ is bound to insert the text
- ‘Function Key 1’.
-
- The following GNU Emacs style escape sequences are available when
- specifying key sequences:
-
- ‘\C-’
- A control prefix.
- ‘\M-’
- Adding the meta prefix or converting the following character
- to a meta character, as described above under
- ‘force-meta-prefix’ (see ‘Variable Settings’ in *note Readline
- Init File Syntax::).
- ‘\e’
- An escape character.
- ‘\\’
- Backslash.
- ‘\"’
- <">, a double quotation mark.
- ‘\'’
- <'>, a single quote or apostrophe.
-
- In addition to the GNU Emacs style escape sequences, a second set
- of backslash escapes is available:
-
- ‘\a’
- alert (bell)
- ‘\b’
- backspace
- ‘\d’
- delete
- ‘\f’
- form feed
- ‘\n’
- newline
- ‘\r’
- carriage return
- ‘\t’
- horizontal tab
- ‘\v’
- vertical tab
- ‘\NNN’
- The eight-bit character whose value is the octal value NNN
- (one to three digits).
- ‘\xHH’
- The eight-bit character whose value is the hexadecimal value
- HH (one or two hex digits).
-
- When entering the text of a macro, single or double quotes must be
- used to indicate a macro definition. Unquoted text is assumed to
- be a function name. The backslash escapes described above are
- expanded in the macro body. Backslash will quote any other
- character in the macro text, including ‘"’ and ‘'’. For example,
- the following binding will make ‘‘C-x’ \’ insert a single ‘\’ into
- the line:
- "\C-x\\": "\\"
-
-\1f
-File: bash.info, Node: Conditional Init Constructs, Next: Sample Init File, Prev: Readline Init File Syntax, Up: Readline Init File
-
-8.3.2 Conditional Init Constructs
----------------------------------
-
-Readline implements a facility similar in spirit to the conditional
-compilation features of the C preprocessor which allows key bindings and
-variable settings to be performed as the result of tests. There are
-four parser directives available.
-
-‘$if’
- The ‘$if’ construct allows bindings to be made based on the editing
- mode, the terminal being used, or the application using Readline.
- The text of the test, after any comparison operator, extends to the
- end of the line; unless otherwise noted, no characters are required
- to isolate it.
-
- ‘mode’
- The ‘mode=’ form of the ‘$if’ directive is used to test
- whether Readline is in ‘emacs’ or ‘vi’ mode. This may be used
- in conjunction with the ‘set keymap’ command, for instance, to
- set bindings in the ‘emacs-standard’ and ‘emacs-ctlx’ keymaps
- only if Readline is starting out in ‘emacs’ mode.
-
- ‘term’
- The ‘term=’ form may be used to include terminal-specific key
- bindings, perhaps to bind the key sequences output by the
- terminal's function keys. The word on the right side of the
- ‘=’ is tested against both the full name of the terminal and
- the portion of the terminal name before the first ‘-’. This
- allows ‘xterm’ to match both ‘xterm’ and ‘xterm-256color’, for
- instance.
-
- ‘version’
- The ‘version’ test may be used to perform comparisons against
- specific Readline versions. The ‘version’ expands to the
- current Readline version. The set of comparison operators
- includes ‘=’ (and ‘==’), ‘!=’, ‘<=’, ‘>=’, ‘<’, and ‘>’. The
- version number supplied on the right side of the operator
- consists of a major version number, an optional decimal point,
- and an optional minor version (e.g., ‘7.1’). If the minor
- version is omitted, it defaults to ‘0’. The operator may be
- separated from the string ‘version’ and from the version
- number argument by whitespace. The following example sets a
- variable if the Readline version being used is 7.0 or newer:
- $if version >= 7.0
- set show-mode-in-prompt on
- $endif
-
- ‘application’
- The APPLICATION construct is used to include
- application-specific settings. Each program using the
- Readline library sets the APPLICATION NAME, and you can test
- for a particular value. This could be used to bind key
- sequences to functions useful for a specific program. For
- instance, the following command adds a key sequence that
- quotes the current or previous word in Bash:
- $if Bash
- # Quote the current or previous word
- "\C-xq": "\eb\"\ef\""
- $endif
-
- ‘variable’
- The VARIABLE construct provides simple equality tests for
- Readline variables and values. The permitted comparison
- operators are ‘=’, ‘==’, and ‘!=’. The variable name must be
- separated from the comparison operator by whitespace; the
- operator may be separated from the value on the right hand
- side by whitespace. String and boolean variables may be
- tested. Boolean variables must be tested against the values
- ON and OFF. The following example is equivalent to the
- ‘mode=emacs’ test described above:
- $if editing-mode == emacs
- set show-mode-in-prompt on
- $endif
-
-‘$else’
- Commands in this branch of the ‘$if’ directive are executed if the
- test fails.
-
-‘$endif’
- This command, as seen in the previous example, terminates an ‘$if’
- command.
-
-‘$include’
- This directive takes a single filename as an argument and reads
- commands and key bindings from that file. For example, the
- following directive reads from ‘/etc/inputrc’:
- $include /etc/inputrc
-
-\1f
-File: bash.info, Node: Sample Init File, Prev: Conditional Init Constructs, Up: Readline Init File
-
-8.3.3 Sample Init File
-----------------------
-
-Here is an example of an INPUTRC file. This illustrates key binding,
-variable assignment, and conditional syntax.
-
- # This file controls the behavior of line input editing for
- # programs that use the GNU Readline library. Existing
- # programs include FTP, Bash, and GDB.
- #
- # You can re-read the inputrc file with C-x C-r.
- # Lines beginning with '#' are comments.
- #
- # First, include any system-wide bindings and variable
- # assignments from /etc/Inputrc
- $include /etc/Inputrc
-
- #
- # Set various bindings for emacs mode.
-
- set editing-mode emacs
-
- $if mode=emacs
-
- Meta-Control-h: backward-kill-word Text after the function name is ignored
-
- #
- # Arrow keys in keypad mode
- #
- #"\M-OD": backward-char
- #"\M-OC": forward-char
- #"\M-OA": previous-history
- #"\M-OB": next-history
- #
- # Arrow keys in ANSI mode
- #
- "\M-[D": backward-char
- "\M-[C": forward-char
- "\M-[A": previous-history
- "\M-[B": next-history
- #
- # Arrow keys in 8 bit keypad mode
- #
- #"\M-\C-OD": backward-char
- #"\M-\C-OC": forward-char
- #"\M-\C-OA": previous-history
- #"\M-\C-OB": next-history
- #
- # Arrow keys in 8 bit ANSI mode
- #
- #"\M-\C-[D": backward-char
- #"\M-\C-[C": forward-char
- #"\M-\C-[A": previous-history
- #"\M-\C-[B": next-history
-
- C-q: quoted-insert
-
- $endif
-
- # An old-style binding. This happens to be the default.
- TAB: complete
-
- # Macros that are convenient for shell interaction
- $if Bash
- # edit the path
- "\C-xp": "PATH=${PATH}\e\C-e\C-a\ef\C-f"
- # prepare to type a quoted word --
- # insert open and close double quotes
- # and move to just after the open quote
- "\C-x\"": "\"\"\C-b"
- # insert a backslash (testing backslash escapes
- # in sequences and macros)
- "\C-x\\": "\\"
- # Quote the current or previous word
- "\C-xq": "\eb\"\ef\""
- # Add a binding to refresh the line, which is unbound
- "\C-xr": redraw-current-line
- # Edit variable on current line.
- "\M-\C-v": "\C-a\C-k$\C-y\M-\C-e\C-a\C-y="
- $endif
-
- # use a visible bell if one is available
- set bell-style visible
-
- # don't strip characters to 7 bits when reading
- set input-meta on
-
- # allow iso-latin1 characters to be inserted rather
- # than converted to prefix-meta sequences
- set convert-meta off
-
- # display characters with the eighth bit set directly
- # rather than as meta-prefixed characters
- set output-meta on
-
- # if there are 150 or more possible completions for a word,
- # ask whether or not the user wants to see all of them
- set completion-query-items 150
-
- # For FTP
- $if Ftp
- "\C-xg": "get \M-?"
- "\C-xt": "put \M-?"
- "\M-.": yank-last-arg
- $endif
-
-\1f
-File: bash.info, Node: Bindable Readline Commands, Next: Readline vi Mode, Prev: Readline Init File, Up: Command Line Editing
-
-8.4 Bindable Readline Commands
-==============================
-
-* Menu:
-
-* Commands For Moving:: Moving about the line.
-* Commands For History:: Getting at previous lines.
-* Commands For Text:: Commands for changing text.
-* Commands For Killing:: Commands for killing and yanking.
-* Numeric Arguments:: Specifying numeric arguments, repeat counts.
-* Commands For Completion:: Getting Readline to do the typing for you.
-* Keyboard Macros:: Saving and re-executing typed characters
-* Miscellaneous Commands:: Other miscellaneous commands.
-
-This section describes Readline commands that may be bound to key
-sequences. You can list your key bindings by executing ‘bind -P’ or,
-for a more terse format, suitable for an INPUTRC file, ‘bind -p’.
-(*Note Bash Builtins::.) Command names without an accompanying key
-sequence are unbound by default.
-
- In the following descriptions, “point” refers to the current cursor
-position, and “mark” refers to a cursor position saved by the ‘set-mark’
-command. The text between the point and mark is referred to as the
-“region”. Readline has the concept of an _active region_: when the
-region is active, Readline redisplay highlights the region using the
-value of the ‘active-region-start-color’ variable. The
-‘enable-active-region’ variable turns this on and off. Several commands
-set the region to active; those are noted below.
-
-\1f
-File: bash.info, Node: Commands For Moving, Next: Commands For History, Up: Bindable Readline Commands
-
-8.4.1 Commands For Moving
--------------------------
-
-‘beginning-of-line (C-a)’
- Move to the start of the current line. This may also be bound to
- the Home key on some keyboards.
-
-‘end-of-line (C-e)’
- Move to the end of the line. This may also be bound to the End key
- on some keyboards.
-
-‘forward-char (C-f)’
- Move forward a character. This may also be bound to the right
- arrow key on some keyboards.
-
-‘backward-char (C-b)’
- Move back a character. This may also be bound to the left arrow
- key on some keyboards.
-
-‘forward-word (M-f)’
- Move forward to the end of the next word. Words are composed of
- letters and digits.
-
-‘backward-word (M-b)’
- Move back to the start of the current or previous word. Words are
- composed of letters and digits.
-
-‘shell-forward-word (M-C-f)’
- Move forward to the end of the next word. Words are delimited by
- non-quoted shell metacharacters.
-
-‘shell-backward-word (M-C-b)’
- Move back to the start of the current or previous word. Words are
- delimited by non-quoted shell metacharacters.
-
-‘previous-screen-line ()’
- Attempt to move point to the same physical screen column on the
- previous physical screen line. This will not have the desired
- effect if the current Readline line does not take up more than one
- physical line or if point is not greater than the length of the
- prompt plus the screen width.
-
-‘next-screen-line ()’
- Attempt to move point to the same physical screen column on the
- next physical screen line. This will not have the desired effect
- if the current Readline line does not take up more than one
- physical line or if the length of the current Readline line is not
- greater than the length of the prompt plus the screen width.
-
-‘clear-display (M-C-l)’
- Clear the screen and, if possible, the terminal's scrollback
- buffer, then redraw the current line, leaving the current line at
- the top of the screen.
-
-‘clear-screen (C-l)’
- Clear the screen, then redraw the current line, leaving the current
- line at the top of the screen. If given a numeric argument, this
- refreshes the current line without clearing the screen.
-
-‘redraw-current-line ()’
- Refresh the current line. By default, this is unbound.
-
-\1f
-File: bash.info, Node: Commands For History, Next: Commands For Text, Prev: Commands For Moving, Up: Bindable Readline Commands
-
-8.4.2 Commands For Manipulating The History
--------------------------------------------
-
-‘accept-line (Newline or Return)’
- Accept the line regardless of where the cursor is. If this line is
- non-empty, add it to the history list according to the setting of
- the ‘HISTCONTROL’ and ‘HISTIGNORE’ variables. If this line is a
- modified history line, then restore the history line to its
- original state.
-
-‘previous-history (C-p)’
- Move "back" through the history list, fetching the previous
- command. This may also be bound to the up arrow key on some
- keyboards.
-
-‘next-history (C-n)’
- Move "forward" through the history list, fetching the next command.
- This may also be bound to the down arrow key on some keyboards.
-
-‘beginning-of-history (M-<)’
- Move to the first line in the history.
-
-‘end-of-history (M->)’
- Move to the end of the input history, i.e., the line currently
- being entered.
-
-‘reverse-search-history (C-r)’
- Search backward starting at the current line and moving "up"
- through the history as necessary. This is an incremental search.
- This command sets the region to the matched text and activates the
- region.
-
-‘forward-search-history (C-s)’
- Search forward starting at the current line and moving "down"
- through the history as necessary. This is an incremental search.
- This command sets the region to the matched text and activates the
- region.
-
-‘non-incremental-reverse-search-history (M-p)’
- Search backward starting at the current line and moving "up"
-
- through the history as necessary using a non-incremental search for
- a string supplied by the user. The search string may match
- anywhere in a history line.
-
-‘non-incremental-forward-search-history (M-n)’
- Search forward starting at the current line and moving "down"
- through the history as necessary using a non-incremental search for
- a string supplied by the user. The search string may match
- anywhere in a history line.
-
-‘history-search-backward ()’
- Search backward through the history for the string of characters
- between the start of the current line and the point. The search
- string must match at the beginning of a history line. This is a
- non-incremental search. By default, this command is unbound, but
- may be bound to the Page Down key on some keyboards.
-
-‘history-search-forward ()’
- Search forward through the history for the string of characters
- between the start of the current line and the point. The search
- string must match at the beginning of a history line. This is a
- non-incremental search. By default, this command is unbound, but
- may be bound to the Page Up key on some keyboards.
-
-‘history-substring-search-backward ()’
- Search backward through the history for the string of characters
- between the start of the current line and the point. The search
- string may match anywhere in a history line. This is a
- non-incremental search. By default, this command is unbound.
-
-‘history-substring-search-forward ()’
- Search forward through the history for the string of characters
- between the start of the current line and the point. The search
- string may match anywhere in a history line. This is a
- non-incremental search. By default, this command is unbound.
-
-‘yank-nth-arg (M-C-y)’
- Insert the first argument to the previous command (usually the
- second word on the previous line) at point. With an argument N,
- insert the Nth word from the previous command (the words in the
- previous command begin with word 0). A negative argument inserts
- the Nth word from the end of the previous command. Once the
- argument N is computed, this uses the history expansion facilities
- to extract the Nth word, as if the ‘!N’ history expansion had been
- specified.
-
-‘yank-last-arg (M-. or M-_)’
- Insert last argument to the previous command (the last word of the
- previous history entry). With a numeric argument, behave exactly
- like ‘yank-nth-arg’. Successive calls to ‘yank-last-arg’ move back
- through the history list, inserting the last word (or the word
- specified by the argument to the first call) of each line in turn.
- Any numeric argument supplied to these successive calls determines
- the direction to move through the history. A negative argument
- switches the direction through the history (back or forward). This
- uses the history expansion facilities to extract the last word, as
- if the ‘!$’ history expansion had been specified.
-
-‘operate-and-get-next (C-o)’
- Accept the current line for return to the calling application as if
- a newline had been entered, and fetch the next line relative to the
- current line from the history for editing. A numeric argument, if
- supplied, specifies the history entry to use instead of the current
- line.
-
-‘fetch-history ()’
- With a numeric argument, fetch that entry from the history list and
- make it the current line. Without an argument, move back to the
- first entry in the history list.
-
-\1f
-File: bash.info, Node: Commands For Text, Next: Commands For Killing, Prev: Commands For History, Up: Bindable Readline Commands
-
-8.4.3 Commands For Changing Text
---------------------------------
-
-‘end-of-file (usually C-d)’
- The character indicating end-of-file as set, for example, by
- ‘stty’. If this character is read when there are no characters on
- the line, and point is at the beginning of the line, Readline
- interprets it as the end of input and returns EOF.
-
-‘delete-char (C-d)’
- Delete the character at point. If this function is bound to the
- same character as the tty EOF character, as ‘C-d’ commonly is, see
- above for the effects. This may also be bound to the Delete key on
- some keyboards.
-
-‘backward-delete-char (Rubout)’
- Delete the character behind the cursor. A numeric argument means
- to kill the characters, saving them on the kill ring, instead of
- deleting them.
-
-‘forward-backward-delete-char ()’
- Delete the character under the cursor, unless the cursor is at the
- end of the line, in which case the character behind the cursor is
- deleted. By default, this is not bound to a key.
-
-‘quoted-insert (C-q or C-v)’
- Add the next character typed to the line verbatim. This is how to
- insert key sequences like ‘C-q’, for example.
-
-‘self-insert (a, b, A, 1, !, ...)’
- Insert the character typed.
-
-‘bracketed-paste-begin ()’
- This function is intended to be bound to the "bracketed paste"
- escape sequence sent by some terminals, and such a binding is
- assigned by default. It allows Readline to insert the pasted text
- as a single unit without treating each character as if it had been
- read from the keyboard. The characters are inserted as if each one
- was bound to ‘self-insert’ instead of executing any editing
- commands.
-
- Bracketed paste sets the region (the characters between point and
- the mark) to the inserted text. It sets the _active region_.
-
-‘transpose-chars (C-t)’
- Drag the character before the cursor forward over the character at
- the cursor, moving the cursor forward as well. If the insertion
- point is at the end of the line, then this transposes the last two
- characters of the line. Negative arguments have no effect.
-
-‘transpose-words (M-t)’
- Drag the word before point past the word after point, moving point
- past that word as well. If the insertion point is at the end of
- the line, this transposes the last two words on the line.
-
-‘shell-transpose-words (M-C-t)’
- Drag the word before point past the word after point, moving point
- past that word as well. If the insertion point is at the end of
- the line, this transposes the last two words on the line. Word
- boundaries are the same as ‘shell-forward-word’ and
- ‘shell-backward-word’.
-
-‘upcase-word (M-u)’
- Uppercase the current (or following) word. With a negative
- argument, uppercase the previous word, but do not move the cursor.
-
-‘downcase-word (M-l)’
- Lowercase the current (or following) word. With a negative
- argument, lowercase the previous word, but do not move the cursor.
-
-‘capitalize-word (M-c)’
- Capitalize the current (or following) word. With a negative
- argument, capitalize the previous word, but do not move the cursor.
-
-‘overwrite-mode ()’
- Toggle overwrite mode. With an explicit positive numeric argument,
- switches to overwrite mode. With an explicit non-positive numeric
- argument, switches to insert mode. This command affects only
- ‘emacs’ mode; ‘vi’ mode does overwrite differently. Each call to
- ‘readline()’ starts in insert mode.
-
- In overwrite mode, characters bound to ‘self-insert’ replace the
- text at point rather than pushing the text to the right.
- Characters bound to ‘backward-delete-char’ replace the character
- before point with a space.
-
- By default, this command is unbound, but may be bound to the Insert
- key on some keyboards.
-
-\1f
-File: bash.info, Node: Commands For Killing, Next: Numeric Arguments, Prev: Commands For Text, Up: Bindable Readline Commands
-
-8.4.4 Killing And Yanking
--------------------------
-
-‘kill-line (C-k)’
- Kill the text from point to the end of the current line. With a
- negative numeric argument, kill backward from the cursor to the
- beginning of the line.
-
-‘backward-kill-line (C-x Rubout)’
- Kill backward from the cursor to the beginning of the current line.
- With a negative numeric argument, kill forward from the cursor to
- the end of the line.
-
-‘unix-line-discard (C-u)’
- Kill backward from the cursor to the beginning of the current line.
-
-‘kill-whole-line ()’
- Kill all characters on the current line, no matter where point is.
- By default, this is unbound.
-
-‘kill-word (M-d)’
- Kill from point to the end of the current word, or if between
- words, to the end of the next word. Word boundaries are the same
- as ‘forward-word’.
-
-‘backward-kill-word (M-<DEL>)’
- Kill the word behind point. Word boundaries are the same as
- ‘backward-word’.
-
-‘shell-kill-word (M-C-d)’
- Kill from point to the end of the current word, or if between
- words, to the end of the next word. Word boundaries are the same
- as ‘shell-forward-word’.
-
-‘shell-backward-kill-word ()’
- Kill the word behind point. Word boundaries are the same as
- ‘shell-backward-word’.
-
-‘unix-word-rubout (C-w)’
- Kill the word behind point, using white space as a word boundary,
- saving the killed text on the kill-ring.
-
-‘unix-filename-rubout ()’
- Kill the word behind point, using white space and the slash
- character as the word boundaries, saving the killed text on the
- kill-ring.
-
-‘delete-horizontal-space ()’
- Delete all spaces and tabs around point. By default, this is
- unbound.
-
-‘kill-region ()’
- Kill the text in the current region. By default, this command is
- unbound.
-
-‘copy-region-as-kill ()’
- Copy the text in the region to the kill buffer, so it can be yanked
- right away. By default, this command is unbound.
-
-‘copy-backward-word ()’
- Copy the word before point to the kill buffer. The word boundaries
- are the same as ‘backward-word’. By default, this command is
- unbound.
-
-‘copy-forward-word ()’
- Copy the word following point to the kill buffer. The word
- boundaries are the same as ‘forward-word’. By default, this
- command is unbound.
-
-‘yank (C-y)’
- Yank the top of the kill ring into the buffer at point.
-
-‘yank-pop (M-y)’
- Rotate the kill-ring, and yank the new top. You can only do this
- if the prior command is ‘yank’ or ‘yank-pop’.
-
-\1f
-File: bash.info, Node: Numeric Arguments, Next: Commands For Completion, Prev: Commands For Killing, Up: Bindable Readline Commands
-
-8.4.5 Specifying Numeric Arguments
-----------------------------------
-
-‘digit-argument (M-0, M-1, ... M--)’
- Add this digit to the argument already accumulating, or start a new
- argument. ‘M--’ starts a negative argument.
-
-‘universal-argument ()’
- This is another way to specify an argument. If this command is
- followed by one or more digits, optionally with a leading minus
- sign, those digits define the argument. If the command is followed
- by digits, executing ‘universal-argument’ again ends the numeric
- argument, but is otherwise ignored. As a special case, if this
- command is immediately followed by a character that is neither a
- digit nor minus sign, the argument count for the next command is
- multiplied by four. The argument count is initially one, so
- executing this function the first time makes the argument count
- four, a second time makes the argument count sixteen, and so on.
- By default, this is not bound to a key.
-
-\1f
-File: bash.info, Node: Commands For Completion, Next: Keyboard Macros, Prev: Numeric Arguments, Up: Bindable Readline Commands
-
-8.4.6 Letting Readline Type For You
------------------------------------
-
-‘complete (<TAB>)’
- Attempt to perform completion on the text before point. The actual
- completion performed is application-specific. Bash attempts
- completion by first checking for any programmable completions for
- the command word (*note Programmable Completion::), otherwise
- treating the text as a variable (if the text begins with ‘$’),
- username (if the text begins with ‘~’), hostname (if the text
- begins with ‘@’), or command (including aliases, functions, and
- builtins) in turn. If none of these produces a match, it falls
- back to filename completion.
-
-‘possible-completions (M-?)’
- List the possible completions of the text before point. When
- displaying completions, Readline sets the number of columns used
- for display to the value of ‘completion-display-width’, the value
- of the environment variable ‘COLUMNS’, or the screen width, in that
- order.
-
-‘insert-completions (M-*)’
- Insert all completions of the text before point that would have
- been generated by ‘possible-completions’, separated by a space.
-
-‘menu-complete ()’
- Similar to ‘complete’, but replaces the word to be completed with a
- single match from the list of possible completions. Repeatedly
- executing ‘menu-complete’ steps through the list of possible
- completions, inserting each match in turn. At the end of the list
- of completions, ‘menu-complete’ rings the bell (subject to the
- setting of ‘bell-style’) and restores the original text. An
- argument of N moves N positions forward in the list of matches; a
- negative argument moves backward through the list. This command is
- intended to be bound to <TAB>, but is unbound by default.
-
-‘menu-complete-backward ()’
- Identical to ‘menu-complete’, but moves backward through the list
- of possible completions, as if ‘menu-complete’ had been given a
- negative argument. This command is unbound by default.
-
-‘export-completions ()’
- Perform completion on the word before point as described above and
- write the list of possible completions to Readline's output stream
- using the following format, writing information on separate lines:
-
- • the number of matches N;
- • the word being completed;
- • S:E, where S and E are the start and end offsets of the word
- in the Readline line buffer; then
- • each match, one per line
-
- If there are no matches, the first line will be "0", and this
- command does not print any output after the S:E. If there is only
- a single match, this prints a single line containing it. If there
- is more than one match, this prints the common prefix of the
- matches, which may be empty, on the first line after the S:E, then
- the matches on subsequent lines. In this case, N will include the
- first line with the common prefix.
-
- The user or application should be able to accommodate the
- possibility of a blank line. The intent is that the user or
- application reads N lines after the line containing S:E to obtain
- the match list. This command is unbound by default.
-
-‘delete-char-or-list ()’
- Deletes the character under the cursor if not at the beginning or
- end of the line (like ‘delete-char’). At the end of the line, it
- behaves identically to ‘possible-completions’. This command is
- unbound by default.
-
-‘complete-filename (M-/)’
- Attempt filename completion on the text before point.
-
-‘possible-filename-completions (C-x /)’
- List the possible completions of the text before point, treating it
- as a filename.
-
-‘complete-username (M-~)’
- Attempt completion on the text before point, treating it as a
- username.
-
-‘possible-username-completions (C-x ~)’
- List the possible completions of the text before point, treating it
- as a username.
-
-‘complete-variable (M-$)’
- Attempt completion on the text before point, treating it as a shell
- variable.
-
-‘possible-variable-completions (C-x $)’
- List the possible completions of the text before point, treating it
- as a shell variable.
-
-‘complete-hostname (M-@)’
- Attempt completion on the text before point, treating it as a
- hostname.
-
-‘possible-hostname-completions (C-x @)’
- List the possible completions of the text before point, treating it
- as a hostname.
-
-‘complete-command (M-!)’
- Attempt completion on the text before point, treating it as a
- command name. Command completion attempts to match the text
- against aliases, reserved words, shell functions, shell builtins,
- and finally executable filenames, in that order.
-
-‘possible-command-completions (C-x !)’
- List the possible completions of the text before point, treating it
- as a command name.
-
-‘dynamic-complete-history (M-<TAB>)’
- Attempt completion on the text before point, comparing the text
- against history list entries for possible completion matches.
-
-‘dabbrev-expand ()’
- Attempt menu completion on the text before point, comparing the
- text against lines from the history list for possible completion
- matches.
-
-‘complete-into-braces (M-{)’
- Perform filename completion and insert the list of possible
- completions enclosed within braces so the list is available to the
- shell (*note Brace Expansion::).
-
-\1f
-File: bash.info, Node: Keyboard Macros, Next: Miscellaneous Commands, Prev: Commands For Completion, Up: Bindable Readline Commands
-
-8.4.7 Keyboard Macros
----------------------
-
-‘start-kbd-macro (C-x ()’
- Begin saving the characters typed into the current keyboard macro.
-
-‘end-kbd-macro (C-x ))’
- Stop saving the characters typed into the current keyboard macro
- and save the definition.
-
-‘call-last-kbd-macro (C-x e)’
- Re-execute the last keyboard macro defined, by making the
- characters in the macro appear as if typed at the keyboard.
-
-‘print-last-kbd-macro ()’
- Print the last keyboard macro defined in a format suitable for the
- INPUTRC file.
-
-\1f
-File: bash.info, Node: Miscellaneous Commands, Prev: Keyboard Macros, Up: Bindable Readline Commands
-
-8.4.8 Some Miscellaneous Commands
----------------------------------
-
-‘re-read-init-file (C-x C-r)’
- Read in the contents of the INPUTRC file, and incorporate any
- bindings or variable assignments found there.
-
-‘abort (C-g)’
- Abort the current editing command and ring the terminal's bell
- (subject to the setting of ‘bell-style’).
-
-‘do-lowercase-version (M-A, M-B, M-X, ...)’
- If the metafied character X is upper case, run the command that is
- bound to the corresponding metafied lower case character. The
- behavior is undefined if X is already lower case.
-
-‘prefix-meta (<ESC>)’
- Metafy the next character typed. Typing ‘<ESC> f’ is equivalent to
- typing ‘M-f’.
-
-‘undo (C-_ or C-x C-u)’
- Incremental undo, separately remembered for each line.
-
-‘revert-line (M-r)’
- Undo all changes made to this line. This is like executing the
- ‘undo’ command enough times to get back to the initial state.
-
-‘tilde-expand (M-&)’
- Perform tilde expansion on the current word.
-
-‘set-mark (C-@)’
- Set the mark to the point. If a numeric argument is supplied, set
- the mark to that position.
-
-‘exchange-point-and-mark (C-x C-x)’
- Swap the point with the mark. Set the current cursor position to
- the saved position, then set the mark to the old cursor position.
-
-‘character-search (C-])’
- Read a character and move point to the next occurrence of that
- character. A negative argument searches for previous occurrences.
-
-‘character-search-backward (M-C-])’
- Read a character and move point to the previous occurrence of that
- character. A negative argument searches for subsequent
- occurrences.
-
-‘skip-csi-sequence ()’
- Read enough characters to consume a multi-key sequence such as
- those defined for keys like Home and End. CSI sequences begin with
- a Control Sequence Indicator (CSI), usually ‘ESC [’. If this
- sequence is bound to "\e[", keys producing CSI sequences have no
- effect unless explicitly bound to a Readline command, instead of
- inserting stray characters into the editing buffer. This is
- unbound by default, but usually bound to ‘ESC [’.
-
-‘insert-comment (M-#)’
- Without a numeric argument, insert the value of the ‘comment-begin’
- variable at the beginning of the current line. If a numeric
- argument is supplied, this command acts as a toggle: if the
- characters at the beginning of the line do not match the value of
- ‘comment-begin’, insert the value; otherwise delete the characters
- in ‘comment-begin’ from the beginning of the line. In either case,
- the line is accepted as if a newline had been typed. The default
- value of ‘comment-begin’ causes this command to make the current
- line a shell comment. If a numeric argument causes the comment
- character to be removed, the line will be executed by the shell.
-
-‘dump-functions ()’
- Print all of the functions and their key bindings to the Readline
- output stream. If a numeric argument is supplied, the output is
- formatted in such a way that it can be made part of an INPUTRC
- file. This command is unbound by default.
-
-‘dump-variables ()’
- Print all of the settable variables and their values to the
- Readline output stream. If a numeric argument is supplied, the
- output is formatted in such a way that it can be made part of an
- INPUTRC file. This command is unbound by default.
-
-‘dump-macros ()’
- Print all of the Readline key sequences bound to macros and the
- strings they output to the Readline output stream. If a numeric
- argument is supplied, the output is formatted in such a way that it
- can be made part of an INPUTRC file. This command is unbound by
- default.
-
-‘execute-named-command (M-x)’
- Read a bindable Readline command name from the input and execute
- the function to which it's bound, as if the key sequence to which
- it was bound appeared in the input. If this function is supplied
- with a numeric argument, it passes that argument to the function it
- executes.
-
-‘spell-correct-word (C-x s)’
- Perform spelling correction on the current word, treating it as a
- directory or filename, in the same way as the ‘cdspell’ shell
- option. Word boundaries are the same as those used by
- ‘shell-forward-word’.
-
-‘glob-complete-word (M-g)’
- Treat the word before point as a pattern for pathname expansion,
- with an asterisk implicitly appended, then use the pattern to
- generate a list of matching file names for possible completions.
-
-‘glob-expand-word (C-x *)’
- Treat the word before point as a pattern for pathname expansion,
- and insert the list of matching file names, replacing the word. If
- a numeric argument is supplied, append a ‘*’ before pathname
- expansion.
-
-‘glob-list-expansions (C-x g)’
- Display the list of expansions that would have been generated by
- ‘glob-expand-word’, and redisplay the line. If a numeric argument
- is supplied, append a ‘*’ before pathname expansion.
-
-‘shell-expand-line (M-C-e)’
- Expand the line by performing shell word expansions. This performs
- alias and history expansion, $'STRING' and $"STRING" quoting, tilde
- expansion, parameter and variable expansion, arithmetic expansion,
- command and process substitution, word splitting, and quote
- removal. An explicit argument suppresses command and process
- substitution.
-
-‘history-expand-line (M-^)’
- Perform history expansion on the current line.
-
-‘magic-space ()’
- Perform history expansion on the current line and insert a space
- (*note History Interaction::).
-
-‘alias-expand-line ()’
- Perform alias expansion on the current line (*note Aliases::).
-
-‘history-and-alias-expand-line ()’
- Perform history and alias expansion on the current line.
-
-‘insert-last-argument (M-. or M-_)’
- A synonym for ‘yank-last-arg’.
-
-‘edit-and-execute-command (C-x C-e)’
- Invoke an editor on the current command line, and execute the
- result as shell commands. Bash attempts to invoke ‘$VISUAL’,
- ‘$EDITOR’, and ‘emacs’ as the editor, in that order.
-
-‘display-shell-version (C-x C-v)’
- Display version information about the current instance of Bash.
-
-\1f
-File: bash.info, Node: Readline vi Mode, Next: Programmable Completion, Prev: Bindable Readline Commands, Up: Command Line Editing
-
-8.5 Readline vi Mode
-====================
-
-While the Readline library does not have a full set of ‘vi’ editing
-functions, it does contain enough to allow simple editing of the line.
-The Readline ‘vi’ mode behaves as specified in the ‘sh’ description in
-the POSIX standard.
-
- You can use the ‘set -o emacs’ and ‘set -o vi’ commands (*note The
-Set Builtin::) to switch interactively between ‘emacs’ and ‘vi’ editing
-modes, The Readline default is ‘emacs’ mode.
-
- When you enter a line in ‘vi’ mode, you are already placed in
-"insertion" mode, as if you had typed an ‘i’. Pressing <ESC> switches
-you into "command" mode, where you can edit the text of the line with
-the standard ‘vi’ movement keys, move to previous history lines with ‘k’
-and subsequent lines with ‘j’, and so forth.
-
-\1f
-File: bash.info, Node: Programmable Completion, Next: Programmable Completion Builtins, Prev: Readline vi Mode, Up: Command Line Editing
-
-8.6 Programmable Completion
-===========================
-
-When the user attempts word completion for a command or an argument to a
-command for which a completion specification (a “compspec”) has been
-defined using the ‘complete’ builtin (*note Programmable Completion
-Builtins::), Readline invokes the programmable completion facilities.
-
- First, Bash identifies the command name. If a compspec has been
-defined for that command, the compspec is used to generate the list of
-possible completions for the word. If the command word is the empty
-string (completion attempted at the beginning of an empty line), Bash
-uses any compspec defined with the ‘-E’ option to ‘complete’. The ‘-I’
-option to ‘complete’ indicates that the command word is the first
-non-assignment word on the line, or after a command delimiter such as
-‘;’ or ‘|’. This usually indicates command name completion.
-
- If the command word is a full pathname, Bash searches for a compspec
-for the full pathname first. If there is no compspec for the full
-pathname, Bash attempts to find a compspec for the portion following the
-final slash. If those searches do not result in a compspec, or if there
-is no compspec for the command word, Bash uses any compspec defined with
-the ‘-D’ option to ‘complete’ as the default. If there is no default
-compspec, Bash performs alias expansion on the command word as a final
-resort, and attempts to find a compspec for the command word resulting
-from any successful expansion.
-
- If a compspec is not found, Bash performs its default completion
-described above (*note Commands For Completion::). Otherwise, once a
-compspec has been found, Bash uses it to generate the list of matching
-words.
-
- First, Bash performs the ACTIONS specified by the compspec. This
-only returns matches which are prefixes of the word being completed.
-When the ‘-f’ or ‘-d’ option is used for filename or directory name
-completion, Bash uses shell the variable ‘FIGNORE’ to filter the
-matches. *Note Bash Variables::, for a description of ‘FIGNORE’.
-
- Next, programmable completion generates matches specified by a
-pathname expansion pattern supplied as an argument to the ‘-G’ option.
-The words generated by the pattern need not match the word being
-completed. Bash uses the ‘FIGNORE’ variable to filter the matches, but
-does not use the ‘GLOBIGNORE’ shell variable.
-
- Next, completion considers the string specified as the argument to
-the ‘-W’ option. The string is first split using the characters in the
-‘IFS’ special variable as delimiters. This honors shell quoting within
-the string, in order to provide a mechanism for the words to contain
-shell metacharacters or characters in the value of ‘IFS’. Each word is
-then expanded using brace expansion, tilde expansion, parameter and
-variable expansion, command substitution, and arithmetic expansion, as
-described above (*note Shell Expansions::). The results are split using
-the rules described above (*note Word Splitting::). The results of the
-expansion are prefix-matched against the word being completed, and the
-matching words become possible completions.
-
- After these matches have been generated, Bash executes any shell
-function or command specified with the ‘-F’ and ‘-C’ options. When the
-command or function is invoked, Bash assigns values to the ‘COMP_LINE’,
-‘COMP_POINT’, ‘COMP_KEY’, and ‘COMP_TYPE’ variables as described above
-(*note Bash Variables::). If a shell function is being invoked, Bash
-also sets the ‘COMP_WORDS’ and ‘COMP_CWORD’ variables. When the
-function or command is invoked, the first argument ($1) is the name of
-the command whose arguments are being completed, the second argument
-($2) is the word being completed, and the third argument ($3) is the
-word preceding the word being completed on the current command line.
-There is no filtering of the generated completions against the word
-being completed; the function or command has complete freedom in
-generating the matches and they do not need to match a prefix of the
-word.
-
- Any function specified with ‘-F’ is invoked first. The function may
-use any of the shell facilities, including the ‘compgen’ and ‘compopt’
-builtins described below (*note Programmable Completion Builtins::), to
-generate the matches. It must put the possible completions in the
-‘COMPREPLY’ array variable, one per array element.
-
- Next, any command specified with the ‘-C’ option is invoked in an
-environment equivalent to command substitution. It should print a list
-of completions, one per line, to the standard output. Backslash will
-escape a newline, if necessary. These are added to the set of possible
-completions.
-
- External commands that are invoked to generate completions ("external
-completers") receive the word preceding the completion word as an
-argument, as described above. This provides context that is sometimes
-useful, but may include information that is considered sensitive or part
-of a word expansion that will not appear in the command line after
-expansion. That word may be visible in process listings or in audit
-logs. This may be a concern to users and completion specification
-authors if there is sensitive information on the command line before
-expansion, since completion takes place before words are expanded. If
-this is an issue, completion authors should use functions as wrappers
-around external commands and pass context information to the external
-command in a different way. External completers can infer context from
-the COMP_LINE and COMP_POINT environment variables, but they need to
-ensure they break words in the same way Readline does, using the
-COMP_WORDBREAKS variable.
-
- After generating all of the possible completions, Bash applies any
-filter specified with the ‘-X’ option to the completions in the list.
-The filter is a pattern as used for pathname expansion; a ‘&’ in the
-pattern is replaced with the text of the word being completed. A
-literal ‘&’ may be escaped with a backslash; the backslash is removed
-before attempting a match. Any completion that matches the pattern is
-removed from the list. A leading ‘!’ negates the pattern; in this case
-Bash removes any completion that does not match the pattern. If the
-‘nocasematch’ shell option is enabled (see the description of ‘shopt’ in
-*note The Shopt Builtin::), Bash performs the match without regard to
-the case of alphabetic characters.
-
- Finally, programmable completion adds any prefix and suffix specified
-with the ‘-P’ and ‘-S’ options, respectively, to each completion, and
-returns the result to Readline as the list of possible completions.
-
- If the previously-applied actions do not generate any matches, and
-the ‘-o dirnames’ option was supplied to ‘complete’ when the compspec
-was defined, Bash attempts directory name completion.
-
- If the ‘-o plusdirs’ option was supplied to ‘complete’ when the
-compspec was defined, Bash attempts directory name completion and adds
-any matches to the set of possible completions.
-
- By default, if a compspec is found, whatever it generates is returned
-to the completion code as the full set of possible completions. The
-default Bash completions and the Readline default of filename completion
-are disabled. If the ‘-o bashdefault’ option was supplied to ‘complete’
-when the compspec was defined, and the compspec generates no matches,
-Bash attempts its default completions. If the compspec and, if
-attempted, the default Bash completions generate no matches, and the ‘-o
-default’ option was supplied to ‘complete’ when the compspec was
-defined, programmable completion performs Readline's default completion.
-
- The options supplied to ‘complete’ and ‘compopt’ can control how
-Readline treats the completions. For instance, the ‘-o fullquote’
-option tells Readline to quote the matches as if they were filenames.
-See the description of ‘complete’ (*note Programmable Completion
-Builtins::) for details.
-
- When a compspec indicates that it wants directory name completion,
-the programmable completion functions force Readline to append a slash
-to completed names which are symbolic links to directories, subject to
-the value of the MARK-DIRECTORIES Readline variable, regardless of the
-setting of the MARK-SYMLINKED-DIRECTORIES Readline variable.
-
- There is some support for dynamically modifying completions. This is
-most useful when used in combination with a default completion specified
-with ‘-D’. It's possible for shell functions executed as completion
-functions to indicate that completion should be retried by returning an
-exit status of 124. If a shell function returns 124, and changes the
-compspec associated with the command on which completion is being
-attempted (supplied as the first argument when the function is
-executed), programmable completion restarts from the beginning, with an
-attempt to find a new compspec for that command. This can be used to
-build a set of completions dynamically as completion is attempted,
-rather than loading them all at once.
-
- For instance, assuming that there is a library of compspecs, each
-kept in a file corresponding to the name of the command, the following
-default completion function would load completions dynamically:
-
- _completion_loader()
- {
- . "/etc/bash_completion.d/$1.sh" >/dev/null 2>&1 && return 124
- }
- complete -D -F _completion_loader -o bashdefault -o default
-
-\1f
-File: bash.info, Node: Programmable Completion Builtins, Next: A Programmable Completion Example, Prev: Programmable Completion, Up: Command Line Editing
-
-8.7 Programmable Completion Builtins
-====================================
-
-Three builtin commands are available to manipulate the programmable
-completion facilities: one to specify how the arguments to a particular
-command are to be completed, and two to modify the completion as it is
-happening.
-
-‘compgen’
- compgen [-V VARNAME] [OPTION] [WORD]
-
- Generate possible completion matches for WORD according to the
- OPTIONs, which may be any option accepted by the ‘complete’ builtin
- with the exceptions of ‘-p’, ‘-r’, ‘-D’, ‘-E’, and ‘-I’, and write
- the matches to the standard output.
-
- If the ‘-V’ option is supplied, ‘compgen’ stores the generated
- completions into the indexed array variable VARNAME instead of
- writing them to the standard output.
-
- When using the ‘-F’ or ‘-C’ options, the various shell variables
- set by the programmable completion facilities, while available,
- will not have useful values.
-
- The matches will be generated in the same way as if the
- programmable completion code had generated them directly from a
- completion specification with the same flags. If WORD is
- specified, only those completions matching WORD will be displayed
- or stored.
-
- The return value is true unless an invalid option is supplied, or
- no matches were generated.
-
-‘complete’
- complete [-abcdefgjksuv] [-o COMP-OPTION] [-DEI] [-A ACTION]
- [-G GLOBPAT] [-W WORDLIST] [-F FUNCTION] [-C COMMAND]
- [-X FILTERPAT] [-P PREFIX] [-S SUFFIX] NAME [NAME ...]
- complete -pr [-DEI] [NAME ...]
-
- Specify how arguments to each NAME should be completed.
-
- If the ‘-p’ option is supplied, or if no options or NAMEs are
- supplied, print existing completion specifications in a way that
- allows them to be reused as input. The ‘-r’ option removes a
- completion specification for each NAME, or, if no NAMEs are
- supplied, all completion specifications.
-
- The ‘-D’ option indicates that other supplied options and actions
- should apply to the "default" command completion; that is,
- completion attempted on a command for which no completion has
- previously been defined. The ‘-E’ option indicates that other
- supplied options and actions should apply to "empty" command
- completion; that is, completion attempted on a blank line. The
- ‘-I’ option indicates that other supplied options and actions
- should apply to completion on the initial non-assignment word on
- the line, or after a command delimiter such as ‘;’ or ‘|’, which is
- usually command name completion. If multiple options are supplied,
- the ‘-D’ option takes precedence over ‘-E’, and both take
- precedence over ‘-I’. If any of ‘-D’, ‘-E’, or ‘-I’ are supplied,
- any other NAME arguments are ignored; these completions only apply
- to the case specified by the option.
-
- The process of applying these completion specifications when word
- completion is attempted is described above (*note Programmable
- Completion::).
-
- Other options, if specified, have the following meanings. The
- arguments to the ‘-G’, ‘-W’, and ‘-X’ options (and, if necessary,
- the ‘-P’ and ‘-S’ options) should be quoted to protect them from
- expansion before the ‘complete’ builtin is invoked.
-
- ‘-o COMP-OPTION’
- The COMP-OPTION controls several aspects of the compspec's
- behavior beyond the simple generation of completions.
- COMP-OPTION may be one of:
-
- ‘bashdefault’
- Perform the rest of the default Bash completions if the
- compspec generates no matches.
-
- ‘default’
- Use Readline's default filename completion if the
- compspec generates no matches.
-
- ‘dirnames’
- Perform directory name completion if the compspec
- generates no matches.
-
- ‘filenames’
- Tell Readline that the compspec generates filenames, so
- it can perform any filename-specific processing (such as
- adding a slash to directory names, quoting special
- characters, or suppressing trailing spaces). This option
- is intended to be used with shell functions specified
- with ‘-F’.
-
- ‘fullquote’
- Tell Readline to quote all the completed words even if
- they are not filenames.
-
- ‘noquote’
- Tell Readline not to quote the completed words if they
- are filenames (quoting filenames is the default).
-
- ‘nosort’
- Tell Readline not to sort the list of possible
- completions alphabetically.
-
- ‘nospace’
- Tell Readline not to append a space (the default) to
- words completed at the end of the line.
-
- ‘plusdirs’
- After generating any matches defined by the compspec,
- attempt directory name completion and add any matches to
- the results of the other actions.
-
- ‘-A ACTION’
- The ACTION may be one of the following to generate a list of
- possible completions:
-
- ‘alias’
- Alias names. May also be specified as ‘-a’.
-
- ‘arrayvar’
- Array variable names.
-
- ‘binding’
- Readline key binding names (*note Bindable Readline
- Commands::).
-
- ‘builtin’
- Names of shell builtin commands. May also be specified
- as ‘-b’.
-
- ‘command’
- Command names. May also be specified as ‘-c’.
-
- ‘directory’
- Directory names. May also be specified as ‘-d’.
-
- ‘disabled’
- Names of disabled shell builtins.
-
- ‘enabled’
- Names of enabled shell builtins.
-
- ‘export’
- Names of exported shell variables. May also be specified
- as ‘-e’.
-
- ‘file’
- File and directory names, similar to Readline's filename
- completion. May also be specified as ‘-f’.
-
- ‘function’
- Names of shell functions.
-
- ‘group’
- Group names. May also be specified as ‘-g’.
-
- ‘helptopic’
- Help topics as accepted by the ‘help’ builtin (*note Bash
- Builtins::).
-
- ‘hostname’
- Hostnames, as taken from the file specified by the
- ‘HOSTFILE’ shell variable (*note Bash Variables::).
-
- ‘job’
- Job names, if job control is active. May also be
- specified as ‘-j’.
-
- ‘keyword’
- Shell reserved words. May also be specified as ‘-k’.
-
- ‘running’
- Names of running jobs, if job control is active.
-
- ‘service’
- Service names. May also be specified as ‘-s’.
-
- ‘setopt’
- Valid arguments for the ‘-o’ option to the ‘set’ builtin
- (*note The Set Builtin::).
-
- ‘shopt’
- Shell option names as accepted by the ‘shopt’ builtin
- (*note Bash Builtins::).
-
- ‘signal’
- Signal names.
-
- ‘stopped’
- Names of stopped jobs, if job control is active.
-
- ‘user’
- User names. May also be specified as ‘-u’.
-
- ‘variable’
- Names of all shell variables. May also be specified as
- ‘-v’.
-
- ‘-C COMMAND’
- COMMAND is executed in a subshell environment, and its output
- is used as the possible completions. Arguments are passed as
- with the ‘-F’ option.
-
- ‘-F FUNCTION’
- The shell function FUNCTION is executed in the current shell
- environment. When it is executed, the first argument ($1) is
- the name of the command whose arguments are being completed,
- the second argument ($2) is the word being completed, and the
- third argument ($3) is the word preceding the word being
- completed, as described above (*note Programmable
- Completion::). When ‘function’ finishes, programmable
- completion retrieves the possible completions from the value
- of the ‘COMPREPLY’ array variable.
-
- ‘-G GLOBPAT’
- Expand the filename expansion pattern GLOBPAT to generate the
- possible completions.
-
- ‘-P PREFIX’
- Add PREFIX to the beginning of each possible completion after
- all other options have been applied.
-
- ‘-S SUFFIX’
- Append SUFFIX to each possible completion after all other
- options have been applied.
-
- ‘-W WORDLIST’
- Split the WORDLIST using the characters in the ‘IFS’ special
- variable as delimiters, and expand each resulting word. Shell
- quoting is honored within WORDLIST in order to provide a
- mechanism for the words to contain shell metacharacters or
- characters in the value of ‘IFS’. The possible completions
- are the members of the resultant list which match a prefix of
- the word being completed.
-
- ‘-X FILTERPAT’
- FILTERPAT is a pattern as used for filename expansion. It is
- applied to the list of possible completions generated by the
- preceding options and arguments, and each completion matching
- FILTERPAT is removed from the list. A leading ‘!’ in
- FILTERPAT negates the pattern; in this case, any completion
- not matching FILTERPAT is removed.
-
- The return value is true unless an invalid option is supplied, an
- option other than ‘-p’, ‘-r’, ‘-D’, ‘-E’, or ‘-I’ is supplied
- without a NAME argument, an attempt is made to remove a completion
- specification for a NAME for which no specification exists, or an
- error occurs adding a completion specification.
-
-‘compopt’
- compopt [-o OPTION] [-DEI] [+o OPTION] [NAME]
- Modify completion options for each NAME according to the OPTIONs,
- or for the currently-executing completion if no NAMEs are supplied.
- If no OPTIONs are given, display the completion options for each
- NAME or the current completion. The possible values of OPTION are
- those valid for the ‘complete’ builtin described above.
-
- The ‘-D’ option indicates that other supplied options should apply
- to the "default" command completion; the ‘-E’ option indicates that
- other supplied options should apply to "empty" command completion;
- and the ‘-I’ option indicates that other supplied options should
- apply to completion on the initial word on the line. These are
- determined in the same way as the ‘complete’ builtin.
-
- If multiple options are supplied, the ‘-D’ option takes precedence
- over ‘-E’, and both take precedence over ‘-I’
-
- The return value is true unless an invalid option is supplied, an
- attempt is made to modify the options for a NAME for which no
- completion specification exists, or an output error occurs.
-
-\1f
-File: bash.info, Node: A Programmable Completion Example, Prev: Programmable Completion Builtins, Up: Command Line Editing
-
-8.8 A Programmable Completion Example
-=====================================
-
-The most common way to obtain additional completion functionality beyond
-the default actions ‘complete’ and ‘compgen’ provide is to use a shell
-function and bind it to a particular command using ‘complete -F’.
-
- The following function provides completions for the ‘cd’ builtin. It
-is a reasonably good example of what shell functions must do when used
-for completion. This function uses the word passed as ‘$2’ to determine
-the directory name to complete. You can also use the ‘COMP_WORDS’ array
-variable; the current word is indexed by the ‘COMP_CWORD’ variable.
-
- The function relies on the ‘complete’ and ‘compgen’ builtins to do
-much of the work, adding only the things that the Bash ‘cd’ does beyond
-accepting basic directory names: tilde expansion (*note Tilde
-Expansion::), searching directories in $CDPATH, which is described above
-(*note Bourne Shell Builtins::), and basic support for the ‘cdable_vars’
-shell option (*note The Shopt Builtin::). ‘_comp_cd’ modifies the value
-of IFS so that it contains only a newline to accommodate file names
-containing spaces and tabs - ‘compgen’ prints the possible completions
-it generates one per line.
-
- Possible completions go into the COMPREPLY array variable, one
-completion per array element. The programmable completion system
-retrieves the completions from there when the function returns.
-
- # A completion function for the cd builtin
- # based on the cd completion function from the bash_completion package
- _comp_cd()
- {
- local IFS=$' \t\n' # normalize IFS
- local cur _skipdot _cdpath
- local i j k
-
- # Tilde expansion, which also expands tilde to full pathname
- case "$2" in
- \~*) eval cur="$2" ;;
- *) cur=$2 ;;
- esac
-
- # no cdpath or absolute pathname -- straight directory completion
- if [[ -z "${CDPATH:-}" ]] || [[ "$cur" == @(./*|../*|/*) ]]; then
- # compgen prints paths one per line; could also use while loop
- IFS=$'\n'
- COMPREPLY=( $(compgen -d -- "$cur") )
- IFS=$' \t\n'
- # CDPATH+directories in the current directory if not in CDPATH
- else
- IFS=$'\n'
- _skipdot=false
- # preprocess CDPATH to convert null directory names to .
- _cdpath=${CDPATH/#:/.:}
- _cdpath=${_cdpath//::/:.:}
- _cdpath=${_cdpath/%:/:.}
- for i in ${_cdpath//:/$'\n'}; do
- if [[ $i -ef . ]]; then _skipdot=true; fi
- k="${#COMPREPLY[@]}"
- for j in $( compgen -d -- "$i/$cur" ); do
- COMPREPLY[k++]=${j#$i/} # cut off directory
- done
- done
- $_skipdot || COMPREPLY+=( $(compgen -d -- "$cur") )
- IFS=$' \t\n'
- fi
-
- # variable names if appropriate shell option set and no completions
- if shopt -q cdable_vars && [[ ${#COMPREPLY[@]} -eq 0 ]]; then
- COMPREPLY=( $(compgen -v -- "$cur") )
- fi
-
- return 0
- }
-
- We install the completion function using the ‘-F’ option to
-‘complete’:
-
- # Tell readline to quote appropriate and append slashes to directories;
- # use the bash default completion for other arguments
- complete -o filenames -o nospace -o bashdefault -F _comp_cd cd
-
-Since we'd like Bash and Readline to take care of some of the other
-details for us, we use several other options to tell Bash and Readline
-what to do. The ‘-o filenames’ option tells Readline that the possible
-completions should be treated as filenames, and quoted appropriately.
-That option will also cause Readline to append a slash to filenames it
-can determine are directories (which is why we might want to extend
-‘_comp_cd’ to append a slash if we're using directories found via
-CDPATH: Readline can't tell those completions are directories). The ‘-o
-nospace’ option tells Readline to not append a space character to the
-directory name, in case we want to append to it. The ‘-o bashdefault’
-option brings in the rest of the "Bash default" completions - possible
-completions that Bash adds to the default Readline set. These include
-things like command name completion, variable completion for words
-beginning with ‘$’ or ‘${’, completions containing pathname expansion
-patterns (*note Filename Expansion::), and so on.
-
- Once installed using ‘complete’, ‘_comp_cd’ will be called every time
-we attempt word completion for a ‘cd’ command.
-
- Many more examples - an extensive collection of completions for most
-of the common GNU, Unix, and Linux commands - are available as part of
-the bash_completion project. This is installed by default on many
-GNU/Linux distributions. Originally written by Ian Macdonald, the
-project now lives at <https://github.com/scop/bash-completion/>. There
-are ports for other systems such as Solaris and Mac OS X.
-
- An older version of the bash_completion package is distributed with
-bash in the ‘examples/complete’ subdirectory.
-
-\1f
-File: bash.info, Node: Using History Interactively, Next: Installing Bash, Prev: Command Line Editing, Up: Top
-
-9 Using History Interactively
-*****************************
-
-This chapter describes how to use the GNU History Library interactively,
-from a user's standpoint. It should be considered a user's guide. For
-information on using the GNU History Library in other programs, see the
-GNU Readline Library Manual.
-
-* Menu:
-
-* Bash History Facilities:: How Bash lets you manipulate your command
- history.
-* Bash History Builtins:: The Bash builtin commands that manipulate
- the command history.
-* History Interaction:: What it feels like using History as a user.
-
-\1f
-File: bash.info, Node: Bash History Facilities, Next: Bash History Builtins, Up: Using History Interactively
-
-9.1 Bash History Facilities
-===========================
-
-When the ‘-o history’ option to the ‘set’ builtin is enabled (*note The
-Set Builtin::), the shell provides access to the “command history”, the
-list of commands previously typed. The value of the ‘HISTSIZE’ shell
-variable is used as the number of commands to save in a history list:
-the shell saves the text of the last ‘$HISTSIZE’ commands (default 500).
-The shell stores each command in the history list prior to parameter and
-variable expansion but after history expansion is performed, subject to
-the values of the shell variables ‘HISTIGNORE’ and ‘HISTCONTROL’.
-
- When the shell starts up, Bash initializes the history list by
-reading history entries from the file named by the ‘HISTFILE’ variable
-(default ‘~/.bash_history’). This is referred to as the “history file”.
-The history file is truncated, if necessary, to contain no more than the
-number of history entries specified by the value of the ‘HISTFILESIZE’
-variable. If ‘HISTFILESIZE’ is unset, or set to null, a non-numeric
-value, or a numeric value less than zero, the history file is not
-truncated.
-
- When the history file is read, lines beginning with the history
-comment character followed immediately by a digit are interpreted as
-timestamps for the following history entry. These timestamps are
-optionally displayed depending on the value of the ‘HISTTIMEFORMAT’
-variable (*note Bash Variables::). When present, history timestamps
-delimit history entries, making multi-line entries possible.
-
- When a shell with history enabled exits, Bash copies the last
-‘$HISTSIZE’ entries from the history list to the file named by
-‘$HISTFILE’. If the ‘histappend’ shell option is set (*note Bash
-Builtins::), Bash appends the entries to the history file, otherwise it
-overwrites the history file. If ‘HISTFILE’ is unset or null, or if the
-history file is unwritable, the history is not saved. After saving the
-history, Bash truncates the history file to contain no more than
-‘$HISTFILESIZE’ lines as described above.
-
- If the ‘HISTTIMEFORMAT’ variable is set, the shell writes the
-timestamp information associated with each history entry to the history
-file, marked with the history comment character, so timestamps are
-preserved across shell sessions. When the history file is read, lines
-beginning with the history comment character followed immediately by a
-digit are interpreted as timestamps for the following history entry. As
-above, when using ‘HISTTIMEFORMAT’, the timestamps delimit multi-line
-history entries.
-
- The ‘fc’ builtin command will list or edit and re-execute a portion
-of the history list. The ‘history’ builtin can display or modify the
-history list and manipulate the history file. When using command-line
-editing, search commands are available in each editing mode that provide
-access to the history list (*note Commands For History::).
-
- The shell allows control over which commands are saved on the history
-list. The ‘HISTCONTROL’ and ‘HISTIGNORE’ variables are used to save
-only a subset of the commands entered. If the ‘cmdhist’ shell option is
-enabled, the shell attempts to save each line of a multi-line command in
-the same history entry, adding semicolons where necessary to preserve
-syntactic correctness. The ‘lithist’ shell option modifies ‘cmdhist’ by
-saving the command with embedded newlines instead of semicolons. The
-‘shopt’ builtin is used to set these options. *Note The Shopt
-Builtin::, for a description of ‘shopt’.
-
-\1f
-File: bash.info, Node: Bash History Builtins, Next: History Interaction, Prev: Bash History Facilities, Up: Using History Interactively
-
-9.2 Bash History Builtins
-=========================
-
-Bash provides two builtin commands which manipulate the history list and
-history file.
-
-‘fc’
- fc [-e ENAME] [-lnr] [FIRST] [LAST]
- fc -s [PAT=REP] [COMMAND]
-
- The first form selects a range of commands from FIRST to LAST from
- the history list and displays or edits and re-executes them. Both
- FIRST and LAST may be specified as a string (to locate the most
- recent command beginning with that string) or as a number (an index
- into the history list, where a negative number is used as an offset
- from the current command number).
-
- When listing, a FIRST or LAST of 0 is equivalent to -1 and -0 is
- equivalent to the current command (usually the ‘fc’ command);
- otherwise 0 is equivalent to -1 and -0 is invalid.
-
- If LAST is not specified, it is set to the current command for
- listing and to FIRST otherwise. If FIRST is not specified, it is
- set to the previous command for editing and −16 for listing.
-
- If the ‘-l’ flag is supplied, the commands are listed on standard
- output. The ‘-n’ flag suppresses the command numbers when listing.
- The ‘-r’ flag reverses the order of the listing.
-
- Otherwise, ‘fc’ invokes the editor named by ENAME on a file
- containing those commands. If ENAME is not supplied, ‘fc’ uses the
- value of the following variable expansion:
- ‘${FCEDIT:-${EDITOR:-vi}}’. This says to use the value of the
- ‘FCEDIT’ variable if set, or the value of the ‘EDITOR’ variable if
- that is set, or ‘vi’ if neither is set. When editing is complete,
- ‘fc’ reads the file of edited commands and echoes and executes
- them.
-
- In the second form, ‘fc’ re-executes COMMAND after replacing each
- instance of PAT in the selected command with REP. COMMAND is
- interpreted the same as FIRST above.
-
- A useful alias to use with the ‘fc’ command is ‘r='fc -s'’, so that
- typing ‘r cc’ runs the last command beginning with ‘cc’ and typing
- ‘r’ re-executes the last command (*note Aliases::).
-
- If the first form is used, the return value is zero unless an
- invalid option is encountered or FIRST or LAST specify history
- lines out of range. When editing and re-executing a file of
- commands, the return value is the value of the last command
- executed or failure if an error occurs with the temporary file. If
- the second form is used, the return status is that of the
- re-executed command, unless COMMAND does not specify a valid
- history entry, in which case ‘fc’ returns a non-zero status.
-
-‘history’
- history [N]
- history -c
- history -d OFFSET
- history -d START-END
- history [-anrw] [FILENAME]
- history -ps ARG
-
- With no options, display the history list with numbers. Entries
- prefixed with a ‘*’ have been modified. An argument of N lists
- only the last N entries. If the shell variable ‘HISTTIMEFORMAT’ is
- set and not null, it is used as a format string for ‘strftime’(3)
- to display the time stamp associated with each displayed history
- entry. If ‘history’ uses ‘HISTTIMEFORMAT’, it does not print an
- intervening space between the formatted time stamp and the history
- entry.
-
- Options, if supplied, have the following meanings:
-
- ‘-c’
- Clear the history list. This may be combined with the other
- options to replace the history list.
-
- ‘-d OFFSET’
- Delete the history entry at position OFFSET. If OFFSET is
- positive, it should be specified as it appears when the
- history is displayed. If OFFSET is negative, it is
- interpreted as relative to one greater than the last history
- position, so negative indices count back from the end of the
- history, and an index of ‘-1’ refers to the current ‘history
- -d’ command.
-
- ‘-d START-END’
- Delete the range of history entries between positions START
- and END, inclusive. Positive and negative values for START
- and END are interpreted as described above.
-
- ‘-a’
- Append the "new" history lines to the history file. These are
- history lines entered since the beginning of the current Bash
- session, but not already appended to the history file.
-
- ‘-n’
- Read the history lines not already read from the history file
- and add them to the current history list. These are lines
- appended to the history file since the beginning of the
- current Bash session.
-
- ‘-r’
- Read the history file and append its contents to the history
- list.
-
- ‘-w’
- Write the current history list to the history file,
- overwriting the history file.
-
- ‘-p’
- Perform history substitution on the ARGs and display the
- result on the standard output, without storing the results in
- the history list.
-
- ‘-s’
- Add the ARGs to the end of the history list as a single entry.
- The last command in the history list is removed before adding
- the ARGs.
-
- If a FILENAME argument is supplied with any of the ‘-w’, ‘-r’,
- ‘-a’, or ‘-n’ options, Bash uses FILENAME as the history file. If
- not, it uses the value of the ‘HISTFILE’ variable. If ‘HISTFILE’
- is unset or null, these options have no effect.
-
- If the ‘HISTTIMEFORMAT’ variable is set, ‘history’ writes the time
- stamp information associated with each history entry to the history
- file, marked with the history comment character as described above.
- When the history file is read, lines beginning with the history
- comment character followed immediately by a digit are interpreted
- as timestamps for the following history entry.
-
- The return value is 0 unless an invalid option is encountered, an
- error occurs while reading or writing the history file, an invalid
- OFFSET or range is supplied as an argument to ‘-d’, or the history
- expansion supplied as an argument to ‘-p’ fails.
-
-\1f
-File: bash.info, Node: History Interaction, Prev: Bash History Builtins, Up: Using History Interactively
-
-9.3 History Expansion
-=====================
-
-The shell provides a history expansion feature that is similar to the
-history expansion provided by ‘csh’ (also referred to as history
-substitution where appropriate). This section describes the syntax used
-to manipulate the history information.
-
- History expansion is enabled by default for interactive shells, and
-can be disabled using the ‘+H’ option to the ‘set’ builtin command
-(*note The Set Builtin::). Non-interactive shells do not perform
-history expansion by default, but it can be enabled with ‘set -H’.
-
- History expansions introduce words from the history list into the
-input stream, making it easy to repeat commands, insert the arguments to
-a previous command into the current input line, or fix errors in
-previous commands quickly.
-
- History expansion is performed immediately after a complete line is
-read, before the shell breaks it into words, and is performed on each
-line individually. Bash attempts to inform the history expansion
-functions about quoting still in effect from previous lines.
-
- History expansion takes place in two parts. The first is to
-determine which entry from the history list should be used during
-substitution. The second is to select portions of that entry to include
-into the current one.
-
- The entry selected from the history is called the “event”, and the
-portions of that entry that are acted upon are “words”. Various
-“modifiers” are available to manipulate the selected words. The entry
-is split into words in the same fashion that Bash does when reading
-input, so that several words surrounded by quotes are considered one
-word. The “event designator” selects the event, the optional “word
-designator” selects words from the event, and various optional
-“modifiers” are available to manipulate the selected words.
-
- History expansions are introduced by the appearance of the history
-expansion character, which is ‘!’ by default. History expansions may
-appear anywhere in the input, but do not nest.
-
- History expansion implements shell-like quoting conventions: a
-backslash can be used to remove the special handling for the next
-character; single quotes enclose verbatim sequences of characters, and
-can be used to inhibit history expansion; and characters enclosed within
-double quotes may be subject to history expansion, since backslash can
-escape the history expansion character, but single quotes may not, since
-they are not treated specially within double quotes.
-
- When using the shell, only ‘\’ and ‘'’ may be used to escape the
-history expansion character, but the history expansion character is also
-treated as quoted if it immediately precedes the closing double quote in
-a double-quoted string.
-
- Several characters inhibit history expansion if found immediately
-following the history expansion character, even if it is unquoted:
-space, tab, newline, carriage return, ‘=’, and the other shell
-metacharacters.
-
- There is a special abbreviation for substitution, active when the
-QUICK SUBSTITUTION character (described above under ‘histchars’) is the
-first character on the line. It selects the previous history list
-entry, using an event designator equivalent to ‘!!’, and substitutes one
-string for another in that entry. It is described below (*note Event
-Designators::). This is the only history expansion that does not begin
-with the history expansion character.
-
- Several shell options settable with the ‘shopt’ builtin (*note The
-Shopt Builtin::) modify history expansion behavior If the ‘histverify’
-shell option is enabled, and Readline is being used, history
-substitutions are not immediately passed to the shell parser. Instead,
-the expanded line is reloaded into the Readline editing buffer for
-further modification. If Readline is being used, and the ‘histreedit’
-shell option is enabled, a failed history expansion is reloaded into the
-Readline editing buffer for correction.
-
- The ‘-p’ option to the ‘history’ builtin command shows what a history
-expansion will do before using it. The ‘-s’ option to the ‘history’
-builtin may be used to add commands to the end of the history list
-without actually executing them, so that they are available for
-subsequent recall. This is most useful in conjunction with Readline.
-
- The shell allows control of the various characters used by the
-history expansion mechanism with the ‘histchars’ variable, as explained
-above (*note Bash Variables::). The shell uses the history comment
-character to mark history timestamps when writing the history file.
-
-* Menu:
-
-* Event Designators:: How to specify which history line to use.
-* Word Designators:: Specifying which words are of interest.
-* Modifiers:: Modifying the results of substitution.
-
-\1f
-File: bash.info, Node: Event Designators, Next: Word Designators, Up: History Interaction
-
-9.3.1 Event Designators
------------------------
-
-An event designator is a reference to an entry in the history list. The
-event designator consists of the portion of the word beginning with the
-history expansion character, and ending with the word designator if one
-is present, or the end of the word. Unless the reference is absolute,
-events are relative to the current position in the history list.
-
-‘!’
- Start a history substitution, except when followed by a space, tab,
- the end of the line, ‘=’, or the rest of the shell metacharacters
- defined above (*note Definitions::).
-
-‘!N’
- Refer to history list entry N.
-
-‘!-N’
- Refer to the history entry minus N.
-
-‘!!’
- Refer to the previous entry. This is a synonym for ‘!-1’.
-
-‘!STRING’
- Refer to the most recent command preceding the current position in
- the history list starting with STRING.
-
-‘!?STRING[?]’
- Refer to the most recent command preceding the current position in
- the history list containing STRING. The trailing ‘?’ may be
- omitted if the STRING is followed immediately by a newline. If
- STRING is missing, this uses the string from the most recent
- search; it is an error if there is no previous search string.
-
-‘^STRING1^STRING2^’
- Quick Substitution. Repeat the last command, replacing STRING1
- with STRING2. Equivalent to ‘!!:s^STRING1^STRING2^’.
-
-‘!#’
- The entire command line typed so far.
-
-\1f
-File: bash.info, Node: Word Designators, Next: Modifiers, Prev: Event Designators, Up: History Interaction
-
-9.3.2 Word Designators
-----------------------
-
-Word designators are used to select desired words from the event. They
-are optional; if the word designator isn't supplied, the history
-expansion uses the entire event. A ‘:’ separates the event
-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). 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,
-
-‘!!’
- designates the preceding command. When you type this, the
- preceding command is repeated in toto.
-
-‘!!:$’
- designates the last word of the preceding command. This may be
- shortened to ‘!$’.
-
-‘!fi:2’
- designates the second argument of the most recent command starting
- with the letters ‘fi’.
-
- Here are the word designators:
-
-‘0 (zero)’
- The ‘0’th word. For the shell, and many other, applications, this
- is the command word.
-
-‘N’
- The Nth word.
-
-‘^’
- The first argument: word 1.
-
-‘$’
- The last word. This is usually the last argument, but expands to
- the zeroth word if there is only one word in the line.
-
-‘%’
- The first word matched by the most recent ‘?STRING?’ search, if the
- search string begins with a character that is part of a word. By
- default, searches begin at the end of each line and proceed to the
- beginning, so the first word matched is the one closest to the end
- of the line.
-
-‘X-Y’
- A range of words; ‘-Y’ abbreviates ‘0-Y’.
-
-‘*’
- All of the words, except the ‘0’th. This is a synonym for ‘1-$’.
- It is not an error to use ‘*’ if there is just one word in the
- event; it expands to the empty string in that case.
-
-‘X*’
- Abbreviates ‘X-$’.
-
-‘X-’
- Abbreviates ‘X-$’ like ‘X*’, but omits the last word. If ‘x’ is
- missing, it defaults to 0.
-
- If a word designator is supplied without an event specification, the
-previous command is used as the event, equivalent to ‘!!’.
-
-\1f
-File: bash.info, Node: Modifiers, Prev: Word Designators, Up: History Interaction
-
-9.3.3 Modifiers
----------------
-
-After the optional word designator, you can add a sequence of one or
-more of the following modifiers, each preceded by a ‘:’. These modify,
-or edit, the word or words selected from the history event.
-
-‘h’
- Remove a trailing filename component, leaving only the head.
-
-‘t’
- Remove all leading filename components, leaving the tail.
-
-‘r’
- Remove a trailing suffix of the form ‘.SUFFIX’, leaving the
- basename.
-
-‘e’
- Remove all but the trailing suffix.
-
-‘p’
- Print the new command but do not execute it.
-
-‘q’
- Quote the substituted words, escaping further substitutions.
-
-‘x’
- Quote the substituted words as with ‘q’, but break into words at
- spaces, tabs, and newlines. The ‘q’ and ‘x’ modifiers are mutually
- exclusive; expansion uses the last one supplied.
-
-‘s/OLD/NEW/’
- Substitute NEW for the first occurrence of OLD in the event line.
- Any character may be used as the delimiter in place of ‘/’. The
- delimiter may be quoted in OLD and NEW with a single backslash. If
- ‘&’ appears in NEW, it is replaced with OLD. A single backslash
- quotes the ‘&’ in OLD and NEW. If OLD is null, it is set to the
- last OLD substituted, or, if no previous history substitutions took
- place, the last STRING in a !?STRING‘[?]’ search. If NEW is null,
- each matching OLD is deleted. The final delimiter is optional if
- it is the last character on the input line.
-
-‘&’
- Repeat the previous substitution.
-
-‘g’
-‘a’
- Cause changes to be applied over the entire event line. This is
- used in conjunction with ‘s’, as in ‘gs/OLD/NEW/’, or with ‘&’.
-
-‘G’
- Apply the following ‘s’ or ‘&’ modifier once to each word in the
- event.
-
-\1f
-File: bash.info, Node: Installing Bash, Next: Reporting Bugs, Prev: Using History Interactively, Up: Top
-
-10 Installing Bash
-******************
-
-This chapter provides basic instructions for installing Bash on the
-various supported platforms. The distribution supports the GNU
-operating systems, nearly every version of Unix, and several non-Unix
-systems such as BeOS and Interix. Other independent ports exist for
-Windows platforms.
-
-* Menu:
-
-* Basic Installation:: Installation instructions.
-* Compilers and Options:: How to set special options for various
- systems.
-* Compiling For Multiple Architectures:: How to compile Bash for more
- than one kind of system from
- the same source tree.
-* Installation Names:: How to set the various paths used by the installation.
-* Specifying the System Type:: How to configure Bash for a particular system.
-* Sharing Defaults:: How to share default configuration values among GNU
- programs.
-* Operation Controls:: Options recognized by the configuration program.
-* Optional Features:: How to enable and disable optional features when
- building Bash.
-
-\1f
-File: bash.info, Node: Basic Installation, Next: Compilers and Options, Up: Installing Bash
-
-10.1 Basic Installation
-=======================
-
-These are installation instructions for Bash.
-
- The simplest way to compile Bash is:
-
- 1. ‘cd’ to the directory containing the source code and type
- ‘./configure’ to configure Bash for your system. If you're using
- ‘csh’ on an old version of System V, you might need to type ‘sh
- ./configure’ instead to prevent ‘csh’ from trying to execute
- ‘configure’ itself.
-
- Running ‘configure’ takes some time. While running, it prints
- messages telling which features it is checking for.
-
- 2. Type ‘make’ to compile Bash and build the ‘bashbug’ bug reporting
- script.
-
- 3. Optionally, type ‘make tests’ to run the Bash test suite.
-
- 4. Type ‘make install’ to install ‘bash’ and ‘bashbug’. This will
- also install the manual pages and Info file, message translation
- files, some supplemental documentation, a number of example
- loadable builtin commands, and a set of header files for developing
- loadable builtins. You may need additional privileges to install
- ‘bash’ to your desired destination, which may require ‘sudo make
- install’. More information about controlling the locations where
- ‘bash’ and other files are installed is below (*note Installation
- Names::).
-
- The ‘configure’ shell script attempts to guess correct values for
-various system-dependent variables used during compilation. It uses
-those values to create a ‘Makefile’ in each directory of the package
-(the top directory, the ‘builtins’, ‘doc’, ‘po’, and ‘support’
-directories, each directory under ‘lib’, and several others). It also
-creates a ‘config.h’ file containing system-dependent definitions.
-Finally, it creates a shell script named ‘config.status’ that you can
-run in the future to recreate the current configuration, a file
-‘config.cache’ that saves the results of its tests to speed up
-reconfiguring, and a file ‘config.log’ containing compiler output
-(useful mainly for debugging ‘configure’). If at some point
-‘config.cache’ contains results you don't want to keep, you may remove
-or edit it.
-
- To find out more about the options and arguments that the ‘configure’
-script understands, type
-
- bash-4.2$ ./configure --help
-
-at the Bash prompt in your Bash source directory.
-
- If you want to build Bash in a directory separate from the source
-directory - to build for multiple architectures, for example - just use
-the full path to the configure script. The following commands will
-build Bash in a directory under ‘/usr/local/build’ from the source code
-in ‘/usr/local/src/bash-4.4’:
-
- mkdir /usr/local/build/bash-4.4
- cd /usr/local/build/bash-4.4
- bash /usr/local/src/bash-4.4/configure
- make
-
- See *note Compiling For Multiple Architectures:: for more information
-about building in a directory separate from the source.
-
- If you need to do unusual things to compile Bash, please try to
-figure out how ‘configure’ could check whether or not to do them, and
-mail diffs or instructions to <bash-maintainers@gnu.org> so they can be
-considered for the next release.
-
- The file ‘configure.ac’ is used to create ‘configure’ by a program
-called Autoconf. You only need ‘configure.ac’ if you want to change it
-or regenerate ‘configure’ using a newer version of Autoconf. If you do
-this, make sure you are using Autoconf version 2.69 or newer.
-
- You can remove the program binaries and object files from the source
-code directory by typing ‘make clean’. To also remove the files that
-‘configure’ created (so you can compile Bash for a different kind of
-computer), type ‘make distclean’.
-
-\1f
-File: bash.info, Node: Compilers and Options, Next: Compiling For Multiple Architectures, Prev: Basic Installation, Up: Installing Bash
-
-10.2 Compilers and Options
-==========================
-
-Some systems require unusual options for compilation or linking that the
-‘configure’ script does not know about. You can give ‘configure’
-initial values for variables by setting them in the environment. Using
-a Bourne-compatible shell, you can do that on the command line like
-this:
-
- CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
-
- On systems that have the ‘env’ program, you can do it like this:
-
- env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
-
- The configuration process uses GCC to build Bash if it is available.
-
-\1f
-File: bash.info, Node: Compiling For Multiple Architectures, Next: Installation Names, Prev: Compilers and Options, Up: Installing Bash
-
-10.3 Compiling For Multiple Architectures
-=========================================
-
-You can compile Bash for more than one kind of computer at the same
-time, by placing the object files for each architecture in their own
-directory. To do this, you must use a version of ‘make’ that supports
-the ‘VPATH’ variable, such as GNU ‘make’. ‘cd’ to the directory where
-you want the object files and executables to go and run the ‘configure’
-script from the source directory (*note Basic Installation::). You may
-need to supply the ‘--srcdir=PATH’ argument to tell ‘configure’ where
-the source files are. ‘configure’ automatically checks for the source
-code in the directory that ‘configure’ is in and in ‘..’.
-
- If you have to use a ‘make’ that does not support the ‘VPATH’
-variable, you can compile Bash for one architecture at a time in the
-source code directory. After you have installed Bash for one
-architecture, use ‘make distclean’ before reconfiguring for another
-architecture.
-
- Alternatively, if your system supports symbolic links, you can use
-the ‘support/mkclone’ script to create a build tree which has symbolic
-links back to each file in the source directory. Here's an example that
-creates a build directory in the current directory from a source
-directory ‘/usr/gnu/src/bash-2.0’:
-
- bash /usr/gnu/src/bash-2.0/support/mkclone -s /usr/gnu/src/bash-2.0 .
-
-The ‘mkclone’ script requires Bash, so you must have already built Bash
-for at least one architecture before you can create build directories
-for other architectures.
-
-\1f
-File: bash.info, Node: Installation Names, Next: Specifying the System Type, Prev: Compiling For Multiple Architectures, Up: Installing Bash
-
-10.4 Installation Names
-=======================
-
-By default, ‘make install’ will install into ‘/usr/local/bin’,
-‘/usr/local/man’, etc.; that is, the “installation prefix” defaults to
-‘/usr/local’. You can specify an installation prefix other than
-‘/usr/local’ by giving ‘configure’ the option ‘--prefix=PATH’, or by
-specifying a value for the ‘prefix’ ‘make’ variable when running ‘make
-install’ (e.g., ‘make install prefix=PATH’). The ‘prefix’ variable
-provides a default for ‘exec_prefix’ and other variables used when
-installing Bash.
-
- You can specify separate installation prefixes for
-architecture-specific files and architecture-independent files. If you
-give ‘configure’ the option ‘--exec-prefix=PATH’, ‘make install’ will
-use PATH as the prefix for installing programs and libraries.
-Documentation and other data files will still use the regular prefix.
-
- If you would like to change the installation locations for a single
-run, you can specify these variables as arguments to ‘make’: ‘make
-install exec_prefix=/’ will install ‘bash’ and ‘bashbug’ into ‘/bin’
-instead of the default ‘/usr/local/bin’.
-
- If you want to see the files Bash will install and where it will
-install them without changing anything on your system, specify the
-variable ‘DESTDIR’ as an argument to ‘make’. Its value should be the
-absolute directory path you'd like to use as the root of your sample
-installation tree. For example,
-
- mkdir /fs1/bash-install
- make install DESTDIR=/fs1/bash-install
-
-will install ‘bash’ into ‘/fs1/bash-install/usr/local/bin/bash’, the
-documentation into directories within
-‘/fs1/bash-install/usr/local/share’, the example loadable builtins into
-‘/fs1/bash-install/usr/local/lib/bash’, and so on. You can use the
-usual ‘exec_prefix’ and ‘prefix’ variables to alter the directory paths
-beneath the value of ‘DESTDIR’.
-
- The GNU Makefile standards provide a more complete description of
-these variables and their effects.
-
-\1f
-File: bash.info, Node: Specifying the System Type, Next: Sharing Defaults, Prev: Installation Names, Up: Installing Bash
-
-10.5 Specifying the System Type
-===============================
-
-There may be some features ‘configure’ can not figure out automatically,
-but needs to determine by the type of host Bash will run on. Usually
-‘configure’ can figure that out, but if it prints a message saying it
-can not guess the host type, give it the ‘--host=TYPE’ option. ‘TYPE’
-can either be a short name for the system type, such as ‘sun4’, or a
-canonical name with three fields: ‘CPU-COMPANY-SYSTEM’ (e.g.,
-‘i386-unknown-freebsd4.2’).
-
- See the file ‘support/config.sub’ for the possible values of each
-field.
-
-\1f
-File: bash.info, Node: Sharing Defaults, Next: Operation Controls, Prev: Specifying the System Type, Up: Installing Bash
-
-10.6 Sharing Defaults
-=====================
-
-If you want to set default values for ‘configure’ scripts to share, you
-can create a site shell script called ‘config.site’ that gives default
-values for variables like ‘CC’, ‘cache_file’, and ‘prefix’. ‘configure’
-looks for ‘PREFIX/share/config.site’ if it exists, then
-‘PREFIX/etc/config.site’ if it exists. Or, you can set the
-‘CONFIG_SITE’ environment variable to the location of the site script.
-A warning: the Bash ‘configure’ looks for a site script, but not all
-‘configure’ scripts do.
-
-\1f
-File: bash.info, Node: Operation Controls, Next: Optional Features, Prev: Sharing Defaults, Up: Installing Bash
-
-10.7 Operation Controls
-=======================
-
-‘configure’ recognizes the following options to control how it operates.
-
-‘--cache-file=FILE’
- Use and save the results of the tests in FILE instead of
- ‘./config.cache’. Set FILE to ‘/dev/null’ to disable caching, for
- debugging ‘configure’.
-
-‘--help’
- Print a summary of the options to ‘configure’, and exit.
-
-‘--quiet’
-‘--silent’
-‘-q’
- Do not print messages saying which checks are being made.
-
-‘--srcdir=DIR’
- Look for the Bash source code in directory DIR. Usually
- ‘configure’ can determine that directory automatically.
-
-‘--version’
- Print the version of Autoconf used to generate the ‘configure’
- script, and exit.
-
- ‘configure’ also accepts some other, not widely used, boilerplate
-options. ‘configure --help’ prints the complete list.
-
-\1f
-File: bash.info, Node: Optional Features, Prev: Operation Controls, Up: Installing Bash
-
-10.8 Optional Features
-======================
-
-The Bash ‘configure’ has a number of ‘--enable-FEATURE’ options, where
-FEATURE indicates an optional part of Bash. There are also several
-‘--with-PACKAGE’ options, where PACKAGE is something like ‘bash-malloc’
-or ‘afs’. To turn off the default use of a package, use
-‘--without-PACKAGE’. To configure Bash without a feature that is
-enabled by default, use ‘--disable-FEATURE’.
-
- Here is a complete list of the ‘--enable-’ and ‘--with-’ options that
-the Bash ‘configure’ recognizes.
-
-‘--with-afs’
- Define if you are using the Andrew File System from Transarc.
-
-‘--with-bash-malloc’
- Use the Bash version of ‘malloc’ in the directory ‘lib/malloc’.
- This is not the same ‘malloc’ that appears in GNU libc, but a
- custom version originally derived from the 4.2 BSD ‘malloc’. This
- ‘malloc’ is very fast, but wastes some space on each allocation,
- though it uses several techniques to minimize the waste. This
- option is enabled by default. The ‘NOTES’ file contains a list of
- systems for which this should be turned off, and ‘configure’
- disables this option automatically for a number of systems.
-
-‘--with-curses[=LIBNAME]’
- Use the curses library instead of the termcap library as the
- library where the linker can find the termcap functions.
- ‘configure’ usually chooses this automatically, since most systems
- include the termcap functions in the curses library. If LIBNAME is
- supplied, ‘configure’ does not search for an appropriate library
- and uses LIBNAME instead. LIBNAME should be either an argument for
- the linker (e.g., ‘-lLIBNAME’) or a filename (e.g.,
- ‘/opt/local/lib/libncursesw.so’).
-
-‘--with-gnu-malloc’
- A synonym for ‘--with-bash-malloc’.
-
-‘--with-installed-readline[=PREFIX]’
- Define this to make Bash link with a locally-installed version of
- Readline rather than the version in ‘lib/readline’. This works
- only with Readline 5.0 and later versions. If PREFIX is ‘yes’ or
- not supplied, ‘configure’ uses the values of the make variables
- ‘includedir’ and ‘libdir’, which are subdirectories of ‘prefix’ by
- default, to find the installed version of Readline if it is not in
- the standard system include and library directories. If PREFIX is
- ‘no’, Bash links with the version in ‘lib/readline’. If PREFIX is
- set to any other value, ‘configure’ treats it as a directory
- pathname and looks for the installed version of Readline in
- subdirectories of that directory (include files in PREFIX/‘include’
- and the library in PREFIX/‘lib’). The Bash default is to link with
- a static library built in the ‘lib/readline’ subdirectory of the
- build directory.
-
-‘--with-libintl-prefix[=PREFIX]’
- Define this to make Bash link with a locally-installed version of
- the libintl library instead of the version in ‘lib/intl’.
-
-‘--with-libiconv-prefix[=PREFIX]’
- Define this to make Bash look for libiconv in PREFIX instead of the
- standard system locations. The Bash distribution does not include
- this library.
-
-‘--enable-minimal-config’
- This produces a shell with minimal features, closer to the
- historical Bourne shell.
-
- There are several ‘--enable-’ options that alter how Bash is
-compiled, linked, and installed, rather than changing run-time features.
-
-‘--enable-largefile’
- Enable support for large files
- (http://www.unix.org/version2/whatsnew/lfs20mar.html) if the
- operating system requires special compiler options to build
- programs which can access large files. This is enabled by default,
- if the operating system provides large file support.
-
-‘--enable-profiling’
- This builds a Bash binary that produces profiling information to be
- processed by ‘gprof’ each time it is executed.
-
-‘--enable-separate-helpfiles’
- Use external files for the documentation displayed by the ‘help’
- builtin instead of storing the text internally.
-
-‘--enable-static-link’
- This causes Bash to be linked statically, if ‘gcc’ is being used.
- This could be used to build a version to use as root's shell.
-
- The ‘minimal-config’ option can be used to disable all of the
-following options, but it is processed first, so individual options may
-be enabled using ‘enable-FEATURE’.
-
- All of the following options except for ‘alt-array-implementation’,
-‘disabled-builtins’, ‘direxpand-default’, ‘strict-posix-default’, and
-‘xpg-echo-default’ are enabled by default, unless the operating system
-does not provide the necessary support.
-
-‘--enable-alias’
- Allow alias expansion and include the ‘alias’ and ‘unalias’
- builtins (*note Aliases::).
-
-‘--enable-alt-array-implementation’
- This builds Bash using an alternate implementation of arrays (*note
- Arrays::) that provides faster access at the expense of using more
- memory (sometimes many times more, depending on how sparse an array
- is).
-
-‘--enable-arith-for-command’
- Include support for the alternate form of the ‘for’ command that
- behaves like the C language ‘for’ statement (*note Looping
- Constructs::).
-
-‘--enable-array-variables’
- Include support for one-dimensional array shell variables (*note
- Arrays::).
-
-‘--enable-bang-history’
- Include support for ‘csh’-like history substitution (*note History
- Interaction::).
-
-‘--enable-bash-source-fullpath-default’
- Set the default value of the ‘bash_source_fullpath’ shell option
- described above under *note The Shopt Builtin:: to be enabled.
- This controls how filenames are assigned to the ‘BASH_SOURCE’ array
- variable.
-
-‘--enable-brace-expansion’
- Include ‘csh’-like brace expansion ( ‘b{a,b}c’ ↦ ‘bac bbc’ ). See
- *note Brace Expansion::, for a complete description.
-
-‘--enable-casemod-attributes’
- Include support for case-modifying attributes in the ‘declare’
- builtin and assignment statements. Variables with the ‘uppercase’
- attribute, for example, will have their values converted to
- uppercase upon assignment.
-
-‘--enable-casemod-expansion’
- Include support for case-modifying word expansions.
-
-‘--enable-command-timing’
- Include support for recognizing ‘time’ as a reserved word and for
- displaying timing statistics for the pipeline following ‘time’
- (*note Pipelines::). This allows timing pipelines, shell compound
- commands, shell builtins, and shell functions, which an external
- command cannot do easily.
-
-‘--enable-cond-command’
- Include support for the ‘[[’ conditional command. (*note
- Conditional Constructs::).
-
-‘--enable-cond-regexp’
- Include support for matching POSIX regular expressions using the
- ‘=~’ binary operator in the ‘[[’ conditional command. (*note
- Conditional Constructs::).
-
-‘--enable-coprocesses’
- Include support for coprocesses and the ‘coproc’ reserved word
- (*note Pipelines::).
-
-‘--enable-debugger’
- Include support for the Bash debugger (distributed separately).
-
-‘--enable-dev-fd-stat-broken’
- If calling ‘stat’ on /dev/fd/N returns different results than
- calling ‘fstat’ on file descriptor N, supply this option to enable
- a workaround. This has implications for conditional commands that
- test file attributes.
-
-‘--enable-direxpand-default’
- Cause the ‘direxpand’ shell option (*note The Shopt Builtin::) to
- be enabled by default when the shell starts. It is normally
- disabled by default.
-
-‘--enable-directory-stack’
- Include support for a ‘csh’-like directory stack and the ‘pushd’,
- ‘popd’, and ‘dirs’ builtins (*note The Directory Stack::).
-
-‘--enable-disabled-builtins’
- Allow builtin commands to be invoked via ‘builtin xxx’ even after
- ‘xxx’ has been disabled using ‘enable -n xxx’. See *note Bash
- Builtins::, for details of the ‘builtin’ and ‘enable’ builtin
- commands.
-
-‘--enable-dparen-arithmetic’
- Include support for the ‘((...))’ command (*note Conditional
- Constructs::).
-
-‘--enable-extended-glob’
- Include support for the extended pattern matching features
- described above under *note Pattern Matching::.
-
-‘--enable-extended-glob-default’
- Set the default value of the ‘extglob’ shell option described above
- under *note The Shopt Builtin:: to be enabled.
-
-‘--enable-function-import’
- Include support for importing function definitions exported by
- another instance of the shell from the environment. This option is
- enabled by default.
-
-‘--enable-glob-asciiranges-default’
- Set the default value of the ‘globasciiranges’ shell option
- described above under *note The Shopt Builtin:: to be enabled.
- This controls the behavior of character ranges when used in pattern
- matching bracket expressions.
-
-‘--enable-help-builtin’
- Include the ‘help’ builtin, which displays help on shell builtins
- and variables (*note Bash Builtins::).
-
-‘--enable-history’
- Include command history and the ‘fc’ and ‘history’ builtin commands
- (*note Bash History Facilities::).
-
-‘--enable-job-control’
- This enables the job control features (*note Job Control::), if the
- operating system supports them.
-
-‘--enable-multibyte’
- This enables support for multibyte characters if the operating
- system provides the necessary support.
-
-‘--enable-net-redirections’
- This enables the special handling of filenames of the form
- ‘/dev/tcp/HOST/PORT’ and ‘/dev/udp/HOST/PORT’ when used in
- redirections (*note Redirections::).
-
-‘--enable-process-substitution’
- This enables process substitution (*note Process Substitution::) if
- the operating system provides the necessary support.
-
-‘--enable-progcomp’
- Enable the programmable completion facilities (*note Programmable
- Completion::). If Readline is not enabled, this option has no
- effect.
-
-‘--enable-prompt-string-decoding’
- Turn on the interpretation of a number of backslash-escaped
- characters in the ‘$PS0’, ‘$PS1’, ‘$PS2’, and ‘$PS4’ prompt
- strings. See *note Controlling the Prompt::, for a complete list
- of prompt string escape sequences.
-
-‘--enable-readline’
- Include support for command-line editing and history with the Bash
- version of the Readline library (*note Command Line Editing::).
-
-‘--enable-restricted’
- Include support for a “restricted shell”. If this is enabled, Bash
- enters a restricted mode when called as ‘rbash’. See *note The
- Restricted Shell::, for a description of restricted mode.
-
-‘--enable-select’
- Include the ‘select’ compound command, which allows generation of
- simple menus (*note Conditional Constructs::).
-
-‘--enable-single-help-strings’
- Store the text displayed by the ‘help’ builtin as a single string
- for each help topic. This aids in translating the text to
- different languages. You may need to disable this if your compiler
- cannot handle very long string literals.
-
-‘--enable-strict-posix-default’
- Make Bash POSIX-conformant by default (*note Bash POSIX Mode::).
-
-‘--enable-translatable-strings’
- Enable support for ‘$"STRING"’ translatable strings (*note Locale
- Translation::).
-
-‘--enable-usg-echo-default’
- A synonym for ‘--enable-xpg-echo-default’.
-
-‘--enable-xpg-echo-default’
- Make the ‘echo’ builtin expand backslash-escaped characters by
- default, without requiring the ‘-e’ option. This sets the default
- value of the ‘xpg_echo’ shell option to ‘on’, which makes the Bash
- ‘echo’ behave more like the version specified in the Single Unix
- Specification, version 3. *Note Bash Builtins::, for a description
- of the escape sequences that ‘echo’ recognizes.
-
- The file ‘config-top.h’ contains C Preprocessor ‘#define’ statements
-for options which are not settable from ‘configure’. Some of these are
-not meant to be changed; beware of the consequences if you do. Read the
-comments associated with each definition for more information about its
-effect.
-
-\1f
-File: bash.info, Node: Reporting Bugs, Next: Major Differences From The Bourne Shell, Prev: Installing Bash, Up: Top
-
-Appendix A Reporting Bugs
-*************************
-
-Please report all bugs you find in Bash. But first, you should make
-sure that it really is a bug, and that it appears in the latest version
-of Bash. The latest released version of Bash is always available for
-FTP from <ftp://ftp.gnu.org/pub/gnu/bash/> and from
-<http://git.savannah.gnu.org/cgit/bash.git/snapshot/bash-master.tar.gz>.
-
- Once you have determined that a bug actually exists, use the
-‘bashbug’ command to submit a bug report or use the form at the Bash
-project page (https://savannah.gnu.org/projects/bash/). If you have a
-fix, you are encouraged to submit that as well! Suggestions and
-"philosophical" bug reports may be mailed to <bug-bash@gnu.org> or
-<help-bash@gnu.org>.
-
- All bug reports should include:
- • The version number of Bash.
- • The hardware and operating system.
- • The compiler used to compile Bash.
- • A description of the bug behavior.
- • A short script or "recipe" which exercises the bug and may be used
- to reproduce it.
-
-‘bashbug’ inserts the first three items automatically into the template
-it provides for filing a bug report.
-
- Please send all reports concerning this manual to <bug-bash@gnu.org>.
-
-\1f
-File: bash.info, Node: Major Differences From The Bourne Shell, Next: GNU Free Documentation License, Prev: Reporting Bugs, Up: Top
-
-Appendix B Major Differences From The Bourne Shell
-**************************************************
-
-Bash implements essentially the same grammar, parameter and variable
-expansion, redirection, and quoting as the Bourne Shell. Bash uses the
-POSIX standard as the specification of how these features are to be
-implemented and how they should behave. There are some differences
-between the traditional Bourne shell and Bash; this section quickly
-details the differences of significance. A number of these differences
-are explained in greater depth in previous sections. This section uses
-the version of ‘sh’ included in SVR4.2 (the last version of the
-historical Bourne shell) as the baseline reference.
-
- • Bash is POSIX-conformant, even where the POSIX specification
- differs from traditional ‘sh’ behavior (*note Bash POSIX Mode::).
-
- • Bash has multi-character invocation options (*note Invoking
- Bash::).
-
- • The Bash restricted mode is more useful (*note The Restricted
- Shell::); the SVR4.2 shell restricted mode is too limited.
-
- • Bash has command-line editing (*note Command Line Editing::) and
- the ‘bind’ builtin.
-
- • Bash provides a programmable word completion mechanism (*note
- Programmable Completion::), and builtin commands ‘complete’,
- ‘compgen’, and ‘compopt’, to manipulate it.
-
- • Bash decodes a number of backslash-escape sequences in the prompt
- string variables (‘PS0’, ‘PS1’, ‘PS2’, and ‘PS4’) (*note
- Controlling the Prompt::).
-
- • Bash expands and displays the ‘PS0’ prompt string variable.
-
- • Bash runs commands from the ‘PROMPT_COMMAND’ array variable before
- issuing each primary prompt.
-
- • Bash has command history (*note Bash History Facilities::) and the
- ‘history’ and ‘fc’ builtins to manipulate it. The Bash history
- list maintains timestamp information and uses the value of the
- ‘HISTTIMEFORMAT’ variable to display it.
-
- • Bash implements ‘csh’-like history expansion (*note History
- Interaction::).
-
- • Bash supports the ‘$'...'’ quoting syntax, which expands ANSI-C
- backslash-escaped characters in the text between the single quotes
- (*note ANSI-C Quoting::).
-
- • Bash supports the ‘$"..."’ quoting syntax and performs
- locale-specific translation of the characters between the double
- quotes. The ‘-D’, ‘--dump-strings’, and ‘--dump-po-strings’
- invocation options list the translatable strings found in a script
- (*note Locale Translation::).
-
- • Bash includes brace expansion (*note Brace Expansion::) and tilde
- expansion (*note Tilde Expansion::).
-
- • Bash implements command aliases and the ‘alias’ and ‘unalias’
- builtins (*note Aliases::).
-
- • Bash implements the ‘!’ reserved word to negate the return value of
- a pipeline (*note Pipelines::). This is very useful when an ‘if’
- statement needs to act only if a test fails. The Bash ‘-o
- pipefail’ option to ‘set’ will cause a pipeline to return a failure
- status if any command fails (*note The Set Builtin::).
-
- • Bash has the ‘time’ reserved word and command timing (*note
- Pipelines::). The display of the timing statistics may be
- controlled with the ‘TIMEFORMAT’ variable.
-
- • Bash provides coprocesses and the ‘coproc’ reserved word (*note
- Coprocesses::).
-
- • Bash implements the ‘for (( EXPR1 ; EXPR2 ; EXPR3 ))’ arithmetic
- for command, similar to the C language (*note Looping
- Constructs::).
-
- • Bash includes the ‘select’ compound command, which allows the
- generation of simple menus (*note Conditional Constructs::).
-
- • Bash includes the ‘[[’ compound command, which makes conditional
- testing part of the shell grammar (*note Conditional Constructs::),
- including optional regular expression matching.
-
- • Bash provides optional case-insensitive matching for the ‘case’ and
- ‘[[’ constructs (*note Conditional Constructs::).
-
- • Bash provides additional ‘case’ statement action list terminators:
- ‘;&’ and ‘;;&’ (*note Conditional Constructs::).
-
- • Bash provides shell arithmetic, the ‘((’ compound command (*note
- Conditional Constructs::), the ‘let’ builtin, and arithmetic
- expansion (*note Shell Arithmetic::).
-
- • Bash has one-dimensional array variables (*note Arrays::), and the
- appropriate variable expansions and assignment syntax to use them.
- Several of the Bash builtins take options to act on arrays. Bash
- provides a number of built-in array variables.
-
- • Variables present in the shell's initial environment are
- automatically exported to child processes (*note Command Execution
- Environment::). The Bourne shell does not normally do this unless
- the variables are explicitly marked using the ‘export’ command.
-
- • Bash can expand positional parameters beyond ‘$9’ using ‘${NUM}’
- (*note Shell Parameter Expansion::).
-
- • Bash supports the ‘+=’ assignment operator, which appends to the
- value of the variable named on the left hand side (*note Shell
- Parameters::).
-
- • Bash includes the POSIX pattern removal ‘%’, ‘#’, ‘%%’ and ‘##’
- expansions to remove leading or trailing substrings from variable
- values (*note Shell Parameter Expansion::).
-
- • The expansion ‘${#xx}’, which returns the length of ‘${xx}’, is
- supported (*note Shell Parameter Expansion::).
-
- • The expansion ‘${var:’OFFSET‘[:’LENGTH‘]}’, which expands to the
- substring of ‘var’'s value of length LENGTH, beginning at OFFSET,
- is present (*note Shell Parameter Expansion::).
-
- • The expansion ‘${VAR/[/]’PATTERN‘[/’REPLACEMENT‘]}’, which matches
- PATTERN and replaces it with REPLACEMENT in the value of VAR, is
- available (*note Shell Parameter Expansion::), with a mechanism to
- use the matched text in REPLACEMENT.
-
- • The expansion ‘${!PREFIX*}’ expansion, which expands to the names
- of all shell variables whose names begin with PREFIX, is available
- (*note Shell Parameter Expansion::).
-
- • Bash has indirect variable expansion using ‘${!word}’ (*note Shell
- Parameter Expansion::) and implements the ‘nameref’ variable
- attribute for automatic indirect variable expansion.
-
- • Bash includes a set of parameter transformation word expansions of
- the form ‘${var@X}’, where ‘X’ specifies the transformation (*note
- Shell Parameter Expansion::).
-
- • The POSIX ‘$()’ form of command substitution is implemented (*note
- Command Substitution::), and preferred to the Bourne shell's ‘``’
- (which is also implemented for backwards compatibility).
-
- • Bash implements a variant of command substitution that runs the
- enclosed command in the current shell execution environment: ‘${
- COMMAND;}’ or ‘${|COMMAND;}’ (*note Command Substitution::).
-
- • Bash has process substitution (*note Process Substitution::).
-
- • Bash automatically assigns variables that provide information about
- the current user (‘UID’, ‘EUID’, and ‘GROUPS’), the current host
- (‘HOSTTYPE’, ‘OSTYPE’, ‘MACHTYPE’, and ‘HOSTNAME’), and the
- instance of Bash that is running (‘BASH’, ‘BASH_VERSION’, and
- ‘BASH_VERSINFO’). *Note Bash Variables::, for details.
-
- • Bash uses many variables to provide functionality and customize
- shell behavior that the Bourne shell does not. Examples include
- ‘RANDOM’, ‘SRANDOM’, ‘EPOCHSECONDS’, ‘EPOCHREALTIME’, ‘TIMEFORMAT’,
- ‘BASHPID’, ‘BASH_XTRACEFD’, ‘GLOBIGNORE’, ‘HISTIGNORE’, and
- ‘BASH_VERSION’. *Note Bash Variables::, for a complete list.
-
- • Bash uses the ‘GLOBSORT’ shell variable to control how to sort the
- results of filename expansion (*note Filename Expansion::).
-
- • Bash uses the ‘IFS’ variable to split only the results of
- expansion, not all words (*note Word Splitting::). This closes a
- longstanding shell security hole.
-
- • The filename expansion bracket expression code uses ‘!’ and ‘^’ to
- negate the set of characters between the brackets (*note Filename
- Expansion::). The Bourne shell uses only ‘!’.
-
- • Bash implements the full set of POSIX filename expansion operators,
- including character classes, equivalence classes, and collating
- symbols (*note Filename Expansion::).
-
- • Bash implements extended pattern matching features when the
- ‘extglob’ shell option is enabled (*note Pattern Matching::).
-
- • The ‘globstar’ shell option extends filename expansion to
- recursively scan directories and subdirectories for matching
- filenames (*note Pattern Matching::).
-
- • It is possible to have a variable and a function with the same
- name; ‘sh’ does not separate the two name spaces.
-
- • Bash functions are permitted to have local variables using the
- ‘local’ builtin, and thus users can write useful recursive
- functions (*note Bash Builtins::).
-
- • Bash performs filename expansion on filenames specified as operands
- to input and output redirection operators (*note Redirections::).
-
- • Bash contains the ‘<>’ redirection operator, allowing a file to be
- opened for both reading and writing, and the ‘&>’ redirection
- operator, for directing standard output and standard error to the
- same file (*note Redirections::).
-
- • Bash includes the ‘<<<’ redirection operator, allowing a string to
- be used as the standard input to a command (*note Redirections::).
-
- • Bash implements the ‘[n]<&WORD’ and ‘[n]>&WORD’ redirection
- operators, which move one file descriptor to another.
-
- • Bash treats a number of filenames specially when they are used in
- redirection operators (*note Redirections::).
-
- • Bash provides the {VAR}<WORD capability to have the shell allocate
- file descriptors for redirections and assign them to VAR (*note
- Redirections::). This works with multiple redirection operators.
-
- • Bash can open network connections to arbitrary machines and
- services with the redirection operators (*note Redirections::).
-
- • The ‘noclobber’ option is available to avoid overwriting existing
- files with output redirection (*note The Set Builtin::). The ‘>|’
- redirection operator may be used to override ‘noclobber’.
-
- • Variable assignments preceding commands affect only that command,
- even builtins and functions (*note Environment::). In ‘sh’, all
- variable assignments preceding commands are global unless the
- command is executed from the file system.
-
- • Bash includes a number of features to support a separate debugger
- for shell scripts: variables (‘BASH_ARGC’, ‘BASH_ARGV’,
- ‘BASH_LINENO’, ‘BASH_SOURCE’), the ‘DEBUG’, ‘RETURN’, and ‘ERR’
- traps, ‘declare -F’, and the ‘caller’ builtin.
-
- • Bash implements a ‘csh’-like directory stack, and provides the
- ‘pushd’, ‘popd’, and ‘dirs’ builtins to manipulate it (*note The
- Directory Stack::). Bash also makes the directory stack visible as
- the value of the ‘DIRSTACK’ shell variable.
-
- • Bash allows a function to override a builtin with the same name,
- and provides access to that builtin's functionality within the
- function via the ‘builtin’ and ‘command’ builtins (*note Bash
- Builtins::).
-
- • Bash includes the ‘caller’ builtin (*note Bash Builtins::), which
- displays the context of any active subroutine call (a shell
- function or a script executed with the ‘.’ or ‘source’ builtins).
- This supports the Bash debugger.
-
- • The Bash ‘cd’ and ‘pwd’ builtins (*note Bourne Shell Builtins::)
- each take ‘-L’ and ‘-P’ options to switch between logical and
- physical modes.
-
- • The ‘command’ builtin allows selectively skipping shell functions
- when performing command lookup (*note Bash Builtins::).
-
- • Bash uses the ‘declare’ builtin to modify the full set of variable
- and function attributes, and to assign values to variables.
-
- • The ‘disown’ builtin can remove a job from the internal shell job
- table (*note Job Control Builtins::) or suppress sending ‘SIGHUP’
- to a job when the shell exits as the result of a ‘SIGHUP’.
-
- • The ‘enable’ builtin (*note Bash Builtins::) can enable or disable
- individual builtins and implements support for dynamically loading
- builtin commands from shared objects.
-
- • The Bash ‘exec’ builtin takes additional options that allow users
- to control the contents of the environment passed to the executed
- command, and what the zeroth argument to the command is to be
- (*note Bourne Shell Builtins::).
-
- • Shell functions may be exported to children via the environment
- using ‘export -f’ (*note Shell Functions::).
-
- • The Bash ‘export’ and ‘readonly’ builtins (*note Bourne Shell
- Builtins::) can take a ‘-f’ option to act on shell functions, a
- ‘-p’ option to display variables with various attributes set in a
- format that can be used as shell input, a ‘-n’ option to remove
- various variable attributes, and ‘name=value’ arguments to set
- variable attributes and values simultaneously.
-
- • The Bash ‘hash’ builtin allows a name to be associated with an
- arbitrary filename, even when that filename cannot be found by
- searching the ‘$PATH’, using ‘hash -p’ (*note Bourne Shell
- Builtins::).
-
- • Bash includes a ‘help’ builtin for quick reference to shell
- facilities (*note Bash Builtins::).
-
- • Bash includes the ‘mapfile’ builtin to quickly read the contents of
- a file into an indexed array variable (*note Bash Builtins::).
-
- • The ‘printf’ builtin is available to display formatted output
- (*note Bash Builtins::), and has additional custom format
- specifiers and an option to assign the formatted output directly to
- a shell variable.
-
- • The Bash ‘read’ builtin (*note Bash Builtins::) will read a line
- ending in ‘\’ with the ‘-r’ option, and will use the ‘REPLY’
- variable as a default if no non-option arguments are supplied.
-
- • The ‘read’ builtin (*note Bash Builtins::) accepts a prompt string
- with the ‘-p’ option and will use Readline to obtain the line when
- given the ‘-e’ or ‘-E’ options, with the ability to insert text
- into the line using the ‘-i’ option. The ‘read’ builtin also has
- additional options to control input: the ‘-s’ option will turn off
- echoing of input characters as they are read, the ‘-t’ option will
- allow ‘read’ to time out if input does not arrive within a
- specified number of seconds, the ‘-n’ option will allow reading
- only a specified number of characters rather than a full line, and
- the ‘-d’ option will read until a particular character rather than
- newline.
-
- • The ‘return’ builtin may be used to abort execution of scripts
- executed with the ‘.’ or ‘source’ builtins (*note Bourne Shell
- Builtins::).
-
- • Bash has much more optional behavior controllable with the ‘set’
- builtin (*note The Set Builtin::).
-
- • The ‘-x’ (‘xtrace’) option displays commands other than simple
- commands when performing an execution trace (*note The Set
- Builtin::).
-
- • Bash includes the ‘shopt’ builtin, for finer control of shell
- optional capabilities (*note The Shopt Builtin::), and allows these
- options to be set and unset at shell invocation (*note Invoking
- Bash::).
-
- • The ‘test’ builtin (*note Bourne Shell Builtins::) is slightly
- different, as it implements the POSIX algorithm, which specifies
- the behavior based on the number of arguments.
-
- • The ‘trap’ builtin (*note Bourne Shell Builtins::) allows a ‘DEBUG’
- pseudo-signal specification, similar to ‘EXIT’. Commands specified
- with a ‘DEBUG’ trap are executed before every simple command, ‘for’
- command, ‘case’ command, ‘select’ command, every arithmetic ‘for’
- command, and before the first command executes in a shell function.
- The ‘DEBUG’ trap is not inherited by shell functions unless the
- function has been given the ‘trace’ attribute or the ‘functrace’
- option has been enabled using the ‘shopt’ builtin. The ‘extdebug’
- shell option has additional effects on the ‘DEBUG’ trap.
-
- The ‘trap’ builtin (*note Bourne Shell Builtins::) allows an ‘ERR’
- pseudo-signal specification, similar to ‘EXIT’ and ‘DEBUG’.
- Commands specified with an ‘ERR’ trap are executed after a simple
- command fails, with a few exceptions. The ‘ERR’ trap is not
- inherited by shell functions unless the ‘-o errtrace’ option to the
- ‘set’ builtin is enabled.
-
- The ‘trap’ builtin (*note Bourne Shell Builtins::) allows a
- ‘RETURN’ pseudo-signal specification, similar to ‘EXIT’ and
- ‘DEBUG’. Commands specified with a ‘RETURN’ trap are executed
- before execution resumes after a shell function or a shell script
- executed with ‘.’ or ‘source’ returns. The ‘RETURN’ trap is not
- inherited by shell functions unless the function has been given the
- ‘trace’ attribute or the ‘functrace’ option has been enabled using
- the ‘shopt’ builtin.
-
- • The Bash ‘type’ builtin is more extensive and gives more
- information about the names it finds (*note Bash Builtins::).
-
- • The ‘ulimit’ builtin provides control over many more per-process
- resources (*note Bash Builtins::).
-
- • The Bash ‘umask’ builtin uses the ‘-p’ option to display the output
- in the form of a ‘umask’ command that may be reused as input (*note
- Bourne Shell Builtins::).
-
- • The Bash ‘wait’ builtin has a ‘-n’ option to wait for the next
- child to exit, possibly selecting from a list of supplied jobs, and
- the ‘-p’ option to store information about a terminated child
- process in a shell variable.
-
- • The SVR4.2 shell behaves differently when invoked as ‘jsh’ (it
- turns on job control).
-
- • The SVR4.2 shell has two privilege-related builtins (‘mldmode’ and
- ‘priv’) not present in Bash.
-
- • Bash does not have the ‘stop’ or ‘newgrp’ builtins.
-
- • Bash does not use the ‘SHACCT’ variable or perform shell
- accounting.
-
- • The SVR4.2 ‘sh’ uses a ‘TIMEOUT’ variable like Bash uses ‘TMOUT’.
-
-More features unique to Bash may be found in *note Bash Features::.
-
-B.1 Implementation Differences From The SVR4.2 Shell
-====================================================
-
-Since Bash is a completely new implementation, it does not suffer from
-many of the limitations of the SVR4.2 shell. For instance:
-
- • Bash does not fork a subshell when redirecting into or out of a
- shell control structure such as an ‘if’ or ‘while’ statement.
-
- • Bash does not allow unbalanced quotes. The SVR4.2 shell will
- silently insert a needed closing quote at ‘EOF’ under certain
- circumstances. This can be the cause of some hard-to-find errors.
-
- • The SVR4.2 shell uses a baroque memory management scheme based on
- trapping ‘SIGSEGV’. If the shell is started from a process with
- ‘SIGSEGV’ blocked (e.g., by using the ‘system()’ C library function
- call), it misbehaves badly.
-
- • In a questionable attempt at security, the SVR4.2 shell, when
- invoked without the ‘-p’ option, will alter its real and effective
- UID and GID if they are less than some magic threshold value,
- commonly 100. This can lead to unexpected results.
-
- • The SVR4.2 shell does not allow users to trap ‘SIGSEGV’, ‘SIGALRM’,
- or ‘SIGCHLD’.
-
- • The SVR4.2 shell does not allow the ‘IFS’, ‘MAILCHECK’, ‘PATH’,
- ‘PS1’, or ‘PS2’ variables to be unset.
-
- • The SVR4.2 shell treats ‘^’ as the undocumented equivalent of ‘|’.
-
- • Bash allows multiple option arguments when it is invoked (‘-x -v’);
- the SVR4.2 shell allows only one option argument (‘-xv’). In fact,
- some versions of the shell dump core if the second argument begins
- with a ‘-’.
-
- • The SVR4.2 shell exits a script if any builtin fails; Bash exits a
- script only if one of the POSIX special builtins fails, and only
- for certain failures, as enumerated in the POSIX standard.
-
- • If the ‘lastpipe’ option is enabled, and job control is not active,
- Bash runs the last element of a pipeline in the current shell
- execution environment.
-
-\1f
-File: bash.info, Node: GNU Free Documentation License, Next: Indexes, Prev: Major Differences From The Bourne Shell, Up: Top
-
-Appendix C GNU Free Documentation License
-*****************************************
-
- Version 1.3, 3 November 2008
-
- Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
- <http://fsf.org/>
-
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- 0. PREAMBLE
-
- The purpose of this License is to make a manual, textbook, or other
- functional and useful document “free” in the sense of freedom: to
- assure everyone the effective freedom to copy and redistribute it,
- with or without modifying it, either commercially or
- noncommercially. Secondarily, this License preserves for the
- author and publisher a way to get credit for their work, while not
- being considered responsible for modifications made by others.
-
- This License is a kind of "copyleft", which means that derivative
- works of the document must themselves be free in the same sense.
- It complements the GNU General Public License, which is a copyleft
- license designed for free software.
-
- We have designed this License in order to use it for manuals for
- free software, because free software needs free documentation: a
- free program should come with manuals providing the same freedoms
- that the software does. But this License is not limited to
- software manuals; it can be used for any textual work, regardless
- of subject matter or whether it is published as a printed book. We
- recommend this License principally for works whose purpose is
- instruction or reference.
-
- 1. APPLICABILITY AND DEFINITIONS
-
- This License applies to any manual or other work, in any medium,
- that contains a notice placed by the copyright holder saying it can
- be distributed under the terms of this License. Such a notice
- grants a world-wide, royalty-free license, unlimited in duration,
- to use that work under the conditions stated herein. The
- "Document", below, refers to any such manual or work. Any member
- of the public is a licensee, and is addressed as "you". You accept
- the license if you copy, modify or distribute the work in a way
- requiring permission under copyright law.
-
- A "Modified Version" of the Document means any work containing the
- Document or a portion of it, either copied verbatim, or with
- modifications and/or translated into another language.
-
- A "Secondary Section" is a named appendix or a front-matter section
- of the Document that deals exclusively with the relationship of the
- publishers or authors of the Document to the Document's overall
- subject (or to related matters) and contains nothing that could
- fall directly within that overall subject. (Thus, if the Document
- is in part a textbook of mathematics, a Secondary Section may not
- explain any mathematics.) The relationship could be a matter of
- historical connection with the subject or with related matters, or
- of legal, commercial, philosophical, ethical or political position
- regarding them.
-
- The "Invariant Sections" are certain Secondary Sections whose
- titles are designated, as being those of Invariant Sections, in the
- notice that says that the Document is released under this License.
- If a section does not fit the above definition of Secondary then it
- is not allowed to be designated as Invariant. The Document may
- contain zero Invariant Sections. If the Document does not identify
- any Invariant Sections then there are none.
-
- The "Cover Texts" are certain short passages of text that are
- listed, as Front-Cover Texts or Back-Cover Texts, in the notice
- that says that the Document is released under this License. A
- Front-Cover Text may be at most 5 words, and a Back-Cover Text may
- be at most 25 words.
-
- A "Transparent" copy of the Document means a machine-readable copy,
- represented in a format whose specification is available to the
- general public, that is suitable for revising the document
- straightforwardly with generic text editors or (for images composed
- of pixels) generic paint programs or (for drawings) some widely
- available drawing editor, and that is suitable for input to text
- formatters or for automatic translation to a variety of formats
- suitable for input to text formatters. A copy made in an otherwise
- Transparent file format whose markup, or absence of markup, has
- been arranged to thwart or discourage subsequent modification by
- readers is not Transparent. An image format is not Transparent if
- used for any substantial amount of text. A copy that is not
- "Transparent" is called "Opaque".
-
- Examples of suitable formats for Transparent copies include plain
- ASCII without markup, Texinfo input format, LaTeX input format,
- SGML or XML using a publicly available DTD, and standard-conforming
- simple HTML, PostScript or PDF designed for human modification.
- Examples of transparent image formats include PNG, XCF and JPG.
- Opaque formats include proprietary formats that can be read and
- edited only by proprietary word processors, SGML or XML for which
- the DTD and/or processing tools are not generally available, and
- the machine-generated HTML, PostScript or PDF produced by some word
- processors for output purposes only.
-
- The "Title Page" means, for a printed book, the title page itself,
- plus such following pages as are needed to hold, legibly, the
- material this License requires to appear in the title page. For
- works in formats which do not have any title page as such, "Title
- Page" means the text near the most prominent appearance of the
- work's title, preceding the beginning of the body of the text.
-
- The "publisher" means any person or entity that distributes copies
- of the Document to the public.
-
- A section "Entitled XYZ" means a named subunit of the Document
- whose title either is precisely XYZ or contains XYZ in parentheses
- following text that translates XYZ in another language. (Here XYZ
- stands for a specific section name mentioned below, such as
- "Acknowledgements", "Dedications", "Endorsements", or "History".)
- To "Preserve the Title" of such a section when you modify the
- Document means that it remains a section "Entitled XYZ" according
- to this definition.
-
- The Document may include Warranty Disclaimers next to the notice
- which states that this License applies to the Document. These
- Warranty Disclaimers are considered to be included by reference in
- this License, but only as regards disclaiming warranties: any other
- implication that these Warranty Disclaimers may have is void and
- has no effect on the meaning of this License.
-
- 2. VERBATIM COPYING
-
- You may copy and distribute the Document in any medium, either
- commercially or noncommercially, provided that this License, the
- copyright notices, and the license notice saying this License
- applies to the Document are reproduced in all copies, and that you
- add no other conditions whatsoever to those of this License. You
- may not use technical measures to obstruct or control the reading
- or further copying of the copies you make or distribute. However,
- you may accept compensation in exchange for copies. If you
- distribute a large enough number of copies you must also follow the
- conditions in section 3.
-
- You may also lend copies, under the same conditions stated above,
- and you may publicly display copies.
-
- 3. COPYING IN QUANTITY
-
- If you publish printed copies (or copies in media that commonly
- have printed covers) of the Document, numbering more than 100, and
- the Document's license notice requires Cover Texts, you must
- enclose the copies in covers that carry, clearly and legibly, all
- these Cover Texts: Front-Cover Texts on the front cover, and
- Back-Cover Texts on the back cover. Both covers must also clearly
- and legibly identify you as the publisher of these copies. The
- front cover must present the full title with all words of the title
- equally prominent and visible. You may add other material on the
- covers in addition. Copying with changes limited to the covers, as
- long as they preserve the title of the Document and satisfy these
- conditions, can be treated as verbatim copying in other respects.
-
- If the required texts for either cover are too voluminous to fit
- legibly, you should put the first ones listed (as many as fit
- reasonably) on the actual cover, and continue the rest onto
- adjacent pages.
-
- If you publish or distribute Opaque copies of the Document
- numbering more than 100, you must either include a machine-readable
- Transparent copy along with each Opaque copy, or state in or with
- each Opaque copy a computer-network location from which the general
- network-using public has access to download using public-standard
- network protocols a complete Transparent copy of the Document, free
- of added material. If you use the latter option, you must take
- reasonably prudent steps, when you begin distribution of Opaque
- copies in quantity, to ensure that this Transparent copy will
- remain thus accessible at the stated location until at least one
- year after the last time you distribute an Opaque copy (directly or
- through your agents or retailers) of that edition to the public.
-
- It is requested, but not required, that you contact the authors of
- the Document well before redistributing any large number of copies,
- to give them a chance to provide you with an updated version of the
- Document.
-
- 4. MODIFICATIONS
-
- You may copy and distribute a Modified Version of the Document
- under the conditions of sections 2 and 3 above, provided that you
- release the Modified Version under precisely this License, with the
- Modified Version filling the role of the Document, thus licensing
- distribution and modification of the Modified Version to whoever
- possesses a copy of it. In addition, you must do these things in
- the Modified Version:
-
- A. Use in the Title Page (and on the covers, if any) a title
- distinct from that of the Document, and from those of previous
- versions (which should, if there were any, be listed in the
- History section of the Document). You may use the same title
- as a previous version if the original publisher of that
- version gives permission.
-
- B. List on the Title Page, as authors, one or more persons or
- entities responsible for authorship of the modifications in
- the Modified Version, together with at least five of the
- principal authors of the Document (all of its principal
- authors, if it has fewer than five), unless they release you
- from this requirement.
-
- C. State on the Title page the name of the publisher of the
- Modified Version, as the publisher.
-
- D. Preserve all the copyright notices of the Document.
-
- E. Add an appropriate copyright notice for your modifications
- adjacent to the other copyright notices.
-
- F. Include, immediately after the copyright notices, a license
- notice giving the public permission to use the Modified
- Version under the terms of this License, in the form shown in
- the Addendum below.
-
- G. Preserve in that license notice the full lists of Invariant
- Sections and required Cover Texts given in the Document's
- license notice.
-
- H. Include an unaltered copy of this License.
-
- I. Preserve the section Entitled "History", Preserve its Title,
- and add to it an item stating at least the title, year, new
- authors, and publisher of the Modified Version as given on the
- Title Page. If there is no section Entitled "History" in the
- Document, create one stating the title, year, authors, and
- publisher of the Document as given on its Title Page, then add
- an item describing the Modified Version as stated in the
- previous sentence.
-
- J. Preserve the network location, if any, given in the Document
- for public access to a Transparent copy of the Document, and
- likewise the network locations given in the Document for
- previous versions it was based on. These may be placed in the
- "History" section. You may omit a network location for a work
- that was published at least four years before the Document
- itself, or if the original publisher of the version it refers
- to gives permission.
-
- K. For any section Entitled "Acknowledgements" or "Dedications",
- Preserve the Title of the section, and preserve in the section
- all the substance and tone of each of the contributor
- acknowledgements and/or dedications given therein.
-
- L. Preserve all the Invariant Sections of the Document, unaltered
- in their text and in their titles. Section numbers or the
- equivalent are not considered part of the section titles.
-
- M. Delete any section Entitled "Endorsements". Such a section
- may not be included in the Modified Version.
-
- N. Do not retitle any existing section to be Entitled
- "Endorsements" or to conflict in title with any Invariant
- Section.
-
- O. Preserve any Warranty Disclaimers.
-
- If the Modified Version includes new front-matter sections or
- appendices that qualify as Secondary Sections and contain no
- material copied from the Document, you may at your option designate
- some or all of these sections as invariant. To do this, add their
- titles to the list of Invariant Sections in the Modified Version's
- license notice. These titles must be distinct from any other
- section titles.
-
- You may add a section Entitled "Endorsements", provided it contains
- nothing but endorsements of your Modified Version by various
- parties--for example, statements of peer review or that the text
- has been approved by an organization as the authoritative
- definition of a standard.
-
- You may add a passage of up to five words as a Front-Cover Text,
- and a passage of up to 25 words as a Back-Cover Text, to the end of
- the list of Cover Texts in the Modified Version. Only one passage
- of Front-Cover Text and one of Back-Cover Text may be added by (or
- through arrangements made by) any one entity. If the Document
- already includes a cover text for the same cover, previously added
- by you or by arrangement made by the same entity you are acting on
- behalf of, you may not add another; but you may replace the old
- one, on explicit permission from the previous publisher that added
- the old one.
-
- The author(s) and publisher(s) of the Document do not by this
- License give permission to use their names for publicity for or to
- assert or imply endorsement of any Modified Version.
-
- 5. COMBINING DOCUMENTS
-
- You may combine the Document with other documents released under
- this License, under the terms defined in section 4 above for
- modified versions, provided that you include in the combination all
- of the Invariant Sections of all of the original documents,
- unmodified, and list them all as Invariant Sections of your
- combined work in its license notice, and that you preserve all
- their Warranty Disclaimers.
-
- The combined work need only contain one copy of this License, and
- multiple identical Invariant Sections may be replaced with a single
- copy. If there are multiple Invariant Sections with the same name
- but different contents, make the title of each such section unique
- by adding at the end of it, in parentheses, the name of the
- original author or publisher of that section if known, or else a
- unique number. Make the same adjustment to the section titles in
- the list of Invariant Sections in the license notice of the
- combined work.
-
- In the combination, you must combine any sections Entitled
- "History" in the various original documents, forming one section
- Entitled "History"; likewise combine any sections Entitled
- "Acknowledgements", and any sections Entitled "Dedications". You
- must delete all sections Entitled "Endorsements."
-
- 6. COLLECTIONS OF DOCUMENTS
-
- You may make a collection consisting of the Document and other
- documents released under this License, and replace the individual
- copies of this License in the various documents with a single copy
- that is included in the collection, provided that you follow the
- rules of this License for verbatim copying of each of the documents
- in all other respects.
-
- You may extract a single document from such a collection, and
- distribute it individually under this License, provided you insert
- a copy of this License into the extracted document, and follow this
- License in all other respects regarding verbatim copying of that
- document.
-
- 7. AGGREGATION WITH INDEPENDENT WORKS
-
- A compilation of the Document or its derivatives with other
- separate and independent documents or works, in or on a volume of a
- storage or distribution medium, is called an "aggregate" if the
- copyright resulting from the compilation is not used to limit the
- legal rights of the compilation's users beyond what the individual
- works permit. When the Document is included in an aggregate, this
- License does not apply to the other works in the aggregate which
- are not themselves derivative works of the Document.
-
- If the Cover Text requirement of section 3 is applicable to these
- copies of the Document, then if the Document is less than one half
- of the entire aggregate, the Document's Cover Texts may be placed
- on covers that bracket the Document within the aggregate, or the
- electronic equivalent of covers if the Document is in electronic
- form. Otherwise they must appear on printed covers that bracket
- the whole aggregate.
-
- 8. TRANSLATION
-
- Translation is considered a kind of modification, so you may
- distribute translations of the Document under the terms of section
- 4. Replacing Invariant Sections with translations requires special
- permission from their copyright holders, but you may include
- translations of some or all Invariant Sections in addition to the
- original versions of these Invariant Sections. You may include a
- translation of this License, and all the license notices in the
- Document, and any Warranty Disclaimers, provided that you also
- include the original English version of this License and the
- original versions of those notices and disclaimers. In case of a
- disagreement between the translation and the original version of
- this License or a notice or disclaimer, the original version will
- prevail.
-
- If a section in the Document is Entitled "Acknowledgements",
- "Dedications", or "History", the requirement (section 4) to
- Preserve its Title (section 1) will typically require changing the
- actual title.
-
- 9. TERMINATION
-
- You may not copy, modify, sublicense, or distribute the Document
- except as expressly provided under this License. Any attempt
- otherwise to copy, modify, sublicense, or distribute it is void,
- and will automatically terminate your rights under this License.
-
- However, if you cease all violation of this License, then your
- license from a particular copyright holder is reinstated (a)
- provisionally, unless and until the copyright holder explicitly and
- finally terminates your license, and (b) permanently, if the
- copyright holder fails to notify you of the violation by some
- reasonable means prior to 60 days after the cessation.
-
- Moreover, your license from a particular copyright holder is
- reinstated permanently if the copyright holder notifies you of the
- violation by some reasonable means, this is the first time you have
- received notice of violation of this License (for any work) from
- that copyright holder, and you cure the violation prior to 30 days
- after your receipt of the notice.
-
- Termination of your rights under this section does not terminate
- the licenses of parties who have received copies or rights from you
- under this License. If your rights have been terminated and not
- permanently reinstated, receipt of a copy of some or all of the
- same material does not give you any rights to use it.
-
- 10. FUTURE REVISIONS OF THIS LICENSE
-
- The Free Software Foundation may publish new, revised versions of
- the GNU Free Documentation License from time to time. Such new
- versions will be similar in spirit to the present version, but may
- differ in detail to address new problems or concerns. See
- <http://www.gnu.org/copyleft/>.
-
- Each version of the License is given a distinguishing version
- number. If the Document specifies that a particular numbered
- version of this License "or any later version" applies to it, you
- have the option of following the terms and conditions either of
- that specified version or of any later version that has been
- published (not as a draft) by the Free Software Foundation. If the
- Document does not specify a version number of this License, you may
- choose any version ever published (not as a draft) by the Free
- Software Foundation. If the Document specifies that a proxy can
- decide which future versions of this License can be used, that
- proxy's public statement of acceptance of a version permanently
- authorizes you to choose that version for the Document.
-
- 11. RELICENSING
-
- "Massive Multiauthor Collaboration Site" (or "MMC Site") means any
- World Wide Web server that publishes copyrightable works and also
- provides prominent facilities for anybody to edit those works. A
- public wiki that anybody can edit is an example of such a server.
- A "Massive Multiauthor Collaboration" (or "MMC") contained in the
- site means any set of copyrightable works thus published on the MMC
- site.
-
- "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
- license published by Creative Commons Corporation, a not-for-profit
- corporation with a principal place of business in San Francisco,
- California, as well as future copyleft versions of that license
- published by that same organization.
-
- "Incorporate" means to publish or republish a Document, in whole or
- in part, as part of another Document.
-
- An MMC is "eligible for relicensing" if it is licensed under this
- License, and if all works that were first published under this
- License somewhere other than this MMC, and subsequently
- incorporated in whole or in part into the MMC, (1) had no cover
- texts or invariant sections, and (2) were thus incorporated prior
- to November 1, 2008.
-
- The operator of an MMC Site may republish an MMC contained in the
- site under CC-BY-SA on the same site at any time before August 1,
- 2009, provided the MMC is eligible for relicensing.
-
-ADDENDUM: How to use this License for your documents
-====================================================
-
-To use this License in a document you have written, include a copy of
-the License in the document and put the following copyright and license
-notices just after the title page:
-
- Copyright (C) YEAR YOUR NAME.
- Permission is granted to copy, distribute and/or modify this document
- under the terms of the GNU Free Documentation License, Version 1.3
- or any later version published by the Free Software Foundation;
- with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
- Texts. A copy of the license is included in the section entitled ``GNU
- Free Documentation License''.
-
- If you have Invariant Sections, Front-Cover Texts and Back-Cover
-Texts, replace the "with...Texts." line with this:
-
- with the Invariant Sections being LIST THEIR TITLES, with
- the Front-Cover Texts being LIST, and with the Back-Cover Texts
- being LIST.
-
- If you have Invariant Sections without Cover Texts, or some other
-combination of the three, merge those two alternatives to suit the
-situation.
-
- If your document contains nontrivial examples of program code, we
-recommend releasing these examples in parallel under your choice of free
-software license, such as the GNU General Public License, to permit
-their use in free software.
-
-\1f
-File: bash.info, Node: Indexes, Prev: GNU Free Documentation License, Up: Top
-
-Appendix D Indexes
-******************
-
-* Menu:
-
-* Builtin Index:: Index of Bash builtin commands.
-* Reserved Word Index:: Index of Bash reserved words.
-* Variable Index:: Quick reference helps you find the
- variable you want.
-* Function Index:: Index of bindable Readline functions.
-* Concept Index:: General index for concepts described in
- this manual.
-
-\1f
-File: bash.info, Node: Builtin Index, Next: Reserved Word Index, Up: Indexes
-
-D.1 Index of Shell Builtin Commands
-===================================
-
-\0\b[index\0\b]
-* Menu:
-
-* :: Bourne Shell Builtins.
- (line 11)
-* .: Bourne Shell Builtins.
- (line 17)
-* [: Bourne Shell Builtins.
- (line 340)
-* alias: Bash Builtins. (line 11)
-* bg: Job Control Builtins.
- (line 7)
-* bind: Bash Builtins. (line 24)
-* break: Bourne Shell Builtins.
- (line 47)
-* builtin: Bash Builtins. (line 133)
-* caller: Bash Builtins. (line 142)
-* cd: Bourne Shell Builtins.
- (line 55)
-* command: Bash Builtins. (line 159)
-* compgen: Programmable Completion Builtins.
- (line 12)
-* complete: Programmable Completion Builtins.
- (line 37)
-* compopt: Programmable Completion Builtins.
- (line 258)
-* continue: Bourne Shell Builtins.
- (line 107)
-* declare: Bash Builtins. (line 179)
-* dirs: Directory Stack Builtins.
- (line 7)
-* disown: Job Control Builtins.
- (line 120)
-* echo: Bash Builtins. (line 284)
-* enable: Bash Builtins. (line 337)
-* eval: Bourne Shell Builtins.
- (line 116)
-* exec: Bourne Shell Builtins.
- (line 124)
-* exit: Bourne Shell Builtins.
- (line 146)
-* export: Bourne Shell Builtins.
- (line 153)
-* false: Bourne Shell Builtins.
- (line 176)
-* fc: Bash History Builtins.
- (line 10)
-* fg: Job Control Builtins.
- (line 17)
-* getopts: Bourne Shell Builtins.
- (line 181)
-* hash: Bourne Shell Builtins.
- (line 233)
-* help: Bash Builtins. (line 375)
-* history: Bash History Builtins.
- (line 59)
-* jobs: Job Control Builtins.
- (line 28)
-* kill: Job Control Builtins.
- (line 61)
-* let: Bash Builtins. (line 404)
-* local: Bash Builtins. (line 413)
-* logout: Bash Builtins. (line 438)
-* mapfile: Bash Builtins. (line 443)
-* popd: Directory Stack Builtins.
- (line 37)
-* printf: Bash Builtins. (line 488)
-* pushd: Directory Stack Builtins.
- (line 71)
-* pwd: Bourne Shell Builtins.
- (line 265)
-* read: Bash Builtins. (line 558)
-* readarray: Bash Builtins. (line 669)
-* readonly: Bourne Shell Builtins.
- (line 277)
-* return: Bourne Shell Builtins.
- (line 302)
-* set: The Set Builtin. (line 11)
-* shift: Bourne Shell Builtins.
- (line 327)
-* shopt: The Shopt Builtin. (line 9)
-* source: Bash Builtins. (line 678)
-* suspend: Job Control Builtins.
- (line 139)
-* test: Bourne Shell Builtins.
- (line 340)
-* times: Bourne Shell Builtins.
- (line 440)
-* trap: Bourne Shell Builtins.
- (line 446)
-* true: Bourne Shell Builtins.
- (line 512)
-* type: Bash Builtins. (line 683)
-* typeset: Bash Builtins. (line 720)
-* ulimit: Bash Builtins. (line 726)
-* umask: Bourne Shell Builtins.
- (line 517)
-* unalias: Bash Builtins. (line 834)
-* unset: Bourne Shell Builtins.
- (line 535)
-* wait: Job Control Builtins.
- (line 86)
-
-\1f
-File: bash.info, Node: Reserved Word Index, Next: Variable Index, Prev: Builtin Index, Up: Indexes
-
-D.2 Index of Shell Reserved Words
-=================================
-
-\0\b[index\0\b]
-* Menu:
-
-* !: Pipelines. (line 9)
-* [[: Conditional Constructs.
- (line 128)
-* ]]: Conditional Constructs.
- (line 128)
-* {: Command Grouping. (line 21)
-* }: Command Grouping. (line 21)
-* case: Conditional Constructs.
- (line 28)
-* do: Looping Constructs. (line 12)
-* done: Looping Constructs. (line 12)
-* elif: Conditional Constructs.
- (line 7)
-* else: Conditional Constructs.
- (line 7)
-* esac: Conditional Constructs.
- (line 28)
-* fi: Conditional Constructs.
- (line 7)
-* for: Looping Constructs. (line 32)
-* function: Shell Functions. (line 13)
-* if: Conditional Constructs.
- (line 7)
-* in: Conditional Constructs.
- (line 28)
-* select: Conditional Constructs.
- (line 84)
-* then: Conditional Constructs.
- (line 7)
-* time: Pipelines. (line 9)
-* until: Looping Constructs. (line 12)
-* while: Looping Constructs. (line 22)
-
-\1f
-File: bash.info, Node: Variable Index, Next: Function Index, Prev: Reserved Word Index, Up: Indexes
-
-D.3 Parameter and Variable Index
-================================
-
-\0\b[index\0\b]
-* Menu:
-
-* _: Bash Variables. (line 13)
-* -: Special Parameters. (line 48)
-* !: Special Parameters. (line 57)
-* ?: Special Parameters. (line 44)
-* @: Special Parameters. (line 23)
-* *: Special Parameters. (line 10)
-* #: Special Parameters. (line 41)
-* $: Special Parameters. (line 53)
-* $_: Bash Variables. (line 14)
-* $-: Special Parameters. (line 49)
-* $!: Special Parameters. (line 58)
-* $?: Special Parameters. (line 45)
-* $@: Special Parameters. (line 24)
-* $*: Special Parameters. (line 11)
-* $#: Special Parameters. (line 42)
-* $$: Special Parameters. (line 54)
-* $0: Special Parameters. (line 63)
-* 0: Special Parameters. (line 62)
-* active-region-end-color: Readline Init File Syntax.
- (line 51)
-* active-region-start-color: Readline Init File Syntax.
- (line 38)
-* auto_resume: Job Control Variables.
- (line 6)
-* BASH: Bash Variables. (line 24)
-* 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 37)
-* bell-style: Readline Init File Syntax.
- (line 64)
-* bind-tty-special-chars: Readline Init File Syntax.
- (line 71)
-* blink-matching-paren: Readline Init File Syntax.
- (line 81)
-* CDPATH: Bourne Shell Variables.
- (line 9)
-* CHILD_MAX: Bash Variables. (line 217)
-* colored-completion-prefix: Readline Init File Syntax.
- (line 86)
-* colored-stats: Readline Init File Syntax.
- (line 96)
-* COLUMNS: Bash Variables. (line 224)
-* comment-begin: Readline Init File Syntax.
- (line 102)
-* 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 106)
-* completion-ignore-case: Readline Init File Syntax.
- (line 113)
-* completion-map-case: Readline Init File Syntax.
- (line 118)
-* completion-prefix-display-length: Readline Init File Syntax.
- (line 124)
-* completion-query-items: Readline Init File Syntax.
- (line 133)
-* COMPREPLY: Bash Variables. (line 278)
-* convert-meta: Readline Init File Syntax.
- (line 144)
-* COPROC: Bash Variables. (line 284)
-* DIRSTACK: Bash Variables. (line 288)
-* disable-completion: Readline Init File Syntax.
- (line 156)
-* echo-control-characters: Readline Init File Syntax.
- (line 161)
-* editing-mode: Readline Init File Syntax.
- (line 166)
-* EMACS: Bash Variables. (line 298)
-* emacs-mode-string: Readline Init File Syntax.
- (line 172)
-* enable-active-region The: Readline Init File Syntax.
- (line 182)
-* enable-bracketed-paste: Readline Init File Syntax.
- (line 195)
-* enable-keypad: Readline Init File Syntax.
- (line 204)
-* enable-meta-key: Readline Init File Syntax.
- (line 209)
-* 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 219)
-* FCEDIT: Bash Variables. (line 339)
-* FIGNORE: Bash Variables. (line 342)
-* force-meta-prefix: Readline Init File Syntax.
- (line 223)
-* 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 481)
-* history-preserve-point: Readline Init File Syntax.
- (line 236)
-* history-size: Readline Init File Syntax.
- (line 242)
-* HISTSIZE: Bash Variables. (line 505)
-* HISTTIMEFORMAT: Bash Variables. (line 512)
-* HOME: Bourne Shell Variables.
- (line 13)
-* horizontal-scroll-mode: Readline Init File Syntax.
- (line 252)
-* HOSTFILE: Bash Variables. (line 521)
-* HOSTNAME: Bash Variables. (line 532)
-* HOSTTYPE: Bash Variables. (line 535)
-* IFS: Bourne Shell Variables.
- (line 18)
-* IGNOREEOF: Bash Variables. (line 538)
-* input-meta: Readline Init File Syntax.
- (line 260)
-* INPUTRC: Bash Variables. (line 547)
-* INSIDE_EMACS: Bash Variables. (line 551)
-* isearch-terminators: Readline Init File Syntax.
- (line 271)
-* keymap: Readline Init File Syntax.
- (line 278)
-* LANG: Creating Internationalized Scripts.
- (line 51)
-* LANG <1>: Bash Variables. (line 557)
-* LC_ALL: Bash Variables. (line 561)
-* LC_COLLATE: Bash Variables. (line 565)
-* LC_CTYPE: Bash Variables. (line 572)
-* LC_MESSAGES: Creating Internationalized Scripts.
- (line 51)
-* LC_MESSAGES <1>: Bash Variables. (line 577)
-* LC_NUMERIC: Bash Variables. (line 581)
-* LC_TIME: Bash Variables. (line 585)
-* LINENO: Bash Variables. (line 589)
-* LINES: Bash Variables. (line 596)
-* MACHTYPE: Bash Variables. (line 602)
-* MAIL: Bourne Shell Variables.
- (line 24)
-* MAILCHECK: Bash Variables. (line 606)
-* MAILPATH: Bourne Shell Variables.
- (line 29)
-* MAPFILE: Bash Variables. (line 614)
-* mark-modified-lines: Readline Init File Syntax.
- (line 308)
-* mark-symlinked-directories: Readline Init File Syntax.
- (line 313)
-* match-hidden-files: Readline Init File Syntax.
- (line 318)
-* menu-complete-display-prefix: Readline Init File Syntax.
- (line 325)
-* meta-flag: Readline Init File Syntax.
- (line 260)
-* OLDPWD: Bash Variables. (line 618)
-* OPTARG: Bourne Shell Variables.
- (line 36)
-* OPTERR: Bash Variables. (line 621)
-* OPTIND: Bourne Shell Variables.
- (line 40)
-* OSTYPE: Bash Variables. (line 626)
-* output-meta: Readline Init File Syntax.
- (line 330)
-* page-completions: Readline Init File Syntax.
- (line 339)
-* PATH: Bourne Shell Variables.
- (line 44)
-* PIPESTATUS: Bash Variables. (line 629)
-* POSIXLY_CORRECT: Bash Variables. (line 639)
-* PPID: Bash Variables. (line 649)
-* PROMPT_COMMAND: Bash Variables. (line 653)
-* PROMPT_DIRTRIM: Bash Variables. (line 659)
-* PS0: Bash Variables. (line 665)
-* PS1: Bourne Shell Variables.
- (line 53)
-* PS2: Bourne Shell Variables.
- (line 58)
-* PS3: Bash Variables. (line 670)
-* PS4: Bash Variables. (line 675)
-* PWD: Bash Variables. (line 683)
-* RANDOM: Bash Variables. (line 686)
-* READLINE_ARGUMENT: Bash Variables. (line 694)
-* READLINE_LINE: Bash Variables. (line 698)
-* READLINE_MARK: Bash Variables. (line 702)
-* READLINE_POINT: Bash Variables. (line 708)
-* REPLY: Bash Variables. (line 712)
-* revert-all-at-newline: Readline Init File Syntax.
- (line 352)
-* search-ignore-case: Readline Init File Syntax.
- (line 359)
-* SECONDS: Bash Variables. (line 716)
-* SHELL: Bash Variables. (line 726)
-* SHELLOPTS: Bash Variables. (line 731)
-* SHLVL: Bash Variables. (line 741)
-* show-all-if-ambiguous: Readline Init File Syntax.
- (line 364)
-* show-all-if-unmodified: Readline Init File Syntax.
- (line 370)
-* show-mode-in-prompt: Readline Init File Syntax.
- (line 379)
-* skip-completed-text: Readline Init File Syntax.
- (line 385)
-* SRANDOM: Bash Variables. (line 746)
-* TEXTDOMAIN: Creating Internationalized Scripts.
- (line 51)
-* TEXTDOMAINDIR: Creating Internationalized Scripts.
- (line 51)
-* TIMEFORMAT: Bash Variables. (line 755)
-* TMOUT: Bash Variables. (line 794)
-* TMPDIR: Bash Variables. (line 806)
-* UID: Bash Variables. (line 810)
-* vi-cmd-mode-string: Readline Init File Syntax.
- (line 398)
-* vi-ins-mode-string: Readline Init File Syntax.
- (line 409)
-* visible-stats: Readline Init File Syntax.
- (line 420)
-
-\1f
-File: bash.info, Node: Function Index, Next: Concept Index, Prev: Variable Index, Up: Indexes
-
-D.4 Function Index
-==================
-
-\0\b[index\0\b]
-* Menu:
-
-* abort (C-g): Miscellaneous Commands.
- (line 10)
-* accept-line (Newline or Return): Commands For History.
- (line 6)
-* alias-expand-line (): Miscellaneous Commands.
- (line 134)
-* backward-char (C-b): Commands For Moving. (line 18)
-* backward-delete-char (Rubout): Commands For Text. (line 18)
-* backward-kill-line (C-x Rubout): Commands For Killing.
- (line 11)
-* backward-kill-word (M-<DEL>): Commands For Killing.
- (line 28)
-* backward-word (M-b): Commands For Moving. (line 26)
-* beginning-of-history (M-<): Commands For History.
- (line 22)
-* beginning-of-line (C-a): Commands For Moving. (line 6)
-* bracketed-paste-begin (): Commands For Text. (line 35)
-* call-last-kbd-macro (C-x e): Keyboard Macros. (line 13)
-* capitalize-word (M-c): Commands For Text. (line 73)
-* character-search (C-]): Miscellaneous Commands.
- (line 41)
-* character-search-backward (M-C-]): Miscellaneous Commands.
- (line 45)
-* clear-display (M-C-l): Commands For Moving. (line 52)
-* clear-screen (C-l): Commands For Moving. (line 57)
-* complete (<TAB>): Commands For Completion.
- (line 6)
-* complete-command (M-!): Commands For Completion.
- (line 105)
-* complete-filename (M-/): Commands For Completion.
- (line 74)
-* complete-hostname (M-@): Commands For Completion.
- (line 97)
-* complete-into-braces (M-{): Commands For Completion.
- (line 124)
-* complete-username (M-~): Commands For Completion.
- (line 81)
-* complete-variable (M-$): Commands For Completion.
- (line 89)
-* copy-backward-word (): Commands For Killing.
- (line 62)
-* copy-forward-word (): Commands For Killing.
- (line 67)
-* copy-region-as-kill (): Commands For Killing.
- (line 58)
-* dabbrev-expand (): Commands For Completion.
- (line 119)
-* delete-char (C-d): Commands For Text. (line 12)
-* delete-char-or-list (): Commands For Completion.
- (line 68)
-* delete-horizontal-space (): Commands For Killing.
- (line 50)
-* digit-argument (M-0, M-1, ... M--): Numeric Arguments. (line 6)
-* display-shell-version (C-x C-v): Miscellaneous Commands.
- (line 148)
-* do-lowercase-version (M-A, M-B, M-X, ...): Miscellaneous Commands.
- (line 14)
-* downcase-word (M-l): Commands For Text. (line 69)
-* dump-functions (): Miscellaneous Commands.
- (line 71)
-* dump-macros (): Miscellaneous Commands.
- (line 83)
-* dump-variables (): Miscellaneous Commands.
- (line 77)
-* dynamic-complete-history (M-<TAB>): Commands For Completion.
- (line 115)
-* edit-and-execute-command (C-x C-e): Miscellaneous Commands.
- (line 143)
-* end-kbd-macro (C-x )): Keyboard Macros. (line 9)
-* end-of-file (usually C-d): Commands For Text. (line 6)
-* end-of-history (M->): Commands For History.
- (line 25)
-* end-of-line (C-e): Commands For Moving. (line 10)
-* exchange-point-and-mark (C-x C-x): Miscellaneous Commands.
- (line 37)
-* execute-named-command (M-x): Miscellaneous Commands.
- (line 90)
-* export-completions (): Commands For Completion.
- (line 44)
-* fetch-history (): Commands For History.
- (line 109)
-* forward-backward-delete-char (): Commands For Text. (line 23)
-* forward-char (C-f): Commands For Moving. (line 14)
-* forward-search-history (C-s): Commands For History.
- (line 35)
-* forward-word (M-f): Commands For Moving. (line 22)
-* glob-complete-word (M-g): Miscellaneous Commands.
- (line 103)
-* glob-expand-word (C-x *): Miscellaneous Commands.
- (line 108)
-* glob-list-expansions (C-x g): Miscellaneous Commands.
- (line 114)
-* history-and-alias-expand-line (): Miscellaneous Commands.
- (line 137)
-* history-expand-line (M-^): Miscellaneous Commands.
- (line 127)
-* history-search-backward (): Commands For History.
- (line 54)
-* history-search-forward (): Commands For History.
- (line 61)
-* history-substring-search-backward (): Commands For History.
- (line 68)
-* history-substring-search-forward (): Commands For History.
- (line 74)
-* insert-comment (M-#): Miscellaneous Commands.
- (line 59)
-* insert-completions (M-*): Commands For Completion.
- (line 24)
-* insert-last-argument (M-. or M-_): Miscellaneous Commands.
- (line 140)
-* kill-line (C-k): Commands For Killing.
- (line 6)
-* kill-region (): Commands For Killing.
- (line 54)
-* kill-whole-line (): Commands For Killing.
- (line 19)
-* kill-word (M-d): Commands For Killing.
- (line 23)
-* magic-space (): Miscellaneous Commands.
- (line 130)
-* menu-complete (): Commands For Completion.
- (line 28)
-* menu-complete-backward (): Commands For Completion.
- (line 39)
-* next-history (C-n): Commands For History.
- (line 18)
-* next-screen-line (): Commands For Moving. (line 45)
-* non-incremental-forward-search-history (M-n): Commands For History.
- (line 48)
-* non-incremental-reverse-search-history (M-p): Commands For History.
- (line 41)
-* operate-and-get-next (C-o): Commands For History.
- (line 102)
-* overwrite-mode (): Commands For Text. (line 77)
-* possible-command-completions (C-x !): Commands For Completion.
- (line 111)
-* possible-completions (M-?): Commands For Completion.
- (line 17)
-* possible-filename-completions (C-x /): Commands For Completion.
- (line 77)
-* possible-hostname-completions (C-x @): Commands For Completion.
- (line 101)
-* possible-username-completions (C-x ~): Commands For Completion.
- (line 85)
-* possible-variable-completions (C-x $): Commands For Completion.
- (line 93)
-* prefix-meta (<ESC>): Miscellaneous Commands.
- (line 19)
-* previous-history (C-p): Commands For History.
- (line 13)
-* previous-screen-line (): Commands For Moving. (line 38)
-* print-last-kbd-macro (): Keyboard Macros. (line 17)
-* quoted-insert (C-q or C-v): Commands For Text. (line 28)
-* re-read-init-file (C-x C-r): Miscellaneous Commands.
- (line 6)
-* redraw-current-line (): Commands For Moving. (line 62)
-* reverse-search-history (C-r): Commands For History.
- (line 29)
-* revert-line (M-r): Miscellaneous Commands.
- (line 26)
-* self-insert (a, b, A, 1, !, ...): Commands For Text. (line 32)
-* set-mark (C-@): Miscellaneous Commands.
- (line 33)
-* shell-backward-kill-word (): Commands For Killing.
- (line 37)
-* shell-backward-word (M-C-b): Commands For Moving. (line 34)
-* shell-expand-line (M-C-e): Miscellaneous Commands.
- (line 119)
-* shell-forward-word (M-C-f): Commands For Moving. (line 30)
-* shell-kill-word (M-C-d): Commands For Killing.
- (line 32)
-* shell-transpose-words (M-C-t): Commands For Text. (line 58)
-* skip-csi-sequence (): Miscellaneous Commands.
- (line 50)
-* spell-correct-word (C-x s): Miscellaneous Commands.
- (line 97)
-* start-kbd-macro (C-x (): Keyboard Macros. (line 6)
-* tilde-expand (M-&): Miscellaneous Commands.
- (line 30)
-* transpose-chars (C-t): Commands For Text. (line 47)
-* transpose-words (M-t): Commands For Text. (line 53)
-* undo (C-_ or C-x C-u): Miscellaneous Commands.
- (line 23)
-* universal-argument (): Numeric Arguments. (line 10)
-* unix-filename-rubout (): Commands For Killing.
- (line 45)
-* unix-line-discard (C-u): Commands For Killing.
- (line 16)
-* unix-word-rubout (C-w): Commands For Killing.
- (line 41)
-* upcase-word (M-u): Commands For Text. (line 65)
-* yank (C-y): Commands For Killing.
- (line 72)
-* yank-last-arg (M-. or M-_): Commands For History.
- (line 90)
-* yank-nth-arg (M-C-y): Commands For History.
- (line 80)
-* yank-pop (M-y): Commands For Killing.
- (line 75)
-
-\1f
-File: bash.info, Node: Concept Index, Prev: Function Index, Up: Indexes
-
-D.5 Concept Index
-=================
-
-\0\b[index\0\b]
-* Menu:
-
-* alias expansion: Aliases. (line 6)
-* arithmetic evaluation: Shell Arithmetic. (line 6)
-* arithmetic expansion: Arithmetic Expansion.
- (line 6)
-* arithmetic operators: Shell Arithmetic. (line 18)
-* arithmetic, shell: Shell Arithmetic. (line 6)
-* arrays: Arrays. (line 6)
-* background: Job Control Basics. (line 6)
-* Bash configuration: Basic Installation. (line 6)
-* Bash installation: Basic Installation. (line 6)
-* binary arithmetic operators: Shell Arithmetic. (line 18)
-* bitwise arithmetic operators: Shell Arithmetic. (line 18)
-* Bourne shell: Basic Shell Features.
- (line 6)
-* brace expansion: Brace Expansion. (line 6)
-* builtin: Definitions. (line 21)
-* command editing: Readline Bare Essentials.
- (line 6)
-* command execution: Command Search and Execution.
- (line 6)
-* command expansion: Simple Command Expansion.
- (line 6)
-* command history: Bash History Facilities.
- (line 6)
-* command search: Command Search and Execution.
- (line 6)
-* command substitution: Command Substitution.
- (line 6)
-* command timing: Pipelines. (line 9)
-* commands, compound: Compound Commands. (line 6)
-* commands, conditional: Conditional Constructs.
- (line 6)
-* commands, grouping: Command Grouping. (line 6)
-* commands, lists: Lists. (line 6)
-* commands, looping: Looping Constructs. (line 6)
-* commands, pipelines: Pipelines. (line 6)
-* commands, shell: Shell Commands. (line 6)
-* commands, simple: Simple Commands. (line 6)
-* comments, shell: Comments. (line 6)
-* Compatibility Level: Shell Compatibility Mode.
- (line 6)
-* Compatibility Mode: Shell Compatibility Mode.
- (line 6)
-* completion builtins: Programmable Completion Builtins.
- (line 6)
-* conditional arithmetic operator: Shell Arithmetic. (line 18)
-* configuration: Basic Installation. (line 6)
-* control operator: Definitions. (line 25)
-* coprocess: Coprocesses. (line 6)
-* directory stack: The Directory Stack. (line 6)
-* dollar-single quote quoting: ANSI-C Quoting. (line 6)
-* editing command lines: Readline Bare Essentials.
- (line 6)
-* environment: Environment. (line 6)
-* evaluation, arithmetic: Shell Arithmetic. (line 6)
-* event designators: Event Designators. (line 6)
-* execution environment: Command Execution Environment.
- (line 6)
-* exit status: Definitions. (line 30)
-* exit status <1>: Exit Status. (line 6)
-* expansion: Shell Expansions. (line 6)
-* expansion, arithmetic: Arithmetic Expansion.
- (line 6)
-* expansion, brace: Brace Expansion. (line 6)
-* expansion, filename: Filename Expansion. (line 9)
-* expansion, parameter: Shell Parameter Expansion.
- (line 6)
-* expansion, pathname: Filename Expansion. (line 9)
-* expansion, tilde: Tilde Expansion. (line 6)
-* expressions, arithmetic: Shell Arithmetic. (line 6)
-* expressions, conditional: Bash Conditional Expressions.
- (line 6)
-* field: Definitions. (line 34)
-* filename: Definitions. (line 39)
-* filename expansion: Filename Expansion. (line 9)
-* foreground: Job Control Basics. (line 6)
-* functions, shell: Shell Functions. (line 6)
-* history builtins: Bash History Builtins.
- (line 6)
-* history events: Event Designators. (line 10)
-* history expansion: History Interaction. (line 6)
-* history list: Bash History Facilities.
- (line 6)
-* History, how to use: A Programmable Completion Example.
- (line 113)
-* identifier: Definitions. (line 55)
-* initialization file, readline: Readline Init File. (line 6)
-* installation: Basic Installation. (line 6)
-* interaction, readline: Readline Interaction.
- (line 6)
-* interactive shell: Invoking Bash. (line 137)
-* interactive shell <1>: Interactive Shells. (line 6)
-* internationalization: Locale Translation. (line 6)
-* internationalized scripts: Creating Internationalized Scripts.
- (line 3)
-* job: Definitions. (line 42)
-* job control: Definitions. (line 46)
-* job control <1>: Job Control Basics. (line 6)
-* kill ring: Readline Killing Commands.
- (line 18)
-* killing text: Readline Killing Commands.
- (line 6)
-* localization: Locale Translation. (line 6)
-* login shell: Invoking Bash. (line 134)
-* matching, pattern: Pattern Matching. (line 6)
-* metacharacter: Definitions. (line 50)
-* name: Definitions. (line 55)
-* native languages: Locale Translation. (line 6)
-* notation, readline: Readline Bare Essentials.
- (line 6)
-* operator, shell: Definitions. (line 61)
-* parameter expansion: Shell Parameter Expansion.
- (line 6)
-* parameters: Shell Parameters. (line 6)
-* parameters, positional: Positional Parameters.
- (line 6)
-* parameters, special: Special Parameters. (line 6)
-* pathname expansion: Filename Expansion. (line 9)
-* pattern matching: Pattern Matching. (line 6)
-* pipeline: Pipelines. (line 6)
-* POSIX: Definitions. (line 9)
-* POSIX description: Bash POSIX Mode. (line 9)
-* POSIX Mode: Bash POSIX Mode. (line 48)
-* process group: Definitions. (line 66)
-* process group ID: Definitions. (line 70)
-* process substitution: Process Substitution.
- (line 6)
-* programmable completion: Programmable Completion.
- (line 6)
-* prompting: Controlling the Prompt.
- (line 6)
-* quoting: Quoting. (line 6)
-* quoting, ANSI: ANSI-C Quoting. (line 6)
-* Readline, how to use: Job Control Variables.
- (line 23)
-* redirection: Redirections. (line 6)
-* reserved word: Definitions. (line 74)
-* reserved words: Reserved Words. (line 6)
-* restricted shell: The Restricted Shell.
- (line 6)
-* return status: Definitions. (line 79)
-* shell arithmetic: Shell Arithmetic. (line 6)
-* shell function: Shell Functions. (line 6)
-* shell script: Shell Scripts. (line 6)
-* shell variable: Shell Parameters. (line 6)
-* shell, interactive: Interactive Shells. (line 6)
-* signal: Definitions. (line 82)
-* signal handling: Signals. (line 6)
-* special builtin: Definitions. (line 86)
-* special builtin <1>: Special Builtins. (line 6)
-* startup files: Bash Startup Files. (line 6)
-* string translations: Creating Internationalized Scripts.
- (line 3)
-* suspending jobs: Job Control Basics. (line 6)
-* tilde expansion: Tilde Expansion. (line 6)
-* token: Definitions. (line 90)
-* translation, native languages: Locale Translation. (line 6)
-* unary arithmetic operators: Shell Arithmetic. (line 18)
-* variable, shell: Shell Parameters. (line 6)
-* variables, readline: Readline Init File Syntax.
- (line 37)
-* word: Definitions. (line 94)
-* word splitting: Word Splitting. (line 6)
-* yanking text: Readline Killing Commands.
- (line 6)
-
-\1f
-Tag Table:
-Node: Top\7f895
-Node: Introduction\7f2830
-Node: What is Bash?\7f3043
-Node: What is a shell?\7f4176
-Node: Definitions\7f6786
-Node: Basic Shell Features\7f10113
-Node: Shell Syntax\7f11337
-Node: Shell Operation\7f12364
-Node: Quoting\7f13655
-Node: Escape Character\7f14993
-Node: Single Quotes\7f15528
-Node: Double Quotes\7f15877
-Node: ANSI-C Quoting\7f17222
-Node: Locale Translation\7f18616
-Node: Creating Internationalized Scripts\7f20019
-Node: Comments\7f24217
-Node: Shell Commands\7f24984
-Node: Reserved Words\7f25923
-Node: Simple Commands\7f26788
-Node: Pipelines\7f27450
-Node: Lists\7f30706
-Node: Compound Commands\7f32578
-Node: Looping Constructs\7f33587
-Node: Conditional Constructs\7f36136
-Node: Command Grouping\7f51206
-Node: Coprocesses\7f52698
-Node: GNU Parallel\7f55384
-Node: Shell Functions\7f56302
-Node: Shell Parameters\7f64750
-Node: Positional Parameters\7f69651
-Node: Special Parameters\7f70741
-Node: Shell Expansions\7f74202
-Node: Brace Expansion\7f76391
-Node: Tilde Expansion\7f79727
-Node: Shell Parameter Expansion\7f82682
-Node: Command Substitution\7f103325
-Node: Arithmetic Expansion\7f106854
-Node: Process Substitution\7f108030
-Node: Word Splitting\7f109138
-Node: Filename Expansion\7f111582
-Node: Pattern Matching\7f114806
-Node: Quote Removal\7f120529
-Node: Redirections\7f120833
-Node: Executing Commands\7f131089
-Node: Simple Command Expansion\7f131756
-Node: Command Search and Execution\7f133864
-Node: Command Execution Environment\7f136308
-Node: Environment\7f139756
-Node: Exit Status\7f141659
-Node: Signals\7f143718
-Node: Shell Scripts\7f148648
-Node: Shell Builtin Commands\7f151946
-Node: Bourne Shell Builtins\7f154057
-Node: Bash Builtins\7f180776
-Node: Modifying Shell Behavior\7f217700
-Node: The Set Builtin\7f218042
-Node: The Shopt Builtin\7f230036
-Node: Special Builtins\7f247089
-Node: Shell Variables\7f248078
-Node: Bourne Shell Variables\7f248512
-Node: Bash Variables\7f251020
-Node: Bash Features\7f290145
-Node: Invoking Bash\7f291159
-Node: Bash Startup Files\7f297743
-Node: Interactive Shells\7f302985
-Node: What is an Interactive Shell?\7f303393
-Node: Is this Shell Interactive?\7f304055
-Node: Interactive Shell Behavior\7f304879
-Node: Bash Conditional Expressions\7f308640
-Node: Shell Arithmetic\7f314057
-Node: Aliases\7f317384
-Node: Arrays\7f320518
-Node: The Directory Stack\7f328106
-Node: Directory Stack Builtins\7f328903
-Node: Controlling the Prompt\7f333348
-Node: The Restricted Shell\7f336233
-Node: Bash POSIX Mode\7f339115
-Node: Shell Compatibility Mode\7f358062
-Node: Job Control\7f367069
-Node: Job Control Basics\7f367526
-Node: Job Control Builtins\7f373894
-Node: Job Control Variables\7f380576
-Node: Command Line Editing\7f381807
-Node: Introduction and Notation\7f383510
-Node: Readline Interaction\7f385862
-Node: Readline Bare Essentials\7f387050
-Node: Readline Movement Commands\7f388858
-Node: Readline Killing Commands\7f389854
-Node: Readline Arguments\7f391877
-Node: Searching\7f392967
-Node: Readline Init File\7f395210
-Node: Readline Init File Syntax\7f396513
-Node: Conditional Init Constructs\7f423464
-Node: Sample Init File\7f427849
-Node: Bindable Readline Commands\7f430969
-Node: Commands For Moving\7f432507
-Node: Commands For History\7f434971
-Node: Commands For Text\7f440362
-Node: Commands For Killing\7f444487
-Node: Numeric Arguments\7f447275
-Node: Commands For Completion\7f448427
-Node: Keyboard Macros\7f454123
-Node: Miscellaneous Commands\7f454824
-Node: Readline vi Mode\7f461391
-Node: Programmable Completion\7f462368
-Node: Programmable Completion Builtins\7f472104
-Node: A Programmable Completion Example\7f483841
-Node: Using History Interactively\7f489186
-Node: Bash History Facilities\7f489867
-Node: Bash History Builtins\7f493602
-Node: History Interaction\7f500073
-Node: Event Designators\7f505023
-Node: Word Designators\7f506601
-Node: Modifiers\7f508993
-Node: Installing Bash\7f510930
-Node: Basic Installation\7f512046
-Node: Compilers and Options\7f515922
-Node: Compiling For Multiple Architectures\7f516672
-Node: Installation Names\7f518425
-Node: Specifying the System Type\7f520659
-Node: Sharing Defaults\7f521405
-Node: Operation Controls\7f522119
-Node: Optional Features\7f523138
-Node: Reporting Bugs\7f535861
-Node: Major Differences From The Bourne Shell\7f537218
-Node: GNU Free Documentation License\7f558645
-Node: Indexes\7f583822
-Node: Builtin Index\7f584273
-Node: Reserved Word Index\7f591371
-Node: Variable Index\7f593816
-Node: Function Index\7f611229
-Node: Concept Index\7f625224
-\1f
-End Tag Table
-
-\1f
-Local Variables:
-coding: utf-8
-End:
+++ /dev/null
-This is bashref.info, produced by makeinfo version 7.2 from
-bashref.texi.
-
-This text is a brief description of the features that are present in the
-Bash shell (version 5.3, 7 August 2025).
-
- This is Edition 5.3, last updated 7 August 2025, of ‘The GNU Bash
-Reference Manual’, for ‘Bash’, Version 5.3.
-
- Copyright © 1988-2025 Free Software Foundation, Inc.
-
- Permission is granted to copy, distribute and/or modify this
- document under the terms of the GNU Free Documentation License,
- Version 1.3 or any later version published by the Free Software
- Foundation; with no Invariant Sections, no Front-Cover Texts, and
- no Back-Cover Texts. A copy of the license is included in the
- section entitled "GNU Free Documentation License".
-INFO-DIR-SECTION Basics
-START-INFO-DIR-ENTRY
-* Bash: (bash). The GNU Bourne-Again SHell.
-END-INFO-DIR-ENTRY
-
-\1f
-File: bashref.info, Node: Top, Next: Introduction, Prev: (dir), Up: (dir)
-
-Bash Features
-*************
-
-This text is a brief description of the features that are present in the
-Bash shell (version 5.3, 7 August 2025). The Bash home page is
-<http://www.gnu.org/software/bash/>.
-
- This is Edition 5.3, last updated 7 August 2025, of ‘The GNU Bash
-Reference Manual’, for ‘Bash’, Version 5.3.
-
- Bash contains features that appear in other popular shells, and some
-features that only appear in Bash. Some of the shells that Bash has
-borrowed concepts from are the Bourne Shell (‘sh’), the Korn Shell
-(‘ksh’), and the C-shell (‘csh’ and its successor, ‘tcsh’). The
-following menu breaks the features up into categories, noting which
-features were inspired by other shells and which are specific to Bash.
-
- This manual is meant as a brief introduction to features found in
-Bash. The Bash manual page should be used as the definitive reference
-on shell behavior.
-
-* Menu:
-
-* Introduction:: An introduction to the shell.
-* Definitions:: Some definitions used in the rest of this
- manual.
-* Basic Shell Features:: The shell "building blocks".
-* Shell Builtin Commands:: Commands that are a part of the shell.
-* Shell Variables:: Variables used or set by Bash.
-* Bash Features:: Features found only in Bash.
-* Job Control:: What job control is and how Bash allows you
- to use it.
-* Command Line Editing:: Chapter describing the command line
- editing features.
-* Using History Interactively:: Command History Expansion
-* Installing Bash:: How to build and install Bash on your system.
-* Reporting Bugs:: How to report bugs in Bash.
-* Major Differences From The Bourne Shell:: A terse list of the differences
- between Bash and historical
- versions of /bin/sh.
-* GNU Free Documentation License:: Copying and sharing this documentation.
-* Indexes:: Various indexes for this manual.
-
-\1f
-File: bashref.info, Node: Introduction, Next: Definitions, Up: Top
-
-1 Introduction
-**************
-
-* Menu:
-
-* What is Bash?:: A short description of Bash.
-* What is a shell?:: A brief introduction to shells.
-
-\1f
-File: bashref.info, Node: What is Bash?, Next: What is a shell?, Up: Introduction
-
-1.1 What is Bash?
-=================
-
-Bash is the shell, or command language interpreter, for the GNU
-operating system. The name is an acronym for the ‘Bourne-Again SHell’,
-a pun on Stephen Bourne, the author of the direct ancestor of the
-current Unix shell ‘sh’, which appeared in the Seventh Edition Bell Labs
-Research version of Unix.
-
- Bash is largely compatible with ‘sh’ and incorporates useful features
-from the Korn shell ‘ksh’ and the C shell ‘csh’. It is intended to be a
-conformant implementation of the IEEE POSIX Shell and Tools portion of
-the IEEE POSIX specification (IEEE Standard 1003.1). It offers
-functional improvements over ‘sh’ for both interactive and programming
-use.
-
- While the GNU operating system provides other shells, including a
-version of ‘csh’, Bash is the default shell. Like other GNU software,
-Bash is quite portable. It currently runs on nearly every version of
-Unix and a few other operating systems − independently-supported ports
-exist for Windows and other platforms.
-
-\1f
-File: bashref.info, Node: What is a shell?, Prev: What is Bash?, Up: Introduction
-
-1.2 What is a shell?
-====================
-
-At its base, a shell is simply a macro processor that executes commands.
-The term macro processor means functionality where text and symbols are
-expanded to create larger expressions.
-
- A Unix shell is both a command interpreter and a programming
-language. As a command interpreter, the shell provides the user
-interface to the rich set of GNU utilities. The programming language
-features allow these utilities to be combined. Users can create files
-containing commands, and these become commands themselves. These new
-commands have the same status as system commands in directories such as
-‘/bin’, allowing users or groups to establish custom environments to
-automate their common tasks.
-
- Shells may be used interactively or non-interactively. In
-interactive mode, they accept input typed from the keyboard. When
-executing non-interactively, shells execute commands read from a file or
-a string.
-
- A shell allows execution of GNU commands, both synchronously and
-asynchronously. The shell waits for synchronous commands to complete
-before accepting more input; asynchronous commands continue to execute
-in parallel with the shell while it reads and executes additional
-commands. The “redirection” constructs permit fine-grained control of
-the input and output of those commands. Moreover, the shell allows
-control over the contents of commands' environments.
-
- Shells also provide a small set of built-in commands (“builtins”)
-implementing functionality impossible or inconvenient to obtain via
-separate utilities. For example, ‘cd’, ‘break’, ‘continue’, and ‘exec’
-cannot be implemented outside of the shell because they directly
-manipulate the shell itself. The ‘history’, ‘getopts’, ‘kill’, or ‘pwd’
-builtins, among others, could be implemented in separate utilities, but
-they are more convenient to use as builtin commands. All of the shell
-builtins are described in subsequent sections.
-
- While executing commands is essential, most of the power (and
-complexity) of shells is due to their embedded programming languages.
-Like any high-level language, the shell provides variables, flow control
-constructs, quoting, and functions.
-
- Shells offer features geared specifically for interactive use rather
-than to augment the programming language. These interactive features
-include job control, command line editing, command history and aliases.
-This manual describes how Bash provides all of these features.
-
-\1f
-File: bashref.info, Node: Definitions, Next: Basic Shell Features, Prev: Introduction, Up: Top
-
-2 Definitions
-*************
-
-These definitions are used throughout the remainder of this manual.
-
-‘POSIX’
- A family of open system standards based on Unix. Bash is primarily
- concerned with the Shell and Utilities portion of the POSIX 1003.1
- standard.
-
-‘blank’
- A space or tab character.
-
-‘whitespace’
- A character belonging to the ‘space’ character class in the current
- locale, or for which ‘isspace()’ returns true.
-
-‘builtin’
- A command that is implemented internally by the shell itself,
- rather than by an executable program somewhere in the file system.
-
-‘control operator’
- A ‘token’ that performs a control function. It is a ‘newline’ or
- one of the following: ‘||’, ‘&&’, ‘&’, ‘;’, ‘;;’, ‘;&’, ‘;;&’, ‘|’,
- ‘|&’, ‘(’, or ‘)’.
-
-‘exit status’
- The value returned by a command to its caller. The value is
- restricted to eight bits, so the maximum value is 255.
-
-‘field’
- A unit of text that is the result of one of the shell expansions.
- After expansion, when executing a command, the resulting fields are
- used as the command name and arguments.
-
-‘filename’
- A string of characters used to identify a file.
-
-‘job’
- A set of processes comprising a pipeline, and any processes
- descended from it, that are all in the same process group.
-
-‘job control’
- A mechanism by which users can selectively stop (suspend) and
- restart (resume) execution of processes.
-
-‘metacharacter’
- A character that, when unquoted, separates words. A metacharacter
- is a ‘space’, ‘tab’, ‘newline’, or one of the following characters:
- ‘|’, ‘&’, ‘;’, ‘(’, ‘)’, ‘<’, or ‘>’.
-
-‘name’
- A ‘word’ consisting solely of letters, numbers, and underscores,
- and beginning with a letter or underscore. ‘Name’s are used as
- shell variable and function names. Also referred to as an
- ‘identifier’.
-
-‘operator’
- A ‘control operator’ or a ‘redirection operator’. *Note
- Redirections::, for a list of redirection operators. Operators
- contain at least one unquoted ‘metacharacter’.
-
-‘process group’
- A collection of related processes each having the same process
- group ID.
-
-‘process group ID’
- A unique identifier that represents a ‘process group’ during its
- lifetime.
-
-‘reserved word’
- A ‘word’ that has a special meaning to the shell. Most reserved
- words introduce shell flow control constructs, such as ‘for’ and
- ‘while’.
-
-‘return status’
- A synonym for ‘exit status’.
-
-‘signal’
- A mechanism by which a process may be notified by the kernel of an
- event occurring in the system.
-
-‘special builtin’
- A shell builtin command that has been classified as special by the
- POSIX standard.
-
-‘token’
- A sequence of characters considered a single unit by the shell. It
- is either a ‘word’ or an ‘operator’.
-
-‘word’
- A sequence of characters treated as a unit by the shell. Words may
- not include unquoted ‘metacharacters’.
-
-\1f
-File: bashref.info, Node: Basic Shell Features, Next: Shell Builtin Commands, Prev: Definitions, Up: Top
-
-3 Basic Shell Features
-**********************
-
-Bash is an acronym for ‘Bourne-Again SHell’. The Bourne shell is the
-traditional Unix shell originally written by Stephen Bourne. All of the
-Bourne shell builtin commands are available in Bash, and the rules for
-evaluation and quoting are taken from the POSIX specification for the
-"standard" Unix shell.
-
- This chapter briefly summarizes the shell's "building blocks":
-commands, control structures, shell functions, shell parameters, shell
-expansions, redirections, which are a way to direct input and output
-from and to named files, and how the shell executes commands.
-
-* Menu:
-
-* Shell Syntax:: What your input means to the shell.
-* Shell Commands:: The types of commands you can use.
-* Shell Functions:: Grouping commands by name.
-* Shell Parameters:: How the shell stores values.
-* Shell Expansions:: How Bash expands parameters and the various
- expansions available.
-* Redirections:: A way to control where input and output go.
-* Executing Commands:: What happens when you run a command.
-* Shell Scripts:: Executing files of shell commands.
-
-\1f
-File: bashref.info, Node: Shell Syntax, Next: Shell Commands, Up: Basic Shell Features
-
-3.1 Shell Syntax
-================
-
-* Menu:
-
-* Shell Operation:: The basic operation of the shell.
-* Quoting:: How to remove the special meaning from characters.
-* Comments:: How to specify comments.
-
-When the shell reads input, it proceeds through a sequence of
-operations. If the input indicates the beginning of a comment, the
-shell ignores the comment symbol (‘#’), and the rest of that line.
-
- Otherwise, roughly speaking, the shell reads its input and divides
-the input into words and operators, employing the quoting rules to
-select which meanings to assign various words and characters.
-
- The shell then parses these tokens into commands and other
-constructs, removes the special meaning of certain words or characters,
-expands others, redirects input and output as needed, executes the
-specified command, waits for the command's exit status, and makes that
-exit status available for further inspection or processing.
-
-\1f
-File: bashref.info, Node: Shell Operation, Next: Quoting, Up: Shell Syntax
-
-3.1.1 Shell Operation
----------------------
-
-The following is a brief description of the shell's operation when it
-reads and executes a command. Basically, the shell does the following:
-
- 1. Reads its input from a file (*note Shell Scripts::), from a string
- supplied as an argument to the ‘-c’ invocation option (*note
- Invoking Bash::), or from the user's terminal.
-
- 2. Breaks the input into words and operators, obeying the quoting
- rules described in *note Quoting::. These tokens are separated by
- ‘metacharacters’. This step performs alias expansion (*note
- Aliases::).
-
- 3. Parses the tokens into simple and compound commands (*note Shell
- Commands::).
-
- 4. Performs the various shell expansions (*note Shell Expansions::),
- breaking the expanded tokens into lists of filenames (*note
- Filename Expansion::) and commands and arguments.
-
- 5. Performs any necessary redirections (*note Redirections::) and
- removes the redirection operators and their operands from the
- argument list.
-
- 6. Executes the command (*note Executing Commands::).
-
- 7. Optionally waits for the command to complete and collects its exit
- status (*note Exit Status::).
-
-\1f
-File: bashref.info, Node: Quoting, Next: Comments, Prev: Shell Operation, Up: Shell Syntax
-
-3.1.2 Quoting
--------------
-
-* Menu:
-
-* Escape Character:: How to remove the special meaning from a single
- character.
-* Single Quotes:: How to inhibit all interpretation of a sequence
- of characters.
-* Double Quotes:: How to suppress most of the interpretation of a
- sequence of characters.
-* ANSI-C Quoting:: How to expand ANSI-C sequences in quoted strings.
-* Locale Translation:: How to translate strings into different languages.
-
-Quoting is used to remove the special meaning of certain characters or
-words to the shell. Quoting can be used to disable special treatment
-for special characters, to prevent reserved words from being recognized
-as such, and to prevent parameter expansion.
-
- Each of the shell metacharacters (*note Definitions::) has special
-meaning to the shell and must be quoted if it is to represent itself.
-
- When the command history expansion facilities are being used (*note
-History Interaction::), the “history expansion” character, usually ‘!’,
-must be quoted to prevent history expansion. *Note Bash History
-Facilities::, for more details concerning history expansion.
-
- There are four quoting mechanisms: the “escape character”, single
-quotes, double quotes, and dollar-single quotes.
-
-\1f
-File: bashref.info, Node: Escape Character, Next: Single Quotes, Up: Quoting
-
-3.1.2.1 Escape Character
-........................
-
-A non-quoted backslash ‘\’ is the Bash escape character. It preserves
-the literal value of the next character that follows, removing any
-special meaning it has, with the exception of ‘newline’. If a
-‘\newline’ pair appears, and the backslash itself is not quoted, the
-‘\newline’ is treated as a line continuation (that is, it is removed
-from the input stream and effectively ignored).
-
-\1f
-File: bashref.info, Node: Single Quotes, Next: Double Quotes, Prev: Escape Character, Up: Quoting
-
-3.1.2.2 Single Quotes
-.....................
-
-Enclosing characters in single quotes (‘'’) preserves the literal value
-of each character within the quotes. A single quote may not occur
-between single quotes, even when preceded by a backslash.
-
-\1f
-File: bashref.info, Node: Double Quotes, Next: ANSI-C Quoting, Prev: Single Quotes, Up: Quoting
-
-3.1.2.3 Double Quotes
-.....................
-
-Enclosing characters in double quotes (‘"’) preserves the literal value
-of all characters within the quotes, with the exception of ‘$’, ‘`’,
-‘\’, and, when history expansion is enabled, ‘!’. When the shell is in
-POSIX mode (*note Bash POSIX Mode::), the ‘!’ has no special meaning
-within double quotes, even when history expansion is enabled. The
-characters ‘$’ and ‘`’ retain their special meaning within double quotes
-(*note Shell Expansions::). The backslash retains its special meaning
-only when followed by one of the following characters: ‘$’, ‘`’, ‘"’,
-‘\’, or ‘newline’. Within double quotes, backslashes that are followed
-by one of these characters are removed. Backslashes preceding
-characters without a special meaning are left unmodified.
-
- A double quote may be quoted within double quotes by preceding it
-with a backslash. If enabled, history expansion will be performed
-unless an ‘!’ appearing in double quotes is escaped using a backslash.
-The backslash preceding the ‘!’ is not removed.
-
- The special parameters ‘*’ and ‘@’ have special meaning when in
-double quotes (*note Shell Parameter Expansion::).
-
-\1f
-File: bashref.info, Node: ANSI-C Quoting, Next: Locale Translation, Prev: Double Quotes, Up: Quoting
-
-3.1.2.4 ANSI-C Quoting
-......................
-
-Character sequences of the form ‘$'STRING'’ are treated as a special
-kind of single quotes. The sequence expands to STRING, with
-backslash-escaped characters in STRING replaced as specified by the ANSI
-C standard. Backslash escape sequences, if present, are decoded as
-follows:
-
-‘\a’
- alert (bell)
-‘\b’
- backspace
-‘\e’
-‘\E’
- An escape character (not in ANSI C).
-‘\f’
- form feed
-‘\n’
- newline
-‘\r’
- carriage return
-‘\t’
- horizontal tab
-‘\v’
- vertical tab
-‘\\’
- backslash
-‘\'’
- single quote
-‘\"’
- double quote
-‘\?’
- question mark
-‘\NNN’
- The eight-bit character whose value is the octal value NNN (one to
- three octal digits).
-‘\xHH’
- The eight-bit character whose value is the hexadecimal value HH
- (one or two hex digits).
-‘\uHHHH’
- The Unicode (ISO/IEC 10646) character whose value is the
- hexadecimal value HHHH (one to four hex digits).
-‘\UHHHHHHHH’
- The Unicode (ISO/IEC 10646) character whose value is the
- hexadecimal value HHHHHHHH (one to eight hex digits).
-‘\cX’
- A control-X character.
-
-The expanded result is single-quoted, as if the dollar sign had not been
-present.
-
-\1f
-File: bashref.info, Node: Locale Translation, Prev: ANSI-C Quoting, Up: Quoting
-
-3.1.2.5 Locale-Specific Translation
-...................................
-
-* Menu:
-
-* Creating Internationalized Scripts:: How to use translations and different
- languages in your scripts.
-
-Prefixing a double-quoted string with a dollar sign (‘$’), such as
-$"hello, world", causes the string to be translated according to the
-current locale. The ‘gettext’ infrastructure performs the lookup and
-translation, using the ‘LC_MESSAGES’, ‘TEXTDOMAINDIR’, and ‘TEXTDOMAIN’
-shell variables, as explained below. See the gettext documentation for
-additional details not covered here. If the current locale is ‘C’ or
-‘POSIX’, if there are no translations available, or if the string is not
-translated, the dollar sign is ignored, and the string is treated as
-double-quoted as described above. Since this is a form of double
-quoting, the string remains double-quoted by default, whether or not it
-is translated and replaced. If the ‘noexpand_translation’ option is
-enabled using the ‘shopt’ builtin (*note The Shopt Builtin::),
-translated strings are single-quoted instead of double-quoted.
-
- The rest of this section is a brief overview of how you use gettext
-to create translations for strings in a shell script named SCRIPTNAME.
-There are more details in the gettext documentation.
-
-\1f
-File: bashref.info, Node: Creating Internationalized Scripts, Up: Locale Translation
-
-Once you've marked the strings in your script that you want to translate
-using $"...", you create a gettext "template" file using the command
-
- bash --dump-po-strings SCRIPTNAME > DOMAIN.pot
-
-The DOMAIN is your “message domain”. It's just an arbitrary string
-that's used to identify the files gettext needs, like a package or
-script name. It needs to be unique among all the message domains on
-systems where you install the translations, so gettext knows which
-translations correspond to your script. You'll use the template file to
-create translations for each target language. The template file
-conventionally has the suffix ‘.pot’.
-
- You copy this template file to a separate file for each target
-language you want to support (called "PO" files, which use the suffix
-‘.po’). PO files use various naming conventions, but when you are
-working to translate a template file into a particular language, you
-first copy the template file to a file whose name is the language you
-want to target, with the ‘.po’ suffix. For instance, the Spanish
-translations of your strings would be in a file named ‘es.po’, and to
-get started using a message domain named "example," you would run
-
- cp example.pot es.po
-
-Ultimately, PO files are often named DOMAIN.po and installed in
-directories that contain multiple translation files for a particular
-language.
-
- Whichever naming convention you choose, you will need to translate
-the strings in the PO files into the appropriate languages. This has to
-be done manually.
-
- When you have the translations and PO files complete, you'll use the
-gettext tools to produce what are called "MO" files, which are compiled
-versions of the PO files the gettext tools use to look up translations
-efficiently. MO files are also called "message catalog" files. You use
-the ‘msgfmt’ program to do this. For instance, if you had a file with
-Spanish translations, you could run
-
- msgfmt -o es.mo es.po
-
-to produce the corresponding MO file.
-
- Once you have the MO files, you decide where to install them and use
-the ‘TEXTDOMAINDIR’ shell variable to tell the gettext tools where they
-are. Make sure to use the same message domain to name the MO files as
-you did for the PO files when you install them.
-
- Your users will use the ‘LANG’ or ‘LC_MESSAGES’ shell variables to
-select the desired language.
-
- You set the ‘TEXTDOMAIN’ variable to the script's message domain. As
-above, you use the message domain to name your translation files.
-
- You, or possibly your users, set the ‘TEXTDOMAINDIR’ variable to the
-name of a directory where the message catalog files are stored. If you
-install the message files into the system's standard message catalog
-directory, you don't need to worry about this variable.
-
- The directory where the message catalog files are stored varies
-between systems. Some use the message catalog selected by the
-‘LC_MESSAGES’ shell variable. Others create the name of the message
-catalog from the value of the ‘TEXTDOMAIN’ shell variable, possibly
-adding the ‘.mo’ suffix. If you use the ‘TEXTDOMAIN’ variable, you may
-need to set the ‘TEXTDOMAINDIR’ variable to the location of the message
-catalog files, as above. It's common to use both variables in this
-fashion: ‘$TEXTDOMAINDIR’/‘$LC_MESSAGES’/LC_MESSAGES/‘$TEXTDOMAIN’.mo.
-
- If you used that last convention, and you wanted to store the message
-catalog files with Spanish (es) and Esperanto (eo) translations into a
-local directory you use for custom translation files, you could run
-
- TEXTDOMAIN=example
- TEXTDOMAINDIR=/usr/local/share/locale
-
- cp es.mo ${TEXTDOMAINDIR}/es/LC_MESSAGES/${TEXTDOMAIN}.mo
- cp eo.mo ${TEXTDOMAINDIR}/eo/LC_MESSAGES/${TEXTDOMAIN}.mo
-
- When all of this is done, and the message catalog files containing
-the compiled translations are installed in the correct location, your
-users will be able to see translated strings in any of the supported
-languages by setting the ‘LANG’ or ‘LC_MESSAGES’ environment variables
-before running your script.
-
-\1f
-File: bashref.info, Node: Comments, Prev: Quoting, Up: Shell Syntax
-
-3.1.3 Comments
---------------
-
-In a non-interactive shell, or an interactive shell in which the
-‘interactive_comments’ option to the ‘shopt’ builtin is enabled (*note
-The Shopt Builtin::), a word beginning with ‘#’ introduces a comment. A
-word begins at the beginning of a line, after unquoted whitespace, or
-after an operator. The comment causes that word and all remaining
-characters on that line to be ignored. An interactive shell without the
-‘interactive_comments’ option enabled does not allow comments. The
-‘interactive_comments’ option is enabled by default in interactive
-shells. *Note Interactive Shells::, for a description of what makes a
-shell interactive.
-
-\1f
-File: bashref.info, Node: Shell Commands, Next: Shell Functions, Prev: Shell Syntax, Up: Basic Shell Features
-
-3.2 Shell Commands
-==================
-
-A simple shell command such as ‘echo a b c’ consists of the command
-itself followed by arguments, separated by spaces.
-
- More complex shell commands are composed of simple commands arranged
-together in a variety of ways: in a pipeline in which the output of one
-command becomes the input of a second, in a loop or conditional
-construct, or in some other grouping.
-
-* Menu:
-
-* Reserved Words:: Words that have special meaning to the shell.
-* Simple Commands:: The most common type of command.
-* Pipelines:: Connecting the input and output of several
- commands.
-* Lists:: How to execute commands sequentially.
-* Compound Commands:: Shell commands for control flow.
-* Coprocesses:: Two-way communication between commands.
-* GNU Parallel:: Running commands in parallel.
-
-\1f
-File: bashref.info, Node: Reserved Words, Next: Simple Commands, Up: Shell Commands
-
-3.2.1 Reserved Words
---------------------
-
-Reserved words are words that have special meaning to the shell. They
-are used to begin and end the shell's compound commands.
-
- The following words are recognized as reserved when unquoted and the
-first word of a command (see below for exceptions):
-
-‘if’ ‘then’ ‘elif’ ‘else’ ‘fi’ ‘time’
-‘for’ ‘in’ ‘until’ ‘while’ ‘do’ ‘done’
-‘case’ ‘esac’ ‘coproc’‘select’‘function’
-‘{’ ‘}’ ‘[[’ ‘]]’ ‘!’
-
-‘in’ is recognized as a reserved word if it is the third word of a
-‘case’ or ‘select’ command. ‘in’ and ‘do’ are recognized as reserved
-words if they are the third word in a ‘for’ command.
-
-\1f
-File: bashref.info, Node: Simple Commands, Next: Pipelines, Prev: Reserved Words, Up: Shell Commands
-
-3.2.2 Simple Commands
----------------------
-
-A simple command is the kind of command that's executed most often.
-It's just a sequence of words separated by ‘blank’s, terminated by one
-of the shell's control operators (*note Definitions::). The first word
-generally specifies a command to be executed, with the rest of the words
-being that command's arguments.
-
- The return status (*note Exit Status::) of a simple command is its
-exit status as provided by the POSIX 1003.1 ‘waitpid’ function, or 128+N
-if the command was terminated by signal N.
-
-\1f
-File: bashref.info, Node: Pipelines, Next: Lists, Prev: Simple Commands, Up: Shell Commands
-
-3.2.3 Pipelines
----------------
-
-A ‘pipeline’ is a sequence of one or more commands separated by one of
-the control operators ‘|’ or ‘|&’.
-
- The format for a pipeline is
- [time [-p]] [!] COMMAND1 [ | or |& COMMAND2 ] ...
-
-The output of each command in the pipeline is connected via a pipe to
-the input of the next command. That is, each command reads the previous
-command's output. This connection is performed before any redirections
-specified by COMMAND1.
-
- If ‘|&’ is the pipeline operator, COMMAND1's standard error, in
-addition to its standard output, is connected to COMMAND2's standard
-input through the pipe; it is shorthand for ‘2>&1 |’. This implicit
-redirection of the standard error to the standard output is performed
-after any redirections specified by COMMAND1, consistent with that
-shorthand.
-
- If the reserved word ‘time’ precedes the pipeline, Bash prints timing
-statistics for the pipeline once it finishes. The statistics currently
-consist of elapsed (wall-clock) time and user and system time consumed
-by the command's execution. The ‘-p’ option changes the output format
-to that specified by POSIX. When the shell is in POSIX mode (*note Bash
-POSIX Mode::), it does not recognize ‘time’ as a reserved word if the
-next token begins with a ‘-’. The value of the ‘TIMEFORMAT’ variable is
-a format string that specifies how the timing information should be
-displayed. *Note Bash Variables::, for a description of the available
-formats. Providing ‘time’ as a reserved word permits the timing of
-shell builtins, shell functions, and pipelines. An external ‘time’
-command cannot time these easily.
-
- When the shell is in POSIX mode (*note Bash POSIX Mode::), you can
-use ‘time’ by itself as a simple command. In this case, the shell
-displays the total user and system time consumed by the shell and its
-children. The ‘TIMEFORMAT’ variable specifies the format of the time
-information.
-
- If a pipeline is not executed asynchronously (*note Lists::), the
-shell waits for all commands in the pipeline to complete.
-
- Each command in a multi-command pipeline, where pipes are created, is
-executed in its own “subshell”, which is a separate process (*note
-Command Execution Environment::). If the ‘lastpipe’ option is enabled
-using the ‘shopt’ builtin (*note The Shopt Builtin::), and job control
-is not active, the last element of a pipeline may be run by the shell
-process.
-
- The exit status of a pipeline is the exit status of the last command
-in the pipeline, unless the ‘pipefail’ option is enabled (*note The Set
-Builtin::). If ‘pipefail’ is enabled, the pipeline's return status is
-the value of the last (rightmost) command to exit with a non-zero
-status, or zero if all commands exit successfully. If the reserved word
-‘!’ precedes the pipeline, the exit status is the logical negation of
-the exit status as described above. If a pipeline is not executed
-asynchronously (*note Lists::), the shell waits for all commands in the
-pipeline to terminate before returning a value. The return status of an
-asynchronous pipeline is 0.
-
-\1f
-File: bashref.info, Node: Lists, Next: Compound Commands, Prev: Pipelines, Up: Shell Commands
-
-3.2.4 Lists of Commands
------------------------
-
-A ‘list’ is a sequence of one or more pipelines separated by one of the
-operators ‘;’, ‘&’, ‘&&’, or ‘||’, and optionally terminated by one of
-‘;’, ‘&’, or a ‘newline’.
-
- Of these list operators, ‘&&’ and ‘||’ have equal precedence,
-followed by ‘;’ and ‘&’, which have equal precedence.
-
- A sequence of one or more newlines may appear in a ‘list’ to delimit
-commands, equivalent to a semicolon.
-
- If a command is terminated by the control operator ‘&’, the shell
-executes the command asynchronously in a subshell. This is known as
-executing the command in the “background”, and these are referred to as
-“asynchronous” commands. The shell does not wait for the command to
-finish, and the return status is 0 (true). When job control is not
-active (*note Job Control::), the standard input for asynchronous
-commands, in the absence of any explicit redirections, is redirected
-from ‘/dev/null’.
-
- Commands separated by a ‘;’ are executed sequentially; the shell
-waits for each command to terminate in turn. The return status is the
-exit status of the last command executed.
-
- AND and OR lists are sequences of one or more pipelines separated by
-the control operators ‘&&’ and ‘||’, respectively. AND and OR lists are
-executed with left associativity.
-
- An AND list has the form
- COMMAND1 && COMMAND2
-
-COMMAND2 is executed if, and only if, COMMAND1 returns an exit status of
-zero (success).
-
- An OR list has the form
- COMMAND1 || COMMAND2
-
-COMMAND2 is executed if, and only if, COMMAND1 returns a non-zero exit
-status.
-
- The return status of AND and OR lists is the exit status of the last
-command executed in the list.
-
-\1f
-File: bashref.info, Node: Compound Commands, Next: Coprocesses, Prev: Lists, Up: Shell Commands
-
-3.2.5 Compound Commands
------------------------
-
-* Menu:
-
-* Looping Constructs:: Shell commands for iterative action.
-* Conditional Constructs:: Shell commands for conditional execution.
-* Command Grouping:: Ways to group commands.
-
-Compound commands are the shell programming language constructs. Each
-construct begins with a reserved word or control operator and is
-terminated by a corresponding reserved word or operator. Any
-redirections (*note Redirections::) associated with a compound command
-apply to all commands within that compound command unless explicitly
-overridden.
-
- In most cases a list of commands in a compound command's description
-may be separated from the rest of the command by one or more newlines,
-and may be followed by a newline in place of a semicolon.
-
- Bash provides looping constructs, conditional commands, and
-mechanisms to group commands and execute them as a unit.
-
-\1f
-File: bashref.info, Node: Looping Constructs, Next: Conditional Constructs, Up: Compound Commands
-
-3.2.5.1 Looping Constructs
-..........................
-
-Bash supports the following looping constructs.
-
- Note that wherever a ‘;’ appears in the description of a command's
-syntax, it may be replaced with one or more newlines.
-
-‘until’
- The syntax of the ‘until’ command is:
-
- until TEST-COMMANDS; do CONSEQUENT-COMMANDS; done
-
- Execute CONSEQUENT-COMMANDS as long as TEST-COMMANDS has an exit
- status which is not zero. The return status is the exit status of
- the last command executed in CONSEQUENT-COMMANDS, or zero if none
- was executed.
-
-‘while’
- The syntax of the ‘while’ command is:
-
- while TEST-COMMANDS; do CONSEQUENT-COMMANDS; done
-
- Execute CONSEQUENT-COMMANDS as long as TEST-COMMANDS has an exit
- status of zero. The return status is the exit status of the last
- command executed in CONSEQUENT-COMMANDS, or zero if none was
- executed.
-
-‘for’
- The syntax of the ‘for’ command is:
-
- for NAME [ [in WORDS ...] ; ] do COMMANDS; done
-
- Expand WORDS (*note Shell Expansions::), and then execute COMMANDS
- once for each word in the resultant list, with NAME bound to the
- current word. If ‘in WORDS’ is not present, the ‘for’ command
- executes the COMMANDS once for each positional parameter that is
- set, as if ‘in "$@"’ had been specified (*note Special
- Parameters::).
-
- The return status is the exit status of the last command that
- executes. If there are no items in the expansion of WORDS, no
- commands are executed, and the return status is zero.
-
- There is an alternate form of the ‘for’ command which is similar to
- the C language:
-
- for (( EXPR1 ; EXPR2 ; EXPR3 )) [;] do COMMANDS ; done
-
- First, evaluate the arithmetic expression EXPR1 according to the
- rules described below (*note Shell Arithmetic::). Then, repeatedly
- evaluate the arithmetic expression EXPR2 until it evaluates to
- zero. Each time EXPR2 evaluates to a non-zero value, execute
- COMMANDS and evaluate the arithmetic expression EXPR3. If any
- expression is omitted, it behaves as if it evaluates to 1. The
- return value is the exit status of the last command in COMMANDS
- that is executed, or non-zero if any of the expressions is invalid.
-
- Use the ‘break’ and ‘continue’ builtins (*note Bourne Shell
-Builtins::) to control loop execution.
-
-\1f
-File: bashref.info, Node: Conditional Constructs, Next: Command Grouping, Prev: Looping Constructs, Up: Compound Commands
-
-3.2.5.2 Conditional Constructs
-..............................
-
-‘if’
- The syntax of the ‘if’ command is:
-
- if TEST-COMMANDS; then
- CONSEQUENT-COMMANDS;
- [elif MORE-TEST-COMMANDS; then
- MORE-CONSEQUENTS;]
- [else ALTERNATE-CONSEQUENTS;]
- fi
-
- The TEST-COMMANDS list is executed, and if its return status is
- zero, the CONSEQUENT-COMMANDS list is executed. If TEST-COMMANDS
- returns a non-zero status, each ‘elif’ list is executed in turn,
- and if its exit status is zero, the corresponding MORE-CONSEQUENTS
- is executed and the command completes. If ‘else
- ALTERNATE-CONSEQUENTS’ is present, and the final command in the
- final ‘if’ or ‘elif’ clause has a non-zero exit status, then
- ALTERNATE-CONSEQUENTS is executed. The return status is the exit
- status of the last command executed, or zero if no condition tested
- true.
-
-‘case’
- The syntax of the ‘case’ command is:
-
- case WORD in
- [ [(] PATTERN [| PATTERN]...) COMMAND-LIST ;;]...
- esac
-
- ‘case’ will selectively execute the COMMAND-LIST corresponding to
- the first PATTERN that matches WORD, proceeding from the first
- pattern to the last. The match is performed according to the rules
- described below in *note Pattern Matching::. If the ‘nocasematch’
- shell option (see the description of ‘shopt’ in *note The Shopt
- Builtin::) is enabled, the match is performed without regard to the
- case of alphabetic characters. The ‘|’ is used to separate
- multiple patterns in a pattern list, and the ‘)’ operator
- terminates the pattern list. A pattern list and an associated
- COMMAND-LIST is known as a CLAUSE.
-
- Each clause must be terminated with ‘;;’, ‘;&’, or ‘;;&’. The WORD
- undergoes tilde expansion, parameter expansion, command
- substitution, process substitution, arithmetic expansion, and quote
- removal (*note Shell Parameter Expansion::) before the shell
- attempts to match the pattern. Each PATTERN undergoes tilde
- expansion, parameter expansion, command substitution, arithmetic
- expansion, process substitution, and quote removal.
-
- There may be an arbitrary number of ‘case’ clauses, each terminated
- by a ‘;;’, ‘;&’, or ‘;;&’. The first pattern that matches
- determines the command-list that is executed. It's a common idiom
- to use ‘*’ as the final pattern to define the default case, since
- that pattern will always match.
-
- Here is an example using ‘case’ in a script that could be used to
- describe one interesting feature of an animal:
-
- echo -n "Enter the name of an animal: "
- read ANIMAL
- echo -n "The $ANIMAL has "
- case $ANIMAL in
- horse | dog | cat) echo -n "four";;
- man | kangaroo ) echo -n "two";;
- *) echo -n "an unknown number of";;
- esac
- echo " legs."
-
- If the ‘;;’ operator is used, the ‘case’ command completes after
- the first pattern match. Using ‘;&’ in place of ‘;;’ causes
- execution to continue with the COMMAND-LIST associated with the
- next clause, if any. Using ‘;;&’ in place of ‘;;’ causes the shell
- to test the patterns in the next clause, if any, and execute any
- associated COMMAND-LIST if the match succeeds, continuing the case
- statement execution as if the pattern list had not matched.
-
- The return status is zero if no PATTERN matches. Otherwise, the
- return status is the exit status of the last COMMAND-LIST executed.
-
-‘select’
-
- The ‘select’ construct allows the easy generation of menus. It has
- almost the same syntax as the ‘for’ command:
-
- select NAME [in WORDS ...]; do COMMANDS; done
-
- First, expand the list of words following ‘in’, generating a list
- of items, and print the set of expanded words on the standard error
- stream, each preceded by a number. If the ‘in WORDS’ is omitted,
- print the positional parameters, as if ‘in "$@"’ had been
- specified. ‘select’ then displays the ‘PS3’ prompt and reads a
- line from the standard input. If the line consists of a number
- corresponding to one of the displayed words, then ‘select’ sets the
- value of NAME to that word. If the line is empty, ‘select’
- displays the words and prompt again. If ‘EOF’ is read, ‘select’
- completes and returns 1. Any other value read causes NAME to be
- set to null. The line read is saved in the variable ‘REPLY’.
-
- The COMMANDS are executed after each selection until a ‘break’
- command is executed, at which point the ‘select’ command completes.
-
- Here is an example that allows the user to pick a filename from the
- current directory, and displays the name and index of the file
- selected.
-
- select fname in *;
- do
- echo you picked $fname \($REPLY\)
- break;
- done
-
-‘((...))’
- (( EXPRESSION ))
-
- The arithmetic EXPRESSION is evaluated according to the rules
- described below (*note Shell Arithmetic::). The EXPRESSION
- undergoes the same expansions as if it were within double quotes,
- but unescaped double quote characters in EXPRESSION are not treated
- specially and are removed. Since this can potentially result in
- empty strings, this command treats those as expressions that
- evaluate to 0. If the value of the expression is non-zero, the
- return status is 0; otherwise the return status is 1.
-
-‘[[...]]’
- [[ EXPRESSION ]]
-
- Evaluate the conditional expression EXPRESSION and return a status
- of zero (true) or non-zero (false). Expressions are composed of
- the primaries described below in *note Bash Conditional
- Expressions::. The words between the ‘[[’ and ‘]]’ do not undergo
- word splitting and filename expansion. The shell performs tilde
- expansion, parameter and variable expansion, arithmetic expansion,
- command substitution, process substitution, and quote removal on
- those words. Conditional operators such as ‘-f’ must be unquoted
- to be recognized as primaries.
-
- When used with ‘[[’, the ‘<’ and ‘>’ operators sort
- lexicographically using the current locale.
-
- When the ‘==’ and ‘!=’ operators are used, the string to the right
- of the operator is considered a pattern and matched according to
- the rules described below in *note Pattern Matching::, as if the
- ‘extglob’ shell option were enabled. The ‘=’ operator is identical
- to ‘==’. If the ‘nocasematch’ shell option (see the description of
- ‘shopt’ in *note The Shopt Builtin::) is enabled, the match is
- performed without regard to the case of alphabetic characters. The
- return value is 0 if the string matches (‘==’) or does not match
- (‘!=’) the pattern, and 1 otherwise.
-
- If you quote any part of the pattern, using any of the shell's
- quoting mechanisms, the quoted portion is matched literally. This
- means every character in the quoted portion matches itself, instead
- of having any special pattern matching meaning.
-
- An additional binary operator, ‘=~’, is available, with the same
- precedence as ‘==’ and ‘!=’. When you use ‘=~’, the string to the
- right of the operator is considered a POSIX extended regular
- expression pattern and matched accordingly (using the POSIX
- ‘regcomp’ and ‘regexec’ interfaces usually described in regex(3)).
- The return value is 0 if the string matches the pattern, and 1 if
- it does not. If the regular expression is syntactically incorrect,
- the conditional expression returns 2. If the ‘nocasematch’ shell
- option (see the description of ‘shopt’ in *note The Shopt
- Builtin::) is enabled, the match is performed without regard to the
- case of alphabetic characters.
-
- You can quote any part of the pattern to force the quoted portion
- to be matched literally instead of as a regular expression (see
- above). If the pattern is stored in a shell variable, quoting the
- variable expansion forces the entire pattern to be matched
- literally.
-
- The match succeeds if the pattern matches any part of the string.
- If you want to force the pattern to match the entire string, anchor
- the pattern using the ‘^’ and ‘$’ regular expression operators.
-
- For example, the following will match a line (stored in the shell
- variable ‘line’) if there is a sequence of characters anywhere in
- the value consisting of any number, including zero, of characters
- in the ‘space’ character class, immediately followed by zero or one
- instances of ‘a’, then a ‘b’:
-
- [[ $line =~ [[:space:]]*(a)?b ]]
-
- That means values for ‘line’ like ‘aab’, ‘ aaaaaab’, ‘xaby’, and ‘
- ab’ will all match, as will a line containing a ‘b’ anywhere in its
- value.
-
- If you want to match a character that's special to the regular
- expression grammar (‘^$|[]()\.*+?’), it has to be quoted to remove
- its special meaning. This means that in the pattern ‘xxx.txt’, the
- ‘.’ matches any character in the string (its usual regular
- expression meaning), but in the pattern ‘"xxx.txt"’, it can only
- match a literal ‘.’.
-
- Likewise, if you want to include a character in your pattern that
- has a special meaning to the regular expression grammar, you must
- make sure it's not quoted. If you want to anchor a pattern at the
- beginning or end of the string, for instance, you cannot quote the
- ‘^’ or ‘$’ characters using any form of shell quoting.
-
- If you want to match ‘initial string’ at the start of a line, the
- following will work:
- [[ $line =~ ^"initial string" ]]
- but this will not:
- [[ $line =~ "^initial string" ]]
- because in the second example the ‘^’ is quoted and doesn't have
- its usual special meaning.
-
- It is sometimes difficult to specify a regular expression properly
- without using quotes, or to keep track of the quoting used by
- regular expressions while paying attention to shell quoting and the
- shell's quote removal. Storing the regular expression in a shell
- variable is often a useful way to avoid problems with quoting
- characters that are special to the shell. For example, the
- following is equivalent to the pattern used above:
-
- pattern='[[:space:]]*(a)?b'
- [[ $line =~ $pattern ]]
-
- Shell programmers should take special care with backslashes, since
- backslashes are used by both the shell and regular expressions to
- remove the special meaning from the following character. This
- means that after the shell's word expansions complete (*note Shell
- Expansions::), any backslashes remaining in parts of the pattern
- that were originally not quoted can remove the special meaning of
- pattern characters. If any part of the pattern is quoted, the
- shell does its best to ensure that the regular expression treats
- those remaining backslashes as literal, if they appeared in a
- quoted portion.
-
- The following two sets of commands are _not_ equivalent:
-
- pattern='\.'
-
- [[ . =~ $pattern ]]
- [[ . =~ \. ]]
-
- [[ . =~ "$pattern" ]]
- [[ . =~ '\.' ]]
-
- The first two matches will succeed, but the second two will not,
- because in the second two the backslash will be part of the pattern
- to be matched. In the first two examples, the pattern passed to
- the regular expression parser is ‘\.’. The backslash removes the
- special meaning from ‘.’, so the literal ‘.’ matches. In the
- second two examples, the pattern passed to the regular expression
- parser has the backslash quoted (e.g., ‘\\\.’), which will not
- match the string, since it does not contain a backslash. If the
- string in the first examples were anything other than ‘.’, say ‘a’,
- the pattern would not match, because the quoted ‘.’ in the pattern
- loses its special meaning of matching any single character.
-
- Bracket expressions in regular expressions can be sources of errors
- as well, since characters that are normally special in regular
- expressions lose their special meanings between brackets. However,
- you can use bracket expressions to match special pattern characters
- without quoting them, so they are sometimes useful for this
- purpose.
-
- Though it might seem like a strange way to write it, the following
- pattern will match a ‘.’ in the string:
-
- [[ . =~ [.] ]]
-
- The shell performs any word expansions before passing the pattern
- to the regular expression functions, so you can assume that the
- shell's quoting takes precedence. As noted above, the regular
- expression parser will interpret any unquoted backslashes remaining
- in the pattern after shell expansion according to its own rules.
- The intention is to avoid making shell programmers quote things
- twice as much as possible, so shell quoting should be sufficient to
- quote special pattern characters where that's necessary.
-
- The array variable ‘BASH_REMATCH’ records which parts of the string
- matched the pattern. The element of ‘BASH_REMATCH’ with index 0
- contains the portion of the string matching the entire regular
- expression. Substrings matched by parenthesized subexpressions
- within the regular expression are saved in the remaining
- ‘BASH_REMATCH’ indices. The element of ‘BASH_REMATCH’ with index N
- is the portion of the string matching the Nth parenthesized
- subexpression.
-
- Bash sets ‘BASH_REMATCH’ in the global scope; declaring it as a
- local variable will lead to unexpected results.
-
- Expressions may be combined using the following operators, listed
- in decreasing order of precedence:
-
- ‘( EXPRESSION )’
- Returns the value of EXPRESSION. This may be used to override
- the normal precedence of operators.
-
- ‘! EXPRESSION’
- True if EXPRESSION is false.
-
- ‘EXPRESSION1 && EXPRESSION2’
- True if both EXPRESSION1 and EXPRESSION2 are true.
-
- ‘EXPRESSION1 || EXPRESSION2’
- True if either EXPRESSION1 or EXPRESSION2 is true.
-
- The ‘&&’ and ‘||’ operators do not evaluate EXPRESSION2 if the
- value of EXPRESSION1 is sufficient to determine the return value of
- the entire conditional expression.
-
-\1f
-File: bashref.info, Node: Command Grouping, Prev: Conditional Constructs, Up: Compound Commands
-
-3.2.5.3 Grouping Commands
-.........................
-
-Bash provides two ways to group a list of commands to be executed as a
-unit. When commands are grouped, redirections may be applied to the
-entire command list. For example, the output of all the commands in the
-list may be redirected to a single stream.
-
-‘()’
- ( LIST )
-
- Placing a list of commands between parentheses forces the shell to
- create a subshell (*note Command Execution Environment::), and each
- of the commands in LIST is executed in that subshell environment.
- Since the LIST is executed in a subshell, variable assignments do
- not remain in effect after the subshell completes.
-
-‘{}’
- { LIST; }
-
- Placing a list of commands between curly braces causes the list to
- be executed in the current shell environment. No subshell is
- created. The semicolon (or newline) following LIST is required.
-
- In addition to the creation of a subshell, there is a subtle
-difference between these two constructs due to historical reasons. The
-braces are reserved words, so they must be separated from the LIST by
-‘blank’s or other shell metacharacters. The parentheses are operators,
-and are recognized as separate tokens by the shell even if they are not
-separated from the LIST by whitespace.
-
- The exit status of both of these constructs is the exit status of
-LIST.
-
-\1f
-File: bashref.info, Node: Coprocesses, Next: GNU Parallel, Prev: Compound Commands, Up: Shell Commands
-
-3.2.6 Coprocesses
------------------
-
-A ‘coprocess’ is a shell command preceded by the ‘coproc’ reserved word.
-A coprocess is executed asynchronously in a subshell, as if the command
-had been terminated with the ‘&’ control operator, with a two-way pipe
-established between the executing shell and the coprocess.
-
- The syntax for a coprocess is:
-
- coproc [NAME] COMMAND [REDIRECTIONS]
-
-This creates a coprocess named NAME. COMMAND may be either a simple
-command (*note Simple Commands::) or a compound command (*note Compound
-Commands::). NAME is a shell variable name. If NAME is not supplied,
-the default name is ‘COPROC’.
-
- The recommended form to use for a coprocess is
-
- coproc NAME { COMMAND; }
-
-This form is preferred because simple commands result in the coprocess
-always being named ‘COPROC’, and it is simpler to use and more complete
-than the other compound commands.
-
- There are other forms of coprocesses:
-
- coproc NAME COMPOUND-COMMAND
- coproc COMPOUND-COMMAND
- coproc SIMPLE-COMMAND
-
-If COMMAND is a compound command, NAME is optional. The word following
-‘coproc’ determines whether that word is interpreted as a variable name:
-it is interpreted as NAME if it is not a reserved word that introduces a
-compound command. If COMMAND is a simple command, NAME is not allowed;
-this is to avoid confusion between NAME and the first word of the simple
-command.
-
- When the coprocess is executed, the shell creates an array variable
-(*note Arrays::) named NAME in the context of the executing shell. The
-standard output of COMMAND is connected via a pipe to a file descriptor
-in the executing shell, and that file descriptor is assigned to NAME[0].
-The standard input of COMMAND is connected via a pipe to a file
-descriptor in the executing shell, and that file descriptor is assigned
-to NAME[1]. This pipe is established before any redirections specified
-by the command (*note Redirections::). The file descriptors can be
-utilized as arguments to shell commands and redirections using standard
-word expansions. Other than those created to execute command and
-process substitutions, the file descriptors are not available in
-subshells.
-
- The process ID of the shell spawned to execute the coprocess is
-available as the value of the variable ‘NAME_PID’. The ‘wait’ builtin
-may be used to wait for the coprocess to terminate.
-
- Since the coprocess is created as an asynchronous command, the
-‘coproc’ command always returns success. The return status of a
-coprocess is the exit status of COMMAND.
-
-\1f
-File: bashref.info, Node: GNU Parallel, Prev: Coprocesses, Up: Shell Commands
-
-3.2.7 GNU Parallel
-------------------
-
-There are ways to run commands in parallel that are not built into Bash.
-GNU Parallel is a tool to do just that.
-
- GNU Parallel, as its name suggests, can be used to build and run
-commands in parallel. You may run the same command with different
-arguments, whether they are filenames, usernames, hostnames, or lines
-read from files. GNU Parallel provides shorthand references to many of
-the most common operations (input lines, various portions of the input
-line, different ways to specify the input source, and so on). Parallel
-can replace ‘xargs’ or feed commands from its input sources to several
-different instances of Bash.
-
- For a complete description, refer to the GNU Parallel documentation,
-which is available at
-<https://www.gnu.org/software/parallel/parallel_tutorial.html>.
-
-\1f
-File: bashref.info, Node: Shell Functions, Next: Shell Parameters, Prev: Shell Commands, Up: Basic Shell Features
-
-3.3 Shell Functions
-===================
-
-Shell functions are a way to group commands for later execution using a
-single name for the group. They are executed just like a "regular"
-simple command. When the name of a shell function is used as a simple
-command name, the shell executes the list of commands associated with
-that function name. Shell functions are executed in the current shell
-context; there is no new process created to interpret them.
-
- Functions are declared using this syntax:
- FNAME () COMPOUND-COMMAND [ REDIRECTIONS ]
-
- or
-
- function FNAME [()] COMPOUND-COMMAND [ REDIRECTIONS ]
-
- This defines a shell function named FNAME. The reserved word
-‘function’ is optional. If the ‘function’ reserved word is supplied,
-the parentheses are optional. The “body” of the function is the
-compound command COMPOUND-COMMAND (*note Compound Commands::). That
-command is usually a LIST enclosed between { and }, but may be any
-compound command listed above. If the ‘function’ reserved word is used,
-but the parentheses are not supplied, the braces are recommended. When
-the shell is in POSIX mode (*note Bash POSIX Mode::), FNAME must be a
-valid shell name and may not be the same as one of the special builtins
-(*note Special Builtins::). When not in POSIX mode, a function name can
-be any unquoted shell word that does not contain ‘$’.
-
- Any redirections (*note Redirections::) associated with the shell
-function are performed when the function is executed. Function
-definitions are deleted using the ‘-f’ option to the ‘unset’ builtin
-(*note Bourne Shell Builtins::).
-
- The exit status of a function definition is zero unless a syntax
-error occurs or a readonly function with the same name already exists.
-When executed, the exit status of a function is the exit status of the
-last command executed in the body.
-
- Note that for historical reasons, in the most common usage the curly
-braces that surround the body of the function must be separated from the
-body by ‘blank’s or newlines. This is because the braces are reserved
-words and are only recognized as such when they are separated from the
-command list by whitespace or another shell metacharacter. When using
-the braces, the LIST must be terminated by a semicolon, a ‘&’, or a
-newline.
-
- COMPOUND-COMMAND is executed whenever FNAME is specified as the name
-of a simple command. Functions are executed in the context of the
-calling shell; there is no new process created to interpret them
-(contrast this with the execution of a shell script).
-
- When a function is executed, the arguments to the function become the
-positional parameters during its execution (*note Positional
-Parameters::). The special parameter ‘#’ that expands to the number of
-positional parameters is updated to reflect the new set of positional
-parameters. Special parameter ‘0’ is unchanged. The first element of
-the ‘FUNCNAME’ variable is set to the name of the function while the
-function is executing.
-
- All other aspects of the shell execution environment are identical
-between a function and its caller with these exceptions: the ‘DEBUG’ and
-‘RETURN’ traps are not inherited unless the function has been given the
-‘trace’ attribute using the ‘declare’ builtin or the ‘-o functrace’
-option has been enabled with the ‘set’ builtin, (in which case all
-functions inherit the ‘DEBUG’ and ‘RETURN’ traps), and the ‘ERR’ trap is
-not inherited unless the ‘-o errtrace’ shell option has been enabled.
-*Note Bourne Shell Builtins::, for the description of the ‘trap’
-builtin.
-
- The ‘FUNCNEST’ variable, if set to a numeric value greater than 0,
-defines a maximum function nesting level. Function invocations that
-exceed the limit cause the entire command to abort.
-
- If the builtin command ‘return’ is executed in a function, the
-function completes and execution resumes with the next command after the
-function call. Any command associated with the ‘RETURN’ trap is
-executed before execution resumes. When a function completes, the
-values of the positional parameters and the special parameter ‘#’ are
-restored to the values they had prior to the function's execution. If
-‘return’ is supplied a numeric argument, that is the function's return
-status; otherwise the function's return status is the exit status of the
-last command executed before the ‘return’.
-
- Variables local to the function are declared with the ‘local’ builtin
-(“local variables”). Ordinarily, variables and their values are shared
-between a function and its caller. These variables are visible only to
-the function and the commands it invokes. This is particularly
-important when a shell function calls other functions.
-
- In the following description, the “current scope” is a currently-
-executing function. Previous scopes consist of that function's caller
-and so on, back to the "global" scope, where the shell is not executing
-any shell function. A local variable at the current local scope is a
-variable declared using the ‘local’ or ‘declare’ builtins in the
-function that is currently executing.
-
- Local variables "shadow" variables with the same name declared at
-previous scopes. For instance, a local variable declared in a function
-hides variables with the same name declared at previous scopes,
-including global variables: references and assignments refer to the
-local variable, leaving the variables at previous scopes unmodified.
-When the function returns, the global variable is once again visible.
-
- The shell uses “dynamic scoping” to control a variable's visibility
-within functions. With dynamic scoping, visible variables and their
-values are a result of the sequence of function calls that caused
-execution to reach the current function. The value of a variable that a
-function sees depends on its value within its caller, if any, whether
-that caller is the global scope or another shell function. This is also
-the value that a local variable declaration shadows, and the value that
-is restored when the function returns.
-
- For example, if a variable ‘var’ is declared as local in function
-‘func1’, and ‘func1’ calls another function ‘func2’, references to ‘var’
-made from within ‘func2’ resolve to the local variable ‘var’ from
-‘func1’, shadowing any global variable named ‘var’.
-
- The following script demonstrates this behavior. When executed, the
-script displays
-
- In func2, var = func1 local
-
- func1()
- {
- local var='func1 local'
- func2
- }
-
- func2()
- {
- echo "In func2, var = $var"
- }
-
- var=global
- func1
-
- The ‘unset’ builtin also acts using the same dynamic scope: if a
-variable is local to the current scope, ‘unset’ unsets it; otherwise the
-unset will refer to the variable found in any calling scope as described
-above. If a variable at the current local scope is unset, it remains so
-(appearing as unset) until it is reset in that scope or until the
-function returns. Once the function returns, any instance of the
-variable at a previous scope becomes visible. If the unset acts on a
-variable at a previous scope, any instance of a variable with that name
-that had been shadowed becomes visible (see below how the
-‘localvar_unset’ shell option changes this behavior).
-
- The ‘-f’ option to the ‘declare’ (‘typeset’) builtin command (*note
-Bash Builtins::) lists function names and definitions. The ‘-F’ option
-to ‘declare’ or ‘typeset’ lists the function names only (and optionally
-the source file and line number, if the ‘extdebug’ shell option is
-enabled). Functions may be exported so that child shell processes
-(those created when executing a separate shell invocation) automatically
-have them defined with the ‘-f’ option to the ‘export’ builtin (*note
-Bourne Shell Builtins::). The ‘-f’ option to the ‘unset’ builtin (*note
-Bourne Shell Builtins::) deletes a function definition.
-
- Functions may be recursive. The ‘FUNCNEST’ variable may be used to
-limit the depth of the function call stack and restrict the number of
-function invocations. By default, Bash places no limit on the number of
-recursive calls.
-
-\1f
-File: bashref.info, Node: Shell Parameters, Next: Shell Expansions, Prev: Shell Functions, Up: Basic Shell Features
-
-3.4 Shell Parameters
-====================
-
-* Menu:
-
-* Positional Parameters:: The shell's command-line arguments.
-* Special Parameters:: Parameters denoted by special characters.
-
-A “parameter” is an entity that stores values. It can be a ‘name’, a
-number, or one of the special characters listed below. A “variable” is
-a parameter denoted by a ‘name’. A variable has a ‘value’ and zero or
-more ‘attributes’. Attributes are assigned using the ‘declare’ builtin
-command (see the description of the ‘declare’ builtin in *note Bash
-Builtins::). The ‘export’ and ‘readonly’ builtins assign specific
-attributes.
-
- A parameter is set if it has been assigned a value. The null string
-is a valid value. Once a variable is set, it may be unset only by using
-the ‘unset’ builtin command.
-
- A variable is assigned to using a statement of the form
- NAME=[VALUE]
-If VALUE is not given, the variable is assigned the null string. All
-VALUEs undergo tilde expansion, parameter and variable expansion,
-command substitution, arithmetic expansion, and quote removal (*note
-Shell Parameter Expansion::). If the variable has its ‘integer’
-attribute set, then VALUE is evaluated as an arithmetic expression even
-if the ‘$((...))’ expansion is not used (*note Arithmetic Expansion::).
-Word splitting and filename expansion are not performed. Assignment
-statements may also appear as arguments to the ‘alias’, ‘declare’,
-‘typeset’, ‘export’, ‘readonly’, and ‘local’ builtin commands
-(“declaration commands”). When in POSIX mode (*note Bash POSIX Mode::),
-these builtins may appear in a command after one or more instances of
-the ‘command’ builtin and retain these assignment statement properties.
-For example,
- command export var=value
-
- In the context where an assignment statement is assigning a value to
-a shell variable or array index (*note Arrays::), the ‘+=’ operator
-appends to or adds to the variable's previous value. This includes
-arguments to declaration commands such as ‘declare’ that accept
-assignment statements. When ‘+=’ is applied to a variable for which the
-‘integer’ attribute has been set, the variable's current value and VALUE
-are each evaluated as arithmetic expressions, and the sum of the results
-is assigned as the variable's value. The current value is usually an
-integer constant, but may be an expression. When ‘+=’ is applied to an
-array variable using compound assignment (*note Arrays::), the
-variable's value is not unset (as it is when using ‘=’), and new values
-are appended to the array beginning at one greater than the array's
-maximum index (for indexed arrays), or added as additional key-value
-pairs in an associative array. When applied to a string-valued
-variable, VALUE is expanded and appended to the variable's value.
-
- A variable can be assigned the ‘nameref’ attribute using the ‘-n’
-option to the ‘declare’ or ‘local’ builtin commands (*note Bash
-Builtins::) to create a “nameref”, or a reference to another variable.
-This allows variables to be manipulated indirectly. Whenever the
-nameref variable is referenced, assigned to, unset, or has its
-attributes modified (other than using or changing the nameref attribute
-itself), the operation is actually performed on the variable specified
-by the nameref variable's value. A nameref is commonly used within
-shell functions to refer to a variable whose name is passed as an
-argument to the function. For instance, if a variable name is passed to
-a shell function as its first argument, running
- declare -n ref=$1
-inside the function creates a local nameref variable ‘ref’ whose value
-is the variable name passed as the first argument. References and
-assignments to ‘ref’, and changes to its attributes, are treated as
-references, assignments, and attribute modifications to the variable
-whose name was passed as ‘$1’.
-
- If the control variable in a ‘for’ loop has the nameref attribute,
-the list of words can be a list of shell variables, and a name reference
-is established for each word in the list, in turn, when the loop is
-executed. Array variables cannot be given the nameref attribute.
-However, nameref variables can reference array variables and subscripted
-array variables. Namerefs can be unset using the ‘-n’ option to the
-‘unset’ builtin (*note Bourne Shell Builtins::). Otherwise, if ‘unset’
-is executed with the name of a nameref variable as an argument, the
-variable referenced by the nameref variable is unset.
-
- When the shell starts, it reads its environment and creates a shell
-variable from each environment variable that has a valid name, as
-described below (*note Environment::).
-
-\1f
-File: bashref.info, Node: Positional Parameters, Next: Special Parameters, Up: Shell Parameters
-
-3.4.1 Positional Parameters
----------------------------
-
-A “positional parameter” is a parameter denoted by one or more digits,
-other than the single digit ‘0’. Positional parameters are assigned
-from the shell's arguments when it is invoked, and may be reassigned
-using the ‘set’ builtin command. Positional parameter ‘N’ may be
-referenced as ‘${N}’, or as ‘$N’ when ‘N’ consists of a single digit.
-Positional parameters may not be assigned to with assignment statements.
-The ‘set’ and ‘shift’ builtins are used to set and unset them (*note
-Shell Builtin Commands::). The positional parameters are temporarily
-replaced when a shell function is executed (*note Shell Functions::).
-
- When a positional parameter consisting of more than a single digit is
-expanded, it must be enclosed in braces. Without braces, a digit
-following ‘$’ can only refer to one of the first nine positional
-parameters ($1\-$9) or the special parameter $0 (see below).
-
-\1f
-File: bashref.info, Node: Special Parameters, Prev: Positional Parameters, Up: Shell Parameters
-
-3.4.2 Special Parameters
-------------------------
-
-The shell treats several parameters specially. These parameters may
-only be referenced; assignment to them is not allowed. Special
-parameters are denoted by one of the following characters.
-
-‘*’
- ($*) Expands to the positional parameters, starting from one. When
- the expansion is not within double quotes, each positional
- parameter expands to a separate word. In contexts where word
- expansions are performed, those words are subject to further word
- splitting and filename expansion. When the expansion occurs within
- double quotes, it expands to a single word with the value of each
- parameter separated by the first character of the ‘IFS’ variable.
- That is, ‘"$*"’ is equivalent to ‘"$1C$2C..."’, where C is the
- first character of the value of the ‘IFS’ variable. If ‘IFS’ is
- unset, the parameters are separated by spaces. If ‘IFS’ is null,
- the parameters are joined without intervening separators.
-
-‘@’
- ($@) Expands to the positional parameters, starting from one. In
- contexts where word splitting is performed, this expands each
- positional parameter to a separate word; if not within double
- quotes, these words are subject to word splitting. In contexts
- where word splitting is not performed, such as the value portion of
- an assignment statement, this expands to a single word with each
- positional parameter separated by a space. When the expansion
- occurs within double quotes, and word splitting is performed, each
- parameter expands to a separate word. That is, ‘"$@"’ is
- equivalent to ‘"$1" "$2" ...’. If the double-quoted expansion
- occurs within a word, the expansion of the first parameter is
- joined with the expansion of the beginning part of the original
- word, and the expansion of the last parameter is joined with the
- expansion of the last part of the original word. When there are no
- positional parameters, ‘"$@"’ and ‘$@’ expand to nothing (i.e.,
- they are removed).
-
-‘#’
- ($#) Expands to the number of positional parameters in decimal.
-
-‘?’
- ($?) Expands to the exit status of the most recently executed
- command.
-
-‘-’
- ($-, a hyphen.) Expands to the current option flags as specified
- upon invocation, by the ‘set’ builtin command, or those set by the
- shell itself (such as the ‘-i’ option).
-
-‘$’
- ($$) Expands to the process ID of the shell. In a subshell, it
- expands to the process ID of the invoking shell, not the subshell.
-
-‘!’
- ($!) Expands to the process ID of the job most recently placed
- into the background, whether executed as an asynchronous command or
- using the ‘bg’ builtin (*note Job Control Builtins::).
-
-‘0’
- ($0) Expands to the name of the shell or shell script. This is set
- at shell initialization. If Bash is invoked with a file of
- commands (*note Shell Scripts::), ‘$0’ is set to the name of that
- file. If Bash is started with the ‘-c’ option (*note Invoking
- Bash::), then ‘$0’ is set to the first argument after the string to
- be executed, if one is present. Otherwise, it is set to the
- filename used to invoke Bash, as given by argument zero.
-
-\1f
-File: bashref.info, Node: Shell Expansions, Next: Redirections, Prev: Shell Parameters, Up: Basic Shell Features
-
-3.5 Shell Expansions
-====================
-
-Expansion is performed on the command line after it has been split into
-‘token’s. Bash performs these expansions:
-
- • brace expansion
- • tilde expansion
- • parameter and variable expansion
- • command substitution
- • arithmetic expansion
- • word splitting
- • filename expansion
- • quote removal
-
-* Menu:
-
-* Brace Expansion:: Expansion of expressions within braces.
-* Tilde Expansion:: Expansion of the ~ character.
-* Shell Parameter Expansion:: How Bash expands variables to their values.
-* Command Substitution:: Using the output of a command as an argument.
-* Arithmetic Expansion:: How to use arithmetic in shell expansions.
-* Process Substitution:: A way to write and read to and from a
- command.
-* Word Splitting:: How the results of expansion are split into separate
- arguments.
-* Filename Expansion:: A shorthand for specifying filenames matching patterns.
-* Quote Removal:: How and when quote characters are removed from
- words.
-
- 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; filename
-expansion; and quote removal.
-
- On systems that can support it, there is an additional expansion
-available: “process substitution”. This is performed at the same time
-as tilde, parameter, variable, and arithmetic expansion and command
-substitution.
-
- “Quote removal” 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. *Note
-Quote Removal:: for more details.
-
- Only brace expansion, word splitting, and filename expansion can
-increase the number of words of the expansion; other expansions expand a
-single word to a single word. The only exceptions to this are the
-expansions of ‘"$@"’ and ‘$*’ (*note Special Parameters::), and
-‘"${NAME[@]}"’ and ‘${NAME[*]}’ (*note Arrays::).
-
-\1f
-File: bashref.info, Node: Brace Expansion, Next: Tilde Expansion, Up: Shell Expansions
-
-3.5.1 Brace Expansion
----------------------
-
-Brace expansion is a mechanism to generate arbitrary strings sharing a
-common prefix and suffix, either of which can be empty. This mechanism
-is similar to “filename expansion” (*note Filename Expansion::), but the
-filenames generated need not exist. Patterns to be brace expanded are
-formed from an optional PREAMBLE, followed by either a series of
-comma-separated strings or a sequence expression between a pair of
-braces, followed by an optional POSTSCRIPT. 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
-are not sorted; brace expansion preserves left to right order. For
-example,
- bash$ echo a{d,c,b}e
- ade ace abe
-
- A sequence expression takes the form ‘X..Y[..INCR]’, where X and Y
-are either integers or letters, and INCR, an optional increment, is an
-integer. When integers are supplied, the expression expands to each
-number between X and Y, inclusive. If either X or Y begins with a zero,
-each generated term will contain the same number of digits, zero-padding
-where necessary. When letters are supplied, the expression expands to
-each character lexicographically between X and Y, inclusive, using the C
-locale. Note that both X and Y 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 as appropriate.
-
- Brace expansion is performed before any other expansions, and any
-characters special to other expansions are preserved in the result. It
-is strictly textual. Bash 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
-closing braces, and at least one unquoted comma or a valid sequence
-expression. Any incorrectly formed brace expansion is left unchanged.
-
- A ‘{’ or ‘,’ may be quoted with a backslash to prevent its being
-considered part of a brace expression. To avoid conflicts with
-parameter expansion, the string ‘${’ is not considered eligible for
-brace expansion, and inhibits brace expansion until the closing ‘}’.
-
- This construct is typically used as shorthand when the common prefix
-of the strings to be generated is longer than in the above example:
- mkdir /usr/local/src/bash/{old,new,dist,bugs}
- or
- chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}
-
- Brace expansion introduces a slight incompatibility with historical
-versions of ‘sh’. ‘sh’ does not treat opening or closing braces
-specially when they appear as part of a word, and preserves them in the
-output. Bash removes braces from words as a consequence of brace
-expansion. For example, a word entered to ‘sh’ as ‘file{1,2}’ appears
-identically in the output. Bash outputs that word as ‘file1 file2’
-after brace expansion. Start Bash with the ‘+B’ option or disable brace
-expansion with the ‘+B’ option to the ‘set’ command (*note Shell Builtin
-Commands::) for strict ‘sh’ compatibility.
-
-\1f
-File: bashref.info, Node: Tilde Expansion, Next: Shell Parameter Expansion, Prev: Brace Expansion, Up: Shell Expansions
-
-3.5.2 Tilde Expansion
----------------------
-
-If a word begins with an unquoted tilde character (‘~’), all of the
-characters up to the first unquoted slash (or all characters, if there
-is no unquoted slash) are considered a “tilde-prefix”. 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 “login name”.
-If this login name is the null string, the tilde is replaced with the
-value of the ‘HOME’ shell variable. If ‘HOME’ is unset, the tilde
-expands to the home directory of the user executing the shell instead.
-Otherwise, the tilde-prefix is replaced with the home directory
-associated with the specified login name.
-
- If the tilde-prefix is ‘~+’, the value of the shell variable ‘PWD’
-replaces the tilde-prefix. If the tilde-prefix is ‘~-’, the shell
-substitutes the value of the shell variable ‘OLDPWD’, if it is set.
-
- If the characters following the tilde in the tilde-prefix consist of
-a number N, 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 ‘dirs’ builtin invoked with the characters
-following tilde in the tilde-prefix as an argument (*note The Directory
-Stack::). If the tilde-prefix, sans the tilde, consists 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 filename expansion.
-
- If the login name is invalid, or the tilde expansion fails, the
-tilde-prefix is left unchanged.
-
- Bash checks each variable assignment for unquoted tilde-prefixes
-immediately following a ‘:’ or the first ‘=’, and performs tilde
-expansion in these cases. Consequently, one may use filenames with
-tildes in assignments to ‘PATH’, ‘MAILPATH’, and ‘CDPATH’, and the shell
-assigns the expanded value.
-
- The following table shows how Bash treats unquoted tilde-prefixes:
-
-‘~’
- The value of ‘$HOME’.
-‘~/foo’
- ‘$HOME/foo’
-
-‘~fred/foo’
- The directory or file ‘foo’ in the home directory of the user
- ‘fred’.
-
-‘~+/foo’
- ‘$PWD/foo’
-
-‘~-/foo’
- ‘${OLDPWD-'~-'}/foo’
-
-‘~N’
- The string that would be displayed by ‘dirs +N’.
-
-‘~+N’
- The string that would be displayed by ‘dirs +N’.
-
-‘~-N’
- The string that would be displayed by ‘dirs -N’.
-
- Bash also performs tilde expansion on words satisfying the conditions
-of variable assignments (*note Shell Parameters::) when they appear as
-arguments to simple commands. Bash does not do this, except for the
-declaration commands listed above, when in POSIX mode.
-
-\1f
-File: bashref.info, Node: Shell Parameter Expansion, Next: Command Substitution, Prev: Tilde Expansion, Up: Shell Expansions
-
-3.5.3 Shell Parameter Expansion
--------------------------------
-
-The ‘$’ 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
-could be interpreted as part of the name. For example, if the first
-positional parameter has the value ‘a’, then ‘${11}’ expands to the
-value of the eleventh positional parameter, while ‘$11’ expands to ‘a1’.
-
- When braces are used, the matching ending brace is the first ‘}’ not
-escaped by a backslash or within a quoted string, and not within an
-embedded arithmetic expansion, command substitution, or parameter
-expansion.
-
- The basic form of parameter expansion is ${PARAMETER}, which
-substitutes the value of PARAMETER. The PARAMETER is a shell parameter
-as described above (*note Shell Parameters::) or an array reference
-(*note Arrays::). The braces are required when PARAMETER is a
-positional parameter with more than one digit, or when PARAMETER is
-followed by a character that is not to be interpreted as part of its
-name.
-
- If the first character of PARAMETER is an exclamation point (!), and
-PARAMETER is not a nameref, it introduces a level of indirection. Bash
-uses the value formed by expanding the rest of PARAMETER as the new
-PARAMETER; this new parameter is then expanded and that value is used in
-the rest of the expansion, rather than the expansion of the original
-PARAMETER. This is known as ‘indirect expansion’. The value is subject
-to tilde expansion, parameter expansion, command substitution, and
-arithmetic expansion. If PARAMETER is a nameref, this expands to the
-name of the variable referenced by PARAMETER instead of performing the
-complete indirect expansion, for compatibility. The exceptions to this
-are the expansions of ${!PREFIX*} and ${!NAME[@]} described below. The
-exclamation point must immediately follow the left brace in order to
-introduce indirection.
-
- In each of the cases below, WORD is subject to tilde expansion,
-parameter expansion, command substitution, and arithmetic expansion.
-
- When not performing substring expansion, using the forms described
-below (e.g., ‘:-’), Bash tests for a parameter that is unset or null.
-Omitting the colon results in a test only for a parameter that is unset.
-Put another way, if the colon is included, the operator tests for both
-PARAMETER's existence and that its value is not null; if the colon is
-omitted, the operator tests only for existence.
-
-‘${PARAMETER:−WORD}’
- If PARAMETER is unset or null, the expansion of WORD is
- substituted. Otherwise, the value of PARAMETER is substituted.
-
- $ v=123
- $ echo ${v-unset}
- 123
- $ echo ${v:-unset-or-null}
- 123
- $ unset v
- $ echo ${v-unset}
- unset
- $ v=
- $ echo ${v-unset}
-
- $ echo ${v:-unset-or-null}
- unset-or-null
-
-‘${PARAMETER:=WORD}’
- If PARAMETER is unset or null, the expansion of WORD is assigned to
- PARAMETER, and the result of the expansion is the final value of
- PARAMETER. Positional parameters and special parameters may not be
- assigned in this way.
-
- $ unset var
- $ : ${var=DEFAULT}
- $ echo $var
- DEFAULT
- $ var=
- $ : ${var=DEFAULT}
- $ echo $var
-
- $ var=
- $ : ${var:=DEFAULT}
- $ echo $var
- DEFAULT
- $ unset var
- $ : ${var:=DEFAULT}
- $ echo $var
- DEFAULT
-
-‘${PARAMETER:?WORD}’
- If PARAMETER is null or unset, the shell writes the expansion of
- WORD (or a message to that effect if WORD is not present) to the
- standard error and, if it is 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
- PARAMETER is substituted.
-
- $ var=
- $ : ${var:?var is unset or null}
- bash: var: var is unset or null
- $ echo ${var?var is unset}
-
- $ unset var
- $ : ${var?var is unset}
- bash: var: var is unset
- $ : ${var:?var is unset or null}
- bash: var: var is unset or null
- $ var=123
- $ echo ${var:?var is unset or null}
- 123
-
-‘${PARAMETER:+WORD}’
- If PARAMETER is null or unset, nothing is substituted, otherwise
- the expansion of WORD is substituted. The value of PARAMETER is
- not used.
-
- $ var=123
- $ echo ${var:+var is set and not null}
- var is set and not null
- $ echo ${var+var is set}
- var is set
- $ var=
- $ echo ${var:+var is set and not null}
-
- $ echo ${var+var is set}
- var is set
- $ unset var
- $ echo ${var+var is set}
-
- $ echo ${var:+var is set and not null}
-
- $
-
-‘${PARAMETER:OFFSET}’
-‘${PARAMETER:OFFSET:LENGTH}’
- This is referred to as Substring Expansion. It expands to up to
- LENGTH characters of the value of PARAMETER starting at the
- character specified by OFFSET. If PARAMETER is ‘@’ or ‘*’, an
- indexed array subscripted by ‘@’ or ‘*’, or an associative array
- name, the results differ as described below. If :LENGTH is omitted
- (the first form above), this expands to the substring of the value
- of PARAMETER starting at the character specified by OFFSET and
- extending to the end of the value. If OFFSET is omitted, it is
- treated as 0. If LENGTH is omitted, but the colon after OFFSET is
- present, it is treated as 0. LENGTH and OFFSET are arithmetic
- expressions (*note Shell Arithmetic::).
-
- If OFFSET evaluates to a number less than zero, the value is used
- as an offset in characters from the end of the value of PARAMETER.
- If LENGTH evaluates to a number less than zero, it is interpreted
- as an offset in characters from the end of the value of PARAMETER
- rather than a number of characters, and the expansion is the
- characters between OFFSET 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 ‘:-’ expansion.
-
- Here are some examples illustrating substring expansion on
- parameters and subscripted arrays:
-
- $ string=01234567890abcdefgh
- $ echo ${string:7}
- 7890abcdefgh
- $ echo ${string:7:0}
-
- $ echo ${string:7:2}
- 78
- $ echo ${string:7:-2}
- 7890abcdef
- $ echo ${string: -7}
- bcdefgh
- $ echo ${string: -7:0}
-
- $ echo ${string: -7:2}
- bc
- $ echo ${string: -7:-2}
- bcdef
- $ set -- 01234567890abcdefgh
- $ echo ${1:7}
- 7890abcdefgh
- $ echo ${1:7:0}
-
- $ echo ${1:7:2}
- 78
- $ echo ${1:7:-2}
- 7890abcdef
- $ echo ${1: -7}
- bcdefgh
- $ echo ${1: -7:0}
-
- $ echo ${1: -7:2}
- bc
- $ echo ${1: -7:-2}
- bcdef
- $ array[0]=01234567890abcdefgh
- $ echo ${array[0]:7}
- 7890abcdefgh
- $ echo ${array[0]:7:0}
-
- $ echo ${array[0]:7:2}
- 78
- $ echo ${array[0]:7:-2}
- 7890abcdef
- $ echo ${array[0]: -7}
- bcdefgh
- $ echo ${array[0]: -7:0}
-
- $ echo ${array[0]: -7:2}
- bc
- $ echo ${array[0]: -7:-2}
- bcdef
-
- If PARAMETER is ‘@’ or ‘*’, the result is LENGTH positional
- parameters beginning at OFFSET. A negative OFFSET 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 if
- LENGTH evaluates to a number less than zero.
-
- The following examples illustrate substring expansion using
- positional parameters:
-
- $ set -- 1 2 3 4 5 6 7 8 9 0 a b c d e f g h
- $ echo ${@:7}
- 7 8 9 0 a b c d e f g h
- $ echo ${@:7:0}
-
- $ echo ${@:7:2}
- 7 8
- $ echo ${@:7:-2}
- bash: -2: substring expression < 0
- $ echo ${@: -7:2}
- b c
- $ echo ${@:0}
- ./bash 1 2 3 4 5 6 7 8 9 0 a b c d e f g h
- $ echo ${@:0:2}
- ./bash 1
- $ echo ${@: -7:0}
-
-
- If PARAMETER is an indexed array name subscripted by ‘@’ or ‘*’,
- the result is the LENGTH members of the array beginning with
- ‘${PARAMETER[OFFSET]}’. A negative OFFSET is taken relative to one
- greater than the maximum index of the specified array. It is an
- expansion error if LENGTH evaluates to a number less than zero.
-
- These examples show how you can use substring expansion with
- indexed arrays:
-
- $ array=(0 1 2 3 4 5 6 7 8 9 0 a b c d e f g h)
- $ echo ${array[@]:7}
- 7 8 9 0 a b c d e f g h
- $ echo ${array[@]:7:2}
- 7 8
- $ echo ${array[@]: -7:2}
- b c
- $ echo ${array[@]: -7:-2}
- bash: -2: substring expression < 0
- $ echo ${array[@]:0}
- 0 1 2 3 4 5 6 7 8 9 0 a b c d e f g h
- $ echo ${array[@]:0:2}
- 0 1
- $ echo ${array[@]: -7:0}
-
-
- Substring expansion applied to an associative array produces
- undefined results.
-
- Substring indexing is zero-based unless the positional parameters
- are used, in which case the indexing starts at 1 by default. If
- OFFSET is 0, and the positional parameters are used, ‘$0’ is
- prefixed to the list.
-
-‘${!PREFIX*}’
-‘${!PREFIX@}’
- Expands to the names of variables whose names begin with PREFIX,
- separated by the first character of the ‘IFS’ special variable.
- When ‘@’ is used and the expansion appears within double quotes,
- each variable name expands to a separate word.
-
-‘${!NAME[@]}’
-‘${!NAME[*]}’
- If NAME is an array variable, expands to the list of array indices
- (keys) assigned in NAME. If NAME is not an array, expands to 0 if
- NAME is set and null otherwise. When ‘@’ is used and the expansion
- appears within double quotes, each key expands to a separate word.
-
-‘${#PARAMETER}’
- Substitutes the length in characters of the value of PARAMETER. If
- PARAMETER is ‘*’ or ‘@’, the value substituted is the number of
- positional parameters. If PARAMETER is an array name subscripted
- by ‘*’ or ‘@’, the value substituted is the number of elements in
- the array. If PARAMETER is an indexed array name subscripted by a
- negative number, that number is interpreted as relative to one
- greater than the maximum index of PARAMETER, so negative indices
- count back from the end of the array, and an index of -1 references
- the last element.
-
-‘${PARAMETER#WORD}’
-‘${PARAMETER##WORD}’
- The WORD is expanded to produce a pattern and matched against the
- expanded value of PARAMETER according to the rules described below
- (*note Pattern Matching::). If the pattern matches the beginning
- of the expanded value of PARAMETER, then the result of the
- expansion is the expanded value of PARAMETER with the shortest
- matching pattern (the ‘#’ case) or the longest matching pattern
- (the ‘##’ case) deleted. If PARAMETER is ‘@’ or ‘*’, the pattern
- removal operation is applied to each positional parameter in turn,
- and the expansion is the resultant list. If PARAMETER is an array
- variable subscripted with ‘@’ or ‘*’, the pattern removal operation
- is applied to each member of the array in turn, and the expansion
- is the resultant list.
-
-‘${PARAMETER%WORD}’
-‘${PARAMETER%%WORD}’
- The WORD is expanded to produce a pattern and matched against the
- expanded value of PARAMETER according to the rules described below
- (*note Pattern Matching::). If the pattern matches a trailing
- portion of the expanded value of PARAMETER, then the result of the
- expansion is the value of PARAMETER with the shortest matching
- pattern (the ‘%’ case) or the longest matching pattern (the ‘%%’
- case) deleted. If PARAMETER is ‘@’ or ‘*’, the pattern removal
- operation is applied to each positional parameter in turn, and the
- expansion is the resultant list. If PARAMETER is an array variable
- subscripted with ‘@’ or ‘*’, the pattern removal operation is
- applied to each member of the array in turn, and the expansion is
- the resultant list.
-
-‘${PARAMETER/PATTERN/STRING}’
-‘${PARAMETER//PATTERN/STRING}’
-‘${PARAMETER/#PATTERN/STRING}’
-‘${PARAMETER/%PATTERN/STRING}’
- 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
- form above), all matches of PATTERN are replaced with STRING. If
- PATTERN is preceded by ‘#’ (the third form above), it must match at
- the beginning of the expanded value of PARAMETER. If PATTERN is
- preceded by ‘%’ (the fourth form above), it must match at the end
- of the expanded value of PARAMETER.
-
- If the expansion of STRING is null, matches of PATTERN are deleted
- and the ‘/’ following PATTERN may be omitted.
-
- If the ‘patsub_replacement’ shell option is enabled using ‘shopt’
- (*note The Shopt Builtin::), any unquoted instances of ‘&’ in
- STRING are replaced with the matching portion of PATTERN. This is
- intended to duplicate a common ‘sed’ idiom.
-
- Quoting any part of STRING inhibits replacement in the expansion of
- the quoted portion, including replacement strings stored in shell
- variables. Backslash escapes ‘&’ in STRING; the backslash is
- removed in order to permit a literal ‘&’ in the replacement string.
- Users should take care if STRING is double-quoted to avoid unwanted
- interactions between the backslash and double-quoting, since
- backslash has special meaning within double quotes. Pattern
- substitution performs the check for unquoted ‘&’ after expanding
- STRING, so users should ensure to properly quote any occurrences of
- ‘&’ they want to be taken literally in the replacement and ensure
- any instances of ‘&’ they want to be replaced are unquoted.
-
- For instance,
-
- var=abcdef
- rep='& '
- echo ${var/abc/& }
- echo "${var/abc/& }"
- echo ${var/abc/$rep}
- echo "${var/abc/$rep}"
-
- will display four lines of "abc def", while
-
- var=abcdef
- rep='& '
- echo ${var/abc/\& }
- echo "${var/abc/\& }"
- echo ${var/abc/"& "}
- echo ${var/abc/"$rep"}
-
- will display four lines of "& def". Like the pattern removal
- operators, double quotes surrounding the replacement string quote
- the expanded characters, while double quotes enclosing the entire
- parameter substitution do not, since the expansion is performed in
- a context that doesn't take any enclosing double quotes into
- account.
-
- Since backslash can escape ‘&’, it can also escape a backslash in
- the replacement string. This means that ‘\\’ will insert a literal
- backslash into the replacement, so these two ‘echo’ commands
-
- var=abcdef
- rep='\\&xyz'
- echo ${var/abc/\\&xyz}
- echo ${var/abc/$rep}
-
- will both output ‘\abcxyzdef’.
-
- It should rarely be necessary to enclose only STRING in double
- quotes.
-
- If the ‘nocasematch’ shell option (see the description of ‘shopt’
- in *note The Shopt Builtin::) is enabled, the match is performed
- without regard to the case of alphabetic characters.
-
- If PARAMETER is ‘@’ or ‘*’, the substitution operation is applied
- to each positional parameter in turn, and the expansion is the
- resultant list. If PARAMETER is an array variable subscripted with
- ‘@’ or ‘*’, the substitution operation is applied to each member of
- the array in turn, and the expansion is the resultant list.
-
-‘${PARAMETER^PATTERN}’
-‘${PARAMETER^^PATTERN}’
-‘${PARAMETER,PATTERN}’
-‘${PARAMETER,,PATTERN}’
- This expansion modifies the case of alphabetic characters in
- 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.
-
- 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
- the resultant list. If PARAMETER is an array variable subscripted
- with ‘@’ or ‘*’, the case modification operation is applied to each
- member of the array in turn, and the expansion is the resultant
- list.
-
-‘${PARAMETER@OPERATOR}’
- The expansion is either a transformation of the value of PARAMETER
- or information about PARAMETER itself, depending on the value of
- OPERATOR. Each OPERATOR is a single letter:
-
- ‘U’
- The expansion is a string that is the value of PARAMETER with
- lowercase alphabetic characters converted to uppercase.
- ‘u’
- The expansion is a string that is the value of PARAMETER with
- the first character converted to uppercase, if it is
- alphabetic.
- ‘L’
- The expansion is a string that is the value of PARAMETER with
- uppercase alphabetic characters converted to lowercase.
- ‘Q’
- The expansion is a string that is the value of PARAMETER
- quoted in a format that can be reused as input.
- ‘E’
- The expansion is a string that is the value of PARAMETER with
- backslash escape sequences expanded as with the ‘$'...'’
- quoting mechanism.
- ‘P’
- The expansion is a string that is the result of expanding the
- value of PARAMETER as if it were a prompt string (*note
- Controlling the Prompt::).
- ‘A’
- The expansion is a string in the form of an assignment
- statement or ‘declare’ command that, if evaluated, recreates
- PARAMETER with its attributes and value.
- ‘K’
- Produces a possibly-quoted version of the value of PARAMETER,
- except that it prints the values of indexed and associative
- arrays as a sequence of quoted key-value pairs (*note
- Arrays::). The keys and values are quoted in a format that
- can be reused as input.
- ‘a’
- The expansion is a string consisting of flag values
- representing PARAMETER's attributes.
- ‘k’
- Like the ‘K’ transformation, but expands the keys and values
- of indexed and associative arrays to separate words after word
- splitting.
-
- If PARAMETER is ‘@’ or ‘*’, the operation is applied to each
- positional parameter in turn, and the expansion is the resultant
- list. If PARAMETER is an array variable subscripted with ‘@’ or
- ‘*’, the operation is applied to each member of the array in turn,
- and the expansion is the resultant list.
-
- The result of the expansion is subject to word splitting and
- filename expansion as described below.
-
-\1f
-File: bashref.info, Node: Command Substitution, Next: Arithmetic Expansion, Prev: Shell Parameter Expansion, Up: Shell Expansions
-
-3.5.4 Command Substitution
---------------------------
-
-Command substitution allows the output of a command to replace the
-command itself. The standard form of command substitution occurs when a
-command is enclosed as follows:
- $(COMMAND)
-or (deprecated)
- `COMMAND`.
-
-Bash performs command substitution by executing COMMAND in a subshell
-environment and replacing the command substitution with the standard
-output of the command, with any trailing newlines deleted. Embedded
-newlines are not deleted, but they may be removed during word splitting.
-The command substitution ‘$(cat FILE)’ can be replaced by the equivalent
-but faster ‘$(< FILE)’.
-
- With the old-style backquote form of substitution, backslash retains
-its literal meaning except when followed by ‘$’, ‘`’, or ‘\’. The first
-backquote not preceded by a backslash terminates the command
-substitution. When using the ‘$(COMMAND)’ form, all characters between
-the parentheses make up the command; none are treated specially.
-
- There is an alternate form of command substitution:
-
- ${C COMMAND; }
-
-which executes COMMAND in the current execution environment and captures
-its output, again with trailing newlines removed.
-
- The character C following the open brace must be a space, tab,
-newline, or ‘|’, and the close brace must be in a position where a
-reserved word may appear (i.e., preceded by a command terminator such as
-semicolon). Bash allows the close brace to be joined to the remaining
-characters in the word without being followed by a shell metacharacter
-as a reserved word would usually require.
-
- Any side effects of COMMAND take effect immediately in the current
-execution environment and persist in the current environment after the
-command completes (e.g., the ‘exit’ builtin exits the shell).
-
- This type of command substitution superficially resembles executing
-an unnamed shell function: local variables are created as when a shell
-function is executing, and the ‘return’ builtin forces COMMAND to
-complete; however, the rest of the execution environment, including the
-positional parameters, is shared with the caller.
-
- If the first character following the open brace is a ‘|’, the
-construct expands to the value of the ‘REPLY’ shell variable after
-COMMAND executes, without removing any trailing newlines, and the
-standard output of COMMAND remains the same as in the calling shell.
-Bash creates ‘REPLY’ as an initially-unset local variable when COMMAND
-executes, and restores ‘REPLY’ to the value it had before the command
-substitution after COMMAND completes, as with any local variable.
-
- For example, this construct expands to ‘12345’, and leaves the shell
-variable ‘X’ unchanged in the current execution environment:
-
-
- ${ local X=12345 ; echo $X; }
-
-(not declaring ‘X’ as local would modify its value in the current
-environment, as with normal shell function execution), while this
-construct does not require any output to expand to ‘12345’:
-
- ${| REPLY=12345; }
-
-and restores ‘REPLY’ to the value it had before the command
-substitution.
-
- Command substitutions may be nested. To nest when using the
-backquoted form, escape the inner backquotes with backslashes.
-
- If the substitution appears within double quotes, Bash does not
-perform word splitting and filename expansion on the results.
-
-\1f
-File: bashref.info, Node: Arithmetic Expansion, Next: Process Substitution, Prev: Command Substitution, Up: Shell Expansions
-
-3.5.5 Arithmetic Expansion
---------------------------
-
-Arithmetic expansion evaluates an arithmetic expression and substitutes
-the result. The format for arithmetic expansion is:
-
- $(( EXPRESSION ))
-
- The EXPRESSION undergoes the same expansions as if it were within
-double quotes, but unescaped double quote characters in EXPRESSION are
-not treated specially and are removed. All tokens in the expression
-undergo parameter and variable expansion, command substitution, and
-quote removal. The result is treated as the arithmetic expression to be
-evaluated. Since the way Bash handles double quotes can potentially
-result in empty strings, arithmetic expansion treats those as
-expressions that evaluate to 0. Arithmetic expansions may be nested.
-
- The evaluation is performed according to the rules listed below
-(*note Shell Arithmetic::). If the expression is invalid, Bash prints a
-message indicating failure to the standard error, does not perform the
-substitution, and does not execute the command associated with the
-expansion.
-
-\1f
-File: bashref.info, Node: Process Substitution, Next: Word Splitting, Prev: Arithmetic Expansion, Up: Shell Expansions
-
-3.5.6 Process Substitution
---------------------------
-
-Process substitution allows a process's input or output to be referred
-to using a filename. It takes the form of
- <(LIST)
-or
- >(LIST)
-The process LIST is run asynchronously, and its input or output appears
-as a filename. This filename is passed as an argument to the current
-command as the result of the expansion.
-
- If the ‘>(LIST)’ form is used, writing to the file provides input for
-LIST. If the ‘<(LIST)’ form is used, reading the file obtains the
-output of LIST. Note that no space may appear between the ‘<’ or ‘>’
-and the left parenthesis, otherwise the construct would be interpreted
-as a redirection.
-
- Process substitution is supported on systems that support named pipes
-(FIFOs) or the ‘/dev/fd’ method of naming open files.
-
- When available, process substitution is performed simultaneously with
-parameter and variable expansion, command substitution, and arithmetic
-expansion.
-
-\1f
-File: bashref.info, Node: Word Splitting, Next: Filename Expansion, Prev: Process Substitution, Up: Shell Expansions
-
-3.5.7 Word Splitting
---------------------
-
-The shell scans the results of parameter expansion, command
-substitution, and arithmetic expansion that did not occur within double
-quotes for word splitting. Words that were not expanded are not split.
-
- The shell treats each character of ‘$IFS’ as a delimiter, and splits
-the results of the other expansions into fields using these characters
-as field terminators.
-
- An “IFS whitespace” character is whitespace as defined above (*note
-Definitions::) that appears in the value of ‘IFS’. Space, tab, and
-newline are always considered IFS whitespace, even if they don't appear
-in the locale's ‘space’ category.
-
- If ‘IFS’ is unset, word splitting behaves as if its value were
-‘<space><tab><newline>’, and treats these characters as IFS whitespace.
-If the value of ‘IFS’ is null, no word splitting occurs, but implicit
-null arguments (see below) are still removed.
-
- Word splitting begins by removing sequences of IFS whitespace
-characters from the beginning and end of the results of the previous
-expansions, then splits the remaining words.
-
- If the value of ‘IFS’ consists solely of IFS whitespace, any sequence
-of IFS whitespace characters delimits a field, so a field consists of
-characters that are not unquoted IFS whitespace, and null fields result
-only from quoting.
-
- If ‘IFS’ contains a non-whitespace character, then any character in
-the value of ‘IFS’ that is not IFS whitespace, along with any adjacent
-IFS whitespace characters, delimits a field. This means that adjacent
-non-IFS-whitespace delimiters produce a null field. A sequence of IFS
-whitespace characters also delimits a field.
-
- Explicit null arguments (‘""’ or ‘''’) are retained and passed to
-commands as empty strings. Unquoted implicit null arguments, resulting
-from the expansion of parameters that have no values, are removed.
-Expanding a parameter with no value within double quotes produces a null
-field, which is retained and passed to a command as an empty string.
-
- When a quoted null argument appears as part of a word whose expansion
-is non-null, word splitting removes the null argument portion, leaving
-the non-null expansion. That is, the word ‘-d''’ becomes ‘-d’ after
-word splitting and null argument removal.
-
-\1f
-File: bashref.info, Node: Filename Expansion, Next: Quote Removal, Prev: Word Splitting, Up: Shell Expansions
-
-3.5.8 Filename Expansion
-------------------------
-
-* Menu:
-
-* Pattern Matching:: How the shell matches patterns.
-
-After word splitting, unless the ‘-f’ option has been set (*note The Set
-Builtin::), Bash scans each word for the characters ‘*’, ‘?’, and ‘[’.
-If one of these characters appears, and is not quoted, then the word is
-regarded as a PATTERN, and replaced with a sorted list of filenames
-matching the pattern (*note Pattern Matching::), subject to the value of
-the ‘GLOBSORT’ shell variable (*note Bash Variables::).
-
- If no matching filenames are found, and the shell option ‘nullglob’
-is disabled, the word is left unchanged. If the ‘nullglob’ option is
-set, and no matches are found, the word is removed. If the ‘failglob’
-shell option is set, and no matches are found, Bash prints an error
-message and does not execute the command. If the shell option
-‘nocaseglob’ is enabled, the match is performed without regard to the
-case of alphabetic characters.
-
- When a pattern is used for filename expansion, the character ‘.’ at
-the start of a filename or immediately following a slash must be matched
-explicitly, unless the shell option ‘dotglob’ is set. In order to match
-the filenames ‘.’ and ‘..’, the pattern must begin with ‘.’ (for
-example, ‘.?’), even if ‘dotglob’ is set. If the ‘globskipdots’ shell
-option is enabled, the filenames ‘.’ and ‘..’ never match, even if the
-pattern begins with a ‘.’. When not matching filenames, the ‘.’
-character is not treated specially.
-
- When matching a filename, the slash character must always be matched
-explicitly by a slash in the pattern, but in other matching contexts it
-can be matched by a special pattern character as described below (*note
-Pattern Matching::).
-
- See the description of ‘shopt’ in *note The Shopt Builtin::, for a
-description of the ‘nocaseglob’, ‘nullglob’, ‘globskipdots’, ‘failglob’,
-and ‘dotglob’ options.
-
- The ‘GLOBIGNORE’ shell variable may be used to restrict the set of
-file names matching a pattern. If ‘GLOBIGNORE’ is set, each matching
-file name that also matches one of the patterns in ‘GLOBIGNORE’ is
-removed from the list of matches. If the ‘nocaseglob’ option is set,
-the matching against the patterns in ‘GLOBIGNORE’ is performed without
-regard to case. The filenames ‘.’ and ‘..’ are always ignored when
-‘GLOBIGNORE’ is set and not null. However, setting ‘GLOBIGNORE’ to a
-non-null value has the effect of enabling the ‘dotglob’ shell option, so
-all other filenames beginning with a ‘.’ match. To get the old behavior
-of ignoring filenames beginning with a ‘.’, make ‘.*’ one of the
-patterns in ‘GLOBIGNORE’. The ‘dotglob’ option is disabled when
-‘GLOBIGNORE’ is unset. The ‘GLOBIGNORE’ pattern matching honors the
-setting of the ‘extglob’ shell option.
-
- The value of the ‘GLOBSORT’ shell variable controls how the results
-of pathname expansion are sorted, as described below (*note Bash
-Variables::).
-
-\1f
-File: bashref.info, Node: Pattern Matching, Up: Filename Expansion
-
-3.5.8.1 Pattern Matching
-........................
-
-Any character that appears in a pattern, other than the special pattern
-characters described below, matches itself. The NUL character may not
-occur in a pattern. A backslash escapes the following character; the
-escaping backslash is discarded when matching. The special pattern
-characters must be quoted if they are to be matched literally.
-
- The special pattern characters have the following meanings:
-‘*’
- Matches any string, including the null string. When the ‘globstar’
- shell option is enabled, and ‘*’ is used in a filename expansion
- context, two adjacent ‘*’s used as a single pattern match all files
- and zero or more directories and subdirectories. If followed by a
- ‘/’, two adjacent ‘*’s match only directories and subdirectories.
-‘?’
- Matches any single character.
-‘[...]’
- Matches any one of the characters enclosed between the brackets.
- This is known as a “bracket expression” and matches a single
- character. A pair of characters separated by a hyphen denotes a
- “range expression”; any character that falls between those two
- characters, inclusive, using the current locale's collating
- sequence and character set, matches. If the first character
- following the ‘[’ is a ‘!’ or a ‘^’ then any character not within
- the range matches. To match a ‘−’, include it as the first or last
- character in the set. To match a ‘]’, include it as the first
- character in the set.
-
- The sorting order of characters in range expressions, and the
- characters included in the range, are determined by the current
- locale and the values of the ‘LC_COLLATE’ and ‘LC_ALL’ shell
- variables, if set.
-
- For example, in the default C locale, ‘[a-dx-z]’ is equivalent to
- ‘[abcdxyz]’. Many locales sort characters in dictionary order, and
- in these locales ‘[a-dx-z]’ is typically not equivalent to
- ‘[abcdxyz]’; it might be equivalent to ‘[aBbCcDdxYyZz]’, for
- example. To obtain the traditional interpretation of ranges in
- bracket expressions, you can force the use of the C locale by
- setting the ‘LC_COLLATE’ or ‘LC_ALL’ environment variable to the
- value ‘C’, or enable the ‘globasciiranges’ shell option.
-
- Within a bracket expression, “character classes” can be specified
- using the syntax ‘[:’CLASS‘:]’, where CLASS is one of the following
- classes defined in the POSIX standard:
- alnum alpha ascii blank cntrl digit graph lower
- print punct space upper word xdigit
- A character class matches any character belonging to that class.
- The ‘word’ character class matches letters, digits, and the
- character ‘_’.
-
- For instance, the following pattern will match any character
- belonging to the ‘space’ character class in the current locale,
- then any upper case letter or ‘!’, a dot, and finally any lower
- case letter or a hyphen.
-
- [[:space:]][[:upper:]!].[-[:lower:]]
-
- Within a bracket expression, an “equivalence class” can be
- specified using the syntax ‘[=’C‘=]’, which matches all characters
- with the same collation weight (as defined by the current locale)
- as the character C.
-
- Within a bracket expression, the syntax ‘[.’SYMBOL‘.]’ matches the
- collating symbol SYMBOL.
-
- If the ‘extglob’ shell option is enabled using the ‘shopt’ builtin,
-the shell recognizes several extended pattern matching operators. In
-the following description, a PATTERN-LIST is a list of one or more
-patterns separated by a ‘|’. When matching filenames, the ‘dotglob’
-shell option determines the set of filenames that are tested, as
-described above. Composite patterns may be formed using one or more of
-the following sub-patterns:
-
-‘?(PATTERN-LIST)’
- Matches zero or one occurrence of the given patterns.
-
-‘*(PATTERN-LIST)’
- Matches zero or more occurrences of the given patterns.
-
-‘+(PATTERN-LIST)’
- Matches one or more occurrences of the given patterns.
-
-‘@(PATTERN-LIST)’
- Matches one of the given patterns.
-
-‘!(PATTERN-LIST)’
- Matches anything except one of the given patterns.
-
- The ‘extglob’ option changes the behavior of the parser, since the
-parentheses are normally treated as operators with syntactic meaning.
-To ensure that extended matching patterns are parsed correctly, make
-sure that ‘extglob’ is enabled before parsing constructs containing the
-patterns, including shell functions and command substitutions.
-
- When matching filenames, the ‘dotglob’ shell option determines the
-set of filenames that are tested: when ‘dotglob’ is enabled, the set of
-filenames includes all files beginning with ‘.’, but the filenames ‘.’
-and ‘..’ must be matched by a pattern or sub-pattern that begins with a
-dot; when it is disabled, the set does not include any filenames
-beginning with ‘.’ unless the pattern or sub-pattern begins with a ‘.’.
-If the ‘globskipdots’ shell option is enabled, the filenames ‘.’ and
-‘..’ never appear in the set. As above, ‘.’ only has a special meaning
-when matching filenames.
-
- Complicated extended pattern matching against long strings is slow,
-especially when the patterns contain alternations and the strings
-contain multiple matches. Using separate matches against shorter
-strings, or using arrays of strings instead of a single long string, may
-be faster.
-
-\1f
-File: bashref.info, Node: Quote Removal, Prev: Filename Expansion, Up: Shell Expansions
-
-3.5.9 Quote Removal
--------------------
-
-After the preceding expansions, all unquoted occurrences of the
-characters ‘\’, ‘'’, and ‘"’ that did not result from one of the above
-expansions are removed.
-
-\1f
-File: bashref.info, Node: Redirections, Next: Executing Commands, Prev: Shell Expansions, Up: Basic Shell Features
-
-3.6 Redirections
-================
-
-Before a command is executed, its input and output may be “redirected”
-using a special notation interpreted by the shell. “Redirection” allows
-commands' file handles to be duplicated, opened, closed, made to refer
-to different files, and can change the files the command reads from and
-writes to. When used with the ‘exec’ builtin, redirections modify file
-handles in the current shell execution environment. The following
-redirection operators may precede or appear anywhere within a simple
-command or may follow a command. Redirections are processed in the
-order they appear, from left to right.
-
- Each redirection that may be preceded by a file descriptor number may
-instead be preceded by a word of the form {VARNAME}. In this case, for
-each redirection operator except ‘>&-’ and ‘<&-’, the shell allocates a
-file descriptor greater than or equal to 10 and assigns it to {VARNAME}.
-If {VARNAME} precedes ‘>&-’ or ‘<&-’, the value of VARNAME defines the
-file descriptor to close. If {VARNAME} is supplied, the redirection
-persists beyond the scope of the command, which allows the shell
-programmer to manage the file descriptor's lifetime manually without
-using the ‘exec’ builtin. The ‘varredir_close’ shell option manages
-this behavior (*note The Shopt Builtin::).
-
- In the following descriptions, if the file descriptor number is
-omitted, and the first character of the redirection operator is ‘<’, the
-redirection refers to the standard input (file descriptor 0). If the
-first character of the redirection operator is ‘>’, the redirection
-refers to the standard output (file descriptor 1).
-
- The WORD following the redirection operator in the following
-descriptions, unless otherwise noted, is subjected to brace expansion,
-tilde expansion, parameter and variable expansion, command substitution,
-arithmetic expansion, quote removal, filename expansion, and word
-splitting. If it expands to more than one word, Bash reports an error.
-
- The order of redirections is significant. For example, the command
- ls > DIRLIST 2>&1
-directs both standard output (file descriptor 1) and standard error
-(file descriptor 2) to the file DIRLIST, while the command
- ls 2>&1 > DIRLIST
-directs only the standard output to file DIRLIST, because the standard
-error was made a copy of the standard output before the standard output
-was redirected to DIRLIST.
-
- Bash handles several filenames specially when they are used in
-redirections, as described in the following table. If the operating
-system on which Bash is running provides these special files, Bash uses
-them; otherwise it emulates them internally with the behavior described
-below.
-
-‘/dev/fd/FD’
- If FD is a valid integer, duplicate file descriptor FD.
-
-‘/dev/stdin’
- File descriptor 0 is duplicated.
-
-‘/dev/stdout’
- File descriptor 1 is duplicated.
-
-‘/dev/stderr’
- File descriptor 2 is duplicated.
-
-‘/dev/tcp/HOST/PORT’
- If HOST is a valid hostname or Internet address, and PORT is an
- integer port number or service name, Bash attempts to open the
- corresponding TCP socket.
-
-‘/dev/udp/HOST/PORT’
- If HOST is a valid hostname or Internet address, and PORT is an
- integer port number or service name, Bash attempts to open the
- corresponding UDP socket.
-
- A failure to open or create a file causes the redirection to fail.
-
- Redirections using file descriptors greater than 9 should be used
-with care, as they may conflict with file descriptors the shell uses
-internally.
-
-3.6.1 Redirecting Input
------------------------
-
-Redirecting input opens the file whose name results from the expansion
-of WORD for reading on file descriptor ‘n’, or the standard input (file
-descriptor 0) if ‘n’ is not specified.
-
- The general format for redirecting input is:
- [N]<WORD
-
-3.6.2 Redirecting Output
-------------------------
-
-Redirecting output opens the file whose name results from the expansion
-of WORD for writing on file descriptor N, or the standard output (file
-descriptor 1) if N is not specified. If the file does not exist it is
-created; if it does exist it is truncated to zero size.
-
- The general format for redirecting output is:
- [N]>[|]WORD
-
- If the redirection operator is ‘>’, and the ‘noclobber’ option to the
-‘set’ builtin command has been enabled, the redirection fails if the
-file whose name results from the expansion of WORD exists and is a
-regular file. If the redirection operator is ‘>|’, or the redirection
-operator is ‘>’ and the ‘noclobber’ option to the ‘set’ builtin is not
-enabled, Bash attempts the redirection even if the file named by WORD
-exists.
-
-3.6.3 Appending Redirected Output
----------------------------------
-
-Redirecting output in this fashion opens the file whose name results
-from the expansion of WORD for appending on file descriptor N, or the
-standard output (file descriptor 1) if N is not specified. If the file
-does not exist it is created.
-
- The general format for appending output is:
- [N]>>WORD
-
-3.6.4 Redirecting Standard Output and Standard Error
-----------------------------------------------------
-
-This construct redirects both the standard output (file descriptor 1)
-and the standard error output (file descriptor 2) to the file whose name
-is the expansion of WORD.
-
- There are two formats for redirecting standard output and standard
-error:
- &>WORD
-and
- >&WORD
-Of the two forms, the first is preferred. This is semantically
-equivalent to
- >WORD 2>&1
- When using the second form, WORD may not expand to a number or ‘-’.
-If it does, other redirection operators apply (see Duplicating File
-Descriptors below) for compatibility reasons.
-
-3.6.5 Appending Standard Output and Standard Error
---------------------------------------------------
-
-This construct appends both the standard output (file descriptor 1) and
-the standard error output (file descriptor 2) to the file whose name is
-the expansion of WORD.
-
- The format for appending standard output and standard error is:
- &>>WORD
-This is semantically equivalent to
- >>WORD 2>&1
- (see Duplicating File Descriptors below).
-
-3.6.6 Here Documents
---------------------
-
-This type of redirection instructs the shell to read input from the
-current source until it reads a line containing only DELIMITER (with no
-trailing blanks). All of the lines read up to that point then become
-the standard input (or file descriptor N if N is specified) for a
-command.
-
- The format of here-documents is:
- [N]<<[−]WORD
- HERE-DOCUMENT
- DELIMITER
-
- The shell does not perform parameter and variable expansion, command
-substitution, arithmetic expansion, or filename expansion on WORD.
-
- If any part of WORD is quoted, the DELIMITER is the result of quote
-removal on WORD, and the lines in the here-document are not expanded.
-If WORD is unquoted, DELIMITER is WORD itself, and the here-document
-text is treated similarly to a double-quoted string: all lines of the
-here-document are subjected to parameter expansion, command
-substitution, and arithmetic expansion, the character sequence
-‘\newline’ is treated literally, and ‘\’ must be used to quote the
-characters ‘\’, ‘$’, and ‘`’; however, double quote characters have no
-special meaning.
-
- If the redirection operator is ‘<<-’, the shell strips leading tab
-characters from input lines and the line containing DELIMITER. This
-allows here-documents within shell scripts to be indented in a natural
-fashion.
-
- If the delimiter is not quoted, the shell treats the ‘\<newline>’
-sequence as a line continuation: the two lines are joined and the
-backslash-newline is removed. This happens while reading the
-here-document, before the check for the ending delimiter, so joined
-lines can form the end delimiter.
-
-3.6.7 Here Strings
-------------------
-
-A variant of here documents, the format is:
- [N]<<< WORD
-
- The WORD undergoes tilde expansion, parameter and variable expansion,
-command substitution, arithmetic expansion, and quote removal. Filename
-expansion and word splitting are not performed. The result is supplied
-as a single string, with a newline appended, to the command on its
-standard input (or file descriptor N if N is specified).
-
-3.6.8 Duplicating File Descriptors
-----------------------------------
-
-The redirection operator
- [N]<&WORD
-is used to duplicate input file descriptors. If WORD expands to one or
-more digits, file descriptor N is made to be a copy of that file
-descriptor. It is a redirection error if the digits in WORD do not
-specify a file descriptor open for input. If WORD evaluates to ‘-’,
-file descriptor N is closed. If N is not specified, this uses the
-standard input (file descriptor 0).
-
- The operator
- [N]>&WORD
-is used similarly to duplicate output file descriptors. If N is not
-specified, this uses the standard output (file descriptor 1). It is a
-redirection error if the digits in WORD do not specify a file descriptor
-open for output. If WORD evaluates to ‘-’, file descriptor N is closed.
-As a special case, if N is omitted, and WORD does not expand to one or
-more digits or ‘-’, this redirects the standard output and standard
-error as described previously.
-
-3.6.9 Moving File Descriptors
------------------------------
-
-The redirection operator
- [N]<&DIGIT-
-moves the file descriptor DIGIT to file descriptor N, or the standard
-input (file descriptor 0) if N is not specified. DIGIT is closed after
-being duplicated to N.
-
- Similarly, the redirection operator
- [N]>&DIGIT-
-moves the file descriptor DIGIT to file descriptor N, or the standard
-output (file descriptor 1) if N is not specified.
-
-3.6.10 Opening File Descriptors for Reading and Writing
--------------------------------------------------------
-
-The redirection operator
- [N]<>WORD
-opens the file whose name is the expansion of WORD for both reading and
-writing on file descriptor N, or on file descriptor 0 if N is not
-specified. If the file does not exist, it is created.
-
-\1f
-File: bashref.info, Node: Executing Commands, Next: Shell Scripts, Prev: Redirections, Up: Basic Shell Features
-
-3.7 Executing Commands
-======================
-
-* Menu:
-
-* Simple Command Expansion:: How Bash expands simple commands before
- executing them.
-* Command Search and Execution:: How Bash finds commands and runs them.
-* Command Execution Environment:: The environment in which Bash
- executes commands that are not
- shell builtins.
-* Environment:: The environment given to a command.
-* Exit Status:: The status returned by commands and how Bash
- interprets it.
-* Signals:: What happens when Bash or a command it runs
- receives a signal.
-
-\1f
-File: bashref.info, Node: Simple Command Expansion, Next: Command Search and Execution, Up: Executing Commands
-
-3.7.1 Simple Command Expansion
-------------------------------
-
-When the shell executes a simple command, it performs the following
-expansions, assignments, and redirections, from left to right, in the
-following order.
-
- 1. The words that the parser has marked as variable assignments (those
- preceding the command name) and redirections are saved for later
- processing.
-
- 2. The words that are not variable assignments or redirections are
- expanded (*note Shell Expansions::). If any words remain after
- expansion, the first word is taken to be the name of the command
- and the remaining words are the arguments.
-
- 3. Redirections are performed as described above (*note
- Redirections::).
-
- 4. The text after the ‘=’ in each variable assignment undergoes tilde
- expansion, parameter expansion, command substitution, arithmetic
- expansion, and quote removal before being assigned to the variable.
-
- If no command name results, the variable assignments affect the
-current shell environment. In the case of such a command (one that
-consists only of assignment statements and redirections), assignment
-statements are performed before redirections. Otherwise, the variables
-are added to the environment of the executed command and do not affect
-the current shell environment. If any of the assignments attempts to
-assign a value to a readonly variable, an error occurs, and the command
-exits with a non-zero status.
-
- If no command name results, redirections are performed, but do not
-affect the current shell environment. A redirection error causes the
-command to exit with a non-zero status.
-
- If there is a command name left after expansion, execution proceeds
-as described below. Otherwise, the command exits. If one of the
-expansions contained a command substitution, the exit status of the
-command is the exit status of the last command substitution performed.
-If there were no command substitutions, the command exits with a zero
-status.
-
-\1f
-File: bashref.info, Node: Command Search and Execution, Next: Command Execution Environment, Prev: Simple Command Expansion, Up: Executing Commands
-
-3.7.2 Command Search and Execution
-----------------------------------
-
-After a command has been split into words, if it results in a simple
-command and an optional list of arguments, the shell performs the
-following actions.
-
- 1. If the command name contains no slashes, the shell attempts to
- locate it. If there exists a shell function by that name, that
- function is invoked as described in *note Shell Functions::.
-
- 2. If the name does not match a function, the shell searches for it in
- the list of shell builtins. If a match is found, that builtin is
- invoked.
-
- 3. If the name is neither a shell function nor a builtin, and contains
- no slashes, Bash searches each element of ‘$PATH’ for a directory
- containing an executable file by that name. Bash uses a hash table
- to remember the full pathnames of executable files to avoid
- multiple ‘PATH’ searches (see the description of ‘hash’ in *note
- Bourne Shell Builtins::). Bash performs a full search of the
- directories in ‘$PATH’ only if the command is not found in the hash
- table. If the search is unsuccessful, the shell searches for a
- defined shell function named ‘command_not_found_handle’. If that
- function exists, it is invoked in a separate execution environment
- with the original command and the original command's arguments as
- its arguments, and the function's exit status becomes the exit
- status of that subshell. If that function is not defined, the
- shell prints an error message and returns an exit status of 127.
-
- 4. If the search is successful, or if the command name contains one or
- more slashes, the shell executes the named program in a separate
- execution environment. Argument 0 is set to the name given, and
- the remaining arguments to the command are set to the arguments
- supplied, if any.
-
- 5. If this execution fails because the file is not in executable
- format, and the file is not a directory, it is assumed to be a
- “shell script”, a file containing shell commands, and the shell
- executes it as described in *note Shell Scripts::.
-
- 6. If the command was not begun asynchronously, the shell waits for
- the command to complete and collects its exit status.
-
-\1f
-File: bashref.info, Node: Command Execution Environment, Next: Environment, Prev: Command Search and Execution, Up: Executing Commands
-
-3.7.3 Command Execution Environment
------------------------------------
-
-The shell has an “execution environment”, which consists of the
-following:
-
- • Open files inherited by the shell at invocation, as modified by
- redirections supplied to the ‘exec’ builtin.
-
- • The current working directory as set by ‘cd’, ‘pushd’, or ‘popd’,
- or inherited by the shell at invocation.
-
- • The file creation mode mask as set by ‘umask’ or inherited from the
- shell's parent.
-
- • Current traps set by ‘trap’.
-
- • Shell parameters that are set by variable assignment or with ‘set’
- or inherited from the shell's parent in the environment.
-
- • Shell functions defined during execution or inherited from the
- shell's parent in the environment.
-
- • Options enabled at invocation (either by default or with
- command-line arguments) or by ‘set’.
-
- • Options enabled by ‘shopt’ (*note The Shopt Builtin::).
-
- • Shell aliases defined with ‘alias’ (*note Aliases::).
-
- • Various process IDs, including those of background jobs (*note
- Lists::), the value of ‘$$’, and the value of ‘$PPID’.
-
- When a simple command other than a builtin or shell function is to be
-executed, it is invoked in a separate execution environment that
-consists of the following. Unless otherwise noted, the values are
-inherited from the shell.
-
- • The shell's open files, plus any modifications and additions
- specified by redirections to the command.
-
- • The current working directory.
-
- • The file creation mode mask.
-
- • Shell variables and functions marked for export, along with
- variables exported for the command, passed in the environment
- (*note Environment::).
-
- • Traps caught by the shell are reset to the values inherited from
- the shell's parent, and traps ignored by the shell are ignored.
-
- A command invoked in this separate environment cannot affect the
-shell's execution environment.
-
- A “subshell” is a copy of the shell process.
-
- Command substitution, commands grouped with parentheses, and
-asynchronous commands are invoked in a subshell environment that is a
-duplicate of the shell environment, except that traps caught by the
-shell are reset to the values that the shell inherited from its parent
-at invocation. Builtin commands that are invoked as part of a pipeline,
-except possibly in the last element depending on the value of the
-‘lastpipe’ shell option (*note The Shopt Builtin::), are also executed
-in a subshell environment. Changes made to the subshell environment
-cannot affect the shell's execution environment.
-
- When the shell is in POSIX mode, subshells spawned to execute command
-substitutions inherit the value of the ‘-e’ option from the parent
-shell. When not in POSIX mode, Bash clears the ‘-e’ option in such
-subshells See the description of the ‘inherit_errexit’ shell option
-(*note Bash Builtins::) for how to control this behavior when not in
-POSIX mode.
-
- If a command is followed by a ‘&’ and job control is not active, the
-default standard input for the command is the empty file ‘/dev/null’.
-Otherwise, the invoked command inherits the file descriptors of the
-calling shell as modified by redirections.
-
-\1f
-File: bashref.info, Node: Environment, Next: Exit Status, Prev: Command Execution Environment, Up: Executing Commands
-
-3.7.4 Environment
------------------
-
-When a program is invoked it is given an array of strings called the
-“environment”. This is a list of name-value pairs, of the form
-‘name=value’.
-
- Bash provides several ways to manipulate the environment. On
-invocation, the shell scans its own environment and creates a parameter
-for each name found, automatically marking it for ‘export’ to child
-processes. Executed commands inherit the environment. The ‘export’,
-‘declare -x’, and ‘unset’ commands modify the environment by adding and
-deleting parameters and functions. If the value of a parameter in the
-environment is modified, the new value automatically becomes part of the
-environment, replacing the old. The environment inherited by any
-executed command consists of the shell's initial environment, whose
-values may be modified in the shell, less any pairs removed by the
-‘unset’ and ‘export -n’ commands, plus any additions via the ‘export’
-and ‘declare -x’ commands.
-
- If any parameter assignment statements, as described in *note Shell
-Parameters::, appear before a simple command, the variable assignments
-are part of that command's environment for as long as it executes.
-These assignment statements affect only the environment seen by that
-command. If these assignments precede a call to a shell function, the
-variables are local to the function and exported to that function's
-children.
-
- If the ‘-k’ option is set (*note The Set Builtin::), then all
-parameter assignments are placed in the environment for a command, not
-just those that precede the command name.
-
- When Bash invokes an external command, the variable ‘$_’ is set to
-the full pathname of the command and passed to that command in its
-environment.
-
-\1f
-File: bashref.info, Node: Exit Status, Next: Signals, Prev: Environment, Up: Executing Commands
-
-3.7.5 Exit Status
------------------
-
-The exit status of an executed command is the value returned by the
-‘waitpid’ system call or equivalent function. Exit statuses fall
-between 0 and 255, though, as explained below, the shell may use values
-above 125 specially. Exit statuses from shell builtins and compound
-commands are also limited to this range. Under certain circumstances,
-the shell will use special values to indicate specific failure modes.
-
- For the shell's purposes, a command which exits with a zero exit
-status has succeeded. So while an exit status of zero indicates
-success, a non-zero exit status indicates failure. This seemingly
-counter-intuitive scheme is used so there is one well-defined way to
-indicate success and a variety of ways to indicate various failure
-modes.
-
- When a command terminates on a fatal signal whose number is N, Bash
-uses the value 128+N as the exit status.
-
- If a command is not found, the child process created to execute it
-returns a status of 127. If a command is found but is not executable,
-the return status is 126.
-
- If a command fails because of an error during expansion or
-redirection, the exit status is greater than zero.
-
- The exit status is used by the Bash conditional commands (*note
-Conditional Constructs::) and some of the list constructs (*note
-Lists::).
-
- All of the Bash builtins return an exit status of zero if they
-succeed and a non-zero status on failure, so they may be used by the
-conditional and list constructs. All builtins return an exit status of
-2 to indicate incorrect usage, generally invalid options or missing
-arguments.
-
- The exit status of the last command is available in the special
-parameter $? (*note Special Parameters::).
-
- Bash itself returns the exit status of the last command executed,
-unless a syntax error occurs, in which case it exits with a non-zero
-value. See also the ‘exit’ builtin command (*note Bourne Shell
-Builtins::).
-
-\1f
-File: bashref.info, Node: Signals, Prev: Exit Status, Up: Executing Commands
-
-3.7.6 Signals
--------------
-
-When Bash is interactive, in the absence of any traps, it ignores
-‘SIGTERM’ (so that ‘kill 0’ does not kill an interactive shell), and
-catches and handles ‘SIGINT’ (so that the ‘wait’ builtin is
-interruptible). When Bash receives a ‘SIGINT’, it breaks out of any
-executing loops. In all cases, Bash ignores ‘SIGQUIT’. If job control
-is in effect (*note Job Control::), Bash ignores ‘SIGTTIN’, ‘SIGTTOU’,
-and ‘SIGTSTP’.
-
- The ‘trap’ builtin modifies the shell's signal handling, as described
-below (*note Bourne Shell Builtins::).
-
- Non-builtin commands Bash executes have signal handlers set to the
-values inherited by the shell from its parent, unless ‘trap’ sets them
-to be ignored, in which case the child process will ignore them as well.
-When job control is not in effect, asynchronous commands ignore ‘SIGINT’
-and ‘SIGQUIT’ in addition to these inherited handlers. Commands run as
-a result of command substitution ignore the keyboard-generated job
-control signals ‘SIGTTIN’, ‘SIGTTOU’, and ‘SIGTSTP’.
-
- The shell exits by default upon receipt of a ‘SIGHUP’. Before
-exiting, an interactive shell resends the ‘SIGHUP’ to all jobs, running
-or stopped. The shell sends ‘SIGCONT’ to stopped jobs to ensure that
-they receive the ‘SIGHUP’ (*Note Job Control::, for more information
-about running and stopped jobs). To prevent the shell from sending the
-‘SIGHUP’ signal to a particular job, remove it from the jobs table with
-the ‘disown’ builtin (*note Job Control Builtins::) or mark it not to
-receive ‘SIGHUP’ using ‘disown -h’.
-
- If the ‘huponexit’ shell option has been set using ‘shopt’ (*note The
-Shopt Builtin::), Bash sends a ‘SIGHUP’ to all jobs when an interactive
-login shell exits.
-
- If Bash is waiting for a command to complete and receives a signal
-for which a trap has been set, it will not execute the trap until the
-command completes. If Bash is waiting for an asynchronous command via
-the ‘wait’ builtin, and it receives a signal for which a trap has been
-set, the ‘wait’ builtin will return immediately with an exit status
-greater than 128, immediately after which the shell executes the trap.
-
- When job control is not enabled, and Bash is waiting for a foreground
-command to complete, the shell receives keyboard-generated signals such
-as ‘SIGINT’ (usually generated by ‘^C’) that users commonly intend to
-send to that command. This happens because the shell and the command
-are in the same process group as the terminal, and ‘^C’ sends ‘SIGINT’
-to all processes in that process group. Since Bash does not enable job
-control by default when the shell is not interactive, this scenario is
-most common in non-interactive shells.
-
- When job control is enabled, and Bash is waiting for a foreground
-command to complete, the shell does not receive keyboard-generated
-signals, because it is not in the same process group as the terminal.
-This scenario is most common in interactive shells, where Bash attempts
-to enable job control by default. See *note Job Control::, for a more
-in-depth discussion of process groups.
-
- When job control is not enabled, and Bash receives ‘SIGINT’ while
-waiting for a foreground command, it waits until that foreground command
-terminates and then decides what to do about the ‘SIGINT’:
-
- 1. If the command terminates due to the ‘SIGINT’, Bash concludes that
- the user meant to send the ‘SIGINT’ to the shell as well, and acts
- on the ‘SIGINT’ (e.g., by running a ‘SIGINT’ trap, exiting a
- non-interactive shell, or returning to the top level to read a new
- command).
-
- 2. If the command does not terminate due to ‘SIGINT’, the program
- handled the ‘SIGINT’ itself and did not treat it as a fatal signal.
- In that case, Bash does not treat ‘SIGINT’ as a fatal signal,
- either, instead assuming that the ‘SIGINT’ was used as part of the
- program's normal operation (e.g., ‘emacs’ uses it to abort editing
- commands) or deliberately discarded. However, Bash will run any
- trap set on ‘SIGINT’, as it does with any other trapped signal it
- receives while it is waiting for the foreground command to
- complete, for compatibility.
-
- When job control is enabled, Bash does not receive keyboard-generated
-signals such as ‘SIGINT’ while it is waiting for a foreground command.
-An interactive shell does not pay attention to the ‘SIGINT’, even if the
-foreground command terminates as a result, other than noting its exit
-status. If the shell is not interactive, and the foreground command
-terminates due to the ‘SIGINT’, Bash pretends it received the ‘SIGINT’
-itself (scenario 1 above), for compatibility.
-
-\1f
-File: bashref.info, Node: Shell Scripts, Prev: Executing Commands, Up: Basic Shell Features
-
-3.8 Shell Scripts
-=================
-
-A shell script is a text file containing shell commands. When such a
-file is used as the first non-option argument when invoking Bash, and
-neither the ‘-c’ nor ‘-s’ option is supplied (*note Invoking Bash::),
-Bash reads and executes commands from the file, then exits. This mode
-of operation creates a non-interactive shell. If the filename does not
-contain any slashes, the shell first searches for the file in the
-current directory, and looks in the directories in ‘$PATH’ if not found
-there.
-
- Bash tries to determine whether the file is a text file or a binary,
-and will not execute files it determines to be binaries.
-
- When Bash runs a shell script, it sets the special parameter ‘0’ to
-the name of the file, rather than the name of the shell, and the
-positional parameters are set to the remaining arguments, if any are
-given. If no additional arguments are supplied, the positional
-parameters are unset.
-
- A shell script may be made executable by using the ‘chmod’ command to
-turn on the execute bit. When Bash finds such a file while searching
-the ‘$PATH’ for a command, it creates a new instance of itself to
-execute it. In other words, executing
- filename ARGUMENTS
-is equivalent to executing
- bash filename ARGUMENTS
-
-if ‘filename’ is an executable shell script. This subshell
-reinitializes itself, so that the effect is as if a new shell had been
-invoked to interpret the script, with the exception that the locations
-of commands remembered by the parent (see the description of ‘hash’ in
-*note Bourne Shell Builtins::) are retained by the child.
-
- The GNU operating system, and most versions of Unix, make this a part
-of the operating system's command execution mechanism. If the first
-line of a script begins with the two characters ‘#!’, the remainder of
-the line specifies an interpreter for the program and, depending on the
-operating system, one or more optional arguments for that interpreter.
-Thus, you can specify Bash, ‘awk’, Perl, or some other interpreter and
-write the rest of the script file in that language.
-
- The arguments to the interpreter consist of one or more optional
-arguments following the interpreter name on the first line of the script
-file, followed by the name of the script file, followed by the rest of
-the arguments supplied to the script. The details of how the
-interpreter line is split into an interpreter name and a set of
-arguments vary across systems. Bash will perform this action on
-operating systems that do not handle it themselves. Note that some
-older versions of Unix limit the interpreter name and a single argument
-to a maximum of 32 characters, so it's not portable to assume that using
-more than one argument will work.
-
- Bash scripts often begin with ‘#! /bin/bash’ (assuming that Bash has
-been installed in ‘/bin’), since this ensures that Bash will be used to
-interpret the script, even if it is executed under another shell. It's
-a common idiom to use ‘env’ to find ‘bash’ even if it's been installed
-in another directory: ‘#!/usr/bin/env bash’ will find the first
-occurrence of ‘bash’ in ‘$PATH’.
-
-\1f
-File: bashref.info, Node: Shell Builtin Commands, Next: Shell Variables, Prev: Basic Shell Features, Up: Top
-
-4 Shell Builtin Commands
-************************
-
-* Menu:
-
-* Bourne Shell Builtins:: Builtin commands inherited from the Bourne
- Shell.
-* Bash Builtins:: Table of builtins specific to Bash.
-* Modifying Shell Behavior:: Builtins to modify shell attributes and
- optional behavior.
-* Special Builtins:: Builtin commands classified specially by
- POSIX.
-
-Builtin commands are contained within the shell itself. When the name
-of a builtin command is used as the first word of a simple command
-(*note Simple Commands::), the shell executes the command directly,
-without invoking another program. Builtin commands are necessary to
-implement functionality impossible or inconvenient to obtain with
-separate utilities.
-
- This section briefly describes the builtins which Bash inherits from
-the Bourne Shell, as well as the builtin commands which are unique to or
-have been extended in Bash.
-
- Several builtin commands are described in other chapters: builtin
-commands which provide the Bash interface to the job control facilities
-(*note Job Control Builtins::), the directory stack (*note Directory
-Stack Builtins::), the command history (*note Bash History Builtins::),
-and the programmable completion facilities (*note Programmable
-Completion Builtins::).
-
- Many of the builtins have been extended by POSIX or Bash.
-
- Unless otherwise noted, each builtin command documented as accepting
-options preceded by ‘-’ accepts ‘--’ to signify the end of the options.
-The ‘:’, ‘true’, ‘false’, and ‘test’/‘[’ builtins do not accept options
-and do not treat ‘--’ specially. The ‘exit’, ‘logout’, ‘return’,
-‘break’, ‘continue’, ‘let’, and ‘shift’ builtins accept and process
-arguments beginning with ‘-’ without requiring ‘--’. Other builtins
-that accept arguments but are not specified as accepting options
-interpret arguments beginning with ‘-’ as invalid options and require
-‘--’ to prevent this interpretation.
-
-\1f
-File: bashref.info, Node: Bourne Shell Builtins, Next: Bash Builtins, Up: Shell Builtin Commands
-
-4.1 Bourne Shell Builtins
-=========================
-
-The following shell builtin commands are inherited from the Bourne
-Shell. These commands are implemented as specified by the POSIX
-standard.
-
-‘: (a colon)’
- : [ARGUMENTS]
-
- Do nothing beyond expanding ARGUMENTS and performing redirections.
- The return status is zero.
-
-‘. (a period)’
- . [-p PATH] FILENAME [ARGUMENTS]
-
- The ‘.’ command reads and execute commands from the FILENAME
- argument in the current shell context.
-
- If FILENAME does not contain a slash, ‘.’ searches for it. If ‘-p’
- is supplied, ‘.’ treats PATH as a colon-separated list of
- directories in which to find FILENAME; otherwise, ‘.’ uses the
- directories in ‘PATH’ to find FILENAME. FILENAME does not need to
- be executable. When Bash is not in POSIX mode, it searches the
- current directory if FILENAME is not found in ‘$PATH’, but does not
- search the current directory if ‘-p’ is supplied. If the
- ‘sourcepath’ option (*note The Shopt Builtin::) is turned off, ‘.’
- does not search ‘PATH’.
-
- If any ARGUMENTS are supplied, they become the positional
- parameters when FILENAME is executed. Otherwise the positional
- parameters are unchanged.
-
- If the ‘-T’ option is enabled, ‘.’ inherits any trap on ‘DEBUG’; if
- it is not, any ‘DEBUG’ trap string is saved and restored around the
- call to ‘.’, and ‘.’ unsets the ‘DEBUG’ trap while it executes. If
- ‘-T’ is not set, and the sourced file changes the ‘DEBUG’ trap, the
- new value persists after ‘.’ completes. The return status is the
- exit status of the last command executed from FILENAME, or zero if
- no commands are executed. If FILENAME is not found, or cannot be
- read, the return status is non-zero. This builtin is equivalent to
- ‘source’.
-
-‘break’
- break [N]
-
- Exit from a ‘for’, ‘while’, ‘until’, or ‘select’ loop. If N is
- supplied, ‘break’ exits the Nth enclosing loop. N must be greater
- than or equal to 1. The return status is zero unless N is not
- greater than or equal to 1.
-
-‘cd’
- cd [-L] [-@] [DIRECTORY]
- cd -P [-e] [-@] [DIRECTORY]
-
- Change the current working directory to DIRECTORY. If DIRECTORY is
- not supplied, the value of the ‘HOME’ shell variable is used as
- DIRECTORY. If DIRECTORY is the empty string, ‘cd’ treats it as an
- error. If the shell variable ‘CDPATH’ exists, and DIRECTORY does
- not begin with a slash, ‘cd’ uses it as a search path: ‘cd’
- searches each directory name in ‘CDPATH’ for DIRECTORY, with
- alternative directory names in ‘CDPATH’ separated by a colon (‘:’).
- A null directory name in ‘CDPATH’ means the same thing as the
- current directory.
-
- The ‘-P’ option means not to follow symbolic links: symbolic links
- are resolved while ‘cd’ is traversing DIRECTORY and before
- processing an instance of ‘..’ in DIRECTORY.
-
- By default, or when the ‘-L’ option is supplied, symbolic links in
- DIRECTORY are resolved after ‘cd’ processes an instance of ‘..’ in
- DIRECTORY.
-
- If ‘..’ appears in DIRECTORY, ‘cd’ processes it by removing the
- immediately preceding pathname component, back to a slash or the
- beginning of DIRECTORY, and verifying that the portion of DIRECTORY
- it has processed to that point is still a valid directory name
- after removing the pathname component. If it is not a valid
- directory name, ‘cd’ returns a non-zero status.
-
- If the ‘-e’ option is supplied with ‘-P’ and ‘cd’ cannot
- successfully determine the current working directory after a
- successful directory change, it returns a non-zero status.
-
- On systems that support it, the ‘-@’ option presents the extended
- attributes associated with a file as a directory.
-
- If DIRECTORY is ‘-’, it is converted to ‘$OLDPWD’ before attempting
- the directory change.
-
- If ‘cd’ uses a non-empty directory name from ‘CDPATH’, or if ‘-’ is
- the first argument, and the directory change is successful, ‘cd’
- writes the absolute pathname of the new working directory to the
- standard output.
-
- If the directory change is successful, ‘cd’ sets the value of the
- ‘PWD’ environment variable to the new directory name, and sets the
- ‘OLDPWD’ environment variable to the value of the current working
- directory before the change.
-
- The return status is zero if the directory is successfully changed,
- non-zero otherwise.
-
-‘continue’
- continue [N]
-
- ‘continue’ resumes the next iteration of an enclosing ‘for’,
- ‘while’, ‘until’, or ‘select’ loop. If N is supplied, Bash resumes
- the execution of the Nth enclosing loop. N must be greater than or
- equal to 1. The return status is zero unless N is not greater than
- or equal to 1.
-
-‘eval’
- eval [ARGUMENTS]
-
- The ARGUMENTS are concatenated together into a single command,
- separated by spaces. Bash then reads and executes this command and
- returns its exit status as the exit status of ‘eval’. If there are
- no arguments or only empty arguments, the return status is zero.
-
-‘exec’
- exec [-cl] [-a NAME] [COMMAND [ARGUMENTS]]
-
- If COMMAND is supplied, it replaces the shell without creating a
- new process. COMMAND cannot be a shell builtin or function. The
- ARGUMENTS become the arguments to COMMAND If the ‘-l’ option is
- supplied, the shell places a dash at the beginning of the zeroth
- argument passed to COMMAND. This is what the ‘login’ program does.
- The ‘-c’ option causes COMMAND to be executed with an empty
- environment. If ‘-a’ is supplied, the shell passes NAME as the
- zeroth argument to COMMAND.
-
- If COMMAND cannot be executed for some reason, a non-interactive
- shell exits, unless the ‘execfail’ shell option is enabled. In
- that case, it returns a non-zero status. An interactive shell
- returns a non-zero status if the file cannot be executed. A
- subshell exits unconditionally if ‘exec’ fails.
-
- If COMMAND is not specified, redirections may be used to affect the
- current shell environment. If there are no redirection errors, the
- return status is zero; otherwise the return status is non-zero.
-
-‘exit’
- exit [N]
-
- Exit the shell, returning a status of N to the shell's parent. If
- N is omitted, the exit status is that of the last command executed.
- Any trap on ‘EXIT’ is executed before the shell terminates.
-
-‘export’
- export [-fn] [-p] [NAME[=VALUE]]
-
- Mark each NAME to be passed to subsequently executed commands in
- the environment. If the ‘-f’ option is supplied, the NAMEs refer
- to shell functions; otherwise the names refer to shell variables.
-
- The ‘-n’ option means to unexport each name: no longer mark it for
- export. If no NAMEs are supplied, or if only the ‘-p’ option is
- given, ‘export’ displays a list of names of all exported variables
- on the standard output. Using ‘-p’ and ‘-f’ together displays
- exported functions. The ‘-p’ option displays output in a form that
- may be reused as input.
-
- ‘export’ allows the value of a variable to be set at the same time
- it is exported or unexported by following the variable name with
- =VALUE. This sets the value of the variable is to VALUE while
- modifying the export attribute.
-
- The return status is zero unless an invalid option is supplied, one
- of the names is not a valid shell variable name, or ‘-f’ is
- supplied with a name that is not a shell function.
-
-‘false’
- false
-
- Does nothing; returns a non-zero status.
-
-‘getopts’
- getopts OPTSTRING NAME [ARG ...]
-
- ‘getopts’ is used by shell scripts or functions to parse positional
- parameters and obtain options and their arguments. OPTSTRING
- contains the option characters to be recognized; if a character is
- followed by a colon, the option is expected to have an argument,
- which should be separated from it by whitespace. The colon (‘:’)
- and question mark (‘?’) may not be used as option characters.
-
- Each time it is invoked, ‘getopts’ places the next option in the
- shell variable NAME, initializing NAME if it does not exist, and
- the index of the next argument to be processed into the variable
- ‘OPTIND’. ‘OPTIND’ is initialized to 1 each time the shell or a
- shell script is invoked. When an option requires an argument,
- ‘getopts’ places that argument into the variable ‘OPTARG’.
-
- The shell does not reset ‘OPTIND’ automatically; it must be
- manually reset between multiple calls to ‘getopts’ within the same
- shell invocation to use a new set of parameters.
-
- When it reaches the end of options, ‘getopts’ exits with a return
- value greater than zero. ‘OPTIND’ is set to the index of the first
- non-option argument, and NAME is set to ‘?’.
-
- ‘getopts’ normally parses the positional parameters, but if more
- arguments are supplied as ARG values, ‘getopts’ parses those
- instead.
-
- ‘getopts’ can report errors in two ways. If the first character of
- OPTSTRING is a colon, ‘getopts’ uses _silent_ error reporting. In
- normal operation, ‘getopts’ prints diagnostic messages when it
- encounters invalid options or missing option arguments. If the
- variable ‘OPTERR’ is set to 0, ‘getopts’ does not display any error
- messages, even if the first character of ‘optstring’ is not a
- colon.
-
- If ‘getopts’ detects an invalid option, it places ‘?’ into NAME
- and, if not silent, prints an error message and unsets ‘OPTARG’.
- If ‘getopts’ is silent, it assigns the option character found to
- ‘OPTARG’ and does not print a diagnostic message.
-
- If a required argument is not found, and ‘getopts’ is not silent,
- it sets the value of NAME to a question mark (‘?’), unsets
- ‘OPTARG’, and prints a diagnostic message. If ‘getopts’ is silent,
- it sets the value of NAME to a colon (‘:’), and sets ‘OPTARG’ to
- the option character found.
-
- ‘getopts’ returns true if an option, specified or unspecified, is
- found. It returns false when it encounters the end of options or
- if an error occurs.
-
-‘hash’
- hash [-r] [-p FILENAME] [-dt] [NAME]
-
- Each time ‘hash’ is invoked, it remembers the full filenames of the
- commands specified as NAME arguments, so they need not be searched
- for on subsequent invocations. The commands are found by searching
- through the directories listed in ‘$PATH’. Any
- previously-remembered filename associated with NAME is discarded.
- The ‘-p’ option inhibits the path search, and ‘hash’ uses FILENAME
- as the location of NAME.
-
- The ‘-r’ option causes the shell to forget all remembered
- locations. Assigning to the ‘PATH’ variable also clears all hashed
- filenames. The ‘-d’ option causes the shell to forget the
- remembered location of each NAME.
-
- If the ‘-t’ option is supplied, ‘hash’ prints the full pathname
- corresponding to each NAME. If multiple NAME arguments are
- supplied with ‘-t’, ‘hash’ prints each NAME before the
- corresponding hashed full path. The ‘-l’ option displays output in
- a format that may be reused as input.
-
- If no arguments are given, or if only ‘-l’ is supplied, ‘hash’
- prints information about remembered commands. The ‘-t’, ‘-d’, and
- ‘-p’ options (the options that act on the NAME arguments) are
- mutually exclusive. Only one will be active. If more than one is
- supplied, ‘-t’ has higher priority than ‘-p’, and both have higher
- priority than ‘-d’.
-
- The return status is zero unless a NAME is not found or an invalid
- option is supplied.
-
-‘pwd’
- pwd [-LP]
-
- Print the absolute pathname of the current working directory. If
- the ‘-P’ option is supplied, or the ‘-o physical’ option to the
- ‘set’ builtin (*note The Set Builtin::) is enabled, the pathname
- printed will not contain symbolic links. If the ‘-L’ option is
- supplied, the pathname printed may contain symbolic links. The
- return status is zero unless an error is encountered while
- determining the name of the current directory or an invalid option
- is supplied.
-
-‘readonly’
- readonly [-aAf] [-p] [NAME[=VALUE]] ...
-
- Mark each NAME as readonly. The values of these names may not be
- changed by subsequent assignment or unset. If the ‘-f’ option is
- supplied, each NAME refers to a shell function. The ‘-a’ option
- means each NAME refers to an indexed array variable; the ‘-A’
- option means each NAME refers to an associative array variable. If
- both options are supplied, ‘-A’ takes precedence. If no NAME
- arguments are supplied, or if the ‘-p’ option is supplied, print a
- list of all readonly names. The other options may be used to
- restrict the output to a subset of the set of readonly names. The
- ‘-p’ option displays output in a format that may be reused as
- input.
-
- ‘readonly’ allows the value of a variable to be set at the same
- time the readonly attribute is changed by following the variable
- name with =VALUE. This sets the value of the variable is to VALUE
- while modifying the readonly attribute.
-
- The return status is zero unless an invalid option is supplied, one
- of the NAME arguments is not a valid shell variable or function
- name, or the ‘-f’ option is supplied with a name that is not a
- shell function.
-
-‘return’
- return [N]
-
- Stop executing a shell function or sourced file and return the
- value N to its caller. If N is not supplied, the return value is
- the exit status of the last command executed. If ‘return’ is
- executed by a trap handler, the last command used to determine the
- status is the last command executed before the trap handler. If
- ‘return’ is executed during a ‘DEBUG’ trap, the last command used
- to determine the status is the last command executed by the trap
- handler before ‘return’ was invoked.
-
- When ‘return’ is used to terminate execution of a script being
- executed with the ‘.’ (‘source’) builtin, it returns either N or
- the exit status of the last command executed within the script as
- the exit status of the script. If N is supplied, the return value
- is its least significant 8 bits.
-
- Any command associated with the ‘RETURN’ trap is executed before
- execution resumes after the function or script.
-
- The return status is non-zero if ‘return’ is supplied a non-numeric
- argument or is used outside a function and not during the execution
- of a script by ‘.’ or ‘source’.
-
-‘shift’
- shift [N]
-
- Shift the positional parameters to the left by N: the positional
- parameters from N+1 ... ‘$#’ are renamed to ‘$1’ ... ‘$#’-N.
- Parameters represented by the numbers ‘$#’ down to ‘$#’-N+1 are
- unset. N must be a non-negative number less than or equal to ‘$#’.
- If N is not supplied, it is assumed to be 1. If N is zero or
- greater than ‘$#’, the positional parameters are not changed. The
- return status is zero unless N is greater than ‘$#’ or less than
- zero, non-zero otherwise.
-
-‘test’
-‘[’
- test EXPR
-
- Evaluate a conditional expression EXPR and return a status of 0
- (true) or 1 (false). Each operator and operand must be a separate
- argument. Expressions are composed of the primaries described
- below in *note Bash Conditional Expressions::. ‘test’ does not
- accept any options, nor does it accept and ignore an argument of
- ‘--’ as signifying the end of options. When using the ‘[’ form,
- the last argument to the command must be a ‘]’.
-
- Expressions may be combined using the following operators, listed
- in decreasing order of precedence. The evaluation depends on the
- number of arguments; see below. ‘test’ uses operator precedence
- when there are five or more arguments.
-
- ‘! EXPR’
- True if EXPR is false.
-
- ‘( EXPR )’
- Returns the value of EXPR. This may be used to override
- normal operator precedence.
-
- ‘EXPR1 -a EXPR2’
- True if both EXPR1 and EXPR2 are true.
-
- ‘EXPR1 -o EXPR2’
- True if either EXPR1 or EXPR2 is true.
-
- The ‘test’ and ‘[’ builtins evaluate conditional expressions using
- a set of rules based on the number of arguments.
-
- 0 arguments
- The expression is false.
-
- 1 argument
- The expression is true if, and only if, the argument is not
- null.
-
- 2 arguments
- If the first argument is ‘!’, the expression is true if and
- only if the second argument is null. If the first argument is
- one of the unary conditional operators (*note Bash Conditional
- Expressions::), the expression is true if the unary test is
- true. If the first argument is not a valid unary operator,
- the expression is false.
-
- 3 arguments
- The following conditions are applied in the order listed.
-
- 1. If the second argument is one of the binary conditional
- operators (*note Bash Conditional Expressions::), the
- result of the expression is the result of the binary test
- using the first and third arguments as operands. The
- ‘-a’ and ‘-o’ operators are considered binary operators
- when there are three arguments.
- 2. If the first argument is ‘!’, the value is the negation
- of the two-argument test using the second and third
- arguments.
- 3. If the first argument is exactly ‘(’ and the third
- argument is exactly ‘)’, the result is the one-argument
- test of the second argument.
- 4. Otherwise, the expression is false.
-
- 4 arguments
- The following conditions are applied in the order listed.
-
- 1. If the first argument is ‘!’, the result is the negation
- of the three-argument expression composed of the
- remaining arguments.
- 2. If the first argument is exactly ‘(’ and the fourth
- argument is exactly ‘)’, the result is the two-argument
- test of the second and third arguments.
- 3. Otherwise, the expression is parsed and evaluated
- according to precedence using the rules listed above.
-
- 5 or more arguments
- The expression is parsed and evaluated according to precedence
- using the rules listed above.
-
- If the shell is in POSIX mode, or if the expression is part of the
- ‘[[’ command, the ‘<’ and ‘>’ operators sort using the current
- locale. If the shell is not in POSIX mode, the ‘test’ and ‘[’
- commands sort lexicographically using ASCII ordering.
-
- The historical operator-precedence parsing with 4 or more arguments
- can lead to ambiguities when it encounters strings that look like
- primaries. The POSIX standard has deprecated the ‘-a’ and ‘-o’
- primaries and enclosing expressions within parentheses. Scripts
- should no longer use them. It's much more reliable to restrict
- test invocations to a single primary, and to replace uses of ‘-a’
- and ‘-o’ with the shell's ‘&&’ and ‘||’ list operators. For
- example, use
-
- test -n string1 && test -n string2
-
- instead of
-
- test -n string1 -a -n string2
-
-‘times’
- times
-
- Print out the user and system times used by the shell and its
- children. The return status is zero.
-
-‘trap’
- trap [-lpP] [ACTION] [SIGSPEC ...]
-
- The ACTION is a command that is read and executed when the shell
- receives any of the signals SIGSPEC. If ACTION is absent (and
- there is a single SIGSPEC) or equal to ‘-’, each specified
- SIGSPEC's disposition is reset to the value it had when the shell
- was started. If ACTION is the null string, then the signal
- specified by each SIGSPEC is ignored by the shell and commands it
- invokes.
-
- If no arguments are supplied, ‘trap’ prints the actions associated
- with each trapped signal as a set of ‘trap’ commands that can be
- reused as shell input to restore the current signal dispositions.
-
- If ACTION is not present and ‘-p’ has been supplied, ‘trap’
- displays the trap commands associated with each SIGSPEC, or, if no
- SIGSPECs are supplied, for all trapped signals, as a set of ‘trap’
- commands that can be reused as shell input to restore the current
- signal dispositions. The ‘-P’ option behaves similarly, but
- displays only the actions associated with each SIGSPEC argument.
- ‘-P’ requires at least one SIGSPEC argument. The ‘-P’ or ‘-p’
- options may be used in a subshell environment (e.g., command
- substitution) and, as long as they are used before ‘trap’ is used
- to change a signal's handling, will display the state of its
- parent's traps.
-
- The ‘-l’ option prints a list of signal names and their
- corresponding numbers. Each SIGSPEC is either a signal name or a
- signal number. Signal names are case insensitive and the ‘SIG’
- prefix is optional. If ‘-l’ is supplied with no SIGSPEC arguments,
- it prints a list of valid signal names.
-
- If a SIGSPEC is ‘0’ or ‘EXIT’, ACTION is executed when the shell
- exits. If a SIGSPEC is ‘DEBUG’, ACTION is executed before every
- simple command, ‘for’ command, ‘case’ command, ‘select’ command, ((
- arithmetic command, [[ conditional command, arithmetic ‘for’
- command, and before the first command executes in a shell function.
- Refer to the description of the ‘extdebug’ shell option (*note The
- Shopt Builtin::) for details of its effect on the ‘DEBUG’ trap. If
- a SIGSPEC is ‘RETURN’, ACTION is executed each time a shell
- function or a script executed with the ‘.’ or ‘source’ builtins
- finishes executing.
-
- If a SIGSPEC is ‘ERR’, ACTION is executed whenever a pipeline
- (which may consist of a single simple command), a list, or a
- compound command returns a non-zero exit status, subject to the
- following conditions. The ‘ERR’ trap is not executed if the failed
- command is part of the command list immediately following an
- ‘until’ or ‘while’ reserved word, part of the test following the
- ‘if’ or ‘elif’ reserved words, part of a command executed in a ‘&&’
- or ‘||’ list except the command following the final ‘&&’ or ‘||’,
- any command in a pipeline but the last, (subject to the state of
- the ‘pipefail’ shell option), or if the command's return status is
- being inverted using ‘!’. These are the same conditions obeyed by
- the ‘errexit’ (‘-e’) option.
-
- When the shell is not interactive, signals ignored upon entry to a
- non-interactive shell cannot be trapped or reset. Interactive
- shells permit trapping signals ignored on entry. Trapped signals
- that are not being ignored are reset to their original values in a
- subshell or subshell environment when one is created.
-
- The return status is zero unless a SIGSPEC does not specify a valid
- signal; non-zero otherwise.
-
-‘true’
- true
-
- Does nothing, returns a 0 status.
-
-‘umask’
- umask [-p] [-S] [MODE]
-
- Set the shell process's file creation mask to MODE. If MODE begins
- with a digit, it is interpreted as an octal number; if not, it is
- interpreted as a symbolic mode mask similar to that accepted by the
- ‘chmod’ command. If MODE is omitted, ‘umask’ prints the current
- value of the mask. If the ‘-S’ option is supplied without a MODE
- argument, ‘umask’ prints the mask in a symbolic format; the default
- output is an octal number. If the ‘-p’ option is supplied, and
- MODE is omitted, the output is in a form that may be reused as
- input. The return status is zero if the mode is successfully
- changed or if no MODE argument is supplied, and non-zero otherwise.
-
- Note that when the mode is interpreted as an octal number, each
- number of the umask is subtracted from ‘7’. Thus, a umask of ‘022’
- results in permissions of ‘755’.
-
-‘unset’
- unset [-fnv] [NAME]
-
- Remove each variable or function NAME. If the ‘-v’ option is
- given, each NAME refers to a shell variable and that variable is
- removed. If the ‘-f’ option is given, the NAMEs refer to shell
- functions, and the function definition is removed. If the ‘-n’
- option is supplied, and NAME is a variable with the ‘nameref’
- attribute, NAME will be unset rather than the variable it
- references. ‘-n’ has no effect if the ‘-f’ option is supplied. If
- no options are supplied, each NAME refers to a variable; if there
- is no variable by that name, a function with that name, if any, is
- unset. Readonly variables and functions may not be unset. When
- variables or functions are removed, they are also removed from the
- environment passed to subsequent commands. Some shell variables
- may not be unset. Some shell variables lose their special behavior
- if they are unset; such behavior is noted in the description of the
- individual variables. The return status is zero unless a NAME is
- readonly or may not be unset.
-
-\1f
-File: bashref.info, Node: Bash Builtins, Next: Modifying Shell Behavior, Prev: Bourne Shell Builtins, Up: Shell Builtin Commands
-
-4.2 Bash Builtin Commands
-=========================
-
-This section describes builtin commands which are unique to or have been
-extended in Bash. Some of these commands are specified in the POSIX
-standard.
-
-‘alias’
- alias [-p] [NAME[=VALUE] ...]
-
- Without arguments or with the ‘-p’ option, ‘alias’ prints the list
- of aliases on the standard output in a form that allows them to be
- reused as input. If arguments are supplied, define an alias for
- each NAME whose VALUE is given. If no VALUE is given, print the
- name and value of the alias NAME. A trailing space in VALUE causes
- the next word to be checked for alias substitution when the alias
- is expanded during command parsing. ‘alias’ returns true unless a
- NAME is given (without a corresponding =VALUE) for which no alias
- has been defined. Aliases are described in *note Aliases::.
-
-‘bind’
- bind [-m KEYMAP] [-lsvSVX]
- bind [-m KEYMAP] [-q FUNCTION] [-u FUNCTION] [-r KEYSEQ]
- bind [-m KEYMAP] -f FILENAME
- bind [-m KEYMAP] -x KEYSEQ[: ]SHELL-COMMAND
- bind [-m KEYMAP] KEYSEQ:FUNCTION-NAME
- bind [-m KEYMAP] KEYSEQ:READLINE-COMMAND
- bind [-m KEYMAP] -p|-P [READLINE-COMMAND]
- bind READLINE-COMMAND-LINE
-
- Display current Readline (*note Command Line Editing::) key and
- function bindings, bind a key sequence to a Readline function or
- macro or to a shell command, or set a Readline variable. Each
- non-option argument is a key binding or command as it would appear
- in a Readline initialization file (*note Readline Init File::), but
- each binding or command must be passed as a separate argument;
- e.g., ‘"\C-x\C-r":re-read-init-file’.
-
- In the following descriptions, options that display output in a
- form available to be re-read format their output as commands that
- would appear in a Readline initialization file or that would be
- supplied as individual arguments to a ‘bind’ command.
-
- Options, if supplied, have the following meanings:
-
- ‘-m KEYMAP’
- Use KEYMAP as the keymap to be affected by the subsequent
- bindings. Acceptable KEYMAP names are ‘emacs’,
- ‘emacs-standard’, ‘emacs-meta’, ‘emacs-ctlx’, ‘vi’, ‘vi-move’,
- ‘vi-command’, and ‘vi-insert’. ‘vi’ is equivalent to
- ‘vi-command’ (‘vi-move’ is also a synonym); ‘emacs’ is
- equivalent to ‘emacs-standard’.
-
- ‘-l’
- List the names of all Readline functions.
-
- ‘-p’
- Display Readline function names and bindings in such a way
- that they can be used as an argument to a subsequent ‘bind’
- command or in a Readline initialization file. If arguments
- remain after option processing, ‘bind’ treats them as readline
- command names and restricts output to those names.
-
- ‘-P’
- List current Readline function names and bindings. If
- arguments remain after option processing, ‘bind’ treats them
- as readline command names and restricts output to those names.
-
- ‘-s’
- Display Readline key sequences bound to macros and the strings
- they output in such a way that they can be used as an argument
- to a subsequent ‘bind’ command or in a Readline initialization
- file.
-
- ‘-S’
- Display Readline key sequences bound to macros and the strings
- they output.
-
- ‘-v’
- Display Readline variable names and values in such a way that
- they can be used as an argument to a subsequent ‘bind’ command
- or in a Readline initialization file.
-
- ‘-V’
- List current Readline variable names and values.
-
- ‘-f FILENAME’
- Read key bindings from FILENAME.
-
- ‘-q FUNCTION’
- Display key sequences that invoke the named Readline FUNCTION.
-
- ‘-u FUNCTION’
- Unbind all key sequences bound to the named Readline FUNCTION.
-
- ‘-r KEYSEQ’
- Remove any current binding for KEYSEQ.
-
- ‘-x KEYSEQ:SHELL-COMMAND’
- Cause SHELL-COMMAND to be executed whenever KEYSEQ is entered.
- The separator between KEYSEQ and SHELL-COMMAND is either
- whitespace or a colon optionally followed by whitespace. If
- the separator is whitespace, SHELL-COMMAND must be enclosed in
- double quotes and Readline expands any of its special
- backslash-escapes in SHELL-COMMAND before saving it. If the
- separator is a colon, any enclosing double quotes are
- optional, and Readline does not expand the command string
- before saving it. Since the entire key binding expression
- must be a single argument, it should be enclosed in single
- quotes. When SHELL-COMMAND is executed, the shell sets the
- ‘READLINE_LINE’ variable to the contents of the Readline line
- buffer and the ‘READLINE_POINT’ and ‘READLINE_MARK’ variables
- to the current location of the insertion point and the saved
- insertion point (the MARK), respectively. The shell assigns
- any numeric argument the user supplied to the
- ‘READLINE_ARGUMENT’ variable. If there was no argument, that
- variable is not set. If the executed command changes the
- value of any of ‘READLINE_LINE’, ‘READLINE_POINT’, or
- ‘READLINE_MARK’, those new values will be reflected in the
- editing state.
-
- ‘-X’
- List all key sequences bound to shell commands and the
- associated commands in a format that can be reused as an
- argument to a subsequent ‘bind’ command.
-
- The return status is zero unless an invalid option is supplied or
- an error occurs.
-
-‘builtin’
- builtin [SHELL-BUILTIN [ARGS]]
-
- Execute the specified shell builtin SHELL-BUILTIN, passing it ARGS,
- and return its exit status. This is useful when defining a shell
- function with the same name as a shell builtin, retaining the
- functionality of the builtin within the function. The return
- status is non-zero if SHELL-BUILTIN is not a shell builtin command.
-
-‘caller’
- caller [EXPR]
-
- Returns the context of any active subroutine call (a shell function
- or a script executed with the ‘.’ or ‘source’ builtins).
-
- Without EXPR, ‘caller’ displays the line number and source filename
- of the current subroutine call. If a non-negative integer is
- supplied as EXPR, ‘caller’ displays the line number, subroutine
- name, and source file corresponding to that position in the current
- execution call stack. This extra information may be used, for
- example, to print a stack trace. The current frame is frame 0.
-
- The return value is 0 unless the shell is not executing a
- subroutine call or EXPR does not correspond to a valid position in
- the call stack.
-
-‘command’
- command [-pVv] COMMAND [ARGUMENTS ...]
-
- The ‘command’ builtin runs COMMAND with ARGUMENTS ignoring any
- shell function named COMMAND. Only shell builtin commands or
- commands found by searching the ‘PATH’ are executed. If there is a
- shell function named ‘ls’, running ‘command ls’ within the function
- will execute the external command ‘ls’ instead of calling the
- function recursively. The ‘-p’ option means to use a default value
- for ‘PATH’ that is guaranteed to find all of the standard
- utilities. The return status in this case is 127 if COMMAND cannot
- be found or an error occurred, and the exit status of COMMAND
- otherwise.
-
- If either the ‘-V’ or ‘-v’ option is supplied, ‘command’ prints a
- description of COMMAND. The ‘-v’ option displays a single word
- indicating the command or file name used to invoke COMMAND; the
- ‘-V’ option produces a more verbose description. In this case, the
- return status is zero if COMMAND is found, and non-zero if not.
-
-‘declare’
- declare [-aAfFgiIlnrtux] [-p] [NAME[=VALUE] ...]
-
- Declare variables and give them attributes. If no NAMEs are given,
- then display the values of variables or shell functions instead.
-
- The ‘-p’ option will display the attributes and values of each
- NAME. When ‘-p’ is used with NAME arguments, additional options,
- other than ‘-f’ and ‘-F’, are ignored.
-
- When ‘-p’ is supplied without NAME arguments, ‘declare’ will
- display the attributes and values of all variables having the
- attributes specified by the additional options. If no other
- options are supplied with ‘-p’, ‘declare’ will display the
- attributes and values of all shell variables. The ‘-f’ option
- restricts the display to shell functions.
-
- The ‘-F’ option inhibits the display of function definitions; only
- the function name and attributes are printed. If the ‘extdebug’
- shell option is enabled using ‘shopt’ (*note The Shopt Builtin::),
- the source file name and line number where each NAME is defined are
- displayed as well. ‘-F’ implies ‘-f’.
-
- The ‘-g’ option forces variables to be created or modified at the
- global scope, even when ‘declare’ is executed in a shell function.
- It is ignored in when ‘declare’ is not executed in a shell
- function.
-
- The ‘-I’ option causes local variables to inherit the attributes
- (except the ‘nameref’ attribute) and value of any existing variable
- with the same NAME at a surrounding scope. If there is no existing
- variable, the local variable is initially unset.
-
- The following options can be used to restrict output to variables
- with the specified attributes or to give variables attributes:
-
- ‘-a’
- Each NAME is an indexed array variable (*note Arrays::).
-
- ‘-A’
- Each NAME is an associative array variable (*note Arrays::).
-
- ‘-f’
- Each NAME refers to a shell function.
-
- ‘-i’
- The variable is to be treated as an integer; arithmetic
- evaluation (*note Shell Arithmetic::) is performed when the
- variable is assigned a value.
-
- ‘-l’
- When the variable is assigned a value, all upper-case
- characters are converted to lower-case. The upper-case
- attribute is disabled.
-
- ‘-n’
- Give each NAME the ‘nameref’ attribute, making it a name
- reference to another variable. That other variable is defined
- by the value of NAME. All references, assignments, and
- attribute modifications to NAME, except for those using or
- changing the ‘-n’ attribute itself, are performed on the
- variable referenced by NAME's value. The nameref attribute
- cannot be applied to array variables.
-
- ‘-r’
- Make NAMEs readonly. These names cannot then be assigned
- values by subsequent assignment statements or unset.
-
- ‘-t’
- Give each NAME the ‘trace’ attribute. Traced functions
- inherit the ‘DEBUG’ and ‘RETURN’ traps from the calling shell.
- The trace attribute has no special meaning for variables.
-
- ‘-u’
- When the variable is assigned a value, all lower-case
- characters are converted to upper-case. The lower-case
- attribute is disabled.
-
- ‘-x’
- Mark each NAME for export to subsequent commands via the
- environment.
-
- Using ‘+’ instead of ‘-’ turns off the specified attribute instead,
- with the exceptions that ‘+a’ and ‘+A’ may not be used to destroy
- array variables and ‘+r’ will not remove the readonly attribute.
-
- When used in a function, ‘declare’ makes each NAME local, as with
- the ‘local’ command, unless the ‘-g’ option is supplied. If a
- variable name is followed by =VALUE, the value of the variable is
- set to VALUE.
-
- When using ‘-a’ or ‘-A’ and the compound assignment syntax to
- create array variables, additional attributes do not take effect
- until subsequent assignments.
-
- The return status is zero unless an invalid option is encountered,
- an attempt is made to define a function using ‘-f foo=bar’, an
- attempt is made to assign a value to a readonly variable, an
- attempt is made to assign a value to an array variable without
- using the compound assignment syntax (*note Arrays::), one of the
- NAMEs is not a valid shell variable name, an attempt is made to
- turn off readonly status for a readonly variable, an attempt is
- made to turn off array status for an array variable, or an attempt
- is made to display a non-existent function with ‘-f’.
-
-‘echo’
- echo [-neE] [ARG ...]
-
- Output the ARGs, separated by spaces, terminated with a newline.
- The return status is 0 unless a write error occurs. If ‘-n’ is
- specified, the trailing newline is not printed.
-
- If the ‘-e’ option is given, ‘echo’ interprets the following
- backslash-escaped characters. The ‘-E’ option disables
- interpretation of these escape characters, even on systems where
- they are interpreted by default. The ‘xpg_echo’ shell option
- determines whether or not ‘echo’ interprets any options and expands
- these escape characters. ‘echo’ does not interpret ‘--’ to mean
- the end of options.
-
- ‘echo’ interprets the following escape sequences:
- ‘\a’
- alert (bell)
- ‘\b’
- backspace
- ‘\c’
- suppress further output
- ‘\e’
- ‘\E’
- escape
- ‘\f’
- form feed
- ‘\n’
- new line
- ‘\r’
- carriage return
- ‘\t’
- horizontal tab
- ‘\v’
- vertical tab
- ‘\\’
- backslash
- ‘\0NNN’
- The eight-bit character whose value is the octal value NNN
- (zero to three octal digits).
- ‘\xHH’
- The eight-bit character whose value is the hexadecimal value
- HH (one or two hex digits).
- ‘\uHHHH’
- The Unicode (ISO/IEC 10646) character whose value is the
- hexadecimal value HHHH (one to four hex digits).
- ‘\UHHHHHHHH’
- The Unicode (ISO/IEC 10646) character whose value is the
- hexadecimal value HHHHHHHH (one to eight hex digits).
-
- ‘echo’ writes any unrecognized backslash-escaped characters
- unchanged.
-
-‘enable’
- enable [-a] [-dnps] [-f FILENAME] [NAME ...]
-
- Enable and disable builtin shell commands. Disabling a builtin
- allows an executable file which has the same name as a shell
- builtin to be executed without specifying a full pathname, even
- though the shell normally searches for builtins before files.
-
- If ‘-n’ is supplied, the NAMEs are disabled. Otherwise NAMEs are
- enabled. For example, to use the ‘test’ binary found using ‘$PATH’
- instead of the shell builtin version, type ‘enable -n test’.
-
- If the ‘-p’ option is supplied, or no NAME arguments are supplied,
- print a list of shell builtins. With no other arguments, the list
- consists of all enabled shell builtins. The ‘-n’ option means to
- print only disabled builtins. The ‘-a’ option means to list each
- builtin with an indication of whether or not it is enabled. The
- ‘-s’ option means to restrict ‘enable’ to the POSIX special
- builtins.
-
- The ‘-f’ option means to load the new builtin command NAME from
- shared object FILENAME, on systems that support dynamic loading.
- If FILENAME does not contain a slash. Bash will use the value of
- the ‘BASH_LOADABLES_PATH’ variable as a colon-separated list of
- directories in which to search for FILENAME. The default for
- ‘BASH_LOADABLES_PATH’ is system-dependent, and may include "." to
- force a search of the current directory. The ‘-d’ option will
- delete a builtin loaded with ‘-f’. If ‘-s’ is used with ‘-f’, the
- new builtin becomes a POSIX special builtin (*note Special
- Builtins::).
-
- If no options are supplied and a NAME is not a shell builtin,
- ‘enable’ will attempt to load NAME from a shared object named NAME,
- as if the command were ‘enable -f NAME NAME’.
-
- The return status is zero unless a NAME is not a shell builtin or
- there is an error loading a new builtin from a shared object.
-
-‘help’
- help [-dms] [PATTERN]
-
- Display helpful information about builtin commands. If PATTERN is
- specified, ‘help’ gives detailed help on all commands matching
- PATTERN as described below; otherwise it displays a list of all
- builtins and shell compound commands.
-
- Options, if supplied, have the following meanings:
-
- ‘-d’
- Display a short description of each PATTERN
- ‘-m’
- Display the description of each PATTERN in a manpage-like
- format
- ‘-s’
- Display only a short usage synopsis for each PATTERN
-
- If PATTERN contains pattern matching characters (*note Pattern
- Matching::) it's treated as a shell pattern and ‘help’ prints the
- description of each help topic matching PATTERN.
-
- If not, and PATTERN exactly matches the name of a help topic,
- ‘help’ prints the description associated with that topic.
- Otherwise, ‘help’ performs prefix matching and prints the
- descriptions of all matching help topics.
-
- The return status is zero unless no command matches PATTERN.
-
-‘let’
- let EXPRESSION [EXPRESSION ...]
-
- The ‘let’ builtin allows arithmetic to be performed on shell
- variables. Each EXPRESSION is evaluated as an arithmetic
- expression according to the rules given below in *note Shell
- Arithmetic::. If the last EXPRESSION evaluates to 0, ‘let’ returns
- 1; otherwise ‘let’ returns 0.
-
-‘local’
- local [OPTION] NAME[=VALUE] ...
-
- For each argument, create a local variable named NAME, and assign
- it VALUE. The OPTION can be any of the options accepted by
- ‘declare’. ‘local’ can only be used within a function; it makes
- the variable NAME have a visible scope restricted to that function
- and its children. It is an error to use ‘local’ when not within a
- function.
-
- If NAME is ‘-’, it makes the set of shell options local to the
- function in which ‘local’ is invoked: any shell options changed
- using the ‘set’ builtin inside the function after the call to
- ‘local’ are restored to their original values when the function
- returns. The restore is performed as if a series of ‘set’ commands
- were executed to restore the values that were in place before the
- function.
-
- With no operands, ‘local’ writes a list of local variables to the
- standard output.
-
- The return status is zero unless ‘local’ is used outside a
- function, an invalid NAME is supplied, or NAME is a readonly
- variable.
-
-‘logout’
- logout [N]
-
- Exit a login shell, returning a status of N to the shell's parent.
-
-‘mapfile’
- mapfile [-d DELIM] [-n COUNT] [-O ORIGIN] [-s COUNT]
- [-t] [-u FD] [-C CALLBACK] [-c QUANTUM] [ARRAY]
-
- Read lines from the standard input, or from file descriptor FD if
- the ‘-u’ option is supplied, into the indexed array variable ARRAY.
- The variable ‘MAPFILE’ is the default ARRAY. Options, if supplied,
- have the following meanings:
-
- ‘-d’
- Use the first character of DELIM to terminate each input line,
- rather than newline. If DELIM is the empty string, ‘mapfile’
- will terminate a line when it reads a NUL character.
- ‘-n’
- Copy at most COUNT lines. If COUNT is 0, copy all lines.
- ‘-O’
- Begin assigning to ARRAY at index ORIGIN. The default index
- is 0.
- ‘-s’
- Discard the first COUNT lines read.
- ‘-t’
- Remove a trailing DELIM (default newline) from each line read.
- ‘-u’
- Read lines from file descriptor FD instead of the standard
- input.
- ‘-C’
- Evaluate CALLBACK each time QUANTUM lines are read. The ‘-c’
- option specifies QUANTUM.
- ‘-c’
- Specify the number of lines read between each call to
- CALLBACK.
-
- If ‘-C’ is specified without ‘-c’, the default quantum is 5000.
- When CALLBACK is evaluated, it is supplied the index of the next
- array element to be assigned and the line to be assigned to that
- element as additional arguments. CALLBACK is evaluated after the
- line is read but before the array element is assigned.
-
- If not supplied with an explicit origin, ‘mapfile’ will clear ARRAY
- before assigning to it.
-
- ‘mapfile’ returns zero unless an invalid option or option argument
- is supplied, ARRAY is invalid or unassignable, or if ARRAY is not
- an indexed array.
-
-‘printf’
- printf [-v VAR] FORMAT [ARGUMENTS]
-
- Write the formatted ARGUMENTS to the standard output under the
- control of the FORMAT. The ‘-v’ option assigns the output to the
- variable VAR rather than printing it to the standard output.
-
- The FORMAT is a character string which contains three types of
- objects: plain characters, which are simply copied to standard
- output, character escape sequences, which are converted and copied
- to the standard output, and format specifications, each of which
- causes printing of the next successive ARGUMENT. In addition to
- the standard ‘printf(3)’ format characters ‘cCsSndiouxXeEfFgGaA’,
- ‘printf’ interprets the following additional format specifiers:
-
- ‘%b’
- Causes ‘printf’ to expand backslash escape sequences in the
- corresponding ARGUMENT in the same way as ‘echo -e’ (*note
- Bash Builtins::).
- ‘%q’
- Causes ‘printf’ to output the corresponding ARGUMENT in a
- format that can be reused as shell input. ‘%q’ and ‘%Q’P use
- the ANSI-C quoting style (*note ANSI-C Quoting::) if any
- characters in the argument string require it, and backslash
- quoting otherwise. If the format string uses the ‘printf’
- _alternate form_, these two formats quote the argument string
- using single quotes.
-
- ‘%Q’
- like ‘%q’, but applies any supplied precision to the ARGUMENT
- before quoting it.
-
- ‘%(DATEFMT)T’
- Causes ‘printf’ to output the date-time string resulting from
- using DATEFMT as a format string for ‘strftime’(3). The
- corresponding ARGUMENT is an integer representing the number
- of seconds since the epoch. This format specifier recognizes
- Two special argument values: -1 represents the current time,
- and -2 represents the time the shell was invoked. If no
- argument is specified, conversion behaves as if -1 had been
- supplied. This is an exception to the usual ‘printf’
- behavior.
-
- The %b, %q, and %T format specifiers all use the field width and
- precision arguments from the format specification and write that
- many bytes from (or use that wide a field for) the expanded
- argument, which usually contains more characters than the original.
-
- The %n format specifier accepts a corresponding argument that is
- treated as a shell variable name.
-
- The %s and %c format specifiers accept an l (long) modifier, which
- forces them to convert the argument string to a wide-character
- string and apply any supplied field width and precision in terms of
- characters, not bytes. The %S and %C format specifiers are
- equivalent to %ls and %lc, respectively.
-
- Arguments to non-string format specifiers are treated as C language
- constants, except that a leading plus or minus sign is allowed, and
- if the leading character is a single or double quote, the value is
- the numeric value of the following character, using the current
- locale.
-
- The FORMAT is reused as necessary to consume all of the ARGUMENTS.
- If the FORMAT requires more ARGUMENTS than are supplied, the extra
- format specifications behave as if a zero value or null string, as
- appropriate, had been supplied. The return value is zero on
- success, non-zero if an invalid option is supplied or a write or
- assignment error occurs.
-
-‘read’
- read [-Eers] [-a ANAME] [-d DELIM] [-i TEXT] [-n NCHARS]
- [-N NCHARS] [-p PROMPT] [-t TIMEOUT] [-u FD] [NAME ...]
-
- Read one line from the standard input, or from the file descriptor
- FD supplied as an argument to the ‘-u’ option, split it into words
- as described above in *note Word Splitting::, and assign the first
- word to the first NAME, the second word to the second NAME, and so
- on. If there are more words than names, the remaining words and
- their intervening delimiters are assigned to the last NAME. If
- there are fewer words read from the input stream than names, the
- remaining names are assigned empty values. The characters in the
- value of the ‘IFS’ variable are used to split the line into words
- using the same rules the shell uses for expansion (described above
- in *note Word Splitting::). The backslash character ‘\’ removes
- any special meaning for the next character read and is used for
- line continuation.
-
- Options, if supplied, have the following meanings:
-
- ‘-a ANAME’
- The words are assigned to sequential indices of the array
- variable ANAME, starting at 0. All elements are removed from
- ANAME before the assignment. Other NAME arguments are
- ignored.
-
- ‘-d DELIM’
- The first character of DELIM terminates the input line, rather
- than newline. If DELIM is the empty string, ‘read’ will
- terminate a line when it reads a NUL character.
-
- ‘-e’
- If the standard input is coming from a terminal, ‘read’ uses
- Readline (*note Command Line Editing::) to obtain the line.
- Readline uses the current (or default, if line editing was not
- previously active) editing settings, but uses Readline's
- default filename completion.
-
- ‘-E’
- If the standard input is coming from a terminal, ‘read’ uses
- Readline (*note Command Line Editing::) to obtain the line.
- Readline uses the current (or default, if line editing was not
- previously active) editing settings, but uses Bash's default
- completion, including programmable completion.
-
- ‘-i TEXT’
- If Readline is being used to read the line, ‘read’ places TEXT
- into the editing buffer before editing begins.
-
- ‘-n NCHARS’
- ‘read’ returns after reading NCHARS characters rather than
- waiting for a complete line of input, unless it encounters EOF
- or ‘read’ times out, but honors a delimiter if it reads fewer
- than NCHARS characters before the delimiter.
-
- ‘-N NCHARS’
- ‘read’ returns after reading exactly NCHARS characters rather
- than waiting for a complete line of input, unless it
- encounters EOF or ‘read’ times out. Delimiter characters in
- the input are not treated specially and do not cause ‘read’ to
- return until it has read NCHARS characters. The result is not
- split on the characters in ‘IFS’; the intent is that the
- variable is assigned exactly the characters read (with the
- exception of backslash; see the ‘-r’ option below).
-
- ‘-p PROMPT’
- Display PROMPT, without a trailing newline, before attempting
- to read any input, but only if input is coming from a
- terminal.
-
- ‘-r’
- If this option is given, backslash does not act as an escape
- character. The backslash is considered to be part of the
- line. In particular, a backslash-newline pair may not then be
- used as a line continuation.
-
- ‘-s’
- Silent mode. If input is coming from a terminal, characters
- are not echoed.
-
- ‘-t TIMEOUT’
- Cause ‘read’ to time out and return failure if it does not
- read a complete line of input (or a specified number of
- characters) within TIMEOUT seconds. TIMEOUT may be a decimal
- number with a fractional portion following the decimal point.
- This option is only effective if ‘read’ is reading input from
- a terminal, pipe, or other special file; it has no effect when
- reading from regular files. If ‘read’ times out, it saves any
- partial input read into the specified variable NAME, and
- returns a status greater than 128. If TIMEOUT is 0, ‘read’
- returns immediately, without trying to read any data. In this
- case, the exit status is 0 if input is available on the
- specified file descriptor, or the read will return EOF,
- non-zero otherwise.
-
- ‘-u FD’
- Read input from file descriptor FD instead of the standard
- input.
-
- Other than the case where DELIM is the empty string, ‘read’ ignores
- any NUL characters in the input.
-
- If no NAMEs are supplied, ‘read’ assigns the line read, without the
- ending delimiter but otherwise unmodified, to the variable ‘REPLY’.
-
- The exit status is zero, unless end-of-file is encountered, ‘read’
- times out (in which case the status is greater than 128), a
- variable assignment error (such as assigning to a readonly
- variable) occurs, or an invalid file descriptor is supplied as the
- argument to ‘-u’.
-
-‘readarray’
- readarray [-d DELIM] [-n COUNT] [-O ORIGIN] [-s COUNT]
- [-t] [-u FD] [-C CALLBACK] [-c QUANTUM] [ARRAY]
-
- Read lines from the standard input into the indexed array variable
- ARRAY, or from file descriptor FD if the ‘-u’ option is supplied.
-
- A synonym for ‘mapfile’.
-
-‘source’
- source [-p PATH] FILENAME [ARGUMENTS]
-
- A synonym for ‘.’ (*note Bourne Shell Builtins::).
-
-‘type’
- type [-afptP] [NAME ...]
-
- Indicate how each NAME would be interpreted if used as a command
- name.
-
- If the ‘-t’ option is used, ‘type’ prints a single word which is
- one of ‘alias’, ‘keyword’, ‘function’, ‘builtin’, or ‘file’, if
- NAME is an alias, shell reserved word, shell function, shell
- builtin, or executable file, respectively. If the NAME is not
- found, ‘type’ prints nothing and returns a failure status.
-
- If the ‘-p’ option is used, ‘type’ either returns the name of the
- executable file that would be found by searching ‘$PATH’ for
- ‘name’, or nothing if ‘-t’ would not return ‘file’.
-
- The ‘-P’ option forces a path search for each NAME, even if ‘-t’
- would not return ‘file’.
-
- If a NAME is present in the table of hashed commands, options ‘-p’
- and ‘-P’ print the hashed value, which is not necessarily the file
- that appears first in ‘$PATH’.
-
- If the ‘-a’ option is used, ‘type’ returns all of the places that
- contain a command named NAME. This includes aliases, reserved
- words, functions, and builtins, but the path search options (‘-p’
- and ‘-P’) can be supplied to restrict the output to executable
- files. If ‘-a’ is supplied with ‘-p’, ‘type’ does not look in the
- table of hashed commands, and only performs a ‘PATH’ search for
- NAME.
-
- If the ‘-f’ option is used, ‘type’ does not attempt to find shell
- functions, as with the ‘command’ builtin.
-
- The return status is zero if all of the NAMEs are found, non-zero
- if any are not found.
-
-‘typeset’
- typeset [-afFgrxilnrtux] [-p] [NAME[=VALUE] ...]
-
- The ‘typeset’ command is supplied for compatibility with the Korn
- shell. It is a synonym for the ‘declare’ builtin command.
-
-‘ulimit’
- ulimit [-HS] -a
- ulimit [-HS] [-bcdefiklmnpqrstuvxPRT] [LIMIT]
-
- ‘ulimit’ provides control over the resources available to the shell
- and to processes it starts, on systems that allow such control. If
- an option is given, it is interpreted as follows:
-
- ‘-S’
- Change and report the soft limit associated with a resource.
-
- ‘-H’
- Change and report the hard limit associated with a resource.
-
- ‘-a’
- Report all current limits; no limits are set.
-
- ‘-b’
- The maximum socket buffer size.
-
- ‘-c’
- The maximum size of core files created.
-
- ‘-d’
- The maximum size of a process's data segment.
-
- ‘-e’
- The maximum scheduling priority ("nice").
-
- ‘-f’
- The maximum size of files written by the shell and its
- children.
-
- ‘-i’
- The maximum number of pending signals.
-
- ‘-k’
- The maximum number of kqueues that may be allocated.
-
- ‘-l’
- The maximum size that may be locked into memory.
-
- ‘-m’
- The maximum resident set size (many systems do not honor this
- limit).
-
- ‘-n’
- The maximum number of open file descriptors (most systems do
- not allow this value to be set).
-
- ‘-p’
- The pipe buffer size.
-
- ‘-q’
- The maximum number of bytes in POSIX message queues.
-
- ‘-r’
- The maximum real-time scheduling priority.
-
- ‘-s’
- The maximum stack size.
-
- ‘-t’
- The maximum amount of cpu time in seconds.
-
- ‘-u’
- The maximum number of processes available to a single user.
-
- ‘-v’
- The maximum amount of virtual memory available to the shell,
- and, on some systems, to its children.
-
- ‘-x’
- The maximum number of file locks.
-
- ‘-P’
- The maximum number of pseudoterminals.
-
- ‘-R’
- The maximum time a real-time process can run before blocking,
- in microseconds.
-
- ‘-T’
- The maximum number of threads.
-
- If LIMIT is supplied, and the ‘-a’ option is not used, LIMIT is the
- new value of the specified resource. The special LIMIT values
- ‘hard’, ‘soft’, and ‘unlimited’ stand for the current hard limit,
- the current soft limit, and no limit, respectively. A hard limit
- cannot be increased by a non-root user once it is set; a soft limit
- may be increased up to the value of the hard limit. Otherwise,
- ‘ulimit’ prints the current value of the soft limit for the
- specified resource, unless the ‘-H’ option is supplied. When more
- than one resource is specified, the limit name and unit, if
- appropriate, are printed before the value. When setting new
- limits, if neither ‘-H’ nor ‘-S’ is supplied, ‘ulimit’ sets both
- the hard and soft limits. If no option is supplied, then ‘-f’ is
- assumed.
-
- Values are in 1024-byte increments, except for ‘-t’, which is in
- seconds; ‘-R’, which is in microseconds; ‘-p’, which is in units of
- 512-byte blocks; ‘-P’, ‘-T’, ‘-b’, ‘-k’, ‘-n’ and ‘-u’, which are
- unscaled values; and, when in POSIX mode (*note Bash POSIX Mode::),
- ‘-c’ and ‘-f’, which are in 512-byte increments.
-
- The return status is zero unless an invalid option or argument is
- supplied, or an error occurs while setting a new limit.
-
-‘unalias’
- unalias [-a] [NAME ... ]
-
- Remove each NAME from the list of aliases. If ‘-a’ is supplied,
- remove all aliases. The return value is true unless a supplied
- NAME is not a defined alias. Aliases are described in *note
- Aliases::.
-
-\1f
-File: bashref.info, Node: Modifying Shell Behavior, Next: Special Builtins, Prev: Bash Builtins, Up: Shell Builtin Commands
-
-4.3 Modifying Shell Behavior
-============================
-
-* Menu:
-
-* The Set Builtin:: Change the values of shell attributes and
- positional parameters.
-* The Shopt Builtin:: Modify shell optional behavior.
-
-\1f
-File: bashref.info, Node: The Set Builtin, Next: The Shopt Builtin, Up: Modifying Shell Behavior
-
-4.3.1 The Set Builtin
----------------------
-
-This builtin is so complicated that it deserves its own section. ‘set’
-allows you to change the values of shell options and set the positional
-parameters, or to display the names and values of shell variables.
-
-‘set’
- set [-abefhkmnptuvxBCEHPT] [-o OPTION-NAME] [--] [-] [ARGUMENT ...]
- set [+abefhkmnptuvxBCEHPT] [+o OPTION-NAME] [--] [-] [ARGUMENT ...]
- set -o
- set +o
-
- If no options or arguments are supplied, ‘set’ displays the names
- and values of all shell variables and functions, sorted according
- to the current locale, in a format that may be reused as input for
- setting or resetting the currently-set variables. Read-only
- variables cannot be reset. In POSIX mode, only shell variables are
- listed.
-
- When options are supplied, they set or unset shell attributes. Any
- arguments remaining after option processing replace the positional
- parameters.
-
- Options, if specified, have the following meanings:
-
- ‘-a’
- Each variable or function that is created or modified is given
- the export attribute and marked for export to the environment
- of subsequent commands.
-
- ‘-b’
- Cause the status of terminated background jobs to be reported
- immediately, rather than before printing the next primary
- prompt or, under some circumstances, when a foreground command
- exits. This is effective only when job control is enabled.
-
- ‘-e’
- Exit immediately if a pipeline (*note Pipelines::), which may
- consist of a single simple command (*note Simple Commands::),
- a list (*note Lists::), or a compound command (*note Compound
- Commands::) returns a non-zero status. The shell does not
- exit if the command that fails is part of the command list
- immediately following a ‘while’ or ‘until’ reserved word, part
- of the test in an ‘if’ statement, part of any command executed
- in a ‘&&’ or ‘||’ list except the command following the final
- ‘&&’ or ‘||’, any command in a pipeline but the last (subject
- to the state of the ‘pipefail’ shell option), or if the
- command's return status is being inverted with ‘!’. If a
- compound command other than a subshell returns a non-zero
- status because a command failed while ‘-e’ was being ignored,
- the shell does not exit. A trap on ‘ERR’, if set, is executed
- before the shell exits.
-
- This option applies to the shell environment and each subshell
- environment separately (*note Command Execution
- Environment::), and may cause subshells to exit before
- executing all the commands in the subshell.
-
- If a compound command or shell function executes in a context
- where ‘-e’ is being ignored, none of the commands executed
- within the compound command or function body will be affected
- by the ‘-e’ setting, even if ‘-e’ is set and a command returns
- a failure status. If a compound command or shell function
- sets ‘-e’ while executing in a context where ‘-e’ is ignored,
- that setting will not have any effect until the compound
- command or the command containing the function call completes.
-
- ‘-f’
- Disable filename expansion (globbing).
-
- ‘-h’
- Locate and remember (hash) commands as they are looked up for
- execution. This option is enabled by default.
-
- ‘-k’
- All arguments in the form of assignment statements are placed
- in the environment for a command, not just those that precede
- the command name.
-
- ‘-m’
- Job control is enabled (*note Job Control::). All processes
- run in a separate process group. When a background job
- completes, the shell prints a line containing its exit status.
-
- ‘-n’
- Read commands but do not execute them. This may be used to
- check a script for syntax errors. This option is ignored by
- interactive shells.
-
- ‘-o OPTION-NAME’
-
- Set the option corresponding to OPTION-NAME. If ‘-o’ is
- supplied with no OPTION-NAME, ‘set’ prints the current shell
- options settings. If ‘+o’ is supplied with no OPTION-NAME,
- ‘set’ prints a series of ‘set’ commands to recreate the
- current option settings on the standard output. Valid option
- names are:
-
- ‘allexport’
- Same as ‘-a’.
-
- ‘braceexpand’
- Same as ‘-B’.
-
- ‘emacs’
- Use an ‘emacs’-style line editing interface (*note
- Command Line Editing::). This also affects the editing
- interface used for ‘read -e’.
-
- ‘errexit’
- Same as ‘-e’.
-
- ‘errtrace’
- Same as ‘-E’.
-
- ‘functrace’
- Same as ‘-T’.
-
- ‘hashall’
- Same as ‘-h’.
-
- ‘histexpand’
- Same as ‘-H’.
-
- ‘history’
- Enable command history, as described in *note Bash
- History Facilities::. This option is on by default in
- interactive shells.
-
- ‘ignoreeof’
- An interactive shell will not exit upon reading EOF.
-
- ‘keyword’
- Same as ‘-k’.
-
- ‘monitor’
- Same as ‘-m’.
-
- ‘noclobber’
- Same as ‘-C’.
-
- ‘noexec’
- Same as ‘-n’.
-
- ‘noglob’
- Same as ‘-f’.
-
- ‘nolog’
- Currently ignored.
-
- ‘notify’
- Same as ‘-b’.
-
- ‘nounset’
- Same as ‘-u’.
-
- ‘onecmd’
- Same as ‘-t’.
-
- ‘physical’
- Same as ‘-P’.
-
- ‘pipefail’
- If set, the return value of a pipeline is the value of
- the last (rightmost) command to exit with a non-zero
- status, or zero if all commands in the pipeline exit
- successfully. This option is disabled by default.
-
- ‘posix’
- Enable POSIX mode; change the behavior of Bash where the
- default operation differs from the POSIX standard to
- match the standard (*note Bash POSIX Mode::). This is
- intended to make Bash behave as a strict superset of that
- standard.
-
- ‘privileged’
- Same as ‘-p’.
-
- ‘verbose’
- Same as ‘-v’.
-
- ‘vi’
- Use a ‘vi’-style line editing interface. This also
- affects the editing interface used for ‘read -e’.
-
- ‘xtrace’
- Same as ‘-x’.
-
- ‘-p’
- Turn on privileged mode. In this mode, the ‘$BASH_ENV’ and
- ‘$ENV’ files are not processed, shell functions are not
- inherited from the environment, and the ‘SHELLOPTS’,
- ‘BASHOPTS’, ‘CDPATH’ and ‘GLOBIGNORE’ variables, if they
- appear in the environment, are ignored. If the shell is
- started with the effective user (group) id not equal to the
- real user (group) id, and the ‘-p’ option is not supplied,
- these actions are taken and the effective user id is set to
- the real user id. If the ‘-p’ option is supplied at startup,
- the effective user id is not reset. Turning this option off
- causes the effective user and group ids to be set to the real
- user and group ids.
-
- ‘-r’
- Enable restricted shell mode (*note The Restricted Shell::).
- This option cannot be unset once it has been set.
-
- ‘-t’
- Exit after reading and executing one command.
-
- ‘-u’
- Treat unset variables and parameters other than the special
- parameters ‘@’ or ‘*’, or array variables subscripted with ‘@’
- or ‘*’, as an error when performing parameter expansion. An
- error message will be written to the standard error, and a
- non-interactive shell will exit.
-
- ‘-v’
- Print shell input lines to standard error as they are read.
-
- ‘-x’
- Print a trace of simple commands, ‘for’ commands, ‘case’
- commands, ‘select’ commands, and arithmetic ‘for’ commands and
- their arguments or associated word lists to the standard error
- after they are expanded and before they are executed. The
- shell prints the expanded value of the ‘PS4’ variable before
- the command and its expanded arguments.
-
- ‘-B’
- The shell will perform brace expansion (*note Brace
- Expansion::). This option is on by default.
-
- ‘-C’
- Prevent output redirection using ‘>’, ‘>&’, and ‘<>’ from
- overwriting existing files. Using the redirection operator
- ‘>|’ instead of ‘>’ will override this and force the creation
- of an output file.
-
- ‘-E’
- If set, any trap on ‘ERR’ is inherited by shell functions,
- command substitutions, and commands executed in a subshell
- environment. The ‘ERR’ trap is normally not inherited in such
- cases.
-
- ‘-H’
- Enable ‘!’ style history substitution (*note History
- Interaction::). This option is on by default for interactive
- shells.
-
- ‘-P’
- If set, Bash does not resolve symbolic links when executing
- commands such as ‘cd’ which change the current directory. It
- uses the physical directory structure instead. By default,
- Bash follows the logical chain of directories when performing
- commands which change the current directory.
-
- For example, if ‘/usr/sys’ is a symbolic link to
- ‘/usr/local/sys’ then:
- $ cd /usr/sys; echo $PWD
- /usr/sys
- $ cd ..; pwd
- /usr
-
- If ‘set -P’ is on, then:
- $ cd /usr/sys; echo $PWD
- /usr/local/sys
- $ cd ..; pwd
- /usr/local
-
- ‘-T’
- If set, any traps on ‘DEBUG’ and ‘RETURN’ are inherited by
- shell functions, command substitutions, and commands executed
- in a subshell environment. The ‘DEBUG’ and ‘RETURN’ traps are
- normally not inherited in such cases.
-
- ‘--’
- If no arguments follow this option, unset the positional
- parameters. Otherwise, the positional parameters are set to
- the ARGUMENTS, even if some of them begin with a ‘-’.
-
- ‘-’
- Signal the end of options, and assign all remaining ARGUMENTS
- to the positional parameters. The ‘-x’ and ‘-v’ options are
- turned off. If there are no arguments, the positional
- parameters remain unchanged.
-
- Using ‘+’ rather than ‘-’ causes these options to be turned off.
- The options can also be used upon invocation of the shell. The
- current set of options may be found in ‘$-’.
-
- The remaining N ARGUMENTS are positional parameters and are
- assigned, in order, to ‘$1’, ‘$2’, ... ‘$N’. The special parameter
- ‘#’ is set to N.
-
- The return status is always zero unless an invalid option is
- supplied.
-
-\1f
-File: bashref.info, Node: The Shopt Builtin, Prev: The Set Builtin, Up: Modifying Shell Behavior
-
-4.3.2 The Shopt Builtin
------------------------
-
-This builtin allows you to change additional optional shell behavior.
-
-‘shopt’
- shopt [-pqsu] [-o] [OPTNAME ...]
-
- Toggle the values of settings controlling optional shell behavior.
- The settings can be either those listed below, or, if the ‘-o’
- option is used, those available with the ‘-o’ option to the ‘set’
- builtin command (*note The Set Builtin::).
-
- With no options, or with the ‘-p’ option, display a list of all
- settable options, with an indication of whether or not each is set;
- if any OPTNAMEs are supplied, the output is restricted to those
- options. The ‘-p’ option displays output in a form that may be
- reused as input.
-
- Other options have the following meanings:
-
- ‘-s’
- Enable (set) each OPTNAME.
-
- ‘-u’
- Disable (unset) each OPTNAME.
-
- ‘-q’
- Suppresses normal output; the return status indicates whether
- the OPTNAME is set or unset. If multiple OPTNAME arguments
- are supplied with ‘-q’, the return status is zero if all
- OPTNAMEs are enabled; non-zero otherwise.
-
- ‘-o’
- Restricts the values of OPTNAME to be those defined for the
- ‘-o’ option to the ‘set’ builtin (*note The Set Builtin::).
-
- If either ‘-s’ or ‘-u’ is used with no OPTNAME arguments, ‘shopt’
- shows only those options which are set or unset, respectively.
-
- Unless otherwise noted, the ‘shopt’ options are disabled (off) by
- default.
-
- The return status when listing options is zero if all OPTNAMEs are
- enabled, non-zero otherwise. When setting or unsetting options,
- the return status is zero unless an OPTNAME is not a valid shell
- option.
-
- The list of ‘shopt’ options is:
-
- ‘array_expand_once’
- If set, the shell suppresses multiple evaluation of
- associative and indexed array subscripts during arithmetic
- expression evaluation, while executing builtins that can
- perform variable assignments, and while executing builtins
- that perform array dereferencing.
-
- ‘assoc_expand_once’
- Deprecated; a synonym for ‘array_expand_once’.
-
- ‘autocd’
- If set, a command name that is the name of a directory is
- executed as if it were the argument to the ‘cd’ command. This
- option is only used by interactive shells.
-
- ‘bash_source_fullpath’
- If set, filenames added to the ‘BASH_SOURCE’ array variable
- are converted to full pathnames (*note Bash Variables::).
-
- ‘cdable_vars’
- If this is set, an argument to the ‘cd’ builtin command that
- is not a directory is assumed to be the name of a variable
- whose value is the directory to change to.
-
- ‘cdspell’
- If set, the ‘cd’ command attempts to correct minor errors in
- the spelling of a directory component. Minor errors include
- transposed characters, a missing character, and one extra
- character. If ‘cd’ corrects the directory name, it prints the
- corrected filename, and the command proceeds. This option is
- only used by interactive shells.
-
- ‘checkhash’
- If this is set, Bash checks that a command found in the hash
- table exists before trying to execute it. If a hashed command
- no longer exists, Bash performs a normal path search.
-
- ‘checkjobs’
- If set, Bash lists the status of any stopped and running jobs
- before exiting an interactive shell. If any jobs are running,
- Bash defers the exit until a second exit is attempted without
- an intervening command (*note Job Control::). The shell
- always postpones exiting if any jobs are stopped.
-
- ‘checkwinsize’
- If set, Bash checks the window size after each external
- (non-builtin) command and, if necessary, updates the values of
- ‘LINES’ and ‘COLUMNS’, using the file descriptor associated
- with stderr if it is a terminal. This option is enabled by
- default.
-
- ‘cmdhist’
- If set, Bash attempts to save all lines of a multiple-line
- command in the same history entry. This allows easy
- re-editing of multi-line commands. This option is enabled by
- default, but only has an effect if command history is enabled
- (*note Bash History Facilities::).
-
- ‘compat31’
- ‘compat32’
- ‘compat40’
- ‘compat41’
- ‘compat42’
- ‘compat43’
- ‘compat44’
- These control aspects of the shell's compatibility mode (*note
- Shell Compatibility Mode::).
-
- ‘complete_fullquote’
- If set, Bash quotes all shell metacharacters in filenames and
- directory names when performing completion. If not set, Bash
- removes metacharacters such as the dollar sign from the set of
- characters that will be quoted in completed filenames when
- these metacharacters appear in shell variable references in
- words to be completed. This means that dollar signs in
- variable names that expand to directories will not be quoted;
- however, any dollar signs appearing in filenames will not be
- quoted, either. This is active only when Bash is using
- backslashes to quote completed filenames. This variable is
- set by default, which is the default Bash behavior in versions
- through 4.2.
-
- ‘direxpand’
- If set, Bash replaces directory names with the results of word
- expansion when performing filename completion. This changes
- the contents of the Readline editing buffer. If not set, Bash
- attempts to preserve what the user typed.
-
- ‘dirspell’
- If set, Bash attempts spelling correction on directory names
- during word completion if the directory name initially
- supplied does not exist.
-
- ‘dotglob’
- If set, Bash includes filenames beginning with a ‘.’ in the
- results of filename expansion. The filenames ‘.’ and ‘..’
- must always be matched explicitly, even if ‘dotglob’ is set.
-
- ‘execfail’
- If this is set, a non-interactive shell will not exit if it
- cannot execute the file specified as an argument to the ‘exec’
- builtin. An interactive shell does not exit if ‘exec’ fails.
-
- ‘expand_aliases’
- If set, aliases are expanded as described below under Aliases,
- *note Aliases::. This option is enabled by default for
- interactive shells.
-
- ‘extdebug’
- If set at shell invocation, or in a shell startup file,
- arrange to execute the debugger profile before the shell
- starts, identical to the ‘--debugger’ option. If set after
- invocation, behavior intended for use by debuggers is enabled:
-
- 1. The ‘-F’ option to the ‘declare’ builtin (*note Bash
- Builtins::) displays the source file name and line number
- corresponding to each function name supplied as an
- argument.
-
- 2. If the command run by the ‘DEBUG’ trap returns a non-zero
- value, the next command is skipped and not executed.
-
- 3. If the command run by the ‘DEBUG’ trap returns a value of
- 2, and the shell is executing in a subroutine (a shell
- function or a shell script executed by the ‘.’ or
- ‘source’ builtins), the shell simulates a call to
- ‘return’.
-
- 4. ‘BASH_ARGC’ and ‘BASH_ARGV’ are updated as described in
- their descriptions (*note Bash Variables::).
-
- 5. Function tracing is enabled: command substitution, shell
- functions, and subshells invoked with ‘( COMMAND )’
- inherit the ‘DEBUG’ and ‘RETURN’ traps.
-
- 6. Error tracing is enabled: command substitution, shell
- functions, and subshells invoked with ‘( COMMAND )’
- inherit the ‘ERR’ trap.
-
- ‘extglob’
- If set, enable the extended pattern matching features
- described above (*note Pattern Matching::).
-
- ‘extquote’
- If set, ‘$'STRING'’ and ‘$"STRING"’ quoting is performed
- within ‘${PARAMETER}’ expansions enclosed in double quotes.
- This option is enabled by default.
-
- ‘failglob’
- If set, patterns which fail to match filenames during filename
- expansion result in an expansion error.
-
- ‘force_fignore’
- If set, the suffixes specified by the ‘FIGNORE’ shell variable
- cause words to be ignored when performing word completion even
- if the ignored words are the only possible completions. *Note
- Bash Variables::, for a description of ‘FIGNORE’. This option
- is enabled by default.
-
- ‘globasciiranges’
- If set, range expressions used in pattern matching bracket
- expressions (*note Pattern Matching::) behave as if in the
- traditional C locale when performing comparisons. That is,
- pattern matching does not take the current locale's collating
- sequence into account, so ‘b’ will not collate between ‘A’ and
- ‘B’, and upper-case and lower-case ASCII characters will
- collate together.
-
- ‘globskipdots’
- If set, filename expansion will never match the filenames ‘.’
- and ‘..’, even if the pattern begins with a ‘.’. This option
- is enabled by default.
-
- ‘globstar’
- If set, the pattern ‘**’ used in a filename expansion context
- will match all files and zero or more directories and
- subdirectories. If the pattern is followed by a ‘/’, only
- directories and subdirectories match.
-
- ‘gnu_errfmt’
- If set, shell error messages are written in the standard GNU
- error message format.
-
- ‘histappend’
- If set, the history list is appended to the file named by the
- value of the ‘HISTFILE’ variable when the shell exits, rather
- than overwriting the file.
-
- ‘histreedit’
- If set, and Readline is being used, the user is given the
- opportunity to re-edit a failed history substitution.
-
- ‘histverify’
- If set, and Readline is being used, the results of history
- substitution are not immediately passed to the shell parser.
- Instead, the resulting line is loaded into the Readline
- editing buffer, allowing further modification.
-
- ‘hostcomplete’
- If set, and Readline is being used, Bash will attempt to
- perform hostname completion when a word containing a ‘@’ is
- being completed (*note Commands For Completion::). This
- option is enabled by default.
-
- ‘huponexit’
- If set, Bash will send ‘SIGHUP’ to all jobs when an
- interactive login shell exits (*note Signals::).
-
- ‘inherit_errexit’
- If set, command substitution inherits the value of the
- ‘errexit’ option, instead of unsetting it in the subshell
- environment. This option is enabled when POSIX mode is
- enabled.
-
- ‘interactive_comments’
- In an interactive shell, a word beginning with ‘#’ causes that
- word and all remaining characters on that line to be ignored,
- as in a non-interactive shell. This option is enabled by
- default.
-
- ‘lastpipe’
- If set, and job control is not active, the shell runs the last
- command of a pipeline not executed in the background in the
- current shell environment.
-
- ‘lithist’
- If enabled, and the ‘cmdhist’ option is enabled, multi-line
- commands are saved to the history with embedded newlines
- rather than using semicolon separators where possible.
-
- ‘localvar_inherit’
- If set, local variables inherit the value and attributes of a
- variable of the same name that exists at a previous scope
- before any new value is assigned. The ‘nameref’ attribute is
- not inherited.
-
- ‘localvar_unset’
- If set, calling ‘unset’ on local variables in previous
- function scopes marks them so subsequent lookups find them
- unset until that function returns. This is identical to the
- behavior of unsetting local variables at the current function
- scope.
-
- ‘login_shell’
- The shell sets this option if it is started as a login shell
- (*note Invoking Bash::). The value may not be changed.
-
- ‘mailwarn’
- If set, and a file that Bash is checking for mail has been
- accessed since the last time it was checked, Bash displays the
- message ‘"The mail in MAILFILE has been read"’.
-
- ‘no_empty_cmd_completion’
- If set, and Readline is being used, Bash does not search the
- ‘PATH’ for possible completions when completion is attempted
- on an empty line.
-
- ‘nocaseglob’
- If set, Bash matches filenames in a case-insensitive fashion
- when performing filename expansion.
-
- ‘nocasematch’
- If set, Bash matches patterns in a case-insensitive fashion
- when performing matching while executing ‘case’ or ‘[[’
- conditional commands (*note Conditional Constructs::), when
- performing pattern substitution word expansions, or when
- filtering possible completions as part of programmable
- completion.
-
- ‘noexpand_translation’
- If set, Bash encloses the translated results of $"..." quoting
- in single quotes instead of double quotes. If the string is
- not translated, this has no effect.
-
- ‘nullglob’
- If set, filename expansion patterns which match no files
- (*note Filename Expansion::) expand to nothing and are
- removed, rather than expanding to themselves.
-
- ‘patsub_replacement’
- If set, Bash expands occurrences of ‘&’ in the replacement
- string of pattern substitution to the text matched by the
- pattern, as described above (*note Shell Parameter
- Expansion::). This option is enabled by default.
-
- ‘progcomp’
- If set, enable the programmable completion facilities (*note
- Programmable Completion::). This option is enabled by
- default.
-
- ‘progcomp_alias’
- If set, and programmable completion is enabled, Bash treats a
- command name that doesn't have any completions as a possible
- alias and attempts alias expansion. If it has an alias, Bash
- attempts programmable completion using the command word
- resulting from the expanded alias.
-
- ‘promptvars’
- If set, prompt strings undergo parameter expansion, command
- substitution, arithmetic expansion, and quote removal after
- being expanded as described below (*note Controlling the
- Prompt::). This option is enabled by default.
-
- ‘restricted_shell’
- The shell sets this option if it is started in restricted mode
- (*note The Restricted Shell::). The value may not be changed.
- This is not reset when the startup files are executed,
- allowing the startup files to discover whether or not a shell
- is restricted.
-
- ‘shift_verbose’
- If this is set, the ‘shift’ builtin prints an error message
- when the shift count exceeds the number of positional
- parameters.
-
- ‘sourcepath’
- If set, the ‘.’ (‘source’) builtin uses the value of ‘PATH’ to
- find the directory containing the file supplied as an argument
- when the ‘-p’ option is not supplied. This option is enabled
- by default.
-
- ‘varredir_close’
- If set, the shell automatically closes file descriptors
- assigned using the ‘{varname}’ redirection syntax (*note
- Redirections::) instead of leaving them open when the command
- completes.
-
- ‘xpg_echo’
- If set, the ‘echo’ builtin expands backslash-escape sequences
- by default. If the ‘posix’ shell option (*note The Set
- Builtin::) is also enabled, ‘echo’ does not interpret any
- options.
-
-\1f
-File: bashref.info, Node: Special Builtins, Prev: Modifying Shell Behavior, Up: Shell Builtin Commands
-
-4.4 Special Builtins
-====================
-
-For historical reasons, the POSIX standard has classified several
-builtin commands as _special_. When Bash is executing in POSIX mode,
-the special builtins differ from other builtin commands in three
-respects:
-
- 1. Special builtins are found before shell functions during command
- lookup.
-
- 2. If a special builtin returns an error status, a non-interactive
- shell exits.
-
- 3. Assignment statements preceding the command stay in effect in the
- shell environment after the command completes.
-
- When Bash is not executing in POSIX mode, these builtins behave no
-differently than the rest of the Bash builtin commands. The Bash POSIX
-mode is described in *note Bash POSIX Mode::.
-
- These are the POSIX special builtins:
- break : . source continue eval exec exit export readonly return set
- shift times trap unset
-
-\1f
-File: bashref.info, Node: Shell Variables, Next: Bash Features, Prev: Shell Builtin Commands, Up: Top
-
-5 Shell Variables
-*****************
-
-* Menu:
-
-* Bourne Shell Variables:: Variables which Bash uses in the same way
- as the Bourne Shell.
-* Bash Variables:: List of variables that exist in Bash.
-
-This chapter describes the shell variables that Bash uses. Bash
-automatically assigns default values to a number of variables.
-
-\1f
-File: bashref.info, Node: Bourne Shell Variables, Next: Bash Variables, Up: Shell Variables
-
-5.1 Bourne Shell Variables
-==========================
-
-Bash uses certain shell variables in the same way as the Bourne shell.
-In some cases, Bash assigns a default value to the variable.
-
-‘CDPATH’
- A colon-separated list of directories used as a search path for the
- ‘cd’ builtin command.
-
-‘HOME’
- The current user's home directory; the default for the ‘cd’ builtin
- command. The value of this variable is also used by tilde
- expansion (*note Tilde Expansion::).
-
-‘IFS’
- A list of characters that separate fields; used when the shell
- splits words as part of expansion and by the ‘read’ builtin to
- split lines into words. *Note Word Splitting::, for a description
- of word splitting.
-
-‘MAIL’
- If the value is set to a filename or directory name and the
- ‘MAILPATH’ variable is not set, Bash informs the user of the
- arrival of mail in the specified file or Maildir-format directory.
-
-‘MAILPATH’
- A colon-separated list of filenames which the shell periodically
- checks for new mail. Each list entry can specify the message that
- is printed when new mail arrives in the mail file by separating the
- filename from the message with a ‘?’. When used in the text of the
- message, ‘$_’ expands to the name of the current mail file.
-
-‘OPTARG’
- The value of the last option argument processed by the ‘getopts’
- builtin.
-
-‘OPTIND’
- The index of the next argument to be processed by the ‘getopts’
- builtin.
-
-‘PATH’
- A colon-separated list of directories in which the shell looks for
- commands. A zero-length (null) directory name in the value of
- ‘PATH’ 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 set by the
- administrator who installs ‘bash’. A common value is
- "/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin".
-
-‘PS1’
- The primary prompt string. The default value is ‘\s-\v\$ ’. *Note
- Controlling the Prompt::, for the complete list of escape sequences
- that are expanded before ‘PS1’ is displayed.
-
-‘PS2’
- The secondary prompt string. The default value is ‘> ’. ‘PS2’ is
- expanded in the same way as ‘PS1’ before being displayed.
-
-\1f
-File: bashref.info, Node: Bash Variables, Prev: Bourne Shell Variables, Up: Shell Variables
-
-5.2 Bash Variables
-==================
-
-These variables are set or used by Bash, but other shells do not
-normally treat them specially.
-
- A few variables used by Bash are described in different chapters:
-variables for controlling the job control facilities (*note Job Control
-Variables::).
-
-‘_’
- ($_, an underscore.) This has a number of meanings depending on
- context. At shell startup, $_ set to the pathname used to invoke
- the shell or shell script being executed as passed in the
- environment or argument list. Subsequently, it expands to the last
- argument to the previous simple command executed in the foreground,
- after expansion. It is also set to the full pathname used to
- invoke each command executed and placed in the environment exported
- to that command. When checking mail, $_ expands to the name of the
- mail file.
-
-‘BASH’
- The full pathname used to execute the current instance of Bash.
-
-‘BASHOPTS’
- A colon-separated list of enabled shell options. Each word in the
- list is a valid argument for the ‘-s’ option to the ‘shopt’ builtin
- 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. 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
- differs from ‘$$’ under certain circumstances, such as subshells
- that do not require Bash to be re-initialized. Assignments to
- ‘BASHPID’ have no effect. If ‘BASHPID’ is unset, it loses its
- special properties, even if it is subsequently reset.
-
-‘BASH_ALIASES’
- An associative array variable whose members correspond to the
- internal list of aliases as maintained by the ‘alias’ builtin.
- (*note Bourne Shell Builtins::). Elements added to this array
- appear in the alias list; however, unsetting array elements
- currently does not cause aliases to be removed from the alias list.
- If ‘BASH_ALIASES’ is unset, it loses its special properties, even
- if it is subsequently reset.
-
-‘BASH_ARGC’
- An array variable whose values are the number of parameters in each
- frame of the current Bash execution call stack. The number of
- parameters to the current subroutine (shell function or script
- executed with ‘.’ or ‘source’) is at the top of the stack. When a
- subroutine is executed, the number of parameters passed is pushed
- onto ‘BASH_ARGC’. The shell sets ‘BASH_ARGC’ only when in extended
- debugging mode (see *note The Shopt Builtin:: for a description of
- the ‘extdebug’ option to the ‘shopt’ builtin). Setting ‘extdebug’
- after the shell has started to execute a subroutine, or referencing
- this variable when ‘extdebug’ is not set, may result in
- inconsistent values. Assignments to ‘BASH_ARGC’ have no effect,
- and it may not be unset.
-
-‘BASH_ARGV’
- An array variable containing all of the parameters in the current
- Bash execution call stack. The final parameter of the last
- subroutine call is at the top of the stack; the first parameter of
- the initial call is at the bottom. When a subroutine is executed,
- the shell pushes the supplied parameters onto ‘BASH_ARGV’. The
- shell sets ‘BASH_ARGV’ only when in extended debugging mode (see
- *note The Shopt Builtin:: for a description of the ‘extdebug’
- option to the ‘shopt’ builtin). Setting ‘extdebug’ after the shell
- has started to execute a script, or referencing this variable when
- ‘extdebug’ is not set, may result in inconsistent values.
- Assignments to ‘BASH_ARGV’ have no effect, and it may not be unset.
-
-‘BASH_ARGV0’
- When referenced, this variable expands to the name of the shell or
- shell script (identical to ‘$0’; *Note Special Parameters::, for
- the description of special parameter 0). Assigning a value to
- ‘BASH_ARGV0’ sets ‘$0’ to the same value. If ‘BASH_ARGV0’ is
- unset, it loses its special properties, even if it is subsequently
- reset.
-
-‘BASH_CMDS’
- An associative array variable whose members correspond to the
- internal hash table of commands as maintained by the ‘hash’ builtin
- (*note Bourne Shell Builtins::). 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 ‘BASH_CMDS’ is unset, it loses its special properties,
- even if it is subsequently reset.
-
-‘BASH_COMMAND’
- 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 ‘BASH_COMMAND’ is unset, it loses its special
- properties, even if it is subsequently reset.
-
-‘BASH_COMPAT’
- The value is used to set the shell's compatibility level. *Note
- Shell Compatibility Mode::, for a description of the various
- compatibility levels and their effects. The value may be a decimal
- number (e.g., 4.2) or an integer (e.g., 42) corresponding to the
- desired compatibility level. If ‘BASH_COMPAT’ is unset or set to
- the empty string, the compatibility level is set to the default for
- the current version. If ‘BASH_COMPAT’ 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 (*note Shell Compatibility
- Mode::). For example, 4.2 and 42 are valid values that correspond
- to the ‘compat42’ ‘shopt’ option and set the compatibility level to
- 42. The current version is also a valid value.
-
-‘BASH_ENV’
- If this variable is set when Bash is invoked to execute a shell
- script, its value is expanded and used as the name of a startup
- file to read before executing the script. Bash does not use ‘PATH’
- to search for the resultant filename. *Note Bash Startup Files::.
-
-‘BASH_EXECUTION_STRING’
- The command argument to the ‘-c’ invocation option.
-
-‘BASH_LINENO’
- An array variable whose members are the line numbers in source
- files where each corresponding member of ‘FUNCNAME’ was invoked.
- ‘${BASH_LINENO[$i]}’ is the line number in the source file
- (‘${BASH_SOURCE[$i+1]}’) where ‘${FUNCNAME[$i]}’ was called (or
- ‘${BASH_LINENO[$i-1]}’ if referenced within another shell
- function). Use ‘LINENO’ to obtain the current line number.
- Assignments to ‘BASH_LINENO’ have no effect, and it may not be
- unset.
-
-‘BASH_LOADABLES_PATH’
- A colon-separated list of directories in which the ‘enable’ command
- looks for dynamically loadable builtins.
-
-‘BASH_MONOSECONDS’
- 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 ‘EPOCHSECONDS’.
- If ‘BASH_MONOSECONDS’ is unset, it loses its special properties,
- even if it is subsequently reset.
-
-‘BASH_REMATCH’
- An array variable whose members are assigned by the ‘=~’ binary
- operator to the ‘[[’ conditional command (*note Conditional
- Constructs::). The element with index 0 is the portion of the
- string matching the entire regular expression. The element with
- index N is the portion of the string matching the Nth parenthesized
- subexpression.
-
-‘BASH_SOURCE’
- An array variable whose members are the source filenames where the
- corresponding shell function names in the ‘FUNCNAME’ array variable
- are defined. The shell function ‘${FUNCNAME[$i]}’ is defined in
- the file ‘${BASH_SOURCE[$i]}’ and called from
- ‘${BASH_SOURCE[$i+1]}’ Assignments to ‘BASH_SOURCE’ have no effect,
- and it may not be unset.
-
-‘BASH_SUBSHELL’
- Incremented by one within each subshell or subshell environment
- when the shell begins executing in that environment. The initial
- value is 0. If ‘BASH_SUBSHELL’ is unset, it loses its special
- properties, even if it is subsequently reset.
-
-‘BASH_TRAPSIG’
- Set to the signal number corresponding to the trap action being
- executed during its execution. See the description of ‘trap’
- (*note Bourne Shell Builtins::) for information about signal
- numbers and trap execution.
-
-‘BASH_VERSINFO’
- A readonly array variable (*note Arrays::) whose members hold
- version information for this instance of Bash. The values assigned
- to the array members are as follows:
-
- ‘BASH_VERSINFO[0]’
- The major version number (the “release”).
-
- ‘BASH_VERSINFO[1]’
- The minor version number (the “version”).
-
- ‘BASH_VERSINFO[2]’
- The patch level.
-
- ‘BASH_VERSINFO[3]’
- The build version.
-
- ‘BASH_VERSINFO[4]’
- The release status (e.g., ‘beta’).
-
- ‘BASH_VERSINFO[5]’
- The value of ‘MACHTYPE’.
-
-‘BASH_VERSION’
- Expands to a string describing the version of this instance of Bash
- (e.g., 5.2.37(3)-release).
-
-‘BASH_XTRACEFD’
- If set to an integer corresponding to a valid file descriptor, Bash
- writes the trace output generated when ‘set -x’ is enabled to that
- file descriptor, instead of the standard error. This allows
- tracing output to be separated from diagnostic and error messages.
- The file descriptor is closed when ‘BASH_XTRACEFD’ is unset or
- assigned a new value. Unsetting ‘BASH_XTRACEFD’ or assigning it
- the empty string causes the trace output to be sent to the standard
- error. Note that setting ‘BASH_XTRACEFD’ to 2 (the standard error
- file descriptor) and then unsetting it will result in the standard
- error being closed.
-
-‘CHILD_MAX’
- Set the number of exited child status values for the shell to
- remember. Bash will not allow this value to be decreased below a
- POSIX-mandated minimum, and there is a maximum value (currently
- 8192) that this may not exceed. The minimum value is
- system-dependent.
-
-‘COLUMNS’
- Used by the ‘select’ command to determine the terminal width when
- printing selection lists. Automatically set if the ‘checkwinsize’
- option is enabled (*note The Shopt Builtin::), or in an interactive
- shell upon receipt of a ‘SIGWINCH’.
-
-‘COMP_CWORD’
- An index into ‘${COMP_WORDS}’ of the word containing the current
- cursor position. This variable is available only in shell
- functions invoked by the programmable completion facilities (*note
- Programmable Completion::).
-
-‘COMP_KEY’
- The key (or final key of a key sequence) used to invoke the current
- completion function. This variable is available only in shell
- functions and external commands invoked by the programmable
- completion facilities (*note Programmable Completion::).
-
-‘COMP_LINE’
- The current command line. This variable is available only in shell
- functions and external commands invoked by the programmable
- completion facilities (*note Programmable Completion::).
-
-‘COMP_POINT’
- The index of the current cursor position relative to the beginning
- 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
- ‘${#COMP_LINE}’. This variable is available only in shell
- functions and external commands invoked by the programmable
- completion facilities (*note Programmable Completion::).
-
-‘COMP_TYPE’
- Set to an integer value corresponding to the type of attempted
- completion that caused a completion function to be called: <TAB>,
- for normal completion, ‘?’, for listing completions after
- successive tabs, ‘!’, for listing alternatives on partial word
- completion, ‘@’, to list completions if the word is not unmodified,
- or ‘%’, for menu completion. This variable is available only in
- shell functions and external commands invoked by the programmable
- completion facilities (*note Programmable Completion::).
-
-‘COMP_WORDBREAKS’
- The set of characters that the Readline library treats as word
- separators when performing word completion. If ‘COMP_WORDBREAKS’
- is unset, it loses its special properties, even if it is
- subsequently reset.
-
-‘COMP_WORDS’
- An array variable consisting of the individual words in the current
- command line. The line is split into words as Readline would split
- it, using ‘COMP_WORDBREAKS’ as described above. This variable is
- available only in shell functions invoked by the programmable
- completion facilities (*note Programmable Completion::).
-
-‘COMPREPLY’
- An array variable from which Bash reads the possible completions
- generated by a shell function invoked by the programmable
- completion facility (*note Programmable Completion::). Each array
- element contains one possible completion.
-
-‘COPROC’
- An array variable created to hold the file descriptors for output
- from and input to an unnamed coprocess (*note Coprocesses::).
-
-‘DIRSTACK’
- An array variable containing the current contents of the directory
- stack. Directories appear in the stack in the order they are
- displayed by the ‘dirs’ builtin. Assigning to members of this
- array variable may be used to modify directories already in the
- stack, but the ‘pushd’ and ‘popd’ builtins must be used to add and
- remove directories. Assigning to this variable does not change the
- current directory. If ‘DIRSTACK’ is unset, it loses its special
- properties, even if it is subsequently reset.
-
-‘EMACS’
- If Bash finds this variable in the environment when the shell
- starts, and its value is ‘t’, Bash assumes that the shell is
- running in an Emacs shell buffer and disables line editing.
-
-‘ENV’
- Expanded and executed similarly to ‘BASH_ENV’ (*note Bash Startup
- Files::) when an interactive shell is invoked in POSIX mode (*note
- Bash POSIX Mode::).
-
-‘EPOCHREALTIME’
- Each time this parameter is referenced, it expands to the number of
- seconds since the Unix Epoch as a floating-point value with
- micro-second granularity (see the documentation for the C library
- function ‘time’ for the definition of Epoch). Assignments to
- ‘EPOCHREALTIME’ are ignored. If ‘EPOCHREALTIME’ is unset, it loses
- its special properties, even if it is subsequently reset.
-
-‘EPOCHSECONDS’
- Each time this parameter is referenced, it expands to the number of
- seconds since the Unix Epoch (see the documentation for the C
- library function ‘time’ for the definition of Epoch). Assignments
- to ‘EPOCHSECONDS’ are ignored. If ‘EPOCHSECONDS’ is unset, it
- loses its special properties, even if it is subsequently reset.
-
-‘EUID’
- The numeric effective user id of the current user. This variable
- is readonly.
-
-‘EXECIGNORE’
- A colon-separated list of shell patterns (*note Pattern Matching::)
- defining the set of filenames to be ignored by command search using
- ‘PATH’. Files whose full pathnames match one of these patterns are
- not considered executable files for the purposes of completion and
- command execution via ‘PATH’ lookup. This does not affect the
- behavior of the ‘[’, ‘test’, and ‘[[’ commands. Full pathnames in
- the command hash table are not subject to ‘EXECIGNORE’. 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 ‘extglob’ shell option.
-
-‘FCEDIT’
- The editor used as a default by the ‘fc’ builtin command.
-
-‘FIGNORE’
- A colon-separated list of suffixes to ignore when performing
- filename completion. A filename whose suffix matches one of the
- entries in ‘FIGNORE’ is excluded from the list of matched
- filenames. A sample value is ‘.o:~’
-
-‘FUNCNAME’
- 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
- bottom-most element (the one with the highest index) is ‘"main"’.
- This variable exists only when a shell function is executing.
- Assignments to ‘FUNCNAME’ have no effect. If ‘FUNCNAME’ is unset,
- it loses its special properties, even if it is subsequently reset.
-
- This variable can be used with ‘BASH_LINENO’ and ‘BASH_SOURCE’.
- Each element of ‘FUNCNAME’ has corresponding elements in
- ‘BASH_LINENO’ and ‘BASH_SOURCE’ to describe the call stack. For
- instance, ‘${FUNCNAME[$i]}’ was called from the file
- ‘${BASH_SOURCE[$i+1]}’ at line number ‘${BASH_LINENO[$i]}’. The
- ‘caller’ builtin displays the current call stack using this
- information.
-
-‘FUNCNEST’
- 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.
-
-‘GLOBIGNORE’
- A colon-separated list of patterns defining the set of file names
- to be ignored by filename expansion. If a file name matched by a
- filename expansion pattern also matches one of the patterns in
- ‘GLOBIGNORE’, it is removed from the list of matches. The pattern
- matching honors the setting of the ‘extglob’ shell option.
-
-‘GLOBSORT’
- Controls how the results of filename expansion are sorted. The
- value of this variable specifies the sort criteria and sort order
- for the results of filename expansion. If this variable is unset
- or set to the null string, filename expansion uses the historical
- behavior of sorting by name, in ascending lexicographic order as
- determined by the ‘LC_COLLATE’ shell variable.
-
- If set, a valid value begins with an optional ‘+’, which is
- ignored, or ‘-’, which reverses the sort order from ascending to
- descending, followed by a sort specifier. The valid sort
- specifiers are ‘name’, ‘numeric’, ‘size’, ‘mtime’, ‘atime’,
- ‘ctime’, and ‘blocks’, which sort the files on name, names in
- numeric rather than lexicographic order, file size, modification
- time, access time, inode 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 ‘-mtime’ sorts the results in descending
- order by modification time (newest first).
-
- The ‘numeric’ 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 ‘numeric’, names containing
- non-digits sort after all the all-digit names and are sorted by
- name using the traditional behavior.
-
- A sort specifier of ‘nosort’ disables sorting completely; Bash
- returns the results in the order they are read from the file
- system, ignoring any leading ‘-’.
-
- If the sort specifier is missing, it defaults to NAME, so a value
- of ‘+’ is equivalent to the null string, and a value of ‘-’ sorts
- by name in descending order.
-
- Any invalid value restores the historical sorting behavior.
-
-‘GROUPS’
- An array variable containing the list of groups of which the
- current user is a member. Assignments to ‘GROUPS’ have no effect.
- If ‘GROUPS’ is unset, it loses its special properties, even if it
- is subsequently reset.
-
-‘histchars’
- The two or three characters which control history expansion, quick
- substitution, and tokenization (*note History Interaction::). The
- first character is the “history expansion” character, the character
- which begins a history expansion, normally ‘!’. The second
- character is the “quick substitution” character, normally ‘^’.
- 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 “history
- comment” character, normally ‘#’, 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.
-
-‘HISTCMD’
- The history number, or index in the history list, of the current
- command. Assignments to ‘HISTCMD’ have no effect. If ‘HISTCMD’ is
- unset, it loses its special properties, even if it is subsequently
- reset.
-
-‘HISTCONTROL’
- A colon-separated list of values controlling how commands are saved
- on the history list. If the list of values includes ‘ignorespace’,
- lines which begin with a space character are not saved in the
- history list. A value of ‘ignoredups’ causes lines which match the
- previous history entry not to be saved. A value of ‘ignoreboth’ is
- shorthand for ‘ignorespace’ and ‘ignoredups’. A value of
- ‘erasedups’ 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 ‘HISTCONTROL’ is unset,
- or does not include a valid value, Bash saves all lines read by the
- shell parser on the history list, subject to the value of
- ‘HISTIGNORE’. 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 ‘HISTCONTROL’. If
- the first line was not saved, the second and subsequent lines of
- the command are not saved either.
-
-‘HISTFILE’
- The name of the file to which the command history is saved. Bash
- assigns a default value of ‘~/.bash_history’. If ‘HISTFILE’ is
- unset or null, the shell does not save the command history when it
- exits.
-
-‘HISTFILESIZE’
- The maximum number of lines contained in the history file. When
- this variable is assigned a value, the history file is truncated,
- if necessary, to contain no more than the number of history entries
- that total no more than that number of lines by removing the oldest
- entries. If the history list contains multi-line entries, the
- history file may contain more lines than this maximum to avoid
- leaving partial history entries. The history file is also
- truncated to this size after writing it when a shell exits or by
- the ‘history’ 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 ‘HISTSIZE’ after reading any startup files.
-
-‘HISTIGNORE’
- 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 ‘HISTIGNORE’, it is not
- saved on the history list. Each pattern is anchored at the
- beginning of the line and must match the complete line (Bash does
- not implicitly append a ‘*’). Each pattern is tested against the
- line after the checks specified by ‘HISTCONTROL’ are applied. In
- addition to the normal shell pattern matching characters, ‘&’
- matches the previous history line. A backslash escapes the ‘&’;
- 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 ‘HISTIGNORE’. If the first line was not
- saved, the second and subsequent lines of the command are not saved
- either. The pattern matching honors the setting of the ‘extglob’
- shell option.
-
- ‘HISTIGNORE’ subsumes some of the function of ‘HISTCONTROL’. A
- pattern of ‘&’ is identical to ‘ignoredups’, and a pattern of ‘[
- ]*’ is identical to ‘ignorespace’. Combining these two patterns,
- separating them with a colon, provides the functionality of
- ‘ignoreboth’.
-
-‘HISTSIZE’
- The maximum number of commands to remember on the history list. 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 startup files.
-
-‘HISTTIMEFORMAT’
- If this variable is set and not null, its value is used as a format
- string for ‘strftime’(3) to print the time stamp associated with
- each history entry displayed by the ‘history’ builtin. If this
- variable is set, the shell writes time stamps to the history file
- so they may be preserved across shell sessions. This uses the
- history comment character to distinguish timestamps from other
- history lines.
-
-‘HOSTFILE’
- Contains the name of a file in the same format as ‘/etc/hosts’ 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 attempted
- after the value is changed, Bash adds the contents of the new file
- to the existing list. If ‘HOSTFILE’ is set, but has no value, or
- does not name a readable file, Bash attempts to read ‘/etc/hosts’
- to obtain the list of possible hostname completions. When
- ‘HOSTFILE’ is unset, Bash clears the hostname list.
-
-‘HOSTNAME’
- The name of the current host.
-
-‘HOSTTYPE’
- A string describing the machine Bash is running on.
-
-‘IGNOREEOF’
- Controls the action of the shell on receipt of an ‘EOF’ character
- as the sole input. If set, the value is the number of consecutive
- ‘EOF’ characters that can be read as the first character on an
- input line before Bash exits. If the variable is set but does not
- have a numeric value, or the value is null, then the default is 10.
- If the variable is unset, then ‘EOF’ signifies the end of input to
- the shell. This is only in effect for interactive shells.
-
-‘INPUTRC’
- The name of the Readline initialization file, overriding the
- default of ‘~/.inputrc’.
-
-‘INSIDE_EMACS’
- If Bash finds this variable in the environment when the shell
- starts, it assumes that the shell is running in an Emacs shell
- buffer and may disable line editing depending on the value of
- ‘TERM’.
-
-‘LANG’
- Used to determine the locale category for any category not
- specifically selected with a variable starting with ‘LC_’.
-
-‘LC_ALL’
- This variable overrides the value of ‘LANG’ and any other ‘LC_’
- variable specifying a locale category.
-
-‘LC_COLLATE’
- This variable determines the collation order used when sorting the
- results of filename expansion, and determines the behavior of range
- expressions, equivalence classes, and collating sequences within
- filename expansion and pattern matching (*note Filename
- Expansion::).
-
-‘LC_CTYPE’
- This variable determines the interpretation of characters and the
- behavior of character classes within filename expansion and pattern
- matching (*note Filename Expansion::).
-
-‘LC_MESSAGES’
- This variable determines the locale used to translate double-quoted
- strings preceded by a ‘$’ (*note Locale Translation::).
-
-‘LC_NUMERIC’
- This variable determines the locale category used for number
- formatting.
-
-‘LC_TIME’
- This variable determines the locale category used for data and time
- formatting.
-
-‘LINENO’
- The line number in the script or shell function currently
- executing. Line numbers start with 1. When not in a script or
- function, the value is not guaranteed to be meaningful. If
- ‘LINENO’ is unset, it loses its special properties, even if it is
- subsequently reset.
-
-‘LINES’
- Used by the ‘select’ command to determine the column length for
- printing selection lists. Automatically set if the ‘checkwinsize’
- option is enabled (*note The Shopt Builtin::), or in an interactive
- shell upon receipt of a ‘SIGWINCH’.
-
-‘MACHTYPE’
- A string that fully describes the system type on which Bash is
- executing, in the standard GNU CPU-COMPANY-SYSTEM format.
-
-‘MAILCHECK’
- How often (in seconds) that the shell should check for mail in the
- files specified in the ‘MAILPATH’ or ‘MAIL’ variables. The default
- 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.
-
-‘MAPFILE’
- An array variable created to hold the text read by the ‘mapfile’
- builtin when no variable name is supplied.
-
-‘OLDPWD’
- The previous working directory as set by the ‘cd’ builtin.
-
-‘OPTERR’
- If set to the value 1, Bash displays error messages generated by
- the ‘getopts’ builtin command. ‘OPTERR’ is initialized to 1 each
- time the shell is invoked.
-
-‘OSTYPE’
- A string describing the operating system Bash is running on.
-
-‘PIPESTATUS’
- An array variable (*note Arrays::) 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 (*note Shell
- Commands::). Bash sets ‘PIPESTATUS’ after executing multi-element
- pipelines, timed and negated pipelines, simple commands, subshells
- created with the ‘(’ operator, the ‘[[’ and ‘((’ compound commands,
- and after error conditions that result in the shell aborting
- command execution.
-
-‘POSIXLY_CORRECT’
- If this variable is in the environment when Bash starts, the shell
- enters POSIX mode (*note Bash POSIX Mode::) before reading the
- startup files, as if the ‘--posix’ invocation option had been
- supplied. If it is set while the shell is running, Bash 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.
-
-‘PPID’
- The process ID of the shell's parent process. This variable is
- readonly.
-
-‘PROMPT_COMMAND’
- If this variable is set, and is an array, the value of each set
- element is interpreted as a command to execute before printing the
- primary prompt (‘$PS1’). If this is set but not an array variable,
- its value is used as a command to execute instead.
-
-‘PROMPT_DIRTRIM’
- If set to a number greater than zero, the value is used as the
- number of trailing directory components to retain when expanding
- the ‘\w’ and ‘\W’ prompt string escapes (*note Controlling the
- Prompt::). Characters removed are replaced with an ellipsis.
-
-‘PS0’
- The value of this parameter is expanded like ‘PS1’ and displayed by
- interactive shells after reading a command and before the command
- is executed.
-
-‘PS3’
- The value of this variable is used as the prompt for the ‘select’
- command. If this variable is not set, the ‘select’ command prompts
- with ‘#? ’
-
-‘PS4’
- The value of this parameter is expanded like ‘PS1’ and the expanded
- value is the prompt printed before the command line is echoed when
- the ‘-x’ option is set (*note The Set Builtin::). The first
- character of the expanded value is replicated multiple times, as
- necessary, to indicate multiple levels of indirection. The default
- is ‘+ ’.
-
-‘PWD’
- The current working directory as set by the ‘cd’ builtin.
-
-‘RANDOM’
- Each time this parameter is referenced, it expands to a random
- integer between 0 and 32767. Assigning a value to ‘RANDOM’
- initializes (seeds) the sequence of random numbers. Seeding the
- random number generator with the same constant value produces the
- same sequence of values. If ‘RANDOM’ is unset, it loses its
- special properties, even if it is subsequently reset.
-
-‘READLINE_ARGUMENT’
- Any numeric argument given to a Readline command that was defined
- using ‘bind -x’ (*note Bash Builtins::) when it was invoked.
-
-‘READLINE_LINE’
- The contents of the Readline line buffer, for use with ‘bind -x’
- (*note Bash Builtins::).
-
-‘READLINE_MARK’
- The position of the “mark” (saved insertion point) in the Readline
- line buffer, for use with ‘bind -x’ (*note Bash Builtins::). The
- characters between the insertion point and the mark are often
- called the “region”.
-
-‘READLINE_POINT’
- The position of the insertion point in the Readline line buffer,
- for use with ‘bind -x’ (*note Bash Builtins::).
-
-‘REPLY’
- The default variable for the ‘read’ builtin; set to the line read
- when ‘read’ is not supplied a variable name argument.
-
-‘SECONDS’
- This variable expands to the number of seconds since the shell was
- started. Assignment to this variable resets the count to the value
- assigned, and the expanded value becomes the value assigned plus
- the number of seconds since the assignment. The number of seconds
- at shell invocation and the current time are always determined by
- querying the system clock at one-second resolution. If ‘SECONDS’
- is unset, it loses its special properties, even if it is
- subsequently reset.
-
-‘SHELL’
- This environment variable expands to the full pathname to the
- shell. If it is not set when the shell starts, Bash assigns to it
- the full pathname of the current user's login shell.
-
-‘SHELLOPTS’
- A colon-separated list of enabled shell options. Each word in the
- list is a valid argument for the ‘-o’ option to the ‘set’ builtin
- command (*note The Set Builtin::). The options appearing in
- ‘SHELLOPTS’ are those reported as ‘on’ by ‘set -o’. If this
- variable is in the environment when Bash starts up, the shell
- enables each 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.
-
-‘SHLVL’
- Incremented by one each time a new instance of Bash is started.
- This is intended to be a count of how deeply your Bash shells are
- nested.
-
-‘SRANDOM’
- This variable expands to a 32-bit pseudo-random number each time it
- is referenced. The random number generator is not linear on
- systems that support ‘/dev/urandom’ or ‘arc4random’, so each
- returned number has no relationship to the numbers preceding it.
- The random number generator cannot be seeded, so assignments to
- this variable have no effect. If ‘SRANDOM’ is unset, it loses its
- special properties, even if it is subsequently reset.
-
-‘TIMEFORMAT’
- The value of this parameter is used as a format string specifying
- how the timing information for pipelines prefixed with the ‘time’
- reserved word should be displayed. The ‘%’ character introduces 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.
-
- ‘%%’
- A literal ‘%’.
-
- ‘%[P][l]R’
- The elapsed time in seconds.
-
- ‘%[P][l]U’
- The number of CPU seconds spent in user mode.
-
- ‘%[P][l]S’
- The number of CPU seconds spent in system mode.
-
- ‘%P’
- The CPU percentage, computed as (%U + %S) / %R.
-
- The optional P is a digit specifying the precision, the number of
- fractional digits after a decimal point. A value of 0 causes no
- decimal point or fraction to be output. ‘time’ prints at most six
- digits after the decimal point; values of P greater than 6 are
- changed to 6. If P is not specified, ‘time’ prints three digits
- after the decimal point.
-
- The optional ‘l’ specifies a longer format, including minutes, of
- the form MMmSS.FFs. The value of P determines whether or not the
- fraction is included.
-
- If this variable is not set, Bash acts as if it had the value
- $'\nreal\t%3lR\nuser\t%3lU\nsys\t%3lS'
- If the value is null, Bash does not display any timing information.
- A trailing newline is added when the format string is displayed.
-
-‘TMOUT’
- If set to a value greater than zero, the ‘read’ builtin uses the
- value as its default timeout (*note Bash Builtins::). The ‘select’
- command (*note Conditional Constructs::) terminates if input does
- not arrive after ‘TMOUT’ seconds when input is coming from a
- terminal.
-
- In an interactive shell, the value is interpreted as the number of
- seconds to wait for a line of input after issuing the primary
- prompt. Bash terminates after waiting for that number of seconds
- if a complete line of input does not arrive.
-
-‘TMPDIR’
- If set, Bash uses its value as the name of a directory in which
- Bash creates temporary files for the shell's use.
-
-‘UID’
- The numeric real user id of the current user. This variable is
- readonly.
-
-\1f
-File: bashref.info, Node: Bash Features, Next: Job Control, Prev: Shell Variables, Up: Top
-
-6 Bash Features
-***************
-
-This chapter describes features unique to Bash.
-
-* Menu:
-
-* Invoking Bash:: Command line options that you can give
- to Bash.
-* Bash Startup Files:: When and how Bash executes scripts.
-* Interactive Shells:: What an interactive shell is.
-* Bash Conditional Expressions:: Primitives used in composing expressions for
- the ‘test’ builtin.
-* Shell Arithmetic:: Arithmetic on shell variables.
-* Aliases:: Substituting one command for another.
-* Arrays:: Array Variables.
-* The Directory Stack:: History of visited directories.
-* Controlling the Prompt:: Customizing the various prompt strings.
-* The Restricted Shell:: A more controlled mode of shell execution.
-* Bash POSIX Mode:: Making Bash behave more closely to what
- the POSIX standard specifies.
-* Shell Compatibility Mode:: How Bash supports behavior that was present
- in earlier versions and has changed.
-
-\1f
-File: bashref.info, Node: Invoking Bash, Next: Bash Startup Files, Up: Bash Features
-
-6.1 Invoking Bash
-=================
-
- bash [long-opt] [-ir] [-abefhkmnptuvxdBCDHP] [-o OPTION]
- [-O SHOPT_OPTION] [ARGUMENT ...]
- bash [long-opt] [-abefhkmnptuvxdBCDHP] [-o OPTION]
- [-O SHOPT_OPTION] -c STRING [ARGUMENT ...]
- bash [long-opt] -s [-abefhkmnptuvxdBCDHP] [-o OPTION]
- [-O SHOPT_OPTION] [ARGUMENT ...]
-
- All of the single-character options used with the ‘set’ builtin
-(*note The Set Builtin::) can be used as options when the shell is
-invoked. In addition, there are several multi-character options that
-you can use. These options must appear on the command line before the
-single-character options to be recognized.
-
-‘--debugger’
- Arrange for the debugger profile to be executed before the shell
- starts. Turns on extended debugging mode (see *note The Shopt
- Builtin:: for a description of the ‘extdebug’ option to the ‘shopt’
- builtin).
-
-‘--dump-po-strings’
- Print a list of all double-quoted strings preceded by ‘$’ on the
- standard output in the GNU ‘gettext’ PO (portable object) file
- format. Equivalent to ‘-D’ except for the output format.
-
-‘--dump-strings’
- Equivalent to ‘-D’.
-
-‘--help’
- Display a usage message on standard output and exit successfully.
-
-‘--init-file FILENAME’
-‘--rcfile FILENAME’
- Execute commands from FILENAME (instead of ‘~/.bashrc’) in an
- interactive shell.
-
-‘--login’
- Equivalent to ‘-l’.
-
-‘--noediting’
- Do not use the GNU Readline library (*note Command Line Editing::)
- to read command lines when the shell is interactive.
-
-‘--noprofile’
- Don't load the system-wide startup file ‘/etc/profile’ or any of
- the personal initialization files ‘~/.bash_profile’,
- ‘~/.bash_login’, or ‘~/.profile’ when Bash is invoked as a login
- shell.
-
-‘--norc’
- Don't read the ‘~/.bashrc’ initialization file in an interactive
- shell. This is on by default if the shell is invoked as ‘sh’.
-
-‘--posix’
- Enable POSIX mode; change the behavior of Bash where the default
- operation differs from the POSIX standard to match the standard.
- This is intended to make Bash behave as a strict superset of that
- standard. *Note Bash POSIX Mode::, for a description of the Bash
- POSIX mode.
-
-‘--restricted’
- Equivalent to ‘-r’. Make the shell a restricted shell (*note The
- Restricted Shell::).
-
-‘--verbose’
- Equivalent to ‘-v’. Print shell input lines as they're read.
-
-‘--version’
- Show version information for this instance of Bash on the standard
- output and exit successfully.
-
- There are several single-character options that may be supplied at
-invocation which are not available with the ‘set’ builtin.
-
-‘-c’
- Read and execute commands from the first non-option argument
- COMMAND_STRING, then exit. If there are arguments after the
- COMMAND_STRING, the first argument is assigned to ‘$0’ and any
- remaining arguments are assigned to the positional parameters. The
- assignment to ‘$0’ sets the name of the shell, which is used in
- warning and error messages.
-
-‘-i’
- Force the shell to run interactively. Interactive shells are
- described in *note Interactive Shells::.
-
-‘-l’
- Make this shell act as if it had been directly invoked by login.
- When the shell is interactive, this is equivalent to starting a
- login shell with ‘exec -l bash’. When the shell is not
- interactive, it will read and execute the login shell startup
- files. ‘exec bash -l’ or ‘exec bash --login’ will replace the
- current shell with a Bash login shell. *Note Bash Startup Files::,
- for a description of the special behavior of a login shell.
-
-‘-r’
- Make the shell a restricted shell (*note The Restricted Shell::).
-
-‘-s’
- If this option is present, or if no arguments remain after option
- processing, then Bash reads commands from the standard input. This
- option allows the positional parameters to be set when invoking an
- interactive shell or when reading input through a pipe.
-
-‘-D’
- Print a list of all double-quoted strings preceded by ‘$’ on the
- standard output. These are the strings that are subject to
- language translation when the current locale is not ‘C’ or ‘POSIX’
- (*note Locale Translation::). This implies the ‘-n’ option; no
- commands will be executed.
-
-‘[-+]O [SHOPT_OPTION]’
- SHOPT_OPTION is one of the shell options accepted by the ‘shopt’
- builtin (*note The Shopt Builtin::). If SHOPT_OPTION is present,
- ‘-O’ sets the value of that option; ‘+O’ unsets it. If
- SHOPT_OPTION is not supplied, Bash prints the names and values of
- the shell options accepted by ‘shopt’ on the standard output. If
- the invocation option is ‘+O’, the output is displayed in a format
- that may be reused as input.
-
-‘--’
- A ‘--’ signals the end of options and disables further option
- processing. Any arguments after the ‘--’ are treated as a shell
- script filename (*note Shell Scripts::) and arguments passed to
- that script.
-
-‘-’
- Equivalent to ‘--’.
-
- A “login shell” is one whose first character of argument zero is ‘-’,
-or one invoked with the ‘--login’ option.
-
- An “interactive shell” is one started without non-option arguments,
-unless ‘-s’ is specified, without specifying the ‘-c’ option, and whose
-standard input and standard error are both connected to terminals (as
-determined by isatty(3)), or one started with the ‘-i’ option. *Note
-Interactive Shells::, for more information.
-
- If arguments remain after option processing, and neither the ‘-c’ nor
-the ‘-s’ option has been supplied, the first argument is treated as the
-name of a file containing shell commands (*note Shell Scripts::). When
-Bash is invoked in this fashion, ‘$0’ is set to the name of the file,
-and the positional parameters are set to the remaining arguments. Bash
-reads and executes commands from this file, then exits. Bash's exit
-status is the exit status of the last command executed in the script.
-If no commands are executed, the exit status is 0. Bash first attempts
-to open the file in the current directory, and, if no file is found,
-searches the directories in ‘PATH’ for the script.
-
-\1f
-File: bashref.info, Node: Bash Startup Files, Next: Interactive Shells, Prev: Invoking Bash, Up: Bash Features
-
-6.2 Bash Startup Files
-======================
-
-This section describes how Bash executes its startup files. If any of
-the files exist but cannot be read, Bash reports an error. Tildes are
-expanded in filenames as described above under Tilde Expansion (*note
-Tilde Expansion::).
-
- Interactive shells are described in *note Interactive Shells::.
-
-Invoked as an interactive login shell, or with ‘--login’
-........................................................
-
-When Bash is invoked as an interactive login shell, or as a
-non-interactive shell with the ‘--login’ option, it first reads and
-executes commands from the file ‘/etc/profile’, if that file exists.
-After reading that file, it looks for ‘~/.bash_profile’,
-‘~/.bash_login’, and ‘~/.profile’, in that order, and reads and executes
-commands from the first one that exists and is readable. The
-‘--noprofile’ option inhibits this behavior.
-
- When an interactive login shell exits, or a non-interactive login
-shell executes the ‘exit’ builtin command, Bash reads and executes
-commands from the file ‘~/.bash_logout’, if it exists.
-
-Invoked as an interactive non-login shell
-.........................................
-
-When Bash runs as an interactive shell that is not a login shell, it
-reads and executes commands from ‘~/.bashrc’, if that file exists. The
-‘--norc’ option inhibits this behavior. The ‘--rcfile FILE’ option
-causes Bash to use FILE instead of ‘~/.bashrc’.
-
- So, typically, your ‘~/.bash_profile’ contains the line
- if [ -f ~/.bashrc ]; then . ~/.bashrc; fi
-after (or before) any login-specific initializations.
-
-Invoked non-interactively
-.........................
-
-When Bash is started non-interactively, to run a shell script, for
-example, it looks for the variable ‘BASH_ENV’ in the environment,
-expands its value if it appears there, and uses the expanded value as
-the name of a file to read and execute. Bash behaves as if the
-following command were executed:
- if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi
-but does not the value of the ‘PATH’ variable to search for the
-filename.
-
- As noted above, if a non-interactive shell is invoked with the
-‘--login’ option, Bash attempts to read and execute commands from the
-login shell startup files.
-
-Invoked with name ‘sh’
-......................
-
-If Bash is invoked with the name ‘sh’, it tries to mimic the startup
-behavior of historical versions of ‘sh’ as closely as possible, while
-conforming to the POSIX standard as well.
-
- When invoked as an interactive login shell, or as a non-interactive
-shell with the ‘--login’ option, it first attempts to read and execute
-commands from ‘/etc/profile’ and ‘~/.profile’, in that order. The
-‘--noprofile’ option inhibits this behavior.
-
- When invoked as an interactive shell with the name ‘sh’, Bash looks
-for the variable ‘ENV’, expands its value if it is defined, and uses the
-expanded value as the name of a file to read and execute. Since a shell
-invoked as ‘sh’ does not attempt to read and execute commands from any
-other startup files, the ‘--rcfile’ option has no effect.
-
- A non-interactive shell invoked with the name ‘sh’ does not attempt
-to read any other startup files.
-
- When invoked as ‘sh’, Bash enters POSIX mode after reading the
-startup files.
-
-Invoked in POSIX mode
-.....................
-
-When Bash is started in POSIX mode, as with the ‘--posix’ command line
-option, it follows the POSIX standard for startup files. In this mode,
-interactive shells expand the ‘ENV’ variable and read and execute
-commands from the file whose name is the expanded value. No other
-startup files are read.
-
-Invoked by remote shell daemon
-..............................
-
-Bash attempts to determine when it is being run with its standard input
-connected to a network connection, as when executed by the historical
-and rarely-seen remote shell daemon, usually ‘rshd’, or the secure shell
-daemon ‘sshd’. If Bash determines it is being run non-interactively in
-this fashion, it reads and executes commands from ‘~/.bashrc’, if that
-file exists and is readable. Bash does not read this file if invoked as
-‘sh’. The ‘--norc’ option inhibits this behavior, and the ‘--rcfile’
-option makes Bash use a different file instead of ‘~/.bashrc’, but
-neither ‘rshd’ nor ‘sshd’ generally invoke the shell with those options
-or allow them to be specified.
-
-Invoked with unequal effective and real UID/GIDs
-................................................
-
-If Bash is started with the effective user (group) id not equal to the
-real user (group) id, and the ‘-p’ option is not supplied, no startup
-files are read, shell functions are not inherited from the environment,
-the ‘SHELLOPTS’, ‘BASHOPTS’, ‘CDPATH’, and ‘GLOBIGNORE’ variables, if
-they appear in the environment, are ignored, and the effective user id
-is set to the real user id. If the ‘-p’ option is supplied at
-invocation, the startup behavior is the same, but the effective user id
-is not reset.
-
-\1f
-File: bashref.info, Node: Interactive Shells, Next: Bash Conditional Expressions, Prev: Bash Startup Files, Up: Bash Features
-
-6.3 Interactive Shells
-======================
-
-* Menu:
-
-* What is an Interactive Shell?:: What determines whether a shell is Interactive.
-* Is this Shell Interactive?:: How to tell if a shell is interactive.
-* Interactive Shell Behavior:: What changes in an interactive shell?
-
-\1f
-File: bashref.info, Node: What is an Interactive Shell?, Next: Is this Shell Interactive?, Up: Interactive Shells
-
-6.3.1 What is an Interactive Shell?
------------------------------------
-
-An interactive shell is one started without non-option arguments (unless
-‘-s’ is specified) and without specifying the ‘-c’ option, whose input
-and error output are both connected to terminals (as determined by
-‘isatty(3)’), or one started with the ‘-i’ option.
-
- An interactive shell generally reads from and writes to a user's
-terminal.
-
- The ‘-s’ invocation option may be used to set the positional
-parameters when an interactive shell starts.
-
-\1f
-File: bashref.info, Node: Is this Shell Interactive?, Next: Interactive Shell Behavior, Prev: What is an Interactive Shell?, Up: Interactive Shells
-
-6.3.2 Is this Shell Interactive?
---------------------------------
-
-To determine within a startup script whether or not Bash is running
-interactively, test the value of the ‘-’ special parameter. It contains
-‘i’ when the shell is interactive. For example:
-
- case "$-" in
- *i*) echo This shell is interactive ;;
- *) echo This shell is not interactive ;;
- esac
-
- Alternatively, startup scripts may examine the variable ‘PS1’; it is
-unset in non-interactive shells, and set in interactive shells. Thus:
-
- if [ -z "$PS1" ]; then
- echo This shell is not interactive
- else
- echo This shell is interactive
- fi
-
-\1f
-File: bashref.info, Node: Interactive Shell Behavior, Prev: Is this Shell Interactive?, Up: Interactive Shells
-
-6.3.3 Interactive Shell Behavior
---------------------------------
-
-When the shell is running interactively, it changes its behavior in
-several ways.
-
- 1. Bash reads and executes startup files as described in *note Bash
- Startup Files::.
-
- 2. Job Control (*note Job Control::) is enabled by default. When job
- control is in effect, Bash ignores the keyboard-generated job
- control signals ‘SIGTTIN’, ‘SIGTTOU’, and ‘SIGTSTP’.
-
- 3. Bash executes the values of the set elements of the
- ‘PROMPT_COMMAND’ array variable as commands before printing the
- primary prompt, ‘$PS1’ (*note Bash Variables::).
-
- 4. Bash expands and displays ‘PS1’ before reading the first line of a
- command, and expands and displays ‘PS2’ before reading the second
- and subsequent lines of a multi-line command. Bash expands and
- displays ‘PS0’ after it reads a command but before executing it.
- See *note Controlling the Prompt::, for a complete list of prompt
- string escape sequences.
-
- 5. Bash uses Readline (*note Command Line Editing::) to read commands
- from the user's terminal.
-
- 6. Bash inspects the value of the ‘ignoreeof’ option to ‘set -o’
- instead of exiting immediately when it receives an ‘EOF’ on its
- standard input when reading a command (*note The Set Builtin::).
-
- 7. Bash enables Command history (*note Bash History Facilities::) and
- history expansion (*note History Interaction::) by default. When a
- shell with history enabled exits, Bash saves the command history to
- the file named by ‘$HISTFILE’.
-
- 8. Alias expansion (*note Aliases::) is performed by default.
-
- 9. In the absence of any traps, Bash ignores ‘SIGTERM’ (*note
- Signals::).
-
- 10. In the absence of any traps, ‘SIGINT’ is caught and handled (*note
- Signals::). ‘SIGINT’ will interrupt some shell builtins.
-
- 11. An interactive login shell sends a ‘SIGHUP’ to all jobs on exit if
- the ‘huponexit’ shell option has been enabled (*note Signals::).
-
- 12. The ‘-n’ option has no effect, whether at invocation or when using
- ‘set -n’ (*note The Set Builtin::).
-
- 13. Bash will check for mail periodically, depending on the values of
- the ‘MAIL’, ‘MAILPATH’, and ‘MAILCHECK’ shell variables (*note Bash
- Variables::).
-
- 14. The shell will not exit on expansion errors due to references to
- unbound shell variables after ‘set -u’ has been enabled (*note The
- Set Builtin::).
-
- 15. The shell will not exit on expansion errors caused by VAR being
- unset or null in ‘${VAR:?WORD}’ expansions (*note Shell Parameter
- Expansion::).
-
- 16. Redirection errors encountered by shell builtins will not cause
- the shell to exit.
-
- 17. When running in POSIX mode, a special builtin returning an error
- status will not cause the shell to exit (*note Bash POSIX Mode::).
-
- 18. A failed ‘exec’ will not cause the shell to exit (*note Bourne
- Shell Builtins::).
-
- 19. Parser syntax errors will not cause the shell to exit.
-
- 20. If the ‘cdspell’ shell option is enabled, the shell will attempt
- simple spelling correction for directory arguments to the ‘cd’
- builtin (see the description of the ‘cdspell’ option to the ‘shopt’
- builtin in *note The Shopt Builtin::). The ‘cdspell’ option is
- only effective in interactive shells.
-
- 21. The shell will check the value of the ‘TMOUT’ variable and exit if
- a command is not read within the specified number of seconds after
- printing ‘$PS1’ (*note Bash Variables::).
-
-\1f
-File: bashref.info, Node: Bash Conditional Expressions, Next: Shell Arithmetic, Prev: Interactive Shells, Up: Bash Features
-
-6.4 Bash Conditional Expressions
-================================
-
-Conditional expressions are used by the ‘[[’ compound command (*note
-Conditional Constructs::) and the ‘test’ and ‘[’ builtin commands (*note
-Bourne Shell Builtins::). The ‘test’ and ‘[’ commands determine their
-behavior based on the number of arguments; see the descriptions of those
-commands for any other command-specific actions.
-
- Expressions may be unary or binary, and are formed from the primaries
-listed below. Unary expressions are often used to examine the status of
-a file or shell variable. Binary operators are used for string,
-numeric, and file attribute comparisons.
-
- Bash handles several filenames specially when they are used in
-expressions. If the operating system on which Bash is running provides
-these special files, Bash uses them; otherwise it emulates them
-internally with this behavior: If the FILE argument to one of the
-primaries is of the form ‘/dev/fd/N’, then Bash checks file descriptor
-N. If the FILE argument to one of the primaries is one of ‘/dev/stdin’,
-‘/dev/stdout’, or ‘/dev/stderr’, Bash checks file descriptor 0, 1, or 2,
-respectively.
-
- When used with ‘[[’, the ‘<’ and ‘>’ operators sort lexicographically
-using the current locale. The ‘test’ command uses ASCII ordering.
-
- Unless otherwise specified, primaries that operate on files follow
-symbolic links and operate on the target of the link, rather than the
-link itself.
-
-‘-a FILE’
- True if FILE exists.
-
-‘-b FILE’
- True if FILE exists and is a block special file.
-
-‘-c FILE’
- True if FILE exists and is a character special file.
-
-‘-d FILE’
- True if FILE exists and is a directory.
-
-‘-e FILE’
- True if FILE exists.
-
-‘-f FILE’
- True if FILE exists and is a regular file.
-
-‘-g FILE’
- True if FILE exists and its set-group-id bit is set.
-
-‘-h FILE’
- True if FILE exists and is a symbolic link.
-
-‘-k FILE’
- True if FILE exists and its "sticky" bit is set.
-
-‘-p FILE’
- True if FILE exists and is a named pipe (FIFO).
-
-‘-r FILE’
- True if FILE exists and is readable.
-
-‘-s FILE’
- True if FILE exists and has a size greater than zero.
-
-‘-t FD’
- True if file descriptor FD is open and refers to a terminal.
-
-‘-u FILE’
- True if FILE exists and its set-user-id bit is set.
-
-‘-w FILE’
- True if FILE exists and is writable.
-
-‘-x FILE’
- True if FILE exists and is executable.
-
-‘-G FILE’
- True if FILE exists and is owned by the effective group id.
-
-‘-L FILE’
- True if FILE exists and is a symbolic link.
-
-‘-N FILE’
- True if FILE exists and has been modified since it was last
- accessed.
-
-‘-O FILE’
- True if FILE exists and is owned by the effective user id.
-
-‘-S FILE’
- True if FILE exists and is a socket.
-
-‘FILE1 -ef FILE2’
- True if FILE1 and FILE2 refer to the same device and inode numbers.
-
-‘FILE1 -nt FILE2’
- True if FILE1 is newer (according to modification date) than FILE2,
- or if FILE1 exists and FILE2 does not.
-
-‘FILE1 -ot FILE2’
- True if FILE1 is older than FILE2, or if FILE2 exists and FILE1
- does not.
-
-‘-o OPTNAME’
- True if the shell option OPTNAME is enabled. The list of options
- appears in the description of the ‘-o’ option to the ‘set’ builtin
- (*note The Set Builtin::).
-
-‘-v VARNAME’
- True if the shell variable VARNAME is set (has been assigned a
- value). If VARNAME is an indexed array variable name subscripted
- by ‘@’ or ‘*’, this returns true if the array has any set elements.
- If VARNAME is an associative array variable name subscripted by ‘@’
- or ‘*’, this returns true if an element with that key is set.
-
-‘-R VARNAME’
- True if the shell variable VARNAME is set and is a name reference.
-
-‘-z STRING’
- True if the length of STRING is zero.
-
-‘-n STRING’
-‘STRING’
- True if the length of STRING is non-zero.
-
-‘STRING1 == STRING2’
-‘STRING1 = STRING2’
- True if the strings are equal. When used with the ‘[[’ command,
- this performs pattern matching as described above (*note
- Conditional Constructs::).
-
- ‘=’ should be used with the ‘test’ command for POSIX conformance.
-
-‘STRING1 != STRING2’
- True if the strings are not equal.
-
-‘STRING1 < STRING2’
- True if STRING1 sorts before STRING2 lexicographically.
-
-‘STRING1 > STRING2’
- True if STRING1 sorts after STRING2 lexicographically.
-
-‘ARG1 OP ARG2’
- ‘OP’ is one of ‘-eq’, ‘-ne’, ‘-lt’, ‘-le’, ‘-gt’, or ‘-ge’. These
- arithmetic binary operators return true if ARG1 is equal to, not
- equal to, less than, less than or equal to, greater than, or
- greater than or equal to ARG2, respectively. ARG1 and ARG2 may be
- positive or negative integers. When used with the ‘[[’ command,
- ARG1 and ARG2 are evaluated as arithmetic expressions (*note Shell
- Arithmetic::). Since the expansions the ‘[[’ command performs on
- ARG1 and ARG2 can potentially result in empty strings, arithmetic
- expression evaluation treats those as expressions that evaluate to
- 0.
-
-\1f
-File: bashref.info, Node: Shell Arithmetic, Next: Aliases, Prev: Bash Conditional Expressions, Up: Bash Features
-
-6.5 Shell Arithmetic
-====================
-
-The shell allows arithmetic expressions to be evaluated, as one of the
-shell expansions or by using the ‘((’ compound command, the ‘let’ and
-‘declare’ builtins, the arithmetic ‘for’ command, the ‘[[’ conditional
-command, or the ‘-i’ option to the ‘declare’ builtin.
-
- Evaluation is done in the largest fixed-width integers available,
-with no check for overflow, though division by 0 is trapped and flagged
-as an error. The operators and their precedence, associativity, and
-values are the same as in the C language. The following list of
-operators is grouped into levels of equal-precedence operators. The
-levels are listed in order of decreasing precedence.
-
-‘ID++ ID--’
- variable post-increment and post-decrement
-
-‘++ID --ID’
- variable pre-increment and pre-decrement
-
-‘- +’
- unary minus and plus
-
-‘! ~’
- logical and bitwise negation
-
-‘**’
- exponentiation
-
-‘* / %’
- multiplication, division, remainder
-
-‘+ -’
- addition, subtraction
-
-‘<< >>’
- left and right bitwise shifts
-
-‘<= >= < >’
- comparison
-
-‘== !=’
- equality and inequality
-
-‘&’
- bitwise AND
-
-‘^’
- bitwise exclusive OR
-
-‘|’
- bitwise OR
-
-‘&&’
- logical AND
-
-‘||’
- logical OR
-
-‘expr ? if-true-expr : if-false-expr’
- conditional operator
-
-‘= *= /= %= += -= <<= >>= &= ^= |=’
- assignment
-
-‘expr1 , expr2’
- comma
-
- Shell variables are allowed as operands; parameter expansion is
-performed before the expression is evaluated. Within an expression,
-shell variables may also be referenced by name without using the
-parameter expansion syntax. This means you can use X, where X is a
-shell variable name, in an arithmetic expression, and the shell will
-evaluate its value as an expression and use the result. A shell
-variable that is null or unset evaluates to 0 when referenced by name in
-an expression.
-
- The value of a variable is evaluated as an arithmetic expression when
-it is referenced, or when a variable which has been given the ‘integer’
-attribute using ‘declare -i’ is assigned a value. A null value
-evaluates to 0. A shell variable need not have its ‘integer’ attribute
-enabled to be used in an expression.
-
- Integer constants follow the C language definition, without suffixes
-or character constants. Constants with a leading 0 are interpreted as
-octal numbers. A leading ‘0x’ or ‘0X’ denotes hexadecimal. Otherwise,
-numbers take the form [BASE‘#’]N, where the optional BASE is a decimal
-number between 2 and 64 representing the arithmetic base, and N is a
-number in that base. If BASE‘#’ is omitted, then base 10 is used. When
-specifying N, if a non-digit is required, the digits greater than 9 are
-represented by the lowercase letters, the uppercase letters, ‘@’, and
-‘_’, in that order. If BASE is less than or equal to 36, lowercase and
-uppercase letters may be used interchangeably to represent numbers
-between 10 and 35.
-
- Operators are evaluated in precedence order. Sub-expressions in
-parentheses are evaluated first and may override the precedence rules
-above.
-
-\1f
-File: bashref.info, Node: Aliases, Next: Arrays, Prev: Shell Arithmetic, Up: Bash Features
-
-6.6 Aliases
-===========
-
-“Aliases” allow a string to be substituted for a word that is in a
-position in the input where it can be the first word of a simple
-command. Aliases have names and corresponding values that are set and
-unset using the ‘alias’ and ‘unalias’ builtin commands (*note Shell
-Builtin Commands::).
-
- If the shell reads an unquoted word in the right position, it checks
-the word to see if it matches an alias name. If it matches, the shell
-replaces the word with the alias value, and reads that value as if it
-had been read instead of the word. The shell doesn't look at any
-characters following the word before attempting alias substitution.
-
- The characters ‘/’, ‘$’, ‘`’, ‘=’ and any of the shell metacharacters
-or quoting characters listed above may not appear in an alias name. The
-replacement text may contain any valid shell input, including shell
-metacharacters. The first word of the replacement text is tested for
-aliases, but a word that is identical to an alias being expanded is not
-expanded a second time. This means that one may alias ‘ls’ to ‘"ls
--F"’, for instance, and Bash does not try to recursively expand the
-replacement text.
-
- If the last character of the alias value is a ‘blank’, then the shell
-checks the next command word following the alias for alias expansion.
-
- Aliases are created and listed with the ‘alias’ command, and removed
-with the ‘unalias’ command.
-
- There is no mechanism for using arguments in the replacement text, as
-in ‘csh’. If arguments are needed, use a shell function (*note Shell
-Functions::) instead.
-
- Aliases are not expanded when the shell is not interactive, unless
-the ‘expand_aliases’ shell option is set using ‘shopt’ (*note The Shopt
-Builtin::).
-
- The rules concerning the definition and use of aliases are somewhat
-confusing. Bash always reads at least one complete line of input, and
-all lines that make up a compound command, before executing any of the
-commands on that line or the compound command. Aliases are expanded
-when a command is read, not when it is executed. Therefore, an alias
-definition appearing on the same line as another command does not take
-effect until the shell reads the next line of input, and an alias
-definition in a compound command does not take effect until the shell
-parses and executes the entire compound command. The commands following
-the alias definition on that line, or in the rest of a compound command,
-are not affected by the new alias. This behavior is also an issue when
-functions are executed. Aliases are expanded when a function definition
-is read, not when the function is executed, because a function
-definition is itself a command. As a consequence, aliases defined in a
-function are not available until after that function is executed. To be
-safe, always put alias definitions on a separate line, and do not use
-‘alias’ in compound commands.
-
- For almost every purpose, shell functions are preferable to aliases.
-
-\1f
-File: bashref.info, Node: Arrays, Next: The Directory Stack, Prev: Aliases, Up: Bash Features
-
-6.7 Arrays
-==========
-
-Bash provides one-dimensional indexed and associative array variables.
-Any variable may be used as an indexed array; the ‘declare’ builtin
-explicitly declares an array. There is no maximum limit on the size of
-an array, nor any requirement that members be indexed or assigned
-contiguously. Indexed arrays are referenced using arithmetic
-expressions that must expand to an integer (*note Shell Arithmetic::))
-and are zero-based; associative arrays use arbitrary strings. Unless
-otherwise noted, indexed array indices must be non-negative integers.
-
- The shell performs parameter and variable expansion, arithmetic
-expansion, command substitution, and quote removal on indexed array
-subscripts. Since this can potentially result in empty strings,
-subscript indexing treats those as expressions that evaluate to 0.
-
- The shell performs tilde expansion, parameter and variable expansion,
-arithmetic expansion, command substitution, and quote removal on
-associative array subscripts. Empty strings cannot be used as
-associative array keys.
-
- Bash automatically creates an indexed array if any variable is
-assigned to using the syntax
- NAME[SUBSCRIPT]=VALUE
-
-The SUBSCRIPT is treated as an arithmetic expression that must evaluate
-to a number greater than or equal to zero. To explicitly declare an
-indexed array, use
- declare -a NAME
-(*note Bash Builtins::). The syntax
- declare -a NAME[SUBSCRIPT]
-is also accepted; the SUBSCRIPT is ignored.
-
-Associative arrays are created using
- declare -A NAME
-
- Attributes may be specified for an array variable using the ‘declare’
-and ‘readonly’ builtins. Each attribute applies to all members of an
-array.
-
- Arrays are assigned using compound assignments of the form
- NAME=(VALUE1 VALUE2 ... )
-where each VALUE may be of the form ‘[SUBSCRIPT]=’STRING. Indexed array
-assignments do not require anything but STRING.
-
- Each VALUE in the list undergoes the shell expansions described above
-(*note Shell Expansions::), but VALUEs that are valid variable
-assignments including 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 subscript is
-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
-assignment may be either assignment statements, for which the subscript
-is required, or a list of words that is interpreted as a sequence of
-alternating keys and values: NAME=(KEY1 VALUE1 KEY2 VALUE2 ... ). These
-are treated identically to NAME=( [KEY1]=VALUE1 [KEY2]=VALUE2 ... ).
-The first word in the list determines how the remaining words are
-interpreted; 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 ‘declare’ builtin. Individual
-array elements may be assigned to using the ‘NAME[SUBSCRIPT]=VALUE’
-syntax introduced above.
-
- When assigning to an indexed array, if NAME is subscripted by a
-negative number, that number is interpreted as relative to one greater
-than the maximum index of NAME, 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 *note Shell Parameters:: above.
-
- An array element is referenced using ‘${NAME[SUBSCRIPT]}’. The
-braces are required to avoid conflicts with the shell's filename
-expansion operators. If the SUBSCRIPT is ‘@’ or ‘*’, the word expands
-to all members of the array NAME, unless otherwise 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
-double-quoted, ‘${NAME[*]}’ expands to a single word with the value of
-each array member separated by the first character of the ‘IFS’
-variable, and ‘${NAME[@]}’ expands each element of NAME to a separate
-word. When there are no array members, ‘${NAME[@]}’ 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 ‘@’ and ‘*’.
-
- ‘${#NAME[SUBSCRIPT]}’ expands to the length of ‘${NAME[SUBSCRIPT]}’.
-If SUBSCRIPT is ‘@’ or ‘*’, the expansion is the number of elements in
-the array.
-
- If the SUBSCRIPT used to reference an element of an indexed array
-evaluates 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 refers to the
-last element.
-
- Referencing an array variable without a subscript is equivalent to
-referencing with a subscript of 0. Any reference to a variable using a
-valid subscript is valid; Bash creates an array if necessary.
-
- 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. ${!NAME[@]} and ${!NAME[*]} expand to the indices assigned
-in array variable NAME. The treatment when in double quotes is similar
-to the expansion of the special parameters ‘@’ and ‘*’ within double
-quotes.
-
- The ‘unset’ builtin is used to destroy arrays. ‘unset
-NAME[SUBSCRIPT]’ unsets the array element at index SUBSCRIPT. Negative
-subscripts to indexed arrays are interpreted as described above.
-Unsetting the last element of an array variable does not unset the
-variable. ‘unset NAME’, where NAME is an array, removes the entire
-array. ‘unset NAME[SUBSCRIPT]’ behaves differently depending on the
-array type when SUBSCRIPT is ‘*’ or ‘@’. When NAME is an associative
-array, it removes the element with key ‘*’ or ‘@’. If NAME is an
-indexed array, ‘unset’ removes all of the elements, but does not remove
-the array itself.
-
- When using a variable name with a subscript as an argument to a
-command, such as with ‘unset’, without using the word expansion syntax
-described above (e.g., unset a[4]), the argument is subject to the
-shell's filename expansion. Quote the argument if pathname expansion is
-not desired (e.g., unset 'a[4]').
-
- The ‘declare’, ‘local’, and ‘readonly’ builtins each accept a ‘-a’
-option to specify an indexed array and a ‘-A’ option to specify an
-associative array. If both options are supplied, ‘-A’ takes precedence.
-The ‘read’ builtin accepts a ‘-a’ option to assign a list of words read
-from the standard input to an array, and can read values from the
-standard input into individual array elements. The ‘set’ and ‘declare’
-builtins display array values in a way that allows them to be reused as
-input. Other builtins accept array name arguments as well (e.g.,
-‘mapfile’); see the descriptions of individual builtins for details.
-The shell provides a number of builtin array variables.
-
-\1f
-File: bashref.info, Node: The Directory Stack, Next: Controlling the Prompt, Prev: Arrays, Up: Bash Features
-
-6.8 The Directory Stack
-=======================
-
-* Menu:
-
-* Directory Stack Builtins:: Bash builtin commands to manipulate
- the directory stack.
-
-The directory stack is a list of recently-visited directories. The
-‘pushd’ builtin adds directories to the stack as it changes the current
-directory, and the ‘popd’ builtin removes specified directories from the
-stack and changes the current directory to the directory removed. The
-‘dirs’ builtin displays the contents of the directory stack. The
-current directory is always the "top" of the directory stack.
-
- The contents of the directory stack are also visible as the value of
-the ‘DIRSTACK’ shell variable.
-
-\1f
-File: bashref.info, Node: Directory Stack Builtins, Up: The Directory Stack
-
-6.8.1 Directory Stack Builtins
-------------------------------
-
-‘dirs’
- dirs [-clpv] [+N | -N]
-
- Without options, display the list of currently remembered
- directories. Directories are added to the list with the ‘pushd’
- command; the ‘popd’ command removes directories from the list. The
- current directory is always the first directory in the stack.
-
- Options, if supplied, have the following meanings:
-
- ‘-c’
- Clears the directory stack by deleting all of the elements.
- ‘-l’
- Produces a listing using full pathnames; the default listing
- format uses a tilde to denote the home directory.
- ‘-p’
- Causes ‘dirs’ to print the directory stack with one entry per
- line.
- ‘-v’
- Causes ‘dirs’ to print the directory stack with one entry per
- line, prefixing each entry with its index in the stack.
- ‘+N’
- Displays the Nth directory (counting from the left of the list
- printed by ‘dirs’ when invoked without options), starting with
- zero.
- ‘-N’
- Displays the Nth directory (counting from the right of the
- list printed by ‘dirs’ when invoked without options), starting
- with zero.
-
-‘popd’
- popd [-n] [+N | -N]
-
- Remove elements from the directory stack. The elements are
- numbered from 0 starting at the first directory listed by ‘dirs’;
- that is, ‘popd’ is equivalent to ‘popd +0’.
-
- When no arguments are given, ‘popd’ removes the top directory from
- the stack and changes to the new top directory.
-
- Arguments, if supplied, have the following meanings:
-
- ‘-n’
- Suppress the normal change of directory when removing
- directories from the stack, only manipulate the stack.
- ‘+N’
- Remove the Nth directory (counting from the left of the list
- printed by ‘dirs’), starting with zero, from the stack.
- ‘-N’
- Remove the Nth directory (counting from the right of the list
- printed by ‘dirs’), starting with zero, from the stack.
-
- If the top element of the directory stack is modified, and the ‘-n’
- option was not supplied, ‘popd’ uses the ‘cd’ builtin to change to
- the directory at the top of the stack. If the ‘cd’ fails, ‘popd’
- returns a non-zero value.
-
- Otherwise, ‘popd’ returns an unsuccessful status if an invalid
- option is specified, the directory stack is empty, or N specifies a
- non-existent directory stack entry.
-
- If the ‘popd’ command is successful, Bash runs ‘dirs’ to show the
- final contents of the directory stack, and the return status is 0.
-
-‘pushd’
- pushd [-n] [+N | -N | DIR]
-
- Add a directory to the top of the directory stack, or rotate the
- stack, making the new top of the stack the current working
- directory. With no arguments, ‘pushd’ exchanges the top two
- elements of the directory stack.
-
- Arguments, if supplied, have the following meanings:
-
- ‘-n’
- Suppress the normal change of directory when rotating or
- adding directories to the stack, only manipulate the stack.
- ‘+N’
- Rotate the stack so that the Nth directory (counting from the
- left of the list printed by ‘dirs’, starting with zero) is at
- the top.
- ‘-N’
- Rotate the stack so that the Nth directory (counting from the
- right of the list printed by ‘dirs’, starting with zero) is at
- the top.
- ‘DIR’
- Make DIR be the top of the stack.
-
- After the stack has been modified, if the ‘-n’ option was not
- supplied, ‘pushd’ uses the ‘cd’ builtin to change to the directory
- at the top of the stack. If the ‘cd’ fails, ‘pushd’ returns a
- non-zero value.
-
- Otherwise, if no arguments are supplied, ‘pushd’ returns zero
- unless the directory stack is empty. When rotating the directory
- stack, ‘pushd’ returns zero unless the directory stack is empty or
- N specifies a non-existent directory stack element.
-
- If the ‘pushd’ command is successful, Bash runs ‘dirs’ to show the
- final contents of the directory stack.
-
-\1f
-File: bashref.info, Node: Controlling the Prompt, Next: The Restricted Shell, Prev: The Directory Stack, Up: Bash Features
-
-6.9 Controlling the Prompt
-==========================
-
-In addition, the following table describes the special characters which
-can appear in the prompt variables ‘PS0’, ‘PS1’, ‘PS2’, and ‘PS4’:
-
-‘\a’
- A bell character.
-‘\d’
- The date, in "Weekday Month Date" format (e.g., "Tue May 26").
-‘\D{FORMAT}’
- The FORMAT is passed to ‘strftime’(3) and the result is inserted
- into the prompt string; an empty FORMAT results in a
- locale-specific time representation. The braces are required.
-‘\e’
- An escape character.
-‘\h’
- The hostname, up to the first ‘.’.
-‘\H’
- The hostname.
-‘\j’
- The number of jobs currently managed by the shell.
-‘\l’
- The basename of the shell's terminal device name (e.g., "ttys0").
-‘\n’
- A newline.
-‘\r’
- A carriage return.
-‘\s’
- The name of the shell: the basename of ‘$0’ (the portion following
- the final slash).
-‘\t’
- The time, in 24-hour HH:MM:SS format.
-‘\T’
- The time, in 12-hour HH:MM:SS format.
-‘\@’
- The time, in 12-hour am/pm format.
-‘\A’
- The time, in 24-hour HH:MM format.
-‘\u’
- The username of the current user.
-‘\v’
- The Bash version (e.g., 2.00).
-‘\V’
- The Bash release, version + patchlevel (e.g., 2.00.0).
-‘\w’
- The value of the ‘PWD’ shell variable (‘$PWD’), with ‘$HOME’
- abbreviated with a tilde (uses the ‘$PROMPT_DIRTRIM’ variable).
-‘\W’
- The basename of ‘$PWD’, with ‘$HOME’ abbreviated with a tilde.
-‘\!’
- The history number of this command.
-‘\#’
- The command number of this command.
-‘\$’
- If the effective uid is 0, ‘#’, otherwise ‘$’.
-‘\NNN’
- The character whose ASCII code is the octal value NNN.
-‘\\’
- A backslash.
-‘\[’
- Begin a sequence of non-printing characters. Thiss could be used
- to embed a terminal control sequence into the prompt.
-‘\]’
- End a sequence of non-printing characters.
-
- The command number and the history number are usually different: the
-history number of a command is its position in the history list, which
-may include commands restored from the history file (*note Bash History
-Facilities::), while the command number is the position in the sequence
-of commands executed during the current shell session.
-
- After the string is decoded, it is expanded via parameter expansion,
-command substitution, arithmetic expansion, and quote removal, subject
-to the value of the ‘promptvars’ shell option (*note The Shopt
-Builtin::). This can have unwanted side effects if escaped portions of
-the string appear within command substitution or contain characters
-special to word expansion.
-
-\1f
-File: bashref.info, Node: The Restricted Shell, Next: Bash POSIX Mode, Prev: Controlling the Prompt, Up: Bash Features
-
-6.10 The Restricted Shell
-=========================
-
-If Bash is started with the name ‘rbash’, or the ‘--restricted’ or ‘-r’
-option is supplied at invocation, the shell becomes RESTRICTED. A
-restricted shell is used to set up an environment more controlled than
-the standard shell. A restricted shell behaves identically to ‘bash’
-with the exception that the following are disallowed or not performed:
-
- • Changing directories with the ‘cd’ builtin.
- • Setting or unsetting the values of the ‘SHELL’, ‘PATH’, ‘HISTFILE’,
- ‘ENV’, or ‘BASH_ENV’ variables.
- • Specifying command names containing slashes.
- • Specifying a filename containing a slash as an argument to the ‘.’
- builtin command.
- • Using the ‘-p’ option to the ‘.’ builtin command to specify a
- search path.
- • Specifying a filename containing a slash as an argument to the
- ‘history’ builtin command.
- • Specifying a filename containing a slash as an argument to the ‘-p’
- option to the ‘hash’ builtin command.
- • Importing function definitions from the shell environment at
- startup.
- • Parsing the value of ‘SHELLOPTS’ from the shell environment at
- startup.
- • Redirecting output using the ‘>’, ‘>|’, ‘<>’, ‘>&’, ‘&>’, and ‘>>’
- redirection operators.
- • Using the ‘exec’ builtin to replace the shell with another command.
- • Adding or deleting builtin commands with the ‘-f’ and ‘-d’ options
- to the ‘enable’ builtin.
- • Using the ‘enable’ builtin command to enable disabled shell
- builtins.
- • Specifying the ‘-p’ option to the ‘command’ builtin.
- • Turning off restricted mode with ‘set +r’ or ‘shopt -u
- restricted_shell’.
-
- These restrictions are enforced after any startup files are read.
-
- When a command that is found to be a shell script is executed (*note
-Shell Scripts::), ‘rbash’ turns off any restrictions in the shell
-spawned to execute the script.
-
- The restricted shell mode is only one component of a useful
-restricted environment. It should be accompanied by setting ‘PATH’ to a
-value that allows execution of only a few verified commands (commands
-that allow shell escapes are particularly vulnerable), changing the
-current directory to a non-writable directory other than ‘$HOME’ after
-login, not allowing the restricted shell to execute shell scripts, and
-cleaning the environment of variables that cause some commands to modify
-their behavior (e.g., ‘VISUAL’ or ‘PAGER’).
-
- Modern systems provide more secure ways to implement a restricted
-environment, such as ‘jails’, ‘zones’, or ‘containers’.
-
-\1f
-File: bashref.info, Node: Bash POSIX Mode, Next: Shell Compatibility Mode, Prev: The Restricted Shell, Up: Bash Features
-
-6.11 Bash and POSIX
-===================
-
-6.11.1 What is POSIX?
----------------------
-
-POSIX is the name for a family of standards based on Unix. A number of
-Unix services, tools, and functions are part of the standard, ranging
-from the basic system calls and C library functions to common
-applications and tools to system administration and management.
-
- The POSIX Shell and Utilities standard was originally developed by
-IEEE Working Group 1003.2 (POSIX.2). The first edition of the 1003.2
-standard was published in 1992. It was merged with the original IEEE
-1003.1 Working Group and is currently maintained by the Austin Group (a
-joint working group of the IEEE, The Open Group and ISO/IEC SC22/WG15).
-Today the Shell and Utilities are a volume within the set of documents
-that make up IEEE Std 1003.1-2024, and thus the former POSIX.2 (from
-1992) is now part of the current unified POSIX standard.
-
- The Shell and Utilities volume concentrates on the command
-interpreter interface and utility programs commonly executed from the
-command line or by other programs. The standard is freely available on
-the web at
-<https://pubs.opengroup.org/onlinepubs/9799919799/utilities/contents.html>.
-
- Bash is concerned with the aspects of the shell's behavior defined by
-the POSIX Shell and Utilities volume. The shell command language has of
-course been standardized, including the basic flow control and program
-execution constructs, I/O redirection and pipelines, argument handling,
-variable expansion, and quoting.
-
- The special builtins, which must be implemented as part of the shell
-to provide the desired functionality, are specified as being part of the
-shell; examples of these are ‘eval’ and ‘export’. Other utilities
-appear in the sections of POSIX not devoted to the shell which are
-commonly (and in some cases must be) implemented as builtin commands,
-such as ‘read’ and ‘test’. POSIX also specifies aspects of the shell's
-interactive behavior, including job control and command line editing.
-Only vi-style line editing commands have been standardized; emacs
-editing commands were left out due to objections.
-
-6.11.2 Bash POSIX Mode
-----------------------
-
-Although Bash is an implementation of the POSIX shell specification,
-there are areas where the Bash default behavior differs from the
-specification. The Bash “posix mode” changes the Bash behavior in these
-areas so that it conforms more strictly to the standard.
-
- Starting Bash with the ‘--posix’ command-line option or executing
-‘set -o posix’ while Bash is running will cause Bash to conform more
-closely to the POSIX standard by changing the behavior to match that
-specified by POSIX in areas where the Bash default differs.
-
- When invoked as ‘sh’, Bash enters POSIX mode after reading the
-startup files.
-
- The following list is what's changed when POSIX mode is in effect:
-
- 1. Bash ensures that the ‘POSIXLY_CORRECT’ variable is set.
-
- 2. Bash reads and executes the POSIX startup files (‘$ENV’) rather
- than the normal Bash files (*note Bash Startup Files::).
-
- 3. Alias expansion is always enabled, even in non-interactive shells.
-
- 4. Reserved words appearing in a context where reserved words are
- recognized do not undergo alias expansion.
-
- 5. Alias expansion is performed when initially parsing a command
- substitution. The default (non-posix) mode generally defers it,
- when enabled, until the command substitution is executed. This
- means that command substitution will not expand aliases that are
- defined after the command substitution is initially parsed (e.g.,
- as part of a function definition).
-
- 6. The ‘time’ reserved word may be used by itself as a simple command.
- When used in this way, it displays timing statistics for the shell
- and its completed children. The ‘TIMEFORMAT’ variable controls the
- format of the timing information.
-
- 7. The parser does not recognize ‘time’ as a reserved word if the next
- token begins with a ‘-’.
-
- 8. When parsing and expanding a ${...} expansion that appears within
- double quotes, single quotes are no longer special and cannot be
- used to quote a closing brace or other special character, unless
- the operator is one of those defined to perform pattern removal.
- In this case, they do not have to appear as matched pairs.
-
- 9. Redirection operators do not perform filename expansion on the word
- in a redirection unless the shell is interactive.
-
- 10. Redirection operators do not perform word splitting on the word in
- a redirection.
-
- 11. Function names may not be the same as one of the POSIX special
- builtins.
-
- 12. Tilde expansion is only performed on assignments preceding a
- command name, rather than on all assignment statements on the line.
-
- 13. While variable indirection is available, it may not be applied to
- the ‘#’ and ‘?’ special parameters.
-
- 14. Expanding the ‘*’ special parameter in a pattern context where the
- expansion is double-quoted does not treat the ‘$*’ as if it were
- double-quoted.
-
- 15. A double quote character (‘"’) is treated specially when it
- appears in a backquoted command substitution in the body of a
- here-document that undergoes expansion. That means, for example,
- that a backslash preceding a double quote character will escape it
- and the backslash will be removed.
-
- 16. Command substitutions don't set the ‘?’ special parameter. The
- exit status of a simple command without a command word is still the
- exit status of the last command substitution that occurred while
- evaluating the variable assignments and redirections in that
- command, but that does not happen until after all of the
- assignments and redirections.
-
- 17. Literal tildes that appear as the first character in elements of
- the ‘PATH’ variable are not expanded as described above under *note
- Tilde Expansion::.
-
- 18. Command lookup finds POSIX special builtins before shell
- functions, including output printed by the ‘type’ and ‘command’
- builtins.
-
- 19. Even if a shell function whose name contains a slash was defined
- before entering POSIX mode, the shell will not execute a function
- whose name contains one or more slashes.
-
- 20. When a command in the hash table no longer exists, Bash will
- re-search ‘$PATH’ to find the new location. This is also available
- with ‘shopt -s checkhash’.
-
- 21. Bash will not insert a command without the execute bit set into
- the command hash table, even if it returns it as a (last-ditch)
- result from a ‘$PATH’ search.
-
- 22. The message printed by the job control code and builtins when a
- job exits with a non-zero status is "Done(status)".
-
- 23. The message printed by the job control code and builtins when a
- job is stopped is "Stopped(SIGNAME)", where SIGNAME is, for
- example, ‘SIGTSTP’.
-
- 24. If the shell is interactive, Bash does not perform job
- notifications between executing commands in lists separated by ‘;’
- or newline. Non-interactive shells print status messages after a
- foreground job in a list completes.
-
- 25. If the shell is interactive, Bash waits until the next prompt
- before printing the status of a background job that changes status
- or a foreground job that terminates due to a signal.
- Non-interactive shells print status messages after a foreground job
- completes.
-
- 26. Bash permanently removes jobs from the jobs table after notifying
- the user of their termination via the ‘wait’ or ‘jobs’ builtins.
- It removes the job from the jobs list after notifying the user of
- its termination, but the status is still available via ‘wait’, as
- long as ‘wait’ is supplied a PID argument.
-
- 27. The ‘vi’ editing mode will invoke the ‘vi’ editor directly when
- the ‘v’ command is run, instead of checking ‘$VISUAL’ and
- ‘$EDITOR’.
-
- 28. Prompt expansion enables the POSIX ‘PS1’ and ‘PS2’ expansions of
- ‘!’ to the history number and ‘!!’ to ‘!’, and Bash performs
- parameter expansion on the values of ‘PS1’ and ‘PS2’ regardless of
- the setting of the ‘promptvars’ option.
-
- 29. The default history file is ‘~/.sh_history’ (this is the default
- value the shell assigns to ‘$HISTFILE’).
-
- 30. The ‘!’ character does not introduce history expansion within a
- double-quoted string, even if the ‘histexpand’ option is enabled.
-
- 31. When printing shell function definitions (e.g., by ‘type’), Bash
- does not print the ‘function’ reserved word unless necessary.
-
- 32. Non-interactive shells exit if a syntax error in an arithmetic
- expansion results in an invalid expression.
-
- 33. Non-interactive shells exit if a parameter expansion error occurs.
-
- 34. If a POSIX special builtin returns an error status, a
- non-interactive shell exits. The fatal errors are those listed in
- the POSIX standard, and include things like passing incorrect
- options, redirection errors, variable assignment errors for
- assignments preceding the command name, and so on.
-
- 35. A non-interactive shell exits with an error status if a variable
- assignment error occurs when no command name follows the assignment
- statements. A variable assignment error occurs, for example, when
- trying to assign a value to a readonly variable.
-
- 36. A non-interactive shell exits with an error status if a variable
- assignment error occurs in an assignment statement preceding a
- special builtin, but not with any other simple command. For any
- other simple command, the shell aborts execution of that command,
- and execution continues at the top level ("the shell shall not
- perform any further processing of the command in which the error
- occurred").
-
- 37. A non-interactive shell exits with an error status if the
- iteration variable in a ‘for’ statement or the selection variable
- in a ‘select’ statement is a readonly variable or has an invalid
- name.
-
- 38. Non-interactive shells exit if FILENAME in ‘.’ FILENAME is not
- found.
-
- 39. Non-interactive shells exit if there is a syntax error in a script
- read with the ‘.’ or ‘source’ builtins, or in a string processed by
- the ‘eval’ builtin.
-
- 40. Non-interactive shells exit if the ‘export’, ‘readonly’ or ‘unset’
- builtin commands get an argument that is not a valid identifier,
- and they are not operating on shell functions. These errors force
- an exit because these are special builtins.
-
- 41. Assignment statements preceding POSIX special builtins persist in
- the shell environment after the builtin completes.
-
- 42. The ‘command’ builtin does not prevent builtins that take
- assignment statements as arguments from expanding them as
- assignment statements; when not in POSIX mode, declaration commands
- lose their assignment statement expansion properties when preceded
- by ‘command’.
-
- 43. Enabling POSIX mode has the effect of setting the
- ‘inherit_errexit’ option, so subshells spawned to execute command
- substitutions inherit the value of the ‘-e’ option from the parent
- shell. When the ‘inherit_errexit’ option is not enabled, Bash
- clears the ‘-e’ option in such subshells.
-
- 44. Enabling POSIX mode has the effect of setting the ‘shift_verbose’
- option, so numeric arguments to ‘shift’ that exceed the number of
- positional parameters will result in an error message.
-
- 45. Enabling POSIX mode has the effect of setting the
- ‘interactive_comments’ option (*note Comments::).
-
- 46. The ‘.’ and ‘source’ builtins do not search the current directory
- for the filename argument if it is not found by searching ‘PATH’.
-
- 47. When the ‘alias’ builtin displays alias definitions, it does not
- display them with a leading ‘alias ’ unless the ‘-p’ option is
- supplied.
-
- 48. The ‘bg’ builtin uses the required format to describe each job
- placed in the background, which does not include an indication of
- whether the job is the current or previous job.
-
- 49. When the ‘cd’ builtin is invoked in logical mode, and the pathname
- constructed from ‘$PWD’ and the directory name supplied as an
- argument does not refer to an existing directory, ‘cd’ will fail
- instead of falling back to physical mode.
-
- 50. When the ‘cd’ builtin cannot change a directory because the length
- of the pathname constructed from ‘$PWD’ and the directory name
- supplied as an argument exceeds ‘PATH_MAX’ when canonicalized, ‘cd’
- will attempt to use the supplied directory name.
-
- 51. When the ‘xpg_echo’ option is enabled, Bash does not attempt to
- interpret any arguments to ‘echo’ as options. ‘echo’ displays each
- argument after converting escape sequences.
-
- 52. The ‘export’ and ‘readonly’ builtin commands display their output
- in the format required by POSIX.
-
- 53. When listing the history, the ‘fc’ builtin does not include an
- indication of whether or not a history entry has been modified.
-
- 54. The default editor used by ‘fc’ is ‘ed’.
-
- 55. ‘fc’ treats extra arguments as an error instead of ignoring them.
-
- 56. If there are too many arguments supplied to ‘fc -s’, ‘fc’ prints
- an error message and returns failure.
-
- 57. The output of ‘kill -l’ prints all the signal names on a single
- line, separated by spaces, without the ‘SIG’ prefix.
-
- 58. The ‘kill’ builtin does not accept signal names with a ‘SIG’
- prefix.
-
- 59. The ‘kill’ builtin returns a failure status if any of the pid or
- job arguments are invalid or if sending the specified signal to any
- of them fails. In default mode, ‘kill’ returns success if the
- signal was successfully sent to any of the specified processes.
-
- 60. The ‘printf’ builtin uses ‘double’ (via ‘strtod’) to convert
- arguments corresponding to floating point conversion specifiers,
- instead of ‘long double’ if it's available. The ‘L’ length
- modifier forces ‘printf’ to use ‘long double’ if it's available.
-
- 61. The ‘pwd’ builtin verifies that the value it prints is the same as
- the current directory, even if it is not asked to check the file
- system with the ‘-P’ option.
-
- 62. The ‘read’ builtin may be interrupted by a signal for which a trap
- has been set. If Bash receives a trapped signal while executing
- ‘read’, the trap handler executes and ‘read’ returns an exit status
- greater than 128.
-
- 63. When the ‘set’ builtin is invoked without options, it does not
- display shell function names and definitions.
-
- 64. When the ‘set’ builtin is invoked without options, it displays
- variable values without quotes, unless they contain shell
- metacharacters, even if the result contains nonprinting characters.
-
- 65. The ‘test’ builtin compares strings using the current locale when
- evaluating the ‘<’ and ‘>’ binary operators.
-
- 66. The ‘test’ builtin's ‘-t’ unary primary requires an argument.
- Historical versions of ‘test’ made the argument optional in certain
- cases, and Bash attempts to accommodate those for backwards
- compatibility.
-
- 67. The ‘trap’ builtin displays signal names without the leading
- ‘SIG’.
-
- 68. The ‘trap’ builtin doesn't check the first argument for a possible
- signal specification and revert the signal handling to the original
- disposition if it is, unless that argument consists solely of
- digits and is a valid signal number. If users want to reset the
- handler for a given signal to the original disposition, they should
- use ‘-’ as the first argument.
-
- 69. ‘trap -p’ without arguments displays signals whose dispositions
- are set to SIG_DFL and those that were ignored when the shell
- started, not just trapped signals.
-
- 70. The ‘type’ and ‘command’ builtins will not report a non-executable
- file as having been found, though the shell will attempt to execute
- such a file if it is the only so-named file found in ‘$PATH’.
-
- 71. The ‘ulimit’ builtin uses a block size of 512 bytes for the ‘-c’
- and ‘-f’ options.
-
- 72. The ‘unset’ builtin with the ‘-v’ option specified returns a fatal
- error if it attempts to unset a ‘readonly’ or ‘non-unsettable’
- variable, which causes a non-interactive shell to exit.
-
- 73. When asked to unset a variable that appears in an assignment
- statement preceding the command, the ‘unset’ builtin attempts to
- unset a variable of the same name in the current or previous scope
- as well. This implements the required "if an assigned variable is
- further modified by the utility, the modifications made by the
- utility shall persist" behavior.
-
- 74. The arrival of ‘SIGCHLD’ when a trap is set on ‘SIGCHLD’ does not
- interrupt the ‘wait’ builtin and cause it to return immediately.
- The trap command is run once for each child that exits.
-
- 75. Bash removes an exited background process's status from the list
- of such statuses after the ‘wait’ builtin returns it.
-
- There is additional POSIX behavior that Bash does not implement by
-default even when in POSIX mode. Specifically:
-
- 1. POSIX requires that word splitting be byte-oriented. That is, each
- _byte_ in the value of ‘IFS’ potentially splits a word, even if
- that byte is part of a multibyte character in ‘IFS’ or part of
- multibyte character in the word. Bash allows multibyte characters
- in the value of ‘IFS’, treating a valid multibyte character as a
- single delimiter, and will not split a valid multibyte character
- even if one of the bytes composing that character appears in ‘IFS’.
- This is POSIX interpretation 1560, further modified by issue 1924.
-
- 2. The ‘fc’ builtin checks ‘$EDITOR’ as a program to edit history
- entries if ‘FCEDIT’ is unset, rather than defaulting directly to
- ‘ed’. ‘fc’ uses ‘ed’ if ‘EDITOR’ is unset.
-
- 3. As noted above, Bash requires the ‘xpg_echo’ option to be enabled
- for the ‘echo’ builtin to be fully conformant.
-
- Bash can be configured to be POSIX-conformant by default, by
-specifying the ‘--enable-strict-posix-default’ to ‘configure’ when
-building (*note Optional Features::).
-
-\1f
-File: bashref.info, Node: Shell Compatibility Mode, Prev: Bash POSIX Mode, Up: Bash Features
-
-6.12 Shell Compatibility Mode
-=============================
-
-Bash-4.0 introduced the concept of a “shell compatibility level”,
-specified as a set of options to the shopt builtin (‘compat31’,
-‘compat32’, ‘compat40’, ‘compat41’, and so on). There is only one
-current compatibility level - each option is mutually exclusive. The
-compatibility level is intended to allow users to select behavior from
-previous versions that is incompatible with newer versions while they
-migrate scripts to use current features and behavior. It's intended to
-be a temporary solution.
-
- This section does not mention behavior that is standard for a
-particular version (e.g., setting ‘compat32’ means that quoting the
-right hand side of the regexp matching operator quotes special regexp
-characters in the word, which is default behavior in bash-3.2 and
-subsequent versions).
-
- If a user enables, say, ‘compat32’, it may affect the behavior of
-other compatibility levels up to and including the current compatibility
-level. The idea is that each compatibility level controls behavior that
-changed in that version of Bash, but that behavior may have been present
-in earlier versions. For instance, the change to use locale-based
-comparisons with the ‘[[’ command came in bash-4.1, and earlier versions
-used ASCII-based comparisons, so enabling ‘compat32’ will enable
-ASCII-based comparisons as well. That granularity may not be sufficient
-for all uses, and as a result users should employ compatibility levels
-carefully. Read the documentation for a particular feature to find out
-the current behavior.
-
- Bash-4.3 introduced a new shell variable: ‘BASH_COMPAT’. The value
-assigned to this variable (a decimal version number like 4.2, or an
-integer corresponding to the ‘compat’NN option, like 42) determines the
-compatibility level.
-
- Starting with bash-4.4, Bash began deprecating older compatibility
-levels. Eventually, the options will be removed in favor of
-‘BASH_COMPAT’.
-
- Bash-5.0 was the final version for which there was an individual
-shopt option for the previous version. ‘BASH_COMPAT’ is the only
-mechanism to control the compatibility level in versions newer than
-bash-5.0.
-
- The following table describes the behavior changes controlled by each
-compatibility level setting. The ‘compat’NN tag is used as shorthand
-for setting the compatibility level to NN using one of the following
-mechanisms. For versions prior to bash-5.0, the compatibility level may
-be set using the corresponding ‘compat’NN shopt option. For bash-4.3
-and later versions, the ‘BASH_COMPAT’ variable is preferred, and it is
-required for bash-5.1 and later versions.
-
-‘compat31’
- • Quoting the rhs of the ‘[[’ command's regexp matching operator
- (=~) has no special effect
-
-‘compat40’
- • The ‘<’ and ‘>’ operators to the ‘[[’ command do not consider
- the current locale when comparing strings; they use ASCII
- ordering. Bash versions prior to bash-4.1 use ASCII collation
- and strcmp(3); bash-4.1 and later use the current locale's
- collation sequence and strcoll(3).
-
-‘compat41’
- • In POSIX mode, ‘time’ may be followed by options and still be
- recognized as a reserved word (this is POSIX interpretation
- 267).
- • In POSIX mode, the parser requires that an even number of
- single quotes occur in the WORD portion of a double-quoted
- ${...} parameter expansion and treats them specially, so that
- characters within the single quotes are considered quoted
- (this is POSIX interpretation 221).
-
-‘compat42’
- • The replacement string in double-quoted pattern substitution
- does not undergo quote removal, as it does in versions after
- bash-4.2.
- • In POSIX mode, single quotes are considered special when
- expanding the WORD portion of a double-quoted ${...} parameter
- expansion and can be used to quote a closing brace or other
- special character (this is part of POSIX interpretation 221);
- in later versions, single quotes are not special within
- double-quoted word expansions.
-
-‘compat43’
- • Word expansion errors are considered non-fatal errors that
- cause the current command to fail, even in POSIX mode (the
- default behavior is to make them fatal errors that cause the
- shell to exit).
- • When executing a shell function, the loop state
- (while/until/etc.) is not reset, so ‘break’ or ‘continue’ in
- that function will break or continue loops in the calling
- context. Bash-4.4 and later reset the loop state to prevent
- this.
-
-‘compat44’
- • The shell sets up the values used by ‘BASH_ARGV’ and
- ‘BASH_ARGC’ so they can expand to the shell's positional
- parameters even if extended debugging mode is not enabled.
- • A subshell inherits loops from its parent context, so ‘break’
- or ‘continue’ will cause the subshell to exit. Bash-5.0 and
- later reset the loop state to prevent the exit.
- • Variable assignments preceding builtins like ‘export’ and
- ‘readonly’ that set attributes continue to affect variables
- with the same name in the calling environment even if the
- shell is not in POSIX mode.
-
-‘compat50 (set using BASH_COMPAT)’
- • Bash-5.1 changed the way ‘$RANDOM’ is generated to introduce
- slightly more randomness. If the shell compatibility level is
- set to 50 or lower, it reverts to the method from bash-5.0 and
- previous versions, so seeding the random number generator by
- assigning a value to ‘RANDOM’ will produce the same sequence
- as in bash-5.0.
- • If the command hash table is empty, Bash versions prior to
- bash-5.1 printed an informational message to that effect, even
- when producing output that can be reused as input. Bash-5.1
- suppresses that message when the ‘-l’ option is supplied.
-
-‘compat51 (set using BASH_COMPAT)’
- • The ‘unset’ builtin will unset the array ‘a’ given an argument
- like ‘a[@]’. Bash-5.2 will unset an element with key ‘@’
- (associative arrays) or remove all the elements without
- unsetting the array (indexed arrays).
- • Arithmetic commands ( ((...)) ) and the expressions in an
- arithmetic for statement can be expanded more than once.
- • Expressions used as arguments to arithmetic operators in the
- ‘[[’ conditional command can be expanded more than once.
- • The expressions in substring parameter brace expansion can be
- expanded more than once.
- • The expressions in the $(( ... )) word expansion can be
- expanded more than once.
- • Arithmetic expressions used as indexed array subscripts can be
- expanded more than once.
- • ‘test -v’, when given an argument of ‘A[@]’, where A is an
- existing associative array, will return true if the array has
- any set elements. Bash-5.2 will look for and report on a key
- named ‘@’.
- • the ${PARAMETER[:]=VALUE} word expansion will return VALUE,
- before any variable-specific transformations have been
- performed (e.g., converting to lowercase). Bash-5.2 will
- return the final value assigned to the variable.
- • Parsing command substitutions will behave as if extended
- globbing (*note The Shopt Builtin::) is enabled, so that
- parsing a command substitution containing an extglob pattern
- (say, as part of a shell function) will not fail. This
- assumes the intent is to enable extglob before the command is
- executed and word expansions are performed. It will fail at
- word expansion time if extglob hasn't been enabled by the time
- the command is executed.
-
-‘compat52 (set using BASH_COMPAT)’
- • The ‘test’ builtin uses its historical algorithm to parse
- parenthesized subexpressions when given five or more
- arguments.
- • If the ‘-p’ or ‘-P’ option is supplied to the ‘bind’ builtin,
- ‘bind’ treats any arguments remaining after option processing
- as bindable command names, and displays any key sequences
- bound to those commands, instead of treating the arguments as
- key sequences to bind.
- • Interactive shells will notify the user of completed jobs
- while sourcing a script. Newer versions defer notification
- until script execution completes.
-
-\1f
-File: bashref.info, Node: Job Control, Next: Command Line Editing, Prev: Bash Features, Up: Top
-
-7 Job Control
-*************
-
-This chapter discusses what job control is, how it works, and how Bash
-allows you to access its facilities.
-
-* Menu:
-
-* Job Control Basics:: How job control works.
-* Job Control Builtins:: Bash builtin commands used to interact
- with job control.
-* Job Control Variables:: Variables Bash uses to customize job
- control.
-
-\1f
-File: bashref.info, Node: Job Control Basics, Next: Job Control Builtins, Up: Job Control
-
-7.1 Job Control Basics
-======================
-
-Job control refers to the ability to selectively stop (suspend) the
-execution of processes and continue (resume) their execution at a later
-point. A user typically employs this facility via an interactive
-interface supplied jointly by the operating system kernel's terminal
-driver and Bash.
-
- The shell associates a JOB with each pipeline. It keeps a table of
-currently executing jobs, which the ‘jobs’ command will display. Each
-job has a “job number”, which ‘jobs’ displays between brackets. Job
-numbers start at 1. When Bash starts a job asynchronously, it prints a
-line that looks like:
- [1] 25647
-indicating that this job is job number 1 and that the process ID of the
-last process in the pipeline associated with this job is 25647. All of
-the processes in a single pipeline are members of the same job. Bash
-uses the JOB abstraction as the basis for job control.
-
- To facilitate the implementation of the user interface to job
-control, each process has a “process group ID”, and the operating system
-maintains the notion of a current terminal process group ID. This
-terminal process group ID is associated with the “controlling terminal”.
-
- Processes that have the same process group ID are said to be part of
-the same “process group”. Members of the foreground process group
-(processes whose process group ID is equal to the current terminal
-process group ID) receive keyboard-generated signals such as ‘SIGINT’.
-Processes in the foreground process group are said to be foreground
-processes. Background processes are those whose process group ID
-differs from the controlling terminal's; such processes are immune to
-keyboard-generated signals. Only foreground processes are allowed to
-read from or, if the user so specifies with ‘stty tostop’, write to the
-controlling terminal. The system sends a ‘SIGTTIN’ (‘SIGTTOU’) signal
-to background processes which attempt to read from (write to when
-‘tostop’ is in effect) the terminal, which, unless caught, suspends the
-process.
-
- If the operating system on which Bash is running supports job
-control, Bash contains facilities to use it. Typing the “suspend”
-character (typically ‘^Z’, Control-Z) while a process is running stops
-that process and returns control to Bash. Typing the “delayed suspend”
-character (typically ‘^Y’, Control-Y) causes the process to stop when it
-attempts to read input from the terminal, and returns control to Bash.
-The user then manipulates the state of this job, using the ‘bg’ command
-to continue it in the background, the ‘fg’ command to continue it in the
-foreground, or the ‘kill’ command to kill it. The suspend character
-takes effect immediately, and has the additional side effect of
-discarding any pending output and typeahead. If you want to force a
-background process to stop, or stop a process that's not associated with
-your terminal session, send it the ‘SIGSTOP’ signal using ‘kill’.
-
- There are a number of ways to refer to a job in the shell. The ‘%’
-character introduces a “job specification” (jobspec).
-
- Job number ‘n’ may be referred to as ‘%n’. A job may also be
-referred to using a prefix of the name used to start it, or using a
-substring that appears in its command line. For example, ‘%ce’ refers
-to a job whose command name begins with ‘ce’. Using ‘%?ce’, on the
-other hand, refers to any job containing the string ‘ce’ in its command
-line. If the prefix or substring matches more than one job, Bash
-reports an error.
-
- The symbols ‘%%’ and ‘%+’ refer to the shell's notion of the “current
-job”. A single ‘%’ (with no accompanying job specification) also refers
-to the current job. ‘%-’ refers to the “previous job”. When a job
-starts in the background, a job stops while in the foreground, or a job
-is resumed in the background, it becomes the current job. The job that
-was the current job becomes the previous job. When the current job
-terminates, the previous job becomes the current job. If there is only
-a single job, ‘%+’ and ‘%-’ can both be used to refer to that job. In
-output pertaining to jobs (e.g., the output of the ‘jobs’ command), the
-current job is always marked with a ‘+’, and the previous job with a
-‘-’.
-
- Simply naming a job can be used to bring it into the foreground: ‘%1’
-is a synonym for ‘fg %1’, bringing job 1 from the background into the
-foreground. Similarly, ‘%1 &’ resumes job 1 in the background,
-equivalent to ‘bg %1’.
-
- The shell learns immediately whenever a job changes state. Normally,
-Bash waits until it is about to print a prompt before notifying the user
-about changes in a job's status so as to not interrupt any other output,
-though it will notify of changes in a job's status after a foreground
-command in a list completes, before executing the next command in the
-list. If the ‘-b’ option to the ‘set’ builtin is enabled, Bash reports
-status changes immediately (*note The Set Builtin::). Bash executes any
-trap on ‘SIGCHLD’ for each child process that terminates.
-
- When a job terminates and Bash notifies the user about it, Bash
-removes the job from the jobs table. It will not appear in ‘jobs’
-output, but ‘wait’ will report its exit status, as long as it's supplied
-the process ID associated with the job as an argument. When the table
-is empty, job numbers start over at 1.
-
- If a user attempts to exit Bash while jobs are stopped, (or running,
-if the ‘checkjobs’ option is enabled - see *note The Shopt Builtin::),
-the shell prints a warning message, and if the ‘checkjobs’ option is
-enabled, lists the jobs and their statuses. The ‘jobs’ command may then
-be used to inspect their status. If the user immediately attempts to
-exit again, without an intervening command, Bash does not print another
-warning, and terminates any stopped jobs.
-
- When the shell is waiting for a job or process using the ‘wait’
-builtin, and job control is enabled, ‘wait’ will return when the job
-changes state. The ‘-f’ option causes ‘wait’ to wait until the job or
-process terminates before returning.
-
-\1f
-File: bashref.info, Node: Job Control Builtins, Next: Job Control Variables, Prev: Job Control Basics, Up: Job Control
-
-7.2 Job Control Builtins
-========================
-
-‘bg’
- bg [JOBSPEC ...]
-
- Resume each suspended job JOBSPEC in the background, as if it had
- been started with ‘&’. If JOBSPEC is not supplied, the shell uses
- its notion of the current job. ‘bg’ returns zero unless it is run
- when job control is not enabled, or, when run with job control
- enabled, any JOBSPEC was not found or specifies a job that was
- started without job control.
-
-‘fg’
- fg [JOBSPEC]
-
- Resume the job JOBSPEC in the foreground and make it the current
- job. If JOBSPEC is not supplied, ‘fg’ resumes the current job.
- The return status is that of the command placed into the
- foreground, or non-zero if run when job control is disabled or,
- when run with job control enabled, JOBSPEC does not specify a valid
- job or JOBSPEC specifies a job that was started without job
- control.
-
-‘jobs’
- jobs [-lnprs] [JOBSPEC]
- jobs -x COMMAND [ARGUMENTS]
-
- The first form lists the active jobs. The options have the
- following meanings:
-
- ‘-l’
- List process IDs in addition to the normal information.
-
- ‘-n’
- Display information only about jobs that have changed status
- since the user was last notified of their status.
-
- ‘-p’
- List only the process ID of the job's process group leader.
-
- ‘-r’
- Display only running jobs.
-
- ‘-s’
- Display only stopped jobs.
-
- If JOBSPEC is supplied, ‘jobs’ restricts output to information
- about that job. If JOBSPEC is not supplied, ‘jobs’ lists the
- status of all jobs. The return status is zero unless an invalid
- option is encountered or an invalid JOBSPEC is supplied.
-
- If the ‘-x’ option is supplied, ‘jobs’ replaces any JOBSPEC found
- in COMMAND or ARGUMENTS with the corresponding process group ID,
- and executes COMMAND, passing it ARGUMENTs, returning its exit
- status.
-
-‘kill’
- kill [-s SIGSPEC] [-n SIGNUM] [-SIGSPEC] ID [...]
- kill -l|-L [EXIT_STATUS]
-
- Send a signal specified by SIGSPEC or SIGNUM to the processes named
- by each ID. Each ID may be a job specification JOBSPEC or process
- ID PID. SIGSPEC is either a case-insensitive signal name such as
- ‘SIGINT’ (with or without the ‘SIG’ prefix) or a signal number;
- SIGNUM is a signal number. If SIGSPEC and SIGNUM are not present,
- ‘kill’ sends ‘SIGTERM’.
-
- The ‘-l’ option lists the signal names. If any arguments are
- supplied when ‘-l’ is supplied, ‘kill’ lists the names of the
- signals corresponding to the arguments, and the return status is
- zero. EXIT_STATUS is a number specifying a signal number or the
- exit status of a process terminated by a signal; if it is supplied,
- ‘kill’ prints the name of the signal that caused the process to
- terminate. ‘kill’ assumes that process exit statuses are greater
- than 128; anything less than that is a signal number. The ‘-L’
- option is equivalent to ‘-l’.
-
- The return status is zero if at least one signal was successfully
- sent, or non-zero if an error occurs or an invalid option is
- encountered.
-
-‘wait’
- wait [-fn] [-p VARNAME] [ID ...]
-
- Wait until the child process specified by each ID exits and return
- the exit status of the last ID. Each ID may be a process ID PID or
- a job specification JOBSPEC; if a jobspec is supplied, ‘wait’ waits
- for all processes in the job.
-
- If no options or IDs are supplied, ‘wait’ waits for all running
- background jobs and the last-executed process substitution, if its
- process id is the same as $!, and the return status is zero.
-
- If the ‘-n’ option is supplied, ‘wait’ waits for any one of the IDs
- or, if no IDs are supplied, any job or process substitution, to
- complete and returns its exit status. If none of the supplied IDs
- is a child of the shell, or if no arguments are supplied and the
- shell has no unwaited-for children, the exit status is 127.
-
- If the ‘-p’ option is supplied, ‘wait’ assigns the process or job
- identifier of the job for which the exit status is returned to the
- variable VARNAME named by the option argument. The variable, which
- cannot be readonly, will be unset initially, before any assignment.
- This is useful only when used with the ‘-n’ option.
-
- Supplying the ‘-f’ option, when job control is enabled, forces
- ‘wait’ to wait for each ID to terminate before returning its
- status, instead of returning when it changes status.
-
- If none of the IDs specify one of the shell's an active child
- processes, the return status is 127. If ‘wait’ is interrupted by a
- signal, any VARNAME will remain unset, and the return status will
- be greater than 128, as described above (*note Signals::).
- Otherwise, the return status is the exit status of the last ID.
-
-‘disown’
- disown [-ar] [-h] [ID ...]
-
- Without options, remove each ID from the table of active jobs.
- Each ID may be a job specification JOBSPEC or a process ID PID; if
- ID is a PID, ‘disown’ uses the job containing PID as JOBSPEC.
-
- If the ‘-h’ option is supplied, ‘disown’ does not remove the jobs
- corresponding to each ‘id’ from the jobs table, but rather marks
- them so the shell does not send ‘SIGHUP’ to the job if the shell
- receives a ‘SIGHUP’.
-
- If no ID is supplied, the ‘-a’ option means to remove or mark all
- jobs; the ‘-r’ option without an ID argument removes or marks
- running jobs. If no ID is supplied, and neither the ‘-a’ nor the
- ‘-r’ option is supplied, ‘disown’ removes or marks the current job.
-
- The return value is 0 unless an ID does not specify a valid job.
-
-‘suspend’
- suspend [-f]
-
- Suspend the execution of this shell until it receives a ‘SIGCONT’
- signal. A login shell, or a shell without job control enabled,
- cannot be suspended; the ‘-f’ option will override this and force
- the suspension. The return status is 0 unless the shell is a login
- shell or job control is not enabled and ‘-f’ is not supplied.
-
- When job control is not active, the ‘kill’ and ‘wait’ builtins do not
-accept JOBSPEC arguments. They must be supplied process IDs.
-
-\1f
-File: bashref.info, Node: Job Control Variables, Prev: Job Control Builtins, Up: Job Control
-
-7.3 Job Control Variables
-=========================
-
-‘auto_resume’
- This variable controls how the shell interacts with the user and
- job control. If this variable exists then simple commands
- consisting of only a single word, without redirections, are treated
- as candidates for resumption of an existing job. There is no
- ambiguity allowed; if there is more than one job beginning with or
- containing the word, then this selects the most recently accessed
- job. The name of a stopped job, in this context, is the command
- line used to start it, as displayed by ‘jobs’. If this variable is
- set to the value ‘exact’, the word must match the name of a stopped
- job exactly; if set to ‘substring’, the word needs to match a
- substring of the name of a stopped job. The ‘substring’ value
- provides functionality analogous to the ‘%?string’ job ID (*note
- Job Control Basics::). If set to any other value (e.g., ‘prefix’),
- the word must be a prefix of a stopped job's name; this provides
- functionality analogous to the ‘%string’ job ID.
-
-\1f
-File: bashref.info, Node: Command Line Editing, Next: Using History Interactively, Prev: Job Control, Up: Top
-
-8 Command Line Editing
-**********************
-
-This chapter describes the basic features of the GNU command line
-editing interface. Command line editing is provided by the Readline
-library, which is used by several different programs, including Bash.
-Command line editing is enabled by default when using an interactive
-shell, unless the ‘--noediting’ option is supplied at shell invocation.
-Line editing is also used when using the ‘-e’ option to the ‘read’
-builtin command (*note Bash Builtins::). By default, the line editing
-commands are similar to those of Emacs; a vi-style line editing
-interface is also available. Line editing can be enabled at any time
-using the ‘-o emacs’ or ‘-o vi’ options to the ‘set’ builtin command
-(*note The Set Builtin::), or disabled using the ‘+o emacs’ or ‘+o vi’
-options to ‘set’.
-
-* Menu:
-
-* Introduction and Notation:: Notation used in this text.
-* Readline Interaction:: The minimum set of commands for editing a line.
-* Readline Init File:: Customizing Readline from a user's view.
-* Bindable Readline Commands:: A description of most of the Readline commands
- available for binding
-* Readline vi Mode:: A short description of how to make Readline
- behave like the vi editor.
-* Programmable Completion:: How to specify the possible completions for
- a specific command.
-* Programmable Completion Builtins:: Builtin commands to specify how to
- complete arguments for a particular command.
-* A Programmable Completion Example:: An example shell function for
- generating possible completions.
-
-\1f
-File: bashref.info, Node: Introduction and Notation, Next: Readline Interaction, Up: Command Line Editing
-
-8.1 Introduction to Line Editing
-================================
-
-The following paragraphs use Emacs style to describe the notation used
-to represent keystrokes.
-
- The text ‘C-k’ is read as "Control-K" and describes the character
-produced when the <k> key is pressed while the Control key is depressed.
-
- The text ‘M-k’ is read as "Meta-K" and describes the character
-produced when the Meta key (if you have one) is depressed, and the <k>
-key is pressed (a “meta character”), then both are released. The Meta
-key is labeled <ALT> or <Option> on many keyboards. On keyboards with
-two keys labeled <ALT> (usually to either side of the space bar), the
-<ALT> on the left side is generally set to work as a Meta key. One of
-the <ALT> keys may also be configured as some other modifier, such as a
-Compose key for typing accented characters.
-
- On some keyboards, the Meta key modifier produces characters with the
-eighth bit (0200) set. You can use the ‘enable-meta-key’ variable to
-control whether or not it does this, if the keyboard allows it. On many
-others, the terminal or terminal emulator converts the metafied key to a
-key sequence beginning with <ESC> as described in the next paragraph.
-
- If you do not have a Meta or <ALT> key, or another key working as a
-Meta key, you can generally achieve the latter effect by typing <ESC>
-_first_, and then typing <k>. The <ESC> character is known as the “meta
-prefix”).
-
- Either process is known as “metafying” the <k> key.
-
- If your Meta key produces a key sequence with the <ESC> meta prefix,
-you can make ‘M-key’ key bindings you specify (see ‘Key Bindings’ in
-*note Readline Init File Syntax::) do the same thing by setting the
-‘force-meta-prefix’ variable.
-
- The text ‘M-C-k’ is read as "Meta-Control-k" and describes the
-character produced by metafying ‘C-k’.
-
- In addition, several keys have their own names. Specifically, <DEL>,
-<ESC>, <LFD>, <SPC>, <RET>, and <TAB> all stand for themselves when seen
-in this text, or in an init file (*note Readline Init File::). If your
-keyboard lacks a <LFD> key, typing <C-j> will output the appropriate
-character. The <RET> key may be labeled <Return> or <Enter> on some
-keyboards.
-
-\1f
-File: bashref.info, Node: Readline Interaction, Next: Readline Init File, Prev: Introduction and Notation, Up: Command Line Editing
-
-8.2 Readline Interaction
-========================
-
-Often during an interactive session you type in a long line of text,
-only to notice that the first word on the line is misspelled. The
-Readline library gives you a set of commands for manipulating the text
-as you type it in, allowing you to just fix your typo, and not forcing
-you to retype the majority of the line. Using these editing commands,
-you move the cursor to the place that needs correction, and delete or
-insert the text of the corrections. Then, when you are satisfied with
-the line, you simply press <RET>. You do not have to be at the end of
-the line to press <RET>; the entire line is accepted regardless of the
-location of the cursor within the line.
-
-* Menu:
-
-* Readline Bare Essentials:: The least you need to know about Readline.
-* Readline Movement Commands:: Moving about the input line.
-* Readline Killing Commands:: How to delete text, and how to get it back!
-* Readline Arguments:: Giving numeric arguments to commands.
-* Searching:: Searching through previous lines.
-
-\1f
-File: bashref.info, Node: Readline Bare Essentials, Next: Readline Movement Commands, Up: Readline Interaction
-
-8.2.1 Readline Bare Essentials
-------------------------------
-
-In order to enter characters into the line, simply type them. The typed
-character appears where the cursor was, and then the cursor moves one
-space to the right. If you mistype a character, you can use your erase
-character to back up and delete the mistyped character.
-
- Sometimes you may mistype a character, and not notice the error until
-you have typed several other characters. In that case, you can type
-‘C-b’ to move the cursor to the left, and then correct your mistake.
-Afterwards, you can move the cursor to the right with ‘C-f’.
-
- When you add text in the middle of a line, you will notice that
-characters to the right of the cursor are "pushed over" to make room for
-the text that you have inserted. Likewise, when you delete text behind
-the cursor, characters to the right of the cursor are "pulled back" to
-fill in the blank space created by the removal of the text. These are
-the bare essentials for editing the text of an input line:
-
-‘C-b’
- Move back one character.
-‘C-f’
- Move forward one character.
-<DEL> or <Backspace>
- Delete the character to the left of the cursor.
-‘C-d’
- Delete the character underneath the cursor.
-Printing characters
- Insert the character into the line at the cursor.
-‘C-_’ or ‘C-x C-u’
- Undo the last editing command. You can undo all the way back to an
- empty line.
-
-Depending on your configuration, the <Backspace> key might be set to
-delete the character to the left of the cursor and the <DEL> key set to
-delete the character underneath the cursor, like ‘C-d’, rather than the
-character to the left of the cursor.
-
-\1f
-File: bashref.info, Node: Readline Movement Commands, Next: Readline Killing Commands, Prev: Readline Bare Essentials, Up: Readline Interaction
-
-8.2.2 Readline Movement Commands
---------------------------------
-
-The above table describes the most basic keystrokes that you need in
-order to do editing of the input line. For your convenience, many other
-commands are available in addition to ‘C-b’, ‘C-f’, ‘C-d’, and <DEL>.
-Here are some commands for moving more rapidly within the line.
-
-‘C-a’
- Move to the start of the line.
-‘C-e’
- Move to the end of the line.
-‘M-f’
- Move forward a word, where a word is composed of letters and
- digits.
-‘M-b’
- Move backward a word.
-‘C-l’
- Clear the screen, reprinting the current line at the top.
-
- Notice how ‘C-f’ moves forward a character, while ‘M-f’ moves forward
-a word. It is a loose convention that control keystrokes operate on
-characters while meta keystrokes operate on words.
-
-\1f
-File: bashref.info, Node: Readline Killing Commands, Next: Readline Arguments, Prev: Readline Movement Commands, Up: Readline Interaction
-
-8.2.3 Readline Killing Commands
--------------------------------
-
-“Killing” text means to delete the text from the line, but to save it
-away for later use, usually by “yanking” (re-inserting) it back into the
-line. ("Cut" and "paste" are more recent jargon for "kill" and "yank".)
-
- If the description for a command says that it "kills" text, then you
-can be sure that you can get the text back in a different (or the same)
-place later.
-
- When you use a kill command, the text is saved in a “kill-ring”. Any
-number of consecutive kills save all of the killed text together, so
-that when you yank it back, you get it all. The kill ring is not line
-specific; the text that you killed on a previously typed line is
-available to be yanked back later, when you are typing another line.
-
- Here is the list of commands for killing text.
-
-‘C-k’
- Kill the text from the current cursor position to the end of the
- line.
-
-‘M-d’
- Kill from the cursor to the end of the current word, or, if between
- words, to the end of the next word. Word boundaries are the same
- as those used by ‘M-f’.
-
-‘M-<DEL>’
- Kill from the cursor to the start of the current word, or, if
- between words, to the start of the previous word. Word boundaries
- are the same as those used by ‘M-b’.
-
-‘C-w’
- Kill from the cursor to the previous whitespace. This is different
- than ‘M-<DEL>’ because the word boundaries differ.
-
- Here is how to “yank” the text back into the line. Yanking means to
-copy the most-recently-killed text from the kill buffer into the line at
-the current cursor position.
-
-‘C-y’
- Yank the most recently killed text back into the buffer at the
- cursor.
-
-‘M-y’
- Rotate the kill-ring, and yank the new top. You can only do this
- if the prior command is ‘C-y’ or ‘M-y’.
-
-\1f
-File: bashref.info, Node: Readline Arguments, Next: Searching, Prev: Readline Killing Commands, Up: Readline Interaction
-
-8.2.4 Readline Arguments
-------------------------
-
-You can pass numeric arguments to Readline commands. Sometimes the
-argument acts as a repeat count, other times it is the sign of the
-argument that is significant. If you pass a negative argument to a
-command which normally acts in a forward direction, that command will
-act in a backward direction. For example, to kill text back to the
-start of the line, you might type ‘M-- C-k’.
-
- The general way to pass numeric arguments to a command is to type the
-Meta key and then digits ("meta digits") before the command. If the
-first "digit" typed is a minus sign (‘-’), then the sign of the argument
-will be negative. Once you have typed one meta digit to get the
-argument started, you can type the remainder of the digits, and then the
-command. For example, to give the ‘C-d’ command an argument of 10, you
-could type ‘M-1 0 C-d’, which will delete the next ten characters on the
-input line.
-
-\1f
-File: bashref.info, Node: Searching, Prev: Readline Arguments, Up: Readline Interaction
-
-8.2.5 Searching for Commands in the History
--------------------------------------------
-
-Readline provides commands for searching through the command history
-(*note Bash History Facilities::) for lines containing a specified
-string. There are two search modes: “incremental” and
-“non-incremental”.
-
- Incremental searches begin before the user has finished typing the
-search string. As each character of the search string is typed,
-Readline displays the next entry from the history matching the string
-typed so far. An incremental search requires only as many characters as
-needed to find the desired history entry. When using emacs editing
-mode, type ‘C-r’ to search backward in the history for a particular
-string. Typing ‘C-s’ searches forward through the history. The
-characters present in the value of the ‘isearch-terminators’ variable
-are used to terminate an incremental search. If that variable has not
-been assigned a value, the <ESC> and ‘C-j’ characters terminate an
-incremental search. ‘C-g’ aborts an incremental search and restores the
-original line. When the search is terminated, the history entry
-containing the search string becomes the current line.
-
- To find other matching entries in the history list, type ‘C-r’ or
-‘C-s’ as appropriate. This searches backward or forward in the history
-for the next entry matching the search string typed so far. Any other
-key sequence bound to a Readline command terminates the search and
-executes that command. For instance, a <RET> terminates the search and
-accepts the line, thereby executing the command from the history list.
-A movement command will terminate the search, make the last line found
-the current line, and begin editing.
-
- Readline remembers the last incremental search string. If two ‘C-r’s
-are typed without any intervening characters defining a new search
-string, Readline uses any remembered search string.
-
- Non-incremental searches read the entire search string before
-starting to search for matching history entries. The search string may
-be typed by the user or be part of the contents of the current line.
-
-\1f
-File: bashref.info, Node: Readline Init File, Next: Bindable Readline Commands, Prev: Readline Interaction, Up: Command Line Editing
-
-8.3 Readline Init File
-======================
-
-Although the Readline library comes with a set of Emacs-like keybindings
-installed by default, it is possible to use a different set of
-keybindings. Any user can customize programs that use Readline by
-putting commands in an “inputrc” file, conventionally in their home
-directory. The name of this file is taken from the value of the shell
-variable ‘INPUTRC’. If that variable is unset, the default is
-‘~/.inputrc’. If that file does not exist or cannot be read, Readline
-looks for ‘/etc/inputrc’. The ‘bind’ builtin command can also be used
-to set Readline keybindings and variables. *Note Bash Builtins::.
-
- When a program that uses the Readline library starts up, Readline
-reads the init file and sets any variables and key bindings it contains.
-
- In addition, the ‘C-x C-r’ command re-reads this init file, thus
-incorporating any changes that you might have made to it.
-
-* Menu:
-
-* Readline Init File Syntax:: Syntax for the commands in the inputrc file.
-* Conditional Init Constructs:: Conditional key bindings in the inputrc file.
-* Sample Init File:: An example inputrc file.
-
-\1f
-File: bashref.info, Node: Readline Init File Syntax, Next: Conditional Init Constructs, Up: Readline Init File
-
-8.3.1 Readline Init File Syntax
--------------------------------
-
-There are only a few basic constructs allowed in the Readline init file.
-Blank lines are ignored. Lines beginning with a ‘#’ are comments.
-Lines beginning with a ‘$’ indicate conditional constructs (*note
-Conditional Init Constructs::). Other lines denote variable settings
-and key bindings.
-
-Variable Settings
- You can modify the run-time behavior of Readline by altering the
- values of variables in Readline using the ‘set’ command within the
- init file. The syntax is simple:
-
- set VARIABLE VALUE
-
- Here, for example, is how to change from the default Emacs-like key
- binding to use ‘vi’ line editing commands:
-
- set editing-mode vi
-
- Variable names and values, where appropriate, are recognized
- without regard to case. Unrecognized variable names are ignored.
-
- Boolean variables (those that can be set to on or off) are set to
- on if the value is null or empty, ON (case-insensitive), or 1. Any
- other value results in the variable being set to off.
-
- The ‘bind -V’ command lists the current Readline variable names and
- values. *Note Bash Builtins::.
-
- A great deal of run-time behavior is changeable with the following
- variables.
-
- ‘active-region-start-color’
- A string variable that controls the text color and background
- when displaying the text in the active region (see the
- description of ‘enable-active-region’ below). This string
- must not take up any physical character positions on the
- display, so it should consist only of terminal escape
- sequences. It is output to the terminal before displaying the
- text in the active region. This variable is reset to the
- default value whenever the terminal type changes. The default
- value is the string that puts the terminal in standout mode,
- as obtained from the terminal's terminfo description. A
- sample value might be ‘\e[01;33m’.
-
- ‘active-region-end-color’
- A string variable that "undoes" the effects of
- ‘active-region-start-color’ and restores "normal" terminal
- display appearance after displaying text in the active region.
- This string must not take up any physical character positions
- on the display, so it should consist only of terminal escape
- sequences. It is output to the terminal after displaying the
- text in the active region. This variable is reset to the
- default value whenever the terminal type changes. The default
- value is the string that restores the terminal from standout
- mode, as obtained from the terminal's terminfo description. A
- sample value might be ‘\e[0m’.
-
- ‘bell-style’
- Controls what happens when Readline wants to ring the terminal
- bell. If set to ‘none’, Readline never rings the bell. If
- set to ‘visible’, Readline uses a visible bell if one is
- available. If set to ‘audible’ (the default), Readline
- attempts to ring the terminal's bell.
-
- ‘bind-tty-special-chars’
- If set to ‘on’ (the default), Readline attempts to bind the
- control characters that are treated specially by the kernel's
- terminal driver to their Readline equivalents. These override
- the default Readline bindings described here. Type ‘stty -a’
- at a Bash prompt to see your current terminal settings,
- including the special control characters (usually ‘cchars’).
- This binding takes place on each call to ‘readline()’, so
- changes made by ‘stty’ can take effect.
-
- ‘blink-matching-paren’
- If set to ‘on’, Readline attempts to briefly move the cursor
- to an opening parenthesis when a closing parenthesis is
- inserted. The default is ‘off’.
-
- ‘colored-completion-prefix’
- If set to ‘on’, when listing completions, Readline displays
- the common prefix of the set of possible completions using a
- different color. The color definitions are taken from the
- value of the ‘LS_COLORS’ environment variable. If there is a
- color definition in ‘LS_COLORS’ for the custom suffix
- ‘readline-colored-completion-prefix’, Readline uses this color
- for the common prefix instead of its default. The default is
- ‘off’.
-
- ‘colored-stats’
- If set to ‘on’, Readline displays possible completions using
- different colors to indicate their file type. The color
- definitions are taken from the value of the ‘LS_COLORS’
- environment variable. The default is ‘off’.
-
- ‘comment-begin’
- The string to insert at the beginning of the line by the
- ‘insert-comment’ command. The default value is ‘"#"’.
-
- ‘completion-display-width’
- The number of screen columns used to display possible matches
- when performing completion. The value is ignored if it is
- less than 0 or greater than the terminal screen width. A
- value of 0 causes matches to be displayed one per line. The
- default value is -1.
-
- ‘completion-ignore-case’
- If set to ‘on’, Readline performs filename matching and
- completion in a case-insensitive fashion. The default value
- is ‘off’.
-
- ‘completion-map-case’
- If set to ‘on’, and COMPLETION-IGNORE-CASE is enabled,
- Readline treats hyphens (‘-’) and underscores (‘_’) as
- equivalent when performing case-insensitive filename matching
- and completion. The default value is ‘off’.
-
- ‘completion-prefix-display-length’
- The maximum length in characters of the common prefix of a
- list of possible completions that is displayed without
- modification. When set to a value greater than zero, Readline
- replaces common prefixes longer than this value with an
- ellipsis when displaying possible completions. If a
- completion begins with a period, and Readline is completing
- filenames, it uses three underscores instead of an ellipsis.
-
- ‘completion-query-items’
- The number of possible completions that determines when the
- user is asked whether the list of possibilities should be
- displayed. If the number of possible completions is greater
- than or equal to this value, Readline asks whether or not the
- user wishes to view them; otherwise, Readline simply lists the
- completions. This variable must be set to an integer value
- greater than or equal to zero. A zero value means Readline
- should never ask; negative values are treated as zero. The
- default limit is ‘100’.
-
- ‘convert-meta’
- If set to ‘on’, Readline converts characters it reads that
- have the eighth bit set to an ASCII key sequence by clearing
- the eighth bit and prefixing an <ESC> character, converting
- them to a meta-prefixed key sequence. The default value is
- ‘on’, but Readline sets it to ‘off’ if the locale contains
- characters whose encodings may include bytes with the eighth
- bit set. This variable is dependent on the ‘LC_CTYPE’ locale
- category, and may change if the locale changes. This variable
- also affects key bindings; see the description of
- ‘force-meta-prefix’ below.
-
- ‘disable-completion’
- If set to ‘On’, Readline inhibits word completion. Completion
- characters are inserted into the line as if they had been
- mapped to ‘self-insert’. The default is ‘off’.
-
- ‘echo-control-characters’
- When set to ‘on’, on operating systems that indicate they
- support it, Readline echoes a character corresponding to a
- signal generated from the keyboard. The default is ‘on’.
-
- ‘editing-mode’
- The ‘editing-mode’ variable controls the default set of key
- bindings. By default, Readline starts up in emacs editing
- mode, where the keystrokes are most similar to Emacs. This
- variable can be set to either ‘emacs’ or ‘vi’.
-
- ‘emacs-mode-string’
- If the SHOW-MODE-IN-PROMPT variable is enabled, this string is
- displayed immediately before the last line of the primary
- prompt when emacs editing mode is active. The value is
- expanded like a key binding, so the standard set of meta- and
- control- prefixes and backslash escape sequences is available.
- The ‘\1’ and ‘\2’ escapes begin and end sequences of
- non-printing characters, which can be used to embed a terminal
- control sequence into the mode string. The default is ‘@’.
-
- ‘enable-active-region’
- “point” is the current cursor position, and “mark” refers to a
- saved cursor position (*note Commands For Moving::). The text
- between the point and mark is referred to as the “region”.
- When this variable is set to ‘On’, Readline allows certain
- commands to designate the region as “active”. When the region
- is active, Readline highlights the text in the region using
- the value of the ‘active-region-start-color’, which defaults
- to the string that enables the terminal's standout mode. The
- active region shows the text inserted by bracketed-paste and
- any matching text found by incremental and non-incremental
- history searches. The default is ‘On’.
-
- ‘enable-bracketed-paste’
- When set to ‘On’, Readline configures the terminal to insert
- each paste into the editing buffer as a single string of
- characters, instead of treating each character as if it had
- been read from the keyboard. This is called putting the
- terminal into “bracketed paste mode”; it prevents Readline
- from executing any editing commands bound to key sequences
- appearing in the pasted text. The default is ‘On’.
-
- ‘enable-keypad’
- When set to ‘on’, Readline tries to enable the application
- keypad when it is called. Some systems need this to enable
- the arrow keys. The default is ‘off’.
-
- ‘enable-meta-key’
- When set to ‘on’, Readline tries to enable any meta modifier
- key the terminal claims to support when it is called. On many
- terminals, the Meta key is used to send eight-bit characters;
- this variable checks for the terminal capability that
- indicates the terminal can enable and disable a mode that sets
- the eighth bit of a character (0200) if the Meta key is held
- down when the character is typed (a meta character). The
- default is ‘on’.
-
- ‘expand-tilde’
- If set to ‘on’, Readline attempts tilde expansion when it
- attempts word completion. The default is ‘off’.
-
- ‘force-meta-prefix’
- If set to ‘on’, Readline modifies its behavior when binding
- key sequences containing ‘\M-’ or ‘Meta-’ (see ‘Key Bindings’
- in *note Readline Init File Syntax::) by converting a key
- sequence of the form ‘\M-’C or ‘Meta-’C to the two-character
- sequence ‘ESC’ C (adding the meta prefix). If
- ‘force-meta-prefix’ is set to ‘off’ (the default), Readline
- uses the value of the ‘convert-meta’ variable to determine
- whether to perform this conversion: if ‘convert-meta’ is ‘on’,
- Readline performs the conversion described above; if it is
- ‘off’, Readline converts C to a meta character by setting the
- eighth bit (0200). The default is ‘off’.
-
- ‘history-preserve-point’
- If set to ‘on’, the history code attempts to place the point
- (the current cursor position) at the same location on each
- history line retrieved with ‘previous-history’ or
- ‘next-history’. The default is ‘off’.
-
- ‘history-size’
- Set the maximum number of history entries saved in the history
- list. If set to zero, any existing history entries are
- deleted and no new entries are saved. If set to a value less
- than zero, the number of history entries is not limited. By
- default, Bash sets the maximum number of history entries to
- the value of the ‘HISTSIZE’ shell variable. If you try to set
- HISTORY-SIZE to a non-numeric value, the maximum number of
- history entries will be set to 500.
-
- ‘horizontal-scroll-mode’
- Setting this variable to ‘on’ means that the text of the lines
- being edited will scroll horizontally on a single screen line
- when the lines are longer than the width of the screen,
- instead of wrapping onto a new screen line. This variable is
- automatically set to ‘on’ for terminals of height 1. By
- default, this variable is set to ‘off’.
-
- ‘input-meta’
- If set to ‘on’, Readline enables eight-bit input (that is, it
- does not clear the eighth bit in the characters it reads),
- regardless of what the terminal claims it can support. The
- default value is ‘off’, but Readline sets it to ‘on’ if the
- locale contains characters whose encodings may include bytes
- with the eighth bit set. This variable is dependent on the
- ‘LC_CTYPE’ locale category, and its value may change if the
- locale changes. The name ‘meta-flag’ is a synonym for
- ‘input-meta’.
-
- ‘isearch-terminators’
- The string of characters that should terminate an incremental
- search without subsequently executing the character as a
- command (*note Searching::). If this variable has not been
- given a value, the characters <ESC> and ‘C-j’ terminate an
- incremental search.
-
- ‘keymap’
- Sets Readline's idea of the current keymap for key binding
- commands. Built-in ‘keymap’ names are ‘emacs’,
- ‘emacs-standard’, ‘emacs-meta’, ‘emacs-ctlx’, ‘vi’, ‘vi-move’,
- ‘vi-command’, and ‘vi-insert’. ‘vi’ is equivalent to
- ‘vi-command’ (‘vi-move’ is also a synonym); ‘emacs’ is
- equivalent to ‘emacs-standard’. Applications may add
- additional names. The default value is ‘emacs’; the value of
- the ‘editing-mode’ variable also affects the default keymap.
-
- ‘keyseq-timeout’
- Specifies the duration Readline will wait for a character when
- reading an ambiguous key sequence (one that can form a
- complete key sequence using the input read so far, or can take
- additional input to complete a longer key sequence). If
- Readline doesn't receive any input within the timeout, it uses
- the shorter but complete key sequence. Readline uses this
- value to determine whether or not input is available on the
- current input source (‘rl_instream’ by default). The value is
- specified in milliseconds, so a value of 1000 means that
- Readline will wait one second for additional input. If this
- variable is set to a value less than or equal to zero, or to a
- non-numeric value, Readline waits until another key is pressed
- to decide which key sequence to complete. The default value
- is ‘500’.
-
- ‘mark-directories’
- If set to ‘on’, completed directory names have a slash
- appended. The default is ‘on’.
-
- ‘mark-modified-lines’
- When this variable is set to ‘on’, Readline displays an
- asterisk (‘*’) at the start of history lines which have been
- modified. This variable is ‘off’ by default.
-
- ‘mark-symlinked-directories’
- If set to ‘on’, completed names which are symbolic links to
- directories have a slash appended, subject to the value of
- ‘mark-directories’. The default is ‘off’.
-
- ‘match-hidden-files’
- This variable, when set to ‘on’, forces Readline to match
- files whose names begin with a ‘.’ (hidden files) when
- performing filename completion. If set to ‘off’, the user
- must include the leading ‘.’ in the filename to be completed.
- This variable is ‘on’ by default.
-
- ‘menu-complete-display-prefix’
- If set to ‘on’, menu completion displays the common prefix of
- the list of possible completions (which may be empty) before
- cycling through the list. The default is ‘off’.
-
- ‘output-meta’
- If set to ‘on’, Readline displays characters with the eighth
- bit set directly rather than as a meta-prefixed escape
- sequence. The default is ‘off’, but Readline sets it to ‘on’
- if the locale contains characters whose encodings may include
- bytes with the eighth bit set. This variable is dependent on
- the ‘LC_CTYPE’ locale category, and its value may change if
- the locale changes.
-
- ‘page-completions’
- If set to ‘on’, Readline uses an internal pager resembling
- more(1) to display a screenful of possible completions at a
- time. This variable is ‘on’ by default.
-
- ‘prefer-visible-bell’
- See ‘bell-style’.
-
- ‘print-completions-horizontally’
- If set to ‘on’, Readline displays completions with matches
- sorted horizontally in alphabetical order, rather than down
- the screen. The default is ‘off’.
-
- ‘revert-all-at-newline’
- If set to ‘on’, Readline will undo all changes to history
- lines before returning when executing ‘accept-line’. By
- default, history lines may be modified and retain individual
- undo lists across calls to ‘readline()’. The default is
- ‘off’.
-
- ‘search-ignore-case’
- If set to ‘on’, Readline performs incremental and
- non-incremental history list searches in a case-insensitive
- fashion. The default value is ‘off’.
-
- ‘show-all-if-ambiguous’
- This alters the default behavior of the completion functions.
- If set to ‘on’, words which have more than one possible
- completion cause the matches to be listed immediately instead
- of ringing the bell. The default value is ‘off’.
-
- ‘show-all-if-unmodified’
- This alters the default behavior of the completion functions
- in a fashion similar to SHOW-ALL-IF-AMBIGUOUS. If set to
- ‘on’, words which have more than one possible completion
- without any possible partial completion (the possible
- completions don't share a common prefix) cause the matches to
- be listed immediately instead of ringing the bell. The
- default value is ‘off’.
-
- ‘show-mode-in-prompt’
- If set to ‘on’, add a string to the beginning of the prompt
- indicating the editing mode: emacs, vi command, or vi
- insertion. The mode strings are user-settable (e.g.,
- EMACS-MODE-STRING). The default value is ‘off’.
-
- ‘skip-completed-text’
- If set to ‘on’, this alters the default completion behavior
- when inserting a single match into the line. It's only active
- when performing completion in the middle of a word. If
- enabled, Readline does not insert characters from the
- completion that match characters after point in the word being
- completed, so portions of the word following the cursor are
- not duplicated. For instance, if this is enabled, attempting
- completion when the cursor is after the first ‘e’ in
- ‘Makefile’ will result in ‘Makefile’ rather than
- ‘Makefilefile’, assuming there is a single possible
- completion. The default value is ‘off’.
-
- ‘vi-cmd-mode-string’
- If the SHOW-MODE-IN-PROMPT variable is enabled, this string is
- displayed immediately before the last line of the primary
- prompt when vi editing mode is active and in command mode.
- The value is expanded like a key binding, so the standard set
- of meta- and control- prefixes and backslash escape sequences
- is available. The ‘\1’ and ‘\2’ escapes begin and end
- sequences of non-printing characters, which can be used to
- embed a terminal control sequence into the mode string. The
- default is ‘(cmd)’.
-
- ‘vi-ins-mode-string’
- If the SHOW-MODE-IN-PROMPT variable is enabled, this string is
- displayed immediately before the last line of the primary
- prompt when vi editing mode is active and in insertion mode.
- The value is expanded like a key binding, so the standard set
- of meta- and control- prefixes and backslash escape sequences
- is available. The ‘\1’ and ‘\2’ escapes begin and end
- sequences of non-printing characters, which can be used to
- embed a terminal control sequence into the mode string. The
- default is ‘(ins)’.
-
- ‘visible-stats’
- If set to ‘on’, a character denoting a file's type is appended
- to the filename when listing possible completions. The
- default is ‘off’.
-
-Key Bindings
- The syntax for controlling key bindings in the init file is simple.
- First you need to find the name of the command that you want to
- change. The following sections contain tables of the command name,
- the default keybinding, if any, and a short description of what the
- command does.
-
- Once you know the name of the command, simply place on a line in
- the init file the name of the key you wish to bind the command to,
- a colon, and then the name of the command. There can be no space
- between the key name and the colon - that will be interpreted as
- part of the key name. The name of the key can be expressed in
- different ways, depending on what you find most comfortable.
-
- In addition to command names, Readline allows keys to be bound to a
- string that is inserted when the key is pressed (a MACRO). The
- difference between a macro and a command is that a macro is
- enclosed in single or double quotes.
-
- The ‘bind -p’ command displays Readline function names and bindings
- in a format that can be put directly into an initialization file.
- *Note Bash Builtins::.
-
- KEYNAME: FUNCTION-NAME or MACRO
- KEYNAME is the name of a key spelled out in English. For
- example:
- Control-u: universal-argument
- Meta-Rubout: backward-kill-word
- Control-o: "> output"
-
- In the example above, ‘C-u’ is bound to the function
- ‘universal-argument’, ‘M-DEL’ is bound to the function
- ‘backward-kill-word’, and ‘C-o’ is bound to run the macro
- expressed on the right hand side (that is, to insert the text
- ‘> output’ into the line).
-
- This key binding syntax recognizes a number of symbolic
- character names: DEL, ESC, ESCAPE, LFD, NEWLINE, RET, RETURN,
- RUBOUT (a destructive backspace), SPACE, SPC, and TAB.
-
- "KEYSEQ": FUNCTION-NAME or MACRO
- KEYSEQ differs from KEYNAME above in that strings denoting an
- entire key sequence can be specified, by placing the key
- sequence in double quotes. Some GNU Emacs style key escapes
- can be used, as in the following example, but none of the
- special character names are recognized.
-
- "\C-u": universal-argument
- "\C-x\C-r": re-read-init-file
- "\e[11~": "Function Key 1"
-
- In the above example, ‘C-u’ is again bound to the function
- ‘universal-argument’ (just as it was in the first example),
- ‘‘C-x’ ‘C-r’’ is bound to the function ‘re-read-init-file’,
- and ‘<ESC> <[> <1> <1> <~>’ is bound to insert the text
- ‘Function Key 1’.
-
- The following GNU Emacs style escape sequences are available when
- specifying key sequences:
-
- ‘\C-’
- A control prefix.
- ‘\M-’
- Adding the meta prefix or converting the following character
- to a meta character, as described above under
- ‘force-meta-prefix’ (see ‘Variable Settings’ in *note Readline
- Init File Syntax::).
- ‘\e’
- An escape character.
- ‘\\’
- Backslash.
- ‘\"’
- <">, a double quotation mark.
- ‘\'’
- <'>, a single quote or apostrophe.
-
- In addition to the GNU Emacs style escape sequences, a second set
- of backslash escapes is available:
-
- ‘\a’
- alert (bell)
- ‘\b’
- backspace
- ‘\d’
- delete
- ‘\f’
- form feed
- ‘\n’
- newline
- ‘\r’
- carriage return
- ‘\t’
- horizontal tab
- ‘\v’
- vertical tab
- ‘\NNN’
- The eight-bit character whose value is the octal value NNN
- (one to three digits).
- ‘\xHH’
- The eight-bit character whose value is the hexadecimal value
- HH (one or two hex digits).
-
- When entering the text of a macro, single or double quotes must be
- used to indicate a macro definition. Unquoted text is assumed to
- be a function name. The backslash escapes described above are
- expanded in the macro body. Backslash will quote any other
- character in the macro text, including ‘"’ and ‘'’. For example,
- the following binding will make ‘‘C-x’ \’ insert a single ‘\’ into
- the line:
- "\C-x\\": "\\"
-
-\1f
-File: bashref.info, Node: Conditional Init Constructs, Next: Sample Init File, Prev: Readline Init File Syntax, Up: Readline Init File
-
-8.3.2 Conditional Init Constructs
----------------------------------
-
-Readline implements a facility similar in spirit to the conditional
-compilation features of the C preprocessor which allows key bindings and
-variable settings to be performed as the result of tests. There are
-four parser directives available.
-
-‘$if’
- The ‘$if’ construct allows bindings to be made based on the editing
- mode, the terminal being used, or the application using Readline.
- The text of the test, after any comparison operator, extends to the
- end of the line; unless otherwise noted, no characters are required
- to isolate it.
-
- ‘mode’
- The ‘mode=’ form of the ‘$if’ directive is used to test
- whether Readline is in ‘emacs’ or ‘vi’ mode. This may be used
- in conjunction with the ‘set keymap’ command, for instance, to
- set bindings in the ‘emacs-standard’ and ‘emacs-ctlx’ keymaps
- only if Readline is starting out in ‘emacs’ mode.
-
- ‘term’
- The ‘term=’ form may be used to include terminal-specific key
- bindings, perhaps to bind the key sequences output by the
- terminal's function keys. The word on the right side of the
- ‘=’ is tested against both the full name of the terminal and
- the portion of the terminal name before the first ‘-’. This
- allows ‘xterm’ to match both ‘xterm’ and ‘xterm-256color’, for
- instance.
-
- ‘version’
- The ‘version’ test may be used to perform comparisons against
- specific Readline versions. The ‘version’ expands to the
- current Readline version. The set of comparison operators
- includes ‘=’ (and ‘==’), ‘!=’, ‘<=’, ‘>=’, ‘<’, and ‘>’. The
- version number supplied on the right side of the operator
- consists of a major version number, an optional decimal point,
- and an optional minor version (e.g., ‘7.1’). If the minor
- version is omitted, it defaults to ‘0’. The operator may be
- separated from the string ‘version’ and from the version
- number argument by whitespace. The following example sets a
- variable if the Readline version being used is 7.0 or newer:
- $if version >= 7.0
- set show-mode-in-prompt on
- $endif
-
- ‘application’
- The APPLICATION construct is used to include
- application-specific settings. Each program using the
- Readline library sets the APPLICATION NAME, and you can test
- for a particular value. This could be used to bind key
- sequences to functions useful for a specific program. For
- instance, the following command adds a key sequence that
- quotes the current or previous word in Bash:
- $if Bash
- # Quote the current or previous word
- "\C-xq": "\eb\"\ef\""
- $endif
-
- ‘variable’
- The VARIABLE construct provides simple equality tests for
- Readline variables and values. The permitted comparison
- operators are ‘=’, ‘==’, and ‘!=’. The variable name must be
- separated from the comparison operator by whitespace; the
- operator may be separated from the value on the right hand
- side by whitespace. String and boolean variables may be
- tested. Boolean variables must be tested against the values
- ON and OFF. The following example is equivalent to the
- ‘mode=emacs’ test described above:
- $if editing-mode == emacs
- set show-mode-in-prompt on
- $endif
-
-‘$else’
- Commands in this branch of the ‘$if’ directive are executed if the
- test fails.
-
-‘$endif’
- This command, as seen in the previous example, terminates an ‘$if’
- command.
-
-‘$include’
- This directive takes a single filename as an argument and reads
- commands and key bindings from that file. For example, the
- following directive reads from ‘/etc/inputrc’:
- $include /etc/inputrc
-
-\1f
-File: bashref.info, Node: Sample Init File, Prev: Conditional Init Constructs, Up: Readline Init File
-
-8.3.3 Sample Init File
-----------------------
-
-Here is an example of an INPUTRC file. This illustrates key binding,
-variable assignment, and conditional syntax.
-
- # This file controls the behavior of line input editing for
- # programs that use the GNU Readline library. Existing
- # programs include FTP, Bash, and GDB.
- #
- # You can re-read the inputrc file with C-x C-r.
- # Lines beginning with '#' are comments.
- #
- # First, include any system-wide bindings and variable
- # assignments from /etc/Inputrc
- $include /etc/Inputrc
-
- #
- # Set various bindings for emacs mode.
-
- set editing-mode emacs
-
- $if mode=emacs
-
- Meta-Control-h: backward-kill-word Text after the function name is ignored
-
- #
- # Arrow keys in keypad mode
- #
- #"\M-OD": backward-char
- #"\M-OC": forward-char
- #"\M-OA": previous-history
- #"\M-OB": next-history
- #
- # Arrow keys in ANSI mode
- #
- "\M-[D": backward-char
- "\M-[C": forward-char
- "\M-[A": previous-history
- "\M-[B": next-history
- #
- # Arrow keys in 8 bit keypad mode
- #
- #"\M-\C-OD": backward-char
- #"\M-\C-OC": forward-char
- #"\M-\C-OA": previous-history
- #"\M-\C-OB": next-history
- #
- # Arrow keys in 8 bit ANSI mode
- #
- #"\M-\C-[D": backward-char
- #"\M-\C-[C": forward-char
- #"\M-\C-[A": previous-history
- #"\M-\C-[B": next-history
-
- C-q: quoted-insert
-
- $endif
-
- # An old-style binding. This happens to be the default.
- TAB: complete
-
- # Macros that are convenient for shell interaction
- $if Bash
- # edit the path
- "\C-xp": "PATH=${PATH}\e\C-e\C-a\ef\C-f"
- # prepare to type a quoted word --
- # insert open and close double quotes
- # and move to just after the open quote
- "\C-x\"": "\"\"\C-b"
- # insert a backslash (testing backslash escapes
- # in sequences and macros)
- "\C-x\\": "\\"
- # Quote the current or previous word
- "\C-xq": "\eb\"\ef\""
- # Add a binding to refresh the line, which is unbound
- "\C-xr": redraw-current-line
- # Edit variable on current line.
- "\M-\C-v": "\C-a\C-k$\C-y\M-\C-e\C-a\C-y="
- $endif
-
- # use a visible bell if one is available
- set bell-style visible
-
- # don't strip characters to 7 bits when reading
- set input-meta on
-
- # allow iso-latin1 characters to be inserted rather
- # than converted to prefix-meta sequences
- set convert-meta off
-
- # display characters with the eighth bit set directly
- # rather than as meta-prefixed characters
- set output-meta on
-
- # if there are 150 or more possible completions for a word,
- # ask whether or not the user wants to see all of them
- set completion-query-items 150
-
- # For FTP
- $if Ftp
- "\C-xg": "get \M-?"
- "\C-xt": "put \M-?"
- "\M-.": yank-last-arg
- $endif
-
-\1f
-File: bashref.info, Node: Bindable Readline Commands, Next: Readline vi Mode, Prev: Readline Init File, Up: Command Line Editing
-
-8.4 Bindable Readline Commands
-==============================
-
-* Menu:
-
-* Commands For Moving:: Moving about the line.
-* Commands For History:: Getting at previous lines.
-* Commands For Text:: Commands for changing text.
-* Commands For Killing:: Commands for killing and yanking.
-* Numeric Arguments:: Specifying numeric arguments, repeat counts.
-* Commands For Completion:: Getting Readline to do the typing for you.
-* Keyboard Macros:: Saving and re-executing typed characters
-* Miscellaneous Commands:: Other miscellaneous commands.
-
-This section describes Readline commands that may be bound to key
-sequences. You can list your key bindings by executing ‘bind -P’ or,
-for a more terse format, suitable for an INPUTRC file, ‘bind -p’.
-(*Note Bash Builtins::.) Command names without an accompanying key
-sequence are unbound by default.
-
- In the following descriptions, “point” refers to the current cursor
-position, and “mark” refers to a cursor position saved by the ‘set-mark’
-command. The text between the point and mark is referred to as the
-“region”. Readline has the concept of an _active region_: when the
-region is active, Readline redisplay highlights the region using the
-value of the ‘active-region-start-color’ variable. The
-‘enable-active-region’ variable turns this on and off. Several commands
-set the region to active; those are noted below.
-
-\1f
-File: bashref.info, Node: Commands For Moving, Next: Commands For History, Up: Bindable Readline Commands
-
-8.4.1 Commands For Moving
--------------------------
-
-‘beginning-of-line (C-a)’
- Move to the start of the current line. This may also be bound to
- the Home key on some keyboards.
-
-‘end-of-line (C-e)’
- Move to the end of the line. This may also be bound to the End key
- on some keyboards.
-
-‘forward-char (C-f)’
- Move forward a character. This may also be bound to the right
- arrow key on some keyboards.
-
-‘backward-char (C-b)’
- Move back a character. This may also be bound to the left arrow
- key on some keyboards.
-
-‘forward-word (M-f)’
- Move forward to the end of the next word. Words are composed of
- letters and digits.
-
-‘backward-word (M-b)’
- Move back to the start of the current or previous word. Words are
- composed of letters and digits.
-
-‘shell-forward-word (M-C-f)’
- Move forward to the end of the next word. Words are delimited by
- non-quoted shell metacharacters.
-
-‘shell-backward-word (M-C-b)’
- Move back to the start of the current or previous word. Words are
- delimited by non-quoted shell metacharacters.
-
-‘previous-screen-line ()’
- Attempt to move point to the same physical screen column on the
- previous physical screen line. This will not have the desired
- effect if the current Readline line does not take up more than one
- physical line or if point is not greater than the length of the
- prompt plus the screen width.
-
-‘next-screen-line ()’
- Attempt to move point to the same physical screen column on the
- next physical screen line. This will not have the desired effect
- if the current Readline line does not take up more than one
- physical line or if the length of the current Readline line is not
- greater than the length of the prompt plus the screen width.
-
-‘clear-display (M-C-l)’
- Clear the screen and, if possible, the terminal's scrollback
- buffer, then redraw the current line, leaving the current line at
- the top of the screen.
-
-‘clear-screen (C-l)’
- Clear the screen, then redraw the current line, leaving the current
- line at the top of the screen. If given a numeric argument, this
- refreshes the current line without clearing the screen.
-
-‘redraw-current-line ()’
- Refresh the current line. By default, this is unbound.
-
-\1f
-File: bashref.info, Node: Commands For History, Next: Commands For Text, Prev: Commands For Moving, Up: Bindable Readline Commands
-
-8.4.2 Commands For Manipulating The History
--------------------------------------------
-
-‘accept-line (Newline or Return)’
- Accept the line regardless of where the cursor is. If this line is
- non-empty, add it to the history list according to the setting of
- the ‘HISTCONTROL’ and ‘HISTIGNORE’ variables. If this line is a
- modified history line, then restore the history line to its
- original state.
-
-‘previous-history (C-p)’
- Move "back" through the history list, fetching the previous
- command. This may also be bound to the up arrow key on some
- keyboards.
-
-‘next-history (C-n)’
- Move "forward" through the history list, fetching the next command.
- This may also be bound to the down arrow key on some keyboards.
-
-‘beginning-of-history (M-<)’
- Move to the first line in the history.
-
-‘end-of-history (M->)’
- Move to the end of the input history, i.e., the line currently
- being entered.
-
-‘reverse-search-history (C-r)’
- Search backward starting at the current line and moving "up"
- through the history as necessary. This is an incremental search.
- This command sets the region to the matched text and activates the
- region.
-
-‘forward-search-history (C-s)’
- Search forward starting at the current line and moving "down"
- through the history as necessary. This is an incremental search.
- This command sets the region to the matched text and activates the
- region.
-
-‘non-incremental-reverse-search-history (M-p)’
- Search backward starting at the current line and moving "up"
-
- through the history as necessary using a non-incremental search for
- a string supplied by the user. The search string may match
- anywhere in a history line.
-
-‘non-incremental-forward-search-history (M-n)’
- Search forward starting at the current line and moving "down"
- through the history as necessary using a non-incremental search for
- a string supplied by the user. The search string may match
- anywhere in a history line.
-
-‘history-search-backward ()’
- Search backward through the history for the string of characters
- between the start of the current line and the point. The search
- string must match at the beginning of a history line. This is a
- non-incremental search. By default, this command is unbound, but
- may be bound to the Page Down key on some keyboards.
-
-‘history-search-forward ()’
- Search forward through the history for the string of characters
- between the start of the current line and the point. The search
- string must match at the beginning of a history line. This is a
- non-incremental search. By default, this command is unbound, but
- may be bound to the Page Up key on some keyboards.
-
-‘history-substring-search-backward ()’
- Search backward through the history for the string of characters
- between the start of the current line and the point. The search
- string may match anywhere in a history line. This is a
- non-incremental search. By default, this command is unbound.
-
-‘history-substring-search-forward ()’
- Search forward through the history for the string of characters
- between the start of the current line and the point. The search
- string may match anywhere in a history line. This is a
- non-incremental search. By default, this command is unbound.
-
-‘yank-nth-arg (M-C-y)’
- Insert the first argument to the previous command (usually the
- second word on the previous line) at point. With an argument N,
- insert the Nth word from the previous command (the words in the
- previous command begin with word 0). A negative argument inserts
- the Nth word from the end of the previous command. Once the
- argument N is computed, this uses the history expansion facilities
- to extract the Nth word, as if the ‘!N’ history expansion had been
- specified.
-
-‘yank-last-arg (M-. or M-_)’
- Insert last argument to the previous command (the last word of the
- previous history entry). With a numeric argument, behave exactly
- like ‘yank-nth-arg’. Successive calls to ‘yank-last-arg’ move back
- through the history list, inserting the last word (or the word
- specified by the argument to the first call) of each line in turn.
- Any numeric argument supplied to these successive calls determines
- the direction to move through the history. A negative argument
- switches the direction through the history (back or forward). This
- uses the history expansion facilities to extract the last word, as
- if the ‘!$’ history expansion had been specified.
-
-‘operate-and-get-next (C-o)’
- Accept the current line for return to the calling application as if
- a newline had been entered, and fetch the next line relative to the
- current line from the history for editing. A numeric argument, if
- supplied, specifies the history entry to use instead of the current
- line.
-
-‘fetch-history ()’
- With a numeric argument, fetch that entry from the history list and
- make it the current line. Without an argument, move back to the
- first entry in the history list.
-
-\1f
-File: bashref.info, Node: Commands For Text, Next: Commands For Killing, Prev: Commands For History, Up: Bindable Readline Commands
-
-8.4.3 Commands For Changing Text
---------------------------------
-
-‘end-of-file (usually C-d)’
- The character indicating end-of-file as set, for example, by
- ‘stty’. If this character is read when there are no characters on
- the line, and point is at the beginning of the line, Readline
- interprets it as the end of input and returns EOF.
-
-‘delete-char (C-d)’
- Delete the character at point. If this function is bound to the
- same character as the tty EOF character, as ‘C-d’ commonly is, see
- above for the effects. This may also be bound to the Delete key on
- some keyboards.
-
-‘backward-delete-char (Rubout)’
- Delete the character behind the cursor. A numeric argument means
- to kill the characters, saving them on the kill ring, instead of
- deleting them.
-
-‘forward-backward-delete-char ()’
- Delete the character under the cursor, unless the cursor is at the
- end of the line, in which case the character behind the cursor is
- deleted. By default, this is not bound to a key.
-
-‘quoted-insert (C-q or C-v)’
- Add the next character typed to the line verbatim. This is how to
- insert key sequences like ‘C-q’, for example.
-
-‘self-insert (a, b, A, 1, !, ...)’
- Insert the character typed.
-
-‘bracketed-paste-begin ()’
- This function is intended to be bound to the "bracketed paste"
- escape sequence sent by some terminals, and such a binding is
- assigned by default. It allows Readline to insert the pasted text
- as a single unit without treating each character as if it had been
- read from the keyboard. The characters are inserted as if each one
- was bound to ‘self-insert’ instead of executing any editing
- commands.
-
- Bracketed paste sets the region (the characters between point and
- the mark) to the inserted text. It sets the _active region_.
-
-‘transpose-chars (C-t)’
- Drag the character before the cursor forward over the character at
- the cursor, moving the cursor forward as well. If the insertion
- point is at the end of the line, then this transposes the last two
- characters of the line. Negative arguments have no effect.
-
-‘transpose-words (M-t)’
- Drag the word before point past the word after point, moving point
- past that word as well. If the insertion point is at the end of
- the line, this transposes the last two words on the line.
-
-‘shell-transpose-words (M-C-t)’
- Drag the word before point past the word after point, moving point
- past that word as well. If the insertion point is at the end of
- the line, this transposes the last two words on the line. Word
- boundaries are the same as ‘shell-forward-word’ and
- ‘shell-backward-word’.
-
-‘upcase-word (M-u)’
- Uppercase the current (or following) word. With a negative
- argument, uppercase the previous word, but do not move the cursor.
-
-‘downcase-word (M-l)’
- Lowercase the current (or following) word. With a negative
- argument, lowercase the previous word, but do not move the cursor.
-
-‘capitalize-word (M-c)’
- Capitalize the current (or following) word. With a negative
- argument, capitalize the previous word, but do not move the cursor.
-
-‘overwrite-mode ()’
- Toggle overwrite mode. With an explicit positive numeric argument,
- switches to overwrite mode. With an explicit non-positive numeric
- argument, switches to insert mode. This command affects only
- ‘emacs’ mode; ‘vi’ mode does overwrite differently. Each call to
- ‘readline()’ starts in insert mode.
-
- In overwrite mode, characters bound to ‘self-insert’ replace the
- text at point rather than pushing the text to the right.
- Characters bound to ‘backward-delete-char’ replace the character
- before point with a space.
-
- By default, this command is unbound, but may be bound to the Insert
- key on some keyboards.
-
-\1f
-File: bashref.info, Node: Commands For Killing, Next: Numeric Arguments, Prev: Commands For Text, Up: Bindable Readline Commands
-
-8.4.4 Killing And Yanking
--------------------------
-
-‘kill-line (C-k)’
- Kill the text from point to the end of the current line. With a
- negative numeric argument, kill backward from the cursor to the
- beginning of the line.
-
-‘backward-kill-line (C-x Rubout)’
- Kill backward from the cursor to the beginning of the current line.
- With a negative numeric argument, kill forward from the cursor to
- the end of the line.
-
-‘unix-line-discard (C-u)’
- Kill backward from the cursor to the beginning of the current line.
-
-‘kill-whole-line ()’
- Kill all characters on the current line, no matter where point is.
- By default, this is unbound.
-
-‘kill-word (M-d)’
- Kill from point to the end of the current word, or if between
- words, to the end of the next word. Word boundaries are the same
- as ‘forward-word’.
-
-‘backward-kill-word (M-<DEL>)’
- Kill the word behind point. Word boundaries are the same as
- ‘backward-word’.
-
-‘shell-kill-word (M-C-d)’
- Kill from point to the end of the current word, or if between
- words, to the end of the next word. Word boundaries are the same
- as ‘shell-forward-word’.
-
-‘shell-backward-kill-word ()’
- Kill the word behind point. Word boundaries are the same as
- ‘shell-backward-word’.
-
-‘unix-word-rubout (C-w)’
- Kill the word behind point, using white space as a word boundary,
- saving the killed text on the kill-ring.
-
-‘unix-filename-rubout ()’
- Kill the word behind point, using white space and the slash
- character as the word boundaries, saving the killed text on the
- kill-ring.
-
-‘delete-horizontal-space ()’
- Delete all spaces and tabs around point. By default, this is
- unbound.
-
-‘kill-region ()’
- Kill the text in the current region. By default, this command is
- unbound.
-
-‘copy-region-as-kill ()’
- Copy the text in the region to the kill buffer, so it can be yanked
- right away. By default, this command is unbound.
-
-‘copy-backward-word ()’
- Copy the word before point to the kill buffer. The word boundaries
- are the same as ‘backward-word’. By default, this command is
- unbound.
-
-‘copy-forward-word ()’
- Copy the word following point to the kill buffer. The word
- boundaries are the same as ‘forward-word’. By default, this
- command is unbound.
-
-‘yank (C-y)’
- Yank the top of the kill ring into the buffer at point.
-
-‘yank-pop (M-y)’
- Rotate the kill-ring, and yank the new top. You can only do this
- if the prior command is ‘yank’ or ‘yank-pop’.
-
-\1f
-File: bashref.info, Node: Numeric Arguments, Next: Commands For Completion, Prev: Commands For Killing, Up: Bindable Readline Commands
-
-8.4.5 Specifying Numeric Arguments
-----------------------------------
-
-‘digit-argument (M-0, M-1, ... M--)’
- Add this digit to the argument already accumulating, or start a new
- argument. ‘M--’ starts a negative argument.
-
-‘universal-argument ()’
- This is another way to specify an argument. If this command is
- followed by one or more digits, optionally with a leading minus
- sign, those digits define the argument. If the command is followed
- by digits, executing ‘universal-argument’ again ends the numeric
- argument, but is otherwise ignored. As a special case, if this
- command is immediately followed by a character that is neither a
- digit nor minus sign, the argument count for the next command is
- multiplied by four. The argument count is initially one, so
- executing this function the first time makes the argument count
- four, a second time makes the argument count sixteen, and so on.
- By default, this is not bound to a key.
-
-\1f
-File: bashref.info, Node: Commands For Completion, Next: Keyboard Macros, Prev: Numeric Arguments, Up: Bindable Readline Commands
-
-8.4.6 Letting Readline Type For You
------------------------------------
-
-‘complete (<TAB>)’
- Attempt to perform completion on the text before point. The actual
- completion performed is application-specific. Bash attempts
- completion by first checking for any programmable completions for
- the command word (*note Programmable Completion::), otherwise
- treating the text as a variable (if the text begins with ‘$’),
- username (if the text begins with ‘~’), hostname (if the text
- begins with ‘@’), or command (including aliases, functions, and
- builtins) in turn. If none of these produces a match, it falls
- back to filename completion.
-
-‘possible-completions (M-?)’
- List the possible completions of the text before point. When
- displaying completions, Readline sets the number of columns used
- for display to the value of ‘completion-display-width’, the value
- of the environment variable ‘COLUMNS’, or the screen width, in that
- order.
-
-‘insert-completions (M-*)’
- Insert all completions of the text before point that would have
- been generated by ‘possible-completions’, separated by a space.
-
-‘menu-complete ()’
- Similar to ‘complete’, but replaces the word to be completed with a
- single match from the list of possible completions. Repeatedly
- executing ‘menu-complete’ steps through the list of possible
- completions, inserting each match in turn. At the end of the list
- of completions, ‘menu-complete’ rings the bell (subject to the
- setting of ‘bell-style’) and restores the original text. An
- argument of N moves N positions forward in the list of matches; a
- negative argument moves backward through the list. This command is
- intended to be bound to <TAB>, but is unbound by default.
-
-‘menu-complete-backward ()’
- Identical to ‘menu-complete’, but moves backward through the list
- of possible completions, as if ‘menu-complete’ had been given a
- negative argument. This command is unbound by default.
-
-‘export-completions ()’
- Perform completion on the word before point as described above and
- write the list of possible completions to Readline's output stream
- using the following format, writing information on separate lines:
-
- • the number of matches N;
- • the word being completed;
- • S:E, where S and E are the start and end offsets of the word
- in the Readline line buffer; then
- • each match, one per line
-
- If there are no matches, the first line will be "0", and this
- command does not print any output after the S:E. If there is only
- a single match, this prints a single line containing it. If there
- is more than one match, this prints the common prefix of the
- matches, which may be empty, on the first line after the S:E, then
- the matches on subsequent lines. In this case, N will include the
- first line with the common prefix.
-
- The user or application should be able to accommodate the
- possibility of a blank line. The intent is that the user or
- application reads N lines after the line containing S:E to obtain
- the match list. This command is unbound by default.
-
-‘delete-char-or-list ()’
- Deletes the character under the cursor if not at the beginning or
- end of the line (like ‘delete-char’). At the end of the line, it
- behaves identically to ‘possible-completions’. This command is
- unbound by default.
-
-‘complete-filename (M-/)’
- Attempt filename completion on the text before point.
-
-‘possible-filename-completions (C-x /)’
- List the possible completions of the text before point, treating it
- as a filename.
-
-‘complete-username (M-~)’
- Attempt completion on the text before point, treating it as a
- username.
-
-‘possible-username-completions (C-x ~)’
- List the possible completions of the text before point, treating it
- as a username.
-
-‘complete-variable (M-$)’
- Attempt completion on the text before point, treating it as a shell
- variable.
-
-‘possible-variable-completions (C-x $)’
- List the possible completions of the text before point, treating it
- as a shell variable.
-
-‘complete-hostname (M-@)’
- Attempt completion on the text before point, treating it as a
- hostname.
-
-‘possible-hostname-completions (C-x @)’
- List the possible completions of the text before point, treating it
- as a hostname.
-
-‘complete-command (M-!)’
- Attempt completion on the text before point, treating it as a
- command name. Command completion attempts to match the text
- against aliases, reserved words, shell functions, shell builtins,
- and finally executable filenames, in that order.
-
-‘possible-command-completions (C-x !)’
- List the possible completions of the text before point, treating it
- as a command name.
-
-‘dynamic-complete-history (M-<TAB>)’
- Attempt completion on the text before point, comparing the text
- against history list entries for possible completion matches.
-
-‘dabbrev-expand ()’
- Attempt menu completion on the text before point, comparing the
- text against lines from the history list for possible completion
- matches.
-
-‘complete-into-braces (M-{)’
- Perform filename completion and insert the list of possible
- completions enclosed within braces so the list is available to the
- shell (*note Brace Expansion::).
-
-\1f
-File: bashref.info, Node: Keyboard Macros, Next: Miscellaneous Commands, Prev: Commands For Completion, Up: Bindable Readline Commands
-
-8.4.7 Keyboard Macros
----------------------
-
-‘start-kbd-macro (C-x ()’
- Begin saving the characters typed into the current keyboard macro.
-
-‘end-kbd-macro (C-x ))’
- Stop saving the characters typed into the current keyboard macro
- and save the definition.
-
-‘call-last-kbd-macro (C-x e)’
- Re-execute the last keyboard macro defined, by making the
- characters in the macro appear as if typed at the keyboard.
-
-‘print-last-kbd-macro ()’
- Print the last keyboard macro defined in a format suitable for the
- INPUTRC file.
-
-\1f
-File: bashref.info, Node: Miscellaneous Commands, Prev: Keyboard Macros, Up: Bindable Readline Commands
-
-8.4.8 Some Miscellaneous Commands
----------------------------------
-
-‘re-read-init-file (C-x C-r)’
- Read in the contents of the INPUTRC file, and incorporate any
- bindings or variable assignments found there.
-
-‘abort (C-g)’
- Abort the current editing command and ring the terminal's bell
- (subject to the setting of ‘bell-style’).
-
-‘do-lowercase-version (M-A, M-B, M-X, ...)’
- If the metafied character X is upper case, run the command that is
- bound to the corresponding metafied lower case character. The
- behavior is undefined if X is already lower case.
-
-‘prefix-meta (<ESC>)’
- Metafy the next character typed. Typing ‘<ESC> f’ is equivalent to
- typing ‘M-f’.
-
-‘undo (C-_ or C-x C-u)’
- Incremental undo, separately remembered for each line.
-
-‘revert-line (M-r)’
- Undo all changes made to this line. This is like executing the
- ‘undo’ command enough times to get back to the initial state.
-
-‘tilde-expand (M-&)’
- Perform tilde expansion on the current word.
-
-‘set-mark (C-@)’
- Set the mark to the point. If a numeric argument is supplied, set
- the mark to that position.
-
-‘exchange-point-and-mark (C-x C-x)’
- Swap the point with the mark. Set the current cursor position to
- the saved position, then set the mark to the old cursor position.
-
-‘character-search (C-])’
- Read a character and move point to the next occurrence of that
- character. A negative argument searches for previous occurrences.
-
-‘character-search-backward (M-C-])’
- Read a character and move point to the previous occurrence of that
- character. A negative argument searches for subsequent
- occurrences.
-
-‘skip-csi-sequence ()’
- Read enough characters to consume a multi-key sequence such as
- those defined for keys like Home and End. CSI sequences begin with
- a Control Sequence Indicator (CSI), usually ‘ESC [’. If this
- sequence is bound to "\e[", keys producing CSI sequences have no
- effect unless explicitly bound to a Readline command, instead of
- inserting stray characters into the editing buffer. This is
- unbound by default, but usually bound to ‘ESC [’.
-
-‘insert-comment (M-#)’
- Without a numeric argument, insert the value of the ‘comment-begin’
- variable at the beginning of the current line. If a numeric
- argument is supplied, this command acts as a toggle: if the
- characters at the beginning of the line do not match the value of
- ‘comment-begin’, insert the value; otherwise delete the characters
- in ‘comment-begin’ from the beginning of the line. In either case,
- the line is accepted as if a newline had been typed. The default
- value of ‘comment-begin’ causes this command to make the current
- line a shell comment. If a numeric argument causes the comment
- character to be removed, the line will be executed by the shell.
-
-‘dump-functions ()’
- Print all of the functions and their key bindings to the Readline
- output stream. If a numeric argument is supplied, the output is
- formatted in such a way that it can be made part of an INPUTRC
- file. This command is unbound by default.
-
-‘dump-variables ()’
- Print all of the settable variables and their values to the
- Readline output stream. If a numeric argument is supplied, the
- output is formatted in such a way that it can be made part of an
- INPUTRC file. This command is unbound by default.
-
-‘dump-macros ()’
- Print all of the Readline key sequences bound to macros and the
- strings they output to the Readline output stream. If a numeric
- argument is supplied, the output is formatted in such a way that it
- can be made part of an INPUTRC file. This command is unbound by
- default.
-
-‘execute-named-command (M-x)’
- Read a bindable Readline command name from the input and execute
- the function to which it's bound, as if the key sequence to which
- it was bound appeared in the input. If this function is supplied
- with a numeric argument, it passes that argument to the function it
- executes.
-
-‘spell-correct-word (C-x s)’
- Perform spelling correction on the current word, treating it as a
- directory or filename, in the same way as the ‘cdspell’ shell
- option. Word boundaries are the same as those used by
- ‘shell-forward-word’.
-
-‘glob-complete-word (M-g)’
- Treat the word before point as a pattern for pathname expansion,
- with an asterisk implicitly appended, then use the pattern to
- generate a list of matching file names for possible completions.
-
-‘glob-expand-word (C-x *)’
- Treat the word before point as a pattern for pathname expansion,
- and insert the list of matching file names, replacing the word. If
- a numeric argument is supplied, append a ‘*’ before pathname
- expansion.
-
-‘glob-list-expansions (C-x g)’
- Display the list of expansions that would have been generated by
- ‘glob-expand-word’, and redisplay the line. If a numeric argument
- is supplied, append a ‘*’ before pathname expansion.
-
-‘shell-expand-line (M-C-e)’
- Expand the line by performing shell word expansions. This performs
- alias and history expansion, $'STRING' and $"STRING" quoting, tilde
- expansion, parameter and variable expansion, arithmetic expansion,
- command and process substitution, word splitting, and quote
- removal. An explicit argument suppresses command and process
- substitution.
-
-‘history-expand-line (M-^)’
- Perform history expansion on the current line.
-
-‘magic-space ()’
- Perform history expansion on the current line and insert a space
- (*note History Interaction::).
-
-‘alias-expand-line ()’
- Perform alias expansion on the current line (*note Aliases::).
-
-‘history-and-alias-expand-line ()’
- Perform history and alias expansion on the current line.
-
-‘insert-last-argument (M-. or M-_)’
- A synonym for ‘yank-last-arg’.
-
-‘edit-and-execute-command (C-x C-e)’
- Invoke an editor on the current command line, and execute the
- result as shell commands. Bash attempts to invoke ‘$VISUAL’,
- ‘$EDITOR’, and ‘emacs’ as the editor, in that order.
-
-‘display-shell-version (C-x C-v)’
- Display version information about the current instance of Bash.
-
-\1f
-File: bashref.info, Node: Readline vi Mode, Next: Programmable Completion, Prev: Bindable Readline Commands, Up: Command Line Editing
-
-8.5 Readline vi Mode
-====================
-
-While the Readline library does not have a full set of ‘vi’ editing
-functions, it does contain enough to allow simple editing of the line.
-The Readline ‘vi’ mode behaves as specified in the ‘sh’ description in
-the POSIX standard.
-
- You can use the ‘set -o emacs’ and ‘set -o vi’ commands (*note The
-Set Builtin::) to switch interactively between ‘emacs’ and ‘vi’ editing
-modes, The Readline default is ‘emacs’ mode.
-
- When you enter a line in ‘vi’ mode, you are already placed in
-"insertion" mode, as if you had typed an ‘i’. Pressing <ESC> switches
-you into "command" mode, where you can edit the text of the line with
-the standard ‘vi’ movement keys, move to previous history lines with ‘k’
-and subsequent lines with ‘j’, and so forth.
-
-\1f
-File: bashref.info, Node: Programmable Completion, Next: Programmable Completion Builtins, Prev: Readline vi Mode, Up: Command Line Editing
-
-8.6 Programmable Completion
-===========================
-
-When the user attempts word completion for a command or an argument to a
-command for which a completion specification (a “compspec”) has been
-defined using the ‘complete’ builtin (*note Programmable Completion
-Builtins::), Readline invokes the programmable completion facilities.
-
- First, Bash identifies the command name. If a compspec has been
-defined for that command, the compspec is used to generate the list of
-possible completions for the word. If the command word is the empty
-string (completion attempted at the beginning of an empty line), Bash
-uses any compspec defined with the ‘-E’ option to ‘complete’. The ‘-I’
-option to ‘complete’ indicates that the command word is the first
-non-assignment word on the line, or after a command delimiter such as
-‘;’ or ‘|’. This usually indicates command name completion.
-
- If the command word is a full pathname, Bash searches for a compspec
-for the full pathname first. If there is no compspec for the full
-pathname, Bash attempts to find a compspec for the portion following the
-final slash. If those searches do not result in a compspec, or if there
-is no compspec for the command word, Bash uses any compspec defined with
-the ‘-D’ option to ‘complete’ as the default. If there is no default
-compspec, Bash performs alias expansion on the command word as a final
-resort, and attempts to find a compspec for the command word resulting
-from any successful expansion.
-
- If a compspec is not found, Bash performs its default completion
-described above (*note Commands For Completion::). Otherwise, once a
-compspec has been found, Bash uses it to generate the list of matching
-words.
-
- First, Bash performs the ACTIONS specified by the compspec. This
-only returns matches which are prefixes of the word being completed.
-When the ‘-f’ or ‘-d’ option is used for filename or directory name
-completion, Bash uses shell the variable ‘FIGNORE’ to filter the
-matches. *Note Bash Variables::, for a description of ‘FIGNORE’.
-
- Next, programmable completion generates matches specified by a
-pathname expansion pattern supplied as an argument to the ‘-G’ option.
-The words generated by the pattern need not match the word being
-completed. Bash uses the ‘FIGNORE’ variable to filter the matches, but
-does not use the ‘GLOBIGNORE’ shell variable.
-
- Next, completion considers the string specified as the argument to
-the ‘-W’ option. The string is first split using the characters in the
-‘IFS’ special variable as delimiters. This honors shell quoting within
-the string, in order to provide a mechanism for the words to contain
-shell metacharacters or characters in the value of ‘IFS’. Each word is
-then expanded using brace expansion, tilde expansion, parameter and
-variable expansion, command substitution, and arithmetic expansion, as
-described above (*note Shell Expansions::). The results are split using
-the rules described above (*note Word Splitting::). The results of the
-expansion are prefix-matched against the word being completed, and the
-matching words become possible completions.
-
- After these matches have been generated, Bash executes any shell
-function or command specified with the ‘-F’ and ‘-C’ options. When the
-command or function is invoked, Bash assigns values to the ‘COMP_LINE’,
-‘COMP_POINT’, ‘COMP_KEY’, and ‘COMP_TYPE’ variables as described above
-(*note Bash Variables::). If a shell function is being invoked, Bash
-also sets the ‘COMP_WORDS’ and ‘COMP_CWORD’ variables. When the
-function or command is invoked, the first argument ($1) is the name of
-the command whose arguments are being completed, the second argument
-($2) is the word being completed, and the third argument ($3) is the
-word preceding the word being completed on the current command line.
-There is no filtering of the generated completions against the word
-being completed; the function or command has complete freedom in
-generating the matches and they do not need to match a prefix of the
-word.
-
- Any function specified with ‘-F’ is invoked first. The function may
-use any of the shell facilities, including the ‘compgen’ and ‘compopt’
-builtins described below (*note Programmable Completion Builtins::), to
-generate the matches. It must put the possible completions in the
-‘COMPREPLY’ array variable, one per array element.
-
- Next, any command specified with the ‘-C’ option is invoked in an
-environment equivalent to command substitution. It should print a list
-of completions, one per line, to the standard output. Backslash will
-escape a newline, if necessary. These are added to the set of possible
-completions.
-
- External commands that are invoked to generate completions ("external
-completers") receive the word preceding the completion word as an
-argument, as described above. This provides context that is sometimes
-useful, but may include information that is considered sensitive or part
-of a word expansion that will not appear in the command line after
-expansion. That word may be visible in process listings or in audit
-logs. This may be a concern to users and completion specification
-authors if there is sensitive information on the command line before
-expansion, since completion takes place before words are expanded. If
-this is an issue, completion authors should use functions as wrappers
-around external commands and pass context information to the external
-command in a different way. External completers can infer context from
-the COMP_LINE and COMP_POINT environment variables, but they need to
-ensure they break words in the same way Readline does, using the
-COMP_WORDBREAKS variable.
-
- After generating all of the possible completions, Bash applies any
-filter specified with the ‘-X’ option to the completions in the list.
-The filter is a pattern as used for pathname expansion; a ‘&’ in the
-pattern is replaced with the text of the word being completed. A
-literal ‘&’ may be escaped with a backslash; the backslash is removed
-before attempting a match. Any completion that matches the pattern is
-removed from the list. A leading ‘!’ negates the pattern; in this case
-Bash removes any completion that does not match the pattern. If the
-‘nocasematch’ shell option is enabled (see the description of ‘shopt’ in
-*note The Shopt Builtin::), Bash performs the match without regard to
-the case of alphabetic characters.
-
- Finally, programmable completion adds any prefix and suffix specified
-with the ‘-P’ and ‘-S’ options, respectively, to each completion, and
-returns the result to Readline as the list of possible completions.
-
- If the previously-applied actions do not generate any matches, and
-the ‘-o dirnames’ option was supplied to ‘complete’ when the compspec
-was defined, Bash attempts directory name completion.
-
- If the ‘-o plusdirs’ option was supplied to ‘complete’ when the
-compspec was defined, Bash attempts directory name completion and adds
-any matches to the set of possible completions.
-
- By default, if a compspec is found, whatever it generates is returned
-to the completion code as the full set of possible completions. The
-default Bash completions and the Readline default of filename completion
-are disabled. If the ‘-o bashdefault’ option was supplied to ‘complete’
-when the compspec was defined, and the compspec generates no matches,
-Bash attempts its default completions. If the compspec and, if
-attempted, the default Bash completions generate no matches, and the ‘-o
-default’ option was supplied to ‘complete’ when the compspec was
-defined, programmable completion performs Readline's default completion.
-
- The options supplied to ‘complete’ and ‘compopt’ can control how
-Readline treats the completions. For instance, the ‘-o fullquote’
-option tells Readline to quote the matches as if they were filenames.
-See the description of ‘complete’ (*note Programmable Completion
-Builtins::) for details.
-
- When a compspec indicates that it wants directory name completion,
-the programmable completion functions force Readline to append a slash
-to completed names which are symbolic links to directories, subject to
-the value of the MARK-DIRECTORIES Readline variable, regardless of the
-setting of the MARK-SYMLINKED-DIRECTORIES Readline variable.
-
- There is some support for dynamically modifying completions. This is
-most useful when used in combination with a default completion specified
-with ‘-D’. It's possible for shell functions executed as completion
-functions to indicate that completion should be retried by returning an
-exit status of 124. If a shell function returns 124, and changes the
-compspec associated with the command on which completion is being
-attempted (supplied as the first argument when the function is
-executed), programmable completion restarts from the beginning, with an
-attempt to find a new compspec for that command. This can be used to
-build a set of completions dynamically as completion is attempted,
-rather than loading them all at once.
-
- For instance, assuming that there is a library of compspecs, each
-kept in a file corresponding to the name of the command, the following
-default completion function would load completions dynamically:
-
- _completion_loader()
- {
- . "/etc/bash_completion.d/$1.sh" >/dev/null 2>&1 && return 124
- }
- complete -D -F _completion_loader -o bashdefault -o default
-
-\1f
-File: bashref.info, Node: Programmable Completion Builtins, Next: A Programmable Completion Example, Prev: Programmable Completion, Up: Command Line Editing
-
-8.7 Programmable Completion Builtins
-====================================
-
-Three builtin commands are available to manipulate the programmable
-completion facilities: one to specify how the arguments to a particular
-command are to be completed, and two to modify the completion as it is
-happening.
-
-‘compgen’
- compgen [-V VARNAME] [OPTION] [WORD]
-
- Generate possible completion matches for WORD according to the
- OPTIONs, which may be any option accepted by the ‘complete’ builtin
- with the exceptions of ‘-p’, ‘-r’, ‘-D’, ‘-E’, and ‘-I’, and write
- the matches to the standard output.
-
- If the ‘-V’ option is supplied, ‘compgen’ stores the generated
- completions into the indexed array variable VARNAME instead of
- writing them to the standard output.
-
- When using the ‘-F’ or ‘-C’ options, the various shell variables
- set by the programmable completion facilities, while available,
- will not have useful values.
-
- The matches will be generated in the same way as if the
- programmable completion code had generated them directly from a
- completion specification with the same flags. If WORD is
- specified, only those completions matching WORD will be displayed
- or stored.
-
- The return value is true unless an invalid option is supplied, or
- no matches were generated.
-
-‘complete’
- complete [-abcdefgjksuv] [-o COMP-OPTION] [-DEI] [-A ACTION]
- [-G GLOBPAT] [-W WORDLIST] [-F FUNCTION] [-C COMMAND]
- [-X FILTERPAT] [-P PREFIX] [-S SUFFIX] NAME [NAME ...]
- complete -pr [-DEI] [NAME ...]
-
- Specify how arguments to each NAME should be completed.
-
- If the ‘-p’ option is supplied, or if no options or NAMEs are
- supplied, print existing completion specifications in a way that
- allows them to be reused as input. The ‘-r’ option removes a
- completion specification for each NAME, or, if no NAMEs are
- supplied, all completion specifications.
-
- The ‘-D’ option indicates that other supplied options and actions
- should apply to the "default" command completion; that is,
- completion attempted on a command for which no completion has
- previously been defined. The ‘-E’ option indicates that other
- supplied options and actions should apply to "empty" command
- completion; that is, completion attempted on a blank line. The
- ‘-I’ option indicates that other supplied options and actions
- should apply to completion on the initial non-assignment word on
- the line, or after a command delimiter such as ‘;’ or ‘|’, which is
- usually command name completion. If multiple options are supplied,
- the ‘-D’ option takes precedence over ‘-E’, and both take
- precedence over ‘-I’. If any of ‘-D’, ‘-E’, or ‘-I’ are supplied,
- any other NAME arguments are ignored; these completions only apply
- to the case specified by the option.
-
- The process of applying these completion specifications when word
- completion is attempted is described above (*note Programmable
- Completion::).
-
- Other options, if specified, have the following meanings. The
- arguments to the ‘-G’, ‘-W’, and ‘-X’ options (and, if necessary,
- the ‘-P’ and ‘-S’ options) should be quoted to protect them from
- expansion before the ‘complete’ builtin is invoked.
-
- ‘-o COMP-OPTION’
- The COMP-OPTION controls several aspects of the compspec's
- behavior beyond the simple generation of completions.
- COMP-OPTION may be one of:
-
- ‘bashdefault’
- Perform the rest of the default Bash completions if the
- compspec generates no matches.
-
- ‘default’
- Use Readline's default filename completion if the
- compspec generates no matches.
-
- ‘dirnames’
- Perform directory name completion if the compspec
- generates no matches.
-
- ‘filenames’
- Tell Readline that the compspec generates filenames, so
- it can perform any filename-specific processing (such as
- adding a slash to directory names, quoting special
- characters, or suppressing trailing spaces). This option
- is intended to be used with shell functions specified
- with ‘-F’.
-
- ‘fullquote’
- Tell Readline to quote all the completed words even if
- they are not filenames.
-
- ‘noquote’
- Tell Readline not to quote the completed words if they
- are filenames (quoting filenames is the default).
-
- ‘nosort’
- Tell Readline not to sort the list of possible
- completions alphabetically.
-
- ‘nospace’
- Tell Readline not to append a space (the default) to
- words completed at the end of the line.
-
- ‘plusdirs’
- After generating any matches defined by the compspec,
- attempt directory name completion and add any matches to
- the results of the other actions.
-
- ‘-A ACTION’
- The ACTION may be one of the following to generate a list of
- possible completions:
-
- ‘alias’
- Alias names. May also be specified as ‘-a’.
-
- ‘arrayvar’
- Array variable names.
-
- ‘binding’
- Readline key binding names (*note Bindable Readline
- Commands::).
-
- ‘builtin’
- Names of shell builtin commands. May also be specified
- as ‘-b’.
-
- ‘command’
- Command names. May also be specified as ‘-c’.
-
- ‘directory’
- Directory names. May also be specified as ‘-d’.
-
- ‘disabled’
- Names of disabled shell builtins.
-
- ‘enabled’
- Names of enabled shell builtins.
-
- ‘export’
- Names of exported shell variables. May also be specified
- as ‘-e’.
-
- ‘file’
- File and directory names, similar to Readline's filename
- completion. May also be specified as ‘-f’.
-
- ‘function’
- Names of shell functions.
-
- ‘group’
- Group names. May also be specified as ‘-g’.
-
- ‘helptopic’
- Help topics as accepted by the ‘help’ builtin (*note Bash
- Builtins::).
-
- ‘hostname’
- Hostnames, as taken from the file specified by the
- ‘HOSTFILE’ shell variable (*note Bash Variables::).
-
- ‘job’
- Job names, if job control is active. May also be
- specified as ‘-j’.
-
- ‘keyword’
- Shell reserved words. May also be specified as ‘-k’.
-
- ‘running’
- Names of running jobs, if job control is active.
-
- ‘service’
- Service names. May also be specified as ‘-s’.
-
- ‘setopt’
- Valid arguments for the ‘-o’ option to the ‘set’ builtin
- (*note The Set Builtin::).
-
- ‘shopt’
- Shell option names as accepted by the ‘shopt’ builtin
- (*note Bash Builtins::).
-
- ‘signal’
- Signal names.
-
- ‘stopped’
- Names of stopped jobs, if job control is active.
-
- ‘user’
- User names. May also be specified as ‘-u’.
-
- ‘variable’
- Names of all shell variables. May also be specified as
- ‘-v’.
-
- ‘-C COMMAND’
- COMMAND is executed in a subshell environment, and its output
- is used as the possible completions. Arguments are passed as
- with the ‘-F’ option.
-
- ‘-F FUNCTION’
- The shell function FUNCTION is executed in the current shell
- environment. When it is executed, the first argument ($1) is
- the name of the command whose arguments are being completed,
- the second argument ($2) is the word being completed, and the
- third argument ($3) is the word preceding the word being
- completed, as described above (*note Programmable
- Completion::). When ‘function’ finishes, programmable
- completion retrieves the possible completions from the value
- of the ‘COMPREPLY’ array variable.
-
- ‘-G GLOBPAT’
- Expand the filename expansion pattern GLOBPAT to generate the
- possible completions.
-
- ‘-P PREFIX’
- Add PREFIX to the beginning of each possible completion after
- all other options have been applied.
-
- ‘-S SUFFIX’
- Append SUFFIX to each possible completion after all other
- options have been applied.
-
- ‘-W WORDLIST’
- Split the WORDLIST using the characters in the ‘IFS’ special
- variable as delimiters, and expand each resulting word. Shell
- quoting is honored within WORDLIST in order to provide a
- mechanism for the words to contain shell metacharacters or
- characters in the value of ‘IFS’. The possible completions
- are the members of the resultant list which match a prefix of
- the word being completed.
-
- ‘-X FILTERPAT’
- FILTERPAT is a pattern as used for filename expansion. It is
- applied to the list of possible completions generated by the
- preceding options and arguments, and each completion matching
- FILTERPAT is removed from the list. A leading ‘!’ in
- FILTERPAT negates the pattern; in this case, any completion
- not matching FILTERPAT is removed.
-
- The return value is true unless an invalid option is supplied, an
- option other than ‘-p’, ‘-r’, ‘-D’, ‘-E’, or ‘-I’ is supplied
- without a NAME argument, an attempt is made to remove a completion
- specification for a NAME for which no specification exists, or an
- error occurs adding a completion specification.
-
-‘compopt’
- compopt [-o OPTION] [-DEI] [+o OPTION] [NAME]
- Modify completion options for each NAME according to the OPTIONs,
- or for the currently-executing completion if no NAMEs are supplied.
- If no OPTIONs are given, display the completion options for each
- NAME or the current completion. The possible values of OPTION are
- those valid for the ‘complete’ builtin described above.
-
- The ‘-D’ option indicates that other supplied options should apply
- to the "default" command completion; the ‘-E’ option indicates that
- other supplied options should apply to "empty" command completion;
- and the ‘-I’ option indicates that other supplied options should
- apply to completion on the initial word on the line. These are
- determined in the same way as the ‘complete’ builtin.
-
- If multiple options are supplied, the ‘-D’ option takes precedence
- over ‘-E’, and both take precedence over ‘-I’
-
- The return value is true unless an invalid option is supplied, an
- attempt is made to modify the options for a NAME for which no
- completion specification exists, or an output error occurs.
-
-\1f
-File: bashref.info, Node: A Programmable Completion Example, Prev: Programmable Completion Builtins, Up: Command Line Editing
-
-8.8 A Programmable Completion Example
-=====================================
-
-The most common way to obtain additional completion functionality beyond
-the default actions ‘complete’ and ‘compgen’ provide is to use a shell
-function and bind it to a particular command using ‘complete -F’.
-
- The following function provides completions for the ‘cd’ builtin. It
-is a reasonably good example of what shell functions must do when used
-for completion. This function uses the word passed as ‘$2’ to determine
-the directory name to complete. You can also use the ‘COMP_WORDS’ array
-variable; the current word is indexed by the ‘COMP_CWORD’ variable.
-
- The function relies on the ‘complete’ and ‘compgen’ builtins to do
-much of the work, adding only the things that the Bash ‘cd’ does beyond
-accepting basic directory names: tilde expansion (*note Tilde
-Expansion::), searching directories in $CDPATH, which is described above
-(*note Bourne Shell Builtins::), and basic support for the ‘cdable_vars’
-shell option (*note The Shopt Builtin::). ‘_comp_cd’ modifies the value
-of IFS so that it contains only a newline to accommodate file names
-containing spaces and tabs - ‘compgen’ prints the possible completions
-it generates one per line.
-
- Possible completions go into the COMPREPLY array variable, one
-completion per array element. The programmable completion system
-retrieves the completions from there when the function returns.
-
- # A completion function for the cd builtin
- # based on the cd completion function from the bash_completion package
- _comp_cd()
- {
- local IFS=$' \t\n' # normalize IFS
- local cur _skipdot _cdpath
- local i j k
-
- # Tilde expansion, which also expands tilde to full pathname
- case "$2" in
- \~*) eval cur="$2" ;;
- *) cur=$2 ;;
- esac
-
- # no cdpath or absolute pathname -- straight directory completion
- if [[ -z "${CDPATH:-}" ]] || [[ "$cur" == @(./*|../*|/*) ]]; then
- # compgen prints paths one per line; could also use while loop
- IFS=$'\n'
- COMPREPLY=( $(compgen -d -- "$cur") )
- IFS=$' \t\n'
- # CDPATH+directories in the current directory if not in CDPATH
- else
- IFS=$'\n'
- _skipdot=false
- # preprocess CDPATH to convert null directory names to .
- _cdpath=${CDPATH/#:/.:}
- _cdpath=${_cdpath//::/:.:}
- _cdpath=${_cdpath/%:/:.}
- for i in ${_cdpath//:/$'\n'}; do
- if [[ $i -ef . ]]; then _skipdot=true; fi
- k="${#COMPREPLY[@]}"
- for j in $( compgen -d -- "$i/$cur" ); do
- COMPREPLY[k++]=${j#$i/} # cut off directory
- done
- done
- $_skipdot || COMPREPLY+=( $(compgen -d -- "$cur") )
- IFS=$' \t\n'
- fi
-
- # variable names if appropriate shell option set and no completions
- if shopt -q cdable_vars && [[ ${#COMPREPLY[@]} -eq 0 ]]; then
- COMPREPLY=( $(compgen -v -- "$cur") )
- fi
-
- return 0
- }
-
- We install the completion function using the ‘-F’ option to
-‘complete’:
-
- # Tell readline to quote appropriate and append slashes to directories;
- # use the bash default completion for other arguments
- complete -o filenames -o nospace -o bashdefault -F _comp_cd cd
-
-Since we'd like Bash and Readline to take care of some of the other
-details for us, we use several other options to tell Bash and Readline
-what to do. The ‘-o filenames’ option tells Readline that the possible
-completions should be treated as filenames, and quoted appropriately.
-That option will also cause Readline to append a slash to filenames it
-can determine are directories (which is why we might want to extend
-‘_comp_cd’ to append a slash if we're using directories found via
-CDPATH: Readline can't tell those completions are directories). The ‘-o
-nospace’ option tells Readline to not append a space character to the
-directory name, in case we want to append to it. The ‘-o bashdefault’
-option brings in the rest of the "Bash default" completions - possible
-completions that Bash adds to the default Readline set. These include
-things like command name completion, variable completion for words
-beginning with ‘$’ or ‘${’, completions containing pathname expansion
-patterns (*note Filename Expansion::), and so on.
-
- Once installed using ‘complete’, ‘_comp_cd’ will be called every time
-we attempt word completion for a ‘cd’ command.
-
- Many more examples - an extensive collection of completions for most
-of the common GNU, Unix, and Linux commands - are available as part of
-the bash_completion project. This is installed by default on many
-GNU/Linux distributions. Originally written by Ian Macdonald, the
-project now lives at <https://github.com/scop/bash-completion/>. There
-are ports for other systems such as Solaris and Mac OS X.
-
- An older version of the bash_completion package is distributed with
-bash in the ‘examples/complete’ subdirectory.
-
-\1f
-File: bashref.info, Node: Using History Interactively, Next: Installing Bash, Prev: Command Line Editing, Up: Top
-
-9 Using History Interactively
-*****************************
-
-This chapter describes how to use the GNU History Library interactively,
-from a user's standpoint. It should be considered a user's guide. For
-information on using the GNU History Library in other programs, see the
-GNU Readline Library Manual.
-
-* Menu:
-
-* Bash History Facilities:: How Bash lets you manipulate your command
- history.
-* Bash History Builtins:: The Bash builtin commands that manipulate
- the command history.
-* History Interaction:: What it feels like using History as a user.
-
-\1f
-File: bashref.info, Node: Bash History Facilities, Next: Bash History Builtins, Up: Using History Interactively
-
-9.1 Bash History Facilities
-===========================
-
-When the ‘-o history’ option to the ‘set’ builtin is enabled (*note The
-Set Builtin::), the shell provides access to the “command history”, the
-list of commands previously typed. The value of the ‘HISTSIZE’ shell
-variable is used as the number of commands to save in a history list:
-the shell saves the text of the last ‘$HISTSIZE’ commands (default 500).
-The shell stores each command in the history list prior to parameter and
-variable expansion but after history expansion is performed, subject to
-the values of the shell variables ‘HISTIGNORE’ and ‘HISTCONTROL’.
-
- When the shell starts up, Bash initializes the history list by
-reading history entries from the file named by the ‘HISTFILE’ variable
-(default ‘~/.bash_history’). This is referred to as the “history file”.
-The history file is truncated, if necessary, to contain no more than the
-number of history entries specified by the value of the ‘HISTFILESIZE’
-variable. If ‘HISTFILESIZE’ is unset, or set to null, a non-numeric
-value, or a numeric value less than zero, the history file is not
-truncated.
-
- When the history file is read, lines beginning with the history
-comment character followed immediately by a digit are interpreted as
-timestamps for the following history entry. These timestamps are
-optionally displayed depending on the value of the ‘HISTTIMEFORMAT’
-variable (*note Bash Variables::). When present, history timestamps
-delimit history entries, making multi-line entries possible.
-
- When a shell with history enabled exits, Bash copies the last
-‘$HISTSIZE’ entries from the history list to the file named by
-‘$HISTFILE’. If the ‘histappend’ shell option is set (*note Bash
-Builtins::), Bash appends the entries to the history file, otherwise it
-overwrites the history file. If ‘HISTFILE’ is unset or null, or if the
-history file is unwritable, the history is not saved. After saving the
-history, Bash truncates the history file to contain no more than
-‘$HISTFILESIZE’ lines as described above.
-
- If the ‘HISTTIMEFORMAT’ variable is set, the shell writes the
-timestamp information associated with each history entry to the history
-file, marked with the history comment character, so timestamps are
-preserved across shell sessions. When the history file is read, lines
-beginning with the history comment character followed immediately by a
-digit are interpreted as timestamps for the following history entry. As
-above, when using ‘HISTTIMEFORMAT’, the timestamps delimit multi-line
-history entries.
-
- The ‘fc’ builtin command will list or edit and re-execute a portion
-of the history list. The ‘history’ builtin can display or modify the
-history list and manipulate the history file. When using command-line
-editing, search commands are available in each editing mode that provide
-access to the history list (*note Commands For History::).
-
- The shell allows control over which commands are saved on the history
-list. The ‘HISTCONTROL’ and ‘HISTIGNORE’ variables are used to save
-only a subset of the commands entered. If the ‘cmdhist’ shell option is
-enabled, the shell attempts to save each line of a multi-line command in
-the same history entry, adding semicolons where necessary to preserve
-syntactic correctness. The ‘lithist’ shell option modifies ‘cmdhist’ by
-saving the command with embedded newlines instead of semicolons. The
-‘shopt’ builtin is used to set these options. *Note The Shopt
-Builtin::, for a description of ‘shopt’.
-
-\1f
-File: bashref.info, Node: Bash History Builtins, Next: History Interaction, Prev: Bash History Facilities, Up: Using History Interactively
-
-9.2 Bash History Builtins
-=========================
-
-Bash provides two builtin commands which manipulate the history list and
-history file.
-
-‘fc’
- fc [-e ENAME] [-lnr] [FIRST] [LAST]
- fc -s [PAT=REP] [COMMAND]
-
- The first form selects a range of commands from FIRST to LAST from
- the history list and displays or edits and re-executes them. Both
- FIRST and LAST may be specified as a string (to locate the most
- recent command beginning with that string) or as a number (an index
- into the history list, where a negative number is used as an offset
- from the current command number).
-
- When listing, a FIRST or LAST of 0 is equivalent to -1 and -0 is
- equivalent to the current command (usually the ‘fc’ command);
- otherwise 0 is equivalent to -1 and -0 is invalid.
-
- If LAST is not specified, it is set to the current command for
- listing and to FIRST otherwise. If FIRST is not specified, it is
- set to the previous command for editing and −16 for listing.
-
- If the ‘-l’ flag is supplied, the commands are listed on standard
- output. The ‘-n’ flag suppresses the command numbers when listing.
- The ‘-r’ flag reverses the order of the listing.
-
- Otherwise, ‘fc’ invokes the editor named by ENAME on a file
- containing those commands. If ENAME is not supplied, ‘fc’ uses the
- value of the following variable expansion:
- ‘${FCEDIT:-${EDITOR:-vi}}’. This says to use the value of the
- ‘FCEDIT’ variable if set, or the value of the ‘EDITOR’ variable if
- that is set, or ‘vi’ if neither is set. When editing is complete,
- ‘fc’ reads the file of edited commands and echoes and executes
- them.
-
- In the second form, ‘fc’ re-executes COMMAND after replacing each
- instance of PAT in the selected command with REP. COMMAND is
- interpreted the same as FIRST above.
-
- A useful alias to use with the ‘fc’ command is ‘r='fc -s'’, so that
- typing ‘r cc’ runs the last command beginning with ‘cc’ and typing
- ‘r’ re-executes the last command (*note Aliases::).
-
- If the first form is used, the return value is zero unless an
- invalid option is encountered or FIRST or LAST specify history
- lines out of range. When editing and re-executing a file of
- commands, the return value is the value of the last command
- executed or failure if an error occurs with the temporary file. If
- the second form is used, the return status is that of the
- re-executed command, unless COMMAND does not specify a valid
- history entry, in which case ‘fc’ returns a non-zero status.
-
-‘history’
- history [N]
- history -c
- history -d OFFSET
- history -d START-END
- history [-anrw] [FILENAME]
- history -ps ARG
-
- With no options, display the history list with numbers. Entries
- prefixed with a ‘*’ have been modified. An argument of N lists
- only the last N entries. If the shell variable ‘HISTTIMEFORMAT’ is
- set and not null, it is used as a format string for ‘strftime’(3)
- to display the time stamp associated with each displayed history
- entry. If ‘history’ uses ‘HISTTIMEFORMAT’, it does not print an
- intervening space between the formatted time stamp and the history
- entry.
-
- Options, if supplied, have the following meanings:
-
- ‘-c’
- Clear the history list. This may be combined with the other
- options to replace the history list.
-
- ‘-d OFFSET’
- Delete the history entry at position OFFSET. If OFFSET is
- positive, it should be specified as it appears when the
- history is displayed. If OFFSET is negative, it is
- interpreted as relative to one greater than the last history
- position, so negative indices count back from the end of the
- history, and an index of ‘-1’ refers to the current ‘history
- -d’ command.
-
- ‘-d START-END’
- Delete the range of history entries between positions START
- and END, inclusive. Positive and negative values for START
- and END are interpreted as described above.
-
- ‘-a’
- Append the "new" history lines to the history file. These are
- history lines entered since the beginning of the current Bash
- session, but not already appended to the history file.
-
- ‘-n’
- Read the history lines not already read from the history file
- and add them to the current history list. These are lines
- appended to the history file since the beginning of the
- current Bash session.
-
- ‘-r’
- Read the history file and append its contents to the history
- list.
-
- ‘-w’
- Write the current history list to the history file,
- overwriting the history file.
-
- ‘-p’
- Perform history substitution on the ARGs and display the
- result on the standard output, without storing the results in
- the history list.
-
- ‘-s’
- Add the ARGs to the end of the history list as a single entry.
- The last command in the history list is removed before adding
- the ARGs.
-
- If a FILENAME argument is supplied with any of the ‘-w’, ‘-r’,
- ‘-a’, or ‘-n’ options, Bash uses FILENAME as the history file. If
- not, it uses the value of the ‘HISTFILE’ variable. If ‘HISTFILE’
- is unset or null, these options have no effect.
-
- If the ‘HISTTIMEFORMAT’ variable is set, ‘history’ writes the time
- stamp information associated with each history entry to the history
- file, marked with the history comment character as described above.
- When the history file is read, lines beginning with the history
- comment character followed immediately by a digit are interpreted
- as timestamps for the following history entry.
-
- The return value is 0 unless an invalid option is encountered, an
- error occurs while reading or writing the history file, an invalid
- OFFSET or range is supplied as an argument to ‘-d’, or the history
- expansion supplied as an argument to ‘-p’ fails.
-
-\1f
-File: bashref.info, Node: History Interaction, Prev: Bash History Builtins, Up: Using History Interactively
-
-9.3 History Expansion
-=====================
-
-The shell provides a history expansion feature that is similar to the
-history expansion provided by ‘csh’ (also referred to as history
-substitution where appropriate). This section describes the syntax used
-to manipulate the history information.
-
- History expansion is enabled by default for interactive shells, and
-can be disabled using the ‘+H’ option to the ‘set’ builtin command
-(*note The Set Builtin::). Non-interactive shells do not perform
-history expansion by default, but it can be enabled with ‘set -H’.
-
- History expansions introduce words from the history list into the
-input stream, making it easy to repeat commands, insert the arguments to
-a previous command into the current input line, or fix errors in
-previous commands quickly.
-
- History expansion is performed immediately after a complete line is
-read, before the shell breaks it into words, and is performed on each
-line individually. Bash attempts to inform the history expansion
-functions about quoting still in effect from previous lines.
-
- History expansion takes place in two parts. The first is to
-determine which entry from the history list should be used during
-substitution. The second is to select portions of that entry to include
-into the current one.
-
- The entry selected from the history is called the “event”, and the
-portions of that entry that are acted upon are “words”. Various
-“modifiers” are available to manipulate the selected words. The entry
-is split into words in the same fashion that Bash does when reading
-input, so that several words surrounded by quotes are considered one
-word. The “event designator” selects the event, the optional “word
-designator” selects words from the event, and various optional
-“modifiers” are available to manipulate the selected words.
-
- History expansions are introduced by the appearance of the history
-expansion character, which is ‘!’ by default. History expansions may
-appear anywhere in the input, but do not nest.
-
- History expansion implements shell-like quoting conventions: a
-backslash can be used to remove the special handling for the next
-character; single quotes enclose verbatim sequences of characters, and
-can be used to inhibit history expansion; and characters enclosed within
-double quotes may be subject to history expansion, since backslash can
-escape the history expansion character, but single quotes may not, since
-they are not treated specially within double quotes.
-
- When using the shell, only ‘\’ and ‘'’ may be used to escape the
-history expansion character, but the history expansion character is also
-treated as quoted if it immediately precedes the closing double quote in
-a double-quoted string.
-
- Several characters inhibit history expansion if found immediately
-following the history expansion character, even if it is unquoted:
-space, tab, newline, carriage return, ‘=’, and the other shell
-metacharacters.
-
- There is a special abbreviation for substitution, active when the
-QUICK SUBSTITUTION character (described above under ‘histchars’) is the
-first character on the line. It selects the previous history list
-entry, using an event designator equivalent to ‘!!’, and substitutes one
-string for another in that entry. It is described below (*note Event
-Designators::). This is the only history expansion that does not begin
-with the history expansion character.
-
- Several shell options settable with the ‘shopt’ builtin (*note The
-Shopt Builtin::) modify history expansion behavior If the ‘histverify’
-shell option is enabled, and Readline is being used, history
-substitutions are not immediately passed to the shell parser. Instead,
-the expanded line is reloaded into the Readline editing buffer for
-further modification. If Readline is being used, and the ‘histreedit’
-shell option is enabled, a failed history expansion is reloaded into the
-Readline editing buffer for correction.
-
- The ‘-p’ option to the ‘history’ builtin command shows what a history
-expansion will do before using it. The ‘-s’ option to the ‘history’
-builtin may be used to add commands to the end of the history list
-without actually executing them, so that they are available for
-subsequent recall. This is most useful in conjunction with Readline.
-
- The shell allows control of the various characters used by the
-history expansion mechanism with the ‘histchars’ variable, as explained
-above (*note Bash Variables::). The shell uses the history comment
-character to mark history timestamps when writing the history file.
-
-* Menu:
-
-* Event Designators:: How to specify which history line to use.
-* Word Designators:: Specifying which words are of interest.
-* Modifiers:: Modifying the results of substitution.
-
-\1f
-File: bashref.info, Node: Event Designators, Next: Word Designators, Up: History Interaction
-
-9.3.1 Event Designators
------------------------
-
-An event designator is a reference to an entry in the history list. The
-event designator consists of the portion of the word beginning with the
-history expansion character, and ending with the word designator if one
-is present, or the end of the word. Unless the reference is absolute,
-events are relative to the current position in the history list.
-
-‘!’
- Start a history substitution, except when followed by a space, tab,
- the end of the line, ‘=’, or the rest of the shell metacharacters
- defined above (*note Definitions::).
-
-‘!N’
- Refer to history list entry N.
-
-‘!-N’
- Refer to the history entry minus N.
-
-‘!!’
- Refer to the previous entry. This is a synonym for ‘!-1’.
-
-‘!STRING’
- Refer to the most recent command preceding the current position in
- the history list starting with STRING.
-
-‘!?STRING[?]’
- Refer to the most recent command preceding the current position in
- the history list containing STRING. The trailing ‘?’ may be
- omitted if the STRING is followed immediately by a newline. If
- STRING is missing, this uses the string from the most recent
- search; it is an error if there is no previous search string.
-
-‘^STRING1^STRING2^’
- Quick Substitution. Repeat the last command, replacing STRING1
- with STRING2. Equivalent to ‘!!:s^STRING1^STRING2^’.
-
-‘!#’
- The entire command line typed so far.
-
-\1f
-File: bashref.info, Node: Word Designators, Next: Modifiers, Prev: Event Designators, Up: History Interaction
-
-9.3.2 Word Designators
-----------------------
-
-Word designators are used to select desired words from the event. They
-are optional; if the word designator isn't supplied, the history
-expansion uses the entire event. A ‘:’ separates the event
-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). 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,
-
-‘!!’
- designates the preceding command. When you type this, the
- preceding command is repeated in toto.
-
-‘!!:$’
- designates the last word of the preceding command. This may be
- shortened to ‘!$’.
-
-‘!fi:2’
- designates the second argument of the most recent command starting
- with the letters ‘fi’.
-
- Here are the word designators:
-
-‘0 (zero)’
- The ‘0’th word. For the shell, and many other, applications, this
- is the command word.
-
-‘N’
- The Nth word.
-
-‘^’
- The first argument: word 1.
-
-‘$’
- The last word. This is usually the last argument, but expands to
- the zeroth word if there is only one word in the line.
-
-‘%’
- The first word matched by the most recent ‘?STRING?’ search, if the
- search string begins with a character that is part of a word. By
- default, searches begin at the end of each line and proceed to the
- beginning, so the first word matched is the one closest to the end
- of the line.
-
-‘X-Y’
- A range of words; ‘-Y’ abbreviates ‘0-Y’.
-
-‘*’
- All of the words, except the ‘0’th. This is a synonym for ‘1-$’.
- It is not an error to use ‘*’ if there is just one word in the
- event; it expands to the empty string in that case.
-
-‘X*’
- Abbreviates ‘X-$’.
-
-‘X-’
- Abbreviates ‘X-$’ like ‘X*’, but omits the last word. If ‘x’ is
- missing, it defaults to 0.
-
- If a word designator is supplied without an event specification, the
-previous command is used as the event, equivalent to ‘!!’.
-
-\1f
-File: bashref.info, Node: Modifiers, Prev: Word Designators, Up: History Interaction
-
-9.3.3 Modifiers
----------------
-
-After the optional word designator, you can add a sequence of one or
-more of the following modifiers, each preceded by a ‘:’. These modify,
-or edit, the word or words selected from the history event.
-
-‘h’
- Remove a trailing filename component, leaving only the head.
-
-‘t’
- Remove all leading filename components, leaving the tail.
-
-‘r’
- Remove a trailing suffix of the form ‘.SUFFIX’, leaving the
- basename.
-
-‘e’
- Remove all but the trailing suffix.
-
-‘p’
- Print the new command but do not execute it.
-
-‘q’
- Quote the substituted words, escaping further substitutions.
-
-‘x’
- Quote the substituted words as with ‘q’, but break into words at
- spaces, tabs, and newlines. The ‘q’ and ‘x’ modifiers are mutually
- exclusive; expansion uses the last one supplied.
-
-‘s/OLD/NEW/’
- Substitute NEW for the first occurrence of OLD in the event line.
- Any character may be used as the delimiter in place of ‘/’. The
- delimiter may be quoted in OLD and NEW with a single backslash. If
- ‘&’ appears in NEW, it is replaced with OLD. A single backslash
- quotes the ‘&’ in OLD and NEW. If OLD is null, it is set to the
- last OLD substituted, or, if no previous history substitutions took
- place, the last STRING in a !?STRING‘[?]’ search. If NEW is null,
- each matching OLD is deleted. The final delimiter is optional if
- it is the last character on the input line.
-
-‘&’
- Repeat the previous substitution.
-
-‘g’
-‘a’
- Cause changes to be applied over the entire event line. This is
- used in conjunction with ‘s’, as in ‘gs/OLD/NEW/’, or with ‘&’.
-
-‘G’
- Apply the following ‘s’ or ‘&’ modifier once to each word in the
- event.
-
-\1f
-File: bashref.info, Node: Installing Bash, Next: Reporting Bugs, Prev: Using History Interactively, Up: Top
-
-10 Installing Bash
-******************
-
-This chapter provides basic instructions for installing Bash on the
-various supported platforms. The distribution supports the GNU
-operating systems, nearly every version of Unix, and several non-Unix
-systems such as BeOS and Interix. Other independent ports exist for
-Windows platforms.
-
-* Menu:
-
-* Basic Installation:: Installation instructions.
-* Compilers and Options:: How to set special options for various
- systems.
-* Compiling For Multiple Architectures:: How to compile Bash for more
- than one kind of system from
- the same source tree.
-* Installation Names:: How to set the various paths used by the installation.
-* Specifying the System Type:: How to configure Bash for a particular system.
-* Sharing Defaults:: How to share default configuration values among GNU
- programs.
-* Operation Controls:: Options recognized by the configuration program.
-* Optional Features:: How to enable and disable optional features when
- building Bash.
-
-\1f
-File: bashref.info, Node: Basic Installation, Next: Compilers and Options, Up: Installing Bash
-
-10.1 Basic Installation
-=======================
-
-These are installation instructions for Bash.
-
- The simplest way to compile Bash is:
-
- 1. ‘cd’ to the directory containing the source code and type
- ‘./configure’ to configure Bash for your system. If you're using
- ‘csh’ on an old version of System V, you might need to type ‘sh
- ./configure’ instead to prevent ‘csh’ from trying to execute
- ‘configure’ itself.
-
- Running ‘configure’ takes some time. While running, it prints
- messages telling which features it is checking for.
-
- 2. Type ‘make’ to compile Bash and build the ‘bashbug’ bug reporting
- script.
-
- 3. Optionally, type ‘make tests’ to run the Bash test suite.
-
- 4. Type ‘make install’ to install ‘bash’ and ‘bashbug’. This will
- also install the manual pages and Info file, message translation
- files, some supplemental documentation, a number of example
- loadable builtin commands, and a set of header files for developing
- loadable builtins. You may need additional privileges to install
- ‘bash’ to your desired destination, which may require ‘sudo make
- install’. More information about controlling the locations where
- ‘bash’ and other files are installed is below (*note Installation
- Names::).
-
- The ‘configure’ shell script attempts to guess correct values for
-various system-dependent variables used during compilation. It uses
-those values to create a ‘Makefile’ in each directory of the package
-(the top directory, the ‘builtins’, ‘doc’, ‘po’, and ‘support’
-directories, each directory under ‘lib’, and several others). It also
-creates a ‘config.h’ file containing system-dependent definitions.
-Finally, it creates a shell script named ‘config.status’ that you can
-run in the future to recreate the current configuration, a file
-‘config.cache’ that saves the results of its tests to speed up
-reconfiguring, and a file ‘config.log’ containing compiler output
-(useful mainly for debugging ‘configure’). If at some point
-‘config.cache’ contains results you don't want to keep, you may remove
-or edit it.
-
- To find out more about the options and arguments that the ‘configure’
-script understands, type
-
- bash-4.2$ ./configure --help
-
-at the Bash prompt in your Bash source directory.
-
- If you want to build Bash in a directory separate from the source
-directory - to build for multiple architectures, for example - just use
-the full path to the configure script. The following commands will
-build Bash in a directory under ‘/usr/local/build’ from the source code
-in ‘/usr/local/src/bash-4.4’:
-
- mkdir /usr/local/build/bash-4.4
- cd /usr/local/build/bash-4.4
- bash /usr/local/src/bash-4.4/configure
- make
-
- See *note Compiling For Multiple Architectures:: for more information
-about building in a directory separate from the source.
-
- If you need to do unusual things to compile Bash, please try to
-figure out how ‘configure’ could check whether or not to do them, and
-mail diffs or instructions to <bash-maintainers@gnu.org> so they can be
-considered for the next release.
-
- The file ‘configure.ac’ is used to create ‘configure’ by a program
-called Autoconf. You only need ‘configure.ac’ if you want to change it
-or regenerate ‘configure’ using a newer version of Autoconf. If you do
-this, make sure you are using Autoconf version 2.69 or newer.
-
- You can remove the program binaries and object files from the source
-code directory by typing ‘make clean’. To also remove the files that
-‘configure’ created (so you can compile Bash for a different kind of
-computer), type ‘make distclean’.
-
-\1f
-File: bashref.info, Node: Compilers and Options, Next: Compiling For Multiple Architectures, Prev: Basic Installation, Up: Installing Bash
-
-10.2 Compilers and Options
-==========================
-
-Some systems require unusual options for compilation or linking that the
-‘configure’ script does not know about. You can give ‘configure’
-initial values for variables by setting them in the environment. Using
-a Bourne-compatible shell, you can do that on the command line like
-this:
-
- CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
-
- On systems that have the ‘env’ program, you can do it like this:
-
- env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
-
- The configuration process uses GCC to build Bash if it is available.
-
-\1f
-File: bashref.info, Node: Compiling For Multiple Architectures, Next: Installation Names, Prev: Compilers and Options, Up: Installing Bash
-
-10.3 Compiling For Multiple Architectures
-=========================================
-
-You can compile Bash for more than one kind of computer at the same
-time, by placing the object files for each architecture in their own
-directory. To do this, you must use a version of ‘make’ that supports
-the ‘VPATH’ variable, such as GNU ‘make’. ‘cd’ to the directory where
-you want the object files and executables to go and run the ‘configure’
-script from the source directory (*note Basic Installation::). You may
-need to supply the ‘--srcdir=PATH’ argument to tell ‘configure’ where
-the source files are. ‘configure’ automatically checks for the source
-code in the directory that ‘configure’ is in and in ‘..’.
-
- If you have to use a ‘make’ that does not support the ‘VPATH’
-variable, you can compile Bash for one architecture at a time in the
-source code directory. After you have installed Bash for one
-architecture, use ‘make distclean’ before reconfiguring for another
-architecture.
-
- Alternatively, if your system supports symbolic links, you can use
-the ‘support/mkclone’ script to create a build tree which has symbolic
-links back to each file in the source directory. Here's an example that
-creates a build directory in the current directory from a source
-directory ‘/usr/gnu/src/bash-2.0’:
-
- bash /usr/gnu/src/bash-2.0/support/mkclone -s /usr/gnu/src/bash-2.0 .
-
-The ‘mkclone’ script requires Bash, so you must have already built Bash
-for at least one architecture before you can create build directories
-for other architectures.
-
-\1f
-File: bashref.info, Node: Installation Names, Next: Specifying the System Type, Prev: Compiling For Multiple Architectures, Up: Installing Bash
-
-10.4 Installation Names
-=======================
-
-By default, ‘make install’ will install into ‘/usr/local/bin’,
-‘/usr/local/man’, etc.; that is, the “installation prefix” defaults to
-‘/usr/local’. You can specify an installation prefix other than
-‘/usr/local’ by giving ‘configure’ the option ‘--prefix=PATH’, or by
-specifying a value for the ‘prefix’ ‘make’ variable when running ‘make
-install’ (e.g., ‘make install prefix=PATH’). The ‘prefix’ variable
-provides a default for ‘exec_prefix’ and other variables used when
-installing Bash.
-
- You can specify separate installation prefixes for
-architecture-specific files and architecture-independent files. If you
-give ‘configure’ the option ‘--exec-prefix=PATH’, ‘make install’ will
-use PATH as the prefix for installing programs and libraries.
-Documentation and other data files will still use the regular prefix.
-
- If you would like to change the installation locations for a single
-run, you can specify these variables as arguments to ‘make’: ‘make
-install exec_prefix=/’ will install ‘bash’ and ‘bashbug’ into ‘/bin’
-instead of the default ‘/usr/local/bin’.
-
- If you want to see the files Bash will install and where it will
-install them without changing anything on your system, specify the
-variable ‘DESTDIR’ as an argument to ‘make’. Its value should be the
-absolute directory path you'd like to use as the root of your sample
-installation tree. For example,
-
- mkdir /fs1/bash-install
- make install DESTDIR=/fs1/bash-install
-
-will install ‘bash’ into ‘/fs1/bash-install/usr/local/bin/bash’, the
-documentation into directories within
-‘/fs1/bash-install/usr/local/share’, the example loadable builtins into
-‘/fs1/bash-install/usr/local/lib/bash’, and so on. You can use the
-usual ‘exec_prefix’ and ‘prefix’ variables to alter the directory paths
-beneath the value of ‘DESTDIR’.
-
- The GNU Makefile standards provide a more complete description of
-these variables and their effects.
-
-\1f
-File: bashref.info, Node: Specifying the System Type, Next: Sharing Defaults, Prev: Installation Names, Up: Installing Bash
-
-10.5 Specifying the System Type
-===============================
-
-There may be some features ‘configure’ can not figure out automatically,
-but needs to determine by the type of host Bash will run on. Usually
-‘configure’ can figure that out, but if it prints a message saying it
-can not guess the host type, give it the ‘--host=TYPE’ option. ‘TYPE’
-can either be a short name for the system type, such as ‘sun4’, or a
-canonical name with three fields: ‘CPU-COMPANY-SYSTEM’ (e.g.,
-‘i386-unknown-freebsd4.2’).
-
- See the file ‘support/config.sub’ for the possible values of each
-field.
-
-\1f
-File: bashref.info, Node: Sharing Defaults, Next: Operation Controls, Prev: Specifying the System Type, Up: Installing Bash
-
-10.6 Sharing Defaults
-=====================
-
-If you want to set default values for ‘configure’ scripts to share, you
-can create a site shell script called ‘config.site’ that gives default
-values for variables like ‘CC’, ‘cache_file’, and ‘prefix’. ‘configure’
-looks for ‘PREFIX/share/config.site’ if it exists, then
-‘PREFIX/etc/config.site’ if it exists. Or, you can set the
-‘CONFIG_SITE’ environment variable to the location of the site script.
-A warning: the Bash ‘configure’ looks for a site script, but not all
-‘configure’ scripts do.
-
-\1f
-File: bashref.info, Node: Operation Controls, Next: Optional Features, Prev: Sharing Defaults, Up: Installing Bash
-
-10.7 Operation Controls
-=======================
-
-‘configure’ recognizes the following options to control how it operates.
-
-‘--cache-file=FILE’
- Use and save the results of the tests in FILE instead of
- ‘./config.cache’. Set FILE to ‘/dev/null’ to disable caching, for
- debugging ‘configure’.
-
-‘--help’
- Print a summary of the options to ‘configure’, and exit.
-
-‘--quiet’
-‘--silent’
-‘-q’
- Do not print messages saying which checks are being made.
-
-‘--srcdir=DIR’
- Look for the Bash source code in directory DIR. Usually
- ‘configure’ can determine that directory automatically.
-
-‘--version’
- Print the version of Autoconf used to generate the ‘configure’
- script, and exit.
-
- ‘configure’ also accepts some other, not widely used, boilerplate
-options. ‘configure --help’ prints the complete list.
-
-\1f
-File: bashref.info, Node: Optional Features, Prev: Operation Controls, Up: Installing Bash
-
-10.8 Optional Features
-======================
-
-The Bash ‘configure’ has a number of ‘--enable-FEATURE’ options, where
-FEATURE indicates an optional part of Bash. There are also several
-‘--with-PACKAGE’ options, where PACKAGE is something like ‘bash-malloc’
-or ‘afs’. To turn off the default use of a package, use
-‘--without-PACKAGE’. To configure Bash without a feature that is
-enabled by default, use ‘--disable-FEATURE’.
-
- Here is a complete list of the ‘--enable-’ and ‘--with-’ options that
-the Bash ‘configure’ recognizes.
-
-‘--with-afs’
- Define if you are using the Andrew File System from Transarc.
-
-‘--with-bash-malloc’
- Use the Bash version of ‘malloc’ in the directory ‘lib/malloc’.
- This is not the same ‘malloc’ that appears in GNU libc, but a
- custom version originally derived from the 4.2 BSD ‘malloc’. This
- ‘malloc’ is very fast, but wastes some space on each allocation,
- though it uses several techniques to minimize the waste. This
- option is enabled by default. The ‘NOTES’ file contains a list of
- systems for which this should be turned off, and ‘configure’
- disables this option automatically for a number of systems.
-
-‘--with-curses[=LIBNAME]’
- Use the curses library instead of the termcap library as the
- library where the linker can find the termcap functions.
- ‘configure’ usually chooses this automatically, since most systems
- include the termcap functions in the curses library. If LIBNAME is
- supplied, ‘configure’ does not search for an appropriate library
- and uses LIBNAME instead. LIBNAME should be either an argument for
- the linker (e.g., ‘-lLIBNAME’) or a filename (e.g.,
- ‘/opt/local/lib/libncursesw.so’).
-
-‘--with-gnu-malloc’
- A synonym for ‘--with-bash-malloc’.
-
-‘--with-installed-readline[=PREFIX]’
- Define this to make Bash link with a locally-installed version of
- Readline rather than the version in ‘lib/readline’. This works
- only with Readline 5.0 and later versions. If PREFIX is ‘yes’ or
- not supplied, ‘configure’ uses the values of the make variables
- ‘includedir’ and ‘libdir’, which are subdirectories of ‘prefix’ by
- default, to find the installed version of Readline if it is not in
- the standard system include and library directories. If PREFIX is
- ‘no’, Bash links with the version in ‘lib/readline’. If PREFIX is
- set to any other value, ‘configure’ treats it as a directory
- pathname and looks for the installed version of Readline in
- subdirectories of that directory (include files in PREFIX/‘include’
- and the library in PREFIX/‘lib’). The Bash default is to link with
- a static library built in the ‘lib/readline’ subdirectory of the
- build directory.
-
-‘--with-libintl-prefix[=PREFIX]’
- Define this to make Bash link with a locally-installed version of
- the libintl library instead of the version in ‘lib/intl’.
-
-‘--with-libiconv-prefix[=PREFIX]’
- Define this to make Bash look for libiconv in PREFIX instead of the
- standard system locations. The Bash distribution does not include
- this library.
-
-‘--enable-minimal-config’
- This produces a shell with minimal features, closer to the
- historical Bourne shell.
-
- There are several ‘--enable-’ options that alter how Bash is
-compiled, linked, and installed, rather than changing run-time features.
-
-‘--enable-largefile’
- Enable support for large files
- (http://www.unix.org/version2/whatsnew/lfs20mar.html) if the
- operating system requires special compiler options to build
- programs which can access large files. This is enabled by default,
- if the operating system provides large file support.
-
-‘--enable-profiling’
- This builds a Bash binary that produces profiling information to be
- processed by ‘gprof’ each time it is executed.
-
-‘--enable-separate-helpfiles’
- Use external files for the documentation displayed by the ‘help’
- builtin instead of storing the text internally.
-
-‘--enable-static-link’
- This causes Bash to be linked statically, if ‘gcc’ is being used.
- This could be used to build a version to use as root's shell.
-
- The ‘minimal-config’ option can be used to disable all of the
-following options, but it is processed first, so individual options may
-be enabled using ‘enable-FEATURE’.
-
- All of the following options except for ‘alt-array-implementation’,
-‘disabled-builtins’, ‘direxpand-default’, ‘strict-posix-default’, and
-‘xpg-echo-default’ are enabled by default, unless the operating system
-does not provide the necessary support.
-
-‘--enable-alias’
- Allow alias expansion and include the ‘alias’ and ‘unalias’
- builtins (*note Aliases::).
-
-‘--enable-alt-array-implementation’
- This builds Bash using an alternate implementation of arrays (*note
- Arrays::) that provides faster access at the expense of using more
- memory (sometimes many times more, depending on how sparse an array
- is).
-
-‘--enable-arith-for-command’
- Include support for the alternate form of the ‘for’ command that
- behaves like the C language ‘for’ statement (*note Looping
- Constructs::).
-
-‘--enable-array-variables’
- Include support for one-dimensional array shell variables (*note
- Arrays::).
-
-‘--enable-bang-history’
- Include support for ‘csh’-like history substitution (*note History
- Interaction::).
-
-‘--enable-bash-source-fullpath-default’
- Set the default value of the ‘bash_source_fullpath’ shell option
- described above under *note The Shopt Builtin:: to be enabled.
- This controls how filenames are assigned to the ‘BASH_SOURCE’ array
- variable.
-
-‘--enable-brace-expansion’
- Include ‘csh’-like brace expansion ( ‘b{a,b}c’ ↦ ‘bac bbc’ ). See
- *note Brace Expansion::, for a complete description.
-
-‘--enable-casemod-attributes’
- Include support for case-modifying attributes in the ‘declare’
- builtin and assignment statements. Variables with the ‘uppercase’
- attribute, for example, will have their values converted to
- uppercase upon assignment.
-
-‘--enable-casemod-expansion’
- Include support for case-modifying word expansions.
-
-‘--enable-command-timing’
- Include support for recognizing ‘time’ as a reserved word and for
- displaying timing statistics for the pipeline following ‘time’
- (*note Pipelines::). This allows timing pipelines, shell compound
- commands, shell builtins, and shell functions, which an external
- command cannot do easily.
-
-‘--enable-cond-command’
- Include support for the ‘[[’ conditional command. (*note
- Conditional Constructs::).
-
-‘--enable-cond-regexp’
- Include support for matching POSIX regular expressions using the
- ‘=~’ binary operator in the ‘[[’ conditional command. (*note
- Conditional Constructs::).
-
-‘--enable-coprocesses’
- Include support for coprocesses and the ‘coproc’ reserved word
- (*note Pipelines::).
-
-‘--enable-debugger’
- Include support for the Bash debugger (distributed separately).
-
-‘--enable-dev-fd-stat-broken’
- If calling ‘stat’ on /dev/fd/N returns different results than
- calling ‘fstat’ on file descriptor N, supply this option to enable
- a workaround. This has implications for conditional commands that
- test file attributes.
-
-‘--enable-direxpand-default’
- Cause the ‘direxpand’ shell option (*note The Shopt Builtin::) to
- be enabled by default when the shell starts. It is normally
- disabled by default.
-
-‘--enable-directory-stack’
- Include support for a ‘csh’-like directory stack and the ‘pushd’,
- ‘popd’, and ‘dirs’ builtins (*note The Directory Stack::).
-
-‘--enable-disabled-builtins’
- Allow builtin commands to be invoked via ‘builtin xxx’ even after
- ‘xxx’ has been disabled using ‘enable -n xxx’. See *note Bash
- Builtins::, for details of the ‘builtin’ and ‘enable’ builtin
- commands.
-
-‘--enable-dparen-arithmetic’
- Include support for the ‘((...))’ command (*note Conditional
- Constructs::).
-
-‘--enable-extended-glob’
- Include support for the extended pattern matching features
- described above under *note Pattern Matching::.
-
-‘--enable-extended-glob-default’
- Set the default value of the ‘extglob’ shell option described above
- under *note The Shopt Builtin:: to be enabled.
-
-‘--enable-function-import’
- Include support for importing function definitions exported by
- another instance of the shell from the environment. This option is
- enabled by default.
-
-‘--enable-glob-asciiranges-default’
- Set the default value of the ‘globasciiranges’ shell option
- described above under *note The Shopt Builtin:: to be enabled.
- This controls the behavior of character ranges when used in pattern
- matching bracket expressions.
-
-‘--enable-help-builtin’
- Include the ‘help’ builtin, which displays help on shell builtins
- and variables (*note Bash Builtins::).
-
-‘--enable-history’
- Include command history and the ‘fc’ and ‘history’ builtin commands
- (*note Bash History Facilities::).
-
-‘--enable-job-control’
- This enables the job control features (*note Job Control::), if the
- operating system supports them.
-
-‘--enable-multibyte’
- This enables support for multibyte characters if the operating
- system provides the necessary support.
-
-‘--enable-net-redirections’
- This enables the special handling of filenames of the form
- ‘/dev/tcp/HOST/PORT’ and ‘/dev/udp/HOST/PORT’ when used in
- redirections (*note Redirections::).
-
-‘--enable-process-substitution’
- This enables process substitution (*note Process Substitution::) if
- the operating system provides the necessary support.
-
-‘--enable-progcomp’
- Enable the programmable completion facilities (*note Programmable
- Completion::). If Readline is not enabled, this option has no
- effect.
-
-‘--enable-prompt-string-decoding’
- Turn on the interpretation of a number of backslash-escaped
- characters in the ‘$PS0’, ‘$PS1’, ‘$PS2’, and ‘$PS4’ prompt
- strings. See *note Controlling the Prompt::, for a complete list
- of prompt string escape sequences.
-
-‘--enable-readline’
- Include support for command-line editing and history with the Bash
- version of the Readline library (*note Command Line Editing::).
-
-‘--enable-restricted’
- Include support for a “restricted shell”. If this is enabled, Bash
- enters a restricted mode when called as ‘rbash’. See *note The
- Restricted Shell::, for a description of restricted mode.
-
-‘--enable-select’
- Include the ‘select’ compound command, which allows generation of
- simple menus (*note Conditional Constructs::).
-
-‘--enable-single-help-strings’
- Store the text displayed by the ‘help’ builtin as a single string
- for each help topic. This aids in translating the text to
- different languages. You may need to disable this if your compiler
- cannot handle very long string literals.
-
-‘--enable-strict-posix-default’
- Make Bash POSIX-conformant by default (*note Bash POSIX Mode::).
-
-‘--enable-translatable-strings’
- Enable support for ‘$"STRING"’ translatable strings (*note Locale
- Translation::).
-
-‘--enable-usg-echo-default’
- A synonym for ‘--enable-xpg-echo-default’.
-
-‘--enable-xpg-echo-default’
- Make the ‘echo’ builtin expand backslash-escaped characters by
- default, without requiring the ‘-e’ option. This sets the default
- value of the ‘xpg_echo’ shell option to ‘on’, which makes the Bash
- ‘echo’ behave more like the version specified in the Single Unix
- Specification, version 3. *Note Bash Builtins::, for a description
- of the escape sequences that ‘echo’ recognizes.
-
- The file ‘config-top.h’ contains C Preprocessor ‘#define’ statements
-for options which are not settable from ‘configure’. Some of these are
-not meant to be changed; beware of the consequences if you do. Read the
-comments associated with each definition for more information about its
-effect.
-
-\1f
-File: bashref.info, Node: Reporting Bugs, Next: Major Differences From The Bourne Shell, Prev: Installing Bash, Up: Top
-
-Appendix A Reporting Bugs
-*************************
-
-Please report all bugs you find in Bash. But first, you should make
-sure that it really is a bug, and that it appears in the latest version
-of Bash. The latest released version of Bash is always available for
-FTP from <ftp://ftp.gnu.org/pub/gnu/bash/> and from
-<http://git.savannah.gnu.org/cgit/bash.git/snapshot/bash-master.tar.gz>.
-
- Once you have determined that a bug actually exists, use the
-‘bashbug’ command to submit a bug report or use the form at the Bash
-project page (https://savannah.gnu.org/projects/bash/). If you have a
-fix, you are encouraged to submit that as well! Suggestions and
-"philosophical" bug reports may be mailed to <bug-bash@gnu.org> or
-<help-bash@gnu.org>.
-
- All bug reports should include:
- • The version number of Bash.
- • The hardware and operating system.
- • The compiler used to compile Bash.
- • A description of the bug behavior.
- • A short script or "recipe" which exercises the bug and may be used
- to reproduce it.
-
-‘bashbug’ inserts the first three items automatically into the template
-it provides for filing a bug report.
-
- Please send all reports concerning this manual to <bug-bash@gnu.org>.
-
-\1f
-File: bashref.info, Node: Major Differences From The Bourne Shell, Next: GNU Free Documentation License, Prev: Reporting Bugs, Up: Top
-
-Appendix B Major Differences From The Bourne Shell
-**************************************************
-
-Bash implements essentially the same grammar, parameter and variable
-expansion, redirection, and quoting as the Bourne Shell. Bash uses the
-POSIX standard as the specification of how these features are to be
-implemented and how they should behave. There are some differences
-between the traditional Bourne shell and Bash; this section quickly
-details the differences of significance. A number of these differences
-are explained in greater depth in previous sections. This section uses
-the version of ‘sh’ included in SVR4.2 (the last version of the
-historical Bourne shell) as the baseline reference.
-
- • Bash is POSIX-conformant, even where the POSIX specification
- differs from traditional ‘sh’ behavior (*note Bash POSIX Mode::).
-
- • Bash has multi-character invocation options (*note Invoking
- Bash::).
-
- • The Bash restricted mode is more useful (*note The Restricted
- Shell::); the SVR4.2 shell restricted mode is too limited.
-
- • Bash has command-line editing (*note Command Line Editing::) and
- the ‘bind’ builtin.
-
- • Bash provides a programmable word completion mechanism (*note
- Programmable Completion::), and builtin commands ‘complete’,
- ‘compgen’, and ‘compopt’, to manipulate it.
-
- • Bash decodes a number of backslash-escape sequences in the prompt
- string variables (‘PS0’, ‘PS1’, ‘PS2’, and ‘PS4’) (*note
- Controlling the Prompt::).
-
- • Bash expands and displays the ‘PS0’ prompt string variable.
-
- • Bash runs commands from the ‘PROMPT_COMMAND’ array variable before
- issuing each primary prompt.
-
- • Bash has command history (*note Bash History Facilities::) and the
- ‘history’ and ‘fc’ builtins to manipulate it. The Bash history
- list maintains timestamp information and uses the value of the
- ‘HISTTIMEFORMAT’ variable to display it.
-
- • Bash implements ‘csh’-like history expansion (*note History
- Interaction::).
-
- • Bash supports the ‘$'...'’ quoting syntax, which expands ANSI-C
- backslash-escaped characters in the text between the single quotes
- (*note ANSI-C Quoting::).
-
- • Bash supports the ‘$"..."’ quoting syntax and performs
- locale-specific translation of the characters between the double
- quotes. The ‘-D’, ‘--dump-strings’, and ‘--dump-po-strings’
- invocation options list the translatable strings found in a script
- (*note Locale Translation::).
-
- • Bash includes brace expansion (*note Brace Expansion::) and tilde
- expansion (*note Tilde Expansion::).
-
- • Bash implements command aliases and the ‘alias’ and ‘unalias’
- builtins (*note Aliases::).
-
- • Bash implements the ‘!’ reserved word to negate the return value of
- a pipeline (*note Pipelines::). This is very useful when an ‘if’
- statement needs to act only if a test fails. The Bash ‘-o
- pipefail’ option to ‘set’ will cause a pipeline to return a failure
- status if any command fails (*note The Set Builtin::).
-
- • Bash has the ‘time’ reserved word and command timing (*note
- Pipelines::). The display of the timing statistics may be
- controlled with the ‘TIMEFORMAT’ variable.
-
- • Bash provides coprocesses and the ‘coproc’ reserved word (*note
- Coprocesses::).
-
- • Bash implements the ‘for (( EXPR1 ; EXPR2 ; EXPR3 ))’ arithmetic
- for command, similar to the C language (*note Looping
- Constructs::).
-
- • Bash includes the ‘select’ compound command, which allows the
- generation of simple menus (*note Conditional Constructs::).
-
- • Bash includes the ‘[[’ compound command, which makes conditional
- testing part of the shell grammar (*note Conditional Constructs::),
- including optional regular expression matching.
-
- • Bash provides optional case-insensitive matching for the ‘case’ and
- ‘[[’ constructs (*note Conditional Constructs::).
-
- • Bash provides additional ‘case’ statement action list terminators:
- ‘;&’ and ‘;;&’ (*note Conditional Constructs::).
-
- • Bash provides shell arithmetic, the ‘((’ compound command (*note
- Conditional Constructs::), the ‘let’ builtin, and arithmetic
- expansion (*note Shell Arithmetic::).
-
- • Bash has one-dimensional array variables (*note Arrays::), and the
- appropriate variable expansions and assignment syntax to use them.
- Several of the Bash builtins take options to act on arrays. Bash
- provides a number of built-in array variables.
-
- • Variables present in the shell's initial environment are
- automatically exported to child processes (*note Command Execution
- Environment::). The Bourne shell does not normally do this unless
- the variables are explicitly marked using the ‘export’ command.
-
- • Bash can expand positional parameters beyond ‘$9’ using ‘${NUM}’
- (*note Shell Parameter Expansion::).
-
- • Bash supports the ‘+=’ assignment operator, which appends to the
- value of the variable named on the left hand side (*note Shell
- Parameters::).
-
- • Bash includes the POSIX pattern removal ‘%’, ‘#’, ‘%%’ and ‘##’
- expansions to remove leading or trailing substrings from variable
- values (*note Shell Parameter Expansion::).
-
- • The expansion ‘${#xx}’, which returns the length of ‘${xx}’, is
- supported (*note Shell Parameter Expansion::).
-
- • The expansion ‘${var:’OFFSET‘[:’LENGTH‘]}’, which expands to the
- substring of ‘var’'s value of length LENGTH, beginning at OFFSET,
- is present (*note Shell Parameter Expansion::).
-
- • The expansion ‘${VAR/[/]’PATTERN‘[/’REPLACEMENT‘]}’, which matches
- PATTERN and replaces it with REPLACEMENT in the value of VAR, is
- available (*note Shell Parameter Expansion::), with a mechanism to
- use the matched text in REPLACEMENT.
-
- • The expansion ‘${!PREFIX*}’ expansion, which expands to the names
- of all shell variables whose names begin with PREFIX, is available
- (*note Shell Parameter Expansion::).
-
- • Bash has indirect variable expansion using ‘${!word}’ (*note Shell
- Parameter Expansion::) and implements the ‘nameref’ variable
- attribute for automatic indirect variable expansion.
-
- • Bash includes a set of parameter transformation word expansions of
- the form ‘${var@X}’, where ‘X’ specifies the transformation (*note
- Shell Parameter Expansion::).
-
- • The POSIX ‘$()’ form of command substitution is implemented (*note
- Command Substitution::), and preferred to the Bourne shell's ‘``’
- (which is also implemented for backwards compatibility).
-
- • Bash implements a variant of command substitution that runs the
- enclosed command in the current shell execution environment: ‘${
- COMMAND;}’ or ‘${|COMMAND;}’ (*note Command Substitution::).
-
- • Bash has process substitution (*note Process Substitution::).
-
- • Bash automatically assigns variables that provide information about
- the current user (‘UID’, ‘EUID’, and ‘GROUPS’), the current host
- (‘HOSTTYPE’, ‘OSTYPE’, ‘MACHTYPE’, and ‘HOSTNAME’), and the
- instance of Bash that is running (‘BASH’, ‘BASH_VERSION’, and
- ‘BASH_VERSINFO’). *Note Bash Variables::, for details.
-
- • Bash uses many variables to provide functionality and customize
- shell behavior that the Bourne shell does not. Examples include
- ‘RANDOM’, ‘SRANDOM’, ‘EPOCHSECONDS’, ‘EPOCHREALTIME’, ‘TIMEFORMAT’,
- ‘BASHPID’, ‘BASH_XTRACEFD’, ‘GLOBIGNORE’, ‘HISTIGNORE’, and
- ‘BASH_VERSION’. *Note Bash Variables::, for a complete list.
-
- • Bash uses the ‘GLOBSORT’ shell variable to control how to sort the
- results of filename expansion (*note Filename Expansion::).
-
- • Bash uses the ‘IFS’ variable to split only the results of
- expansion, not all words (*note Word Splitting::). This closes a
- longstanding shell security hole.
-
- • The filename expansion bracket expression code uses ‘!’ and ‘^’ to
- negate the set of characters between the brackets (*note Filename
- Expansion::). The Bourne shell uses only ‘!’.
-
- • Bash implements the full set of POSIX filename expansion operators,
- including character classes, equivalence classes, and collating
- symbols (*note Filename Expansion::).
-
- • Bash implements extended pattern matching features when the
- ‘extglob’ shell option is enabled (*note Pattern Matching::).
-
- • The ‘globstar’ shell option extends filename expansion to
- recursively scan directories and subdirectories for matching
- filenames (*note Pattern Matching::).
-
- • It is possible to have a variable and a function with the same
- name; ‘sh’ does not separate the two name spaces.
-
- • Bash functions are permitted to have local variables using the
- ‘local’ builtin, and thus users can write useful recursive
- functions (*note Bash Builtins::).
-
- • Bash performs filename expansion on filenames specified as operands
- to input and output redirection operators (*note Redirections::).
-
- • Bash contains the ‘<>’ redirection operator, allowing a file to be
- opened for both reading and writing, and the ‘&>’ redirection
- operator, for directing standard output and standard error to the
- same file (*note Redirections::).
-
- • Bash includes the ‘<<<’ redirection operator, allowing a string to
- be used as the standard input to a command (*note Redirections::).
-
- • Bash implements the ‘[n]<&WORD’ and ‘[n]>&WORD’ redirection
- operators, which move one file descriptor to another.
-
- • Bash treats a number of filenames specially when they are used in
- redirection operators (*note Redirections::).
-
- • Bash provides the {VAR}<WORD capability to have the shell allocate
- file descriptors for redirections and assign them to VAR (*note
- Redirections::). This works with multiple redirection operators.
-
- • Bash can open network connections to arbitrary machines and
- services with the redirection operators (*note Redirections::).
-
- • The ‘noclobber’ option is available to avoid overwriting existing
- files with output redirection (*note The Set Builtin::). The ‘>|’
- redirection operator may be used to override ‘noclobber’.
-
- • Variable assignments preceding commands affect only that command,
- even builtins and functions (*note Environment::). In ‘sh’, all
- variable assignments preceding commands are global unless the
- command is executed from the file system.
-
- • Bash includes a number of features to support a separate debugger
- for shell scripts: variables (‘BASH_ARGC’, ‘BASH_ARGV’,
- ‘BASH_LINENO’, ‘BASH_SOURCE’), the ‘DEBUG’, ‘RETURN’, and ‘ERR’
- traps, ‘declare -F’, and the ‘caller’ builtin.
-
- • Bash implements a ‘csh’-like directory stack, and provides the
- ‘pushd’, ‘popd’, and ‘dirs’ builtins to manipulate it (*note The
- Directory Stack::). Bash also makes the directory stack visible as
- the value of the ‘DIRSTACK’ shell variable.
-
- • Bash allows a function to override a builtin with the same name,
- and provides access to that builtin's functionality within the
- function via the ‘builtin’ and ‘command’ builtins (*note Bash
- Builtins::).
-
- • Bash includes the ‘caller’ builtin (*note Bash Builtins::), which
- displays the context of any active subroutine call (a shell
- function or a script executed with the ‘.’ or ‘source’ builtins).
- This supports the Bash debugger.
-
- • The Bash ‘cd’ and ‘pwd’ builtins (*note Bourne Shell Builtins::)
- each take ‘-L’ and ‘-P’ options to switch between logical and
- physical modes.
-
- • The ‘command’ builtin allows selectively skipping shell functions
- when performing command lookup (*note Bash Builtins::).
-
- • Bash uses the ‘declare’ builtin to modify the full set of variable
- and function attributes, and to assign values to variables.
-
- • The ‘disown’ builtin can remove a job from the internal shell job
- table (*note Job Control Builtins::) or suppress sending ‘SIGHUP’
- to a job when the shell exits as the result of a ‘SIGHUP’.
-
- • The ‘enable’ builtin (*note Bash Builtins::) can enable or disable
- individual builtins and implements support for dynamically loading
- builtin commands from shared objects.
-
- • The Bash ‘exec’ builtin takes additional options that allow users
- to control the contents of the environment passed to the executed
- command, and what the zeroth argument to the command is to be
- (*note Bourne Shell Builtins::).
-
- • Shell functions may be exported to children via the environment
- using ‘export -f’ (*note Shell Functions::).
-
- • The Bash ‘export’ and ‘readonly’ builtins (*note Bourne Shell
- Builtins::) can take a ‘-f’ option to act on shell functions, a
- ‘-p’ option to display variables with various attributes set in a
- format that can be used as shell input, a ‘-n’ option to remove
- various variable attributes, and ‘name=value’ arguments to set
- variable attributes and values simultaneously.
-
- • The Bash ‘hash’ builtin allows a name to be associated with an
- arbitrary filename, even when that filename cannot be found by
- searching the ‘$PATH’, using ‘hash -p’ (*note Bourne Shell
- Builtins::).
-
- • Bash includes a ‘help’ builtin for quick reference to shell
- facilities (*note Bash Builtins::).
-
- • Bash includes the ‘mapfile’ builtin to quickly read the contents of
- a file into an indexed array variable (*note Bash Builtins::).
-
- • The ‘printf’ builtin is available to display formatted output
- (*note Bash Builtins::), and has additional custom format
- specifiers and an option to assign the formatted output directly to
- a shell variable.
-
- • The Bash ‘read’ builtin (*note Bash Builtins::) will read a line
- ending in ‘\’ with the ‘-r’ option, and will use the ‘REPLY’
- variable as a default if no non-option arguments are supplied.
-
- • The ‘read’ builtin (*note Bash Builtins::) accepts a prompt string
- with the ‘-p’ option and will use Readline to obtain the line when
- given the ‘-e’ or ‘-E’ options, with the ability to insert text
- into the line using the ‘-i’ option. The ‘read’ builtin also has
- additional options to control input: the ‘-s’ option will turn off
- echoing of input characters as they are read, the ‘-t’ option will
- allow ‘read’ to time out if input does not arrive within a
- specified number of seconds, the ‘-n’ option will allow reading
- only a specified number of characters rather than a full line, and
- the ‘-d’ option will read until a particular character rather than
- newline.
-
- • The ‘return’ builtin may be used to abort execution of scripts
- executed with the ‘.’ or ‘source’ builtins (*note Bourne Shell
- Builtins::).
-
- • Bash has much more optional behavior controllable with the ‘set’
- builtin (*note The Set Builtin::).
-
- • The ‘-x’ (‘xtrace’) option displays commands other than simple
- commands when performing an execution trace (*note The Set
- Builtin::).
-
- • Bash includes the ‘shopt’ builtin, for finer control of shell
- optional capabilities (*note The Shopt Builtin::), and allows these
- options to be set and unset at shell invocation (*note Invoking
- Bash::).
-
- • The ‘test’ builtin (*note Bourne Shell Builtins::) is slightly
- different, as it implements the POSIX algorithm, which specifies
- the behavior based on the number of arguments.
-
- • The ‘trap’ builtin (*note Bourne Shell Builtins::) allows a ‘DEBUG’
- pseudo-signal specification, similar to ‘EXIT’. Commands specified
- with a ‘DEBUG’ trap are executed before every simple command, ‘for’
- command, ‘case’ command, ‘select’ command, every arithmetic ‘for’
- command, and before the first command executes in a shell function.
- The ‘DEBUG’ trap is not inherited by shell functions unless the
- function has been given the ‘trace’ attribute or the ‘functrace’
- option has been enabled using the ‘shopt’ builtin. The ‘extdebug’
- shell option has additional effects on the ‘DEBUG’ trap.
-
- The ‘trap’ builtin (*note Bourne Shell Builtins::) allows an ‘ERR’
- pseudo-signal specification, similar to ‘EXIT’ and ‘DEBUG’.
- Commands specified with an ‘ERR’ trap are executed after a simple
- command fails, with a few exceptions. The ‘ERR’ trap is not
- inherited by shell functions unless the ‘-o errtrace’ option to the
- ‘set’ builtin is enabled.
-
- The ‘trap’ builtin (*note Bourne Shell Builtins::) allows a
- ‘RETURN’ pseudo-signal specification, similar to ‘EXIT’ and
- ‘DEBUG’. Commands specified with a ‘RETURN’ trap are executed
- before execution resumes after a shell function or a shell script
- executed with ‘.’ or ‘source’ returns. The ‘RETURN’ trap is not
- inherited by shell functions unless the function has been given the
- ‘trace’ attribute or the ‘functrace’ option has been enabled using
- the ‘shopt’ builtin.
-
- • The Bash ‘type’ builtin is more extensive and gives more
- information about the names it finds (*note Bash Builtins::).
-
- • The ‘ulimit’ builtin provides control over many more per-process
- resources (*note Bash Builtins::).
-
- • The Bash ‘umask’ builtin uses the ‘-p’ option to display the output
- in the form of a ‘umask’ command that may be reused as input (*note
- Bourne Shell Builtins::).
-
- • The Bash ‘wait’ builtin has a ‘-n’ option to wait for the next
- child to exit, possibly selecting from a list of supplied jobs, and
- the ‘-p’ option to store information about a terminated child
- process in a shell variable.
-
- • The SVR4.2 shell behaves differently when invoked as ‘jsh’ (it
- turns on job control).
-
- • The SVR4.2 shell has two privilege-related builtins (‘mldmode’ and
- ‘priv’) not present in Bash.
-
- • Bash does not have the ‘stop’ or ‘newgrp’ builtins.
-
- • Bash does not use the ‘SHACCT’ variable or perform shell
- accounting.
-
- • The SVR4.2 ‘sh’ uses a ‘TIMEOUT’ variable like Bash uses ‘TMOUT’.
-
-More features unique to Bash may be found in *note Bash Features::.
-
-B.1 Implementation Differences From The SVR4.2 Shell
-====================================================
-
-Since Bash is a completely new implementation, it does not suffer from
-many of the limitations of the SVR4.2 shell. For instance:
-
- • Bash does not fork a subshell when redirecting into or out of a
- shell control structure such as an ‘if’ or ‘while’ statement.
-
- • Bash does not allow unbalanced quotes. The SVR4.2 shell will
- silently insert a needed closing quote at ‘EOF’ under certain
- circumstances. This can be the cause of some hard-to-find errors.
-
- • The SVR4.2 shell uses a baroque memory management scheme based on
- trapping ‘SIGSEGV’. If the shell is started from a process with
- ‘SIGSEGV’ blocked (e.g., by using the ‘system()’ C library function
- call), it misbehaves badly.
-
- • In a questionable attempt at security, the SVR4.2 shell, when
- invoked without the ‘-p’ option, will alter its real and effective
- UID and GID if they are less than some magic threshold value,
- commonly 100. This can lead to unexpected results.
-
- • The SVR4.2 shell does not allow users to trap ‘SIGSEGV’, ‘SIGALRM’,
- or ‘SIGCHLD’.
-
- • The SVR4.2 shell does not allow the ‘IFS’, ‘MAILCHECK’, ‘PATH’,
- ‘PS1’, or ‘PS2’ variables to be unset.
-
- • The SVR4.2 shell treats ‘^’ as the undocumented equivalent of ‘|’.
-
- • Bash allows multiple option arguments when it is invoked (‘-x -v’);
- the SVR4.2 shell allows only one option argument (‘-xv’). In fact,
- some versions of the shell dump core if the second argument begins
- with a ‘-’.
-
- • The SVR4.2 shell exits a script if any builtin fails; Bash exits a
- script only if one of the POSIX special builtins fails, and only
- for certain failures, as enumerated in the POSIX standard.
-
- • If the ‘lastpipe’ option is enabled, and job control is not active,
- Bash runs the last element of a pipeline in the current shell
- execution environment.
-
-\1f
-File: bashref.info, Node: GNU Free Documentation License, Next: Indexes, Prev: Major Differences From The Bourne Shell, Up: Top
-
-Appendix C GNU Free Documentation License
-*****************************************
-
- Version 1.3, 3 November 2008
-
- Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
- <http://fsf.org/>
-
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- 0. PREAMBLE
-
- The purpose of this License is to make a manual, textbook, or other
- functional and useful document “free” in the sense of freedom: to
- assure everyone the effective freedom to copy and redistribute it,
- with or without modifying it, either commercially or
- noncommercially. Secondarily, this License preserves for the
- author and publisher a way to get credit for their work, while not
- being considered responsible for modifications made by others.
-
- This License is a kind of "copyleft", which means that derivative
- works of the document must themselves be free in the same sense.
- It complements the GNU General Public License, which is a copyleft
- license designed for free software.
-
- We have designed this License in order to use it for manuals for
- free software, because free software needs free documentation: a
- free program should come with manuals providing the same freedoms
- that the software does. But this License is not limited to
- software manuals; it can be used for any textual work, regardless
- of subject matter or whether it is published as a printed book. We
- recommend this License principally for works whose purpose is
- instruction or reference.
-
- 1. APPLICABILITY AND DEFINITIONS
-
- This License applies to any manual or other work, in any medium,
- that contains a notice placed by the copyright holder saying it can
- be distributed under the terms of this License. Such a notice
- grants a world-wide, royalty-free license, unlimited in duration,
- to use that work under the conditions stated herein. The
- "Document", below, refers to any such manual or work. Any member
- of the public is a licensee, and is addressed as "you". You accept
- the license if you copy, modify or distribute the work in a way
- requiring permission under copyright law.
-
- A "Modified Version" of the Document means any work containing the
- Document or a portion of it, either copied verbatim, or with
- modifications and/or translated into another language.
-
- A "Secondary Section" is a named appendix or a front-matter section
- of the Document that deals exclusively with the relationship of the
- publishers or authors of the Document to the Document's overall
- subject (or to related matters) and contains nothing that could
- fall directly within that overall subject. (Thus, if the Document
- is in part a textbook of mathematics, a Secondary Section may not
- explain any mathematics.) The relationship could be a matter of
- historical connection with the subject or with related matters, or
- of legal, commercial, philosophical, ethical or political position
- regarding them.
-
- The "Invariant Sections" are certain Secondary Sections whose
- titles are designated, as being those of Invariant Sections, in the
- notice that says that the Document is released under this License.
- If a section does not fit the above definition of Secondary then it
- is not allowed to be designated as Invariant. The Document may
- contain zero Invariant Sections. If the Document does not identify
- any Invariant Sections then there are none.
-
- The "Cover Texts" are certain short passages of text that are
- listed, as Front-Cover Texts or Back-Cover Texts, in the notice
- that says that the Document is released under this License. A
- Front-Cover Text may be at most 5 words, and a Back-Cover Text may
- be at most 25 words.
-
- A "Transparent" copy of the Document means a machine-readable copy,
- represented in a format whose specification is available to the
- general public, that is suitable for revising the document
- straightforwardly with generic text editors or (for images composed
- of pixels) generic paint programs or (for drawings) some widely
- available drawing editor, and that is suitable for input to text
- formatters or for automatic translation to a variety of formats
- suitable for input to text formatters. A copy made in an otherwise
- Transparent file format whose markup, or absence of markup, has
- been arranged to thwart or discourage subsequent modification by
- readers is not Transparent. An image format is not Transparent if
- used for any substantial amount of text. A copy that is not
- "Transparent" is called "Opaque".
-
- Examples of suitable formats for Transparent copies include plain
- ASCII without markup, Texinfo input format, LaTeX input format,
- SGML or XML using a publicly available DTD, and standard-conforming
- simple HTML, PostScript or PDF designed for human modification.
- Examples of transparent image formats include PNG, XCF and JPG.
- Opaque formats include proprietary formats that can be read and
- edited only by proprietary word processors, SGML or XML for which
- the DTD and/or processing tools are not generally available, and
- the machine-generated HTML, PostScript or PDF produced by some word
- processors for output purposes only.
-
- The "Title Page" means, for a printed book, the title page itself,
- plus such following pages as are needed to hold, legibly, the
- material this License requires to appear in the title page. For
- works in formats which do not have any title page as such, "Title
- Page" means the text near the most prominent appearance of the
- work's title, preceding the beginning of the body of the text.
-
- The "publisher" means any person or entity that distributes copies
- of the Document to the public.
-
- A section "Entitled XYZ" means a named subunit of the Document
- whose title either is precisely XYZ or contains XYZ in parentheses
- following text that translates XYZ in another language. (Here XYZ
- stands for a specific section name mentioned below, such as
- "Acknowledgements", "Dedications", "Endorsements", or "History".)
- To "Preserve the Title" of such a section when you modify the
- Document means that it remains a section "Entitled XYZ" according
- to this definition.
-
- The Document may include Warranty Disclaimers next to the notice
- which states that this License applies to the Document. These
- Warranty Disclaimers are considered to be included by reference in
- this License, but only as regards disclaiming warranties: any other
- implication that these Warranty Disclaimers may have is void and
- has no effect on the meaning of this License.
-
- 2. VERBATIM COPYING
-
- You may copy and distribute the Document in any medium, either
- commercially or noncommercially, provided that this License, the
- copyright notices, and the license notice saying this License
- applies to the Document are reproduced in all copies, and that you
- add no other conditions whatsoever to those of this License. You
- may not use technical measures to obstruct or control the reading
- or further copying of the copies you make or distribute. However,
- you may accept compensation in exchange for copies. If you
- distribute a large enough number of copies you must also follow the
- conditions in section 3.
-
- You may also lend copies, under the same conditions stated above,
- and you may publicly display copies.
-
- 3. COPYING IN QUANTITY
-
- If you publish printed copies (or copies in media that commonly
- have printed covers) of the Document, numbering more than 100, and
- the Document's license notice requires Cover Texts, you must
- enclose the copies in covers that carry, clearly and legibly, all
- these Cover Texts: Front-Cover Texts on the front cover, and
- Back-Cover Texts on the back cover. Both covers must also clearly
- and legibly identify you as the publisher of these copies. The
- front cover must present the full title with all words of the title
- equally prominent and visible. You may add other material on the
- covers in addition. Copying with changes limited to the covers, as
- long as they preserve the title of the Document and satisfy these
- conditions, can be treated as verbatim copying in other respects.
-
- If the required texts for either cover are too voluminous to fit
- legibly, you should put the first ones listed (as many as fit
- reasonably) on the actual cover, and continue the rest onto
- adjacent pages.
-
- If you publish or distribute Opaque copies of the Document
- numbering more than 100, you must either include a machine-readable
- Transparent copy along with each Opaque copy, or state in or with
- each Opaque copy a computer-network location from which the general
- network-using public has access to download using public-standard
- network protocols a complete Transparent copy of the Document, free
- of added material. If you use the latter option, you must take
- reasonably prudent steps, when you begin distribution of Opaque
- copies in quantity, to ensure that this Transparent copy will
- remain thus accessible at the stated location until at least one
- year after the last time you distribute an Opaque copy (directly or
- through your agents or retailers) of that edition to the public.
-
- It is requested, but not required, that you contact the authors of
- the Document well before redistributing any large number of copies,
- to give them a chance to provide you with an updated version of the
- Document.
-
- 4. MODIFICATIONS
-
- You may copy and distribute a Modified Version of the Document
- under the conditions of sections 2 and 3 above, provided that you
- release the Modified Version under precisely this License, with the
- Modified Version filling the role of the Document, thus licensing
- distribution and modification of the Modified Version to whoever
- possesses a copy of it. In addition, you must do these things in
- the Modified Version:
-
- A. Use in the Title Page (and on the covers, if any) a title
- distinct from that of the Document, and from those of previous
- versions (which should, if there were any, be listed in the
- History section of the Document). You may use the same title
- as a previous version if the original publisher of that
- version gives permission.
-
- B. List on the Title Page, as authors, one or more persons or
- entities responsible for authorship of the modifications in
- the Modified Version, together with at least five of the
- principal authors of the Document (all of its principal
- authors, if it has fewer than five), unless they release you
- from this requirement.
-
- C. State on the Title page the name of the publisher of the
- Modified Version, as the publisher.
-
- D. Preserve all the copyright notices of the Document.
-
- E. Add an appropriate copyright notice for your modifications
- adjacent to the other copyright notices.
-
- F. Include, immediately after the copyright notices, a license
- notice giving the public permission to use the Modified
- Version under the terms of this License, in the form shown in
- the Addendum below.
-
- G. Preserve in that license notice the full lists of Invariant
- Sections and required Cover Texts given in the Document's
- license notice.
-
- H. Include an unaltered copy of this License.
-
- I. Preserve the section Entitled "History", Preserve its Title,
- and add to it an item stating at least the title, year, new
- authors, and publisher of the Modified Version as given on the
- Title Page. If there is no section Entitled "History" in the
- Document, create one stating the title, year, authors, and
- publisher of the Document as given on its Title Page, then add
- an item describing the Modified Version as stated in the
- previous sentence.
-
- J. Preserve the network location, if any, given in the Document
- for public access to a Transparent copy of the Document, and
- likewise the network locations given in the Document for
- previous versions it was based on. These may be placed in the
- "History" section. You may omit a network location for a work
- that was published at least four years before the Document
- itself, or if the original publisher of the version it refers
- to gives permission.
-
- K. For any section Entitled "Acknowledgements" or "Dedications",
- Preserve the Title of the section, and preserve in the section
- all the substance and tone of each of the contributor
- acknowledgements and/or dedications given therein.
-
- L. Preserve all the Invariant Sections of the Document, unaltered
- in their text and in their titles. Section numbers or the
- equivalent are not considered part of the section titles.
-
- M. Delete any section Entitled "Endorsements". Such a section
- may not be included in the Modified Version.
-
- N. Do not retitle any existing section to be Entitled
- "Endorsements" or to conflict in title with any Invariant
- Section.
-
- O. Preserve any Warranty Disclaimers.
-
- If the Modified Version includes new front-matter sections or
- appendices that qualify as Secondary Sections and contain no
- material copied from the Document, you may at your option designate
- some or all of these sections as invariant. To do this, add their
- titles to the list of Invariant Sections in the Modified Version's
- license notice. These titles must be distinct from any other
- section titles.
-
- You may add a section Entitled "Endorsements", provided it contains
- nothing but endorsements of your Modified Version by various
- parties--for example, statements of peer review or that the text
- has been approved by an organization as the authoritative
- definition of a standard.
-
- You may add a passage of up to five words as a Front-Cover Text,
- and a passage of up to 25 words as a Back-Cover Text, to the end of
- the list of Cover Texts in the Modified Version. Only one passage
- of Front-Cover Text and one of Back-Cover Text may be added by (or
- through arrangements made by) any one entity. If the Document
- already includes a cover text for the same cover, previously added
- by you or by arrangement made by the same entity you are acting on
- behalf of, you may not add another; but you may replace the old
- one, on explicit permission from the previous publisher that added
- the old one.
-
- The author(s) and publisher(s) of the Document do not by this
- License give permission to use their names for publicity for or to
- assert or imply endorsement of any Modified Version.
-
- 5. COMBINING DOCUMENTS
-
- You may combine the Document with other documents released under
- this License, under the terms defined in section 4 above for
- modified versions, provided that you include in the combination all
- of the Invariant Sections of all of the original documents,
- unmodified, and list them all as Invariant Sections of your
- combined work in its license notice, and that you preserve all
- their Warranty Disclaimers.
-
- The combined work need only contain one copy of this License, and
- multiple identical Invariant Sections may be replaced with a single
- copy. If there are multiple Invariant Sections with the same name
- but different contents, make the title of each such section unique
- by adding at the end of it, in parentheses, the name of the
- original author or publisher of that section if known, or else a
- unique number. Make the same adjustment to the section titles in
- the list of Invariant Sections in the license notice of the
- combined work.
-
- In the combination, you must combine any sections Entitled
- "History" in the various original documents, forming one section
- Entitled "History"; likewise combine any sections Entitled
- "Acknowledgements", and any sections Entitled "Dedications". You
- must delete all sections Entitled "Endorsements."
-
- 6. COLLECTIONS OF DOCUMENTS
-
- You may make a collection consisting of the Document and other
- documents released under this License, and replace the individual
- copies of this License in the various documents with a single copy
- that is included in the collection, provided that you follow the
- rules of this License for verbatim copying of each of the documents
- in all other respects.
-
- You may extract a single document from such a collection, and
- distribute it individually under this License, provided you insert
- a copy of this License into the extracted document, and follow this
- License in all other respects regarding verbatim copying of that
- document.
-
- 7. AGGREGATION WITH INDEPENDENT WORKS
-
- A compilation of the Document or its derivatives with other
- separate and independent documents or works, in or on a volume of a
- storage or distribution medium, is called an "aggregate" if the
- copyright resulting from the compilation is not used to limit the
- legal rights of the compilation's users beyond what the individual
- works permit. When the Document is included in an aggregate, this
- License does not apply to the other works in the aggregate which
- are not themselves derivative works of the Document.
-
- If the Cover Text requirement of section 3 is applicable to these
- copies of the Document, then if the Document is less than one half
- of the entire aggregate, the Document's Cover Texts may be placed
- on covers that bracket the Document within the aggregate, or the
- electronic equivalent of covers if the Document is in electronic
- form. Otherwise they must appear on printed covers that bracket
- the whole aggregate.
-
- 8. TRANSLATION
-
- Translation is considered a kind of modification, so you may
- distribute translations of the Document under the terms of section
- 4. Replacing Invariant Sections with translations requires special
- permission from their copyright holders, but you may include
- translations of some or all Invariant Sections in addition to the
- original versions of these Invariant Sections. You may include a
- translation of this License, and all the license notices in the
- Document, and any Warranty Disclaimers, provided that you also
- include the original English version of this License and the
- original versions of those notices and disclaimers. In case of a
- disagreement between the translation and the original version of
- this License or a notice or disclaimer, the original version will
- prevail.
-
- If a section in the Document is Entitled "Acknowledgements",
- "Dedications", or "History", the requirement (section 4) to
- Preserve its Title (section 1) will typically require changing the
- actual title.
-
- 9. TERMINATION
-
- You may not copy, modify, sublicense, or distribute the Document
- except as expressly provided under this License. Any attempt
- otherwise to copy, modify, sublicense, or distribute it is void,
- and will automatically terminate your rights under this License.
-
- However, if you cease all violation of this License, then your
- license from a particular copyright holder is reinstated (a)
- provisionally, unless and until the copyright holder explicitly and
- finally terminates your license, and (b) permanently, if the
- copyright holder fails to notify you of the violation by some
- reasonable means prior to 60 days after the cessation.
-
- Moreover, your license from a particular copyright holder is
- reinstated permanently if the copyright holder notifies you of the
- violation by some reasonable means, this is the first time you have
- received notice of violation of this License (for any work) from
- that copyright holder, and you cure the violation prior to 30 days
- after your receipt of the notice.
-
- Termination of your rights under this section does not terminate
- the licenses of parties who have received copies or rights from you
- under this License. If your rights have been terminated and not
- permanently reinstated, receipt of a copy of some or all of the
- same material does not give you any rights to use it.
-
- 10. FUTURE REVISIONS OF THIS LICENSE
-
- The Free Software Foundation may publish new, revised versions of
- the GNU Free Documentation License from time to time. Such new
- versions will be similar in spirit to the present version, but may
- differ in detail to address new problems or concerns. See
- <http://www.gnu.org/copyleft/>.
-
- Each version of the License is given a distinguishing version
- number. If the Document specifies that a particular numbered
- version of this License "or any later version" applies to it, you
- have the option of following the terms and conditions either of
- that specified version or of any later version that has been
- published (not as a draft) by the Free Software Foundation. If the
- Document does not specify a version number of this License, you may
- choose any version ever published (not as a draft) by the Free
- Software Foundation. If the Document specifies that a proxy can
- decide which future versions of this License can be used, that
- proxy's public statement of acceptance of a version permanently
- authorizes you to choose that version for the Document.
-
- 11. RELICENSING
-
- "Massive Multiauthor Collaboration Site" (or "MMC Site") means any
- World Wide Web server that publishes copyrightable works and also
- provides prominent facilities for anybody to edit those works. A
- public wiki that anybody can edit is an example of such a server.
- A "Massive Multiauthor Collaboration" (or "MMC") contained in the
- site means any set of copyrightable works thus published on the MMC
- site.
-
- "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
- license published by Creative Commons Corporation, a not-for-profit
- corporation with a principal place of business in San Francisco,
- California, as well as future copyleft versions of that license
- published by that same organization.
-
- "Incorporate" means to publish or republish a Document, in whole or
- in part, as part of another Document.
-
- An MMC is "eligible for relicensing" if it is licensed under this
- License, and if all works that were first published under this
- License somewhere other than this MMC, and subsequently
- incorporated in whole or in part into the MMC, (1) had no cover
- texts or invariant sections, and (2) were thus incorporated prior
- to November 1, 2008.
-
- The operator of an MMC Site may republish an MMC contained in the
- site under CC-BY-SA on the same site at any time before August 1,
- 2009, provided the MMC is eligible for relicensing.
-
-ADDENDUM: How to use this License for your documents
-====================================================
-
-To use this License in a document you have written, include a copy of
-the License in the document and put the following copyright and license
-notices just after the title page:
-
- Copyright (C) YEAR YOUR NAME.
- Permission is granted to copy, distribute and/or modify this document
- under the terms of the GNU Free Documentation License, Version 1.3
- or any later version published by the Free Software Foundation;
- with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
- Texts. A copy of the license is included in the section entitled ``GNU
- Free Documentation License''.
-
- If you have Invariant Sections, Front-Cover Texts and Back-Cover
-Texts, replace the "with...Texts." line with this:
-
- with the Invariant Sections being LIST THEIR TITLES, with
- the Front-Cover Texts being LIST, and with the Back-Cover Texts
- being LIST.
-
- If you have Invariant Sections without Cover Texts, or some other
-combination of the three, merge those two alternatives to suit the
-situation.
-
- If your document contains nontrivial examples of program code, we
-recommend releasing these examples in parallel under your choice of free
-software license, such as the GNU General Public License, to permit
-their use in free software.
-
-\1f
-File: bashref.info, Node: Indexes, Prev: GNU Free Documentation License, Up: Top
-
-Appendix D Indexes
-******************
-
-* Menu:
-
-* Builtin Index:: Index of Bash builtin commands.
-* Reserved Word Index:: Index of Bash reserved words.
-* Variable Index:: Quick reference helps you find the
- variable you want.
-* Function Index:: Index of bindable Readline functions.
-* Concept Index:: General index for concepts described in
- this manual.
-
-\1f
-File: bashref.info, Node: Builtin Index, Next: Reserved Word Index, Up: Indexes
-
-D.1 Index of Shell Builtin Commands
-===================================
-
-\0\b[index\0\b]
-* Menu:
-
-* :: Bourne Shell Builtins.
- (line 11)
-* .: Bourne Shell Builtins.
- (line 17)
-* [: Bourne Shell Builtins.
- (line 340)
-* alias: Bash Builtins. (line 11)
-* bg: Job Control Builtins.
- (line 7)
-* bind: Bash Builtins. (line 24)
-* break: Bourne Shell Builtins.
- (line 47)
-* builtin: Bash Builtins. (line 133)
-* caller: Bash Builtins. (line 142)
-* cd: Bourne Shell Builtins.
- (line 55)
-* command: Bash Builtins. (line 159)
-* compgen: Programmable Completion Builtins.
- (line 12)
-* complete: Programmable Completion Builtins.
- (line 37)
-* compopt: Programmable Completion Builtins.
- (line 258)
-* continue: Bourne Shell Builtins.
- (line 107)
-* declare: Bash Builtins. (line 179)
-* dirs: Directory Stack Builtins.
- (line 7)
-* disown: Job Control Builtins.
- (line 120)
-* echo: Bash Builtins. (line 284)
-* enable: Bash Builtins. (line 337)
-* eval: Bourne Shell Builtins.
- (line 116)
-* exec: Bourne Shell Builtins.
- (line 124)
-* exit: Bourne Shell Builtins.
- (line 146)
-* export: Bourne Shell Builtins.
- (line 153)
-* false: Bourne Shell Builtins.
- (line 176)
-* fc: Bash History Builtins.
- (line 10)
-* fg: Job Control Builtins.
- (line 17)
-* getopts: Bourne Shell Builtins.
- (line 181)
-* hash: Bourne Shell Builtins.
- (line 233)
-* help: Bash Builtins. (line 375)
-* history: Bash History Builtins.
- (line 59)
-* jobs: Job Control Builtins.
- (line 28)
-* kill: Job Control Builtins.
- (line 61)
-* let: Bash Builtins. (line 404)
-* local: Bash Builtins. (line 413)
-* logout: Bash Builtins. (line 438)
-* mapfile: Bash Builtins. (line 443)
-* popd: Directory Stack Builtins.
- (line 37)
-* printf: Bash Builtins. (line 488)
-* pushd: Directory Stack Builtins.
- (line 71)
-* pwd: Bourne Shell Builtins.
- (line 265)
-* read: Bash Builtins. (line 558)
-* readarray: Bash Builtins. (line 669)
-* readonly: Bourne Shell Builtins.
- (line 277)
-* return: Bourne Shell Builtins.
- (line 302)
-* set: The Set Builtin. (line 11)
-* shift: Bourne Shell Builtins.
- (line 327)
-* shopt: The Shopt Builtin. (line 9)
-* source: Bash Builtins. (line 678)
-* suspend: Job Control Builtins.
- (line 139)
-* test: Bourne Shell Builtins.
- (line 340)
-* times: Bourne Shell Builtins.
- (line 440)
-* trap: Bourne Shell Builtins.
- (line 446)
-* true: Bourne Shell Builtins.
- (line 512)
-* type: Bash Builtins. (line 683)
-* typeset: Bash Builtins. (line 720)
-* ulimit: Bash Builtins. (line 726)
-* umask: Bourne Shell Builtins.
- (line 517)
-* unalias: Bash Builtins. (line 834)
-* unset: Bourne Shell Builtins.
- (line 535)
-* wait: Job Control Builtins.
- (line 86)
-
-\1f
-File: bashref.info, Node: Reserved Word Index, Next: Variable Index, Prev: Builtin Index, Up: Indexes
-
-D.2 Index of Shell Reserved Words
-=================================
-
-\0\b[index\0\b]
-* Menu:
-
-* !: Pipelines. (line 9)
-* [[: Conditional Constructs.
- (line 128)
-* ]]: Conditional Constructs.
- (line 128)
-* {: Command Grouping. (line 21)
-* }: Command Grouping. (line 21)
-* case: Conditional Constructs.
- (line 28)
-* do: Looping Constructs. (line 12)
-* done: Looping Constructs. (line 12)
-* elif: Conditional Constructs.
- (line 7)
-* else: Conditional Constructs.
- (line 7)
-* esac: Conditional Constructs.
- (line 28)
-* fi: Conditional Constructs.
- (line 7)
-* for: Looping Constructs. (line 32)
-* function: Shell Functions. (line 13)
-* if: Conditional Constructs.
- (line 7)
-* in: Conditional Constructs.
- (line 28)
-* select: Conditional Constructs.
- (line 84)
-* then: Conditional Constructs.
- (line 7)
-* time: Pipelines. (line 9)
-* until: Looping Constructs. (line 12)
-* while: Looping Constructs. (line 22)
-
-\1f
-File: bashref.info, Node: Variable Index, Next: Function Index, Prev: Reserved Word Index, Up: Indexes
-
-D.3 Parameter and Variable Index
-================================
-
-\0\b[index\0\b]
-* Menu:
-
-* _: Bash Variables. (line 13)
-* -: Special Parameters. (line 48)
-* !: Special Parameters. (line 57)
-* ?: Special Parameters. (line 44)
-* @: Special Parameters. (line 23)
-* *: Special Parameters. (line 10)
-* #: Special Parameters. (line 41)
-* $: Special Parameters. (line 53)
-* $_: Bash Variables. (line 14)
-* $-: Special Parameters. (line 49)
-* $!: Special Parameters. (line 58)
-* $?: Special Parameters. (line 45)
-* $@: Special Parameters. (line 24)
-* $*: Special Parameters. (line 11)
-* $#: Special Parameters. (line 42)
-* $$: Special Parameters. (line 54)
-* $0: Special Parameters. (line 63)
-* 0: Special Parameters. (line 62)
-* active-region-end-color: Readline Init File Syntax.
- (line 51)
-* active-region-start-color: Readline Init File Syntax.
- (line 38)
-* auto_resume: Job Control Variables.
- (line 6)
-* BASH: Bash Variables. (line 24)
-* 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 37)
-* bell-style: Readline Init File Syntax.
- (line 64)
-* bind-tty-special-chars: Readline Init File Syntax.
- (line 71)
-* blink-matching-paren: Readline Init File Syntax.
- (line 81)
-* CDPATH: Bourne Shell Variables.
- (line 9)
-* CHILD_MAX: Bash Variables. (line 217)
-* colored-completion-prefix: Readline Init File Syntax.
- (line 86)
-* colored-stats: Readline Init File Syntax.
- (line 96)
-* COLUMNS: Bash Variables. (line 224)
-* comment-begin: Readline Init File Syntax.
- (line 102)
-* 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 106)
-* completion-ignore-case: Readline Init File Syntax.
- (line 113)
-* completion-map-case: Readline Init File Syntax.
- (line 118)
-* completion-prefix-display-length: Readline Init File Syntax.
- (line 124)
-* completion-query-items: Readline Init File Syntax.
- (line 133)
-* COMPREPLY: Bash Variables. (line 278)
-* convert-meta: Readline Init File Syntax.
- (line 144)
-* COPROC: Bash Variables. (line 284)
-* DIRSTACK: Bash Variables. (line 288)
-* disable-completion: Readline Init File Syntax.
- (line 156)
-* echo-control-characters: Readline Init File Syntax.
- (line 161)
-* editing-mode: Readline Init File Syntax.
- (line 166)
-* EMACS: Bash Variables. (line 298)
-* emacs-mode-string: Readline Init File Syntax.
- (line 172)
-* enable-active-region The: Readline Init File Syntax.
- (line 182)
-* enable-bracketed-paste: Readline Init File Syntax.
- (line 195)
-* enable-keypad: Readline Init File Syntax.
- (line 204)
-* enable-meta-key: Readline Init File Syntax.
- (line 209)
-* 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 219)
-* FCEDIT: Bash Variables. (line 339)
-* FIGNORE: Bash Variables. (line 342)
-* force-meta-prefix: Readline Init File Syntax.
- (line 223)
-* 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 481)
-* history-preserve-point: Readline Init File Syntax.
- (line 236)
-* history-size: Readline Init File Syntax.
- (line 242)
-* HISTSIZE: Bash Variables. (line 505)
-* HISTTIMEFORMAT: Bash Variables. (line 512)
-* HOME: Bourne Shell Variables.
- (line 13)
-* horizontal-scroll-mode: Readline Init File Syntax.
- (line 252)
-* HOSTFILE: Bash Variables. (line 521)
-* HOSTNAME: Bash Variables. (line 532)
-* HOSTTYPE: Bash Variables. (line 535)
-* IFS: Bourne Shell Variables.
- (line 18)
-* IGNOREEOF: Bash Variables. (line 538)
-* input-meta: Readline Init File Syntax.
- (line 260)
-* INPUTRC: Bash Variables. (line 547)
-* INSIDE_EMACS: Bash Variables. (line 551)
-* isearch-terminators: Readline Init File Syntax.
- (line 271)
-* keymap: Readline Init File Syntax.
- (line 278)
-* LANG: Creating Internationalized Scripts.
- (line 51)
-* LANG <1>: Bash Variables. (line 557)
-* LC_ALL: Bash Variables. (line 561)
-* LC_COLLATE: Bash Variables. (line 565)
-* LC_CTYPE: Bash Variables. (line 572)
-* LC_MESSAGES: Creating Internationalized Scripts.
- (line 51)
-* LC_MESSAGES <1>: Bash Variables. (line 577)
-* LC_NUMERIC: Bash Variables. (line 581)
-* LC_TIME: Bash Variables. (line 585)
-* LINENO: Bash Variables. (line 589)
-* LINES: Bash Variables. (line 596)
-* MACHTYPE: Bash Variables. (line 602)
-* MAIL: Bourne Shell Variables.
- (line 24)
-* MAILCHECK: Bash Variables. (line 606)
-* MAILPATH: Bourne Shell Variables.
- (line 29)
-* MAPFILE: Bash Variables. (line 614)
-* mark-modified-lines: Readline Init File Syntax.
- (line 308)
-* mark-symlinked-directories: Readline Init File Syntax.
- (line 313)
-* match-hidden-files: Readline Init File Syntax.
- (line 318)
-* menu-complete-display-prefix: Readline Init File Syntax.
- (line 325)
-* meta-flag: Readline Init File Syntax.
- (line 260)
-* OLDPWD: Bash Variables. (line 618)
-* OPTARG: Bourne Shell Variables.
- (line 36)
-* OPTERR: Bash Variables. (line 621)
-* OPTIND: Bourne Shell Variables.
- (line 40)
-* OSTYPE: Bash Variables. (line 626)
-* output-meta: Readline Init File Syntax.
- (line 330)
-* page-completions: Readline Init File Syntax.
- (line 339)
-* PATH: Bourne Shell Variables.
- (line 44)
-* PIPESTATUS: Bash Variables. (line 629)
-* POSIXLY_CORRECT: Bash Variables. (line 639)
-* PPID: Bash Variables. (line 649)
-* PROMPT_COMMAND: Bash Variables. (line 653)
-* PROMPT_DIRTRIM: Bash Variables. (line 659)
-* PS0: Bash Variables. (line 665)
-* PS1: Bourne Shell Variables.
- (line 53)
-* PS2: Bourne Shell Variables.
- (line 58)
-* PS3: Bash Variables. (line 670)
-* PS4: Bash Variables. (line 675)
-* PWD: Bash Variables. (line 683)
-* RANDOM: Bash Variables. (line 686)
-* READLINE_ARGUMENT: Bash Variables. (line 694)
-* READLINE_LINE: Bash Variables. (line 698)
-* READLINE_MARK: Bash Variables. (line 702)
-* READLINE_POINT: Bash Variables. (line 708)
-* REPLY: Bash Variables. (line 712)
-* revert-all-at-newline: Readline Init File Syntax.
- (line 352)
-* search-ignore-case: Readline Init File Syntax.
- (line 359)
-* SECONDS: Bash Variables. (line 716)
-* SHELL: Bash Variables. (line 726)
-* SHELLOPTS: Bash Variables. (line 731)
-* SHLVL: Bash Variables. (line 741)
-* show-all-if-ambiguous: Readline Init File Syntax.
- (line 364)
-* show-all-if-unmodified: Readline Init File Syntax.
- (line 370)
-* show-mode-in-prompt: Readline Init File Syntax.
- (line 379)
-* skip-completed-text: Readline Init File Syntax.
- (line 385)
-* SRANDOM: Bash Variables. (line 746)
-* TEXTDOMAIN: Creating Internationalized Scripts.
- (line 51)
-* TEXTDOMAINDIR: Creating Internationalized Scripts.
- (line 51)
-* TIMEFORMAT: Bash Variables. (line 755)
-* TMOUT: Bash Variables. (line 794)
-* TMPDIR: Bash Variables. (line 806)
-* UID: Bash Variables. (line 810)
-* vi-cmd-mode-string: Readline Init File Syntax.
- (line 398)
-* vi-ins-mode-string: Readline Init File Syntax.
- (line 409)
-* visible-stats: Readline Init File Syntax.
- (line 420)
-
-\1f
-File: bashref.info, Node: Function Index, Next: Concept Index, Prev: Variable Index, Up: Indexes
-
-D.4 Function Index
-==================
-
-\0\b[index\0\b]
-* Menu:
-
-* abort (C-g): Miscellaneous Commands.
- (line 10)
-* accept-line (Newline or Return): Commands For History.
- (line 6)
-* alias-expand-line (): Miscellaneous Commands.
- (line 134)
-* backward-char (C-b): Commands For Moving. (line 18)
-* backward-delete-char (Rubout): Commands For Text. (line 18)
-* backward-kill-line (C-x Rubout): Commands For Killing.
- (line 11)
-* backward-kill-word (M-<DEL>): Commands For Killing.
- (line 28)
-* backward-word (M-b): Commands For Moving. (line 26)
-* beginning-of-history (M-<): Commands For History.
- (line 22)
-* beginning-of-line (C-a): Commands For Moving. (line 6)
-* bracketed-paste-begin (): Commands For Text. (line 35)
-* call-last-kbd-macro (C-x e): Keyboard Macros. (line 13)
-* capitalize-word (M-c): Commands For Text. (line 73)
-* character-search (C-]): Miscellaneous Commands.
- (line 41)
-* character-search-backward (M-C-]): Miscellaneous Commands.
- (line 45)
-* clear-display (M-C-l): Commands For Moving. (line 52)
-* clear-screen (C-l): Commands For Moving. (line 57)
-* complete (<TAB>): Commands For Completion.
- (line 6)
-* complete-command (M-!): Commands For Completion.
- (line 105)
-* complete-filename (M-/): Commands For Completion.
- (line 74)
-* complete-hostname (M-@): Commands For Completion.
- (line 97)
-* complete-into-braces (M-{): Commands For Completion.
- (line 124)
-* complete-username (M-~): Commands For Completion.
- (line 81)
-* complete-variable (M-$): Commands For Completion.
- (line 89)
-* copy-backward-word (): Commands For Killing.
- (line 62)
-* copy-forward-word (): Commands For Killing.
- (line 67)
-* copy-region-as-kill (): Commands For Killing.
- (line 58)
-* dabbrev-expand (): Commands For Completion.
- (line 119)
-* delete-char (C-d): Commands For Text. (line 12)
-* delete-char-or-list (): Commands For Completion.
- (line 68)
-* delete-horizontal-space (): Commands For Killing.
- (line 50)
-* digit-argument (M-0, M-1, ... M--): Numeric Arguments. (line 6)
-* display-shell-version (C-x C-v): Miscellaneous Commands.
- (line 148)
-* do-lowercase-version (M-A, M-B, M-X, ...): Miscellaneous Commands.
- (line 14)
-* downcase-word (M-l): Commands For Text. (line 69)
-* dump-functions (): Miscellaneous Commands.
- (line 71)
-* dump-macros (): Miscellaneous Commands.
- (line 83)
-* dump-variables (): Miscellaneous Commands.
- (line 77)
-* dynamic-complete-history (M-<TAB>): Commands For Completion.
- (line 115)
-* edit-and-execute-command (C-x C-e): Miscellaneous Commands.
- (line 143)
-* end-kbd-macro (C-x )): Keyboard Macros. (line 9)
-* end-of-file (usually C-d): Commands For Text. (line 6)
-* end-of-history (M->): Commands For History.
- (line 25)
-* end-of-line (C-e): Commands For Moving. (line 10)
-* exchange-point-and-mark (C-x C-x): Miscellaneous Commands.
- (line 37)
-* execute-named-command (M-x): Miscellaneous Commands.
- (line 90)
-* export-completions (): Commands For Completion.
- (line 44)
-* fetch-history (): Commands For History.
- (line 109)
-* forward-backward-delete-char (): Commands For Text. (line 23)
-* forward-char (C-f): Commands For Moving. (line 14)
-* forward-search-history (C-s): Commands For History.
- (line 35)
-* forward-word (M-f): Commands For Moving. (line 22)
-* glob-complete-word (M-g): Miscellaneous Commands.
- (line 103)
-* glob-expand-word (C-x *): Miscellaneous Commands.
- (line 108)
-* glob-list-expansions (C-x g): Miscellaneous Commands.
- (line 114)
-* history-and-alias-expand-line (): Miscellaneous Commands.
- (line 137)
-* history-expand-line (M-^): Miscellaneous Commands.
- (line 127)
-* history-search-backward (): Commands For History.
- (line 54)
-* history-search-forward (): Commands For History.
- (line 61)
-* history-substring-search-backward (): Commands For History.
- (line 68)
-* history-substring-search-forward (): Commands For History.
- (line 74)
-* insert-comment (M-#): Miscellaneous Commands.
- (line 59)
-* insert-completions (M-*): Commands For Completion.
- (line 24)
-* insert-last-argument (M-. or M-_): Miscellaneous Commands.
- (line 140)
-* kill-line (C-k): Commands For Killing.
- (line 6)
-* kill-region (): Commands For Killing.
- (line 54)
-* kill-whole-line (): Commands For Killing.
- (line 19)
-* kill-word (M-d): Commands For Killing.
- (line 23)
-* magic-space (): Miscellaneous Commands.
- (line 130)
-* menu-complete (): Commands For Completion.
- (line 28)
-* menu-complete-backward (): Commands For Completion.
- (line 39)
-* next-history (C-n): Commands For History.
- (line 18)
-* next-screen-line (): Commands For Moving. (line 45)
-* non-incremental-forward-search-history (M-n): Commands For History.
- (line 48)
-* non-incremental-reverse-search-history (M-p): Commands For History.
- (line 41)
-* operate-and-get-next (C-o): Commands For History.
- (line 102)
-* overwrite-mode (): Commands For Text. (line 77)
-* possible-command-completions (C-x !): Commands For Completion.
- (line 111)
-* possible-completions (M-?): Commands For Completion.
- (line 17)
-* possible-filename-completions (C-x /): Commands For Completion.
- (line 77)
-* possible-hostname-completions (C-x @): Commands For Completion.
- (line 101)
-* possible-username-completions (C-x ~): Commands For Completion.
- (line 85)
-* possible-variable-completions (C-x $): Commands For Completion.
- (line 93)
-* prefix-meta (<ESC>): Miscellaneous Commands.
- (line 19)
-* previous-history (C-p): Commands For History.
- (line 13)
-* previous-screen-line (): Commands For Moving. (line 38)
-* print-last-kbd-macro (): Keyboard Macros. (line 17)
-* quoted-insert (C-q or C-v): Commands For Text. (line 28)
-* re-read-init-file (C-x C-r): Miscellaneous Commands.
- (line 6)
-* redraw-current-line (): Commands For Moving. (line 62)
-* reverse-search-history (C-r): Commands For History.
- (line 29)
-* revert-line (M-r): Miscellaneous Commands.
- (line 26)
-* self-insert (a, b, A, 1, !, ...): Commands For Text. (line 32)
-* set-mark (C-@): Miscellaneous Commands.
- (line 33)
-* shell-backward-kill-word (): Commands For Killing.
- (line 37)
-* shell-backward-word (M-C-b): Commands For Moving. (line 34)
-* shell-expand-line (M-C-e): Miscellaneous Commands.
- (line 119)
-* shell-forward-word (M-C-f): Commands For Moving. (line 30)
-* shell-kill-word (M-C-d): Commands For Killing.
- (line 32)
-* shell-transpose-words (M-C-t): Commands For Text. (line 58)
-* skip-csi-sequence (): Miscellaneous Commands.
- (line 50)
-* spell-correct-word (C-x s): Miscellaneous Commands.
- (line 97)
-* start-kbd-macro (C-x (): Keyboard Macros. (line 6)
-* tilde-expand (M-&): Miscellaneous Commands.
- (line 30)
-* transpose-chars (C-t): Commands For Text. (line 47)
-* transpose-words (M-t): Commands For Text. (line 53)
-* undo (C-_ or C-x C-u): Miscellaneous Commands.
- (line 23)
-* universal-argument (): Numeric Arguments. (line 10)
-* unix-filename-rubout (): Commands For Killing.
- (line 45)
-* unix-line-discard (C-u): Commands For Killing.
- (line 16)
-* unix-word-rubout (C-w): Commands For Killing.
- (line 41)
-* upcase-word (M-u): Commands For Text. (line 65)
-* yank (C-y): Commands For Killing.
- (line 72)
-* yank-last-arg (M-. or M-_): Commands For History.
- (line 90)
-* yank-nth-arg (M-C-y): Commands For History.
- (line 80)
-* yank-pop (M-y): Commands For Killing.
- (line 75)
-
-\1f
-File: bashref.info, Node: Concept Index, Prev: Function Index, Up: Indexes
-
-D.5 Concept Index
-=================
-
-\0\b[index\0\b]
-* Menu:
-
-* alias expansion: Aliases. (line 6)
-* arithmetic evaluation: Shell Arithmetic. (line 6)
-* arithmetic expansion: Arithmetic Expansion.
- (line 6)
-* arithmetic operators: Shell Arithmetic. (line 18)
-* arithmetic, shell: Shell Arithmetic. (line 6)
-* arrays: Arrays. (line 6)
-* background: Job Control Basics. (line 6)
-* Bash configuration: Basic Installation. (line 6)
-* Bash installation: Basic Installation. (line 6)
-* binary arithmetic operators: Shell Arithmetic. (line 18)
-* bitwise arithmetic operators: Shell Arithmetic. (line 18)
-* Bourne shell: Basic Shell Features.
- (line 6)
-* brace expansion: Brace Expansion. (line 6)
-* builtin: Definitions. (line 21)
-* command editing: Readline Bare Essentials.
- (line 6)
-* command execution: Command Search and Execution.
- (line 6)
-* command expansion: Simple Command Expansion.
- (line 6)
-* command history: Bash History Facilities.
- (line 6)
-* command search: Command Search and Execution.
- (line 6)
-* command substitution: Command Substitution.
- (line 6)
-* command timing: Pipelines. (line 9)
-* commands, compound: Compound Commands. (line 6)
-* commands, conditional: Conditional Constructs.
- (line 6)
-* commands, grouping: Command Grouping. (line 6)
-* commands, lists: Lists. (line 6)
-* commands, looping: Looping Constructs. (line 6)
-* commands, pipelines: Pipelines. (line 6)
-* commands, shell: Shell Commands. (line 6)
-* commands, simple: Simple Commands. (line 6)
-* comments, shell: Comments. (line 6)
-* Compatibility Level: Shell Compatibility Mode.
- (line 6)
-* Compatibility Mode: Shell Compatibility Mode.
- (line 6)
-* completion builtins: Programmable Completion Builtins.
- (line 6)
-* conditional arithmetic operator: Shell Arithmetic. (line 18)
-* configuration: Basic Installation. (line 6)
-* control operator: Definitions. (line 25)
-* coprocess: Coprocesses. (line 6)
-* directory stack: The Directory Stack. (line 6)
-* dollar-single quote quoting: ANSI-C Quoting. (line 6)
-* editing command lines: Readline Bare Essentials.
- (line 6)
-* environment: Environment. (line 6)
-* evaluation, arithmetic: Shell Arithmetic. (line 6)
-* event designators: Event Designators. (line 6)
-* execution environment: Command Execution Environment.
- (line 6)
-* exit status: Definitions. (line 30)
-* exit status <1>: Exit Status. (line 6)
-* expansion: Shell Expansions. (line 6)
-* expansion, arithmetic: Arithmetic Expansion.
- (line 6)
-* expansion, brace: Brace Expansion. (line 6)
-* expansion, filename: Filename Expansion. (line 9)
-* expansion, parameter: Shell Parameter Expansion.
- (line 6)
-* expansion, pathname: Filename Expansion. (line 9)
-* expansion, tilde: Tilde Expansion. (line 6)
-* expressions, arithmetic: Shell Arithmetic. (line 6)
-* expressions, conditional: Bash Conditional Expressions.
- (line 6)
-* field: Definitions. (line 34)
-* filename: Definitions. (line 39)
-* filename expansion: Filename Expansion. (line 9)
-* foreground: Job Control Basics. (line 6)
-* functions, shell: Shell Functions. (line 6)
-* history builtins: Bash History Builtins.
- (line 6)
-* history events: Event Designators. (line 10)
-* history expansion: History Interaction. (line 6)
-* history list: Bash History Facilities.
- (line 6)
-* History, how to use: A Programmable Completion Example.
- (line 113)
-* identifier: Definitions. (line 55)
-* initialization file, readline: Readline Init File. (line 6)
-* installation: Basic Installation. (line 6)
-* interaction, readline: Readline Interaction.
- (line 6)
-* interactive shell: Invoking Bash. (line 137)
-* interactive shell <1>: Interactive Shells. (line 6)
-* internationalization: Locale Translation. (line 6)
-* internationalized scripts: Creating Internationalized Scripts.
- (line 3)
-* job: Definitions. (line 42)
-* job control: Definitions. (line 46)
-* job control <1>: Job Control Basics. (line 6)
-* kill ring: Readline Killing Commands.
- (line 18)
-* killing text: Readline Killing Commands.
- (line 6)
-* localization: Locale Translation. (line 6)
-* login shell: Invoking Bash. (line 134)
-* matching, pattern: Pattern Matching. (line 6)
-* metacharacter: Definitions. (line 50)
-* name: Definitions. (line 55)
-* native languages: Locale Translation. (line 6)
-* notation, readline: Readline Bare Essentials.
- (line 6)
-* operator, shell: Definitions. (line 61)
-* parameter expansion: Shell Parameter Expansion.
- (line 6)
-* parameters: Shell Parameters. (line 6)
-* parameters, positional: Positional Parameters.
- (line 6)
-* parameters, special: Special Parameters. (line 6)
-* pathname expansion: Filename Expansion. (line 9)
-* pattern matching: Pattern Matching. (line 6)
-* pipeline: Pipelines. (line 6)
-* POSIX: Definitions. (line 9)
-* POSIX description: Bash POSIX Mode. (line 9)
-* POSIX Mode: Bash POSIX Mode. (line 48)
-* process group: Definitions. (line 66)
-* process group ID: Definitions. (line 70)
-* process substitution: Process Substitution.
- (line 6)
-* programmable completion: Programmable Completion.
- (line 6)
-* prompting: Controlling the Prompt.
- (line 6)
-* quoting: Quoting. (line 6)
-* quoting, ANSI: ANSI-C Quoting. (line 6)
-* Readline, how to use: Job Control Variables.
- (line 23)
-* redirection: Redirections. (line 6)
-* reserved word: Definitions. (line 74)
-* reserved words: Reserved Words. (line 6)
-* restricted shell: The Restricted Shell.
- (line 6)
-* return status: Definitions. (line 79)
-* shell arithmetic: Shell Arithmetic. (line 6)
-* shell function: Shell Functions. (line 6)
-* shell script: Shell Scripts. (line 6)
-* shell variable: Shell Parameters. (line 6)
-* shell, interactive: Interactive Shells. (line 6)
-* signal: Definitions. (line 82)
-* signal handling: Signals. (line 6)
-* special builtin: Definitions. (line 86)
-* special builtin <1>: Special Builtins. (line 6)
-* startup files: Bash Startup Files. (line 6)
-* string translations: Creating Internationalized Scripts.
- (line 3)
-* suspending jobs: Job Control Basics. (line 6)
-* tilde expansion: Tilde Expansion. (line 6)
-* token: Definitions. (line 90)
-* translation, native languages: Locale Translation. (line 6)
-* unary arithmetic operators: Shell Arithmetic. (line 18)
-* variable, shell: Shell Parameters. (line 6)
-* variables, readline: Readline Init File Syntax.
- (line 37)
-* word: Definitions. (line 94)
-* word splitting: Word Splitting. (line 6)
-* yanking text: Readline Killing Commands.
- (line 6)
-
-\1f
-Tag Table:
-Node: Top\7f898
-Node: Introduction\7f2836
-Node: What is Bash?\7f3052
-Node: What is a shell?\7f4188
-Node: Definitions\7f6801
-Node: Basic Shell Features\7f10131
-Node: Shell Syntax\7f11358
-Node: Shell Operation\7f12388
-Node: Quoting\7f13682
-Node: Escape Character\7f15023
-Node: Single Quotes\7f15561
-Node: Double Quotes\7f15913
-Node: ANSI-C Quoting\7f17261
-Node: Locale Translation\7f18658
-Node: Creating Internationalized Scripts\7f20064
-Node: Comments\7f24265
-Node: Shell Commands\7f25035
-Node: Reserved Words\7f25977
-Node: Simple Commands\7f26845
-Node: Pipelines\7f27510
-Node: Lists\7f30769
-Node: Compound Commands\7f32644
-Node: Looping Constructs\7f33656
-Node: Conditional Constructs\7f36208
-Node: Command Grouping\7f51281
-Node: Coprocesses\7f52776
-Node: GNU Parallel\7f55465
-Node: Shell Functions\7f56386
-Node: Shell Parameters\7f64837
-Node: Positional Parameters\7f69741
-Node: Special Parameters\7f70834
-Node: Shell Expansions\7f74298
-Node: Brace Expansion\7f76490
-Node: Tilde Expansion\7f79829
-Node: Shell Parameter Expansion\7f82787
-Node: Command Substitution\7f103433
-Node: Arithmetic Expansion\7f106965
-Node: Process Substitution\7f108144
-Node: Word Splitting\7f109255
-Node: Filename Expansion\7f111702
-Node: Pattern Matching\7f114929
-Node: Quote Removal\7f120655
-Node: Redirections\7f120962
-Node: Executing Commands\7f131221
-Node: Simple Command Expansion\7f131891
-Node: Command Search and Execution\7f134002
-Node: Command Execution Environment\7f136449
-Node: Environment\7f139900
-Node: Exit Status\7f141806
-Node: Signals\7f143868
-Node: Shell Scripts\7f148801
-Node: Shell Builtin Commands\7f152102
-Node: Bourne Shell Builtins\7f154216
-Node: Bash Builtins\7f180938
-Node: Modifying Shell Behavior\7f217865
-Node: The Set Builtin\7f218210
-Node: The Shopt Builtin\7f230207
-Node: Special Builtins\7f247263
-Node: Shell Variables\7f248255
-Node: Bourne Shell Variables\7f248692
-Node: Bash Variables\7f251203
-Node: Bash Features\7f290331
-Node: Invoking Bash\7f291348
-Node: Bash Startup Files\7f297935
-Node: Interactive Shells\7f303180
-Node: What is an Interactive Shell?\7f303591
-Node: Is this Shell Interactive?\7f304256
-Node: Interactive Shell Behavior\7f305083
-Node: Bash Conditional Expressions\7f308847
-Node: Shell Arithmetic\7f314267
-Node: Aliases\7f317597
-Node: Arrays\7f320734
-Node: The Directory Stack\7f328325
-Node: Directory Stack Builtins\7f329125
-Node: Controlling the Prompt\7f333573
-Node: The Restricted Shell\7f336461
-Node: Bash POSIX Mode\7f339346
-Node: Shell Compatibility Mode\7f358296
-Node: Job Control\7f367306
-Node: Job Control Basics\7f367766
-Node: Job Control Builtins\7f374137
-Node: Job Control Variables\7f380822
-Node: Command Line Editing\7f382056
-Node: Introduction and Notation\7f383762
-Node: Readline Interaction\7f386117
-Node: Readline Bare Essentials\7f387308
-Node: Readline Movement Commands\7f389119
-Node: Readline Killing Commands\7f390118
-Node: Readline Arguments\7f392144
-Node: Searching\7f393237
-Node: Readline Init File\7f395483
-Node: Readline Init File Syntax\7f396789
-Node: Conditional Init Constructs\7f423743
-Node: Sample Init File\7f428131
-Node: Bindable Readline Commands\7f431254
-Node: Commands For Moving\7f432795
-Node: Commands For History\7f435262
-Node: Commands For Text\7f440656
-Node: Commands For Killing\7f444784
-Node: Numeric Arguments\7f447575
-Node: Commands For Completion\7f448730
-Node: Keyboard Macros\7f454429
-Node: Miscellaneous Commands\7f455133
-Node: Readline vi Mode\7f461703
-Node: Programmable Completion\7f462683
-Node: Programmable Completion Builtins\7f472422
-Node: A Programmable Completion Example\7f484162
-Node: Using History Interactively\7f489510
-Node: Bash History Facilities\7f490194
-Node: Bash History Builtins\7f493932
-Node: History Interaction\7f500406
-Node: Event Designators\7f505359
-Node: Word Designators\7f506940
-Node: Modifiers\7f509335
-Node: Installing Bash\7f511275
-Node: Basic Installation\7f512394
-Node: Compilers and Options\7f516273
-Node: Compiling For Multiple Architectures\7f517026
-Node: Installation Names\7f518782
-Node: Specifying the System Type\7f521019
-Node: Sharing Defaults\7f521768
-Node: Operation Controls\7f522485
-Node: Optional Features\7f523507
-Node: Reporting Bugs\7f536233
-Node: Major Differences From The Bourne Shell\7f537593
-Node: GNU Free Documentation License\7f559023
-Node: Indexes\7f584203
-Node: Builtin Index\7f584657
-Node: Reserved Word Index\7f591758
-Node: Variable Index\7f594206
-Node: Function Index\7f611622
-Node: Concept Index\7f625620
-\1f
-End Tag Table
-
-\1f
-Local Variables:
-coding: utf-8
-End:
/* Try this to see what the rest of the shell can do with the information. */
sh_timer *read_timeout;
-static int reading, tty_modified;
+static int reading, tty_modified, vdisable = -10;
static struct ttsave termsave;
shtimer_set (read_timeout, tmsec, tmusec);
}
+ /* Initialize this once, as needed, it's not going to change. */
+ if (vdisable == -10 && input_is_tty && delim != '\n')
+ {
+#if defined (_POSIX_VDISABLE)
+ vdisable = _POSIX_VDISABLE;
+#elif defined (_PC_VDISABLE) && defined (HAVE_PATHCONF)
+ errno = 0;
+ vdisable = pathconf("/dev/tty", _PC_VDISABLE);
+ if (vdisable == -1 && errno != 0)
+ vdisable = 0; /* conservative assumption */
+#else
+ vdisable = 0;
+#endif
+ }
+
/* If we've been asked to read only NCHARS chars, or we're using some
character other than newline to terminate the line, do the right
thing to readline or the tty. */
ttset = ttattrs;
- if (nchars > 0)
+ if (nchars > 0 || delim == vdisable)
rc = silent ? ttfd_cbreak (fd, &ttset) : ttfd_onechar (fd, &ttset);
- else /* delim != '\n' */
+ else /* delim != '\n',_POSIX_VDISABLE */
{
rc = silent ? tt_setnoecho (&ttset) : 0;
if (rc >= 0)
else if ((nchars > 0 && input_is_tty) || input_is_pipe) /* read -n */
unbuffered_read = 1;
else if (delim != '\n' && input_is_tty) /* read -d */
- unbuffered_read = 3;
+ unbuffered_read = (delim != vdisable) ? 3 : 1;
if (prompt && edit == 0)
{
%!PS-Adobe-3.0
%%Creator: groff version 1.23.0
-%%CreationDate: Fri May 30 08:52:48 2025
+%%CreationDate: Mon Feb 2 15:27:19 2026
%%DocumentNeededResources: font Times-Italic
%%+ font Times-Roman
%%+ font Times-Bold
%%+ font Symbol
%%+ font Courier-Bold
%%DocumentSuppliedResources: procset grops 1.23 0
-%%Pages: 96
+%%Pages: 98
%%PageOrder: Ascend
%%DocumentMedia: Default 612 792 0 () ()
%%Orientation: Portrait
F1(bash \255 GNU Bourne-Ag)108 96 Q(ain SHell)-.05 E F2(SYNOPSIS)72
112.8 Q/F3 10/Times-Bold@0 SF(bash)108 124.8 Q F1
([options] [command_string | \214le])2.5 E F2(COPYRIGHT)72 141.6 Q F1
-(Bash is Cop)108 153.6 Q(yright \251 1989-2025 by the Free Softw)-.1 E
+(Bash is Cop)108 153.6 Q(yright \251 1989-2026 by the Free Softw)-.1 E
(are F)-.1 E(oundation, Inc.)-.15 E F2(DESCRIPTION)72 170.4 Q F3(Bash)
108 182.4 Q F1 1.529(is a command language interpreter that e)4.029 F
-.15(xe)-.15 G 1.528
F .474(xtended deb)-.15 F(ug-)-.2 E
(ging mode \(see the description of the)144 720 Q F3(extdeb)2.5 E(ug)-.2
E F1(option to the)2.5 E F3(shopt)2.5 E F1 -.2(bu)2.5 G(iltin belo).2 E
-(w\).)-.25 E(GNU Bash 5.3)72 768 Q(2025 April 7)149.285 E(1)203.445 E 0
+(w\).)-.25 E(GNU Bash 5.3)72 768 Q(2026 January 14)141.79 E(1)195.95 E 0
Cg EP
%%Page: 2 2
%%BeginPageSetup
E F0(\001/.pr)4.872 E(o\214le)-.45 E F1 3.206(,i)1.666 G 3.206(nt)-3.206
G .707(hat order)-3.206 F 3.207(,a)-.4 G .707(nd reads and e)-3.207 F
-.15(xe)-.15 G .707(cutes commands).15 F(GNU Bash 5.3)72 768 Q
-(2025 April 7)149.285 E(2)203.445 E 0 Cg EP
+(2026 January 14)141.79 E(2)195.95 E 0 Cg EP
%%Page: 3 3
%%BeginPageSetup
BP
E F2(identi\214er)2.5 E F1(.)A F2(metacharacter)108 676.8 Q F1 2.5(Ac)
144 688.8 S(haracter that, when unquoted, separates w)-2.5 E 2.5
(ords. One)-.1 F(of the follo)2.5 E(wing:)-.25 E F2 5(|&;\(\)<>s)144
-700.8 S 2.5(pace tab newline)-5 F F1(GNU Bash 5.3)72 768 Q(2025 April 7)
-149.285 E(3)203.445 E 0 Cg EP
+700.8 S 2.5(pace tab newline)-5 F F1(GNU Bash 5.3)72 768 Q
+(2026 January 14)141.79 E(3)195.95 E 0 Cg EP
%%Page: 4 4
%%BeginPageSetup
BP
(ORDS)-.11 E F0 .306(Reserved wor)108 136.8 R(ds)-.37 E F1 .306(are w)
2.806 F .306(ords that ha)-.1 F .606 -.15(ve a s)-.2 H .306
(pecial meaning to the shell.).15 F .307(The follo)5.307 F .307(wing w)
--.25 F .307(ords are recognized as)-.1 F(reserv)108 148.8 Q .314
-(ed when unquoted and either the \214rst w)-.15 F .314
-(ord of a command \(see)-.1 F/F4 9/Times-Bold@0 SF .313(SHELL GRAMMAR)
-2.813 F F1(belo)2.563 E .313(w\), the third)-.25 F -.1(wo)108 160.8 S
-.643(rd of a).1 F F2(case)3.143 E F1(or)3.143 E F2(select)3.143 E F1
-.643(command \(only)3.143 F F2(in)3.143 E F1 .643(is v)3.143 F .643
-(alid\), or the third w)-.25 F .643(ord of a)-.1 F F2 -.25(fo)3.143 G(r)
-.25 E F1 .644(command \(only)3.143 F F2(in)3.144 E F1(and)3.144 E F2(do)
-3.144 E F1(are v)108 172.8 Q(alid\):)-.25 E F2 11.295(!c)144 189.6 S
-8.795(ase copr)-11.295 F 8.795(oc do done elif else esac \214 f)-.18 F
-8.795(or function if in select then)-.25 F 7.5
-(until while { } time [[ ]])144 201.6 R F3(SHELL GRAMMAR)72 218.4 Q F1
-(This section describes the syntax of the v)108 230.4 Q
-(arious forms of shell commands.)-.25 E F2(Simple Commands)87 247.2 Q F1
-(A)108 259.2 Q F0 .388(simple command)2.888 F F1 .388
-(is a sequence of optional v)2.888 F .389(ariable assignments follo)-.25
-F .389(wed by)-.25 F F2(blank)2.889 E F1 .389(-separated w)B .389
-(ords and)-.1 F .816(redirections, and terminated by a)108 271.2 R F0
-(contr)3.316 E .815(ol oper)-.45 F(ator)-.15 E F1 5.815(.T)C .815
-(he \214rst w)-5.815 F .815(ord speci\214es the command to be e)-.1 F
--.15(xe)-.15 G(cuted,).15 E(and is passed as ar)108 283.2 Q
+-.25 F .307(ords are recognized as)-.1 F(reserv)108 148.8 Q
+(ed when unquoted and either)-.15 E<83>108 165.6 Q(the \214rst w)144
+165.6 Q(ord of a command \(see)-.1 E/F4 9/Times-Bold@0 SF(SHELL GRAMMAR)
+2.5 E F1(belo)2.25 E(w\);)-.25 E<83>108 182.4 Q(the \214rst w)144 182.4
+Q(ord follo)-.1 E(wing a reserv)-.25 E(ed w)-.15 E(ord other than)-.1 E
+F2(case)2.5 E F1(,)A F2 -.25(fo)2.5 G(r).25 E F1(,)A F2(select)2.5 E F1
+2.5(,o)C(r)-2.5 E F2(in)2.5 E F1(;)A<83>108 199.2 Q(the third w)144
+199.2 Q(ord of a)-.1 E F2(case)2.5 E F1(command \(only)2.5 E F2(in)2.5 E
+F1(is v)2.5 E(alid\);)-.25 E<83>108 216 Q(the third w)144 216 Q
+(ord of a)-.1 E F2 -.25(fo)2.5 G(r).25 E F1(or)2.5 E F2(select)2.5 E F1
+(command \(only)2.5 E F2(in)2.5 E F1(and)2.5 E F2(do)2.5 E F1(are v)2.5
+E(alid\);)-.25 E<83>108 232.8 Q(follo)144 232.8 Q
+(wing a control operator)-.25 E(.)-.55 E .807
+(The shell will also recognize reserv)108 249.6 R .807(ed w)-.15 F .807
+(ords where the syntax of a command speci\214cally requires the re-)-.1
+F(serv)108 261.6 Q(ed w)-.15 E(ord as the only correct tok)-.1 E(en.)-.1
+E(The follo)108 278.4 Q(wing are reserv)-.25 E(ed w)-.15 E(ords:)-.1 E
+F2 11.295(!c)144 295.2 S 8.795(ase copr)-11.295 F 8.795
+(oc do done elif else esac \214 f)-.18 F 8.795
+(or function if in select then)-.25 F 7.5(until while { } time [[ ]])144
+307.2 R F3(SHELL GRAMMAR)72 324 Q F1
+(This section describes the syntax of the v)108 336 Q
+(arious forms of shell commands.)-.25 E F2(Simple Commands)87 352.8 Q F1
+(A)108 364.8 Q F0 .389(simple command)2.889 F F1 .389
+(is a sequence of optional v)2.889 F .388(ariable assignments follo)-.25
+F .388(wed by)-.25 F F2(blank)2.888 E F1 .388(-separated w)B .388
+(ords and)-.1 F .815(redirections, and terminated by a)108 376.8 R F0
+(contr)3.315 E .815(ol oper)-.45 F(ator)-.15 E F1 5.815(.T)C .815
+(he \214rst w)-5.815 F .816(ord speci\214es the command to be e)-.1 F
+-.15(xe)-.15 G(cuted,).15 E(and is passed as ar)108 388.8 Q
(gument zero.)-.18 E(The remaining w)5 E(ords are passed as ar)-.1 E
(guments to the in)-.18 E -.2(vo)-.4 G -.1(ke).2 G 2.5(dc).1 G(ommand.)
--2.5 E(The return v)108 300 Q(alue of a)-.25 E F0(simple command)2.5 E
+-2.5 E(The return v)108 405.6 Q(alue of a)-.25 E F0(simple command)2.5 E
F1(is its e)2.5 E(xit status, or 128+)-.15 E F0(n)A F1
(if the command is terminated by signal)3.333 E F0(n)2.86 E F1(.).24 E
-F2(Pipelines)87 316.8 Q F1(A)108 328.8 Q F0(pipeline)2.996 E F1 .496(is\
+F2(Pipelines)87 422.4 Q F1(A)108 434.4 Q F0(pipeline)2.996 E F1 .496(is\
a sequence of one or more commands separated by one of the control ope\
rators)2.996 F F2(|)2.996 E F1(or)2.996 E F2(|&)2.996 E F1 5.496(.T)C
-(he)-5.496 E(format for a pipeline is:)108 340.8 Q([)144 357.6 Q F2
+(he)-5.496 E(format for a pipeline is:)108 446.4 Q([)144 463.2 Q F2
(time)A F1([)2.5 E F2<ad70>A F1(]] [ ! ])A F0(command1)2.5 E F1 2.5([[)
2.5 G F2(|)-2.5 E/F5 10/Symbol SF<ef>A F2(|&)A F1(])A F0(command2)2.5 E
-F1 -3.332 1.666(... ])2.5 H .8(The standard output of)108 374.4 R F0
-(command1)3.5 E F1 .799
-(is connected via a pipe to the standard input of)3.3 F F0(command2)
-3.499 E F1 5.799(.T).02 G .799(his con-)-5.799 F .214
-(nection is performed before an)108 386.4 R 2.714(yr)-.15 G .214
-(edirections speci\214ed by the)-2.714 F F0(command1)2.915 E F1(\(see)A
-F4(REDIRECTION)2.715 E F1(belo)2.465 E 2.715(w\). If)-.25 F F2(|&)2.715
-E F1 .3(is the pipeline operator)108 398.4 R(,)-.4 E F0(command1)2.8 E
-F1 1.4 -.55('s s)D .3(tandard error).55 F 2.8(,i)-.4 G 2.8(na)-2.8 G .3
+F1 -3.332 1.666(... ])2.5 H .799(The standard output of)108 480 R F0
+(command1)3.499 E F1 .799
+(is connected via a pipe to the standard input of)3.299 F F0(command2)
+3.5 E F1 5.8(.T).02 G .8(his con-)-5.8 F .215
+(nection is performed before an)108 492 R 2.715(yr)-.15 G .214
+(edirections speci\214ed by the)-2.715 F F0(command1)2.914 E F1(\(see)A
+F4(REDIRECTION)2.714 E F1(belo)2.464 E 2.714(w\). If)-.25 F F2(|&)2.714
+E F1 .3(is the pipeline operator)108 504 R(,)-.4 E F0(command1)2.8 E F1
+1.4 -.55('s s)D .3(tandard error).55 F 2.8(,i)-.4 G 2.8(na)-2.8 G .3
(ddition to its standard output, is connected to)-2.8 F F0(com-)2.8 E
-(mand2)108 410.4 Q F1 1.751 -.55('s s)D .651
+(mand2)108 516 Q F1 1.752 -.55('s s)D .651
(tandard input through the pipe; it is shorthand for).55 F F2 .651
-(2>&1 |)3.151 F F1 5.651(.T)C .652
+(2>&1 |)3.151 F F1 5.651(.T)C .651
(his implicit redirection of the stan-)-5.651 F
-(dard error to the standard output is performed after an)108 422.4 Q 2.5
+(dard error to the standard output is performed after an)108 528 Q 2.5
(yr)-.15 G(edirections speci\214ed by)-2.5 E F0(command1)2.5 E F1(.)A
-.48(The return status of a pipeline is the e)108 439.2 R .48
+.48(The return status of a pipeline is the e)108 544.8 R .48
(xit status of the last command, unless the)-.15 F F2(pipefail)2.98 E F1
-.48(option is enabled.)2.98 F(If)108 451.2 Q F2(pipefail)2.686 E F1 .186
-(is enabled, the pipeline')2.686 F 2.686(sr)-.55 G .186
-(eturn status is the v)-2.686 F .187
-(alue of the last \(rightmost\) command to e)-.25 F .187(xit with a)-.15
-F .611(non-zero status, or zero if all commands e)108 463.2 R .611
-(xit successfully)-.15 F 5.611(.I)-.65 G 3.111(ft)-5.611 G .61
-(he reserv)-3.111 F .61(ed w)-.15 F(ord)-.1 E F2(!)3.11 E F1 .61
-(precedes a pipeline, the)5.61 F -.15(ex)108 475.2 S .408
+.48(option is enabled.)2.98 F(If)108 556.8 Q F2(pipefail)2.687 E F1 .187
+(is enabled, the pipeline')2.687 F 2.687(sr)-.55 G .186
+(eturn status is the v)-2.687 F .186
+(alue of the last \(rightmost\) command to e)-.25 F .186(xit with a)-.15
+F .61(non-zero status, or zero if all commands e)108 568.8 R .611
+(xit successfully)-.15 F 5.611(.I)-.65 G 3.111(ft)-5.611 G .611
+(he reserv)-3.111 F .611(ed w)-.15 F(ord)-.1 E F2(!)3.111 E F1 .611
+(precedes a pipeline, the)5.611 F -.15(ex)108 580.8 S .408
(it status of that pipeline is the logical ne).15 F -.05(ga)-.15 G .408
(tion of the e).05 F .408(xit status as described abo)-.15 F -.15(ve)
-.15 G 5.408(.I).15 G 2.908(fap)-5.408 G .408(ipeline is e)-2.908 F -.15
-(xe)-.15 G(-).15 E(cuted synchronously)108 487.2 Q 2.5(,t)-.65 G
+(xe)-.15 G(-).15 E(cuted synchronously)108 592.8 Q 2.5(,t)-.65 G
(he shell w)-2.5 E(aits for all commands in the pipeline to terminate b\
-efore returning a v)-.1 E(alue.)-.25 E .358(If the)108 504 R F2(time)
-2.858 E F1(reserv)2.858 E .358(ed w)-.15 F .358(ord precedes a pipeline\
+efore returning a v)-.1 E(alue.)-.25 E .357(If the)108 609.6 R F2(time)
+2.857 E F1(reserv)2.858 E .358(ed w)-.15 F .358(ord precedes a pipeline\
, the shell reports the elapsed as well as user and system time)-.1 F
-.553(consumed by its e)108 516 R -.15(xe)-.15 G .554
+.554(consumed by its e)108 621.6 R -.15(xe)-.15 G .554
(cution when the pipeline terminates.).15 F(The)5.554 E F2<ad70>3.054 E
-F1 .554(option changes the output format to that)3.054 F .497
-(speci\214ed by)108 528 R/F6 9/Times-Roman@0 SF(POSIX)2.997 E F1 5.497
-(.W)C .497(hen the shell is in posix mode, it does not recognize)-5.497
-F F2(time)2.996 E F1 .496(as a reserv)2.996 F .496(ed w)-.15 F .496
-(ord if the)-.1 F(ne)108 540 Q .043(xt tok)-.15 F .043(en be)-.1 F .043
-(gins with a \231\255\232.)-.15 F .044(The v)5.043 F .044(alue of the)
--.25 F F4(TIMEFORMA)2.544 E(T)-.855 E F1 -.25(va)2.294 G .044
-(riable is a format string that speci\214es ho).25 F(w)-.25 E .26
+F1 .553(option changes the output format to that)3.054 F .496
+(speci\214ed by)108 633.6 R/F6 9/Times-Roman@0 SF(POSIX)2.996 E F1 5.496
+(.W)C .496(hen the shell is in posix mode, it does not recognize)-5.496
+F F2(time)2.997 E F1 .497(as a reserv)2.997 F .497(ed w)-.15 F .497
+(ord if the)-.1 F(ne)108 645.6 Q .044(xt tok)-.15 F .044(en be)-.1 F
+.044(gins with a \231\255\232.)-.15 F .044(The v)5.044 F .044
+(alue of the)-.25 F F4(TIMEFORMA)2.544 E(T)-.855 E F1 -.25(va)2.294 G
+.043(riable is a format string that speci\214es ho).25 F(w)-.25 E .26
(the timing information should be displayed; see the description of)108
-552 R F4(TIMEFORMA)2.76 E(T)-.855 E F1(belo)2.509 E 2.759(wu)-.25 G
-(nder)-2.759 E F2 .259(Shell V)2.759 F(ari-)-.92 E(ables)108 564 Q F1(.)
-A .287(When the shell is in posix mode,)108 580.8 R F2(time)2.787 E F1
+657.6 R F4(TIMEFORMA)2.76 E(T)-.855 E F1(belo)2.51 E 2.76(wu)-.25 G
+(nder)-2.76 E F2 .26(Shell V)2.76 F(ari-)-.92 E(ables)108 669.6 Q F1(.)A
+.288(When the shell is in posix mode,)108 686.4 R F2(time)2.787 E F1
.287(may appear by itself as the only w)2.787 F .287
-(ord in a simple command.)-.1 F .288(In this)5.288 F .604(case, the she\
+(ord in a simple command.)-.1 F .287(In this)5.287 F .604(case, the she\
ll displays the total user and system time consumed by the shell and it\
-s children.)108 592.8 R(The)5.603 E F4(TIME-)3.103 E(FORMA)108 604.8 Q
+s children.)108 698.4 R(The)5.604 E F4(TIME-)3.104 E(FORMA)108 710.4 Q
(T)-.855 E F1 -.25(va)2.25 G
-(riable speci\214es the format of the time information.).25 E .303(Each\
+(riable speci\214es the format of the time information.).25 E .304(Each\
command in a multi-command pipeline, where pipes are created, is e)108
-621.6 R -.15(xe)-.15 G .304(cuted in a).15 F F0(subshell)2.804 E F1
-2.804(,w)C .304(hich is a)-2.804 F .208(separate process.)108 633.6 R
-(See)5.208 E F4 .208(COMMAND EXECUTION ENVIR)2.708 F(ONMENT)-.27 E F1
-.208(for a description of subshells and a sub-)2.458 F .926(shell en)108
-645.6 R 3.426(vironment. If)-.4 F(the)3.427 E F2(lastpipe)3.427 E F1
-.927(option is enabled using the)3.427 F F2(shopt)3.427 E F1 -.2(bu)
-3.427 G .927(iltin \(see the description of).2 F F2(shopt)3.427 E F1
-(belo)108 657.6 Q(w\), and job control is not acti)-.25 E -.15(ve)-.25 G
-2.5(,t).15 G
-(he last element of a pipeline may be run by the shell process.)-2.5 E
-F2(Lists)87 674.4 Q F1(A)108 686.4 Q F0(list)2.85 E F1 .35(is a sequenc\
-e of one or more pipelines separated by one of the operators)2.85 F F2
-(;)2.849 E F1(,)A F2(&)2.849 E F1(,)A F2(&&)2.849 E F1 2.849(,o)C(r)
--2.849 E F2(||)2.849 E F1 2.849(,a)C .349(nd option-)-2.849 F
-(ally terminated by one of)108 698.4 Q F2(;)2.5 E F1(,)A F2(&)2.5 E F1
-2.5(,o)C(r)-2.5 E F2(<newline>)2.5 E F1(.)A .96
-(Of these list operators,)108 715.2 R F2(&&)3.46 E F1(and)3.46 E F2(||)
-3.46 E F1(ha)3.46 E 1.26 -.15(ve e)-.2 H .961(qual precedence, follo).15
-F .961(wed by)-.25 F F2(;)3.461 E F1(and)3.461 E F2(&)3.461 E F1 3.461
-(,w)C .961(hich ha)-3.461 F 1.261 -.15(ve e)-.2 H .961(qual prece-).15 F
-(dence.)108 727.2 Q(GNU Bash 5.3)72 768 Q(2025 April 7)149.285 E(4)
-203.445 E 0 Cg EP
+727.2 R -.15(xe)-.15 G .303(cuted in a).15 F F0(subshell)2.803 E F1
+2.803(,w)C .303(hich is a)-2.803 F(GNU Bash 5.3)72 768 Q
+(2026 January 14)141.79 E(4)195.95 E 0 Cg EP
%%Page: 5 5
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E 2.5(As)108 84 S(equence of one or more ne)-2.5 E
-(wlines may appear in a)-.25 E F0(list)2.5 E F1
-(instead of a semicolon to delimit commands.)2.5 E .029
-(If a command is terminated by the control operator)108 100.8 R/F2 10
-/Times-Bold@0 SF(&)2.529 E F1 2.529(,t)C .029(he shell e)-2.529 F -.15
-(xe)-.15 G .029(cutes the command in the).15 F F0(bac)2.528 E(kgr)-.2 E
-(ound)-.45 E F1(in)2.528 E 2.678(as)108 112.8 S 2.678(ubshell. The)
--2.678 F .178(shell does not w)2.678 F .178
-(ait for the command to \214nish, and the return status is 0.)-.1 F .178
-(These are referred)5.178 F .779(to as)108 124.8 R F0(async)3.279 E(hr)
--.15 E(onous)-.45 E F1 3.279(commands. Commands)3.279 F .779
-(separated by a)3.279 F F2(;)3.279 E F1 .779(are e)3.279 F -.15(xe)-.15
-G .778(cuted sequentially; the shell w).15 F .778(aits for)-.1 F
-(each command to terminate in turn.)108 136.8 Q
-(The return status is the e)5 E(xit status of the last command e)-.15 E
--.15(xe)-.15 G(cuted.).15 E .171(AND and OR lists are sequences of one \
-or more pipelines separated by the)108 153.6 R F2(&&)2.672 E F1(and)
-2.672 E F2(||)2.672 E F1 .172(control operators, re-)2.672 F(specti)108
-165.6 Q -.15(ve)-.25 G(ly).15 E 5(.A)-.65 G(ND and OR lists are e)-5 E
--.15(xe)-.15 G(cuted with left associati).15 E(vity)-.25 E 5(.A)-.65 G
-2.5(nA)-5 G(ND list has the form)-2.5 E F0(command1)144 182.4 Q F2(&&)
-2.5 E F0(command2)2.5 E(command2)108.2 199.2 Q F1(is e)2.52 E -.15(xe)
--.15 G(cuted if, and only if,).15 E F0(command1)2.7 E F1(returns an e)
-2.5 E(xit status of zero \(success\).)-.15 E(An OR list has the form)108
-216 Q F0(command1)144 232.8 Q F2(||)2.5 E F0(command2)2.5 E(command2)
-108.2 249.6 Q F1 .435(is e)2.955 F -.15(xe)-.15 G .435
+.25 E F1(\(1\)).95 E .207(separate process.)108 84 R(See)5.207 E/F2 9
+/Times-Bold@0 SF .208(COMMAND EXECUTION ENVIR)2.708 F(ONMENT)-.27 E F1
+.208(for a description of subshells and a sub-)2.458 F .927(shell en)108
+96 R 3.427(vironment. If)-.4 F(the)3.427 E/F3 10/Times-Bold@0 SF
+(lastpipe)3.427 E F1 .927(option is enabled using the)3.427 F F3(shopt)
+3.427 E F1 -.2(bu)3.427 G .927(iltin \(see the description of).2 F F3
+(shopt)3.426 E F1(belo)108 108 Q(w\), and job control is not acti)-.25 E
+-.15(ve)-.25 G 2.5(,t).15 G
+(he last element of a pipeline may be run by the shell process.)-2.5 E
+F3(Lists)87 124.8 Q F1(A)108 136.8 Q F0(list)2.795 E F1 .296(is a seque\
+nce of one or more AND or OR lists separated by one of the operators)
+2.795 F F3(;)2.796 E F1(,)A F3(&)2.796 E F1 2.796(,o)C(r)-2.796 E F3
+(<newline>)2.796 E F1(,)A
+(and optionally terminated by one of those three characters.)108 148.8 Q
+.172(AND and OR lists are sequences of one or more pipelines separated \
+by the)108 165.6 R F3(&&)2.671 E F1(and)2.671 E F3(||)2.671 E F1 .171
+(control operators, re-)2.671 F(specti)108 177.6 Q -.15(ve)-.25 G(ly).15
+E 5(.A)-.65 G(ND and OR lists are e)-5 E -.15(xe)-.15 G
+(cuted with left associati).15 E(vity)-.25 E(.)-.65 E
+(An AND list has the form)108 194.4 Q F0(command1)144 211.2 Q F3(&&)2.5
+E F0(command2)2.5 E(command2)108.2 228 Q F1(is e)2.52 E -.15(xe)-.15 G
+(cuted if, and only if,).15 E F0(command1)2.7 E F1(returns an e)2.5 E
+(xit status of zero \(success\).)-.15 E(An OR list has the form)108
+244.8 Q F0(command1)144 261.6 Q F3(||)2.5 E F0(command2)2.5 E(command2)
+108.2 278.4 Q F1 .434(is e)2.954 F -.15(xe)-.15 G .434
(cuted if, and only if,).15 F F0(command1)3.135 E F1 .435
-(returns a non-zero e)2.935 F .435(xit status.)-.15 F .434
-(The return status of AND)5.434 F(and OR lists is the e)108 261.6 Q
+(returns a non-zero e)2.935 F .435(xit status.)-.15 F .435
+(The return status of AND)5.435 F(and OR lists is the e)108 290.4 Q
(xit status of the last command e)-.15 E -.15(xe)-.15 G
-(cuted in the list.).15 E F2(Compound Commands)87 278.4 Q F1(A)108 290.4
-Q F0 1.053(compound command)3.553 F F1 1.053(is one of the follo)3.553 F
-3.553(wing. In)-.25 F 1.053(most cases a)3.553 F F0(list)3.553 E F1
-1.054(in a command')3.554 F 3.554(sd)-.55 G 1.054(escription may be)
--3.554 F 1.027(separated from the rest of the command by one or more ne)
-108 302.4 R 1.026(wlines, and may be follo)-.25 F 1.026(wed by a ne)-.25
-F 1.026(wline in)-.25 F(place of a semicolon.)108 314.4 Q(\()108 331.2 Q
-F0(list)A F1(\))A F0(list)144 331.2 Q F1 .214(is e)2.714 F -.15(xe)-.15
-G .215(cuted in a subshell \(see).15 F/F3 9/Times-Bold@0 SF .215
-(COMMAND EXECUTION ENVIR)2.715 F(ONMENT)-.27 E F1(belo)2.465 E 2.715(wf)
--.25 G .215(or a descrip-)-2.715 F .21(tion of a subshell en)144 343.2 R
-2.709(vironment\). V)-.4 F .209(ariable assignments and b)-1.11 F .209
-(uiltin commands that af)-.2 F .209(fect the shell')-.25 F(s)-.55 E(en)
-144 355.2 Q 1.068(vironment do not remain in ef)-.4 F 1.069
-(fect after the command completes.)-.25 F 1.069
-(The return status is the e)6.069 F(xit)-.15 E(status of)144 367.2 Q F0
-(list)2.5 E F1(.)A({)108 384 Q F0(list)2.5 E F1 2.5(;})C F0(list)144 384
-Q F1 .715(is e)3.215 F -.15(xe)-.15 G .715
+(cuted in the list.).15 E .961(Of these list operators,)108 307.2 R F3
+(&&)3.461 E F1(and)3.461 E F3(||)3.461 E F1(ha)3.461 E 1.261 -.15(ve e)
+-.2 H .961(qual precedence, follo).15 F .96(wed by)-.25 F F3(;)3.46 E F1
+(and)3.46 E F3(&)3.46 E F1 3.46(,w)C .96(hich ha)-3.46 F 1.26 -.15(ve e)
+-.2 H .96(qual prece-).15 F(dence.)108 319.2 Q 2.5(As)108 336 S
+(equence of one or more ne)-2.5 E(wlines may appear in a)-.25 E F0(list)
+2.5 E F1(instead of a semicolon to delimit commands.)2.5 E .172
+(If a command is terminated by the control operator)108 352.8 R F3(&)
+2.672 E F1 2.672(,t)C .172(he shell e)-2.672 F -.15(xe)-.15 G .173
+(cutes the command asynchronously in a).15 F 2.827(subshell. This)108
+364.8 R .327(is kno)2.827 F .327(wn as e)-.25 F -.15(xe)-.15 G .327
+(cuting a command in the).15 F F0(bac)2.826 E(kgr)-.2 E(ound)-.45 E F1
+2.826(,a)C .326(nd these are referred to as)-2.826 F F0(async)2.826 E
+(hr)-.15 E(o-)-.45 E(nous)108 376.8 Q F1 3.138(commands. The)3.138 F
+.638(shell does not w)3.138 F .639
+(ait for the command to \214nish, and the return status is 0.)-.1 F .639
+(When job)5.639 F .244(control is not acti)108 388.8 R -.15(ve)-.25 G
+2.743(,t).15 G .243
+(he standard input for asynchronous commands, in the absence of an)
+-2.743 F 2.743(ye)-.15 G .243(xplicit redirec-)-2.893 F(tions in)108
+400.8 Q -.2(vo)-.4 G(lving the standard input, is redirected from).2 E
+F0(/de)4.166 E(v/null)-.15 E F1(.)1.666 E .7
+(Commands separated or terminated by)108 417.6 R F3(;)3.201 E F1 .701
+(\(or an equi)3.201 F -.25(va)-.25 G(lent).25 E F3(<newline>)3.201 E F1
+3.201(\)a)C .701(re e)-3.201 F -.15(xe)-.15 G .701
+(cuted sequentially; the shell).15 F -.1(wa)108 429.6 S
+(its for each command to terminate in turn.).1 E
+(The return status of a list is the e)108 446.4 Q
+(xit status of the last command e)-.15 E -.15(xe)-.15 G(cuted.).15 E F3
+(Compound Commands)87 463.2 Q F1(A)108 475.2 Q F0 1.054
+(compound command)3.554 F F1 1.054(is one of the follo)3.554 F 3.553
+(wing. In)-.25 F 1.053(most cases a)3.553 F F0(list)3.553 E F1 1.053
+(in a command')3.553 F 3.553(sd)-.55 G 1.053(escription may be)-3.553 F
+1.026(separated from the rest of the command by one or more ne)108 487.2
+R 1.026(wlines, and may be follo)-.25 F 1.027(wed by a ne)-.25 F 1.027
+(wline in)-.25 F(place of a semicolon.)108 499.2 Q(\()108 516 Q F0(list)
+A F1(\))A F0(list)144 516 Q F1 .215(is e)2.715 F -.15(xe)-.15 G .215
+(cuted in a subshell \(see).15 F F2 .215(COMMAND EXECUTION ENVIR)2.715 F
+(ONMENT)-.27 E F1(belo)2.465 E 2.714(wf)-.25 G .214(or a descrip-)-2.714
+F .209(tion of a subshell en)144 528 R 2.709(vironment\). V)-.4 F .209
+(ariable assignments and b)-1.11 F .209(uiltin commands that af)-.2 F
+.21(fect the shell')-.25 F(s)-.55 E(en)144 540 Q 1.069
+(vironment do not remain in ef)-.4 F 1.069
+(fect after the command completes.)-.25 F 1.068
+(The return status is the e)6.069 F(xit)-.15 E(status of)144 552 Q F0
+(list)2.5 E F1(.)A({)108 568.8 Q F0(list)2.5 E F1 2.5(;})C F0(list)144
+568.8 Q F1 .714(is e)3.214 F -.15(xe)-.15 G .714
(cuted in the current shell en).15 F(vironment.)-.4 E F0(list)5.714 E F1
-.714(must be terminated with a ne)3.214 F .714(wline or semi-)-.25 F 2.5
-(colon. This)144 396 R(is kno)2.5 E(wn as a)-.25 E F0(gr)2.5 E
+.715(must be terminated with a ne)3.214 F .715(wline or semi-)-.25 F 2.5
+(colon. This)144 580.8 R(is kno)2.5 E(wn as a)-.25 E F0(gr)2.5 E
(oup command)-.45 E F1 5(.T)C(he return status is the e)-5 E
-(xit status of)-.15 E F0(list)2.5 E F1(.)A .243(Note that unlik)144
-412.8 R 2.743(et)-.1 G .243(he metacharacters)-2.743 F F2(\()2.743 E F1
-(and)2.743 E F2(\))2.744 E F1(,)A F2({)2.744 E F1(and)2.744 E F2(})2.744
+(xit status of)-.15 E F0(list)2.5 E F1(.)A .244(Note that unlik)144
+597.6 R 2.744(et)-.1 G .244(he metacharacters)-2.744 F F3(\()2.744 E F1
+(and)2.744 E F3(\))2.744 E F1(,)A F3({)2.744 E F1(and)2.744 E F3(})2.744
E F1(are)2.744 E F0 -.37(re)2.744 G .244(served wor).37 F(ds)-.37 E F1
-.244(and must occur where a re-)2.744 F(serv)144 424.8 Q .952(ed w)-.15
+.243(and must occur where a re-)2.743 F(serv)144 609.6 Q .951(ed w)-.15
F .951(ord is permitted to be recognized.)-.1 F .951(Since the)5.951 F
3.451(yd)-.15 G 3.451(on)-3.451 G .951(ot cause a w)-3.451 F .951
-(ord break, the)-.1 F 3.451(ym)-.15 G .951(ust be)-3.451 F
-(separated from)144 436.8 Q F0(list)2.5 E F1
+(ord break, the)-.1 F 3.452(ym)-.15 G .952(ust be)-3.452 F
+(separated from)144 621.6 Q F0(list)2.5 E F1
(by whitespace or another shell metacharacter)2.5 E(.)-.55 E(\(\()108
-453.6 Q F0 -.2(ex)C(pr).2 E(ession)-.37 E F1(\)\))A 2.213
-(The arithmetic)144 465.6 R F0 -.2(ex)4.713 G(pr).2 E(ession)-.37 E F1
-2.213(is e)4.713 F -.25(va)-.25 G 2.213
-(luated according to the rules described belo).25 F 4.714(wu)-.25 G
-(nder)-4.714 E F3(ARITH-)4.714 E .349(METIC EV)144 477.6 R(ALU)-1.215 E
--.855(AT)-.54 G(ION).855 E/F4 9/Times-Roman@0 SF(.)A F1 .349(If the v)
-4.849 F .349(alue of the e)-.25 F .348
-(xpression is non-zero, the return status is 0; otherwise)-.15 F .781
-(the return status is 1.)144 489.6 R(The)5.782 E F0 -.2(ex)3.282 G(pr).2
+638.4 Q F0 -.2(ex)C(pr).2 E(ession)-.37 E F1(\)\))A 2.214
+(The arithmetic)144 650.4 R F0 -.2(ex)4.714 G(pr).2 E(ession)-.37 E F1
+2.214(is e)4.714 F -.25(va)-.25 G 2.213
+(luated according to the rules described belo).25 F 4.713(wu)-.25 G
+(nder)-4.713 E F2(ARITH-)4.713 E .348(METIC EV)144 662.4 R(ALU)-1.215 E
+-.855(AT)-.54 G(ION).855 E/F4 9/Times-Roman@0 SF(.)A F1 .348(If the v)
+4.848 F .348(alue of the e)-.25 F .349
+(xpression is non-zero, the return status is 0; otherwise)-.15 F .782
+(the return status is 1.)144 674.4 R(The)5.782 E F0 -.2(ex)3.282 G(pr).2
E(ession)-.37 E F1(under)3.282 E .782(goes the same e)-.18 F .782
-(xpansions as if it were within double)-.15 F .908(quotes, b)144 501.6 R
+(xpansions as if it were within double)-.15 F .907(quotes, b)144 686.4 R
.908(ut unescaped double quote characters in)-.2 F F0 -.2(ex)3.408 G(pr)
.2 E(ession)-.37 E F1 .908(are not treated specially and are re-)3.408 F
-(mo)144 513.6 Q -.15(ve)-.15 G 2.505(d. Since).15 F .006(this can poten\
-tially result in empty strings, this command treats those as e)2.505 F
-(xpressions)-.15 E(that e)144 525.6 Q -.25(va)-.25 G(luate to 0.).25 E
-F2([[)108 542.4 Q F0 -.2(ex)2.5 G(pr).2 E(ession)-.37 E F2(]])2.5 E F1
-(Ev)144 554.4 Q 2.274(aluate the conditional e)-.25 F(xpression)-.15 E
-F0 -.2(ex)4.774 G(pr).2 E(ession)-.37 E F1 2.274
-(and return a status of zero \(true\) or non-zero)4.774 F(\(f)144 566.4
-Q 3.663(alse\). Expressions)-.1 F 1.164
-(are composed of the primaries described belo)3.663 F 3.664(wu)-.25 G
-(nder)-3.664 E F3(CONDITION)3.664 E 1.164(AL EX-)-.18 F(PRESSIONS)144
-578.4 Q F4(.)A F1 .138(The w)4.638 F .137(ords between the)-.1 F F2([[)
-2.637 E F1(and)2.637 E F2(]])2.637 E F1 .137(do not under)2.637 F .137
-(go w)-.18 F .137(ord splitting and pathname e)-.1 F(xpan-)-.15 E 2.761
-(sion. The)144 590.4 R .262(shell performs tilde e)2.761 F .262
-(xpansion, parameter and v)-.15 F .262(ariable e)-.25 F .262
-(xpansion, arithmetic e)-.15 F(xpansion,)-.15 E .282
-(command substitution, process substitution, and quote remo)144 602.4 R
--.25(va)-.15 G 2.782(lo).25 G 2.782(nt)-2.782 G .282(hose w)-2.782 F
-2.781(ords. Conditional)-.1 F(oper)2.781 E(-)-.2 E(ators such as)144
-614.4 Q F2<ad66>2.5 E F1
-(must be unquoted to be recognized as primaries.)2.5 E(When used with)
-144 631.2 Q F2([[)2.5 E F1 2.5(,t)C(he)-2.5 E F2(<)2.5 E F1(and)2.5 E F2
-(>)2.5 E F1(operators sort le)2.5 E
-(xicographically using the current locale.)-.15 E .502(When the)144 648
-R F2(==)3.002 E F1(and)3.002 E F2(!=)3.002 E F1 .502(operators are used\
-, the string to the right of the operator is considered a pat-)3.002 F
-.81(tern and matched according to the rules described belo)144 660 R
-3.31(wu)-.25 G(nder)-3.31 E F2 -.1(Pa)3.31 G(tter).1 E 3.31(nM)-.15 G
-(atching)-3.31 E F1 3.31(,a)C 3.31(si)-3.31 G 3.31(ft)-3.31 G(he)-3.31 E
-F2(ext-)3.31 E(glob)144 672 Q F1 .313(shell option were enabled.)2.813 F
-(The)5.313 E F2(=)2.813 E F1 .313(operator is equi)2.813 F -.25(va)-.25
-G .313(lent to).25 F F2(==)2.813 E F1 5.313(.I)C 2.813(ft)-5.313 G(he)
--2.813 E F2(nocasematch)2.813 E F1 .314(shell op-)2.814 F .03
-(tion is enabled, the match is performed without re)144 684 R -.05(ga)
--.15 G .029(rd to the case of alphabetic characters.).05 F .029(The re-)
-5.029 F .806(turn v)144 696 R .807(alue is 0 if the string matches \()
--.25 F F2(==)A F1 3.307(\)o)C 3.307(rd)-3.307 G .807(oes not match \()
--3.307 F F2(!=)A F1 3.307(\)t)C .807(he pattern, and 1 otherwise.)-3.307
-F(If)5.807 E(an)144 708 Q 3.1(yp)-.15 G .6(art of the pattern is quoted\
-, the quoted portion is matched as a string: e)-3.1 F -.15(ve)-.25 G
-.599(ry character in the).15 F
-(quoted portion matches itself, instead of ha)144 720 Q(ving an)-.2 E
-2.5(ys)-.15 G(pecial pattern matching meaning.)-2.5 E(GNU Bash 5.3)72
-768 Q(2025 April 7)149.285 E(5)203.445 E 0 Cg EP
+(mo)144 698.4 Q -.15(ve)-.15 G 2.506(d. Since).15 F .006(this can poten\
+tially result in empty strings, this command treats those as e)2.506 F
+(xpressions)-.15 E(that e)144 710.4 Q -.25(va)-.25 G(luate to 0.).25 E
+(GNU Bash 5.3)72 768 Q(2026 January 14)141.79 E(5)195.95 E 0 Cg EP
%%Page: 6 6
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E .133(An additional binary operator)144 84 R(,)-.4 E
-/F2 10/Times-Bold@0 SF<3d01>2.633 E F1 2.633(,i)C 2.633(sa)-2.633 G -.25
-(va)-2.833 G .133(ilable, with the same precedence as).25 F F2(==)2.633
-E F1(and)2.633 E F2(!=)2.633 E F1 5.133(.W)C .133(hen it is)-5.133 F
-.378(used, the string to the right of the operator is considered a)144
-96 R/F3 9/Times-Roman@0 SF(POSIX)2.878 E F1 -.15(ex)2.628 G .378
-(tended re).15 F .378(gular e)-.15 F .378(xpression and)-.15 F 2.909
-(matched accordingly \(using the)144 108 R F3(POSIX)5.409 E F0 -.37(re)
-5.159 G(gcomp)-.03 E F1(and)5.409 E F0 -.37(re)5.409 G -.1(ge)-.03 G
-(xec)-.1 E F1(interf)5.409 E 2.909(aces usually described in)-.1 F F0
--.37(re)144 120 S -.1(ge)-.03 G(x)-.1 E F1 3.241(\(3\)\). The).53 F .741
-(return v)3.241 F .741
+.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF([[)108 84 Q F0 -.2(ex)2.5 G
+(pr).2 E(ession)-.37 E F2(]])2.5 E F1(Ev)144 96 Q 2.273
+(aluate the conditional e)-.25 F(xpression)-.15 E F0 -.2(ex)4.774 G(pr)
+.2 E(ession)-.37 E F1 2.274
+(and return a status of zero \(true\) or non-zero)4.774 F(\(f)144 108 Q
+3.664(alse\). Expressions)-.1 F 1.164
+(are composed of the primaries described belo)3.664 F 3.663(wu)-.25 G
+(nder)-3.663 E/F3 9/Times-Bold@0 SF(CONDITION)3.663 E 1.163(AL EX-)-.18
+F(PRESSIONS)144 120 Q/F4 9/Times-Roman@0 SF(.)A F1 .137(The w)4.637 F
+.137(ords between the)-.1 F F2([[)2.637 E F1(and)2.637 E F2(]])2.637 E
+F1 .137(do not under)2.637 F .137(go w)-.18 F .137
+(ord splitting and pathname e)-.1 F(xpan-)-.15 E 2.762(sion. The)144 132
+R .262(shell performs tilde e)2.762 F .262(xpansion, parameter and v)
+-.15 F .262(ariable e)-.25 F .261(xpansion, arithmetic e)-.15 F
+(xpansion,)-.15 E .282
+(command substitution, process substitution, and quote remo)144 144 R
+-.25(va)-.15 G 2.782(lo).25 G 2.782(nt)-2.782 G .282(hose w)-2.782 F
+2.782(ords. Conditional)-.1 F(oper)2.782 E(-)-.2 E(ators such as)144 156
+Q F2<ad66>2.5 E F1(must be unquoted to be recognized as primaries.)2.5 E
+(When used with)144 172.8 Q F2([[)2.5 E F1 2.5(,t)C(he)-2.5 E F2(<)2.5 E
+F1(and)2.5 E F2(>)2.5 E F1(operators sort le)2.5 E
+(xicographically using the current locale.)-.15 E .503(When the)144
+189.6 R F2(==)3.003 E F1(and)3.002 E F2(!=)3.002 E F1 .502(operators ar\
+e used, the string to the right of the operator is considered a pat-)
+3.002 F .81(tern and matched according to the rules described belo)144
+201.6 R 3.31(wu)-.25 G(nder)-3.31 E F2 -.1(Pa)3.31 G(tter).1 E 3.31(nM)
+-.15 G(atching)-3.31 E F1 3.31(,a)C 3.31(si)-3.31 G 3.31(ft)-3.31 G(he)
+-3.31 E F2(ext-)3.31 E(glob)144 213.6 Q F1 .313
+(shell option were enabled.)2.814 F(The)5.313 E F2(=)2.813 E F1 .313
+(operator is equi)2.813 F -.25(va)-.25 G .313(lent to).25 F F2(==)2.813
+E F1 5.313(.I)C 2.813(ft)-5.313 G(he)-2.813 E F2(nocasematch)2.813 E F1
+.313(shell op-)2.813 F .029
+(tion is enabled, the match is performed without re)144 225.6 R -.05(ga)
+-.15 G .03(rd to the case of alphabetic characters.).05 F .03(The re-)
+5.03 F .807(turn v)144 237.6 R .807(alue is 0 if the string matches \()
+-.25 F F2(==)A F1 3.307(\)o)C 3.307(rd)-3.307 G .807(oes not match \()
+-3.307 F F2(!=)A F1 3.307(\)t)C .807(he pattern, and 1 otherwise.)-3.307
+F(If)5.806 E(an)144 249.6 Q 3.099(yp)-.15 G .599(art of the pattern is \
+quoted, the quoted portion is matched as a string: e)-3.099 F -.15(ve)
+-.25 G .6(ry character in the).15 F
+(quoted portion matches itself, instead of ha)144 261.6 Q(ving an)-.2 E
+2.5(ys)-.15 G(pecial pattern matching meaning.)-2.5 E .133
+(An additional binary operator)144 278.4 R(,)-.4 E F2<3d01>2.633 E F1
+2.633(,i)C 2.633(sa)-2.633 G -.25(va)-2.833 G .133
+(ilable, with the same precedence as).25 F F2(==)2.633 E F1(and)2.633 E
+F2(!=)2.633 E F1 5.133(.W)C .133(hen it is)-5.133 F .378
+(used, the string to the right of the operator is considered a)144 290.4
+R F4(POSIX)2.878 E F1 -.15(ex)2.628 G .378(tended re).15 F .378(gular e)
+-.15 F .379(xpression and)-.15 F 2.909(matched accordingly \(using the)
+144 302.4 R F4(POSIX)5.409 E F0 -.37(re)5.159 G(gcomp)-.03 E F1(and)
+5.409 E F0 -.37(re)5.409 G -.1(ge)-.03 G(xec)-.1 E F1(interf)5.409 E
+2.909(aces usually described in)-.1 F F0 -.37(re)144 314.4 S -.1(ge)-.03
+G(x)-.1 E F1 3.24(\(3\)\). The).53 F .74(return v)3.24 F .741
(alue is 0 if the string matches the pattern, and 1 otherwise.)-.25 F
-.74(If the re)5.74 F(gular)-.15 E -.15(ex)144 132 S .508
+.741(If the re)5.741 F(gular)-.15 E -.15(ex)144 326.4 S .509
(pression is syntactically incorrect, the conditional e).15 F
-(xpression')-.15 E 3.008(sr)-.55 G .509(eturn v)-3.008 F .509
-(alue is 2.)-.25 F .509(If the)5.509 F F2(nocase-)3.009 E(match)144 144
-Q F1 1.307(shell option is enabled, the match is performed without re)
-3.807 F -.05(ga)-.15 G 1.306(rd to the case of alphabetic).05 F
-(characters.)144 156 Q .243(If an)144 172.8 R 2.743(yp)-.15 G .244
+(xpression')-.15 E 3.008(sr)-.55 G .508(eturn v)-3.008 F .508
+(alue is 2.)-.25 F .508(If the)5.508 F F2(nocase-)3.008 E(match)144
+338.4 Q F1 1.307
+(shell option is enabled, the match is performed without re)3.806 F -.05
+(ga)-.15 G 1.307(rd to the case of alphabetic).05 F(characters.)144
+350.4 Q .244(If an)144 367.2 R 2.744(yp)-.15 G .244
(art of the pattern is quoted, the quoted portion is matched literally)
--2.743 F 2.744(,a)-.65 G 2.744(sa)-2.744 G(bo)-2.744 E -.15(ve)-.15 G
-5.244(.I).15 G 2.744(ft)-5.244 G .244(he pattern)-2.744 F .368
-(is stored in a shell v)144 184.8 R .368(ariable, quoting the v)-.25 F
+-2.744 F 2.744(,a)-.65 G 2.744(sa)-2.744 G(bo)-2.744 E -.15(ve)-.15 G
+5.244(.I).15 G 2.743(ft)-5.244 G .243(he pattern)-2.743 F .368
+(is stored in a shell v)144 379.2 R .368(ariable, quoting the v)-.25 F
.368(ariable e)-.25 F .368
(xpansion forces the entire pattern to be matched)-.15 F(literally)144
-196.8 Q 5.389(.T)-.65 G .389(reat brack)-5.739 F .389(et e)-.1 F .389
+391.2 Q 5.39(.T)-.65 G .39(reat brack)-5.74 F .389(et e)-.1 F .389
(xpressions in re)-.15 F .389(gular e)-.15 F .389(xpressions carefully)
-.15 F 2.889(,s)-.65 G .389(ince normal quoting and pat-)-2.889 F
-(tern characters lose their meanings between brack)144 208.8 Q(ets.)-.1
-E .662(The match succeeds if the pattern matches an)144 225.6 R 3.162
-(yp)-.15 G .662(art of the string.)-3.162 F .661
-(Anchor the pattern using the)5.662 F F2<00>3.161 E F1(and)144 237.6 Q
-F2($)2.5 E F1(re)2.5 E(gular e)-.15 E
-(xpression operators to force it to match the entire string.)-.15 E .75
-(The array v)144 254.4 R(ariable)-.25 E/F4 9/Times-Bold@0 SF -.27(BA)
-3.25 G(SH_REMA).27 E(TCH)-.855 E F1 .751
-(records which parts of the string matched the pattern.)3.001 F(The)
-5.751 E .825(element of)144 266.4 R F4 -.27(BA)3.325 G(SH_REMA).27 E
-(TCH)-.855 E F1 .825(with inde)3.075 F 3.325(x0c)-.15 G .825
+(tern characters lose their meanings between brack)144 403.2 Q(ets.)-.1
+E .661(The match succeeds if the pattern matches an)144 420 R 3.162(yp)
+-.15 G .662(art of the string.)-3.162 F .662
+(Anchor the pattern using the)5.662 F F2<00>3.162 E F1(and)144 432 Q F2
+($)2.5 E F1(re)2.5 E(gular e)-.15 E
+(xpression operators to force it to match the entire string.)-.15 E .751
+(The array v)144 448.8 R(ariable)-.25 E F3 -.27(BA)3.251 G(SH_REMA).27 E
+(TCH)-.855 E F1 .751
+(records which parts of the string matched the pattern.)3.001 F(The)5.75
+E .825(element of)144 460.8 R F3 -.27(BA)3.325 G(SH_REMA).27 E(TCH)-.855
+E F1 .825(with inde)3.075 F 3.325(x0c)-.15 G .825
(ontains the portion of the string matching the entire)-3.325 F(re)144
-278.4 Q 1.515(gular e)-.15 F 4.015(xpression. Substrings)-.15 F 1.515
+472.8 Q 1.515(gular e)-.15 F 4.015(xpression. Substrings)-.15 F 1.515
(matched by parenthesized sube)4.015 F 1.515(xpressions within the re)
--.15 F 1.515(gular e)-.15 F(x-)-.15 E .147(pression are sa)144 290.4 R
--.15(ve)-.2 G 2.647(di).15 G 2.647(nt)-2.647 G .146(he remaining)-2.647
-F F4 -.27(BA)2.646 G(SH_REMA).27 E(TCH)-.855 E F1 2.646(indices. The)
-2.396 F .146(element of)2.646 F F4 -.27(BA)2.646 G(SH_REMA).27 E(TCH)
--.855 E F1 .514(with inde)144 302.4 R(x)-.15 E F0(n)3.014 E F1 .514
+-.15 F 1.515(gular e)-.15 F(x-)-.15 E .146(pression are sa)144 484.8 R
+-.15(ve)-.2 G 2.646(di).15 G 2.646(nt)-2.646 G .146(he remaining)-2.646
+F F3 -.27(BA)2.646 G(SH_REMA).27 E(TCH)-.855 E F1 2.647(indices. The)
+2.396 F .147(element of)2.647 F F3 -.27(BA)2.647 G(SH_REMA).27 E(TCH)
+-.855 E F1 .514(with inde)144 496.8 R(x)-.15 E F0(n)3.014 E F1 .514
(is the portion of the string matching the)3.014 F F0(n)3.014 E F1 .514
(th parenthesized sube)B(xpression.)-.15 E F2(Bash)5.514 E F1(sets)3.014
-E F4 -.27(BA)144 314.4 S(SH_REMA).27 E(TCH)-.855 E F1 .659
-(in the global scope; declaring it as a local v)2.91 F .659
-(ariable will lead to une)-.25 F .659(xpected re-)-.15 F(sults.)144
-326.4 Q .785(Expressions may be combined using the follo)144 343.2 R
-.786(wing operators, listed in decreasing order of prece-)-.25 F(dence:)
-144 355.2 Q F2(\()144 372 Q F0 -.2(ex)2.5 G(pr).2 E(ession)-.37 E F2(\))
-2.5 E F1 .523(Returns the v)180 384 R .522(alue of)-.25 F F0 -.2(ex)
+E F3 -.27(BA)144 508.8 S(SH_REMA).27 E(TCH)-.855 E F1 .659
+(in the global scope; declaring it as a local v)2.909 F .66
+(ariable will lead to une)-.25 F .66(xpected re-)-.15 F(sults.)144 520.8
+Q .786(Expressions may be combined using the follo)144 537.6 R .785
+(wing operators, listed in decreasing order of prece-)-.25 F(dence:)144
+549.6 Q F2(\()144 566.4 Q F0 -.2(ex)2.5 G(pr).2 E(ession)-.37 E F2(\))
+2.5 E F1 .522(Returns the v)180 578.4 R .522(alue of)-.25 F F0 -.2(ex)
3.022 G(pr).2 E(ession)-.37 E F1 5.522(.T)C .522(his may be used to o)
-5.522 F -.15(ve)-.15 G .522(rride the normal precedence of).15 F
-(operators.)180 396 Q F2(!)144 408 Q F0 -.2(ex)2.5 G(pr).2 E(ession)-.37
-E F1 -.35(Tr)180 420 S(ue if).35 E F0 -.2(ex)2.5 G(pr).2 E(ession)-.37 E
-F1(is f)2.74 E(alse.)-.1 E F0 -.2(ex)144 432 S(pr).2 E(ession1)-.37 E F2
-(&&)2.5 E F0 -.2(ex)2.5 G(pr).2 E(ession2)-.37 E F1 -.35(Tr)180 444 S
-(ue if both).35 E F0 -.2(ex)2.5 G(pr).2 E(ession1)-.37 E F1(and)2.5 E F0
--.2(ex)2.5 G(pr).2 E(ession2)-.37 E F1(are true.)2.52 E F0 -.2(ex)144
-456 S(pr).2 E(ession1)-.37 E F2(||)2.5 E F0 -.2(ex)2.5 G(pr).2 E
-(ession2)-.37 E F1 -.35(Tr)180 468 S(ue if either).35 E F0 -.2(ex)2.5 G
-(pr).2 E(ession1)-.37 E F1(or)2.5 E F0 -.2(ex)2.5 G(pr).2 E(ession2)-.37
-E F1(is true.)2.52 E(The)144 484.8 Q F2(&&)2.675 E F1(and)2.675 E F2(||)
-2.675 E F1 .175(operators do not e)2.675 F -.25(va)-.25 G(luate).25 E F0
--.2(ex)2.675 G(pr).2 E(ession2)-.37 E F1 .175(if the v)2.675 F .175
-(alue of)-.25 F F0 -.2(ex)2.676 G(pr).2 E(ession1)-.37 E F1 .176(is suf)
-2.676 F .176(\214cient to de-)-.25 F(termine the return v)144 496.8 Q
-(alue of the entire conditional e)-.25 E(xpression.)-.15 E F2 -.25(fo)
-108 513.6 S(r).25 E F0(name)2.5 E F1 2.5([[)2.5 G F2(in)A F0(wor)2.5 E
-2.5(d.)-.37 G 1.666(..)-.834 G F1 2.5(];]).834 G F2(do)A F0(list)2.5 E
-F1(;)2.5 E F2(done)2.5 E F1 .269(First, e)144 525.6 R .269
-(xpand The list of w)-.15 F .268(ords follo)-.1 F(wing)-.25 E F2(in)
-2.768 E F1 2.768(,g)C .268(enerating a list of items.)-2.768 F .268
-(Then, the v)5.268 F(ariable)-.25 E F0(name)2.768 E F1(is)2.768 E .199
-(set to each element of this list in turn, and)144 537.6 R F0(list)2.699
-E F1 .2(is e)2.7 F -.15(xe)-.15 G .2(cuted each time.).15 F .2(If the)
-5.2 F F2(in)2.7 E F0(wor)2.7 E(d)-.37 E F1 .2(is omitted, the)2.7 F F2
--.25(fo)144 549.6 S(r).25 E F1 .762(command e)3.262 F -.15(xe)-.15 G
-(cutes).15 E F0(list)3.261 E F1 .761
-(once for each positional parameter that is set \(see)3.261 F F4 -.666
-(PA)3.261 G(RAMETERS).666 E F1(be-)3.011 E(lo)144 561.6 Q 2.575
-(w\). The)-.25 F .075(return status is the e)2.575 F .075
+(operators.)180 590.4 Q F2(!)144 602.4 Q F0 -.2(ex)2.5 G(pr).2 E(ession)
+-.37 E F1 -.35(Tr)180 614.4 S(ue if).35 E F0 -.2(ex)2.5 G(pr).2 E
+(ession)-.37 E F1(is f)2.74 E(alse.)-.1 E F0 -.2(ex)144 626.4 S(pr).2 E
+(ession1)-.37 E F2(&&)2.5 E F0 -.2(ex)2.5 G(pr).2 E(ession2)-.37 E F1
+-.35(Tr)180 638.4 S(ue if both).35 E F0 -.2(ex)2.5 G(pr).2 E(ession1)
+-.37 E F1(and)2.5 E F0 -.2(ex)2.5 G(pr).2 E(ession2)-.37 E F1(are true.)
+2.52 E F0 -.2(ex)144 650.4 S(pr).2 E(ession1)-.37 E F2(||)2.5 E F0 -.2
+(ex)2.5 G(pr).2 E(ession2)-.37 E F1 -.35(Tr)180 662.4 S(ue if either).35
+E F0 -.2(ex)2.5 G(pr).2 E(ession1)-.37 E F1(or)2.5 E F0 -.2(ex)2.5 G(pr)
+.2 E(ession2)-.37 E F1(is true.)2.52 E(The)144 679.2 Q F2(&&)2.676 E F1
+(and)2.676 E F2(||)2.676 E F1 .175(operators do not e)2.676 F -.25(va)
+-.25 G(luate).25 E F0 -.2(ex)2.675 G(pr).2 E(ession2)-.37 E F1 .175
+(if the v)2.675 F .175(alue of)-.25 F F0 -.2(ex)2.675 G(pr).2 E(ession1)
+-.37 E F1 .175(is suf)2.675 F .175(\214cient to de-)-.25 F
+(termine the return v)144 691.2 Q(alue of the entire conditional e)-.25
+E(xpression.)-.15 E(GNU Bash 5.3)72 768 Q(2026 January 14)141.79 E(6)
+195.95 E 0 Cg EP
+%%Page: 7 7
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF -.25(fo)108 84 S(r).25 E F0
+(name)2.5 E F1 2.5([[)2.5 G F2(in)A F0(wor)2.5 E 2.5(d.)-.37 G 1.666(..)
+-.834 G F1 2.5(];]).834 G F2(do)A F0(list)2.5 E F1(;)2.5 E F2(done)2.5 E
+F1 .464(First, e)144 96 R .464(xpand the list of w)-.15 F .464
+(ords follo)-.1 F(wing)-.25 E F2(in)2.964 E F1 2.964(,g)C .464
+(enerating a list of items.)-2.964 F .464(Then, the v)5.464 F(ariable)
+-.25 E F0(name)2.965 E F1(is)2.965 E .2
+(set to each element of this list in turn, and)144 108 R F0(list)2.7 E
+F1 .199(is e)2.7 F -.15(xe)-.15 G .199(cuted each time.).15 F .199
+(If the)5.199 F F2(in)2.699 E F0(wor)2.699 E(d)-.37 E F1 .199
+(is omitted, the)2.699 F F2 -.25(fo)144 120 S(r).25 E F1 .761(command e)
+3.261 F -.15(xe)-.15 G(cutes).15 E F0(list)3.261 E F1 .761
+(once for each positional parameter that is set \(see)3.261 F/F3 9
+/Times-Bold@0 SF -.666(PA)3.262 G(RAMETERS).666 E F1(be-)3.012 E(lo)144
+132 Q 2.575(w\). The)-.25 F .075(return status is the e)2.575 F .075
(xit status of the last command that e)-.15 F -.15(xe)-.15 G 2.575
(cutes. If).15 F .075(the e)2.575 F .075(xpansion of the)-.15 F
-(items follo)144 573.6 Q(wing)-.25 E F2(in)2.5 E F1
+(items follo)144 144 Q(wing)-.25 E F2(in)2.5 E F1
(results in an empty list, no commands are e)2.5 E -.15(xe)-.15 G
-(cuted, and the return status is 0.).15 E F2 -.25(fo)108 590.4 S(r).25 E
+(cuted, and the return status is 0.).15 E F2 -.25(fo)108 160.8 S(r).25 E
F1(\(\()2.5 E F0 -.2(ex)2.5 G(pr1).2 E F1(;)2.5 E F0 -.2(ex)2.5 G(pr2).2
E F1(;)2.5 E F0 -.2(ex)2.5 G(pr3).2 E F1(\)\) [;])2.5 E F2(do)2.5 E F0
-(list)2.5 E F1(;)2.5 E F2(done)2.5 E F1 2.52(First, e)144 602.4 R -.25
+(list)2.5 E F1(;)2.5 E F2(done)2.5 E F1 2.519(First, e)144 172.8 R -.25
(va)-.25 G 2.519(luate the arithmetic e).25 F(xpression)-.15 E F0 -.2
(ex)5.019 G(pr1).2 E F1 2.519(according to the rules described belo)
-5.019 F 5.019(wu)-.25 G(nder)-5.019 E F4 .922(ARITHMETIC EV)144 614.4 R
-(ALU)-1.215 E -.855(AT)-.54 G(ION).855 E F3(.)A F1 .922
-(Then, repeatedly e)5.422 F -.25(va)-.25 G .923(luate the arithmetic e)
-.25 F(xpression)-.15 E F0 -.2(ex)3.423 G(pr2).2 E F1 .923(until it)3.423
-F -.25(eva)144 626.4 S 1.409(luates to zero.).25 F 1.409(Each time)6.409
-F F0 -.2(ex)3.909 G(pr2).2 E F1 -.25(eva)3.909 G 1.409
-(luates to a non-zero v).25 F 1.408(alue, e)-.25 F -.15(xe)-.15 G(cute)
-.15 E F0(list)3.908 E F1 1.408(and e)3.908 F -.25(va)-.25 G 1.408
-(luate the).25 F .052(arithmetic e)144 638.4 R(xpression)-.15 E F0 -.2
-(ex)2.553 G(pr3).2 E F1 5.053(.I)C 2.553(fa)-5.053 G .353 -.15(ny ex)
+5.019 F 5.02(wu)-.25 G(nder)-5.02 E F3 .923(ARITHMETIC EV)144 184.8 R
+(ALU)-1.215 E -.855(AT)-.54 G(ION).855 E/F4 9/Times-Roman@0 SF(.)A F1
+.923(Then, repeatedly e)5.423 F -.25(va)-.25 G .922
+(luate the arithmetic e).25 F(xpression)-.15 E F0 -.2(ex)3.422 G(pr2).2
+E F1 .922(until it)3.422 F -.25(eva)144 196.8 S 1.408(luates to zero.)
+.25 F 1.408(Each time)6.408 F F0 -.2(ex)3.908 G(pr2).2 E F1 -.25(eva)
+3.909 G 1.409(luates to a non-zero v).25 F 1.409(alue, e)-.25 F -.15(xe)
+-.15 G(cute).15 E F0(list)3.909 E F1 1.409(and e)3.909 F -.25(va)-.25 G
+1.409(luate the).25 F .053(arithmetic e)144 208.8 R(xpression)-.15 E F0
+-.2(ex)2.553 G(pr3).2 E F1 5.053(.I)C 2.553(fa)-5.053 G .353 -.15(ny ex)
-2.553 H .053(pression is omitted, it beha).15 F -.15(ve)-.2 G 2.553(sa)
.15 G 2.553(si)-2.553 G 2.553(fi)-2.553 G 2.553(te)-2.553 G -.25(va)
--2.803 G .053(luates to 1.).25 F .053(The re-)5.053 F .692(turn v)144
-650.4 R .692(alue is the e)-.25 F .692
+-2.803 G .053(luates to 1.).25 F .052(The re-)5.053 F .692(turn v)144
+220.8 R .692(alue is the e)-.25 F .692
(xit status of the last command in)-.15 F F0(list)3.192 E F1 .692
(that is e)3.192 F -.15(xe)-.15 G .692(cuted, or non-zero if an).15 F
-3.192(yo)-.15 G 3.192(ft)-3.192 G(he)-3.192 E -.15(ex)144 662.4 S
-(pressions is in).15 E -.25(va)-.4 G(lid.).25 E .856(Use the)144 679.2 R
-F2(br)3.356 E(eak)-.18 E F1(and)3.356 E F2(continue)3.356 E F1 -.2(bu)
-3.356 G .857(iltins \(see).2 F F4 .857(SHELL B)3.357 F(UIL)-.09 E .857
-(TIN COMMANDS)-.828 F F1(belo)3.107 E .857(w\) to control loop)-.25 F
--.15(exe)144 691.2 S(cution.).15 E(GNU Bash 5.3)72 768 Q(2025 April 7)
-149.285 E(6)203.445 E 0 Cg EP
-%%Page: 7 7
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(select)108 84 Q F0(name)2.5 E
-F1([)2.5 E F2(in)2.5 E F0(wor)2.5 E(d)-.37 E F1 2.5(];)2.5 G F2(do)A F0
-(list)2.5 E F1(;)2.5 E F2(done)2.5 E F1 .017(First, e)144 96 R .016
-(xpand the list of w)-.15 F .016(ords follo)-.1 F(wing)-.25 E F2(in)
-2.516 E F1 2.516(,g)C .016
+3.192(yo)-.15 G 3.192(ft)-3.192 G(he)-3.192 E -.15(ex)144 232.8 S
+(pressions is in).15 E -.25(va)-.4 G(lid.).25 E .857(Use the)144 249.6 R
+F2(br)3.357 E(eak)-.18 E F1(and)3.357 E F2(continue)3.357 E F1 -.2(bu)
+3.357 G .857(iltins \(see).2 F F3 .857(SHELL B)3.357 F(UIL)-.09 E .856
+(TIN COMMANDS)-.828 F F1(belo)3.106 E .856(w\) to control loop)-.25 F
+-.15(exe)144 261.6 S(cution.).15 E F2(select)108 278.4 Q F0(name)2.5 E
+F1 2.5([[)2.5 G F2(in)A F0(wor)2.5 E 2.5(d.)-.37 G 1.666(..)-.834 G F1
+2.5(];]).834 G F2(do)A F0(list)2.5 E F1(;)2.5 E F2(done)2.5 E F1 .016
+(First, e)144 290.4 R .016(xpand the list of w)-.15 F .016(ords follo)
+-.1 F(wing)-.25 E F2(in)2.516 E F1 2.516(,g)C .016
(enerating a list of items, and print the set of e)-2.516 F(xpanded)-.15
-E -.1(wo)144 108 S 1.143(rds the standard error).1 F 3.643(,e)-.4 G
+E -.1(wo)144 302.4 S 1.143(rds the standard error).1 F 3.643(,e)-.4 G
1.143(ach preceded by a number)-3.643 F 6.143(.I)-.55 G 3.643(ft)-6.143
G(he)-3.643 E F2(in)3.643 E F0(wor)3.643 E(d)-.37 E F1 1.143
-(is omitted, print the posi-)3.643 F 1.307(tional parameters \(see)144
-120 R/F3 9/Times-Bold@0 SF -.666(PA)3.807 G(RAMETERS).666 E F1(belo)
-3.557 E(w\).)-.25 E F2(select)6.307 E F1 1.306(then displays the)3.806 F
-F3(PS3)3.806 E F1 1.306(prompt and reads a)3.556 F .013
-(line from the standard input.)144 132 R .013
+(is omitted, print the posi-)3.643 F 1.306(tional parameters \(see)144
+314.4 R F3 -.666(PA)3.806 G(RAMETERS).666 E F1(belo)3.556 E(w\).)-.25 E
+F2(select)6.306 E F1 1.306(then displays the)3.806 F F3(PS3)3.807 E F1
+1.307(prompt and reads a)3.557 F .013(line from the standard input.)144
+326.4 R .013
(If the line consists of a number corresponding to one of the displayed)
-5.013 F -.1(wo)144 144 S 1.14(rds, then).1 F F2(select)3.64 E F1 1.14
-(sets the v)3.64 F 1.14(alue of)-.25 F F0(name)4 E F1 1.139(to that w)
-3.82 F 3.639(ord. If)-.1 F 1.139(the line is empty)3.639 F(,)-.65 E F2
-(select)3.639 E F1 1.139(displays the)3.639 F -.1(wo)144 156 S 1.23
-(rds and prompt ag).1 F 3.73(ain. If)-.05 F 1.23(EOF is read,)3.73 F F2
-(select)3.73 E F1 1.23(completes and returns 1.)3.73 F(An)6.23 E 3.73
-(yo)-.15 G 1.23(ther v)-3.73 F 1.23(alue sets)-.25 F F0(name)144.36 168
-Q F1 .406(to null.)3.086 F .406(The line read is sa)5.406 F -.15(ve)-.2
-G 2.906(di).15 G 2.906(nt)-2.906 G .406(he v)-2.906 F(ariable)-.25 E F3
-(REPL)2.906 E(Y)-.828 E/F4 9/Times-Roman@0 SF(.)A F1(The)4.906 E F0
-(list)2.996 E F1 .406(is e)3.586 F -.15(xe)-.15 G .406
-(cuted after each selec-).15 F .139(tion until a)144 180 R F2(br)2.639 E
-(eak)-.18 E F1 .139(command is e)2.639 F -.15(xe)-.15 G 2.639
-(cuted. The).15 F -.15(ex)2.639 G .139(it status of).15 F F2(select)2.64
-E F1 .14(is the e)2.64 F .14(xit status of the last com-)-.15 F(mand e)
-144 192 Q -.15(xe)-.15 G(cuted in).15 E F0(list)2.59 E F1 2.5(,o).68 G
-2.5(rz)-2.5 G(ero if no commands were e)-2.5 E -.15(xe)-.15 G(cuted.).15
-E F2(case)108 208.8 Q F0(wor)2.5 E(d)-.37 E F2(in)2.5 E F1 2.5([[)2.5 G
-(\(])-2.5 E F0(pattern)2.5 E F1([)2.5 E F2(|)2.5 E F0(pattern)2.5 E F1
-2.5(].)2.5 G -3.332 1.666(.. \))-.834 H F0(list).834 E F1(;; ] .)2.5 E
-1.666(..)1.666 G F2(esac).834 E F1(A)144 220.8 Q F2(case)2.81 E F1 .31
-(command \214rst e)2.81 F(xpands)-.15 E F0(wor)2.81 E(d)-.37 E F1 2.81
-(,a)C .309(nd tries to match it ag)-2.81 F .309(ainst each)-.05 F F0
-(pattern)2.809 E F1 .309(in turn, proceeding)2.809 F .971
+5.013 F -.1(wo)144 338.4 S 1.139(rds, then).1 F F2(select)3.639 E F1
+1.139(sets the v)3.639 F 1.139(alue of)-.25 F F0(name)3.999 E F1 1.139
+(to that w)3.819 F 3.64(ord. If)-.1 F 1.14(the line is empty)3.64 F(,)
+-.65 E F2(select)3.64 E F1 1.14(displays the)3.64 F -.1(wo)144 350.4 S
+1.23(rds and prompt ag).1 F 3.73(ain. If)-.05 F 1.23(EOF is read,)3.73 F
+F2(select)3.73 E F1 1.23(completes and returns 1.)3.73 F(An)6.23 E 3.73
+(yo)-.15 G 1.23(ther v)-3.73 F 1.23(alue sets)-.25 F F0(name)144.36
+362.4 Q F1 .406(to null.)3.085 F .406(The line read is sa)5.406 F -.15
+(ve)-.2 G 2.906(di).15 G 2.906(nt)-2.906 G .406(he v)-2.906 F(ariable)
+-.25 E F3(REPL)2.906 E(Y)-.828 E F4(.)A F1(The)4.906 E F0(list)2.996 E
+F1 .406(is e)3.586 F -.15(xe)-.15 G .406(cuted after each selec-).15 F
+.14(tion until a)144 374.4 R F2(br)2.64 E(eak)-.18 E F1 .14
+(command is e)2.64 F -.15(xe)-.15 G 2.64(cuted. The).15 F -.15(ex)2.64 G
+.14(it status of).15 F F2(select)2.639 E F1 .139(is the e)2.639 F .139
+(xit status of the last com-)-.15 F(mand e)144 386.4 Q -.15(xe)-.15 G
+(cuted in).15 E F0(list)2.59 E F1 2.5(,o).68 G 2.5(rz)-2.5 G
+(ero if no commands were e)-2.5 E -.15(xe)-.15 G(cuted.).15 E F2(case)
+108 403.2 Q F0(wor)2.5 E(d)-.37 E F2(in)2.5 E F1 2.5([[)2.5 G(\(])-2.5 E
+F0(pattern)2.5 E F1([)2.5 E F2(|)2.5 E F0(pattern)2.5 E F1 2.5(].)2.5 G
+-3.332 1.666(.. \))-.834 H F0(list).834 E F1(;; ] .)2.5 E 1.666(..)1.666
+G F2(esac).834 E F1(A)144 415.2 Q F2(case)2.809 E F1 .309
+(command \214rst e)2.809 F(xpands)-.15 E F0(wor)2.809 E(d)-.37 E F1
+2.809(,a)C .309(nd tries to match it ag)-2.809 F .31(ainst each)-.05 F
+F0(pattern)2.81 E F1 .31(in turn, proceeding)2.81 F .245
(from \214rst to last, using the matching rules described under)144
-232.8 R F2 -.1(Pa)3.471 G(tter).1 E 3.471(nM)-.15 G(atching)-3.471 E F1
-(belo)3.471 E 4.771 -.65(w. A)-.25 H(pattern)4.121 E 1.007
-(list is a set of one or more patterns separated by)144 244.8 R 3.506
-(,a)5.172 G 1.006(nd the \) operator terminates the pattern list.)-3.506
-F(The)144 256.8 Q F0(wor)3.015 E(d)-.37 E F1 .515(is e)3.015 F .515
-(xpanded using tilde e)-.15 F .515(xpansion, parameter and v)-.15 F .515
-(ariable e)-.25 F .515(xpansion, arithmetic e)-.15 F(xpan-)-.15 E .051
-(sion, command substitution, process substitution and quote remo)144
-268.8 R -.25(va)-.15 G 2.551(l. Each).25 F F0(pattern)2.551 E F1 -.15
-(ex)2.551 G .05(amined is e).15 F(x-)-.15 E .76(panded using tilde e)144
-280.8 R .76(xpansion, parameter and v)-.15 F .76(ariable e)-.25 F .76
-(xpansion, arithmetic e)-.15 F .76(xpansion, command)-.15 F .419
-(substitution, process substitution, and quote remo)144 292.8 R -.25(va)
--.15 G 2.919(l. If).25 F(the)2.919 E F2(nocasematch)2.919 E F1 .419
-(shell option is enabled,)2.919 F .706
-(the match is performed without re)144 304.8 R -.05(ga)-.15 G .706
-(rd to the case of alphabetic characters.).05 F(A)5.706 E F0(clause)
-3.207 E F1 .707(is a pattern)3.207 F(list and an associated)144 316.8 Q
-F0(list)2.5 E F1(.)A .14(When a match is found,)144 333.6 R F2(case)2.64
-E F1 -.15(exe)2.64 G .139(cutes the corresponding).15 F F0(list)2.639 E
-F1 5.139(.I)C 2.639(ft)-5.139 G(he)-2.639 E F2(;;)2.639 E F1 .139
-(operator terminates the case)2.639 F .695(clause, the)144 345.6 R F2
-(case)3.195 E F1 .695(command completes after the \214rst match.)3.195 F
-(Using)5.695 E F2(;&)3.195 E F1 .695(in place of)3.195 F F2(;;)3.195 E
-F1 .695(causes e)3.195 F -.15(xe)-.15 G(cu-).15 E .499
-(tion to continue with the)144 357.6 R F0(list)2.999 E F1 .498
-(associated with the ne)2.999 F .498(xt pattern list.)-.15 F(Using)5.498
-E F2(;;&)2.998 E F1 .498(in place of)2.998 F F2(;;)2.998 E F1(causes)
-2.998 E .669(the shell to test the ne)144 369.6 R .669
-(xt pattern list in the statement, if an)-.15 F 1.97 -.65(y, a)-.15 H
-.67(nd e).65 F -.15(xe)-.15 G .67(cute an).15 F 3.17(ya)-.15 G
-(ssociated)-3.17 E F0(list)3.17 E F1 .67(if the)3.17 F 1.367
-(match succeeds, continuing the case statement e)144 381.6 R -.15(xe)
--.15 G 1.367(cution as if the pattern list had not matched.).15 F(The e)
-144 393.6 Q(xit status is zero if no pattern matches.)-.15 E
-(Otherwise, it is the e)144 410.4 Q(xit status of the last command e)
--.15 E -.15(xe)-.15 G(cuted in the last).15 E F0(list)2.5 E F1 -.15(exe)
-2.5 G(cuted.).15 E F2(if)108 427.2 Q F0(list)2.5 E F1(;)A F2(then)2.5 E
-F0(list)2.5 E F1 2.5(;[)C F2(elif)A F0(list)2.5 E F1(;)A F2(then)2.5 E
-F0(list)2.5 E F1 2.5(;].)C -3.332 1.666(.. [)-.834 H F2(else).834 E F0
-(list)2.5 E F1 2.5(;])C F2<8c>A F1(The)144 439.2 Q F2(if)2.977 E F0
+427.2 R F2 -.1(Pa)2.745 G(tter).1 E 2.744(nM)-.15 G(atching)-2.744 E F1
+(belo)2.744 E 4.044 -.65(w. T)-.25 H(he).65 E F0(wor)2.744 E(d)-.37 E F1
+(is)2.744 E -.15(ex)144 439.2 S 1.72(panded using tilde e).15 F 1.72
+(xpansion, parameter and v)-.15 F 1.72(ariable e)-.25 F 1.72
+(xpansion, arithmetic e)-.15 F 1.72(xpansion, com-)-.15 F 1.268
+(mand substitution, process substitution and quote remo)144 451.2 R -.25
+(va)-.15 G 3.768(l. Each).25 F F0(pattern)3.768 E F1 -.15(ex)3.768 G
+1.268(amined is e).15 F(xpanded)-.15 E .203(using tilde e)144 463.2 R
+.203(xpansion, parameter and v)-.15 F .203(ariable e)-.25 F .203
+(xpansion, arithmetic e)-.15 F .203(xpansion, command substitu-)-.15 F
+1.649(tion, process substitution, and quote remo)144 475.2 R -.25(va)
+-.15 G 4.149(l. If).25 F(the)4.148 E F2(nocasematch)4.148 E F1 1.648
+(shell option is enabled, the)4.148 F(match is performed without re)144
+487.2 Q -.05(ga)-.15 G(rd to the case of alphabetic characters.).05 E(A)
+144 504 Q F0 .596(pattern list)3.096 F F1 .596
+(is a set of one or more patterns separated by)3.096 F F2(|)3.096 E F1
+3.096(,a)C .596(nd terminated by the)-3.096 F F2(\))3.096 E F1(operator)
+3.096 E 5.596(.A)-.55 G(case)144 516 Q F0(clause)3.008 E F1 .507
+(is a pattern list and an associated)3.008 F F0(list)3.007 E F1 3.007
+(,t)C .507(erminated by)-3.007 F F2(;;)3.007 E F1(,)A F2(;&)3.007 E F1
+3.007(,o)C(r)-3.007 E F2(;;&)3.007 E F1 5.507(.T)C .507
+(he terminator is)-5.507 F 1.296(optional for the last clause preceding)
+144 528 R F2(esac)3.796 E F1 6.296(.T)C 1.296
+(here may be an arbitrary number of case clauses.)-6.296 F
+(The \214rst pattern that matches determines the)144 540 Q F0(list)2.5 E
+F1(that is e)2.5 E -.15(xe)-.15 G(cuted.).15 E .14
+(When a match is found,)144 556.8 R F2(case)2.64 E F1 -.15(exe)2.64 G
+.139(cutes the corresponding).15 F F0(list)2.639 E F1 5.139(.I)C 2.639
+(ft)-5.139 G(he)-2.639 E F2(;;)2.639 E F1 .139
+(operator terminates the case)2.639 F .237(clause, the)144 568.8 R F2
+(case)2.737 E F1 .237(command completes after the \214rst match.)2.737 F
+.237(Using the)5.237 F F2(;&)2.737 E F1 .238(terminator continues e)
+2.737 F -.15(xe)-.15 G(-).15 E 1.08(cution with the)144 580.8 R F0(list)
+3.58 E F1 1.08(associated with the ne)3.58 F 1.08(xt clause, if an)-.15
+F 4.88 -.65(y. U)-.15 H 1.08(sing the).65 F F2(;;&)3.58 E F1 1.08
+(terminator causes the)3.58 F .728
+(shell to test the pattern list in the ne)144 592.8 R .728
+(xt clause, if an)-.15 F 2.029 -.65(y, a)-.15 H .729(nd e).65 F -.15(xe)
+-.15 G .729(cute an).15 F 3.229(ya)-.15 G(ssociated)-3.229 E F0(list)
+3.229 E F1 .729(if the match)3.229 F
+(succeeds, continuing the case statement e)144 604.8 Q -.15(xe)-.15 G
+(cution as if the pattern list had not matched.).15 E .708(The e)144
+621.6 R .707(xit status is zero if no pattern matches.)-.15 F .707
+(Otherwise, it is the e)5.707 F .707(xit status of the last command)-.15
+F -.15(exe)144 633.6 S(cuted in the last).15 E F0(list)2.5 E F1 -.15
+(exe)2.5 G(cuted.).15 E F2(if)108 650.4 Q F0(list)2.5 E F1(;)A F2(then)
+2.5 E F0(list)2.5 E F1 2.5(;[)C F2(elif)A F0(list)2.5 E F1(;)A F2(then)
+2.5 E F0(list)2.5 E F1 2.5(;].)C -3.332 1.666(.. [)-.834 H F2(else).834
+E F0(list)2.5 E F1 2.5(;])C F2<8c>A F1(The)144 662.4 Q F2(if)2.977 E F0
(list)3.067 E F1 .478(is e)3.658 F -.15(xe)-.15 G 2.978(cuted. If).15 F
.478(its e)2.978 F .478(xit status is zero, the)-.15 F F2(then)2.978 E
F0(list)2.978 E F1 .478(is e)2.978 F -.15(xe)-.15 G 2.978
(cuted. Otherwise,).15 F(each)2.978 E F2(elif)2.978 E F0(list)2.978 E F1
-1.088(is e)144 451.2 R -.15(xe)-.15 G 1.088(cuted in turn, and if its e)
+1.088(is e)144 674.4 R -.15(xe)-.15 G 1.088(cuted in turn, and if its e)
.15 F 1.087(xit status is zero, the corresponding)-.15 F F2(then)3.587 E
F0(list)3.587 E F1 1.087(is e)3.587 F -.15(xe)-.15 G 1.087
-(cuted and the).15 F .103(command completes.)144 463.2 R .103
+(cuted and the).15 F .103(command completes.)144 686.4 R .103
(Otherwise, the)5.103 F F2(else)2.603 E F0(list)2.603 E F1 .103(is e)
2.603 F -.15(xe)-.15 G .103(cuted, if present.).15 F .103(The e)5.103 F
.103(xit status is the e)-.15 F .104(xit sta-)-.15 F
-(tus of the last command e)144 475.2 Q -.15(xe)-.15 G
-(cuted, or zero if no condition tested true.).15 E F2(while)108 492 Q F0
-(list-1)2.5 E F1(;)A F2(do)2.5 E F0(list-2)2.5 E F1(;)A F2(done)2.5 E
-(until)108 504 Q F0(list-1)2.5 E F1(;)A F2(do)2.5 E F0(list-2)2.5 E F1
-(;)A F2(done)2.5 E F1(The)144 516 Q F2(while)3.45 E F1 .95
-(command continuously e)3.45 F -.15(xe)-.15 G .95(cutes the list).15 F
-F0(list-2)3.45 E F1 .95(as long as the last command in the list)3.45 F
-F0(list-1)144 528 Q F1 .205(returns an e)2.705 F .205
-(xit status of zero.)-.15 F(The)5.205 E F2(until)2.705 E F1 .205
-(command is identical to the)2.705 F F2(while)2.705 E F1 .205
-(command, e)2.705 F(xcept)-.15 E .6(that the test is ne)144 540 R -.05
-(ga)-.15 G(ted:).05 E F0(list-2)3.19 E F1 .6(is e)3.12 F -.15(xe)-.15 G
-.599(cuted as long as the last command in).15 F F0(list-1)3.189 E F1
-.599(returns a non-zero)3.099 F -.15(ex)144 552 S .204(it status.).15 F
-.204(The e)5.204 F .204(xit status of the)-.15 F F2(while)2.704 E F1
-(and)2.704 E F2(until)2.704 E F1 .205(commands is the e)2.704 F .205
-(xit status of the last command)-.15 F -.15(exe)144 564 S(cuted in).15 E
-F0(list-2)2.5 E F1 2.5(,o)C 2.5(rz)-2.5 G(ero if none w)-2.5 E(as e)-.1
-E -.15(xe)-.15 G(cuted.).15 E F2(Copr)87 580.8 Q(ocesses)-.18 E F1(A)108
-592.8 Q F0(copr)2.602 E(ocess)-.45 E F1 .102
-(is a shell command preceded by the)2.602 F F2(copr)2.602 E(oc)-.18 E F1
-(reserv)2.602 E .102(ed w)-.15 F 2.602(ord. A)-.1 F .102(coprocess is e)
-2.602 F -.15(xe)-.15 G .101(cuted asynchro-).15 F .641
+(tus of the last command e)144 698.4 Q -.15(xe)-.15 G
+(cuted, or zero if no condition tested true.).15 E(GNU Bash 5.3)72 768 Q
+(2026 January 14)141.79 E(7)195.95 E 0 Cg EP
+%%Page: 8 8
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(while)108 84 Q F0(list-1)2.5
+E F1(;)A F2(do)2.5 E F0(list-2)2.5 E F1(;)A F2(done)2.5 E(until)108 96 Q
+F0(list-1)2.5 E F1(;)A F2(do)2.5 E F0(list-2)2.5 E F1(;)A F2(done)2.5 E
+F1(The)144 108 Q F2(while)3.45 E F1 .95(command continuously e)3.45 F
+-.15(xe)-.15 G .95(cutes the list).15 F F0(list-2)3.45 E F1 .95
+(as long as the last command in the list)3.45 F F0(list-1)144 120 Q F1
+.205(returns an e)2.705 F .205(xit status of zero.)-.15 F(The)5.205 E F2
+(until)2.705 E F1 .205(command is identical to the)2.705 F F2(while)
+2.705 E F1 .205(command, e)2.705 F(xcept)-.15 E .6(that the test is ne)
+144 132 R -.05(ga)-.15 G(ted:).05 E F0(list-2)3.19 E F1 .6(is e)3.12 F
+-.15(xe)-.15 G .599(cuted as long as the last command in).15 F F0
+(list-1)3.189 E F1 .599(returns a non-zero)3.099 F -.15(ex)144 144 S
+.204(it status.).15 F .204(The e)5.204 F .204(xit status of the)-.15 F
+F2(while)2.704 E F1(and)2.704 E F2(until)2.704 E F1 .205
+(commands is the e)2.704 F .205(xit status of the last command)-.15 F
+-.15(exe)144 156 S(cuted in).15 E F0(list-2)2.5 E F1 2.5(,o)C 2.5(rz)
+-2.5 G(ero if none w)-2.5 E(as e)-.1 E -.15(xe)-.15 G(cuted.).15 E F2
+(Copr)87 172.8 Q(ocesses)-.18 E F1(A)108 184.8 Q F0(copr)2.602 E(ocess)
+-.45 E F1 .102(is a shell command preceded by the)2.602 F F2(copr)2.602
+E(oc)-.18 E F1(reserv)2.602 E .102(ed w)-.15 F 2.602(ord. A)-.1 F .102
+(coprocess is e)2.602 F -.15(xe)-.15 G .101(cuted asynchro-).15 F .641
(nously in a subshell, as if the command had been terminated with the)
-108 604.8 R F2(&)3.142 E F1 .642(control operator)3.142 F 3.142(,w)-.4 G
+108 196.8 R F2(&)3.142 E F1 .642(control operator)3.142 F 3.142(,w)-.4 G
.642(ith a tw)-3.142 F(o-w)-.1 E(ay)-.1 E
-(pipe established between the e)108 616.8 Q -.15(xe)-.15 G
+(pipe established between the e)108 208.8 Q -.15(xe)-.15 G
(cuting shell and the coprocess.).15 E(The syntax for a coprocess is:)
-108 633.6 Q F2(copr)144 650.4 Q(oc)-.18 E F1([)2.5 E F0 -.27(NA)C(ME).27
+108 225.6 Q F2(copr)144 242.4 Q(oc)-.18 E F1([)2.5 E F0 -.27(NA)C(ME).27
E F1(])A F0(command)2.5 E F1([)2.5 E F0 -.37(re)C(dir).37 E(ections)-.37
-E F1(])A .599(This creates a coprocess named)108 667.2 R F0 -.27(NA)
+E F1(])A .599(This creates a coprocess named)108 259.2 R F0 -.27(NA)
3.099 G(ME).27 E F1(.)A F0(command)5.599 E F1 .599
(may be either a simple command or a compound com-)3.099 F 1.4
-(mand \(see abo)108 679.2 R -.15(ve)-.15 G(\).).15 E F0 -.27(NA)6.4 G
+(mand \(see abo)108 271.2 R -.15(ve)-.15 G(\).).15 E F0 -.27(NA)6.4 G
(ME).27 E F1 1.4(is a shell v)3.9 F 1.4(ariable name.)-.25 F(If)6.4 E F0
-.27(NA)3.9 G(ME).27 E F1 1.4(is not supplied, the def)3.9 F 1.4
-(ault name is)-.1 F F2(CO-)3.9 E(PR)108 691.2 Q(OC)-.3 E F1(.)A
-(The recommended form to use for a coprocess is)108 708 Q F2(copr)144
-724.8 Q(oc)-.18 E F0 -.27(NA)2.5 G(ME).27 E F1({)2.5 E F0(command)2.5 E
-F1([)2.5 E F0 -.37(re)C(dir).37 E(ections)-.37 E F1(]; })A(GNU Bash 5.3)
-72 768 Q(2025 April 7)149.285 E(7)203.445 E 0 Cg EP
-%%Page: 8 8
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E .799(This form is preferred because simple command\
-s result in the coprocess al)108 84 R -.1(wa)-.1 G .799(ys being named)
-.1 F/F2 10/Times-Bold@0 SF(COPR)3.299 E(OC)-.3 E F1(,)A(and it is simpl\
-er to use and more complete than the other compound commands.)108 96 Q
-(If)108 112.8 Q F0(command)3.061 E F1 .561(is a compound command,)3.061
-F F0 -.27(NA)3.061 G(ME).27 E F1 .562(is optional. The w)3.061 F .562
-(ord follo)-.1 F(wing)-.25 E F2(copr)3.062 E(oc)-.18 E F1 .562
-(determines whether)3.062 F .339(that w)108 124.8 R .339
-(ord is interpreted as a v)-.1 F .339
+(ault name is)-.1 F F2(CO-)3.9 E(PR)108 283.2 Q(OC)-.3 E F1(.)A
+(The recommended form to use for a coprocess is)108 300 Q F2(copr)144
+316.8 Q(oc)-.18 E F0 -.27(NA)2.5 G(ME).27 E F1({)2.5 E F0(command)2.5 E
+F1([)2.5 E F0 -.37(re)C(dir).37 E(ections)-.37 E F1(]; })A .799(This fo\
+rm is preferred because simple commands result in the coprocess al)108
+333.6 R -.1(wa)-.1 G .799(ys being named).1 F F2(COPR)3.299 E(OC)-.3 E
+F1(,)A(and it is simpler to use and more complete than the other compou\
+nd commands.)108 345.6 Q(If)108 362.4 Q F0(command)3.061 E F1 .561
+(is a compound command,)3.061 F F0 -.27(NA)3.061 G(ME).27 E F1 .562
+(is optional. The w)3.061 F .562(ord follo)-.1 F(wing)-.25 E F2(copr)
+3.062 E(oc)-.18 E F1 .562(determines whether)3.062 F .339(that w)108
+374.4 R .339(ord is interpreted as a v)-.1 F .339
(ariable name: it is interpreted as)-.25 F F0 -.27(NA)2.839 G(ME).27 E
F1 .338(if it is not a reserv)2.838 F .338(ed w)-.15 F .338
-(ord that intro-)-.1 F 1.121(duces a compound command.)108 136.8 R(If)
+(ord that intro-)-.1 F 1.121(duces a compound command.)108 386.4 R(If)
6.121 E F0(command)3.621 E F1 1.121(is a simple command,)3.621 F F0 -.27
(NA)3.621 G(ME).27 E F1 1.121(is not allo)3.621 F 1.122
(wed; this is to a)-.25 F -.2(vo)-.2 G(id).2 E(confusion between)108
-148.8 Q F0 -.27(NA)2.5 G(ME).27 E F1(and the \214rst w)2.5 E
-(ord of the simple command.)-.1 E .09(When the coprocess is e)108 165.6
+398.4 Q F0 -.27(NA)2.5 G(ME).27 E F1(and the \214rst w)2.5 E
+(ord of the simple command.)-.1 E .09(When the coprocess is e)108 415.2
R -.15(xe)-.15 G .09(cuted, the shell creates an array v).15 F .09
(ariable \(see)-.25 F F2(Arrays)2.59 E F1(belo)2.59 E .09(w\) named)-.25
-F F0 -.27(NA)2.59 G(ME).27 E F1 .09(in the)2.59 F(conte)108 177.6 Q .302
+F F0 -.27(NA)2.59 G(ME).27 E F1 .09(in the)2.59 F(conte)108 427.2 Q .302
(xt of the e)-.15 F -.15(xe)-.15 G .302(cuting shell.).15 F .302
(The standard output of)5.302 F F0(command)3.002 E F1 .302
(is connected via a pipe to a \214le descriptor)3.572 F .588(in the e)
-108 189.6 R -.15(xe)-.15 G .587
+108 439.2 R -.15(xe)-.15 G .587
(cuting shell, and that \214le descriptor is assigned to).15 F F0 -.27
(NA)3.087 G(ME).27 E F1 3.087([0]. The)B .587(standard input of)3.087 F
F0(command)3.287 E F1(is)3.857 E 2.029
-(connected via a pipe to a \214le descriptor in the e)108 201.6 R -.15
+(connected via a pipe to a \214le descriptor in the e)108 451.2 R -.15
(xe)-.15 G 2.029
(cuting shell, and that \214le descriptor is assigned to).15 F F0 -.27
-(NA)108 213.6 S(ME).27 E F1 2.879([1]. This)B .379
+(NA)108 463.2 S(ME).27 E F1 2.879([1]. This)B .379
(pipe is established before an)2.879 F 2.879(yr)-.15 G .379
(edirections speci\214ed by the command \(see)-2.879 F/F3 9/Times-Bold@0
-SF(REDIRECTION)2.879 E F1(belo)108 225.6 Q 3.425(w\). The)-.25 F .925
+SF(REDIRECTION)2.879 E F1(belo)108 475.2 Q 3.425(w\). The)-.25 F .925
(\214le descriptors can be utilized as ar)3.425 F .926
(guments to shell commands and redirections using stan-)-.18 F .286
-(dard w)108 237.6 R .286(ord e)-.1 F 2.786(xpansions. Other)-.15 F .286
+(dard w)108 487.2 R .286(ord e)-.1 F 2.786(xpansions. Other)-.15 F .286
(than those created to e)2.786 F -.15(xe)-.15 G .286
(cute command and process substitutions, the \214le de-).15 F
-(scriptors are not a)108 249.6 Q -.25(va)-.2 G(ilable in subshells.).25
-E 1.676(The process ID of the shell spa)108 266.4 R 1.676(wned to e)-.15
-F -.15(xe)-.15 G 1.676(cute the coprocess is a).15 F -.25(va)-.2 G 1.676
+(scriptors are not a)108 499.2 Q -.25(va)-.2 G(ilable in subshells.).25
+E 1.676(The process ID of the shell spa)108 516 R 1.676(wned to e)-.15 F
+-.15(xe)-.15 G 1.676(cute the coprocess is a).15 F -.25(va)-.2 G 1.676
(ilable as the v).25 F 1.677(alue of the v)-.25 F(ariable)-.25 E F0 -.27
-(NA)108 278.4 S(ME).27 E F1 2.5(_PID. The)B F2(wait)2.5 E F1 -.2(bu)2.5
-G(iltin may be used to w).2 E(ait for the coprocess to terminate.)-.1 E
+(NA)108 528 S(ME).27 E F1 2.5(_PID. The)B F2(wait)2.5 E F1 -.2(bu)2.5 G
+(iltin may be used to w).2 E(ait for the coprocess to terminate.)-.1 E
.336(Since the coprocess is created as an asynchronous command, the)108
-295.2 R F2(copr)2.836 E(oc)-.18 E F1 .335(command al)2.835 F -.1(wa)-.1
+544.8 R F2(copr)2.836 E(oc)-.18 E F1 .335(command al)2.835 F -.1(wa)-.1
G .335(ys returns success.).1 F
-(The return status of a coprocess is the e)108 307.2 Q(xit status of)
--.15 E F0(command)2.5 E F1(.)A F2(Shell Function De\214nitions)87 324 Q
-F1 2.697(As)108 336 S .198
+(The return status of a coprocess is the e)108 556.8 Q(xit status of)
+-.15 E F0(command)2.5 E F1(.)A F2(Shell Function De\214nitions)87 573.6
+Q F1 2.697(As)108 585.6 S .198
(hell function is an object that is called lik)-2.697 F 2.698(eas)-.1 G
.198(imple command and e)-2.698 F -.15(xe)-.15 G .198
-(cutes a compound command with).15 F 2.5(an)108 348 S .5 -.25(ew s)-2.5
-H(et of positional parameters.).25 E
-(Shell functions are declared as follo)5 E(ws:)-.25 E F0(fname)108 364.8
+(cutes a compound command with).15 F 2.5(an)108 597.6 S .5 -.25(ew s)
+-2.5 H(et of positional parameters.).25 E
+(Shell functions are declared as follo)5 E(ws:)-.25 E F0(fname)108 614.4
Q F1(\(\))2.5 E F0(compound\255command)2.5 E F1([)2.5 E F0 -.37(re)C
-(dir).37 E(ection)-.37 E F1(])A F2(function)108 376.8 Q F0(fname)2.5 E
+(dir).37 E(ection)-.37 E F1(])A F2(function)108 626.4 Q F0(fname)2.5 E
F1([\(\)])2.5 E F0(compound\255command)2.5 E F1([)2.5 E F0 -.37(re)C
(dir).37 E(ection)-.37 E F1(])A .217(This de\214nes a function named)144
-388.8 R F0(fname)2.717 E F1 5.217(.T)C .217(he reserv)-5.217 F .217
+638.4 R F0(fname)2.717 E F1 5.217(.T)C .217(he reserv)-5.217 F .217
(ed w)-.15 F(ord)-.1 E F2(function)2.717 E F1 .216(is optional.)2.717 F
-.216(If the)5.216 F F2(function)2.716 E F1(re-)2.716 E(serv)144 400.8 Q
+.216(If the)5.216 F F2(function)2.716 E F1(re-)2.716 E(serv)144 650.4 Q
.68(ed w)-.15 F .68(ord is supplied, the parentheses are optional.)-.1 F
(The)5.68 E F0(body)3.18 E F1 .68(of the function is the compound)3.18 F
-(command)144 412.8 Q F0(compound\255command)2.784 E F1(\(see)3.354 E F2
+(command)144 662.4 Q F0(compound\255command)2.784 E F1(\(see)3.354 E F2
.084(Compound Commands)2.584 F F1(abo)2.584 E -.15(ve)-.15 G 2.584
-(\). That).15 F .084(command is usually a)2.584 F F0(list)144 424.8 Q F1
+(\). That).15 F .084(command is usually a)2.584 F F0(list)144 674.4 Q F1
.044(of commands between { and }, b)2.544 F .044(ut may be an)-.2 F
2.544(yc)-.15 G .044(ommand listed under)-2.544 F F2 .044
-(Compound Commands)2.544 F F1(abo)144 436.8 Q -.15(ve)-.15 G 5.532(.I)
+(Compound Commands)2.544 F F1(abo)144 686.4 Q -.15(ve)-.15 G 5.532(.I)
.15 G 3.032(ft)-5.532 G(he)-3.032 E F2(function)3.032 E F1(reserv)3.032
E .532(ed w)-.15 F .532(ord is used, b)-.1 F .532
(ut the parentheses are not supplied, the braces are)-.2 F(recommended.)
-144 448.8 Q F0(compound\255command)6.253 E F1 1.253(is e)3.753 F -.15
+144 698.4 Q F0(compound\255command)6.253 E F1 1.253(is e)3.753 F -.15
(xe)-.15 G 1.253(cuted whene).15 F -.15(ve)-.25 G(r).15 E F0(fname)3.753
E F1 1.254(is speci\214ed as the name of a)3.753 F 1.187
-(simple command.)144 460.8 R 1.187(When in posix mode,)6.187 F F0(fname)
+(simple command.)144 710.4 R 1.187(When in posix mode,)6.187 F F0(fname)
3.687 E F1 1.186(must be a v)3.687 F 1.186(alid shell)-.25 F F0(name)
3.686 E F1 1.186(and may not be the)3.686 F .273(name of one of the)144
-472.8 R/F4 9/Times-Roman@0 SF(POSIX)2.773 E F0 .273(special b)2.523 F
+722.4 R/F4 9/Times-Roman@0 SF(POSIX)2.773 E F0 .273(special b)2.523 F
(uiltins)-.2 E F1 5.273(.I)C 2.773(nd)-5.273 G(ef)-2.773 E .274
(ault mode, a function name can be an)-.1 F 2.774(yu)-.15 G(nquoted)
--2.774 E(shell w)144 484.8 Q(ord that does not contain)-.1 E F2($)2.5 E
-F1(.)A(An)108 501.6 Q 2.93(yr)-.15 G .43(edirections \(see)-2.93 F F3
-(REDIRECTION)2.93 E F1(belo)2.68 E .43
+-2.774 E(GNU Bash 5.3)72 768 Q(2026 January 14)141.79 E(8)195.95 E 0 Cg
+EP
+%%Page: 9 9
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E(shell w)144 84 Q(ord that does not contain)-.1 E/F2
+10/Times-Bold@0 SF($)2.5 E F1(.)A(An)108 100.8 Q 2.93(yr)-.15 G .43
+(edirections \(see)-2.93 F/F3 9/Times-Bold@0 SF(REDIRECTION)2.93 E F1
+(belo)2.68 E .43
(w\) speci\214ed when a function is de\214ned are performed when the)
--.25 F(function is e)108 513.6 Q -.15(xe)-.15 G(cuted.).15 E .57(The e)
-108 530.4 R .57(xit status of a function de\214nition is zero unless a \
+-.25 F(function is e)108 112.8 Q -.15(xe)-.15 G(cuted.).15 E .57(The e)
+108 129.6 R .57(xit status of a function de\214nition is zero unless a \
syntax error occurs or a readonly function with the)-.15 F .85
-(same name already e)108 542.4 R 3.35(xists. When)-.15 F -.15(exe)3.35 G
+(same name already e)108 141.6 R 3.35(xists. When)-.15 F -.15(exe)3.35 G
.85(cuted, the e).15 F .85(xit status of a function is the e)-.15 F .85
-(xit status of the last com-)-.15 F(mand e)108 554.4 Q -.15(xe)-.15 G
+(xit status of the last com-)-.15 F(mand e)108 153.6 Q -.15(xe)-.15 G
(cuted in the body).15 E 5(.\()-.65 G(See)-5 E F3(FUNCTIONS)2.5 E F1
-(belo)2.25 E -.65(w.)-.25 G(\)).65 E/F5 10.95/Times-Bold@0 SF(COMMENTS)
-72 571.2 Q F1 .982(In a non-interacti)108 583.2 R 1.282 -.15(ve s)-.25 H
+(belo)2.25 E -.65(w.)-.25 G(\)).65 E/F4 10.95/Times-Bold@0 SF(COMMENTS)
+72 170.4 Q F1 .982(In a non-interacti)108 182.4 R 1.282 -.15(ve s)-.25 H
.982(hell, or an interacti).15 F 1.282 -.15(ve s)-.25 H .982
(hell in which the).15 F F2(interacti)3.482 E -.1(ve)-.1 G(_comments).1
-E F1 .982(option to the)3.482 F F2(shopt)3.482 E F1 -.2(bu)108 595.2 S
+E F1 .982(option to the)3.482 F F2(shopt)3.482 E F1 -.2(bu)108 194.4 S
.612(iltin is enabled \(see).2 F F3 .612(SHELL B)3.112 F(UIL)-.09 E .612
(TIN COMMANDS)-.828 F F1(belo)2.862 E .612(w\), a w)-.25 F .612(ord be)
-.1 F .612(ginning with)-.15 F F2(#)3.111 E F1 .611(introduces a com-)
-3.111 F 2.854(ment. A)108 607.2 R -.1(wo)2.854 G .354(rd be).1 F .354
+3.111 F 2.854(ment. A)108 206.4 R -.1(wo)2.854 G .354(rd be).1 F .354
(gins at the be)-.15 F .355
(ginning of a line, after unquoted whitespace, or after an operator)-.15
F 5.355(.T)-.55 G .355(he com-)-5.355 F .364(ment causes that w)108
-619.2 R .364
+218.4 R .364
(ord and all remaining characters on that line to be ignored.)-.1 F .363
(An interacti)5.363 F .663 -.15(ve s)-.25 H .363(hell without).15 F(the)
-108 631.2 Q F2(interacti)2.62 E -.1(ve)-.1 G(_comments).1 E F1 .121
+108 230.4 Q F2(interacti)2.62 E -.1(ve)-.1 G(_comments).1 E F1 .121
(option enabled does not allo)2.621 F 2.621(wc)-.25 G 2.621
(omments. The)-2.621 F F2(interacti)2.621 E -.1(ve)-.1 G(_comments).1 E
-F1 .121(option is)2.621 F(enabled by def)108 643.2 Q(ault in interacti)
--.1 E .3 -.15(ve s)-.25 H(hells.).15 E F5 -.11(QU)72 660 S -.438(OT).11
-G(ING).438 E F0(Quoting)108 672 Q F1 .478(is used to remo)2.978 F .777
--.15(ve t)-.15 H .477(he special meaning of certain characters or w).15
-F .477(ords to the shell.)-.1 F .477(Quoting can be)5.477 F .184
+F1 .121(option is)2.621 F(enabled by def)108 242.4 Q(ault in interacti)
+-.1 E .3 -.15(ve s)-.25 H(hells.).15 E F4 -.11(QU)72 259.2 S -.438(OT)
+.11 G(ING).438 E F0(Quoting)108 271.2 Q F1 .478(is used to remo)2.978 F
+.777 -.15(ve t)-.15 H .477
+(he special meaning of certain characters or w).15 F .477
+(ords to the shell.)-.1 F .477(Quoting can be)5.477 F .184
(used to disable special treatment for special characters, to pre)108
-684 R -.15(ve)-.25 G .185(nt reserv).15 F .185(ed w)-.15 F .185
-(ords from being recognized as)-.1 F(such, and to pre)108 696 Q -.15(ve)
--.25 G(nt parameter e).15 E(xpansion.)-.15 E .289(Each of the)108 712.8
-R F0(metac)2.789 E(har)-.15 E(acter)-.15 E(s)-.1 E F1 .288(listed abo)
-2.789 F .588 -.15(ve u)-.15 H(nder).15 E F3(DEFINITIONS)2.788 E F1 .288
-(has special meaning to the shell and must be)2.538 F
-(quoted if it is to represent itself.)108 724.8 Q(GNU Bash 5.3)72 768 Q
-(2025 April 7)149.285 E(8)203.445 E 0 Cg EP
-%%Page: 9 9
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E 1.344(When the command history e)108 84 R 1.344
-(xpansion f)-.15 F 1.344(acilities are being used \(see)-.1 F/F2 9
-/Times-Bold@0 SF(HIST)3.844 E(OR)-.162 E 3.594(YE)-.315 G(XP)-3.594 E
-(ANSION)-.666 E F1(belo)3.595 E 1.345(w\), the)-.25 F F0(history e)108
-96 Q(xpansion)-.2 E F1(character)2.5 E 2.5(,u)-.4 G(sually)-2.5 E/F3 10
-/Times-Bold@0 SF(!)2.5 E F1 2.5(,m)C(ust be quoted to pre)-2.5 E -.15
-(ve)-.25 G(nt history e).15 E(xpansion.)-.15 E .768
-(There are four quoting mechanisms: the)108 112.8 R F0 .768(escape c)
+283.2 R -.15(ve)-.25 G .185(nt reserv).15 F .185(ed w)-.15 F .185
+(ords from being recognized as)-.1 F(such, and to pre)108 295.2 Q -.15
+(ve)-.25 G(nt parameter e).15 E(xpansion.)-.15 E .289(Each of the)108
+312 R F0(metac)2.789 E(har)-.15 E(acter)-.15 E(s)-.1 E F1 .288
+(listed abo)2.789 F .588 -.15(ve u)-.15 H(nder).15 E F3(DEFINITIONS)
+2.788 E F1 .288(has special meaning to the shell and must be)2.538 F
+(quoted if it is to represent itself.)108 324 Q 1.344
+(When the command history e)108 340.8 R 1.344(xpansion f)-.15 F 1.344
+(acilities are being used \(see)-.1 F F3(HIST)3.844 E(OR)-.162 E 3.594
+(YE)-.315 G(XP)-3.594 E(ANSION)-.666 E F1(belo)3.595 E 1.345(w\), the)
+-.25 F F0(history e)108 352.8 Q(xpansion)-.2 E F1(character)2.5 E 2.5
+(,u)-.4 G(sually)-2.5 E F2(!)2.5 E F1 2.5(,m)C(ust be quoted to pre)-2.5
+E -.15(ve)-.25 G(nt history e).15 E(xpansion.)-.15 E .768
+(There are four quoting mechanisms: the)108 369.6 R F0 .768(escape c)
3.458 F(har)-.15 E(acter)-.15 E F1 3.268(,s).73 G .767
(ingle quotes, double quotes, and dollar)-3.268 F(-single)-.2 E(quotes.)
-108 124.8 Q 2.962(An)108 141.6 S .463(on-quoted backslash \()-2.962 F F3
+108 381.6 Q 2.962(An)108 398.4 S .463(on-quoted backslash \()-2.962 F F2
(\\)A F1 2.963(\)i)C 2.963(st)-2.963 G(he)-2.963 E F0 .463(escape c)
3.153 F(har)-.15 E(acter)-.15 E F1 5.463(.I).73 G 2.963(tp)-5.463 G
(reserv)-2.963 E .463(es the literal v)-.15 F .463(alue of the ne)-.25 F
-.463(xt character that)-.15 F(follo)108 153.6 Q .878(ws, remo)-.25 F
+.463(xt character that)-.15 F(follo)108 410.4 Q .878(ws, remo)-.25 F
.878(ving an)-.15 F 3.378(ys)-.15 G .878
(pecial meaning it has, with the e)-3.378 F .877(xception of <ne)-.15 F
-3.377(wline>. If)-.25 F(a)3.377 E F3(\\)3.377 E F1(<ne)A .877
+3.377(wline>. If)-.25 F(a)3.377 E F2(\\)3.377 E F1(<ne)A .877
(wline> pair ap-)-.25 F .176
-(pears, and the backslash is not itself quoted, the)108 165.6 R F3(\\)
+(pears, and the backslash is not itself quoted, the)108 422.4 R F2(\\)
2.676 E F1(<ne)A .176
(wline> is treated as a line continuation \(that is, it is re-)-.25 F
-(mo)108 177.6 Q -.15(ve)-.15 G 2.5(df).15 G(rom the input stream and ef)
+(mo)108 434.4 Q -.15(ve)-.15 G 2.5(df).15 G(rom the input stream and ef)
-2.5 E(fecti)-.25 E -.15(ve)-.25 G(ly ignored\).).15 E .295
-(Enclosing characters in single quotes preserv)108 194.4 R .295
+(Enclosing characters in single quotes preserv)108 451.2 R .295
(es the literal v)-.15 F .295(alue of each character within the quotes.)
-.25 F 2.795(As)5.295 G(in-)-2.795 E
-(gle quote may not occur between single quotes, e)108 206.4 Q -.15(ve)
+(gle quote may not occur between single quotes, e)108 463.2 Q -.15(ve)
-.25 G 2.5(nw).15 G(hen preceded by a backslash.)-2.5 E .033
-(Enclosing characters in double quotes preserv)108 223.2 R .034
+(Enclosing characters in double quotes preserv)108 480 R .034
(es the literal v)-.15 F .034
(alue of all characters within the quotes, with the)-.25 F -.15(ex)108
-235.2 S .057(ception of).15 F F3($)2.557 E F1(,)A F3<92>2.557 E F1(,)A
-F3(\\)2.557 E F1 2.557(,a)C .057(nd, when history e)-2.557 F .056
-(xpansion is enabled,)-.15 F F3(!)2.556 E F1 5.056(.W)C .056
-(hen the shell is in posix mode, the)-5.056 F F3(!)2.556 E F1 .056
-(has no)2.556 F .46(special meaning within double quotes, e)108 247.2 R
+492 S .057(ception of).15 F F2($)2.557 E F1(,)A F2<92>2.557 E F1(,)A F2
+(\\)2.557 E F1 2.557(,a)C .057(nd, when history e)-2.557 F .056
+(xpansion is enabled,)-.15 F F2(!)2.556 E F1 5.056(.W)C .056
+(hen the shell is in posix mode, the)-5.056 F F2(!)2.556 E F1 .056
+(has no)2.556 F .46(special meaning within double quotes, e)108 504 R
-.15(ve)-.25 G 2.96(nw).15 G .46(hen history e)-2.96 F .46
-(xpansion is enabled.)-.15 F .46(The characters)5.46 F F3($)2.96 E F1
-(and)2.96 E F3<92>2.96 E F1(re-)2.96 E .563
-(tain their special meaning within double quotes.)108 259.2 R .562
+(xpansion is enabled.)-.15 F .46(The characters)5.46 F F2($)2.96 E F1
+(and)2.96 E F2<92>2.96 E F1(re-)2.96 E .563
+(tain their special meaning within double quotes.)108 516 R .562
(The backslash retains its special meaning only when fol-)5.563 F(lo)108
-271.2 Q .317(wed by one of the follo)-.25 F .318(wing characters:)-.25 F
-F3($)2.818 E F1(,)A F3<92>2.818 E F1(,)A F3(")3.651 E F1(,).833 E F3(\\)
-2.818 E F1 2.818(,o)C(r)-2.818 E F3(<newline>)2.818 E F1 5.318(.B)C .318
+528 Q .317(wed by one of the follo)-.25 F .318(wing characters:)-.25 F
+F2($)2.818 E F1(,)A F2<92>2.818 E F1(,)A F2(")3.651 E F1(,).833 E F2(\\)
+2.818 E F1 2.818(,o)C(r)-2.818 E F2(<newline>)2.818 E F1 5.318(.B)C .318
(ackslashes preceding characters with-)-5.318 F
-(out a special meaning are left unmodi\214ed.)108 283.2 Q 3.144(Ad)108
-300 S .644(ouble quote may be quoted within double quotes by preceding \
-it with a backslash.)-3.144 F .643(If enabled, history)5.643 F -.15(ex)
-108 312 S 1.267(pansion will be performed unless an).15 F F3(!)3.767 E
-F1 1.268(appearing in double quotes is escaped using a backslash.)6.267
-F(The)6.268 E(backslash preceding the)108 324 Q F3(!)2.5 E F1
-(is not remo)5 E -.15(ve)-.15 G(d.).15 E(The special parameters)108
-340.8 Q F3(*)2.5 E F1(and)2.5 E F3(@)2.5 E F1(ha)2.5 E .3 -.15(ve s)-.2
-H(pecial meaning when in double quotes \(see).15 E F2 -.666(PA)2.5 G
+(out a special meaning are left unmodi\214ed.)108 540 Q 3.144(Ad)108
+556.8 S .644(ouble quote may be quoted within double quotes by precedin\
+g it with a backslash.)-3.144 F .643(If enabled, history)5.643 F -.15
+(ex)108 568.8 S 1.267(pansion will be performed unless an).15 F F2(!)
+3.767 E F1 1.268
+(appearing in double quotes is escaped using a backslash.)6.267 F(The)
+6.268 E(backslash preceding the)108 580.8 Q F2(!)2.5 E F1(is not remo)5
+E -.15(ve)-.15 G(d.).15 E(The special parameters)108 597.6 Q F2(*)2.5 E
+F1(and)2.5 E F2(@)2.5 E F1(ha)2.5 E .3 -.15(ve s)-.2 H
+(pecial meaning when in double quotes \(see).15 E F3 -.666(PA)2.5 G
(RAMETERS).666 E F1(belo)2.25 E(w\).)-.25 E .149
-(Character sequences of the form)108 357.6 R F3($)2.649 E F1<08>A F0
+(Character sequences of the form)108 614.4 R F2($)2.649 E F1<08>A F0
(string)A F1 2.649<0861>C .149(re treated as a special v)-2.649 F .149
(ariant of single quotes.)-.25 F .148(The sequence e)5.148 F(x-)-.15 E
-.527(pands to)108 369.6 R F0(string)3.027 E F1 3.027(,w)C .527
+.527(pands to)108 626.4 R F0(string)3.027 E F1 3.027(,w)C .527
(ith backslash-escaped characters in)-3.027 F F0(string)3.027 E F1 .528
(replaced as speci\214ed by the ANSI C standard.)3.027 F
-(Backslash escape sequences, if present, are decoded as follo)108 381.6
-Q(ws:)-.25 E F3(\\a)144 393.6 Q F1(alert \(bell\))180 393.6 Q F3(\\b)144
-405.6 Q F1(backspace)180 405.6 Q F3(\\e)144 417.6 Q(\\E)144 429.6 Q F1
-(an escape character)180 429.6 Q F3(\\f)144 441.6 Q F1(form feed)180
-441.6 Q F3(\\n)144 453.6 Q F1(ne)180 453.6 Q 2.5(wl)-.25 G(ine)-2.5 E F3
-(\\r)144 465.6 Q F1(carriage return)180 465.6 Q F3(\\t)144 477.6 Q F1
-(horizontal tab)180 477.6 Q F3(\\v)144 489.6 Q F1 -.15(ve)180 489.6 S
-(rtical tab).15 E F3(\\\\)144 501.6 Q F1(backslash)180 501.6 Q F3<5c08>
-144 513.6 Q F1(single quote)180 513.6 Q F3(\\")144 525.6 Q F1
-(double quote)180 525.6 Q F3(\\?)144 537.6 Q F1(question mark)180 537.6
-Q F3(\\)144 549.6 Q F0(nnn)A F1(The eight-bit character whose v)180
-549.6 Q(alue is the octal v)-.25 E(alue)-.25 E F0(nnn)2.5 E F1
-(\(one to three octal digits\).)2.5 E F3(\\x)144 561.6 Q F0(HH)A F1
-(The eight-bit character whose v)180 561.6 Q(alue is the he)-.25 E
-(xadecimal v)-.15 E(alue)-.25 E F0(HH)2.5 E F1(\(one or tw)2.5 E 2.5(oh)
--.1 G .3 -.15(ex d)-2.5 H(igits\).).15 E F3(\\u)144 573.6 Q F0(HHHH)A F1
-1.204(The Unicode \(ISO/IEC 10646\) character whose v)180 585.6 R 1.203
-(alue is the he)-.25 F 1.203(xadecimal v)-.15 F(alue)-.25 E F0(HHHH)
-3.703 E F1(\(one to four he)180 597.6 Q 2.5(xd)-.15 G(igits\).)-2.5 E F3
-(\\U)144 609.6 Q F0(HHHHHHHH)A F1 .244
-(The Unicode \(ISO/IEC 10646\) character whose v)180 621.6 R .245
-(alue is the he)-.25 F .245(xadecimal v)-.15 F(alue)-.25 E F0(HHHHH-)
-2.745 E(HHH)180 633.6 Q F1(\(one to eight he)2.5 E 2.5(xd)-.15 G
-(igits\).)-2.5 E F3(\\c)144 645.6 Q F0(x)A F1 2.5(Ac)180 645.6 S
-(ontrol-)-2.5 E F0(x)A F1(character)2.5 E(.)-.55 E(The e)108 662.4 Q(xp\
-anded result is single-quoted, as if the dollar sign had not been prese\
-nt.)-.15 E F3 -.74(Tr)87 679.2 S(anslating Strings).74 E F1 2.884(Ad)108
-691.2 S .383(ouble-quoted string preceded by a dollar sign \()-2.884 F
-F3($)A F1(")A F0(string)A F1 .383
-("\) causes the string to be translated according to)B 1.635
-(the current locale.)108 703.2 R(The)6.635 E F0 -.1(ge)4.135 G(tte).1 E
-(xt)-.2 E F1 1.636
-(infrastructure performs the lookup and translation, using the)4.135 F
-F3(LC_MES-)4.136 E(SA)108 715.2 Q(GES)-.55 E F1(,)A F3(TEXTDOMAINDIR)
-2.761 E F1 2.761(,a)C(nd)-2.761 E F3(TEXTDOMAIN)2.761 E F1 .261(shell v)
-2.761 F 2.761(ariables. If)-.25 F .261(the current locale is)2.761 F F3
-(C)2.76 E F1(or)2.76 E F3(POSIX)2.76 E F1(,)A 1.213
-(if there are no translations a)108 727.2 R -.25(va)-.2 G 1.214(ilable,\
- or if the string is not translated, the dollar sign is ignored, and th\
-e).25 F(GNU Bash 5.3)72 768 Q(2025 April 7)149.285 E(9)203.445 E 0 Cg EP
+(Backslash escape sequences, if present, are decoded as follo)108 638.4
+Q(ws:)-.25 E F2(\\a)144 650.4 Q F1(alert \(bell\))180 650.4 Q F2(\\b)144
+662.4 Q F1(backspace)180 662.4 Q F2(\\e)144 674.4 Q(\\E)144 686.4 Q F1
+(an escape character)180 686.4 Q F2(\\f)144 698.4 Q F1(form feed)180
+698.4 Q(GNU Bash 5.3)72 768 Q(2026 January 14)141.79 E(9)195.95 E 0 Cg
+EP
%%Page: 10 10
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E .949
-(string is treated as double-quoted as described abo)108 84 R -.15(ve)
--.15 G 5.949(.T).15 G .949
+.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(\\n)144 84 Q F1(ne)180 84 Q
+2.5(wl)-.25 G(ine)-2.5 E F2(\\r)144 96 Q F1(carriage return)180 96 Q F2
+(\\t)144 108 Q F1(horizontal tab)180 108 Q F2(\\v)144 120 Q F1 -.15(ve)
+180 120 S(rtical tab).15 E F2(\\\\)144 132 Q F1(backslash)180 132 Q F2
+<5c08>144 144 Q F1(single quote)180 144 Q F2(\\")144 156 Q F1
+(double quote)180 156 Q F2(\\?)144 168 Q F1(question mark)180 168 Q F2
+(\\)144 180 Q F0(nnn)A F1(The eight-bit character whose v)180 180 Q
+(alue is the octal v)-.25 E(alue)-.25 E F0(nnn)2.5 E F1
+(\(one to three octal digits\).)2.5 E F2(\\x)144 192 Q F0(HH)A F1
+(The eight-bit character whose v)180 192 Q(alue is the he)-.25 E
+(xadecimal v)-.15 E(alue)-.25 E F0(HH)2.5 E F1(\(one or tw)2.5 E 2.5(oh)
+-.1 G .3 -.15(ex d)-2.5 H(igits\).).15 E F2(\\u)144 204 Q F0(HHHH)A F1
+1.204(The Unicode \(ISO/IEC 10646\) character whose v)180 216 R 1.203
+(alue is the he)-.25 F 1.203(xadecimal v)-.15 F(alue)-.25 E F0(HHHH)
+3.703 E F1(\(one to four he)180 228 Q 2.5(xd)-.15 G(igits\).)-2.5 E F2
+(\\U)144 240 Q F0(HHHHHHHH)A F1 .244
+(The Unicode \(ISO/IEC 10646\) character whose v)180 252 R .245
+(alue is the he)-.25 F .245(xadecimal v)-.15 F(alue)-.25 E F0(HHHHH-)
+2.745 E(HHH)180 264 Q F1(\(one to eight he)2.5 E 2.5(xd)-.15 G(igits\).)
+-2.5 E F2(\\c)144 276 Q F0(x)A F1 2.5(Ac)180 276 S(ontrol-)-2.5 E F0(x)A
+F1(character)2.5 E(.)-.55 E(The e)108 292.8 Q(xpanded result is single-\
+quoted, as if the dollar sign had not been present.)-.15 E F2 -.74(Tr)87
+309.6 S(anslating Strings).74 E F1 2.884(Ad)108 321.6 S .383
+(ouble-quoted string preceded by a dollar sign \()-2.884 F F2($)A F1(")A
+F0(string)A F1 .383("\) causes the string to be translated according to)
+B 1.635(the current locale.)108 333.6 R(The)6.635 E F0 -.1(ge)4.135 G
+(tte).1 E(xt)-.2 E F1 1.636
+(infrastructure performs the lookup and translation, using the)4.135 F
+F2(LC_MES-)4.136 E(SA)108 345.6 Q(GES)-.55 E F1(,)A F2(TEXTDOMAINDIR)
+2.761 E F1 2.761(,a)C(nd)-2.761 E F2(TEXTDOMAIN)2.761 E F1 .261(shell v)
+2.761 F 2.761(ariables. If)-.25 F .261(the current locale is)2.761 F F2
+(C)2.76 E F1(or)2.76 E F2(POSIX)2.76 E F1(,)A 1.213
+(if there are no translations a)108 357.6 R -.25(va)-.2 G 1.214(ilable,\
+ or if the string is not translated, the dollar sign is ignored, and th\
+e).25 F .949(string is treated as double-quoted as described abo)108
+369.6 R -.15(ve)-.15 G 5.949(.T).15 G .949
(his is a form of double quoting, so the string re-)-5.949 F .371
-(mains double-quoted by def)108 96 R .371
+(mains double-quoted by def)108 381.6 R .371
(ault, whether or not it is translated and replaced.)-.1 F .372(If the)
-5.372 F/F2 10/Times-Bold@0 SF(noexpand_translation)2.872 E F1 .14
-(option is enabled using the)108 108 R F2(shopt)2.639 E F1 -.2(bu)2.639
-G .139
+5.372 F F2(noexpand_translation)2.872 E F1 .14
+(option is enabled using the)108 393.6 R F2(shopt)2.639 E F1 -.2(bu)
+2.639 G .139
(iltin, translated strings are single-quoted instead of double-quoted.)
-.2 F(See)5.139 E(the description of)108 120 Q F2(shopt)2.5 E F1(belo)2.5
-E 2.5(wu)-.25 G(nder)-2.5 E/F3 9/Times-Bold@0 SF(SHELL B)2.5 E(UIL)-.09
-E(TIN COMMANDS)-.828 E/F4 9/Times-Roman@0 SF(.)A/F5 10.95/Times-Bold@0
-SF -.81(PA)72 136.8 S(RAMETERS).81 E F1(A)108 148.8 Q F0(par)4.574 E
-(ameter)-.15 E F1 .824(is an entity that stores v)4.054 F 3.324
-(alues. It)-.25 F .824(can be a)3.324 F F0(name)3.685 E F1 3.325(,an).18
-G(umber)-3.325 E 3.325(,o)-.4 G 3.325(ro)-3.325 G .825
-(ne of the special characters)-3.325 F .802(listed belo)108 160.8 R
+.2 F(See)5.139 E(the description of)108 405.6 Q F2(shopt)2.5 E F1(belo)
+2.5 E 2.5(wu)-.25 G(nder)-2.5 E/F3 9/Times-Bold@0 SF(SHELL B)2.5 E(UIL)
+-.09 E(TIN COMMANDS)-.828 E/F4 9/Times-Roman@0 SF(.)A/F5 10.95
+/Times-Bold@0 SF -.81(PA)72 422.4 S(RAMETERS).81 E F1(A)108 434.4 Q F0
+(par)4.574 E(ameter)-.15 E F1 .824(is an entity that stores v)4.054 F
+3.324(alues. It)-.25 F .824(can be a)3.324 F F0(name)3.685 E F1 3.325
+(,an).18 G(umber)-3.325 E 3.325(,o)-.4 G 3.325(ro)-3.325 G .825
+(ne of the special characters)-3.325 F .802(listed belo)108 446.4 R
3.302(wu)-.25 G(nder)-3.302 E F2 .802(Special P)3.302 F(arameters)-.1 E
F1 5.802(.A)C F0(variable)-2.21 E F1 .802(is a parameter denoted by a)
3.482 F F0(name)3.662 E F1 5.801(.A).18 G -.25(va)-2.5 G .801
-(riable has a).25 F F0(value)108 172.8 Q F1 .368(and zero or more)2.868
+(riable has a).25 F F0(value)108 458.4 Q F1 .368(and zero or more)2.868
F F0(attrib)2.868 E(utes)-.2 E F1 5.369(.A)C(ttrib)-5.369 E .369
(utes are assigned using the)-.2 F F2(declar)2.869 E(e)-.18 E F1 -.2(bu)
2.869 G .369(iltin command \(see).2 F F2(declar)2.869 E(e)-.18 E F1
-(belo)108 184.8 Q 2.5(wi)-.25 G(n)-2.5 E F3(SHELL B)2.5 E(UIL)-.09 E
+(belo)108 470.4 Q 2.5(wi)-.25 G(n)-2.5 E F3(SHELL B)2.5 E(UIL)-.09 E
(TIN COMMANDS)-.828 E F4(\).)A F1(The)4.5 E F2(export)2.5 E F1(and)2.5 E
F2 -.18(re)2.5 G(adonly).18 E F1 -.2(bu)2.5 G
-(iltins assign speci\214c attrib).2 E(utes.)-.2 E 2.755(Ap)108 201.6 S
+(iltins assign speci\214c attrib).2 E(utes.)-.2 E 2.755(Ap)108 487.2 S
.255(arameter is set if it has been assigned a v)-2.755 F 2.754
(alue. The)-.25 F .254(null string is a v)2.754 F .254(alid v)-.25 F
2.754(alue. Once)-.25 F 2.754(av)2.754 G .254(ariable is set, it)-3.004
-F(may be unset only by using the)108 213.6 Q F2(unset)2.5 E F1 -.2(bu)
+F(may be unset only by using the)108 499.2 Q F2(unset)2.5 E F1 -.2(bu)
2.5 G(iltin command \(see).2 E F3(SHELL B)2.5 E(UIL)-.09 E(TIN COMMANDS)
--.828 E F1(belo)2.25 E(w\).)-.25 E(A)108 230.4 Q F0(variable)2.79 E F1
-(is assigned to using a statement of the form)2.68 E F0(name)144 247.2 Q
-F1(=[)A F0(value)A F1(])A(If)108 264 Q F0(value)3.022 E F1 .232
+-.828 E F1(belo)2.25 E(w\).)-.25 E(A)108 516 Q F0(variable)2.79 E F1
+(is assigned to using a statement of the form)2.68 E F0(name)144 532.8 Q
+F1(=[)A F0(value)A F1(])A(If)108 549.6 Q F0(value)3.022 E F1 .232
(is not gi)2.912 F -.15(ve)-.25 G .232(n, the v).15 F .232
(ariable is assigned the null string.)-.25 F(All)5.233 E F0(values)3.023
E F1(under)3.003 E .233(go tilde e)-.18 F .233(xpansion, parameter)-.15
-F .515(and v)108 276 R .515(ariable e)-.25 F .515
+F .515(and v)108 561.6 R .515(ariable e)-.25 F .515
(xpansion, command substitution, arithmetic e)-.15 F .515
(xpansion, and quote remo)-.15 F -.25(va)-.15 G 3.015(l\().25 G(see)
--3.015 E F3(EXP)3.015 E(ANSION)-.666 E F1(belo)108 288 Q 2.698(w\). If)
--.25 F .198(the v)2.698 F .198(ariable has its)-.25 F F2(integer)2.698 E
-F1(attrib)2.698 E .198(ute set, then)-.2 F F0(value)2.988 E F1 .198
-(is e)2.878 F -.25(va)-.25 G .199(luated as an arithmetic e).25 F .199
-(xpression e)-.15 F -.15(ve)-.25 G(n).15 E .524(if the)108 300 R F2
-($\(\()3.024 E F1 1.666(...)C F2(\)\))-1.666 E F1 -.15(ex)3.024 G .523
-(pansion is not used \(see).15 F F2 .523(Arithmetic Expansion)3.023 F F1
-(belo)3.023 E 3.023(w\). W)-.25 F .523(ord splitting and pathname e)-.8
-F(x-)-.15 E 1.363(pansion are not performed.)108 312 R 1.364
+-3.015 E F3(EXP)3.015 E(ANSION)-.666 E F1(belo)108 573.6 Q 2.698
+(w\). If)-.25 F .198(the v)2.698 F .198(ariable has its)-.25 F F2
+(integer)2.698 E F1(attrib)2.698 E .198(ute set, then)-.2 F F0(value)
+2.988 E F1 .198(is e)2.878 F -.25(va)-.25 G .199
+(luated as an arithmetic e).25 F .199(xpression e)-.15 F -.15(ve)-.25 G
+(n).15 E .524(if the)108 585.6 R F2($\(\()3.024 E F1 1.666(...)C F2
+(\)\))-1.666 E F1 -.15(ex)3.024 G .523(pansion is not used \(see).15 F
+F2 .523(Arithmetic Expansion)3.023 F F1(belo)3.023 E 3.023(w\). W)-.25 F
+.523(ord splitting and pathname e)-.8 F(x-)-.15 E 1.363
+(pansion are not performed.)108 597.6 R 1.364
(Assignment statements may also appear as ar)6.363 F 1.364
(guments to the)-.18 F F2(alias)3.864 E F1(,)A F2(declar)3.864 E(e)-.18
-E F1(,)A F2(typeset)108 324 Q F1(,)A F2(export)3.871 E F1(,)A F2 -.18
+E F1(,)A F2(typeset)108 609.6 Q F1(,)A F2(export)3.871 E F1(,)A F2 -.18
(re)3.871 G(adonly).18 E F1 3.871(,a)C(nd)-3.871 E F2(local)3.871 E F1
-.2(bu)3.871 G 1.371(iltin commands \().2 F F0(declar)A(ation)-.15 E F1
3.871(commands\). When)3.871 F 1.37(in posix mode,)3.871 F 1.141
-(these b)108 336 R 1.142
+(these b)108 621.6 R 1.142
(uiltins may appear in a command after one or more instances of the)-.2
F F2(command)3.642 E F1 -.2(bu)3.642 G 1.142(iltin and retain).2 F
-(these assignment statement properties.)108 348 Q 1.163(In the conte)108
-364.8 R 1.163(xt where an assignment statement is assigning a v)-.15 F
-1.163(alue to a shell v)-.25 F 1.162(ariable or array inde)-.25 F 1.162
-(x, the)-.15 F .55(\231+=\232 operator appends to or adds to the v)108
-376.8 R(ariable')-.25 E 3.05(sp)-.55 G(re)-3.05 E .55(vious v)-.25 F
+(these assignment statement properties.)108 633.6 Q 1.163(In the conte)
+108 650.4 R 1.163(xt where an assignment statement is assigning a v)-.15
+F 1.163(alue to a shell v)-.25 F 1.162(ariable or array inde)-.25 F
+1.162(x, the)-.15 F .55(\231+=\232 operator appends to or adds to the v)
+108 662.4 R(ariable')-.25 E 3.05(sp)-.55 G(re)-3.05 E .55(vious v)-.25 F
3.05(alue. This)-.25 F .55(includes ar)3.05 F .55(guments to)-.18 F F0
-(declar)3.05 E(ation)-.15 E F1 1.656(commands such as)108 388.8 R F2
+(declar)3.05 E(ation)-.15 E F1 1.656(commands such as)108 674.4 R F2
(declar)4.156 E(e)-.18 E F1 1.656(that accept assignment statements.)
4.156 F 1.656(When \231+=\232 is applied to a v)6.656 F 1.656
-(ariable for)-.25 F .522(which the)108 400.8 R F2(integer)3.022 E F1
+(ariable for)-.25 F .522(which the)108 686.4 R F2(integer)3.022 E F1
(attrib)3.022 E .522(ute has been set, the v)-.2 F(ariable')-.25 E 3.022
(sc)-.55 G .522(urrent v)-3.022 F .522(alue and)-.25 F F0(value)3.023 E
F1 .523(are each e)3.023 F -.25(va)-.25 G .523(luated as arith-).25 F
-.551(metic e)108 412.8 R .551
+.551(metic e)108 698.4 R .551
(xpressions, and the sum of the results is assigned as the v)-.15 F
(ariable')-.25 E 3.05(sv)-.55 G 3.05(alue. The)-3.3 F .55(current v)3.05
-F .55(alue is usu-)-.25 F .595(ally an inte)108 424.8 R .595
+F .55(alue is usu-)-.25 F .595(ally an inte)108 710.4 R .595
(ger constant, b)-.15 F .595(ut may be an e)-.2 F 3.096(xpression. When)
-.15 F .596(\231+=\232 is applied to an array v)3.096 F .596
-(ariable using com-)-.25 F .537(pound assignment \(see)108 436.8 R F2
+(ariable using com-)-.25 F .537(pound assignment \(see)108 722.4 R F2
(Arrays)3.036 E F1(belo)3.036 E .536(w\), the v)-.25 F(ariable')-.25 E
3.036(sv)-.55 G .536
(alue is not unset \(as it is when using \231=\232\), and ne)-3.286 F(w)
--.25 E -.25(va)108 448.8 S .431(lues are appended to the array be).25 F
-.431(ginning at one greater than the array')-.15 F 2.931(sm)-.55 G .431
+-.25 E(GNU Bash 5.3)72 768 Q(2026 January 14)141.79 E(10)190.95 E 0 Cg
+EP
+%%Page: 11 11
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E -.25(va)108 84 S .431
+(lues are appended to the array be).25 F .431
+(ginning at one greater than the array')-.15 F 2.931(sm)-.55 G .431
(aximum inde)-2.931 F 2.932(x\()-.15 G .432(for inde)-2.932 F -.15(xe)
-.15 G 2.932(da).15 G -.2(r-)-2.932 G .532
-(rays\) or added as additional k)108 460.8 R -.15(ey)-.1 G<ad76>.15 E
-.532(alue pairs in an associati)-.25 F .832 -.15(ve a)-.25 H(rray).15 E
+(rays\) or added as additional k)108 96 R -.15(ey)-.1 G<ad76>.15 E .532
+(alue pairs in an associati)-.25 F .832 -.15(ve a)-.25 H(rray).15 E
5.532(.W)-.65 G .532(hen applied to a string-v)-5.532 F .531(alued v)
--.25 F(ari-)-.25 E(able,)108 472.8 Q F0(value)2.5 E F1(is e)2.5 E
+-.25 F(ari-)-.25 E(able,)108 108 Q F0(value)2.5 E F1(is e)2.5 E
(xpanded and appended to the v)-.15 E(ariable')-.25 E 2.5(sv)-.55 G
-(alue.)-2.75 E 3.382(Av)108 489.6 S .882(ariable can be assigned the)
+(alue.)-2.75 E 3.382(Av)108 124.8 S .882(ariable can be assigned the)
-3.632 F F0(namer)3.382 E(ef)-.37 E F1(attrib)3.382 E .882
-(ute using the)-.2 F F2<ad6e>3.382 E F1 .882(option to the)3.382 F F2
-(declar)3.382 E(e)-.18 E F1(or)3.383 E F2(local)3.383 E F1 -.2(bu)3.383
-G .883(iltin com-).2 F .316(mands \(see the descriptions of)108 501.6 R
-F2(declar)2.816 E(e)-.18 E F1(and)2.816 E F2(local)2.816 E F1(belo)2.816
-E .316(w\) to create a)-.25 F F0(namer)2.815 E(ef)-.37 E F1 2.815(,o)C
-2.815(rar)-2.815 G .315(eference to another v)-2.815 F(ari-)-.25 E 2.918
-(able. This)108 513.6 R(allo)2.918 E .418(ws v)-.25 F .418
+(ute using the)-.2 F/F2 10/Times-Bold@0 SF<ad6e>3.382 E F1 .882
+(option to the)3.382 F F2(declar)3.382 E(e)-.18 E F1(or)3.383 E F2
+(local)3.383 E F1 -.2(bu)3.383 G .883(iltin com-).2 F .316
+(mands \(see the descriptions of)108 136.8 R F2(declar)2.816 E(e)-.18 E
+F1(and)2.816 E F2(local)2.816 E F1(belo)2.816 E .316(w\) to create a)
+-.25 F F0(namer)2.815 E(ef)-.37 E F1 2.815(,o)C 2.815(rar)-2.815 G .315
+(eference to another v)-2.815 F(ari-)-.25 E 2.918(able. This)108 148.8 R
+(allo)2.918 E .418(ws v)-.25 F .418
(ariables to be manipulated indirectly)-.25 F 5.419(.W)-.65 G(hene)
-5.419 E -.15(ve)-.25 G 2.919(rt).15 G .419(he nameref v)-2.919 F .419
(ariable is referenced, as-)-.25 F .133
-(signed to, unset, or has its attrib)108 525.6 R .132
+(signed to, unset, or has its attrib)108 160.8 R .132
(utes modi\214ed \(other than using or changing the)-.2 F F0(namer)2.632
E(ef)-.37 E F1(attrib)2.632 E .132(ute itself\), the)-.2 F 1.356
-(operation is actually performed on the v)108 537.6 R 1.357
+(operation is actually performed on the v)108 172.8 R 1.357
(ariable speci\214ed by the nameref v)-.25 F(ariable')-.25 E 3.857(sv)
-.55 G 3.857(alue. A)-4.107 F 1.357(nameref is)3.857 F .972
-(commonly used within shell functions to refer to a v)108 549.6 R .971
+(commonly used within shell functions to refer to a v)108 184.8 R .971
(ariable whose name is passed as an ar)-.25 F .971(gument to the)-.18 F
-2.5(function. F)108 561.6 R(or instance, if a v)-.15 E
+2.5(function. F)108 196.8 R(or instance, if a v)-.15 E
(ariable name is passed to a shell function as its \214rst ar)-.25 E
-(gument, running)-.18 E/F6 10/Courier@0 SF(declare \255n ref=$1)144
-578.4 Q F1 .385(inside the function creates a local nameref v)108 595.2
+(gument, running)-.18 E/F3 10/Courier@0 SF(declare \255n ref=$1)144
+213.6 Q F1 .385(inside the function creates a local nameref v)108 230.4
R(ariable)-.25 E F2 -.18(re)2.885 G(f).18 E F1 .385(whose v)2.885 F .385
(alue is the v)-.25 F .385(ariable name passed as the \214rst)-.25 F(ar)
-108 607.2 Q 3.531(gument. References)-.18 F 1.031(and assignments to)
+108 242.4 Q 3.531(gument. References)-.18 F 1.031(and assignments to)
3.531 F F2 -.18(re)3.531 G(f).18 E F1 3.531(,a)C 1.031
(nd changes to its attrib)-3.531 F 1.03
(utes, are treated as references, as-)-.2 F .196(signments, and attrib)
-108 619.2 R .196(ute modi\214cations to the v)-.2 F .196
+108 254.4 R .196(ute modi\214cations to the v)-.2 F .196
(ariable whose name w)-.25 F .196(as passed as)-.1 F F2($1)2.696 E F1
5.197(.I)C 2.697(ft)-5.197 G .197(he control v)-2.697 F(ariable)-.25 E
-.006(in a)108 631.2 R F2 -.25(fo)2.506 G(r).25 E F1 .006
+.006(in a)108 266.4 R F2 -.25(fo)2.506 G(r).25 E F1 .006
(loop has the nameref attrib)2.506 F .006(ute, the list of w)-.2 F .006
(ords can be a list of shell v)-.1 F .006
(ariables, and a name reference)-.25 F .325(is established for each w)
-108 643.2 R .325(ord in the list, in turn, when the loop is e)-.1 F -.15
+108 278.4 R .325(ord in the list, in turn, when the loop is e)-.1 F -.15
(xe)-.15 G 2.826(cuted. Array).15 F -.25(va)2.826 G .326
-(riables cannot be gi).25 F -.15(ve)-.25 G(n).15 E(the)108 655.2 Q F2
+(riables cannot be gi).25 F -.15(ve)-.25 G(n).15 E(the)108 290.4 Q F2
(namer)2.536 E(ef)-.18 E F1(attrib)2.536 E 2.536(ute. Ho)-.2 F(we)-.25 E
-.15(ve)-.25 G .836 -.4(r, n).15 H .036(ameref v).4 F .035
(ariables can reference array v)-.25 F .035
(ariables and subscripted array v)-.25 F(ari-)-.25 E 2.586
-(ables. Namerefs)108 667.2 R .086(can be unset using the)2.586 F F2
+(ables. Namerefs)108 302.4 R .086(can be unset using the)2.586 F F2
<ad6e>2.587 E F1 .087(option to the)2.587 F F2(unset)2.587 E F1 -.2(bu)
2.587 G 2.587(iltin. Otherwise,).2 F(if)2.587 E F2(unset)2.587 E F1 .087
(is e)2.587 F -.15(xe)-.15 G .087(cuted with).15 F
-(the name of a nameref v)108 679.2 Q(ariable as an ar)-.25 E
+(the name of a nameref v)108 314.4 Q(ariable as an ar)-.25 E
(gument, the v)-.18 E(ariable referenced by the nameref v)-.25 E
(ariable is unset.)-.25 E .612(When the shell starts, it reads its en)
-108 696 R .611(vironment and creates a shell v)-.4 F .611
+108 331.2 R .611(vironment and creates a shell v)-.4 F .611
(ariable from each en)-.25 F .611(vironment v)-.4 F(ariable)-.25 E
-(that has a v)108 708 Q(alid name, as described belo)-.25 E 2.5(w\()-.25
-G(see)-2.5 E F3(ENVIR)2.5 E(ONMENT)-.27 E F4(\).)A F1(GNU Bash 5.3)72
-768 Q(2025 April 7)149.285 E(10)198.445 E 0 Cg EP
-%%Page: 11 11
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF -.2(Po)87 84 S(sitional P).2
-E(arameters)-.1 E F1(A)108 96 Q F0 .705(positional par)4.455 F(ameter)
--.15 E F1 .706(is a parameter denoted by one or more digits, other than\
- the single digit 0.)3.935 F(Posi-)5.706 E .445
-(tional parameters are assigned from the shell')108 108 R 2.944(sa)-.55
+(that has a v)108 343.2 Q(alid name, as described belo)-.25 E 2.5(w\()
+-.25 G(see)-2.5 E/F4 9/Times-Bold@0 SF(ENVIR)2.5 E(ONMENT)-.27 E/F5 9
+/Times-Roman@0 SF(\).)A F2 -.2(Po)87 360 S(sitional P).2 E(arameters)-.1
+E F1(A)108 372 Q F0 .705(positional par)4.455 F(ameter)-.15 E F1 .706(i\
+s a parameter denoted by one or more digits, other than the single digi\
+t 0.)3.935 F(Posi-)5.706 E .445
+(tional parameters are assigned from the shell')108 384 R 2.944(sa)-.55
G -.18(rg)-2.944 G .444(uments when it is in).18 F -.2(vo)-.4 G -.1(ke)
-.2 G .444(d, and may be reassigned using).1 F(the)108 120 Q F2(set)3.333
+.2 G .444(d, and may be reassigned using).1 F(the)108 396 Q F2(set)3.333
E F1 -.2(bu)3.333 G .833(iltin command.).2 F .834(Positional parameters\
may not be assigned to with assignment statements.)5.833 F(The)5.834 E
(positional parameters are temporarily replaced when a shell function i\
-s e)108 132 Q -.15(xe)-.15 G(cuted \(see).15 E/F3 9/Times-Bold@0 SF
-(FUNCTIONS)2.5 E F1(belo)2.25 E(w\).)-.25 E 1.404(When a positional par\
-ameter consisting of more than a single digit is e)108 148.8 R 1.403
-(xpanded, it must be enclosed in)-.15 F .435(braces \(see)108 160.8 R F3
+s e)108 408 Q -.15(xe)-.15 G(cuted \(see).15 E F4(FUNCTIONS)2.5 E F1
+(belo)2.25 E(w\).)-.25 E 1.404(When a positional parameter consisting o\
+f more than a single digit is e)108 424.8 R 1.403
+(xpanded, it must be enclosed in)-.15 F .435(braces \(see)108 436.8 R F4
(EXP)2.935 E(ANSION)-.666 E F1(belo)2.685 E 2.935(w\). W)-.25 F .435
(ithout braces, a digit follo)-.4 F .435
(wing $ can only refer to one of the \214rst nine)-.25 F
-(positional parameters \()108 172.8 Q F2($1\255$9)A F1 2.5(\)o)C 2.5(rt)
+(positional parameters \()108 448.8 Q F2($1\255$9)A F1 2.5(\)o)C 2.5(rt)
-2.5 G(he special parameter)-2.5 E F2($0)2.5 E F1(\(see the ne)2.5 E
-(xt section\).)-.15 E F2(Special P)87 189.6 Q(arameters)-.1 E F1 1.675
-(The shell treats se)108 201.6 R -.15(ve)-.25 G 1.675
+(xt section\).)-.15 E F2(Special P)87 465.6 Q(arameters)-.1 E F1 1.675
+(The shell treats se)108 477.6 R -.15(ve)-.25 G 1.675
(ral parameters specially).15 F 6.675(.T)-.65 G 1.674
(hese parameters may only be referenced; assignment to)-6.675 F
-(them is not allo)108 213.6 Q 2.5(wed. Special)-.25 F
+(them is not allo)108 489.6 Q 2.5(wed. Special)-.25 F
(parameters are denoted by one of the follo)2.5 E(wing characters.)-.25
-E F2(*)108 230.4 Q F1(\()144 230.4 Q F2($*)A F1 3.477(\)E)C .978
+E F2(*)108 506.4 Q F1(\()144 506.4 Q F2($*)A F1 3.477(\)E)C .978
(xpands to the positional parameters, starting from one.)-3.477 F .978
(When the e)5.978 F .978(xpansion is not within)-.15 F .383
-(double quotes, each positional parameter e)144 242.4 R .383
+(double quotes, each positional parameter e)144 518.4 R .383
(xpands to a separate w)-.15 F 2.883(ord. In)-.1 F(conte)2.883 E .383
(xts where w)-.15 F .382(ord e)-.1 F(x-)-.15 E .13
-(pansions are performed, those w)144 254.4 R .131
+(pansions are performed, those w)144 530.4 R .131
(ords are subject to further w)-.1 F .131(ord splitting and pathname e)
--.1 F(xpansion.)-.15 E 1.096(When the e)144 266.4 R 1.096
+-.1 F(xpansion.)-.15 E 1.096(When the e)144 542.4 R 1.096
(xpansion occurs within double quotes, it e)-.15 F 1.096
(xpands to a single w)-.15 F 1.095(ord with the v)-.1 F 1.095(alue of)
-.25 F .628(each parameter separated by the \214rst character of the)144
-278.4 R F3(IFS)3.128 E F1 -.25(va)2.878 G 3.128(riable. That).25 F(is,)
+554.4 R F4(IFS)3.128 E F1 -.25(va)2.878 G 3.128(riable. That).25 F(is,)
3.128 E F2("$*")3.128 E F1 .628(is equi)3.128 F -.25(va)-.25 G .628
-(lent to).25 F F2("$1)144 290.4 Q F0(c)A F2($2)A F0(c)A F2 1.666(...)C
+(lent to).25 F F2("$1)144 566.4 Q F0(c)A F2($2)A F0(c)A F2 1.666(...)C
(")-1.666 E F1 2.806(,w)C(here)-2.806 E F0(c)3.006 E F1 .306
-(is the \214rst character of the v)3.116 F .306(alue of the)-.25 F F3
-(IFS)2.806 E F1 -.25(va)2.556 G 2.806(riable. If).25 F F3(IFS)2.806 E F1
+(is the \214rst character of the v)3.116 F .306(alue of the)-.25 F F4
+(IFS)2.806 E F1 -.25(va)2.556 G 2.806(riable. If).25 F F4(IFS)2.806 E F1
.305(is unset, the pa-)2.555 F .129(rameters are separated by spaces.)
-144 302.4 R(If)5.129 E F3(IFS)2.629 E F1 .129
+144 578.4 R(If)5.129 E F4(IFS)2.629 E F1 .129
(is null, the parameters are joined without interv)2.379 F .13
-(ening sep-)-.15 F(arators.)144 314.4 Q F2(@)108 326.4 Q F1(\()144 326.4
+(ening sep-)-.15 F(arators.)144 590.4 Q F2(@)108 602.4 Q F1(\()144 602.4
Q F2($@)A F1 2.861(\)E)C .361
(xpands to the positional parameters, starting from one.)-2.861 F .361
(In conte)5.361 F .36(xts where w)-.15 F .36(ord splitting is)-.1 F .252
-(performed, this e)144 338.4 R .253
+(performed, this e)144 614.4 R .253
(xpands each positional parameter to a separate w)-.15 F .253
-(ord; if not within double quotes,)-.1 F .396(these w)144 350.4 R .396
+(ord; if not within double quotes,)-.1 F .396(these w)144 626.4 R .396
(ords are subject to w)-.1 F .396(ord splitting.)-.1 F .396(In conte)
5.396 F .396(xts where w)-.15 F .396
-(ord splitting is not performed, such)-.1 F .148(as the v)144 362.4 R
+(ord splitting is not performed, such)-.1 F .148(as the v)144 638.4 R
.148(alue portion of an assignment statement, this e)-.25 F .148
(xpands to a single w)-.15 F .149(ord with each positional)-.1 F .155
-(parameter separated by a space.)144 374.4 R .155(When the e)5.155 F
+(parameter separated by a space.)144 650.4 R .155(When the e)5.155 F
.155(xpansion occurs within double quotes, and w)-.15 F .155(ord split-)
--.1 F 1.484(ting is performed, each parameter e)144 386.4 R 1.484
+-.1 F 1.484(ting is performed, each parameter e)144 662.4 R 1.484
(xpands to a separate w)-.15 F 3.984(ord. That)-.1 F(is,)3.984 E F2
("$@")3.984 E F1 1.484(is equi)3.984 F -.25(va)-.25 G 1.484(lent to).25
-F F2("$1" "$2" .)144 398.4 Q 1.666(..)1.666 G F1 .205
+F F2("$1" "$2" .)144 674.4 Q 1.666(..)1.666 G F1 .205
(If the double-quoted e)3.539 F .205(xpansion occurs within a w)-.15 F
.205(ord, the e)-.1 F .205(xpansion of the \214rst pa-)-.15 F .36
-(rameter is joined with the e)144 410.4 R .361(xpansion of the be)-.15 F
+(rameter is joined with the e)144 686.4 R .361(xpansion of the be)-.15 F
.361(ginning part of the original w)-.15 F .361(ord, and the e)-.1 F
(xpansion)-.15 E .197(of the last parameter is joined with the e)144
-422.4 R .197(xpansion of the last part of the original w)-.15 F 2.696
-(ord. When)-.1 F(there)2.696 E(are no positional parameters,)144 434.4 Q
+698.4 R .197(xpansion of the last part of the original w)-.15 F 2.696
+(ord. When)-.1 F(there)2.696 E(are no positional parameters,)144 710.4 Q
F2("$@")2.5 E F1(and)2.5 E F2($@)2.5 E F1 -.15(ex)2.5 G
(pand to nothing \(i.e., the).15 E 2.5(ya)-.15 G(re remo)-2.5 E -.15(ve)
--.15 G(d\).).15 E F2(#)108 446.4 Q F1(\()144 446.4 Q F2($#)A F1 2.5(\)E)
-C(xpands to the number of positional parameters in decimal.)-2.5 E F2(?)
-108 458.4 Q F1(\()144 458.4 Q F2($?)A F1 2.5(\)E)C(xpands to the e)-2.5
-E(xit status of the most recently e)-.15 E -.15(xe)-.15 G
-(cuted command.).15 E F2<ad>108 470.4 Q F1(\()144 470.4 Q F2<24ad>A F1
-2.779(\)E)C .279
+-.15 G(d\).).15 E(GNU Bash 5.3)72 768 Q(2026 January 14)141.79 E(11)
+190.95 E 0 Cg EP
+%%Page: 12 12
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(#)108 84 Q F1(\()144 84 Q F2
+($#)A F1 2.5(\)E)C
+(xpands to the number of positional parameters in decimal.)-2.5 E F2(?)
+108 96 Q F1(\()144 96 Q F2($?)A F1 2.5(\)E)C(xpands to the e)-2.5 E
+(xit status of the most recently e)-.15 E -.15(xe)-.15 G(cuted command.)
+.15 E F2<ad>108 108 Q F1(\()144 108 Q F2<24ad>A F1 2.779(\)E)C .279
(xpands to the current option \215ags as speci\214ed upon in)-2.779 F
-.2(vo)-.4 G .28(cation, by the).2 F F2(set)2.78 E F1 -.2(bu)2.78 G .28
(iltin command,).2 F(or those set by the shell itself \(such as the)144
-482.4 Q F2<ad69>2.5 E F1(option\).)2.5 E F2($)108 494.4 Q F1(\()144
-494.4 Q F2($$)A F1 2.835(\)E)C .335
-(xpands to the process ID of the shell.)-2.835 F .335
-(In a subshell, it e)5.335 F .335(xpands to the process ID of the par)
--.15 F(-)-.2 E(ent shell, not the subshell.)144 506.4 Q F2(!)108 518.4 Q
-F1(\()144 518.4 Q F2($!)A F1 .722(\)Expands to the process ID of the jo\
-b most recently placed into the background, whether e)B -.15(xe)-.15 G
-(-).15 E(cuted as an asynchronous command or using the)144 530.4 Q F2
-(bg)2.5 E F1 -.2(bu)2.5 G(iltin \(see).2 E F3(JOB CONTR)2.5 E(OL)-.27 E
-F1(belo)2.25 E(w\).)-.25 E F2(0)108 542.4 Q F1(\()144 542.4 Q F2($0)A F1
-3.095(\)E)C .594(xpands to the name of the shell or shell script.)-3.095
-F .594(This is set at shell initialization.)5.594 F(If)5.594 E F2(bash)
-3.094 E F1(is)3.094 E(in)144 554.4 Q -.2(vo)-.4 G -.1(ke).2 G 3.077(dw)
-.1 G .577(ith a \214le of commands,)-3.077 F F2($0)3.077 E F1 .578
+120 Q F2<ad69>2.5 E F1(option\).)2.5 E F2($)108 132 Q F1(\()144 132 Q F2
+($$)A F1 2.835(\)E)C .335(xpands to the process ID of the shell.)-2.835
+F .335(In a subshell, it e)5.335 F .335
+(xpands to the process ID of the par)-.15 F(-)-.2 E
+(ent shell, not the subshell.)144 144 Q F2(!)108 156 Q F1(\()144 156 Q
+F2($!)A F1 .722(\)Expands to the process ID of the job most recently pl\
+aced into the background, whether e)B -.15(xe)-.15 G(-).15 E
+(cuted as an asynchronous command or using the)144 168 Q F2(bg)2.5 E F1
+-.2(bu)2.5 G(iltin \(see).2 E/F3 9/Times-Bold@0 SF(JOB CONTR)2.5 E(OL)
+-.27 E F1(belo)2.25 E(w\).)-.25 E F2(0)108 180 Q F1(\()144 180 Q F2($0)A
+F1 3.095(\)E)C .594(xpands to the name of the shell or shell script.)
+-3.095 F .594(This is set at shell initialization.)5.594 F(If)5.594 E F2
+(bash)3.094 E F1(is)3.094 E(in)144 192 Q -.2(vo)-.4 G -.1(ke).2 G 3.077
+(dw).1 G .577(ith a \214le of commands,)-3.077 F F2($0)3.077 E F1 .578
(is set to the name of that \214le.)3.077 F(If)5.578 E F2(bash)3.078 E
F1 .578(is started with the)3.078 F F2<ad63>3.078 E F1 .369
-(option, then)144 566.4 R F2($0)2.869 E F1 .369
-(is set to the \214rst ar)2.869 F .369(gument after the string to be e)
--.18 F -.15(xe)-.15 G .369(cuted, if one is present.).15 F(Other)5.368 E
-(-)-.2 E(wise, it is set to the \214lename used to in)144 578.4 Q -.2
-(vo)-.4 G -.1(ke).2 G F2(bash)2.6 E F1 2.5(,a)C 2.5(sg)-2.5 G -2.15 -.25
-(iv e)-2.5 H 2.5(nb).25 G 2.5(ya)-2.5 G -.18(rg)-2.5 G(ument zero.).18 E
-F2(Shell V)87 595.2 Q(ariables)-.92 E F1(The shell sets follo)108 607.2
-Q(wing v)-.25 E(ariables:)-.25 E F2(_)108 624 Q F1(\()144 624 Q F2($_)A
-F1 2.554(,a)C 2.554(nu)-2.554 G .055
+(option, then)144 204 R F2($0)2.869 E F1 .369(is set to the \214rst ar)
+2.869 F .369(gument after the string to be e)-.18 F -.15(xe)-.15 G .369
+(cuted, if one is present.).15 F(Other)5.368 E(-)-.2 E
+(wise, it is set to the \214lename used to in)144 216 Q -.2(vo)-.4 G -.1
+(ke).2 G F2(bash)2.6 E F1 2.5(,a)C 2.5(sg)-2.5 G -2.15 -.25(iv e)-2.5 H
+2.5(nb).25 G 2.5(ya)-2.5 G -.18(rg)-2.5 G(ument zero.).18 E F2(Shell V)
+87 232.8 Q(ariables)-.92 E F1(The shell sets follo)108 244.8 Q(wing v)
+-.25 E(ariables:)-.25 E F2(_)108 261.6 Q F1(\()144 261.6 Q F2($_)A F1
+2.554(,a)C 2.554(nu)-2.554 G .055
(nderscore\) This has a number of meanings depending on conte)-2.554 F
2.555(xt. At)-.15 F .055(shell startup,)2.555 F F2(_)2.555 E F1 .055
-(is set)2.555 F .913(to the pathname used to in)144 636 R -.2(vo)-.4 G
+(is set)2.555 F .913(to the pathname used to in)144 273.6 R -.2(vo)-.4 G
1.113 -.1(ke t).2 H .912(he shell or shell script being e).1 F -.15(xe)
-.15 G .912(cuted as passed in the en).15 F(viron-)-.4 E .569
-(ment or ar)144 648 R .569(gument list.)-.18 F(Subsequently)5.569 E
+(ment or ar)144 285.6 R .569(gument list.)-.18 F(Subsequently)5.569 E
3.069(,i)-.65 G 3.069(te)-3.069 G .569(xpands to the last ar)-3.219 F
.57(gument to the pre)-.18 F .57(vious simple com-)-.25 F .009(mand e)
-144 660 R -.15(xe)-.15 G .009(cuted in the fore).15 F .008
+144 297.6 R -.15(xe)-.15 G .009(cuted in the fore).15 F .008
(ground, after e)-.15 F 2.508(xpansion. It)-.15 F .008
(is also set to the full pathname used to in)2.508 F -.2(vo)-.4 G -.1
-(ke).2 G .555(each command e)144 672 R -.15(xe)-.15 G .555
+(ke).2 G .555(each command e)144 309.6 R -.15(xe)-.15 G .555
(cuted and placed in the en).15 F .555(vironment e)-.4 F .556
(xported to that command.)-.15 F .556(When check-)5.556 F(ing mail,)144
-684 Q F2($_)2.5 E F1 -.15(ex)2.5 G
+321.6 Q F2($_)2.5 E F1 -.15(ex)2.5 G
(pands to the name of the mail \214le currently being check).15 E(ed.)
--.1 E F2 -.3(BA)108 696 S(SH).3 E F1
-(Expands to the full \214lename used to in)144 696 Q -.2(vo)-.4 G .2 -.1
-(ke t).2 H(his instance of).1 E F2(bash)2.5 E F1(.)A(GNU Bash 5.3)72 768
-Q(2025 April 7)149.285 E(11)198.445 E 0 Cg EP
-%%Page: 12 12
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF -.3(BA)108 84 S(SHOPTS).3 E
-F1 2.549(Ac)144 96 S .049(olon-separated list of enabled shell options.)
--2.549 F .049(Each w)5.049 F .049(ord in the list is a v)-.1 F .049
-(alid ar)-.25 F .049(gument for the)-.18 F F2<ad73>2.548 E F1 .115
-(option to the)144 108 R F2(shopt)2.616 E F1 -.2(bu)2.616 G .116
-(iltin command \(see).2 F/F3 9/Times-Bold@0 SF .116(SHELL B)2.616 F(UIL)
--.09 E .116(TIN COMMANDS)-.828 F F1(belo)2.366 E 2.616(w\). The)-.25 F
-.116(options ap-)2.616 F 1.067(pearing in)144 120 R F3 -.27(BA)3.567 G
-(SHOPTS).27 E F1 1.067(are those reported as)3.317 F F0(on)3.797 E F1
-(by)3.807 E F2(shopt)3.567 E F1 6.066(.I)C 3.566(ft)-6.066 G 1.066
-(his v)-3.566 F 1.066(ariable is in the en)-.25 F(vironment)-.4 E(when)
-144 132 Q F2(bash)3.42 E F1 .92
+-.1 E F2 -.3(BA)108 333.6 S(SH).3 E F1
+(Expands to the full \214lename used to in)144 333.6 Q -.2(vo)-.4 G .2
+-.1(ke t).2 H(his instance of).1 E F2(bash)2.5 E F1(.)A F2 -.3(BA)108
+345.6 S(SHOPTS).3 E F1 2.549(Ac)144 357.6 S .049
+(olon-separated list of enabled shell options.)-2.549 F .049(Each w)
+5.049 F .049(ord in the list is a v)-.1 F .049(alid ar)-.25 F .049
+(gument for the)-.18 F F2<ad73>2.548 E F1 .115(option to the)144 369.6 R
+F2(shopt)2.616 E F1 -.2(bu)2.616 G .116(iltin command \(see).2 F F3 .116
+(SHELL B)2.616 F(UIL)-.09 E .116(TIN COMMANDS)-.828 F F1(belo)2.366 E
+2.616(w\). The)-.25 F .116(options ap-)2.616 F 1.067(pearing in)144
+381.6 R F3 -.27(BA)3.567 G(SHOPTS).27 E F1 1.067(are those reported as)
+3.317 F F0(on)3.797 E F1(by)3.807 E F2(shopt)3.567 E F1 6.066(.I)C 3.566
+(ft)-6.066 G 1.066(his v)-3.566 F 1.066(ariable is in the en)-.25 F
+(vironment)-.4 E(when)144 393.6 Q F2(bash)3.42 E F1 .92
(starts up, the shell enables each option in the list before reading an)
3.42 F 3.42(ys)-.15 G .92(tartup \214les.)-3.42 F(If)5.92 E(this v)144
-144 Q(ariable is e)-.25 E
+405.6 Q(ariable is e)-.25 E
(xported, child shells will enable each option in the list.)-.15 E
-(This v)5 E(ariable is read-only)-.25 E(.)-.65 E F2 -.3(BA)108 156 S
-(SHPID).3 E F1 .188(Expands to the process ID of the current)144 168 R
+(This v)5 E(ariable is read-only)-.25 E(.)-.65 E F2 -.3(BA)108 417.6 S
+(SHPID).3 E F1 .188(Expands to the process ID of the current)144 429.6 R
F2(bash)2.688 E F1 2.687(process. This)2.687 F(dif)2.687 E .187
(fers from)-.25 F F2($$)2.687 E F1 .187(under certain circum-)2.687 F
-.548(stances, such as subshells that do not require)144 180 R F2(bash)
+.548(stances, such as subshells that do not require)144 441.6 R F2(bash)
3.048 E F1 .548(to be re-initialized.)3.048 F .549(Assignments to)5.549
-F F3 -.27(BA)3.049 G(SHPID).27 E F1(ha)144 192 Q .3 -.15(ve n)-.2 H 2.5
-(oe).15 G -.25(ff)-2.5 G 2.5(ect. If).25 F F3 -.27(BA)2.5 G(SHPID).27 E
-F1(is unset, it loses its special properties, e)2.25 E -.15(ve)-.25 G
+F F3 -.27(BA)3.049 G(SHPID).27 E F1(ha)144 453.6 Q .3 -.15(ve n)-.2 H
+2.5(oe).15 G -.25(ff)-2.5 G 2.5(ect. If).25 F F3 -.27(BA)2.5 G(SHPID).27
+E F1(is unset, it loses its special properties, e)2.25 E -.15(ve)-.25 G
2.5(ni).15 G 2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5(ss)-2.5 G
-(ubsequently reset.)-2.5 E F2 -.3(BA)108 204 S(SH_ALIASES).3 E F1 1.195
-(An associati)144 216 R 1.495 -.15(ve a)-.25 H 1.195(rray v).15 F 1.195
-(ariable whose members correspond to the internal list of aliases as ma\
-in-)-.25 F .16(tained by the)144 228 R F2(alias)2.66 E F1 -.2(bu)2.66 G
-2.66(iltin. Elements).2 F .16
+(ubsequently reset.)-2.5 E F2 -.3(BA)108 465.6 S(SH_ALIASES).3 E F1
+1.195(An associati)144 477.6 R 1.495 -.15(ve a)-.25 H 1.195(rray v).15 F
+1.195(ariable whose members correspond to the internal list of aliases \
+as main-)-.25 F .16(tained by the)144 489.6 R F2(alias)2.66 E F1 -.2(bu)
+2.66 G 2.66(iltin. Elements).2 F .16
(added to this array appear in the alias list; ho)2.66 F(we)-.25 E -.15
(ve)-.25 G .96 -.4(r, u).15 H(nsetting).4 E .142
-(array elements currently does not remo)144 240 R .442 -.15(ve a)-.15 H
-.142(liases from the alias list.).15 F(If)5.142 E F3 -.27(BA)2.642 G
+(array elements currently does not remo)144 501.6 R .442 -.15(ve a)-.15
+H .142(liases from the alias list.).15 F(If)5.142 E F3 -.27(BA)2.642 G
(SH_ALIASES).27 E F1 .142(is unset, it)2.392 F
-(loses its special properties, e)144 252 Q -.15(ve)-.25 G 2.5(ni).15 G
+(loses its special properties, e)144 513.6 Q -.15(ve)-.25 G 2.5(ni).15 G
2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5(ss)-2.5 G(ubsequently reset.)-2.5 E F2
--.3(BA)108 264 S(SH_ARGC).3 E F1 .934(An array v)144 276 R .934
+-.3(BA)108 525.6 S(SH_ARGC).3 E F1 .934(An array v)144 537.6 R .934
(ariable whose v)-.25 F .934
(alues are the number of parameters in each frame of the current)-.25 F
-F2(bash)3.435 E F1 -.15(exe)144 288 S .535(cution call stack.).15 F .535
-(The number of parameters to the current subroutine \(shell function or\
- script)5.535 F -.15(exe)144 300 S .141(cuted with).15 F F2(.)2.641 E F1
-(or)2.641 E F2(sour)2.641 E(ce)-.18 E F1 2.641(\)i)C 2.641(sa)-2.641 G
-2.641(tt)-2.641 G .142(he top of the stack.)-2.641 F .142
+F2(bash)3.435 E F1 -.15(exe)144 549.6 S .535(cution call stack.).15 F
+.535(The number of parameters to the current subroutine \(shell functio\
+n or script)5.535 F -.15(exe)144 561.6 S .141(cuted with).15 F F2(.)
+2.641 E F1(or)2.641 E F2(sour)2.641 E(ce)-.18 E F1 2.641(\)i)C 2.641(sa)
+-2.641 G 2.641(tt)-2.641 G .142(he top of the stack.)-2.641 F .142
(When a subroutine is e)5.142 F -.15(xe)-.15 G .142
(cuted, the number of).15 F 1.265(parameters passed is pushed onto)144
-312 R F3 -.27(BA)3.765 G(SH_ARGC).27 E/F4 9/Times-Roman@0 SF(.)A F1
+573.6 R F3 -.27(BA)3.765 G(SH_ARGC).27 E/F4 9/Times-Roman@0 SF(.)A F1
1.265(The shell sets)5.765 F F3 -.27(BA)3.765 G(SH_ARGC).27 E F1 1.265
-(only when in e)3.515 F(x-)-.15 E .947(tended deb)144 324 R .947
+(only when in e)3.515 F(x-)-.15 E .947(tended deb)144 585.6 R .947
(ugging mode \(see the description of the)-.2 F F2(extdeb)3.447 E(ug)-.2
E F1 .947(option to the)3.447 F F2(shopt)3.447 E F1 -.2(bu)3.448 G .948
-(iltin belo).2 F(w\).)-.25 E(Setting)144 336 Q F2(extdeb)3.363 E(ug)-.2
-E F1 .863(after the shell has started to e)3.363 F -.15(xe)-.15 G .862
-(cute a script, or referencing this v).15 F .862(ariable when)-.25 F F2
-(extdeb)144 348 Q(ug)-.2 E F1 .706
+(iltin belo).2 F(w\).)-.25 E(Setting)144 597.6 Q F2(extdeb)3.363 E(ug)
+-.2 E F1 .863(after the shell has started to e)3.363 F -.15(xe)-.15 G
+.862(cute a script, or referencing this v).15 F .862(ariable when)-.25 F
+F2(extdeb)144 609.6 Q(ug)-.2 E F1 .706
(is not set, may result in inconsistent v)3.206 F 3.206
(alues. Assignments)-.25 F(to)3.206 E F3 -.27(BA)3.206 G(SH_ARGC).27 E
F1(ha)2.957 E 1.007 -.15(ve n)-.2 H 3.207(oe).15 G(f-)-3.207 E
-(fect, and it may not be unset.)144 360 Q F2 -.3(BA)108 372 S(SH_ARGV).3
-E F1 .207(An array v)144 384 R .206
+(fect, and it may not be unset.)144 621.6 Q F2 -.3(BA)108 633.6 S
+(SH_ARGV).3 E F1 .207(An array v)144 645.6 R .206
(ariable containing all of the parameters in the current)-.25 F F2(bash)
2.706 E F1 -.15(exe)2.706 G .206(cution call stack.).15 F .206
(The \214-)5.206 F .567(nal parameter of the last subroutine call is at\
- the top of the stack; the \214rst parameter of the initial)144 396 R
-.067(call is at the bottom.)144 408 R .067(When a subroutine is e)5.067
-F -.15(xe)-.15 G .067
+ the top of the stack; the \214rst parameter of the initial)144 657.6 R
+.067(call is at the bottom.)144 669.6 R .067(When a subroutine is e)
+5.067 F -.15(xe)-.15 G .067
(cuted, the shell pushes the supplied parameters onto).15 F F3 -.27(BA)
-144 420 S(SH_ARGV).27 E F4(.)A F1 .853(The shell sets)5.353 F F3 -.27
+144 681.6 S(SH_ARGV).27 E F4(.)A F1 .853(The shell sets)5.353 F F3 -.27
(BA)3.353 G(SH_ARGV).27 E F1 .853(only when in e)3.103 F .854
(xtended deb)-.15 F .854(ugging mode \(see the de-)-.2 F .476
-(scription of the)144 432 R F2(extdeb)2.976 E(ug)-.2 E F1 .476
+(scription of the)144 693.6 R F2(extdeb)2.976 E(ug)-.2 E F1 .476
(option to the)2.976 F F2(shopt)2.975 E F1 -.2(bu)2.975 G .475
(iltin belo).2 F 2.975(w\). Setting)-.25 F F2(extdeb)2.975 E(ug)-.2 E F1
-.475(after the shell has)2.975 F .45(started to e)144 444 R -.15(xe)-.15
-G .45(cute a script, or referencing this v).15 F .45(ariable when)-.25 F
-F2(extdeb)2.95 E(ug)-.2 E F1 .45(is not set, may result in in-)2.95 F
-(consistent v)144 456 Q 2.5(alues. Assignments)-.25 F(to)2.5 E F3 -.27
-(BA)2.5 G(SH_ARGV).27 E F1(ha)2.25 E .3 -.15(ve n)-.2 H 2.5(oe).15 G
--.25(ff)-2.5 G(ect, and it may not be unset.).25 E F2 -.3(BA)108 468 S
-(SH_ARGV0).3 E F1 .251(When referenced, this v)144 480 R .251(ariable e)
--.25 F .251
+.475(after the shell has)2.975 F .45(started to e)144 705.6 R -.15(xe)
+-.15 G .45(cute a script, or referencing this v).15 F .45(ariable when)
+-.25 F F2(extdeb)2.95 E(ug)-.2 E F1 .45(is not set, may result in in-)
+2.95 F(consistent v)144 717.6 Q 2.5(alues. Assignments)-.25 F(to)2.5 E
+F3 -.27(BA)2.5 G(SH_ARGV).27 E F1(ha)2.25 E .3 -.15(ve n)-.2 H 2.5(oe)
+.15 G -.25(ff)-2.5 G(ect, and it may not be unset.).25 E(GNU Bash 5.3)72
+768 Q(2026 January 14)141.79 E(12)190.95 E 0 Cg EP
+%%Page: 13 13
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF -.3(BA)108 84 S(SH_ARGV0).3 E
+F1 .251(When referenced, this v)144 96 R .251(ariable e)-.25 F .251
(xpands to the name of the shell or shell script \(identical to)-.15 F
F2($0)2.75 E F1 2.75(;s)C(ee)-2.75 E .678
-(the description of special parameter 0 abo)144 492 R -.15(ve)-.15 G
-3.178(\). Assigning).15 F 3.179(av)3.178 G .679(alue to)-3.429 F F3 -.27
-(BA)3.179 G(SH_ARGV0).27 E F1(sets)2.929 E F2($0)3.179 E F1 .679(to the)
-3.179 F .451(same v)144 504 R 2.951(alue. If)-.25 F F3 -.27(BA)2.951 G
-(SH_ARGV0).27 E F1 .45(is unset, it loses its special properties, e)
-2.701 F -.15(ve)-.25 G 2.95(ni).15 G 2.95(fi)-2.95 G 2.95(ti)-2.95 G
-2.95(ss)-2.95 G .45(ubsequently re-)-2.95 F(set.)144 516 Q F2 -.3(BA)108
-528 S(SH_CMDS).3 E F1 .667(An associati)144 540 R .967 -.15(ve a)-.25 H
-.667(rray v).15 F .668(ariable whose members correspond to the internal\
- hash table of commands)-.25 F .709(as maintained by the)144 552 R F2
-(hash)3.208 E F1 -.2(bu)3.208 G 3.208(iltin. Adding).2 F .708
-(elements to this array mak)3.208 F .708(es them appear in the hash)-.1
-F .058(table; ho)144 564 R(we)-.25 E -.15(ve)-.25 G .858 -.4(r, u).15 H
-.058(nsetting array elements currently does not remo).4 F .359 -.15
-(ve c)-.15 H .059(ommand names from the hash).15 F 2.5(table. If)144 576
-R F3 -.27(BA)2.5 G(SH_CMDS).27 E F1
+(the description of special parameter 0 abo)144 108 R -.15(ve)-.15 G
+3.178(\). Assigning).15 F 3.179(av)3.178 G .679(alue to)-3.429 F/F3 9
+/Times-Bold@0 SF -.27(BA)3.179 G(SH_ARGV0).27 E F1(sets)2.929 E F2($0)
+3.179 E F1 .679(to the)3.179 F .451(same v)144 120 R 2.951(alue. If)-.25
+F F3 -.27(BA)2.951 G(SH_ARGV0).27 E F1 .45
+(is unset, it loses its special properties, e)2.701 F -.15(ve)-.25 G
+2.95(ni).15 G 2.95(fi)-2.95 G 2.95(ti)-2.95 G 2.95(ss)-2.95 G .45
+(ubsequently re-)-2.95 F(set.)144 132 Q F2 -.3(BA)108 144 S(SH_CMDS).3 E
+F1 .667(An associati)144 156 R .967 -.15(ve a)-.25 H .667(rray v).15 F
+.668(ariable whose members correspond to the internal hash table of com\
+mands)-.25 F .709(as maintained by the)144 168 R F2(hash)3.208 E F1 -.2
+(bu)3.208 G 3.208(iltin. Adding).2 F .708(elements to this array mak)
+3.208 F .708(es them appear in the hash)-.1 F .058(table; ho)144 180 R
+(we)-.25 E -.15(ve)-.25 G .858 -.4(r, u).15 H .058
+(nsetting array elements currently does not remo).4 F .359 -.15(ve c)
+-.15 H .059(ommand names from the hash).15 F 2.5(table. If)144 192 R F3
+-.27(BA)2.5 G(SH_CMDS).27 E F1
(is unset, it loses its special properties, e)2.25 E -.15(ve)-.25 G 2.5
(ni).15 G 2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5(ss)-2.5 G(ubsequently reset.)
--2.5 E F2 -.3(BA)108 588 S(SH_COMMAND).3 E F1 .21
-(Expands to the command currently being e)144 600 R -.15(xe)-.15 G .21
+-2.5 E F2 -.3(BA)108 204 S(SH_COMMAND).3 E F1 .21
+(Expands to the command currently being e)144 216 R -.15(xe)-.15 G .21
(cuted or about to be e).15 F -.15(xe)-.15 G .21
(cuted, unless the shell is e).15 F -.15(xe)-.15 G(-).15 E .304(cuting \
a command as the result of a trap, in which case it is the command e)144
-612 R -.15(xe)-.15 G .304(cuting at the time of).15 F .151(the trap.)144
-624 R(If)5.151 E F3 -.27(BA)2.651 G(SH_COMMAND).27 E F1 .15
+228 R -.15(xe)-.15 G .304(cuting at the time of).15 F .151(the trap.)144
+240 R(If)5.151 E F3 -.27(BA)2.651 G(SH_COMMAND).27 E F1 .15
(is unset, it loses its special properties, e)2.401 F -.15(ve)-.25 G
2.65(ni).15 G 2.65(fi)-2.65 G 2.65(ti)-2.65 G 2.65(ss)-2.65 G .15
-(ubsequently re-)-2.65 F(set.)144 636 Q F2 -.3(BA)108 648 S
-(SH_EXECUTION_STRING).3 E F1(The command ar)144 660 Q(gument to the)-.18
+(ubsequently re-)-2.65 F(set.)144 252 Q F2 -.3(BA)108 264 S
+(SH_EXECUTION_STRING).3 E F1(The command ar)144 276 Q(gument to the)-.18
E F2<ad63>2.5 E F1(in)2.5 E -.2(vo)-.4 G(cation option.).2 E F2 -.3(BA)
-108 672 S(SH_LINENO).3 E F1 .692(An array v)144 684 R .692(ariable whos\
+108 288 S(SH_LINENO).3 E F1 .692(An array v)144 300 R .692(ariable whos\
e members are the line numbers in source \214les where each correspondi\
-ng)-.25 F .97(member of)144 696 R F3(FUNCN)3.47 E(AME)-.18 E F1 -.1(wa)
+ng)-.25 F .97(member of)144 312 R F3(FUNCN)3.47 E(AME)-.18 E F1 -.1(wa)
3.22 G 3.47(si).1 G -1.9 -.4(nv o)-3.47 H -.1(ke).4 G(d.).1 E F2(${B)
5.969 E(ASH_LINENO[)-.3 E F0($i)A F2(]})A F1 .969
-(is the line number in the source)3.469 F 14.671(\214le \()144 708 R F2
+(is the line number in the source)3.469 F 14.671(\214le \()144 324 R F2
(${B)A(ASH_SOURCE[)-.3 E F0($i+1)A F2(]})A F1 17.171(\)w)C(here)-17.171
E F2(${FUNCN)17.172 E(AME[)-.2 E F0($i)A F2(]})A F1 -.1(wa)17.172 G
-17.172(sc).1 G 14.672(alled \(or)-17.172 F F2(${B)144 720 Q(ASH_LINENO[)
+17.172(sc).1 G 14.672(alled \(or)-17.172 F F2(${B)144 336 Q(ASH_LINENO[)
-.3 E F0($i\2551)A F2(]})A F1 1.257
(if referenced within another shell function\).)3.757 F(Use)6.256 E F3
-(LINENO)3.756 E F1 1.256(to obtain)3.506 F(GNU Bash 5.3)72 768 Q
-(2025 April 7)149.285 E(12)198.445 E 0 Cg EP
-%%Page: 13 13
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E(the current line number)144 84 Q 5(.A)-.55 G
-(ssignments to)-5 E/F2 9/Times-Bold@0 SF -.27(BA)2.5 G(SH_LINENO).27 E
-F1(ha)2.25 E .3 -.15(ve n)-.2 H 2.5(oe).15 G -.25(ff)-2.5 G
-(ect, and it may not be unset.).25 E/F3 10/Times-Bold@0 SF -.3(BA)108 96
-S(SH_LO).3 E(AD)-.4 E(ABLES_P)-.35 E -.95(AT)-.74 G(H).95 E F1 2.645(Ac)
-144 108 S .145(olon-separated list of directories in which the)-2.645 F
-F3(enable)2.645 E F1 .146(command looks for dynamically loadable)2.646 F
--.2(bu)144 120 S(iltins.).2 E F3 -.3(BA)108 132 S(SH_MONOSECONDS).3 E F1
-.707(Each time this v)144 144 R .707(ariable is referenced, it e)-.25 F
-.707(xpands to the v)-.15 F .706(alue returned by the system')-.25 F
-3.206(sm)-.55 G(onotonic)-3.206 E .057(clock, if one is a)144 156 R -.25
-(va)-.2 G 2.557(ilable. If).25 F .057
+(LINENO)3.756 E F1 1.256(to obtain)3.506 F(the current line number)144
+348 Q 5(.A)-.55 G(ssignments to)-5 E F3 -.27(BA)2.5 G(SH_LINENO).27 E F1
+(ha)2.25 E .3 -.15(ve n)-.2 H 2.5(oe).15 G -.25(ff)-2.5 G
+(ect, and it may not be unset.).25 E F2 -.3(BA)108 360 S(SH_LO).3 E(AD)
+-.4 E(ABLES_P)-.35 E -.95(AT)-.74 G(H).95 E F1 2.645(Ac)144 372 S .145
+(olon-separated list of directories in which the)-2.645 F F2(enable)
+2.645 E F1 .146(command looks for dynamically loadable)2.646 F -.2(bu)
+144 384 S(iltins.).2 E F2 -.3(BA)108 396 S(SH_MONOSECONDS).3 E F1 .707
+(Each time this v)144 408 R .707(ariable is referenced, it e)-.25 F .707
+(xpands to the v)-.15 F .706(alue returned by the system')-.25 F 3.206
+(sm)-.55 G(onotonic)-3.206 E .057(clock, if one is a)144 420 R -.25(va)
+-.2 G 2.557(ilable. If).25 F .057
(there is no monotonic clock, this is equi)2.557 F -.25(va)-.25 G .058
-(lent to).25 F F3(EPOCHSECONDS)2.558 E F1(.)A(If)144 168 Q F2 -.27(BA)
+(lent to).25 F F2(EPOCHSECONDS)2.558 E F1(.)A(If)144 432 Q F3 -.27(BA)
2.5 G(SH_MONOSECONDS).27 E F1
(is unset, it loses its special properties, e)2.25 E -.15(ve)-.25 G 2.5
(ni).15 G 2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5(ss)-2.5 G(ubsequently reset.)
--2.5 E F3 -.3(BA)108 180 S(SH_REMA).3 E(TCH)-.95 E F1 1.418(An array v)
-144 192 R 1.418(ariable whose members are assigned by the)-.25 F F3
-<3d01>3.918 E F1 1.418(binary operator to the)3.918 F F3([[)3.918 E F1
-(conditional)3.918 E 3.461(command. The)144 204 R .962
+-2.5 E F2 -.3(BA)108 444 S(SH_REMA).3 E(TCH)-.95 E F1 1.418(An array v)
+144 456 R 1.418(ariable whose members are assigned by the)-.25 F F2
+<3d01>3.918 E F1 1.418(binary operator to the)3.918 F F2([[)3.918 E F1
+(conditional)3.918 E 3.461(command. The)144 468 R .962
(element with inde)3.461 F 3.462(x0i)-.15 G 3.462(st)-3.462 G .962
(he portion of the string matching the entire re)-3.462 F .962(gular e)
--.15 F(x-)-.15 E 3.82(pression. The)144 216 R 1.32(element with inde)
+-.15 F(x-)-.15 E 3.82(pression. The)144 480 R 1.32(element with inde)
3.82 F(x)-.15 E F0(n)3.82 E F1 1.32
(is the portion of the string matching the)3.82 F F0(n)3.82 E F1 1.32
-(th parenthesized)B(sube)144 228 Q(xpression.)-.15 E F3 -.3(BA)108 240 S
-(SH_SOURCE).3 E F1 .125(An array v)144 252 R .125(ariable whose members\
+(th parenthesized)B(sube)144 492 Q(xpression.)-.15 E F2 -.3(BA)108 504 S
+(SH_SOURCE).3 E F1 .125(An array v)144 516 R .125(ariable whose members\
are the source \214lenames where the corresponding shell function)-.25
-F .781(names in the)144 264 R F2(FUNCN)3.28 E(AME)-.18 E F1 .78(array v)
+F .781(names in the)144 528 R F3(FUNCN)3.28 E(AME)-.18 E F1 .78(array v)
3.03 F .78(ariable are de\214ned.)-.25 F .78(The shell function)5.78 F
-F3(${FUNCN)3.28 E(AME[)-.2 E F0($i)A F3(]})A F1(is)3.28 E .424
-(de\214ned in the \214le)144 276 R F3(${B)2.924 E(ASH_SOURCE[)-.3 E F0
-($i)A F3(]})A F1 .425(and called from)2.924 F F3(${B)2.925 E
-(ASH_SOURCE[)-.3 E F0($i+1)A F3(]})A F1 5.425(.A)C(ssign-)-5.425 E
-(ments to)144 288 Q F2 -.27(BA)2.5 G(SH_SOURCE).27 E F1(ha)2.25 E .3
+F2(${FUNCN)3.28 E(AME[)-.2 E F0($i)A F2(]})A F1(is)3.28 E .424
+(de\214ned in the \214le)144 540 R F2(${B)2.924 E(ASH_SOURCE[)-.3 E F0
+($i)A F2(]})A F1 .425(and called from)2.924 F F2(${B)2.925 E
+(ASH_SOURCE[)-.3 E F0($i+1)A F2(]})A F1 5.425(.A)C(ssign-)-5.425 E
+(ments to)144 552 Q F3 -.27(BA)2.5 G(SH_SOURCE).27 E F1(ha)2.25 E .3
-.15(ve n)-.2 H 2.5(oe).15 G -.25(ff)-2.5 G
-(ect, and it may not be unset.).25 E F3 -.3(BA)108 300 S(SH_SUBSHELL).3
-E F1 .296(Incremented by one within each subshell or subshell en)144 312
+(ect, and it may not be unset.).25 E F2 -.3(BA)108 564 S(SH_SUBSHELL).3
+E F1 .296(Incremented by one within each subshell or subshell en)144 576
R .296(vironment when the shell be)-.4 F .296(gins e)-.15 F -.15(xe)-.15
-G(cuting).15 E .232(in that en)144 324 R 2.732(vironment. The)-.4 F .232
-(initial v)2.732 F .232(alue is 0.)-.25 F(If)5.232 E F2 -.27(BA)2.732 G
+G(cuting).15 E .232(in that en)144 588 R 2.732(vironment. The)-.4 F .232
+(initial v)2.732 F .232(alue is 0.)-.25 F(If)5.232 E F3 -.27(BA)2.732 G
(SH_SUBSHELL).27 E F1 .232(is unset, it loses its special prop-)2.482 F
-(erties, e)144 336 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(fi)-2.5 G 2.5(ti)
--2.5 G 2.5(ss)-2.5 G(ubsequently reset.)-2.5 E F3 -.3(BA)108 348 S
+(erties, e)144 600 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(fi)-2.5 G 2.5(ti)
+-2.5 G 2.5(ss)-2.5 G(ubsequently reset.)-2.5 E F2 -.3(BA)108 612 S
(SH_TRAPSIG).3 E F1 .203
(Set to the signal number corresponding to the trap action being e)144
-360 R -.15(xe)-.15 G .202(cuted during its e).15 F -.15(xe)-.15 G 2.702
-(cution. See).15 F .782(the description of)144 372 R F3(trap)3.282 E F1
-(under)3.282 E F2 .782(SHELL B)3.282 F(UIL)-.09 E .782(TIN COMMANDS)
+624 R -.15(xe)-.15 G .202(cuted during its e).15 F -.15(xe)-.15 G 2.702
+(cution. See).15 F .782(the description of)144 636 R F2(trap)3.282 E F1
+(under)3.282 E F3 .782(SHELL B)3.282 F(UIL)-.09 E .782(TIN COMMANDS)
-.828 F F1(belo)3.032 E 3.282(wf)-.25 G .783
-(or information about signal)-3.282 F(numbers and trap e)144 384 Q -.15
-(xe)-.15 G(cution.).15 E F3 -.3(BA)108 396 S(SH_VERSINFO).3 E F1 2.645
-(Ar)144 408 S .145(eadonly array v)-2.645 F .144
+(or information about signal)-3.282 F(numbers and trap e)144 648 Q -.15
+(xe)-.15 G(cution.).15 E F2 -.3(BA)108 660 S(SH_VERSINFO).3 E F1 2.645
+(Ar)144 672 S .145(eadonly array v)-2.645 F .144
(ariable whose members hold v)-.25 F .144
-(ersion information for this instance of)-.15 F F3(bash)2.644 E F1 5.144
-(.T)C(he)-5.144 E -.25(va)144 420 S
-(lues assigned to the array members are as follo).25 E(ws:)-.25 E F3 -.3
-(BA)144 432 S(SH_VERSINFO[).3 E F1(0)A F3(])A F1(The major v)264 432 Q
-(ersion number \(the)-.15 E F0 -.37(re)2.5 G(lease).37 E F1(\).)A F3 -.3
-(BA)144 444 S(SH_VERSINFO[).3 E F1(1)A F3(])A F1(The minor v)264 444 Q
-(ersion number \(the)-.15 E F0(ver)2.5 E(sion)-.1 E F1(\).)A F3 -.3(BA)
-144 456 S(SH_VERSINFO[).3 E F1(2)A F3(])A F1(The patch le)264 456 Q -.15
-(ve)-.25 G(l.).15 E F3 -.3(BA)144 468 S(SH_VERSINFO[).3 E F1(3)A F3(])A
-F1(The b)264 468 Q(uild v)-.2 E(ersion.)-.15 E F3 -.3(BA)144 480 S
-(SH_VERSINFO[).3 E F1(4)A F3(])A F1(The release status \(e.g.,)264 480 Q
-F0(beta)2.5 E F1(\).)A F3 -.3(BA)144 492 S(SH_VERSINFO[).3 E F1(5)A F3
-(])A F1(The v)264 492 Q(alue of)-.25 E F2(MA)2.5 E(CHTYPE)-.495 E/F4 9
-/Times-Roman@0 SF(.)A F3 -.3(BA)108 504 S(SH_VERSION).3 E F1
-(Expands to a string describing the v)144 516 Q
-(ersion of this instance of)-.15 E F3(bash)2.5 E F1
-(\(e.g., 5.2.37\(3\)-release\).)2.5 E F3(COMP_CW)108 528 Q(ORD)-.1 E F1
-.396(An inde)144 540 R 2.896(xi)-.15 G(nto)-2.896 E F3(${COMP_W)2.896 E
+(ersion information for this instance of)-.15 F F2(bash)2.644 E F1 5.144
+(.T)C(he)-5.144 E -.25(va)144 684 S
+(lues assigned to the array members are as follo).25 E(ws:)-.25 E F2 -.3
+(BA)144 696 S(SH_VERSINFO[).3 E F1(0)A F2(])A F1(The major v)264 696 Q
+(ersion number \(the)-.15 E F0 -.37(re)2.5 G(lease).37 E F1(\).)A
+(GNU Bash 5.3)72 768 Q(2026 January 14)141.79 E(13)190.95 E 0 Cg EP
+%%Page: 14 14
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF -.3(BA)144 84 S(SH_VERSINFO[)
+.3 E F1(1)A F2(])A F1(The minor v)264 84 Q(ersion number \(the)-.15 E F0
+(ver)2.5 E(sion)-.1 E F1(\).)A F2 -.3(BA)144 96 S(SH_VERSINFO[).3 E F1
+(2)A F2(])A F1(The patch le)264 96 Q -.15(ve)-.25 G(l.).15 E F2 -.3(BA)
+144 108 S(SH_VERSINFO[).3 E F1(3)A F2(])A F1(The b)264 108 Q(uild v)-.2
+E(ersion.)-.15 E F2 -.3(BA)144 120 S(SH_VERSINFO[).3 E F1(4)A F2(])A F1
+(The release status \(e.g.,)264 120 Q F0(beta)2.5 E F1(\).)A F2 -.3(BA)
+144 132 S(SH_VERSINFO[).3 E F1(5)A F2(])A F1(The v)264 132 Q(alue of)
+-.25 E/F3 9/Times-Bold@0 SF(MA)2.5 E(CHTYPE)-.495 E/F4 9/Times-Roman@0
+SF(.)A F2 -.3(BA)108 144 S(SH_VERSION).3 E F1
+(Expands to a string describing the v)144 156 Q
+(ersion of this instance of)-.15 E F2(bash)2.5 E F1
+(\(e.g., 5.2.37\(3\)-release\).)2.5 E F2(COMP_CW)108 168 Q(ORD)-.1 E F1
+.396(An inde)144 180 R 2.896(xi)-.15 G(nto)-2.896 E F2(${COMP_W)2.896 E
(ORDS})-.1 E F1 .396(of the w)2.896 F .396
(ord containing the current cursor position.)-.1 F .397(This v)5.397 F
-(ari-)-.25 E 1.181(able is a)144 552 R -.25(va)-.2 G 1.181
+(ari-)-.25 E 1.181(able is a)144 192 R -.25(va)-.2 G 1.181
(ilable only in shell functions in).25 F -.2(vo)-.4 G -.1(ke).2 G 3.681
(db).1 G 3.681(yt)-3.681 G 1.18(he programmable completion f)-3.681 F
-1.18(acilities \(see)-.1 F F3(Pr)144 564 Q(ogrammable Completion)-.18 E
-F1(belo)2.5 E(w\).)-.25 E F3(COMP_KEY)108 576 Q F1 .016(The k)144 588 R
+1.18(acilities \(see)-.1 F F2(Pr)144 204 Q(ogrammable Completion)-.18 E
+F1(belo)2.5 E(w\).)-.25 E F2(COMP_KEY)108 216 Q F1 .016(The k)144 228 R
.316 -.15(ey \()-.1 H .016(or \214nal k).15 F .316 -.15(ey o)-.1 H 2.516
(fak).15 G .316 -.15(ey s)-2.616 H .017(equence\) used to in).15 F -.2
(vo)-.4 G .217 -.1(ke t).2 H .017(he current completion function.).1 F
-.017(This v)5.017 F(ari-)-.25 E 1.613(able is a)144 600 R -.25(va)-.2 G
+.017(This v)5.017 F(ari-)-.25 E 1.613(able is a)144 240 R -.25(va)-.2 G
1.612(ilable only in shell functions and e).25 F 1.612
(xternal commands in)-.15 F -.2(vo)-.4 G -.1(ke).2 G 4.112(db).1 G 4.112
-(yt)-4.112 G 1.612(he programmable)-4.112 F(completion f)144 612 Q
-(acilities \(see)-.1 E F3(Pr)2.5 E(ogrammable Completion)-.18 E F1(belo)
-2.5 E(w\).)-.25 E F3(COMP_LINE)108 624 Q F1 1.207
-(The current command line.)144 636 R 1.208(This v)6.208 F 1.208
+(yt)-4.112 G 1.612(he programmable)-4.112 F(completion f)144 252 Q
+(acilities \(see)-.1 E F2(Pr)2.5 E(ogrammable Completion)-.18 E F1(belo)
+2.5 E(w\).)-.25 E F2(COMP_LINE)108 264 Q F1 1.207
+(The current command line.)144 276 R 1.208(This v)6.208 F 1.208
(ariable is a)-.25 F -.25(va)-.2 G 1.208
(ilable only in shell functions and e).25 F 1.208(xternal com-)-.15 F
-1.037(mands in)144 648 R -.2(vo)-.4 G -.1(ke).2 G 3.537(db).1 G 3.537
+1.037(mands in)144 288 R -.2(vo)-.4 G -.1(ke).2 G 3.537(db).1 G 3.537
(yt)-3.537 G 1.037(he programmable completion f)-3.537 F 1.037
-(acilities \(see)-.1 F F3(Pr)3.537 E 1.037(ogrammable Completion)-.18 F
-F1(be-)3.537 E(lo)144 660 Q(w\).)-.25 E F3(COMP_POINT)108 672 Q F1 .666
-(The inde)144 684 R 3.166(xo)-.15 G 3.166(ft)-3.166 G .666
+(acilities \(see)-.1 F F2(Pr)3.537 E 1.037(ogrammable Completion)-.18 F
+F1(be-)3.537 E(lo)144 300 Q(w\).)-.25 E F2(COMP_POINT)108 312 Q F1 .666
+(The inde)144 324 R 3.166(xo)-.15 G 3.166(ft)-3.166 G .666
(he current cursor position relati)-3.166 F .966 -.15(ve t)-.25 H 3.166
(ot).15 G .666(he be)-3.166 F .666(ginning of the current command.)-.15
F .667(If the)5.667 F .535
(current cursor position is at the end of the current command, the v)144
-696 R .534(alue of this v)-.25 F .534(ariable is equal to)-.25 F F3
-(${#COMP_LINE})144 708 Q F1 5.704(.T)C .704(his v)-5.704 F .704
+336 R .534(alue of this v)-.25 F .534(ariable is equal to)-.25 F F2
+(${#COMP_LINE})144 348 Q F1 5.704(.T)C .704(his v)-5.704 F .704
(ariable is a)-.25 F -.25(va)-.2 G .704
(ilable only in shell functions and e).25 F .705(xternal commands in-)
--.15 F -.2(vo)144 720 S -.1(ke).2 G 2.5(db).1 G 2.5(yt)-2.5 G
-(he programmable completion f)-2.5 E(acilities \(see)-.1 E F3(Pr)2.5 E
-(ogrammable Completion)-.18 E F1(belo)2.5 E(w\).)-.25 E(GNU Bash 5.3)72
-768 Q(2025 April 7)149.285 E(13)198.445 E 0 Cg EP
-%%Page: 14 14
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(COMP_TYPE)108 84 Q F1 .042
-(Set to an inte)144 96 R .042(ger v)-.15 F .041(alue corresponding to t\
-he type of attempted completion that caused a completion)-.25 F .337
-(function to be called:)144 108 R F0 -.5(TA)2.837 G(B).5 E F1 2.837(,f)C
-.337(or normal completion,)-2.837 F F0(?)2.837 E F1 2.837(,f)C .337
-(or listing completions after successi)-2.837 F .638 -.15(ve t)-.25 H
-(abs,).15 E F0(!)144 120 Q F1 3.068(,f)C .567(or listing alternati)
--3.068 F -.15(ve)-.25 G 3.067(so).15 G 3.067(np)-3.067 G .567(artial w)
--3.067 F .567(ord completion,)-.1 F F0(@)3.067 E F1 3.067(,t)C 3.067(ol)
--3.067 G .567(ist completions if the w)-3.067 F .567(ord is not un-)-.1
-F .417(modi\214ed, or)144 132 R F0(%)2.917 E F1 2.917(,f)C .417
-(or menu completion.)-2.917 F .417(This v)5.417 F .417(ariable is a)-.25
-F -.25(va)-.2 G .418(ilable only in shell functions and e).25 F(xter)
--.15 E(-)-.2 E .704(nal commands in)144 144 R -.2(vo)-.4 G -.1(ke).2 G
-3.204(db).1 G 3.204(yt)-3.204 G .704(he programmable completion f)-3.204
-F .704(acilities \(see)-.1 F F2(Pr)3.204 E .704(ogrammable Comple-)-.18
-F(tion)144 156 Q F1(belo)2.5 E(w\).)-.25 E F2(COMP_W)108 168 Q
-(ORDBREAKS)-.1 E F1 1.335(The set of characters that the)144 180 R F2
--.18(re)3.836 G(adline).18 E F1 1.336(library treats as w)3.836 F 1.336
+-.15 F -.2(vo)144 360 S -.1(ke).2 G 2.5(db).1 G 2.5(yt)-2.5 G
+(he programmable completion f)-2.5 E(acilities \(see)-.1 E F2(Pr)2.5 E
+(ogrammable Completion)-.18 E F1(belo)2.5 E(w\).)-.25 E F2(COMP_TYPE)108
+372 Q F1 .042(Set to an inte)144 384 R .042(ger v)-.15 F .041(alue corr\
+esponding to the type of attempted completion that caused a completion)
+-.25 F .337(function to be called:)144 396 R F0 -.5(TA)2.837 G(B).5 E F1
+2.837(,f)C .337(or normal completion,)-2.837 F F0(?)2.837 E F1 2.837(,f)
+C .337(or listing completions after successi)-2.837 F .638 -.15(ve t)
+-.25 H(abs,).15 E F0(!)144 408 Q F1 3.068(,f)C .567
+(or listing alternati)-3.068 F -.15(ve)-.25 G 3.067(so).15 G 3.067(np)
+-3.067 G .567(artial w)-3.067 F .567(ord completion,)-.1 F F0(@)3.067 E
+F1 3.067(,t)C 3.067(ol)-3.067 G .567(ist completions if the w)-3.067 F
+.567(ord is not un-)-.1 F .417(modi\214ed, or)144 420 R F0(%)2.917 E F1
+2.917(,f)C .417(or menu completion.)-2.917 F .417(This v)5.417 F .417
+(ariable is a)-.25 F -.25(va)-.2 G .418
+(ilable only in shell functions and e).25 F(xter)-.15 E(-)-.2 E .704
+(nal commands in)144 432 R -.2(vo)-.4 G -.1(ke).2 G 3.204(db).1 G 3.204
+(yt)-3.204 G .704(he programmable completion f)-3.204 F .704
+(acilities \(see)-.1 F F2(Pr)3.204 E .704(ogrammable Comple-)-.18 F
+(tion)144 444 Q F1(belo)2.5 E(w\).)-.25 E F2(COMP_W)108 456 Q(ORDBREAKS)
+-.1 E F1 1.335(The set of characters that the)144 468 R F2 -.18(re)3.836
+G(adline).18 E F1 1.336(library treats as w)3.836 F 1.336
(ord separators when performing w)-.1 F(ord)-.1 E 3.126(completion. If)
-144 192 R/F3 9/Times-Bold@0 SF(COMP_W)3.126 E(ORDBREAKS)-.09 E F1 .626
+144 480 R F3(COMP_W)3.126 E(ORDBREAKS)-.09 E F1 .626
(is unset, it loses its special properties, e)2.876 F -.15(ve)-.25 G
3.125(ni).15 G 3.125(fi)-3.125 G 3.125(ti)-3.125 G 3.125(ss)-3.125 G
-(ubse-)-3.125 E(quently reset.)144 204 Q F2(COMP_W)108 216 Q(ORDS)-.1 E
-F1 .653(An array v)144 228 R .653(ariable \(see)-.25 F F2(Arrays)3.153 E
+(ubse-)-3.125 E(quently reset.)144 492 Q F2(COMP_W)108 504 Q(ORDS)-.1 E
+F1 .653(An array v)144 516 R .653(ariable \(see)-.25 F F2(Arrays)3.153 E
F1(belo)3.153 E .654(w\) consisting of the indi)-.25 F .654(vidual w)
--.25 F .654(ords in the current command)-.1 F 3.192(line. The)144 240 R
+-.25 F .654(ords in the current command)-.1 F 3.192(line. The)144 528 R
.692(line is split into w)3.192 F .692(ords as)-.1 F F2 -.18(re)3.192 G
(adline).18 E F1 -.1(wo)3.192 G .692(uld split it, using).1 F F3(COMP_W)
3.192 E(ORDBREAKS)-.09 E F1 .691(as de-)2.942 F 1.557(scribed abo)144
-252 R -.15(ve)-.15 G 6.557(.T).15 G 1.557(his v)-6.557 F 1.557
+540 R -.15(ve)-.15 G 6.557(.T).15 G 1.557(his v)-6.557 F 1.557
(ariable is a)-.25 F -.25(va)-.2 G 1.558
(ilable only in shell functions in).25 F -.2(vo)-.4 G -.1(ke).2 G 4.058
(db).1 G 4.058(yt)-4.058 G 1.558(he programmable)-4.058 F(completion f)
-144 264 Q(acilities \(see)-.1 E F2(Pr)2.5 E(ogrammable Completion)-.18 E
-F1(belo)2.5 E(w\).)-.25 E F2(COPR)108 276 Q(OC)-.3 E F1 .169(An array v)
-144 288 R .169(ariable \(see)-.25 F F2(Arrays)2.669 E F1(belo)2.669 E
+144 552 Q(acilities \(see)-.1 E F2(Pr)2.5 E(ogrammable Completion)-.18 E
+F1(belo)2.5 E(w\).)-.25 E F2(COPR)108 564 Q(OC)-.3 E F1 .169(An array v)
+144 576 R .169(ariable \(see)-.25 F F2(Arrays)2.669 E F1(belo)2.669 E
.169
(w\) created to hold the \214le descriptors for output from and input)
--.25 F(to an unnamed coprocess \(see)144 300 Q F2(Copr)2.5 E(ocesses)
--.18 E F1(abo)2.5 E -.15(ve)-.15 G(\).).15 E F2(DIRST)108 312 Q -.55(AC)
--.9 G(K).55 E F1 .789(An array v)144 324 R .789(ariable \(see)-.25 F F2
+-.25 F(to an unnamed coprocess \(see)144 588 Q F2(Copr)2.5 E(ocesses)
+-.18 E F1(abo)2.5 E -.15(ve)-.15 G(\).).15 E F2(DIRST)108 600 Q -.55(AC)
+-.9 G(K).55 E F1 .789(An array v)144 612 R .789(ariable \(see)-.25 F F2
(Arrays)3.289 E F1(belo)3.289 E .789
(w\) containing the current contents of the directory stack.)-.25 F(Di-)
-5.79 E .099(rectories appear in the stack in the order the)144 336 R
+5.79 E .099(rectories appear in the stack in the order the)144 624 R
2.599(ya)-.15 G .099(re displayed by the)-2.599 F F2(dirs)2.599 E F1 -.2
(bu)2.599 G 2.598(iltin. Assigning).2 F .098(to mem-)2.598 F .84
-(bers of this array v)144 348 R .84
+(bers of this array v)144 636 R .84
(ariable may be used to modify directories already in the stack, b)-.25
-F .84(ut the)-.2 F F2(pushd)3.34 E F1(and)144 360 Q F2(popd)2.715 E F1
+F .84(ut the)-.2 F F2(pushd)3.34 E F1(and)144 648 Q F2(popd)2.715 E F1
-.2(bu)2.715 G .215(iltins must be used to add and remo).2 F .514 -.15
(ve d)-.15 H 2.714(irectories. Assigning).15 F .214(to this v)2.714 F
-.214(ariable does not)-.25 F .117(change the current directory)144 372 R
+.214(ariable does not)-.25 F .117(change the current directory)144 660 R
5.117(.I)-.65 G(f)-5.117 E F3(DIRST)2.617 E -.495(AC)-.81 G(K).495 E F1
.117(is unset, it loses its special properties, e)2.367 F -.15(ve)-.25 G
2.618(ni).15 G 2.618(fi)-2.618 G 2.618(ti)-2.618 G 2.618(ss)-2.618 G
-(ub-)-2.618 E(sequently reset.)144 384 Q F2(EPOCHREAL)108 396 Q(TIME)
--.92 E F1 .338(Each time this parameter is referenced, it e)144 408 R
+(ub-)-2.618 E(sequently reset.)144 672 Q F2(EPOCHREAL)108 684 Q(TIME)
+-.92 E F1 .338(Each time this parameter is referenced, it e)144 696 R
.337(xpands to the number of seconds since the Unix Epoch)-.15 F(\(see)
-144 420 Q F0(time)2.98 E F1 .35(\(3\)\) as a \215oating-point v).18 F
+144 708 Q F0(time)2.98 E F1 .35(\(3\)\) as a \215oating-point v).18 F
.351(alue with micro-second granularity)-.25 F 5.351(.A)-.65 G .351
-(ssignments to)-5.351 F F3(EPOCHRE-)2.851 E(AL)144 432 Q(TIME)-.828 E F1
+(ssignments to)-5.351 F F3(EPOCHRE-)2.851 E(AL)144 720 Q(TIME)-.828 E F1
1.091(are ignored.)3.341 F(If)6.091 E F3(EPOCHREAL)3.59 E(TIME)-.828 E
F1 1.09(is unset, it loses its special properties, e)3.34 F -.15(ve)-.25
-G 3.59(ni).15 G 3.59(fi)-3.59 G 3.59(ti)-3.59 G(s)-3.59 E
-(subsequently reset.)144 444 Q F2(EPOCHSECONDS)108 456 Q F1 .337
-(Each time this parameter is referenced, it e)144 468 R .338
+G 3.59(ni).15 G 3.59(fi)-3.59 G 3.59(ti)-3.59 G(s)-3.59 E(GNU Bash 5.3)
+72 768 Q(2026 January 14)141.79 E(14)190.95 E 0 Cg EP
+%%Page: 15 15
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E(subsequently reset.)144 84 Q/F2 10/Times-Bold@0 SF
+(EPOCHSECONDS)108 96 Q F1 .337
+(Each time this parameter is referenced, it e)144 108 R .338
(xpands to the number of seconds since the Unix Epoch)-.15 F(\(see)144
-480 Q F0(time)4.144 E F1 4.014(\(3\)\). Assignments).18 F(to)4.014 E F3
-(EPOCHSECONDS)4.014 E F1 1.513(are ignored.)3.764 F(If)6.513 E F3
-(EPOCHSECONDS)4.013 E F1 1.513(is unset, it)3.763 F
-(loses its special properties, e)144 492 Q -.15(ve)-.25 G 2.5(ni).15 G
+120 Q F0(time)4.144 E F1 4.014(\(3\)\). Assignments).18 F(to)4.014 E/F3
+9/Times-Bold@0 SF(EPOCHSECONDS)4.014 E F1 1.513(are ignored.)3.764 F(If)
+6.513 E F3(EPOCHSECONDS)4.013 E F1 1.513(is unset, it)3.763 F
+(loses its special properties, e)144 132 Q -.15(ve)-.25 G 2.5(ni).15 G
2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5(ss)-2.5 G(ubsequently reset.)-2.5 E F2
-(EUID)108 504 Q F1 1.103(Expands to the ef)144 504 R(fecti)-.25 E 1.403
+(EUID)108 144 Q F1 1.103(Expands to the ef)144 144 R(fecti)-.25 E 1.403
-.15(ve u)-.25 H 1.103(ser ID of the current user).15 F 3.603(,i)-.4 G
1.103(nitialized at shell startup.)-3.603 F 1.104(This v)6.103 F 1.104
-(ariable is)-.25 F(readonly)144 516 Q(.)-.65 E F2(FUNCN)108 528 Q(AME)
--.2 E F1 .479(An array v)144 540 R .479
+(ariable is)-.25 F(readonly)144 156 Q(.)-.65 E F2(FUNCN)108 168 Q(AME)
+-.2 E F1 .479(An array v)144 180 R .479
(ariable containing the names of all shell functions currently in the e)
-.25 F -.15(xe)-.15 G .478(cution call stack.).15 F .276
-(The element with inde)144 552 R 2.776(x0i)-.15 G 2.776(st)-2.776 G .276
+(The element with inde)144 192 R 2.776(x0i)-.15 G 2.776(st)-2.776 G .276
(he name of an)-2.776 F 2.777(yc)-.15 G(urrently-e)-2.777 E -.15(xe)-.15
G .277(cuting shell function.).15 F .277(The bottom-most)5.277 F .065
-(element \(the one with the highest inde)144 564 R .065
+(element \(the one with the highest inde)144 204 R .065
(x\) is \231main\232.)-.15 F .065(This v)5.065 F .065(ariable e)-.25 F
-.065(xists only when a shell function)-.15 F .002(is e)144 576 R -.15
+.065(xists only when a shell function)-.15 F .002(is e)144 216 R -.15
(xe)-.15 G 2.502(cuting. Assignments).15 F(to)2.502 E F3(FUNCN)2.502 E
(AME)-.18 E F1(ha)2.252 E .302 -.15(ve n)-.2 H 2.502(oe).15 G -.25(ff)
-2.502 G 2.502(ect. If).25 F F3(FUNCN)2.502 E(AME)-.18 E F1 .003
-(is unset, it loses its spe-)2.252 F(cial properties, e)144 588 Q -.15
+(is unset, it loses its spe-)2.252 F(cial properties, e)144 228 Q -.15
(ve)-.25 G 2.5(ni).15 G 2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5(ss)-2.5 G
-(ubsequently reset.)-2.5 E 4.585(This v)144 604.8 R 4.585
+(ubsequently reset.)-2.5 E 4.585(This v)144 244.8 R 4.585
(ariable can be used with)-.25 F F3 -.27(BA)7.084 G(SH_LINENO).27 E F1
(and)6.834 E F3 -.27(BA)7.084 G(SH_SOURCE).27 E/F4 9/Times-Roman@0 SF(.)
-A F1 4.584(Each element of)9.084 F F3(FUNCN)144 616.8 Q(AME)-.18 E F1
+A F1 4.584(Each element of)9.084 F F3(FUNCN)144 256.8 Q(AME)-.18 E F1
.733(has corresponding elements in)2.983 F F3 -.27(BA)3.233 G(SH_LINENO)
.27 E F1(and)2.983 E F3 -.27(BA)3.233 G(SH_SOURCE).27 E F1 .733
-(to describe the)2.983 F .012(call stack.)144 628.8 R -.15(Fo)5.012 G
+(to describe the)2.983 F .012(call stack.)144 268.8 R -.15(Fo)5.012 G
2.512(ri).15 G(nstance,)-2.512 E F2(${FUNCN)2.512 E(AME[)-.2 E F0($i)A
F2(]})A F1 -.1(wa)2.512 G 2.512(sc).1 G .012(alled from the \214le)
-2.512 F F2(${B)2.512 E(ASH_SOURCE[)-.3 E F0($i+1)A F2(]})A F1 1.183
-(at line number)144 640.8 R F2(${B)3.683 E(ASH_LINENO[)-.3 E F0($i)A F2
+(at line number)144 280.8 R F2(${B)3.683 E(ASH_LINENO[)-.3 E F0($i)A F2
(]})A F1 6.183(.T)C(he)-6.183 E F2(caller)3.683 E F1 -.2(bu)3.683 G
1.184(iltin displays the current call stack using).2 F
-(this information.)144 652.8 Q F2(GR)108 664.8 Q(OUPS)-.3 E F1 1.229
-(An array v)144 676.8 R 1.228(ariable containing the list of groups of \
+(this information.)144 292.8 Q F2(GR)108 304.8 Q(OUPS)-.3 E F1 1.229
+(An array v)144 316.8 R 1.228(ariable containing the list of groups of \
which the current user is a member)-.25 F 6.228(.A)-.55 G(ssign-)-6.228
-E .571(ments to)144 688.8 R F3(GR)3.071 E(OUPS)-.27 E F1(ha)2.822 E .872
+E .571(ments to)144 328.8 R F3(GR)3.071 E(OUPS)-.27 E F1(ha)2.822 E .872
-.15(ve n)-.2 H 3.072(oe).15 G -.25(ff)-3.072 G 3.072(ect. If).25 F F3
(GR)3.072 E(OUPS)-.27 E F1 .572
(is unset, it loses its special properties, e)2.822 F -.15(ve)-.25 G
3.072(ni).15 G 3.072(fi)-3.072 G 3.072(ti)-3.072 G(s)-3.072 E
-(subsequently reset.)144 700.8 Q(GNU Bash 5.3)72 768 Q(2025 April 7)
-149.285 E(14)198.445 E 0 Cg EP
-%%Page: 15 15
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(HISTCMD)108 84 Q F1 2.811
-(The history number)144 96 R 5.311(,o)-.4 G 5.311(ri)-5.311 G(nde)-5.311
-E 5.311(xi)-.15 G 5.311(nt)-5.311 G 2.811
+(subsequently reset.)144 340.8 Q F2(HISTCMD)108 352.8 Q F1 2.811
+(The history number)144 364.8 R 5.311(,o)-.4 G 5.311(ri)-5.311 G(nde)
+-5.311 E 5.311(xi)-.15 G 5.311(nt)-5.311 G 2.811
(he history list, of the current command.)-5.311 F 2.81(Assignments to)
-7.81 F/F3 9/Times-Bold@0 SF(HISTCMD)144 108 Q F1(ha)2.683 E .733 -.15
-(ve n)-.2 H 2.934(oe).15 G -.25(ff)-2.934 G 2.934(ect. If).25 F F3
-(HISTCMD)2.934 E F1 .434(is unset, it loses its special properties, e)
-2.684 F -.15(ve)-.25 G 2.934(ni).15 G 2.934(fi)-2.934 G 2.934(ti)-2.934
-G 2.934(ss)-2.934 G(ubse-)-2.934 E(quently reset.)144 120 Q F2(HOSTN)108
-132 Q(AME)-.2 E F1(Automatically set to the name of the current host.)
-144 144 Q F2(HOSTTYPE)108 156 Q F1 .223(Automatically set to a string t\
-hat uniquely describes the type of machine on which)144 168 R F2(bash)
-2.722 E F1 .222(is e)2.722 F -.15(xe)-.15 G(cut-).15 E 2.5(ing. The)144
-180 R(def)2.5 E(ault is system-dependent.)-.1 E F2(LINENO)108 192 Q F1
+7.81 F F3(HISTCMD)144 376.8 Q F1(ha)2.683 E .733 -.15(ve n)-.2 H 2.934
+(oe).15 G -.25(ff)-2.934 G 2.934(ect. If).25 F F3(HISTCMD)2.934 E F1
+.434(is unset, it loses its special properties, e)2.684 F -.15(ve)-.25 G
+2.934(ni).15 G 2.934(fi)-2.934 G 2.934(ti)-2.934 G 2.934(ss)-2.934 G
+(ubse-)-2.934 E(quently reset.)144 388.8 Q F2(HOSTN)108 400.8 Q(AME)-.2
+E F1(Automatically set to the name of the current host.)144 412.8 Q F2
+(HOSTTYPE)108 424.8 Q F1 .223(Automatically set to a string that unique\
+ly describes the type of machine on which)144 436.8 R F2(bash)2.722 E F1
+.222(is e)2.722 F -.15(xe)-.15 G(cut-).15 E 2.5(ing. The)144 448.8 R
+(def)2.5 E(ault is system-dependent.)-.1 E F2(LINENO)108 460.8 Q F1
1.408(Each time this parameter is referenced, the shell substitutes a d\
-ecimal number representing the)144 204 R .078(current sequential line n\
-umber \(starting with 1\) within a script or function.)144 216 R .078
-(When not in a script or)5.078 F .306(function, the v)144 228 R .306
-(alue substituted is not guaranteed to be meaningful.)-.25 F(If)5.307 E
-F3(LINENO)2.807 E F1 .307(is unset, it loses its)2.557 F
-(special properties, e)144 240 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(fi)-2.5
-G 2.5(ti)-2.5 G 2.5(ss)-2.5 G(ubsequently reset.)-2.5 E F2(MA)108 252 Q
-(CHTYPE)-.55 E F1 .898(Automatically set to a string that fully describ\
-es the system type on which)144 264 R F2(bash)3.398 E F1 .898(is e)3.398
-F -.15(xe)-.15 G .898(cuting, in).15 F(the standard GNU)144 276 Q F0
-(cpu-company-system)2.5 E F1 2.5(format. The)2.5 F(def)2.5 E
-(ault is system-dependent.)-.1 E F2(MAPFILE)108 288 Q F1 .293
-(An array v)144 300 R .293(ariable \(see)-.25 F F2(Arrays)2.793 E F1
+ecimal number representing the)144 472.8 R .078(current sequential line\
+ number \(starting with 1\) within a script or function.)144 484.8 R
+.078(When not in a script or)5.078 F .306(function, the v)144 496.8 R
+.306(alue substituted is not guaranteed to be meaningful.)-.25 F(If)
+5.307 E F3(LINENO)2.807 E F1 .307(is unset, it loses its)2.557 F
+(special properties, e)144 508.8 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(fi)
+-2.5 G 2.5(ti)-2.5 G 2.5(ss)-2.5 G(ubsequently reset.)-2.5 E F2(MA)108
+520.8 Q(CHTYPE)-.55 E F1 .898(Automatically set to a string that fully \
+describes the system type on which)144 532.8 R F2(bash)3.398 E F1 .898
+(is e)3.398 F -.15(xe)-.15 G .898(cuting, in).15 F(the standard GNU)144
+544.8 Q F0(cpu-company-system)2.5 E F1 2.5(format. The)2.5 F(def)2.5 E
+(ault is system-dependent.)-.1 E F2(MAPFILE)108 556.8 Q F1 .293
+(An array v)144 568.8 R .293(ariable \(see)-.25 F F2(Arrays)2.793 E F1
(belo)2.793 E .293(w\) created to hold the te)-.25 F .294
(xt read by the)-.15 F F2(map\214le)2.794 E F1 -.2(bu)2.794 G .294
-(iltin when no).2 F -.25(va)144 312 S(riable name is supplied.).25 E F2
-(OLDPWD)108 324 Q F1(The pre)144 336 Q(vious w)-.25 E
+(iltin when no).2 F -.25(va)144 580.8 S(riable name is supplied.).25 E
+F2(OLDPWD)108 592.8 Q F1(The pre)144 604.8 Q(vious w)-.25 E
(orking directory as set by the)-.1 E F2(cd)2.5 E F1(command.)2.5 E F2
-(OPT)108 348 Q(ARG)-.9 E F1 1.627(The v)144 360 R 1.627
+(OPT)108 616.8 Q(ARG)-.9 E F1 1.627(The v)144 628.8 R 1.627
(alue of the last option ar)-.25 F 1.627(gument processed by the)-.18 F
F2(getopts)4.127 E F1 -.2(bu)4.127 G 1.626(iltin command \(see).2 F F3
-(SHELL)4.126 E -.09(BU)144 372 S(IL).09 E(TIN COMMANDS)-.828 E F1(belo)
-2.25 E(w\).)-.25 E F2(OPTIND)108 384 Q F1 1.651(The inde)144 396 R 4.151
-(xo)-.15 G 4.151(ft)-4.151 G 1.651(he ne)-4.151 F 1.651(xt ar)-.15 F
-1.652(gument to be processed by the)-.18 F F2(getopts)4.152 E F1 -.2(bu)
-4.152 G 1.652(iltin command \(see).2 F F3(SHELL)4.152 E -.09(BU)144 408
-S(IL).09 E(TIN COMMANDS)-.828 E F1(belo)2.25 E(w\).)-.25 E F2(OSTYPE)108
-420 Q F1 .329(Automatically set to a string that describes the operatin\
-g system on which)144 432 R F2(bash)2.829 E F1 .329(is e)2.829 F -.15
-(xe)-.15 G 2.829(cuting. The).15 F(def)144 444 Q
-(ault is system-dependent.)-.1 E F2(PIPEST)108 456 Q -.95(AT)-.9 G(US)
-.95 E F1 .296(An array v)144 468 R .297(ariable \(see)-.25 F F2(Arrays)
-2.797 E F1(belo)2.797 E .297(w\) containing a list of e)-.25 F .297
-(xit status v)-.15 F .297(alues from the commands in)-.25 F 1.602
-(the most-recently-e)144 480 R -.15(xe)-.15 G 1.602(cuted fore).15 F
+(SHELL)4.126 E -.09(BU)144 640.8 S(IL).09 E(TIN COMMANDS)-.828 E F1
+(belo)2.25 E(w\).)-.25 E F2(OPTIND)108 652.8 Q F1 1.651(The inde)144
+664.8 R 4.151(xo)-.15 G 4.151(ft)-4.151 G 1.651(he ne)-4.151 F 1.651
+(xt ar)-.15 F 1.652(gument to be processed by the)-.18 F F2(getopts)
+4.152 E F1 -.2(bu)4.152 G 1.652(iltin command \(see).2 F F3(SHELL)4.152
+E -.09(BU)144 676.8 S(IL).09 E(TIN COMMANDS)-.828 E F1(belo)2.25 E(w\).)
+-.25 E F2(OSTYPE)108 688.8 Q F1 .329(Automatically set to a string that\
+ describes the operating system on which)144 700.8 R F2(bash)2.829 E F1
+.329(is e)2.829 F -.15(xe)-.15 G 2.829(cuting. The).15 F(def)144 712.8 Q
+(ault is system-dependent.)-.1 E(GNU Bash 5.3)72 768 Q(2026 January 14)
+141.79 E(15)190.95 E 0 Cg EP
+%%Page: 16 16
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(PIPEST)108 84 Q -.95(AT)-.9 G
+(US).95 E F1 .296(An array v)144 96 R .297(ariable \(see)-.25 F F2
+(Arrays)2.797 E F1(belo)2.797 E .297(w\) containing a list of e)-.25 F
+.297(xit status v)-.15 F .297(alues from the commands in)-.25 F 1.602
+(the most-recently-e)144 108 R -.15(xe)-.15 G 1.602(cuted fore).15 F
1.602(ground pipeline, which may consist of only a simple command)-.15 F
-(\(see)144 492 Q F3 .215(SHELL GRAMMAR)2.715 F F1(abo)2.465 E -.15(ve)
--.15 G(\).).15 E F2(Bash)5.215 E F1(sets)2.715 E F3(PIPEST)2.715 E -.855
-(AT)-.81 G(US).855 E F1 .215(after e)2.465 F -.15(xe)-.15 G .216
-(cuting multi-element pipelines,).15 F .334(timed and ne)144 504 R -.05
-(ga)-.15 G .333
+(\(see)144 120 Q/F3 9/Times-Bold@0 SF .215(SHELL GRAMMAR)2.715 F F1(abo)
+2.465 E -.15(ve)-.15 G(\).).15 E F2(Bash)5.215 E F1(sets)2.715 E F3
+(PIPEST)2.715 E -.855(AT)-.81 G(US).855 E F1 .215(after e)2.465 F -.15
+(xe)-.15 G .216(cuting multi-element pipelines,).15 F .334(timed and ne)
+144 132 R -.05(ga)-.15 G .333
(ted pipelines, simple commands, subshells created with the \( operator)
.05 F 2.833(,t)-.4 G(he)-2.833 E F2([[)2.833 E F1(and)2.833 E F2(\(\()
2.833 E F1 .489(compound commands, and after error conditions that resu\
-lt in the shell aborting command e)144 516 R -.15(xe)-.15 G(cu-).15 E
-(tion.)144 528 Q F2(PPID)108 540 Q F1(The process ID of the shell')144
-540 Q 2.5(sp)-.55 G 2.5(arent. This)-2.5 F -.25(va)2.5 G
-(riable is readonly).25 E(.)-.65 E F2(PWD)108 552 Q F1(The current w)144
-552 Q(orking directory as set by the)-.1 E F2(cd)2.5 E F1(command.)2.5 E
-F2(RANDOM)108 564 Q F1 .417
-(Each time this parameter is referenced, it e)144 576 R .417
+lt in the shell aborting command e)144 144 R -.15(xe)-.15 G(cu-).15 E
+(tion.)144 156 Q F2(PPID)108 168 Q F1(The process ID of the shell')144
+168 Q 2.5(sp)-.55 G 2.5(arent. This)-2.5 F -.25(va)2.5 G
+(riable is readonly).25 E(.)-.65 E F2(PWD)108 180 Q F1(The current w)144
+180 Q(orking directory as set by the)-.1 E F2(cd)2.5 E F1(command.)2.5 E
+F2(RANDOM)108 192 Q F1 .417
+(Each time this parameter is referenced, it e)144 204 R .417
(xpands to a random inte)-.15 F .417(ger between 0 and 32767.)-.15 F
-(As-)5.416 E .124(signing a v)144 588 R .124(alue to)-.25 F F3(RANDOM)
+(As-)5.416 E .124(signing a v)144 216 R .124(alue to)-.25 F F3(RANDOM)
2.624 E F1 .124(initializes \(seeds\) the sequence of random numbers.)
2.374 F .125(Seeding the ran-)5.125 F 1.344
-(dom number generator with the same constant v)144 600 R 1.343
+(dom number generator with the same constant v)144 228 R 1.343
(alue produces the same sequence of v)-.25 F 3.843(alues. If)-.25 F F3
-(RANDOM)144 612 Q F1(is unset, it loses its special properties, e)2.25 E
+(RANDOM)144 240 Q F1(is unset, it loses its special properties, e)2.25 E
-.15(ve)-.25 G 2.5(ni).15 G 2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5(ss)-2.5 G
-(ubsequently reset.)-2.5 E F2(READLINE_ARGUMENT)108 624 Q F1(An)144 636
+(ubsequently reset.)-2.5 E F2(READLINE_ARGUMENT)108 252 Q F1(An)144 264
Q 4.665(yn)-.15 G 2.165(umeric ar)-4.665 F 2.165(gument gi)-.18 F -.15
(ve)-.25 G 4.665(nt).15 G 4.665(oa)-4.665 G F2 -.18(re)C(adline).18 E F1
2.165(command that w)4.665 F 2.165
-(as de\214ned using \231bind \255x\232 \(see)-.1 F F3(SHELL B)144 648 Q
+(as de\214ned using \231bind \255x\232 \(see)-.1 F F3(SHELL B)144 276 Q
(UIL)-.09 E(TIN COMMANDS)-.828 E F1(belo)2.25 E(w\) when it w)-.25 E
-(as in)-.1 E -.2(vo)-.4 G -.1(ke).2 G(d.).1 E F2(READLINE_LINE)108 660 Q
-F1 1.694(The contents of the)144 672 R F2 -.18(re)4.194 G(adline).18 E
+(as in)-.1 E -.2(vo)-.4 G -.1(ke).2 G(d.).1 E F2(READLINE_LINE)108 288 Q
+F1 1.694(The contents of the)144 300 R F2 -.18(re)4.194 G(adline).18 E
F1 1.694(line b)4.194 F(uf)-.2 E(fer)-.25 E 4.194(,f)-.4 G 1.693
(or use with \231bind \255x\232 \(see)-4.194 F F3 1.693(SHELL B)4.193 F
-(UIL)-.09 E 1.693(TIN COM-)-.828 F(MANDS)144 684 Q F1(belo)2.25 E(w\).)
--.25 E F2(READLINE_MARK)108 696 Q F1 .236(The position of the mark \(sa)
-144 708 R -.15(ve)-.2 G 2.736(di).15 G .236(nsertion point\) in the)
+(UIL)-.09 E 1.693(TIN COM-)-.828 F(MANDS)144 312 Q F1(belo)2.25 E(w\).)
+-.25 E F2(READLINE_MARK)108 324 Q F1 .236(The position of the mark \(sa)
+144 336 R -.15(ve)-.2 G 2.736(di).15 G .236(nsertion point\) in the)
-2.736 F F2 -.18(re)2.736 G(adline).18 E F1 .236(line b)2.736 F(uf)-.2 E
(fer)-.25 E 2.736(,f)-.4 G .236(or use with \231bind \255x\232)-2.736 F
-(\(see)144 720 Q F3 1.017(SHELL B)3.517 F(UIL)-.09 E 1.017(TIN COMMANDS)
+(\(see)144 348 Q F3 1.017(SHELL B)3.517 F(UIL)-.09 E 1.017(TIN COMMANDS)
-.828 F F1(belo)3.267 E 3.516(w\). The)-.25 F 1.016
-(characters between the insertion point and the)3.516 F(GNU Bash 5.3)72
-768 Q(2025 April 7)149.285 E(15)198.445 E 0 Cg EP
-%%Page: 16 16
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E(mark are often called the)144 84 Q F0 -.37(re)2.5 G
-(gion)-.03 E F1(.)A/F2 10/Times-Bold@0 SF(READLINE_POINT)108 96 Q F1
-.442(The position of the insertion point in the)144 108 R F2 -.18(re)
-2.943 G(adline).18 E F1 .443(line b)2.943 F(uf)-.2 E(fer)-.25 E 2.943
-(,f)-.4 G .443(or use with \231bind \255x\232 \(see)-2.943 F/F3 9
-/Times-Bold@0 SF(SHELL)2.943 E -.09(BU)144 120 S(IL).09 E(TIN COMMANDS)
--.828 E F1(belo)2.25 E(w\).)-.25 E F2(REPL)108 132 Q(Y)-.92 E F1
-(Set to the line of input read by the)144 144 Q F2 -.18(re)2.5 G(ad).18
-E F1 -.2(bu)2.5 G(iltin command when no ar).2 E(guments are supplied.)
--.18 E F2(SECONDS)108 156 Q F1 .178
-(Each time this parameter is referenced, it e)144 168 R .177
-(xpands to the number of seconds since shell in)-.15 F -.2(vo)-.4 G
-(cation.).2 E .712(If a v)144 180 R .712(alue is assigned to)-.25 F F3
+(characters between the insertion point and the)3.516 F
+(mark are often called the)144 360 Q F0 -.37(re)2.5 G(gion)-.03 E F1(.)A
+F2(READLINE_POINT)108 372 Q F1 .442
+(The position of the insertion point in the)144 384 R F2 -.18(re)2.943 G
+(adline).18 E F1 .443(line b)2.943 F(uf)-.2 E(fer)-.25 E 2.943(,f)-.4 G
+.443(or use with \231bind \255x\232 \(see)-2.943 F F3(SHELL)2.943 E -.09
+(BU)144 396 S(IL).09 E(TIN COMMANDS)-.828 E F1(belo)2.25 E(w\).)-.25 E
+F2(REPL)108 408 Q(Y)-.92 E F1(Set to the line of input read by the)144
+420 Q F2 -.18(re)2.5 G(ad).18 E F1 -.2(bu)2.5 G
+(iltin command when no ar).2 E(guments are supplied.)-.18 E F2(SECONDS)
+108 432 Q F1 .178(Each time this parameter is referenced, it e)144 444 R
+.177(xpands to the number of seconds since shell in)-.15 F -.2(vo)-.4 G
+(cation.).2 E .712(If a v)144 456 R .712(alue is assigned to)-.25 F F3
(SECONDS)3.212 E/F4 9/Times-Roman@0 SF(,)A F1 .712(the v)2.962 F .712
(alue returned upon subsequent references is the number)-.25 F .628
-(of seconds since the assignment plus the v)144 192 R .627
+(of seconds since the assignment plus the v)144 468 R .627
(alue assigned.)-.25 F .627(The number of seconds at shell in)5.627 F
--.2(vo)-.4 G(ca-).2 E .363(tion and the current time are al)144 204 R
+-.2(vo)-.4 G(ca-).2 E .363(tion and the current time are al)144 480 R
-.1(wa)-.1 G .364
(ys determined by querying the system clock at one-second reso-).1 F 2.5
-(lution. If)144 216 R F3(SECONDS)2.5 E F1
+(lution. If)144 492 R F3(SECONDS)2.5 E F1
(is unset, it loses its special properties, e)2.25 E -.15(ve)-.25 G 2.5
(ni).15 G 2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5(ss)-2.5 G(ubsequently reset.)
--2.5 E F2(SHELLOPTS)108 228 Q F1 3.263(Ac)144 240 S .763
+-2.5 E F2(SHELLOPTS)108 504 Q F1 3.263(Ac)144 516 S .763
(olon-separated list of enabled shell options.)-3.263 F .763(Each w)
5.763 F .763(ord in the list is a v)-.1 F .763(alid ar)-.25 F .763
-(gument for the)-.18 F F2<ad6f>144 252 Q F1 1.173(option to the)3.673 F
+(gument for the)-.18 F F2<ad6f>144 528 Q F1 1.173(option to the)3.673 F
F2(set)3.673 E F1 -.2(bu)3.673 G 1.173(iltin command \(see).2 F F3 1.174
(SHELL B)3.674 F(UIL)-.09 E 1.174(TIN COMMANDS)-.828 F F1(belo)3.424 E
-3.674(w\). The)-.25 F(options)3.674 E .02(appearing in)144 264 R F3
+3.674(w\). The)-.25 F(options)3.674 E .02(appearing in)144 540 R F3
(SHELLOPTS)2.52 E F1 .019(are those reported as)2.27 F F0(on)2.749 E F1
(by)2.759 E F2 .019(set \255o)2.519 F F1 5.019(.I)C 2.519(ft)-5.019 G
.019(his v)-2.519 F .019(ariable is in the en)-.25 F(vironment)-.4 E
-(when)144 276 Q F2(bash)3.42 E F1 .92
+(when)144 552 Q F2(bash)3.42 E F1 .92
(starts up, the shell enables each option in the list before reading an)
3.42 F 3.42(ys)-.15 G .92(tartup \214les.)-3.42 F(If)5.92 E(this v)144
-288 Q(ariable is e)-.25 E
+564 Q(ariable is e)-.25 E
(xported, child shells will enable each option in the list.)-.15 E
-(This v)5 E(ariable is read-only)-.25 E(.)-.65 E F2(SHL)108 300 Q(VL)
--.92 E F1(Incremented by one each time an instance of)144 312 Q F2(bash)
-2.5 E F1(is started.)2.5 E F2(SRANDOM)108 324 Q F1 .562
-(Each time it is referenced, this v)144 336 R .561(ariable e)-.25 F .561
+(This v)5 E(ariable is read-only)-.25 E(.)-.65 E F2(SHL)108 576 Q(VL)
+-.92 E F1(Incremented by one each time an instance of)144 588 Q F2(bash)
+2.5 E F1(is started.)2.5 E F2(SRANDOM)108 600 Q F1 .562
+(Each time it is referenced, this v)144 612 R .561(ariable e)-.25 F .561
(xpands to a 32-bit pseudo-random number)-.15 F 5.561(.T)-.55 G .561
(he random)-5.561 F .65
-(number generator is not linear on systems that support)144 348 R F0
+(number generator is not linear on systems that support)144 624 R F0
(/de)4.816 E(v/ur)-.15 E(andom)-.15 E F1(or)4.816 E F0(ar)3.48 E(c4r)
-.37 E(andom)-.15 E F1 .65(\(3\), so each).32 F .788
(returned number has no relationship to the numbers preceding it.)144
-360 R .787(The random number generator)5.787 F .087
-(cannot be seeded, so assignments to this v)144 372 R .087(ariable ha)
+636 R .787(The random number generator)5.787 F .087
+(cannot be seeded, so assignments to this v)144 648 R .087(ariable ha)
-.25 F .387 -.15(ve n)-.2 H 2.587(oe).15 G -.25(ff)-2.587 G 2.588
(ect. If).25 F F3(SRANDOM)2.588 E F1 .088(is unset, it loses its)2.338 F
-(special properties, e)144 384 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(fi)-2.5
-G 2.5(ti)-2.5 G 2.5(ss)-2.5 G(ubsequently reset.)-2.5 E F2(UID)108 396 Q
-F1(Expands to the user ID of the current user)144 396 Q 2.5(,i)-.4 G
+(special properties, e)144 660 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(fi)-2.5
+G 2.5(ti)-2.5 G 2.5(ss)-2.5 G(ubsequently reset.)-2.5 E F2(UID)108 672 Q
+F1(Expands to the user ID of the current user)144 672 Q 2.5(,i)-.4 G
(nitialized at shell startup.)-2.5 E(This v)5 E(ariable is readonly)-.25
-E(.)-.65 E .115(The shell uses the follo)108 412.8 R .115(wing v)-.25 F
+E(.)-.65 E .115(The shell uses the follo)108 688.8 R .115(wing v)-.25 F
.115(ariables. In some cases,)-.25 F F2(bash)2.614 E F1 .114
(assigns a def)2.614 F .114(ault v)-.1 F .114(alue to a v)-.25 F .114
-(ariable; these cases)-.25 F(are noted belo)108 424.8 Q -.65(w.)-.25 G
-F2 -.3(BA)108 441.6 S(SH_COMP).3 E -.95(AT)-.74 G F1 .502(The v)144
-453.6 R .502(alue is used to set the shell')-.25 F 3.002(sc)-.55 G .502
-(ompatibility le)-3.002 F -.15(ve)-.25 G 3.002(l. See).15 F F3 .503
-(SHELL COMP)3.002 F -.855(AT)-.666 G .503(IBILITY MODE).855 F F1(be-)
-2.753 E(lo)144 465.6 Q 2.663(wf)-.25 G .163(or a description of the v)
--2.663 F .162(arious compatibility le)-.25 F -.15(ve)-.25 G .162
-(ls and their ef).15 F 2.662(fects. The)-.25 F -.25(va)2.662 G .162
-(lue may be a dec-).25 F .33(imal number \(e.g., 4.2\) or an inte)144
-477.6 R .33
+(ariable; these cases)-.25 F(are noted belo)108 700.8 Q -.65(w.)-.25 G
+(GNU Bash 5.3)72 768 Q(2026 January 14)141.79 E(16)190.95 E 0 Cg EP
+%%Page: 17 17
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF -.3(BA)108 84 S(SH_COMP).3 E
+-.95(AT)-.74 G F1 .502(The v)144 96 R .502
+(alue is used to set the shell')-.25 F 3.002(sc)-.55 G .502
+(ompatibility le)-3.002 F -.15(ve)-.25 G 3.002(l. See).15 F/F3 9
+/Times-Bold@0 SF .503(SHELL COMP)3.002 F -.855(AT)-.666 G .503
+(IBILITY MODE).855 F F1(be-)2.753 E(lo)144 108 Q 2.663(wf)-.25 G .163
+(or a description of the v)-2.663 F .162(arious compatibility le)-.25 F
+-.15(ve)-.25 G .162(ls and their ef).15 F 2.662(fects. The)-.25 F -.25
+(va)2.662 G .162(lue may be a dec-).25 F .33
+(imal number \(e.g., 4.2\) or an inte)144 120 R .33
(ger \(e.g., 42\) corresponding to the desired compatibility le)-.15 F
--.15(ve)-.25 G 2.83(l. If).15 F F3 -.27(BA)144 489.6 S(SH_COMP).27 E
--.855(AT)-.666 G F1 .431
+-.15(ve)-.25 G 2.83(l. If).15 F F3 -.27(BA)144 132 S(SH_COMP).27 E -.855
+(AT)-.666 G F1 .431
(is unset or set to the empty string, the compatibility le)3.537 F -.15
(ve)-.25 G 2.931(li).15 G 2.931(ss)-2.931 G .431(et to the def)-2.931 F
-.431(ault for)-.1 F .653(the current v)144 501.6 R 3.153(ersion. If)-.15
-F F3 -.27(BA)3.153 G(SH_COMP).27 E -.855(AT)-.666 G F1 .653
-(is set to a v)3.758 F .654(alue that is not one of the v)-.25 F .654
-(alid compatibility)-.25 F(le)144 513.6 Q -.15(ve)-.25 G .585
+.431(ault for)-.1 F .653(the current v)144 144 R 3.153(ersion. If)-.15 F
+F3 -.27(BA)3.153 G(SH_COMP).27 E -.855(AT)-.666 G F1 .653(is set to a v)
+3.758 F .654(alue that is not one of the v)-.25 F .654
+(alid compatibility)-.25 F(le)144 156 Q -.15(ve)-.25 G .585
(ls, the shell prints an error message and sets the compatibility le).15
F -.15(ve)-.25 G 3.085(lt).15 G 3.084(ot)-3.085 G .584(he def)-3.084 F
-.584(ault for the cur)-.1 F(-)-.2 E .723(rent v)144 525.6 R 3.223
+.584(ault for the cur)-.1 F(-)-.2 E .723(rent v)144 168 R 3.223
(ersion. A)-.15 F .723(subset of the v)3.223 F .724(alid v)-.25 F .724
(alues correspond to the compatibility le)-.25 F -.15(ve)-.25 G .724
-(ls described belo).15 F(w)-.25 E(under)144 537.6 Q F3 .145(SHELL COMP)
-2.645 F -.855(AT)-.666 G .145(IBILITY MODE).855 F F4(.)A F1 -.15(Fo)
-4.645 G 2.645(re).15 G .145(xample, 4.2 and 42 are v)-2.795 F .144
-(alid v)-.25 F .144(alues that correspond)-.25 F .566(to the)144 549.6 R
-F2 .566(compat42 shopt)3.066 F F1 .566
+(ls described belo).15 F(w)-.25 E(under)144 180 Q F3 .145(SHELL COMP)
+2.645 F -.855(AT)-.666 G .145(IBILITY MODE).855 F/F4 9/Times-Roman@0 SF
+(.)A F1 -.15(Fo)4.645 G 2.645(re).15 G .145(xample, 4.2 and 42 are v)
+-2.795 F .144(alid v)-.25 F .144(alues that correspond)-.25 F .566
+(to the)144 192 R F2 .566(compat42 shopt)3.066 F F1 .566
(option and set the compatibility le)3.066 F -.15(ve)-.25 G 3.067(lt).15
G 3.067(o4)-3.067 G 3.067(2. The)-3.067 F .567(current v)3.067 F .567
-(ersion is also a)-.15 F -.25(va)144 561.6 S(lid v).25 E(alue.)-.25 E F2
--.3(BA)108 573.6 S(SH_ENV).3 E F1 .299(If this parameter is set when)144
-585.6 R F2(bash)2.799 E F1 .298(is e)2.798 F -.15(xe)-.15 G .298
+(ersion is also a)-.15 F -.25(va)144 204 S(lid v).25 E(alue.)-.25 E F2
+-.3(BA)108 216 S(SH_ENV).3 E F1 .299(If this parameter is set when)144
+228 R F2(bash)2.799 E F1 .298(is e)2.798 F -.15(xe)-.15 G .298
(cuting a shell script, its e).15 F .298(xpanded v)-.15 F .298
(alue is interpreted as a)-.25 F .468(\214lename containing commands to\
- initialize the shell before it reads and e)144 597.6 R -.15(xe)-.15 G
-.468(cutes commands from).15 F .839(the script.)144 609.6 R .839(The v)
+ initialize the shell before it reads and e)144 240 R -.15(xe)-.15 G
+.468(cutes commands from).15 F .839(the script.)144 252 R .839(The v)
5.839 F .839(alue of)-.25 F F3 -.27(BA)3.339 G(SH_ENV).27 E F1 .839
(is subjected to parameter e)3.089 F .838
-(xpansion, command substitution,)-.15 F .921(and arithmetic e)144 621.6
-R .922(xpansion before being interpreted as a \214lename.)-.15 F F3
--.666(PA)5.922 G(TH)-.189 E F1 .922(is not used to search for)3.172 F
-(the resultant \214lename.)144 633.6 Q F2 -.3(BA)108 645.6 S(SH_XTRA).3
-E(CEFD)-.55 E F1 .551(If set to an inte)144 657.6 R .551
+(xpansion, command substitution,)-.15 F .921(and arithmetic e)144 264 R
+.922(xpansion before being interpreted as a \214lename.)-.15 F F3 -.666
+(PA)5.922 G(TH)-.189 E F1 .922(is not used to search for)3.172 F
+(the resultant \214lename.)144 276 Q F2 -.3(BA)108 288 S(SH_XTRA).3 E
+(CEFD)-.55 E F1 .551(If set to an inte)144 300 R .551
(ger corresponding to a v)-.15 F .551(alid \214le descriptor)-.25 F(,)
-.4 E F2(bash)3.05 E F1 .55(writes the trace output generated)3.05 F
-.244(when \231set \255x\232 is enabled to that \214le descriptor)144
-669.6 R 2.745(,i)-.4 G .245(nstead of the standard error)-2.745 F 5.245
-(.T)-.55 G .245(he \214le descriptor is)-5.245 F .761(closed when)144
-681.6 R F3 -.27(BA)3.261 G(SH_XTRA).27 E(CEFD)-.495 E F1 .761
+.244(when \231set \255x\232 is enabled to that \214le descriptor)144 312
+R 2.745(,i)-.4 G .245(nstead of the standard error)-2.745 F 5.245(.T)
+-.55 G .245(he \214le descriptor is)-5.245 F .761(closed when)144 324 R
+F3 -.27(BA)3.261 G(SH_XTRA).27 E(CEFD)-.495 E F1 .761
(is unset or assigned a ne)3.011 F 3.26(wv)-.25 G 3.26(alue. Unsetting)
-3.51 F F3 -.27(BA)3.26 G(SH_XTRA).27 E(CEFD)-.495 E F1 .583(or assigni\
ng it the empty string causes the trace output to be sent to the standa\
-rd error)144 693.6 R 5.583(.N)-.55 G .583(ote that)-5.583 F(setting)144
-705.6 Q F3 -.27(BA)2.996 G(SH_XTRA).27 E(CEFD)-.495 E F1 .495(to 2 \(th\
-e standard error \214le descriptor\) and then unsetting it will result)
-2.746 F(in the standard error being closed.)144 717.6 Q(GNU Bash 5.3)72
-768 Q(2025 April 7)149.285 E(16)198.445 E 0 Cg EP
-%%Page: 17 17
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(CDP)108 84 Q -.95(AT)-.74 G
-(H).95 E F1 .553(The search path for the)144 96 R F2(cd)3.054 E F1 3.054
-(command. This)3.054 F .554
+rd error)144 336 R 5.583(.N)-.55 G .583(ote that)-5.583 F(setting)144
+348 Q F3 -.27(BA)2.996 G(SH_XTRA).27 E(CEFD)-.495 E F1 .495(to 2 \(the \
+standard error \214le descriptor\) and then unsetting it will result)
+2.746 F(in the standard error being closed.)144 360 Q F2(CDP)108 372 Q
+-.95(AT)-.74 G(H).95 E F1 .553(The search path for the)144 384 R F2(cd)
+3.054 E F1 3.054(command. This)3.054 F .554
(is a colon-separated list of directories where the shell)3.054 F
-(looks for directories speci\214ed as ar)144 108 Q(guments to the)-.18 E
+(looks for directories speci\214ed as ar)144 396 Q(guments to the)-.18 E
F2(cd)2.5 E F1 2.5(command. A)2.5 F(sample v)2.5 E
-(alue is \231.:\001:/usr\232.)-.25 E F2(CHILD_MAX)108 120 Q F1 .932
-(Set the number of e)144 132 R .931(xited child status v)-.15 F .931
+(alue is \231.:\001:/usr\232.)-.25 E F2(CHILD_MAX)108 408 Q F1 .932
+(Set the number of e)144 420 R .931(xited child status v)-.15 F .931
(alues for the shell to remember)-.25 F(.)-.55 E F2(Bash)5.931 E F1 .931
-(will not allo)3.431 F 3.431(wt)-.25 G(his)-3.431 E -.25(va)144 144 S
-1.283(lue to be decreased belo).25 F 3.783(wa)-.25 G/F3 9/Times-Roman@0
-SF(POSIX)A F1 1.284(-mandated minimum, and there is a maximum v)B 1.284
-(alue \(cur)-.25 F(-)-.2 E(rently 8192\) that this may not e)144 156 Q
-2.5(xceed. The)-.15 F(minimum v)2.5 E(alue is system-dependent.)-.25 E
-F2(COLUMNS)108 168 Q F1 .829(Used by the)144 180 R F2(select)3.329 E F1
-.828(compound command to determine the terminal width when printing sel\
-ection)3.329 F 3.466(lists. Automatically)144 192 R .966(set if the)
-3.466 F F2(checkwinsize)3.466 E F1 .966
-(option is enabled or in an interacti)3.466 F 1.266 -.15(ve s)-.25 H
-.966(hell upon re-).15 F(ceipt of a)144 204 Q/F4 9/Times-Bold@0 SF
-(SIGWINCH)2.5 E F3(.)A F2(COMPREPL)108 216 Q(Y)-.92 E F1 .848
-(An array v)144 228 R .848(ariable from which)-.25 F F2(bash)3.348 E F1
-.848(reads the possible completions generated by a shell function)3.348
-F(in)144 240 Q -.2(vo)-.4 G -.1(ke).2 G 2.785(db).1 G 2.785(yt)-2.785 G
+(will not allo)3.431 F 3.431(wt)-.25 G(his)-3.431 E -.25(va)144 432 S
+1.283(lue to be decreased belo).25 F 3.783(wa)-.25 G F4(POSIX)A F1 1.284
+(-mandated minimum, and there is a maximum v)B 1.284(alue \(cur)-.25 F
+(-)-.2 E(rently 8192\) that this may not e)144 444 Q 2.5(xceed. The)-.15
+F(minimum v)2.5 E(alue is system-dependent.)-.25 E F2(COLUMNS)108 456 Q
+F1 .829(Used by the)144 468 R F2(select)3.329 E F1 .828(compound comman\
+d to determine the terminal width when printing selection)3.329 F 3.466
+(lists. Automatically)144 480 R .966(set if the)3.466 F F2(checkwinsize)
+3.466 E F1 .966(option is enabled or in an interacti)3.466 F 1.266 -.15
+(ve s)-.25 H .966(hell upon re-).15 F(ceipt of a)144 492 Q F3(SIGWINCH)
+2.5 E F4(.)A F2(COMPREPL)108 504 Q(Y)-.92 E F1 .848(An array v)144 516 R
+.848(ariable from which)-.25 F F2(bash)3.348 E F1 .848
+(reads the possible completions generated by a shell function)3.348 F
+(in)144 528 Q -.2(vo)-.4 G -.1(ke).2 G 2.785(db).1 G 2.785(yt)-2.785 G
.285(he programmable completion f)-2.785 F .285(acility \(see)-.1 F F2
(Pr)2.785 E .285(ogrammable Completion)-.18 F F1(belo)2.785 E 2.785
(w\). Each)-.25 F(array element contains one possible completion.)144
-252 Q F2(EMA)108 264 Q(CS)-.55 E F1(If)144 276 Q F2(bash)3.071 E F1 .571
+540 Q F2(EMA)108 552 Q(CS)-.55 E F1(If)144 564 Q F2(bash)3.071 E F1 .571
(\214nds this v)3.071 F .571(ariable in the en)-.25 F .571
(vironment when the shell starts with v)-.4 F .57
(alue \231t\232, it assumes that)-.25 F
-(the shell is running in an Emacs shell b)144 288 Q(uf)-.2 E
-(fer and disables line editing.)-.25 E F2(ENV)108 300 Q F1 1.281
-(Expanded and e)144 300 R -.15(xe)-.15 G 1.281(cuted similarly to).15 F
-F4 -.27(BA)3.781 G(SH_ENV).27 E F1(\(see)3.531 E F4(INV)3.781 E(OCA)
+(the shell is running in an Emacs shell b)144 576 Q(uf)-.2 E
+(fer and disables line editing.)-.25 E F2(ENV)108 588 Q F1 1.281
+(Expanded and e)144 588 R -.15(xe)-.15 G 1.281(cuted similarly to).15 F
+F3 -.27(BA)3.781 G(SH_ENV).27 E F1(\(see)3.531 E F3(INV)3.781 E(OCA)
-.405 E(TION)-.855 E F1(abo)3.532 E -.15(ve)-.15 G 3.782(\)w).15 G 1.282
-(hen an interacti)-3.782 F -.15(ve)-.25 G(shell is in)144 312 Q -.2(vo)
+(hen an interacti)-3.782 F -.15(ve)-.25 G(shell is in)144 600 Q -.2(vo)
-.4 G -.1(ke).2 G 2.5(di).1 G 2.5(np)-2.5 G(osix mode.)-2.5 E F2
-(EXECIGNORE)108 324 Q F1 2.792(Ac)144 336 S .292
+(EXECIGNORE)108 612 Q F1 2.792(Ac)144 624 S .292
(olon-separated list of shell patterns \(see)-2.792 F F2 -.1(Pa)2.791 G
(tter).1 E 2.791(nM)-.15 G(atching)-2.791 E F1 2.791(\)d)C .291
(e\214ning the set of \214lenames to be)-2.791 F .356
-(ignored by command search using)144 348 R F4 -.666(PA)2.856 G(TH)-.189
-E F3(.)A F1 .357(Files whose full pathnames match one of these patterns)
-4.856 F 1.433(are not considered e)144 360 R -.15(xe)-.15 G 1.432
+(ignored by command search using)144 636 R F3 -.666(PA)2.856 G(TH)-.189
+E F4(.)A F1 .357(Files whose full pathnames match one of these patterns)
+4.856 F 1.433(are not considered e)144 648 R -.15(xe)-.15 G 1.432
(cutable \214les for the purposes of completion and command e).15 F -.15
-(xe)-.15 G 1.432(cution via).15 F F4 -.666(PA)144 372 S(TH)-.189 E F1
+(xe)-.15 G 1.432(cution via).15 F F3 -.666(PA)144 660 S(TH)-.189 E F1
3.086(lookup. This)2.836 F .587(does not af)3.086 F .587(fect the beha)
-.25 F .587(vior of the)-.2 F F2([)3.087 E F1(,)A F2(test)3.087 E F1
3.087(,a)C(nd)-3.087 E F2([[)3.087 E F1 3.087(commands. Full)3.087 F
(pathnames)3.087 E .104(in the command hash table are not subject to)144
-384 R F4(EXECIGNORE)2.603 E F3(.)A F1 .103(Use this v)4.603 F .103
-(ariable to ignore shared li-)-.25 F .33(brary \214les that ha)144 396 R
+672 R F3(EXECIGNORE)2.603 E F4(.)A F1 .103(Use this v)4.603 F .103
+(ariable to ignore shared li-)-.25 F .33(brary \214les that ha)144 684 R
.63 -.15(ve t)-.2 H .33(he e).15 F -.15(xe)-.15 G .33
(cutable bit set, b).15 F .33(ut are not e)-.2 F -.15(xe)-.15 G .33
(cutable \214les.).15 F .33(The pattern matching hon-)5.33 F
-(ors the setting of the)144 408 Q F2(extglob)2.5 E F1(shell option.)2.5
-E F2(FCEDIT)108 420 Q F1(The def)144 432 Q(ault editor for the)-.1 E F2
-(fc)2.5 E F1 -.2(bu)2.5 G(iltin command.).2 E F2(FIGNORE)108 444 Q F1
-2.599(Ac)144 456 S .098(olon-separated list of suf)-2.599 F<8c78>-.25 E
-.098(es to ignore when performing \214lename completion \(see)-.15 F F4
-(READLINE)2.598 E F1(belo)144 468 Q 2.704(w\). A)-.25 F .204
-(\214lename whose suf)2.704 F .205(\214x matches one of the entries in)
--.25 F F4(FIGNORE)2.705 E F1 .205(is e)2.455 F .205
-(xcluded from the list)-.15 F(of matched \214lenames.)144 480 Q 2.5(As)5
-G(ample v)-2.5 E(alue is \231.o:\001\232.)-.25 E F2(FUNCNEST)108 492 Q
-F1 .231(If set to a numeric v)144 504 R .231
-(alue greater than 0, de\214nes a maximum function nesting le)-.25 F
--.15(ve)-.25 G 2.73(l. Function).15 F(in)2.73 E -.2(vo)-.4 G(-).2 E
-(cations that e)144 516 Q(xceed this nesting le)-.15 E -.15(ve)-.25 G
-2.5(lc).15 G(ause the current command to abort.)-2.5 E F2(GLOBIGNORE)108
-528 Q F1 2.923(Ac)144 540 S .423(olon-separated list of patterns de\214\
-ning the set of \214le names to be ignored by pathname e)-2.923 F(xpan-)
--.15 E 2.948(sion. If)144 552 R 2.948<618c>2.948 G .448
-(le name matched by a pathname e)-2.948 F .447
-(xpansion pattern also matches one of the patterns in)-.15 F F4
-(GLOBIGNORE)144 564 Q F3(,)A F1 .139(it is remo)2.389 F -.15(ve)-.15 G
-2.639(df).15 G .14(rom the list of matches.)-2.639 F .14
-(The pattern matching honors the setting of)5.14 F(the)144 576 Q F2
-(extglob)2.5 E F1(shell option.)2.5 E F2(GLOBSOR)108 588 Q(T)-.4 E F1
-.076(Controls ho)144 600 R 2.576(wt)-.25 G .076
-(he results of pathname e)-2.576 F .075(xpansion are sorted.)-.15 F .075
-(The v)5.075 F .075(alue of this v)-.25 F .075(ariable speci\214es the)
--.25 F .359(sort criteria and sort order for the results of pathname e)
-144 612 R 2.86(xpansion. If)-.15 F .36(this v)2.86 F .36
-(ariable is unset or set to)-.25 F .655(the null string, pathname e)144
-624 R .655(xpansion uses the historical beha)-.15 F .655
-(vior of sorting by name, in ascending)-.2 F(le)144 636 Q
-(xicographic order as determined by the)-.15 E F4(LC_COLLA)2.5 E(TE)
--.855 E F1(shell v)2.25 E(ariable.)-.25 E .029(If set, a v)144 652.8 R
-.029(alid v)-.25 F .029(alue be)-.25 F .029(gins with an optional)-.15 F
-F0(+)2.529 E F1 2.529(,w)C .03(hich is ignored, or)-2.529 F F0<ad>2.53 E
-F1 2.53(,w)C .03(hich re)-2.53 F -.15(ve)-.25 G .03(rses the sort order)
-.15 F 1.304(from ascending to descending, follo)144 664.8 R 1.304
-(wed by a sort speci\214er)-.25 F 6.303(.T)-.55 G 1.303(he v)-6.303 F
-1.303(alid sort speci\214ers are)-.25 F F0(name)4.163 E F1(,).18 E F0
-(numeric)144 676.8 Q F1(,).31 E F0(size)3.92 E F1(,).18 E F0(mtime)3.96
-E F1(,).18 E F0(atime)3.91 E F1(,).18 E F0(ctime)3.78 E F1 3.58(,a).18 G
-(nd)-3.58 E F0(bloc)3.851 E(ks)-.2 E F1 3.581(,w).27 G 1.081
-(hich sort the \214les on name, names in numeric)-3.581 F .98
-(rather than le)144 688.8 R .98(xicographic order)-.15 F 3.479<2c8c>-.4
-G .979
-(le size, modi\214cation time, access time, inode change time, and)
--3.479 F .893(number of blocks, respecti)144 700.8 R -.15(ve)-.25 G(ly)
-.15 E 5.893(.I)-.65 G 3.394(fa)-5.893 G 1.194 -.15(ny o)-3.394 H 3.394
-(ft).15 G .894(he non-name k)-3.394 F -.15(ey)-.1 G 3.394(sc).15 G .894
-(ompare as equal \(e.g., if tw)-3.394 F 3.394<6f8c>-.1 G(les)-3.394 E
-(are the same size\), sorting uses the name as a secondary sort k)144
-712.8 Q -.15(ey)-.1 G(.)-.5 E(GNU Bash 5.3)72 768 Q(2025 April 7)149.285
-E(17)198.445 E 0 Cg EP
+(ors the setting of the)144 696 Q F2(extglob)2.5 E F1(shell option.)2.5
+E(GNU Bash 5.3)72 768 Q(2026 January 14)141.79 E(17)190.95 E 0 Cg EP
%%Page: 18 18
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E -.15(Fo)144 84 S 2.692(re).15 G .192(xample, a v)
--2.842 F .192(alue of)-.25 F F0(\255mtime)2.692 E F1 .192
+.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(FCEDIT)108 84 Q F1(The def)
+144 96 Q(ault editor for the)-.1 E F2(fc)2.5 E F1 -.2(bu)2.5 G
+(iltin command.).2 E F2(FIGNORE)108 108 Q F1 2.599(Ac)144 120 S .098
+(olon-separated list of suf)-2.599 F<8c78>-.25 E .098
+(es to ignore when performing \214lename completion \(see)-.15 F/F3 9
+/Times-Bold@0 SF(READLINE)2.598 E F1(belo)144 132 Q 2.704(w\). A)-.25 F
+.204(\214lename whose suf)2.704 F .205
+(\214x matches one of the entries in)-.25 F F3(FIGNORE)2.705 E F1 .205
+(is e)2.455 F .205(xcluded from the list)-.15 F .369
+(of matched \214lenames.)144 144 R 2.868(As)5.368 G .368(ample v)-2.868
+F .368(alue is \231.o:\001\232.)-.25 F .368(Since tilde e)5.368 F .368
+(xpansion tak)-.15 F .368(es place after \231:\232 in as-)-.1 F
+(signment statements, mak)144 156 Q 2.5(es)-.1 G
+(ure to quote assignments appropriately to a)-2.5 E -.2(vo)-.2 G
+(id it as appropriate.).2 E F2(FUNCNEST)108 168 Q F1 .23
+(If set to a numeric v)144 180 R .231
+(alue greater than 0, de\214nes a maximum function nesting le)-.25 F
+-.15(ve)-.25 G 2.731(l. Function).15 F(in)2.731 E -.2(vo)-.4 G(-).2 E
+(cations that e)144 192 Q(xceed this nesting le)-.15 E -.15(ve)-.25 G
+2.5(lc).15 G(ause the current command to abort.)-2.5 E F2(GLOBIGNORE)108
+204 Q F1 2.924(Ac)144 216 S .423(olon-separated list of patterns de\214\
+ning the set of \214le names to be ignored by pathname e)-2.924 F(xpan-)
+-.15 E 2.947(sion. If)144 228 R 2.947<618c>2.947 G .447
+(le name matched by a pathname e)-2.947 F .448
+(xpansion pattern also matches one of the patterns in)-.15 F F3
+(GLOBIGNORE)144 240 Q/F4 9/Times-Roman@0 SF(,)A F1 .14(it is remo)2.39 F
+-.15(ve)-.15 G 2.64(df).15 G .14(rom the list of matches.)-2.64 F .139
+(The pattern matching honors the setting of)5.14 F(the)144 252 Q F2
+(extglob)2.5 E F1(shell option.)2.5 E F2(GLOBSOR)108 264 Q(T)-.4 E F1
+.075(Controls ho)144 276 R 2.575(wt)-.25 G .075
+(he results of pathname e)-2.575 F .075(xpansion are sorted.)-.15 F .075
+(The v)5.075 F .076(alue of this v)-.25 F .076(ariable speci\214es the)
+-.25 F .36(sort criteria and sort order for the results of pathname e)
+144 288 R 2.859(xpansion. If)-.15 F .359(this v)2.859 F .359
+(ariable is unset or set to)-.25 F .655(the null string, pathname e)144
+300 R .655(xpansion uses the historical beha)-.15 F .655
+(vior of sorting by name, in ascending)-.2 F(le)144 312 Q
+(xicographic order as determined by the)-.15 E F3(LC_COLLA)2.5 E(TE)
+-.855 E F1(shell v)2.25 E(ariable.)-.25 E .03(If set, a v)144 328.8 R
+.03(alid v)-.25 F .03(alue be)-.25 F .03(gins with an optional)-.15 F F0
+(+)2.53 E F1 2.529(,w)C .029(hich is ignored, or)-2.529 F F0<ad>2.529 E
+F1 2.529(,w)C .029(hich re)-2.529 F -.15(ve)-.25 G .029
+(rses the sort order).15 F 1.303(from ascending to descending, follo)144
+340.8 R 1.303(wed by a sort speci\214er)-.25 F 6.304(.T)-.55 G 1.304
+(he v)-6.304 F 1.304(alid sort speci\214ers are)-.25 F F0(name)4.164 E
+F1(,).18 E F0(numeric)144 352.8 Q F1(,).31 E F0(size)3.921 E F1(,).18 E
+F0(mtime)3.961 E F1(,).18 E F0(atime)3.911 E F1(,).18 E F0(ctime)3.781 E
+F1 3.581(,a).18 G(nd)-3.581 E F0(bloc)3.851 E(ks)-.2 E F1 3.581(,w).27 G
+1.08(hich sort the \214les on name, names in numeric)-3.581 F .979
+(rather than le)144 364.8 R .979(xicographic order)-.15 F 3.479<2c8c>-.4
+G .979
+(le size, modi\214cation time, access time, inode change time, and)
+-3.479 F .894(number of blocks, respecti)144 376.8 R -.15(ve)-.25 G(ly)
+.15 E 5.894(.I)-.65 G 3.394(fa)-5.894 G 1.194 -.15(ny o)-3.394 H 3.394
+(ft).15 G .894(he non-name k)-3.394 F -.15(ey)-.1 G 3.394(sc).15 G .893
+(ompare as equal \(e.g., if tw)-3.394 F 3.393<6f8c>-.1 G(les)-3.393 E
+(are the same size\), sorting uses the name as a secondary sort k)144
+388.8 Q -.15(ey)-.1 G(.)-.5 E -.15(Fo)144 405.6 S 2.692(re).15 G .192
+(xample, a v)-2.842 F .192(alue of)-.25 F F0(\255mtime)2.692 E F1 .192
(sorts the results in descending order by modi\214cation time \(ne)2.692
-F(west)-.25 E(\214rst\).)144 96 Q(The)144 112.8 Q F0(numeric)3.843 E F1
-1.344(speci\214er treats names consisting solely of digits as numbers a\
-nd sorts them using)3.843 F .266(their numeric v)144 124.8 R .266
+F(west)-.25 E(\214rst\).)144 417.6 Q(The)144 434.4 Q F0(numeric)3.844 E
+F1 1.344(speci\214er treats names consisting solely of digits as number\
+s and sorts them using)3.844 F .265(their numeric v)144 446.4 R .266
(alue \(so \2312\232 sorts before \23110\232, for e)-.25 F 2.766
-(xample\). When)-.15 F(using)2.765 E F0(numeric)2.765 E F1 2.765(,n)C
-.265(ames contain-)-2.765 F .321(ing non-digits sort after all the all-\
-digit names and are sorted by name using the traditional beha)144 136.8
-R(v-)-.2 E(ior)144 148.8 Q(.)-.55 E 2.644(As)144 165.6 S .144
-(ort speci\214er of)-2.644 F F0(nosort)2.644 E F1 .144
-(disables sorting completely;)2.644 F/F2 10/Times-Bold@0 SF(bash)2.644 E
-F1 .144(returns the results in the order the)2.644 F 2.643(ya)-.15 G(re)
--2.643 E(read from the \214le system, ignoring an)144 177.6 Q 2.5(yl)
--.15 G(eading)-2.5 E F0<ad>2.5 E F1(.)A .52
-(If the sort speci\214er is missing, it def)144 194.4 R .52(aults to)-.1
-F F0(name)3.02 E F1 3.02(,s)C 3.02(oav)-3.02 G .52(alue of)-3.27 F F0(+)
+(xample\). When)-.15 F(using)2.766 E F0(numeric)2.766 E F1 2.766(,n)C
+.266(ames contain-)-2.766 F .321(ing non-digits sort after all the all-\
+digit names and are sorted by name using the traditional beha)144 458.4
+R(v-)-.2 E(ior)144 470.4 Q(.)-.55 E 2.643(As)144 487.2 S .143
+(ort speci\214er of)-2.643 F F0(nosort)2.643 E F1 .144
+(disables sorting completely;)2.644 F F2(bash)2.644 E F1 .144
+(returns the results in the order the)2.644 F 2.644(ya)-.15 G(re)-2.644
+E(read from the \214le system, ignoring an)144 499.2 Q 2.5(yl)-.15 G
+(eading)-2.5 E F0<ad>2.5 E F1(.)A .52
+(If the sort speci\214er is missing, it def)144 516 R .52(aults to)-.1 F
+F0(name)3.02 E F1 3.02(,s)C 3.02(oav)-3.02 G .52(alue of)-3.27 F F0(+)
3.02 E F1 .52(is equi)3.02 F -.25(va)-.25 G .52
-(lent to the null string,).25 F .483(and a v)144 206.4 R .483(alue of)
--.25 F F0(-)2.983 E F1 .482(sorts by name in descending order)2.983 F
-5.482(.A)-.55 G .782 -.15(ny i)-5.482 H -1.95 -.4(nv a).15 H .482(lid v)
-.4 F .482(alue restores the historical sort-)-.25 F(ing beha)144 218.4 Q
-(vior)-.2 E(.)-.55 E F2(HISTCONTR)108 230.4 Q(OL)-.3 E F1 2.653(Ac)144
-242.4 S .153(olon-separated list of v)-2.653 F .153
-(alues controlling ho)-.25 F 2.653(wc)-.25 G .153(ommands are sa)-2.653
-F -.15(ve)-.2 G 2.653(do).15 G 2.653(nt)-2.653 G .153(he history list.)
--2.653 F .154(If the list)5.153 F .49(of v)144 254.4 R .49
-(alues includes)-.25 F F0(ignor)3 E(espace)-.37 E F1 2.99(,l).18 G .49
-(ines which be)-2.99 F .49(gin with a)-.15 F F2(space)2.99 E F1 .49
-(character are not sa)2.99 F -.15(ve)-.2 G 2.99(di).15 G 2.99(nt)-2.99 G
-.49(he his-)-2.99 F .557(tory list.)144 266.4 R 3.057(Av)5.557 G .557
-(alue of)-3.307 F F0(ignor)3.067 E(edups)-.37 E F1 .557
-(causes lines matching the pre)3.327 F .558
-(vious history entry not to be sa)-.25 F -.15(ve)-.2 G(d.).15 E 2.926
-(Av)144 278.4 S .426(alue of)-3.176 F F0(ignor)2.936 E(eboth)-.37 E F1
-.426(is shorthand for)3.206 F F0(ignor)2.926 E(espace)-.37 E F1(and)
-2.926 E F0(ignor)2.926 E(edups)-.37 E F1 5.426(.A)C -.25(va)-2.501 G
-.425(lue of).25 F F0(er)3.115 E(asedups)-.15 E F1(causes)3.195 E .698
-(all pre)144 290.4 R .698
+(lent to the null string,).25 F .482(and a v)144 528 R .482(alue of)-.25
+F F0(-)2.982 E F1 .482(sorts by name in descending order)2.982 F 5.482
+(.A)-.55 G .783 -.15(ny i)-5.482 H -1.95 -.4(nv a).15 H .483(lid v).4 F
+.483(alue restores the historical sort-)-.25 F(ing beha)144 540 Q(vior)
+-.2 E(.)-.55 E F2(HISTCONTR)108 552 Q(OL)-.3 E F1 2.654(Ac)144 564 S
+.153(olon-separated list of v)-2.654 F .153(alues controlling ho)-.25 F
+2.653(wc)-.25 G .153(ommands are sa)-2.653 F -.15(ve)-.2 G 2.653(do).15
+G 2.653(nt)-2.653 G .153(he history list.)-2.653 F .153(If the list)
+5.153 F .49(of v)144 576 R .49(alues includes)-.25 F F0(ignor)3 E
+(espace)-.37 E F1 2.99(,l).18 G .49(ines which be)-2.99 F .49
+(gin with a)-.15 F F2(space)2.99 E F1 .49(character are not sa)2.99 F
+-.15(ve)-.2 G 2.99(di).15 G 2.99(nt)-2.99 G .49(he his-)-2.99 F .558
+(tory list.)144 588 R 3.058(Av)5.558 G .558(alue of)-3.308 F F0(ignor)
+3.068 E(edups)-.37 E F1 .558(causes lines matching the pre)3.328 F .557
+(vious history entry not to be sa)-.25 F -.15(ve)-.2 G(d.).15 E 2.925
+(Av)144 600 S .425(alue of)-3.175 F F0(ignor)2.935 E(eboth)-.37 E F1
+.426(is shorthand for)3.205 F F0(ignor)2.926 E(espace)-.37 E F1(and)
+2.926 E F0(ignor)2.926 E(edups)-.37 E F1 5.426(.A)C -.25(va)-2.5 G .426
+(lue of).25 F F0(er)3.116 E(asedups)-.15 E F1(causes)3.196 E .699
+(all pre)144 612 R .698
(vious lines matching the current line to be remo)-.25 F -.15(ve)-.15 G
-3.198(df).15 G .699(rom the history list before that line is)-3.198 F
-(sa)144 302.4 Q -.15(ve)-.2 G 2.764(d. An).15 F 2.764(yv)-.15 G .264
-(alue not in the abo)-3.014 F .563 -.15(ve l)-.15 H .263
-(ist is ignored.).15 F(If)5.263 E/F3 9/Times-Bold@0 SF(HISTCONTR)2.763 E
-(OL)-.27 E F1 .263(is unset, or does not include)2.513 F 2.607(av)144
-314.4 S .107(alid v)-2.857 F(alue,)-.25 E F2(bash)2.607 E F1(sa)2.607 E
--.15(ve)-.2 G 2.607(sa).15 G .107(ll lines read by the shell parser on \
-the history list, subject to the v)-2.607 F .107(alue of)-.25 F F3
-(HISTIGNORE)144 326.4 Q/F4 9/Times-Roman@0 SF(.)A F1 .06
-(If the \214rst line of a multi-line compound command w)4.56 F .06
-(as sa)-.1 F -.15(ve)-.2 G .059(d, the second and sub-).15 F 1.393
-(sequent lines are not tested, and are added to the history re)144 338.4
-R -.05(ga)-.15 G 1.394(rdless of the v).05 F 1.394(alue of)-.25 F F3
-(HISTCON-)3.894 E(TR)144 350.4 Q(OL)-.27 E F4(.)A F1 1.099
-(If the \214rst line w)5.6 F 1.099(as not sa)-.1 F -.15(ve)-.2 G 1.099
+3.198(df).15 G .698(rom the history list before that line is)-3.198 F
+(sa)144 624 Q -.15(ve)-.2 G 2.763(d. An).15 F 2.763(yv)-.15 G .263
+(alue not in the abo)-3.013 F .563 -.15(ve l)-.15 H .263
+(ist is ignored.).15 F(If)5.263 E F3(HISTCONTR)2.763 E(OL)-.27 E F1 .264
+(is unset, or does not include)2.513 F 2.607(av)144 636 S .107(alid v)
+-2.857 F(alue,)-.25 E F2(bash)2.607 E F1(sa)2.607 E -.15(ve)-.2 G 2.607
+(sa).15 G .107(ll lines read by the shell parser on the history list, s\
+ubject to the v)-2.607 F .107(alue of)-.25 F F3(HISTIGNORE)144 648 Q F4
+(.)A F1 .06(If the \214rst line of a multi-line compound command w)4.559
+F .06(as sa)-.1 F -.15(ve)-.2 G .06(d, the second and sub-).15 F 1.394
+(sequent lines are not tested, and are added to the history re)144 660 R
+-.05(ga)-.15 G 1.393(rdless of the v).05 F 1.393(alue of)-.25 F F3
+(HISTCON-)3.893 E(TR)144 672 Q(OL)-.27 E F4(.)A F1 1.099
+(If the \214rst line w)5.599 F 1.099(as not sa)-.1 F -.15(ve)-.2 G 1.099
(d, the second and subsequent lines of the command are not).15 F(sa)144
-362.4 Q -.15(ve)-.2 G 2.5(de).15 G(ither)-2.5 E(.)-.55 E F2(HISTFILE)108
-374.4 Q F1 .817(The name of the \214le in which command history is sa)
-144 386.4 R -.15(ve)-.2 G 3.318(d\().15 G(see)-3.318 E F3(HIST)3.318 E
-(OR)-.162 E(Y)-.315 E F1(belo)3.068 E(w\).)-.25 E F2(Bash)5.818 E F1
-.818(assigns a)3.318 F(def)144 398.4 Q .775(ault v)-.1 F .775(alue of)
--.25 F F0(\001/.bash_history)4.941 E F1 5.775(.I)1.666 G(f)-5.775 E F3
-(HISTFILE)3.275 E F1 .774(is unset or null, the shell does not sa)3.025
-F 1.074 -.15(ve t)-.2 H .774(he com-).15 F(mand history when it e)144
-410.4 Q(xits.)-.15 E F2(HISTFILESIZE)108 422.4 Q F1 1.622
-(The maximum number of lines contained in the history \214le.)144 434.4
-R 1.623(When this v)6.623 F 1.623(ariable is assigned a)-.25 F -.25(va)
-144 446.4 S .41(lue, the history \214le is truncated, if necessary).25 F
-2.909(,t)-.65 G 2.909(oc)-2.909 G .409
-(ontain no more than the number of history en-)-2.909 F .312
-(tries that total no more than that number of lines by remo)144 458.4 R
-.312(ving the oldest entries.)-.15 F .313(If the history list)5.313 F
-1.311(contains multi-line entries, the history \214le may contain more \
-lines than this maximum to a)144 470.4 R -.2(vo)-.2 G(id).2 E(lea)144
-482.4 Q .383(ving partial history entries.)-.2 F .384(The history \214l\
-e is also truncated to this size after writing it when a)5.383 F 1.329
-(shell e)144 494.4 R 1.329(xits or by the)-.15 F F2(history)3.829 E F1
--.2(bu)3.829 G 3.829(iltin. If).2 F 1.328(the v)3.829 F 1.328
-(alue is 0, the history \214le is truncated to zero size.)-.25 F 1.024
-(Non-numeric v)144 506.4 R 1.024(alues and numeric v)-.25 F 1.024
-(alues less than zero inhibit truncation.)-.25 F 1.025
-(The shell sets the de-)6.024 F -.1(fa)144 518.4 S(ult v).1 E
-(alue to the v)-.25 E(alue of)-.25 E F3(HISTSIZE)2.5 E F1
-(after reading an)2.25 E 2.5(ys)-.15 G(tartup \214les.)-2.5 E F2
-(HISTIGNORE)108 530.4 Q F1 2.658(Ac)144 542.4 S .158(olon-separated lis\
-t of patterns used to decide which command lines should be sa)-2.658 F
--.15(ve)-.2 G 2.657(do).15 G 2.657(nt)-2.657 G .157(he his-)-2.657 F
-.996(tory list.)144 554.4 R .996
-(If a command line matches one of the patterns in the v)5.996 F .997
-(alue of)-.25 F F3(HISTIGNORE)3.497 E F4(,)A F1 .997(it is not)3.247 F
-(sa)144 566.4 Q -.15(ve)-.2 G 2.772(do).15 G 2.772(nt)-2.772 G .271
-(he history list.)-2.772 F .271(Each pattern is anchored at the be)5.271
-F .271(ginning of the line and must match the)-.15 F .086
-(complete line \()144 578.4 R F2(bash)A F1 .086(does not)2.586 F .086
-(implicitly append a \231)5.086 F F2(*)A F1 2.586(\232\). Each)B .086
-(pattern is tested ag)2.586 F .087(ainst the line after)-.05 F 2.252
-(the checks speci\214ed by)144 590.4 R F3(HISTCONTR)4.752 E(OL)-.27 E F1
-2.252(are applied.)4.502 F 2.252
-(In addition to the normal shell pattern)7.252 F 1.385
-(matching characters, \231)144 602.4 R F2(&)A F1 3.885<9a6d>C 1.385
-(atches the pre)-3.885 F 1.385(vious history line.)-.25 F 3.886(Ab)6.385
-G 1.386(ackslash escapes the \231)-3.886 F F2(&)A F1 1.386(\232; the)B
-.776(backslash is remo)144 614.4 R -.15(ve)-.15 G 3.276(db).15 G .776
-(efore attempting a match.)-3.276 F .775
-(If the \214rst line of a multi-line compound com-)5.775 F .76(mand w)
-144 626.4 R .76(as sa)-.1 F -.15(ve)-.2 G .76(d, the second and subsequ\
-ent lines are not tested, and are added to the history re-).15 F -.05
-(ga)144 638.4 S .58(rdless of the v).05 F .579(alue of)-.25 F F3
-(HISTIGNORE)3.079 E F4(.)A F1 .579(If the \214rst line w)5.079 F .579
-(as not sa)-.1 F -.15(ve)-.2 G .579(d, the second and subsequent).15 F
-.261(lines of the command are not sa)144 650.4 R -.15(ve)-.2 G 2.761(de)
-.15 G(ither)-2.761 E 5.261(.T)-.55 G .261
-(he pattern matching honors the setting of the)-5.261 F F2(extglob)2.762
-E F1(shell option.)144 662.4 Q F3(HISTIGNORE)144 674.4 Q F1 .083
-(subsumes some of the function of)2.333 F F3(HISTCONTR)2.583 E(OL)-.27 E
-F4(.)A F1 2.583(Ap)4.583 G .083(attern of \231&\232 is identical to)
--2.583 F .322(\231ignoredups\232, and a pattern of \231[ ]*\232 is iden\
-tical to \231ignorespace\232.)144 686.4 R .322(Combining these tw)5.322
-F 2.823(op)-.1 G(atterns,)-2.823 E(separating them with a colon, pro)144
-698.4 Q(vides the functionality of \231ignoreboth\232.)-.15 E
-(GNU Bash 5.3)72 768 Q(2025 April 7)149.285 E(18)198.445 E 0 Cg EP
+684 Q -.15(ve)-.2 G 2.5(de).15 G(ither)-2.5 E(.)-.55 E F2(HISTFILE)108
+696 Q F1 .818(The name of the \214le in which command history is sa)144
+708 R -.15(ve)-.2 G 3.317(d\().15 G(see)-3.317 E F3(HIST)3.317 E(OR)
+-.162 E(Y)-.315 E F1(belo)3.067 E(w\).)-.25 E F2(Bash)5.817 E F1 .817
+(assigns a)3.317 F(def)144 720 Q 2.362(ault v)-.1 F 2.362(alue of)-.25 F
+F0(\001/.bash_history)6.528 E F1 7.363(.I)1.666 G(f)-7.363 E F3
+(HISTFILE)4.863 E F1 2.363(is unset or null, the shell does not sa)4.613
+F 2.663 -.15(ve t)-.2 H(he).15 E(GNU Bash 5.3)72 768 Q(2026 January 14)
+141.79 E(18)190.95 E 0 Cg EP
%%Page: 19 19
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(HISTSIZE)108 84 Q F1 1.387
-(The number of commands to remember in the command history \(see)144 96
-R/F3 9/Times-Bold@0 SF(HIST)3.887 E(OR)-.162 E(Y)-.315 E F1(belo)3.637 E
-3.887(w\). If)-.25 F(the)3.887 E -.25(va)144 108 S 1.32
-(lue is 0, commands are not sa).25 F -.15(ve)-.2 G 3.82(di).15 G 3.821
-(nt)-3.82 G 1.321(he history list.)-3.821 F 1.321(Numeric v)6.321 F
-1.321(alues less than zero result in)-.25 F -2.15 -.25(ev e)144 120 T
-.437(ry command being sa).25 F -.15(ve)-.2 G 2.937(do).15 G 2.937(nt)
--2.937 G .437(he history list \(there is no limit\).)-2.937 F .436
-(The shell sets the def)5.436 F .436(ault v)-.1 F(alue)-.25 E
-(to 500 after reading an)144 132 Q 2.5(ys)-.15 G(tartup \214les.)-2.5 E
-F2(HISTTIMEFORMA)108 144 Q(T)-.95 E F1 .925(If this v)144 156 R .925
-(ariable is set and not null, its v)-.25 F .926
-(alue is used as a format string for)-.25 F F0(strftime)3.766 E F1 .926
-(\(3\) to print the).18 F .673
-(time stamp associated with each history entry displayed by the)144 168
-R F2(history)3.173 E F1 -.2(bu)3.172 G 3.172(iltin. If).2 F .672(this v)
-3.172 F .672(ariable is)-.25 F .454
-(set, the shell writes time stamps to the history \214le so the)144 180
-R 2.954(ym)-.15 G .454(ay be preserv)-2.954 F .455
+.25 E F1(\(1\)).95 E(command history when it e)144 84 Q(xits.)-.15 E/F2
+10/Times-Bold@0 SF(HISTFILESIZE)108 96 Q F1 1.623
+(The maximum number of lines contained in the history \214le.)144 108 R
+1.622(When this v)6.623 F 1.622(ariable is assigned a)-.25 F -.25(va)144
+120 S .409(lue, the history \214le is truncated, if necessary).25 F
+2.909(,t)-.65 G 2.909(oc)-2.909 G .41
+(ontain no more than the number of history en-)-2.909 F .312
+(tries that total no more than that number of lines by remo)144 132 R
+.312(ving the oldest entries.)-.15 F .312(If the history list)5.312 F
+1.311(contains multi-line entries, the history \214le may contain more \
+lines than this maximum to a)144 144 R -.2(vo)-.2 G(id).2 E(lea)144 156
+Q .384(ving partial history entries.)-.2 F .383(The history \214le is a\
+lso truncated to this size after writing it when a)5.384 F 1.328
+(shell e)144 168 R 1.328(xits or by the)-.15 F F2(history)3.828 E F1 -.2
+(bu)3.828 G 3.828(iltin. If).2 F 1.328(the v)3.828 F 1.329
+(alue is 0, the history \214le is truncated to zero size.)-.25 F 1.025
+(Non-numeric v)144 180 R 1.025(alues and numeric v)-.25 F 1.024
+(alues less than zero inhibit truncation.)-.25 F 1.024
+(The shell sets the de-)6.024 F -.1(fa)144 192 S(ult v).1 E
+(alue to the v)-.25 E(alue of)-.25 E/F3 9/Times-Bold@0 SF(HISTSIZE)2.5 E
+F1(after reading an)2.25 E 2.5(ys)-.15 G(tartup \214les.)-2.5 E F2
+(HISTIGNORE)108 204 Q F1 2.657(Ac)144 216 S .157(olon-separated list of\
+ patterns used to decide which command lines should be sa)-2.657 F -.15
+(ve)-.2 G 2.658(do).15 G 2.658(nt)-2.658 G .158(he his-)-2.658 F .997
+(tory list.)144 228 R .997
+(If a command line matches one of the patterns in the v)5.997 F .996
+(alue of)-.25 F F3(HISTIGNORE)3.496 E/F4 9/Times-Roman@0 SF(,)A F1 .996
+(it is not)3.246 F(sa)144 240 Q -.15(ve)-.2 G 2.771(do).15 G 2.771(nt)
+-2.771 G .271(he history list.)-2.771 F .271
+(Each pattern is anchored at the be)5.271 F .271
+(ginning of the line and must match the)-.15 F .087(complete line \()144
+252 R F2(bash)A F1 .087(does not)2.587 F .086(implicitly append a \231)
+5.086 F F2(*)A F1 2.586(\232\). Each)B .086(pattern is tested ag)2.586 F
+.086(ainst the line after)-.05 F 2.252(the checks speci\214ed by)144 264
+R F3(HISTCONTR)4.752 E(OL)-.27 E F1 2.252(are applied.)4.502 F 2.252
+(In addition to the normal shell pattern)7.252 F 1.386
+(matching characters, \231)144 276 R F2(&)A F1 3.886<9a6d>C 1.386
+(atches the pre)-3.886 F 1.385(vious history line.)-.25 F 3.885(Ab)6.385
+G 1.385(ackslash escapes the \231)-3.885 F F2(&)A F1 1.385(\232; the)B
+.775(backslash is remo)144 288 R -.15(ve)-.15 G 3.275(db).15 G .775
+(efore attempting a match.)-3.275 F .776
+(If the \214rst line of a multi-line compound com-)5.775 F .76(mand w)
+144 300 R .76(as sa)-.1 F -.15(ve)-.2 G .76(d, the second and subsequen\
+t lines are not tested, and are added to the history re-).15 F -.05(ga)
+144 312 S .579(rdless of the v).05 F .579(alue of)-.25 F F3(HISTIGNORE)
+3.079 E F4(.)A F1 .579(If the \214rst line w)5.079 F .579(as not sa)-.1
+F -.15(ve)-.2 G .579(d, the second and subsequent).15 F .262
+(lines of the command are not sa)144 324 R -.15(ve)-.2 G 2.761(de).15 G
+(ither)-2.761 E 5.261(.T)-.55 G .261
+(he pattern matching honors the setting of the)-5.261 F F2(extglob)2.761
+E F1(shell option.)144 336 Q F3(HISTIGNORE)144 348 Q F1 .083
+(subsumes some of the function of)2.333 F F3(HISTCONTR)2.583 E(OL)-.27 E
+F4(.)A F1 2.583(Ap)4.583 G .083(attern of \231&\232 is identical to)
+-2.583 F .322(\231ignoredups\232, and a pattern of \231[ ]*\232 is iden\
+tical to \231ignorespace\232.)144 360 R .322(Combining these tw)5.322 F
+2.822(op)-.1 G(atterns,)-2.822 E(separating them with a colon, pro)144
+372 Q(vides the functionality of \231ignoreboth\232.)-.15 E F2(HISTSIZE)
+108 384 Q F1 1.387
+(The number of commands to remember in the command history \(see)144 396
+R F3(HIST)3.887 E(OR)-.162 E(Y)-.315 E F1(belo)3.637 E 3.887(w\). If)
+-.25 F(the)3.888 E -.25(va)144 408 S 1.321
+(lue is 0, commands are not sa).25 F -.15(ve)-.2 G 3.821(di).15 G 3.821
+(nt)-3.821 G 1.321(he history list.)-3.821 F 1.32(Numeric v)6.32 F 1.32
+(alues less than zero result in)-.25 F -2.15 -.25(ev e)144 420 T .436
+(ry command being sa).25 F -.15(ve)-.2 G 2.936(do).15 G 2.936(nt)-2.936
+G .436(he history list \(there is no limit\).)-2.936 F .437
+(The shell sets the def)5.437 F .437(ault v)-.1 F(alue)-.25 E
+(to 500 after reading an)144 432 Q 2.5(ys)-.15 G(tartup \214les.)-2.5 E
+F2(HISTTIMEFORMA)108 444 Q(T)-.95 E F1 .926(If this v)144 456 R .926
+(ariable is set and not null, its v)-.25 F .925
+(alue is used as a format string for)-.25 F F0(strftime)3.765 E F1 .925
+(\(3\) to print the).18 F .672
+(time stamp associated with each history entry displayed by the)144 468
+R F2(history)3.173 E F1 -.2(bu)3.173 G 3.173(iltin. If).2 F .673(this v)
+3.173 F .673(ariable is)-.25 F .454
+(set, the shell writes time stamps to the history \214le so the)144 480
+R 2.954(ym)-.15 G .454(ay be preserv)-2.954 F .454
(ed across shell sessions.)-.15 F(This uses the history comment charact\
-er to distinguish timestamps from other history lines.)144 192 Q F2
-(HOME)108 204 Q F1 1.27(The home directory of the current user; the def)
-144 216 R 1.27(ault ar)-.1 F 1.27(gument for the)-.18 F F2(cd)3.77 E F1
--.2(bu)3.77 G 1.27(iltin command.).2 F(The)6.27 E -.25(va)144 228 S
+er to distinguish timestamps from other history lines.)144 492 Q F2
+(HOME)108 504 Q F1 1.27(The home directory of the current user; the def)
+144 516 R 1.27(ault ar)-.1 F 1.27(gument for the)-.18 F F2(cd)3.77 E F1
+-.2(bu)3.77 G 1.27(iltin command.).2 F(The)6.27 E -.25(va)144 528 S
(lue of this v).25 E(ariable is also used when performing tilde e)-.25 E
-(xpansion.)-.15 E F2(HOSTFILE)108 240 Q F1 1.015
-(Contains the name of a \214le in the same format as)144 252 R F0
+(xpansion.)-.15 E F2(HOSTFILE)108 540 Q F1 1.015
+(Contains the name of a \214le in the same format as)144 552 R F0
(/etc/hosts)5.181 E F1 1.015(that should be read when the shell)5.181 F
-.551(needs to complete a hostname.)144 264 R .551
+.55(needs to complete a hostname.)144 564 R .551
(The list of possible hostname completions may be changed while)5.551 F
-1.058(the shell is running; the ne)144 276 R 1.059
-(xt time hostname completion is attempted after the v)-.15 F 1.059
-(alue is changed,)-.25 F F2(bash)144 288 Q F1 .138
-(adds the contents of the ne)2.639 F 2.638<778c>-.25 G .138(le to the e)
+1.059(the shell is running; the ne)144 576 R 1.059
+(xt time hostname completion is attempted after the v)-.15 F 1.058
+(alue is changed,)-.25 F F2(bash)144 588 Q F1 .138
+(adds the contents of the ne)2.638 F 2.638<778c>-.25 G .138(le to the e)
-2.638 F .138(xisting list.)-.15 F(If)5.138 E F3(HOSTFILE)2.638 E F1
-.138(is set, b)2.388 F .138(ut has no v)-.2 F .138(alue, or)-.25 F .517
-(does not name a readable \214le,)144 300 R F2(bash)3.017 E F1 .517
-(attempts to read)3.017 F F0(/etc/hosts)4.684 E F1 .518
-(to obtain the list of possible host-)4.684 F(name completions.)144 312
+.138(is set, b)2.388 F .139(ut has no v)-.2 F .139(alue, or)-.25 F .518
+(does not name a readable \214le,)144 600 R F2(bash)3.018 E F1 .518
+(attempts to read)3.018 F F0(/etc/hosts)4.683 E F1 .517
+(to obtain the list of possible host-)4.683 F(name completions.)144 612
Q(When)5 E F3(HOSTFILE)2.5 E F1(is unset,)2.25 E F2(bash)2.5 E F1
-(clears the hostname list.)2.5 E F2(IFS)108 324 Q F1(The)144 324 Q F0
-.556(Internal F)3.636 F .556(ield Separ)-.45 F(ator)-.15 E F1 .556
-(that is used for w)3.786 F .556(ord splitting after e)-.1 F .555
-(xpansion and to split lines into)-.15 F -.1(wo)144 336 S .053
-(rds with the).1 F F2 -.18(re)2.553 G(ad).18 E F1 -.2(bu)2.553 G .053
-(iltin command.).2 F -.8(Wo)5.053 G .054(rd splitting is described belo)
-.8 F 2.554(wu)-.25 G(nder)-2.554 E F3(EXP)2.554 E(ANSION)-.666 E/F4 9
-/Times-Roman@0 SF(.)A F1(The)4.554 E(def)144 348 Q(ault v)-.1 E
-(alue is \231<space><tab><ne)-.25 E(wline>\232.)-.25 E F2(IGNOREEOF)108
-360 Q F1 .503(Controls the action of an interacti)144 372 R .803 -.15
-(ve s)-.25 H .503(hell on receipt of an).15 F F3(EOF)3.003 E F1 .503
-(character as the sole input.)2.753 F .503(If set,)5.503 F .426(the v)
-144 384 R .426(alue is the number of consecuti)-.25 F -.15(ve)-.25 G F3
+(clears the hostname list.)2.5 E F2(IFS)108 624 Q F1(The)144 624 Q F0
+.555(Internal F)3.635 F .555(ield Separ)-.45 F(ator)-.15 E F1 .555
+(that is used for w)3.785 F .556(ord splitting after e)-.1 F .556
+(xpansion and to split lines into)-.15 F -.1(wo)144 636 S .054
+(rds with the).1 F F2 -.18(re)2.554 G(ad).18 E F1 -.2(bu)2.554 G .054
+(iltin command.).2 F -.8(Wo)5.054 G .053(rd splitting is described belo)
+.8 F 2.553(wu)-.25 G(nder)-2.553 E F3(EXP)2.553 E(ANSION)-.666 E F4(.)A
+F1(The)4.553 E(def)144 648 Q(ault v)-.1 E(alue is \231<space><tab><ne)
+-.25 E(wline>\232.)-.25 E F2(IGNOREEOF)108 660 Q F1 .503
+(Controls the action of an interacti)144 672 R .803 -.15(ve s)-.25 H
+.503(hell on receipt of an).15 F F3(EOF)3.003 E F1 .503
+(character as the sole input.)2.753 F .504(If set,)5.504 F .426(the v)
+144 684 R .426(alue is the number of consecuti)-.25 F -.15(ve)-.25 G F3
(EOF)3.076 E F1 .426
(characters which must be typed as the \214rst characters)2.676 F .46
-(on an input line before)144 396 R F2(bash)2.96 E F1 -.15(ex)2.96 G 2.96
+(on an input line before)144 696 R F2(bash)2.96 E F1 -.15(ex)2.96 G 2.96
(its. If).15 F .46(the v)2.96 F .46(ariable is set b)-.25 F .46
(ut does not ha)-.2 F .76 -.15(ve a n)-.2 H .46(umeric v).15 F .46
-(alue, or the)-.25 F -.25(va)144 408 S(lue is null, the def).25 E
+(alue, or the)-.25 F -.25(va)144 708 S(lue is null, the def).25 E
(ault v)-.1 E(alue is 10.)-.25 E(If it is unset,)5 E F3(EOF)2.5 E F1
-(signi\214es the end of input to the shell.)2.25 E F2(INPUTRC)108 420 Q
-F1 .111(The \214lename for the)144 432 R F2 -.18(re)2.612 G(adline).18 E
-F1 .112(startup \214le, o)2.612 F -.15(ve)-.15 G .112(rriding the def)
-.15 F .112(ault of)-.1 F F0(\001/.inputr)4.278 E(c)-.37 E F1(\(see)4.278
-E F3(READLINE)2.612 E F1(be-)2.362 E(lo)144 444 Q(w\).)-.25 E F2
-(INSIDE_EMA)108 456 Q(CS)-.55 E F1 .034(If this v)144 468 R .034
-(ariable appears in the en)-.25 F .034(vironment when the shell starts,)
--.4 F F2(bash)2.533 E F1 .033(assumes that it is running in-)2.533 F
-(side an Emacs shell b)144 480 Q(uf)-.2 E
+(signi\214es the end of input to the shell.)2.25 E(GNU Bash 5.3)72 768 Q
+(2026 January 14)141.79 E(19)190.95 E 0 Cg EP
+%%Page: 20 20
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(INPUTRC)108 84 Q F1 .112
+(The \214lename for the)144 96 R F2 -.18(re)2.612 G(adline).18 E F1 .112
+(startup \214le, o)2.612 F -.15(ve)-.15 G .112(rriding the def).15 F
+.112(ault of)-.1 F F0(\001/.inputr)4.278 E(c)-.37 E F1(\(see)4.278 E/F3
+9/Times-Bold@0 SF(READLINE)2.611 E F1(be-)2.361 E(lo)144 108 Q(w\).)-.25
+E F2(INSIDE_EMA)108 120 Q(CS)-.55 E F1 .033(If this v)144 132 R .033
+(ariable appears in the en)-.25 F .033(vironment when the shell starts,)
+-.4 F F2(bash)2.534 E F1 .034(assumes that it is running in-)2.534 F
+(side an Emacs shell b)144 144 Q(uf)-.2 E
(fer and may disable line editing, depending on the v)-.25 E(alue of)
--.25 E F3(TERM)2.5 E F4(.)A F2(LANG)108 492 Q F1 1.239
-(Used to determine the locale cate)144 492 R 1.239(gory for an)-.15 F
-3.739(yc)-.15 G(ate)-3.739 E 1.24
+-.25 E F3(TERM)2.5 E/F4 9/Times-Roman@0 SF(.)A F2(LANG)108 156 Q F1 1.24
+(Used to determine the locale cate)144 156 R 1.239(gory for an)-.15 F
+3.739(yc)-.15 G(ate)-3.739 E 1.239
(gory not speci\214cally selected with a v)-.15 F(ariable)-.25 E
-(starting with)144 504 Q F2(LC_)2.5 E F1(.)A F2(LC_ALL)108 516 Q F1 .974
-(This v)144 528 R .974(ariable o)-.25 F -.15(ve)-.15 G .974
+(starting with)144 168 Q F2(LC_)2.5 E F1(.)A F2(LC_ALL)108 180 Q F1 .973
+(This v)144 192 R .973(ariable o)-.25 F -.15(ve)-.15 G .973
(rrides the v).15 F .973(alue of)-.25 F F3(LANG)3.473 E F1 .973(and an)
3.223 F 3.473(yo)-.15 G(ther)-3.473 E F2(LC_)3.473 E F1 -.25(va)3.473 G
-.973(riable specifying a locale cate-).25 F(gory)144 540 Q(.)-.65 E F2
-(LC_COLLA)108 552 Q(TE)-.95 E F1 .411(This v)144 564 R .412(ariable det\
+.974(riable specifying a locale cate-).25 F(gory)144 204 Q(.)-.65 E F2
+(LC_COLLA)108 216 Q(TE)-.95 E F1 .412(This v)144 228 R .412(ariable det\
ermines the collation order used when sorting the results of pathname e)
--.25 F(xpansion,)-.15 E 1.465(and determines the beha)144 576 R 1.465
-(vior of range e)-.2 F 1.464(xpressions, equi)-.15 F -.25(va)-.25 G
-1.464(lence classes, and collating sequences).25 F(within pathname e)144
-588 Q(xpansion and pattern matching.)-.15 E F2(LC_CTYPE)108 600 Q F1
-1.935(This v)144 612 R 1.936
+-.25 F(xpansion,)-.15 E 1.464(and determines the beha)144 240 R 1.464
+(vior of range e)-.2 F 1.465(xpressions, equi)-.15 F -.25(va)-.25 G
+1.465(lence classes, and collating sequences).25 F(within pathname e)144
+252 Q(xpansion and pattern matching.)-.15 E F2(LC_CTYPE)108 264 Q F1
+1.936(This v)144 276 R 1.936
(ariable determines the interpretation of characters and the beha)-.25 F
-1.936(vior of character classes)-.2 F(within pathname e)144 624 Q
-(xpansion and pattern matching.)-.15 E F2(LC_MESSA)108 636 Q(GES)-.55 E
-F1(This v)144 648 Q(ariable determines the locale used to translate dou\
+1.935(vior of character classes)-.2 F(within pathname e)144 288 Q
+(xpansion and pattern matching.)-.15 E F2(LC_MESSA)108 300 Q(GES)-.55 E
+F1(This v)144 312 Q(ariable determines the locale used to translate dou\
ble-quoted strings preceded by a)-.25 E F2($)2.5 E F1(.)A F2(LC_NUMERIC)
-108 660 Q F1(This v)144 672 Q(ariable determines the locale cate)-.25 E
-(gory used for number formatting.)-.15 E F2(LC_TIME)108 684 Q F1(This v)
-144 696 Q(ariable determines the locale cate)-.25 E
-(gory used for data and time formatting.)-.15 E(GNU Bash 5.3)72 768 Q
-(2025 April 7)149.285 E(19)198.445 E 0 Cg EP
-%%Page: 20 20
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(LINES)108 84 Q F1 .055
-(Used by the)144 84 R F2(select)2.555 E F1 .054(compound command to det\
-ermine the column length for printing selection lists.)2.555 F .264
-(Automatically set if the)144 96 R F2(checkwinsize)2.764 E F1 .264
-(option is enabled or in an interacti)2.764 F .565 -.15(ve s)-.25 H .265
-(hell upon receipt of a).15 F/F3 9/Times-Bold@0 SF(SIGWINCH)144 108 Q/F4
-9/Times-Roman@0 SF(.)A F2(MAIL)108 120 Q F1 .464(If the v)144 120 R .464
+108 324 Q F1(This v)144 336 Q(ariable determines the locale cate)-.25 E
+(gory used for number formatting.)-.15 E F2(LC_TIME)108 348 Q F1(This v)
+144 360 Q(ariable determines the locale cate)-.25 E
+(gory used for data and time formatting.)-.15 E F2(LINES)108 372 Q F1
+.054(Used by the)144 372 R F2(select)2.554 E F1 .054(compound command t\
+o determine the column length for printing selection lists.)2.554 F .265
+(Automatically set if the)144 384 R F2(checkwinsize)2.765 E F1 .264
+(option is enabled or in an interacti)2.765 F .564 -.15(ve s)-.25 H .264
+(hell upon receipt of a).15 F F3(SIGWINCH)144 396 Q F4(.)A F2(MAIL)108
+408 Q F1 .463(If the v)144 408 R .464
(alue is set to a \214le or directory name and the)-.25 F F3(MAILP)2.964
-E -.855(AT)-.666 G(H).855 E F1 -.25(va)2.714 G .463(riable is not set,)
-.25 F F2(bash)2.963 E F1(informs)2.963 E(the user of the arri)144 132 Q
+E -.855(AT)-.666 G(H).855 E F1 -.25(va)2.714 G .464(riable is not set,)
+.25 F F2(bash)2.964 E F1(informs)2.964 E(the user of the arri)144 420 Q
-.25(va)-.25 G 2.5(lo).25 G 2.5(fm)-2.5 G
(ail in the speci\214ed \214le or Maildir)-2.5 E(-format directory)-.2 E
-(.)-.65 E F2(MAILCHECK)108 144 Q F1 .098(Speci\214es ho)144 156 R 2.598
-(wo)-.25 G .098(ften \(in seconds\))-2.598 F F2(bash)2.598 E F1 .098
+(.)-.65 E F2(MAILCHECK)108 432 Q F1 .099(Speci\214es ho)144 444 R 2.599
+(wo)-.25 G .099(ften \(in seconds\))-2.599 F F2(bash)2.598 E F1 .098
(checks for mail.)2.598 F .098(The def)5.098 F .098(ault is 60 seconds.)
--.1 F .099(When it is time)5.099 F .224(to check for mail, the shell do\
-es so before displaying the primary prompt.)144 168 R .223(If this v)
-5.223 F .223(ariable is unset,)-.25 F(or set to a v)144 180 Q(alue that\
+-.1 F .098(When it is time)5.098 F .223(to check for mail, the shell do\
+es so before displaying the primary prompt.)144 456 R .224(If this v)
+5.224 F .224(ariable is unset,)-.25 F(or set to a v)144 468 Q(alue that\
is not a number greater than or equal to zero, the shell disables mail\
- checking.)-.25 E F2(MAILP)108 192 Q -.95(AT)-.74 G(H).95 E F1 2.99(Ac)
-144 204 S .49(olon-separated list of \214lenames to be check)-2.99 F .49
+ checking.)-.25 E F2(MAILP)108 480 Q -.95(AT)-.74 G(H).95 E F1 2.99(Ac)
+144 492 S .49(olon-separated list of \214lenames to be check)-2.99 F .49
(ed for mail.)-.1 F .49(The message to be printed when mail)5.49 F(arri)
-144 216 Q -.15(ve)-.25 G 3.634(si).15 G 3.634(nap)-3.634 G 1.134(articu\
+144 504 Q -.15(ve)-.25 G 3.633(si).15 G 3.633(nap)-3.633 G 1.134(articu\
lar \214le may be speci\214ed by separating the \214lename from the mes\
-sage with a)-3.634 F 2.558(\231?\232. When)144 228 R .059
+sage with a)-3.633 F 2.559(\231?\232. When)144 516 R .059
(used in the te)2.559 F .059(xt of the message,)-.15 F F2($_)2.559 E F1
-.15(ex)2.559 G .059(pands to the name of the current mail\214le.).15 F
--.15(Fo)5.059 G 2.559(re).15 G(x-)-2.709 E(ample:)144 240 Q/F5 10
-/Courier-Bold@0 SF(MAILPATH)144 252 Q/F6 10/Courier@0 SF(=\010/var/mail\
+-.15(Fo)5.059 G 2.558(re).15 G(x-)-2.708 E(ample:)144 528 Q/F5 10
+/Courier-Bold@0 SF(MAILPATH)144 540 Q/F6 10/Courier@0 SF(=\010/var/mail\
/bfox?"You have mail":\001/shell\255mail?"$_ has mail!"\010)A F2(Bash)
-144 264 Q F1 .015(can be con\214gured to supply a def)2.515 F .015
+144 552 Q F1 .015(can be con\214gured to supply a def)2.515 F .015
(ault v)-.1 F .015(alue for this v)-.25 F .015(ariable \(there is no v)
-.25 F .015(alue by def)-.25 F .015(ault\), b)-.1 F(ut)-.2 E(the locati\
on of the user mail \214les that it uses is system dependent \(e.g., /v)
-144 276 Q(ar/mail/)-.25 E F2($USER)A F1(\).)A F2(OPTERR)108 288 Q F1
-.389(If set to the v)144 300 R .389(alue 1,)-.25 F F2(bash)2.889 E F1
-.389(displays error messages generated by the)2.889 F F2(getopts)2.89 E
-F1 -.2(bu)2.89 G .39(iltin command \(see).2 F F3 .36(SHELL B)144 312 R
-(UIL)-.09 E .36(TIN COMMANDS)-.828 F F1(belo)2.61 E(w\).)-.25 E F3
-(OPTERR)5.36 E F1 .359(is initialized to 1 each time the shell is in)
-2.61 F -.2(vo)-.4 G -.1(ke).2 G(d).1 E(or a shell script is e)144 324 Q
--.15(xe)-.15 G(cuted.).15 E F2 -.74(PA)108 336 S(TH)-.21 E F1 .587
-(The search path for commands.)144 336 R .588
+144 564 Q(ar/mail/)-.25 E F2($USER)A F1(\).)A F2(OPTERR)108 576 Q F1 .39
+(If set to the v)144 588 R .39(alue 1,)-.25 F F2(bash)2.89 E F1 .389
+(displays error messages generated by the)2.889 F F2(getopts)2.889 E F1
+-.2(bu)2.889 G .389(iltin command \(see).2 F F3 .359(SHELL B)144 600 R
+(UIL)-.09 E .359(TIN COMMANDS)-.828 F F1(belo)2.609 E(w\).)-.25 E F3
+(OPTERR)5.359 E F1 .36(is initialized to 1 each time the shell is in)
+2.609 F -.2(vo)-.4 G -.1(ke).2 G(d).1 E(or a shell script is e)144 612 Q
+-.15(xe)-.15 G(cuted.).15 E F2 -.74(PA)108 624 S(TH)-.21 E F1 .588
+(The search path for commands.)144 624 R .587
(It is a colon-separated list of directories in which the shell looks)
-5.587 F .472(for commands \(see)144 348 R F3 .472(COMMAND EXECUTION)
-2.972 F F1(belo)2.722 E 2.972(w\). A)-.25 F .471
-(zero-length \(null\) directory name in the)2.972 F -.25(va)144 360 S
-.535(lue of).25 F F3 -.666(PA)3.035 G(TH)-.189 E F1 .535
-(indicates the current directory)2.785 F 5.535(.A)-.65 G .535
-(null directory name may appear as tw)-2.5 F 3.036(oa)-.1 G(djacent)
--3.036 E .868(colons, or as an initial or trailing colon.)144 372 R .868
-(The def)5.868 F .867(ault path is system-dependent, and is set by the)
--.1 F(administrator who installs)144 384 Q F2(bash)2.5 E F1 5(.A)C
+5.588 F .471(for commands \(see)144 636 R F3 .471(COMMAND EXECUTION)
+2.971 F F1(belo)2.722 E 2.972(w\). A)-.25 F .472
+(zero-length \(null\) directory name in the)2.972 F -.25(va)144 648 S
+.536(lue of).25 F F3 -.666(PA)3.036 G(TH)-.189 E F1 .535
+(indicates the current directory)2.786 F 5.535(.A)-.65 G .535
+(null directory name may appear as tw)-2.5 F 3.035(oa)-.1 G(djacent)
+-3.035 E .867(colons, or as an initial or trailing colon.)144 660 R .868
+(The def)5.868 F .868(ault path is system-dependent, and is set by the)
+-.1 F(administrator who installs)144 672 Q F2(bash)2.5 E F1 5(.A)C
(common v)-2.5 E(alue is)-.25 E F6
-(/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin)169 396 Q
-F2(POSIXL)108 408 Q(Y_CORRECT)-.92 E F1 .401(If this v)144 420 R .401
+(/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin)169 684 Q
+F2(POSIXL)108 696 Q(Y_CORRECT)-.92 E F1 .402(If this v)144 708 R .402
(ariable is in the en)-.25 F .401(vironment when)-.4 F F2(bash)2.901 E
-F1 .402(starts, the shell enters posix mode before reading)2.901 F .011
-(the startup \214les, as if the)144 432 R F2(\255\255posix)2.511 E F1
+F1 .401(starts, the shell enters posix mode before reading)2.901 F .011
+(the startup \214les, as if the)144 720 R F2(\255\255posix)2.511 E F1
(in)2.511 E -.2(vo)-.4 G .011(cation option had been supplied.).2 F .011
-(If it is set while the shell is)5.011 F(running,)144 444 Q F2(bash)
-3.344 E F1 .844(enables posix mode, as if the command \231set \255o pos\
-ix\232 had been e)3.344 F -.15(xe)-.15 G 3.344(cuted. When).15 F
-(the shell enters posix mode, it sets this v)144 456 Q(ariable if it w)
--.25 E(as not already set.)-.1 E F2(PR)108 468 Q(OMPT_COMMAND)-.3 E F1
-.155(If this v)144 480 R .155(ariable is set, and is an array)-.25 F
+(If it is set while the shell is)5.011 F(GNU Bash 5.3)72 768 Q
+(2026 January 14)141.79 E(20)190.95 E 0 Cg EP
+%%Page: 21 21
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E(running,)144 84 Q/F2 10/Times-Bold@0 SF(bash)3.344
+E F1 .844(enables posix mode, as if the command \231set \255o posix\232\
+ had been e)3.344 F -.15(xe)-.15 G 3.344(cuted. When).15 F
+(the shell enters posix mode, it sets this v)144 96 Q(ariable if it w)
+-.25 E(as not already set.)-.1 E F2(PR)108 108 Q(OMPT_COMMAND)-.3 E F1
+.155(If this v)144 120 R .155(ariable is set, and is an array)-.25 F
2.655(,t)-.65 G .155(he v)-2.655 F .155(alue of each set element is e)
-.25 F -.15(xe)-.15 G .155(cuted as a command prior).15 F .407
-(to issuing each primary prompt.)144 492 R .407(If this is set b)5.407 F
+(to issuing each primary prompt.)144 132 R .407(If this is set b)5.407 F
.407(ut not an array v)-.2 F .407(ariable, its v)-.25 F .407
-(alue is used as a com-)-.25 F(mand to e)144 504 Q -.15(xe)-.15 G
-(cute instead.).15 E F2(PR)108 516 Q(OMPT_DIR)-.3 E(TRIM)-.4 E F1 .676
-(If set to a number greater than zero, the v)144 528 R .676
+(alue is used as a com-)-.25 F(mand to e)144 144 Q -.15(xe)-.15 G
+(cute instead.).15 E F2(PR)108 156 Q(OMPT_DIR)-.3 E(TRIM)-.4 E F1 .676
+(If set to a number greater than zero, the v)144 168 R .676
(alue is used as the number of trailing directory compo-)-.25 F .923
-(nents to retain when e)144 540 R .923(xpanding the)-.15 F F2(\\w)3.423
+(nents to retain when e)144 180 R .923(xpanding the)-.15 F F2(\\w)3.423
E F1(and)3.423 E F2(\\W)3.423 E F1 .923(prompt string escapes \(see)
-3.423 F F3(PR)3.423 E(OMPTING)-.27 E F1(belo)3.173 E(w\).)-.25 E
-(Characters remo)144 552 Q -.15(ve)-.15 G 2.5(da).15 G
-(re replaced with an ellipsis.)-2.5 E F2(PS0)108 564 Q F1 1.174(The v)
-144 564 R 1.174(alue of this parameter is e)-.25 F 1.174(xpanded \(see)
+3.423 F/F3 9/Times-Bold@0 SF(PR)3.423 E(OMPTING)-.27 E F1(belo)3.173 E
+(w\).)-.25 E(Characters remo)144 192 Q -.15(ve)-.15 G 2.5(da).15 G
+(re replaced with an ellipsis.)-2.5 E F2(PS0)108 204 Q F1 1.174(The v)
+144 204 R 1.174(alue of this parameter is e)-.25 F 1.174(xpanded \(see)
-.15 F F3(PR)3.674 E(OMPTING)-.27 E F1(belo)3.424 E 1.174
(w\) and displayed by interacti)-.25 F -.15(ve)-.25 G
-(shells after reading a command and before the command is e)144 576 Q
--.15(xe)-.15 G(cuted.).15 E F2(PS1)108 588 Q F1 .064(The v)144 588 R
+(shells after reading a command and before the command is e)144 216 Q
+-.15(xe)-.15 G(cuted.).15 E F2(PS1)108 228 Q F1 .065(The v)144 228 R
.065(alue of this parameter is e)-.25 F .065(xpanded \(see)-.15 F F3(PR)
2.565 E(OMPTING)-.27 E F1(belo)2.315 E .065
-(w\) and used as the primary prompt)-.25 F 2.5(string. The)144 600 R
+(w\) and used as the primary prompt)-.25 F 2.5(string. The)144 240 R
(def)2.5 E(ault v)-.1 E(alue is \231\\s\255\\v\\$ \232.)-.25 E F2(PS2)
-108 612 Q F1 .118(The v)144 612 R .118(alue of this parameter is e)-.25
-F .118(xpanded as with)-.15 F F3(PS1)2.617 E F1 .117
-(and used as the secondary prompt string.)2.367 F(The)5.117 E(def)144
-624 Q(ault is \231> \232.)-.1 E F2(PS3)108 636 Q F1 1.115(The v)144 636
+108 252 Q F1 .117(The v)144 252 R .117(alue of this parameter is e)-.25
+F .117(xpanded as with)-.15 F F3(PS1)2.617 E F1 .118
+(and used as the secondary prompt string.)2.368 F(The)5.118 E(def)144
+264 Q(ault is \231> \232.)-.1 E F2(PS3)108 276 Q F1 1.116(The v)144 276
R 1.115(alue of this parameter is used as the prompt for the)-.25 F F2
-(select)3.615 E F1 1.116(command \(see)3.616 F F3 1.116(SHELL GRAM-)
-3.616 F(MAR)144 648 Q F1(abo)2.25 E -.15(ve)-.15 G(\).).15 E F2(PS4)108
-660 Q F1 .101(The v)144 660 R .101(alue of this parameter is e)-.25 F
-.101(xpanded as with)-.15 F F3(PS1)2.6 E F1 .1(and the v)2.35 F .1
-(alue is printed before each command)-.25 F F2(bash)144 672 Q F1 .334
-(displays during an e)2.834 F -.15(xe)-.15 G .335(cution trace.).15 F
+(select)3.615 E F1 1.115(command \(see)3.615 F F3 1.115(SHELL GRAM-)
+3.615 F(MAR)144 288 Q F1(abo)2.25 E -.15(ve)-.15 G(\).).15 E F2(PS4)108
+300 Q F1 .1(The v)144 300 R .1(alue of this parameter is e)-.25 F .1
+(xpanded as with)-.15 F F3(PS1)2.6 E F1 .101(and the v)2.35 F .101
+(alue is printed before each command)-.25 F F2(bash)144 312 Q F1 .335
+(displays during an e)2.835 F -.15(xe)-.15 G .335(cution trace.).15 F
.335(The \214rst character of the e)5.335 F .335(xpanded v)-.15 F .335
-(alue of)-.25 F F3(PS4)2.835 E F1 .335(is repli-)2.585 F
-(cated multiple times, as necessary)144 684 Q 2.5(,t)-.65 G 2.5(oi)-2.5
+(alue of)-.25 F F3(PS4)2.834 E F1 .334(is repli-)2.584 F
+(cated multiple times, as necessary)144 324 Q 2.5(,t)-.65 G 2.5(oi)-2.5
G(ndicate multiple le)-2.5 E -.15(ve)-.25 G(ls of indirection.).15 E
-(The def)5 E(ault is \231+ \232.)-.1 E F2(SHELL)108 696 Q F1 .543
-(This v)144 708 R .543(ariable e)-.25 F .543
-(xpands to the full pathname to the shell.)-.15 F .542
-(If it is not set when the shell starts,)5.543 F F2(bash)3.042 E F1
-(assigns to it the full pathname of the current user')144 720 Q 2.5(sl)
--.55 G(ogin shell.)-2.5 E(GNU Bash 5.3)72 768 Q(2025 April 7)149.285 E
-(20)198.445 E 0 Cg EP
-%%Page: 21 21
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(TIMEFORMA)108 84 Q(T)-.95 E
-F1 .826(The v)144 96 R .826
+(The def)5 E(ault is \231+ \232.)-.1 E F2(SHELL)108 336 Q F1 .542
+(This v)144 348 R .542(ariable e)-.25 F .542
+(xpands to the full pathname to the shell.)-.15 F .543
+(If it is not set when the shell starts,)5.543 F F2(bash)3.043 E F1
+(assigns to it the full pathname of the current user')144 360 Q 2.5(sl)
+-.55 G(ogin shell.)-2.5 E F2(TIMEFORMA)108 372 Q(T)-.95 E F1 .827(The v)
+144 384 R .826
(alue of this parameter is used as a format string specifying ho)-.25 F
-3.327(wt)-.25 G .827(he timing information for)-3.327 F .649
-(pipelines pre\214x)144 108 R .649(ed with the)-.15 F F2(time)3.149 E F1
-(reserv)3.149 E .649(ed w)-.15 F .648(ord should be displayed.)-.1 F
-(The)5.648 E F2(%)3.148 E F1 .648(character introduces)3.148 F .711
-(an escape sequence that is e)144 120 R .711(xpanded to a time v)-.15 F
-.712(alue or other information.)-.25 F .712(The escape sequences)5.712 F
-(and their meanings are as follo)144 132 Q(ws; the brack)-.25 E
-(ets denote optional portions.)-.1 E F2(%%)144 144 Q F1 2.5(Al)194 144 S
-(iteral)-2.5 E F2(%)2.5 E F1(.)A F2(%[)144 156 Q F0(p)A F2(][l]R)A F1
-(The elapsed time in seconds.)194 156 Q F2(%[)144 168 Q F0(p)A F2(][l]U)
-A F1(The number of CPU seconds spent in user mode.)194 168 Q F2(%[)144
-180 Q F0(p)A F2(][l]S)A F1
-(The number of CPU seconds spent in system mode.)194 180 Q F2(%P)144 192
-Q F1(The CPU percentage, computed as \(%U + %S\) / %R.)194 192 Q .87
-(The optional)144 208.8 R F0(p)3.37 E F1 .87(is a digit specifying the)
+3.326(wt)-.25 G .826(he timing information for)-3.326 F .648
+(pipelines pre\214x)144 396 R .648(ed with the)-.15 F F2(time)3.148 E F1
+(reserv)3.148 E .648(ed w)-.15 F .649(ord should be displayed.)-.1 F
+(The)5.649 E F2(%)3.149 E F1 .649(character introduces)3.149 F .712
+(an escape sequence that is e)144 408 R .711(xpanded to a time v)-.15 F
+.711(alue or other information.)-.25 F .711(The escape sequences)5.711 F
+(and their meanings are as follo)144 420 Q(ws; the brack)-.25 E
+(ets denote optional portions.)-.1 E F2(%%)144 432 Q F1 2.5(Al)194 432 S
+(iteral)-2.5 E F2(%)2.5 E F1(.)A F2(%[)144 444 Q F0(p)A F2(][l]R)A F1
+(The elapsed time in seconds.)194 444 Q F2(%[)144 456 Q F0(p)A F2(][l]U)
+A F1(The number of CPU seconds spent in user mode.)194 456 Q F2(%[)144
+468 Q F0(p)A F2(][l]S)A F1
+(The number of CPU seconds spent in system mode.)194 468 Q F2(%P)144 480
+Q F1(The CPU percentage, computed as \(%U + %S\) / %R.)194 480 Q .87
+(The optional)144 496.8 R F0(p)3.37 E F1 .87(is a digit specifying the)
3.37 F F0(pr)3.37 E(ecision)-.37 E F1 3.37(,t)C .87
-(he number of fractional digits after a decimal)-3.37 F 2.669(point. A)
-144 220.8 R -.25(va)2.669 G .169
+(he number of fractional digits after a decimal)-3.37 F 2.67(point. A)
+144 508.8 R -.25(va)2.67 G .17
(lue of 0 causes no decimal point or fraction to be output.).25 F F2
-(time)5.17 E F1 .17(prints at most six digits)2.67 F 1.211
-(after the decimal point; v)144 232.8 R 1.211(alues of)-.25 F F0(p)3.711
-E F1 1.211(greater than 6 are changed to 6.)3.711 F(If)6.21 E F0(p)3.71
-E F1 1.21(is not speci\214ed,)3.71 F F2(time)3.71 E F1
-(prints three digits after the decimal point.)144 244.8 Q .667
-(The optional)144 261.6 R F2(l)3.167 E F1 .668
+(time)5.169 E F1 .169(prints at most six digits)2.669 F 1.21
+(after the decimal point; v)144 520.8 R 1.21(alues of)-.25 F F0(p)3.71 E
+F1 1.211(greater than 6 are changed to 6.)3.71 F(If)6.211 E F0(p)3.711 E
+F1 1.211(is not speci\214ed,)3.711 F F2(time)3.711 E F1
+(prints three digits after the decimal point.)144 532.8 Q .668
+(The optional)144 549.6 R F2(l)3.168 E F1 .668
(speci\214es a longer format, including minutes, of the form)3.168 F F0
-(MM)3.168 E F1(m)A F0(SS)A F1(.)A F0(FF)A F1 3.168(s. The)B -.25(va)
-3.168 G(lue).25 E(of)144 273.6 Q F0(p)2.5 E F1
-(determines whether or not the fraction is included.)2.5 E 13.365
-(If this v)144 290.4 R 13.365(ariable is not set,)-.25 F F2(bash)15.865
-E F1 13.364(acts as if it had the v)15.865 F(alue)-.25 E F2($\010\\nr)
-144 302.4 Q(eal\\t%3lR\\nuser\\t%3lU\\nsys\\t%3lS\010)-.18 E F1 5.292
-(.I)C 2.792(ft)-5.292 G .292(he v)-2.792 F .293(alue is null,)-.25 F F2
-(bash)2.793 E F1 .293(does not display an)2.793 F 2.793(yt)-.15 G(iming)
--2.793 E 2.5(information. A)144 314.4 R(trailing ne)2.5 E
+(MM)3.168 E F1(m)A F0(SS)A F1(.)A F0(FF)A F1 3.167(s. The)B -.25(va)
+3.167 G(lue).25 E(of)144 561.6 Q F0(p)2.5 E F1
+(determines whether or not the fraction is included.)2.5 E 13.364
+(If this v)144 578.4 R 13.364(ariable is not set,)-.25 F F2(bash)15.865
+E F1 13.365(acts as if it had the v)15.865 F(alue)-.25 E F2($\010\\nr)
+144 590.4 Q(eal\\t%3lR\\nuser\\t%3lU\\nsys\\t%3lS\010)-.18 E F1 5.293
+(.I)C 2.793(ft)-5.293 G .293(he v)-2.793 F .293(alue is null,)-.25 F F2
+(bash)2.793 E F1 .292(does not display an)2.793 F 2.792(yt)-.15 G(iming)
+-2.792 E 2.5(information. A)144 602.4 R(trailing ne)2.5 E
(wline is added when the format string is displayed.)-.25 E F2(TMOUT)108
-326.4 Q F1 .226(If set to a v)144 338.4 R .225
+614.4 Q F1 .225(If set to a v)144 626.4 R .225
(alue greater than zero, the)-.25 F F2 -.18(re)2.725 G(ad).18 E F1 -.2
-(bu)2.725 G .225(iltin uses the v).2 F .225(alue as its def)-.25 F .225
-(ault timeout.)-.1 F(The)5.225 E F2(select)2.725 E F1 .68
-(command terminates if input does not arri)144 350.4 R .98 -.15(ve a)
--.25 H(fter).15 E/F3 9/Times-Bold@0 SF(TMOUT)3.18 E F1 .68
-(seconds when input is coming from a)2.93 F 2.555(terminal. In)144 362.4
+(bu)2.725 G .225(iltin uses the v).2 F .226(alue as its def)-.25 F .226
+(ault timeout.)-.1 F(The)5.226 E F2(select)2.726 E F1 .68
+(command terminates if input does not arri)144 638.4 R .98 -.15(ve a)
+-.25 H(fter).15 E F3(TMOUT)3.18 E F1 .68
+(seconds when input is coming from a)2.93 F 2.555(terminal. In)144 650.4
R .055(an interacti)2.555 F .355 -.15(ve s)-.25 H .055(hell, the v).15 F
.055(alue is interpreted as the number of seconds to w)-.25 F .055
(ait for a line)-.1 F .836(of input after issuing the primary prompt.)
-144 374.4 R F2(Bash)5.836 E F1 .836(terminates after w)3.336 F .836
+144 662.4 R F2(Bash)5.836 E F1 .836(terminates after w)3.336 F .836
(aiting for that number of sec-)-.1 F
-(onds if a complete line of input does not arri)144 386.4 Q -.15(ve)-.25
-G(.).15 E F2(TMPDIR)108 398.4 Q F1 .391(If set,)144 410.4 R F2(bash)
-2.891 E F1 .391(uses its v)2.891 F .391
-(alue as the name of a directory in which)-.25 F F2(bash)2.89 E F1 .39
-(creates temporary \214les for the)2.89 F(shell')144 422.4 Q 2.5(su)-.55
-G(se.)-2.5 E F2(auto_r)108 434.4 Q(esume)-.18 E F1 .53(This v)144 446.4
-R .53(ariable controls ho)-.25 F 3.03(wt)-.25 G .531
-(he shell interacts with the user and job control.)-3.03 F .531
-(If this v)5.531 F .531(ariable is set,)-.25 F .409
-(simple commands consisting of only a single w)144 458.4 R .409
-(ord, without redirections, are treated as candidates)-.1 F 1.017
-(for resumption of an e)144 470.4 R 1.017(xisting stopped job)-.15 F
-6.017(.T)-.4 G 1.018(here is no ambiguity allo)-6.017 F 1.018
-(wed; if there is more than)-.25 F 1.002(one job be)144 482.4 R 1.002
-(ginning with or containing the w)-.15 F 1.002
-(ord, this selects the most recently accessed job)-.1 F 6.002(.T)-.4 G
-(he)-6.002 E F0(name)144.36 494.4 Q F1 .603
-(of a stopped job, in this conte)3.283 F .603
-(xt, is the command line used to start it, as displayed by)-.15 F F2
-(jobs)3.104 E F1(.)A 1.079(If set to the v)144 506.4 R(alue)-.25 E F0
--.2(ex)3.579 G(act).2 E F1 3.579(,t).68 G 1.079(he w)-3.579 F 1.078
-(ord must match the name of a stopped job e)-.1 F 1.078
-(xactly; if set to)-.15 F F0(sub-)3.918 E(string)144 518.4 Q F1 2.571
-(,t).22 G .071(he w)-2.571 F .072
-(ord needs to match a substring of the name of a stopped job)-.1 F 5.072
-(.T)-.4 G(he)-5.072 E F0(substring)2.912 E F1 -.25(va)2.792 G .072
-(lue pro-).25 F .576(vides functionality analogous to the)144 530.4 R F2
-(%?)3.076 E F1 .576(job identi\214er \(see)5.576 F F3 .576(JOB CONTR)
-3.076 F(OL)-.27 E F1(belo)2.826 E 3.076(w\). If)-.25 F .576(set to an)
-3.076 F(y)-.15 E .842(other v)144 542.4 R .842(alue \(e.g.,)-.25 F F0
-(pr)4.592 E(e\214x)-.37 E F1 .842(\), the w).53 F .842
-(ord must be a pre\214x of a stopped job')-.1 F 3.343(sn)-.55 G .843
-(ame; this pro)-3.343 F .843(vides func-)-.15 F
-(tionality analogous to the)144 554.4 Q F2(%)2.5 E F0(string)A F1
-(job identi\214er)2.5 E(.)-.55 E F2(histchars)108 566.4 Q F1 .673
-(The tw)144 578.4 R 3.173(oo)-.1 G 3.173(rt)-3.173 G .673
-(hree characters which control history e)-3.173 F .672
-(xpansion, quick substitution, and tok)-.15 F(enization)-.1 E(\(see)144
-590.4 Q F3(HIST)4.065 E(OR)-.162 E 3.815(YE)-.315 G(XP)-3.815 E(ANSION)
--.666 E F1(belo)3.815 E 4.065(w\). The)-.25 F 1.565
-(\214rst character is the)4.065 F F0 1.566(history e)4.066 F(xpansion)
--.2 E F1(character)4.066 E 4.066(,t)-.4 G(he)-4.066 E .571
-(character which be)144 602.4 R .571(gins a history e)-.15 F .571
-(xpansion, normally \231)-.15 F F2(!)A F1 3.071(\232. The)B .57
-(second character is the)3.071 F F0(quic)3.07 E 3.07(ks)-.2 G(ub-)-3.07
-E(stitution)144 614.4 Q F1(character)2.784 E 2.784(,n)-.4 G .284
-(ormally \231)-2.784 F F2<00>A F1 2.784(\232. When)B .285
-(it appears as the \214rst character on the line, history substi-)2.784
-F .016(tution repeats the pre)144 626.4 R .015
-(vious command, replacing one string with another)-.25 F 5.015(.T)-.55 G
-.015(he optional third charac-)-5.015 F .543(ter is the)144 638.4 R F0
-.543(history comment)3.043 F F1(character)3.043 E 5.543(,n)-.4 G .543
-(ormally \231)-5.543 F F2(#)A F1 .544
-(\232, which indicates that the remainder of the line)B .25
-(is a comment when it appears as the \214rst character of a w)144 650.4
-R 2.75(ord. The)-.1 F .25(history comment character dis-)2.75 F 1.094
-(ables history substitution for the remaining w)144 662.4 R 1.095
-(ords on the line.)-.1 F 1.095(It does not necessarily cause the)6.095 F
-(shell parser to treat the rest of the line as a comment.)144 674.4 Q F2
-(Arrays)87 691.2 Q(Bash)108 703.2 Q F1(pro)3.391 E .891
-(vides one-dimensional inde)-.15 F -.15(xe)-.15 G 3.391(da).15 G .891
-(nd associati)-3.391 F 1.191 -.15(ve a)-.25 H .891(rray v).15 F 3.391
-(ariables. An)-.25 F 3.391(yv)-.15 G .89(ariable may be used as an)
--3.641 F(inde)108 715.2 Q -.15(xe)-.15 G 2.697(da).15 G .197(rray; the)
--2.697 F F2(declar)2.697 E(e)-.18 E F1 -.2(bu)2.697 G .197(iltin e).2 F
-.197(xplicitly declares an array)-.15 F 5.197(.T)-.65 G .197
-(here is no maximum limit on the size of an)-5.197 F(array)108 727.2 Q
-5.683(,n)-.65 G 3.183(or an)-5.683 F 5.683(yr)-.15 G 3.182
-(equirement that members be inde)-5.683 F -.15(xe)-.15 G 5.682(do).15 G
-5.682(ra)-5.682 G 3.182(ssigned contiguously)-5.682 F 8.182(.I)-.65 G
-(nde)-8.182 E -.15(xe)-.15 G 5.682(da).15 G 3.182(rrays are)-5.682 F
-(GNU Bash 5.3)72 768 Q(2025 April 7)149.285 E(21)198.445 E 0 Cg EP
+(onds if a complete line of input does not arri)144 674.4 Q -.15(ve)-.25
+G(.).15 E F2(TMPDIR)108 686.4 Q F1 .39(If set,)144 698.4 R F2(bash)2.89
+E F1 .39(uses its v)2.89 F .39(alue as the name of a directory in which)
+-.25 F F2(bash)2.891 E F1 .391(creates temporary \214les for the)2.891 F
+(shell')144 710.4 Q 2.5(su)-.55 G(se.)-2.5 E(GNU Bash 5.3)72 768 Q
+(2026 January 14)141.79 E(21)190.95 E 0 Cg EP
%%Page: 22 22
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E .734(referenced using arithmetic e)108 84 R .734
-(xpressions that must e)-.15 F .735(xpand to an inte)-.15 F .735
-(ger \(see)-.15 F/F2 9/Times-Bold@0 SF .735(ARITHMETIC EV)3.235 F(ALU)
--1.215 E -.855(AT)-.54 G(ION).855 E F1(belo)108 96 Q 2.13
-(w\) and are zero-based; associati)-.25 F 2.43 -.15(ve a)-.25 H 2.13
-(rrays are referenced using arbitrary strings.).15 F 2.13
-(Unless otherwise)7.13 F(noted, inde)108 108 Q -.15(xe)-.15 G 2.5(da).15
-G(rray indices must be non-ne)-2.5 E -.05(ga)-.15 G(ti).05 E .3 -.15
+.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(auto_r)108 84 Q(esume)-.18 E
+F1 .531(This v)144 96 R .531(ariable controls ho)-.25 F 3.031(wt)-.25 G
+.531(he shell interacts with the user and job control.)-3.031 F .53
+(If this v)5.53 F .53(ariable is set,)-.25 F .409
+(simple commands consisting of only a single w)144 108 R .409
+(ord, without redirections, are treated as candidates)-.1 F 1.018
+(for resumption of an e)144 120 R 1.018(xisting stopped job)-.15 F 6.018
+(.T)-.4 G 1.017(here is no ambiguity allo)-6.018 F 1.017
+(wed; if there is more than)-.25 F 1.002(one job be)144 132 R 1.002
+(ginning with or containing the w)-.15 F 1.002
+(ord, this selects the most recently accessed job)-.1 F 6.002(.T)-.4 G
+(he)-6.002 E F0(name)144.36 144 Q F1 .603
+(of a stopped job, in this conte)3.284 F .603
+(xt, is the command line used to start it, as displayed by)-.15 F F2
+(jobs)3.103 E F1(.)A 1.078(If set to the v)144 156 R(alue)-.25 E F0 -.2
+(ex)3.578 G(act).2 E F1 3.578(,t).68 G 1.078(he w)-3.578 F 1.079
+(ord must match the name of a stopped job e)-.1 F 1.079
+(xactly; if set to)-.15 F F0(sub-)3.919 E(string)144 168 Q F1 2.572(,t)
+.22 G .072(he w)-2.572 F .072
+(ord needs to match a substring of the name of a stopped job)-.1 F 5.071
+(.T)-.4 G(he)-5.071 E F0(substring)2.911 E F1 -.25(va)2.791 G .071
+(lue pro-).25 F .576(vides functionality analogous to the)144 180 R F2
+(%?)3.076 E F1 .576(job identi\214er \(see)5.576 F/F3 9/Times-Bold@0 SF
+.576(JOB CONTR)3.076 F(OL)-.27 E F1(belo)2.826 E 3.076(w\). If)-.25 F
+.576(set to an)3.076 F(y)-.15 E .843(other v)144 192 R .843
+(alue \(e.g.,)-.25 F F0(pr)4.593 E(e\214x)-.37 E F1 .843(\), the w).53 F
+.842(ord must be a pre\214x of a stopped job')-.1 F 3.342(sn)-.55 G .842
+(ame; this pro)-3.342 F .842(vides func-)-.15 F
+(tionality analogous to the)144 204 Q F2(%)2.5 E F0(string)A F1
+(job identi\214er)2.5 E(.)-.55 E F2(histchars)108 216 Q F1 .672(The tw)
+144 228 R 3.172(oo)-.1 G 3.172(rt)-3.172 G .672
+(hree characters which control history e)-3.172 F .673
+(xpansion, quick substitution, and tok)-.15 F(enization)-.1 E(\(see)144
+240 Q F3(HIST)4.066 E(OR)-.162 E 3.816(YE)-.315 G(XP)-3.816 E(ANSION)
+-.666 E F1(belo)3.816 E 4.066(w\). The)-.25 F 1.565
+(\214rst character is the)4.065 F F0 1.565(history e)4.065 F(xpansion)
+-.2 E F1(character)4.065 E 4.065(,t)-.4 G(he)-4.065 E .57
+(character which be)144 252 R .57(gins a history e)-.15 F .571
+(xpansion, normally \231)-.15 F F2(!)A F1 3.071(\232. The)B .571
+(second character is the)3.071 F F0(quic)3.071 E 3.071(ks)-.2 G(ub-)
+-3.071 E(stitution)144 264 Q F1(character)2.785 E 2.785(,n)-.4 G .285
+(ormally \231)-2.785 F F2<00>A F1 2.785(\232. When)B .285
+(it appears as the \214rst character on the line, history substi-)2.785
+F .015(tution repeats the pre)144 276 R .015
+(vious command, replacing one string with another)-.25 F 5.016(.T)-.55 G
+.016(he optional third charac-)-5.016 F .544(ter is the)144 288 R F0
+.544(history comment)3.044 F F1(character)3.044 E 5.543(,n)-.4 G .543
+(ormally \231)-5.543 F F2(#)A F1 .543
+(\232, which indicates that the remainder of the line)B .25
+(is a comment when it appears as the \214rst character of a w)144 300 R
+2.75(ord. The)-.1 F .25(history comment character dis-)2.75 F 1.095
+(ables history substitution for the remaining w)144 312 R 1.095
+(ords on the line.)-.1 F 1.094(It does not necessarily cause the)6.095 F
+(shell parser to treat the rest of the line as a comment.)144 324 Q F2
+(Arrays)87 340.8 Q(Bash)108 352.8 Q F1(pro)3.39 E .89
+(vides one-dimensional inde)-.15 F -.15(xe)-.15 G 3.39(da).15 G .891
+(nd associati)-3.39 F 1.191 -.15(ve a)-.25 H .891(rray v).15 F 3.391
+(ariables. An)-.25 F 3.391(yv)-.15 G .891(ariable may be used as an)
+-3.641 F(inde)108 364.8 Q -.15(xe)-.15 G 2.698(da).15 G .198(rray; the)
+-2.698 F F2(declar)2.698 E(e)-.18 E F1 -.2(bu)2.698 G .197(iltin e).2 F
+.197(xplicitly declares an array)-.15 F 5.197(.T)-.65 G .197
+(here is no maximum limit on the size of an)-5.197 F(array)108 376.8 Q
+3.705(,n)-.65 G 1.205(or an)-3.705 F 3.705(yr)-.15 G 1.205
+(equirement that members be inde)-3.705 F -.15(xe)-.15 G 3.705(do).15 G
+3.705(ra)-3.705 G 1.205(ssigned contiguously)-3.705 F 6.205(.I)-.65 G
+(nde)-6.205 E -.15(xe)-.15 G 3.705(da).15 G 1.205(rrays are refer)-3.705
+F(-)-.2 E .975(enced using arithmetic e)108 388.8 R .974
+(xpressions that must e)-.15 F .974(xpand to an inte)-.15 F .974
+(ger \(see)-.15 F F3 .974(ARITHMETIC EV)3.474 F(ALU)-1.215 E -.855(AT)
+-.54 G(ION).855 E F1(be-)3.224 E(lo)108 400.8 Q .598
+(w\) and are zero-based; associati)-.25 F .898 -.15(ve a)-.25 H .599
+(rrays are referenced using arbitrary strings.).15 F .599
+(Unless otherwise noted,)5.599 F(inde)108 412.8 Q -.15(xe)-.15 G 2.5(da)
+.15 G(rray indices must be non-ne)-2.5 E -.05(ga)-.15 G(ti).05 E .3 -.15
(ve i)-.25 H(nte).15 E(gers.)-.15 E 1.652
-(The shell performs parameter and v)108 124.8 R 1.652(ariable e)-.25 F
-1.652(xpansion, arithmetic e)-.15 F 1.652
-(xpansion, command substitution, and)-.15 F .553(quote remo)108 136.8 R
--.25(va)-.15 G 3.053(lo).25 G 3.053(ni)-3.053 G(nde)-3.053 E -.15(xe)
--.15 G 3.053(da).15 G .553(rray subscripts.)-3.053 F .552
+(The shell performs parameter and v)108 429.6 R 1.652(ariable e)-.25 F
+1.652(xpansion, arithmetic e)-.15 F 1.651
+(xpansion, command substitution, and)-.15 F .552(quote remo)108 441.6 R
+-.25(va)-.15 G 3.052(lo).25 G 3.052(ni)-3.052 G(nde)-3.052 E -.15(xe)
+-.15 G 3.052(da).15 G .552(rray subscripts.)-3.052 F .553
(Since this can potentially result in empty strings, subscript in-)5.553
-F(de)108 148.8 Q(xing treats those as e)-.15 E(xpressions that e)-.15 E
--.25(va)-.25 G(luate to 0.).25 E .115(The shell performs tilde e)108
-165.6 R .116(xpansion, parameter and v)-.15 F .116(ariable e)-.25 F .116
-(xpansion, arithmetic e)-.15 F .116(xpansion, command sub-)-.15 F .046
-(stitution, and quote remo)108 177.6 R -.25(va)-.15 G 2.546(lo).25 G
-2.546(na)-2.546 G(ssociati)-2.546 E .345 -.15(ve a)-.25 H .045
-(rray subscripts.).15 F .045(Empty strings cannot be used as associati)
-5.045 F .345 -.15(ve a)-.25 H -.2(r-).15 G(ray k)108 189.6 Q -.15(ey)-.1
-G(s.).15 E/F3 10/Times-Bold@0 SF(Bash)108 206.4 Q F1
-(automatically creates an inde)2.5 E -.15(xe)-.15 G 2.5(da).15 G
-(rray if an)-2.5 E 2.5(yv)-.15 G
-(ariable is assigned to using the syntax)-2.75 E F0(name)144 218.4 Q F1
-([)A F0(subscript)A F1(]=)A F0(value)A F1(.)2.5 E(The)108 230.4 Q F0
-(subscript)3.181 E F1 .341(is treated as an arithmetic e)3.521 F .342
-(xpression that must e)-.15 F -.25(va)-.25 G .342
-(luate to a number greater than or equal to).25 F 2.5(zero. T)108 242.4
+F(de)108 453.6 Q(xing treats those as e)-.15 E(xpressions that e)-.15 E
+-.25(va)-.25 G(luate to 0.).25 E .116(The shell performs tilde e)108
+470.4 R .116(xpansion, parameter and v)-.15 F .116(ariable e)-.25 F .116
+(xpansion, arithmetic e)-.15 F .115(xpansion, command sub-)-.15 F .045
+(stitution, and quote remo)108 482.4 R -.25(va)-.15 G 2.545(lo).25 G
+2.545(na)-2.545 G(ssociati)-2.545 E .345 -.15(ve a)-.25 H .045
+(rray subscripts.).15 F .046(Empty strings cannot be used as associati)
+5.045 F .346 -.15(ve a)-.25 H -.2(r-).15 G(ray k)108 494.4 Q -.15(ey)-.1
+G(s.).15 E F2(Bash)108 511.2 Q F1(automatically creates an inde)2.5 E
+-.15(xe)-.15 G 2.5(da).15 G(rray if an)-2.5 E 2.5(yv)-.15 G
+(ariable is assigned to using the syntax)-2.75 E F0(name)144 523.2 Q F1
+([)A F0(subscript)A F1(]=)A F0(value)A F1(.)2.5 E(The)108 535.2 Q F0
+(subscript)3.182 E F1 .342(is treated as an arithmetic e)3.522 F .342
+(xpression that must e)-.15 F -.25(va)-.25 G .341
+(luate to a number greater than or equal to).25 F 2.5(zero. T)108 547.2
R 2.5(oe)-.8 G(xplicitly declare an inde)-2.65 E -.15(xe)-.15 G 2.5(da)
-.15 G(rray)-2.5 E 2.5(,u)-.65 G(se)-2.5 E F3(declar)144 254.4 Q 2.5
-<65ad>-.18 G(a)-2.5 E F0(name)2.86 E F1(\(see)108 266.4 Q F2(SHELL B)2.5
-E(UIL)-.09 E(TIN COMMANDS)-.828 E F1(belo)2.25 E(w\).)-.25 E F3(declar)
-144 278.4 Q 2.5<65ad>-.18 G(a)-2.5 E F0(name)2.5 E F1([)A F0(subscript)A
-F1(])A(is also accepted; the)108 290.4 Q F0(subscript)2.5 E F1
-(is ignored.)2.5 E(Associati)108 307.2 Q .3 -.15(ve a)-.25 H
-(rrays are created using).15 E F3(declar)144 319.2 Q 2.5<65ad>-.18 G(A)
--2.5 E F0(name)2.86 E F1(.)108 331.2 Q(Attrib)108 348 Q .941
+.15 G(rray)-2.5 E 2.5(,u)-.65 G(se)-2.5 E F2(declar)144 559.2 Q 2.5
+<65ad>-.18 G(a)-2.5 E F0(name)2.86 E F1(\(see)108 571.2 Q F3(SHELL B)2.5
+E(UIL)-.09 E(TIN COMMANDS)-.828 E F1(belo)2.25 E(w\).)-.25 E F2(declar)
+144 583.2 Q 2.5<65ad>-.18 G(a)-2.5 E F0(name)2.5 E F1([)A F0(subscript)A
+F1(])A(is also accepted; the)108 595.2 Q F0(subscript)2.5 E F1
+(is ignored.)2.5 E(Associati)108 612 Q .3 -.15(ve a)-.25 H
+(rrays are created using).15 E F2(declar)144 624 Q 2.5<65ad>-.18 G(A)
+-2.5 E F0(name)2.86 E F1(.)108 636 Q(Attrib)108 652.8 Q .94
(utes may be speci\214ed for an array v)-.2 F .941(ariable using the)
--.25 F F3(declar)3.441 E(e)-.18 E F1(and)3.44 E F3 -.18(re)3.44 G
-(adonly).18 E F1 -.2(bu)3.44 G 3.44(iltins. Each).2 F(attrib)3.44 E(ute)
--.2 E(applies to all members of an array)108 360 Q(.)-.65 E .417
-(Arrays are assigned using compound assignments of the form)108 376.8 R
-F0(name)2.918 E F1(=)A F3(\()A F1 -.25(va)C(lue).25 E F0(1)A F1 -2.914
-1.666(... v)2.918 H(alue)-1.916 E F0(n)A F3(\))A F1 2.918(,w)C .418
-(here each)-2.918 F F0(value)2.918 E F1 .156(may be of the form [)108
-388.8 R F0(subscript)A F1(]=)A F0(string)A F1 5.156(.I)C(nde)-5.156 E
+-.25 F F2(declar)3.441 E(e)-.18 E F1(and)3.441 E F2 -.18(re)3.441 G
+(adonly).18 E F1 -.2(bu)3.441 G 3.441(iltins. Each).2 F(attrib)3.441 E
+(ute)-.2 E(applies to all members of an array)108 664.8 Q(.)-.65 E .418
+(Arrays are assigned using compound assignments of the form)108 681.6 R
+F0(name)2.918 E F1(=)A F2(\()A F1 -.25(va)C(lue).25 E F0(1)A F1 -2.915
+1.666(... v)2.918 H(alue)-1.916 E F0(n)A F2(\))A F1 2.917(,w)C .417
+(here each)-2.917 F F0(value)2.917 E F1 .156(may be of the form [)108
+693.6 R F0(subscript)A F1(]=)A F0(string)A F1 5.156(.I)C(nde)-5.156 E
-.15(xe)-.15 G 2.656(da).15 G .156(rray assignments do not require an)
-2.656 F .156(ything b)-.15 F(ut)-.2 E F0(string)2.656 E F1 5.156(.E)C
-(ach)-5.156 E F0(value)108 400.8 Q F1 .216(in the list is e)2.715 F .216
+(ach)-5.156 E F0(value)108 705.6 Q F1 .216(in the list is e)2.716 F .216
(xpanded using the shell e)-.15 F .216(xpansions described belo)-.15 F
-2.716(wu)-.25 G(nder)-2.716 E F2(EXP)2.716 E(ANSION)-.666 E/F4 9
-/Times-Roman@0 SF(,)A F1 -.2(bu)2.466 G(t).2 E F0(value)2.716 E F1 2.716
-(st)C(hat)-2.716 E 1.326(are v)108 412.8 R 1.326(alid v)-.25 F 1.326
+2.716(wu)-.25 G(nder)-2.716 E F3(EXP)2.716 E(ANSION)-.666 E/F4 9
+/Times-Roman@0 SF(,)A F1 -.2(bu)2.466 G(t).2 E F0(value)2.716 E F1 2.715
+(st)C(hat)-2.715 E 1.325(are v)108 717.6 R 1.325(alid v)-.25 F 1.325
(ariable assignments including the brack)-.25 F 1.326
-(ets and subscript do not under)-.1 F 1.325(go brace e)-.18 F 1.325
-(xpansion and)-.15 F -.1(wo)108 424.8 S(rd splitting, as with indi).1 E
-(vidual v)-.25 E(ariable assignments.)-.25 E .163
-(When assigning to inde)108 441.6 R -.15(xe)-.15 G 2.663(da).15 G .163
-(rrays, if the optional brack)-2.663 F .163
-(ets and subscript are supplied, that inde)-.1 F 2.664(xi)-.15 G 2.664
-(sa)-2.664 G(ssigned)-2.664 E .46(to; otherwise the inde)108 453.6 R
-2.96(xo)-.15 G 2.96(ft)-2.96 G .46(he element assigned is the last inde)
--2.96 F 2.959(xa)-.15 G .459(ssigned to by the statement plus one.)
--2.959 F(In-)5.459 E(de)108 465.6 Q(xing starts at zero.)-.15 E 1.288
-(When assigning to an associati)108 482.4 R 1.588 -.15(ve a)-.25 H(rray)
+(ets and subscript do not under)-.1 F 1.326(go brace e)-.18 F 1.326
+(xpansion and)-.15 F -.1(wo)108 729.6 S(rd splitting, as with indi).1 E
+(vidual v)-.25 E(ariable assignments.)-.25 E(GNU Bash 5.3)72 768 Q
+(2026 January 14)141.79 E(22)190.95 E 0 Cg EP
+%%Page: 23 23
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E .164(When assigning to inde)108 84 R -.15(xe)-.15 G
+2.663(da).15 G .163(rrays, if the optional brack)-2.663 F .163
+(ets and subscript are supplied, that inde)-.1 F 2.663(xi)-.15 G 2.663
+(sa)-2.663 G(ssigned)-2.663 E .459(to; otherwise the inde)108 96 R 2.959
+(xo)-.15 G 2.959(ft)-2.959 G .459(he element assigned is the last inde)
+-2.959 F 2.96(xa)-.15 G .46(ssigned to by the statement plus one.)-2.96
+F(In-)5.46 E(de)108 108 Q(xing starts at zero.)-.15 E 1.288
+(When assigning to an associati)108 124.8 R 1.588 -.15(ve a)-.25 H(rray)
.15 E 3.788(,t)-.65 G 1.288(he w)-3.788 F 1.288
(ords in a compound assignment may be either assignment)-.1 F .608
(statements, for which the subscript is required, or a list of w)108
-494.4 R .608(ords that is interpreted as a sequence of alter)-.1 F(-)-.2
-E 1.734(nating k)108 506.4 R -.15(ey)-.1 G 4.234(sa).15 G 1.734(nd v)
--4.234 F(alues:)-.25 E F0(name)4.234 E F1(=)A F3(\()A F0 -.1(ke)4.234 G
-1.734(y1 value1 k)-.2 F -.3(ey)-.1 G 4.235(2v).3 G(alue2)-4.235 E F1
-1.666(...)4.235 G F3(\))-1.666 E F1 6.735(.T)C 1.735
-(hese are treated identically to)-6.735 F F0(name)4.235 E F1(=)A F3(\()A
-F1([)108 518.4 Q F0 -.1(ke)C(y1)-.2 E F1(]=)A F0(value1)A F1([)2.911 E
-F0 -.1(ke)C(y2)-.2 E F1(]=)A F0(value2)A F1 1.666(...)2.911 G F3(\))
--1.666 E F1 5.411(.T)C .411(he \214rst w)-5.411 F .411
-(ord in the list determines ho)-.1 F 2.91(wt)-.25 G .41(he remaining w)
--2.91 F .41(ords are inter)-.1 F(-)-.2 E .153
-(preted; all assignments in a list must be of the same type.)108 530.4 R
-.154(When using k)5.154 F -.15(ey)-.1 G(/v).15 E .154(alue pairs, the k)
--.25 F -.15(ey)-.1 G 2.654(sm).15 G .154(ay not be)-2.654 F
-(missing or empty; a \214nal missing v)108 542.4 Q(alue is treated lik)
--.25 E 2.5(et)-.1 G(he empty string.)-2.5 E .24
-(This syntax is also accepted by the)108 559.2 R F3(declar)2.74 E(e)-.18
-E F1 -.2(bu)2.739 G 2.739(iltin. Indi).2 F .239
+136.8 R .608(ords that is interpreted as a sequence of alter)-.1 F(-)-.2
+E 1.735(nating k)108 148.8 R -.15(ey)-.1 G 4.235(sa).15 G 1.735(nd v)
+-4.235 F(alues:)-.25 E F0(name)4.235 E F1(=)A/F2 10/Times-Bold@0 SF(\()A
+F0 -.1(ke)4.235 G 1.735(y1 value1 k)-.2 F -.3(ey)-.1 G 4.235(2v).3 G
+(alue2)-4.235 E F1 1.666(...)4.234 G F2(\))-1.666 E F1 6.734(.T)C 1.734
+(hese are treated identically to)-6.734 F F0(name)4.234 E F1(=)A F2(\()A
+F1([)108 160.8 Q F0 -.1(ke)C(y1)-.2 E F1(]=)A F0(value1)A F1([)2.91 E F0
+-.1(ke)C(y2)-.2 E F1(]=)A F0(value2)A F1 1.666(...)2.91 G F2(\))-1.666 E
+F1 5.41(.T)C .41(he \214rst w)-5.41 F .411
+(ord in the list determines ho)-.1 F 2.911(wt)-.25 G .411
+(he remaining w)-2.911 F .411(ords are inter)-.1 F(-)-.2 E .154
+(preted; all assignments in a list must be of the same type.)108 172.8 R
+.153(When using k)5.153 F -.15(ey)-.1 G(/v).15 E .153(alue pairs, the k)
+-.25 F -.15(ey)-.1 G 2.653(sm).15 G .153(ay not be)-2.653 F
+(missing or empty; a \214nal missing v)108 184.8 Q(alue is treated lik)
+-.25 E 2.5(et)-.1 G(he empty string.)-2.5 E .239
+(This syntax is also accepted by the)108 201.6 R F2(declar)2.739 E(e)
+-.18 E F1 -.2(bu)2.739 G 2.739(iltin. Indi).2 F .24
(vidual array elements may be assigned to using the)-.25 F F0(name)108
-571.2 Q F1([)A F0(subscript)A F1(]=)A F0(value)A F1
-(syntax introduced abo)2.5 E -.15(ve)-.15 G(.).15 E .025
-(When assigning to an inde)108 588 R -.15(xe)-.15 G 2.525(da).15 G(rray)
--2.525 E 2.525(,i)-.65 G(f)-2.525 E F0(name)2.885 E F1 .025
-(is subscripted by a ne)2.705 F -.05(ga)-.15 G(ti).05 E .326 -.15(ve n)
--.25 H(umber).15 E 2.526(,t)-.4 G .026(hat number is interpreted)-2.526
-F .317(as relati)108 600 R .617 -.15(ve t)-.25 H 2.817(oo).15 G .317
-(ne greater than the maximum inde)-2.817 F 2.816(xo)-.15 G(f)-2.816 E F0
+213.6 Q F1([)A F0(subscript)A F1(]=)A F0(value)A F1
+(syntax introduced abo)2.5 E -.15(ve)-.15 G(.).15 E .026
+(When assigning to an inde)108 230.4 R -.15(xe)-.15 G 2.526(da).15 G
+(rray)-2.526 E 2.525(,i)-.65 G(f)-2.525 E F0(name)2.885 E F1 .025
+(is subscripted by a ne)2.705 F -.05(ga)-.15 G(ti).05 E .325 -.15(ve n)
+-.25 H(umber).15 E 2.525(,t)-.4 G .025(hat number is interpreted)-2.525
+F .316(as relati)108 242.4 R .616 -.15(ve t)-.25 H 2.816(oo).15 G .316
+(ne greater than the maximum inde)-2.816 F 2.816(xo)-.15 G(f)-2.816 E F0
(name)2.816 E F1 2.816(,s)C 2.816(on)-2.816 G -2.25 -.15(eg a)-2.816 H
-(ti).15 E .616 -.15(ve i)-.25 H .316(ndices count back from the end of)
-.15 F(the array)108 612 Q 2.5(,a)-.65 G(nd an inde)-2.5 E 2.5(xo)-.15 G
-2.5<66ad>-2.5 G 2.5(1r)-2.5 G(eferences the last element.)-2.5 E .051
-(The \231+=\232 operator appends to an array v)108 628.8 R .052
+(ti).15 E .616 -.15(ve i)-.25 H .317(ndices count back from the end of)
+.15 F(the array)108 254.4 Q 2.5(,a)-.65 G(nd an inde)-2.5 E 2.5(xo)-.15
+G 2.5<66ad>-2.5 G 2.5(1r)-2.5 G(eferences the last element.)-2.5 E .052
+(The \231+=\232 operator appends to an array v)108 271.2 R .051
(ariable when assigning using the compound assignment syntax; see)-.25 F
-F2 -.666(PA)108 640.8 S(RAMETERS).666 E F1(abo)2.25 E -.15(ve)-.15 G(.)
-.15 E .684(An array element is referenced using ${)108 657.6 R F0(name)A
-F1([)A F0(subscript)A F1 3.184(]}. The)B .683(braces are required to a)
-3.184 F -.2(vo)-.2 G .683(id con\215icts with).2 F .297(pathname e)108
-669.6 R 2.797(xpansion. If)-.15 F F0(subscript)2.797 E F1(is)2.797 E F3
-(@)2.797 E F1(or)2.797 E F3(*)2.797 E F1 2.797(,t)C .297(he w)-2.797 F
-.297(ord e)-.1 F .297(xpands to all members of)-.15 F F0(name)2.798 E F1
+/F3 9/Times-Bold@0 SF -.666(PA)108 283.2 S(RAMETERS).666 E F1(abo)2.25 E
+-.15(ve)-.15 G(.).15 E .413(If one of the w)108 300 R .413(ord e)-.1 F
+.414(xpansions in a compound array assignment unsets the v)-.15 F .414
+(ariable, the results are unspeci-)-.25 F(\214ed.)108 312 Q .684
+(An array element is referenced using ${)108 328.8 R F0(name)A F1([)A F0
+(subscript)A F1 3.184(]}. The)B .683(braces are required to a)3.184 F
+-.2(vo)-.2 G .683(id con\215icts with).2 F .297(pathname e)108 340.8 R
+2.797(xpansion. If)-.15 F F0(subscript)2.797 E F1(is)2.797 E F2(@)2.797
+E F1(or)2.797 E F2(*)2.797 E F1 2.797(,t)C .297(he w)-2.797 F .297
+(ord e)-.1 F .297(xpands to all members of)-.15 F F0(name)2.798 E F1
2.798(,u)C .298(nless noted in the)-2.798 F .145(description of a b)108
-681.6 R .145(uiltin or w)-.2 F .145(ord e)-.1 F 2.644(xpansion. These)
+352.8 R .145(uiltin or w)-.2 F .145(ord e)-.1 F 2.644(xpansion. These)
-.15 F .144(subscripts dif)2.644 F .144(fer only when the w)-.25 F .144
-(ord appears within dou-)-.1 F .094(ble quotes.)108 693.6 R .094
+(ord appears within dou-)-.1 F .094(ble quotes.)108 364.8 R .094
(If the w)5.094 F .094(ord is double-quoted, ${)-.1 F F0(name)A F1 .094
([*]} e)B .094(xpands to a single w)-.15 F .095(ord with the v)-.1 F
.095(alue of each array)-.25 F .257
-(member separated by the \214rst character of the)108 705.6 R F2(IFS)
+(member separated by the \214rst character of the)108 376.8 R F3(IFS)
2.756 E F1 .256(special v)2.506 F .256(ariable, and ${)-.25 F F0(name)A
-F1 .256([@]} e)B .256(xpands each element)-.15 F(of)108 717.6 Q F0(name)
+F1 .256([@]} e)B .256(xpands each element)-.15 F(of)108 388.8 Q F0(name)
3.46 E F1 .96(to a separate w)3.46 F 3.46(ord. When)-.1 F .961
(there are no array members, ${)3.46 F F0(name)A F1 .961([@]} e)B .961
-(xpands to nothing.)-.15 F .961(If the)5.961 F 1.794(double-quoted e)108
-729.6 R 1.794(xpansion occurs within a w)-.15 F 1.793(ord, the e)-.1 F
-1.793(xpansion of the \214rst parameter is joined with the)-.15 F
-(GNU Bash 5.3)72 768 Q(2025 April 7)149.285 E(22)198.445 E 0 Cg EP
-%%Page: 23 23
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E(be)108 84 Q .283(ginning part of the e)-.15 F .284
-(xpansion of the original w)-.15 F .284(ord, and the e)-.1 F .284
+(xpands to nothing.)-.15 F .961(If the)5.961 F .727(double-quoted e)108
+400.8 R .727(xpansion occurs within a w)-.15 F .727(ord, the e)-.1 F
+.727(xpansion of the \214rst parameter is joined with the be-)-.15 F .8
+(ginning part of the e)108 412.8 R .8(xpansion of the original w)-.15 F
+.8(ord, and the e)-.1 F .8
(xpansion of the last parameter is joined with)-.15 F .554
-(the last part of the e)108 96 R .554(xpansion of the original w)-.15 F
-3.054(ord. This)-.1 F .554(is analogous to the e)3.054 F .553
-(xpansion of the special para-)-.15 F(meters)108 108 Q/F2 10
-/Times-Bold@0 SF(*)2.5 E F1(and)2.5 E F2(@)2.5 E F1(\(see)2.5 E F2
-(Special P)2.5 E(arameters)-.1 E F1(abo)2.5 E -.15(ve)-.15 G(\).).15 E
-(${#)108 124.8 Q F0(name)A F1([)A F0(subscript)A F1 .33(]} e)B .33
-(xpands to the length of ${)-.15 F F0(name)A F1([)A F0(subscript)A F1
-2.83(]}. If)B F0(subscript)2.83 E F1(is)2.83 E F2(*)2.83 E F1(or)2.83 E
-F2(@)2.83 E F1 2.83(,t)C .33(he e)-2.83 F .33(xpansion is)-.15 F
-(the number of elements in the array)108 136.8 Q(.)-.65 E .386(If the)
-108 153.6 R F0(subscript)3.226 E F1 .386
+(the last part of the e)108 424.8 R .554(xpansion of the original w)-.15
+F 3.054(ord. This)-.1 F .554(is analogous to the e)3.054 F .553
+(xpansion of the special para-)-.15 F(meters)108 436.8 Q F2(*)2.5 E F1
+(and)2.5 E F2(@)2.5 E F1(\(see)2.5 E F2(Special P)2.5 E(arameters)-.1 E
+F1(abo)2.5 E -.15(ve)-.15 G(\).).15 E(${#)108 453.6 Q F0(name)A F1([)A
+F0(subscript)A F1 .33(]} e)B .33(xpands to the length of ${)-.15 F F0
+(name)A F1([)A F0(subscript)A F1 2.83(]}. If)B F0(subscript)2.83 E F1
+(is)2.83 E F2(*)2.83 E F1(or)2.83 E F2(@)2.83 E F1 2.83(,t)C .33(he e)
+-2.83 F .33(xpansion is)-.15 F(the number of elements in the array)108
+465.6 Q(.)-.65 E .386(If the)108 482.4 R F0(subscript)3.226 E F1 .386
(used to reference an element of an inde)3.566 F -.15(xe)-.15 G 2.886
(da).15 G .386(rray e)-2.886 F -.25(va)-.25 G .386
(luates to a number less than zero, it is).25 F .686
-(interpreted as relati)108 165.6 R .986 -.15(ve t)-.25 H 3.186(oo).15 G
+(interpreted as relati)108 494.4 R .986 -.15(ve t)-.25 H 3.186(oo).15 G
.686(ne greater than the maximum inde)-3.186 F 3.187(xo)-.15 G 3.187(ft)
-3.187 G .687(he array)-3.187 F 3.187(,s)-.65 G 3.187(on)-3.187 G -2.25
-.15(eg a)-3.187 H(ti).15 E .987 -.15(ve i)-.25 H .687
-(ndices count back).15 F(from the end of the array)108 177.6 Q 2.5(,a)
+(ndices count back).15 F(from the end of the array)108 506.4 Q 2.5(,a)
-.65 G(nd an inde)-2.5 E 2.5(xo)-.15 G 2.5<66ad>-2.5 G 2.5(1r)-2.5 G
(eferences the last element.)-2.5 E .595(Referencing an array v)108
-194.4 R .595(ariable without a subscript is equi)-.25 F -.25(va)-.25 G
+523.2 R .595(ariable without a subscript is equi)-.25 F -.25(va)-.25 G
.595(lent to referencing the array with a subscript of).25 F 2.5(0. An)
-108 206.4 R 2.5(yr)-.15 G(eference to a v)-2.5 E(ariable using a v)-.25
+108 535.2 R 2.5(yr)-.15 G(eference to a v)-2.5 E(ariable using a v)-.25
E(alid subscript is v)-.25 E(alid;)-.25 E F2(bash)2.5 E F1
-(creates an array if necessary)2.5 E(.)-.65 E(An array v)108 223.2 Q
+(creates an array if necessary)2.5 E(.)-.65 E(An array v)108 552 Q
(ariable is considered set if a subscript has been assigned a v)-.25 E
2.5(alue. The)-.25 F(null string is a v)2.5 E(alid v)-.25 E(alue.)-.25 E
-.417(It is possible to obtain the k)108 240 R -.15(ey)-.1 G 2.918(s\()
+.417(It is possible to obtain the k)108 568.8 R -.15(ey)-.1 G 2.918(s\()
.15 G .418(indices\) of an array as well as the v)-2.918 F 2.918
(alues. ${)-.25 F F2(!)A F0(name)A F1([)A F0(@)A F1 .418(]} and ${)B F2
-(!)A F0(name)A F1([)A F0(*)A F1(]})A -.15(ex)108 252 S .75
+(!)A F0(name)A F1([)A F0(*)A F1(]})A -.15(ex)108 580.8 S .75
(pand to the indices assigned in array v).15 F(ariable)-.25 E F0(name)
3.249 E F1 5.749(.T)C .749
-(he treatment when in double quotes is similar to)-5.749 F(the e)108 264
-Q(xpansion of the special parameters)-.15 E F0(@)2.5 E F1(and)2.5 E F0
-(*)2.5 E F1(within double quotes.)2.5 E(The)108 280.8 Q F2(unset)3.281 E
-F1 -.2(bu)3.281 G .781(iltin is used to destro).2 F 3.281(ya)-.1 G
-(rrays.)-3.281 E F2(unset)5.781 E F0(name)3.281 E F1([)A F0(subscript)A
+(he treatment when in double quotes is similar to)-5.749 F(the e)108
+592.8 Q(xpansion of the special parameters)-.15 E F0(@)2.5 E F1(and)2.5
+E F0(*)2.5 E F1(within double quotes.)2.5 E(The)108 609.6 Q F2(unset)
+3.281 E F1 -.2(bu)3.281 G .781(iltin is used to destro).2 F 3.281(ya)-.1
+G(rrays.)-3.281 E F2(unset)5.781 E F0(name)3.281 E F1([)A F0(subscript)A
F1 3.281(]u)C .782(nsets the array element at inde)-3.281 F(x)-.15 E F0
-(sub-)3.282 E(script)108 292.8 Q F1 2.858(,f)C .358(or both inde)-2.858
+(sub-)3.282 E(script)108 621.6 Q F1 2.858(,f)C .358(or both inde)-2.858
F -.15(xe)-.15 G 2.858(da).15 G .358(nd associati)-2.858 F .658 -.15
(ve a)-.25 H 2.858(rrays. Ne).15 F -.05(ga)-.15 G(ti).05 E .658 -.15
(ve s)-.25 H .358(ubscripts to inde).15 F -.15(xe)-.15 G 2.858(da).15 G
-.358(rrays are interpreted as de-)-2.858 F 1.204(scribed abo)108 304.8 R
+.358(rrays are interpreted as de-)-2.858 F 1.204(scribed abo)108 633.6 R
-.15(ve)-.15 G 6.204(.U).15 G 1.204
(nsetting the last element of an array v)-6.204 F 1.205
(ariable does not unset the v)-.25 F(ariable.)-.25 E F2(unset)6.205 E F0
-(name)3.705 E F1(,)A(where)108 316.8 Q F0(name)2.908 E F1 .407
+(name)3.705 E F1(,)A(where)108 645.6 Q F0(name)2.908 E F1 .407
(is an array)2.908 F 2.907(,r)-.65 G(emo)-2.907 E -.15(ve)-.15 G 2.907
(st).15 G .407(he entire array)-2.907 F(.)-.65 E F2(unset)5.407 E F0
(name)2.907 E F1([)A F0(subscript)A F1 2.907(]b)C(eha)-2.907 E -.15(ve)
-.2 G 2.907(sd).15 G(if)-2.907 E .407(ferently depending on)-.25 F
-(whether)108 328.8 Q F0(name)2.914 E F1 .414(is an inde)2.914 F -.15(xe)
+(whether)108 657.6 Q F0(name)2.914 E F1 .414(is an inde)2.914 F -.15(xe)
-.15 G 2.914(do).15 G 2.915(ra)-2.914 G(ssociati)-2.915 E .715 -.15
(ve a)-.25 H .415(rray when).15 F F0(subscript)2.915 E F1(is)2.915 E F2
(*)2.915 E F1(or)2.915 E F2(@)2.915 E F1 5.415(.I)C(f)-5.415 E F0(name)
2.915 E F1 .415(is an associati)2.915 F .715 -.15(ve a)-.25 H(rray).15 E
-(,)-.65 E .937(this unsets the element with subscript)108 340.8 R F2(*)
+(,)-.65 E .937(this unsets the element with subscript)108 669.6 R F2(*)
3.437 E F1(or)3.437 E F2(@)3.437 E F1 5.937(.I)C(f)-5.937 E F0(name)
3.437 E F1 .937(is an inde)3.437 F -.15(xe)-.15 G 3.437(da).15 G(rray)
-3.437 E 3.437(,u)-.65 G .937(nset remo)-3.437 F -.15(ve)-.15 G 3.437
-(sa).15 G .937(ll of the ele-)-3.437 F(ments b)108 352.8 Q
+(sa).15 G .937(ll of the ele-)-3.437 F(ments b)108 681.6 Q
(ut does not remo)-.2 E .3 -.15(ve t)-.15 H(he array itself.).15 E .028
-(When using a v)108 369.6 R .028(ariable name with a subscript as an ar)
+(When using a v)108 698.4 R .028(ariable name with a subscript as an ar)
-.25 F .029(gument to a command, such as with)-.18 F F2(unset)2.529 E F1
-2.529(,w)C .029(ithout us-)-2.529 F .515(ing the w)108 381.6 R .515
+2.529(,w)C .029(ithout us-)-2.529 F .515(ing the w)108 710.4 R .515
(ord e)-.1 F .515(xpansion syntax described abo)-.15 F -.15(ve)-.15 G
3.015(,\().15 G .515(e.g., unset a[4]\), the ar)-3.015 F .515
(gument is subject to pathname e)-.18 F(x-)-.15 E 2.5(pansion. Quote)108
-393.6 R(the ar)2.5 E(gument if pathname e)-.18 E
-(xpansion is not desired \(e.g., unset \010a[4]\010\).)-.15 E(The)108
-410.4 Q F2(declar)2.683 E(e)-.18 E F1(,)A F2(local)2.683 E F1 2.683(,a)C
-(nd)-2.683 E F2 -.18(re)2.683 G(adonly).18 E F1 -.2(bu)2.683 G .184
-(iltins each accept a).2 F F2<ad61>2.684 E F1 .184
-(option to specify an inde)2.684 F -.15(xe)-.15 G 2.684(da).15 G .184
-(rray and a)-2.684 F F2<ad41>2.684 E F1(op-)2.684 E .042
-(tion to specify an associati)108 422.4 R .341 -.15(ve a)-.25 H(rray).15
-E 5.041(.I)-.65 G 2.541(fb)-5.041 G .041(oth options are supplied,)
+722.4 R(the ar)2.5 E(gument if pathname e)-.18 E
+(xpansion is not desired \(e.g., unset \010a[4]\010\).)-.15 E
+(GNU Bash 5.3)72 768 Q(2026 January 14)141.79 E(23)190.95 E 0 Cg EP
+%%Page: 24 24
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E(The)108 84 Q/F2 10/Times-Bold@0 SF(declar)2.683 E
+(e)-.18 E F1(,)A F2(local)2.683 E F1 2.683(,a)C(nd)-2.683 E F2 -.18(re)
+2.683 G(adonly).18 E F1 -.2(bu)2.683 G .184(iltins each accept a).2 F F2
+<ad61>2.684 E F1 .184(option to specify an inde)2.684 F -.15(xe)-.15 G
+2.684(da).15 G .184(rray and a)-2.684 F F2<ad41>2.684 E F1(op-)2.684 E
+.042(tion to specify an associati)108 96 R .341 -.15(ve a)-.25 H(rray)
+.15 E 5.041(.I)-.65 G 2.541(fb)-5.041 G .041(oth options are supplied,)
-2.541 F F2<ad41>2.541 E F1(tak)2.541 E .041(es precedence.)-.1 F(The)
5.041 E F2 -.18(re)2.541 G(ad).18 E F1 -.2(bu)2.541 G .041(iltin ac-).2
-F .863(cepts a)108 434.4 R F2<ad61>3.363 E F1 .864
+F .863(cepts a)108 108 R F2<ad61>3.363 E F1 .864
(option to assign a list of w)3.363 F .864
(ords read from the standard input to an array)-.1 F 5.864(.T)-.65 G(he)
-5.864 E F2(set)3.364 E F1(and)3.364 E F2(declar)3.364 E(e)-.18 E F1 -.2
-(bu)108 446.4 S .686(iltins display array v).2 F .686(alues in a w)-.25
-F .686(ay that allo)-.1 F .686(ws them to be reused as assignments.)-.25
-F .685(Other b)5.686 F .685(uiltins accept)-.2 F .732(array name ar)108
-458.4 R .732(guments as well \(e.g.,)-.18 F F2(map\214le)3.233 E F1 .733
+(bu)108 120 S .686(iltins display array v).2 F .686(alues in a w)-.25 F
+.686(ay that allo)-.1 F .686(ws them to be reused as assignments.)-.25 F
+.685(Other b)5.686 F .685(uiltins accept)-.2 F .732(array name ar)108
+132 R .732(guments as well \(e.g.,)-.18 F F2(map\214le)3.233 E F1 .733
(\); see the descriptions of indi)B .733(vidual b)-.25 F .733
(uiltins belo)-.2 F 3.233(wf)-.25 G .733(or details.)-3.233 F
-(The shell pro)108 470.4 Q(vides a number of b)-.15 E(uiltin array v)-.2
-E(ariables.)-.25 E/F3 10.95/Times-Bold@0 SF(EXP)72 487.2 Q(ANSION)-.81 E
+(The shell pro)108 144 Q(vides a number of b)-.15 E(uiltin array v)-.2 E
+(ariables.)-.25 E/F3 10.95/Times-Bold@0 SF(EXP)72 160.8 Q(ANSION)-.81 E
F1 .764(Expansion is performed on the command line after it has been sp\
-lit into w)108 499.2 R 3.264(ords. The)-.1 F .764(shell performs these)
-3.264 F -.15(ex)108 511.2 S(pansions:).15 E F0(br)3.797 E 1.027(ace e)
+lit into w)108 172.8 R 3.264(ords. The)-.1 F .764(shell performs these)
+3.264 F -.15(ex)108 184.8 S(pansions:).15 E F0(br)3.797 E 1.027(ace e)
-.15 F(xpansion)-.2 E F1(,).24 E F0 1.027(tilde e)3.657 F(xpansion)-.2 E
F1(,).24 E F0(par)4.777 E 1.027(ameter and variable e)-.15 F(xpansion)
-.2 E F1(,).24 E F0 1.027(command substitution)3.727 F F1(,).24 E F0
-(arithmetic e)108.33 523.2 Q(xpansion)-.2 E F1(,).24 E F0(wor)2.84 E 2.5
+(arithmetic e)108.33 196.8 Q(xpansion)-.2 E F1(,).24 E F0(wor)2.84 E 2.5
(ds)-.37 G(plitting)-2.5 E F1(,).22 E F0(pathname e)3.75 E(xpansion)-.2
E F1 2.5(,a).24 G(nd)-2.5 E F0(quote r)2.75 E(emo)-.37 E(val)-.1 E F1(.)
-.51 E .419(The order of e)108 540 R .419(xpansions is: brace e)-.15 F
+.51 E .419(The order of e)108 213.6 R .419(xpansions is: brace e)-.15 F
.418(xpansion; tilde e)-.15 F .418(xpansion, parameter and v)-.15 F .418
-(ariable e)-.25 F .418(xpansion, arithmetic)-.15 F -.15(ex)108 552 S .28
-(pansion, and command substitution \(done in a left-to-right f).15 F .28
-(ashion\); w)-.1 F .28(ord splitting; pathname e)-.1 F(xpansion;)-.15 E
-(and quote remo)108 564 Q -.25(va)-.15 G(l.).25 E .257
-(On systems that can support it, there is an additional e)108 580.8 R
+(ariable e)-.25 F .418(xpansion, arithmetic)-.15 F -.15(ex)108 225.6 S
+.28(pansion, and command substitution \(done in a left-to-right f).15 F
+.28(ashion\); w)-.1 F .28(ord splitting; pathname e)-.1 F(xpansion;)-.15
+E(and quote remo)108 237.6 Q -.25(va)-.15 G(l.).25 E .257
+(On systems that can support it, there is an additional e)108 254.4 R
.257(xpansion a)-.15 F -.25(va)-.2 G(ilable:).25 E F0(pr)2.757 E .257
(ocess substitution)-.45 F F1 5.257(.T)C .256(his is per)-5.257 F(-)-.2
-E(formed at the same time as tilde, parameter)108 592.8 Q 2.5(,v)-.4 G
+E(formed at the same time as tilde, parameter)108 266.4 Q 2.5(,v)-.4 G
(ariable, and arithmetic e)-2.75 E(xpansion and command substitution.)
--.15 E F0 .249(Quote r)108 609.6 R(emo)-.37 E(val)-.1 E F1 .249(is al)
+-.15 E F0 .249(Quote r)108 283.2 R(emo)-.37 E(val)-.1 E F1 .249(is al)
2.749 F -.1(wa)-.1 G .249(ys performed last.).1 F .249(It remo)5.249 F
-.15(ve)-.15 G 2.749(sq).15 G .25
(uote characters present in the original w)-2.749 F .25(ord, not ones)
--.1 F(resulting from one of the other e)108 621.6 Q
+-.1 F(resulting from one of the other e)108 295.2 Q
(xpansions, unless the)-.15 E 2.5(yh)-.15 G -2.25 -.2(av e)-2.5 H
-(been quoted themselv)2.7 E(es.)-.15 E .172(Only brace e)108 638.4 R
-.172(xpansion, w)-.15 F .171(ord splitting, and pathname e)-.1 F .171
+(been quoted themselv)2.7 E(es.)-.15 E .172(Only brace e)108 312 R .172
+(xpansion, w)-.15 F .171(ord splitting, and pathname e)-.1 F .171
(xpansion can increase the number of w)-.15 F .171(ords of the e)-.1 F
-(x-)-.15 E .776(pansion; other e)108 650.4 R .776(xpansions e)-.15 F
-.776(xpand a single w)-.15 F .776(ord to a single w)-.1 F 3.276
-(ord. The)-.1 F .776(only e)3.276 F .776(xceptions to this are the e)
--.15 F(x-)-.15 E .329(pansions of)108 662.4 R F2("$@")2.829 E F1(and)
-2.829 E F2("${)2.829 E F0(name)A F2([@]}")A F1 2.828(,a)C .328
-(nd, in most cases,)-2.828 F F2($*)2.828 E F1(and)2.828 E F2(${)2.828 E
-F0(name)A F2([*]})A F1 .328(as e)2.828 F .328(xplained abo)-.15 F .628
--.15(ve \()-.15 H(see).15 E/F4 9/Times-Bold@0 SF -.666(PA)2.828 G(-).666
-E(RAMETERS)108 674.4 Q/F5 9/Times-Roman@0 SF(\).)A F2(Brace Expansion)87
-691.2 Q F0(Br)108.58 703.2 Q .306(ace e)-.15 F(xpansion)-.2 E F1 .307(i\
-s a mechanism to generate arbitrary strings sharing a common pre\214x a\
-nd suf)3.046 F .307(\214x, either of)-.25 F .578(which can be empty)108
-715.2 R 5.578(.T)-.65 G .577(his mechanism is similar to)-5.578 F F0
-.577(pathname e)3.077 F(xpansion)-.2 E F1 3.077(,b)C .577
-(ut the \214lenames generated need)-3.277 F .265(not e)108 727.2 R 2.765
+(x-)-.15 E .776(pansion; other e)108 324 R .776(xpansions e)-.15 F .776
+(xpand a single w)-.15 F .776(ord to a single w)-.1 F 3.276(ord. The)-.1
+F .776(only e)3.276 F .776(xceptions to this are the e)-.15 F(x-)-.15 E
+.329(pansions of)108 336 R F2("$@")2.829 E F1(and)2.829 E F2("${)2.829 E
+F0(name)A F2([@]}")A F1 2.828(,a)C .328(nd, in most cases,)-2.828 F F2
+($*)2.828 E F1(and)2.828 E F2(${)2.828 E F0(name)A F2([*]})A F1 .328
+(as e)2.828 F .328(xplained abo)-.15 F .628 -.15(ve \()-.15 H(see).15 E
+/F4 9/Times-Bold@0 SF -.666(PA)2.828 G(-).666 E(RAMETERS)108 348 Q/F5 9
+/Times-Roman@0 SF(\).)A F2(Brace Expansion)87 364.8 Q F0(Br)108.58 376.8
+Q .306(ace e)-.15 F(xpansion)-.2 E F1 .307(is a mechanism to generate a\
+rbitrary strings sharing a common pre\214x and suf)3.046 F .307
+(\214x, either of)-.25 F .578(which can be empty)108 388.8 R 5.578(.T)
+-.65 G .577(his mechanism is similar to)-5.578 F F0 .577(pathname e)
+3.077 F(xpansion)-.2 E F1 3.077(,b)C .577
+(ut the \214lenames generated need)-3.277 F .265(not e)108 400.8 R 2.765
(xist. P)-.15 F .265(atterns to be brace e)-.15 F .265
(xpanded are formed from an optional)-.15 F F0(pr)4.015 E(eamble)-.37 E
-F1 2.766(,f).18 G(ollo)-2.766 E .266(wed by either a series)-.25 F
-(GNU Bash 5.3)72 768 Q(2025 April 7)149.285 E(23)198.445 E 0 Cg EP
-%%Page: 24 24
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E 1.316(of comma-separated strings or a sequence e)
-108 84 R 1.315(xpression between a pair of braces, follo)-.15 F 1.315
-(wed by an optional)-.25 F F0(postscript)109.25 96 Q F1 5.659(.T).68 G
-.659(he preamble is pre\214x)-5.659 F .659(ed to each string contained \
-within the braces, and the postscript is then)-.15 F
-(appended to each resulting string, e)108 108 Q(xpanding left to right.)
--.15 E .473(Brace e)108 124.8 R .473(xpansions may be nested.)-.15 F
-.473(The results of each e)5.473 F .472
+F1 2.766(,f).18 G(ollo)-2.766 E .266(wed by either a series)-.25 F 1.316
+(of comma-separated strings or a sequence e)108 412.8 R 1.315
+(xpression between a pair of braces, follo)-.15 F 1.315
+(wed by an optional)-.25 F F0(postscript)109.25 424.8 Q F1 5.659(.T).68
+G .659(he preamble is pre\214x)-5.659 F .659(ed to each string containe\
+d within the braces, and the postscript is then)-.15 F
+(appended to each resulting string, e)108 436.8 Q
+(xpanding left to right.)-.15 E .473(Brace e)108 453.6 R .473
+(xpansions may be nested.)-.15 F .473(The results of each e)5.473 F .472
(xpanded string are not sorted; brace e)-.15 F .472(xpansion pre-)-.15 F
-(serv)108 136.8 Q(es left to right order)-.15 E 5(.F)-.55 G(or e)-5.15 E
-(xample, a)-.15 E/F2 10/Times-Bold@0 SF({)A F1(d,c,b)A F2(})A F1 2.5(ee)
-C(xpands into \231ade ace abe\232.)-2.65 E 3.612(As)108 153.6 S 1.112
+(serv)108 465.6 Q(es left to right order)-.15 E 5(.F)-.55 G(or e)-5.15 E
+(xample, a)-.15 E F2({)A F1(d,c,b)A F2(})A F1 2.5(ee)C
+(xpands into \231ade ace abe\232.)-2.65 E 3.612(As)108 482.4 S 1.112
(equence e)-3.612 F 1.112(xpression tak)-.15 F 1.112(es the form)-.1 F
F0(x)3.612 E F2(..)A F0(y)A F2([..)A F0(incr)A F2(])A F1 3.612(,w)C
(here)-3.612 E F0(x)3.612 E F1(and)3.612 E F0(y)3.612 E F1 1.113
(are either inte)3.612 F 1.113(gers or single letters, and)-.15 F F0
-(incr)108 165.6 Q F1 2.615(,a)C 2.615(no)-2.615 G .115
+(incr)108 494.4 Q F1 2.615(,a)C 2.615(no)-2.615 G .115
(ptional increment, is an inte)-2.615 F(ger)-.15 E 5.115(.W)-.55 G .115
(hen inte)-5.115 F .115(gers are supplied, the e)-.15 F .115
(xpression e)-.15 F .115(xpands to each num-)-.15 F 1.105(ber between)
-108 177.6 R F0(x)3.605 E F1(and)3.605 E F0(y)3.605 E F1 3.605(,i)C
+108 506.4 R F0(x)3.605 E F1(and)3.605 E F0(y)3.605 E F1 3.605(,i)C
(nclusi)-3.605 E -.15(ve)-.25 G 6.105(.I).15 G 3.605(fe)-6.105 G(ither)
-3.605 E F0(x)3.605 E F1(or)3.605 E F0(y)3.605 E F1(be)3.606 E 1.106
(gins with a zero, each generated term will contain the)-.15 F .02
-(same number of digits, zero-padding where necessary)108 189.6 R 5.019
+(same number of digits, zero-padding where necessary)108 518.4 R 5.019
(.W)-.65 G .019(hen letters are supplied, the e)-5.019 F .019
(xpression e)-.15 F .019(xpands to)-.15 F .054(each character le)108
-201.6 R .054(xicographically between)-.15 F F0(x)2.554 E F1(and)2.554 E
+530.4 R .054(xicographically between)-.15 F F0(x)2.554 E F1(and)2.554 E
F0(y)2.554 E F1 2.554(,i)C(nclusi)-2.554 E -.15(ve)-.25 G 2.554(,u).15 G
.054(sing the C locale.)-2.554 F .055(Note that both)5.055 F F0(x)2.555
E F1(and)2.555 E F0(y)2.555 E F1(must)2.555 E .249
-(be of the same type \(inte)108 213.6 R .249(ger or letter\).)-.15 F
+(be of the same type \(inte)108 542.4 R .249(ger or letter\).)-.15 F
.248(When the increment is supplied, it is used as the dif)5.249 F .248
-(ference between)-.25 F(each term.)108 225.6 Q(The def)5 E
+(ference between)-.25 F(each term.)108 554.4 Q(The def)5 E
(ault increment is 1 or \2551 as appropriate.)-.1 E .581(Brace e)108
-242.4 R .581(xpansion is performed before an)-.15 F 3.081(yo)-.15 G .581
+571.2 R .581(xpansion is performed before an)-.15 F 3.081(yo)-.15 G .581
(ther e)-3.081 F .581(xpansions, and an)-.15 F 3.082(yc)-.15 G .582
(haracters special to other e)-3.082 F(xpansions)-.15 E .016
-(are preserv)108 254.4 R .016(ed in the result.)-.15 F .016
+(are preserv)108 583.2 R .016(ed in the result.)-.15 F .016
(It is strictly te)5.016 F(xtual.)-.15 E F2(Bash)5.016 E F1 .015
(does not apply an)2.516 F 2.515(ys)-.15 G .015
-(yntactic interpretation to the con-)-2.515 F(te)108 266.4 Q
+(yntactic interpretation to the con-)-2.515 F(te)108 595.2 Q
(xt of the e)-.15 E(xpansion or the te)-.15 E(xt between the braces.)
--.15 E 2.501(Ac)108 283.2 S .001(orrectly-formed brace e)-2.501 F .001(\
-xpansion must contain unquoted opening and closing braces, and at least\
- one un-)-.15 F(quoted comma or a v)108 295.2 Q(alid sequence e)-.25 E
-2.5(xpression. An)-.15 F 2.5(yi)-.15 G(ncorrectly formed brace e)-2.5 E
-(xpansion is left unchanged.)-.15 E 2.753<4199>108 312 S .253
+-.15 E 2.501(Ac)108 612 S .001(orrectly-formed brace e)-2.501 F .001(xp\
+ansion must contain unquoted opening and closing braces, and at least o\
+ne un-)-.15 F(quoted comma or a v)108 624 Q(alid sequence e)-.25 E 2.5
+(xpression. An)-.15 F 2.5(yi)-.15 G(ncorrectly formed brace e)-2.5 E
+(xpansion is left unchanged.)-.15 E 2.753<4199>108 640.8 S .253
({\232 or Q , may be quoted with a backslash to pre)-2.753 F -.15(ve)
-.25 G .253(nt its being considered part of a brace e).15 F 2.752
-(xpression. T)-.15 F(o)-.8 E -.2(avo)108 324 S .068
+(xpression. T)-.15 F(o)-.8 E -.2(avo)108 652.8 S .068
(id con\215icts with parameter e).2 F .069
(xpansion, the string \231${\232 is not considered eligible for brace e)
--.15 F .069(xpansion, and)-.15 F(inhibits brace e)108 336 Q
+-.15 F .069(xpansion, and)-.15 F(inhibits brace e)108 664.8 Q
(xpansion until the closing \231}\232.)-.15 E 1.476(This construct is t\
ypically used as shorthand when the common pre\214x of the strings to b\
-e generated is)108 352.8 R(longer than in the abo)108 364.8 Q .3 -.15
-(ve ex)-.15 H(ample:).15 E/F3 10/Courier@0 SF
-(mkdir /usr/local/src/bash/{old,new,dist,bugs})144 381.6 Q F1(or)108
-393.6 Q F3(chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}})144 405.6
-Q F1 .618(Brace e)108 422.4 R .618
+e generated is)108 681.6 R(longer than in the abo)108 693.6 Q .3 -.15
+(ve ex)-.15 H(ample:).15 E/F6 10/Courier@0 SF
+(mkdir /usr/local/src/bash/{old,new,dist,bugs})144 710.4 Q F1(or)108
+722.4 Q(GNU Bash 5.3)72 768 Q(2026 January 14)141.79 E(24)190.95 E 0 Cg
+EP
+%%Page: 25 25
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E/F2 10/Courier@0 SF
+(chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}})144 84 Q F1 .618
+(Brace e)108 100.8 R .618
(xpansion introduces a slight incompatibility with historical v)-.15 F
-.618(ersions of)-.15 F F2(sh)3.118 E F1(.)A F2(sh)5.618 E F1 .618
-(does not treat open-)3.118 F .248
-(ing or closing braces specially when the)108 434.4 R 2.748(ya)-.15 G
+.618(ersions of)-.15 F/F3 10/Times-Bold@0 SF(sh)3.118 E F1(.)A F3(sh)
+5.618 E F1 .618(does not treat open-)3.118 F .248
+(ing or closing braces specially when the)108 112.8 R 2.748(ya)-.15 G
.247(ppear as part of a w)-2.748 F .247(ord, and preserv)-.1 F .247
-(es them in the output.)-.15 F F2(Bash)5.247 E F1(remo)108 446.4 Q -.15
+(es them in the output.)-.15 F F3(Bash)5.247 E F1(remo)108 124.8 Q -.15
(ve)-.15 G 3.53(sb).15 G 1.03(races from w)-3.53 F 1.03
(ords as a consequence of brace e)-.1 F 3.53(xpansion. F)-.15 F 1.03
-(or e)-.15 F 1.03(xample, a w)-.15 F 1.03(ord entered to)-.1 F F2(sh)
+(or e)-.15 F 1.03(xample, a w)-.15 F 1.03(ord entered to)-.1 F F3(sh)
3.53 E F1(as)3.53 E .384
-(\231\214le{1,2}\232 appears identically in the output.)108 458.4 R F2
+(\231\214le{1,2}\232 appears identically in the output.)108 136.8 R F3
(Bash)5.384 E F1 .384(outputs that w)2.884 F .384
(ord as \231\214le1 \214le2\232 after brace e)-.1 F(xpansion.)-.15 E
-(Start)108 470.4 Q F2(bash)3.962 E F1 1.462(with the)3.962 F F2(+B)3.962
+(Start)108 148.8 Q F3(bash)3.962 E F1 1.462(with the)3.962 F F3(+B)3.962
E F1 1.463(option or disable brace e)3.963 F 1.463(xpansion with the)
--.15 F F2(+B)3.963 E F1 1.463(option to the)3.963 F F2(set)3.963 E F1
-1.463(command \(see)3.963 F/F4 9/Times-Bold@0 SF(SHELL B)108 482.4 Q
-(UIL)-.09 E(TIN COMMANDS)-.828 E F1(belo)2.25 E(w\) for strict)-.25 E F2
-(sh)2.5 E F1(compatibility)2.5 E(.)-.65 E F2 -.18(Ti)87 499.2 S
-(lde Expansion).18 E F1 .846(If a w)108 511.2 R .846(ord be)-.1 F .846
-(gins with an unquoted tilde character \(\231)-.15 F F2<01>A F1 .846
+-.15 F F3(+B)3.963 E F1 1.463(option to the)3.963 F F3(set)3.963 E F1
+1.463(command \(see)3.963 F/F4 9/Times-Bold@0 SF(SHELL B)108 160.8 Q
+(UIL)-.09 E(TIN COMMANDS)-.828 E F1(belo)2.25 E(w\) for strict)-.25 E F3
+(sh)2.5 E F1(compatibility)2.5 E(.)-.65 E F3 -.18(Ti)87 177.6 S
+(lde Expansion).18 E F1 .846(If a w)108 189.6 R .846(ord be)-.1 F .846
+(gins with an unquoted tilde character \(\231)-.15 F F3<01>A F1 .846
(\232\), all of the characters preceding the \214rst unquoted)B .185(sl\
ash \(or all characters, if there is no unquoted slash\) are considered\
- a)108 523.2 R F0(tilde-pr)2.685 E(e\214x)-.37 E F1 5.185(.I)C 2.685(fn)
+ a)108 201.6 R F0(tilde-pr)2.685 E(e\214x)-.37 E F1 5.185(.I)C 2.685(fn)
-5.185 G .185(one of the characters)-2.685 F .726(in the tilde-pre\214x\
- are quoted, the characters in the tilde-pre\214x follo)108 535.2 R .725
-(wing the tilde are treated as a possible)-.25 F F0(lo)108 547.2 Q .522
+ are quoted, the characters in the tilde-pre\214x follo)108 213.6 R .725
+(wing the tilde are treated as a possible)-.25 F F0(lo)108 225.6 Q .522
(gin name)-.1 F F1 5.522(.I)C 3.022(ft)-5.522 G .522
(his login name is the null string, the tilde is replaced with the v)
--3.022 F .523(alue of the shell parameter)-.25 F F4(HOME)108 559.2 Q/F5
+-3.022 F .523(alue of the shell parameter)-.25 F F4(HOME)108 237.6 Q/F5
9/Times-Roman@0 SF(.)A F1(If)5.077 E F4(HOME)3.077 E F1 .577
(is unset, the tilde e)2.827 F .577
(xpands to the home directory of the user e)-.15 F -.15(xe)-.15 G .576
(cuting the shell instead.).15 F(Otherwise, the tilde-pre\214x is repla\
ced with the home directory associated with the speci\214ed login name.)
-108 571.2 Q .368(If the tilde-pre\214x is a \231\001+\232, the v)108 588
-R .368(alue of the shell v)-.25 F(ariable)-.25 E F4(PWD)2.868 E F1 .368
-(replaces the tilde-pre\214x.)2.618 F .368(If the tilde-pre\214x)5.368 F
-.227(is a \231\001\255\232, the shell substitutes the v)108 600 R .227
-(alue of the shell v)-.25 F(ariable)-.25 E F4(OLDPWD)2.727 E F5(,)A F1
-.227(if it is set.)2.477 F .227(If the characters follo)5.227 F(w-)-.25
-E .296(ing the tilde in the tilde-pre\214x consist of a number)108 612 R
-F0(N)2.796 E F1 2.796(,o)C .296(ptionally pre\214x)-2.796 F .296
+108 249.6 Q .368(If the tilde-pre\214x is a \231\001+\232, the v)108
+266.4 R .368(alue of the shell v)-.25 F(ariable)-.25 E F4(PWD)2.868 E F1
+.368(replaces the tilde-pre\214x.)2.618 F .368(If the tilde-pre\214x)
+5.368 F .227(is a \231\001\255\232, the shell substitutes the v)108
+278.4 R .227(alue of the shell v)-.25 F(ariable)-.25 E F4(OLDPWD)2.727 E
+F5(,)A F1 .227(if it is set.)2.477 F .227(If the characters follo)5.227
+F(w-)-.25 E .296
+(ing the tilde in the tilde-pre\214x consist of a number)108 290.4 R F0
+(N)2.796 E F1 2.796(,o)C .296(ptionally pre\214x)-2.796 F .296
(ed by a \231+\232 or a \231\255\232, the tilde-pre\214x)-.15 F .814(is\
replaced with the corresponding element from the directory stack, as i\
-t w)108 624 R .813(ould be displayed by the)-.1 F F2(dirs)3.313 E F1 -.2
-(bu)108 636 S .698(iltin in).2 F -.2(vo)-.4 G -.1(ke).2 G 3.198(dw).1 G
-.698(ith the characters follo)-3.198 F .699
+t w)108 302.4 R .813(ould be displayed by the)-.1 F F3(dirs)3.313 E F1
+-.2(bu)108 314.4 S .698(iltin in).2 F -.2(vo)-.4 G -.1(ke).2 G 3.198(dw)
+.1 G .698(ith the characters follo)-3.198 F .699
(wing the tilde in the tilde-pre\214x as an ar)-.25 F 3.199(gument. If)
--.18 F .699(the characters)3.199 F(follo)108 648 Q .482(wing the tilde \
-in the tilde-pre\214x consist of a number without a leading \231+\232 o\
-r \231\255\232, tilde e)-.25 F .481(xpansion as-)-.15 F
-(sumes \231+\232.)108 660 Q .54(The results of tilde e)108 676.8 R .54
+-.18 F .699(the characters)3.199 F(follo)108 326.4 Q .482(wing the tild\
+e in the tilde-pre\214x consist of a number without a leading \231+\232\
+ or \231\255\232, tilde e)-.25 F .481(xpansion as-)-.15 F
+(sumes \231+\232.)108 338.4 Q .54(The results of tilde e)108 355.2 R .54
(xpansion are treated as if the)-.15 F 3.04(yw)-.15 G .54
(ere quoted, so the replacement is not subject to w)-3.04 F(ord)-.1 E
-(splitting and pathname e)108 688.8 Q(xpansion.)-.15 E
-(If the login name is in)108 705.6 Q -.25(va)-.4 G(lid, or the tilde e)
-.25 E(xpansion f)-.15 E(ails, the tilde-pre\214x is unchanged.)-.1 E F2
-(Bash)108 722.4 Q F1 .578(checks each v)3.078 F .578
+(splitting and pathname e)108 367.2 Q(xpansion.)-.15 E
+(If the login name is in)108 384 Q -.25(va)-.4 G(lid, or the tilde e).25
+E(xpansion f)-.15 E(ails, the tilde-pre\214x is unchanged.)-.1 E F3
+(Bash)108 400.8 Q F1 .578(checks each v)3.078 F .578
(ariable assignment for unquoted tilde-pre\214x)-.25 F .578
-(es immediately follo)-.15 F .578(wing a)-.25 F F2(:)3.078 E F1 .578
-(or the \214rst)3.078 F F2(=)3.078 E F1(,)A(GNU Bash 5.3)72 768 Q
-(2025 April 7)149.285 E(24)198.445 E 0 Cg EP
-%%Page: 25 25
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E 1.041(and performs tilde e)108 84 R 1.041
-(xpansion in these cases.)-.15 F(Consequently)6.041 E 3.541(,o)-.65 G
-1.042(ne may use \214lenames with tildes in assign-)-3.541 F(ments to)
-108 96 Q/F2 9/Times-Bold@0 SF -.666(PA)2.5 G(TH)-.189 E/F3 9
-/Times-Roman@0 SF(,)A F2(MAILP)2.25 E -.855(AT)-.666 G(H).855 E F3(,)A
-F1(and)2.25 E F2(CDP)2.5 E -.855(AT)-.666 G(H).855 E F3(,)A F1
-(and the shell assigns the e)2.25 E(xpanded v)-.15 E(alue.)-.25 E/F4 10
-/Times-Bold@0 SF(Bash)108 112.8 Q F1 1.769(also performs tilde e)4.269 F
-1.769(xpansion on w)-.15 F 1.768(ords satisfying the conditions of v)-.1
-F 1.768(ariable assignments \(as de-)-.25 F .463(scribed abo)108 124.8 R
-.763 -.15(ve u)-.15 H(nder).15 E F2 -.666(PA)2.963 G(RAMETERS).666 E F3
-(\))A F1 .463(when the)2.713 F 2.963(ya)-.15 G .463(ppear as ar)-2.963 F
-.464(guments to simple commands.)-.18 F F4(Bash)5.464 E F1 .464
-(does not)2.964 F(do this, e)108 136.8 Q(xcept for the)-.15 E F0(declar)
-2.5 E(ation)-.15 E F1(commands listed abo)2.5 E -.15(ve)-.15 G 2.5(,w)
-.15 G(hen in posix mode.)-2.5 E F4 -.1(Pa)87 153.6 S(rameter Expansion)
-.1 E F1 .015(The \231)108 165.6 R F4($)A F1 2.515<9a63>C .014
+(es immediately follo)-.15 F .578(wing a)-.25 F F3(:)3.078 E F1 .578
+(or the \214rst)3.078 F F3(=)3.078 E F1(,)A 1.041(and performs tilde e)
+108 412.8 R 1.041(xpansion in these cases.)-.15 F(Consequently)6.041 E
+3.541(,o)-.65 G 1.042(ne may use \214lenames with tildes in assign-)
+-3.541 F(ments to)108 424.8 Q F4 -.666(PA)2.5 G(TH)-.189 E F5(,)A F4
+(MAILP)2.25 E -.855(AT)-.666 G(H).855 E F5(,)A F1(and)2.25 E F4(CDP)2.5
+E -.855(AT)-.666 G(H).855 E F5(,)A F1(and the shell assigns the e)2.25 E
+(xpanded v)-.15 E(alue.)-.25 E F3(Bash)108 441.6 Q F1 1.769
+(also performs tilde e)4.269 F 1.769(xpansion on w)-.15 F 1.768
+(ords satisfying the conditions of v)-.1 F 1.768
+(ariable assignments \(as de-)-.25 F .463(scribed abo)108 453.6 R .763
+-.15(ve u)-.15 H(nder).15 E F4 -.666(PA)2.963 G(RAMETERS).666 E F5(\))A
+F1 .463(when the)2.713 F 2.963(ya)-.15 G .463(ppear as ar)-2.963 F .464
+(guments to simple commands.)-.18 F F3(Bash)5.464 E F1 .464(does not)
+2.964 F(do this, e)108 465.6 Q(xcept for the)-.15 E F0(declar)2.5 E
+(ation)-.15 E F1(commands listed abo)2.5 E -.15(ve)-.15 G 2.5(,w).15 G
+(hen in posix mode.)-2.5 E F3 -.1(Pa)87 482.4 S(rameter Expansion).1 E
+F1 .015(The \231)108 494.4 R F3($)A F1 2.515<9a63>C .014
(haracter introduces parameter e)-2.515 F .014
(xpansion, command substitution, or arithmetic e)-.15 F 2.514
(xpansion. The)-.15 F(pa-)2.514 E .314(rameter name or symbol to be e)
-108 177.6 R .314
+108 506.4 R .314
(xpanded may be enclosed in braces, which are optional b)-.15 F .314
(ut serv)-.2 F 2.814(et)-.15 G 2.814(op)-2.814 G(rotect)-2.814 E .415
-(the v)108 189.6 R .415(ariable to be e)-.25 F .415
+(the v)108 518.4 R .415(ariable to be e)-.25 F .415
(xpanded from characters immediately follo)-.15 F .414
(wing it which could be interpreted as part of)-.25 F(the name.)108
-201.6 Q 1.072
+530.4 Q 1.072
(When braces are used, the matching ending brace is the \214rst \231)108
-218.4 R F4(})A F1 3.573<9a6e>C 1.073
+547.2 R F3(})A F1 3.573<9a6e>C 1.073
(ot escaped by a backslash or within a)-3.573 F .822
-(quoted string, and not within an embedded arithmetic e)108 230.4 R .821
+(quoted string, and not within an embedded arithmetic e)108 559.2 R .821
(xpansion, command substitution, or parameter e)-.15 F(x-)-.15 E
-(pansion.)108 242.4 Q(The basic form of parameter e)108 259.2 Q
-(xpansion is)-.15 E(${)108 276 Q F0(par)A(ameter)-.15 E F1(})A .284
-(which substitutes the v)108 292.8 R .284(alue of)-.25 F F0(par)2.784 E
+(pansion.)108 571.2 Q(The basic form of parameter e)108 588 Q
+(xpansion is)-.15 E(${)108 604.8 Q F0(par)A(ameter)-.15 E F1(})A .284
+(which substitutes the v)108 621.6 R .284(alue of)-.25 F F0(par)2.784 E
(ameter)-.15 E F1 5.285(.T)C .285(he braces are required when)-5.285 F
F0(par)4.035 E(ameter)-.15 E F1 .285(is a positional parame-)3.515 F
-.067(ter with more than one digit, or when)108 304.8 R F0(par)3.817 E
+.067(ter with more than one digit, or when)108 633.6 R F0(par)3.817 E
(ameter)-.15 E F1 .067(is follo)3.297 F .066
-(wed by a character which is not to be interpreted as)-.25 F .406
-(part of its name.)108 316.8 R(The)5.406 E F0(par)2.906 E(ameter)-.15 E
-F1 .406(is a shell parameter as described abo)2.906 F -.15(ve)-.15 G F4
--.74(PA)3.057 G(RAMETERS).74 E F1 2.907(\)o)C 2.907(ra)-2.907 G 2.907
-(na)-2.907 G .407(rray ref-)-2.907 F(erence \()108 328.8 Q F4(Arrays)A
-F1(\).)A .347(If the \214rst character of)108 345.6 R F0(par)2.846 E
+(wed by a character which is not to be interpreted as)-.25 F .21
+(part of its name.)108 645.6 R(The)5.21 E F0(par)2.71 E(ameter)-.15 E F1
+.211(is a shell parameter as described abo)2.71 F .511 -.15(ve \()-.15 H
+F3 -.74(PA).15 G(RAMETERS).74 E F1 2.711(\)o)C 2.711(ra)-2.711 G 2.711
+(na)-2.711 G .211(rray ref-)-2.711 F(erence \()108 657.6 Q F3(Arrays)A
+F1(\).)A .347(If the \214rst character of)108 674.4 R F0(par)2.846 E
(ameter)-.15 E F1 .346(is an e)2.846 F .346(xclamation point \()-.15 F
-F4(!)A F1 .346(\), and)B F0(par)2.846 E(ameter)-.15 E F1 .346(is not a)
+F3(!)A F1 .346(\), and)B F0(par)2.846 E(ameter)-.15 E F1 .346(is not a)
2.846 F F0(namer)2.846 E(ef)-.37 E F1 2.846(,i)C 2.846(ti)-2.846 G
-(ntroduces)-2.846 E 2.906(al)108 357.6 S -2.15 -.25(ev e)-2.906 H 2.906
-(lo).25 G 2.906(fi)-2.906 G(ndirection.)-2.906 E F4(Bash)5.406 E F1 .406
+(ntroduces)-2.846 E 2.906(al)108 686.4 S -2.15 -.25(ev e)-2.906 H 2.906
+(lo).25 G 2.906(fi)-2.906 G(ndirection.)-2.906 E F3(Bash)5.406 E F1 .406
(uses the v)2.906 F .406(alue formed by e)-.25 F .406
(xpanding the rest of)-.15 F F0(par)2.906 E(ameter)-.15 E F1 .406
-(as the ne)2.906 F(w)-.25 E F0(par)2.907 E(ame-)-.15 E(ter)108 369.6 Q
+(as the ne)2.906 F(w)-.25 E F0(par)2.907 E(ame-)-.15 E(ter)108 698.4 Q
F1 2.936(;t)C .436(his ne)-2.936 F 2.936(wp)-.25 G .436
(arameter is then e)-2.936 F .436(xpanded and that v)-.15 F .435
(alue is used in the rest of the e)-.25 F .435
-(xpansion, rather than the)-.15 F -.15(ex)108 381.6 S .291
+(xpansion, rather than the)-.15 F -.15(ex)108 710.4 S .291
(pansion of the original).15 F F0(par)2.791 E(ameter)-.15 E F1 5.291(.T)
C .291(his is kno)-5.291 F .291(wn as)-.25 F F0(indir)2.791 E .291
(ect e)-.37 F(xpansion)-.2 E F1 5.291(.T)C .291(he v)-5.291 F .292
(alue is subject to tilde e)-.25 F(x-)-.15 E .164(pansion, parameter e)
-108 393.6 R .163(xpansion, command substitution, and arithmetic e)-.15 F
+108 722.4 R .163(xpansion, command substitution, and arithmetic e)-.15 F
2.663(xpansion. If)-.15 F F0(par)2.663 E(ameter)-.15 E F1 .163
-(is a nameref,)2.663 F .462(this e)108 405.6 R .462
+(is a nameref,)2.663 F(GNU Bash 5.3)72 768 Q(2026 January 14)141.79 E
+(25)190.95 E 0 Cg EP
+%%Page: 26 26
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E .462(this e)108 84 R .462
(xpands to the name of the parameter referenced by)-.15 F F0(par)2.963 E
(ameter)-.15 E F1 .463(instead of performing the complete in-)2.963 F
-3.636(direct e)108 417.6 R 3.636(xpansion, for compatibility)-.15 F
-8.636(.T)-.65 G 3.636(he e)-8.636 F 3.635(xceptions to this are the e)
--.15 F 3.635(xpansions of ${)-.15 F F4(!)A F0(pr)A(e\214x)-.37 E F4(*)A
-F1 6.135(}a)C(nd)-6.135 E(${)108 429.6 Q F4(!)A F0(name)A F1([)A F0(@)A
-F1 .762(]} described belo)B 4.563 -.65(w. T)-.25 H .763(he e).65 F .763
-(xclamation point must immediately follo)-.15 F 3.263(wt)-.25 G .763
-(he left brace in order to)-3.263 F(introduce indirection.)108 441.6 Q
-.334(In each of the cases belo)108 458.4 R -.65(w,)-.25 G F0(wor)3.484 E
-(d)-.37 E F1 .334(is subject to tilde e)2.834 F .334
-(xpansion, parameter e)-.15 F .334(xpansion, command substitution,)-.15
-F(and arithmetic e)108 470.4 Q(xpansion.)-.15 E .066
-(When not performing substring e)108 487.2 R .067
+3.636(direct e)108 96 R 3.636(xpansion, for compatibility)-.15 F 8.636
+(.T)-.65 G 3.636(he e)-8.636 F 3.635(xceptions to this are the e)-.15 F
+3.635(xpansions of ${)-.15 F/F2 10/Times-Bold@0 SF(!)A F0(pr)A(e\214x)
+-.37 E F2(*)A F1 6.135(}a)C(nd)-6.135 E(${)108 108 Q F2(!)A F0(name)A F1
+([)A F0(@)A F1 .762(]} described belo)B 4.563 -.65(w. T)-.25 H .763
+(he e).65 F .763(xclamation point must immediately follo)-.15 F 3.263
+(wt)-.25 G .763(he left brace in order to)-3.263 F
+(introduce indirection.)108 120 Q .334(In each of the cases belo)108
+136.8 R -.65(w,)-.25 G F0(wor)3.484 E(d)-.37 E F1 .334
+(is subject to tilde e)2.834 F .334(xpansion, parameter e)-.15 F .334
+(xpansion, command substitution,)-.15 F(and arithmetic e)108 148.8 Q
+(xpansion.)-.15 E .066(When not performing substring e)108 165.6 R .067
(xpansion, using the forms documented belo)-.15 F 2.567(w\()-.25 G
-(e.g.,)-2.567 E F4(:-)2.567 E F1(\),)A F4(bash)2.567 E F1 .067
-(tests for a pa-)2.567 F(rameter that is unset or null.)108 499.2 Q
+(e.g.,)-2.567 E F2(:-)2.567 E F1(\),)A F2(bash)2.567 E F1 .067
+(tests for a pa-)2.567 F(rameter that is unset or null.)108 177.6 Q
(Omitting the colon tests only for a parameter that is unset.)5 E(${)108
-516 Q F0(par)A(ameter)-.15 E F4<3aad>A F0(wor)A(d)-.37 E F1(})A F4 .723
-(Use Default V)144 528 R(alues)-.92 E F1 5.723(.I)C(f)-5.723 E F0(par)
-4.473 E(ameter)-.15 E F1 .723(is unset or null, the e)3.953 F .722
+194.4 Q F0(par)A(ameter)-.15 E F2<3aad>A F0(wor)A(d)-.37 E F1(})A F2
+.723(Use Default V)144 206.4 R(alues)-.92 E F1 5.723(.I)C(f)-5.723 E F0
+(par)4.473 E(ameter)-.15 E F1 .723(is unset or null, the e)3.953 F .722
(xpansion of)-.15 F F0(wor)3.562 E(d)-.37 E F1 .722(is substituted.)
-3.992 F(Other)5.722 E(-)-.2 E(wise, the v)144 540 Q(alue of)-.25 E F0
-(par)3.75 E(ameter)-.15 E F1(is substituted.)3.23 E(${)108 556.8 Q F0
-(par)A(ameter)-.15 E F4(:=)A F0(wor)A(d)-.37 E F1(})A F4 .265
-(Assign Default V)144 568.8 R(alues)-.92 E F1 5.265(.I)C(f)-5.265 E F0
+3.992 F(Other)5.722 E(-)-.2 E(wise, the v)144 218.4 Q(alue of)-.25 E F0
+(par)3.75 E(ameter)-.15 E F1(is substituted.)3.23 E(${)108 235.2 Q F0
+(par)A(ameter)-.15 E F2(:=)A F0(wor)A(d)-.37 E F1(})A F2 .265
+(Assign Default V)144 247.2 R(alues)-.92 E F1 5.265(.I)C(f)-5.265 E F0
(par)4.015 E(ameter)-.15 E F1 .266(is unset or null, the e)3.495 F .266
(xpansion of)-.15 F F0(wor)3.106 E(d)-.37 E F1 .266(is assigned to)3.536
-F F0(par)4.016 E(a-)-.15 E(meter)144 580.8 Q F1 2.958(,a).73 G .458
+F F0(par)4.016 E(a-)-.15 E(meter)144 259.2 Q F1 2.958(,a).73 G .458
(nd the e)-2.958 F .458(xpansion is the \214nal v)-.15 F .458(alue of)
-.25 F F0(par)4.208 E(ameter)-.15 E F1 5.458(.P).73 G .458
(ositional parameters and special para-)-5.458 F
-(meters may not be assigned in this w)144 592.8 Q(ay)-.1 E(.)-.65 E(${)
-108 609.6 Q F0(par)A(ameter)-.15 E F4(:?)A F0(wor)A(d)-.37 E F1(})A F4
-.724(Display Err)144 621.6 R .724(or if Null or Unset)-.18 F F1 5.724
-(.I)C(f)-5.724 E F0(par)4.474 E(ameter)-.15 E F1 .724
+(meters may not be assigned in this w)144 271.2 Q(ay)-.1 E(.)-.65 E(${)
+108 288 Q F0(par)A(ameter)-.15 E F2(:?)A F0(wor)A(d)-.37 E F1(})A F2
+.724(Display Err)144 300 R .724(or if Null or Unset)-.18 F F1 5.724(.I)C
+(f)-5.724 E F0(par)4.474 E(ameter)-.15 E F1 .724
(is null or unset, the shell writes the e)3.954 F .725(xpansion of)-.15
-F F0(wor)144 633.6 Q(d)-.37 E F1 .293(\(or a message to that ef)2.793 F
+F F0(wor)144 312 Q(d)-.37 E F1 .293(\(or a message to that ef)2.793 F
.293(fect if)-.25 F F0(wor)3.133 E(d)-.37 E F1 .292
(is not present\) to the standard error and, if it is not inter)3.562 F
-(-)-.2 E(acti)144 645.6 Q -.15(ve)-.25 G 3.638(,e).15 G 1.138
+(-)-.2 E(acti)144 324 Q -.15(ve)-.25 G 3.638(,e).15 G 1.138
(xits with a non-zero status.)-3.788 F 1.138(An interacti)6.138 F 1.438
-.15(ve s)-.25 H 1.138(hell does not e).15 F 1.138(xit, b)-.15 F 1.138
(ut does not e)-.2 F -.15(xe)-.15 G 1.139(cute the).15 F
-(command associated with the e)144 657.6 Q 2.5(xpansion. Otherwise,)-.15
-F(the v)2.5 E(alue of)-.25 E F0(par)2.5 E(ameter)-.15 E F1
-(is substituted.)2.5 E(${)108 674.4 Q F0(par)A(ameter)-.15 E F4(:+)A F0
-(wor)A(d)-.37 E F1(})A F4 .745(Use Alter)144 686.4 R .745(nate V)-.15 F
+(command associated with the e)144 336 Q 2.5(xpansion. Otherwise,)-.15 F
+(the v)2.5 E(alue of)-.25 E F0(par)2.5 E(ameter)-.15 E F1
+(is substituted.)2.5 E(${)108 352.8 Q F0(par)A(ameter)-.15 E F2(:+)A F0
+(wor)A(d)-.37 E F1(})A F2 .745(Use Alter)144 364.8 R .745(nate V)-.15 F
(alue)-.92 E F1 5.745(.I)C(f)-5.745 E F0(par)4.495 E(ameter)-.15 E F1
.745(is null or unset, nothing is substituted, otherwise the e)3.975 F
-(xpan-)-.15 E(sion of)144 698.4 Q F0(wor)2.84 E(d)-.37 E F1
+(xpan-)-.15 E(sion of)144 376.8 Q F0(wor)2.84 E(d)-.37 E F1
(is substituted.)3.27 E(The v)5 E(alue of)-.25 E F0(par)2.5 E(ameter)
--.15 E F1(is not used.)2.5 E(GNU Bash 5.3)72 768 Q(2025 April 7)149.285
-E(25)198.445 E 0 Cg EP
-%%Page: 26 26
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E(${)108 84 Q F0(par)A(ameter)-.15 E/F2 10
-/Times-Bold@0 SF(:)A F0(of)A(fset)-.18 E F1(})A(${)108 96 Q F0(par)A
-(ameter)-.15 E F2(:)A F0(of)A(fset)-.18 E F2(:)A F0(length)A F1(})A F2
-.002(Substring Expansion)144 108 R F1 5.002(.E)C .002(xpands to up to)
+-.15 E F1(is not used.)2.5 E(${)108 393.6 Q F0(par)A(ameter)-.15 E F2(:)
+A F0(of)A(fset)-.18 E F1(})A(${)108 405.6 Q F0(par)A(ameter)-.15 E F2(:)
+A F0(of)A(fset)-.18 E F2(:)A F0(length)A F1(})A F2 .002
+(Substring Expansion)144 417.6 R F1 5.002(.E)C .002(xpands to up to)
-5.002 F F0(length)2.502 E F1 .002(characters of the v)2.502 F .002
(alue of)-.25 F F0(par)2.502 E(ameter)-.15 E F1 .002(starting at the)
-2.502 F .004(character speci\214ed by)144 120 R F0(of)2.504 E(fset)-.18
-E F1 5.003(.I)C(f)-5.003 E F0(par)2.503 E(ameter)-.15 E F1(is)2.503 E F2
-(@)2.503 E F1(or)2.503 E F2(*)2.503 E F1 2.503(,a)C 2.503(ni)-2.503 G
-(nde)-2.503 E -.15(xe)-.15 G 2.503(da).15 G .003(rray subscripted by)
+2.502 F .004(character speci\214ed by)144 429.6 R F0(of)2.504 E(fset)
+-.18 E F1 5.003(.I)C(f)-5.003 E F0(par)2.503 E(ameter)-.15 E F1(is)2.503
+E F2(@)2.503 E F1(or)2.503 E F2(*)2.503 E F1 2.503(,a)C 2.503(ni)-2.503
+G(nde)-2.503 E -.15(xe)-.15 G 2.503(da).15 G .003(rray subscripted by)
-2.503 F F2(@)2.503 E F1(or)2.503 E F2(*)2.503 E F1 2.503(,o)C 2.503(ra)
--2.503 G(n)-2.503 E(associati)144 132 Q 1.104 -.15(ve a)-.25 H .804
+-2.503 G(n)-2.503 E(associati)144 441.6 Q 1.104 -.15(ve a)-.25 H .804
(rray name, the results dif).15 F .805(fer as described belo)-.25 F
4.605 -.65(w. I)-.25 H(f).65 E F2(:)3.305 E F0(length)A F1 .805
-(is omitted \(the \214rst form)3.305 F(abo)144 144 Q -.15(ve)-.15 G .795
-(\), this e).15 F .795(xpands to the substring of the v)-.15 F .795
+(is omitted \(the \214rst form)3.305 F(abo)144 453.6 Q -.15(ve)-.15 G
+.795(\), this e).15 F .795(xpands to the substring of the v)-.15 F .795
(alue of)-.25 F F0(par)3.295 E(ameter)-.15 E F1 .794
-(starting at the character speci\214ed)3.294 F(by)144 156 Q F0(of)3.114
-E(fset)-.18 E F1 .614(and e)3.114 F .614(xtending to the end of the v)
--.15 F 3.114(alue. If)-.25 F F0(of)3.114 E(fset)-.18 E F1 .614
-(is omitted, it is treated as 0.)3.114 F(If)5.615 E F0(length)3.115 E F1
-(is)3.115 E .499(omitted, b)144 168 R .499(ut the colon after)-.2 F F0
-(of)2.999 E(fset)-.18 E F1 .499(is present, it is treated as 0.)2.999 F
-F0(length)5.499 E F1(and)2.999 E F0(of)2.999 E(fset)-.18 E F1 .498
-(are arithmetic e)2.999 F(x-)-.15 E(pressions \(see)144 180 Q/F3 9
-/Times-Bold@0 SF(ARITHMETIC EV)2.5 E(ALU)-1.215 E -.855(AT)-.54 G(ION)
-.855 E F1(belo)2.25 E(w\).)-.25 E(If)144 196.8 Q F0(of)3.028 E(fset)-.18
-E F1 -.25(eva)3.029 G .529(luates to a number less than zero, the v).25
-F .529(alue is used as an of)-.25 F .529(fset in characters from the)
--.25 F .046(end of the v)144 208.8 R .046(alue of)-.25 F F0(par)2.546 E
-(ameter)-.15 E F1 5.046(.I)C(f)-5.046 E F0(length)2.546 E F1 -.25(eva)
-2.546 G .046(luates to a number less than zero, it is interpreted as an)
-.25 F(of)144 220.8 Q .202(fset in characters from the end of the v)-.25
-F .202(alue of)-.25 F F0(par)2.702 E(ameter)-.15 E F1 .203
-(rather than a number of characters, and)2.702 F .558(the e)144 232.8 R
+(starting at the character speci\214ed)3.294 F(by)144 465.6 Q F0(of)
+3.114 E(fset)-.18 E F1 .614(and e)3.114 F .614
+(xtending to the end of the v)-.15 F 3.114(alue. If)-.25 F F0(of)3.114 E
+(fset)-.18 E F1 .614(is omitted, it is treated as 0.)3.114 F(If)5.615 E
+F0(length)3.115 E F1(is)3.115 E .499(omitted, b)144 477.6 R .499
+(ut the colon after)-.2 F F0(of)2.999 E(fset)-.18 E F1 .499
+(is present, it is treated as 0.)2.999 F F0(length)5.499 E F1(and)2.999
+E F0(of)2.999 E(fset)-.18 E F1 .498(are arithmetic e)2.999 F(x-)-.15 E
+(pressions \(see)144 489.6 Q/F3 9/Times-Bold@0 SF(ARITHMETIC EV)2.5 E
+(ALU)-1.215 E -.855(AT)-.54 G(ION).855 E F1(belo)2.25 E(w\).)-.25 E(If)
+144 506.4 Q F0(of)3.028 E(fset)-.18 E F1 -.25(eva)3.029 G .529
+(luates to a number less than zero, the v).25 F .529
+(alue is used as an of)-.25 F .529(fset in characters from the)-.25 F
+.046(end of the v)144 518.4 R .046(alue of)-.25 F F0(par)2.546 E(ameter)
+-.15 E F1 5.046(.I)C(f)-5.046 E F0(length)2.546 E F1 -.25(eva)2.546 G
+.046(luates to a number less than zero, it is interpreted as an).25 F
+(of)144 530.4 Q .202(fset in characters from the end of the v)-.25 F
+.202(alue of)-.25 F F0(par)2.702 E(ameter)-.15 E F1 .203
+(rather than a number of characters, and)2.702 F .558(the e)144 542.4 R
.558(xpansion is the characters between)-.15 F F0(of)3.058 E(fset)-.18 E
F1 .558(and that result.)3.058 F .557(Note that a ne)5.557 F -.05(ga)
-.15 G(ti).05 E .857 -.15(ve o)-.25 H -.25(ff).15 G .557(set must be).25
-F(separated from the colon by at least one space to a)144 244.8 Q -.2
+F(separated from the colon by at least one space to a)144 554.4 Q -.2
(vo)-.2 G(id being confused with the).2 E F2(:-)2.5 E F1 -.15(ex)2.5 G
-(pansion.).15 E(If)144 261.6 Q F0(par)3.283 E(ameter)-.15 E F1(is)3.283
+(pansion.).15 E(If)144 571.2 Q F0(par)3.283 E(ameter)-.15 E F1(is)3.283
E F2(@)3.283 E F1(or)3.283 E F2(*)3.284 E F1 3.284(,t)C .784
(he result is)-3.284 F F0(length)3.284 E F1 .784
(positional parameters be)3.284 F .784(ginning at)-.15 F F0(of)3.284 E
(fset)-.18 E F1 5.784(.A)C(ne)-2.5 E -.05(ga)-.15 G(ti).05 E -.15(ve)
--.25 G F0(of)144 273.6 Q(fset)-.18 E F1 .167(is tak)2.667 F .167
+-.25 G F0(of)144 583.2 Q(fset)-.18 E F1 .167(is tak)2.667 F .167
(en relati)-.1 F .467 -.15(ve t)-.25 H 2.667(oo).15 G .167
(ne greater than the greatest positional parameter)-2.667 F 2.666(,s)-.4
G 2.666(oa)-2.666 G 2.666(no)-2.666 G -.25(ff)-2.666 G .166
(set of \2551 e).25 F -.25(va)-.25 G(l-).25 E .023(uates to the last po\
sitional parameter \(or 0 if there are no positional parameters\).)144
-285.6 R .023(It is an e)5.023 F(xpansion)-.15 E(error if)144 297.6 Q F0
+595.2 R .023(It is an e)5.023 F(xpansion)-.15 E(error if)144 607.2 Q F0
(length)2.5 E F1 -.25(eva)2.5 G(luates to a number less than zero.).25 E
-(If)144 314.4 Q F0(par)3.014 E(ameter)-.15 E F1 .514(is an inde)3.014 F
+(If)144 624 Q F0(par)3.014 E(ameter)-.15 E F1 .514(is an inde)3.014 F
-.15(xe)-.15 G 3.014(da).15 G .514
(rray name subscripted by @ or *, the result is the)-3.014 F F0(length)
-3.014 E F1 .513(members of)3.013 F 1.081(the array be)144 326.4 R 1.081
+3.014 E F1 .513(members of)3.013 F 1.081(the array be)144 636 R 1.081
(ginning with ${)-.15 F F0(par)A(ameter)-.15 E F1([)A F0(of)A(fset)-.18
E F1 3.581(]}. A)B(ne)3.581 E -.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G F0
(of)3.732 E(fset)-.18 E F1 1.082(is tak)3.582 F 1.082(en relati)-.1 F
1.382 -.15(ve t)-.25 H 3.582(oo).15 G 1.082(ne greater)-3.582 F 1.08
-(than the maximum inde)144 338.4 R 3.58(xo)-.15 G 3.58(ft)-3.58 G 1.08
+(than the maximum inde)144 648 R 3.58(xo)-.15 G 3.58(ft)-3.58 G 1.08
(he speci\214ed array)-3.58 F 6.079(.I)-.65 G 3.579(ti)-6.079 G 3.579
(sa)-3.579 G 3.579(ne)-3.579 G 1.079(xpansion error if)-3.729 F F0
(length)3.579 E F1 -.25(eva)3.579 G 1.079(luates to a).25 F
-(number less than zero.)144 350.4 Q(Substring e)144 367.2 Q
+(number less than zero.)144 660 Q(Substring e)144 676.8 Q
(xpansion applied to an associati)-.15 E .3 -.15(ve a)-.25 H
-(rray produces unde\214ned results.).15 E .82(Substring inde)144 384 R
+(rray produces unde\214ned results.).15 E .82(Substring inde)144 693.6 R
.821(xing is zero-based unless the positional parameters are used, in w\
-hich case the in-)-.15 F(de)144 396 Q .159(xing starts at 1 by def)-.15
-F 2.659(ault. If)-.1 F F0(of)2.659 E(fset)-.18 E F1 .159
+hich case the in-)-.15 F(de)144 705.6 Q .159(xing starts at 1 by def)
+-.15 F 2.659(ault. If)-.1 F F0(of)2.659 E(fset)-.18 E F1 .159
(is 0, and the positional parameters are used,)2.659 F F2($0)2.659 E F1
-.159(is pre\214x)2.659 F .158(ed to)-.15 F(the list.)144 408 Q(${)108
-424.8 Q F2(!)A F0(pr)A(e\214x)-.37 E F2(*)A F1(})A(${)108 436.8 Q F2(!)A
-F0(pr)A(e\214x)-.37 E F2(@)A F1(})A F2 .084(Names matching pr)144 448.8
-R(e\214x)-.18 E F1 5.084(.E)C .084(xpands to the names of v)-5.084 F
-.084(ariables whose names be)-.25 F .085(gin with)-.15 F F0(pr)2.585 E
+.159(is pre\214x)2.659 F .158(ed to)-.15 F(the list.)144 717.6 Q
+(GNU Bash 5.3)72 768 Q(2026 January 14)141.79 E(26)190.95 E 0 Cg EP
+%%Page: 27 27
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E(${)108 84 Q/F2 10/Times-Bold@0 SF(!)A F0(pr)A
+(e\214x)-.37 E F2(*)A F1(})A(${)108 96 Q F2(!)A F0(pr)A(e\214x)-.37 E F2
+(@)A F1(})A F2 .084(Names matching pr)144 108 R(e\214x)-.18 E F1 5.084
+(.E)C .084(xpands to the names of v)-5.084 F .084
+(ariables whose names be)-.25 F .085(gin with)-.15 F F0(pr)2.585 E
(e\214x)-.37 E F1 2.585(,s)C(epa-)-2.585 E .258
-(rated by the \214rst character of the)144 460.8 R F3(IFS)2.758 E F1
-.257(special v)2.507 F 2.757(ariable. When)-.25 F F0(@)2.757 E F1 .257
-(is used and the e)2.757 F .257(xpansion appears)-.15 F
-(within double quotes, each v)144 472.8 Q(ariable name e)-.25 E
-(xpands to a separate w)-.15 E(ord.)-.1 E(${)108 489.6 Q F2(!)A F0(name)
-A F1([)A F0(@)A F1(]})A(${)108 501.6 Q F2(!)A F0(name)A F1([)A F0(*)A F1
-(]})A F2 1.136(List of array k)144 513.6 R(eys)-.1 E F1 6.136(.I)C(f)
+(rated by the \214rst character of the)144 120 R/F3 9/Times-Bold@0 SF
+(IFS)2.758 E F1 .257(special v)2.507 F 2.757(ariable. When)-.25 F F0(@)
+2.757 E F1 .257(is used and the e)2.757 F .257(xpansion appears)-.15 F
+(within double quotes, each v)144 132 Q(ariable name e)-.25 E
+(xpands to a separate w)-.15 E(ord.)-.1 E(${)108 148.8 Q F2(!)A F0(name)
+A F1([)A F0(@)A F1(]})A(${)108 160.8 Q F2(!)A F0(name)A F1([)A F0(*)A F1
+(]})A F2 1.136(List of array k)144 172.8 R(eys)-.1 E F1 6.136(.I)C(f)
-6.136 E F0(name)3.636 E F1 1.136(is an array v)3.636 F 1.136
(ariable, e)-.25 F 1.136(xpands to the list of array indices \(k)-.15 F
--.15(ey)-.1 G 1.137(s\) as-).15 F .397(signed in)144 525.6 R F0(name)
+-.15(ey)-.1 G 1.137(s\) as-).15 F .397(signed in)144 184.8 R F0(name)
2.897 E F1 5.397(.I)C(f)-5.397 E F0(name)2.897 E F1 .397
(is not an array)2.897 F 2.897(,e)-.65 G .397(xpands to 0 if)-3.047 F F0
(name)2.897 E F1 .397(is set and null otherwise.)2.897 F(When)5.397 E F0
-(@)2.897 E F1(is used and the e)144 537.6 Q
+(@)2.897 E F1(is used and the e)144 196.8 Q
(xpansion appears within double quotes, each k)-.15 E .3 -.15(ey ex)-.1
-H(pands to a separate w).15 E(ord.)-.1 E(${)108 554.4 Q F2(#)A F0(par)A
-(ameter)-.15 E F1(})A F2 -.1(Pa)144 566.4 S 1.18(rameter length).1 F F1
+H(pands to a separate w).15 E(ord.)-.1 E(${)108 213.6 Q F2(#)A F0(par)A
+(ameter)-.15 E F1(})A F2 -.1(Pa)144 225.6 S 1.18(rameter length).1 F F1
6.18(.S)C 1.18(ubstitutes the length in characters of the e)-6.18 F 1.18
(xpanded v)-.15 F 1.18(alue of)-.25 F F0(par)3.68 E(ameter)-.15 E F1
-6.18(.I)C(f)-6.18 E F0(par)145.25 578.4 Q(ameter)-.15 E F1(is)3.282 E F2
+6.18(.I)C(f)-6.18 E F0(par)145.25 237.6 Q(ameter)-.15 E F1(is)3.282 E F2
(*)2.552 E F1(or)2.552 E F2(@)2.552 E F1 2.552(,t)C .052(he v)-2.552 F
.052(alue substituted is the number of positional parameters.)-.25 F(If)
5.052 E F0(par)3.801 E(ameter)-.15 E F1(is)3.281 E .333
-(an array name subscripted by)144 590.4 R F2(*)2.833 E F1(or)2.833 E F2
+(an array name subscripted by)144 249.6 R F2(*)2.833 E F1(or)2.833 E F2
(@)2.833 E F1 2.833(,t)C .333(he v)-2.833 F .334
(alue substituted is the number of elements in the array)-.25 F(.)-.65 E
-(If)144 602.4 Q F0(par)5.022 E(ameter)-.15 E F1 1.272(is an inde)4.502 F
+(If)144 261.6 Q F0(par)5.022 E(ameter)-.15 E F1 1.272(is an inde)4.502 F
-.15(xe)-.15 G 3.772(da).15 G 1.272(rray name subscripted by a ne)-3.772
F -.05(ga)-.15 G(ti).05 E 1.572 -.15(ve n)-.25 H(umber).15 E 3.772(,t)
-.4 G 1.272(hat number is inter)-3.772 F(-)-.2 E .565(preted as relati)
-144 614.4 R .865 -.15(ve t)-.25 H 3.065(oo).15 G .565
+144 273.6 R .865 -.15(ve t)-.25 H 3.065(oo).15 G .565
(ne greater than the maximum inde)-3.065 F 3.065(xo)-.15 G(f)-3.065 E F0
(par)3.066 E(ameter)-.15 E F1 3.066(,s)C 3.066(on)-3.066 G -2.25 -.15
(eg a)-3.066 H(ti).15 E .866 -.15(ve i)-.25 H .566(ndices count).15 F
-(back from the end of the array)144 626.4 Q 2.5(,a)-.65 G(nd an inde)
+(back from the end of the array)144 285.6 Q 2.5(,a)-.65 G(nd an inde)
-2.5 E 2.5(xo)-.15 G 2.5<66ad>-2.5 G 2.5(1r)-2.5 G
-(eferences the last element.)-2.5 E(${)108 643.2 Q F0(par)A(ameter)-.15
-E F2(#)A F0(wor)A(d)-.37 E F1(})A(${)108 655.2 Q F0(par)A(ameter)-.15 E
-F2(##)A F0(wor)A(d)-.37 E F1(})A F2(Remo)144 667.2 Q 1.396 -.1(ve m)-.1
+(eferences the last element.)-2.5 E(${)108 302.4 Q F0(par)A(ameter)-.15
+E F2(#)A F0(wor)A(d)-.37 E F1(})A(${)108 314.4 Q F0(par)A(ameter)-.15 E
+F2(##)A F0(wor)A(d)-.37 E F1(})A F2(Remo)144 326.4 Q 1.396 -.1(ve m)-.1
H 1.196(atching pr).1 F 1.196(e\214x patter)-.18 F(n)-.15 E F1 6.196(.T)
C(he)-6.196 E F0(wor)4.036 E(d)-.37 E F1 1.196(is e)4.466 F 1.196
(xpanded to produce a pattern just as in path-)-.15 F .543(name e)144
-679.2 R .544(xpansion, and matched ag)-.15 F .544(ainst the e)-.05 F
+338.4 R .544(xpansion, and matched ag)-.15 F .544(ainst the e)-.05 F
.544(xpanded v)-.15 F .544(alue of)-.25 F F0(par)4.294 E(ameter)-.15 E
-F1 .544(using the rules described)3.774 F(under)144 691.2 Q F2 -.1(Pa)
+F1 .544(using the rules described)3.774 F(under)144 350.4 Q F2 -.1(Pa)
3.133 G(tter).1 E 3.133(nM)-.15 G(atching)-3.133 E F1(belo)3.132 E 4.432
-.65(w. I)-.25 H 3.132(ft).65 G .632(he pattern matches the be)-3.132 F
.632(ginning of the v)-.15 F .632(alue of)-.25 F F0(par)4.382 E(ameter)
--.15 E F1(,).73 E 1.151(then the result of the e)144 703.2 R 1.151
+-.15 E F1(,).73 E 1.151(then the result of the e)144 362.4 R 1.151
(xpansion is the e)-.15 F 1.151(xpanded v)-.15 F 1.151(alue of)-.25 F F0
(par)4.902 E(ameter)-.15 E F1 1.152(with the shortest matching)4.382 F
.554(pattern \(the \231#\232 case\) or the longest matching pattern \(t\
-he \231##\232 case\) deleted.)144 715.2 R(If)5.553 E F0(par)4.303 E
-(ameter)-.15 E F1(is)3.783 E F2(@)3.053 E F1(or)144 727.2 Q F2(*)5.023 E
-F1 5.023(,t)C 2.523(he pattern remo)-5.023 F -.25(va)-.15 G 5.023(lo).25
-G 2.523
-(peration is applied to each positional parameter in turn, and the)
--5.023 F(GNU Bash 5.3)72 768 Q(2025 April 7)149.285 E(26)198.445 E 0 Cg
-EP
-%%Page: 27 27
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E -.15(ex)144 84 S .445
-(pansion is the resultant list.).15 F(If)5.444 E F0(par)4.194 E(ameter)
--.15 E F1 .444(is an array v)3.674 F .444(ariable subscripted with)-.25
-F/F2 10/Times-Bold@0 SF(@)2.944 E F1(or)2.944 E F2(*)2.944 E F1 2.944
-(,t)C .444(he pat-)-2.944 F .322(tern remo)144 96 R -.25(va)-.15 G 2.822
-(lo).25 G .322
+he \231##\232 case\) deleted.)144 374.4 R(If)5.553 E F0(par)4.303 E
+(ameter)-.15 E F1(is)3.783 E F2(@)3.053 E F1(or)144 386.4 Q F2(*)3.018 E
+F1 3.018(,t)C .518(he pattern remo)-3.018 F -.25(va)-.15 G 3.018(lo).25
+G .518
+(peration is applied to each positional parameter in turn, and the e)
+-3.018 F(xpan-)-.15 E .304(sion is the resultant list.)144 398.4 R(If)
+5.304 E F0(par)4.054 E(ameter)-.15 E F1 .303(is an array v)3.533 F .303
+(ariable subscripted with)-.25 F F2(@)2.803 E F1(or)2.803 E F2(*)2.803 E
+F1 2.803(,t)C .303(he pattern re-)-2.803 F(mo)144 410.4 Q -.25(va)-.15 G
+2.987(lo).25 G .487
(peration is applied to each member of the array in turn, and the e)
--2.822 F .323(xpansion is the re-)-.15 F(sultant list.)144 108 Q(${)108
-124.8 Q F0(par)A(ameter)-.15 E F2(%)A F0(wor)A(d)-.37 E F1(})A(${)108
-136.8 Q F0(par)A(ameter)-.15 E F2(%%)A F0(wor)A(d)-.37 E F1(})A F2(Remo)
-144 148.8 Q .347 -.1(ve m)-.1 H .147(atching suf\214x patter).1 F(n)-.15
+-2.987 F .487(xpansion is the resultant)-.15 F(list.)144 422.4 Q(${)108
+439.2 Q F0(par)A(ameter)-.15 E F2(%)A F0(wor)A(d)-.37 E F1(})A(${)108
+451.2 Q F0(par)A(ameter)-.15 E F2(%%)A F0(wor)A(d)-.37 E F1(})A F2(Remo)
+144 463.2 Q .347 -.1(ve m)-.1 H .147(atching suf\214x patter).1 F(n)-.15
E F1 5.147(.T)C(he)-5.147 E F0(wor)2.647 E(d)-.37 E F1 .147(is e)2.647 F
.146(xpanded to produce a pattern just as in pathname)-.15 F -.15(ex)144
-160.8 S .458(pansion, and matched ag).15 F .458(ainst the e)-.05 F .458
+475.2 S .458(pansion, and matched ag).15 F .458(ainst the e)-.05 F .458
(xpanded v)-.15 F .458(alue of)-.25 F F0(par)4.209 E(ameter)-.15 E F1
-.459(using the rules described under)3.689 F F2 -.1(Pa)144 172.8 S(tter)
+.459(using the rules described under)3.689 F F2 -.1(Pa)144 487.2 S(tter)
.1 E 2.732(nM)-.15 G(atching)-2.732 E F1(belo)2.732 E 4.032 -.65(w. I)
-.25 H 2.732(ft).65 G .231
(he pattern matches a trailing portion of the e)-2.732 F .231(xpanded v)
--.15 F .231(alue of)-.25 F F0(par)3.981 E(a-)-.15 E(meter)144 184.8 Q F1
+-.15 F .231(alue of)-.25 F F0(par)3.981 E(a-)-.15 E(meter)144 499.2 Q F1
4.399(,t).73 G 1.899(hen the result of the e)-4.399 F 1.899
(xpansion is the e)-.15 F 1.899(xpanded v)-.15 F 1.9(alue of)-.25 F F0
(par)5.65 E(ameter)-.15 E F1 1.9(with the shortest)5.13 F .019(matching\
pattern \(the \231%\232 case\) or the longest matching pattern \(the \
-\231%%\232 case\) deleted.)144 196.8 R(If)5.019 E F0(par)3.769 E(a-)-.15
-E(meter)144 208.8 Q F1(is)3.559 E F2(@)2.829 E F1(or)2.829 E F2(*)2.829
+\231%%\232 case\) deleted.)144 511.2 R(If)5.019 E F0(par)3.769 E(a-)-.15
+E(meter)144 523.2 Q F1(is)3.559 E F2(@)2.829 E F1(or)2.829 E F2(*)2.829
E F1 2.829(,t)C .329(he pattern remo)-2.829 F -.25(va)-.15 G 2.829(lo)
.25 G .33(peration is applied to each positional parameter in turn, and)
--2.829 F .64(the e)144 220.8 R .64(xpansion is the resultant list.)-.15
+-2.829 F .64(the e)144 535.2 R .64(xpansion is the resultant list.)-.15
F(If)5.64 E F0(par)4.39 E(ameter)-.15 E F1 .64(is an array v)3.87 F .64
(ariable subscripted with)-.25 F F2(@)3.14 E F1(or)3.14 E F2(*)3.14 E F1
-3.14(,t)C(he)-3.14 E .422(pattern remo)144 232.8 R -.25(va)-.15 G 2.922
+3.14(,t)C(he)-3.14 E .422(pattern remo)144 547.2 R -.25(va)-.15 G 2.922
(lo).25 G .422
(peration is applied to each member of the array in turn, and the e)
--2.922 F .423(xpansion is the)-.15 F(resultant list.)144 244.8 Q(${)108
-261.6 Q F0(par)A(ameter)-.15 E F2(/)A F0(pattern)A F2(/)A F0(string)A F1
-(})A(${)108 273.6 Q F0(par)A(ameter)-.15 E F2(//)A F0(pattern)A F2(/)A
-F0(string)A F1(})A(${)108 285.6 Q F0(par)A(ameter)-.15 E F2(/#)A F0
-(pattern)A F2(/)A F0(string)A F1(})A(${)108 297.6 Q F0(par)A(ameter)-.15
-E F2(/%)A F0(pattern)A F2(/)A F0(string)A F1(})A F2 -.1(Pa)144 309.6 S
-(tter).1 E 3.254(ns)-.15 G(ubstitution)-3.254 E F1 5.754(.T)C(he)-5.754
-E F0(pattern)3.254 E F1 .754(is e)3.254 F .753
+-2.922 F .423(xpansion is the)-.15 F(resultant list.)144 559.2 Q(${)108
+576 Q F0(par)A(ameter)-.15 E F2(/)A F0(pattern)A F2(/)A F0(string)A F1
+(})A(${)108 588 Q F0(par)A(ameter)-.15 E F2(//)A F0(pattern)A F2(/)A F0
+(string)A F1(})A(${)108 600 Q F0(par)A(ameter)-.15 E F2(/#)A F0(pattern)
+A F2(/)A F0(string)A F1(})A(${)108 612 Q F0(par)A(ameter)-.15 E F2(/%)A
+F0(pattern)A F2(/)A F0(string)A F1(})A F2 -.1(Pa)144 624 S(tter).1 E
+3.254(ns)-.15 G(ubstitution)-3.254 E F1 5.754(.T)C(he)-5.754 E F0
+(pattern)3.254 E F1 .754(is e)3.254 F .753
(xpanded to produce a pattern and matched ag)-.15 F .753(ainst the e)
--.05 F(x-)-.15 E 1.163(panded v)144 321.6 R 1.163(alue of)-.25 F F0(par)
+-.05 F(x-)-.15 E 1.163(panded v)144 636 R 1.163(alue of)-.25 F F0(par)
3.664 E(ameter)-.15 E F1 1.164(as described under)3.664 F F2 -.1(Pa)
3.664 G(tter).1 E 3.664(nM)-.15 G(atching)-3.664 E F1(belo)3.664 E 4.964
--.65(w. T)-.25 H 1.164(he longest match of).65 F F0(pattern)144 333.6 Q
-F1 .266(in the e)2.766 F .266(xpanded v)-.15 F .265
-(alue is replaced with)-.25 F F0(string)2.765 E F1(.)A F0(string)5.265 E
-F1(under)2.765 E .265(goes tilde e)-.18 F .265(xpansion, parameter)-.15
-F 1.358(and v)144 345.6 R 1.358(ariable e)-.25 F 1.358
-(xpansion, arithmetic e)-.15 F 1.358
+-.65(w. T)-.25 H 1.164(he longest match of).65 F F0(pattern)144 648 Q F1
+.266(in the e)2.766 F .266(xpanded v)-.15 F .265(alue is replaced with)
+-.25 F F0(string)2.765 E F1(.)A F0(string)5.265 E F1(under)2.765 E .265
+(goes tilde e)-.18 F .265(xpansion, parameter)-.15 F 1.358(and v)144 660
+R 1.358(ariable e)-.25 F 1.358(xpansion, arithmetic e)-.15 F 1.358
(xpansion, command and process substitution, and quote re-)-.15 F(mo)144
-357.6 Q -.25(va)-.15 G(l.).25 E .652(In the \214rst form abo)144 374.4 R
+672 Q -.25(va)-.15 G(l.).25 E .652(In the \214rst form abo)144 688.8 R
-.15(ve)-.15 G 3.151(,o).15 G .651(nly the \214rst match is replaced.)
-3.151 F .651(If there are tw)5.651 F 3.151(os)-.1 G .651
-(lashes separating)-3.151 F F0(par)3.151 E(a-)-.15 E(meter)144 386.4 Q
+(lashes separating)-3.151 F F0(par)3.151 E(a-)-.15 E(meter)144 700.8 Q
F1(and)2.673 E F0(pattern)2.673 E F1 .173(\(the second form abo)2.673 F
-.15(ve)-.15 G .173(\), all matches of).15 F F0(pattern)2.673 E F1 .173
(are replaced with)2.673 F F0(string)2.673 E F1 5.174(.I)C(f)-5.174 E F0
-(pat-)2.674 E(tern)144 398.4 Q F1 .277(is preceded by)2.777 F F2(#)2.776
+(pat-)2.674 E(tern)144 712.8 Q F1 .277(is preceded by)2.777 F F2(#)2.776
E F1 .276(\(the third form abo)2.776 F -.15(ve)-.15 G .276
(\), it must match at the be).15 F .276(ginning of the e)-.15 F .276
-(xpanded v)-.15 F(alue)-.25 E(of)144 410.4 Q F0(par)2.638 E(ameter)-.15
+(xpanded v)-.15 F(alue)-.25 E(of)144 724.8 Q F0(par)2.638 E(ameter)-.15
E F1 5.138(.I)C(f)-5.138 E F0(pattern)2.638 E F1 .138(is preceded by)
2.638 F F2(%)2.638 E F1 .138(\(the fourth form abo)2.638 F -.15(ve)-.15
-G .139(\), it must match at the end of the).15 F -.15(ex)144 422.4 S
-(panded v).15 E(alue of)-.25 E F0(par)2.5 E(ameter)-.15 E F1(.)A .034
-(If the e)144 439.2 R .034(xpansion of)-.15 F F0(string)2.534 E F1 .034
-(is null, matches of)2.534 F F0(pattern)2.534 E F1 .034
-(are deleted and the)2.534 F F2(/)2.534 E F1(follo)2.534 E(wing)-.25 E
-F0(pattern)2.534 E F1 .033(may be)2.533 F(omitted.)144 451.2 Q .95
-(If the)144 468 R F2(patsub_r)3.45 E(eplacement)-.18 E F1 .95
-(shell option is enabled using)3.45 F F2(shopt)3.45 E F1 3.45(,a)C 1.25
--.15(ny u)-3.45 H .95(nquoted instances of).15 F F2(&)3.45 E F1(in)3.45
-E F0(string)144 480 Q F1(are replaced with the matching portion of)2.5 E
-F0(pattern)2.5 E F1(.)A .75(Quoting an)144 496.8 R 3.25(yp)-.15 G .75
-(art of)-3.25 F F0(string)3.25 E F1 .749(inhibits replacement in the e)
-3.249 F .749(xpansion of the quoted portion, including)-.15 F .808
-(replacement strings stored in shell v)144 508.8 R 3.308
+G .139(\), it must match at the end of the).15 F(GNU Bash 5.3)72 768 Q
+(2026 January 14)141.79 E(27)190.95 E 0 Cg EP
+%%Page: 28 28
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E -.15(ex)144 84 S(panded v).15 E(alue of)-.25 E F0
+(par)2.5 E(ameter)-.15 E F1(.)A .034(If the e)144 100.8 R .034
+(xpansion of)-.15 F F0(string)2.534 E F1 .034(is null, matches of)2.534
+F F0(pattern)2.534 E F1 .034(are deleted and the)2.534 F/F2 10
+/Times-Bold@0 SF(/)2.534 E F1(follo)2.534 E(wing)-.25 E F0(pattern)2.534
+E F1 .033(may be)2.533 F(omitted.)144 112.8 Q .95(If the)144 129.6 R F2
+(patsub_r)3.45 E(eplacement)-.18 E F1 .95(shell option is enabled using)
+3.45 F F2(shopt)3.45 E F1 3.45(,a)C 1.25 -.15(ny u)-3.45 H .95
+(nquoted instances of).15 F F2(&)3.45 E F1(in)3.45 E F0(string)144 141.6
+Q F1(are replaced with the matching portion of)2.5 E F0(pattern)2.5 E F1
+(.)A .75(Quoting an)144 158.4 R 3.25(yp)-.15 G .75(art of)-3.25 F F0
+(string)3.25 E F1 .749(inhibits replacement in the e)3.249 F .749
+(xpansion of the quoted portion, including)-.15 F .808
+(replacement strings stored in shell v)144 170.4 R 3.308
(ariables. Backslash)-.25 F(escapes)3.308 E F2(&)3.308 E F1(in)3.308 E
F0(string)3.308 E F1 3.308(;t)C .808(he backslash is re-)-3.308 F(mo)144
-520.8 Q -.15(ve)-.15 G 3.101(di).15 G 3.101(no)-3.101 G .601
+182.4 Q -.15(ve)-.15 G 3.101(di).15 G 3.101(no)-3.101 G .601
(rder to permit a literal)-3.101 F F2(&)3.101 E F1 .601
(in the replacement string.)3.101 F .6
(Backslash can also be used to es-)5.6 F 1.428(cape a backslash;)144
-532.8 R F2(\\\\)3.928 E F1 1.428
+194.4 R F2(\\\\)3.928 E F1 1.428
(results in a literal backslash in the replacement.)3.928 F 1.428
(Users should tak)6.428 F 3.929(ec)-.1 G 1.429(are if)-3.929 F F0
-(string)144 544.8 Q F1 .292(is double-quoted to a)2.792 F -.2(vo)-.2 G
+(string)144 206.4 Q F1 .292(is double-quoted to a)2.792 F -.2(vo)-.2 G
.292(id unw).2 F .292
(anted interactions between the backslash and double-quoting,)-.1 F .053
-(since backslash has special meaning within double quotes.)144 556.8 R
+(since backslash has special meaning within double quotes.)144 218.4 R
-.15(Pa)5.053 G .054(ttern substitution performs the check).15 F .07
-(for unquoted)144 568.8 R F2(&)2.57 E F1 .07(after e)2.57 F(xpanding)
+(for unquoted)144 230.4 R F2(&)2.57 E F1 .07(after e)2.57 F(xpanding)
-.15 E F0(string)2.569 E F1 2.569(;s)C .069
(hell programmers should quote an)-2.569 F 2.569(yo)-.15 G .069
(ccurrences of)-2.569 F F2(&)2.569 E F1(the)2.569 E(y)-.15 E -.1(wa)144
-580.8 S 1.112(nt to be tak).1 F 1.112
+242.4 S 1.112(nt to be tak).1 F 1.112
(en literally in the replacement and ensure an)-.1 F 3.612(yi)-.15 G
1.112(nstances of)-3.612 F F2(&)3.612 E F1(the)3.612 E 3.613(yw)-.15 G
-1.113(ant to be re-)-3.713 F(placed are unquoted.)144 592.8 Q(Lik)144
-609.6 Q 2.547(et)-.1 G .047(he pattern remo)-2.547 F -.25(va)-.15 G
+1.113(ant to be re-)-3.713 F(placed are unquoted.)144 254.4 Q(Lik)144
+271.2 Q 2.547(et)-.1 G .047(he pattern remo)-2.547 F -.25(va)-.15 G
2.547(lo).25 G .047
(perators, double quotes surrounding the replacement string quote the e)
-2.547 F(x-)-.15 E 1.061(panded characters, while double quotes enclosi\
-ng the entire parameter substitution do not, since)144 621.6 R(the e)144
-633.6 Q(xpansion is performed in a conte)-.15 E(xt that doesn')-.15 E
+ng the entire parameter substitution do not, since)144 283.2 R(the e)144
+295.2 Q(xpansion is performed in a conte)-.15 E(xt that doesn')-.15 E
2.5(tt)-.18 G(ak)-2.5 E 2.5(ea)-.1 G .3 -.15(ny e)-2.5 H
-(nclosing double quotes into account.).15 E .687(If the)144 650.4 R F2
+(nclosing double quotes into account.).15 E .687(If the)144 312 R F2
(nocasematch)3.187 E F1 .687
(shell option is enabled, the match is performed without re)3.187 F -.05
-(ga)-.15 G .687(rd to the case of).05 F(alphabetic characters.)144 662.4
-Q(If)144 679.2 Q F0(par)4.334 E(ameter)-.15 E F1(is)3.814 E F2(@)3.084 E
+(ga)-.15 G .687(rd to the case of).05 F(alphabetic characters.)144 324 Q
+(If)144 340.8 Q F0(par)4.334 E(ameter)-.15 E F1(is)3.814 E F2(@)3.084 E
F1(or)3.084 E F2(*)3.084 E F1 3.084(,t)C .585(he substitution operation\
is applied to each positional parameter in turn,)-3.084 F .51
-(and the e)144 691.2 R .51(xpansion is the resultant list.)-.15 F(If)
+(and the e)144 352.8 R .51(xpansion is the resultant list.)-.15 F(If)
5.51 E F0(par)4.259 E(ameter)-.15 E F1 .509(is an array v)3.739 F .509
(ariable subscripted with)-.25 F F2(@)3.009 E F1(or)3.009 E F2(*)3.009 E
F1(,)A .495(the substitution operation is applied to each member of the\
- array in turn, and the e)144 703.2 R .496(xpansion is the)-.15 F
-(resultant list.)144 715.2 Q(GNU Bash 5.3)72 768 Q(2025 April 7)149.285
-E(27)198.445 E 0 Cg EP
-%%Page: 28 28
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E(${)108 84 Q F0(par)A(ameter)-.15 E/F2 10
-/Times-Bold@0 SF<00>A F0(pattern)A F1(})A(${)108 96 Q F0(par)A(ameter)
--.15 E F2<0000>A F0(pattern)A F1(})A(${)108 108 Q F0(par)A(ameter)-.15 E
-F2(,)A F0(pattern)A F1(})A(${)108 120 Q F0(par)A(ameter)-.15 E F2(,,)A
-F0(pattern)A F1(})A F2 2.346(Case modi\214cation)144 132 R F1 7.346(.T)C
+ array in turn, and the e)144 364.8 R .496(xpansion is the)-.15 F
+(resultant list.)144 376.8 Q(${)108 393.6 Q F0(par)A(ameter)-.15 E F2
+<00>A F0(pattern)A F1(})A(${)108 405.6 Q F0(par)A(ameter)-.15 E F2<0000>
+A F0(pattern)A F1(})A(${)108 417.6 Q F0(par)A(ameter)-.15 E F2(,)A F0
+(pattern)A F1(})A(${)108 429.6 Q F0(par)A(ameter)-.15 E F2(,,)A F0
+(pattern)A F1(})A F2 2.346(Case modi\214cation)144 441.6 R F1 7.346(.T)C
2.346(his e)-7.346 F 2.345
(xpansion modi\214es the case of alphabetic characters in)-.15 F F0(par)
-4.845 E(ameter)-.15 E F1(.)A 1.474(First, the)144 144 R F0(pattern)3.974
-E F1 1.474(is e)3.974 F 1.474
+4.845 E(ameter)-.15 E F1(.)A 1.474(First, the)144 453.6 R F0(pattern)
+3.974 E F1 1.474(is e)3.974 F 1.474
(xpanded to produce a pattern as described belo)-.15 F 3.974(wu)-.25 G
(nder)-3.974 E/F3 9/Times-Bold@0 SF -.09(Pa)3.974 G(tter).09 E 3.725(nM)
--.135 G(atching)-3.725 E/F4 9/Times-Roman@0 SF(.)A F2(Bash)144 156 Q F1
-1.06(then e)3.56 F 1.059(xamines characters in the e)-.15 F 1.059
+-.135 G(atching)-3.725 E/F4 9/Times-Roman@0 SF(.)A F2(Bash)144 465.6 Q
+F1 1.06(then e)3.56 F 1.059(xamines characters in the e)-.15 F 1.059
(xpanded v)-.15 F 1.059(alue of)-.25 F F0(par)3.559 E(ameter)-.15 E F1
(ag)3.559 E(ainst)-.05 E F0(pattern)3.559 E F1 1.059(as described)3.559
-F(belo)144 168 Q 4.218 -.65(w. I)-.25 H 2.918(fac).65 G .419
+F(belo)144 477.6 Q 4.218 -.65(w. I)-.25 H 2.918(fac).65 G .419
(haracter matches the pattern, its case is con)-2.918 F -.15(ve)-.4 G
2.919(rted. The).15 F .419(pattern should not attempt to)2.919 F
-(match more than one character)144 180 Q(.)-.55 E .605
-(Using \231\000\232 con)144 196.8 R -.15(ve)-.4 G .605(rts lo).15 F .605
+(match more than one character)144 489.6 Q(.)-.55 E .605
+(Using \231\000\232 con)144 506.4 R -.15(ve)-.4 G .605(rts lo).15 F .605
(wercase letters matching)-.25 F F0(pattern)3.105 E F1 .605
(to uppercase; \231,)3.105 F 3.105<9a63>-.7 G(on)-3.105 E -.15(ve)-.4 G
-.605(rts matching upper).15 F(-)-.2 E .9(case letters to lo)144 208.8 R
+.605(rts matching upper).15 F(-)-.2 E .9(case letters to lo)144 518.4 R
3.4(wercase. The)-.25 F F2<00>3.4 E F1(and)3.4 E F2(,)3.4 E F1 -.25(va)
3.4 G .9(riants e).25 F .9(xamine the \214rst character in the e)-.15 F
-.9(xpanded v)-.15 F(alue)-.25 E .71(and con)144 220.8 R -.15(ve)-.4 G
+.9(xpanded v)-.15 F(alue)-.25 E .71(and con)144 530.4 R -.15(ve)-.4 G
.71(rt its case if it matches).15 F F0(pattern)3.21 E F1 3.21(;t)C(he)
-3.21 E F2<0000>3.21 E F1(and)3.21 E F2(,,)3.21 E F1 -.25(va)3.21 G .71
(riants e).25 F .71(xamine all characters in the e)-.15 F(x-)-.15 E .047
-(panded v)144 232.8 R .047(alue and con)-.25 F -.15(ve)-.4 G .047
+(panded v)144 542.4 R .047(alue and con)-.25 F -.15(ve)-.4 G .047
(rt each one that matches).15 F F0(pattern)2.547 E F1 5.047(.I)C(f)
-5.047 E F0(pattern)2.547 E F1 .047(is omitted, it is treated lik)2.547
-F 2.548(ea)-.1 G F2(?)A F1(,)A(which matches e)144 244.8 Q -.15(ve)-.25
-G(ry character).15 E(.)-.55 E(If)144 261.6 Q F0(par)4.18 E(ameter)-.15 E
+F 2.548(ea)-.1 G F2(?)A F1(,)A(which matches e)144 554.4 Q -.15(ve)-.25
+G(ry character).15 E(.)-.55 E(If)144 571.2 Q F0(par)4.18 E(ameter)-.15 E
F1(is)3.66 E F2(@)2.93 E F1(or)2.93 E F2(*)2.93 E F1 2.93(,t)C .429(he \
case modi\214cation operation is applied to each positional parameter i\
-n)-2.93 F .523(turn, and the e)144 273.6 R .524
+n)-2.93 F .523(turn, and the e)144 583.2 R .524
(xpansion is the resultant list.)-.15 F(If)5.524 E F0(par)4.274 E
(ameter)-.15 E F1 .524(is an array v)3.754 F .524
-(ariable subscripted with)-.25 F F2(@)3.024 E F1(or)144 285.6 Q F2(*)
+(ariable subscripted with)-.25 F F2(@)3.024 E F1(or)144 595.2 Q F2(*)
2.569 E F1 2.569(,t)C .068(he case modi\214cation operation is applied \
to each member of the array in turn, and the e)-2.569 F(xpan-)-.15 E
-(sion is the resultant list.)144 297.6 Q(${)108 314.4 Q F0(par)A(ameter)
--.15 E F2(@)A F0(oper)A(ator)-.15 E F1(})A F2 -.1(Pa)144 326.4 S .86
+(sion is the resultant list.)144 607.2 Q(${)108 624 Q F0(par)A(ameter)
+-.15 E F2(@)A F0(oper)A(ator)-.15 E F1(})A F2 -.1(Pa)144 636 S .86
(rameter transf).1 F(ormation)-.25 E F1 5.86(.T)C .86(he e)-5.86 F .86
(xpansion is either a transformation of the v)-.15 F .86(alue of)-.25 F
-F0(par)3.36 E(ameter)-.15 E F1 .154(or information about)144 338.4 R F0
+F0(par)3.36 E(ameter)-.15 E F1 .154(or information about)144 648 R F0
(par)2.654 E(ameter)-.15 E F1 .153(itself, depending on the v)2.654 F
.153(alue of)-.25 F F0(oper)2.653 E(ator)-.15 E F1 5.153(.E)C(ach)-5.153
E F0(oper)2.653 E(ator)-.15 E F1 .153(is a sin-)2.653 F(gle letter:)144
-350.4 Q F2(U)144 362.4 Q F1 .142(The e)180 362.4 R .142
+660 Q F2(U)144 672 Q F1 .142(The e)180 672 R .142
(xpansion is a string that is the v)-.15 F .142(alue of)-.25 F F0(par)
2.642 E(ameter)-.15 E F1 .142(with lo)2.642 F .143
-(wercase alphabetic charac-)-.25 F(ters con)180 374.4 Q -.15(ve)-.4 G
-(rted to uppercase.).15 E F2(u)144 386.4 Q F1 .43(The e)180 386.4 R .43
+(wercase alphabetic charac-)-.25 F(ters con)180 684 Q -.15(ve)-.4 G
+(rted to uppercase.).15 E F2(u)144 696 Q F1 .43(The e)180 696 R .43
(xpansion is a string that is the v)-.15 F .429(alue of)-.25 F F0(par)
2.929 E(ameter)-.15 E F1 .429(with the \214rst character con)2.929 F
--.15(ve)-.4 G(rted).15 E(to uppercase, if it is alphabetic.)180 398.4 Q
-F2(L)144 410.4 Q F1 .124(The e)180 410.4 R .124
-(xpansion is a string that is the v)-.15 F .124(alue of)-.25 F F0(par)
-2.624 E(ameter)-.15 E F1 .125(with uppercase alphabetic charac-)2.625 F
-(ters con)180 422.4 Q -.15(ve)-.4 G(rted to lo).15 E(wercase.)-.25 E F2
-(Q)144 434.4 Q F1 1.065(The e)180 434.4 R 1.065
+-.15(ve)-.4 G(rted).15 E(to uppercase, if it is alphabetic.)180 708 Q
+(GNU Bash 5.3)72 768 Q(2026 January 14)141.79 E(28)190.95 E 0 Cg EP
+%%Page: 29 29
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(L)144 84 Q F1 .124(The e)180
+84 R .124(xpansion is a string that is the v)-.15 F .124(alue of)-.25 F
+F0(par)2.624 E(ameter)-.15 E F1 .125(with uppercase alphabetic charac-)
+2.625 F(ters con)180 96 Q -.15(ve)-.4 G(rted to lo).15 E(wercase.)-.25 E
+F2(Q)144 108 Q F1 1.065(The e)180 108 R 1.065
(xpansion is a string that is the v)-.15 F 1.065(alue of)-.25 F F0(par)
3.565 E(ameter)-.15 E F1 1.064(quoted in a format that can be)3.565 F
-(reused as input.)180 446.4 Q F2(E)144 458.4 Q F1 .44(The e)180 458.4 R
-.441(xpansion is a string that is the v)-.15 F .441(alue of)-.25 F F0
-(par)2.941 E(ameter)-.15 E F1 .441(with backslash escape sequences)2.941
-F -.15(ex)180 470.4 S(panded as with the).15 E F2<2408>2.5 E F1 1.666
-(...)C F2<08>-1.666 E F1(quoting mechanism.)2.5 E F2(P)144 482.4 Q F1
-1.073(The e)180 482.4 R 1.073
-(xpansion is a string that is the result of e)-.15 F 1.073
-(xpanding the v)-.15 F 1.073(alue of)-.25 F F0(par)3.573 E(ameter)-.15 E
-F1 1.073(as if it)3.573 F(were a prompt string \(see)180 494.4 Q F2(PR)
-2.5 E(OMPTING)-.3 E F1(belo)2.5 E(w\).)-.25 E F2(A)144 506.4 Q F1 1.137
-(The e)180 506.4 R 1.138
+(reused as input.)180 120 Q F2(E)144 132 Q F1 .44(The e)180 132 R .441
+(xpansion is a string that is the v)-.15 F .441(alue of)-.25 F F0(par)
+2.941 E(ameter)-.15 E F1 .441(with backslash escape sequences)2.941 F
+-.15(ex)180 144 S(panded as with the).15 E F2<2408>2.5 E F1 1.666(...)C
+F2<08>-1.666 E F1(quoting mechanism.)2.5 E F2(P)144 156 Q F1 1.073
+(The e)180 156 R 1.073(xpansion is a string that is the result of e)-.15
+F 1.073(xpanding the v)-.15 F 1.073(alue of)-.25 F F0(par)3.573 E
+(ameter)-.15 E F1 1.073(as if it)3.573 F(were a prompt string \(see)180
+168 Q F2(PR)2.5 E(OMPTING)-.3 E F1(belo)2.5 E(w\).)-.25 E F2(A)144 180 Q
+F1 1.137(The e)180 180 R 1.138
(xpansion is a string in the form of an assignment statement or)-.15 F
-F2(declar)3.638 E(e)-.18 E F1(command)3.638 E(that, if e)180 518.4 Q
--.25(va)-.25 G(luated, recreates).25 E F0(par)2.5 E(ameter)-.15 E F1
-(with its attrib)2.5 E(utes and v)-.2 E(alue.)-.25 E F2(K)144 530.4 Q F1
-1.34(Produces a possibly-quoted v)180 530.4 R 1.339(ersion of the v)-.15
-F 1.339(alue of)-.25 F F0(par)3.839 E(ameter)-.15 E F1 3.839(,e)C 1.339
-(xcept that it prints the)-3.989 F -.25(va)180 542.4 S .257
-(lues of inde).25 F -.15(xe)-.15 G 2.757(da).15 G .257(nd associati)
--2.757 F .557 -.15(ve a)-.25 H .257(rrays as a sequence of quoted k).15
-F -.15(ey)-.1 G(-v).15 E .257(alue pairs \(see)-.25 F F2(Ar)2.758 E(-)
--.37 E(rays)180 554.4 Q F1(abo)2.5 E -.15(ve)-.15 G 2.5(\). The).15 F
--.1(ke)2.5 G(ys and v)-.05 E
+F2(declar)3.638 E(e)-.18 E F1(command)3.638 E(that, if e)180 192 Q -.25
+(va)-.25 G(luated, recreates).25 E F0(par)2.5 E(ameter)-.15 E F1
+(with its attrib)2.5 E(utes and v)-.2 E(alue.)-.25 E F2(K)144 204 Q F1
+1.34(Produces a possibly-quoted v)180 204 R 1.339(ersion of the v)-.15 F
+1.339(alue of)-.25 F F0(par)3.839 E(ameter)-.15 E F1 3.839(,e)C 1.339
+(xcept that it prints the)-3.989 F -.25(va)180 216 S .257(lues of inde)
+.25 F -.15(xe)-.15 G 2.757(da).15 G .257(nd associati)-2.757 F .557 -.15
+(ve a)-.25 H .257(rrays as a sequence of quoted k).15 F -.15(ey)-.1 G
+(-v).15 E .257(alue pairs \(see)-.25 F F2(Ar)2.758 E(-)-.37 E(rays)180
+228 Q F1(abo)2.5 E -.15(ve)-.15 G 2.5(\). The).15 F -.1(ke)2.5 G
+(ys and v)-.05 E
(alues are quoted in a format that can be reused as input.)-.25 E F2(a)
-144 566.4 Q F1(The e)180 566.4 Q
+144 240 Q F1(The e)180 240 Q
(xpansion is a string consisting of \215ag v)-.15 E(alues representing)
-.25 E F0(par)2.5 E(ameter)-.15 E F1 1.1 -.55('s a)D(ttrib).55 E(utes.)
--.2 E F2(k)144 578.4 Q F1(Lik)180 578.4 Q 2.658(et)-.1 G .157
+-.2 E F2(k)144 252 Q F1(Lik)180 252 Q 2.658(et)-.1 G .157
(he K transformation, b)-2.658 F .157(ut e)-.2 F .157(xpands the k)-.15
F -.15(ey)-.1 G 2.657(sa).15 G .157(nd v)-2.657 F .157(alues of inde)
-.25 F -.15(xe)-.15 G 2.657(da).15 G .157(nd associati)-2.657 F .457
--.15(ve a)-.25 H -.2(r-).15 G(rays to separate w)180 590.4 Q
-(ords after w)-.1 E(ord splitting.)-.1 E(If)144 607.2 Q F0(par)4.402 E
-(ameter)-.15 E F1(is)3.882 E F2(@)3.152 E F1(or)3.152 E F2(*)3.153 E F1
-3.153(,t)C .653(he operation is applied to each positional parameter in\
- turn, and the e)-3.153 F(x-)-.15 E .403(pansion is the resultant list.)
-144 619.2 R(If)5.403 E F0(par)4.153 E(ameter)-.15 E F1 .403
-(is an array v)3.633 F .403(ariable subscripted with)-.25 F F2(@)2.903 E
-F1(or)2.903 E F2(*)2.903 E F1 2.903(,t)C .402(he opera-)-2.903 F
+-.15(ve a)-.25 H -.2(r-).15 G(rays to separate w)180 264 Q(ords after w)
+-.1 E(ord splitting.)-.1 E(If)144 280.8 Q F0(par)4.402 E(ameter)-.15 E
+F1(is)3.882 E F2(@)3.152 E F1(or)3.152 E F2(*)3.153 E F1 3.153(,t)C .653
+(he operation is applied to each positional parameter in turn, and the \
+e)-3.153 F(x-)-.15 E .403(pansion is the resultant list.)144 292.8 R(If)
+5.403 E F0(par)4.153 E(ameter)-.15 E F1 .403(is an array v)3.633 F .403
+(ariable subscripted with)-.25 F F2(@)2.903 E F1(or)2.903 E F2(*)2.903 E
+F1 2.903(,t)C .402(he opera-)-2.903 F
(tion is applied to each member of the array in turn, and the e)144
-631.2 Q(xpansion is the resultant list.)-.15 E .708(The result of the e)
-144 648 R .708(xpansion is subject to w)-.15 F .708
+304.8 Q(xpansion is the resultant list.)-.15 E .708(The result of the e)
+144 321.6 R .708(xpansion is subject to w)-.15 F .708
(ord splitting and pathname e)-.1 F .708(xpansion as described be-)-.15
-F(lo)144 660 Q -.65(w.)-.25 G F2(Command Substitution)87 676.8 Q F0 .324
-(Command substitution)108 688.8 R F1(allo)2.824 E .324
+F(lo)144 333.6 Q -.65(w.)-.25 G F2(Command Substitution)87 350.4 Q F0
+.324(Command substitution)108 362.4 R F1(allo)2.824 E .324
(ws the output of a command to replace the command itself.)-.25 F .323
-(There are tw)5.323 F 2.823(os)-.1 G(tan-)-2.823 E(dard forms:)108 700.8
-Q F2($\()144 717.6 Q F0(command)A F2(\))1.666 E F1(or \(deprecated\))108
-729.6 Q(GNU Bash 5.3)72 768 Q(2025 April 7)149.285 E(28)198.445 E 0 Cg
-EP
-%%Page: 29 29
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF<92>144 84 Q F0(command)A F2
-<92>A F1(.)A F2(Bash)108 100.8 Q F1 .088(performs the e)2.588 F .088
-(xpansion by e)-.15 F -.15(xe)-.15 G(cuting).15 E F0(command)2.588 E F1
-.089(in a subshell en)2.589 F .089(vironment and replacing the command)
--.4 F .41(substitution with the standard output of the command, with an)
-108 112.8 R 2.91(yt)-.15 G .41(railing ne)-2.91 F .41(wlines deleted.)
--.25 F .41(Embedded ne)5.41 F(w-)-.25 E .191(lines are not deleted, b)
-108 124.8 R .192(ut the)-.2 F 2.692(ym)-.15 G .192(ay be remo)-2.692 F
--.15(ve)-.15 G 2.692(dd).15 G .192(uring w)-2.692 F .192(ord splitting.)
--.1 F .192(The command substitution)5.192 F F2($\(cat)2.692 E F0(\214le)
-2.692 E F2(\))A F1(can be replaced by the equi)108 136.8 Q -.25(va)-.25
-G(lent b).25 E(ut f)-.2 E(aster)-.1 E F2($\(<)2.5 E F0(\214le)2.5 E F2
-(\))A F1(.)A -.4(Wi)108 153.6 S 1.237(th the old-style backquote form o\
-f substitution, backslash retains its literal meaning e).4 F 1.237
-(xcept when fol-)-.15 F(lo)108 165.6 Q .527(wed by)-.25 F F2($)3.027 E
-F1(,)A F2<92>3.027 E F1 3.027(,o)C(r)-3.027 E F2(\\)3.027 E F1 5.527(.T)
-C .528(he \214rst backquote not preceded by a backslash terminates the \
-command substitution.)-5.527 F .092(When using the $\()108 177.6 R F0
-(command).833 E F1 2.592(\)f)1.666 G .092
-(orm, all characters between the parentheses mak)-2.592 F 2.592(eu)-.1 G
-2.592(pt)-2.592 G .092(he command; none are)-2.592 F(treated specially)
-108 189.6 Q(.)-.65 E
-(There is an alternate form of command substitution:)108 206.4 Q F2(${)
-144 223.2 Q F0 2.5(cc)C(ommand)-2.5 E F2 1.666(;})C F1 .639(which e)108
-240 R -.15(xe)-.15 G(cutes).15 E F0(command)3.139 E F1 .639
+(There are tw)5.323 F 2.823(os)-.1 G(tan-)-2.823 E(dard forms:)108 374.4
+Q F2($\()144 391.2 Q F0(command)A F2(\))1.666 E F1(or \(deprecated\))108
+403.2 Q F2<92>144 415.2 Q F0(command)A F2<92>A F1(.)A F2(Bash)108 432 Q
+F1 .088(performs the e)2.588 F .088(xpansion by e)-.15 F -.15(xe)-.15 G
+(cuting).15 E F0(command)2.588 E F1 .089(in a subshell en)2.589 F .089
+(vironment and replacing the command)-.4 F .41
+(substitution with the standard output of the command, with an)108 444 R
+2.91(yt)-.15 G .41(railing ne)-2.91 F .41(wlines deleted.)-.25 F .41
+(Embedded ne)5.41 F(w-)-.25 E .191(lines are not deleted, b)108 456 R
+.192(ut the)-.2 F 2.692(ym)-.15 G .192(ay be remo)-2.692 F -.15(ve)-.15
+G 2.692(dd).15 G .192(uring w)-2.692 F .192(ord splitting.)-.1 F .192
+(The command substitution)5.192 F F2($\(cat)2.692 E F0(\214le)2.692 E F2
+(\))A F1(can be replaced by the equi)108 468 Q -.25(va)-.25 G(lent b).25
+E(ut f)-.2 E(aster)-.1 E F2($\(<)2.5 E F0(\214le)2.5 E F2(\))A F1(.)A
+-.4(Wi)108 484.8 S 1.237(th the old-style backquote form of substitutio\
+n, backslash retains its literal meaning e).4 F 1.237(xcept when fol-)
+-.15 F(lo)108 496.8 Q .527(wed by)-.25 F F2($)3.027 E F1(,)A F2<92>3.027
+E F1 3.027(,o)C(r)-3.027 E F2(\\)3.027 E F1 5.527(.T)C .528(he \214rst \
+backquote not preceded by a backslash terminates the command substituti\
+on.)-5.527 F .092(When using the $\()108 508.8 R F0(command).833 E F1
+2.592(\)f)1.666 G .092(orm, all characters between the parentheses mak)
+-2.592 F 2.592(eu)-.1 G 2.592(pt)-2.592 G .092(he command; none are)
+-2.592 F(treated specially)108 520.8 Q(.)-.65 E
+(There is an alternate form of command substitution:)108 537.6 Q F2(${)
+144 554.4 Q F0 2.5(cc)C(ommand)-2.5 E F2 1.666(;})C F1 .639(which e)108
+571.2 R -.15(xe)-.15 G(cutes).15 E F0(command)3.139 E F1 .639
(in the current e)3.139 F -.15(xe)-.15 G .639(cution en).15 F .639
(vironment and captures its output, ag)-.4 F .64(ain with trailing)-.05
-F(ne)108 252 Q(wlines remo)-.25 E -.15(ve)-.15 G(d.).15 E .271
-(The character)108 268.8 R F0(c)2.771 E F1(follo)2.771 E .271
-(wing the open brace must be a space, tab, ne)-.25 F .271(wline, or)-.25
-F F2(|)2.771 E F1 2.771(,a)C .271(nd the close brace must be in)-2.771 F
-2.821(ap)108 280.8 S .321(osition where a reserv)-2.821 F .321(ed w)-.15
-F .321(ord may appear \(i.e., preceded by a command terminator such as \
-semicolon\).)-.1 F F2(Bash)108 292.8 Q F1(allo)2.71 E .21
+F(ne)108 583.2 Q(wlines remo)-.25 E -.15(ve)-.15 G(d.).15 E .115
+(The character)108 600 R F0(c)2.615 E F1(follo)2.615 E .115
+(wing the open brace must be a space, tab, ne)-.25 F .114
+(wline, \231|\232, or \231;\232; and the close brace must)-.25 F .424
+(be in a position where a reserv)108 612 R .424(ed w)-.15 F .425
+(ord may appear \(i.e., preceded by a command terminator such as semi-)
+-.1 F(colon\).)108 624 Q F2(Bash)5.227 E F1(allo)2.727 E .227
(ws the close brace to be joined to the remaining characters in the w)
--.25 F .209(ord without being follo)-.1 F .209(wed by)-.25 F 2.5(as)108
-304.8 S(hell metacharacter as a reserv)-2.5 E(ed w)-.15 E(ord w)-.1 E
-(ould usually require.)-.1 E(An)108 321.6 Q 3.384(ys)-.15 G .884(ide ef)
+-.25 F .226(ord without being fol-)-.1 F(lo)108 636 Q
+(wed by a shell metacharacter as a reserv)-.25 E(ed w)-.15 E(ord w)-.1 E
+(ould usually require.)-.1 E(An)108 652.8 Q 3.384(ys)-.15 G .884(ide ef)
-3.384 F .884(fects of)-.25 F F0(command)3.384 E F1(tak)3.384 E 3.384
(ee)-.1 G -.25(ff)-3.384 G .884(ect immediately in the current e).25 F
-.15(xe)-.15 G .884(cution en).15 F .884(vironment and persist in)-.4 F
-(the current en)108 333.6 Q
+(the current en)108 664.8 Q
(vironment after the command completes \(e.g., the)-.4 E F2(exit)2.5 E
F1 -.2(bu)2.5 G(iltin e).2 E(xits the shell\).)-.15 E .221
-(This type of command substitution super\214cially resembles e)108 350.4
+(This type of command substitution super\214cially resembles e)108 681.6
R -.15(xe)-.15 G .221(cuting an unnamed shell function: local v).15 F
(ari-)-.25 E .172(ables are created as when a shell function is e)108
-362.4 R -.15(xe)-.15 G .172(cuting, and the).15 F F2 -.18(re)2.672 G
+693.6 R -.15(xe)-.15 G .172(cuting, and the).15 F F2 -.18(re)2.672 G
(tur).18 E(n)-.15 E F1 -.2(bu)2.672 G .172(iltin forces).2 F F0(command)
-2.672 E F1 .172(to complete;)2.672 F(ho)108 374.4 Q(we)-.25 E -.15(ve)
+2.672 E F1 .172(to complete;)2.672 F(ho)108 705.6 Q(we)-.25 E -.15(ve)
-.25 G 2.521 -.4(r, t).15 H 1.721(he rest of the e).4 F -.15(xe)-.15 G
1.721(cution en).15 F 1.721
(vironment, including the positional parameters, is shared with the)-.4
-F(caller)108 386.4 Q(.)-.55 E .392(If the \214rst character follo)108
-403.2 R .392(wing the open brace is a)-.25 F F2(|)2.892 E F1 2.892(,t)C
-.392(he construct e)-2.892 F .392(xpands to the v)-.15 F .392
-(alue of the)-.25 F F2(REPL)2.892 E(Y)-.92 E F1(shell)2.892 E -.25(va)
-108 415.2 S .505(riable after).25 F F0(command)3.005 E F1 -.15(exe)3.005
-G .505(cutes, without remo).15 F .505(ving an)-.15 F 3.005(yt)-.15 G
-.505(railing ne)-3.005 F .505(wlines, and the standard output of)-.25 F
-F0(com-)3.005 E(mand)108 427.2 Q F1 1.208
-(remains the same as in the calling shell.)3.708 F F2(Bash)6.208 E F1
-(creates)3.708 E F2(REPL)3.708 E(Y)-.92 E F1 1.208
-(as an initially-unset local v)3.708 F(ariable)-.25 E(when)108 439.2 Q
-F0(command)3.514 E F1 -.15(exe)3.514 G 1.014(cutes, and restores).15 F
+F(caller)108 717.6 Q(.)-.55 E(GNU Bash 5.3)72 768 Q(2026 January 14)
+141.79 E(29)190.95 E 0 Cg EP
+%%Page: 30 30
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E .875(If the \214rst character follo)108 84 R .876
+(wing the open brace is a \231;\232, the construct beha)-.25 F -.15(ve)
+-.2 G 3.376(sl).15 G(ik)-3.376 E 3.376(et)-.1 G .876(he form abo)-3.376
+F 1.176 -.15(ve b)-.15 H .876(ut pre-)-.05 F(serv)108 96 Q .211(es an)
+-.15 F 2.711(yt)-.15 G .211(railing ne)-2.711 F .211
+(wlines in the output of)-.25 F F0(command)2.711 E F1 .211
+(instead of remo)2.711 F .21(ving them.)-.15 F .21
+(This form is useful when)5.21 F(the trailing ne)108 108 Q
+(wlines are signi\214cant and should not be stripped from the command')
+-.25 E 2.5(so)-.55 G(utput.)-2.5 E 1.081(If the \214rst character follo)
+108 124.8 R 1.082(wing the open brace is a \231|\232, the construct e)
+-.25 F 1.082(xpands to the v)-.15 F 1.082(alue of the)-.25 F/F2 10
+/Times-Bold@0 SF(REPL)3.582 E(Y)-.92 E F1 .584(shell v)108 136.8 R .584
+(ariable after)-.25 F F0(command)3.084 E F1 -.15(exe)3.084 G .584
+(cutes, without remo).15 F .584(ving an)-.15 F 3.084(yt)-.15 G .583
+(railing ne)-3.084 F .583(wlines, and the standard output of)-.25 F F0
+(command)108 148.8 Q F1 .167(remains the same as in the calling shell.)
+2.666 F F2(Bash)5.167 E F1(creates)2.667 E F2(REPL)2.667 E(Y)-.92 E F1
+.167(as an initially-unset local v)2.667 F(ariable)-.25 E(when)108 160.8
+Q F0(command)3.514 E F1 -.15(exe)3.514 G 1.014(cutes, and restores).15 F
F2(REPL)3.514 E(Y)-.92 E F1 1.014(to the v)3.514 F 1.014
(alue it had before the command substitution after)-.25 F F0(command)108
-451.2 Q F1(completes, as with an)2.5 E 2.5(yl)-.15 G(ocal v)-2.5 E
-(ariable.)-.25 E .894(Command substitutions may be nested.)108 468 R
+172.8 Q F1(completes, as with an)2.5 E 2.5(yl)-.15 G(ocal v)-2.5 E
+(ariable.)-.25 E .894(Command substitutions may be nested.)108 189.6 R
2.494 -.8(To n)5.894 H .894
(est when using the backquoted form, escape the inner back-).8 F
-(quotes with backslashes.)108 480 Q .004
-(If the substitution appears within double quotes,)108 496.8 R F2(bash)
+(quotes with backslashes.)108 201.6 Q .004
+(If the substitution appears within double quotes,)108 218.4 R F2(bash)
2.504 E F1 .004(does not perform w)2.504 F .004
(ord splitting and pathname e)-.1 F(xpan-)-.15 E(sion on the results.)
-108 508.8 Q F2(Arithmetic Expansion)87 525.6 Q F1 1.139(Arithmetic e)108
-537.6 R 1.139(xpansion e)-.15 F -.25(va)-.25 G 1.139
+108 230.4 Q F2(Arithmetic Expansion)87 247.2 Q F1 1.139(Arithmetic e)108
+259.2 R 1.139(xpansion e)-.15 F -.25(va)-.25 G 1.139
(luates an arithmetic e).25 F 1.139
(xpression and substitutes the result.)-.15 F 1.14
-(The format for arith-)6.139 F(metic e)108 549.6 Q(xpansion is:)-.15 E
-F2($\(\()144 566.4 Q F0 -.2(ex)C(pr).2 E(ession)-.37 E F2(\)\))A F1(The)
-108 583.2 Q F0 -.2(ex)3.584 G(pr).2 E(ession)-.37 E F1(under)3.824 E
+(The format for arith-)6.139 F(metic e)108 271.2 Q(xpansion is:)-.15 E
+F2($\(\()144 288 Q F0 -.2(ex)C(pr).2 E(ession)-.37 E F2(\)\))A F1(The)
+108 304.8 Q F0 -.2(ex)3.584 G(pr).2 E(ession)-.37 E F1(under)3.824 E
1.084(goes the same e)-.18 F 1.084
(xpansions as if it were within double quotes, b)-.15 F 1.084
-(ut unescaped double)-.2 F .652(quote characters in)108 595.2 R F0 -.2
+(ut unescaped double)-.2 F .652(quote characters in)108 316.8 R F0 -.2
(ex)3.152 G(pr).2 E(ession)-.37 E F1 .652
(are not treated specially and are remo)3.152 F -.15(ve)-.15 G 3.153
(d. All).15 F(tok)3.153 E .653(ens in the e)-.1 F .653(xpression un-)
--.15 F(der)108 607.2 Q .179(go parameter and v)-.18 F .179(ariable e)
+-.15 F(der)108 328.8 Q .179(go parameter and v)-.18 F .179(ariable e)
-.25 F .179(xpansion, command substitution, and quote remo)-.15 F -.25
(va)-.15 G 2.678(l. The).25 F .178(result is treated as)2.678 F .354
-(the arithmetic e)108 619.2 R .354(xpression to be e)-.15 F -.25(va)-.25
+(the arithmetic e)108 340.8 R .354(xpression to be e)-.15 F -.25(va)-.25
G 2.854(luated. Since).25 F .354(the w)2.854 F .354
(ay Bash handles double quotes can potentially result)-.1 F .234
-(in empty strings, arithmetic e)108 631.2 R .234
+(in empty strings, arithmetic e)108 352.8 R .234
(xpansion treats those as e)-.15 F .233(xpressions that e)-.15 F -.25
(va)-.25 G .233(luate to 0.).25 F .233(Arithmetic e)5.233 F(xpansions)
--.15 E(may be nested.)108 643.2 Q 1.378(The e)108 660 R -.25(va)-.25 G
+-.15 E(may be nested.)108 364.8 Q 1.378(The e)108 381.6 R -.25(va)-.25 G
1.378(luation is performed according to the rules listed belo).25 F
3.878(wu)-.25 G(nder)-3.878 E/F3 9/Times-Bold@0 SF 1.378(ARITHMETIC EV)
3.878 F(ALU)-1.215 E -.855(AT)-.54 G(ION).855 E/F4 9/Times-Roman@0 SF(.)
-A F1(If)5.879 E F0 -.2(ex)108 672 S(pr).2 E(ession)-.37 E F1 .022(is in)
-2.762 F -.25(va)-.4 G(lid,).25 E F2(bash)2.522 E F1 .022
+A F1(If)5.879 E F0 -.2(ex)108 393.6 S(pr).2 E(ession)-.37 E F1 .022
+(is in)2.762 F -.25(va)-.4 G(lid,).25 E F2(bash)2.522 E F1 .022
(prints a message to standard error indicating f)2.522 F .022
(ailure, does not perform the substi-)-.1 F(tution, and does not e)108
-684 Q -.15(xe)-.15 G(cute the command associated with the e).15 E
-(xpansion.)-.15 E F2(Pr)87 700.8 Q(ocess Substitution)-.18 E F0(Pr)108
-712.8 Q .405(ocess substitution)-.45 F F1(allo)2.905 E .405
+405.6 Q -.15(xe)-.15 G(cute the command associated with the e).15 E
+(xpansion.)-.15 E F2(Pr)87 422.4 Q(ocess Substitution)-.18 E F0(Pr)108
+434.4 Q .405(ocess substitution)-.45 F F1(allo)2.905 E .405
(ws a process')-.25 F 2.905(si)-.55 G .405
(nput or output to be referred to using a \214lename.)-2.905 F .405
-(It tak)5.405 F .405(es the form)-.1 F(of)108 724.8 Q F2(<\()3.251 E F0
+(It tak)5.405 F .405(es the form)-.1 F(of)108 446.4 Q F2(<\()3.251 E F0
(list)A F2(\)).833 E F1(or)3.251 E F2(>\()3.251 E F0(list)A F2(\)).833 E
F1 5.751(.T)C .751(he process)-5.751 F F0(list)3.251 E F1 .751
(is run asynchronously)3.251 F 3.251(,a)-.65 G .751
-(nd its input or output appears as a \214lename.)-3.251 F(GNU Bash 5.3)
-72 768 Q(2025 April 7)149.285 E(29)198.445 E 0 Cg EP
-%%Page: 30 30
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E(This \214lename is passed as an ar)108 84 Q
+(nd its input or output appears as a \214lename.)-3.251 F
+(This \214lename is passed as an ar)108 458.4 Q
(gument to the current command as the result of the e)-.18 E(xpansion.)
--.15 E .447(If the)108 100.8 R/F2 10/Times-Bold@0 SF(>\()2.947 E F0
-(list)A F2(\)).833 E F1 .447(form is used, writing to the \214le pro)
-2.947 F .447(vides input for)-.15 F F0(list)2.947 E F1 5.447(.I)C 2.948
-(ft)-5.447 G(he)-2.948 E F2(<\()2.948 E F0(list)A F2(\)).833 E F1 .448
+-.15 E .447(If the)108 475.2 R F2(>\()2.947 E F0(list)A F2(\)).833 E F1
+.447(form is used, writing to the \214le pro)2.947 F .447
+(vides input for)-.15 F F0(list)2.947 E F1 5.447(.I)C 2.948(ft)-5.447 G
+(he)-2.948 E F2(<\()2.948 E F0(list)A F2(\)).833 E F1 .448
(form is used, reading the)2.948 F .504(\214le obtains the output of)108
-112.8 R F0(list)3.003 E F1 5.503(.N)C 3.003(os)-5.503 G .503
+487.2 R F0(list)3.003 E F1 5.503(.N)C 3.003(os)-5.503 G .503
(pace may appear between the)-3.003 F F2(<)3.003 E F1(or)3.003 E F2(>)
3.003 E F1 .503(and the left parenthesis, otherwise)3.003 F
-(the construct w)108 124.8 Q(ould be interpreted as a redirection.)-.1 E
+(the construct w)108 499.2 Q(ould be interpreted as a redirection.)-.1 E
1.163(Process substitution is supported on systems that support named p\
-ipes \()108 141.6 R F0(FIFOs)A F1 3.664(\)o)C 3.664(rt)-3.664 G(he)
--3.664 E F0(/de)3.664 E(v/fd)-.15 E F1 1.164(method of)3.664 F
-(naming open \214les.)108 153.6 Q .897(When a)108 170.4 R -.25(va)-.2 G
+ipes \()108 516 R F0(FIFOs)A F1 3.664(\)o)C 3.664(rt)-3.664 G(he)-3.664
+E F0(/de)3.664 E(v/fd)-.15 E F1 1.164(method of)3.664 F
+(naming open \214les.)108 528 Q .897(When a)108 544.8 R -.25(va)-.2 G
.896(ilable, process substitution is performed simultaneously with para\
meter and v).25 F .896(ariable e)-.25 F(xpansion,)-.15 E
-(command substitution, and arithmetic e)108 182.4 Q(xpansion.)-.15 E F2
--.75(Wo)87 199.2 S(rd Splitting).75 E F1 1.142
-(The shell scans the results of parameter e)108 211.2 R 1.143
+(command substitution, and arithmetic e)108 556.8 Q(xpansion.)-.15 E F2
+-.75(Wo)87 573.6 S(rd Splitting).75 E F1 1.142
+(The shell scans the results of parameter e)108 585.6 R 1.143
(xpansion, command substitution, and arithmetic e)-.15 F 1.143
-(xpansion that)-.15 F(did not occur within double quotes for)108 223.2 Q
+(xpansion that)-.15 F(did not occur within double quotes for)108 597.6 Q
F0(wor)2.84 E 2.5(ds)-.37 G(plitting)-2.5 E F1 5(.W).22 G
(ords that were not e)-5.8 E(xpanded are not split.)-.15 E .063
-(The shell treats each character of)108 240 R/F3 9/Times-Bold@0 SF(IFS)
-2.563 E F1 .063(as a delimiter)2.313 F 2.563(,a)-.4 G .063
+(The shell treats each character of)108 614.4 R F3(IFS)2.563 E F1 .063
+(as a delimiter)2.313 F 2.563(,a)-.4 G .063
(nd splits the results of the other e)-2.563 F .063(xpansions into w)
--.15 F(ords)-.1 E(using these characters as \214eld terminators.)108 252
-Q(An)108 268.8 Q F0 .686(IFS whitespace)3.186 F F1 .686
+-.15 F(ords)-.1 E(using these characters as \214eld terminators.)108
+626.4 Q(An)108 643.2 Q F0 .686(IFS whitespace)3.186 F F1 .686
(character is whitespace as de\214ned abo)3.186 F .986 -.15(ve \()-.15 H
(see).15 E F2(De\214nitions)3.186 E F1 3.186(\)t)C .687
-(hat appears in the v)-3.186 F .687(alue of)-.25 F F3(IFS)108 280.8 Q/F4
-9/Times-Roman@0 SF(.)A F1 .002(Space, tab, and ne)4.502 F .002
-(wline are al)-.25 F -.1(wa)-.1 G .002(ys considered IFS whitespace, e)
-.1 F -.15(ve)-.25 G 2.501(ni).15 G 2.501(ft)-2.501 G(he)-2.501 E 2.501
-(yd)-.15 G(on')-2.501 E 2.501(ta)-.18 G .001(ppear in the locale')-2.501
-F(s)-.55 E F2(space)108 292.8 Q F1(cate)2.5 E(gory)-.15 E(.)-.65 E(If)
-108 309.6 Q F3(IFS)2.911 E F1 .411
-(is unset, \214eld splitting acts as if its v)2.661 F .411(alue were)
--.25 F F2(<space><tab><newline>)2.911 E F1 2.911(,a)C .411
-(nd treats these characters)-2.911 F .197(as IFS whitespace.)108 321.6 R
+(hat appears in the v)-3.186 F .687(alue of)-.25 F F3(IFS)108 655.2 Q F4
+(.)A F1 .002(Space, tab, and ne)4.502 F .002(wline are al)-.25 F -.1(wa)
+-.1 G .002(ys considered IFS whitespace, e).1 F -.15(ve)-.25 G 2.501(ni)
+.15 G 2.501(ft)-2.501 G(he)-2.501 E 2.501(yd)-.15 G(on')-2.501 E 2.501
+(ta)-.18 G .001(ppear in the locale')-2.501 F(s)-.55 E F2(space)108
+667.2 Q F1(cate)2.5 E(gory)-.15 E(.)-.65 E(If)108 684 Q F3(IFS)2.911 E
+F1 .411(is unset, \214eld splitting acts as if its v)2.661 F .411
+(alue were)-.25 F F2(<space><tab><newline>)2.911 E F1 2.911(,a)C .411
+(nd treats these characters)-2.911 F .197(as IFS whitespace.)108 696 R
.197(If the v)5.197 F .197(alue of)-.25 F F3(IFS)2.697 E F1 .197
(is null, no w)2.447 F .196(ord splitting occurs, b)-.1 F .196
-(ut implicit null ar)-.2 F .196(guments \(see be-)-.18 F(lo)108 333.6 Q
-(w\) are still remo)-.25 E -.15(ve)-.15 G(d.).15 E -.8(Wo)108 350.4 S
+(ut implicit null ar)-.2 F .196(guments \(see be-)-.18 F(lo)108 708 Q
+(w\) are still remo)-.25 E -.15(ve)-.15 G(d.).15 E -.8(Wo)108 724.8 S
.573(rd splitting be).8 F .573(gins by remo)-.15 F .573
(ving sequences of IFS whitespace characters from the be)-.15 F .574
-(ginning and end of)-.15 F(the results of the pre)108 362.4 Q(vious e)
--.25 E(xpansions, then splits the remaining w)-.15 E(ords.)-.1 E .383
-(If the v)108 379.2 R .383(alue of)-.25 F F3(IFS)2.883 E F1 .383
-(consists solely of IFS whitespace, an)2.633 F 2.883(ys)-.15 G .382
-(equence of IFS whitespace characters delimits a)-2.883 F .299(\214eld,\
- so a \214eld consists of characters that are not unquoted IFS whitespa\
-ce, and null \214elds result only from)108 391.2 R(quoting.)108 403.2 Q
-(If)108 420 Q F3(IFS)3.679 E F1 1.179
+(ginning and end of)-.15 F(GNU Bash 5.3)72 768 Q(2026 January 14)141.79
+E(30)190.95 E 0 Cg EP
+%%Page: 31 31
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E(the results of the pre)108 84 Q(vious e)-.25 E
+(xpansions, then splits the remaining w)-.15 E(ords.)-.1 E .383
+(If the v)108 100.8 R .383(alue of)-.25 F/F2 9/Times-Bold@0 SF(IFS)2.883
+E F1 .383(consists solely of IFS whitespace, an)2.633 F 2.883(ys)-.15 G
+.382(equence of IFS whitespace characters delimits a)-2.883 F .299(\214\
+eld, so a \214eld consists of characters that are not unquoted IFS whit\
+espace, and null \214elds result only from)108 112.8 R(quoting.)108
+124.8 Q(If)108 141.6 Q F2(IFS)3.679 E F1 1.179
(contains a non-whitespace character)3.429 F 3.679(,t)-.4 G 1.179
(hen an)-3.679 F 3.679(yc)-.15 G 1.179(haracter in the v)-3.679 F 1.179
-(alue of)-.25 F F3(IFS)3.679 E F1 1.179(that is not IFS white-)3.429 F
-.722(space, along with an)108 432 R 3.222(ya)-.15 G .723
+(alue of)-.25 F F2(IFS)3.679 E F1 1.179(that is not IFS white-)3.429 F
+.722(space, along with an)108 153.6 R 3.222(ya)-.15 G .723
(djacent IFS whitespace characters, delimits a \214eld.)-3.222 F .723
(This means that adjacent non-)5.723 F 1.101
-(IFS-whitespace delimiters produce a null \214eld.)108 444 R 3.601(As)
+(IFS-whitespace delimiters produce a null \214eld.)108 165.6 R 3.601(As)
6.101 G 1.1(equence of IFS whitespace characters also delimits a)-3.601
-F(\214eld.)108 456 Q .782(Explicit null ar)108 472.8 R .782(guments \()
--.18 F F2 .833("").833 G F1(or)2.449 E F2 .833<0808>4.115 G F1 3.282
-(\)a)C .782(re retained and passed to commands as empty strings.)-3.282
-F .783(Unquoted im-)5.783 F 1.165(plicit null ar)108 484.8 R 1.165
+F(\214eld.)108 177.6 Q .782(Explicit null ar)108 194.4 R .782
+(guments \()-.18 F/F3 10/Times-Bold@0 SF .833("").833 G F1(or)2.449 E F3
+.833<0808>4.115 G F1 3.282(\)a)C .782
+(re retained and passed to commands as empty strings.)-3.282 F .783
+(Unquoted im-)5.783 F 1.165(plicit null ar)108 206.4 R 1.165
(guments, resulting from the e)-.18 F 1.165
(xpansion of parameters that ha)-.15 F 1.464 -.15(ve n)-.2 H 3.664(ov)
.15 G 1.164(alues, are remo)-3.914 F -.15(ve)-.15 G 3.664(d. Ex-).15 F
-.234(panding a parameter with no v)108 496.8 R .234(alue within double \
+.234(panding a parameter with no v)108 218.4 R .234(alue within double \
quotes produces a null \214eld, which is retained and passed)-.25 F
-(to a command as an empty string.)108 508.8 Q 1.166
-(When a quoted null ar)108 525.6 R 1.166(gument appears as part of a w)
+(to a command as an empty string.)108 230.4 Q 1.166
+(When a quoted null ar)108 247.2 R 1.166(gument appears as part of a w)
-.18 F 1.166(ord whose e)-.1 F 1.166(xpansion is non-null, w)-.15 F
-1.165(ord splitting re-)-.1 F(mo)108 537.6 Q -.15(ve)-.15 G 3.336(st).15
+1.165(ord splitting re-)-.1 F(mo)108 259.2 Q -.15(ve)-.15 G 3.336(st).15
G .836(he null ar)-3.336 F .836(gument portion, lea)-.18 F .836
(ving the non-null e)-.2 F 3.337(xpansion. That)-.15 F .837(is, the w)
3.337 F .837<6f72642099ad6408>-.1 F .837(\010\232 becomes \231\255d\232)
-.833 F(after w)108 549.6 Q(ord splitting and null ar)-.1 E(gument remo)
--.18 E -.25(va)-.15 G(l.).25 E F2 -.1(Pa)87 566.4 S(thname Expansion).1
-E F1 .371(After w)108 578.4 R .371(ord splitting, unless the)-.1 F F2
-<ad66>2.871 E F1 .371(option has been set,)2.871 F F2(bash)2.871 E F1
-.37(scans each w)2.87 F .37(ord for the characters)-.1 F F2(*)2.87 E F1
-(,)A F2(?)2.87 E F1 2.87(,a)C(nd)-2.87 E F2([)2.87 E F1(.)A .633
+.833 F(after w)108 271.2 Q(ord splitting and null ar)-.1 E(gument remo)
+-.18 E -.25(va)-.15 G(l.).25 E F3 -.1(Pa)87 288 S(thname Expansion).1 E
+F1 .371(After w)108 300 R .371(ord splitting, unless the)-.1 F F3<ad66>
+2.871 E F1 .371(option has been set,)2.871 F F3(bash)2.871 E F1 .37
+(scans each w)2.87 F .37(ord for the characters)-.1 F F3(*)2.87 E F1(,)A
+F3(?)2.87 E F1 2.87(,a)C(nd)-2.87 E F3([)2.87 E F1(.)A .633
(If one of these characters appears, and is not quoted, then the w)108
-590.4 R .634(ord is re)-.1 F -.05(ga)-.15 G .634(rded as a).05 F F0
+312 R .634(ord is re)-.1 F -.05(ga)-.15 G .634(rded as a).05 F F0
(pattern)4.384 E F1 3.134(,a).24 G .634(nd replaced)-3.134 F .282
-(with a sorted list of \214lenames matching the pattern \(see)108 602.4
-R F3 -.09(Pa)2.781 G(tter).09 E 2.531(nM)-.135 G(atching)-2.531 E F1
-(belo)2.531 E .281(w\) subject to the v)-.25 F .281(alue of the)-.25 F
-F2(GLOBSOR)108 614.4 Q(T)-.4 E F1(shell v)2.5 E(ariable.)-.25 E 1.754
-(If no matching \214lenames are found, and the shell option)108 631.2 R
-F2(nullglob)4.254 E F1 1.754(is not enabled, the w)4.254 F 1.754
-(ord is left un-)-.1 F 2.614(changed. If)108 643.2 R(the)2.614 E F2
+(with a sorted list of \214lenames matching the pattern \(see)108 324 R
+F2 -.09(Pa)2.781 G(tter).09 E 2.531(nM)-.135 G(atching)-2.531 E F1(belo)
+2.531 E .281(w\) subject to the v)-.25 F .281(alue of the)-.25 F F3
+(GLOBSOR)108 336 Q(T)-.4 E F1(shell v)2.5 E(ariable.)-.25 E 1.754
+(If no matching \214lenames are found, and the shell option)108 352.8 R
+F3(nullglob)4.254 E F1 1.754(is not enabled, the w)4.254 F 1.754
+(ord is left un-)-.1 F 2.614(changed. If)108 364.8 R(the)2.614 E F3
(nullglob)2.614 E F1 .114
(option is set, and no matches are found, the w)2.614 F .113
-(ord is remo)-.1 F -.15(ve)-.15 G 2.613(d. If).15 F(the)2.613 E F2
+(ord is remo)-.1 F -.15(ve)-.15 G 2.613(d. If).15 F(the)2.613 E F3
(failglob)2.613 E F1(shell)2.613 E .579
-(option is set, and no matches are found,)108 655.2 R F2(bash)3.079 E F1
+(option is set, and no matches are found,)108 376.8 R F3(bash)3.079 E F1
.579(prints an error message and does not e)3.079 F -.15(xe)-.15 G .579
-(cute the command.).15 F .689(If the shell option)108 667.2 R F2
+(cute the command.).15 F .689(If the shell option)108 388.8 R F3
(nocaseglob)3.189 E F1 .689
(is enabled, the match is performed without re)3.189 F -.05(ga)-.15 G
-.688(rd to the case of alphabetic).05 F(characters.)108 679.2 Q .309
-(When a pattern is used for pathname e)108 696 R .309(xpansion, the cha\
-racter \231.\232 at the start of a name or immediately fol-)-.15 F(lo)
-108 708 Q .191(wing a slash must be matched e)-.25 F(xplicitly)-.15 E
-2.691(,u)-.65 G .191(nless the shell option)-2.691 F F2(dotglob)2.69 E
+.688(rd to the case of alphabetic).05 F(characters.)108 400.8 Q .309
+(When a pattern is used for pathname e)108 417.6 R .309(xpansion, the c\
+haracter \231.\232 at the start of a name or immediately fol-)-.15 F(lo)
+108 429.6 Q .191(wing a slash must be matched e)-.25 F(xplicitly)-.15 E
+2.691(,u)-.65 G .191(nless the shell option)-2.691 F F3(dotglob)2.69 E
F1 .19(is set.)2.69 F .19(In order to match the \214le-)5.19 F(names)108
-720 Q F0(.)6.577 E F1(and)6.577 E F0(..)6.578 E F1 4.912(,t)1.666 G
-2.412(he pattern must be)-4.912 F 2.412(gin with \231.\232 \(for e)-.15
-F 2.412(xample, \231.?\232\), e)-.15 F -.15(ve)-.25 G 4.912(ni).15 G(f)
--4.912 E F2(dotglob)4.912 E F1 2.412(is set.)4.912 F 2.412(If the)7.412
-F(GNU Bash 5.3)72 768 Q(2025 April 7)149.285 E(30)198.445 E 0 Cg EP
-%%Page: 31 31
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(globskipdots)108 84 Q F1 .428
-(shell option is enabled, the \214lenames)2.929 F F0(.)4.594 E F1(and)
-4.594 E F0(..)4.594 E F1(ne)4.594 E -.15(ve)-.25 G 2.928(rm).15 G .428
-(atch, e)-2.928 F -.15(ve)-.25 G 2.928(ni).15 G 2.928(ft)-2.928 G .428
-(he pattern be)-2.928 F .428(gins with a)-.15 F 2.5(\231.\232. When)108
-96 R(not matching pathnames, the \231.\232 character is not treated spe\
-cially)2.5 E(.)-.65 E .061
-(When matching a pathname, the slash character must al)108 112.8 R -.1
+441.6 Q F0(.)4.359 E F1(and)4.359 E F0(..)4.359 E F1 2.693(,t)1.666 G
+.193(he pattern must be)-2.693 F .193(gin with \231.\232 \(for e)-.15 F
+.193(xample, \231.?\232\), e)-.15 F -.15(ve)-.25 G 2.693(ni).15 G(f)
+-2.693 E F3(dotglob)2.694 E F1 .194(is set.)2.694 F .194(If the)5.194 F
+F3(globskip-)2.694 E(dots)108 453.6 Q F1 1.445
+(shell option is enabled, the \214lenames)3.946 F F0(.)5.611 E F1(and)
+5.611 E F0(..)5.611 E F1(ne)5.611 E -.15(ve)-.25 G 3.945(rm).15 G 1.445
+(atch, e)-3.945 F -.15(ve)-.25 G 3.945(ni).15 G 3.945(ft)-3.945 G 1.445
+(he pattern be)-3.945 F 1.445(gins with a \231.\232.)-.15 F(When not ma\
+tching pathnames, the \231.\232 character is not treated specially)108
+465.6 Q(.)-.65 E .061
+(When matching a pathname, the slash character must al)108 482.4 R -.1
(wa)-.1 G .061(ys be matched e).1 F .061
-(xplicitly by a slash in the pattern,)-.15 F -.2(bu)108 124.8 S 3.395
+(xplicitly by a slash in the pattern,)-.15 F -.2(bu)108 494.4 S 3.395
(ti).2 G 3.395(no)-3.395 G .894(ther matching conte)-3.395 F .894
(xts it can be matched by a special pattern character as described belo)
--.15 F 3.394(wu)-.25 G(nder)-3.394 E/F3 9/Times-Bold@0 SF -.09(Pa)108
-136.8 S(tter).09 E 2.25(nM)-.135 G(atching)-2.25 E/F4 9/Times-Roman@0 SF
-(.)A F1 .711(See the description of)108 153.6 R F2(shopt)3.211 E F1
-(belo)3.212 E 3.212(wu)-.25 G(nder)-3.212 E F3 .712(SHELL B)3.212 F(UIL)
--.09 E .712(TIN COMMANDS)-.828 F F1 .712(for a description of the)2.962
-F F2(nocase-)3.212 E(glob)108 165.6 Q F1(,)A F2(nullglob)2.5 E F1(,)A F2
-(globskipdots)2.5 E F1(,)A F2(failglob)2.5 E F1 2.5(,a)C(nd)-2.5 E F2
-(dotglob)2.5 E F1(shell options.)2.5 E(The)108 182.4 Q F3(GLOBIGNORE)
-2.562 E F1 .062(shell v)2.312 F .061
+-.15 F 3.394(wu)-.25 G(nder)-3.394 E F2 -.09(Pa)108 506.4 S(tter).09 E
+2.25(nM)-.135 G(atching)-2.25 E/F4 9/Times-Roman@0 SF(.)A F1 .711
+(See the description of)108 523.2 R F3(shopt)3.211 E F1(belo)3.212 E
+3.212(wu)-.25 G(nder)-3.212 E F2 .712(SHELL B)3.212 F(UIL)-.09 E .712
+(TIN COMMANDS)-.828 F F1 .712(for a description of the)2.962 F F3
+(nocase-)3.212 E(glob)108 535.2 Q F1(,)A F3(nullglob)2.5 E F1(,)A F3
+(globskipdots)2.5 E F1(,)A F3(failglob)2.5 E F1 2.5(,a)C(nd)-2.5 E F3
+(dotglob)2.5 E F1(shell options.)2.5 E(The)108 552 Q F2(GLOBIGNORE)2.562
+E F1 .062(shell v)2.312 F .061
(ariable may be used to restrict the set of \214le names matching a)-.25
-F F0(pattern)3.811 E F1 5.061(.I).24 G(f)-5.061 E F3(GLO-)2.561 E
-(BIGNORE)108 194.4 Q F1 1.096(is set, each matching \214le name that al\
-so matches one of the patterns in)3.346 F F3(GLOBIGNORE)3.597 E F1 1.097
-(is re-)3.347 F(mo)108 206.4 Q -.15(ve)-.15 G 2.851(df).15 G .351
-(rom the list of matches.)-2.851 F .351(If the)5.351 F F2(nocaseglob)
+F F0(pattern)3.811 E F1 5.061(.I).24 G(f)-5.061 E F2(GLO-)2.561 E
+(BIGNORE)108 564 Q F1 1.096(is set, each matching \214le name that also\
+ matches one of the patterns in)3.346 F F2(GLOBIGNORE)3.597 E F1 1.097
+(is re-)3.347 F(mo)108 576 Q -.15(ve)-.15 G 2.851(df).15 G .351
+(rom the list of matches.)-2.851 F .351(If the)5.351 F F3(nocaseglob)
2.851 E F1 .351(option is set, the matching ag)2.851 F .351
-(ainst the patterns in)-.05 F F3(GLO-)2.85 E(BIGNORE)108 218.4 Q F1 .096
+(ainst the patterns in)-.05 F F2(GLO-)2.85 E(BIGNORE)108 588 Q F1 .096
(is performed without re)2.346 F -.05(ga)-.15 G .097(rd to case.).05 F
.097(The \214lenames)5.097 F F0(.)4.263 E F1(and)4.263 E F0(..)4.263 E
-F1 .097(are al)4.263 F -.1(wa)-.1 G .097(ys ignored when).1 F F3
-(GLOBIG-)2.597 E(NORE)108 230.4 Q F1 .754(is set and not null.)3.004 F
-(Ho)5.753 E(we)-.25 E -.15(ve)-.25 G 1.553 -.4(r, s).15 H(etting).4 E F3
+F1 .097(are al)4.263 F -.1(wa)-.1 G .097(ys ignored when).1 F F2
+(GLOBIG-)2.597 E(NORE)108 600 Q F1 .754(is set and not null.)3.004 F(Ho)
+5.753 E(we)-.25 E -.15(ve)-.25 G 1.553 -.4(r, s).15 H(etting).4 E F2
(GLOBIGNORE)3.253 E F1 .753(to a non-null v)3.003 F .753
-(alue has the ef)-.25 F .753(fect of enabling)-.25 F(the)108 242.4 Q F2
+(alue has the ef)-.25 F .753(fect of enabling)-.25 F(the)108 612 Q F3
(dotglob)3.062 E F1 .562(shell option, so all other \214lenames be)3.062
F .562(ginning with a \231.\232 match.)-.15 F 2.162 -.8(To g)5.562 H
.562(et the old beha).8 F .563(vior of ig-)-.2 F .508
-(noring \214lenames be)108 254.4 R .508(ginning with a \231.\232, mak)
--.15 F 3.007<6599>-.1 G 3.007(.*\232 one)-3.007 F .507
-(of the patterns in)3.007 F F3(GLOBIGNORE)3.007 E F1 5.507(.T)C(he)
--5.507 E F2(dotglob)3.007 E F1(op-)3.007 E .021(tion is disabled when)
-108 266.4 R F3(GLOBIGNORE)2.521 E F1 .021(is unset.)2.271 F(The)5.021 E
-F2(GLOBIGNORE)2.521 E F1 .021(pattern matching honors the setting of)
-2.521 F(the)108 278.4 Q F2(extglob)2.5 E F1(shell option.)2.5 E .696
-(The v)108 295.2 R .696(alue of the)-.25 F F3(GLOBSOR)3.195 E(T)-.36 E
-F1 .695(shell v)2.945 F .695(ariable controls ho)-.25 F 3.195(wt)-.25 G
-.695(he results of pathname e)-3.195 F .695(xpansion are sorted, as)-.15
-F(described abo)108 307.2 Q .3 -.15(ve u)-.15 H(nder).15 E F2(Shell V)
-2.5 E(ariables)-.92 E F1(.)A F2 -.1(Pa)108 324 S(tter).1 E 2.5(nM)-.15 G
-(atching)-2.5 E F1(An)108 340.8 Q 3.138(yc)-.15 G .638(haracter that ap\
+(noring \214lenames be)108 624 R .508(ginning with a \231.\232, mak)-.15
+F 3.007<6599>-.1 G 3.007(.*\232 one)-3.007 F .507(of the patterns in)
+3.007 F F2(GLOBIGNORE)3.007 E F1 5.507(.T)C(he)-5.507 E F3(dotglob)3.007
+E F1(op-)3.007 E .021(tion is disabled when)108 636 R F2(GLOBIGNORE)
+2.521 E F1 .021(is unset.)2.271 F(The)5.021 E F3(GLOBIGNORE)2.521 E F1
+.021(pattern matching honors the setting of)2.521 F(the)108 648 Q F3
+(extglob)2.5 E F1(shell option.)2.5 E .696(The v)108 664.8 R .696
+(alue of the)-.25 F F2(GLOBSOR)3.195 E(T)-.36 E F1 .695(shell v)2.945 F
+.695(ariable controls ho)-.25 F 3.195(wt)-.25 G .695
+(he results of pathname e)-3.195 F .695(xpansion are sorted, as)-.15 F
+(described abo)108 676.8 Q .3 -.15(ve u)-.15 H(nder).15 E F3(Shell V)2.5
+E(ariables)-.92 E F1(.)A F3 -.1(Pa)108 693.6 S(tter).1 E 2.5(nM)-.15 G
+(atching)-2.5 E F1(An)108 710.4 Q 3.138(yc)-.15 G .638(haracter that ap\
pears in a pattern, other than the special pattern characters described\
- belo)-3.138 F 1.938 -.65(w, m)-.25 H(atches).65 E 2.722(itself. The)108
-352.8 R .221(NUL character may not occur in a pattern.)2.722 F 2.721(Ab)
-5.221 G .221(ackslash escapes the follo)-2.721 F .221
-(wing character; the es-)-.25 F .418
-(caping backslash is discarded when matching.)108 364.8 R .418
-(The special pattern characters must be quoted if the)5.418 F 2.919(ya)
--.15 G .419(re to)-2.919 F(be matched literally)108 376.8 Q(.)-.65 E
-(The special pattern characters ha)108 393.6 Q .3 -.15(ve t)-.2 H
-(he follo).15 E(wing meanings:)-.25 E F2(*)144 410.4 Q F1 .377
-(Matches an)180 410.4 R 2.877(ys)-.15 G .376
+ belo)-3.138 F 1.938 -.65(w, m)-.25 H(atches).65 E 3.62(itself. The)108
+722.4 R 1.12(NUL character may not occur in a pattern.)3.62 F 3.62(Ab)
+6.12 G 1.12(ackslash escapes the follo)-3.62 F 1.12(wing character; the)
+-.25 F(GNU Bash 5.3)72 768 Q(2026 January 14)141.79 E(31)190.95 E 0 Cg
+EP
+%%Page: 32 32
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E .576
+(escaping backslash is discarded when matching.)108 84 R .576
+(The special pattern characters must be quoted if the)5.576 F 3.076(ya)
+-.15 G(re)-3.076 E(to be matched literally)108 96 Q(.)-.65 E
+(The special pattern characters ha)108 112.8 Q .3 -.15(ve t)-.2 H
+(he follo).15 E(wing meanings:)-.25 E/F2 10/Times-Bold@0 SF(*)144 129.6
+Q F1 .377(Matches an)180 129.6 R 2.877(ys)-.15 G .376
(tring, including the null string.)-2.877 F .376(When the)5.376 F F2
-(globstar)2.876 E F1 .376(shell option is enabled,)2.876 F(and)180 422.4
+(globstar)2.876 E F1 .376(shell option is enabled,)2.876 F(and)180 141.6
Q F2(*)3.275 E F1 .775(is used in a pathname e)3.275 F .775
(xpansion conte)-.15 F .775(xt, tw)-.15 F 3.275(oa)-.1 G(djacent)-3.275
E F2(*)3.275 E F1 3.275(su)C .775(sed as a single pattern)-3.275 F .079
(match all \214les and zero or more directories and subdirectories.)180
-434.4 R .079(If follo)5.079 F .079(wed by a)-.25 F F2(/)2.578 E F1 2.578
-(,t)C .278 -.1(wo a)-2.578 H(d-).1 E(jacent)180 446.4 Q F2(*)2.5 E F1
-2.5(sm)C(atch only directories and subdirectories.)-2.5 E F2(?)144 458.4
-Q F1(Matches an)180 458.4 Q 2.5(ys)-.15 G(ingle character)-2.5 E(.)-.55
-E F2([)144 470.4 Q F1 1.666(...)C F2(])-1.666 E F1 1.312(Matches an)180
-470.4 R 3.812(yo)-.15 G 1.312
+153.6 R .079(If follo)5.079 F .079(wed by a)-.25 F F2(/)2.578 E F1 2.578
+(,t)C .278 -.1(wo a)-2.578 H(d-).1 E(jacent)180 165.6 Q F2(*)2.5 E F1
+2.5(sm)C(atch only directories and subdirectories.)-2.5 E F2(?)144 177.6
+Q F1(Matches an)180 177.6 Q 2.5(ys)-.15 G(ingle character)-2.5 E(.)-.55
+E F2([)144 189.6 Q F1 1.666(...)C F2(])-1.666 E F1 1.312(Matches an)180
+189.6 R 3.812(yo)-.15 G 1.312
(ne of the characters enclosed between the brack)-3.812 F 3.812
(ets. This)-.1 F 1.312(is kno)3.812 F 1.313(wn as a)-.25 F F0(br)180
-482.4 Q(ac)-.15 E -.1(ke)-.2 G 3.677(te).1 G(xpr)-3.877 E(ession)-.37 E
+201.6 Q(ac)-.15 E -.1(ke)-.2 G 3.677(te).1 G(xpr)-3.877 E(ession)-.37 E
F1 1.177(and matches a single character)3.677 F 6.177(.A)-.55 G 1.177
-(pair of characters separated by a)-2.5 F -.05(hy)180 494.4 S .179
+(pair of characters separated by a)-2.5 F -.05(hy)180 213.6 S .179
(phen denotes a).05 F F0 -.15(ra)2.679 G(ng).15 E 2.679(ee)-.1 G(xpr)
-2.879 E(ession)-.37 E F1 2.679(;a)C .479 -.15(ny c)-2.679 H .179
(haracter that f).15 F .179(alls between those tw)-.1 F 2.68(oc)-.1 G
-(haracters,)-2.68 E(inclusi)180 506.4 Q -.15(ve)-.25 G 3.004(,u).15 G
+(haracters,)-2.68 E(inclusi)180 225.6 Q -.15(ve)-.25 G 3.004(,u).15 G
.504(sing the current locale')-3.004 F 3.003(sc)-.55 G .503
(ollating sequence and character set, matches.)-3.003 F .503(If the)
-5.503 F 2.039(\214rst character follo)180 518.4 R 2.039(wing the)-.25 F
+5.503 F 2.039(\214rst character follo)180 237.6 R 2.039(wing the)-.25 F
F2([)4.539 E F1 2.039(is a)4.539 F F2(!)4.539 E F1 2.039(or a)7.039 F F2
<00>4.539 E F1 2.04(then an)4.54 F 4.54(yc)-.15 G 2.04
-(haracter not within the range)-4.54 F 2.632(matches. T)180 530.4 R
+(haracter not within the range)-4.54 F 2.632(matches. T)180 249.6 R
2.632(om)-.8 G .132(atch a)-2.632 F F2<ad>2.632 E F1 2.632(,i)C .132
(nclude it as the \214rst or last character in the set.)-2.632 F 1.731
-.8(To m)5.131 H .131(atch a).8 F F2(])2.631 E F1 2.631(,i)C(n-)-2.631 E
-(clude it as the \214rst character in the set.)180 542.4 Q 1.044
-(The sorting order of characters in range e)180 559.2 R 1.045
-(xpressions, and the characters included in the)-.15 F 2.34
-(range, are determined by the current locale and the v)180 571.2 R 2.34
-(alues of the)-.25 F F3(LC_COLLA)4.84 E(TE)-.855 E F1(or)4.59 E F3
-(LC_ALL)180 583.2 Q F1 1.078(shell v)3.328 F 1.078(ariables, if set.)
--.25 F 2.679 -.8(To o)6.079 H 1.079
-(btain the traditional interpretation of range e).8 F(xpres-)-.15 E
-2.408(sions, where)180 595.2 R F2([a\255d])4.908 E F1 2.408(is equi)
-4.908 F -.25(va)-.25 G 2.408(lent to).25 F F2([abcd])4.908 E F1 4.908
-(,s)C 2.408(et the v)-4.908 F 2.407(alue of the)-.25 F F2(LC_COLLA)4.907
-E(TE)-.95 E F1(or)4.907 E F2(LC_ALL)180 607.2 Q F1(shell v)2.5 E
-(ariables to)-.25 E F2(C)2.5 E F1 2.5(,o)C 2.5(re)-2.5 G(nable the)-2.5
-E F2(globasciiranges)2.5 E F1(shell option.)2.5 E -.4(Wi)180 624 S .177
-(thin a brack).4 F .177(et e)-.1 F(xpression,)-.15 E F0 -.15(ch)2.677 G
-(ar).15 E .177(acter classes)-.15 F F1 .178
-(can be speci\214ed using the syntax)2.677 F F2([:)2.678 E F0(class)A F2
-(:])A F1(,)A(where)180 636 Q F0(class)2.5 E F1(is one of the follo)2.5 E
-(wing classes de\214ned in the)-.25 E F4(POSIX)2.5 E F1(standard:)2.25 E
-F2 5.889(alnum alpha ascii blank cntrl digit graph lo)180 652.8 R 5.889
-(wer print punct space up-)-.1 F 5(per w)180 664.8 R 5(ord xdigit)-.1 F
-F1 4.289(Ac)180 681.6 S 1.789(haracter class matches an)-4.289 F 4.289
-(yc)-.15 G 1.789(haracter belonging to that class.)-4.289 F(The)6.789 E
-F2 -.1(wo)4.29 G(rd).1 E F1(character)4.29 E
-(class matches letters, digits, and the character _.)180 693.6 Q -.4(Wi)
-180 710.4 S .013(thin a brack).4 F .013(et e)-.1 F .013(xpression, an)
--.15 F F0 .012(equivalence class)2.512 F F1 .012
-(can be speci\214ed using the syntax)2.512 F F2([=)2.512 E F0(c)A F2(=])
-A F1(,)A 1.181(which matches all characters with the same collation wei\
-ght \(as de\214ned by the current)180 722.4 R(GNU Bash 5.3)72 768 Q
-(2025 April 7)149.285 E(31)198.445 E 0 Cg EP
-%%Page: 32 32
+(clude it as the \214rst character in the set.)180 261.6 Q 1.044
+(The sorting order of characters in range e)180 278.4 R 1.045
+(xpressions, and the characters included in the)-.15 F .097(range, are \
+determined by the collating sequence of the current locale and the v)180
+290.4 R .097(alues of the)-.25 F/F3 9/Times-Bold@0 SF(LC_COLLA)180 302.4
+Q(TE)-.855 E F1(or)2.25 E F3(LC_ALL)2.5 E F1(shell v)2.25 E
+(ariables, if set.)-.25 E -.15(Fo)180 319.2 S 2.839(re).15 G .339
+(xample, in the C locale,)-2.989 F F2([a\255d])2.839 E F1 .339(is equi)
+2.839 F -.25(va)-.25 G .339(lent to).25 F F2([abcd])2.839 E F1 5.34(.M)C
+(an)-5.34 E 2.84(yl)-.15 G .34(ocales sort characters)-2.84 F 1.505
+(in dictionary order)180 331.2 R 4.005(,a)-.4 G 1.504
+(nd in these locales)-4.005 F F2([a\255d])4.004 E F1 1.504
+(is typically not equi)4.004 F -.25(va)-.25 G 1.504(lent to).25 F F2
+([abcd])4.004 E F1 4.004(;i)C(t)-4.004 E .954(might be equi)180 343.2 R
+-.25(va)-.25 G .954(lent to).25 F F2([aBbCcDd])3.454 E F1(or)3.454 E F2
+([aAbBcCd])3.455 E F1 5.955(.T)C 3.455(oo)-6.755 G .955
+(btain the traditional interpreta-)-3.455 F 2.28(tion of range e)180
+355.2 R 2.28(xpressions, where)-.15 F F2([a\255d])4.78 E F1 2.28
+(is equi)4.78 F -.25(va)-.25 G 2.28(lent to).25 F F2([abcd])4.78 E F1
+4.78(,s)C 2.28(et the v)-4.78 F 2.28(alue of the)-.25 F F2(LC_COLLA)180
+367.2 Q(TE)-.95 E F1(or)3.821 E F2(LC_ALL)3.821 E F1 1.322(shell v)3.822
+F 1.322(ariables to)-.25 F F2(C)3.822 E F1 3.822(,o)C 3.822(re)-3.822 G
+1.322(nable the)-3.822 F F2(globasciiranges)3.822 E F1(shell)3.822 E
+(option.)180 379.2 Q -.4(Wi)180 396 S .178(thin a brack).4 F .178(et e)
+-.1 F(xpression,)-.15 E F0 -.15(ch)2.678 G(ar).15 E .178(acter classes)
+-.15 F F1 .177(can be speci\214ed using the syntax)2.678 F F2([:)2.677 E
+F0(class)A F2(:])A F1(,)A(where)180 408 Q F0(class)2.5 E F1
+(is one of the follo)2.5 E(wing classes de\214ned in the)-.25 E/F4 9
+/Times-Roman@0 SF(POSIX)2.5 E F1(standard:)2.25 E F2 5.889
+(alnum alpha ascii blank cntrl digit graph lo)180 424.8 R 5.889
+(wer print punct space up-)-.1 F 5(per w)180 436.8 R 5(ord xdigit)-.1 F
+F1 4.29(Ac)180 453.6 S 1.789(haracter class matches an)-4.29 F 4.289(yc)
+-.15 G 1.789(haracter belonging to that class.)-4.289 F(The)6.789 E F2
+-.1(wo)4.289 G(rd).1 E F1(character)4.289 E
+(class matches letters, digits, and the character _.)180 465.6 Q -.4(Wi)
+180 482.4 S .012(thin a brack).4 F .012(et e)-.1 F .012(xpression, an)
+-.15 F F0 .012(equivalence class)2.512 F F1 .013
+(can be speci\214ed using the syntax)2.512 F F2([=)2.513 E F0(c)A F2(=])
+A F1(,)A .124(which matches all characters with the same collation weig\
+ht \(as de\214ned by the current lo-)180 494.4 R
+(cale\) as the character)180 506.4 Q F0(c)2.5 E F1(.)A -.4(Wi)180 523.2
+S(thin a brack).4 E(et e)-.1 E(xpression, the syntax)-.15 E F2([.)2.5 E
+F0(symbol)A F2(.])A F1(matches the collating symbol)2.5 E F0(symbol)2.5
+E F1(.)A .539(If the)108 540 R F2(extglob)3.039 E F1 .539
+(shell option is enabled using the)3.039 F F2(shopt)3.039 E F1 -.2(bu)
+3.039 G .54(iltin, the shell recognizes se).2 F -.15(ve)-.25 G .54
+(ral e).15 F .54(xtended pattern)-.15 F .038(matching operators.)108 552
+R .038(In the follo)5.038 F .038(wing description, a)-.25 F F0
+(pattern-list)2.538 E F1 .037
+(is a list of one or more patterns separated by)2.538 F(a)108 564 Q F2
+(|)2.5 E F1 5(.C)C
+(omposite patterns may be formed using one or more of the follo)-5 E
+(wing sub-patterns:)-.25 E F2(?\()144 580.8 Q F0(pattern-list).833 E F2
+(\)).833 E F1(Matches zero or one occurrence of the gi)180 592.8 Q -.15
+(ve)-.25 G 2.5(np).15 G(atterns.)-2.5 E F2(*\()144 604.8 Q F0
+(pattern-list).833 E F2(\)).833 E F1
+(Matches zero or more occurrences of the gi)180 616.8 Q -.15(ve)-.25 G
+2.5(np).15 G(atterns.)-2.5 E F2(+\()144 628.8 Q F0(pattern-list).833 E
+F2(\)).833 E F1(Matches one or more occurrences of the gi)180 640.8 Q
+-.15(ve)-.25 G 2.5(np).15 G(atterns.)-2.5 E F2(@\()144 652.8 Q F0
+(pattern-list).833 E F2(\)).833 E F1(Matches one of the gi)180 664.8 Q
+-.15(ve)-.25 G 2.5(np).15 G(atterns.)-2.5 E F2(!\()144 676.8 Q F0
+(pattern-list).833 E F2(\)).833 E F1(Matches an)180 688.8 Q(ything e)
+-.15 E(xcept one of the gi)-.15 E -.15(ve)-.25 G 2.5(np).15 G(atterns.)
+-2.5 E(The)108 705.6 Q F2(extglob)2.791 E F1 .291
+(option changes the beha)2.791 F .291(vior of the parser)-.2 F 2.791(,s)
+-.4 G .292(ince the parentheses are normally treated as opera-)-2.791 F
+.105(tors with syntactic meaning.)108 717.6 R 1.705 -.8(To e)5.105 H
+.105(nsure that e).8 F .105
+(xtended matching patterns are parsed correctly)-.15 F 2.604(,m)-.65 G
+(ak)-2.604 E 2.604(es)-.1 G .104(ure that)-2.604 F F2(extglob)108 729.6
+Q F1 3.388(is enabled before parsing constructs containing the patterns\
+, including shell functions and)5.888 F(GNU Bash 5.3)72 768 Q
+(2026 January 14)141.79 E(32)190.95 E 0 Cg EP
+%%Page: 33 33
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E(locale\) as the character)180 84 Q F0(c)2.5 E F1(.)
-A -.4(Wi)180 100.8 S(thin a brack).4 E(et e)-.1 E(xpression, the syntax)
--.15 E/F2 10/Times-Bold@0 SF([.)2.5 E F0(symbol)A F2(.])A F1
-(matches the collating symbol)2.5 E F0(symbol)2.5 E F1(.)A .54(If the)
-108 117.6 R F2(extglob)3.04 E F1 .54(shell option is enabled using the)
-3.04 F F2(shopt)3.039 E F1 -.2(bu)3.039 G .539
-(iltin, the shell recognizes se).2 F -.15(ve)-.25 G .539(ral e).15 F
-.539(xtended pattern)-.15 F .037(matching operators.)108 129.6 R .037
-(In the follo)5.037 F .037(wing description, a)-.25 F F0(pattern-list)
-2.538 E F1 .038(is a list of one or more patterns separated by)2.538 F
-(a)108 141.6 Q F2(|)2.5 E F1 5(.C)C
-(omposite patterns may be formed using one or more of the follo)-5 E
-(wing sub-patterns:)-.25 E F2(?\()144 158.4 Q F0(pattern-list).833 E F2
-(\)).833 E F1(Matches zero or one occurrence of the gi)180 170.4 Q -.15
-(ve)-.25 G 2.5(np).15 G(atterns.)-2.5 E F2(*\()144 182.4 Q F0
-(pattern-list).833 E F2(\)).833 E F1
-(Matches zero or more occurrences of the gi)180 194.4 Q -.15(ve)-.25 G
-2.5(np).15 G(atterns.)-2.5 E F2(+\()144 206.4 Q F0(pattern-list).833 E
-F2(\)).833 E F1(Matches one or more occurrences of the gi)180 218.4 Q
--.15(ve)-.25 G 2.5(np).15 G(atterns.)-2.5 E F2(@\()144 230.4 Q F0
-(pattern-list).833 E F2(\)).833 E F1(Matches one of the gi)180 242.4 Q
--.15(ve)-.25 G 2.5(np).15 G(atterns.)-2.5 E F2(!\()144 254.4 Q F0
-(pattern-list).833 E F2(\)).833 E F1(Matches an)180 266.4 Q(ything e)
--.15 E(xcept one of the gi)-.15 E -.15(ve)-.25 G 2.5(np).15 G(atterns.)
--2.5 E(The)108 283.2 Q F2(extglob)2.792 E F1 .292
-(option changes the beha)2.792 F .291(vior of the parser)-.2 F 2.791(,s)
--.4 G .291(ince the parentheses are normally treated as opera-)-2.791 F
-.104(tors with syntactic meaning.)108 295.2 R 1.704 -.8(To e)5.104 H
-.105(nsure that e).8 F .105
-(xtended matching patterns are parsed correctly)-.15 F 2.605(,m)-.65 G
-(ak)-2.605 E 2.605(es)-.1 G .105(ure that)-2.605 F F2(extglob)108 307.2
-Q F1 1.355(is enabled before parsing constructs containing the patterns\
-, including shell functions and com-)3.855 F(mand substitutions.)108
-319.2 Q .988(When matching \214lenames, the)108 336 R F2(dotglob)3.488 E
-F1 .988
+.25 E F1(\(1\)).95 E(command substitutions.)108 84 Q .988
+(When matching \214lenames, the)108 100.8 R/F2 10/Times-Bold@0 SF
+(dotglob)3.488 E F1 .988
(shell option determines the set of \214lenames that are tested: when)
-3.488 F F2(dotglob)108 348 Q F1 .345
-(is enabled, the set of \214lenames includes all \214les be)2.845 F .344
-(ginning with \231.\232, b)-.15 F(ut)-.2 E F0(.)4.51 E F1(and)4.51 E F0
-(..)4.51 E F1 .344(must be matched)4.51 F .075
-(by a pattern or sub-pattern that be)108 360 R .076
+3.488 F F2(dotglob)108 112.8 Q F1 .344
+(is enabled, the set of \214lenames includes all \214les be)2.844 F .345
+(ginning with \231.\232, b)-.15 F(ut)-.2 E F0(.)4.511 E F1(and)4.511 E
+F0(..)4.511 E F1 .345(must be matched)4.511 F .076
+(by a pattern or sub-pattern that be)108 124.8 R .075
(gins with a dot; when it is disabled, the set does not include an)-.15
-F 2.576<798c>-.15 G(lenames)-2.576 E(be)108 372 Q .807
-(ginning with \231.\232 unless the pattern or sub-pattern be)-.15 F .806
-(gins with a \231.\232.)-.15 F .806(If the)5.806 F F2(globskipdots)3.306
-E F1 .806(shell option is)3.306 F 1.009(enabled, the \214lenames)108 384
-R F0(.)5.175 E F1(and)5.175 E F0(..)5.176 E F1(ne)5.176 E -.15(ve)-.25 G
-3.51(ra).15 G 1.01(ppear in the set.)-3.51 F 1.01(As abo)6.01 F -.15(ve)
--.15 G 3.51<2c99>.15 G 1.01(.\232 only has a special meaning when)-3.51
-F(matching \214lenames.)108 396 Q .969(Complicated e)108 412.8 R .969
-(xtended pattern matching ag)-.15 F .969(ainst long strings is slo)-.05
-F 2.268 -.65(w, e)-.25 H .968(specially when the patterns contain).65 F
-.09(alternations and the strings contain multiple matches.)108 424.8 R
-.091(Using separate matches ag)5.091 F .091
-(ainst shorter strings, or us-)-.05 F
-(ing arrays of strings instead of a single long string, may be f)108
-436.8 Q(aster)-.1 E(.)-.55 E F2(Quote Remo)87 453.6 Q -.1(va)-.1 G(l).1
-E F1 1.113(After the preceding e)108 465.6 R 1.113
+F 2.575<798c>-.15 G(lenames)-2.575 E(be)108 136.8 Q .806
+(ginning with \231.\232 unless the pattern or sub-pattern be)-.15 F .807
+(gins with a \231.\232.)-.15 F .807(If the)5.807 F F2(globskipdots)3.307
+E F1 .807(shell option is)3.307 F 1.01(enabled, the \214lenames)108
+148.8 R F0(.)5.176 E F1(and)5.176 E F0(..)5.176 E F1(ne)5.176 E -.15(ve)
+-.25 G 3.51(ra).15 G 1.01(ppear in the set.)-3.51 F 1.01(As abo)6.01 F
+-.15(ve)-.15 G 3.51<2c99>.15 G 1.009
+(.\232 only has a special meaning when)-3.51 F(matching \214lenames.)108
+160.8 Q .968(Complicated e)108 177.6 R .968(xtended pattern matching ag)
+-.15 F .968(ainst long strings is slo)-.05 F 2.269 -.65(w, e)-.25 H .969
+(specially when the patterns contain).65 F .091
+(alternations and the strings contain multiple matches.)108 189.6 R .091
+(Using separate matches ag)5.091 F .09(ainst shorter strings, or us-)
+-.05 F(ing arrays of strings instead of a single long string, may be f)
+108 201.6 Q(aster)-.1 E(.)-.55 E F2(Quote Remo)87 218.4 Q -.1(va)-.1 G
+(l).1 E F1 1.112(After the preceding e)108 230.4 R 1.112
(xpansions, all unquoted occurrences of the characters)-.15 F F2(\\)
-3.613 E F1(,)A F2<08>3.612 E F1 3.612(,a)C(nd)-3.612 E F2(")4.445 E F1
-1.112(that did not result)4.445 F(from one of the abo)108 477.6 Q .3
+3.613 E F1(,)A F2<08>3.613 E F1 3.613(,a)C(nd)-3.613 E F2(")4.446 E F1
+1.113(that did not result)4.446 F(from one of the abo)108 242.4 Q .3
-.15(ve ex)-.15 H(pansions are remo).15 E -.15(ve)-.15 G(d.).15 E/F3
-10.95/Times-Bold@0 SF(REDIRECTION)72 494.4 Q F1 .545
-(Before a command is e)108 506.4 R -.15(xe)-.15 G .545
+10.95/Times-Bold@0 SF(REDIRECTION)72 259.2 Q F1 .545
+(Before a command is e)108 271.2 R -.15(xe)-.15 G .545
(cuted, its input and output may be).15 F F0 -.37(re)3.045 G(dir).37 E
-(ected)-.37 E F1 .545(using a special notation interpreted)3.815 F .429
-(by the shell.)108 518.4 R F0(Redir)5.428 E(ection)-.37 E F1(allo)2.928
+(ected)-.37 E F1 .545(using a special notation interpreted)3.815 F .428
+(by the shell.)108 283.2 R F0(Redir)5.428 E(ection)-.37 E F1(allo)2.928
E .428(ws commands' \214le handles to be duplicated, opened, closed, ma\
-de to refer to)-.25 F(dif)108 530.4 Q .763(ferent \214les, and can chan\
-ge the \214les the command reads from and writes to.)-.25 F .763
-(When used with the)5.763 F F2(exec)3.263 E F1 -.2(bu)108 542.4 S .418
+de to refer to)-.25 F(dif)108 295.2 Q .763(ferent \214les, and can chan\
+ge the \214les the command reads from and writes to.)-.25 F .762
+(When used with the)5.763 F F2(exec)3.262 E F1 -.2(bu)108 307.2 S .418
(iltin, redirections modify \214le handles in the current shell e).2 F
--.15(xe)-.15 G .417(cution en).15 F 2.917(vironment. The)-.4 F(follo)
-2.917 E .417(wing redirec-)-.25 F 1.694
-(tion operators may precede or appear an)108 554.4 R 1.695
-(ywhere within a)-.15 F F0 1.695(simple command)4.535 F F1 1.695
-(or may follo)4.965 F 4.195(wa)-.25 G F0(command).2 E F1(.).77 E
-(Redirections are processed in the order the)108 566.4 Q 2.5(ya)-.15 G
+-.15(xe)-.15 G .418(cution en).15 F 2.918(vironment. The)-.4 F(follo)
+2.918 E .418(wing redirec-)-.25 F 1.695
+(tion operators may precede or appear an)108 319.2 R 1.695
+(ywhere within a)-.15 F F0 1.695(simple command)4.535 F F1 1.694
+(or may follo)4.964 F 4.194(wa)-.25 G F0(command).2 E F1(.).77 E
+(Redirections are processed in the order the)108 331.2 Q 2.5(ya)-.15 G
(ppear)-2.5 E 2.5(,f)-.4 G(rom left to right.)-2.5 E .771(Each redirect\
ion that may be preceded by a \214le descriptor number may instead be p\
-receded by a w)108 583.2 R .771(ord of)-.1 F .367(the form {)108 595.2 R
-F0(varname)A F1 2.867(}. In)B .368
-(this case, for each redirection operator e)2.867 F(xcept)-.15 E F2
-(>&\255)2.868 E F1(and)2.868 E F2(<&\255)2.868 E F1 2.868(,t)C .368
-(he shell allocates a)-2.868 F .461
-(\214le descriptor greater than or equal to 10 and assigns it to)108
-607.2 R F0(varname)2.961 E F1 5.461(.I)C 2.961(f{)-5.461 G F0(varname)
--2.961 E F1 2.961(}p)C(recedes)-2.961 E F2(>&\255)2.961 E F1(or)2.961 E
-F2(<&\255)2.961 E F1(,)A .534(the v)108 619.2 R .534(alue of)-.25 F F0
-(varname)3.034 E F1 .534(de\214nes the \214le descriptor to close.)3.034
-F .535(If {)5.534 F F0(varname)A F1 3.035(}i)C 3.035(ss)-3.035 G .535
-(upplied, the redirection persists)-3.035 F(be)108 631.2 Q .45
-(yond the scope of the command, which allo)-.15 F .449
-(ws the shell programmer to manage the \214le descriptor')-.25 F 2.949
-(sl)-.55 G(ife-)-2.949 E(time manually without using the)108 643.2 Q F2
+receded by a w)108 348 R .772(ord of)-.1 F .368(the form {)108 360 R F0
+(varname)A F1 2.868(}. In)B .368
+(this case, for each redirection operator e)2.868 F(xcept)-.15 E F2
+(>&\255)2.868 E F1(and)2.867 E F2(<&\255)2.867 E F1 2.867(,t)C .367
+(he shell allocates a)-2.867 F .461
+(\214le descriptor greater than or equal to 10 and assigns it to)108 372
+R F0(varname)2.961 E F1 5.461(.I)C 2.961(f{)-5.461 G F0(varname)-2.961 E
+F1 2.961(}p)C(recedes)-2.961 E F2(>&\255)2.961 E F1(or)2.962 E F2
+(<&\255)2.962 E F1(,)A .535(the v)108 384 R .535(alue of)-.25 F F0
+(varname)3.035 E F1 .534(de\214nes the \214le descriptor to close.)3.035
+F .534(If {)5.534 F F0(varname)A F1 3.034(}i)C 3.034(ss)-3.034 G .534
+(upplied, the redirection persists)-3.034 F(be)108 396 Q .449
+(yond the scope of the command, which allo)-.15 F .45
+(ws the shell programmer to manage the \214le descriptor')-.25 F 2.95
+(sl)-.55 G(ife-)-2.95 E(time manually without using the)108 408 Q F2
(exec)2.5 E F1 -.2(bu)2.5 G 2.5(iltin. The).2 F F2 -.1(va)2.5 G(rr).1 E
(edir_close)-.18 E F1(shell option manages this beha)2.5 E(vior)-.2 E(.)
--.55 E .447(In the follo)108 660 R .447(wing descriptions, if the \214l\
-e descriptor number is omitted, and the \214rst character of the redire\
-c-)-.25 F .714(tion operator is \231<\232, the redirection refers to th\
-e standard input \(\214le descriptor 0\).)108 672 R .714
+-.55 E .448(In the follo)108 424.8 R .447(wing descriptions, if the \
+\214le descriptor number is omitted, and the \214rst character of the r\
+edirec-)-.25 F .714(tion operator is \231<\232, the redirection refers \
+to the standard input \(\214le descriptor 0\).)108 436.8 R .714
(If the \214rst character of)5.714 F(the redirection operator is \231>\
\232, the redirection refers to the standard output \(\214le descriptor\
- 1\).)108 684 Q(The)108 700.8 Q F0(wor)3.342 E(d)-.37 E F1(follo)3.342 E
-.843(wing the redirection operator in the follo)-.25 F .843
-(wing descriptions, unless otherwise noted, is sub-)-.25 F .463
-(jected to brace e)108 712.8 R .463(xpansion, tilde e)-.15 F .462
-(xpansion, parameter and v)-.15 F .462(ariable e)-.25 F .462
-(xpansion, command substitution, arith-)-.15 F .866(metic e)108 724.8 R
-.866(xpansion, quote remo)-.15 F -.25(va)-.15 G .866(l, pathname e).25 F
+ 1\).)108 448.8 Q(The)108 465.6 Q F0(wor)3.343 E(d)-.37 E F1(follo)3.343
+E .843(wing the redirection operator in the follo)-.25 F .843
+(wing descriptions, unless otherwise noted, is sub-)-.25 F .462
+(jected to brace e)108 477.6 R .462(xpansion, tilde e)-.15 F .463
+(xpansion, parameter and v)-.15 F .463(ariable e)-.25 F .463
+(xpansion, command substitution, arith-)-.15 F .867(metic e)108 489.6 R
+.867(xpansion, quote remo)-.15 F -.25(va)-.15 G .867(l, pathname e).25 F
.867(xpansion, and w)-.15 F .867(ord splitting.)-.1 F .867(If it e)5.867
-F .867(xpands to more than one)-.15 F(GNU Bash 5.3)72 768 Q
-(2025 April 7)149.285 E(32)198.445 E 0 Cg EP
-%%Page: 33 33
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E -.1(wo)108 84 S(rd,).1 E/F2 10/Times-Bold@0 SF
+F .866(xpands to more than one)-.15 F -.1(wo)108 501.6 S(rd,).1 E F2
(bash)2.5 E F1(reports an error)2.5 E(.)-.55 E
-(The order of redirections is signi\214cant.)108 100.8 Q -.15(Fo)5 G 2.5
-(re).15 G(xample, the command)-2.65 E(ls)144 117.6 Q F2(>)2.5 E F1
+(The order of redirections is signi\214cant.)108 518.4 Q -.15(Fo)5 G 2.5
+(re).15 G(xample, the command)-2.65 E(ls)144 535.2 Q F2(>)2.5 E F1
(dirlist 2)2.5 E F2(>&)A F1(1)A
-(directs both standard output and standard error to the \214le)108 134.4
-Q F0(dirlist)2.85 E F1 2.5(,w).68 G(hile the command)-2.5 E(ls 2)144
-151.2 Q F2(>&)A F1(1)A F2(>)2.5 E F1(dirlist)2.5 E .067
-(directs only the standard output to \214le)108 168 R F0(dirlist)2.917 E
-F1 2.567(,b).68 G .066(ecause the standard error w)-2.567 F .066
+(directs both standard output and standard error to the \214le)108 552 Q
+F0(dirlist)2.85 E F1 2.5(,w).68 G(hile the command)-2.5 E(ls 2)144 568.8
+Q F2(>&)A F1(1)A F2(>)2.5 E F1(dirlist)2.5 E .066
+(directs only the standard output to \214le)108 585.6 R F0(dirlist)2.916
+E F1 2.566(,b).68 G .067(ecause the standard error w)-2.566 F .067
(as directed to the standard output)-.1 F(before the standard output w)
-108 180 Q(as redirected to)-.1 E F0(dirlist)2.85 E F1(.).68 E F2(Bash)
-108 196.8 Q F1 .598(handles se)3.098 F -.15(ve)-.25 G .598
-(ral \214lenames specially when the).15 F 3.099(ya)-.15 G .599
+108 597.6 Q(as redirected to)-.1 E F0(dirlist)2.85 E F1(.).68 E F2(Bash)
+108 614.4 Q F1 .599(handles se)3.099 F -.15(ve)-.25 G .599
+(ral \214lenames specially when the).15 F 3.099(ya)-.15 G .598
(re used in redirections, as described in the follo)-3.099 F(wing)-.25 E
-2.673(table. If)108 208.8 R .173(the operating system on which)2.673 F
-F2(bash)2.672 E F1 .172(is running pro)2.672 F .172
-(vides these special \214les,)-.15 F F2(bash)2.672 E F1 .172
-(uses them; other)2.672 F(-)-.2 E
-(wise it emulates them internally with the beha)108 220.8 Q
-(vior described belo)-.2 E -.65(w.)-.25 G F2(/de)144 237.6 Q(v/fd/)-.15
-E F0(fd)A F1(If)180 249.6 Q F0(fd)2.5 E F1(is a v)2.5 E(alid inte)-.25 E
+2.672(table. If)108 626.4 R .172(the operating system on which)2.672 F
+F2(bash)2.672 E F1 .172(is running pro)2.672 F .173
+(vides these special \214les,)-.15 F F2(bash)2.673 E F1 .173
+(uses them; other)2.673 F(-)-.2 E
+(wise it emulates them internally with the beha)108 638.4 Q
+(vior described belo)-.2 E -.65(w.)-.25 G F2(/de)144 655.2 Q(v/fd/)-.15
+E F0(fd)A F1(If)180 667.2 Q F0(fd)2.5 E F1(is a v)2.5 E(alid inte)-.25 E
(ger)-.15 E 2.5(,d)-.4 G(uplicate \214le descriptor)-2.5 E F0(fd)2.5 E
-F1(.)A F2(/de)144 261.6 Q(v/stdin)-.15 E F1
-(File descriptor 0 is duplicated.)180 273.6 Q F2(/de)144 285.6 Q
-(v/stdout)-.15 E F1(File descriptor 1 is duplicated.)180 297.6 Q F2(/de)
-144 309.6 Q(v/stderr)-.15 E F1(File descriptor 2 is duplicated.)180
-321.6 Q F2(/de)144 333.6 Q(v/tcp/)-.15 E F0(host)A F2(/)A F0(port)A F1
-(If)180 345.6 Q F0(host)2.996 E F1 .496(is a v)2.996 F .496
+F1(.)A F2(/de)144 679.2 Q(v/stdin)-.15 E F1
+(File descriptor 0 is duplicated.)180 691.2 Q F2(/de)144 703.2 Q
+(v/stdout)-.15 E F1(File descriptor 1 is duplicated.)180 715.2 Q
+(GNU Bash 5.3)72 768 Q(2026 January 14)141.79 E(33)190.95 E 0 Cg EP
+%%Page: 34 34
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(/de)144 84 Q(v/stderr)-.15 E
+F1(File descriptor 2 is duplicated.)180 96 Q F2(/de)144 108 Q(v/tcp/)
+-.15 E F0(host)A F2(/)A F0(port)A F1(If)180 120 Q F0(host)2.997 E F1
+.497(is a v)2.997 F .497(alid hostname or Internet address, and)-.25 F
+F0(port)2.996 E F1 .496(is an inte)2.996 F .496(ger port number or ser)
+-.15 F(-)-.2 E(vice name,)180 132 Q F2(bash)2.5 E F1
+(attempts to open the corresponding TCP sock)2.5 E(et.)-.1 E F2(/de)144
+144 Q(v/udp/)-.15 E F0(host)A F2(/)A F0(port)A F1(If)180 156 Q F0(host)
+2.996 E F1 .496(is a v)2.996 F .496
(alid hostname or Internet address, and)-.25 F F0(port)2.997 E F1 .497
(is an inte)2.997 F .497(ger port number or ser)-.15 F(-)-.2 E
-(vice name,)180 357.6 Q F2(bash)2.5 E F1
-(attempts to open the corresponding TCP sock)2.5 E(et.)-.1 E F2(/de)144
-369.6 Q(v/udp/)-.15 E F0(host)A F2(/)A F0(port)A F1(If)180 381.6 Q F0
-(host)2.997 E F1 .497(is a v)2.997 F .497
-(alid hostname or Internet address, and)-.25 F F0(port)2.996 E F1 .496
-(is an inte)2.996 F .496(ger port number or ser)-.15 F(-)-.2 E
-(vice name,)180 393.6 Q F2(bash)2.5 E F1
+(vice name,)180 168 Q F2(bash)2.5 E F1
(attempts to open the corresponding UDP sock)2.5 E(et.)-.1 E 2.5(Af)108
-410.4 S(ailure to open or create a \214le causes the redirection to f)
--2.6 E(ail.)-.1 E .045(Redirections using \214le descriptors greater th\
-an 9 should be used with care, as the)108 427.2 R 2.546(ym)-.15 G .046
-(ay con\215ict with \214le de-)-2.546 F
-(scriptors the shell uses internally)108 439.2 Q(.)-.65 E F2(Redir)87
-456 Q(ecting Input)-.18 E F1 .136
+184.8 S(ailure to open or create a \214le causes the redirection to f)
+-2.6 E(ail.)-.1 E .046(Redirections using \214le descriptors greater th\
+an 9 should be used with care, as the)108 201.6 R 2.545(ym)-.15 G .045
+(ay con\215ict with \214le de-)-2.545 F
+(scriptors the shell uses internally)108 213.6 Q(.)-.65 E F2(Redir)87
+230.4 Q(ecting Input)-.18 E F1 .135
(Redirecting input opens the \214le whose name results from the e)108
-468 R .135(xpansion of)-.15 F F0(wor)2.975 E(d)-.37 E F1 .135
-(for reading on \214le descrip-)3.405 F(tor)108 480 Q F0(n)2.86 E F1 2.5
-(,o).24 G 2.5(rt)-2.5 G(he standard input \(\214le descriptor 0\) if)
+242.4 R .135(xpansion of)-.15 F F0(wor)2.975 E(d)-.37 E F1 .136
+(for reading on \214le descrip-)3.406 F(tor)108 254.4 Q F0(n)2.86 E F1
+2.5(,o).24 G 2.5(rt)-2.5 G(he standard input \(\214le descriptor 0\) if)
-2.5 E F0(n)2.86 E F1(is not speci\214ed.)2.74 E
-(The general format for redirecting input is:)108 496.8 Q([)144 513.6 Q
-F0(n)A F1(])A F2(<)A F0(wor)A(d)-.37 E F2(Redir)87 530.4 Q
-(ecting Output)-.18 E F1 1.049
+(The general format for redirecting input is:)108 271.2 Q([)144 288 Q F0
+(n)A F1(])A F2(<)A F0(wor)A(d)-.37 E F2(Redir)87 304.8 Q(ecting Output)
+-.18 E F1 1.05
(Redirecting output opens the \214le whose name results from the e)108
-542.4 R 1.05(xpansion of)-.15 F F0(wor)3.89 E(d)-.37 E F1 1.05
-(for writing on \214le de-)4.32 F(scriptor)108 554.4 Q F0(n)3.449 E F1
-3.089(,o).24 G 3.089(rt)-3.089 G .588
-(he standard output \(\214le descriptor 1\) if)-3.089 F F0(n)3.448 E F1
+316.8 R 1.049(xpansion of)-.15 F F0(wor)3.889 E(d)-.37 E F1 1.049
+(for writing on \214le de-)4.319 F(scriptor)108 328.8 Q F0(n)3.448 E F1
+3.088(,o).24 G 3.088(rt)-3.088 G .588
+(he standard output \(\214le descriptor 1\) if)-3.088 F F0(n)3.448 E F1
.588(is not speci\214ed.)3.328 F .588(If the \214le does not e)5.588 F
-.588(xist it is cre-)-.15 F(ated; if it does e)108 566.4 Q
+.589(xist it is cre-)-.15 F(ated; if it does e)108 340.8 Q
(xist it is truncated to zero size.)-.15 E
-(The general format for redirecting output is:)108 583.2 Q([)144 600 Q
+(The general format for redirecting output is:)108 357.6 Q([)144 374.4 Q
F0(n)A F1(])A F2(>)A F0(wor)A(d)-.37 E F1 .37
-(If the redirection operator is)108 616.8 R F2(>)2.87 E F1 2.87(,a)C .37
+(If the redirection operator is)108 391.2 R F2(>)2.87 E F1 2.87(,a)C .37
(nd the)-2.87 F F2(noclob)2.87 E(ber)-.1 E F1 .37(option to the)2.87 F
F2(set)2.87 E F1 -.2(bu)2.87 G .37(iltin command has been enabled, the)
-.2 F .177(redirection f)108 628.8 R .177
+.2 F .177(redirection f)108 403.2 R .177
(ails if the \214le whose name results from the e)-.1 F .177
(xpansion of)-.15 F F0(wor)2.677 E(d)-.37 E F1 -.15(ex)2.677 G .177
(ists and is a re).15 F .177(gular \214le.)-.15 F .177(If the)5.177 F
-.489(redirection operator is)108 640.8 R F2(>|)2.989 E F1 2.989(,o)C
-2.989(rt)-2.989 G .489(he redirection operator is)-2.989 F F2(>)2.989 E
-F1 .49(and the)2.989 F F2(noclob)2.99 E(ber)-.1 E F1 .49(option to the)
-2.99 F F2(set)2.99 E F1 -.2(bu)2.99 G .49(iltin is not).2 F(enabled,)108
-652.8 Q F2(bash)2.5 E F1(attempts the redirection e)2.5 E -.15(ve)-.25 G
+.49(redirection operator is)108 415.2 R F2(>|)2.99 E F1 2.99(,o)C 2.99
+(rt)-2.99 G .49(he redirection operator is)-2.99 F F2(>)2.99 E F1 .489
+(and the)2.989 F F2(noclob)2.989 E(ber)-.1 E F1 .489(option to the)2.989
+F F2(set)2.989 E F1 -.2(bu)2.989 G .489(iltin is not).2 F(enabled,)108
+427.2 Q F2(bash)2.5 E F1(attempts the redirection e)2.5 E -.15(ve)-.25 G
2.5(ni).15 G 2.5(ft)-2.5 G(he \214le named by)-2.5 E F0(wor)2.5 E(d)-.37
-E F1 -.15(ex)2.5 G(ists.).15 E F2 -.25(Ap)87 669.6 S(pending Redir).25 E
-(ected Output)-.18 E F1 1.056(Redirecting output in this f)108 681.6 R
-1.055(ashion opens the \214le whose name results from the e)-.1 F 1.055
-(xpansion of)-.15 F F0(wor)3.895 E(d)-.37 E F1 1.055(for ap-)4.325 F
-.639(pending on \214le descriptor)108 693.6 R F0(n)3.499 E F1 3.139(,o)
-.24 G 3.139(rt)-3.139 G .639
-(he standard output \(\214le descriptor 1\) if)-3.139 F F0(n)3.5 E F1
-.64(is not speci\214ed.)3.38 F .64(If the \214le does)5.64 F(not e)108
-705.6 Q(xist it is created.)-.15 E
-(The general format for appending output is:)108 722.4 Q(GNU Bash 5.3)72
-768 Q(2025 April 7)149.285 E(33)198.445 E 0 Cg EP
-%%Page: 34 34
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E([)144 84 Q F0(n)A F1(])A/F2 10/Times-Bold@0 SF(>>)A
-F0(wor)A(d)-.37 E F2(Redir)87 100.8 Q
+E F1 -.15(ex)2.5 G(ists.).15 E F2 -.25(Ap)87 444 S(pending Redir).25 E
+(ected Output)-.18 E F1 1.055(Redirecting output in this f)108 456 R
+1.055(ashion opens the \214le whose name results from the e)-.1 F 1.056
+(xpansion of)-.15 F F0(wor)3.896 E(d)-.37 E F1 1.056(for ap-)4.326 F .64
+(pending on \214le descriptor)108 468 R F0(n)3.5 E F1 3.14(,o).24 G 3.14
+(rt)-3.14 G .64(he standard output \(\214le descriptor 1\) if)-3.14 F F0
+(n)3.499 E F1 .639(is not speci\214ed.)3.379 F .639(If the \214le does)
+5.639 F(not e)108 480 Q(xist it is created.)-.15 E
+(The general format for appending output is:)108 496.8 Q([)144 513.6 Q
+F0(n)A F1(])A F2(>>)A F0(wor)A(d)-.37 E F2(Redir)87 530.4 Q
(ecting Standard Output and Standard Err)-.18 E(or)-.18 E F1 .928(This \
construct redirects both the standard output \(\214le descriptor 1\) an\
-d the standard error output \(\214le de-)108 112.8 R
-(scriptor 2\) to the \214le whose name is the e)108 124.8 Q(xpansion of)
--.15 E F0(wor)2.84 E(d)-.37 E F1(.).77 E(There are tw)108 141.6 Q 2.5
+d the standard error output \(\214le de-)108 542.4 R
+(scriptor 2\) to the \214le whose name is the e)108 554.4 Q(xpansion of)
+-.15 E F0(wor)2.84 E(d)-.37 E F1(.).77 E(There are tw)108 571.2 Q 2.5
(of)-.1 G(ormats for redirecting standard output and standard error:)
--2.5 E F2(&>)144 158.4 Q F0(wor)A(d)-.37 E F1(and)108 170.4 Q F2(>&)144
-182.4 Q F0(wor)A(d)-.37 E F1(Of the tw)108 199.2 Q 2.5(of)-.1 G
+-2.5 E F2(&>)144 588 Q F0(wor)A(d)-.37 E F1(and)108 600 Q F2(>&)144 612
+Q F0(wor)A(d)-.37 E F1(Of the tw)108 628.8 Q 2.5(of)-.1 G
(orms, the \214rst is preferred.)-2.5 E(This is semantically equi)5 E
--.25(va)-.25 G(lent to).25 E F2(>)144 216 Q F0(wor)A(d)-.37 E F1(2)2.5 E
-F2(>&)A F1(1)A .114(When using the second form,)108 232.8 R F0(wor)2.614
-E(d)-.37 E F1 .114(may not e)2.614 F .114(xpand to a number or)-.15 F F2
-<ad>2.614 E F1 5.114(.I)C 2.614(fi)-5.114 G 2.615(td)-2.614 G .115
-(oes, other redirection operators)-2.615 F(apply \(see)108 244.8 Q F2
-(Duplicating File Descriptors)2.5 E F1(belo)2.5 E
-(w\) for compatibility reasons.)-.25 E F2 -.25(Ap)87 261.6 S
+-.25(va)-.25 G(lent to).25 E F2(>)144 645.6 Q F0(wor)A(d)-.37 E F1(2)2.5
+E F2(>&)A F1(1)A .115(When using the second form,)108 662.4 R F0(wor)
+2.614 E(d)-.37 E F1 .114(may not e)2.614 F .114(xpand to a number or)
+-.15 F F2<ad>2.614 E F1 5.114(.I)C 2.614(fi)-5.114 G 2.614(td)-2.614 G
+.114(oes, other redirection operators)-2.614 F(apply \(see)108 674.4 Q
+F2(Duplicating File Descriptors)2.5 E F1(belo)2.5 E
+(w\) for compatibility reasons.)-.25 E F2 -.25(Ap)87 691.2 S
(pending Standard Output and Standard Err).25 E(or)-.18 E F1 1.032(This\
construct appends both the standard output \(\214le descriptor 1\) and\
- the standard error output \(\214le de-)108 273.6 R
-(scriptor 2\) to the \214le whose name is the e)108 285.6 Q(xpansion of)
--.15 E F0(wor)2.84 E(d)-.37 E F1(.).77 E
-(The format for appending standard output and standard error is:)108
-302.4 Q F2(&>>)144 319.2 Q F0(wor)A(d)-.37 E F1
-(This is semantically equi)108 336 Q -.25(va)-.25 G(lent to).25 E F2(>>)
-144 352.8 Q F0(wor)A(d)-.37 E F1(2)2.5 E F2(>&)A F1(1)A(\(see)108 369.6
-Q F2(Duplicating File Descriptors)2.5 E F1(belo)2.5 E(w\).)-.25 E F2
-(Her)87 386.4 Q 2.5(eD)-.18 G(ocuments)-2.5 E F1 .211(This type of redi\
+ the standard error output \(\214le de-)108 703.2 R
+(scriptor 2\) to the \214le whose name is the e)108 715.2 Q(xpansion of)
+-.15 E F0(wor)2.84 E(d)-.37 E F1(.).77 E(GNU Bash 5.3)72 768 Q
+(2026 January 14)141.79 E(34)190.95 E 0 Cg EP
+%%Page: 35 35
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E
+(The format for appending standard output and standard error is:)108 84
+Q/F2 10/Times-Bold@0 SF(&>>)144 100.8 Q F0(wor)A(d)-.37 E F1
+(This is semantically equi)108 117.6 Q -.25(va)-.25 G(lent to).25 E F2
+(>>)144 134.4 Q F0(wor)A(d)-.37 E F1(2)2.5 E F2(>&)A F1(1)A(\(see)108
+151.2 Q F2(Duplicating File Descriptors)2.5 E F1(belo)2.5 E(w\).)-.25 E
+F2(Her)87 168 Q 2.5(eD)-.18 G(ocuments)-2.5 E F1 .211(This type of redi\
rection instructs the shell to read input from the current source until\
- it reads a line contain-)108 398.4 R .27(ing only)108 410.4 R F0
-(delimiter)3.12 E F1 .27(\(with no trailing blanks\).)3.5 F .269
-(All of the lines read up to that point then become the standard)5.27 F
-(input \(or \214le descriptor)108 422.4 Q F0(n)2.5 E F1(if)2.5 E F0(n)
-2.5 E F1(is speci\214ed\) for a command.)2.5 E
-(The format of here-documents is:)108 439.2 Q([)144 456 Q F0(n)A F1(])A
-F2(<<)A F1([)A F2<ad>A F1(])A F0(wor)A(d)-.37 E(her)164 468 Q
-(e-document)-.37 E(delimiter)144 480 Q F1 .241
-(The shell does not perform parameter and v)108 496.8 R .241(ariable e)
+ it reads a line contain-)108 180 R .269(ing only)108 192 R F0
+(delimiter)3.119 E F1 .269(\(with no trailing blanks\).)3.499 F .27
+(All of the lines read up to that point then become the standard)5.269 F
+(input \(or \214le descriptor)108 204 Q F0(n)2.5 E F1(if)2.5 E F0(n)2.5
+E F1(is speci\214ed\) for a command.)2.5 E
+(The format of here-documents is:)108 220.8 Q([)144 237.6 Q F0(n)A F1(])
+A F2(<<)A F1([)A F2<ad>A F1(])A F0(wor)A(d)-.37 E(her)164 249.6 Q
+(e-document)-.37 E(delimiter)144 261.6 Q F1 .241
+(The shell does not perform parameter and v)108 278.4 R .241(ariable e)
-.25 F .241(xpansion, command substitution, arithmetic e)-.15 F
-(xpansion,)-.15 E(or pathname e)108 508.8 Q(xpansion on)-.15 E F0(wor)
-2.84 E(d)-.37 E F1(.).77 E .053(If an)108 525.6 R 2.553(yp)-.15 G .053
-(art of)-2.553 F F0(wor)2.893 E(d)-.37 E F1 .053(is quoted, the)3.323 F
+(xpansion,)-.15 E(or pathname e)108 290.4 Q(xpansion on)-.15 E F0(wor)
+2.84 E(d)-.37 E F1(.).77 E .052(If an)108 307.2 R 2.552(yp)-.15 G .052
+(art of)-2.552 F F0(wor)2.892 E(d)-.37 E F1 .052(is quoted, the)3.322 F
F0(delimiter)2.902 E F1 .052(is the result of quote remo)3.282 F -.25
-(va)-.15 G 2.552(lo).25 G(n)-2.552 E F0(wor)2.892 E(d)-.37 E F1 2.552
-(,a).77 G .052(nd the lines in the here-)-2.552 F .101
-(document are not e)108 537.6 R 2.601(xpanded. If)-.15 F F0(wor)2.602 E
+(va)-.15 G 2.552(lo).25 G(n)-2.552 E F0(wor)2.892 E(d)-.37 E F1 2.553
+(,a).77 G .053(nd the lines in the here-)-2.553 F .102
+(document are not e)108 319.2 R 2.602(xpanded. If)-.15 F F0(wor)2.602 E
(d)-.37 E F1 .102(is unquoted, the)2.602 F F0(delimiter)2.952 E F1(is)
-3.332 E F0(wor)2.602 E(d)-.37 E F1 .102
-(itself, and the here-document te)2.602 F .102(xt is)-.15 F .131(treate\
+3.332 E F0(wor)2.602 E(d)-.37 E F1 .101
+(itself, and the here-document te)2.602 F .101(xt is)-.15 F .131(treate\
d similarly to a double-quoted string: all lines of the here-document a\
-re subjected to parameter e)108 549.6 R(xpan-)-.15 E .894
-(sion, command substitution, and arithmetic e)108 561.6 R .894
-(xpansion, the character sequence)-.15 F F2(\\<newline>)3.394 E F1 .895
-(is treated liter)3.394 F(-)-.2 E(ally)108 573.6 Q 2.624(,a)-.65 G(nd)
+re subjected to parameter e)108 331.2 R(xpan-)-.15 E .894
+(sion, command substitution, and arithmetic e)108 343.2 R .894
+(xpansion, the character sequence)-.15 F F2(\\<newline>)3.394 E F1 .894
+(is treated liter)3.394 F(-)-.2 E(ally)108 355.2 Q 2.624(,a)-.65 G(nd)
-2.624 E F2(\\)2.624 E F1 .124(must be used to quote the characters)
2.624 F F2(\\)2.624 E F1(,)A F2($)2.624 E F1 2.624(,a)C(nd)-2.624 E F2
<92>2.624 E F1 2.624(;h)C -.25(ow)-2.624 G -2.15 -.25(ev e).25 H .924
-.4(r, d).25 H .124(ouble quote characters ha).4 F .424 -.15(ve n)-.2 H
-2.624(os).15 G(pecial)-2.624 E(meaning.)108 585.6 Q .97
-(If the redirection operator is)108 602.4 R F2(<<\255)3.47 E F1 3.47(,t)
-C .971(hen the shell strips all leading tab characters from input lines\
- and the)-3.47 F .366(line containing)108 614.4 R F0(delimiter)3.216 E
-F1 5.366(.T).73 G .366(his allo)-5.366 F .365
+2.624(os).15 G(pecial)-2.624 E(meaning.)108 367.2 Q .971
+(If the redirection operator is)108 384 R F2(<<\255)3.471 E F1 3.471(,t)
+C .97(hen the shell strips all leading tab characters from input lines \
+and the)-3.471 F .365(line containing)108 396 R F0(delimiter)3.215 E F1
+5.365(.T).73 G .365(his allo)-5.365 F .365
(ws here-documents within shell scripts to be indented in a natural f)
--.25 F(ash-)-.1 E(ion.)108 626.4 Q .797
-(If the delimiter is not quoted, the)108 643.2 R F2(\\<newline>)3.298 E
-F1 .798(sequence is treated as a line continuation: the tw)3.298 F 3.298
-(ol)-.1 G .798(ines are)-3.298 F .973(joined and the backslash-ne)108
-655.2 R .973(wline is remo)-.25 F -.15(ve)-.15 G 3.472(d. This).15 F
-.972(happens while reading the here-document, before the)3.472 F
-(check for the ending delimiter)108 667.2 Q 2.5(,s)-.4 G 2.5(oj)-2.5 G
-(oined lines can form the end delimiter)-2.5 E(.)-.55 E F2(Her)87 684 Q
-2.5(eS)-.18 G(trings)-2.5 E F1 2.5(Av)108 696 S
-(ariant of here documents, the format is:)-2.75 E([)144 712.8 Q F0(n)A
-F1(])A F2(<<<)A F0(wor)A(d)-.37 E F1(The)108 729.6 Q F0(wor)3.291 E(d)
--.37 E F1(under)3.291 E .792(goes tilde e)-.18 F .792
-(xpansion, parameter and v)-.15 F .792(ariable e)-.25 F .792
-(xpansion, command substitution, arithmetic)-.15 F(GNU Bash 5.3)72 768 Q
-(2025 April 7)149.285 E(34)198.445 E 0 Cg EP
-%%Page: 35 35
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E -.15(ex)108 84 S 1.188(pansion, and quote remo).15
-F -.25(va)-.15 G 3.687(l. P).25 F 1.187(athname e)-.15 F 1.187
-(xpansion and w)-.15 F 1.187(ord splitting are not performed.)-.1 F
-1.187(The result is)6.187 F .374(supplied as a single string, with a ne)
-108 96 R .375(wline appended, to the command on its standard input \(or\
- \214le descrip-)-.25 F(tor)108 108 Q F0(n)2.5 E F1(if)2.5 E F0(n)2.5 E
-F1(is speci\214ed\).)2.5 E/F2 10/Times-Bold@0 SF
-(Duplicating File Descriptors)87 124.8 Q F1(The redirection operator)108
-136.8 Q([)144 153.6 Q F0(n)A F1(])A F2(<&)A F0(wor)A(d)-.37 E F1 .512
-(is used to duplicate input \214le descriptors.)108 170.4 R(If)5.512 E
+-.25 F(ash-)-.1 E(ion.)108 408 Q .427
+(If the delimiter is not quoted, the shell treats the)108 424.8 R F2
+(\\<newline>)2.927 E F1 .426(sequence as a line continuation: the tw)
+2.927 F 2.926(ol)-.1 G(ines)-2.926 E .973
+(are joined and the backslash-ne)108 436.8 R .973(wline is remo)-.25 F
+-.15(ve)-.15 G 3.473(d. This).15 F .973
+(happens while reading the here-document, before)3.473 F
+(the check for the ending delimiter)108 448.8 Q 2.5(,s)-.4 G 2.5(oj)-2.5
+G(oined lines can form the end delimiter)-2.5 E(.)-.55 E F2(Her)87 465.6
+Q 2.5(eS)-.18 G(trings)-2.5 E F1 2.5(Av)108 477.6 S
+(ariant of here documents, the format is:)-2.75 E([)144 494.4 Q F0(n)A
+F1(])A F2(<<<)A F0(wor)A(d)-.37 E F1(The)108 511.2 Q F0(wor)3.292 E(d)
+-.37 E F1(under)3.292 E .792(goes tilde e)-.18 F .792
+(xpansion, parameter and v)-.15 F .792(ariable e)-.25 F .791
+(xpansion, command substitution, arithmetic)-.15 F -.15(ex)108 523.2 S
+1.187(pansion, and quote remo).15 F -.25(va)-.15 G 3.687(l. P).25 F
+1.187(athname e)-.15 F 1.187(xpansion and w)-.15 F 1.187
+(ord splitting are not performed.)-.1 F 1.188(The result is)6.187 F .375
+(supplied as a single string, with a ne)108 535.2 R .374(wline appended\
+, to the command on its standard input \(or \214le descrip-)-.25 F(tor)
+108 547.2 Q F0(n)2.5 E F1(if)2.5 E F0(n)2.5 E F1(is speci\214ed\).)2.5 E
+F2(Duplicating File Descriptors)87 564 Q F1(The redirection operator)108
+576 Q([)144 592.8 Q F0(n)A F1(])A F2(<&)A F0(wor)A(d)-.37 E F1 .512
+(is used to duplicate input \214le descriptors.)108 609.6 R(If)5.512 E
F0(wor)3.352 E(d)-.37 E F1 -.15(ex)3.782 G .512
(pands to one or more digits, \214le descriptor).15 F F0(n)3.372 E F1
-.512(is made)3.252 F .097(to be a cop)108 182.4 R 2.597(yo)-.1 G 2.598
-(ft)-2.597 G .098(hat \214le descriptor)-2.598 F 5.098(.I)-.55 G 2.598
+.513(is made)3.253 F .098(to be a cop)108 621.6 R 2.598(yo)-.1 G 2.598
+(ft)-2.598 G .098(hat \214le descriptor)-2.598 F 5.098(.I)-.55 G 2.598
(ti)-5.098 G 2.598(sar)-2.598 G .098(edirection error if the digits in)
--2.598 F F0(wor)2.938 E(d)-.37 E F1 .098
+-2.598 F F0(wor)2.938 E(d)-.37 E F1 .097
(do not specify a \214le descrip-)3.368 F 1.04(tor open for input.)108
-194.4 R(If)6.04 E F0(wor)3.88 E(d)-.37 E F1 -.25(eva)4.31 G 1.04
+633.6 R(If)6.04 E F0(wor)3.88 E(d)-.37 E F1 -.25(eva)4.31 G 1.04
(luates to).25 F F2<ad>3.54 E F1 3.54<2c8c>C 1.04(le descriptor)-3.54 F
F0(n)3.9 E F1 1.04(is closed.)3.78 F(If)6.04 E F0(n)3.9 E F1 1.04
(is not speci\214ed, this uses the)3.78 F
-(standard input \(\214le descriptor 0\).)108 206.4 Q(The operator)108
-223.2 Q([)144 240 Q F0(n)A F1(])A F2(>&)A F0(wor)A(d)-.37 E F1 .31
-(is used similarly to duplicate output \214le descriptors.)108 256.8 R
-(If)5.31 E F0(n)3.17 E F1 .31
+(standard input \(\214le descriptor 0\).)108 645.6 Q(The operator)108
+662.4 Q([)144 679.2 Q F0(n)A F1(])A F2(>&)A F0(wor)A(d)-.37 E F1 .31
+(is used similarly to duplicate output \214le descriptors.)108 696 R(If)
+5.31 E F0(n)3.17 E F1 .31
(is not speci\214ed, this uses the standard output \(\214le)3.05 F .552
-(descriptor 1\).)108 268.8 R .552
+(descriptor 1\).)108 708 R .552
(It is a redirection error if the digits in)5.552 F F0(wor)3.392 E(d)
-.37 E F1 .552(do not specify a \214le descriptor open for output.)3.822
-F(If)108 280.8 Q F0(wor)3.227 E(d)-.37 E F1 -.25(eva)3.657 G .387
-(luates to).25 F F2<ad>2.887 E F1 2.887<2c8c>C .387(le descriptor)-2.887
-F F0(n)3.248 E F1 .388(is closed.)3.128 F .388(As a special case, if)
-5.388 F F0(n)2.888 E F1 .388(is omitted, and)2.888 F F0(wor)2.888 E(d)
--.37 E F1 .388(does not e)2.888 F(x-)-.15 E 1.063
-(pand to one or more digits or)108 292.8 R F2<ad>3.563 E F1 3.563(,t)C
-1.063
+F(If)108 720 Q F0(wor)3.967 E(d)-.37 E F1 -.25(eva)4.397 G 1.127
+(luates to).25 F F2<ad>3.627 E F1 3.626<2c8c>C 1.126(le descriptor)
+-3.626 F F0(n)3.986 E F1 1.126(is closed.)3.866 F 1.126
+(As a special case, if)6.126 F F0(n)3.626 E F1 1.126(is omitted, and)
+3.626 F F0(wor)3.626 E(d)-.37 E F1 1.126(does not)3.626 F(GNU Bash 5.3)
+72 768 Q(2026 January 14)141.79 E(35)190.95 E 0 Cg EP
+%%Page: 36 36
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E -.15(ex)108 84 S .546
+(pand to one or more digits or).15 F/F2 10/Times-Bold@0 SF<ad>3.047 E F1
+3.047(,t)C .547
(his redirects the standard output and standard error as described pre)
--3.563 F(vi-)-.25 E(ously)108 304.8 Q(.)-.65 E F2(Mo)87 321.6 Q
-(ving File Descriptors)-.1 E F1(The redirection operator)108 333.6 Q([)
-144 350.4 Q F0(n)A F1(])A F2(<&)A F0(digit)A F2<ad>A F1(mo)108 367.2 Q
--.15(ve)-.15 G 3.017(st).15 G .517(he \214le descriptor)-3.017 F F0
-(digit)3.017 E F1 .517(to \214le descriptor)3.017 F F0(n)3.377 E F1
-3.017(,o).24 G 3.017(rt)-3.017 G .518
-(he standard input \(\214le descriptor 0\) if)-3.017 F F0(n)3.018 E F1
-.518(is not speci-)3.018 F(\214ed.)108 379.2 Q F0(digit)5 E F1
+-3.047 F(vi-)-.25 E(ously)108 96 Q(.)-.65 E F2(Mo)87 112.8 Q
+(ving File Descriptors)-.1 E F1(The redirection operator)108 124.8 Q([)
+144 141.6 Q F0(n)A F1(])A F2(<&)A F0(digit)A F2<ad>A F1(mo)108 158.4 Q
+-.15(ve)-.15 G 3.018(st).15 G .518(he \214le descriptor)-3.018 F F0
+(digit)3.018 E F1 .518(to \214le descriptor)3.018 F F0(n)3.378 E F1
+3.018(,o).24 G 3.018(rt)-3.018 G .517
+(he standard input \(\214le descriptor 0\) if)-3.018 F F0(n)3.017 E F1
+.517(is not speci-)3.017 F(\214ed.)108 170.4 Q F0(digit)5 E F1
(is closed after being duplicated to)2.5 E F0(n)2.5 E F1(.)A(Similarly)
-108 396 Q 2.5(,t)-.65 G(he redirection operator)-2.5 E([)144 412.8 Q F0
-(n)A F1(])A F2(>&)A F0(digit)A F2<ad>A F1(mo)108 429.6 Q -.15(ve)-.15 G
-2.768(st).15 G .268(he \214le descriptor)-2.768 F F0(digit)2.768 E F1
-.268(to \214le descriptor)2.768 F F0(n)3.128 E F1 2.768(,o).24 G 2.768
-(rt)-2.768 G .267(he standard output \(\214le descriptor 1\) if)-2.768 F
-F0(n)2.767 E F1 .267(is not speci-)2.767 F(\214ed.)108 441.6 Q F2
-(Opening File Descriptors f)87 458.4 Q(or Reading and Writing)-.25 E F1
-(The redirection operator)108 470.4 Q([)144 487.2 Q F0(n)A F1(])A F2(<>)
-A F0(wor)A(d)-.37 E F1 .279(opens the \214le whose name is the e)108 504
-R .279(xpansion of)-.15 F F0(wor)3.119 E(d)-.37 E F1 .279
+108 187.2 Q 2.5(,t)-.65 G(he redirection operator)-2.5 E([)144 204 Q F0
+(n)A F1(])A F2(>&)A F0(digit)A F2<ad>A F1(mo)108 220.8 Q -.15(ve)-.15 G
+2.767(st).15 G .267(he \214le descriptor)-2.767 F F0(digit)2.767 E F1
+.267(to \214le descriptor)2.767 F F0(n)3.127 E F1 2.767(,o).24 G 2.767
+(rt)-2.767 G .268(he standard output \(\214le descriptor 1\) if)-2.767 F
+F0(n)2.768 E F1 .268(is not speci-)2.768 F(\214ed.)108 232.8 Q F2
+(Opening File Descriptors f)87 249.6 Q(or Reading and Writing)-.25 E F1
+(The redirection operator)108 261.6 Q([)144 278.4 Q F0(n)A F1(])A F2(<>)
+A F0(wor)A(d)-.37 E F1 .279(opens the \214le whose name is the e)108
+295.2 R .279(xpansion of)-.15 F F0(wor)3.119 E(d)-.37 E F1 .279
(for both reading and writing on \214le descriptor)3.549 F F0(n)3.139 E
F1 2.779(,o).24 G 2.779(ro)-2.779 G(n)-2.779 E(\214le descriptor 0 if)
-108 516 Q F0(n)2.86 E F1(is not speci\214ed.)2.74 E
+108 307.2 Q F0(n)2.86 E F1(is not speci\214ed.)2.74 E
(If the \214le does not e)5 E(xist, it is created.)-.15 E/F3 10.95
-/Times-Bold@0 SF(ALIASES)72 532.8 Q F0(Aliases)108 544.8 Q F1(allo)3.002
-E 3.002(was)-.25 G .502(tring to be substituted for a w)-3.002 F .502
+/Times-Bold@0 SF(ALIASES)72 324 Q F0(Aliases)108 336 Q F1(allo)3.001 E
+3.001(was)-.25 G .501(tring to be substituted for a w)-3.001 F .502
(ord that is in a position in the input where it can be the \214rst)-.1
-F -.1(wo)108 556.8 S .408(rd of a simple command.).1 F .408(Aliases ha)
-5.408 F .708 -.15(ve n)-.2 H .408(ames and corresponding v).15 F .409
-(alues that are set and unset using the)-.25 F F2(alias)108 568.8 Q F1
+F -.1(wo)108 348 S .409(rd of a simple command.).1 F .408(Aliases ha)
+5.408 F .708 -.15(ve n)-.2 H .408(ames and corresponding v).15 F .408
+(alues that are set and unset using the)-.25 F F2(alias)108 360 Q F1
(and)2.5 E F2(unalias)2.5 E F1 -.2(bu)2.5 G(iltin commands \(see).2 E/F4
9/Times-Bold@0 SF(SHELL B)2.5 E(UIL)-.09 E(TIN COMMANDS)-.828 E F1(belo)
-2.25 E(w\).)-.25 E 1.034(If the shell reads an unquoted w)108 585.6 R
-1.033(ord in the right position, it checks the w)-.1 F 1.033
-(ord to see if it matches an alias)-.1 F 3.038(name. If)108 597.6 R .538
-(it matches, the shell replaces the w)3.038 F .538(ord with the alias v)
+2.25 E(w\).)-.25 E 1.033(If the shell reads an unquoted w)108 376.8 R
+1.033(ord in the right position, it checks the w)-.1 F 1.034
+(ord to see if it matches an alias)-.1 F 3.039(name. If)108 388.8 R .538
+(it matches, the shell replaces the w)3.039 F .538(ord with the alias v)
-.1 F .538(alue, and reads that v)-.25 F .538(alue as if it had been)
--.25 F 1.082(read instead of the w)108 609.6 R 3.582(ord. The)-.1 F
+-.25 F 1.081(read instead of the w)108 400.8 R 3.582(ord. The)-.1 F
1.082(shell doesn')3.582 F 3.582(tl)-.18 G 1.082(ook at an)-3.582 F
3.582(yc)-.15 G 1.082(haracters follo)-3.582 F 1.082(wing the w)-.25 F
-1.081(ord before attempting)-.1 F(alias substitution.)108 621.6 Q .264
-(The characters)108 638.4 R F2(/)2.764 E F1(,)A F2($)2.764 E F1(,)A F2
-<92>2.764 E F1 2.764(,a)C(nd)-2.764 E F2(=)2.764 E F1 .264(and an)2.764
+1.082(ord before attempting)-.1 F(alias substitution.)108 412.8 Q .265
+(The characters)108 429.6 R F2(/)2.765 E F1(,)A F2($)2.765 E F1(,)A F2
+<92>2.765 E F1 2.764(,a)C(nd)-2.764 E F2(=)2.764 E F1 .264(and an)2.764
F 2.764(yo)-.15 G 2.764(ft)-2.764 G .264(he shell)-2.764 F F0(metac)
2.764 E(har)-.15 E(acter)-.15 E(s)-.1 E F1 .264
-(or quoting characters listed abo)2.764 F .565 -.15(ve m)-.15 H .265
-(ay not).15 F .299(appear in an alias name.)108 650.4 R .298
+(or quoting characters listed abo)2.764 F .564 -.15(ve m)-.15 H .264
+(ay not).15 F .298(appear in an alias name.)108 441.6 R .298
(The replacement te)5.298 F .298(xt may contain an)-.15 F 2.798(yv)-.15
-G .298(alid shell input, including shell metachar)-3.048 F(-)-.2 E 2.625
-(acters. The)108 662.4 R .125(\214rst w)2.625 F .125
+G .298(alid shell input, including shell metachar)-3.048 F(-)-.2 E 2.626
+(acters. The)108 453.6 R .126(\214rst w)2.626 F .126
(ord of the replacement te)-.1 F .125(xt is tested for aliases, b)-.15 F
-.125(ut a w)-.2 F .126(ord that is identical to an alias be-)-.1 F .666
-(ing e)108 674.4 R .666(xpanded is not e)-.15 F .666
+.125(ut a w)-.2 F .125(ord that is identical to an alias be-)-.1 F .666
+(ing e)108 465.6 R .666(xpanded is not e)-.15 F .666
(xpanded a second time.)-.15 F .666(This means that one may alias)5.666
F F2(ls)3.166 E F1(to)3.166 E F2 .666(ls \255F)3.166 F F1 3.166(,f)C
-.666(or instance, and)-3.166 F F2(bash)108 686.4 Q F1
+.666(or instance, and)-3.166 F F2(bash)108 477.6 Q F1
(does not try to recursi)2.5 E -.15(ve)-.25 G(ly e).15 E
-(xpand the replacement te)-.15 E(xt.)-.15 E 1.035
-(If the last character of the alias v)108 703.2 R 1.035(alue is a)-.25 F
+(xpand the replacement te)-.15 E(xt.)-.15 E 1.036
+(If the last character of the alias v)108 494.4 R 1.035(alue is a)-.25 F
F0(blank)3.805 E F1 3.535(,t).67 G 1.035(he shell checks the ne)-3.535 F
-1.036(xt command w)-.15 F 1.036(ord follo)-.1 F 1.036(wing the)-.25 F
-(alias for alias e)108 715.2 Q(xpansion.)-.15 E(GNU Bash 5.3)72 768 Q
-(2025 April 7)149.285 E(35)198.445 E 0 Cg EP
-%%Page: 36 36
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E(Aliases are created and listed with the)108 84 Q/F2
-10/Times-Bold@0 SF(alias)2.5 E F1(command, and remo)2.5 E -.15(ve)-.15 G
-2.5(dw).15 G(ith the)-2.5 E F2(unalias)2.5 E F1(command.)2.5 E .742
-(There is no mechanism for using ar)108 100.8 R .741
+1.035(xt command w)-.15 F 1.035(ord follo)-.1 F 1.035(wing the)-.25 F
+(alias for alias e)108 506.4 Q(xpansion.)-.15 E
+(Aliases are created and listed with the)108 523.2 Q F2(alias)2.5 E F1
+(command, and remo)2.5 E -.15(ve)-.15 G 2.5(dw).15 G(ith the)-2.5 E F2
+(unalias)2.5 E F1(command.)2.5 E .741
+(There is no mechanism for using ar)108 540 R .741
(guments in the replacement te)-.18 F 3.241(xt. If)-.15 F(ar)3.241 E
-.741(guments are needed, use a shell)-.18 F(function \(see)108 112.8 Q
-/F3 9/Times-Bold@0 SF(FUNCTIONS)2.5 E F1(belo)2.25 E(w\) instead.)-.25 E
-.282(Aliases are not e)108 129.6 R .282
+.742(guments are needed, use a shell)-.18 F(function \(see)108 552 Q F4
+(FUNCTIONS)2.5 E F1(belo)2.25 E(w\) instead.)-.25 E .283
+(Aliases are not e)108 568.8 R .283
(xpanded when the shell is not interacti)-.15 F -.15(ve)-.25 G 2.782(,u)
-.15 G .282(nless the)-2.782 F F2(expand_aliases)2.783 E F1 .283
-(shell option is set us-)2.783 F(ing)108 141.6 Q F2(shopt)2.5 E F1
-(\(see the description of)2.5 E F2(shopt)2.5 E F1(under)2.5 E F3
+.15 G .282(nless the)-2.782 F F2(expand_aliases)2.782 E F1 .282
+(shell option is set us-)2.782 F(ing)108 580.8 Q F2(shopt)2.5 E F1
+(\(see the description of)2.5 E F2(shopt)2.5 E F1(under)2.5 E F4
(SHELL B)2.5 E(UIL)-.09 E(TIN COMMANDS)-.828 E F1(belo)2.25 E(w\).)-.25
-E .436
+E .435
(The rules concerning the de\214nition and use of aliases are some)108
-158.4 R .435(what confusing.)-.25 F F2(Bash)5.435 E F1(al)2.935 E -.1
-(wa)-.1 G .435(ys reads at least).1 F .67
-(one complete line of input, and all lines that mak)108 170.4 R 3.17(eu)
+597.6 R .436(what confusing.)-.25 F F2(Bash)5.436 E F1(al)2.936 E -.1
+(wa)-.1 G .436(ys reads at least).1 F .67
+(one complete line of input, and all lines that mak)108 609.6 R 3.17(eu)
-.1 G 3.17(pac)-3.17 G .67(ompound command, before e)-3.17 F -.15(xe)
-.15 G .67(cuting an).15 F 3.17(yo)-.15 G 3.17(ft)-3.17 G(he)-3.17 E
-1.059(commands on that line or the compound command.)108 182.4 R 1.059
-(Aliases are e)6.059 F 1.058(xpanded when a command is read, not)-.15 F
-.074(when it is e)108 194.4 R -.15(xe)-.15 G 2.574(cuted. Therefore,).15
+1.058(commands on that line or the compound command.)108 621.6 R 1.059
+(Aliases are e)6.059 F 1.059(xpanded when a command is read, not)-.15 F
+.075(when it is e)108 633.6 R -.15(xe)-.15 G 2.575(cuted. Therefore,).15
F .075(an alias de\214nition appearing on the same line as another comm\
-and does not)2.574 F(tak)108 206.4 Q 2.839(ee)-.1 G -.25(ff)-2.839 G
+and does not)2.575 F(tak)108 645.6 Q 2.838(ee)-.1 G -.25(ff)-2.838 G
.339(ect until the shell reads the ne).25 F .339
(xt line of input, and an alias de\214nition in a compound command does)
--.15 F .031(not tak)108 218.4 R 2.531(ee)-.1 G -.25(ff)-2.531 G .031
+-.15 F .032(not tak)108 657.6 R 2.532(ee)-.1 G -.25(ff)-2.532 G .032
(ect until the shell parses and e).25 F -.15(xe)-.15 G .031
-(cutes the entire compound command.).15 F .032(The commands follo)5.032
-F(wing)-.25 E .726(the alias de\214nition on that line, or in the rest \
-of a compound command, are not af)108 230.4 R .725(fected by the ne)-.25
-F 3.225(wa)-.25 G(lias.)-3.225 E .657(This beha)108 242.4 R .657
-(vior is also an issue when functions are e)-.2 F -.15(xe)-.15 G 3.158
-(cuted. Aliases).15 F .658(are e)3.158 F .658
-(xpanded when a function de\214ni-)-.15 F .081
-(tion is read, not when the function is e)108 254.4 R -.15(xe)-.15 G .08
-(cuted, because a function de\214nition is itself a command.).15 F .08
-(As a con-)5.08 F .264
-(sequence, aliases de\214ned in a function are not a)108 266.4 R -.25
-(va)-.2 G .265(ilable until after that function is e).25 F -.15(xe)-.15
-G 2.765(cuted. T).15 F 2.765(ob)-.8 G 2.765(es)-2.765 G .265(afe, al-)
--2.765 F -.1(wa)108 278.4 S
+(cutes the entire compound command.).15 F .031(The commands follo)5.031
+F(wing)-.25 E .725(the alias de\214nition on that line, or in the rest \
+of a compound command, are not af)108 669.6 R .726(fected by the ne)-.25
+F 3.226(wa)-.25 G(lias.)-3.226 E .658(This beha)108 681.6 R .658
+(vior is also an issue when functions are e)-.2 F -.15(xe)-.15 G 3.157
+(cuted. Aliases).15 F .657(are e)3.157 F .657
+(xpanded when a function de\214ni-)-.15 F .08
+(tion is read, not when the function is e)108 693.6 R -.15(xe)-.15 G
+.081(cuted, because a function de\214nition is itself a command.).15 F
+.081(As a con-)5.081 F .265
+(sequence, aliases de\214ned in a function are not a)108 705.6 R -.25
+(va)-.2 G .264(ilable until after that function is e).25 F -.15(xe)-.15
+G 2.764(cuted. T).15 F 2.764(ob)-.8 G 2.764(es)-2.764 G .264(afe, al-)
+-2.764 F -.1(wa)108 717.6 S
(ys put alias de\214nitions on a separate line, and do not use).1 E F2
-(alias)2.5 E F1(in compound commands.)2.5 E -.15(Fo)108 295.2 S 2.5(ra)
-.15 G(lmost e)-2.5 E -.15(ve)-.25 G
-(ry purpose, shell functions are preferable to aliases.).15 E/F4 10.95
-/Times-Bold@0 SF(FUNCTIONS)72 312 Q F1 3.468(As)108 324 S .968
-(hell function, de\214ned as described abo)-3.468 F 1.267 -.15(ve u)-.15
-H(nder).15 E F3 .967(SHELL GRAMMAR)3.467 F/F5 9/Times-Roman@0 SF(,)A F1
-.967(stores a series of commands for)3.217 F .534(later e)108 336 R -.15
-(xe)-.15 G 3.034(cution. When).15 F .535(the name of a shell function i\
-s used as a simple command name, the shell e)3.034 F -.15(xe)-.15 G
-(cutes).15 E .295
-(the list of commands associated with that function name.)108 348 R .295
-(Functions are e)5.295 F -.15(xe)-.15 G .294(cuted in the conte).15 F
-.294(xt of the call-)-.15 F 1.626(ing shell; there is no ne)108 360 R
-4.126(wp)-.25 G 1.627
-(rocess created to interpret them \(contrast this with the e)-4.126 F
--.15(xe)-.15 G 1.627(cution of a shell).15 F(script\).)108 372 Q .256
-(When a function is e)108 388.8 R -.15(xe)-.15 G .256(cuted, the ar).15
-F .255
+(alias)2.5 E F1(in compound commands.)2.5 E(GNU Bash 5.3)72 768 Q
+(2026 January 14)141.79 E(36)190.95 E 0 Cg EP
+%%Page: 37 37
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E -.15(Fo)108 84 S 2.5(ra).15 G(lmost e)-2.5 E -.15
+(ve)-.25 G(ry purpose, shell functions are preferable to aliases.).15 E
+/F2 10.95/Times-Bold@0 SF(FUNCTIONS)72 100.8 Q F1 3.467(As)108 112.8 S
+.967(hell function, de\214ned as described abo)-3.467 F 1.267 -.15(ve u)
+-.15 H(nder).15 E/F3 9/Times-Bold@0 SF .967(SHELL GRAMMAR)3.467 F/F4 9
+/Times-Roman@0 SF(,)A F1 .968(stores a series of commands for)3.217 F
+.535(later e)108 124.8 R -.15(xe)-.15 G 3.035(cution. When).15 F .534(t\
+he name of a shell function is used as a simple command name, the shell\
+ e)3.035 F -.15(xe)-.15 G(cutes).15 E .294
+(the list of commands associated with that function name.)108 136.8 R
+.295(Functions are e)5.295 F -.15(xe)-.15 G .295(cuted in the conte).15
+F .295(xt of the call-)-.15 F 1.627(ing shell; there is no ne)108 148.8
+R 4.127(wp)-.25 G 1.627
+(rocess created to interpret them \(contrast this with the e)-4.127 F
+-.15(xe)-.15 G 1.626(cution of a shell).15 F(script\).)108 160.8 Q .255
+(When a function is e)108 177.6 R -.15(xe)-.15 G .255(cuted, the ar).15
+F .256
(guments to the function become the positional parameters during its e)
--.18 F(x-)-.15 E 2.507(ecution. The)108 400.8 R .007(special parameter)
-2.507 F F2(#)2.507 E F1 .007(is updated to re\215ect the ne)2.507 F
-2.508(wp)-.25 G .008(ositional parameters.)-2.508 F .008
-(Special parameter)5.008 F F2(0)2.508 E F1(is)2.508 E 2.638
-(unchanged. The)108 412.8 R .138(\214rst element of the)2.638 F F3
-(FUNCN)2.638 E(AME)-.18 E F1 -.25(va)2.388 G .138
-(riable is set to the name of the function while the func-).25 F
-(tion is e)108 424.8 Q -.15(xe)-.15 G(cuting.).15 E 1.25
-(All other aspects of the shell e)108 441.6 R -.15(xe)-.15 G 1.25
+-.18 F(x-)-.15 E 2.508(ecution. The)108 189.6 R .008(special parameter)
+2.508 F/F5 10/Times-Bold@0 SF(#)2.508 E F1 .008
+(is updated to re\215ect the ne)2.508 F 2.507(wp)-.25 G .007
+(ositional parameters.)-2.507 F .007(Special parameter)5.007 F F5(0)
+2.507 E F1(is)2.507 E 2.637(unchanged. The)108 201.6 R .138
+(\214rst element of the)2.637 F F3(FUNCN)2.638 E(AME)-.18 E F1 -.25(va)
+2.388 G .138(riable is set to the name of the function while the func-)
+.25 F(tion is e)108 213.6 Q -.15(xe)-.15 G(cuting.).15 E 1.25
+(All other aspects of the shell e)108 230.4 R -.15(xe)-.15 G 1.25
(cution en).15 F 1.25
(vironment are identical between a function and its caller with)-.4 F
-1.215(these e)108 453.6 R 1.215(xceptions: the)-.15 F F3(DEB)3.715 E(UG)
--.09 E F1(and)3.465 E F2(RETURN)3.715 E F1 1.215
-(traps \(see the description of the)3.715 F F2(trap)3.714 E F1 -.2(bu)
-3.714 G 1.214(iltin under).2 F F3(SHELL)3.714 E -.09(BU)108 465.6 S(IL)
-.09 E .478(TIN COMMANDS)-.828 F F1(belo)2.728 E .479
+1.214(these e)108 242.4 R 1.214(xceptions: the)-.15 F F3(DEB)3.714 E(UG)
+-.09 E F1(and)3.464 E F5(RETURN)3.715 E F1 1.215
+(traps \(see the description of the)3.715 F F5(trap)3.715 E F1 -.2(bu)
+3.715 G 1.215(iltin under).2 F F3(SHELL)3.715 E -.09(BU)108 254.4 S(IL)
+.09 E .479(TIN COMMANDS)-.828 F F1(belo)2.729 E .479
(w\) are not inherited unless the function has been gi)-.25 F -.15(ve)
--.25 G 2.979(nt).15 G(he)-2.979 E F2(trace)2.979 E F1(attrib)2.979 E
-.479(ute \(see)-.2 F .421(the description of the)108 477.6 R F3(declar)
+-.25 G 2.978(nt).15 G(he)-2.978 E F5(trace)2.978 E F1(attrib)2.978 E
+.478(ute \(see)-.2 F .42(the description of the)108 266.4 R F3(declar)
2.92 E(e)-.162 E F1 -.2(bu)2.67 G .42(iltin belo).2 F .42(w\) or the)
--.25 F F2 .42(\255o functrace)2.92 F F1 .42
-(shell option has been enabled with the)2.92 F F2(set)2.92 E F1 -.2(bu)
-108 489.6 S .071(iltin \(in which case all functions inherit the).2 F F2
-(DEB)2.572 E(UG)-.1 E F1(and)2.572 E F2(RETURN)2.572 E F1 .072
-(traps\), and the)2.572 F F3(ERR)2.572 E F1 .072(trap is not inher)2.322
-F(-)-.2 E(ited unless the)108 501.6 Q F2(\255o errtrace)2.5 E F1
-(shell option has been enabled.)2.5 E -1.11(Va)108 518.4 S .942
-(riables local to the function are declared with the)1.11 F F2(local)
-3.442 E F1 -.2(bu)3.442 G .942(iltin command \().2 F F0 .942
-(local variables)B F1 3.442(\). Ordinarily)B(,)-.65 E -.25(va)108 530.4
-S .39(riables and their v).25 F .39
-(alues are shared between the function and its caller)-.25 F 5.391(.I)
--.55 G 2.891(fav)-5.391 G .391(ariable is declared)-3.141 F F2(local)
-2.891 E F1 2.891(,t)C(he)-2.891 E -.25(va)108 542.4 S(riable').25 E 2.5
-(sv)-.55 G(isible scope is restricted to that function and its children\
- \(including the functions it calls\).)-2.5 E .727(In the follo)108
-559.2 R .727(wing description, the)-.25 F F0(curr)3.227 E .727
-(ent scope)-.37 F F1 .726(is a currently- e)3.226 F -.15(xe)-.15 G .726
-(cuting function.).15 F(Pre)5.726 E .726(vious scopes consist)-.25 F
-.965(of that function')108 571.2 R 3.465(sc)-.55 G .966(aller and so on\
-, back to the \231global\232 scope, where the shell is not e)-3.465 F
--.15(xe)-.15 G .966(cuting an).15 F 3.466(ys)-.15 G(hell)-3.466 E 3.159
-(function. A)108 583.2 R .659(local v)3.159 F .658
-(ariable at the current scope is a v)-.25 F .658
-(ariable declared using the)-.25 F F2(local)3.158 E F1(or)3.158 E F2
-(declar)3.158 E(e)-.18 E F1 -.2(bu)3.158 G .658(iltins in).2 F
-(the function that is currently e)108 595.2 Q -.15(xe)-.15 G(cuting.).15
-E .587(Local v)108 612 R .587(ariables \231shado)-.25 F .587(w\232 v)
--.25 F .587(ariables with the same name declared at pre)-.25 F .588
-(vious scopes.)-.25 F -.15(Fo)5.588 G 3.088(ri).15 G .588
-(nstance, a local)-3.088 F -.25(va)108 624 S .782
+-.25 F F5 .42(\255o functrace)2.92 F F1 .42
+(shell option has been enabled with the)2.92 F F5(set)2.921 E F1 -.2(bu)
+108 278.4 S .072(iltin \(in which case all functions inherit the).2 F F5
+(DEB)2.572 E(UG)-.1 E F1(and)2.572 E F5(RETURN)2.572 E F1 .072
+(traps\), and the)2.572 F F3(ERR)2.571 E F1 .071(trap is not inher)2.321
+F(-)-.2 E(ited unless the)108 290.4 Q F5(\255o errtrace)2.5 E F1
+(shell option has been enabled.)2.5 E -1.11(Va)108 307.2 S .942
+(riables local to the function are declared with the)1.11 F F5(local)
+3.442 E F1 -.2(bu)3.442 G .942(iltin command \().2 F F0 .943
+(local variables)B F1 3.443(\). Ordinarily)B(,)-.65 E -.25(va)108 319.2
+S .391(riables and their v).25 F .391
+(alues are shared between the function and its caller)-.25 F 5.39(.I)
+-.55 G 2.89(fav)-5.39 G .39(ariable is declared)-3.14 F F5(local)2.89 E
+F1 2.89(,t)C(he)-2.89 E -.25(va)108 331.2 S(riable').25 E 2.5(sv)-.55 G
+(isible scope is restricted to that function and its children \(includi\
+ng the functions it calls\).)-2.5 E .726(In the follo)108 348 R .726
+(wing description, the)-.25 F F0(curr)3.226 E .726(ent scope)-.37 F F1
+.727(is a currently- e)3.226 F -.15(xe)-.15 G .727(cuting function.).15
+F(Pre)5.727 E .727(vious scopes consist)-.25 F .966(of that function')
+108 360 R 3.466(sc)-.55 G .966(aller and so on, back to the \231global\
+\232 scope, where the shell is not e)-3.466 F -.15(xe)-.15 G .965
+(cuting an).15 F 3.465(ys)-.15 G(hell)-3.465 E 3.158(function. A)108 372
+R .658(local v)3.158 F .658(ariable at the current scope is a v)-.25 F
+.658(ariable declared using the)-.25 F F5(local)3.159 E F1(or)3.159 E F5
+(declar)3.159 E(e)-.18 E F1 -.2(bu)3.159 G .659(iltins in).2 F
+(the function that is currently e)108 384 Q -.15(xe)-.15 G(cuting.).15 E
+.588(Local v)108 400.8 R .588(ariables \231shado)-.25 F .588(w\232 v)
+-.25 F .587(ariables with the same name declared at pre)-.25 F .587
+(vious scopes.)-.25 F -.15(Fo)5.587 G 3.087(ri).15 G .587
+(nstance, a local)-3.087 F -.25(va)108 412.8 S .782
(riable declared in a function hides v).25 F .782
(ariables with the same name declared at pre)-.25 F .782
-(vious scopes, including)-.25 F 1.247(global v)108 636 R 1.248
+(vious scopes, including)-.25 F 1.248(global v)108 424.8 R 1.248
(ariables: references and assignments refer to the local v)-.25 F 1.248
-(ariable, lea)-.25 F 1.248(ving the v)-.2 F 1.248(ariables at pre)-.25 F
-(vious)-.25 E(scopes unmodi\214ed.)108 648 Q
+(ariable, lea)-.25 F 1.248(ving the v)-.2 F 1.247(ariables at pre)-.25 F
+(vious)-.25 E(scopes unmodi\214ed.)108 436.8 Q
(When the function returns, the global v)5 E(ariable is once ag)-.25 E
-(ain visible.)-.05 E .727(The shell uses)108 664.8 R F0 .727
-(dynamic scoping)3.227 F F1 .726(to control a v)3.227 F(ariable')-.25 E
-3.226(sv)-.55 G .726(isibility within functions.)-3.226 F -.4(Wi)5.726 G
-.726(th dynamic scoping,).4 F .007(visible v)108 676.8 R .007
+(ain visible.)-.05 E .726(The shell uses)108 453.6 R F0 .726
+(dynamic scoping)3.226 F F1 .726(to control a v)3.226 F(ariable')-.25 E
+3.227(sv)-.55 G .727(isibility within functions.)-3.227 F -.4(Wi)5.727 G
+.727(th dynamic scoping,).4 F .008(visible v)108 465.6 R .008
(ariables and their v)-.25 F .007
(alues are a result of the sequence of function calls that caused e)-.25
-F -.15(xe)-.15 G .008(cution to reach).15 F .814(the current function.)
-108 688.8 R .813(The v)5.814 F .813(alue of a v)-.25 F .813
-(ariable that a function sees depends on its v)-.25 F .813
-(alue within its caller)-.25 F 3.313(,i)-.4 G(f)-3.313 E(an)108 700.8 Q
+F -.15(xe)-.15 G .007(cution to reach).15 F .813(the current function.)
+108 477.6 R .813(The v)5.813 F .813(alue of a v)-.25 F .813
+(ariable that a function sees depends on its v)-.25 F .814
+(alue within its caller)-.25 F 3.314(,i)-.4 G(f)-3.314 E(an)108 489.6 Q
1.427 -.65(y, w)-.15 H .127
(hether that caller is the global scope or another shell function.).65 F
.127(This is also the v)5.127 F .127(alue that a local v)-.25 F(ari-)
--.25 E(able declaration shado)108 712.8 Q(ws, and the v)-.25 E
+-.25 E(able declaration shado)108 501.6 Q(ws, and the v)-.25 E
(alue that is restored when the function returns.)-.25 E -.15(Fo)108
-729.6 S 2.724(re).15 G .224(xample, if a v)-2.874 F(ariable)-.25 E F0
-(var)2.724 E F1 .223(is declared as local in function)2.724 F F0(func1)
-2.723 E F1 2.723(,a)C(nd)-2.723 E F0(func1)2.723 E F1 .223
-(calls another function)2.723 F F0(func2)2.723 E F1(,)A(GNU Bash 5.3)72
-768 Q(2025 April 7)149.285 E(36)198.445 E 0 Cg EP
-%%Page: 37 37
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E 1.621(references to)108 84 R F0(var)4.121 E F1
-1.621(made from within)4.121 F F0(func2)4.121 E F1(resolv)4.121 E 4.121
-(et)-.15 G 4.121(ot)-4.121 G 1.621(he local v)-4.121 F(ariable)-.25 E F0
-(var)4.121 E F1(from)4.122 E F0(func1)4.122 E F1 4.122(,s)C(hado)-4.122
-E 1.622(wing an)-.25 F(y)-.15 E(global v)108 96 Q(ariable named)-.25 E
-F0(var)2.5 E F1(.)A(The)108 112.8 Q/F2 10/Times-Bold@0 SF(unset)2.983 E
-F1 -.2(bu)2.983 G .483
-(iltin also acts using the same dynamic scope: if a v).2 F .482
-(ariable is local to the current scope,)-.25 F F2(unset)2.982 E F1 .57
-(unsets it; otherwise the unset will refer to the v)108 124.8 R .571
-(ariable found in an)-.25 F 3.071(yc)-.15 G .571
-(alling scope as described abo)-3.071 F -.15(ve)-.15 G 5.571(.I).15 G
-3.071(fa)-5.571 G -.25(va)108 136.8 S .11(riable at the current local s\
-cope is unset, it remains so \(appearing as unset\) until it is reset i\
-n that scope or).25 F .88(until the function returns.)108 148.8 R .88
+518.4 S 2.723(re).15 G .223(xample, if a v)-2.873 F(ariable)-.25 E F0
+(var)2.723 E F1 .223(is declared as local in function)2.723 F F0(func1)
+2.723 E F1 2.724(,a)C(nd)-2.724 E F0(func1)2.724 E F1 .224
+(calls another function)2.724 F F0(func2)2.724 E F1(,)A 1.622
+(references to)108 530.4 R F0(var)4.122 E F1 1.622(made from within)
+4.122 F F0(func2)4.121 E F1(resolv)4.121 E 4.121(et)-.15 G 4.121(ot)
+-4.121 G 1.621(he local v)-4.121 F(ariable)-.25 E F0(var)4.121 E F1
+(from)4.121 E F0(func1)4.121 E F1 4.121(,s)C(hado)-4.121 E 1.621
+(wing an)-.25 F(y)-.15 E(global v)108 542.4 Q(ariable named)-.25 E F0
+(var)2.5 E F1(.)A(The)108 559.2 Q F5(unset)2.982 E F1 -.2(bu)2.982 G
+.482(iltin also acts using the same dynamic scope: if a v).2 F .483
+(ariable is local to the current scope,)-.25 F F5(unset)2.983 E F1 .571
+(unsets it; otherwise the unset will refer to the v)108 571.2 R .57
+(ariable found in an)-.25 F 3.07(yc)-.15 G .57
+(alling scope as described abo)-3.07 F -.15(ve)-.15 G 5.57(.I).15 G 3.07
+(fa)-5.57 G -.25(va)108 583.2 S .11(riable at the current local scope i\
+s unset, it remains so \(appearing as unset\) until it is reset in that\
+ scope or).25 F .88(until the function returns.)108 595.2 R .88
(Once the function returns, an)5.88 F 3.38(yi)-.15 G .88
(nstance of the v)-3.38 F .88(ariable at a pre)-.25 F .88
-(vious scope be-)-.25 F .275(comes visible.)108 160.8 R .275
-(If the unset acts on a v)5.275 F .275(ariable at a pre)-.25 F .274
-(vious scope, an)-.25 F 2.774(yi)-.15 G .274(nstance of a v)-2.774 F
-.274(ariable with that name)-.25 F .62(that had been shado)108 172.8 R
+(vious scope be-)-.25 F .274(comes visible.)108 607.2 R .274
+(If the unset acts on a v)5.274 F .274(ariable at a pre)-.25 F .275
+(vious scope, an)-.25 F 2.775(yi)-.15 G .275(nstance of a v)-2.775 F
+.275(ariable with that name)-.25 F .62(that had been shado)108 619.2 R
.62(wed becomes visible \(see belo)-.25 F 3.12(wh)-.25 G 1.12 -.25(ow t)
--3.12 H(he).25 E F2(localv)3.12 E(ar_unset)-.1 E F1 .62
-(shell option changes this be-)3.12 F(ha)108 184.8 Q(vior\).)-.2 E(The)
-108 201.6 Q/F3 9/Times-Bold@0 SF(FUNCNEST)3.881 E F1 -.25(va)3.631 G
-1.381(riable, if set to a numeric v).25 F 1.38
+-3.12 H(he).25 E F5(localv)3.12 E(ar_unset)-.1 E F1 .62
+(shell option changes this be-)3.12 F(ha)108 631.2 Q(vior\).)-.2 E(The)
+108 648 Q F3(FUNCNEST)3.88 E F1 -.25(va)3.63 G 1.38
+(riable, if set to a numeric v).25 F 1.381
(alue greater than 0, de\214nes a maximum function nesting)-.25 F(le)108
-213.6 Q -.15(ve)-.25 G 2.5(l. Function).15 F(in)2.5 E -.2(vo)-.4 G
+660 Q -.15(ve)-.25 G 2.5(l. Function).15 F(in)2.5 E -.2(vo)-.4 G
(cations that e).2 E(xceed the limit cause the entire command to abort.)
--.15 E .043(If the b)108 230.4 R .043(uiltin command)-.2 F F2 -.18(re)
+-.15 E .044(If the b)108 676.8 R .043(uiltin command)-.2 F F5 -.18(re)
2.543 G(tur).18 E(n)-.15 E F1 .043(is e)2.543 F -.15(xe)-.15 G .043
(cuted in a function, the function completes and e).15 F -.15(xe)-.15 G
-.044(cution resumes with).15 F .683(the ne)108 242.4 R .683
-(xt command after the function call.)-.15 F(If)5.683 E F2 -.18(re)3.183
+.043(cution resumes with).15 F .682(the ne)108 688.8 R .683
+(xt command after the function call.)-.15 F(If)5.683 E F5 -.18(re)3.183
G(tur).18 E(n)-.15 E F1 .683(is supplied a numeric ar)3.183 F .683
-(gument, that is the function')-.18 F(s)-.55 E .851
-(return status; otherwise the function')108 254.4 R 3.351(sr)-.55 G .851
+(gument, that is the function')-.18 F(s)-.55 E .852
+(return status; otherwise the function')108 700.8 R 3.351(sr)-.55 G .851
(eturn status is the e)-3.351 F .851(xit status of the last command e)
--.15 F -.15(xe)-.15 G .852(cuted before).15 F(the)108 266.4 Q F2 -.18
-(re)4.667 G(tur).18 E(n)-.15 E F1 7.167(.A)C 2.466 -.15(ny c)-7.167 H
-2.166(ommand associated with the).15 F F2(RETURN)4.666 E F1 2.166
+-.15 F -.15(xe)-.15 G .851(cuted before).15 F(the)108 712.8 Q F5 -.18
+(re)4.666 G(tur).18 E(n)-.15 E F1 7.166(.A)C 2.466 -.15(ny c)-7.166 H
+2.166(ommand associated with the).15 F F5(RETURN)4.666 E F1 2.166
(trap is e)4.666 F -.15(xe)-.15 G 2.166(cuted before e).15 F -.15(xe)
--.15 G 2.166(cution resumes.).15 F .13(When a function completes, the v)
-108 278.4 R .13
-(alues of the positional parameters and the special parameter)-.25 F F2
-(#)2.63 E F1 .13(are restored)2.63 F(to the v)108 290.4 Q(alues the)-.25
-E 2.5(yh)-.15 G(ad prior to the function')-2.5 E 2.5(se)-.55 G -.15(xe)
--2.65 G(cution.).15 E(The)108 307.2 Q F2<ad66>2.707 E F1 .207
-(option to the)2.707 F F2(declar)2.707 E(e)-.18 E F1(or)2.707 E F2
-(typeset)2.707 E F1 -.2(bu)2.707 G .206
-(iltin commands lists function names and de\214nitions.).2 F(The)5.206 E
-F2<ad46>2.706 E F1(op-)2.706 E .655(tion to)108 319.2 R F2(declar)3.155
+-.15 G 2.167(cution resumes.).15 F .13(When a function completes, the v)
+108 724.8 R .13
+(alues of the positional parameters and the special parameter)-.25 F F5
+(#)2.63 E F1 .13(are restored)2.63 F(GNU Bash 5.3)72 768 Q
+(2026 January 14)141.79 E(37)190.95 E 0 Cg EP
+%%Page: 38 38
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E(to the v)108 84 Q(alues the)-.25 E 2.5(yh)-.15 G
+(ad prior to the function')-2.5 E 2.5(se)-.55 G -.15(xe)-2.65 G(cution.)
+.15 E(The)108 100.8 Q/F2 10/Times-Bold@0 SF<ad66>2.706 E F1 .206
+(option to the)2.706 F F2(declar)2.706 E(e)-.18 E F1(or)2.706 E F2
+(typeset)2.706 E F1 -.2(bu)2.706 G .207
+(iltin commands lists function names and de\214nitions.).2 F(The)5.207 E
+F2<ad46>2.707 E F1(op-)2.707 E .655(tion to)108 112.8 R F2(declar)3.155
E(e)-.18 E F1(or)3.155 E F2(typeset)3.155 E F1 .655(lists the function \
names only \(and optionally the source \214le and line number)3.155 F
-3.155(,i)-.4 G(f)-3.155 E(the)108 331.2 Q F2(extdeb)3.032 E(ug)-.2 E F1
-.532(shell option is enabled\).)3.032 F .532(Functions may be e)5.532 F
-.532(xported so that child shell processes \(those cre-)-.15 F .441
-(ated when e)108 343.2 R -.15(xe)-.15 G .441(cuting a separate shell in)
+3.155(,i)-.4 G(f)-3.155 E(the)108 124.8 Q F2(extdeb)3.031 E(ug)-.2 E F1
+.532(shell option is enabled\).)3.031 F .532(Functions may be e)5.532 F
+.532(xported so that child shell processes \(those cre-)-.15 F .442
+(ated when e)108 136.8 R -.15(xe)-.15 G .442(cuting a separate shell in)
.15 F -.2(vo)-.4 G .441(cation\) automatically ha).2 F .741 -.15(ve t)
--.2 H .441(hem de\214ned with the).15 F F2<ad66>2.942 E F1 .442
-(option to the)2.942 F F2(export)108 355.2 Q F1 -.2(bu)2.5 G 2.5
+-.2 H .441(hem de\214ned with the).15 F F2<ad66>2.941 E F1 .441
+(option to the)2.941 F F2(export)108 148.8 Q F1 -.2(bu)2.5 G 2.5
(iltin. The).2 F F2<ad66>2.5 E F1(option to the)2.5 E F2(unset)2.5 E F1
--.2(bu)2.5 G(iltin deletes a function de\214nition.).2 E .372
-(Functions may be recursi)108 372 R -.15(ve)-.25 G 5.371(.T).15 G(he)
+-.2(bu)2.5 G(iltin deletes a function de\214nition.).2 E .371
+(Functions may be recursi)108 165.6 R -.15(ve)-.25 G 5.371(.T).15 G(he)
-5.371 E F2(FUNCNEST)2.871 E F1 -.25(va)2.871 G .371
-(riable may be used to limit the depth of the function call).25 F .421
-(stack and restrict the number of function in)108 384 R -.2(vo)-.4 G
-2.922(cations. By).2 F(def)2.922 E(ault,)-.1 E F2(bash)2.922 E F1 .422
-(imposes no limit on the number of)2.922 F(recursi)108 396 Q .3 -.15
-(ve c)-.25 H(alls.).15 E/F4 10.95/Times-Bold@0 SF(ARITHMETIC EV)72 412.8
-Q(ALU)-1.478 E -1.04(AT)-.657 G(ION)1.04 E F1 1.089(The shell allo)108
-424.8 R 1.089(ws arithmetic e)-.25 F 1.089(xpressions to be e)-.15 F
+(riable may be used to limit the depth of the function call).25 F .422
+(stack and restrict the number of function in)108 177.6 R -.2(vo)-.4 G
+2.922(cations. By).2 F(def)2.922 E(ault,)-.1 E F2(bash)2.922 E F1 .421
+(imposes no limit on the number of)2.922 F(recursi)108 189.6 Q .3 -.15
+(ve c)-.25 H(alls.).15 E/F3 10.95/Times-Bold@0 SF(ARITHMETIC EV)72 206.4
+Q(ALU)-1.478 E -1.04(AT)-.657 G(ION)1.04 E F1 1.088(The shell allo)108
+218.4 R 1.088(ws arithmetic e)-.25 F 1.089(xpressions to be e)-.15 F
-.25(va)-.25 G 1.089(luated, under certain circumstances \(see the).25 F
-F2(let)3.588 E F1(and)3.588 E F2(de-)3.588 E(clar)108 436.8 Q(e)-.18 E
-F1 -.2(bu)3.187 G .687(iltin commands, the).2 F F2(\(\()3.188 E F1 .688
+F2(let)3.589 E F1(and)3.589 E F2(de-)3.589 E(clar)108 230.4 Q(e)-.18 E
+F1 -.2(bu)3.188 G .688(iltin commands, the).2 F F2(\(\()3.188 E F1 .688
(compound command, the arithmetic)3.188 F F2 -.25(fo)3.188 G(r).25 E F1
-.688(command, the)3.188 F F2([[)3.188 E F1 .688(conditional com-)3.188 F
-(mand, and)108 448.8 Q F2(Arithmetic Expansion)2.5 E F1(\).)A(Ev)108
-465.6 Q .256(aluation is done in the lar)-.25 F .256(gest \214x)-.18 F
+.688(command, the)3.188 F F2([[)3.188 E F1 .687(conditional com-)3.187 F
+(mand, and)108 242.4 Q F2(Arithmetic Expansion)2.5 E F1(\).)A(Ev)108
+259.2 Q .256(aluation is done in the lar)-.25 F .256(gest \214x)-.18 F
.256(ed-width inte)-.15 F .256(gers a)-.15 F -.25(va)-.2 G .256
(ilable, with no check for o).25 F -.15(ve)-.15 G(r\215o).15 E 1.556
--.65(w, t)-.25 H .256(hough di).65 F(vision)-.25 E .057
-(by 0 is trapped and \215agged as an error)108 477.6 R 5.058(.T)-.55 G
+-.65(w, t)-.25 H .256(hough di).65 F(vision)-.25 E .058
+(by 0 is trapped and \215agged as an error)108 271.2 R 5.058(.T)-.55 G
.058(he operators and their precedence, associati)-5.058 F(vity)-.25 E
-2.558(,a)-.65 G .058(nd v)-2.558 F .058(alues are the)-.25 F .222
-(same as in the C language.)108 489.6 R .222(The follo)5.222 F .222
-(wing list of operators is grouped into le)-.25 F -.15(ve)-.25 G .221
-(ls of equal-precedence oper).15 F(-)-.2 E 2.5(ators. The)108 501.6 R
+2.557(,a)-.65 G .057(nd v)-2.557 F .057(alues are the)-.25 F .221
+(same as in the C language.)108 283.2 R .222(The follo)5.222 F .222
+(wing list of operators is grouped into le)-.25 F -.15(ve)-.25 G .222
+(ls of equal-precedence oper).15 F(-)-.2 E 2.5(ators. The)108 295.2 R
(le)2.5 E -.15(ve)-.25 G
-(ls are listed in order of decreasing precedence.).15 E F0(id)108 518.4
-Q F2(++)A F0(id)2.5 E F2<adad>A F1 -.25(va)144 530.4 S
-(riable post-increment and post-decrement).25 E F2(++)108 542.4 Q F0(id)
-A F2<adad>2.5 E F0(id)A F1 -.25(va)144 554.4 S
-(riable pre-increment and pre-decrement).25 E F2 2.5<ad2b>108 566.4 S F1
-(unary minus and plus)144 566.4 Q F2 2.5<2101>108 578.4 S F1
-(logical and bitwise ne)144 578.4 Q -.05(ga)-.15 G(tion).05 E F2(**)108
-590.4 Q F1 -.15(ex)144 590.4 S(ponentiation).15 E F2 2.5(*/%)108 602.4 S
-F1(multiplication, di)144 602.4 Q(vision, remainder)-.25 E F2 2.5<2bad>
-108 614.4 S F1(addition, subtraction)144 614.4 Q F2(<< >>)108 626.4 Q F1
-(left and right bitwise shifts)144 626.4 Q F2(<= >= < >)108 638.4 Q F1
-(comparison)144 650.4 Q F2(== !=)108 662.4 Q F1(equality and inequality)
-144 662.4 Q F2(&)108 674.4 Q F1(bitwise AND)144 674.4 Q F2<00>108 686.4
-Q F1(bitwise e)144 686.4 Q(xclusi)-.15 E .3 -.15(ve O)-.25 H(R).15 E F2
-(|)108 698.4 Q F1(bitwise OR)144 698.4 Q(GNU Bash 5.3)72 768 Q
-(2025 April 7)149.285 E(37)198.445 E 0 Cg EP
-%%Page: 38 38
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(&&)108 84 Q F1(logical AND)
-144 84 Q F2(||)108 96 Q F1(logical OR)144 96 Q F0 -.2(ex)108 108 S(pr).2
-E F2(?)A F0 -.2(ex)C(pr).2 E F2(:)A F0 -.2(ex)C(pr).2 E F1
-(conditional operator)144 120 Q F2 2.5(=*)108 132 S 2.5(=/)-2.5 G 2.5
+(ls are listed in order of decreasing precedence.).15 E F0(id)108 312 Q
+F2(++)A F0(id)2.5 E F2<adad>A F1 -.25(va)144 324 S
+(riable post-increment and post-decrement).25 E F2(++)108 336 Q F0(id)A
+F2<adad>2.5 E F0(id)A F1 -.25(va)144 348 S
+(riable pre-increment and pre-decrement).25 E F2 2.5<ad2b>108 360 S F1
+(unary minus and plus)144 360 Q F2 2.5<2101>108 372 S F1
+(logical and bitwise ne)144 372 Q -.05(ga)-.15 G(tion).05 E F2(**)108
+384 Q F1 -.15(ex)144 384 S(ponentiation).15 E F2 2.5(*/%)108 396 S F1
+(multiplication, di)144 396 Q(vision, remainder)-.25 E F2 2.5<2bad>108
+408 S F1(addition, subtraction)144 408 Q F2(<< >>)108 420 Q F1
+(left and right bitwise shifts)144 420 Q F2(<= >= < >)108 432 Q F1
+(comparison)144 444 Q F2(== !=)108 456 Q F1(equality and inequality)144
+456 Q F2(&)108 468 Q F1(bitwise AND)144 468 Q F2<00>108 480 Q F1
+(bitwise e)144 480 Q(xclusi)-.15 E .3 -.15(ve O)-.25 H(R).15 E F2(|)108
+492 Q F1(bitwise OR)144 492 Q F2(&&)108 504 Q F1(logical AND)144 504 Q
+F2(||)108 516 Q F1(logical OR)144 516 Q F0 -.2(ex)108 528 S(pr).2 E F2
+(?)A F0 -.2(ex)C(pr).2 E F2(:)A F0 -.2(ex)C(pr).2 E F1
+(conditional operator)144 540 Q F2 2.5(=*)108 552 S 2.5(=/)-2.5 G 2.5
(=%)-2.5 G 2.5(=+)-2.5 G 2.5<3dad>-2.5 G 2.5(=<)-2.5 G
-(<= >>= &= \000= |=)-2.5 E F1(assignment)144 144 Q F0 -.2(ex)108 156 S
-(pr1).2 E F2(,)2.5 E F0 -.2(ex)2.5 G(pr2).2 E F1(comma)144 168 Q .68
-(Shell v)108 184.8 R .68(ariables are allo)-.25 F .68
+(<= >>= &= \000= |=)-2.5 E F1(assignment)144 564 Q F0 -.2(ex)108 576 S
+(pr1).2 E F2(,)2.5 E F0 -.2(ex)2.5 G(pr2).2 E F1(comma)144 588 Q .68
+(Shell v)108 604.8 R .68(ariables are allo)-.25 F .68
(wed as operands; parameter e)-.25 F .68
(xpansion is performed before the e)-.15 F .68(xpression is e)-.15 F
--.25(va)-.25 G(lu-).25 E 3.508(ated. W)108 196.8 R 1.008(ithin an e)-.4
-F 1.008(xpression, shell v)-.15 F 1.007
+-.25(va)-.25 G(lu-).25 E 3.507(ated. W)108 616.8 R 1.007(ithin an e)-.4
+F 1.007(xpression, shell v)-.15 F 1.007
(ariables may also be referenced by name without using the parameter)
--.25 F -.15(ex)108 208.8 S .68(pansion syntax.).15 F .68
-(This means you can use "x", where)5.68 F F0(x)3.181 E F1 .681
-(is a shell v)3.181 F .681(ariable name, in an arithmetic e)-.25 F
-(xpres-)-.15 E .206(sion, and the shell will e)108 220.8 R -.25(va)-.25
+-.25 F -.15(ex)108 628.8 S .681(pansion syntax.).15 F .681
+(This means you can use "x", where)5.681 F F0(x)3.181 E F1 .68
+(is a shell v)3.181 F .68(ariable name, in an arithmetic e)-.25 F
+(xpres-)-.15 E .205(sion, and the shell will e)108 640.8 R -.25(va)-.25
G .205(luate its v).25 F .205(alue as an e)-.25 F .205
-(xpression and use the result.)-.15 F 2.705(As)5.205 G .205(hell v)
--2.705 F .205(ariable that is null or)-.25 F(unset e)108 232.8 Q -.25
+(xpression and use the result.)-.15 F 2.705(As)5.205 G .206(hell v)
+-2.705 F .206(ariable that is null or)-.25 F(unset e)108 652.8 Q -.25
(va)-.25 G(luates to 0 when referenced by name in an e).25 E(xpression.)
--.15 E .828(The v)108 249.6 R .828(alue of a v)-.25 F .828(ariable is e)
--.25 F -.25(va)-.25 G .828(luated as an arithmetic e).25 F .829
-(xpression when it is referenced, or when a v)-.15 F(ariable)-.25 E .192
-(which has been gi)108 261.6 R -.15(ve)-.25 G 2.692(nt).15 G(he)-2.692 E
-F0(inte)2.692 E -.1(ge)-.4 G(r).1 E F1(attrib)2.692 E .192(ute using)-.2
-F F2(declar)2.692 E 2.692<65ad>-.18 G(i)-2.692 E F1 .191
-(is assigned a v)2.692 F 2.691(alue. A)-.25 F .191(null v)2.691 F .191
-(alue e)-.25 F -.25(va)-.25 G .191(luates to 0.).25 F 2.5(As)108 273.6 S
+-.15 E .829(The v)108 669.6 R .829(alue of a v)-.25 F .829(ariable is e)
+-.25 F -.25(va)-.25 G .828(luated as an arithmetic e).25 F .828
+(xpression when it is referenced, or when a v)-.15 F(ariable)-.25 E .191
+(which has been gi)108 681.6 R -.15(ve)-.25 G 2.691(nt).15 G(he)-2.691 E
+F0(inte)2.691 E -.1(ge)-.4 G(r).1 E F1(attrib)2.691 E .191(ute using)-.2
+F F2(declar)2.691 E 2.692<65ad>-.18 G(i)-2.692 E F1 .192
+(is assigned a v)2.692 F 2.692(alue. A)-.25 F .192(null v)2.692 F .192
+(alue e)-.25 F -.25(va)-.25 G .192(luates to 0.).25 F 2.5(As)108 693.6 S
(hell v)-2.5 E(ariable need not ha)-.25 E .3 -.15(ve i)-.2 H(ts).15 E F0
(inte)2.5 E -.1(ge)-.4 G(r).1 E F1(attrib)2.5 E
-(ute turned on to be used in an e)-.2 E(xpression.)-.15 E(Inte)108 290.4
-Q .517(ger constants follo)-.15 F 3.017(wt)-.25 G .518
-(he C language de\214nition, without suf)-3.017 F<8c78>-.25 E .518
-(es or character constants.)-.15 F .518(Constants with)5.518 F 3.283(al)
-108 302.4 S .783(eading 0 are interpreted as octal numbers.)-3.283 F
-3.282(Al)5.783 G .782(eading 0x or 0X denotes he)-3.282 F 3.282
-(xadecimal. Otherwise,)-.15 F(num-)3.282 E .815(bers tak)108 314.4 R
-3.315(et)-.1 G .815(he form [)-3.315 F F0(base#)A F1 .815
-(]n, where the optional)B F0(base)3.315 E F1 .816
-(is a decimal number between 2 and 64 representing)3.315 F .35
-(the arithmetic base, and)108 326.4 R F0(n)2.85 E F1 .35
-(is a number in that base.)2.85 F(If)5.35 E F0(base#)2.849 E F1 .349
-(is omitted, then base 10 is used.)2.849 F .349(When speci-)5.349 F
-(fying)108 338.4 Q F0(n)2.974 E F1 2.974(,i)C 2.974(fan)-2.974 G .474(o\
-n-digit is required, the digits greater than 9 are represented by the l\
-o)-2.974 F .475(wercase letters, the up-)-.25 F .518
-(percase letters, @, and _, in that order)108 350.4 R 5.518(.I)-.55 G(f)
--5.518 E F0(base)3.018 E F1 .518(is less than or equal to 36, lo)3.018 F
-.518(wercase and uppercase letters)-.25 F
+(ute enabled to be used in an e)-.2 E(xpression.)-.15 E(Inte)108 710.4 Q
+.518(ger constants follo)-.15 F 3.018(wt)-.25 G .518
+(he C language de\214nition, without suf)-3.018 F<8c78>-.25 E .517
+(es or character constants.)-.15 F .517(Constants with)5.517 F 4.908(al)
+108 722.4 S 2.408(eading 0 are interpreted as octal numbers.)-4.908 F
+4.909(Al)7.409 G 2.409(eading 0x or 0X denotes he)-4.909 F 4.909
+(xadecimal. Otherwise,)-.15 F(GNU Bash 5.3)72 768 Q(2026 January 14)
+141.79 E(38)190.95 E 0 Cg EP
+%%Page: 39 39
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E .326(numbers tak)108 84 R 2.826(et)-.1 G .326
+(he form [)-2.826 F F0(base#)A F1 .325(]n, where the optional)B F0(base)
+2.825 E F1 .325(is a decimal number between 2 and 64 represent-)2.825 F
+.878(ing the arithmetic base, and)108 96 R F0(n)3.378 E F1 .878
+(is a number in that base.)3.378 F(If)5.878 E F0(base#)3.378 E F1 .878
+(is omitted, then base 10 is used.)3.378 F(When)5.879 E(specifying)108
+108 Q F0(n)2.739 E F1 2.739(,i)C 2.739(fan)-2.739 G .238(on-digit is re\
+quired, the digits greater than 9 are represented by the lo)-2.739 F
+.238(wercase letters, the)-.25 F .018
+(uppercase letters, @, and _, in that order)108 120 R 5.018(.I)-.55 G(f)
+-5.018 E F0(base)2.518 E F1 .018(is less than or equal to 36, lo)2.518 F
+.018(wercase and uppercase letters)-.25 F
(may be used interchangeably to represent numbers between 10 and 35.)108
-362.4 Q 1.127(Operators are e)108 379.2 R -.25(va)-.25 G 1.127
+132 Q 1.128(Operators are e)108 148.8 R -.25(va)-.25 G 1.128
(luated in precedence order).25 F 6.128(.S)-.55 G(ub-e)-6.128 E 1.128
-(xpressions in parentheses are e)-.15 F -.25(va)-.25 G 1.128
-(luated \214rst and may).25 F -.15(ove)108 391.2 S
-(rride the precedence rules abo).15 E -.15(ve)-.15 G(.).15 E/F3 10.95
-/Times-Bold@0 SF(CONDITION)72 408 Q(AL EXPRESSIONS)-.219 E F1 .256
-(Conditional e)108 420 R .256(xpressions are used by the)-.15 F F2([[)
-2.755 E F1 .255(compound command and the)2.755 F F2(test)2.755 E F1(and)
-2.755 E F2([)2.755 E F1 -.2(bu)2.755 G .255(iltin commands to test).2 F
-.133(\214le attrib)108 432 R .133
+(xpressions in parentheses are e)-.15 F -.25(va)-.25 G 1.127
+(luated \214rst and may).25 F -.15(ove)108 160.8 S
+(rride the precedence rules abo).15 E -.15(ve)-.15 G(.).15 E/F2 10.95
+/Times-Bold@0 SF(CONDITION)72 177.6 Q(AL EXPRESSIONS)-.219 E F1 .255
+(Conditional e)108 189.6 R .255(xpressions are used by the)-.15 F/F3 10
+/Times-Bold@0 SF([[)2.755 E F1 .255(compound command and the)2.755 F F3
+(test)2.755 E F1(and)2.755 E F3([)2.756 E F1 -.2(bu)2.756 G .256
+(iltin commands to test).2 F .134(\214le attrib)108 201.6 R .134
(utes and perform string and arithmetic comparisons.)-.2 F(The)5.133 E
-F2(test)2.633 E F1(and)2.633 E F2([)2.634 E F1 .134
-(commands determine their be-)2.634 F(ha)108 444 Q .198
-(vior based on the number of ar)-.2 F .197
-(guments; see the descriptions of those commands for an)-.18 F 2.697(yo)
--.15 G .197(ther command-)-2.697 F(speci\214c actions.)108 456 Q .413
+F3(test)2.633 E F1(and)2.633 E F3([)2.633 E F1 .133
+(commands determine their be-)2.633 F(ha)108 213.6 Q .197
+(vior based on the number of ar)-.2 F .198
+(guments; see the descriptions of those commands for an)-.18 F 2.698(yo)
+-.15 G .198(ther command-)-2.698 F(speci\214c actions.)108 225.6 Q .414
(Expressions are formed from the unary or binary primaries listed belo)
-108 472.8 R 4.214 -.65(w. U)-.25 H .414(nary e).65 F .414
-(xpressions are often used)-.15 F .701(to e)108 484.8 R .701
+108 242.4 R 4.213 -.65(w. U)-.25 H .413(nary e).65 F .413
+(xpressions are often used)-.15 F .7(to e)108 254.4 R .7
(xamine the status of a \214le or shell v)-.15 F 3.201(ariable. Binary)
--.25 F .7(operators are used for string, numeric, and \214le at-)3.2 F
-(trib)108 496.8 Q(ute comparisons.)-.2 E F2(Bash)108 513.6 Q F1 1.202
-(handles se)3.702 F -.15(ve)-.25 G 1.202
+-.25 F .701(operators are used for string, numeric, and \214le at-)3.201
+F(trib)108 266.4 Q(ute comparisons.)-.2 E F3(Bash)108 283.2 Q F1 1.203
+(handles se)3.703 F -.15(ve)-.25 G 1.203
(ral \214lenames specially when the).15 F 3.703(ya)-.15 G 1.203
-(re used in e)-3.703 F 3.703(xpressions. If)-.15 F 1.203
-(the operating system on)3.703 F(which)108 525.6 Q F2(bash)2.64 E F1 .14
-(is running pro)2.64 F .139(vides these special \214les, bash will use \
-them; otherwise it will emulate them inter)-.15 F(-)-.2 E .991
-(nally with this beha)108 537.6 R .991(vior: If an)-.2 F(y)-.15 E F0
+(re used in e)-3.703 F 3.702(xpressions. If)-.15 F 1.202
+(the operating system on)3.702 F(which)108 295.2 Q F3(bash)2.639 E F1
+.139(is running pro)2.639 F .14(vides these special \214les, bash will \
+use them; otherwise it will emulate them inter)-.15 F(-)-.2 E .991
+(nally with this beha)108 307.2 R .991(vior: If an)-.2 F(y)-.15 E F0
(\214le)3.491 E F1(ar)3.491 E .991
(gument to one of the primaries is of the form)-.18 F F0(/de)5.157 E
-(v/fd/n)-.15 E F1 3.491(,t)1.666 G(hen)-3.491 E F2(bash)3.491 E F1 .882
-(checks \214le descriptor)108 549.6 R F0(n)3.382 E F1 5.882(.I)C 3.382
+(v/fd/n)-.15 E F1 3.491(,t)1.666 G(hen)-3.491 E F3(bash)3.49 E F1 .882
+(checks \214le descriptor)108 319.2 R F0(n)3.382 E F1 5.882(.I)C 3.382
(ft)-5.882 G(he)-3.382 E F0(\214le)3.382 E F1(ar)3.382 E .882
(gument to one of the primaries is one of)-.18 F F0(/de)5.048 E(v/stdin)
-.15 E F1(,)1.666 E F0(/de)5.048 E(v/stdout)-.15 E F1 3.382(,o)1.666 G
-(r)-3.382 E F0(/de)109.666 561.6 Q(v/stderr)-.15 E F1(,)1.666 E F2(bash)
+(r)-3.382 E F0(/de)109.666 331.2 Q(v/stderr)-.15 E F1(,)1.666 E F3(bash)
2.5 E F1(checks \214le descriptor 0, 1, or 2, respecti)2.5 E -.15(ve)
--.25 G(ly).15 E(.)-.65 E .721
+-.25 G(ly).15 E(.)-.65 E .722
(Unless otherwise speci\214ed, primaries that operate on \214les follo)
-108 578.4 R 3.221(ws)-.25 G .722(ymbolic links and operate on the tar)
--3.221 F(get)-.18 E(of the link, rather than the link itself.)108 590.4
-Q .642(When used with)108 607.2 R F2([[)3.142 E F1 3.142(,o)C 3.142(rw)
--3.142 G .642(hen the shell is in posix mode, the)-3.142 F F2(<)3.141 E
-F1(and)3.141 E F2(>)3.141 E F1 .641(operators sort le)3.141 F .641
-(xicographically using)-.15 F(the current locale.)108 619.2 Q
-(When the shell is not in posix mode, the)5 E F2(test)2.5 E F1
-(command sorts using ASCII ordering.)2.5 E F2<ad61>108 636 Q F0(\214le)
-2.5 E F1 -.35(Tr)144 636 S(ue if).35 E F0(\214le)2.5 E F1 -.15(ex)2.5 G
-(ists.).15 E F2<ad62>108 648 Q F0(\214le)2.5 E F1 -.35(Tr)144 648 S
-(ue if).35 E F0(\214le)2.5 E F1 -.15(ex)2.5 G
-(ists and is a block special \214le.).15 E F2<ad63>108 660 Q F0(\214le)
-2.5 E F1 -.35(Tr)144 660 S(ue if).35 E F0(\214le)2.5 E F1 -.15(ex)2.5 G
-(ists and is a character special \214le.).15 E F2<ad64>108 672 Q F0
-(\214le)2.5 E F1 -.35(Tr)144 672 S(ue if).35 E F0(\214le)2.5 E F1 -.15
-(ex)2.5 G(ists and is a directory).15 E(.)-.65 E F2<ad65>108 684 Q F0
-(\214le)2.5 E F1 -.35(Tr)144 684 S(ue if).35 E F0(\214le)2.5 E F1 -.15
-(ex)2.5 G(ists.).15 E F2<ad66>108 696 Q F0(\214le)2.5 E F1 -.35(Tr)144
-696 S(ue if).35 E F0(\214le)2.5 E F1 -.15(ex)2.5 G(ists and is a re).15
-E(gular \214le.)-.15 E(GNU Bash 5.3)72 768 Q(2025 April 7)149.285 E(38)
-198.445 E 0 Cg EP
-%%Page: 39 39
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF<ad67>108 84 Q F0(\214le)2.5 E
-F1 -.35(Tr)144 84 S(ue if).35 E F0(\214le)2.5 E F1 -.15(ex)2.5 G
-(ists and is set-group-id.).15 E F2<ad68>108 96 Q F0(\214le)2.5 E F1
--.35(Tr)144 96 S(ue if).35 E F0(\214le)2.5 E F1 -.15(ex)2.5 G
-(ists and is a symbolic link.).15 E F2<ad6b>108 108 Q F0(\214le)2.5 E F1
--.35(Tr)144 108 S(ue if).35 E F0(\214le)2.5 E F1 -.15(ex)2.5 G
-(ists and its \231stick).15 E(y\232 bit is set.)-.15 E F2<ad70>108 120 Q
-F0(\214le)2.5 E F1 -.35(Tr)144 120 S(ue if).35 E F0(\214le)2.5 E F1 -.15
-(ex)2.5 G(ists and is a named pipe \(FIFO\).).15 E F2<ad72>108 132 Q F0
-(\214le)2.5 E F1 -.35(Tr)144 132 S(ue if).35 E F0(\214le)2.5 E F1 -.15
-(ex)2.5 G(ists and is readable.).15 E F2<ad73>108 144 Q F0(\214le)2.5 E
-F1 -.35(Tr)144 144 S(ue if).35 E F0(\214le)2.5 E F1 -.15(ex)2.5 G
-(ists and has a size greater than zero.).15 E F2<ad74>108 156 Q F0(fd)
-2.5 E F1 -.35(Tr)144 156 S(ue if \214le descriptor).35 E F0(fd)4.47 E F1
-(is open and refers to a terminal.)3.27 E F2<ad75>108 168 Q F0(\214le)
-2.5 E F1 -.35(Tr)144 168 S(ue if).35 E F0(\214le)2.5 E F1 -.15(ex)2.5 G
-(ists and its set-user).15 E(-id bit is set.)-.2 E F2<ad77>108 180 Q F0
-(\214le)2.5 E F1 -.35(Tr)144 180 S(ue if).35 E F0(\214le)2.5 E F1 -.15
-(ex)2.5 G(ists and is writable.).15 E F2<ad78>108 192 Q F0(\214le)2.5 E
-F1 -.35(Tr)144 192 S(ue if).35 E F0(\214le)2.5 E F1 -.15(ex)2.5 G
-(ists and is e).15 E -.15(xe)-.15 G(cutable.).15 E F2<ad47>108 204 Q F0
-(\214le)2.5 E F1 -.35(Tr)144 204 S(ue if).35 E F0(\214le)2.5 E F1 -.15
-(ex)2.5 G(ists and is o).15 E(wned by the ef)-.25 E(fecti)-.25 E .3 -.15
-(ve g)-.25 H(roup id.).15 E F2<ad4c>108 216 Q F0(\214le)2.5 E F1 -.35
-(Tr)144 216 S(ue if).35 E F0(\214le)2.5 E F1 -.15(ex)2.5 G
-(ists and is a symbolic link.).15 E F2<ad4e>108 228 Q F0(\214le)2.5 E F1
--.35(Tr)144 228 S(ue if).35 E F0(\214le)2.5 E F1 -.15(ex)2.5 G
-(ists and has been modi\214ed since it w).15 E(as last accessed.)-.1 E
-F2<ad4f>108 240 Q F0(\214le)2.5 E F1 -.35(Tr)144 240 S(ue if).35 E F0
+108 348 R 3.221(ws)-.25 G .721(ymbolic links and operate on the tar)
+-3.221 F(get)-.18 E(of the link, rather than the link itself.)108 360 Q
+.641(When used with)108 376.8 R F3([[)3.141 E F1 3.141(,o)C 3.141(rw)
+-3.141 G .642(hen the shell is in posix mode, the)-3.141 F F3(<)3.142 E
+F1(and)3.142 E F3(>)3.142 E F1 .642(operators sort le)3.142 F .642
+(xicographically using)-.15 F(the current locale.)108 388.8 Q
+(When the shell is not in posix mode, the)5 E F3(test)2.5 E F1
+(command sorts using ASCII ordering.)2.5 E F3<ad61>108 405.6 Q F0
+(\214le)2.5 E F1 -.35(Tr)144 405.6 S(ue if).35 E F0(\214le)2.5 E F1 -.15
+(ex)2.5 G(ists.).15 E F3<ad62>108 417.6 Q F0(\214le)2.5 E F1 -.35(Tr)144
+417.6 S(ue if).35 E F0(\214le)2.5 E F1 -.15(ex)2.5 G
+(ists and is a block special \214le.).15 E F3<ad63>108 429.6 Q F0
+(\214le)2.5 E F1 -.35(Tr)144 429.6 S(ue if).35 E F0(\214le)2.5 E F1 -.15
+(ex)2.5 G(ists and is a character special \214le.).15 E F3<ad64>108
+441.6 Q F0(\214le)2.5 E F1 -.35(Tr)144 441.6 S(ue if).35 E F0(\214le)2.5
+E F1 -.15(ex)2.5 G(ists and is a directory).15 E(.)-.65 E F3<ad65>108
+453.6 Q F0(\214le)2.5 E F1 -.35(Tr)144 453.6 S(ue if).35 E F0(\214le)2.5
+E F1 -.15(ex)2.5 G(ists.).15 E F3<ad66>108 465.6 Q F0(\214le)2.5 E F1
+-.35(Tr)144 465.6 S(ue if).35 E F0(\214le)2.5 E F1 -.15(ex)2.5 G
+(ists and is a re).15 E(gular \214le.)-.15 E F3<ad67>108 477.6 Q F0
+(\214le)2.5 E F1 -.35(Tr)144 477.6 S(ue if).35 E F0(\214le)2.5 E F1 -.15
+(ex)2.5 G(ists and is set-group-id.).15 E F3<ad68>108 489.6 Q F0(\214le)
+2.5 E F1 -.35(Tr)144 489.6 S(ue if).35 E F0(\214le)2.5 E F1 -.15(ex)2.5
+G(ists and is a symbolic link.).15 E F3<ad6b>108 501.6 Q F0(\214le)2.5 E
+F1 -.35(Tr)144 501.6 S(ue if).35 E F0(\214le)2.5 E F1 -.15(ex)2.5 G
+(ists and its \231stick).15 E(y\232 bit is set.)-.15 E F3<ad70>108 513.6
+Q F0(\214le)2.5 E F1 -.35(Tr)144 513.6 S(ue if).35 E F0(\214le)2.5 E F1
+-.15(ex)2.5 G(ists and is a named pipe \(FIFO\).).15 E F3<ad72>108 525.6
+Q F0(\214le)2.5 E F1 -.35(Tr)144 525.6 S(ue if).35 E F0(\214le)2.5 E F1
+-.15(ex)2.5 G(ists and is readable.).15 E F3<ad73>108 537.6 Q F0(\214le)
+2.5 E F1 -.35(Tr)144 537.6 S(ue if).35 E F0(\214le)2.5 E F1 -.15(ex)2.5
+G(ists and has a size greater than zero.).15 E F3<ad74>108 549.6 Q F0
+(fd)2.5 E F1 -.35(Tr)144 549.6 S(ue if \214le descriptor).35 E F0(fd)
+4.47 E F1(is open and refers to a terminal.)3.27 E F3<ad75>108 561.6 Q
+F0(\214le)2.5 E F1 -.35(Tr)144 561.6 S(ue if).35 E F0(\214le)2.5 E F1
+-.15(ex)2.5 G(ists and its set-user).15 E(-id bit is set.)-.2 E F3<ad77>
+108 573.6 Q F0(\214le)2.5 E F1 -.35(Tr)144 573.6 S(ue if).35 E F0
+(\214le)2.5 E F1 -.15(ex)2.5 G(ists and is writable.).15 E F3<ad78>108
+585.6 Q F0(\214le)2.5 E F1 -.35(Tr)144 585.6 S(ue if).35 E F0(\214le)2.5
+E F1 -.15(ex)2.5 G(ists and is e).15 E -.15(xe)-.15 G(cutable.).15 E F3
+<ad47>108 597.6 Q F0(\214le)2.5 E F1 -.35(Tr)144 597.6 S(ue if).35 E F0
(\214le)2.5 E F1 -.15(ex)2.5 G(ists and is o).15 E(wned by the ef)-.25 E
-(fecti)-.25 E .3 -.15(ve u)-.25 H(ser id.).15 E F2<ad53>108 252 Q F0
-(\214le)2.5 E F1 -.35(Tr)144 252 S(ue if).35 E F0(\214le)2.5 E F1 -.15
-(ex)2.5 G(ists and is a sock).15 E(et.)-.1 E F2<ad6f>108 264 Q F0
-(optname)2.5 E F1 -.35(Tr)144 276 S .262(ue if the shell option).35 F F0
-(optname)2.992 E F1 .262(is enabled.)2.942 F .262
-(See the list of options under the description of the)5.262 F F2<ad6f>
-2.763 E F1(option to the)144 288 Q F2(set)2.5 E F1 -.2(bu)2.5 G
-(iltin belo).2 E -.65(w.)-.25 G F2<ad76>108 300 Q F0(varname)2.5 E F1
--.35(Tr)144 312 S .327(ue if the shell v).35 F(ariable)-.25 E F0
+(fecti)-.25 E .3 -.15(ve g)-.25 H(roup id.).15 E F3<ad4c>108 609.6 Q F0
+(\214le)2.5 E F1 -.35(Tr)144 609.6 S(ue if).35 E F0(\214le)2.5 E F1 -.15
+(ex)2.5 G(ists and is a symbolic link.).15 E F3<ad4e>108 621.6 Q F0
+(\214le)2.5 E F1 -.35(Tr)144 621.6 S(ue if).35 E F0(\214le)2.5 E F1 -.15
+(ex)2.5 G(ists and has been modi\214ed since it w).15 E
+(as last accessed.)-.1 E F3<ad4f>108 633.6 Q F0(\214le)2.5 E F1 -.35(Tr)
+144 633.6 S(ue if).35 E F0(\214le)2.5 E F1 -.15(ex)2.5 G(ists and is o)
+.15 E(wned by the ef)-.25 E(fecti)-.25 E .3 -.15(ve u)-.25 H(ser id.).15
+E F3<ad53>108 645.6 Q F0(\214le)2.5 E F1 -.35(Tr)144 645.6 S(ue if).35 E
+F0(\214le)2.5 E F1 -.15(ex)2.5 G(ists and is a sock).15 E(et.)-.1 E F3
+<ad6f>108 657.6 Q F0(optname)2.5 E F1 -.35(Tr)144 669.6 S .263
+(ue if the shell option).35 F F0(optname)2.992 E F1 .262(is enabled.)
+2.942 F .262(See the list of options under the description of the)5.262
+F F3<ad6f>2.762 E F1(option to the)144 681.6 Q F3(set)2.5 E F1 -.2(bu)
+2.5 G(iltin belo).2 E -.65(w.)-.25 G F3<ad76>108 693.6 Q F0(varname)2.5
+E F1 -.35(Tr)144 705.6 S .326(ue if the shell v).35 F(ariable)-.25 E F0
(varname)3.116 E F1 .326(is set \(has been assigned a v)3.006 F 2.826
(alue\). If)-.25 F F0(varname)2.826 E F1 .326(is an inde)2.826 F -.15
-(xe)-.15 G 2.826(da).15 G -.2(r-)-2.826 G .131(ray v)144 324 R .131
+(xe)-.15 G 2.827(da).15 G -.2(r-)-2.827 G .132(ray v)144 717.6 R .131
(ariable name subscripted by)-.25 F F0(@)2.631 E F1(or)2.631 E F0(*)
2.631 E F1 2.631(,t)C .131(his returns true if the array has an)-2.631 F
-2.631(ys)-.15 G .131(et elements.)-2.631 F(If)5.131 E F0(var)2.632 E(-)
--.2 E(name)144 336 Q F1 .737(is an associati)3.238 F 1.037 -.15(ve a)
+2.631(ys)-.15 G .131(et elements.)-2.631 F(If)5.131 E F0(var)2.631 E(-)
+-.2 E(name)144 729.6 Q F1 .737(is an associati)3.237 F 1.037 -.15(ve a)
-.25 H .737(rray v).15 F .737(ariable name subscripted by)-.25 F F0(@)
3.237 E F1(or)3.237 E F0(*)3.237 E F1 3.237(,t)C .737
-(his returns true if an element)-3.237 F(with that k)144 348 Q .3 -.15
-(ey i)-.1 H 2.5(ss).15 G(et.)-2.5 E F2<ad52>108 360 Q F0(varname)2.5 E
-F1 -.35(Tr)144 372 S(ue if the shell v).35 E(ariable)-.25 E F0(varname)
-2.79 E F1(is set and is a name reference.)2.68 E F2<ad7a>108 384 Q F0
-(string)2.5 E F1 -.35(Tr)144 396 S(ue if the length of).35 E F0(string)
-2.5 E F1(is zero.)2.5 E F0(string)108 408 Q F2<ad6e>108 420 Q F0(string)
-2.5 E F1 -.35(Tr)144 432 S(ue if the length of).35 E F0(string)2.84 E F1
-(is non-zero.)2.72 E F0(string1)108 448.8 Q F2(==)2.5 E F0(string2)2.5 E
-(string1)108 460.8 Q F2(=)2.5 E F0(string2)2.5 E F1 -.35(Tr)144 472.8 S
-1.057(ue if the strings are equal.).35 F F2(=)6.057 E F1 1.057
-(should be used with the)3.557 F F2(test)3.558 E F1 1.058(command for)
-3.558 F/F3 9/Times-Roman@0 SF(POSIX)3.558 E F1(conformance.)3.308 E .447
-(When used with the)144 484.8 R F2([[)2.946 E F1 .446
-(command, this performs pattern matching as described abo)2.946 F .746
--.15(ve \()-.15 H F2(Compound).15 E(Commands)144 496.8 Q F1(\).)A F0
-(string1)108 508.8 Q F2(!=)2.5 E F0(string2)2.5 E F1 -.35(Tr)144 520.8 S
-(ue if the strings are not equal.).35 E F0(string1)108 532.8 Q F2(<)2.5
-E F0(string2)2.5 E F1 -.35(Tr)144 544.8 S(ue if).35 E F0(string1)2.5 E
+(his returns true if an element)-3.237 F(GNU Bash 5.3)72 768 Q
+(2026 January 14)141.79 E(39)190.95 E 0 Cg EP
+%%Page: 40 40
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E(with that k)144 84 Q .3 -.15(ey i)-.1 H 2.5(ss).15
+G(et.)-2.5 E/F2 10/Times-Bold@0 SF<ad52>108 96 Q F0(varname)2.5 E F1
+-.35(Tr)144 108 S(ue if the shell v).35 E(ariable)-.25 E F0(varname)2.79
+E F1(is set and is a name reference.)2.68 E F2<ad7a>108 120 Q F0(string)
+2.5 E F1 -.35(Tr)144 132 S(ue if the length of).35 E F0(string)2.5 E F1
+(is zero.)2.5 E F0(string)108 144 Q F2<ad6e>108 156 Q F0(string)2.5 E F1
+-.35(Tr)144 168 S(ue if the length of).35 E F0(string)2.84 E F1
+(is non-zero.)2.72 E F0(string1)108 184.8 Q F2(==)2.5 E F0(string2)2.5 E
+(string1)108 196.8 Q F2(=)2.5 E F0(string2)2.5 E F1 -.35(Tr)144 208.8 S
+1.058(ue if the strings are equal.).35 F F2(=)6.058 E F1 1.057
+(should be used with the)3.558 F F2(test)3.557 E F1 1.057(command for)
+3.557 F/F3 9/Times-Roman@0 SF(POSIX)3.557 E F1(conformance.)3.307 E .446
+(When used with the)144 220.8 R F2([[)2.946 E F1 .446
+(command, this performs pattern matching as described abo)2.946 F .747
+-.15(ve \()-.15 H F2(Compound).15 E(Commands)144 232.8 Q F1(\).)A F0
+(string1)108 244.8 Q F2(!=)2.5 E F0(string2)2.5 E F1 -.35(Tr)144 256.8 S
+(ue if the strings are not equal.).35 E F0(string1)108 268.8 Q F2(<)2.5
+E F0(string2)2.5 E F1 -.35(Tr)144 280.8 S(ue if).35 E F0(string1)2.5 E
F1(sorts before)2.5 E F0(string2)2.5 E F1(le)2.5 E(xicographically)-.15
-E(.)-.65 E F0(string1)108 556.8 Q F2(>)2.5 E F0(string2)2.5 E F1 -.35
-(Tr)144 568.8 S(ue if).35 E F0(string1)2.5 E F1(sorts after)2.5 E F0
+E(.)-.65 E F0(string1)108 292.8 Q F2(>)2.5 E F0(string2)2.5 E F1 -.35
+(Tr)144 304.8 S(ue if).35 E F0(string1)2.5 E F1(sorts after)2.5 E F0
(string2)2.5 E F1(le)2.5 E(xicographically)-.15 E(.)-.65 E F0(\214le1)
-108 585.6 Q F2(\255ef)2.5 E F0(\214le2)2.5 E F1 -.35(Tr)144 597.6 S
+108 321.6 Q F2(\255ef)2.5 E F0(\214le2)2.5 E F1 -.35(Tr)144 333.6 S
(ue if).35 E F0(\214le1)2.5 E F1(and)2.5 E F0(\214le2)2.5 E F1
(refer to the same de)2.5 E(vice and inode numbers.)-.25 E F0(\214le1)
-108 609.6 Q F1<ad>2.5 E F2(nt)A F0(\214le2)2.5 E F1 -.35(Tr)144 621.6 S
+108 345.6 Q F1<ad>2.5 E F2(nt)A F0(\214le2)2.5 E F1 -.35(Tr)144 357.6 S
(ue if).35 E F0(\214le1)2.5 E F1(is ne)2.5 E
(wer \(according to modi\214cation date\) than)-.25 E F0(\214le2)2.5 E
F1 2.5(,o)C 2.5(ri)-2.5 G(f)-2.5 E F0(\214le1)2.5 E F1 -.15(ex)2.5 G
-(ists and).15 E F0(\214le2)2.5 E F1(does not.)2.5 E F0(\214le1)108 633.6
-Q F1<ad>2.5 E F2(ot)A F0(\214le2)2.5 E F1 -.35(Tr)144 645.6 S(ue if).35
+(ists and).15 E F0(\214le2)2.5 E F1(does not.)2.5 E F0(\214le1)108 369.6
+Q F1<ad>2.5 E F2(ot)A F0(\214le2)2.5 E F1 -.35(Tr)144 381.6 S(ue if).35
E F0(\214le1)2.5 E F1(is older than)2.5 E F0(\214le2)2.5 E F1 2.5(,o)C
2.5(ri)-2.5 G(f)-2.5 E F0(\214le2)2.5 E F1 -.15(ex)2.5 G(ists and).15 E
-F0(\214le1)2.5 E F1(does not.)2.5 E F0(ar)108.33 662.4 Q(g1)-.37 E F2
-(OP)2.5 E F0(ar)2.5 E(g2)-.37 E/F4 9/Times-Bold@0 SF(OP)144 674.4 Q F1
-.385(is one of)2.634 F F2(\255eq)2.885 E F1(,)A F2(\255ne)2.885 E F1(,)A
+F0(\214le1)2.5 E F1(does not.)2.5 E F0(ar)108.33 398.4 Q(g1)-.37 E F2
+(OP)2.5 E F0(ar)2.5 E(g2)-.37 E/F4 9/Times-Bold@0 SF(OP)144 410.4 Q F1
+.385(is one of)2.635 F F2(\255eq)2.885 E F1(,)A F2(\255ne)2.885 E F1(,)A
F2(\255lt)2.885 E F1(,)A F2(\255le)2.885 E F1(,)A F2(\255gt)2.885 E F1
2.885(,o)C(r)-2.885 E F2(\255ge)2.885 E F1 5.385(.T)C .385
-(hese arithmetic binary operators return true if)-5.385 F F0(ar)2.885 E
+(hese arithmetic binary operators return true if)-5.385 F F0(ar)2.884 E
(g1)-.37 E F1 .845(is equal to, not equal to, less than, less than or e\
-qual to, greater than, or greater than or equal to)144 686.4 R F0(ar)144
-698.4 Q(g2)-.37 E F1 3.708(,r)C(especti)-3.708 E -.15(ve)-.25 G(ly).15 E
-(.)-.65 E F0(ar)6.538 E(g1)-.37 E F1(and)3.708 E F0(ar)4.038 E(g2)-.37 E
-F1 1.209(may be positi)3.728 F 1.509 -.15(ve o)-.25 H 3.709(rn).15 G
--2.25 -.15(eg a)-3.709 H(ti).15 E 1.509 -.15(ve i)-.25 H(nte).15 E 3.709
-(gers. When)-.15 F 1.209(used with the)3.709 F F2([[)3.709 E F1
-(command,)144 710.4 Q F0(ar)4.093 E(g1)-.37 E F1(and)3.763 E F0(ar)4.093
-E(g2)-.37 E F1 1.263(are e)3.783 F -.25(va)-.25 G 1.262
-(luated as arithmetic e).25 F 1.262(xpressions \(see)-.15 F F4 1.262
-(ARITHMETIC EV)3.762 F(ALU)-1.215 E(A-)-.54 E(TION)144 722.4 Q F1(abo)
-3.276 E -.15(ve)-.15 G 3.526(\). Since).15 F 1.026(the e)3.526 F 1.026
-(xpansions the)-.15 F F2([[)3.526 E F1 1.026(command performs on)3.526 F
-F0(ar)3.856 E(g1)-.37 E F1(and)3.526 E F0(ar)3.856 E(g2)-.37 E F1 1.027
-(can potentially)3.547 F(GNU Bash 5.3)72 768 Q(2025 April 7)149.285 E
-(39)198.445 E 0 Cg EP
-%%Page: 40 40
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E .138(result in empty strings, arithmetic e)144 84 R
-.138(xpression e)-.15 F -.25(va)-.25 G .138(luation treats those as e)
-.25 F .137(xpressions that e)-.15 F -.25(va)-.25 G .137(luate to).25 F
-(0.)144 96 Q/F2 10.95/Times-Bold@0 SF(SIMPLE COMMAND EXP)72 112.8 Q
-(ANSION)-.81 E F1 .772(When the shell e)108 124.8 R -.15(xe)-.15 G .772
+qual to, greater than, or greater than or equal to)144 422.4 R F0(ar)144
+434.4 Q(g2)-.37 E F1 3.709(,r)C(especti)-3.709 E -.15(ve)-.25 G(ly).15 E
+(.)-.65 E F0(ar)6.539 E(g1)-.37 E F1(and)3.709 E F0(ar)4.039 E(g2)-.37 E
+F1 1.209(may be positi)3.729 F 1.509 -.15(ve o)-.25 H 3.709(rn).15 G
+-2.25 -.15(eg a)-3.709 H(ti).15 E 1.509 -.15(ve i)-.25 H(nte).15 E 3.708
+(gers. When)-.15 F 1.208(used with the)3.708 F F2([[)3.708 E F1
+(command,)144 446.4 Q F0(ar)4.092 E(g1)-.37 E F1(and)3.762 E F0(ar)4.092
+E(g2)-.37 E F1 1.262(are e)3.782 F -.25(va)-.25 G 1.263
+(luated as arithmetic e).25 F 1.263(xpressions \(see)-.15 F F4 1.263
+(ARITHMETIC EV)3.763 F(ALU)-1.215 E(A-)-.54 E(TION)144 458.4 Q F1(abo)
+2.302 E -.15(ve)-.15 G 2.551(\). Since).15 F .051(the e)2.551 F .051
+(xpansions the)-.15 F F2([[)2.551 E F1 .051(command performs on)2.551 F
+F0(ar)2.881 E(g1)-.37 E F1(and)2.551 E F0(ar)2.881 E(g2)-.37 E F1 .051
+(can potentially re-)2.571 F .735(sult in empty strings, arithmetic e)
+144 470.4 R .735(xpression e)-.15 F -.25(va)-.25 G .735
+(luation treats those as e).25 F .736(xpressions that e)-.15 F -.25(va)
+-.25 G .736(luate to).25 F(0.)144 482.4 Q/F5 10.95/Times-Bold@0 SF
+(SIMPLE COMMAND EXP)72 499.2 Q(ANSION)-.81 E F1 .773(When the shell e)
+108 511.2 R -.15(xe)-.15 G .772
(cutes a simple command, it performs the follo).15 F .772(wing e)-.25 F
-.773(xpansions, assignments, and redi-)-.15 F
-(rections, from left to right, in the follo)108 136.8 Q(wing order)-.25
-E(.)-.55 E(1.)108 153.6 Q 1.849(The w)144 153.6 R 1.849
-(ords that the parser has mark)-.1 F 1.848(ed as v)-.1 F 1.848
+.772(xpansions, assignments, and redi-)-.15 F
+(rections, from left to right, in the follo)108 523.2 Q(wing order)-.25
+E(.)-.55 E(1.)108 540 Q 1.848(The w)144 540 R 1.848
+(ords that the parser has mark)-.1 F 1.848(ed as v)-.1 F 1.849
(ariable assignments \(those preceding the command)-.25 F
-(name\) and redirections are sa)144 165.6 Q -.15(ve)-.2 G 2.5(df).15 G
-(or later processing.)-2.5 E(2.)108 182.4 Q .179(The w)144 182.4 R .179
+(name\) and redirections are sa)144 552 Q -.15(ve)-.2 G 2.5(df).15 G
+(or later processing.)-2.5 E(2.)108 568.8 Q .18(The w)144 568.8 R .18
(ords that are not v)-.1 F .179
-(ariable assignments or redirections are e)-.25 F 2.68(xpanded. If)-.15
-F(an)2.68 E 2.68(yw)-.15 G .18(ords remain af-)-2.78 F .347(ter e)144
-194.4 R .347(xpansion, the \214rst w)-.15 F .347(ord is tak)-.1 F .347
-(en to be the name of the command and the remaining w)-.1 F .346
-(ords are)-.1 F(the ar)144 206.4 Q(guments.)-.18 E(3.)108 223.2 Q
-(Redirections are performed as described abo)144 223.2 Q .3 -.15(ve u)
--.15 H(nder).15 E/F3 9/Times-Bold@0 SF(REDIRECTION)2.5 E/F4 9
-/Times-Roman@0 SF(.)A F1(4.)108 240 Q .716(The te)144 240 R .717
-(xt after the)-.15 F/F5 10/Times-Bold@0 SF(=)3.217 E F1 .717(in each v)
-3.217 F .717(ariable assignment under)-.25 F .717(goes tilde e)-.18 F
-.717(xpansion, parameter e)-.15 F(xpansion,)-.15 E .34
-(command substitution, arithmetic e)144 252 R .339
+(ariable assignments or redirections are e)-.25 F 2.679(xpanded. If)-.15
+F(an)2.679 E 2.679(yw)-.15 G .179(ords remain af-)-2.779 F .346(ter e)
+144 580.8 R .346(xpansion, the \214rst w)-.15 F .346(ord is tak)-.1 F
+.347(en to be the name of the command and the remaining w)-.1 F .347
+(ords are)-.1 F(the ar)144 592.8 Q(guments.)-.18 E(3.)108 609.6 Q
+(Redirections are performed as described abo)144 609.6 Q .3 -.15(ve u)
+-.15 H(nder).15 E F4(REDIRECTION)2.5 E F3(.)A F1(4.)108 626.4 Q .717
+(The te)144 626.4 R .717(xt after the)-.15 F F2(=)3.217 E F1 .717
+(in each v)3.217 F .717(ariable assignment under)-.25 F .717
+(goes tilde e)-.18 F .717(xpansion, parameter e)-.15 F(xpansion,)-.15 E
+.339(command substitution, arithmetic e)144 638.4 R .339
(xpansion, and quote remo)-.15 F -.25(va)-.15 G 2.839(lb).25 G .339
-(efore being assigned to the v)-2.839 F(ari-)-.25 E(able.)144 264 Q .586
-(If no command name results, the v)108 280.8 R .586
+(efore being assigned to the v)-2.839 F(ari-)-.25 E(able.)144 650.4 Q
+.587(If no command name results, the v)108 667.2 R .586
(ariable assignments af)-.25 F .586(fect the current shell en)-.25 F
-3.087(vironment. In)-.4 F .587(the case of)3.087 F .371(such a command \
+3.086(vironment. In)-.4 F .586(the case of)3.086 F .371(such a command \
\(one that consists only of assignment statements and redirections\), a\
-ssignment statements)108 292.8 R .835
-(are performed before redirections.)108 304.8 R .835(Otherwise, the v)
+ssignment statements)108 679.2 R .835
+(are performed before redirections.)108 691.2 R .835(Otherwise, the v)
5.835 F .835(ariables are added to the en)-.25 F .835
-(vironment of the e)-.4 F -.15(xe)-.15 G(cuted).15 E .839
-(command and do not af)108 316.8 R .838(fect the current shell en)-.25 F
+(vironment of the e)-.4 F -.15(xe)-.15 G(cuted).15 E .838
+(command and do not af)108 703.2 R .838(fect the current shell en)-.25 F
3.338(vironment. If)-.4 F(an)3.338 E 3.338(yo)-.15 G 3.338(ft)-3.338 G
-.838(he assignments attempts to assign a)-3.338 F -.25(va)108 328.8 S
+.839(he assignments attempts to assign a)-3.338 F -.25(va)108 715.2 S
(lue to a readonly v).25 E(ariable, an error occurs, and the command e)
--.25 E(xits with a non-zero status.)-.15 E .149
-(If no command name results, redirections are performed, b)108 345.6 R
-.149(ut do not af)-.2 F .15(fect the current shell en)-.25 F 2.65
-(vironment. A)-.4 F(redirection error causes the command to e)108 357.6
-Q(xit with a non-zero status.)-.15 E 1.064
-(If there is a command name left after e)108 374.4 R 1.064(xpansion, e)
+-.25 E(xits with a non-zero status.)-.15 E(GNU Bash 5.3)72 768 Q
+(2026 January 14)141.79 E(40)190.95 E 0 Cg EP
+%%Page: 41 41
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E .15
+(If no command name results, redirections are performed, b)108 84 R .149
+(ut do not af)-.2 F .149(fect the current shell en)-.25 F 2.649
+(vironment. A)-.4 F(redirection error causes the command to e)108 96 Q
+(xit with a non-zero status.)-.15 E 1.064
+(If there is a command name left after e)108 112.8 R 1.064(xpansion, e)
-.15 F -.15(xe)-.15 G 1.064(cution proceeds as described belo).15 F
-4.864 -.65(w. O)-.25 H 1.064(therwise, the).65 F .068(command e)108
-386.4 R 2.568(xits. If)-.15 F .069(one of the e)2.568 F .069
-(xpansions contained a command substitution, the e)-.15 F .069
-(xit status of the command)-.15 F .467(is the e)108 398.4 R .466
-(xit status of the last command substitution performed.)-.15 F .466
-(If there were no command substitutions, the)5.466 F(command e)108 410.4
-Q(xits with a zero status.)-.15 E F2(COMMAND EXECUTION)72 427.2 Q F1
-.546(After a command has been split into w)108 439.2 R .547
+4.864 -.65(w. O)-.25 H 1.064(therwise, the).65 F .069(command e)108
+124.8 R 2.569(xits. If)-.15 F .069(one of the e)2.569 F .069
+(xpansions contained a command substitution, the e)-.15 F .068
+(xit status of the command)-.15 F .466(is the e)108 136.8 R .466
+(xit status of the last command substitution performed.)-.15 F .467
+(If there were no command substitutions, the)5.466 F(command e)108 148.8
+Q(xits with a zero status.)-.15 E/F2 10.95/Times-Bold@0 SF
+(COMMAND EXECUTION)72 165.6 Q F1 .547
+(After a command has been split into w)108 177.6 R .546
(ords, if it results in a simple command and an optional list of ar)-.1
-F(gu-)-.18 E(ments, the shell performs the follo)108 451.2 Q
+F(gu-)-.18 E(ments, the shell performs the follo)108 189.6 Q
(wing actions.)-.25 E .379(If the command name contains no slashes, the\
- shell attempts to locate it.)108 468 R .379(If there e)5.379 F .379
+ shell attempts to locate it.)108 206.4 R .379(If there e)5.379 F .379
(xists a shell function by)-.15 F .246(that name, that function is in)
-108 480 R -.2(vo)-.4 G -.1(ke).2 G 2.746(da).1 G 2.746(sd)-2.746 G .246
-(escribed abo)-2.746 F .546 -.15(ve i)-.15 H(n).15 E F3(FUNCTIONS)2.746
-E F4(.)A F1 .246(If the name does not match a func-)4.746 F
-(tion, the shell searches for it in the list of shell b)108 492 Q 2.5
+108 218.4 R -.2(vo)-.4 G -.1(ke).2 G 2.746(da).1 G 2.746(sd)-2.746 G
+.246(escribed abo)-2.746 F .546 -.15(ve i)-.15 H(n).15 E/F3 9
+/Times-Bold@0 SF(FUNCTIONS)2.746 E/F4 9/Times-Roman@0 SF(.)A F1 .246
+(If the name does not match a func-)4.746 F
+(tion, the shell searches for it in the list of shell b)108 230.4 Q 2.5
(uiltins. If)-.2 F 2.5(am)2.5 G(atch is found, that b)-2.5 E
-(uiltin is in)-.2 E -.2(vo)-.4 G -.1(ke).2 G(d.).1 E .31
-(If the name is neither a shell function nor a b)108 508.8 R .309
-(uiltin, and contains no slashes,)-.2 F F5(bash)2.809 E F1 .309
-(searches each element of)2.809 F(the)108 520.8 Q F3 -.666(PA)3.162 G
-(TH)-.189 E F1 .662(for a directory containing an e)2.912 F -.15(xe)-.15
-G .662(cutable \214le by that name.).15 F F5(Bash)5.662 E F1 .663
-(uses a hash table to remember)3.162 F .859(the full pathnames of e)108
-532.8 R -.15(xe)-.15 G .858(cutable \214les \(see).15 F F5(hash)3.358 E
-F1(under)3.358 E F3 .858(SHELL B)3.358 F(UIL)-.09 E .858(TIN COMMANDS)
--.828 F F1(belo)3.108 E 3.358(w\). Bash)-.25 F(per)3.358 E(-)-.2 E .883
-(forms a full search of the directories in)108 544.8 R F3 -.666(PA)3.383
-G(TH)-.189 E F1 .883
-(only if the command is not found in the hash table.)3.133 F .884
-(If the)5.884 F .956(search is unsuccessful, the shell searches for a d\
-e\214ned shell function named)108 556.8 R F5(command_not_f)3.455 E
-(ound_han-)-.25 E(dle)108 568.8 Q F1 6.005(.I)C 3.505(ft)-6.005 G 1.005
-(hat function e)-3.505 F 1.005(xists, it is in)-.15 F -.2(vo)-.4 G -.1
-(ke).2 G 3.506(di).1 G 3.506(nas)-3.506 G 1.006(eparate e)-3.506 F -.15
-(xe)-.15 G 1.006(cution en).15 F 1.006
-(vironment with the original command)-.4 F .256
-(and the original command')108 580.8 R 2.756(sa)-.55 G -.18(rg)-2.756 G
-.256(uments as its ar).18 F .256(guments, and the function')-.18 F 2.755
-(se)-.55 G .255(xit status becomes the e)-2.905 F .255(xit sta-)-.15 F
-.263(tus of that subshell.)108 592.8 R .263(If that function is not de\
+(uiltin is in)-.2 E -.2(vo)-.4 G -.1(ke).2 G(d.).1 E .309
+(If the name is neither a shell function nor a b)108 247.2 R .31
+(uiltin, and contains no slashes,)-.2 F/F5 10/Times-Bold@0 SF(bash)2.81
+E F1 .31(searches each element of)2.81 F(the)108 259.2 Q F3 -.666(PA)
+3.163 G(TH)-.189 E F1 .662(for a directory containing an e)2.913 F -.15
+(xe)-.15 G .662(cutable \214le by that name.).15 F F5(Bash)5.662 E F1
+.662(uses a hash table to remember)3.162 F .858(the full pathnames of e)
+108 271.2 R -.15(xe)-.15 G .858(cutable \214les \(see).15 F F5(hash)
+3.358 E F1(under)3.358 E F3 .858(SHELL B)3.358 F(UIL)-.09 E .859
+(TIN COMMANDS)-.828 F F1(belo)3.109 E 3.359(w\). Bash)-.25 F(per)3.359 E
+(-)-.2 E .884(forms a full search of the directories in)108 283.2 R F3
+-.666(PA)3.383 G(TH)-.189 E F1 .883
+(only if the command is not found in the hash table.)3.133 F .883
+(If the)5.883 F .956(search is unsuccessful, the shell searches for a d\
+e\214ned shell function named)108 295.2 R F5(command_not_f)3.456 E
+(ound_han-)-.25 E(dle)108 307.2 Q F1 6.006(.I)C 3.506(ft)-6.006 G 1.006
+(hat function e)-3.506 F 1.006(xists, it is in)-.15 F -.2(vo)-.4 G -.1
+(ke).2 G 3.506(di).1 G 3.506(nas)-3.506 G 1.005(eparate e)-3.506 F -.15
+(xe)-.15 G 1.005(cution en).15 F 1.005
+(vironment with the original command)-.4 F .255
+(and the original command')108 319.2 R 2.755(sa)-.55 G -.18(rg)-2.755 G
+.255(uments as its ar).18 F .256(guments, and the function')-.18 F 2.756
+(se)-.55 G .256(xit status becomes the e)-2.906 F .256(xit sta-)-.15 F
+.263(tus of that subshell.)108 331.2 R .263(If that function is not de\
\214ned, the shell prints an error message and returns an e)5.263 F .263
-(xit sta-)-.15 F(tus of 127.)108 604.8 Q 1.089(If the search is success\
+(xit sta-)-.15 F(tus of 127.)108 343.2 Q 1.089(If the search is success\
ful, or if the command name contains one or more slashes, the shell e)
-108 621.6 R -.15(xe)-.15 G 1.089(cutes the).15 F .197
-(named program in a separate e)108 633.6 R -.15(xe)-.15 G .197
-(cution en).15 F 2.698(vironment. Ar)-.4 F .198
-(gument 0 is set to the name gi)-.18 F -.15(ve)-.25 G .198
-(n, and the remain-).15 F(ing ar)108 645.6 Q
+108 360 R -.15(xe)-.15 G 1.09(cutes the).15 F .198
+(named program in a separate e)108 372 R -.15(xe)-.15 G .198(cution en)
+.15 F 2.698(vironment. Ar)-.4 F .198(gument 0 is set to the name gi)-.18
+F -.15(ve)-.25 G .197(n, and the remain-).15 F(ing ar)108 384 Q
(guments to the command are set to the ar)-.18 E(guments gi)-.18 E -.15
-(ve)-.25 G(n, if an).15 E -.65(y.)-.15 G 1.049(If this e)108 662.4 R
--.15(xe)-.15 G 1.049(cution f).15 F 1.049
-(ails because the \214le is not in e)-.1 F -.15(xe)-.15 G 1.048
-(cutable format, and the \214le is not a directory).15 F 3.548(,i)-.65 G
-3.548(ti)-3.548 G 3.548(sa)-3.548 G(s-)-3.548 E .143(sumed to be a)108
-674.4 R F0 .143(shell script)2.643 F F1 2.643(,a\214)C .143
+(ve)-.25 G(n, if an).15 E -.65(y.)-.15 G 1.048(If this e)108 400.8 R
+-.15(xe)-.15 G 1.048(cution f).15 F 1.048
+(ails because the \214le is not in e)-.1 F -.15(xe)-.15 G 1.049
+(cutable format, and the \214le is not a directory).15 F 3.549(,i)-.65 G
+3.549(ti)-3.549 G 3.549(sa)-3.549 G(s-)-3.549 E .143(sumed to be a)108
+412.8 R F0 .143(shell script)2.643 F F1 2.643(,a\214)C .143
(le containing shell commands, and the shell creates a ne)-2.643 F 2.643
-(wi)-.25 G .143(nstance of itself to)-2.643 F -.15(exe)108 686.4 S .322
-(cute it.).15 F .322(Bash tries to determine whether the \214le is a te)
-5.322 F .321(xt \214le or a binary)-.15 F 2.821(,a)-.65 G .321
-(nd will not e)-2.821 F -.15(xe)-.15 G .321(cute \214les it de-).15 F
-.503(termines to be binaries.)108 698.4 R .503
+(wi)-.25 G .143(nstance of itself to)-2.643 F -.15(exe)108 424.8 S .321
+(cute it.).15 F .321(Bash tries to determine whether the \214le is a te)
+5.321 F .321(xt \214le or a binary)-.15 F 2.822(,a)-.65 G .322
+(nd will not e)-2.822 F -.15(xe)-.15 G .322(cute \214les it de-).15 F
+.503(termines to be binaries.)108 436.8 R .503
(This subshell reinitializes itself, so that the ef)5.503 F .503
(fect is as if a ne)-.25 F 3.003(ws)-.25 G .503(hell had been in-)-3.003
-F -.2(vo)108 710.4 S -.1(ke).2 G 3.474(dt).1 G 3.474(oh)-3.474 G .973
-(andle the script, with the e)-3.474 F .973
+F -.2(vo)108 448.8 S -.1(ke).2 G 3.473(dt).1 G 3.473(oh)-3.473 G .973
+(andle the script, with the e)-3.473 F .973
(xception that the locations of commands remembered by the parent)-.15 F
-(\(see)108 722.4 Q F5(hash)2.5 E F1(belo)2.5 E 2.5(wu)-.25 G(nder)-2.5 E
+(\(see)108 460.8 Q F5(hash)2.5 E F1(belo)2.5 E 2.5(wu)-.25 G(nder)-2.5 E
F3(SHELL B)2.5 E(UIL)-.09 E(TIN COMMANDS)-.828 E F1
-(are retained by the child.)2.25 E(GNU Bash 5.3)72 768 Q(2025 April 7)
-149.285 E(40)198.445 E 0 Cg EP
-%%Page: 41 41
+(are retained by the child.)2.25 E .348(If the program is a \214le be)
+108 477.6 R .348(ginning with)-.15 F F5(#!)2.848 E F1 2.848(,t)C .347(h\
+e remainder of the \214rst line speci\214es an interpreter for the pro-)
+-2.848 F 3.178(gram. The)108 489.6 R .678(shell e)3.178 F -.15(xe)-.15 G
+.678(cutes the speci\214ed interpreter on operating systems that do not\
+ handle this e).15 F -.15(xe)-.15 G(cutable).15 E .206(format themselv)
+108 501.6 R 2.706(es. The)-.15 F(ar)2.706 E .206
+(guments to the interpreter consist of a single optional ar)-.18 F .206
+(gument follo)-.18 F .206(wing the in-)-.25 F .267
+(terpreter name on the \214rst line of the program, follo)108 513.6 R
+.268(wed by the name of the program, follo)-.25 F .268(wed by the com-)
+-.25 F(mand ar)108 525.6 Q(guments, if an)-.18 E -.65(y.)-.15 G F2
+(COMMAND EXECUTION ENVIR)72 542.4 Q(ONMENT)-.329 E F1(The shell has an)
+108 554.4 Q F0 -.2(ex)2.5 G(ecution en).2 E(vir)-.4 E(onment)-.45 E F1
+2.5(,w)C(hich consists of the follo)-2.5 E(wing:)-.25 E<83>108 571.2 Q
+1.258(Open \214les inherited by the shell at in)144 571.2 R -.2(vo)-.4 G
+1.257(cation, as modi\214ed by redirections supplied to the).2 F F5
+(exec)3.757 E F1 -.2(bu)144 583.2 S(iltin.).2 E<83>108 600 Q
+(The current w)144 600 Q(orking directory as set by)-.1 E F5(cd)2.5 E F1
+(,)A F5(pushd)2.5 E F1 2.5(,o)C(r)-2.5 E F5(popd)2.5 E F1 2.5(,o)C 2.5
+(ri)-2.5 G(nherited by the shell at in)-2.5 E -.2(vo)-.4 G(cation.).2 E
+<83>108 616.8 Q(The \214le creation mode mask as set by)144 616.8 Q F5
+(umask)2.5 E F1(or inherited from the shell')2.5 E 2.5(sp)-.55 G(arent.)
+-2.5 E<83>108 633.6 Q(Current traps set by)144 633.6 Q F5(trap)2.5 E F1
+(.)A<83>108 650.4 Q .152(Shell parameters that are set by v)144 650.4 R
+.152(ariable assignment or with)-.25 F F5(set)2.652 E F1 .152
+(or inherited from the shell')2.652 F 2.652(sp)-.55 G(arent)-2.652 E
+(in the en)144 662.4 Q(vironment.)-.4 E<83>108 679.2 Q
+(Shell functions de\214ned during e)144 679.2 Q -.15(xe)-.15 G
+(cution or inherited from the shell').15 E 2.5(sp)-.55 G
+(arent in the en)-2.5 E(vironment.)-.4 E<83>108 696 Q
+(Options enabled at in)144 696 Q -.2(vo)-.4 G(cation \(either by def).2
+E(ault or with command-line ar)-.1 E(guments\) or by)-.18 E F5(set)2.5 E
+F1(.)A(GNU Bash 5.3)72 768 Q(2026 January 14)141.79 E(41)190.95 E 0 Cg
+EP
+%%Page: 42 42
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E .347(If the program is a \214le be)108 84 R .347
-(ginning with)-.15 F/F2 10/Times-Bold@0 SF(#!)2.847 E F1 2.847(,t)C .348
-(he remainder of the \214rst line speci\214es an interpreter for the pr\
-o-)-2.847 F 3.178(gram. The)108 96 R .678(shell e)3.178 F -.15(xe)-.15 G
-.678(cutes the speci\214ed interpreter on operating systems that do not\
- handle this e).15 F -.15(xe)-.15 G(cutable).15 E .206(format themselv)
-108 108 R 2.706(es. The)-.15 F(ar)2.706 E .206
-(guments to the interpreter consist of a single optional ar)-.18 F .206
-(gument follo)-.18 F .206(wing the in-)-.25 F .268
-(terpreter name on the \214rst line of the program, follo)108 120 R .267
-(wed by the name of the program, follo)-.25 F .267(wed by the com-)-.25
-F(mand ar)108 132 Q(guments, if an)-.18 E -.65(y.)-.15 G/F3 10.95
-/Times-Bold@0 SF(COMMAND EXECUTION ENVIR)72 148.8 Q(ONMENT)-.329 E F1
-(The shell has an)108 160.8 Q F0 -.2(ex)2.5 G(ecution en).2 E(vir)-.4 E
-(onment)-.45 E F1 2.5(,w)C(hich consists of the follo)-2.5 E(wing:)-.25
-E<83>108 177.6 Q 1.257(Open \214les inherited by the shell at in)144
-177.6 R -.2(vo)-.4 G 1.258
-(cation, as modi\214ed by redirections supplied to the).2 F F2(exec)
-3.758 E F1 -.2(bu)144 189.6 S(iltin.).2 E<83>108 206.4 Q(The current w)
-144 206.4 Q(orking directory as set by)-.1 E F2(cd)2.5 E F1(,)A F2
-(pushd)2.5 E F1 2.5(,o)C(r)-2.5 E F2(popd)2.5 E F1 2.5(,o)C 2.5(ri)-2.5
-G(nherited by the shell at in)-2.5 E -.2(vo)-.4 G(cation.).2 E<83>108
-223.2 Q(The \214le creation mode mask as set by)144 223.2 Q F2(umask)2.5
-E F1(or inherited from the shell')2.5 E 2.5(sp)-.55 G(arent.)-2.5 E<83>
-108 240 Q(Current traps set by)144 240 Q F2(trap)2.5 E F1(.)A<83>108
-256.8 Q .152(Shell parameters that are set by v)144 256.8 R .152
-(ariable assignment or with)-.25 F F2(set)2.652 E F1 .152
-(or inherited from the shell')2.652 F 2.651(sp)-.55 G(arent)-2.651 E
-(in the en)144 268.8 Q(vironment.)-.4 E<83>108 285.6 Q
-(Shell functions de\214ned during e)144 285.6 Q -.15(xe)-.15 G
-(cution or inherited from the shell').15 E 2.5(sp)-.55 G
-(arent in the en)-2.5 E(vironment.)-.4 E<83>108 302.4 Q
-(Options enabled at in)144 302.4 Q -.2(vo)-.4 G(cation \(either by def)
-.2 E(ault or with command-line ar)-.1 E(guments\) or by)-.18 E F2(set)
-2.5 E F1(.)A<83>108 319.2 Q(Options enabled by)144 319.2 Q F2(shopt)2.5
-E F1(.)A<83>108 336 Q(Shell aliases de\214ned with)144 336 Q F2(alias)
-2.5 E F1(.)A<83>108 352.8 Q -1.11(Va)144 352.8 S
+.25 E F1(\(1\)).95 E<83>108 84 Q(Options enabled by)144 84 Q/F2 10
+/Times-Bold@0 SF(shopt)2.5 E F1(.)A<83>108 100.8 Q
+(Shell aliases de\214ned with)144 100.8 Q F2(alias)2.5 E F1(.)A<83>108
+117.6 Q -1.11(Va)144 117.6 S
(rious process IDs, including those of background jobs, the v)1.11 E
(alue of)-.25 E F2($$)2.5 E F1 2.5(,a)C(nd the v)-2.5 E(alue of)-.25 E
-/F4 9/Times-Bold@0 SF(PPID)2.5 E/F5 9/Times-Roman@0 SF(.)A F1 .426
-(When a simple command other than a b)108 369.6 R .427
-(uiltin or shell function is to be e)-.2 F -.15(xe)-.15 G .427
-(cuted, it is in).15 F -.2(vo)-.4 G -.1(ke).2 G 2.927(di).1 G 2.927(nas)
--2.927 G(eparate)-2.927 E -.15(exe)108 381.6 S .134(cution en).15 F .134
+/F3 9/Times-Bold@0 SF(PPID)2.5 E/F4 9/Times-Roman@0 SF(.)A F1 .427
+(When a simple command other than a b)108 134.4 R .426
+(uiltin or shell function is to be e)-.2 F -.15(xe)-.15 G .426
+(cuted, it is in).15 F -.2(vo)-.4 G -.1(ke).2 G 2.926(di).1 G 2.926(nas)
+-2.926 G(eparate)-2.926 E -.15(exe)108 146.4 S .133(cution en).15 F .133
(vironment that consists of the follo)-.4 F 2.634(wing. Unless)-.25 F
-.133(otherwise noted, the v)2.634 F .133(alues are inherited from)-.25 F
-(the shell.)108 393.6 Q<83>108 410.4 Q .817(The shell')144 410.4 R 3.317
-(so)-.55 G .818(pen \214les, plus an)-3.317 F 3.318(ym)-.15 G .818
+.134(otherwise noted, the v)2.634 F .134(alues are inherited from)-.25 F
+(the shell.)108 158.4 Q<83>108 175.2 Q .818(The shell')144 175.2 R 3.318
+(so)-.55 G .818(pen \214les, plus an)-3.318 F 3.318(ym)-.15 G .818
(odi\214cations and additions speci\214ed by redirections to the com-)
--3.318 F(mand.)144 422.4 Q<83>108 439.2 Q(The current w)144 439.2 Q
-(orking directory)-.1 E(.)-.65 E<83>108 456 Q
-(The \214le creation mode mask.)144 456 Q<83>108 472.8 Q .729(Shell v)
-144 472.8 R .729(ariables and functions mark)-.25 F .729(ed for e)-.1 F
-.728(xport, along with v)-.15 F .728(ariables e)-.25 F .728
-(xported for the command,)-.15 F(passed in the en)144 484.8 Q
-(vironment.)-.4 E<83>108 501.6 Q -.35(Tr)144 501.6 S .131
+-3.318 F(mand.)144 187.2 Q<83>108 204 Q(The current w)144 204 Q
+(orking directory)-.1 E(.)-.65 E<83>108 220.8 Q
+(The \214le creation mode mask.)144 220.8 Q<83>108 237.6 Q .728(Shell v)
+144 237.6 R .728(ariables and functions mark)-.25 F .728(ed for e)-.1 F
+.729(xport, along with v)-.15 F .729(ariables e)-.25 F .729
+(xported for the command,)-.15 F(passed in the en)144 249.6 Q
+(vironment.)-.4 E<83>108 266.4 Q -.35(Tr)144 266.4 S .131
(aps caught by the shell are reset to the v).35 F .131
-(alues inherited from the shell')-.25 F 2.631(sp)-.55 G .132
-(arent, and traps ignored)-2.631 F(by the shell are ignored.)144 513.6 Q
-2.5(Ac)108 530.4 S(ommand in)-2.5 E -.2(vo)-.4 G -.1(ke).2 G 2.5(di).1 G
+(alues inherited from the shell')-.25 F 2.631(sp)-.55 G .131
+(arent, and traps ignored)-2.631 F(by the shell are ignored.)144 278.4 Q
+2.5(Ac)108 295.2 S(ommand in)-2.5 E -.2(vo)-.4 G -.1(ke).2 G 2.5(di).1 G
2.5(nt)-2.5 G(his separate en)-2.5 E(vironment cannot af)-.4 E
(fect the shell')-.25 E 2.5(se)-.55 G -.15(xe)-2.65 G(cution en).15 E
-(vironment.)-.4 E(A)108 547.2 Q F0(subshell)2.5 E F1(is a cop)2.5 E 2.5
+(vironment.)-.4 E(A)108 312 Q F0(subshell)2.5 E F1(is a cop)2.5 E 2.5
(yo)-.1 G 2.5(ft)-2.5 G(he shell process.)-2.5 E .577(Command substitut\
ion, commands grouped with parentheses, and asynchronous commands are i\
-n)108 564 R -.2(vo)-.4 G -.1(ke).2 G 3.077(di).1 G(n)-3.077 E 2.744(as)
-108 576 S .244(ubshell en)-2.744 F .244
-(vironment that is a duplicate of the shell en)-.4 F .245(vironment, e)
--.4 F .245(xcept that traps caught by the shell are)-.15 F .359
-(reset to the v)108 588 R .358
+n)108 328.8 R -.2(vo)-.4 G -.1(ke).2 G 3.078(di).1 G(n)-3.078 E 2.745
+(as)108 340.8 S .245(ubshell en)-2.745 F .245
+(vironment that is a duplicate of the shell en)-.4 F .244(vironment, e)
+-.4 F .244(xcept that traps caught by the shell are)-.15 F .358
+(reset to the v)108 352.8 R .358
(alues that the shell inherited from its parent at in)-.25 F -.2(vo)-.4
-G 2.858(cation. Builtin).2 F .358(commands that are in)2.858 F -.2(vo)
--.4 G -.1(ke).2 G(d).1 E .113(as part of a pipeline, e)108 600 R .114
-(xcept possibly in the last element depending on the v)-.15 F .114
-(alue of the)-.25 F F2(lastpipe)2.614 E F1 .114(shell option,)2.614 F
-.692(are also e)108 612 R -.15(xe)-.15 G .692(cuted in a subshell en).15
-F 3.191(vironment. Changes)-.4 F .691(made to the subshell en)3.191 F
-.691(vironment cannot af)-.4 F .691(fect the)-.25 F(shell')108 624 Q 2.5
-(se)-.55 G -.15(xe)-2.65 G(cution en).15 E(vironment.)-.4 E .535
-(When the shell is in posix mode, subshells spa)108 640.8 R .535
+G 2.858(cation. Builtin).2 F .359(commands that are in)2.859 F -.2(vo)
+-.4 G -.1(ke).2 G(d).1 E .114(as part of a pipeline, e)108 364.8 R .114
+(xcept possibly in the last element depending on the v)-.15 F .113
+(alue of the)-.25 F F2(lastpipe)2.613 E F1 .113(shell option,)2.613 F
+.691(are also e)108 376.8 R -.15(xe)-.15 G .691(cuted in a subshell en)
+.15 F 3.191(vironment. Changes)-.4 F .691(made to the subshell en)3.191
+F .692(vironment cannot af)-.4 F .692(fect the)-.25 F(shell')108 388.8 Q
+2.5(se)-.55 G -.15(xe)-2.65 G(cution en).15 E(vironment.)-.4 E .535
+(When the shell is in posix mode, subshells spa)108 405.6 R .535
(wned to e)-.15 F -.15(xe)-.15 G .535
(cute command substitutions inherit the v).15 F .535(alue of)-.25 F(the)
-108 652.8 Q F2<ad65>2.636 E F1 .136(option from their parent shell.)
-2.636 F .135(When not in posix mode,)5.135 F F2(bash)2.635 E F1 .135
-(clears the)2.635 F F2<ad65>2.635 E F1 .135(option in such subshells.)
-2.635 F .613(See the description of the)108 664.8 R F2(inherit_err)3.113
-E(exit)-.18 E F1 .613(shell option belo)3.113 F 3.114(wf)-.25 G .614
-(or ho)-3.114 F 3.114(wt)-.25 G 3.114(oc)-3.114 G .614(ontrol this beha)
--3.114 F .614(vior when not in)-.2 F(posix mode.)108 676.8 Q .405
-(If a command is follo)108 693.6 R .405(wed by a)-.25 F F2(&)2.905 E F1
-.404(and job control is not acti)2.905 F -.15(ve)-.25 G 2.904(,t).15 G
-.404(he def)-2.904 F .404(ault standard input for the command)-.1 F
-1.414(is the empty \214le)108 705.6 R F0(/de)5.58 E(v/null)-.15 E F1
-6.414(.O)1.666 G 1.414(therwise, the in)-6.414 F -.2(vo)-.4 G -.1(ke).2
-G 3.915(dc).1 G 1.415
-(ommand inherits the \214le descriptors of the calling)-3.915 F
-(shell as modi\214ed by redirections.)108 717.6 Q(GNU Bash 5.3)72 768 Q
-(2025 April 7)149.285 E(41)198.445 E 0 Cg EP
-%%Page: 42 42
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E/F2 10.95/Times-Bold@0 SF(ENVIR)72 84 Q(ONMENT)-.329
-E F1 2.344(When a program is in)108 96 R -.2(vo)-.4 G -.1(ke).2 G 4.843
-(di).1 G 4.843(ti)-4.843 G 4.843(sg)-4.843 G -2.15 -.25(iv e)-4.843 H
-4.843(na).25 G 4.843(na)-4.843 G 2.343(rray of strings called the)-4.843
-F F0(en)5.033 E(vir)-.4 E(onment)-.45 E F1 7.343(.T).68 G 2.343
-(his is a list of)-7.343 F F0(name)108 108 Q F1<ad>A F0(value)A F1
-(pairs, of the form)2.5 E F0(name)2.86 E F1(=)A F0(value)A F1(.).18 E
-.438(The shell pro)108 124.8 R .438(vides se)-.15 F -.15(ve)-.25 G .438
-(ral w).15 F .438(ays to manipulate the en)-.1 F 2.938(vironment. On)-.4
-F(in)2.938 E -.2(vo)-.4 G .438(cation, the shell scans its o).2 F .439
-(wn en-)-.25 F 2.033(vironment and creates a parameter for each name fo\
-und, automatically marking it for)108 136.8 R F0 -.2(ex)4.533 G(port).2
-E F1 2.033(to child)5.213 F 3.693(processes. Ex)108 148.8 R 1.193
-(ecuted commands inherit the en)-.15 F 3.693(vironment. The)-.4 F/F3 10
-/Times-Bold@0 SF(export)3.693 E F1(,)A F3(declar)3.693 E 3.694<65ad>-.18
-G(x)-3.694 E F1 3.694(,a)C(nd)-3.694 E F3(unset)3.694 E F1(commands)
-3.694 E .047(modify the en)108 160.8 R .047
+108 417.6 Q F2<ad65>2.635 E F1 .135(option from their parent shell.)
+2.635 F .135(When not in posix mode,)5.135 F F2(bash)2.635 E F1 .135
+(clears the)2.635 F F2<ad65>2.636 E F1 .136(option in such subshells.)
+2.636 F .614(See the description of the)108 429.6 R F2(inherit_err)3.114
+E(exit)-.18 E F1 .614(shell option belo)3.114 F 3.114(wf)-.25 G .613
+(or ho)-3.114 F 3.113(wt)-.25 G 3.113(oc)-3.113 G .613(ontrol this beha)
+-3.113 F .613(vior when not in)-.2 F(posix mode.)108 441.6 Q .404
+(If a command is follo)108 458.4 R .404(wed by a)-.25 F F2(&)2.904 E F1
+.405(and job control is not acti)2.904 F -.15(ve)-.25 G 2.905(,t).15 G
+.405(he def)-2.905 F .405(ault standard input for the command)-.1 F
+1.177(is the empty \214le)108 470.4 R F0(/de)5.343 E(v/null)-.15 E F1
+3.677(,u)1.666 G 1.177(nless the command has an e)-3.677 F 1.176
+(xplicit redirection in)-.15 F -.2(vo)-.4 G 1.176
+(lving the standard input.).2 F 1.146(Otherwise, the in)108 482.4 R -.2
+(vo)-.4 G -.1(ke).2 G 3.646(dc).1 G 1.147(ommand inherits the \214le de\
+scriptors of the calling shell as modi\214ed by redirec-)-3.646 F
+(tions.)108 494.4 Q/F5 10.95/Times-Bold@0 SF(ENVIR)72 511.2 Q(ONMENT)
+-.329 E F1 2.344(When a program is in)108 523.2 R -.2(vo)-.4 G -.1(ke).2
+G 4.843(di).1 G 4.843(ti)-4.843 G 4.843(sg)-4.843 G -2.15 -.25(iv e)
+-4.843 H 4.843(na).25 G 4.843(na)-4.843 G 2.343
+(rray of strings called the)-4.843 F F0(en)5.033 E(vir)-.4 E(onment)-.45
+E F1 7.343(.T).68 G 2.343(his is a list of)-7.343 F F0(name)108 535.2 Q
+F1<ad>A F0(value)A F1(pairs, of the form)2.5 E F0(name)2.86 E F1(=)A F0
+(value)A F1(.).18 E .438(The shell pro)108 552 R .438(vides se)-.15 F
+-.15(ve)-.25 G .438(ral w).15 F .438(ays to manipulate the en)-.1 F
+2.938(vironment. On)-.4 F(in)2.938 E -.2(vo)-.4 G .438
+(cation, the shell scans its o).2 F .439(wn en-)-.25 F 2.033(vironment \
+and creates a parameter for each name found, automatically marking it f\
+or)108 564 R F0 -.2(ex)4.533 G(port).2 E F1 2.033(to child)5.213 F 3.693
+(processes. Ex)108 576 R 1.193(ecuted commands inherit the en)-.15 F
+3.693(vironment. The)-.4 F F2(export)3.693 E F1(,)A F2(declar)3.693 E
+3.694<65ad>-.18 G(x)-3.694 E F1 3.694(,a)C(nd)-3.694 E F2(unset)3.694 E
+F1(commands)3.694 E .047(modify the en)108 588 R .047
(vironment by adding and deleting parameters and functions.)-.4 F .046
-(If the v)5.046 F .046(alue of a parameter in the)-.25 F(en)108 172.8 Q
+(If the v)5.046 F .046(alue of a parameter in the)-.25 F(en)108 600 Q
.656(vironment is modi\214ed, the ne)-.4 F 3.156(wv)-.25 G .656
(alue automatically becomes part of the en)-3.406 F .657
-(vironment, replacing the old.)-.4 F .155(The en)108 184.8 R .155
+(vironment, replacing the old.)-.4 F .155(The en)108 612 R .155
(vironment inherited by an)-.4 F 2.654(ye)-.15 G -.15(xe)-2.804 G .154
(cuted command consists of the shell').15 F 2.654(si)-.55 G .154
(nitial en)-2.654 F .154(vironment, whose v)-.4 F(al-)-.25 E .789
-(ues may be modi\214ed in the shell, less an)108 196.8 R 3.289(yp)-.15 G
+(ues may be modi\214ed in the shell, less an)108 624 R 3.289(yp)-.15 G
.789(airs remo)-3.289 F -.15(ve)-.15 G 3.289(db).15 G 3.289(yt)-3.289 G
-(he)-3.289 E F3(unset)3.289 E F1(or)3.289 E F3 .789(export \255n)3.289 F
-F1 .789(commands, plus an)3.289 F(y)-.15 E(additions via the)108 208.8 Q
-F3(export)2.5 E F1(and)2.5 E F3(declar)2.5 E 2.5<65ad>-.18 G(x)-2.5 E F1
-(commands.)2.5 E .349(If an)108 225.6 R 2.849(yp)-.15 G .349
+(he)-3.289 E F2(unset)3.289 E F1(or)3.289 E F2 .789(export \255n)3.289 F
+F1 .789(commands, plus an)3.289 F(y)-.15 E(additions via the)108 636 Q
+F2(export)2.5 E F1(and)2.5 E F2(declar)2.5 E 2.5<65ad>-.18 G(x)-2.5 E F1
+(commands.)2.5 E .349(If an)108 652.8 R 2.849(yp)-.15 G .349
(arameter assignments, as described abo)-2.849 F .649 -.15(ve i)-.15 H
-(n).15 E/F4 9/Times-Bold@0 SF -.666(PA)2.849 G(RAMETERS).666 E/F5 9
-/Times-Roman@0 SF(,)A F1 .349(appear before a)2.599 F F0 .349
-(simple command)3.189 F F1 2.849(,t).77 G(he)-2.849 E -.25(va)108 237.6
-S .442(riable assignments are part of that command').25 F 2.942(se)-.55
-G -.4(nv)-2.942 G .442(ironment for as long as it e).4 F -.15(xe)-.15 G
-2.942(cutes. These).15 F(assignment)2.942 E .014(statements af)108 249.6
-R .014(fect only the en)-.25 F .014(vironment seen by that command.)-.4
-F .013(If these assignments precede a call to a shell)5.014 F
-(function, the v)108 261.6 Q(ariables are local to the function and e)
+(n).15 E F3 -.666(PA)2.849 G(RAMETERS).666 E F4(,)A F1 .349
+(appear before a)2.599 F F0 .349(simple command)3.189 F F1 2.849(,t).77
+G(he)-2.849 E -.25(va)108 664.8 S .442
+(riable assignments are part of that command').25 F 2.942(se)-.55 G -.4
+(nv)-2.942 G .442(ironment for as long as it e).4 F -.15(xe)-.15 G 2.942
+(cutes. These).15 F(assignment)2.942 E .014(statements af)108 676.8 R
+.014(fect only the en)-.25 F .014(vironment seen by that command.)-.4 F
+.013(If these assignments precede a call to a shell)5.014 F
+(function, the v)108 688.8 Q(ariables are local to the function and e)
-.25 E(xported to that function')-.15 E 2.5(sc)-.55 G(hildren.)-2.5 E
-.81(If the)108 278.4 R F3<ad6b>3.31 E F1 .81(option is set \(see the)
-3.31 F F3(set)3.31 E F1 -.2(bu)3.31 G .81(iltin command belo).2 F .81
+.81(If the)108 705.6 R F2<ad6b>3.31 E F1 .81(option is set \(see the)
+3.31 F F2(set)3.31 E F1 -.2(bu)3.31 G .81(iltin command belo).2 F .81
(w\), then)-.25 F F0(all)3.64 E F1 .81
-(parameter assignments are placed in)3.82 F(the en)108 290.4 Q
+(parameter assignments are placed in)3.82 F(the en)108 717.6 Q
(vironment for a command, not just those that precede the command name.)
--.4 E(When)108 307.2 Q F3(bash)3.339 E F1(in)3.339 E -.2(vo)-.4 G -.1
-(ke).2 G 3.339(sa).1 G 3.339(ne)-3.339 G .839(xternal command, the v)
--3.489 F(ariable)-.25 E F3(_)3.339 E F1 .839
+-.4 E(GNU Bash 5.3)72 768 Q(2026 January 14)141.79 E(42)190.95 E 0 Cg EP
+%%Page: 43 43
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E(When)108 84 Q/F2 10/Times-Bold@0 SF(bash)3.339 E F1
+(in)3.339 E -.2(vo)-.4 G -.1(ke).2 G 3.339(sa).1 G 3.339(ne)-3.339 G
+.839(xternal command, the v)-3.489 F(ariable)-.25 E F2(_)3.339 E F1 .839
(is set to the full pathname of the command and)3.339 F
-(passed to that command in its en)108 319.2 Q(vironment.)-.4 E F2
-(EXIT ST)72 336 Q -1.04(AT)-.986 G(US)1.04 E F1 .15(The e)108 348 R .15
-(xit status of an e)-.15 F -.15(xe)-.15 G .15(cuted command is the v).15
-F .151(alue returned by the)-.25 F F0(waitpid)2.651 E F1 .151
-(system call or equi)2.651 F -.25(va)-.25 G .151(lent func-).25 F 2.848
-(tion. Exit)108 360 R .348(statuses f)2.848 F .347
-(all between 0 and 255, though, as e)-.1 F .347(xplained belo)-.15 F
+(passed to that command in its en)108 96 Q(vironment.)-.4 E/F3 10.95
+/Times-Bold@0 SF(EXIT ST)72 112.8 Q -1.04(AT)-.986 G(US)1.04 E F1 .15
+(The e)108 124.8 R .15(xit status of an e)-.15 F -.15(xe)-.15 G .15
+(cuted command is the v).15 F .151(alue returned by the)-.25 F F0
+(waitpid)2.651 E F1 .151(system call or equi)2.651 F -.25(va)-.25 G .151
+(lent func-).25 F 2.848(tion. Exit)108 136.8 R .348(statuses f)2.848 F
+.347(all between 0 and 255, though, as e)-.1 F .347(xplained belo)-.15 F
1.647 -.65(w, t)-.25 H .347(he shell may use v).65 F .347(alues abo)-.25
-F .647 -.15(ve 1)-.15 H(25).15 E(specially)108 372 Q 5.506(.E)-.65 G
+F .647 -.15(ve 1)-.15 H(25).15 E(specially)108 148.8 Q 5.506(.E)-.65 G
.506(xit statuses from shell b)-5.506 F .507
(uiltins and compound commands are also limited to this range.)-.2 F
(Under)5.507 E(certain circumstances, the shell will use special v)108
-384 Q(alues to indicate speci\214c f)-.25 E(ailure modes.)-.1 E -.15(Fo)
-108 400.8 S 3.435(rt).15 G .935(he shell')-3.435 F 3.435(sp)-.55 G .935
-(urposes, a command which e)-3.435 F .934(xits with a zero e)-.15 F .934
-(xit status has succeeded.)-.15 F .934(So while an e)5.934 F(xit)-.15 E
-(status of zero indicates success, a non-zero e)108 412.8 Q
+160.8 Q(alues to indicate speci\214c f)-.25 E(ailure modes.)-.1 E -.15
+(Fo)108 177.6 S 3.435(rt).15 G .935(he shell')-3.435 F 3.435(sp)-.55 G
+.935(urposes, a command which e)-3.435 F .934(xits with a zero e)-.15 F
+.934(xit status has succeeded.)-.15 F .934(So while an e)5.934 F(xit)
+-.15 E(status of zero indicates success, a non-zero e)108 189.6 Q
(xit status indicates f)-.15 E(ailure.)-.1 E
-(When a command terminates on a f)108 429.6 Q(atal signal)-.1 E F0(N)2.5
-E F1(,)A F3(bash)2.5 E F1(uses the v)2.5 E(alue of 128+)-.25 E F0(N)A F1
+(When a command terminates on a f)108 206.4 Q(atal signal)-.1 E F0(N)2.5
+E F1(,)A F2(bash)2.5 E F1(uses the v)2.5 E(alue of 128+)-.25 E F0(N)A F1
(as the e)2.5 E(xit status.)-.15 E .404
-(If a command is not found, the child process created to e)108 446.4 R
+(If a command is not found, the child process created to e)108 223.2 R
-.15(xe)-.15 G .404(cute it returns a status of 127.).15 F .405
-(If a command is)5.405 F(found b)108 458.4 Q(ut is not e)-.2 E -.15(xe)
--.15 G(cutable, the return status is 126.).15 E(If a command f)108 475.2
-Q(ails because of an error during e)-.1 E
-(xpansion or redirection, the e)-.15 E(xit status is greater than zero.)
--.15 E .081(Shell b)108 492 R .081
-(uiltin commands return a status of 0 \()-.2 F F0(true)A F1 2.581(\)i)C
-2.581(fs)-2.581 G .08(uccessful, and non-zero \()-2.581 F F0(false)A F1
-2.58(\)i)C 2.58(fa)-2.58 G 2.58(ne)-2.58 G .08(rror occurs while)-2.58 F
-(the)108 504 Q 2.967(ye)-.15 G -.15(xe)-3.117 G 2.967(cute. All).15 F
--.2(bu)2.967 G .467(iltins return an e).2 F .468
-(xit status of 2 to indicate incorrect usage, generally in)-.15 F -.25
-(va)-.4 G .468(lid options or).25 F(missing ar)108 516 Q(guments.)-.18 E
-(The e)108 532.8 Q(xit status of the last command is a)-.15 E -.25(va)
--.2 G(ilable in the special parameter $?.).25 E F3(Bash)108 549.6 Q F1
-.202(itself returns the e)2.702 F .202(xit status of the last command e)
--.15 F -.15(xe)-.15 G .201
-(cuted, unless a syntax error occurs, in which case).15 F(it e)108 561.6
-Q(xits with a non-zero v)-.15 E 2.5(alue. See)-.25 F(also the)2.5 E F3
-(exit)2.5 E F1 -.2(bu)2.5 G(iltin command belo).2 E -.65(w.)-.25 G F2
-(SIGN)72 578.4 Q(ALS)-.219 E F1(When)108 590.4 Q F3(bash)2.502 E F1 .002
+(If a command is)5.405 F(found b)108 235.2 Q(ut is not e)-.2 E -.15(xe)
+-.15 G(cutable, the return status is 126.).15 E(If a command f)108 252 Q
+(ails because of an error during e)-.1 E(xpansion or redirection, the e)
+-.15 E(xit status is greater than zero.)-.15 E .081(Shell b)108 268.8 R
+.081(uiltin commands return a status of 0 \()-.2 F F0(true)A F1 2.581
+(\)i)C 2.581(fs)-2.581 G .08(uccessful, and non-zero \()-2.581 F F0
+(false)A F1 2.58(\)i)C 2.58(fa)-2.58 G 2.58(ne)-2.58 G .08
+(rror occurs while)-2.58 F(the)108 280.8 Q 2.967(ye)-.15 G -.15(xe)
+-3.117 G 2.967(cute. All).15 F -.2(bu)2.967 G .467(iltins return an e).2
+F .468(xit status of 2 to indicate incorrect usage, generally in)-.15 F
+-.25(va)-.4 G .468(lid options or).25 F(missing ar)108 292.8 Q(guments.)
+-.18 E(The e)108 309.6 Q(xit status of the last command is a)-.15 E -.25
+(va)-.2 G(ilable in the special parameter $?.).25 E F2(Bash)108 326.4 Q
+F1 .202(itself returns the e)2.702 F .202
+(xit status of the last command e)-.15 F -.15(xe)-.15 G .201
+(cuted, unless a syntax error occurs, in which case).15 F(it e)108 338.4
+Q(xits with a non-zero v)-.15 E 2.5(alue. See)-.25 F(also the)2.5 E F2
+(exit)2.5 E F1 -.2(bu)2.5 G(iltin command belo).2 E -.65(w.)-.25 G F3
+(SIGN)72 355.2 Q(ALS)-.219 E F1(When)108 367.2 Q F2(bash)2.502 E F1 .002
(is interacti)2.502 F -.15(ve)-.25 G 2.502(,i).15 G 2.502(nt)-2.502 G
.002(he absence of an)-2.502 F 2.502(yt)-.15 G .002(raps, it ignores)
--2.502 F F4(SIGTERM)2.502 E F1 .002(\(so that)2.252 F F3 .002(kill 0)
-2.502 F F1 .002(does not kill an in-)2.502 F(teracti)108 602.4 Q .926
--.15(ve s)-.25 H .626(hell\), and catches and handles).15 F F4(SIGINT)
-3.126 E F1 .626(\(so that the)2.876 F F3(wait)3.126 E F1 -.2(bu)3.126 G
-.625(iltin is interruptible\).).2 F(When)5.625 E F3(bash)3.125 E F1(re-)
-3.125 E(cei)108 614.4 Q -.15(ve)-.25 G(s).15 E F4(SIGINT)2.95 E F5(,)A
-F1 .45(it breaks out of an)2.7 F 2.95(ye)-.15 G -.15(xe)-3.1 G .45
-(cuting loops.).15 F .45(In all cases,)5.45 F F3(bash)2.95 E F1(ignores)
-2.95 E F4(SIGQ)2.95 E(UIT)-.09 E F5(.)A F1 .45(If job control is)4.95 F
-(in ef)108 626.4 Q(fect,)-.25 E F3(bash)2.5 E F1(ignores)2.5 E F4
-(SIGTTIN)2.5 E F5(,)A F4(SIGTT)2.25 E(OU)-.162 E F5(,)A F1(and)2.25 E F4
-(SIGTSTP)2.5 E F5(.)A F1(The)108 643.2 Q F3(trap)2.5 E F1 -.2(bu)2.5 G
+-2.502 F/F4 9/Times-Bold@0 SF(SIGTERM)2.502 E F1 .002(\(so that)2.252 F
+F2 .002(kill 0)2.502 F F1 .002(does not kill an in-)2.502 F(teracti)108
+379.2 Q .926 -.15(ve s)-.25 H .626(hell\), and catches and handles).15 F
+F4(SIGINT)3.126 E F1 .626(\(so that the)2.876 F F2(wait)3.126 E F1 -.2
+(bu)3.126 G .625(iltin is interruptible\).).2 F(When)5.625 E F2(bash)
+3.125 E F1(re-)3.125 E(cei)108 391.2 Q -.15(ve)-.25 G(s).15 E F4(SIGINT)
+5.013 E/F5 9/Times-Roman@0 SF(,)A F1 2.513(it breaks out of an)4.763 F
+5.013(ye)-.15 G -.15(xe)-5.163 G 2.513(cuting loops and command lists.)
+.15 F 2.513(In all cases,)7.513 F F2(bash)5.014 E F1(ignores)5.014 E F4
+(SIGQ)108 403.2 Q(UIT)-.09 E F5(.)A F1(If job control is in ef)4.5 E
+(fect,)-.25 E F2(bash)2.5 E F1(ignores)2.5 E F4(SIGTTIN)2.5 E F5(,)A F4
+(SIGTT)2.25 E(OU)-.162 E F5(,)A F1(and)2.25 E F4(SIGTSTP)2.5 E F5(.)A F1
+(The)108 420 Q F2(trap)2.5 E F1 -.2(bu)2.5 G
(iltin modi\214es the shell').2 E 2.5(ss)-.55 G
-(ignal handling, as described belo)-2.5 E -.65(w.)-.25 G(Non-b)108 660 Q
-.613(uiltin commands)-.2 F F3(bash)3.113 E F1 -.15(exe)3.113 G .613
+(ignal handling, as described belo)-2.5 E -.65(w.)-.25 G(Non-b)108 436.8
+Q .613(uiltin commands)-.2 F F2(bash)3.113 E F1 -.15(exe)3.113 G .613
(cutes ha).15 F .913 -.15(ve s)-.2 H .613(ignal handlers set to the v)
.15 F .612(alues inherited by the shell from its)-.25 F .064
-(parent, unless)108 672 R F3(trap)2.564 E F1 .065(sets them to be ignor\
-ed, in which case the child process will ignore them as well.)2.564 F
-(When)5.065 E .682(job control is not in ef)108 684 R .682
+(parent, unless)108 448.8 R F2(trap)2.564 E F1 .065(sets them to be ign\
+ored, in which case the child process will ignore them as well.)2.564 F
+(When)5.065 E .682(job control is not in ef)108 460.8 R .682
(fect, asynchronous commands ignore)-.25 F F4(SIGINT)3.182 E F1(and)
2.932 E F4(SIGQ)3.182 E(UIT)-.09 E F1 .682(in addition to these in-)
-2.932 F 1.139(herited handlers.)108 696 R 1.139
+2.932 F 1.139(herited handlers.)108 472.8 R 1.139
(Commands run as a result of command substitution ignore the k)6.139 F
--.15(ey)-.1 G 1.14(board-generated job).15 F(control signals)108 708 Q
+-.15(ey)-.1 G 1.14(board-generated job).15 F(control signals)108 484.8 Q
F4(SIGTTIN)2.5 E F5(,)A F4(SIGTT)2.25 E(OU)-.162 E F5(,)A F1(and)2.25 E
-F4(SIGTSTP)2.5 E F5(.)A F1 2.046(The shell e)108 724.8 R 2.046
+F4(SIGTSTP)2.5 E F5(.)A F1 2.046(The shell e)108 501.6 R 2.046
(xits by def)-.15 F 2.045(ault upon receipt of a)-.1 F F4(SIGHUP)4.545 E
-F5(.)A F1 2.045(Before e)6.545 F 2.045(xiting, an interacti)-.15 F 2.345
--.15(ve s)-.25 H 2.045(hell resends the).15 F(GNU Bash 5.3)72 768 Q
-(2025 April 7)149.285 E(42)198.445 E 0 Cg EP
-%%Page: 43 43
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E/F2 9/Times-Bold@0 SF(SIGHUP)108 84 Q F1 .539
-(to all jobs, running or stopped.)2.789 F .54(The shell sends)5.54 F F2
-(SIGCONT)3.04 E F1 .54(to stopped jobs to ensure that the)2.79 F 3.04
-(yr)-.15 G(e-)-3.04 E(cei)108 96 Q 1.045 -.15(ve t)-.25 H(he).15 E F2
-(SIGHUP)3.245 E F1(\(see)2.995 E F2 .745(JOB CONTR)3.245 F(OL)-.27 E F1
+F5(.)A F1 2.045(Before e)6.545 F 2.045(xiting, an interacti)-.15 F 2.345
+-.15(ve s)-.25 H 2.045(hell resends the).15 F F4(SIGHUP)108 513.6 Q F1
+.539(to all jobs, running or stopped.)2.789 F .54(The shell sends)5.54 F
+F4(SIGCONT)3.04 E F1 .54(to stopped jobs to ensure that the)2.79 F 3.04
+(yr)-.15 G(e-)-3.04 E(cei)108 525.6 Q 1.045 -.15(ve t)-.25 H(he).15 E F4
+(SIGHUP)3.245 E F1(\(see)2.995 E F4 .745(JOB CONTR)3.245 F(OL)-.27 E F1
(belo)2.995 E 3.245(wf)-.25 G .745
(or more information about running and stopped jobs\).)-3.245 F -.8(To)
-5.745 G(pre)108 108 Q -.15(ve)-.25 G .441
+5.745 G(pre)108 537.6 Q -.15(ve)-.25 G .441
(nt the shell from sending the signal to a particular job, remo).15 F
.742 -.15(ve i)-.15 H 2.942(tf).15 G .442(rom the jobs table with the)
--2.942 F/F3 10/Times-Bold@0 SF(diso)2.942 E(wn)-.1 E F1 -.2(bu)108 120 S
-(iltin \(see).2 E F2(SHELL B)2.5 E(UIL)-.09 E(TIN COMMANDS)-.828 E F1
-(belo)2.25 E(w\) or mark it not to recei)-.25 E -.15(ve)-.25 G F2
-(SIGHUP)2.65 E F1(using)2.25 E F3(diso)2.5 E(wn \255h)-.1 E F1(.)A .555
-(If the)108 136.8 R F3(huponexit)3.055 E F1 .555
-(shell option has been set using)3.055 F F3(shopt)3.054 E F1(,)A F3
-(bash)3.054 E F1 .554(sends a)3.054 F F2(SIGHUP)3.054 E F1 .554
-(to all jobs when an interac-)2.804 F(ti)108 148.8 Q .3 -.15(ve l)-.25 H
-(ogin shell e).15 E(xits.)-.15 E(If)108 165.6 Q F3(bash)2.629 E F1 .129
-(is w)2.629 F .129(aiting for a command to complete and recei)-.1 F -.15
-(ve)-.25 G 2.629(sas).15 G .129
-(ignal for which a trap has been set, it will not)-2.629 F -.15(exe)108
-177.6 S .952(cute the trap until the command completes.).15 F(If)5.952 E
-F3(bash)3.452 E F1 .952(is w)3.452 F .952
-(aiting for an asynchronous command via the)-.1 F F3(wait)108 189.6 Q F1
+-2.942 F F2(diso)2.942 E(wn)-.1 E F1 -.2(bu)108 549.6 S(iltin \(see).2 E
+F4(SHELL B)2.5 E(UIL)-.09 E(TIN COMMANDS)-.828 E F1(belo)2.25 E
+(w\) or mark it not to recei)-.25 E -.15(ve)-.25 G F4(SIGHUP)2.65 E F1
+(using)2.25 E F2(diso)2.5 E(wn \255h)-.1 E F1(.)A .555(If the)108 566.4
+R F2(huponexit)3.055 E F1 .555(shell option has been set using)3.055 F
+F2(shopt)3.054 E F1(,)A F2(bash)3.054 E F1 .554(sends a)3.054 F F4
+(SIGHUP)3.054 E F1 .554(to all jobs when an interac-)2.804 F(ti)108
+578.4 Q .3 -.15(ve l)-.25 H(ogin shell e).15 E(xits.)-.15 E(If)108 595.2
+Q F2(bash)2.629 E F1 .129(is w)2.629 F .129
+(aiting for a command to complete and recei)-.1 F -.15(ve)-.25 G 2.629
+(sas).15 G .129(ignal for which a trap has been set, it will not)-2.629
+F -.15(exe)108 607.2 S .952(cute the trap until the command completes.)
+.15 F(If)5.952 E F2(bash)3.452 E F1 .952(is w)3.452 F .952
+(aiting for an asynchronous command via the)-.1 F F2(wait)108 619.2 Q F1
-.2(bu)2.986 G .486(iltin, and it recei).2 F -.15(ve)-.25 G 2.986(sas)
-.15 G .486(ignal for which a trap has been set, the)-2.986 F F3(wait)
+.15 G .486(ignal for which a trap has been set, the)-2.986 F F2(wait)
2.987 E F1 -.2(bu)2.987 G .487(iltin will return immediately).2 F
-(with an e)108 201.6 Q
+(with an e)108 631.2 Q
(xit status greater than 128, immediately after which the shell e)-.15 E
-.15(xe)-.15 G(cutes the trap.).15 E .499
-(When job control is not enabled, and)108 218.4 R F3(bash)2.998 E F1
-.498(is w)2.998 F .498(aiting for a fore)-.1 F .498
-(ground command to complete, the shell re-)-.15 F(cei)108 230.4 Q -.15
-(ve)-.25 G 3.213(sk).15 G -.15(ey)-3.313 G .713
-(board-generated signals such as).15 F F2(SIGINT)3.213 E F1 .713
-(\(usually generated by)2.963 F F3<0043>3.213 E F1 3.213(\)t)C .714
+(When job control is not enabled, and)108 648 R F2(bash)2.998 E F1 .498
+(is w)2.998 F .498(aiting for a fore)-.1 F .498
+(ground command to complete, the shell re-)-.15 F(cei)108 660 Q -.15(ve)
+-.25 G 3.213(sk).15 G -.15(ey)-3.313 G .713
+(board-generated signals such as).15 F F4(SIGINT)3.213 E F1 .713
+(\(usually generated by)2.963 F F2<0043>3.213 E F1 3.213(\)t)C .714
(hat users commonly intend)-3.213 F .455(to send to that command.)108
-242.4 R .454(This happens because the shell and the command are in the \
-same process group)5.455 F .724(as the terminal, and)108 254.4 R F3
-<0043>3.224 E F1(sends)3.224 E F2(SIGINT)3.224 E F1 .724
-(to all processes in that process group.)2.974 F(Since)5.724 E F3(bash)
-3.224 E F1 .724(does not enable)3.224 F 1.243(job control by def)108
-266.4 R 1.243(ault when the shell is not interacti)-.1 F -.15(ve)-.25 G
-3.742(,t).15 G 1.242(his scenario is most common in non-interacti)-3.742
-F -.15(ve)-.25 G(shells.)108 278.4 Q .096
-(When job control is enabled, and)108 295.2 R F3(bash)2.596 E F1 .097
-(is w)2.597 F .097(aiting for a fore)-.1 F .097
-(ground command to complete, the shell does not)-.15 F(recei)108 307.2 Q
-.975 -.15(ve k)-.25 H -.15(ey).05 G .675(board-generated signals, becau\
-se it is not in the same process group as the terminal.).15 F .675
-(This sce-)5.675 F .295(nario is most common in interacti)108 319.2 R
-.595 -.15(ve s)-.25 H .295(hells, where).15 F F3(bash)2.796 E F1 .296
-(attempts to enable job control by def)2.796 F 2.796(ault. See)-.1 F F2
-(JOB)2.796 E(CONTR)108 331.2 Q(OL)-.27 E F1(belo)2.25 E 2.5(wf)-.25 G
-(or more information about process groups.)-2.5 E .994
-(When job control is not enabled, and)108 348 R F3(bash)3.493 E F1
-(recei)3.493 E -.15(ve)-.25 G(s).15 E F2(SIGINT)3.493 E F1 .993(while w)
+672 R .454(This happens because the shell and the command are in the sa\
+me process group)5.455 F .724(as the terminal, and)108 684 R F2<0043>
+3.224 E F1(sends)3.224 E F4(SIGINT)3.224 E F1 .724
+(to all processes in that process group.)2.974 F(Since)5.724 E F2(bash)
+3.224 E F1 .724(does not enable)3.224 F 1.243(job control by def)108 696
+R 1.243(ault when the shell is not interacti)-.1 F -.15(ve)-.25 G 3.742
+(,t).15 G 1.242(his scenario is most common in non-interacti)-3.742 F
+-.15(ve)-.25 G(shells.)108 708 Q .096(When job control is enabled, and)
+108 724.8 R F2(bash)2.596 E F1 .097(is w)2.597 F .097(aiting for a fore)
+-.1 F .097(ground command to complete, the shell does not)-.15 F
+(GNU Bash 5.3)72 768 Q(2026 January 14)141.79 E(43)190.95 E 0 Cg EP
+%%Page: 44 44
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E(recei)108 84 Q .975 -.15(ve k)-.25 H -.15(ey).05 G
+.675(board-generated signals, because it is not in the same process gro\
+up as the terminal.).15 F .675(This sce-)5.675 F .295
+(nario is most common in interacti)108 96 R .595 -.15(ve s)-.25 H .295
+(hells, where).15 F/F2 10/Times-Bold@0 SF(bash)2.796 E F1 .296
+(attempts to enable job control by def)2.796 F 2.796(ault. See)-.1 F/F3
+9/Times-Bold@0 SF(JOB)2.796 E(CONTR)108 108 Q(OL)-.27 E F1(belo)2.25 E
+2.5(wf)-.25 G(or more information about process groups.)-2.5 E .994
+(When job control is not enabled, and)108 124.8 R F2(bash)3.493 E F1
+(recei)3.493 E -.15(ve)-.25 G(s).15 E F3(SIGINT)3.493 E F1 .993(while w)
3.243 F .993(aiting for a fore)-.1 F .993(ground command, it)-.15 F -.1
-(wa)108 360 S(its until that fore).1 E
+(wa)108 136.8 S(its until that fore).1 E
(ground command terminates and then decides what to do about the)-.15 E
-F2(SIGINT)2.5 E/F4 9/Times-Roman@0 SF(:)A F1(1.)108 376.8 Q .024
-(If the command terminates due to the)144 376.8 R F2(SIGINT)2.524 E F4
-(,)A F3(bash)2.274 E F1 .025(concludes that the user meant to send the)
-2.525 F F2(SIG-)2.525 E(INT)144 388.8 Q F1 .3
-(to the shell as well, and acts on the)2.55 F F2(SIGINT)2.8 E F1 .3
-(\(e.g., by running a)2.55 F F2(SIGINT)2.8 E F1 .3(trap, e)2.55 F .3
-(xiting a non-in-)-.15 F(teracti)144 400.8 Q .3 -.15(ve s)-.25 H
+F3(SIGINT)2.5 E/F4 9/Times-Roman@0 SF(:)A F1(1.)108 153.6 Q .024
+(If the command terminates due to the)144 153.6 R F3(SIGINT)2.524 E F4
+(,)A F2(bash)2.274 E F1 .025(concludes that the user meant to send the)
+2.525 F F3(SIG-)2.525 E(INT)144 165.6 Q F1 .3
+(to the shell as well, and acts on the)2.55 F F3(SIGINT)2.8 E F1 .3
+(\(e.g., by running a)2.55 F F3(SIGINT)2.8 E F1 .3(trap, e)2.55 F .3
+(xiting a non-in-)-.15 F(teracti)144 177.6 Q .3 -.15(ve s)-.25 H
(hell, or returning to the top le).15 E -.15(ve)-.25 G 2.5(lt).15 G 2.5
-(or)-2.5 G(ead a ne)-2.5 E 2.5(wc)-.25 G(ommand\).)-2.5 E(2.)108 417.6 Q
-.288(If the command does not terminate due to)144 417.6 R F2(SIGINT)
-2.788 E F4(,)A F1 .288(the program handled the)2.538 F F2(SIGINT)2.789 E
-F1 .289(itself and did)2.539 F .728(not treat it as a f)144 429.6 R .728
-(atal signal.)-.1 F .728(In that case,)5.728 F F3(bash)3.228 E F1 .728
-(does not treat)3.228 F F2(SIGINT)3.228 E F1 .728(as a f)2.978 F .728
+(or)-2.5 G(ead a ne)-2.5 E 2.5(wc)-.25 G(ommand\).)-2.5 E(2.)108 194.4 Q
+.288(If the command does not terminate due to)144 194.4 R F3(SIGINT)
+2.788 E F4(,)A F1 .288(the program handled the)2.538 F F3(SIGINT)2.789 E
+F1 .289(itself and did)2.539 F .728(not treat it as a f)144 206.4 R .728
+(atal signal.)-.1 F .728(In that case,)5.728 F F2(bash)3.228 E F1 .728
+(does not treat)3.228 F F3(SIGINT)3.228 E F1 .728(as a f)2.978 F .728
(atal signal, either)-.1 F 3.228(,i)-.4 G(n-)-3.228 E .771
-(stead assuming that the)144 441.6 R F2(SIGINT)3.271 E F1 -.1(wa)3.021 G
+(stead assuming that the)144 218.4 R F3(SIGINT)3.271 E F1 -.1(wa)3.021 G
3.271(su).1 G .771(sed as part of the program')-3.271 F 3.272(sn)-.55 G
.772(ormal operation \(e.g., emacs)-3.272 F .41
(uses it to abort editing commands\) or deliberately discarded.)144
-453.6 R(Ho)5.409 E(we)-.25 E -.15(ve)-.25 G -.4(r,).15 G F3(bash)3.309 E
+230.4 R(Ho)5.409 E(we)-.25 E -.15(ve)-.25 G -.4(r,).15 G F2(bash)3.309 E
F1 .409(will run an)2.909 F 2.909(yt)-.15 G .409(rap set)-2.909 F(on)144
-465.6 Q F2(SIGINT)3.788 E F4(,)A F1 1.288(as it does with an)3.538 F
+242.4 Q F3(SIGINT)3.788 E F4(,)A F1 1.288(as it does with an)3.538 F
3.788(yo)-.15 G 1.288(ther trapped signal it recei)-3.788 F -.15(ve)-.25
G 3.789(sw).15 G 1.289(hile it is w)-3.789 F 1.289(aiting for the fore-)
--.1 F(ground command to complete, for compatibility)144 477.6 Q(.)-.65 E
-.49(When job control is enabled,)108 494.4 R F3(bash)2.99 E F1 .49
+-.1 F(ground command to complete, for compatibility)144 254.4 Q(.)-.65 E
+.49(When job control is enabled,)108 271.2 R F2(bash)2.99 E F1 .49
(does not recei)2.99 F .79 -.15(ve k)-.25 H -.15(ey).05 G .49
-(board-generated signals such as).15 F F2(SIGINT)2.99 E F1 .49
-(while it is)2.74 F -.1(wa)108 506.4 S .646(iting for a fore).1 F .646
+(board-generated signals such as).15 F F3(SIGINT)2.99 E F1 .49
+(while it is)2.74 F -.1(wa)108 283.2 S .646(iting for a fore).1 F .646
(ground command.)-.15 F .646(An interacti)5.646 F .946 -.15(ve s)-.25 H
-.647(hell does not pay attention to the).15 F F2(SIGINT)3.147 E F4(,)A
+.647(hell does not pay attention to the).15 F F3(SIGINT)3.147 E F4(,)A
F1 -2.15 -.25(ev e)2.897 H 3.147(ni).25 G 3.147(ft)-3.147 G(he)-3.147 E
-(fore)108 518.4 Q .57
+(fore)108 295.2 Q .57
(ground command terminates as a result, other than noting its e)-.15 F
.57(xit status.)-.15 F .57(If the shell is not interacti)5.57 F -.15(ve)
--.25 G(,).15 E 1.207(and the fore)108 530.4 R 1.207
-(ground command terminates due to the)-.15 F F2(SIGINT)3.707 E F4(,)A F3
+-.25 G(,).15 E 1.207(and the fore)108 307.2 R 1.207
+(ground command terminates due to the)-.15 F F3(SIGINT)3.707 E F4(,)A F2
(bash)3.458 E F1 1.208(pretends it recei)3.708 F -.15(ve)-.25 G 3.708
-(dt).15 G(he)-3.708 E F2(SIGINT)3.708 E F1(itself)3.458 E
-(\(scenario 1 abo)108 542.4 Q -.15(ve)-.15 G(\), for compatibility).15 E
-(.)-.65 E/F5 10.95/Times-Bold@0 SF(JOB CONTR)72 559.2 Q(OL)-.329 E F0
--.25(Jo)108 571.2 S 3.369(bc).25 G(ontr)-3.369 E(ol)-.45 E F1 .868
+(dt).15 G(he)-3.708 E F3(SIGINT)3.708 E F1(itself)3.458 E
+(\(scenario 1 abo)108 319.2 Q -.15(ve)-.15 G(\), for compatibility).15 E
+(.)-.65 E/F5 10.95/Times-Bold@0 SF(JOB CONTR)72 336 Q(OL)-.329 E F0 -.25
+(Jo)108 348 S 3.369(bc).25 G(ontr)-3.369 E(ol)-.45 E F1 .868
(refers to the ability to selecti)3.879 F -.15(ve)-.25 G .868
(ly stop \().15 F F0(suspend)A F1 3.368(\)t)C .868(he e)-3.368 F -.15
(xe)-.15 G .868(cution of processes and continue \().15 F F0 -.37(re)C
-(-).37 E(sume)108 583.2 Q F1 2.664(\)t)C .164(heir e)-2.664 F -.15(xe)
--.15 G .164(cution at a later point.).15 F 2.665(Au)5.165 G .165
+(-).37 E(sume)108 360 Q F1 2.664(\)t)C .164(heir e)-2.664 F -.15(xe)-.15
+G .164(cution at a later point.).15 F 2.665(Au)5.165 G .165
(ser typically emplo)-2.665 F .165(ys this f)-.1 F .165
(acility via an interacti)-.1 F .465 -.15(ve i)-.25 H(nterf).15 E .165
-(ace sup-)-.1 F(plied jointly by the operating system k)108 595.2 Q
+(ace sup-)-.1 F(plied jointly by the operating system k)108 372 Q
(ernel')-.1 E 2.5(st)-.55 G(erminal dri)-2.5 E -.15(ve)-.25 G 2.5(ra).15
-G(nd)-2.5 E F3(bash)2.5 E F1(.)A .599(The shell associates a)108 612 R
+G(nd)-2.5 E F2(bash)2.5 E F1(.)A .599(The shell associates a)108 388.8 R
F0(job)4.839 E F1 .599(with each pipeline.)3.329 F .599(It k)5.599 F
.599(eeps a table of currently e)-.1 F -.15(xe)-.15 G .599
-(cuting jobs, which the).15 F F3(jobs)3.098 E F1 1.001
-(command will display)108 624 R 6.001(.E)-.65 G 1.001(ach job has a)
--6.001 F F0 1.001(job number)3.501 F F1 3.501(,w)C(hich)-3.501 E F3
+(cuting jobs, which the).15 F F2(jobs)3.098 E F1 1.001
+(command will display)108 400.8 R 6.001(.E)-.65 G 1.001(ach job has a)
+-6.001 F F0 1.001(job number)3.501 F F1 3.501(,w)C(hich)-3.501 E F2
(jobs)3.501 E F1 1.002(displays between brack)3.502 F 3.502(ets. Job)-.1
-F(numbers)3.502 E(start at 1.)108 636 Q(When)5 E F3(bash)2.5 E F1
+F(numbers)3.502 E(start at 1.)108 412.8 Q(When)5 E F2(bash)2.5 E F1
(starts a job asynchronously \(in the)2.5 E F0(bac)2.77 E(kgr)-.2 E
(ound)-.45 E F1(\), it prints a line that looks lik).77 E(e:)-.1 E
-([1] 25647)144 652.8 Q .241(indicating that this job is job number 1 an\
+([1] 25647)144 429.6 Q .241(indicating that this job is job number 1 an\
d that the process ID of the last process in the pipeline associated)108
-669.6 R .732(with this job is 25647.)108 681.6 R .733
+446.4 R .732(with this job is 25647.)108 458.4 R .733
(All of the processes in a single pipeline are members of the same job)
-5.732 F(.)-.4 E F3(Bash)5.733 E F1(uses)3.233 E(the)108 693.6 Q F0(job)
+5.732 F(.)-.4 E F2(Bash)5.733 E F1(uses)3.233 E(the)108 470.4 Q F0(job)
4.24 E F1(abstraction as the basis for job control.)2.73 E 2.374 -.8
-(To f)108 710.4 T .774(acilitate the implementation of the user interf)
+(To f)108 487.2 T .774(acilitate the implementation of the user interf)
.7 F .773(ace to job control, each process has a)-.1 F F0(pr)3.273 E
.773(ocess gr)-.45 F .773(oup ID)-.45 F F1(,)A 1.979
-(and the operating system maintains the notion of a)108 722.4 R F0(curr)
+(and the operating system maintains the notion of a)108 499.2 R F0(curr)
4.479 E 1.979(ent terminal pr)-.37 F 1.98(ocess gr)-.45 F 1.98(oup ID)
--.45 F F1 6.98(.T)C 1.98(his terminal)-6.98 F(GNU Bash 5.3)72 768 Q
-(2025 April 7)149.285 E(43)198.445 E 0 Cg EP
-%%Page: 44 44
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E(process group ID is associated with the)108 84 Q F0
-(contr)2.5 E(olling terminal)-.45 E F1(.)A .454(Processes that ha)108
-100.8 R .754 -.15(ve t)-.2 H .454
+-.45 F F1 6.98(.T)C 1.98(his terminal)-6.98 F
+(process group ID is associated with the)108 511.2 Q F0(contr)2.5 E
+(olling terminal)-.45 E F1(.)A .454(Processes that ha)108 528 R .754
+-.15(ve t)-.2 H .454
(he same process group ID are said to be part of the same).15 F F0(pr)
2.953 E .453(ocess gr)-.45 F(oup)-.45 E F1 5.453(.M)C .453(embers of)
--5.453 F(the)108 112.8 Q F0(for)3.442 E -.4(eg)-.37 G -.45(ro).4 G(und)
-.45 E F1 .943(process group \(processes whose process group ID is equal\
- to the current terminal process)3.442 F .614(group ID\) recei)108 124.8
-R .914 -.15(ve k)-.25 H -.15(ey).05 G .614
-(board-generated signals such as).15 F/F2 9/Times-Bold@0 SF(SIGINT)3.114
-E/F3 9/Times-Roman@0 SF(.)A F1 .614(Processes in the fore)5.114 F .614
-(ground process group)-.15 F .212(are said to be)108 136.8 R F0(for)
-4.682 E -.4(eg)-.37 G -.45(ro).4 G(und).45 E F1(processes.)3.482 E F0
-(Bac)5.793 E(kgr)-.2 E(ound)-.45 E F1 .213
+-5.453 F(the)108 540 Q F0(for)3.442 E -.4(eg)-.37 G -.45(ro).4 G(und).45
+E F1 .943(process group \(processes whose process group ID is equal to \
+the current terminal process)3.442 F .614(group ID\) recei)108 552 R
+.914 -.15(ve k)-.25 H -.15(ey).05 G .614
+(board-generated signals such as).15 F F3(SIGINT)3.114 E F4(.)A F1 .614
+(Processes in the fore)5.114 F .614(ground process group)-.15 F .212
+(are said to be)108 564 R F0(for)4.682 E -.4(eg)-.37 G -.45(ro).4 G(und)
+.45 E F1(processes.)3.482 E F0(Bac)5.793 E(kgr)-.2 E(ound)-.45 E F1 .213
(processes are those whose process group ID dif)3.483 F .213(fers from)
--.25 F 1.816(the controlling terminal')108 148.8 R 1.816
+-.25 F 1.816(the controlling terminal')108 576 R 1.816
(s; such processes are immune to k)-.55 F -.15(ey)-.1 G 1.815
(board-generated signals.).15 F 1.815(Only fore)6.815 F(ground)-.15 E
-.168(processes are allo)108 160.8 R .168(wed to read from or)-.25 F
-2.668(,i)-.4 G 2.668(ft)-2.668 G .169(he user so speci\214es with \231s\
-tty tostop\232, write to the controlling ter)-2.668 F(-)-.2 E 3.839
-(minal. The)108 172.8 R 1.339(system sends a)3.839 F F2 1.339
+.168(processes are allo)108 588 R .168(wed to read from or)-.25 F 2.668
+(,i)-.4 G 2.668(ft)-2.668 G .169(he user so speci\214es with \231stty t\
+ostop\232, write to the controlling ter)-2.668 F(-)-.2 E 3.839
+(minal. The)108 600 R 1.339(system sends a)3.839 F F3 1.339
(SIGTTIN \(SIGTT)3.839 F(OU\))-.162 E F1 1.339
(signal to background processes which attempt to read)3.589 F
-(from \(write to when \231tostop\232 is in ef)108 184.8 Q
+(from \(write to when \231tostop\232 is in ef)108 612 Q
(fect\) the terminal, which, unless caught, suspends the process.)-.25 E
-1.087(If the operating system on which)108 201.6 R/F4 10/Times-Bold@0 SF
-(bash)3.587 E F1 1.088(is running supports job control,)3.588 F F4(bash)
-3.588 E F1 1.088(contains f)3.588 F 1.088(acilities to use it.)-.1 F -.8
-(Ty)108 213.6 S .878(ping the).8 F F0(suspend)3.718 E F1 .878
-(character \(typically)4.148 F F4<005a>3.378 E F1 3.377(,C)C .877
+1.087(If the operating system on which)108 628.8 R F2(bash)3.587 E F1
+1.088(is running supports job control,)3.588 F F2(bash)3.588 E F1 1.088
+(contains f)3.588 F 1.088(acilities to use it.)-.1 F -.8(Ty)108 640.8 S
+.878(ping the).8 F F0(suspend)3.718 E F1 .878(character \(typically)
+4.148 F F2<005a>3.378 E F1 3.377(,C)C .877
(ontrol-Z\) while a process is running stops that process and)-3.377 F
-.007(returns control to)108 225.6 R F4(bash)2.508 E F1 5.008(.T)C .008
+.007(returns control to)108 652.8 R F2(bash)2.508 E F1 5.008(.T)C .008
(yping the)-5.808 F F0 .008(delayed suspend)2.858 F F1 .008
-(character \(typically)3.278 F F4<0059>2.508 E F1 2.508(,C)C .008
+(character \(typically)3.278 F F2<0059>2.508 E F1 2.508(,C)C .008
(ontrol-Y\) causes the process)-2.508 F .561(stop when it attempts to r\
-ead input from the terminal, and returns control to)108 237.6 R F4(bash)
+ead input from the terminal, and returns control to)108 664.8 R F2(bash)
3.06 E F1 5.56(.T)C .56(he user then manipu-)-5.56 F .407
-(lates the state of this job, using the)108 249.6 R F4(bg)2.907 E F1
-.407(command to continue it in the background, the)2.907 F F4(fg)2.907 E
-F1 .407(command to con-)2.907 F .728(tinue it in the fore)108 261.6 R
-.728(ground, or the)-.15 F F4(kill)3.228 E F1 .728(command to kill it.)
+(lates the state of this job, using the)108 676.8 R F2(bg)2.907 E F1
+.407(command to continue it in the background, the)2.907 F F2(fg)2.907 E
+F1 .407(command to con-)2.907 F .728(tinue it in the fore)108 688.8 R
+.728(ground, or the)-.15 F F2(kill)3.228 E F1 .728(command to kill it.)
3.228 F .727(The suspend character tak)5.727 F .727(es ef)-.1 F .727
(fect immediately)-.25 F(,)-.65 E .553(and has the additional side ef)
-108 273.6 R .553(fect of discarding an)-.25 F 3.053(yp)-.15 G .553
+108 700.8 R .553(fect of discarding an)-.25 F 3.053(yp)-.15 G .553
(ending output and typeahead.)-3.053 F 2.153 -.8(To f)5.553 H .554
(orce a background).8 F 2.261(process to stop, or stop a process that')
-108 285.6 R 4.761(sn)-.55 G 2.26
+108 712.8 R 4.761(sn)-.55 G 2.26
(ot associated with the current terminal session, send it the)-4.761 F
-F2(SIGST)108 297.6 Q(OP)-.162 E F1(signal using)2.25 E F4(kill)2.5 E F1
-(.)A .777(There are a number of w)108 314.4 R .777
-(ays to refer to a job in the shell.)-.1 F(The)5.777 E F4(%)3.277 E F1
-.777(character introduces a job speci\214cation)3.277 F(\(jobspec\).)108
-326.4 Q .415(Job number)108 343.2 R F0(n)3.275 E F1 .415
-(may be referred to as)3.155 F F4(%n)2.915 E F1 5.415(.A)C .415
+F3(SIGST)108 724.8 Q(OP)-.162 E F1(signal using)2.25 E F2(kill)2.5 E F1
+(.)A(GNU Bash 5.3)72 768 Q(2026 January 14)141.79 E(44)190.95 E 0 Cg EP
+%%Page: 45 45
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E .777(There are a number of w)108 84 R .777
+(ays to refer to a job in the shell.)-.1 F(The)5.777 E/F2 10
+/Times-Bold@0 SF(%)3.277 E F1 .777
+(character introduces a job speci\214cation)3.277 F(\(jobspec\).)108 96
+Q .415(Job number)108 112.8 R F0(n)3.275 E F1 .415
+(may be referred to as)3.155 F F2(%n)2.915 E F1 5.415(.A)C .415
(job may also be referred to using a pre\214x of the name used to)-2.5 F
.034(start it, or using a substring that appears in its command line.)
-108 355.2 R -.15(Fo)5.035 G 2.535(re).15 G(xample,)-2.685 E F4(%ce)2.535
-E F1 .035(refers to a job whose com-)2.535 F .229(mand name be)108 367.2
-R .229(gins with)-.15 F F4(ce)2.729 E F1 5.229(.U)C(sing)-5.229 E F4
+108 124.8 R -.15(Fo)5.035 G 2.535(re).15 G(xample,)-2.685 E F2(%ce)2.535
+E F1 .035(refers to a job whose com-)2.535 F .229(mand name be)108 136.8
+R .229(gins with)-.15 F F2(ce)2.729 E F1 5.229(.U)C(sing)-5.229 E F2
(%?ce)2.729 E F1 2.729(,o)C 2.729(nt)-2.729 G .229
(he other hand, refers to an)-2.729 F 2.729(yj)-.15 G .229
-(ob containing the string)-2.729 F F4(ce)2.729 E F1 .229(in its)2.729 F
-(command line.)108 379.2 Q
-(If the pre\214x or substring matches more than one job,)5 E F4(bash)2.5
-E F1(reports an error)2.5 E(.)-.55 E .441(The symbols)108 396 R F4(%%)
-2.941 E F1(and)2.941 E F4(%+)2.941 E F1 .441(refer to the shell')2.941 F
+(ob containing the string)-2.729 F F2(ce)2.729 E F1 .229(in its)2.729 F
+(command line.)108 148.8 Q
+(If the pre\214x or substring matches more than one job,)5 E F2(bash)2.5
+E F1(reports an error)2.5 E(.)-.55 E .441(The symbols)108 165.6 R F2(%%)
+2.941 E F1(and)2.941 E F2(%+)2.941 E F1 .441(refer to the shell')2.941 F
2.941(sn)-.55 G .441(otion of the)-2.941 F F0(curr)3.141 E .441(ent job)
-.37 F F1 5.441(.A).23 G .441(single % \(with no accompan)-2.5 F(y-)-.15
-E .207(ing job speci\214cation\) also refers to the current job)108 408
-R(.)-.4 E F4<25ad>5.207 E F1 .207(refers to the)2.707 F F0(pr)3.957 E
--.15(ev)-.37 G .207(ious job).15 F F1 5.207(.W).23 G .207
+E .207(ing job speci\214cation\) also refers to the current job)108
+177.6 R(.)-.4 E F2<25ad>5.207 E F1 .207(refers to the)2.707 F F0(pr)
+3.957 E -.15(ev)-.37 G .207(ious job).15 F F1 5.207(.W).23 G .207
(hen a job starts in the)-5.207 F .185
-(background, a job stops while in the fore)108 420 R .186
+(background, a job stops while in the fore)108 189.6 R .186
(ground, or a job is resumed in the background, it becomes the cur)-.15
-F(-)-.2 E .534(rent job)108 432 R 5.534(.T)-.4 G .534(he job that w)
+F(-)-.2 E .534(rent job)108 201.6 R 5.534(.T)-.4 G .534(he job that w)
-5.534 F .534(as the current job becomes the pre)-.1 F .534(vious job)
-.25 F 5.534(.W)-.4 G .534(hen the current job terminates, the)-5.534 F
-(pre)108 444 Q .123(vious job becomes the current job)-.25 F 5.123(.I)
--.4 G 2.623(ft)-5.123 G .123(here is only a single job,)-2.623 F F4(%+)
-2.623 E F1(and)2.623 E F4<25ad>2.623 E F1 .124
-(can both be used to refer to)2.623 F 1.474(that job)108 456 R 6.474(.I)
--.4 G 3.974(no)-6.474 G 1.473
-(utput pertaining to jobs \(e.g., the output of the)-3.974 F F4(jobs)
+(pre)108 213.6 Q .123(vious job becomes the current job)-.25 F 5.123(.I)
+-.4 G 2.623(ft)-5.123 G .123(here is only a single job,)-2.623 F F2(%+)
+2.623 E F1(and)2.623 E F2<25ad>2.623 E F1 .124
+(can both be used to refer to)2.623 F 1.474(that job)108 225.6 R 6.474
+(.I)-.4 G 3.974(no)-6.474 G 1.473
+(utput pertaining to jobs \(e.g., the output of the)-3.974 F F2(jobs)
3.973 E F1 1.473(command\), the current job is al)3.973 F -.1(wa)-.1 G
-(ys).1 E(mark)108 468 Q(ed with a)-.1 E F4(+)2.5 E F1 2.5(,a)C
-(nd the pre)-2.5 E(vious job with a)-.25 E F4<ad>2.5 E F1(.)A .686
-(Simply naming a job can be used to bring it into the fore)108 484.8 R
-(ground:)-.15 E F4(%1)3.186 E F1 .686(is a synon)3.186 F .686
+(ys).1 E(mark)108 237.6 Q(ed with a)-.1 E F2(+)2.5 E F1 2.5(,a)C
+(nd the pre)-2.5 E(vious job with a)-.25 E F2<ad>2.5 E F1(.)A .686
+(Simply naming a job can be used to bring it into the fore)108 254.4 R
+(ground:)-.15 E F2(%1)3.186 E F1 .686(is a synon)3.186 F .686
(ym for \231fg %1\232, bringing)-.15 F .069
-(job 1 from the background into the fore)108 496.8 R 2.568
+(job 1 from the background into the fore)108 266.4 R 2.568
(ground. Similarly)-.15 F 2.568<2c99>-.65 G .068
(%1 &\232 resumes job 1 in the background, equi)-2.568 F(v-)-.25 E
-(alent to \231bg %1\232.)108 508.8 Q .13
-(The shell learns immediately whene)108 525.6 R -.15(ve)-.25 G 2.63(raj)
-.15 G .13(ob changes state.)-2.63 F(Normally)5.131 E(,)-.65 E F4(bash)
+(alent to \231bg %1\232.)108 278.4 Q .13
+(The shell learns immediately whene)108 295.2 R -.15(ve)-.25 G 2.63(raj)
+.15 G .13(ob changes state.)-2.63 F(Normally)5.131 E(,)-.65 E F2(bash)
2.631 E F1 -.1(wa)2.631 G .131(its until it is about to print a).1 F
-1.279(prompt before notifying the user about changes in a job')108 537.6
+1.279(prompt before notifying the user about changes in a job')108 307.2
R 3.779(ss)-.55 G 1.279(tatus so as to not interrupt an)-3.779 F 3.778
(yo)-.15 G 1.278(ther output,)-3.778 F .015
-(though it will notify of changes in a job')108 549.6 R 2.515(ss)-.55 G
+(though it will notify of changes in a job')108 319.2 R 2.515(ss)-.55 G
.015(tatus after a fore)-2.515 F .016
(ground command in a list completes, before e)-.15 F -.15(xe)-.15 G(-)
-.15 E .673(cuting the ne)108 561.6 R .672(xt command in the list.)-.15 F
-.672(If the)5.672 F F4<ad62>3.172 E F1 .672(option to the)3.172 F F4
-(set)3.172 E F1 -.2(bu)3.172 G .672(iltin command is enabled,).2 F F4
-(bash)3.172 E F1(reports)3.172 E(status changes immediately)108 573.6 Q
-(.)-.65 E F4(Bash)5 E F1 -.15(exe)2.5 G(cutes an).15 E 2.5(yt)-.15 G
-(rap on)-2.5 E F2(SIGCHLD)2.5 E F1(for each child that terminates.)2.25
-E .352(When a job terminates and)108 590.4 R F4(bash)2.852 E F1 .352
-(noti\214es the user about it,)2.852 F F4(bash)2.852 E F1(remo)2.852 E
--.15(ve)-.15 G 2.852(st).15 G .352(he job from the table.)-2.852 F .352
-(It will not)5.352 F .52(appear in)108 602.4 R F4(jobs)3.02 E F1 .52
-(output, b)3.02 F(ut)-.2 E F4(wait)3.02 E F1 .52(will report its e)3.02
-F .52(xit status, as long as it')-.15 F 3.02(ss)-.55 G .52
-(upplied the process ID associated)-3.02 F(with the job as an ar)108
-614.4 Q 2.5(gument. When)-.18 F(the table is empty)2.5 E 2.5(,j)-.65 G
-(ob numbers start o)-2.5 E -.15(ve)-.15 G 2.5(ra).15 G 2.5(t1)-2.5 G(.)
--2.5 E .06(If a user attempts to e)108 631.2 R(xit)-.15 E F4(bash)2.56 E
-F1 .06(while jobs are stopped \(or)2.56 F 2.561(,i)-.4 G 2.561(ft)-2.561
-G(he)-2.561 E F4(checkjobs)2.561 E F1 .061
-(shell option has been enabled us-)2.561 F .3(ing the)108 643.2 R F4
-(shopt)2.8 E F1 -.2(bu)2.8 G .3(iltin, running\), the shell prints a w)
-.2 F .3(arning message, and, if the)-.1 F F4(checkjobs)2.8 E F1 .3
+.15 E .673(cuting the ne)108 331.2 R .672(xt command in the list.)-.15 F
+.672(If the)5.672 F F2<ad62>3.172 E F1 .672(option to the)3.172 F F2
+(set)3.172 E F1 -.2(bu)3.172 G .672(iltin command is enabled,).2 F F2
+(bash)3.172 E F1(reports)3.172 E(status changes immediately)108 343.2 Q
+(.)-.65 E F2(Bash)5 E F1 -.15(exe)2.5 G(cutes an).15 E 2.5(yt)-.15 G
+(rap on)-2.5 E/F3 9/Times-Bold@0 SF(SIGCHLD)2.5 E F1
+(for each child that terminates.)2.25 E .352(When a job terminates and)
+108 360 R F2(bash)2.852 E F1 .352(noti\214es the user about it,)2.852 F
+F2(bash)2.852 E F1(remo)2.852 E -.15(ve)-.15 G 2.852(st).15 G .352
+(he job from the table.)-2.852 F .352(It will not)5.352 F .52(appear in)
+108 372 R F2(jobs)3.02 E F1 .52(output, b)3.02 F(ut)-.2 E F2(wait)3.02 E
+F1 .52(will report its e)3.02 F .52(xit status, as long as it')-.15 F
+3.02(ss)-.55 G .52(upplied the process ID associated)-3.02 F
+(with the job as an ar)108 384 Q 2.5(gument. When)-.18 F
+(the table is empty)2.5 E 2.5(,j)-.65 G(ob numbers start o)-2.5 E -.15
+(ve)-.15 G 2.5(ra).15 G 2.5(t1)-2.5 G(.)-2.5 E .06
+(If a user attempts to e)108 400.8 R(xit)-.15 E F2(bash)2.56 E F1 .06
+(while jobs are stopped \(or)2.56 F 2.561(,i)-.4 G 2.561(ft)-2.561 G(he)
+-2.561 E F2(checkjobs)2.561 E F1 .061(shell option has been enabled us-)
+2.561 F .3(ing the)108 412.8 R F2(shopt)2.8 E F1 -.2(bu)2.8 G .3
+(iltin, running\), the shell prints a w).2 F .3
+(arning message, and, if the)-.1 F F2(checkjobs)2.8 E F1 .3
(option is enabled,)2.8 F .074(lists the jobs and their statuses.)108
-655.2 R(The)5.074 E F4(jobs)2.574 E F1 .074
+424.8 R(The)5.074 E F2(jobs)2.574 E F1 .074
(command may then be used to inspect their status.)2.574 F .074
-(If the user im-)5.074 F 1.03(mediately attempts to e)108 667.2 R 1.03
+(If the user im-)5.074 F 1.03(mediately attempts to e)108 436.8 R 1.03
(xit ag)-.15 F 1.03(ain, without an interv)-.05 F 1.03(ening command,)
--.15 F F4(bash)3.53 E F1 1.03(does not print another w)3.53 F(arning,)
--.1 E(and terminates an)108 679.2 Q 2.5(ys)-.15 G(topped jobs.)-2.5 E
-.644(When the shell is w)108 696 R .644
-(aiting for a job or process using the)-.1 F F4(wait)3.145 E F1 -.2(bu)
-3.145 G .645(iltin, and job control is enabled,).2 F F4(wait)3.145 E F1
-(will)3.145 E .151(return when the job changes state.)108 708 R(The)
-5.151 E F4<ad66>2.651 E F1 .151(option causes)2.651 F F4(wait)2.651 E F1
+-.15 F F2(bash)3.53 E F1 1.03(does not print another w)3.53 F(arning,)
+-.1 E(and terminates an)108 448.8 Q 2.5(ys)-.15 G(topped jobs.)-2.5 E
+.644(When the shell is w)108 465.6 R .644
+(aiting for a job or process using the)-.1 F F2(wait)3.145 E F1 -.2(bu)
+3.145 G .645(iltin, and job control is enabled,).2 F F2(wait)3.145 E F1
+(will)3.145 E .151(return when the job changes state.)108 477.6 R(The)
+5.151 E F2<ad66>2.651 E F1 .151(option causes)2.651 F F2(wait)2.651 E F1
.15(to w)2.65 F .15(ait until the job or process terminates be-)-.1 F
-(fore returning.)108 720 Q(GNU Bash 5.3)72 768 Q(2025 April 7)149.285 E
-(44)198.445 E 0 Cg EP
-%%Page: 45 45
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E/F2 10.95/Times-Bold@0 SF(PR)72 84 Q(OMPTING)-.329 E
-F1 .644(When e)108 96 R -.15(xe)-.15 G .644(cuting interacti).15 F -.15
-(ve)-.25 G(ly).15 E(,)-.65 E/F3 10/Times-Bold@0 SF(bash)3.144 E F1 .645
-(displays the primary prompt)3.145 F/F4 9/Times-Bold@0 SF(PS1)3.145 E F1
-.645(when it is ready to read a command,)2.895 F
-(and the secondary prompt)108 108 Q F4(PS2)2.5 E F1
-(when it needs more input to complete a command.)2.25 E F3(Bash)108
-124.8 Q F1 -.15(ex)3.183 G .683(amines the v).15 F .682
-(alue of the array v)-.25 F(ariable)-.25 E F3(PR)3.182 E(OMPT_COMMAND)
+(fore returning.)108 489.6 Q/F4 10.95/Times-Bold@0 SF(PR)72 506.4 Q
+(OMPTING)-.329 E F1 .644(When e)108 518.4 R -.15(xe)-.15 G .644
+(cuting interacti).15 F -.15(ve)-.25 G(ly).15 E(,)-.65 E F2(bash)3.144 E
+F1 .645(displays the primary prompt)3.145 F F3(PS1)3.145 E F1 .645
+(when it is ready to read a command,)2.895 F(and the secondary prompt)
+108 530.4 Q F3(PS2)2.5 E F1
+(when it needs more input to complete a command.)2.25 E F2(Bash)108
+547.2 Q F1 -.15(ex)3.183 G .683(amines the v).15 F .682
+(alue of the array v)-.25 F(ariable)-.25 E F2(PR)3.182 E(OMPT_COMMAND)
-.3 E F1 .682(just before printing each primary)3.182 F 2.576
-(prompt. If)108 136.8 R(an)2.576 E 2.576(ye)-.15 G .076(lements in)
--2.576 F F3(PR)2.576 E(OMPT_COMMAND)-.3 E F1 .076
+(prompt. If)108 559.2 R(an)2.576 E 2.576(ye)-.15 G .076(lements in)
+-2.576 F F2(PR)2.576 E(OMPT_COMMAND)-.3 E F1 .076
(are set and non-null, Bash e)2.576 F -.15(xe)-.15 G .076(cutes each v)
-.15 F .076(alue, in nu-)-.25 F .344(meric order)108 148.8 R 2.844(,j)-.4
-G .344(ust as if it had been typed on the command line.)-2.844 F F3
-(Bash)5.343 E F1(displays)2.843 E F4(PS0)2.843 E F1 .343
-(after it reads a command)2.593 F -.2(bu)108 160.8 S 2.5(tb).2 G
-(efore e)-2.5 E -.15(xe)-.15 G(cuting it.).15 E F3(Bash)108 177.6 Q F1
-(displays)2.5 E F4(PS4)2.5 E F1(as described abo)2.25 E .3 -.15(ve b)
--.15 H(efore tracing each command when the).15 E F3<ad78>2.5 E F1
-(option is enabled.)2.5 E F3(Bash)108 194.4 Q F1(allo)2.934 E .434
-(ws the prompt strings)-.25 F F3(PS0)2.934 E F1(,)A F3(PS1)2.934 E F1(,)
-A F3(PS2)2.934 E F1 2.934(,a)C(nd)-2.934 E F3(PS4)2.934 E F1 2.934(,t)C
+.15 F .076(alue, in nu-)-.25 F .344(meric order)108 571.2 R 2.844(,j)-.4
+G .344(ust as if it had been typed on the command line.)-2.844 F F2
+(Bash)5.343 E F1(displays)2.843 E F3(PS0)2.843 E F1 .343
+(after it reads a command)2.593 F -.2(bu)108 583.2 S 2.5(tb).2 G
+(efore e)-2.5 E -.15(xe)-.15 G(cuting it.).15 E F2(Bash)108 600 Q F1
+(displays)2.5 E F3(PS4)2.5 E F1(as described abo)2.25 E .3 -.15(ve b)
+-.15 H(efore tracing each command when the).15 E F2<ad78>2.5 E F1
+(option is enabled.)2.5 E F2(Bash)108 616.8 Q F1(allo)2.934 E .434
+(ws the prompt strings)-.25 F F2(PS0)2.934 E F1(,)A F2(PS1)2.934 E F1(,)
+A F2(PS2)2.934 E F1 2.934(,a)C(nd)-2.934 E F2(PS4)2.934 E F1 2.934(,t)C
2.935(ob)-2.934 G 2.935(ec)-2.935 G .435
(ustomized by inserting a number of back-)-2.935 F
-(slash-escaped special characters that are decoded as follo)108 206.4 Q
-(ws:)-.25 E F3(\\a)144 223.2 Q F1(An ASCII bell character \(07\).)180
-223.2 Q F3(\\d)144 235.2 Q F1(The date in \231W)180 235.2 Q
+(slash-escaped special characters that are decoded as follo)108 628.8 Q
+(ws:)-.25 E F2(\\a)144 645.6 Q F1(An ASCII bell character \(07\).)180
+645.6 Q F2(\\d)144 657.6 Q F1(The date in \231W)180 657.6 Q
(eekday Month Date\232 format \(e.g., \231T)-.8 E(ue May 26\232\).)-.45
-E F3(\\D{)144 247.2 Q F0(format)A F3(})A F1(The)180 259.2 Q F0(format)
+E F2(\\D{)144 669.6 Q F0(format)A F2(})A F1(The)180 681.6 Q F0(format)
3.67 E F1 1.17(is passed to)3.67 F F0(strftime)4.01 E F1 1.17
(\(3\) and the result is inserted into the prompt string; an).18 F
-(empty)180 271.2 Q F0(format)2.5 E F1
+(empty)180 693.6 Q F0(format)2.5 E F1
(results in a locale-speci\214c time representation.)2.5 E
-(The braces are required.)5 E F3(\\e)144 283.2 Q F1
-(An ASCII escape character \(033\).)180 283.2 Q F3(\\h)144 295.2 Q F1
-(The hostname up to the \214rst \231.)180 295.2 Q<9a2e>-.7 E F3(\\H)144
-307.2 Q F1(The hostname.)180 307.2 Q F3(\\j)144 319.2 Q F1
-(The number of jobs currently managed by the shell.)180 319.2 Q F3(\\l)
-144 331.2 Q F1(The basename of the shell')180 331.2 Q 2.5(st)-.55 G
-(erminal de)-2.5 E(vice name \(e.g., \231ttys0\232\).)-.25 E F3(\\n)144
-343.2 Q F1 2.5(An)180 343.2 S -.25(ew)-2.5 G(line.).25 E F3(\\r)144
-355.2 Q F1 2.5(Ac)180 355.2 S(arriage return.)-2.5 E F3(\\s)144 367.2 Q
-F1(The name of the shell: the basename of)180 367.2 Q F3($0)2.5 E F1
-(\(the portion follo)2.5 E(wing the \214nal slash\).)-.25 E F3(\\t)144
-379.2 Q F1(The current time in 24-hour HH:MM:SS format.)180 379.2 Q F3
-(\\T)144 391.2 Q F1(The current time in 12-hour HH:MM:SS format.)180
-391.2 Q F3(\\@)144 403.2 Q F1(The current time in 12-hour am/pm format.)
-180 403.2 Q F3(\\A)144 415.2 Q F1
-(The current time in 24-hour HH:MM format.)180 415.2 Q F3(\\u)144 427.2
-Q F1(The username of the current user)180 427.2 Q(.)-.55 E F3(\\v)144
-439.2 Q F1(The)180 439.2 Q F3(bash)2.5 E F1 -.15(ve)2.5 G
-(rsion \(e.g., 2.00\).).15 E F3(\\V)144 451.2 Q F1(The)180 451.2 Q F3
-(bash)2.5 E F1(release, v)2.5 E(ersion + patch le)-.15 E -.15(ve)-.25 G
-2.5(l\().15 G(e.g., 2.00.0\))-2.5 E F3(\\w)144 463.2 Q F1 1.645(The v)
-180 463.2 R 1.645(alue of the)-.25 F F3(PWD)4.145 E F1 1.645(shell v)
-4.145 F 1.645(ariable \()-.25 F F3($PWD)A F1 1.645(\), with)B F4($HOME)
-4.145 E F1(abbre)3.895 E 1.646(viated with a tilde)-.25 F(\(uses the v)
-180 475.2 Q(alue of the)-.25 E F4(PR)2.5 E(OMPT_DIR)-.27 E(TRIM)-.36 E
-F1 -.25(va)2.25 G(riable\).).25 E F3(\\W)144 487.2 Q F1(The basename of)
-180 487.2 Q F3($PWD)2.5 E F1 2.5(,w)C(ith)-2.5 E F4($HOME)2.5 E F1
-(abbre)2.25 E(viated with a tilde.)-.25 E F3(\\!)144 499.2 Q F1
-(The history number of this command.)180 499.2 Q F3(\\#)144 511.2 Q F1
-(The command number of this command.)180 511.2 Q F3(\\$)144 523.2 Q F1
-(If the ef)180 523.2 Q(fecti)-.25 E .3 -.15(ve U)-.25 H(ID is 0, a).15 E
-F3(#)2.5 E F1 2.5(,o)C(therwise a)-2.5 E F3($)2.5 E F1(.)A F3(\\)144
-535.2 Q F0(nnn)A F1(The character corresponding to the octal number)180
-535.2 Q F0(nnn)2.5 E F1(.)A F3(\\\\)144 547.2 Q F1 2.5(Ab)180 547.2 S
-(ackslash.)-2.5 E F3(\\[)144 559.2 Q F1(Be)180 559.2 Q 1.128(gin a sequ\
-ence of non-printing characters, which could be used to embed a termina\
-l)-.15 F(control sequence into the prompt.)180 571.2 Q F3(\\])144 583.2
-Q F1(End a sequence of non-printing characters.)180 583.2 Q .119
-(The command number and the history number are usually dif)108 600 R .12
-(ferent: the history number of a command is its)-.25 F .547(position in\
- the history list, which may include commands restored from the history\
- \214le \(see)108 612 R F4(HIST)3.046 E(OR)-.162 E(Y)-.315 E F1(be-)
-2.796 E(lo)108 624 Q .354(w\), while the command number is the position\
- in the sequence of commands e)-.25 F -.15(xe)-.15 G .355
-(cuted during the current).15 F .823(shell session.)108 636 R .822
-(After the string is decoded, it is e)5.823 F .822
-(xpanded via parameter e)-.15 F .822(xpansion, command substitution,)
--.15 F .682(arithmetic e)108 648 R .682(xpansion, and quote remo)-.15 F
--.25(va)-.15 G .682(l, subject to the v).25 F .683(alue of the)-.25 F F3
-(pr)3.183 E(omptv)-.18 E(ars)-.1 E F1 .683(shell option \(see the de-)
-3.183 F 1.198(scription of the)108 660 R F3(shopt)3.698 E F1 1.198
-(command under)3.698 F F4 1.197(SHELL B)3.697 F(UIL)-.09 E 1.197
-(TIN COMMANDS)-.828 F F1(belo)3.447 E 3.697(w\). This)-.25 F 1.197
-(can ha)3.697 F 1.497 -.15(ve u)-.2 H(nw).15 E(anted)-.1 E .322(side ef)
-108 672 R .322(fects if escaped portions of the string appear within co\
-mmand substitution or contain characters spe-)-.25 F(cial to w)108 684 Q
-(ord e)-.1 E(xpansion.)-.15 E F2(READLINE)72 700.8 Q F1 .151
-(This is the library that handles reading input when using an interacti)
-108 712.8 R .45 -.15(ve s)-.25 H .15(hell, unless the).15 F F3
-(\255\255noediting)2.65 E F1(option)2.65 E .573(is supplied at shell in)
-108 724.8 R -.2(vo)-.4 G 3.073(cation. Line).2 F .573
-(editing is also used when using the)3.073 F F3<ad65>3.073 E F1 .573
-(option to the)3.073 F F3 -.18(re)3.074 G(ad).18 E F1 -.2(bu)3.074 G
-3.074(iltin. By).2 F(GNU Bash 5.3)72 768 Q(2025 April 7)149.285 E(45)
-198.445 E 0 Cg EP
+(The braces are required.)5 E F2(\\e)144 705.6 Q F1
+(An ASCII escape character \(033\).)180 705.6 Q(GNU Bash 5.3)72 768 Q
+(2026 January 14)141.79 E(45)190.95 E 0 Cg EP
%%Page: 46 46
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E(def)108 84 Q 1.244(ault, the line editing commands\
- are similar to those of emacs; a vi-style line editing interf)-.1 F
-1.243(ace is also)-.1 F -.2(av)108 96 S 3.35(ailable. Line)-.05 F .85
+.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(\\h)144 84 Q F1
+(The hostname up to the \214rst \231.)180 84 Q<9a2e>-.7 E F2(\\H)144 96
+Q F1(The hostname.)180 96 Q F2(\\j)144 108 Q F1
+(The number of jobs currently managed by the shell.)180 108 Q F2(\\l)144
+120 Q F1(The basename of the shell')180 120 Q 2.5(st)-.55 G(erminal de)
+-2.5 E(vice name \(e.g., \231ttys0\232\).)-.25 E F2(\\n)144 132 Q F1 2.5
+(An)180 132 S -.25(ew)-2.5 G(line.).25 E F2(\\r)144 144 Q F1 2.5(Ac)180
+144 S(arriage return.)-2.5 E F2(\\s)144 156 Q F1
+(The name of the shell: the basename of)180 156 Q F2($0)2.5 E F1
+(\(the portion follo)2.5 E(wing the \214nal slash\).)-.25 E F2(\\t)144
+168 Q F1(The current time in 24-hour HH:MM:SS format.)180 168 Q F2(\\T)
+144 180 Q F1(The current time in 12-hour HH:MM:SS format.)180 180 Q F2
+(\\@)144 192 Q F1(The current time in 12-hour am/pm format.)180 192 Q F2
+(\\A)144 204 Q F1(The current time in 24-hour HH:MM format.)180 204 Q F2
+(\\u)144 216 Q F1(The username of the current user)180 216 Q(.)-.55 E F2
+(\\v)144 228 Q F1(The)180 228 Q F2(bash)2.5 E F1 -.15(ve)2.5 G
+(rsion \(e.g., 2.00\).).15 E F2(\\V)144 240 Q F1(The)180 240 Q F2(bash)
+2.5 E F1(release, v)2.5 E(ersion + patch le)-.15 E -.15(ve)-.25 G 2.5
+(l\().15 G(e.g., 2.00.0\))-2.5 E F2(\\w)144 252 Q F1 1.645(The v)180 252
+R 1.645(alue of the)-.25 F F2(PWD)4.145 E F1 1.645(shell v)4.145 F 1.645
+(ariable \()-.25 F F2($PWD)A F1 1.645(\), with)B/F3 9/Times-Bold@0 SF
+($HOME)4.145 E F1(abbre)3.895 E 1.646(viated with a tilde)-.25 F
+(\(uses the v)180 264 Q(alue of the)-.25 E F3(PR)2.5 E(OMPT_DIR)-.27 E
+(TRIM)-.36 E F1 -.25(va)2.25 G(riable\).).25 E F2(\\W)144 276 Q F1
+(The basename of)180 276 Q F2($PWD)2.5 E F1 2.5(,w)C(ith)-2.5 E F3
+($HOME)2.5 E F1(abbre)2.25 E(viated with a tilde.)-.25 E F2(\\!)144 288
+Q F1(The history number of this command.)180 288 Q F2(\\#)144 300 Q F1
+(The command number of this command.)180 300 Q F2(\\$)144 312 Q F1
+(If the ef)180 312 Q(fecti)-.25 E .3 -.15(ve U)-.25 H(ID is 0, a).15 E
+F2(#)2.5 E F1 2.5(,o)C(therwise a)-2.5 E F2($)2.5 E F1(.)A F2(\\)144 324
+Q F0(nnn)A F1(The character corresponding to the octal number)180 324 Q
+F0(nnn)2.5 E F1(.)A F2(\\\\)144 336 Q F1 2.5(Ab)180 336 S(ackslash.)-2.5
+E F2(\\[)144 348 Q F1(Be)180 348 Q 1.128(gin a sequence of non-printing\
+ characters, which could be used to embed a terminal)-.15 F
+(control sequence into the prompt.)180 360 Q F2(\\])144 372 Q F1
+(End a sequence of non-printing characters.)180 372 Q .119
+(The command number and the history number are usually dif)108 388.8 R
+.12(ferent: the history number of a command is its)-.25 F .547(position\
+ in the history list, which may include commands restored from the hist\
+ory \214le \(see)108 400.8 R F3(HIST)3.046 E(OR)-.162 E(Y)-.315 E F1
+(be-)2.796 E(lo)108 412.8 Q .354(w\), while the command number is the p\
+osition in the sequence of commands e)-.25 F -.15(xe)-.15 G .355
+(cuted during the current).15 F .823(shell session.)108 424.8 R .822
+(After the string is decoded, it is e)5.823 F .822
+(xpanded via parameter e)-.15 F .822(xpansion, command substitution,)
+-.15 F .682(arithmetic e)108 436.8 R .682(xpansion, and quote remo)-.15
+F -.25(va)-.15 G .682(l, subject to the v).25 F .683(alue of the)-.25 F
+F2(pr)3.183 E(omptv)-.18 E(ars)-.1 E F1 .683(shell option \(see the de-)
+3.183 F 1.198(scription of the)108 448.8 R F2(shopt)3.698 E F1 1.198
+(command under)3.698 F F3 1.197(SHELL B)3.697 F(UIL)-.09 E 1.197
+(TIN COMMANDS)-.828 F F1(belo)3.447 E 3.697(w\). This)-.25 F 1.197
+(can ha)3.697 F 1.497 -.15(ve u)-.2 H(nw).15 E(anted)-.1 E .322(side ef)
+108 460.8 R .322(fects if escaped portions of the string appear within \
+command substitution or contain characters spe-)-.25 F(cial to w)108
+472.8 Q(ord e)-.1 E(xpansion.)-.15 E/F4 10.95/Times-Bold@0 SF(READLINE)
+72 489.6 Q F1 .151
+(This is the library that handles reading input when using an interacti)
+108 501.6 R .45 -.15(ve s)-.25 H .15(hell, unless the).15 F F2
+(\255\255noediting)2.65 E F1(option)2.65 E .573(is supplied at shell in)
+108 513.6 R -.2(vo)-.4 G 3.073(cation. Line).2 F .573
+(editing is also used when using the)3.073 F F2<ad65>3.073 E F1 .573
+(option to the)3.073 F F2 -.18(re)3.074 G(ad).18 E F1 -.2(bu)3.074 G
+3.074(iltin. By).2 F(def)108 525.6 Q 1.244(ault, the line editing comma\
+nds are similar to those of emacs; a vi-style line editing interf)-.1 F
+1.243(ace is also)-.1 F -.2(av)108 537.6 S 3.35(ailable. Line)-.05 F .85
(editing can be enabled at an)3.35 F 3.35(yt)-.15 G .85(ime using the)
--3.35 F/F2 10/Times-Bold@0 SF .85(\255o emacs)3.35 F F1(or)3.35 E F2 .85
-(\255o vi)3.35 F F1 .85(options to the)3.35 F F2(set)3.35 E F1 -.2(bu)
-3.35 G(iltin).2 E(\(see)108 108 Q/F3 9/Times-Bold@0 SF .763(SHELL B)
-3.263 F(UIL)-.09 E .763(TIN COMMANDS)-.828 F F1(belo)3.013 E 3.263
-(w\). T)-.25 F 3.263(ot)-.8 G .763(urn of)-3.263 F 3.263(fl)-.25 G .763
+-3.35 F F2 .85(\255o emacs)3.35 F F1(or)3.35 E F2 .85(\255o vi)3.35 F F1
+.85(options to the)3.35 F F2(set)3.35 E F1 -.2(bu)3.35 G(iltin).2 E
+(\(see)108 549.6 Q F3 .763(SHELL B)3.263 F(UIL)-.09 E .763(TIN COMMANDS)
+-.828 F F1(belo)3.013 E 3.263(w\). T)-.25 F 3.263(ot)-.8 G .763(urn of)
+-3.263 F 3.263(fl)-.25 G .763
(ine editing after the shell is running, use the)-3.263 F F2(+o)3.262 E
-(emacs)108 120 Q F1(or)2.5 E F2(+o vi)2.5 E F1(options to the)2.5 E F2
-(set)2.5 E F1 -.2(bu)2.5 G(iltin.).2 E F2(Readline Notation)87 136.8 Q
+(emacs)108 561.6 Q F1(or)2.5 E F2(+o vi)2.5 E F1(options to the)2.5 E F2
+(set)2.5 E F1 -.2(bu)2.5 G(iltin.).2 E F2(Readline Notation)87 578.4 Q
F1 .862(This section uses Emacs-style editing concepts and uses its not\
-ation for k)108 148.8 R -.15(ey)-.1 G(strok).15 E 3.362(es. Control)-.1
-F -.1(ke)3.362 G .862(ys are de-)-.05 F .55(noted by C\255)108 160.8 R
+ation for k)108 590.4 R -.15(ey)-.1 G(strok).15 E 3.362(es. Control)-.1
+F -.1(ke)3.362 G .862(ys are de-)-.05 F .55(noted by C\255)108 602.4 R
F0 -.1(ke)C(y)-.2 E F1 3.05(,e)C .55(.g., C\255n means Control\255N.)
-3.05 F(Similarly)5.55 E(,)-.65 E F0(meta)3.43 E F1 -.1(ke)3.31 G .55
(ys are denoted by M\255)-.05 F F0 -.1(ke)C(y)-.2 E F1 3.05(,s)C 3.05
-(oM)-3.05 G .55(\255x means)-3.05 F 2.5(Meta\255X. The)108 172.8 R
+(oM)-3.05 G .55(\255x means)-3.05 F 2.5(Meta\255X. The)108 614.4 R
(Meta k)2.5 E .3 -.15(ey i)-.1 H 2.5(so).15 G(ften labeled \231)-2.5 E
-(Alt\232 or \231Option\232.)-.8 E .149(On k)108 189.6 R -.15(ey)-.1 G
+(Alt\232 or \231Option\232.)-.8 E .149(On k)108 631.2 R -.15(ey)-.1 G
.149(boards without a).15 F F0(Meta)3.329 E F1 -.1(ke)2.909 G 1.449 -.65
(y, M)-.05 H<ad>.65 E F0(x)A F1 .149(means ESC)2.649 F F0(x)2.649 E F1
2.649(,i)C .15(.e., press and release the Escape k)-2.649 F -.15(ey)-.1
-G 2.65(,t)-.5 G .15(hen press and)-2.65 F 1.217(release the)108 201.6 R
+G 2.65(,t)-.5 G .15(hen press and)-2.65 F 1.217(release the)108 643.2 R
F0(x)4.487 E F1 -.1(ke)4.247 G 2.517 -.65(y, i)-.05 H 3.716(ns).65 G
3.716(equence. This)-3.716 F(mak)3.716 E 1.216(es ESC the)-.1 F F0 1.216
(meta pr)3.716 F(e\214x)-.37 E F1 6.216(.T)C 1.216
(he combination M\255C\255)-6.216 F F0(x)A F1 1.216(means ESC)3.716 F
-(Control\255)108 213.6 Q F0(x)A F1 2.93(:p)C .43
+(Control\255)108 655.2 Q F0(x)A F1 2.93(:p)C .43
(ress and release the Escape k)-2.93 F -.15(ey)-.1 G 2.93(,t)-.5 G .43
(hen press and hold the Control k)-2.93 F .73 -.15(ey w)-.1 H .43
(hile pressing the).15 F F0(x)3.7 E F1 -.1(ke)3.46 G -.65(y,)-.05 G
-(then release both.)108 225.6 Q .217(On some k)108 242.4 R -.15(ey)-.1 G
+(then release both.)108 667.2 Q .217(On some k)108 684 R -.15(ey)-.1 G
.217(boards, the Meta k).15 F .517 -.15(ey m)-.1 H .216
(odi\214er produces characters with the eighth bit \(0200\) set.).15 F
--1.1(Yo)5.216 G 2.716(uc)1.1 G .216(an use)-2.716 F(the)108 254.4 Q F2
+-1.1(Yo)5.216 G 2.716(uc)1.1 G .216(an use)-2.716 F(the)108 696 Q F2
(enable\255meta\255k)3.315 E(ey)-.1 E F1 -.25(va)3.315 G .816
(riable to control whether or not it does this, if the k).25 F -.15(ey)
-.1 G .816(board allo).15 F .816(ws it.)-.25 F .816(On man)5.816 F(y)
--.15 E .568(others, the terminal or terminal emulator con)108 266.4 R
--.15(ve)-.4 G .568(rts the meta\214ed k).15 F .868 -.15(ey t)-.1 H 3.068
+-.15 E .568(others, the terminal or terminal emulator con)108 708 R -.15
+(ve)-.4 G .568(rts the meta\214ed k).15 F .868 -.15(ey t)-.1 H 3.068
(oak).15 G .868 -.15(ey s)-3.168 H .568(equence be).15 F .568
(ginning with ESC)-.15 F(as described in the preceding paragraph.)108
-278.4 Q .029(If your)108 295.2 R F0(Meta)2.529 E F1 -.1(ke)2.529 G 2.529
-(yp)-.05 G .029(roduces a k)-2.529 F .329 -.15(ey s)-.1 H .03
-(equence with the ESC meta pre\214x, you can mak).15 F 2.53(eM)-.1 G(-)
--2.53 E F0 -.1(ke)C(y)-.2 E F1 -.1(ke)2.53 G 2.53(yb)-.05 G .03
-(indings you)-2.53 F(specify \(see)108 307.2 Q F2(Readline K)2.5 E
-(ey Bindings)-.25 E F1(belo)2.5 E(w\) do the same thing by setting the)
--.25 E F2 -.25(fo)2.5 G -.18(rc).25 G(e\255meta\255pr).18 E(e\214x)-.18
-E F1 -.25(va)2.5 G(riable.).25 E F2(Readline)108 324 Q F1 .437
-(commands may be gi)2.937 F -.15(ve)-.25 G 2.937(nn).15 G(umeric)-2.937
-E F0(ar)3.267 E(guments)-.37 E F1 2.936(,w).27 G .436
-(hich normally act as a repeat count.)-2.936 F(Sometimes,)5.436 E(ho)108
-336 Q(we)-.25 E -.15(ve)-.25 G 1.418 -.4(r, i).15 H 3.118(ti).4 G 3.119
-(st)-3.118 G .619(he sign of the ar)-3.119 F .619
+720 Q(GNU Bash 5.3)72 768 Q(2026 January 14)141.79 E(46)190.95 E 0 Cg EP
+%%Page: 47 47
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E .029(If your)108 84 R F0(Meta)2.529 E F1 -.1(ke)
+2.529 G 2.529(yp)-.05 G .029(roduces a k)-2.529 F .329 -.15(ey s)-.1 H
+.03(equence with the ESC meta pre\214x, you can mak).15 F 2.53(eM)-.1 G
+(-)-2.53 E F0 -.1(ke)C(y)-.2 E F1 -.1(ke)2.53 G 2.53(yb)-.05 G .03
+(indings you)-2.53 F(specify \(see)108 96 Q/F2 10/Times-Bold@0 SF
+(Readline K)2.5 E(ey Bindings)-.25 E F1(belo)2.5 E
+(w\) do the same thing by setting the)-.25 E F2 -.25(fo)2.5 G -.18(rc)
+.25 G(e\255meta\255pr).18 E(e\214x)-.18 E F1 -.25(va)2.5 G(riable.).25 E
+F2(Readline)108 112.8 Q F1 .437(commands may be gi)2.937 F -.15(ve)-.25
+G 2.937(nn).15 G(umeric)-2.937 E F0(ar)3.267 E(guments)-.37 E F1 2.936
+(,w).27 G .436(hich normally act as a repeat count.)-2.936 F(Sometimes,)
+5.436 E(ho)108 124.8 Q(we)-.25 E -.15(ve)-.25 G 1.418 -.4(r, i).15 H
+3.118(ti).4 G 3.119(st)-3.118 G .619(he sign of the ar)-3.119 F .619
(gument that is signi\214cant.)-.18 F -.15(Pa)5.619 G .619(ssing a ne)
.15 F -.05(ga)-.15 G(ti).05 E .919 -.15(ve a)-.25 H -.18(rg).15 G .619
-(ument to a command that).18 F .296(acts in the forw)108 348 R .296
+(ument to a command that).18 F .296(acts in the forw)108 136.8 R .296
(ard direction \(e.g.,)-.1 F F2(kill\255line)2.796 E F1 2.796(\)m)C(ak)
-2.796 E .296(es that command act in a backw)-.1 F .296(ard direction.)
--.1 F(Commands)5.296 E(whose beha)108 360 Q(vior with ar)-.2 E
+-.1 F(Commands)5.296 E(whose beha)108 148.8 Q(vior with ar)-.2 E
(guments de)-.18 E(viates from this are noted belo)-.25 E -.65(w.)-.25 G
-(The)108 376.8 Q F0(point)3.245 E F1 .745
+(The)108 165.6 Q F0(point)3.245 E F1 .745
(is the current cursor position, and)3.245 F F0(mark)3.245 E F1 .745
(refers to a sa)3.245 F -.15(ve)-.2 G 3.245(dc).15 G .745
(ursor position.)-3.245 F .745(The te)5.745 F .745(xt between the)-.15 F
-.447(point and mark is referred to as the)108 388.8 R F0 -.37(re)2.947 G
+.447(point and mark is referred to as the)108 177.6 R F0 -.37(re)2.947 G
(gion)-.03 E F1(.)A F2(Readline)5.447 E F1 .447(has the concept of an)
2.947 F F0 .447(active r)2.947 F -.4(eg)-.37 G(ion).4 E F1 2.946(:w)C
-.446(hen the re)-2.946 F(gion)-.15 E .304(is acti)108 400.8 R -.15(ve)
+.446(hen the re)-2.946 F(gion)-.15 E .304(is acti)108 189.6 R -.15(ve)
-.25 G(,).15 E F2 -.18(re)2.804 G(adline).18 E F1 .304
(redisplay highlights the re)2.804 F .305(gion using the v)-.15 F .305
(alue of the)-.25 F F2(acti)2.805 E -.1(ve)-.1 G(-r).1 E
-(egion-start-color)-.18 E F1 -.25(va)2.805 G(riable.).25 E(The)108 412.8
+(egion-start-color)-.18 E F1 -.25(va)2.805 G(riable.).25 E(The)108 201.6
Q F2(enable\255acti)2.759 E -.1(ve)-.1 G<ad72>.1 E(egion)-.18 E F1 -.25
(va)2.759 G .259(riable turns this on and of).25 F 2.759(f. Se)-.25 F
-.15(ve)-.25 G .259(ral commands set the re).15 F .258(gion to acti)-.15
-F -.15(ve)-.25 G 2.758(;t).15 G(hose)-2.758 E(are noted belo)108 424.8 Q
--.65(w.)-.25 G .811(When a command is described as)108 441.6 R F0
+F -.15(ve)-.25 G 2.758(;t).15 G(hose)-2.758 E(are noted belo)108 213.6 Q
+-.65(w.)-.25 G .811(When a command is described as)108 230.4 R F0
(killing)3.311 E F1(te)3.311 E .811(xt, the te)-.15 F .811
(xt deleted is sa)-.15 F -.15(ve)-.2 G 3.311(df).15 G .812
(or possible future retrie)-3.311 F -.25(va)-.25 G 3.312(l\().25 G F0
-(yank-)-3.312 E(ing)108 453.6 Q F1 3.674(\). The)B 1.174(killed te)3.674
+(yank-)-3.312 E(ing)108 242.4 Q F1 3.674(\). The)B 1.174(killed te)3.674
F 1.174(xt is sa)-.15 F -.15(ve)-.2 G 3.674(di).15 G 3.674(na)-3.674 G
F0 1.174(kill ring)B F1 6.174(.C)C(onsecuti)-6.174 E 1.474 -.15(ve k)
-.25 H 1.174(ills accumulate the deleted te).15 F 1.173
-(xt into one unit,)-.15 F .567(which can be yank)108 465.6 R .567
+(xt into one unit,)-.15 F .567(which can be yank)108 254.4 R .567
(ed all at once.)-.1 F .567(Commands which do not kill te)5.567 F .567
(xt separate the chunks of te)-.15 F .567(xt on the kill)-.15 F(ring.)
-108 477.6 Q F2(Readline Initialization)87 494.4 Q(Readline)108 506.4 Q
+108 266.4 Q F2(Readline Initialization)87 283.2 Q(Readline)108 295.2 Q
F1 .913
(is customized by putting commands in an initialization \214le \(the)
3.413 F F0(inputr)3.412 E(c)-.37 E F1 3.412(\214le\). The)3.412 F .912
-(name of this)3.412 F 2.517(\214le is tak)108 518.4 R 2.517
-(en from the v)-.1 F 2.517(alue of the)-.25 F F3(INPUTRC)5.017 E F1
-2.518(shell v)4.767 F 5.018(ariable. If)-.25 F 2.518(that v)5.018 F
-2.518(ariable is unset, the def)-.25 F 2.518(ault is)-.1 F F0
-(\001/.inputr)109.666 530.4 Q(c)-.37 E F1 5.389(.I)1.666 G 2.889(ft)
+(name of this)3.412 F 2.517(\214le is tak)108 307.2 R 2.517
+(en from the v)-.1 F 2.517(alue of the)-.25 F/F3 9/Times-Bold@0 SF
+(INPUTRC)5.017 E F1 2.518(shell v)4.767 F 5.018(ariable. If)-.25 F 2.518
+(that v)5.018 F 2.518(ariable is unset, the def)-.25 F 2.518(ault is)-.1
+F F0(\001/.inputr)109.666 319.2 Q(c)-.37 E F1 5.389(.I)1.666 G 2.889(ft)
-5.389 G .389(hat \214le)-2.889 F .389(does not e)5.389 F .389
(xist or cannot be read,)-.15 F F2 -.18(re)2.888 G(adline).18 E F1 .388
(looks for)2.888 F F0(/etc/inputr)4.554 E(c)-.37 E F1 5.388(.W)1.666 G
-.388(hen a program)-5.388 F .808(that uses the)108 542.4 R F2 -.18(re)
+.388(hen a program)-5.388 F .808(that uses the)108 331.2 R F2 -.18(re)
3.308 G(adline).18 E F1 .809(library starts up,)3.309 F F2 -.18(re)3.309
G(adline).18 E F1 .809(reads the initialization \214le and sets the k)
-3.309 F 1.109 -.15(ey b)-.1 H .809(indings and).15 F -.25(va)108 554.4 S
+3.309 F 1.109 -.15(ey b)-.1 H .809(indings and).15 F -.25(va)108 343.2 S
(riables found there, before reading an).25 E 2.5(yu)-.15 G(ser input.)
--2.5 E .34(There are only a fe)108 571.2 R 2.84(wb)-.25 G .34
+-2.5 E .34(There are only a fe)108 360 R 2.84(wb)-.25 G .34
(asic constructs allo)-2.84 F .34(wed in the inputrc \214le.)-.25 F .34
(Blank lines are ignored.)5.34 F .34(Lines be)5.34 F(ginning)-.15 E .778
-(with a)108 583.2 R F2(#)3.278 E F1 .778(are comments.)3.278 F .778
+(with a)108 372 R F2(#)3.278 E F1 .778(are comments.)3.278 F .778
(Lines be)5.778 F .778(ginning with a)-.15 F F2($)3.278 E F1 .778
(indicate conditional constructs.)3.278 F .779(Other lines denote k)
-5.778 F -.15(ey)-.1 G(bindings and v)108 595.2 Q(ariable settings.)-.25
-E .775(The def)108 612 R .775(ault k)-.1 F -.15(ey)-.1 G .775
+5.778 F -.15(ey)-.1 G(bindings and v)108 384 Q(ariable settings.)-.25 E
+.775(The def)108 400.8 R .775(ault k)-.1 F -.15(ey)-.1 G .775
(-bindings in this section may be changed using k).15 F 1.075 -.15(ey b)
-.1 H .775(inding commands in the).15 F F0(inputr)3.285 E(c)-.37 E F1
-(\214le.)3.585 E(Programs that use the)108 624 Q F2 -.18(re)2.5 G
+(\214le.)3.585 E(Programs that use the)108 412.8 Q F2 -.18(re)2.5 G
(adline).18 E F1(library)2.5 E 2.5(,i)-.65 G(ncluding)-2.5 E F2(bash)2.5
E F1 2.5(,m)C(ay add their o)-2.5 E(wn commands and bindings.)-.25 E
--.15(Fo)108 640.8 S 2.5(re).15 G(xample, placing)-2.65 E
-(M\255Control\255u: uni)144 657.6 Q -.15(ve)-.25 G(rsal\255ar).15 E
-(gument)-.18 E(or)108 669.6 Q(C\255Meta\255u: uni)144 681.6 Q -.15(ve)
--.25 G(rsal\255ar).15 E(gument)-.18 E(into the)108 698.4 Q F0(inputr)
+-.15(Fo)108 429.6 S 2.5(re).15 G(xample, placing)-2.65 E
+(M\255Control\255u: uni)144 446.4 Q -.15(ve)-.25 G(rsal\255ar).15 E
+(gument)-.18 E(or)108 458.4 Q(C\255Meta\255u: uni)144 470.4 Q -.15(ve)
+-.25 G(rsal\255ar).15 E(gument)-.18 E(into the)108 487.2 Q F0(inputr)
2.51 E(c)-.37 E F1 -.1(wo)2.81 G(uld mak).1 E 2.5(eM)-.1 G(\255C\255u e)
-2.5 E -.15(xe)-.15 G(cute the).15 E F2 -.18(re)2.5 G(adline).18 E F1
(command)2.5 E F0(univer)2.58 E(sal\255ar)-.1 E(gument)-.37 E F1(.).68 E
--2.15 -.25(Ke y)108 715.2 T 1.442(bindings may contain the follo)4.192 F
+-2.15 -.25(Ke y)108 504 T 1.442(bindings may contain the follo)4.192 F
1.442(wing symbolic character names:)-.25 F F0(DEL)4.522 E F1(,).53 E F0
(ESC)4.453 E F1(,).72 E F0(ESCAPE)4.453 E F1(,).73 E F0(LFD)4.523 E F1
-(,).28 E F0(NEW)4.643 E(-)-.37 E(LINE)108 727.2 Q F1(,).73 E F0(RET)3.13
-E F1(,)1.27 E F0(RETURN)3.13 E F1(,)1.1 E F0 -.4(RU)2.5 G(BOUT).4 E F1
+(,).28 E F0(NEW)4.643 E(-)-.37 E(LINE)108 516 Q F1(,).73 E F0(RET)3.13 E
+F1(,)1.27 E F0(RETURN)3.13 E F1(,)1.1 E F0 -.4(RU)2.5 G(BOUT).4 E F1
(\(a destructi)3.77 E .3 -.15(ve b)-.25 H(ackspace\),).15 E F0(SP)2.83 E
-.3(AC)-.9 G(E).3 E F1(,).73 E F0(SPC)2.83 E F1 2.5(,a).72 G(nd)-2.5 E
-F0 -.5(TA)2.5 G(B).5 E F1(.).27 E(GNU Bash 5.3)72 768 Q(2025 April 7)
-149.285 E(46)198.445 E 0 Cg EP
-%%Page: 47 47
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E .079(In addition to command names,)108 84 R/F2 10
-/Times-Bold@0 SF -.18(re)2.579 G(adline).18 E F1(allo)2.579 E .079(ws k)
--.25 F -.15(ey)-.1 G 2.579(st).15 G 2.579(ob)-2.579 G 2.579(eb)-2.579 G
-.078(ound to a string that is inserted when the k)-2.579 F .378 -.15
-(ey i)-.1 H(s).15 E .192(pressed \(a)108 96 R F0(macr)2.692 E(o)-.45 E
-F1 2.692(\). The)B(dif)2.692 E .192(ference between a macro and a comma\
-nd is that a macro is enclosed in single or)-.25 F(double quotes.)108
-108 Q F2(Readline K)87 124.8 Q(ey Bindings)-.25 E F1 .366
-(The syntax for controlling k)108 136.8 R .666 -.15(ey b)-.1 H .366
+F0 -.5(TA)2.5 G(B).5 E F1(.).27 E .079(In addition to command names,)108
+532.8 R F2 -.18(re)2.579 G(adline).18 E F1(allo)2.579 E .079(ws k)-.25 F
+-.15(ey)-.1 G 2.579(st).15 G 2.579(ob)-2.579 G 2.579(eb)-2.579 G .078
+(ound to a string that is inserted when the k)-2.579 F .378 -.15(ey i)
+-.1 H(s).15 E .192(pressed \(a)108 544.8 R F0(macr)2.692 E(o)-.45 E F1
+2.692(\). The)B(dif)2.692 E .192(ference between a macro and a command \
+is that a macro is enclosed in single or)-.25 F(double quotes.)108 556.8
+Q F2(Readline K)87 573.6 Q(ey Bindings)-.25 E F1 .366
+(The syntax for controlling k)108 585.6 R .666 -.15(ey b)-.1 H .366
(indings in the).15 F F0(inputr)2.876 E(c)-.37 E F1 .366
(\214le is simple.)3.176 F .366(All that is required is the name of the)
-5.366 F .011(command or the te)108 148.8 R .011(xt of a macro and a k)
+5.366 F .011(command or the te)108 597.6 R .011(xt of a macro and a k)
-.15 F .311 -.15(ey s)-.1 H .012(equence to which it should be bound.)
.15 F .012(The k)5.012 F .312 -.15(ey s)-.1 H .012(equence may be).15 F
-.695(speci\214ed in one of tw)108 160.8 R 3.195(ow)-.1 G .695
+.695(speci\214ed in one of tw)108 609.6 R 3.195(ow)-.1 G .695
(ays: as a symbolic k)-3.295 F .995 -.15(ey n)-.1 H .695
(ame, possibly with).15 F F0(Meta\255)3.195 E F1(or)3.195 E F0(Contr)
3.194 E(ol\255)-.45 E F1(pre\214x)3.194 E .694(es, or as a)-.15 F -.1
-(ke)108 172.8 S 2.802(ys)-.05 G .302
+(ke)108 621.6 S 2.802(ys)-.05 G .302
(equence composed of one or more characters enclosed in double quotes.)
-2.802 F .303(The k)5.303 F .603 -.15(ey s)-.1 H .303(equence and name)
-.15 F(are separated by a colon.)108 184.8 Q
+.15 F(are separated by a colon.)108 633.6 Q
(There can be no whitespace between the name and the colon.)5 E .161
-(When using the form)108 201.6 R F2 -.1(ke)2.661 G(yname).1 E F1(:)A F0
+(When using the form)108 650.4 R F2 -.1(ke)2.661 G(yname).1 E F1(:)A F0
(function\255name).833 E F1(or)2.661 E F0(macr)2.661 E(o)-.45 E F1(,)A
F0 -.1(ke)2.661 G(yname)-.2 E F1 .16(is the name of a k)2.84 F .46 -.15
-(ey s)-.1 H .16(pelled out in Eng-).15 F 2.5(lish. F)108 213.6 R(or e)
--.15 E(xample:)-.15 E/F3 10/Courier@0 SF
-(Control-u: universal\255argument)144 230.4 Q
-(Meta-Rubout: backward\255kill\255word)144 242.4 Q
-(Control-o: "> output")144 254.4 Q F1 .698(In the abo)108 271.2 R .998
--.15(ve ex)-.15 H(ample,).15 E F0(C\255u)3.038 E F1 .698
-(is bound to the function)3.448 F F2(uni)3.198 E -.1(ve)-.1 G
-(rsal\255ar).1 E(gument)-.1 E F1(,)A F0(M\255DEL)3.878 E F1 .698
-(is bound to the func-)3.728 F(tion)108 283.2 Q F2
-(backward\255kill\255w)2.759 E(ord)-.1 E F1 2.759(,a)C(nd)-2.759 E F0
-(C\255o)2.599 E F1 .258(is bound to run the macro e)2.939 F .258
-(xpressed on the right hand side \(that is, to)-.15 F(insert the te)108
-295.2 Q(xt \231> output\232 into the line\).)-.15 E .055
-(In the second form,)108 312 R F2("k)2.555 E(eyseq")-.1 E F1(:)A F0
+(ey s)-.1 H .16(pelled out in Eng-).15 F 2.5(lish. F)108 662.4 R(or e)
+-.15 E(xample:)-.15 E/F4 10/Courier@0 SF
+(Control-u: universal\255argument)144 679.2 Q
+(Meta-Rubout: backward\255kill\255word)144 691.2 Q
+(Control-o: "> output")144 703.2 Q F1 2.318(In the abo)108 720 R 2.618
+-.15(ve ex)-.15 H(ample,).15 E F0(C\255u)4.658 E F1 2.318
+(is bound to the function)5.068 F F2(uni)4.818 E -.1(ve)-.1 G
+(rsal\255ar).1 E(gument)-.1 E F1(,)A F0(M\255DEL)5.498 E F1 2.318
+(is bound to the)5.348 F(GNU Bash 5.3)72 768 Q(2026 January 14)141.79 E
+(47)190.95 E 0 Cg EP
+%%Page: 48 48
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E(function)108 84 Q/F2 10/Times-Bold@0 SF
+(backward\255kill\255w)3.052 E(ord)-.1 E F1 3.052(,a)C(nd)-3.052 E F0
+(C\255o)2.892 E F1 .552(is bound to run the macro e)3.232 F .552
+(xpressed on the right hand side \(that)-.15 F(is, to insert the te)108
+96 Q(xt \231> output\232 into the line\).)-.15 E .055
+(In the second form,)108 112.8 R F2("k)2.555 E(eyseq")-.1 E F1(:)A F0
(function\255name).833 E F1(or)2.555 E F0(macr)2.555 E(o)-.45 E F1(,)A
F2 -.1(ke)2.555 G(yseq).1 E F1(dif)2.556 E .056(fers from)-.25 F F2 -.1
(ke)2.556 G(yname).1 E F1(abo)2.556 E .356 -.15(ve i)-.15 H 2.556(nt).15
-G .056(hat strings)-2.556 F 1.284(denoting an entire k)108 324 R 1.584
+G .056(hat strings)-2.556 F 1.284(denoting an entire k)108 124.8 R 1.584
-.15(ey s)-.1 H 1.284(equence may be speci\214ed by placing the sequenc\
e within double quotes.).15 F(Some)6.284 E .101(GNU Emacs style k)108
-336 R .401 -.15(ey e)-.1 H .102(scapes can be used, as in the follo).15
-F .102(wing e)-.25 F .102(xample, b)-.15 F .102
-(ut none of the symbolic character)-.2 F(names are recognized.)108 348 Q
-F3("\\C\255u": universal\255argument)144 364.8 Q
-("\\C\255x\\C\255r": re\255read\255init\255file)144 376.8 Q
-("\\e[11\001": "Function Key 1")144 388.8 Q F1 .315(In this e)108 405.6
+136.8 R .401 -.15(ey e)-.1 H .102(scapes can be used, as in the follo)
+.15 F .102(wing e)-.25 F .102(xample, b)-.15 F .102
+(ut none of the symbolic character)-.2 F(names are recognized.)108 148.8
+Q/F3 10/Courier@0 SF("\\C\255u": universal\255argument)144 165.6 Q
+("\\C\255x\\C\255r": re\255read\255init\255file)144 177.6 Q
+("\\e[11\001": "Function Key 1")144 189.6 Q F1 .315(In this e)108 206.4
R(xample,)-.15 E F0(C\255u)2.655 E F1 .315(is ag)3.065 F .315
(ain bound to the function)-.05 F F2(uni)2.815 E -.1(ve)-.1 G
(rsal\255ar).1 E(gument)-.1 E F1(.)A F0 .315(C\255x C\255r)5.155 F F1
-.314(is bound to the func-)3.544 F(tion)108 417.6 Q F2 -.18(re)2.5 G
+.314(is bound to the func-)3.544 F(tion)108 218.4 Q F2 -.18(re)2.5 G
<ad72>.18 E(ead\255init\255\214le)-.18 E F1 2.5(,a)C(nd)-2.5 E F0
(ESC [ 1 1 \001)3.01 E F1(is bound to insert the te)2.61 E
(xt \231Function K)-.15 E .3 -.15(ey 1)-.25 H<9a2e>.15 E
-(The full set of GNU Emacs style escape sequences a)108 434.4 Q -.25(va)
+(The full set of GNU Emacs style escape sequences a)108 235.2 Q -.25(va)
-.2 G(ilable when specifying k).25 E .3 -.15(ey s)-.1 H(equences is).15
-E F2<5c43ad>144 446.4 Q F1 2.5(Ac)180 446.4 S(ontrol pre\214x.)-2.5 E F2
-<5c4dad>144 458.4 Q F1 .747(Adding the meta pre\214x or con)180 458.4 R
+E F2<5c43ad>144 247.2 Q F1 2.5(Ac)180 247.2 S(ontrol pre\214x.)-2.5 E F2
+<5c4dad>144 259.2 Q F1 .747(Adding the meta pre\214x or con)180 259.2 R
-.15(ve)-.4 G .747(rting the follo).15 F .747
(wing character to a meta character)-.25 F 3.248(,a)-.4 G 3.248(sd)
--3.248 G(e-)-3.248 E(scribed belo)180 470.4 Q 2.5(wu)-.25 G(nder)-2.5 E
+-3.248 G(e-)-3.248 E(scribed belo)180 271.2 Q 2.5(wu)-.25 G(nder)-2.5 E
F2 -.25(fo)2.5 G -.18(rc).25 G(e-meta-pr).18 E(e\214x)-.18 E F1(.)A F2
-(\\e)144 482.4 Q F1(An escape character)180 482.4 Q(.)-.55 E F2(\\\\)144
-494.4 Q F1(Backslash.)180 494.4 Q F2(\\")144 506.4 Q F1
-(Literal ", a double quote.)180 506.4 Q F2<5c08>144 518.4 Q F1
-(Literal \010, a single quote.)180 518.4 Q(In addition to the GNU Emacs\
- style escape sequences, a second set of backslash escapes is a)108
-535.2 Q -.25(va)-.2 G(ilable:).25 E F2(\\a)144 547.2 Q F1
-(alert \(bell\))180 547.2 Q F2(\\b)144 559.2 Q F1(backspace)180 559.2 Q
-F2(\\d)144 571.2 Q F1(delete)180 571.2 Q F2(\\f)144 583.2 Q F1
-(form feed)180 583.2 Q F2(\\n)144 595.2 Q F1(ne)180 595.2 Q(wline)-.25 E
-F2(\\r)144 607.2 Q F1(carriage return)180 607.2 Q F2(\\t)144 619.2 Q F1
-(horizontal tab)180 619.2 Q F2(\\v)144 631.2 Q F1 -.15(ve)180 631.2 S
-(rtical tab).15 E F2(\\)144 643.2 Q F0(nnn)A F1
-(The eight-bit character whose v)180 643.2 Q(alue is the octal v)-.25 E
+(\\e)144 283.2 Q F1(An escape character)180 283.2 Q(.)-.55 E F2(\\\\)144
+295.2 Q F1(Backslash.)180 295.2 Q F2(\\")144 307.2 Q F1
+(Literal ", a double quote.)180 307.2 Q F2<5c08>144 319.2 Q F1
+(Literal \010, a single quote.)180 319.2 Q(In addition to the GNU Emacs\
+ style escape sequences, a second set of backslash escapes is a)108 336
+Q -.25(va)-.2 G(ilable:).25 E F2(\\a)144 348 Q F1(alert \(bell\))180 348
+Q F2(\\b)144 360 Q F1(backspace)180 360 Q F2(\\d)144 372 Q F1(delete)180
+372 Q F2(\\f)144 384 Q F1(form feed)180 384 Q F2(\\n)144 396 Q F1(ne)180
+396 Q(wline)-.25 E F2(\\r)144 408 Q F1(carriage return)180 408 Q F2(\\t)
+144 420 Q F1(horizontal tab)180 420 Q F2(\\v)144 432 Q F1 -.15(ve)180
+432 S(rtical tab).15 E F2(\\)144 444 Q F0(nnn)A F1
+(The eight-bit character whose v)180 444 Q(alue is the octal v)-.25 E
(alue)-.25 E F0(nnn)2.5 E F1(\(one to three digits\).)2.5 E F2(\\x)144
-655.2 Q F0(HH)A F1(The eight-bit character whose v)180 655.2 Q
+456 Q F0(HH)A F1(The eight-bit character whose v)180 456 Q
(alue is the he)-.25 E(xadecimal v)-.15 E(alue)-.25 E F0(HH)2.5 E F1
(\(one or tw)2.5 E 2.5(oh)-.1 G .3 -.15(ex d)-2.5 H(igits\).).15 E 1.142
-(When entering the te)108 672 R 1.141(xt of a macro, single or double q\
-uotes must be used to indicate a macro de\214nition.)-.15 F .62
-(Unquoted te)108 684 R .62(xt is assumed to be a function name.)-.15 F
+(When entering the te)108 472.8 R 1.141(xt of a macro, single or double\
+ quotes must be used to indicate a macro de\214nition.)-.15 F .62
+(Unquoted te)108 484.8 R .62(xt is assumed to be a function name.)-.15 F
.62(The backslash escapes described abo)5.62 F .92 -.15(ve a)-.15 H .62
-(re e).15 F .62(xpanded in)-.15 F(the macro body)108 696 Q 5(.B)-.65 G
+(re e).15 F .62(xpanded in)-.15 F(the macro body)108 496.8 Q 5(.B)-.65 G
(ackslash quotes an)-5 E 2.5(yo)-.15 G(ther character in the macro te)
--2.5 E(xt, including " and \010.)-.15 E F2(Bash)108 712.8 Q F1 1.197
+-2.5 E(xt, including " and \010.)-.15 E F2(Bash)108 513.6 Q F1 1.197
(will display or modify the current)3.697 F F2 -.18(re)3.696 G(adline)
.18 E F1 -.1(ke)3.696 G 3.696(yb)-.05 G 1.196(indings with the)-3.696 F
F2(bind)3.696 E F1 -.2(bu)3.696 G 1.196(iltin command.).2 F(The)6.196 E
-F2<ad6f>3.696 E(emacs)108 724.8 Q F1(or)3.673 E F2 1.173(\255o vi)3.673
+F2<ad6f>3.696 E(emacs)108 525.6 Q F1(or)3.673 E F2 1.173(\255o vi)3.673
F F1 1.173(options to the)3.673 F F2(set)3.673 E F1 -.2(bu)3.673 G 1.174
(iltin \(see).2 F/F4 9/Times-Bold@0 SF 1.174(SHELL B)3.674 F(UIL)-.09 E
1.174(TIN COMMANDS)-.828 F F1(belo)3.424 E 1.174(w\) change the editing)
--.25 F(GNU Bash 5.3)72 768 Q(2025 April 7)149.285 E(47)198.445 E 0 Cg EP
-%%Page: 48 48
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E(mode during interacti)108 84 Q .3 -.15(ve u)-.25 H
-(se.).15 E/F2 10/Times-Bold@0 SF(Readline V)87 100.8 Q(ariables)-.92 E
-(Readline)108 112.8 Q F1 .453(has v)2.953 F .452
+-.25 F(mode during interacti)108 537.6 Q .3 -.15(ve u)-.25 H(se.).15 E
+F2(Readline V)87 554.4 Q(ariables)-.92 E(Readline)108 566.4 Q F1 .453
+(has v)2.953 F .452
(ariables that can be used to further customize its beha)-.25 F(vior)-.2
E 5.452(.A)-.55 G -.25(va)-2.5 G .452(riable may be set in the).25 F F0
-(in-)2.962 E(putr)108 124.8 Q(c)-.37 E F1
-(\214le with a statement of the form)2.81 E F2(set)144 141.6 Q F0
-(variable\255name value)2.5 E F1(or using the)108 153.6 Q F2(bind)2.5 E
-F1 -.2(bu)2.5 G(iltin command \(see).2 E/F3 9/Times-Bold@0 SF(SHELL B)
-2.5 E(UIL)-.09 E(TIN COMMANDS)-.828 E F1(belo)2.25 E(w\).)-.25 E .626
-(Except where noted,)108 170.4 R F2 -.18(re)3.127 G(adline).18 E F1 -.25
+(in-)2.962 E(putr)108 578.4 Q(c)-.37 E F1
+(\214le with a statement of the form)2.81 E F2(set)144 595.2 Q F0
+(variable\255name value)2.5 E F1(or using the)108 612 Q F2(bind)2.5 E F1
+-.2(bu)2.5 G(iltin command \(see).2 E F4(SHELL B)2.5 E(UIL)-.09 E
+(TIN COMMANDS)-.828 E F1(belo)2.25 E(w\).)-.25 E .626
+(Except where noted,)108 628.8 R F2 -.18(re)3.127 G(adline).18 E F1 -.25
(va)3.127 G .627(riables can tak).25 F 3.127(et)-.1 G .627(he v)-3.127 F
(alues)-.25 E F2(On)3.127 E F1(or)3.127 E F2(Off)3.127 E F1 .627
(\(without re)3.127 F -.05(ga)-.15 G .627(rd to case\).).05 F(Unrecog-)
-5.627 E .345(nized v)108 182.4 R .345(ariable names are ignored.)-.25 F
+5.627 E .345(nized v)108 640.8 R .345(ariable names are ignored.)-.25 F
(When)5.345 E F2 -.18(re)2.845 G(adline).18 E F1 .345(reads a v)2.845 F
.345(ariable v)-.25 F .345(alue, empty or null v)-.25 F .345
-(alues, \231on\232 \(case-)-.25 F(insensiti)108 194.4 Q -.15(ve)-.25 G
+(alues, \231on\232 \(case-)-.25 F(insensiti)108 652.8 Q -.15(ve)-.25 G
(\), and \2311\232 are equi).15 E -.25(va)-.25 G(lent to).25 E F2(On)2.5
E F1 5(.A)C(ll other v)-5 E(alues are equi)-.25 E -.25(va)-.25 G
-(lent to).25 E F2(Off)2.5 E F1(.)A(The)108 211.2 Q F2 .713(bind \255V)
+(lent to).25 E F2(Off)2.5 E F1(.)A(The)108 669.6 Q F2 .713(bind \255V)
3.213 F F1 .713(command lists the current)3.213 F F2 -.18(re)3.213 G
(adline).18 E F1 -.25(va)3.214 G .714(riable names and v).25 F .714
-(alues \(see)-.25 F F3 .714(SHELL B)3.214 F(UIL)-.09 E .714(TIN COM-)
--.828 F(MANDS)108 223.2 Q F1(belo)2.25 E(w\).)-.25 E(The v)108 240 Q
-(ariables and their def)-.25 E(ault v)-.1 E(alues are:)-.25 E F2(acti)
-108 256.8 Q -.1(ve)-.1 G<ad72>.1 E(egion\255start\255color)-.18 E F1
-2.73(As)144 268.8 S .23(tring v)-2.73 F .23
-(ariable that controls the te)-.25 F .229
+(alues \(see)-.25 F F4 .714(SHELL B)3.214 F(UIL)-.09 E .714(TIN COM-)
+-.828 F(MANDS)108 681.6 Q F1(belo)2.25 E(w\).)-.25 E(The v)108 698.4 Q
+(ariables and their def)-.25 E(ault v)-.1 E(alues are:)-.25 E
+(GNU Bash 5.3)72 768 Q(2026 January 14)141.79 E(48)190.95 E 0 Cg EP
+%%Page: 49 49
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(acti)108 84 Q -.1(ve)-.1 G
+<ad72>.1 E(egion\255start\255color)-.18 E F1 2.73(As)144 96 S .23
+(tring v)-2.73 F .23(ariable that controls the te)-.25 F .229
(xt color and background when displaying the te)-.15 F .229
-(xt in the acti)-.15 F -.15(ve)-.25 G(re)144 280.8 Q 1.526
+(xt in the acti)-.15 F -.15(ve)-.25 G(re)144 108 Q 1.526
(gion \(see the description of)-.15 F F2(enable\255acti)4.026 E -.1(ve)
-.1 G<ad72>.1 E(egion)-.18 E F1(belo)4.026 E 4.026(w\). This)-.25 F
1.526(string must not tak)4.026 F 4.027(eu)-.1 G 4.027(pa)-4.027 G -.15
-(ny)-4.027 G(ph)144 292.8 Q .284
+(ny)-4.027 G(ph)144 120 Q .284
(ysical character positions on the display)-.05 F 2.784(,s)-.65 G 2.784
(oi)-2.784 G 2.784(ts)-2.784 G .283
(hould consist only of terminal escape sequences.)-2.784 F .45
-(It is output to the terminal before displaying the te)144 304.8 R .45
+(It is output to the terminal before displaying the te)144 132 R .45
(xt in the acti)-.15 F .75 -.15(ve r)-.25 H -.15(eg).15 G 2.95
(ion. This).15 F -.25(va)2.95 G .45(riable is reset to).25 F .379
-(the def)144 316.8 R .379(ault v)-.1 F .379(alue whene)-.25 F -.15(ve)
--.25 G 2.879(rt).15 G .379(he terminal type changes.)-2.879 F .379
-(The def)5.379 F .379(ault v)-.1 F .378
-(alue is the string that puts the)-.25 F .654
-(terminal in standout mode, as obtained from the terminal')144 328.8 R
+(the def)144 144 R .379(ault v)-.1 F .379(alue whene)-.25 F -.15(ve)-.25
+G 2.879(rt).15 G .379(he terminal type changes.)-2.879 F .379(The def)
+5.379 F .379(ault v)-.1 F .378(alue is the string that puts the)-.25 F
+.654(terminal in standout mode, as obtained from the terminal')144 156 R
3.155(st)-.55 G .655(erminfo description.)-3.155 F 3.155(As)5.655 G .655
-(ample v)-3.155 F(alue)-.25 E(might be \231\\e[01;33m\232.)144 340.8 Q
-F2(acti)108 352.8 Q -.1(ve)-.1 G<ad72>.1 E(egion\255end\255color)-.18 E
-F1 3.778(As)144 364.8 S 1.278(tring v)-3.778 F 1.277
+(ample v)-3.155 F(alue)-.25 E(might be \231\\e[01;33m\232.)144 168 Q F2
+(acti)108 180 Q -.1(ve)-.1 G<ad72>.1 E(egion\255end\255color)-.18 E F1
+3.778(As)144 192 S 1.278(tring v)-3.778 F 1.277
(ariable that \231undoes\232 the ef)-.25 F 1.277(fects of)-.25 F F2
(acti)3.777 E -.1(ve)-.1 G<ad72>.1 E(egion\255start\255color)-.18 E F1
1.277(and restores \231normal\232)3.777 F .216
-(terminal display appearance after displaying te)144 376.8 R .216
+(terminal display appearance after displaying te)144 204 R .216
(xt in the acti)-.15 F .516 -.15(ve r)-.25 H -.15(eg).15 G 2.716
(ion. This).15 F .216(string must not tak)2.716 F 2.716(eu)-.1 G(p)
--2.716 E(an)144 388.8 Q 3.738(yp)-.15 G -.05(hy)-3.738 G 1.238
+-2.716 E(an)144 216 Q 3.738(yp)-.15 G -.05(hy)-3.738 G 1.238
(sical character positions on the display).05 F 3.737(,s)-.65 G 3.737
(oi)-3.737 G 3.737(ts)-3.737 G 1.237
(hould consist only of terminal escape se-)-3.737 F 2.927(quences. It)
-144 400.8 R .427(is output to the terminal after displaying the te)2.927
-F .428(xt in the acti)-.15 F .728 -.15(ve r)-.25 H -.15(eg).15 G 2.928
+144 228 R .427(is output to the terminal after displaying the te)2.927 F
+.428(xt in the acti)-.15 F .728 -.15(ve r)-.25 H -.15(eg).15 G 2.928
(ion. This).15 F -.25(va)2.928 G .428(riable is).25 F .519
-(reset to the def)144 412.8 R .518(ault v)-.1 F .518(alue whene)-.25 F
+(reset to the def)144 240 R .518(ault v)-.1 F .518(alue whene)-.25 F
-.15(ve)-.25 G 3.018(rt).15 G .518(he terminal type changes.)-3.018 F
.518(The def)5.518 F .518(ault v)-.1 F .518(alue is the string that)-.25
F .251(restores the terminal from standout mode, as obtained from the t\
-erminal')144 424.8 R 2.752(st)-.55 G .252(erminfo description.)-2.752 F
-(A)5.252 E(sample v)144 436.8 Q(alue might be \231\\e[0m\232.)-.25 E F2
-(bell\255style \(audible\))108 448.8 Q F1 1.284
-(Controls what happens when)144 460.8 R F2 -.18(re)3.784 G(adline).18 E
-F1 -.1(wa)3.784 G 1.284(nts to ring the terminal bell.).1 F 1.284
+erminal')144 252 R 2.752(st)-.55 G .252(erminfo description.)-2.752 F(A)
+5.252 E(sample v)144 264 Q(alue might be \231\\e[0m\232.)-.25 E F2
+(bell\255style \(audible\))108 276 Q F1 1.284
+(Controls what happens when)144 288 R F2 -.18(re)3.784 G(adline).18 E F1
+-.1(wa)3.784 G 1.284(nts to ring the terminal bell.).1 F 1.284
(If set to)6.284 F F2(none)3.784 E F1(,)A F2 -.18(re)3.784 G(adline).18
-E F1(ne)144 472.8 Q -.15(ve)-.25 G 2.644(rr).15 G .144(ings the bell.)
+E F1(ne)144 300 Q -.15(ve)-.25 G 2.644(rr).15 G .144(ings the bell.)
-2.644 F .144(If set to)5.144 F F2(visible)2.644 E F1(,)A F2 -.18(re)
2.644 G(adline).18 E F1 .145(uses a visible bell if one is a)2.644 F
-.25(va)-.2 G 2.645(ilable. If).25 F .145(set to)2.645 F F2(audi-)2.645
-E(ble)144 484.8 Q F1(,)A F2 -.18(re)2.5 G(adline).18 E F1
+E(ble)144 312 Q F1(,)A F2 -.18(re)2.5 G(adline).18 E F1
(attempts to ring the terminal')2.5 E 2.5(sb)-.55 G(ell.)-2.5 E F2
-(bind\255tty\255special\255chars \(On\))108 496.8 Q F1 .516(If set to)
-144 508.8 R F2(On)3.016 E F1(,)A F2 -.18(re)3.016 G(adline).18 E F1 .516
-(attempts to bind the control characters that are treated specially by \
-the k)3.016 F(er)-.1 E(-)-.2 E(nel')144 520.8 Q 3.605(st)-.55 G 1.105
+(bind\255tty\255special\255chars \(On\))108 324 Q F1 .516(If set to)144
+336 R F2(On)3.016 E F1(,)A F2 -.18(re)3.016 G(adline).18 E F1 .516(atte\
+mpts to bind the control characters that are treated specially by the k)
+3.016 F(er)-.1 E(-)-.2 E(nel')144 348 Q 3.605(st)-.55 G 1.105
(erminal dri)-3.605 F -.15(ve)-.25 G 3.605(rt).15 G 3.605(ot)-3.605 G
(heir)-3.605 E F2 -.18(re)3.605 G(adline).18 E F1(equi)3.605 E -.25(va)
-.25 G 3.605(lents. These).25 F -.15(ove)3.605 G 1.105(rride the def).15
F(ault)-.1 E F2 -.18(re)3.605 G(adline).18 E F1(bindings)3.605 E .859
-(described here.)144 532.8 R -.8(Ty)5.859 G .859
+(described here.)144 360 R -.8(Ty)5.859 G .859
(pe \231stty \255a\232 at a).8 F F2(bash)3.359 E F1 .858
-(prompt to see your current terminal settings, including)3.359 F
-(the special control characters \(usually)144 544.8 Q F2(cchars)2.5 E F1
-(\).)A F2(blink\255matching\255par)108 556.8 Q(en \(Off\))-.18 E F1 .056
-(If set to)144 568.8 R F2(On)2.556 E F1(,)A F2 -.18(re)2.556 G(adline)
-.18 E F1 .056(attempts to brie\215y mo)2.556 F .356 -.15(ve t)-.15 H
-.057(he cursor to an opening parenthesis when a closing).15 F
-(parenthesis is inserted.)144 580.8 Q F2(color)108 592.8 Q
-(ed\255completion\255pr)-.18 E(e\214x \(Off\))-.18 E F1 .352(If set to)
-144 604.8 R F2(On)2.852 E F1 2.852(,w)C .352(hen listing completions,)
+(prompt to see your current terminal settings, including)3.359 F .434
+(the special control characters \(usually)144 372 R F2(cchars)2.934 E F1
+2.934(\). This)B .434(binding tak)2.934 F .435(es place on each call to)
+-.1 F F2 -.18(re)2.935 G(adline).18 E F1(,)A
+(so changes made by \231stty\232 can tak)144 384 Q 2.5(ee)-.1 G -.25(ff)
+-2.5 G(ect.).25 E F2(blink\255matching\255par)108 396 Q(en \(Off\))-.18
+E F1 .057(If set to)144 408 R F2(On)2.557 E F1(,)A F2 -.18(re)2.557 G
+(adline).18 E F1 .057(attempts to brie\215y mo)2.557 F .356 -.15(ve t)
+-.15 H .056(he cursor to an opening parenthesis when a closing).15 F
+(parenthesis is inserted.)144 420 Q F2(color)108 432 Q
+(ed\255completion\255pr)-.18 E(e\214x \(Off\))-.18 E F1 .351(If set to)
+144 444 R F2(On)2.852 E F1 2.852(,w)C .352(hen listing completions,)
-2.852 F F2 -.18(re)2.852 G(adline).18 E F1 .352
-(displays the common pre\214x of the set of possible)2.852 F 2.935
-(completions using a dif)144 616.8 R 2.935(ferent color)-.25 F 7.936(.T)
--.55 G 2.936(he color de\214nitions are tak)-7.936 F 2.936
-(en from the v)-.1 F 2.936(alue of the)-.25 F F2(LS_COLORS)144 628.8 Q
-F1(en)3.077 E .577(vironment v)-.4 F 3.077(ariable. If)-.25 F .577
+(displays the common pre\214x of the set of possible)2.852 F 2.936
+(completions using a dif)144 456 R 2.936(ferent color)-.25 F 7.936(.T)
+-.55 G 2.936(he color de\214nitions are tak)-7.936 F 2.935
+(en from the v)-.1 F 2.935(alue of the)-.25 F F2(LS_COLORS)144 468 Q F1
+(en)3.076 E .577(vironment v)-.4 F 3.077(ariable. If)-.25 F .577
(there is a color de\214nition in)3.077 F F2($LS_COLORS)3.077 E F1 .577
-(for the cus-)3.077 F .926(tom suf)144 640.8 R .926
+(for the cus-)3.077 F .926(tom suf)144 480 R .926
(\214x \231.readline-colored-completion-pre\214x\232,)-.25 F F2 -.18(re)
3.426 G(adline).18 E F1 .926(uses this color for the common pre\214x)
-3.426 F(instead of its def)144 652.8 Q(ault.)-.1 E F2(color)108 664.8 Q
-(ed\255stats \(Off\))-.18 E F1 1.393(If set to)144 676.8 R F2(On)3.893 E
+3.426 F(instead of its def)144 492 Q(ault.)-.1 E F2(color)108 504 Q
+(ed\255stats \(Off\))-.18 E F1 1.392(If set to)144 516 R F2(On)3.893 E
F1(,)A F2 -.18(re)3.893 G(adline).18 E F1 1.393
(displays possible completions using dif)3.893 F 1.393
-(ferent colors to indicate their \214le)-.25 F 2.5(type. The)144 688.8 R
+(ferent colors to indicate their \214le)-.25 F 2.5(type. The)144 528 R
(color de\214nitions are tak)2.5 E(en from the v)-.1 E(alue of the)-.25
E F2(LS_COLORS)2.5 E F1(en)2.5 E(vironment v)-.4 E(ariable.)-.25 E F2
-(comment\255begin \()108 700.8 Q F1<99>A F2(#)A F1<9a>A F2(\))A F1 .477
-(The string that the)144 712.8 R F2 -.18(re)2.977 G .477
+(comment\255begin \()108 540 Q F1<99>A F2(#)A F1<9a>A F2(\))A F1 .477
+(The string that the)144 552 R F2 -.18(re)2.977 G .477
(adline insert\255comment).18 F F1 .477(command inserts.)2.977 F .477
-(This command is bound to)5.477 F F2(M\255#)2.977 E F1
-(in emacs mode and to)144 724.8 Q F2(#)2.5 E F1(in vi command mode.)2.5
-E(GNU Bash 5.3)72 768 Q(2025 April 7)149.285 E(48)198.445 E 0 Cg EP
-%%Page: 49 49
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF
-(completion\255display\255width \(\2551\))108 84 Q F1 1.453(The number \
-of screen columns used to display possible matches when performing comp\
-letion.)144 96 R 1.106(The v)144 108 R 1.106(alue is ignored if it is l\
-ess than 0 or greater than the terminal screen width.)-.25 F 3.606(Av)
-6.106 G 1.106(alue of 0)-3.856 F
-(causes matches to be displayed one per line.)144 120 Q(The def)5 E
-(ault v)-.1 E(alue is \2551.)-.25 E F2(completion\255ignor)108 132 Q
-(e\255case \(Off\))-.18 E F1(If set to)144 144 Q F2(On)2.5 E F1(,)A F2
+(This command is bound to)5.477 F F2(M\255#)2.976 E F1
+(in emacs mode and to)144 564 Q F2(#)2.5 E F1(in vi command mode.)2.5 E
+F2(completion\255display\255width \(\2551\))108 576 Q F1 1.453(The numb\
+er of screen columns used to display possible matches when performing c\
+ompletion.)144 588 R 1.106(The v)144 600 R 1.106(alue is ignored if it \
+is less than 0 or greater than the terminal screen width.)-.25 F 3.606
+(Av)6.106 G 1.106(alue of 0)-3.856 F
+(causes matches to be displayed one per line.)144 612 Q(The def)5 E
+(ault v)-.1 E(alue is \2551.)-.25 E F2(completion\255ignor)108 624 Q
+(e\255case \(Off\))-.18 E F1(If set to)144 636 Q F2(On)2.5 E F1(,)A F2
-.18(re)2.5 G(adline).18 E F1
(performs \214lename matching and completion in a case\255insensiti)2.5
E .3 -.15(ve f)-.25 H(ashion.).05 E F2
-(completion\255map\255case \(Off\))108 156 Q F1 1.574(If set to)144 168
+(completion\255map\255case \(Off\))108 648 Q F1 1.573(If set to)144 660
R F2(On)4.074 E F1 4.074(,a)C(nd)-4.074 E F2(completion\255ignor)4.074 E
(e\255case)-.18 E F1 1.574(is enabled,)4.074 F F2 -.18(re)4.074 G
(adline).18 E F1 1.574(treats h)4.074 F 1.574(yphens \()-.05 F F0<ad>A
-F1 4.073(\)a)C 1.573(nd under)-4.073 F(-)-.2 E(scores \()144 180 Q F0(_)
+F1 4.074(\)a)C 1.574(nd under)-4.074 F(-)-.2 E(scores \()144 672 Q F0(_)
A F1 2.5(\)a)C 2.5(se)-2.5 G(qui)-2.5 E -.25(va)-.25 G
(lent when performing case\255insensiti).25 E .3 -.15(ve \214)-.25 H
-(lename matching and completion.).15 E F2(completion\255pr)108 192 Q
+(lename matching and completion.).15 E F2(completion\255pr)108 684 Q
(e\214x\255display\255length \(0\))-.18 E F1 .689(The maximum length in\
characters of the common pre\214x of a list of possible completions th\
-at is)144 204 R .244(displayed without modi\214cation.)144 216 R .243
+at is)144 696 R .243(displayed without modi\214cation.)144 708 R .243
(When set to a v)5.243 F .243(alue greater than zero,)-.25 F F2 -.18(re)
-2.743 G(adline).18 E F1 .243(replaces common)2.743 F(pre\214x)144 228 Q
-.102(es longer than this v)-.15 F .102
-(alue with an ellipsis when displaying possible completions.)-.25 F .103
-(If a comple-)5.102 F .135(tion be)144 240 R .135
-(gins with a period, and)-.15 F F2(eadline)2.635 E F1 .134
-(is completing \214lenames, it uses three underscores instead of)2.635 F
-(an ellipsis.)144 252 Q F2(completion\255query\255items \(100\))108 264
-Q F1 .529(This determines when the user is queried about vie)144 276 R
-.53(wing the number of possible completions gen-)-.25 F .561
-(erated by the)144 288 R F2(possible\255completions)3.061 E F1 3.061
-(command. It)3.061 F .561(may be set to an)3.061 F 3.06(yi)-.15 G(nte)
--3.06 E .56(ger v)-.15 F .56(alue greater than or)-.25 F .782
-(equal to zero.)144 300 R .783(If the number of possible completions is\
- greater than or equal to the v)5.782 F .783(alue of this)-.25 F -.25
-(va)144 312 S(riable,).25 E F2 -.18(re)3.529 G(adline).18 E F1 1.029
-(asks whether or not the user wishes to vie)3.529 F 3.528(wt)-.25 G
-1.028(hem; otherwise)-3.528 F F2 -.18(re)3.528 G(adline).18 E F1(simply)
-3.528 E 1.349(lists them on the terminal.)144 324 R 3.849(Az)6.349 G
-1.349(ero v)-3.849 F 1.349(alue means)-.25 F F2 -.18(re)3.849 G(adline)
-.18 E F1 1.35(should ne)3.849 F -.15(ve)-.25 G 3.85(ra).15 G 1.35
-(sk; ne)-3.85 F -.05(ga)-.15 G(ti).05 E 1.65 -.15(ve v)-.25 H 1.35
-(alues are)-.1 F(treated as zero.)144 336 Q F2(con)108 348 Q -.1(ve)-.4
-G(rt\255meta \(On\)).1 E F1 .536(If set to)144 360 R F2(On)3.036 E F1(,)
-A F2 -.18(re)3.036 G(adline).18 E F1(con)3.036 E -.15(ve)-.4 G .535
-(rts characters it reads that ha).15 F .835 -.15(ve t)-.2 H .535
-(he eighth bit set to an ASCII k).15 F .835 -.15(ey s)-.1 H(e-).15 E
+2.743 G(adline).18 E F1 .244(replaces common)2.743 F(pre\214x)144 720 Q
+2.823(es longer than this v)-.15 F 2.823
+(alue with an ellipsis when displaying possible completions.)-.25 F
+2.823(If a)7.823 F(GNU Bash 5.3)72 768 Q(2026 January 14)141.79 E(49)
+190.95 E 0 Cg EP
+%%Page: 50 50
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E .045(completion be)144 84 R .045
+(gins with a period, and)-.15 F/F2 10/Times-Bold@0 SF(eadline)2.545 E F1
+.045(is completing \214lenames, it uses three underscores in-)2.545 F
+(stead of an ellipsis.)144 96 Q F2(completion\255query\255items \(100\))
+108 108 Q F1 .53(This determines when the user is queried about vie)144
+120 R .529(wing the number of possible completions gen-)-.25 F .56
+(erated by the)144 132 R F2(possible\255completions)3.06 E F1 3.06
+(command. It)3.06 F .561(may be set to an)3.061 F 3.061(yi)-.15 G(nte)
+-3.061 E .561(ger v)-.15 F .561(alue greater than or)-.25 F .783
+(equal to zero.)144 144 R .783(If the number of possible completions is\
+ greater than or equal to the v)5.783 F .782(alue of this)-.25 F -.25
+(va)144 156 S(riable,).25 E F2 -.18(re)3.528 G(adline).18 E F1 1.028
+(asks whether or not the user wishes to vie)3.528 F 3.529(wt)-.25 G
+1.029(hem; otherwise)-3.529 F F2 -.18(re)3.529 G(adline).18 E F1(simply)
+3.529 E 1.35(lists them on the terminal.)144 168 R 3.849(Az)6.35 G 1.349
+(ero v)-3.849 F 1.349(alue means)-.25 F F2 -.18(re)3.849 G(adline).18 E
+F1 1.349(should ne)3.849 F -.15(ve)-.25 G 3.849(ra).15 G 1.349(sk; ne)
+-3.849 F -.05(ga)-.15 G(ti).05 E 1.649 -.15(ve v)-.25 H 1.349(alues are)
+-.1 F(treated as zero.)144 180 Q F2(con)108 192 Q -.1(ve)-.4 G
+(rt\255meta \(On\)).1 E F1 .535(If set to)144 204 R F2(On)3.035 E F1(,)A
+F2 -.18(re)3.035 G(adline).18 E F1(con)3.035 E -.15(ve)-.4 G .535
+(rts characters it reads that ha).15 F .835 -.15(ve t)-.2 H .536
+(he eighth bit set to an ASCII k).15 F .836 -.15(ey s)-.1 H(e-).15 E
.425(quence by clearing the eighth bit and pre\214xing it with an escap\
-e character \(con)144 372 R -.15(ve)-.4 G .426(rting the charac-).15 F
-1.044(ter to ha)144 384 R 1.344 -.15(ve t)-.2 H 1.044
-(he meta pre\214x\).).15 F 1.044(The def)6.044 F 1.044(ault is)-.1 F F0
+e character \(con)144 216 R -.15(ve)-.4 G .425(rting the charac-).15 F
+1.043(ter to ha)144 228 R 1.343 -.15(ve t)-.2 H 1.043
+(he meta pre\214x\).).15 F 1.044(The def)6.043 F 1.044(ault is)-.1 F F0
(On)3.544 E F1 3.544(,b)C(ut)-3.744 E F2 -.18(re)3.544 G(adline).18 E F1
-1.044(sets it to)3.544 F F0(Of)3.543 E(f)-.18 E F1 1.043
-(if the locale contains)3.543 F .53
+1.044(sets it to)3.544 F F0(Of)3.544 E(f)-.18 E F1 1.044
+(if the locale contains)3.544 F .53
(characters whose encodings may include bytes with the eighth bit set.)
-144 396 R .53(This v)5.53 F .53(ariable is dependent)-.25 F .476(on the)
-144 408 R F2(LC_CTYPE)2.976 E F1 .476(locale cate)2.976 F(gory)-.15 E
+144 240 R .53(This v)5.53 F .53(ariable is dependent)-.25 F .476(on the)
+144 252 R F2(LC_CTYPE)2.976 E F1 .476(locale cate)2.976 F(gory)-.15 E
2.976(,a)-.65 G .476(nd may change if the locale changes.)-2.976 F .476
-(This v)5.476 F .476(ariable also af-)-.25 F(fects k)144 420 Q .3 -.15
+(This v)5.476 F .476(ariable also af-)-.25 F(fects k)144 264 Q .3 -.15
(ey b)-.1 H(indings; see the description of).15 E F2 -.25(fo)2.5 G -.18
(rc).25 G(e\255meta\255pr).18 E(e\214x)-.18 E F1(belo)2.5 E -.65(w.)-.25
-G F2(disable\255completion \(Off\))108 432 Q F1 .708(If set to)144 444 R
-F2(On)3.208 E F1(,)A F2 -.18(re)3.208 G(adline).18 E F1 .708(inhibits w)
-3.208 F .709(ord completion.)-.1 F .709
+G F2(disable\255completion \(Off\))108 276 Q F1 .709(If set to)144 288 R
+F2(On)3.209 E F1(,)A F2 -.18(re)3.209 G(adline).18 E F1 .709(inhibits w)
+3.209 F .709(ord completion.)-.1 F .708
(Completion characters are inserted into the line)5.709 F(as if the)144
-456 Q 2.5(yh)-.15 G(ad been mapped to)-2.5 E F2(self-insert)2.5 E F1(.)A
-F2(echo\255contr)108 468 Q(ol\255characters \(On\))-.18 E F1 1.037
-(When set to)144 480 R F2(On)3.537 E F1 3.537(,o)C 3.537(no)-3.537 G
-1.037(perating systems that indicate the)-3.537 F 3.537(ys)-.15 G 1.036
-(upport it,)-3.537 F F2 -.18(re)3.536 G(adline).18 E F1 1.036
-(echoes a character)3.536 F
-(corresponding to a signal generated from the k)144 492 Q -.15(ey)-.1 G
-(board.).15 E F2(editing\255mode \(emacs\))108 504 Q F1 .013
-(Controls whether)144 516 R F2 -.18(re)2.513 G(adline).18 E F1 .013
+300 Q 2.5(yh)-.15 G(ad been mapped to)-2.5 E F2(self-insert)2.5 E F1(.)A
+F2(echo\255contr)108 312 Q(ol\255characters \(On\))-.18 E F1 1.036
+(When set to)144 324 R F2(On)3.536 E F1 3.536(,o)C 3.536(no)-3.536 G
+1.037(perating systems that indicate the)-3.536 F 3.537(ys)-.15 G 1.037
+(upport it,)-3.537 F F2 -.18(re)3.537 G(adline).18 E F1 1.037
+(echoes a character)3.537 F
+(corresponding to a signal generated from the k)144 336 Q -.15(ey)-.1 G
+(board.).15 E F2(editing\255mode \(emacs\))108 348 Q F1 .014
+(Controls whether)144 360 R F2 -.18(re)2.514 G(adline).18 E F1 .013
(uses a set of k)2.513 F .313 -.15(ey b)-.1 H .013(indings similar to)
.15 F F0(Emacs)2.513 E F1(or)2.513 E F0(vi)2.513 E F1(.)A F2
-(editing\255mode)5.013 E F1 .014(can be)2.514 F(set to either)144 528 Q
+(editing\255mode)5.013 E F1 .013(can be)2.513 F(set to either)144 372 Q
F2(emacs)2.5 E F1(or)2.5 E F2(vi)2.5 E F1(.)A F2
-(emacs\255mode\255string \(@\))108 540 Q F1 .518(If the)144 552 R F0
-(show\255mode\255in\255pr)3.018 E(ompt)-.45 E F1 -.25(va)3.018 G .517
+(emacs\255mode\255string \(@\))108 384 Q F1 .517(If the)144 396 R F0
+(show\255mode\255in\255pr)3.017 E(ompt)-.45 E F1 -.25(va)3.017 G .518
(riable is enabled, this string is displayed immediately before the).25
F .622(last line of the primary prompt when emacs editing mode is acti)
-144 564 R -.15(ve)-.25 G 5.622(.T).15 G .622(he v)-5.622 F .622
-(alue is e)-.25 F .622(xpanded lik)-.15 F 3.122(ea)-.1 G -.1(ke)144 576
-S 3.118(yb)-.05 G .617
-(inding, so the standard set of meta- and control- pre\214x)-3.118 F
-.617(es and backslash escape sequences is)-.15 F -.2(av)144 588 S 2.576
-(ailable. The)-.05 F .076(\\1 and \\2 escapes be)2.576 F .077
+144 408 R -.15(ve)-.25 G 5.622(.T).15 G .622(he v)-5.622 F .621
+(alue is e)-.25 F .621(xpanded lik)-.15 F 3.121(ea)-.1 G -.1(ke)144 420
+S 3.117(yb)-.05 G .617
+(inding, so the standard set of meta- and control- pre\214x)-3.117 F
+.618(es and backslash escape sequences is)-.15 F -.2(av)144 432 S 2.577
+(ailable. The)-.05 F .077(\\1 and \\2 escapes be)2.577 F .076
(gin and end sequences of non-printing characters, which can be)-.15 F
-(used to embed a terminal control sequence into the mode string.)144 600
-Q F2(enable\255acti)108 612 Q -.1(ve)-.1 G<ad72>.1 E(egion \(On\))-.18 E
-F1 .622(When this v)144 624 R .622(ariable is set to)-.25 F F0(On)3.121
+(used to embed a terminal control sequence into the mode string.)144 444
+Q F2(enable\255acti)108 456 Q -.1(ve)-.1 G<ad72>.1 E(egion \(On\))-.18 E
+F1 .621(When this v)144 468 R .621(ariable is set to)-.25 F F0(On)3.121
E F1(,)A F2 -.18(re)3.121 G(adline).18 E F1(allo)3.121 E .621
-(ws certain commands to designate the re)-.25 F .621(gion as)-.15 F F0
-(ac-)3.121 E(tive)144 636 Q F1 5.082(.W)C .082(hen the re)-5.082 F .082
+(ws certain commands to designate the re)-.25 F .622(gion as)-.15 F F0
+(ac-)3.122 E(tive)144 480 Q F1 5.083(.W)C .083(hen the re)-5.083 F .083
(gion is acti)-.15 F -.15(ve)-.25 G(,).15 E F2 -.18(re)2.583 G(adline)
.18 E F1 .083(highlights the te)2.583 F .083(xt in the re)-.15 F .083
-(gion using the v)-.15 F .083(alue of the)-.25 F F2(ac-)2.583 E(ti)144
-648 Q -.1(ve)-.1 G<ad72>.1 E(egion\255start\255color)-.18 E F1 -.25(va)
-2.775 G .275(riable, which def).25 F .274
-(aults to the string that enables the terminal')-.1 F 2.774(ss)-.55 G
-(tandout)-2.774 E 3.149(mode. The)144 660 R(acti)3.149 E .949 -.15(ve r)
--.25 H -.15(eg).15 G .649(ion sho).15 F .649(ws the te)-.25 F .649
-(xt inserted by brack)-.15 F .649(eted-paste and an)-.1 F 3.15(ym)-.15 G
-.65(atching te)-3.15 F .65(xt found)-.15 F
-(by incremental and non-incremental history searches.)144 672 Q F2
-(enable\255brack)108 684 Q(eted\255paste \(On\))-.1 E F1 .688
-(When set to)144 696 R F2(On)3.187 E F1(,)A F2 -.18(re)3.187 G(adline)
+(gion using the v)-.15 F .082(alue of the)-.25 F F2(ac-)2.582 E(ti)144
+492 Q -.1(ve)-.1 G<ad72>.1 E(egion\255start\255color)-.18 E F1 -.25(va)
+2.774 G .274(riable, which def).25 F .275
+(aults to the string that enables the terminal')-.1 F 2.775(ss)-.55 G
+(tandout)-2.775 E 3.15(mode. The)144 504 R(acti)3.15 E .95 -.15(ve r)
+-.25 H -.15(eg).15 G .65(ion sho).15 F .649(ws the te)-.25 F .649
+(xt inserted by brack)-.15 F .649(eted-paste and an)-.1 F 3.149(ym)-.15
+G .649(atching te)-3.149 F .649(xt found)-.15 F
+(by incremental and non-incremental history searches.)144 516 Q F2
+(enable\255brack)108 528 Q(eted\255paste \(On\))-.1 E F1 .687
+(When set to)144 540 R F2(On)3.187 E F1(,)A F2 -.18(re)3.187 G(adline)
.18 E F1 .687
(con\214gures the terminal to insert each paste into the editing b)3.187
F(uf)-.2 E .687(fer as a)-.25 F .799(single string of characters, inste\
-ad of treating each character as if it had been read from the k)144 708
-R -.15(ey)-.1 G(-).15 E 4.556(board. This)144 720 R 2.056(is called)
-4.556 F F0(br)4.556 E(ac)-.15 E -.1(ke)-.2 G 2.056(ted\255paste mode).1
-F F1 4.556(;i)C 4.556(tp)-4.556 G(re)-4.556 E -.15(ve)-.25 G(nts).15 E
-F2 -.18(re)4.556 G(adline).18 E F1 2.056(from e)4.556 F -.15(xe)-.15 G
-2.055(cuting an).15 F 4.555(ye)-.15 G(diting)-4.555 E(GNU Bash 5.3)72
-768 Q(2025 April 7)149.285 E(49)198.445 E 0 Cg EP
-%%Page: 50 50
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E(commands bound to k)144 84 Q .3 -.15(ey s)-.1 H
-(equences appearing in the pasted te).15 E(xt.)-.15 E/F2 10/Times-Bold@0
-SF(enable\255k)108 96 Q(eypad \(Off\))-.1 E F1 .403(When set to)144 108
-R F2(On)2.903 E F1(,)A F2 -.18(re)2.903 G(adline).18 E F1 2.904
-(tries to)2.904 F .404(enable the application k)2.904 F -.15(ey)-.1 G
-.404(pad when it is called.).15 F .404(Some systems)5.404 F
-(need this to enable the arro)144 120 Q 2.5(wk)-.25 G -.15(ey)-2.6 G(s.)
-.15 E F2(enable\255meta\255k)108 132 Q(ey \(On\))-.1 E F1 .03
-(When set to)144 144 R F2(On)2.53 E F1(,)A F2 -.18(re)2.53 G(adline).18
-E F1 .03(tries to enable an)2.53 F 2.529(ym)-.15 G .029
-(eta modi\214er k)-2.529 F .329 -.15(ey t)-.1 H .029
-(he terminal claims to support.).15 F(On)5.029 E(man)144 156 Q 2.985(yt)
+ad of treating each character as if it had been read from the k)144 552
+R -.15(ey)-.1 G(-).15 E 2.624(board. This)144 564 R .124(is called)2.624
+F F0(br)2.624 E(ac)-.15 E -.1(ke)-.2 G .124(ted\255paste mode).1 F F1
+2.625(;i)C 2.625(tp)-2.625 G(re)-2.625 E -.15(ve)-.25 G(nts).15 E F2
+-.18(re)2.625 G(adline).18 E F1 .125(from e)2.625 F -.15(xe)-.15 G .125
+(cuting an).15 F 2.625(ye)-.15 G .125(diting com-)-2.625 F
+(mands bound to k)144 576 Q .3 -.15(ey s)-.1 H
+(equences appearing in the pasted te).15 E(xt.)-.15 E F2(enable\255k)108
+588 Q(eypad \(Off\))-.1 E F1 .404(When set to)144 600 R F2(On)2.904 E F1
+(,)A F2 -.18(re)2.904 G(adline).18 E F1 2.904(tries to)2.904 F .404
+(enable the application k)2.904 F -.15(ey)-.1 G .404
+(pad when it is called.).15 F .403(Some systems)5.403 F
+(need this to enable the arro)144 612 Q 2.5(wk)-.25 G -.15(ey)-2.6 G(s.)
+.15 E F2(enable\255meta\255k)108 624 Q(ey \(On\))-.1 E F1 .029
+(When set to)144 636 R F2(On)2.529 E F1(,)A F2 -.18(re)2.529 G(adline)
+.18 E F1 .029(tries to enable an)2.529 F 2.529(ym)-.15 G .029
+(eta modi\214er k)-2.529 F .33 -.15(ey t)-.1 H .03
+(he terminal claims to support.).15 F(On)5.03 E(man)144 648 Q 2.985(yt)
-.15 G .485(erminals, the Meta k)-2.985 F .785 -.15(ey i)-.1 H 2.985(su)
.15 G .485(sed to send eight-bit characters; this v)-2.985 F .485
(ariable checks for the ter)-.25 F(-)-.2 E .656(minal capability that i\
ndicates the terminal can enable and disable a mode that sets the eight\
-h bit)144 168 R(of a character \(0200\) if the Meta k)144 180 Q .3 -.15
+h bit)144 660 R(of a character \(0200\) if the Meta k)144 672 Q .3 -.15
(ey i)-.1 H 2.5(sh).15 G(eld do)-2.5 E
(wn when the character is typed \(a meta character\).)-.25 E F2
-(expand\255tilde \(Off\))108 192 Q F1(If set to)144 204 Q F2(On)2.5 E F1
+(expand\255tilde \(Off\))108 684 Q F1(If set to)144 696 Q F2(On)2.5 E F1
(,)A F2 -.18(re)2.5 G(adline).18 E F1(performs tilde e)2.5 E
-(xpansion when it attempts w)-.15 E(ord completion.)-.1 E F2 -.25(fo)108
-216 S -.18(rc).25 G(e\255meta\255pr).18 E(e\214x \(Off\))-.18 E F1 .481
-(If set to)144 228 R F2(On)2.981 E F1(,)A F2 -.18(re)2.981 G(adline).18
-E F1 .481(modi\214es its beha)2.981 F .481(vior when binding k)-.2 F
-.782 -.15(ey s)-.1 H .482(equences containing \\M- or Meta-).15 F(\(see)
-144 240 Q F2 -.25(Ke)2.785 G 2.785(yB).25 G(indings)-2.785 E F1(abo)
-2.784 E -.15(ve)-.15 G 2.784(\)b).15 G 2.784(yc)-2.784 G(on)-2.784 E
--.15(ve)-.4 G .284(rting a k).15 F .584 -.15(ey s)-.1 H .284
+(xpansion when it attempts w)-.15 E(ord completion.)-.1 E(GNU Bash 5.3)
+72 768 Q(2026 January 14)141.79 E(50)190.95 E 0 Cg EP
+%%Page: 51 51
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF -.25(fo)108 84 S -.18(rc).25
+G(e\255meta\255pr).18 E(e\214x \(Off\))-.18 E F1 .482(If set to)144 96 R
+F2(On)2.982 E F1(,)A F2 -.18(re)2.982 G(adline).18 E F1 .481
+(modi\214es its beha)2.982 F .481(vior when binding k)-.2 F .781 -.15
+(ey s)-.1 H .481(equences containing \\M- or Meta-).15 F(\(see)144 108 Q
+F2 -.25(Ke)2.784 G 2.784(yB).25 G(indings)-2.784 E F1(abo)2.784 E -.15
+(ve)-.15 G 2.784(\)b).15 G 2.784(yc)-2.784 G(on)-2.784 E -.15(ve)-.4 G
+.284(rting a k).15 F .584 -.15(ey s)-.1 H .284
(equence of the form \\M\255).15 F F0(C)A F1 .284(or Meta\255)2.784 F F0
-(C)A F1 .284(to the tw)2.784 F(o-)-.1 E .78(character sequence)144 252 R
+(C)A F1 .285(to the tw)2.784 F(o-)-.1 E .78(character sequence)144 120 R
F2(ESC)3.28 E F0(C)3.28 E F1 .78(\(adding the meta pre\214x\).)3.28 F
(If)5.78 E F2 -.25(fo)3.28 G -.18(rc).25 G(e\255meta\255pr).18 E(e\214x)
-.18 E F1 .78(is set to)3.28 F F2(Off)3.28 E F1 .78(\(the de-)3.28 F -.1
-(fa)144 264 S(ult\),).1 E F2 -.18(re)2.917 G(adline).18 E F1 .417
-(uses the v)2.917 F .417(alue of the)-.25 F F2(con)2.916 E -.1(ve)-.4 G
-(rt\255meta).1 E F1 -.25(va)2.916 G .416
-(riable to determine whether to perform this).25 F(con)144 276 Q -.15
+(fa)144 132 S(ult\),).1 E F2 -.18(re)2.916 G(adline).18 E F1 .416
+(uses the v)2.916 F .416(alue of the)-.25 F F2(con)2.916 E -.1(ve)-.4 G
+(rt\255meta).1 E F1 -.25(va)2.916 G .417
+(riable to determine whether to perform this).25 F(con)144 144 Q -.15
(ve)-.4 G .095(rsion: if).15 F F2(con)2.595 E -.1(ve)-.4 G(rt\255meta).1
E F1(is)2.595 E F2(On)2.595 E F1(,)A F2 -.18(re)2.595 G(adline).18 E F1
.095(performs the con)2.595 F -.15(ve)-.4 G .095(rsion described abo).15
F -.15(ve)-.15 G 2.595(;i).15 G 2.595(fi)-2.595 G 2.595(ti)-2.595 G(s)
--2.595 E F2(Off)2.595 E F1(,)A F2 -.18(re)144 288 S(adline).18 E F1(con)
+-2.595 E F2(Off)2.595 E F1(,)A F2 -.18(re)144 156 S(adline).18 E F1(con)
2.5 E -.15(ve)-.4 G(rts).15 E F0(C)2.5 E F1
(to a meta character by setting the eighth bit \(0200\).)2.5 E F2
-(history\255pr)108 300 Q(eser)-.18 E -.1(ve)-.1 G(\255point \(Off\)).1 E
-F1 .553(If set to)144 312 R F2(On)3.052 E F1 3.052(,t)C .552(he history\
+(history\255pr)108 168 Q(eser)-.18 E -.1(ve)-.1 G(\255point \(Off\)).1 E
+F1 .552(If set to)144 180 R F2(On)3.052 E F1 3.052(,t)C .552(he history\
code attempts to place point at the same location on each history line\
- re-)-3.052 F(trie)144 324 Q -.15(ve)-.25 G 2.5(dw).15 G(ith)-2.5 E F2
+ re-)-3.052 F(trie)144 192 Q -.15(ve)-.25 G 2.5(dw).15 G(ith)-2.5 E F2
(pr)2.5 E -.15(ev)-.18 G(ious-history).15 E F1(or)2.5 E F2(next-history)
-2.5 E F1(.)A F2(history\255size \(unset\))108 336 Q F1 .948
-(Set the maximum number of history entries sa)144 348 R -.15(ve)-.2 G
-3.448(di).15 G 3.448(nt)-3.448 G .948(he history list.)-3.448 F .949
-(If set to zero, an)5.948 F 3.449(ye)-.15 G(xisting)-3.599 E .483
-(history entries are deleted and no ne)144 360 R 2.983(we)-.25 G .483
-(ntries are sa)-2.983 F -.15(ve)-.2 G 2.983(d. If).15 F .482(set to a v)
-2.983 F .482(alue less than zero, the num-)-.25 F .295
-(ber of history entries is not limited.)144 372 R .295(By def)5.295 F
+2.5 E F1(.)A F2(history\255size \(unset\))108 204 Q F1 .949
+(Set the maximum number of history entries sa)144 216 R -.15(ve)-.2 G
+3.448(di).15 G 3.448(nt)-3.448 G .948(he history list.)-3.448 F .948
+(If set to zero, an)5.948 F 3.448(ye)-.15 G(xisting)-3.598 E .482
+(history entries are deleted and no ne)144 228 R 2.982(we)-.25 G .483
+(ntries are sa)-2.982 F -.15(ve)-.2 G 2.983(d. If).15 F .483(set to a v)
+2.983 F .483(alue less than zero, the num-)-.25 F .295
+(ber of history entries is not limited.)144 240 R .295(By def)5.295 F
(ault,)-.1 E F2(bash)2.795 E F1 .295
-(sets the maximum number of history entries)2.795 F .316(to the v)144
-384 R .316(alue of the)-.25 F F2(HISTSIZE)2.816 E F1 .315(shell v)2.815
-F 2.815(ariable. Setting)-.25 F F0(history\255size)2.815 E F1 .315
-(to a non-numeric v)2.815 F .315(alue will set)-.25 F
-(the maximum number of history entries to 500.)144 396 Q F2
-(horizontal\255scr)108 408 Q(oll\255mode \(Off\))-.18 E F1 .848
-(Setting this v)144 420 R .848(ariable to)-.25 F F2(On)3.348 E F1(mak)
+(sets the maximum number of history entries)2.795 F .315(to the v)144
+252 R .315(alue of the)-.25 F F2(HISTSIZE)2.815 E F1 .315(shell v)2.815
+F 2.815(ariable. Setting)-.25 F F0(history\255size)2.815 E F1 .316
+(to a non-numeric v)2.815 F .316(alue will set)-.25 F
+(the maximum number of history entries to 500.)144 264 Q F2
+(horizontal\255scr)108 276 Q(oll\255mode \(Off\))-.18 E F1 .849
+(Setting this v)144 288 R .849(ariable to)-.25 F F2(On)3.349 E F1(mak)
3.349 E(es)-.1 E F2 -.18(re)3.349 G(adline).18 E F1 .849
-(use a single line for display)3.349 F 3.349(,s)-.65 G .849
-(crolling the input hori-)-3.349 F .068(zontally on a single screen lin\
+(use a single line for display)3.349 F 3.348(,s)-.65 G .848
+(crolling the input hori-)-3.348 F .067(zontally on a single screen lin\
e when it becomes longer than the screen width rather than wrapping)144
-432 R(to a ne)144 444 Q 2.5(wl)-.25 G 2.5(ine. This)-2.5 F
+300 R(to a ne)144 312 Q 2.5(wl)-.25 G 2.5(ine. This)-2.5 F
(setting is automatically enabled for terminals of height 1.)2.5 E F2
-(input\255meta \(Off\))108 456 Q F1 .371(If set to)144 468 R F2(On)2.871
+(input\255meta \(Off\))108 324 Q F1 .372(If set to)144 336 R F2(On)2.871
E F1(,)A F2 -.18(re)2.871 G(adline).18 E F1 .371(enables eight-bit inpu\
t \(that is, it does not clear the eighth bit in the charac-)2.871 F
-.718(ters it reads\), re)144 480 R -.05(ga)-.15 G .718
-(rdless of what the terminal claims it can support.).05 F .717(The def)
-5.717 F .717(ault is)-.1 F F0(Of)3.217 E(f)-.18 E F1 3.217(,b)C(ut)
--3.417 E F2 -.18(re)3.217 G(ad-).18 E(line)144 492 Q F1 1.246
-(sets it to)3.746 F F0(On)3.746 E F1 1.246(if the locale contains chara\
+.717(ters it reads\), re)144 348 R -.05(ga)-.15 G .718
+(rdless of what the terminal claims it can support.).05 F .718(The def)
+5.718 F .718(ault is)-.1 F F0(Of)3.218 E(f)-.18 E F1 3.218(,b)C(ut)
+-3.418 E F2 -.18(re)3.218 G(ad-).18 E(line)144 360 Q F1 1.247
+(sets it to)3.747 F F0(On)3.747 E F1 1.246(if the locale contains chara\
cters whose encodings may include bytes with the)3.746 F .786
-(eighth bit set.)144 504 R .786(This v)5.786 F .786
+(eighth bit set.)144 372 R .786(This v)5.786 F .786
(ariable is dependent on the)-.25 F F2(LC_CTYPE)3.286 E F1 .786
(locale cate)3.286 F(gory)-.15 E 3.286(,a)-.65 G .786(nd its v)-3.286 F
-.786(alue may)-.25 F(change if the locale changes.)144 516 Q(The name)5
+.786(alue may)-.25 F(change if the locale changes.)144 384 Q(The name)5
E F2(meta\255\215ag)2.5 E F1(is a synon)2.5 E(ym for)-.15 E F2
-(input\255meta)2.5 E F1(.)A F2(isear)108 528 Q(ch\255terminators \()-.18
+(input\255meta)2.5 E F1(.)A F2(isear)108 396 Q(ch\255terminators \()-.18
E F1<99>A F2(C\255[C\255j)A F1<9a>A F2(\))A F1 .439(The string of chara\
cters that should terminate an incremental search without subsequently \
-e)144 540 R -.15(xe)-.15 G(cut-).15 E .935
-(ing the character as a command.)144 552 R .935(If this v)5.935 F .935
-(ariable has not been gi)-.25 F -.15(ve)-.25 G 3.434(nav).15 G .934
-(alue, the characters)-3.684 F F0(ESC)3.434 E F1(and)144 564 Q F2
+e)144 408 R -.15(xe)-.15 G(cut-).15 E .934
+(ing the character as a command.)144 420 R .935(If this v)5.935 F .935
+(ariable has not been gi)-.25 F -.15(ve)-.25 G 3.435(nav).15 G .935
+(alue, the characters)-3.685 F F0(ESC)3.435 E F1(and)144 432 Q F2
(C\255j)2.5 E F1(terminate an incremental search.)2.5 E F2 -.1(ke)108
-576 S(ymap \(emacs\)).1 E F1 1.82(Set the current)144 588 R F2 -.18(re)
+444 S(ymap \(emacs\)).1 E F1 1.82(Set the current)144 456 R F2 -.18(re)
4.32 G(adline).18 E F1 -.1(ke)4.32 G 4.32(ymap. The)-.05 F 1.82
(set of v)4.32 F 1.82(alid k)-.25 F -.15(ey)-.1 G 1.82(map names is).15
-F F0 1.82(emacs, emacs\255standar)4.32 F(d,)-.37 E .042
-(emacs\255meta, emacs\255ctlx, vi, vi\255command)144 600 R F1 2.542(,a)C
+F F0 1.82(emacs, emacs\255standar)4.32 F(d,)-.37 E .041
+(emacs\255meta, emacs\255ctlx, vi, vi\255command)144 468 R F1 2.542(,a)C
(nd)-2.542 E F0(vi\255insert)2.832 E F1(.).68 E F0(vi)5.042 E F1 .042
(is equi)2.542 F -.25(va)-.25 G .042(lent to).25 F F0(vi\255command)
-2.541 E F1(;)A F0(emacs)2.541 E F1 .481(is equi)144 612 R -.25(va)-.25 G
-.481(lent to).25 F F0(emacs\255standar)2.981 E(d)-.37 E F1 5.481(.T)C
-.481(he def)-5.481 F .481(ault v)-.1 F .481(alue is)-.25 F F0(emacs)
-2.981 E F1 2.982(;t)C .482(he v)-2.982 F .482(alue of)-.25 F F2
-(editing\255mode)2.982 E F1 .482(also af-)2.982 F(fects the def)144 624
-Q(ault k)-.1 E -.15(ey)-.1 G(map.).15 E F2 -.1(ke)108 636 S
-(yseq\255timeout \(500\)).1 E F1 .235(Speci\214es the duration)144 648 R
-F2 -.18(re)2.735 G(adline).18 E F1 .234(will w)2.735 F .234
-(ait for a character when reading an ambiguous k)-.1 F .534 -.15(ey s)
--.1 H(equence).15 E .524(\(one that can form a complete k)144 660 R .824
+2.542 E F1(;)A F0(emacs)2.542 E F1 .482(is equi)144 480 R -.25(va)-.25 G
+.482(lent to).25 F F0(emacs\255standar)2.982 E(d)-.37 E F1 5.482(.T)C
+.482(he def)-5.482 F .482(ault v)-.1 F .481(alue is)-.25 F F0(emacs)
+2.981 E F1 2.981(;t)C .481(he v)-2.981 F .481(alue of)-.25 F F2
+(editing\255mode)2.981 E F1 .481(also af-)2.981 F(fects the def)144 492
+Q(ault k)-.1 E -.15(ey)-.1 G(map.).15 E F2 -.1(ke)108 504 S
+(yseq\255timeout \(500\)).1 E F1 .234(Speci\214es the duration)144 516 R
+F2 -.18(re)2.734 G(adline).18 E F1 .234(will w)2.734 F .234
+(ait for a character when reading an ambiguous k)-.1 F .535 -.15(ey s)
+-.1 H(equence).15 E .525(\(one that can form a complete k)144 528 R .825
-.15(ey s)-.1 H .524(equence using the input read so f).15 F(ar)-.1 E
-3.025(,o)-.4 G 3.025(rc)-3.025 G .525(an tak)-3.025 F 3.025(ea)-.1 G
-.525(dditional in-)-3.025 F .18(put to complete a longer k)144 672 R .48
--.15(ey s)-.1 H 2.679(equence\). If).15 F F2 -.18(re)2.679 G(adline).18
-E F1 .179(does not recei)2.679 F .479 -.15(ve a)-.25 H .479 -.15(ny i)
-.15 H .179(nput within the timeout,).15 F .15(it uses the shorter b)144
-684 R .15(ut complete k)-.2 F .45 -.15(ey s)-.1 H 2.651(equence. The).15
-F -.25(va)2.651 G .151(lue is speci\214ed in milliseconds, so a v).25 F
-.151(alue of)-.25 F 1.35(1000 means that)144 696 R F2 -.18(re)3.85 G
-(adline).18 E F1 1.35(will w)3.85 F 1.35
-(ait one second for additional input.)-.1 F 1.35(If this v)6.35 F 1.35
-(ariable is set to a)-.25 F -.25(va)144 708 S 1.283
-(lue less than or equal to zero, or to a non-numeric v).25 F(alue,)-.25
-E F2 -.18(re)3.783 G(adline).18 E F1 -.1(wa)3.783 G 1.283
-(its until another k).1 F 1.583 -.15(ey i)-.1 H(s).15 E
-(pressed to decide which k)144 720 Q .3 -.15(ey s)-.1 H
-(equence to complete.).15 E(GNU Bash 5.3)72 768 Q(2025 April 7)149.285 E
-(50)198.445 E 0 Cg EP
-%%Page: 51 51
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(mark\255dir)108 84 Q
-(ectories \(On\))-.18 E F1(If set to)144 96 Q F2(On)2.5 E F1 2.5(,c)C
+3.024(,o)-.4 G 3.024(rc)-3.024 G .524(an tak)-3.024 F 3.024(ea)-.1 G
+.524(dditional in-)-3.024 F .179(put to complete a longer k)144 540 R
+.479 -.15(ey s)-.1 H 2.679(equence\). If).15 F F2 -.18(re)2.679 G
+(adline).18 E F1 .179(does not recei)2.679 F .48 -.15(ve a)-.25 H .48
+-.15(ny i).15 H .18(nput within the timeout,).15 F .151
+(it uses the shorter b)144 552 R .151(ut complete k)-.2 F .451 -.15
+(ey s)-.1 H 2.651(equence. The).15 F -.25(va)2.651 G .15
+(lue is speci\214ed in milliseconds, so a v).25 F .15(alue of)-.25 F
+1.35(1000 means that)144 564 R F2 -.18(re)3.85 G(adline).18 E F1 1.35
+(will w)3.85 F 1.35(ait one second for additional input.)-.1 F 1.35
+(If this v)6.35 F 1.35(ariable is set to a)-.25 F -.25(va)144 576 S
+1.283(lue less than or equal to zero, or to a non-numeric v).25 F(alue,)
+-.25 E F2 -.18(re)3.783 G(adline).18 E F1 -.1(wa)3.783 G 1.283
+(its until another k).1 F 1.582 -.15(ey i)-.1 H(s).15 E
+(pressed to decide which k)144 588 Q .3 -.15(ey s)-.1 H
+(equence to complete.).15 E F2(mark\255dir)108 600 Q(ectories \(On\))
+-.18 E F1(If set to)144 612 Q F2(On)2.5 E F1 2.5(,c)C
(ompleted directory names ha)-2.5 E .3 -.15(ve a s)-.2 H(lash appended.)
-.15 E F2(mark\255modi\214ed\255lines \(Off\))108 108 Q F1(If set to)144
-120 Q F2(On)2.5 E F1(,)A F2 -.18(re)2.5 G(adline).18 E F1
+.15 E F2(mark\255modi\214ed\255lines \(Off\))108 624 Q F1(If set to)144
+636 Q F2(On)2.5 E F1(,)A F2 -.18(re)2.5 G(adline).18 E F1
(displays history lines that ha)2.5 E .3 -.15(ve b)-.2 H
(een modi\214ed with a preceding asterisk \().15 E F2(*)A F1(\).)A F2
-(mark\255symlink)108 132 Q(ed\255dir)-.1 E(ectories \(Off\))-.18 E F1
-.227(If set to)144 144 R F2(On)2.727 E F1 2.727(,c)C .227
+(mark\255symlink)108 648 Q(ed\255dir)-.1 E(ectories \(Off\))-.18 E F1
+.226(If set to)144 660 R F2(On)2.727 E F1 2.727(,c)C .227
(ompleted names which are symbolic links to directories ha)-2.727 F .527
--.15(ve a s)-.2 H .226(lash appended, sub-).15 F(ject to the v)144 156 Q
+-.15(ve a s)-.2 H .227(lash appended, sub-).15 F(ject to the v)144 672 Q
(alue of)-.25 E F2(mark\255dir)2.5 E(ectories)-.18 E F1(.)A F2
-(match\255hidden\255\214les \(On\))108 168 Q F1 .512(This v)144 180 R
+(match\255hidden\255\214les \(On\))108 684 Q F1 .513(This v)144 696 R
.513(ariable, when set to)-.25 F F2(On)3.013 E F1 3.013(,f)C(orces)
-3.013 E F2 -.18(re)3.013 G(adline).18 E F1 .513
(to match \214les whose names be)3.013 F .513(gin with a \231.)-.15 F
-5.513<9a28>-.7 G(hid-)-5.513 E .737
-(den \214les\) when performing \214lename completion.)144 192 R .737
-(If set to)5.737 F F2(Off)3.237 E F1 3.237(,t)C .736
-(he user must include the leading)-3.237 F<992e>144 204 Q 5<9a69>-.7 G
-2.5(nt)-5 G(he \214lename to be completed.)-2.5 E F2
-(menu\255complete\255display\255pr)108 216 Q(e\214x \(Off\))-.18 E F1
-1.585(If set to)144 228 R F2(On)4.085 E F1 4.085(,m)C 1.585(enu complet\
-ion displays the common pre\214x of the list of possible completions)
--4.085 F(\(which may be empty\) before c)144 240 Q
-(ycling through the list.)-.15 E F2(output\255meta \(Off\))108 252 Q F1
-.27(If set to)144 264 R F2(On)2.77 E F1(,)A F2 -.18(re)2.77 G(adline).18
-E F1 .269(displays characters with the eighth bit set directly rather t\
-han as a meta-pre-)2.77 F<8c78>144 276 Q .437(ed escape sequence.)-.15 F
-.437(The def)5.437 F .437(ault is)-.1 F F0(Of)2.937 E(f)-.18 E F1 2.938
-(,b)C(ut)-3.138 E F2 -.18(re)2.938 G(adline).18 E F1 .438(sets it to)
-2.938 F F0(On)2.938 E F1 .438(if the locale contains charac-)2.938 F
-.393(ters whose encodings may include bytes with the eighth bit set.)144
-288 R .393(This v)5.393 F .393(ariable is dependent on the)-.25 F F2
-(LC_CTYPE)144 300 Q F1(locale cate)2.5 E(gory)-.15 E 2.5(,a)-.65 G
+5.512<9a28>-.7 G(hid-)-5.512 E .736
+(den \214les\) when performing \214lename completion.)144 708 R .737
+(If set to)5.737 F F2(Off)3.237 E F1 3.237(,t)C .737
+(he user must include the leading)-3.237 F<992e>144 720 Q 5<9a69>-.7 G
+2.5(nt)-5 G(he \214lename to be completed.)-2.5 E(GNU Bash 5.3)72 768 Q
+(2026 January 14)141.79 E(51)190.95 E 0 Cg EP
+%%Page: 52 52
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF
+(menu\255complete\255display\255pr)108 84 Q(e\214x \(Off\))-.18 E F1
+1.586(If set to)144 96 R F2(On)4.086 E F1 4.086(,m)C 1.585(enu completi\
+on displays the common pre\214x of the list of possible completions)
+-4.086 F(\(which may be empty\) before c)144 108 Q
+(ycling through the list.)-.15 E F2(output\255meta \(Off\))108 120 Q F1
+.269(If set to)144 132 R F2(On)2.769 E F1(,)A F2 -.18(re)2.769 G(adline)
+.18 E F1 .27(displays characters with the eighth bit set directly rathe\
+r than as a meta-pre-)2.769 F<8c78>144 144 Q .438(ed escape sequence.)
+-.15 F .438(The def)5.438 F .438(ault is)-.1 F F0(Of)2.938 E(f)-.18 E F1
+2.938(,b)C(ut)-3.138 E F2 -.18(re)2.938 G(adline).18 E F1 .438
+(sets it to)2.938 F F0(On)2.937 E F1 .437
+(if the locale contains charac-)2.937 F .393
+(ters whose encodings may include bytes with the eighth bit set.)144 156
+R .393(This v)5.393 F .393(ariable is dependent on the)-.25 F F2
+(LC_CTYPE)144 168 Q F1(locale cate)2.5 E(gory)-.15 E 2.5(,a)-.65 G
(nd its v)-2.5 E(alue may change if the locale changes.)-.25 E F2
-(page\255completions \(On\))108 312 Q F1 .291(If set to)144 324 R F2(On)
-2.791 E F1(,)A F2 -.18(re)2.791 G(adline).18 E F1 .291
+(page\255completions \(On\))108 180 Q F1 .292(If set to)144 192 R F2(On)
+2.792 E F1(,)A F2 -.18(re)2.792 G(adline).18 E F1 .291
(uses an internal pager resembling)2.791 F F0(mor)3.171 E(e)-.37 E F1
-.292(\(1\) to display a screenful of possible).18 F
-(completions at a time.)144 336 Q F2(pr)108 348 Q
-(efer\255visible\255bell)-.18 E F1(See)144 360 Q F2(bell\255style)2.5 E
-F1(.)A F2(print\255completions\255horizontally \(Off\))108 372 Q F1 .231
-(If set to)144 384 R F2(On)2.731 E F1(,)A F2 -.18(re)2.731 G(adline).18
-E F1 .231(displays completions with matches sorted horizontally in alph\
-abetical order)2.731 F(,)-.4 E(rather than do)144 396 Q(wn the screen.)
--.25 E F2 -2.29 -.18(re v)108 408 T(ert\255all\255at\255newline \(Off\))
-.08 E F1 .772(If set to)144 420 R F2(On)3.272 E F1(,)A F2 -.18(re)3.272
-G(adline).18 E F1 .773
-(will undo all changes to history lines before returning when e)3.272 F
--.15(xe)-.15 G(cuting).15 E F2(ac-)3.273 E(cept\255line)144 432 Q F1
-5.663(.B)C 3.163(yd)-5.663 G(ef)-3.163 E .663
+.291(\(1\) to display a screenful of possible).18 F
+(completions at a time.)144 204 Q F2(pr)108 216 Q
+(efer\255visible\255bell)-.18 E F1(See)144 228 Q F2(bell\255style)2.5 E
+F1(.)A F2(print\255completions\255horizontally \(Off\))108 240 Q F1 .23
+(If set to)144 252 R F2(On)2.73 E F1(,)A F2 -.18(re)2.731 G(adline).18 E
+F1 .231(displays completions with matches sorted horizontally in alphab\
+etical order)2.731 F(,)-.4 E(rather than do)144 264 Q(wn the screen.)
+-.25 E F2 -2.29 -.18(re v)108 276 T(ert\255all\255at\255newline \(Off\))
+.08 E F1 .773(If set to)144 288 R F2(On)3.273 E F1(,)A F2 -.18(re)3.273
+G(adline).18 E F1 .772
+(will undo all changes to history lines before returning when e)3.273 F
+-.15(xe)-.15 G(cuting).15 E F2(ac-)3.272 E(cept\255line)144 300 Q F1
+5.662(.B)C 3.162(yd)-5.662 G(ef)-3.162 E .663
(ault, history lines may be modi\214ed and retain indi)-.1 F .663
-(vidual undo lists across calls)-.25 F(to)144 444 Q F2 -.18(re)2.5 G
-(adline).18 E F1(.)A F2(sear)108 456 Q(ch\255ignor)-.18 E
-(e\255case \(Off\))-.18 E F1 .102(If set to)144 468 R F2(On)2.603 E F1
+(vidual undo lists across calls)-.25 F(to)144 312 Q F2 -.18(re)2.5 G
+(adline).18 E F1(.)A F2(sear)108 324 Q(ch\255ignor)-.18 E
+(e\255case \(Off\))-.18 E F1 .103(If set to)144 336 R F2(On)2.603 E F1
(,)A F2 -.18(re)2.603 G(adline).18 E F1 .103(performs incremental and n\
on-incremental history list searches in a case\255in-)2.603 F(sensiti)
-144 480 Q .3 -.15(ve f)-.25 H(ashion.).05 E F2(sho)108 492 Q
-(w\255all\255if\255ambiguous \(Off\))-.1 E F1 .304(This alters the def)
-144 504 R .304(ault beha)-.1 F .304(vior of the completion functions.)
--.2 F .304(If set to)5.304 F F2(On)2.804 E F1 2.803(,w)C .303
-(ords which ha)-2.903 F .603 -.15(ve m)-.2 H(ore).15 E 1.264(than one p\
+144 348 Q .3 -.15(ve f)-.25 H(ashion.).05 E F2(sho)108 360 Q
+(w\255all\255if\255ambiguous \(Off\))-.1 E F1 .303(This alters the def)
+144 372 R .303(ault beha)-.1 F .304(vior of the completion functions.)
+-.2 F .304(If set to)5.304 F F2(On)2.804 E F1 2.804(,w)C .304
+(ords which ha)-2.904 F .604 -.15(ve m)-.2 H(ore).15 E 1.264(than one p\
ossible completion cause the matches to be listed immediately instead o\
-f ringing the)144 516 R(bell.)144 528 Q F2(sho)108 540 Q
-(w\255all\255if\255unmodi\214ed \(Off\))-.1 E F1 5.346
-(This alters the def)144 552 R 5.346(ault beha)-.1 F 5.345
-(vior of the completion functions in a f)-.2 F 5.345(ashion similar to)
--.1 F F2(sho)144 564 Q(w\255all\255if\255ambiguous)-.1 E F1 6.69(.I)C
-4.19(fs)-6.69 G 1.691(et to)-4.19 F F2(On)4.191 E F1 4.191(,w)C 1.691
+f ringing the)144 384 R(bell.)144 396 Q F2(sho)108 408 Q
+(w\255all\255if\255unmodi\214ed \(Off\))-.1 E F1 5.345
+(This alters the def)144 420 R 5.345(ault beha)-.1 F 5.345
+(vior of the completion functions in a f)-.2 F 5.346(ashion similar to)
+-.1 F F2(sho)144 432 Q(w\255all\255if\255ambiguous)-.1 E F1 6.691(.I)C
+4.191(fs)-6.691 G 1.691(et to)-4.191 F F2(On)4.191 E F1 4.191(,w)C 1.691
(ords which ha)-4.291 F 1.991 -.15(ve m)-.2 H 1.691
-(ore than one possible completion).15 F 1.04(without an)144 576 R 3.54
+(ore than one possible completion).15 F 1.039(without an)144 444 R 3.539
(yp)-.15 G 1.039
-(ossible partial completion \(the possible completions don')-3.54 F
-3.539(ts)-.18 G 1.039(hare a common pre\214x\))-3.539 F(cause the match\
-es to be listed immediately instead of ringing the bell.)144 588 Q F2
-(sho)108 600 Q(w\255mode\255in\255pr)-.1 E(ompt \(Off\))-.18 E F1 1.021
-(If set to)144 612 R F2(On)3.521 E F1 3.521(,a)C 1.022
-(dd a string to the be)-3.521 F 1.022
+(ossible partial completion \(the possible completions don')-3.539 F
+3.539(ts)-.18 G 1.04(hare a common pre\214x\))-3.539 F(cause the matche\
+s to be listed immediately instead of ringing the bell.)144 456 Q F2
+(sho)108 468 Q(w\255mode\255in\255pr)-.1 E(ompt \(Off\))-.18 E F1 1.022
+(If set to)144 480 R F2(On)3.522 E F1 3.522(,a)C 1.022
+(dd a string to the be)-3.522 F 1.021
(ginning of the prompt indicating the editing mode: emacs, vi)-.15 F
-(command, or vi insertion.)144 624 Q(The mode strings are user)5 E
+(command, or vi insertion.)144 492 Q(The mode strings are user)5 E
(-settable \(e.g.,)-.2 E F0(emacs\255mode\255string)2.5 E F1(\).)A F2
-(skip\255completed\255text \(Off\))108 636 Q F1 .095(If set to)144 648 R
-F2(On)2.595 E F1 2.595(,t)C .095(his alters the def)-2.595 F .095
-(ault completion beha)-.1 F .094
-(vior when inserting a single match into the line.)-.2 F(It')144 660 Q
-3.393(so)-.55 G .893(nly acti)-3.393 F 1.193 -.15(ve w)-.25 H .893
-(hen performing completion in the middle of a w).15 F 3.394(ord. If)-.1
-F(enabled,)3.394 E F2 -.18(re)3.394 G(adline).18 E F1(does)3.394 E .283
+(skip\255completed\255text \(Off\))108 504 Q F1 .094(If set to)144 516 R
+F2(On)2.594 E F1 2.594(,t)C .095(his alters the def)-2.594 F .095
+(ault completion beha)-.1 F .095
+(vior when inserting a single match into the line.)-.2 F(It')144 528 Q
+3.394(so)-.55 G .894(nly acti)-3.394 F 1.194 -.15(ve w)-.25 H .893
+(hen performing completion in the middle of a w).15 F 3.393(ord. If)-.1
+F(enabled,)3.393 E F2 -.18(re)3.393 G(adline).18 E F1(does)3.393 E .283
(not insert characters from the completion that match characters after \
-point in the w)144 672 R .282(ord being com-)-.1 F
-(pleted, so portions of the w)144 684 Q(ord follo)-.1 E
+point in the w)144 540 R .283(ord being com-)-.1 F
+(pleted, so portions of the w)144 552 Q(ord follo)-.1 E
(wing the cursor are not duplicated.)-.25 E F2
-(vi\255cmd\255mode\255string \(\(cmd\)\))108 696 Q F1 .517(If the)144
-708 R F0(show\255mode\255in\255pr)3.017 E(ompt)-.45 E F1 -.25(va)3.017 G
-.518(riable is enabled, this string is displayed immediately before the)
+(vi\255cmd\255mode\255string \(\(cmd\)\))108 564 Q F1 .518(If the)144
+576 R F0(show\255mode\255in\255pr)3.018 E(ompt)-.45 E F1 -.25(va)3.018 G
+.517(riable is enabled, this string is displayed immediately before the)
.25 F .475(last line of the primary prompt when vi editing mode is acti)
-144 720 R .775 -.15(ve a)-.25 H .475(nd in command mode.).15 F .475
-(The v)5.475 F(alue)-.25 E(GNU Bash 5.3)72 768 Q(2025 April 7)149.285 E
-(51)198.445 E 0 Cg EP
-%%Page: 52 52
+144 588 R .775 -.15(ve a)-.25 H .476(nd in command mode.).15 F .476
+(The v)5.476 F(alue)-.25 E .135(is e)144 600 R .135(xpanded lik)-.15 F
+2.634(eak)-.1 G .434 -.15(ey b)-2.734 H .134
+(inding, so the standard set of meta- and control- pre\214x).15 F .134
+(es and backslash es-)-.15 F .404(cape sequences is a)144 612 R -.25(va)
+-.2 G 2.904(ilable. The).25 F .405(\\1 and \\2 escapes be)2.904 F .405
+(gin and end sequences of non-printing char)-.15 F(-)-.2 E(acters, whic\
+h can be used to embed a terminal control sequence into the mode string\
+.)144 624 Q F2(vi\255ins\255mode\255string \(\(ins\)\))108 636 Q F1 .518
+(If the)144 648 R F0(show\255mode\255in\255pr)3.018 E(ompt)-.45 E F1
+-.25(va)3.018 G .517
+(riable is enabled, this string is displayed immediately before the).25
+F .186(last line of the primary prompt when vi editing mode is acti)144
+660 R .486 -.15(ve a)-.25 H .186(nd in insertion mode.).15 F .187(The v)
+5.186 F .187(alue is)-.25 F -.15(ex)144 672 S .716(panded lik).15 F
+3.216(eak)-.1 G 1.016 -.15(ey b)-3.316 H .716
+(inding, so the standard set of meta- and control- pre\214x).15 F .715
+(es and backslash es-)-.15 F .404(cape sequences is a)144 684 R -.25(va)
+-.2 G 2.904(ilable. The).25 F .405(\\1 and \\2 escapes be)2.904 F .405
+(gin and end sequences of non-printing char)-.15 F(-)-.2 E(acters, whic\
+h can be used to embed a terminal control sequence into the mode string\
+.)144 696 Q(GNU Bash 5.3)72 768 Q(2026 January 14)141.79 E(52)190.95 E 0
+Cg EP
+%%Page: 53 53
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E .134(is e)144 84 R .134(xpanded lik)-.15 F 2.634
-(eak)-.1 G .434 -.15(ey b)-2.734 H .134
-(inding, so the standard set of meta- and control- pre\214x).15 F .135
-(es and backslash es-)-.15 F .405(cape sequences is a)144 96 R -.25(va)
--.2 G 2.905(ilable. The).25 F .405(\\1 and \\2 escapes be)2.905 F .404
-(gin and end sequences of non-printing char)-.15 F(-)-.2 E(acters, whic\
-h can be used to embed a terminal control sequence into the mode string\
-.)144 108 Q/F2 10/Times-Bold@0 SF
-(vi\255ins\255mode\255string \(\(ins\)\))108 120 Q F1 .517(If the)144
-132 R F0(show\255mode\255in\255pr)3.017 E(ompt)-.45 E F1 -.25(va)3.017 G
-.518(riable is enabled, this string is displayed immediately before the)
-.25 F .186(last line of the primary prompt when vi editing mode is acti)
-144 144 R .486 -.15(ve a)-.25 H .186(nd in insertion mode.).15 F .186
-(The v)5.186 F .186(alue is)-.25 F -.15(ex)144 156 S .715(panded lik).15
-F 3.215(eak)-.1 G 1.015 -.15(ey b)-3.315 H .716
-(inding, so the standard set of meta- and control- pre\214x).15 F .716
-(es and backslash es-)-.15 F .405(cape sequences is a)144 168 R -.25(va)
--.2 G 2.905(ilable. The).25 F .405(\\1 and \\2 escapes be)2.905 F .404
-(gin and end sequences of non-printing char)-.15 F(-)-.2 E(acters, whic\
-h can be used to embed a terminal control sequence into the mode string\
-.)144 180 Q F2(visible\255stats \(Off\))108 192 Q F1 .846(If set to)144
-204 R F2(On)3.346 E F1 3.346(,ac)C .846(haracter denoting a \214le')
--3.346 F 3.346(st)-.55 G .846(ype as reported by)-3.346 F F0(stat)3.346
-E F1 .846(\(2\) is appended to the \214lename)B
-(when listing possible completions.)144 216 Q F2
-(Readline Conditional Constructs)87 232.8 Q(Readline)108 244.8 Q F1 .494
+.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(visible\255stats \(Off\))108
+84 Q F1 .847(If set to)144 96 R F2(On)3.346 E F1 3.346(,ac)C .846
+(haracter denoting a \214le')-3.346 F 3.346(st)-.55 G .846
+(ype as reported by)-3.346 F F0(stat)3.346 E F1 .846
+(\(2\) is appended to the \214lename)B
+(when listing possible completions.)144 108 Q F2
+(Readline Conditional Constructs)87 124.8 Q(Readline)108 136.8 Q F1 .494
(implements a f)2.994 F .494(acility similar in spirit to the condition\
-al compilation features of the C preproces-)-.1 F .774(sor which allo)
-108 256.8 R .774(ws k)-.25 F 1.074 -.15(ey b)-.1 H .774(indings and v)
-.15 F .775(ariable settings to be performed as the result of tests.)-.25
-F .775(There are four)5.775 F(parser directi)108 268.8 Q -.15(ve)-.25 G
-2.5(sa).15 G -.25(va)-2.7 G(ilable.).25 E F2($if)108 285.6 Q F1(The)144
-285.6 Q F2($if)2.963 E F1 .463(construct allo)2.963 F .462(ws bindings \
+al compilation features of the C preproces-)-.1 F .775(sor which allo)
+108 148.8 R .775(ws k)-.25 F 1.075 -.15(ey b)-.1 H .775(indings and v)
+.15 F .774(ariable settings to be performed as the result of tests.)-.25
+F .774(There are four)5.774 F(parser directi)108 160.8 Q -.15(ve)-.25 G
+2.5(sa).15 G -.25(va)-2.7 G(ilable.).25 E F2($if)108 177.6 Q F1(The)144
+177.6 Q F2($if)2.962 E F1 .462(construct allo)2.962 F .463(ws bindings \
to be made based on the editing mode, the terminal being used,)-.25 F
-.787(or the application using)144 297.6 R F2 -.18(re)3.287 G(adline).18
-E F1 5.787(.T)C .787(he te)-5.787 F .787(xt of the test, after an)-.15 F
-3.288(yc)-.15 G .788(omparison operator)-3.288 F 3.288(,e)-.4 G .788
-(xtends to)-3.438 F(the end of the line; unless otherwise noted, no cha\
-racters are required to isolate it.)144 309.6 Q F2(mode)144 326.4 Q F1
-(The)180 326.4 Q F2(mode=)3.558 E F1 1.058(form of the)3.558 F F2($if)
-3.558 E F1(directi)3.558 E 1.358 -.15(ve i)-.25 H 3.558(su).15 G 1.058
-(sed to test whether)-3.558 F F2 -.18(re)3.557 G(adline).18 E F1 1.057
-(is in emacs or vi)3.557 F 3.065(mode. This)180 338.4 R .565
+.788(or the application using)144 189.6 R F2 -.18(re)3.288 G(adline).18
+E F1 5.788(.T)C .787(he te)-5.788 F .787(xt of the test, after an)-.15 F
+3.287(yc)-.15 G .787(omparison operator)-3.287 F 3.287(,e)-.4 G .787
+(xtends to)-3.437 F(the end of the line; unless otherwise noted, no cha\
+racters are required to isolate it.)144 201.6 Q F2(mode)144 218.4 Q F1
+(The)180 218.4 Q F2(mode=)3.557 E F1 1.057(form of the)3.557 F F2($if)
+3.557 E F1(directi)3.557 E 1.358 -.15(ve i)-.25 H 3.558(su).15 G 1.058
+(sed to test whether)-3.558 F F2 -.18(re)3.558 G(adline).18 E F1 1.058
+(is in emacs or vi)3.558 F 3.065(mode. This)180 230.4 R .565
(may be used in conjunction with the)3.065 F F2 .565(set k)3.065 F
-(eymap)-.1 E F1 .565(command, for instance, to)3.065 F .518
-(set bindings in the)180 350.4 R F0(emacs\255standar)3.018 E(d)-.37 E F1
-(and)3.018 E F0(emacs\255ctlx)3.018 E F1 -.1(ke)3.017 G .517
-(ymaps only if)-.05 F F2 -.18(re)3.017 G(adline).18 E F1 .517
-(is starting)3.017 F(out in emacs mode.)180 362.4 Q F2(term)144 379.2 Q
-F1(The)180 379.2 Q F2(term=)3.196 E F1 .696
-(form may be used to include terminal-speci\214c k)3.196 F .996 -.15
-(ey b)-.1 H .697(indings, perhaps to bind).15 F .654(the k)180 391.2 R
+(eymap)-.1 E F1 .565(command, for instance, to)3.065 F .517
+(set bindings in the)180 242.4 R F0(emacs\255standar)3.017 E(d)-.37 E F1
+(and)3.017 E F0(emacs\255ctlx)3.017 E F1 -.1(ke)3.018 G .518
+(ymaps only if)-.05 F F2 -.18(re)3.018 G(adline).18 E F1 .518
+(is starting)3.018 F(out in emacs mode.)180 254.4 Q F2(term)144 271.2 Q
+F1(The)180 271.2 Q F2(term=)3.197 E F1 .696
+(form may be used to include terminal-speci\214c k)3.197 F .996 -.15
+(ey b)-.1 H .696(indings, perhaps to bind).15 F .654(the k)180 283.2 R
.954 -.15(ey s)-.1 H .654(equences output by the terminal').15 F 3.154
(sf)-.55 G .654(unction k)-3.154 F -.15(ey)-.1 G 3.154(s. The).15 F -.1
-(wo)3.154 G .654(rd on the right side of).1 F(the)180 403.2 Q F2(=)3.231
-E F1 .731(is tested ag)3.231 F .732(ainst both the full name of the ter\
-minal and the portion of the terminal)-.05 F .16
-(name before the \214rst)180 415.2 R F2<ad>2.66 E F1 5.159(.T)C .159
+(wo)3.154 G .654(rd on the right side of).1 F(the)180 295.2 Q F2(=)3.232
+E F1 .732(is tested ag)3.232 F .732(ainst both the full name of the ter\
+minal and the portion of the terminal)-.05 F .159
+(name before the \214rst)180 307.2 R F2<ad>2.659 E F1 5.159(.T)C .159
(his allo)-5.159 F(ws)-.25 E F0(xterm)3.429 E F1 .159(to match both)
-2.979 F F0(xterm)3.429 E F1(and)2.979 E F0(xterm\255256color)3.429 E F1
-2.659(,f).73 G(or)-2.659 E(instance.)180 427.2 Q F2 -.1(ve)144 444 S
-(rsion).1 E F1(The)180 456 Q F2 -.1(ve)2.89 G(rsion).1 E F1 .391
-(test may be used to perform comparisons ag)2.89 F .391
-(ainst speci\214c)-.05 F F2 -.18(re)2.891 G(adline).18 E F1 -.15(ve)
-2.891 G(rsions.).15 E(The)180 468 Q F2 -.1(ve)2.571 G(rsion).1 E F1 -.15
-(ex)2.571 G .071(pands to the current).15 F F2 -.18(re)2.571 G(adline)
-.18 E F1 -.15(ve)2.571 G 2.571(rsion. The).15 F .07
-(set of comparison operators in-)2.571 F(cludes)180 480 Q F2(=)3.063 E
-F1 3.063(,\()C(and)-3.063 E F2(==)3.063 E F1(\),)A F2(!=)3.063 E F1(,)A
-F2(<=)3.063 E F1(,)A F2(>=)3.063 E F1(,)A F2(<)3.063 E F1 3.063(,a)C(nd)
--3.063 E F2(>)3.064 E F1 5.564(.T)C .564(he v)-5.564 F .564
+2.979 F F0(xterm)3.43 E F1(and)2.98 E F0(xterm\255256color)3.43 E F1
+2.66(,f).73 G(or)-2.66 E(instance.)180 319.2 Q F2 -.1(ve)144 336 S
+(rsion).1 E F1(The)180 348 Q F2 -.1(ve)2.891 G(rsion).1 E F1 .391
+(test may be used to perform comparisons ag)2.891 F .391
+(ainst speci\214c)-.05 F F2 -.18(re)2.89 G(adline).18 E F1 -.15(ve)2.89
+G(rsions.).15 E(The)180 360 Q F2 -.1(ve)2.57 G(rsion).1 E F1 -.15(ex)
+2.57 G .071(pands to the current).15 F F2 -.18(re)2.571 G(adline).18 E
+F1 -.15(ve)2.571 G 2.571(rsion. The).15 F .071
+(set of comparison operators in-)2.571 F(cludes)180 372 Q F2(=)3.064 E
+F1 3.064(,\()C(and)-3.064 E F2(==)3.064 E F1(\),)A F2(!=)3.064 E F1(,)A
+F2(<=)3.064 E F1(,)A F2(>=)3.064 E F1(,)A F2(<)3.064 E F1 3.064(,a)C(nd)
+-3.064 E F2(>)3.064 E F1 5.563(.T)C .563(he v)-5.563 F .563
(ersion number supplied on the right side)-.15 F .318
-(of the operator consists of a major v)180 492 R .318(ersion number)-.15
+(of the operator consists of a major v)180 384 R .318(ersion number)-.15
F 2.818(,a)-.4 G 2.818(no)-2.818 G .318
-(ptional decimal point, and an op-)-2.818 F .46(tional minor v)180 504 R
-.46(ersion \(e.g.,)-.15 F F2(7.1)2.96 E F1 2.96(\). If)B .461
-(the minor v)2.96 F .461(ersion is omitted, it def)-.15 F .461(aults to)
--.1 F F2(0)2.961 E F1 5.461(.T)C .461(he op-)-5.461 F .83
-(erator may be separated from the string)180 516 R F2 -.1(ve)3.329 G
-(rsion).1 E F1 .829(and from the v)3.329 F .829(ersion number ar)-.15 F
-(gument)-.18 E(by whitespace.)180 528 Q F0(application)144.33 544.8 Q F1
-(The)180 556.8 Q F0(application)3.226 E F1 .726
+(ptional decimal point, and an op-)-2.818 F .461(tional minor v)180 396
+R .461(ersion \(e.g.,)-.15 F F2(7.1)2.961 E F1 2.961(\). If)B .461
+(the minor v)2.961 F .461(ersion is omitted, it def)-.15 F .46(aults to)
+-.1 F F2(0)2.96 E F1 5.46(.T)C .46(he op-)-5.46 F .829
+(erator may be separated from the string)180 408 R F2 -.1(ve)3.329 G
+(rsion).1 E F1 .829(and from the v)3.329 F .83(ersion number ar)-.15 F
+(gument)-.18 E(by whitespace.)180 420 Q F0(application)144.33 436.8 Q F1
+(The)180 448.8 Q F0(application)3.226 E F1 .726
(construct is used to include application-speci\214c settings.)3.226 F
-.726(Each program)5.726 F .432(using the)180 568.8 R F2 -.18(re)2.932 G
-(adline).18 E F1 .432(library sets the)2.932 F F0 .431(application name)
-2.932 F F1 2.931(,a)C .431(nd an initialization \214le can test for)
--2.931 F 2.535(ap)180 580.8 S .035(articular v)-2.535 F 2.535
-(alue. This)-.25 F .036(could be used to bind k)2.535 F .336 -.15(ey s)
--.1 H .036(equences to functions useful for a spe-).15 F .397
-(ci\214c program.)180 592.8 R -.15(Fo)5.397 G 2.896(ri).15 G .396
+.726(Each program)5.726 F .431(using the)180 460.8 R F2 -.18(re)2.931 G
+(adline).18 E F1 .431(library sets the)2.931 F F0 .431(application name)
+2.931 F F1 2.931(,a)C .432(nd an initialization \214le can test for)
+-2.931 F 2.536(ap)180 472.8 S .036(articular v)-2.536 F 2.536
+(alue. This)-.25 F .036(could be used to bind k)2.536 F .336 -.15(ey s)
+-.1 H .035(equences to functions useful for a spe-).15 F .396
+(ci\214c program.)180 484.8 R -.15(Fo)5.396 G 2.896(ri).15 G .396
(nstance, the follo)-2.896 F .396(wing command adds a k)-.25 F .696 -.15
-(ey s)-.1 H .396(equence that quotes the).15 F(current or pre)180 604.8
+(ey s)-.1 H .397(equence that quotes the).15 F(current or pre)180 496.8
Q(vious w)-.25 E(ord in)-.1 E F2(bash)2.5 E F1(:)A/F3 10/Courier-Bold@0
-SF($if)180 621.6 Q/F4 10/Courier@0 SF(Bash)6 E 6(#Q)180 633.6 S
+SF($if)180 513.6 Q/F4 10/Courier@0 SF(Bash)6 E 6(#Q)180 525.6 S
(uote the current or previous word)-6 E("\\C-xq": "\\eb\\"\\ef\\"")180
-645.6 Q F3($endif)180 657.6 Q F0(variable)144.29 674.4 Q F1(The)180
-686.4 Q F0(variable)3.539 E F1 1.039(construct pro)3.539 F 1.039
+537.6 Q F3($endif)180 549.6 Q F0(variable)144.29 566.4 Q F1(The)180
+578.4 Q F0(variable)3.54 E F1 1.039(construct pro)3.539 F 1.039
(vides simple equality tests for)-.15 F F2 -.18(re)3.539 G(adline).18 E
-F1 -.25(va)3.539 G 1.039(riables and v).25 F(alues.)-.25 E .08
-(The permitted comparison operators are)180 698.4 R F0(=)2.579 E F1(,)A
+F1 -.25(va)3.539 G 1.039(riables and v).25 F(alues.)-.25 E .079
+(The permitted comparison operators are)180 590.4 R F0(=)2.579 E F1(,)A
F0(==)2.579 E F1 2.579(,a)C(nd)-2.579 E F0(!=)2.579 E F1 5.079(.T)C .079
-(he v)-5.079 F .079(ariable name must be sepa-)-.25 F .98(rated from th\
-e comparison operator by whitespace; the operator may be separated from)
-180 710.4 R 1.588(the v)180 722.4 R 1.587
+(he v)-5.079 F .08(ariable name must be sepa-)-.25 F .98(rated from the\
+ comparison operator by whitespace; the operator may be separated from)
+180 602.4 R 1.587(the v)180 614.4 R 1.587
(alue on the right hand side by whitespace.)-.25 F 1.587
-(String and boolean v)6.587 F 1.587(ariables may be)-.25 F(GNU Bash 5.3)
-72 768 Q(2025 April 7)149.285 E(52)198.445 E 0 Cg EP
-%%Page: 53 53
+(String and boolean v)6.587 F 1.588(ariables may be)-.25 F 2.5
+(tested. Boolean)180 626.4 R -.25(va)2.5 G(riables must be tested ag).25
+E(ainst the v)-.05 E(alues)-.25 E F0(on)2.5 E F1(and)2.5 E F0(of)2.5 E
+(f)-.18 E F1(.)A F2($else)108 643.2 Q F1(Commands in this branch of the)
+144 643.2 Q F2($if)2.5 E F1(directi)2.5 E .3 -.15(ve a)-.25 H(re e).15 E
+-.15(xe)-.15 G(cuted if the test f).15 E(ails.)-.1 E F2($endif)108 660 Q
+F1(This command, as seen in the pre)144 660 Q(vious e)-.25 E
+(xample, terminates an)-.15 E F2($if)2.5 E F1(command.)2.5 E F2
+($include)108 676.8 Q F1 .411(This directi)144 688.8 R .711 -.15(ve t)
+-.25 H(ak).15 E .411(es a single \214lename as an ar)-.1 F .41
+(gument and reads commands and k)-.18 F .71 -.15(ey b)-.1 H .41
+(indings from).15 F(that \214le.)144 700.8 Q -.15(Fo)5 G 2.5(re).15 G
+(xample, the follo)-2.65 E(wing directi)-.25 E .3 -.15(ve w)-.25 H
+(ould read).05 E F0(/etc/inputr)4.166 E(c)-.37 E F1(:)1.666 E F2
+($include)144 717.6 Q F0(/etc/inputr)5.833 E(c)-.37 E F1(GNU Bash 5.3)72
+768 Q(2026 January 14)141.79 E(53)190.95 E 0 Cg EP
+%%Page: 54 54
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E 2.5(tested. Boolean)180 84 R -.25(va)2.5 G
-(riables must be tested ag).25 E(ainst the v)-.05 E(alues)-.25 E F0(on)
-2.5 E F1(and)2.5 E F0(of)2.5 E(f)-.18 E F1(.)A/F2 10/Times-Bold@0 SF
-($else)108 100.8 Q F1(Commands in this branch of the)144 100.8 Q F2($if)
-2.5 E F1(directi)2.5 E .3 -.15(ve a)-.25 H(re e).15 E -.15(xe)-.15 G
-(cuted if the test f).15 E(ails.)-.1 E F2($endif)108 117.6 Q F1
-(This command, as seen in the pre)144 117.6 Q(vious e)-.25 E
-(xample, terminates an)-.15 E F2($if)2.5 E F1(command.)2.5 E F2
-($include)108 134.4 Q F1 .41(This directi)144 146.4 R .71 -.15(ve t)-.25
-H(ak).15 E .41(es a single \214lename as an ar)-.1 F .411
-(gument and reads commands and k)-.18 F .711 -.15(ey b)-.1 H .411
-(indings from).15 F(that \214le.)144 158.4 Q -.15(Fo)5 G 2.5(re).15 G
-(xample, the follo)-2.65 E(wing directi)-.25 E .3 -.15(ve w)-.25 H
-(ould read).05 E F0(/etc/inputr)4.166 E(c)-.37 E F1(:)1.666 E F2
-($include)144 175.2 Q F0(/etc/inputr)5.833 E(c)-.37 E F2(Sear)87 192 Q
-(ching)-.18 E(Readline)108 204 Q F1(pro)3.163 E .663
+.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(Sear)87 84 Q(ching)-.18 E
+(Readline)108 96 Q F1(pro)3.163 E .663
(vides commands for searching through the command history \(see)-.15 F
/F3 9/Times-Bold@0 SF(HIST)3.163 E(OR)-.162 E(Y)-.315 E F1(belo)2.913 E
-.663(w\) for lines)-.25 F(containing a speci\214ed string.)108 216 Q
+.663(w\) for lines)-.25 F(containing a speci\214ed string.)108 108 Q
(There are tw)5 E 2.5(os)-.1 G(earch modes:)-2.5 E F0(incr)2.51 E
(emental)-.37 E F1(and)3.01 E F0(non-incr)2.86 E(emental)-.37 E F1(.).51
-E .697(Incremental searches be)108 232.8 R .697
+E .698(Incremental searches be)108 124.8 R .698
(gin before the user has \214nished typing the search string.)-.15 F
-.698(As each character of the)5.698 F .979(search string is typed,)108
-244.8 R F2 -.18(re)3.479 G(adline).18 E F1 .978(displays the ne)3.478 F
+.697(As each character of the)5.697 F .978(search string is typed,)108
+136.8 R F2 -.18(re)3.478 G(adline).18 E F1 .978(displays the ne)3.478 F
.978(xt entry from the history matching the string typed so f)-.15 F(ar)
--.1 E(.)-.55 E .528(An incremental search requires only as man)108 256.8
+-.1 E(.)-.55 E .529(An incremental search requires only as man)108 148.8
R 3.029(yc)-.15 G .529
-(haracters as needed to \214nd the desired history entry)-3.029 F 5.529
-(.W)-.65 G(hen)-5.529 E .517(using emacs editing mode, type)108 268.8 R
+(haracters as needed to \214nd the desired history entry)-3.029 F 5.528
+(.W)-.65 G(hen)-5.528 E .517(using emacs editing mode, type)108 160.8 R
F2(C\255r)3.017 E F1 .517(to search backw)3.017 F .517
(ard in the history for a particular string.)-.1 F -.8(Ty)5.517 G(ping)
-.8 E F2(C\255s)3.017 E F1 .452(searches forw)108 280.8 R .452
+.8 E F2(C\255s)3.018 E F1 .453(searches forw)108 172.8 R .452
(ard through the history)-.1 F 5.452(.T)-.65 G .452
(he characters present in the v)-5.452 F .452(alue of the)-.25 F F2
-(isear)2.953 E(ch-terminators)-.18 E F1 -.25(va)2.953 G(ri-).25 E .747
-(able are used to terminate an incremental search.)108 292.8 R .747
-(If that v)5.747 F .746(ariable has not been assigned a v)-.25 F(alue,)
--.25 E F0(ESC)3.246 E F1(and)3.246 E F2(C\255j)108 304.8 Q F1 1.776
-(terminate an incremental search.)4.276 F F2(C\255g)6.776 E F1 1.777
-(aborts an incremental search and restores the original line.)4.276 F(W\
+(isear)2.952 E(ch-terminators)-.18 E F1 -.25(va)2.952 G(ri-).25 E .746
+(able are used to terminate an incremental search.)108 184.8 R .747
+(If that v)5.747 F .747(ariable has not been assigned a v)-.25 F(alue,)
+-.25 E F0(ESC)3.247 E F1(and)3.247 E F2(C\255j)108 196.8 Q F1 1.777
+(terminate an incremental search.)4.277 F F2(C\255g)6.777 E F1 1.776
+(aborts an incremental search and restores the original line.)4.277 F(W\
hen the search is terminated, the history entry containing the search s\
-tring becomes the current line.)108 316.8 Q 2.052 -.8(To \214)108 333.6
+tring becomes the current line.)108 208.8 Q 2.051 -.8(To \214)108 225.6
T .452(nd other matching entries in the history list, type).8 F F2
-(C\255r)2.952 E F1(or)2.952 E F2(C\255s)2.952 E F1 .451(as appropriate.)
-2.952 F .451(This searches backw)5.451 F(ard)-.1 E .134(or forw)108
-345.6 R .134(ard in the history for the ne)-.1 F .135
-(xt entry matching the search string typed so f)-.15 F(ar)-.1 E 5.135
-(.A)-.55 G .435 -.15(ny o)-5.135 H .135(ther k).15 F .435 -.15(ey s)-.1
-H(equence).15 E .716(bound to a)108 357.6 R F2 -.18(re)3.216 G(adline)
-.18 E F1 .715(command terminates the search and e)3.216 F -.15(xe)-.15 G
-.715(cutes that command.).15 F -.15(Fo)5.715 G 3.215(ri).15 G .715
-(nstance, a ne)-3.215 F(wline)-.25 E .601
-(terminates the search and accepts the line, thereby e)108 369.6 R -.15
-(xe)-.15 G .601(cuting the command from the history list.).15 F 3.102
-(Am)5.602 G -.15(ove)-3.102 G(-).15 E
-(ment command will terminate the search, mak)108 381.6 Q 2.5(et)-.1 G
+(C\255r)2.952 E F1(or)2.952 E F2(C\255s)2.952 E F1 .452(as appropriate.)
+2.952 F .452(This searches backw)5.452 F(ard)-.1 E .135(or forw)108
+237.6 R .135(ard in the history for the ne)-.1 F .135
+(xt entry matching the search string typed so f)-.15 F(ar)-.1 E 5.134
+(.A)-.55 G .434 -.15(ny o)-5.134 H .134(ther k).15 F .434 -.15(ey s)-.1
+H(equence).15 E .715(bound to a)108 249.6 R F2 -.18(re)3.215 G(adline)
+.18 E F1 .715(command terminates the search and e)3.215 F -.15(xe)-.15 G
+.715(cutes that command.).15 F -.15(Fo)5.716 G 3.216(ri).15 G .716
+(nstance, a ne)-3.216 F(wline)-.25 E .602
+(terminates the search and accepts the line, thereby e)108 261.6 R -.15
+(xe)-.15 G .601(cuting the command from the history list.).15 F 3.101
+(Am)5.601 G -.15(ove)-3.101 G(-).15 E
+(ment command will terminate the search, mak)108 273.6 Q 2.5(et)-.1 G
(he last line found the current line, and be)-2.5 E(gin editing.)-.15 E
-F2(Readline)108 398.4 Q F1 1.476
-(remembers the last incremental search string.)3.976 F 1.476(If tw)6.476
-F(o)-.1 E F2(C\255r)3.976 E F1 3.976(sa)C 1.475(re typed without an)
--3.976 F 3.975(yi)-.15 G(nterv)-3.975 E(ening)-.15 E
-(characters de\214ning a ne)108 410.4 Q 2.5(ws)-.25 G(earch string,)-2.5
+F2(Readline)108 290.4 Q F1 1.475
+(remembers the last incremental search string.)3.975 F 1.476(If tw)6.476
+F(o)-.1 E F2(C\255r)3.976 E F1 3.976(sa)C 1.476(re typed without an)
+-3.976 F 3.976(yi)-.15 G(nterv)-3.976 E(ening)-.15 E
+(characters de\214ning a ne)108 302.4 Q 2.5(ws)-.25 G(earch string,)-2.5
E F2 -.18(re)2.5 G(adline).18 E F1(uses an)2.5 E 2.5(yr)-.15 G
(emembered search string.)-2.5 E .012(Non-incremental searches read the\
entire search string before starting to search for matching history en\
-tries.)108 427.2 R(The search string may be typed by the user or be par\
-t of the contents of the current line.)108 439.2 Q F2
-(Readline Command Names)87 456 Q F1 1.392(The follo)108 468 R 1.391
+tries.)108 319.2 R(The search string may be typed by the user or be par\
+t of the contents of the current line.)108 331.2 Q F2
+(Readline Command Names)87 348 Q F1 1.391(The follo)108 360 R 1.391
(wing is a list of the names of the commands and the def)-.25 F 1.391
(ault k)-.1 F 1.691 -.15(ey s)-.1 H 1.391(equences to which the).15 F
-3.891(ya)-.15 G(re)-3.891 E 2.5(bound. Command)108 480 R
+3.892(ya)-.15 G(re)-3.892 E 2.5(bound. Command)108 372 R
(names without an accompan)2.5 E(ying k)-.15 E .3 -.15(ey s)-.1 H
-(equence are unbound by def).15 E(ault.)-.1 E .054(In the follo)108
-496.8 R .054(wing descriptions,)-.25 F F0(point)2.554 E F1 .055
-(refers to the current cursor position, and)2.554 F F0(mark)2.555 E F1
-.055(refers to a cursor position)2.555 F(sa)108 508.8 Q -.15(ve)-.2 G
-2.679(db).15 G 2.679(yt)-2.679 G(he)-2.679 E F2(set\255mark)2.679 E F1
-2.679(command. The)2.679 F(te)2.679 E .178
+(equence are unbound by def).15 E(ault.)-.1 E .055(In the follo)108
+388.8 R .055(wing descriptions,)-.25 F F0(point)2.555 E F1 .055
+(refers to the current cursor position, and)2.555 F F0(mark)2.555 E F1
+.054(refers to a cursor position)2.554 F(sa)108 400.8 Q -.15(ve)-.2 G
+2.678(db).15 G 2.678(yt)-2.678 G(he)-2.678 E F2(set\255mark)2.678 E F1
+2.678(command. The)2.678 F(te)2.678 E .178
(xt between the point and mark is referred to as the)-.15 F F0 -.37(re)
-2.678 G(gion)-.03 E F1(.)A F2(Read-)5.178 E(line)108 520.8 Q F1 .381
-(has the concept of an)2.881 F F0 .381(active r)2.881 F -.4(eg)-.37 G
+2.679 G(gion)-.03 E F1(.)A F2(Read-)5.179 E(line)108 412.8 Q F1 .382
+(has the concept of an)2.882 F F0 .381(active r)2.881 F -.4(eg)-.37 G
(ion).4 E F1 2.881(:w)C .381(hen the re)-2.881 F .381(gion is acti)-.15
-F -.15(ve)-.25 G(,).15 E F2 -.18(re)2.881 G(adline).18 E F1 .382
+F -.15(ve)-.25 G(,).15 E F2 -.18(re)2.881 G(adline).18 E F1 .381
(redisplay highlights the re)2.881 F(gion)-.15 E 1.027(using the v)108
-532.8 R 1.027(alue of the)-.25 F F2(acti)3.527 E -.1(ve)-.1 G<ad72>.1 E
+424.8 R 1.027(alue of the)-.25 F F2(acti)3.527 E -.1(ve)-.1 G<ad72>.1 E
(egion\255start\255color)-.18 E F1 -.25(va)3.527 G 3.527(riable. The).25
F F2(enable\255acti)3.527 E -.1(ve)-.1 G<ad72>.1 E 1.027(egion r)-.18 F
(eadline)-.18 E F1 -.25(va)3.527 G(riable).25 E(turns this on and of)108
-544.8 Q 2.5(f. Se)-.25 F -.15(ve)-.25 G(ral commands set the re).15 E
+436.8 Q 2.5(f. Se)-.25 F -.15(ve)-.25 G(ral commands set the re).15 E
(gion to acti)-.15 E -.15(ve)-.25 G 2.5(;t).15 G(hose are noted belo)
--2.5 E -.65(w.)-.25 G F2(Commands f)87 561.6 Q(or Mo)-.25 E(ving)-.1 E
-(beginning\255of\255line \(C\255a\))108 573.6 Q F1(Mo)144 585.6 Q .3
+-2.5 E -.65(w.)-.25 G F2(Commands f)87 453.6 Q(or Mo)-.25 E(ving)-.1 E
+(beginning\255of\255line \(C\255a\))108 465.6 Q F1(Mo)144 477.6 Q .3
-.15(ve t)-.15 H 2.5(ot).15 G(he start of the current line.)-2.5 E
(This may also be bound to the Home k)5 E .3 -.15(ey o)-.1 H 2.5(ns).15
G(ome k)-2.5 E -.15(ey)-.1 G(boards.).15 E F2
-(end\255of\255line \(C\255e\))108 597.6 Q F1(Mo)144 609.6 Q .3 -.15
+(end\255of\255line \(C\255e\))108 489.6 Q F1(Mo)144 501.6 Q .3 -.15
(ve t)-.15 H 2.5(ot).15 G(he end of the line.)-2.5 E
(This may also be bound to the End k)5 E .3 -.15(ey o)-.1 H 2.5(ns).15 G
-(ome k)-2.5 E -.15(ey)-.1 G(boards.).15 E F2 -.25(fo)108 621.6 S
-(rward\255char \(C\255f\)).25 E F1(Mo)144 633.6 Q .3 -.15(ve f)-.15 H
+(ome k)-2.5 E -.15(ey)-.1 G(boards.).15 E F2 -.25(fo)108 513.6 S
+(rward\255char \(C\255f\)).25 E F1(Mo)144 525.6 Q .3 -.15(ve f)-.15 H
(orw).15 E(ard a character)-.1 E 5(.T)-.55 G
(his may also be bound to the right arro)-5 E 2.5(wk)-.25 G .3 -.15
(ey o)-2.6 H 2.5(ns).15 G(ome k)-2.5 E -.15(ey)-.1 G(boards.).15 E F2
-(backward\255char \(C\255b\))108 645.6 Q F1(Mo)144 657.6 Q .3 -.15(ve b)
+(backward\255char \(C\255b\))108 537.6 Q F1(Mo)144 549.6 Q .3 -.15(ve b)
-.15 H(ack a character).15 E 5(.T)-.55 G
(his may also be bound to the left arro)-5 E 2.5(wk)-.25 G .3 -.15(ey o)
-2.6 H 2.5(ns).15 G(ome k)-2.5 E -.15(ey)-.1 G(boards.).15 E F2 -.25(fo)
-108 669.6 S(rward\255w).25 E(ord \(M\255f\))-.1 E F1(Mo)144 681.6 Q .822
--.15(ve f)-.15 H(orw).15 E .522(ard to the end of the ne)-.1 F .523
-(xt w)-.15 F 3.023(ord. W)-.1 F .523
+108 561.6 S(rward\255w).25 E(ord \(M\255f\))-.1 E F1(Mo)144 573.6 Q .823
+-.15(ve f)-.15 H(orw).15 E .523(ard to the end of the ne)-.1 F .523
+(xt w)-.15 F 3.023(ord. W)-.1 F .522
(ords are composed of alphanumeric characters \(let-)-.8 F
-(ters and digits\).)144 693.6 Q F2(backward\255w)108 705.6 Q
-(ord \(M\255b\))-.1 E F1(Mo)144 717.6 Q 1.71 -.15(ve b)-.15 H 1.41
+(ters and digits\).)144 585.6 Q F2(backward\255w)108 597.6 Q
+(ord \(M\255b\))-.1 E F1(Mo)144 609.6 Q 1.71 -.15(ve b)-.15 H 1.41
(ack to the start of the current or pre).15 F 1.41(vious w)-.25 F 3.91
(ord. W)-.1 F 1.41(ords are composed of alphanumeric)-.8 F
-(characters \(letters and digits\).)144 729.6 Q(GNU Bash 5.3)72 768 Q
-(2025 April 7)149.285 E(53)198.445 E 0 Cg EP
-%%Page: 54 54
+(characters \(letters and digits\).)144 621.6 Q F2(shell\255f)108 633.6
+Q(orward\255w)-.25 E(ord \(M\255C\255f\))-.1 E F1(Mo)144 645.6 Q .784
+-.15(ve f)-.15 H(orw).15 E .484(ard to the end of the ne)-.1 F .484
+(xt w)-.15 F 2.984(ord. W)-.1 F .484
+(ords are delimited by non-quoted shell metacharac-)-.8 F(ters.)144
+657.6 Q F2(shell\255backward\255w)108 669.6 Q(ord \(M\255C\255b\))-.1 E
+F1(Mo)144 681.6 Q .908 -.15(ve b)-.15 H .609
+(ack to the start of the current or pre).15 F .609(vious w)-.25 F 3.109
+(ord. W)-.1 F .609(ords are delimited by non-quoted shell)-.8 F
+(metacharacters.)144 693.6 Q F2(pr)108 705.6 Q -.15(ev)-.18 G
+(ious\255scr).15 E(een\255line)-.18 E F1 .891(Attempt to mo)144 717.6 R
+1.191 -.15(ve p)-.15 H .891(oint to the same ph).15 F .891
+(ysical screen column on the pre)-.05 F .89(vious ph)-.25 F .89
+(ysical screen line.)-.05 F .91(This will not ha)144 729.6 R 1.21 -.15
+(ve t)-.2 H .91(he desired ef).15 F .91(fect if the current)-.25 F F2
+-.18(re)3.411 G(adline).18 E F1 .911(line does not tak)3.411 F 3.411(eu)
+-.1 G 3.411(pm)-3.411 G .911(ore than one)-3.411 F(GNU Bash 5.3)72 768 Q
+(2026 January 14)141.79 E(54)190.95 E 0 Cg EP
+%%Page: 55 55
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(shell\255f)108 84 Q
-(orward\255w)-.25 E(ord \(M\255C\255f\))-.1 E F1(Mo)144 96 Q .784 -.15
-(ve f)-.15 H(orw).15 E .484(ard to the end of the ne)-.1 F .484(xt w)
--.15 F 2.984(ord. W)-.1 F .484
-(ords are delimited by non-quoted shell metacharac-)-.8 F(ters.)144 108
-Q F2(shell\255backward\255w)108 120 Q(ord \(M\255C\255b\))-.1 E F1(Mo)
-144 132 Q .909 -.15(ve b)-.15 H .609
-(ack to the start of the current or pre).15 F .609(vious w)-.25 F 3.109
-(ord. W)-.1 F .608(ords are delimited by non-quoted shell)-.8 F
-(metacharacters.)144 144 Q F2(pr)108 156 Q -.15(ev)-.18 G(ious\255scr)
-.15 E(een\255line)-.18 E F1 .89(Attempt to mo)144 168 R 1.19 -.15(ve p)
--.15 H .89(oint to the same ph).15 F .891
-(ysical screen column on the pre)-.05 F .891(vious ph)-.25 F .891
-(ysical screen line.)-.05 F .911(This will not ha)144 180 R 1.211 -.15
-(ve t)-.2 H .911(he desired ef).15 F .911(fect if the current)-.25 F F2
--.18(re)3.411 G(adline).18 E F1 .91(line does not tak)3.41 F 3.41(eu)-.1
-G 3.41(pm)-3.41 G .91(ore than one)-3.41 F(ph)144 192 Q(ysical line or \
-if point is not greater than the length of the prompt plus the screen w\
-idth.)-.05 E F2(next\255scr)108 204 Q(een\255line)-.18 E F1 .481
-(Attempt to mo)144 216 R .781 -.15(ve p)-.15 H .481(oint to the same ph)
-.15 F .481(ysical screen column on the ne)-.05 F .482(xt ph)-.15 F .482
-(ysical screen line.)-.05 F(This)5.482 E .05(will not ha)144 228 R .35
--.15(ve t)-.2 H .05(he desired ef).15 F .05(fect if the current)-.25 F
-F2 -.18(re)2.549 G(adline).18 E F1 .049(line does not tak)2.549 F 2.549
-(eu)-.1 G 2.549(pm)-2.549 G .049(ore than one ph)-2.549 F(ysical)-.05 E
-.033(line or if the length of the current)144 240 R F2 -.18(re)2.533 G
-(adline).18 E F1 .034
-(line is not greater than the length of the prompt plus the)2.533 F
-(screen width.)144 252 Q F2(clear\255display \(M\255C\255l\))108 264 Q
-F1 1.499(Clear the screen and, if possible, the terminal')144 276 R
-3.999(ss)-.55 G 1.498(crollback b)-3.999 F(uf)-.2 E(fer)-.25 E 3.998(,t)
--.4 G 1.498(hen redra)-3.998 F 3.998(wt)-.15 G 1.498(he current line,)
--3.998 F(lea)144 288 Q(ving the current line at the top of the screen.)
--.2 E F2(clear\255scr)108 300 Q(een \(C\255l\))-.18 E F1 1.36
-(Clear the screen, then redra)144 312 R 3.86(wt)-.15 G 1.36
+.25 E F1(\(1\)).95 E(ph)144 84 Q(ysical line or if point is not greater\
+ than the length of the prompt plus the screen width.)-.05 E/F2 10
+/Times-Bold@0 SF(next\255scr)108 96 Q(een\255line)-.18 E F1 .482
+(Attempt to mo)144 108 R .782 -.15(ve p)-.15 H .481(oint to the same ph)
+.15 F .481(ysical screen column on the ne)-.05 F .481(xt ph)-.15 F .481
+(ysical screen line.)-.05 F(This)5.481 E .049(will not ha)144 120 R .349
+-.15(ve t)-.2 H .049(he desired ef).15 F .049(fect if the current)-.25 F
+F2 -.18(re)2.549 G(adline).18 E F1 .05(line does not tak)2.549 F 2.55
+(eu)-.1 G 2.55(pm)-2.55 G .05(ore than one ph)-2.55 F(ysical)-.05 E .034
+(line or if the length of the current)144 132 R F2 -.18(re)2.534 G
+(adline).18 E F1 .033
+(line is not greater than the length of the prompt plus the)2.534 F
+(screen width.)144 144 Q F2(clear\255display \(M\255C\255l\))108 156 Q
+F1 1.498(Clear the screen and, if possible, the terminal')144 168 R
+3.999(ss)-.55 G 1.499(crollback b)-3.999 F(uf)-.2 E(fer)-.25 E 3.999(,t)
+-.4 G 1.499(hen redra)-3.999 F 3.999(wt)-.15 G 1.499(he current line,)
+-3.999 F(lea)144 180 Q(ving the current line at the top of the screen.)
+-.2 E F2(clear\255scr)108 192 Q(een \(C\255l\))-.18 E F1 1.36
+(Clear the screen, then redra)144 204 R 3.86(wt)-.15 G 1.36
(he current line, lea)-3.86 F 1.36
-(ving the current line at the top of the screen.)-.2 F -.4(Wi)144 324 S
+(ving the current line at the top of the screen.)-.2 F -.4(Wi)144 216 S
(th a numeric ar).4 E
(gument, refresh the current line without clearing the screen.)-.18 E F2
--.18(re)108 336 S(draw\255curr).18 E(ent\255line)-.18 E F1
-(Refresh the current line.)144 348 Q F2(Commands f)87 364.8 Q
+-.18(re)108 228 S(draw\255curr).18 E(ent\255line)-.18 E F1
+(Refresh the current line.)144 240 Q F2(Commands f)87 256.8 Q
(or Manipulating the History)-.25 E(accept\255line \(Newline, Retur)108
-376.8 Q(n\))-.15 E F1 .159(Accept the line re)144 388.8 R -.05(ga)-.15 G
-.159(rdless of where the cursor is.).05 F .158
-(If this line is non-empty)5.158 F 2.658(,a)-.65 G .158
-(dd it to the history list)-2.658 F .337(according to the state of the)
-144 400.8 R/F3 9/Times-Bold@0 SF(HISTCONTR)2.838 E(OL)-.27 E F1(and)
+268.8 Q(n\))-.15 E F1 .158(Accept the line re)144 280.8 R -.05(ga)-.15 G
+.158(rdless of where the cursor is.).05 F .158
+(If this line is non-empty)5.158 F 2.659(,a)-.65 G .159
+(dd it to the history list)-2.659 F .338(according to the state of the)
+144 292.8 R/F3 9/Times-Bold@0 SF(HISTCONTR)2.838 E(OL)-.27 E F1(and)
2.588 E F2(HISTIGNORE)2.838 E F1 -.25(va)2.838 G 2.838(riables. If).25 F
-.338(the line is a modi-)2.838 F
+.337(the line is a modi-)2.838 F
(\214ed history line, restore the history line to its original state.)
-144 412.8 Q F2(pr)108 424.8 Q -.15(ev)-.18 G(ious\255history \(C\255p\))
-.15 E F1 1.669(Fetch the pre)144 436.8 R 1.668
+144 304.8 Q F2(pr)108 316.8 Q -.15(ev)-.18 G(ious\255history \(C\255p\))
+.15 E F1 1.668(Fetch the pre)144 328.8 R 1.668
(vious command from the history list, mo)-.25 F 1.668
-(ving back in the list.)-.15 F 1.668(This may also be)6.668 F
-(bound to the up arro)144 448.8 Q 2.5(wk)-.25 G .3 -.15(ey o)-2.6 H 2.5
+(ving back in the list.)-.15 F 1.669(This may also be)6.668 F
+(bound to the up arro)144 340.8 Q 2.5(wk)-.25 G .3 -.15(ey o)-2.6 H 2.5
(ns).15 G(ome k)-2.5 E -.15(ey)-.1 G(boards.).15 E F2
-(next\255history \(C\255n\))108 460.8 Q F1 .214(Fetch the ne)144 472.8 R
+(next\255history \(C\255n\))108 352.8 Q F1 .215(Fetch the ne)144 364.8 R
.214(xt command from the history list, mo)-.15 F .214(ving forw)-.15 F
.214(ard in the list.)-.1 F .214(This may also be bound)5.214 F
-(to the do)144 484.8 Q(wn arro)-.25 E 2.5(wk)-.25 G .3 -.15(ey o)-2.6 H
+(to the do)144 376.8 Q(wn arro)-.25 E 2.5(wk)-.25 G .3 -.15(ey o)-2.6 H
2.5(ns).15 G(ome k)-2.5 E -.15(ey)-.1 G(boards.).15 E F2
-(beginning\255of\255history \(M\255<\))108 496.8 Q F1(Mo)144 508.8 Q .3
+(beginning\255of\255history \(M\255<\))108 388.8 Q F1(Mo)144 400.8 Q .3
-.15(ve t)-.15 H 2.5(ot).15 G(he \214rst line in the history)-2.5 E(.)
--.65 E F2(end\255of\255history \(M\255>\))108 520.8 Q F1(Mo)144 532.8 Q
+-.65 E F2(end\255of\255history \(M\255>\))108 412.8 Q F1(Mo)144 424.8 Q
.3 -.15(ve t)-.15 H 2.5(ot).15 G(he end of the input history)-2.5 E 2.5
(,i)-.65 G(.e., the line currently being entered.)-2.5 E F2
-(operate\255and\255get\255next \(C\255o\))108 544.8 Q F1 .24
-(Accept the current line for e)144 556.8 R -.15(xe)-.15 G .24
+(operate\255and\255get\255next \(C\255o\))108 436.8 Q F1 .24
+(Accept the current line for e)144 448.8 R -.15(xe)-.15 G .24
(cution as if a ne).15 F .24(wline had been entered, and fetch the ne)
--.25 F .24(xt line rela-)-.15 F(ti)144 568.8 Q .61 -.15(ve t)-.25 H 2.81
+-.25 F .24(xt line rela-)-.15 F(ti)144 460.8 Q .61 -.15(ve t)-.25 H 2.81
(ot).15 G .31(he current line from the history for editing.)-2.81 F 2.81
(An)5.31 G .31(umeric ar)-2.81 F .31
(gument, if supplied, speci\214es the)-.18 F
-(history entry to use instead of the current line.)144 580.8 Q F2
-(fetch\255history)108 592.8 Q F1 -.4(Wi)144 604.8 S .257
-(th a numeric ar).4 F .257
-(gument, fetch that entry from the history list and mak)-.18 F 2.756(ei)
--.1 G 2.756(tt)-2.756 G .256(he current line.)-2.756 F -.4(Wi)5.256 G
-(th-).4 E(out an ar)144 616.8 Q(gument, mo)-.18 E .3 -.15(ve b)-.15 H
+(history entry to use instead of the current line.)144 472.8 Q F2
+(fetch\255history)108 484.8 Q F1 -.4(Wi)144 496.8 S .256
+(th a numeric ar).4 F .256
+(gument, fetch that entry from the history list and mak)-.18 F 2.757(ei)
+-.1 G 2.757(tt)-2.757 G .257(he current line.)-2.757 F -.4(Wi)5.257 G
+(th-).4 E(out an ar)144 508.8 Q(gument, mo)-.18 E .3 -.15(ve b)-.15 H
(ack to the \214rst entry in the history list.).15 E F2 -2.29 -.18(re v)
-108 628.8 T(erse\255sear).08 E(ch\255history \(C\255r\))-.18 E F1 1.312
-(Search backw)144 640.8 R 1.312(ard starting at the current line and mo)
+108 520.8 T(erse\255sear).08 E(ch\255history \(C\255r\))-.18 E F1 1.313
+(Search backw)144 532.8 R 1.312(ard starting at the current line and mo)
-.1 F 1.312(ving \231up\232 through the history as necessary)-.15 F(.)
--.65 E .29(This is an incremental search.)144 652.8 R .29
+-.65 E .29(This is an incremental search.)144 544.8 R .29
(This command sets the re)5.29 F .29(gion to the matched te)-.15 F .29
-(xt and acti)-.15 F -.25(va)-.25 G .29(tes the).25 F(re)144 664.8 Q
-(gion.)-.15 E F2 -.25(fo)108 676.8 S(rward\255sear).25 E
-(ch\255history \(C\255s\))-.18 E F1 .972(Search forw)144 688.8 R .973
+(xt and acti)-.15 F -.25(va)-.25 G .29(tes the).25 F(re)144 556.8 Q
+(gion.)-.15 E F2 -.25(fo)108 568.8 S(rward\255sear).25 E
+(ch\255history \(C\255s\))-.18 E F1 .973(Search forw)144 580.8 R .973
(ard starting at the current line and mo)-.1 F .973(ving \231do)-.15 F
.973(wn\232 through the history as necessary)-.25 F(.)-.65 E .29
-(This is an incremental search.)144 700.8 R .29
+(This is an incremental search.)144 592.8 R .29
(This command sets the re)5.29 F .29(gion to the matched te)-.15 F .29
-(xt and acti)-.15 F -.25(va)-.25 G .29(tes the).25 F(re)144 712.8 Q
-(gion.)-.15 E(GNU Bash 5.3)72 768 Q(2025 April 7)149.285 E(54)198.445 E
-0 Cg EP
-%%Page: 55 55
+(xt and acti)-.15 F -.25(va)-.25 G .29(tes the).25 F(re)144 604.8 Q
+(gion.)-.15 E F2(non\255incr)108 616.8 Q(emental\255r)-.18 E -2.3 -.15
+(ev e)-.18 H(rse\255sear).15 E(ch\255history \(M\255p\))-.18 E F1 .165
+(Search backw)144 628.8 R .164(ard through the history starting at the \
+current line using a non-incremental search for)-.1 F 2.5(as)144 640.8 S
+(tring supplied by the user)-2.5 E 5(.T)-.55 G
+(he search string may match an)-5 E(ywhere in a history line.)-.15 E F2
+(non\255incr)108 652.8 Q(emental\255f)-.18 E(orward\255sear)-.25 E
+(ch\255history \(M\255n\))-.18 E F1 1.353(Search forw)144 664.8 R 1.354
+(ard through the history using a non-incremental search for a string su\
+pplied by the)-.1 F(user)144 676.8 Q 5(.T)-.55 G
+(he search string may match an)-5 E(ywhere in a history line.)-.15 E F2
+(history\255sear)108 688.8 Q(ch\255backward)-.18 E F1 .951(Search backw)
+144 700.8 R .951(ard through the history for the string of characters b\
+etween the start of the current)-.1 F .34(line and the point.)144 712.8
+R .34(The search string must match at the be)5.34 F .34
+(ginning of a history line.)-.15 F .34(This is a non-)5.34 F
+(incremental search.)144 724.8 Q(This may be bound to the P)5 E
+(age Up k)-.15 E .3 -.15(ey o)-.1 H 2.5(ns).15 G(ome k)-2.5 E -.15(ey)
+-.1 G(boards.).15 E(GNU Bash 5.3)72 768 Q(2026 January 14)141.79 E(55)
+190.95 E 0 Cg EP
+%%Page: 56 56
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(non\255incr)108 84 Q
-(emental\255r)-.18 E -2.3 -.15(ev e)-.18 H(rse\255sear).15 E
-(ch\255history \(M\255p\))-.18 E F1 .164(Search backw)144 96 R .164(ard\
- through the history starting at the current line using a non-increment\
-al search for)-.1 F 2.5(as)144 108 S(tring supplied by the user)-2.5 E 5
-(.T)-.55 G(he search string may match an)-5 E(ywhere in a history line.)
--.15 E F2(non\255incr)108 120 Q(emental\255f)-.18 E(orward\255sear)-.25
-E(ch\255history \(M\255n\))-.18 E F1 1.354(Search forw)144 132 R 1.354(\
-ard through the history using a non-incremental search for a string sup\
-plied by the)-.1 F(user)144 144 Q 5(.T)-.55 G
-(he search string may match an)-5 E(ywhere in a history line.)-.15 E F2
-(history\255sear)108 156 Q(ch\255backward)-.18 E F1 .95(Search backw)144
-168 R .951(ard through the history for the string of characters between\
- the start of the current)-.1 F .34(line and the point.)144 180 R .34
-(The search string must match at the be)5.34 F .34
-(ginning of a history line.)-.15 F .34(This is a non-)5.34 F
-(incremental search.)144 192 Q(This may be bound to the P)5 E(age Up k)
--.15 E .3 -.15(ey o)-.1 H 2.5(ns).15 G(ome k)-2.5 E -.15(ey)-.1 G
-(boards.).15 E F2(history\255sear)108 204 Q(ch\255f)-.18 E(orward)-.25 E
-F1 .248(Search forw)144 216 R .249(ard through the history for the stri\
-ng of characters between the start of the current line)-.1 F .036
-(and the point.)144 228 R .036(The search string must match at the be)
-5.036 F .035(ginning of a history line.)-.15 F .035
-(This is a non-incre-)5.035 F(mental search.)144 240 Q
-(This may be bound to the P)5 E(age Do)-.15 E(wn k)-.25 E .3 -.15(ey o)
--.1 H 2.5(ns).15 G(ome k)-2.5 E -.15(ey)-.1 G(boards.).15 E F2
-(history\255substring\255sear)108 252 Q(ch\255backward)-.18 E F1 .95
-(Search backw)144 264 R .951(ard through the history for the string of \
-characters between the start of the current)-.1 F .676
-(line and the point.)144 276 R .676(The search string may match an)5.676
-F .676(ywhere in a history line.)-.15 F .675(This is a non-incre-)5.676
-F(mental search.)144 288 Q F2(history\255substring\255sear)108 300 Q
-(ch\255f)-.18 E(orward)-.25 E F1 .248(Search forw)144 312 R .249(ard th\
+.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(history\255sear)108 84 Q
+(ch\255f)-.18 E(orward)-.25 E F1 .249(Search forw)144 96 R .249(ard thr\
+ough the history for the string of characters between the start of the \
+current line)-.1 F .035(and the point.)144 108 R .035
+(The search string must match at the be)5.035 F .036
+(ginning of a history line.)-.15 F .036(This is a non-incre-)5.036 F
+(mental search.)144 120 Q(This may be bound to the P)5 E(age Do)-.15 E
+(wn k)-.25 E .3 -.15(ey o)-.1 H 2.5(ns).15 G(ome k)-2.5 E -.15(ey)-.1 G
+(boards.).15 E F2(history\255substring\255sear)108 132 Q(ch\255backward)
+-.18 E F1 .951(Search backw)144 144 R .951(ard through the history for \
+the string of characters between the start of the current)-.1 F .675
+(line and the point.)144 156 R .676(The search string may match an)5.676
+F .676(ywhere in a history line.)-.15 F .676(This is a non-incre-)5.676
+F(mental search.)144 168 Q F2(history\255substring\255sear)108 180 Q
+(ch\255f)-.18 E(orward)-.25 E F1 .249(Search forw)144 192 R .249(ard th\
rough the history for the string of characters between the start of the\
- current line)-.1 F .319(and the point.)144 324 R .319
-(The search string may match an)5.319 F .319(ywhere in a history line.)
--.15 F .318(This is a non-incremental)5.318 F(search.)144 336 Q F2
-(yank\255nth\255ar)108 348 Q 2.5(g\()-.1 G<4dad43ad7929>-2.5 E F1 .622
-(Insert the \214rst ar)144 360 R .622(gument to the pre)-.18 F .622
+ current line)-.1 F .318(and the point.)144 204 R .319
+(The search string may match an)5.318 F .319(ywhere in a history line.)
+-.15 F .319(This is a non-incremental)5.319 F(search.)144 216 Q F2
+(yank\255nth\255ar)108 228 Q 2.5(g\()-.1 G<4dad43ad7929>-2.5 E F1 .622
+(Insert the \214rst ar)144 240 R .622(gument to the pre)-.18 F .622
(vious command \(usually the second w)-.25 F .622(ord on the pre)-.1 F
-.622(vious line\))-.25 F .773(at point.)144 372 R -.4(Wi)5.773 G .773
+.622(vious line\))-.25 F .772(at point.)144 252 R -.4(Wi)5.773 G .773
(th an ar).4 F(gument)-.18 E F0(n)3.633 E F1 3.273(,i).24 G .773
(nsert the)-3.273 F F0(n)3.273 E F1 .773(th w)B .773(ord from the pre)
-.1 F .773(vious command \(the w)-.25 F .773(ords in the)-.1 F(pre)144
-384 Q .291(vious command be)-.25 F .291(gin with w)-.15 F .291(ord 0\).)
+264 Q .292(vious command be)-.25 F .292(gin with w)-.15 F .291(ord 0\).)
-.1 F 2.791(An)5.291 G -2.25 -.15(eg a)-2.791 H(ti).15 E .591 -.15(ve a)
-.25 H -.18(rg).15 G .291(ument inserts the).18 F F0(n)2.791 E F1 .291
-(th w)B .292(ord from the end of)-.1 F .699(the pre)144 396 R .699
-(vious command.)-.25 F .699(Once the ar)5.699 F(gument)-.18 E F0(n)3.199
-E F1 .698(is computed, this uses the history e)3.199 F .698(xpansion f)
--.15 F(acili-)-.1 E(ties to e)144 408 Q(xtract the)-.15 E F0(n)2.5 E F1
+(th w)B .291(ord from the end of)-.1 F .698(the pre)144 276 R .698
+(vious command.)-.25 F .698(Once the ar)5.698 F(gument)-.18 E F0(n)3.198
+E F1 .699(is computed, this uses the history e)3.199 F .699(xpansion f)
+-.15 F(acili-)-.1 E(ties to e)144 288 Q(xtract the)-.15 E F0(n)2.5 E F1
(th w)A(ord, as if the \231!)-.1 E F0(n)A F1 2.5<9a68>C(istory e)-2.5 E
-(xpansion had been speci\214ed.)-.15 E F2(yank\255last\255ar)108 420 Q
-2.5(g\()-.1 G -1.667(M\255. ,)-2.5 F -1.667(M\255_ \))2.5 F F1 1.307
-(Insert the last ar)144 432 R 1.307(gument to the pre)-.18 F 1.307
-(vious command \(the last w)-.25 F 1.308(ord of the pre)-.1 F 1.308
-(vious history entry\).)-.25 F -.4(Wi)144 444 S .204(th a numeric ar).4
-F .204(gument, beha)-.18 F .504 -.15(ve ex)-.2 H .204(actly lik).15 F(e)
--.1 E F2(yank\255nth\255ar)2.704 E(g)-.1 E F1 5.203(.S)C(uccessi)-5.203
-E .503 -.15(ve c)-.25 H .203(alls to).15 F F2(yank\255last\255ar)2.703 E
-(g)-.1 E F1(mo)144 456 Q .806 -.15(ve b)-.15 H .507
+(xpansion had been speci\214ed.)-.15 E F2(yank\255last\255ar)108 300 Q
+2.5(g\()-.1 G -1.667(M\255. ,)-2.5 F -1.667(M\255_ \))2.5 F F1 1.308
+(Insert the last ar)144 312 R 1.308(gument to the pre)-.18 F 1.307
+(vious command \(the last w)-.25 F 1.307(ord of the pre)-.1 F 1.307
+(vious history entry\).)-.25 F -.4(Wi)144 324 S .203(th a numeric ar).4
+F .203(gument, beha)-.18 F .504 -.15(ve ex)-.2 H .204(actly lik).15 F(e)
+-.1 E F2(yank\255nth\255ar)2.704 E(g)-.1 E F1 5.204(.S)C(uccessi)-5.204
+E .504 -.15(ve c)-.25 H .204(alls to).15 F F2(yank\255last\255ar)2.704 E
+(g)-.1 E F1(mo)144 336 Q .807 -.15(ve b)-.15 H .507
(ack through the history list, inserting the last w).15 F .507
(ord \(or the w)-.1 F .507(ord speci\214ed by the ar)-.1 F(gument)-.18 E
-.416(to the \214rst call\) of each line in turn.)144 468 R(An)5.416 E
+.416(to the \214rst call\) of each line in turn.)144 348 R(An)5.416 E
2.916(yn)-.15 G .416(umeric ar)-2.916 F .416
-(gument supplied to these successi)-.18 F .715 -.15(ve c)-.25 H .415
-(alls de-).15 F 1.217(termines the direction to mo)144 480 R 1.518 -.15
+(gument supplied to these successi)-.18 F .716 -.15(ve c)-.25 H .416
+(alls de-).15 F 1.218(termines the direction to mo)144 360 R 1.518 -.15
(ve t)-.15 H 1.218(hrough the history).15 F 6.218(.A)-.65 G(ne)-2.5 E
--.05(ga)-.15 G(ti).05 E 1.518 -.15(ve a)-.25 H -.18(rg).15 G 1.218
-(ument switches the direction).18 F .419
-(through the history \(back or forw)144 492 R 2.919(ard\). This)-.1 F
-.419(uses the history e)2.919 F .418(xpansion f)-.15 F .418
-(acilities to e)-.1 F .418(xtract the last)-.15 F -.1(wo)144 504 S
+-.05(ga)-.15 G(ti).05 E 1.517 -.15(ve a)-.25 H -.18(rg).15 G 1.217
+(ument switches the direction).18 F .418
+(through the history \(back or forw)144 372 R 2.919(ard\). This)-.1 F
+.419(uses the history e)2.919 F .419(xpansion f)-.15 F .419
+(acilities to e)-.1 F .419(xtract the last)-.15 F -.1(wo)144 384 S
(rd, as if the \231!$\232 history e).1 E(xpansion had been speci\214ed.)
--.15 E F2(shell\255expand\255line \(M\255C\255e\))108 516 Q F1 .367
-(Expand the line by performing shell w)144 528 R .368(ord e)-.1 F 2.868
-(xpansions. This)-.15 F .368(performs alias and history e)2.868 F
-(xpansion,)-.15 E F2($)144 540 Q F1<08>A F0(string)A F1 3.358<0861>C(nd)
--3.358 E F2($)3.358 E F1(")A F0(string)A F1 3.358("q)C .857
-(uoting, tilde e)-3.358 F .857(xpansion, parameter and v)-.15 F .857
-(ariable e)-.25 F .857(xpansion, arithmetic e)-.15 F(x-)-.15 E .548
-(pansion, command and process substitution, w)144 552 R .548
-(ord splitting, and quote remo)-.1 F -.25(va)-.15 G 3.049(l. An).25 F
--.15(ex)3.049 G .549(plicit ar).15 F(gu-)-.18 E .61
-(ment suppresses command and process substitution.)144 564 R(See)5.61 E
-/F3 9/Times-Bold@0 SF(HIST)3.109 E(OR)-.162 E 2.859(YE)-.315 G(XP)-2.859
-E(ANSION)-.666 E F1(belo)2.859 E 3.109(wf)-.25 G .609(or a de-)-3.109 F
-(scription of history e)144 576 Q(xpansion.)-.15 E F2
-(history\255expand\255line \(M\255\000\))108 588 Q F1 .938
-(Perform history e)144 600 R .939(xpansion on the current line.)-.15 F
+-.15 E F2(shell\255expand\255line \(M\255C\255e\))108 396 Q F1 .035
+(Expand the line by performing shell w)144 408 R .035(ord e)-.1 F .035
+(xpansions, treating the line as a single shell w)-.15 F 2.535
+(ord. This)-.1 F 1.122(performs alias and history e)144 420 R(xpansion,)
+-.15 E F2($)3.623 E F1<08>A F0(string)A F1 3.623<0861>C(nd)-3.623 E F2
+($)3.623 E F1(")A F0(string)A F1 3.623("q)C 1.123(uoting, tilde e)-3.623
+F 1.123(xpansion, parameter)-.15 F .946(and v)144 432 R .946(ariable e)
+-.25 F .946(xpansion, arithmetic e)-.15 F .946
+(xpansion, command and process substitution, w)-.15 F .946
+(ord splitting,)-.1 F .087(and quote remo)144 444 R -.25(va)-.15 G 2.587
+(l. An).25 F -.15(ex)2.587 G .087(plicit ar).15 F .087
+(gument suppresses command and process substitution.)-.18 F(See)5.088 E
+/F3 9/Times-Bold@0 SF(HIS-)2.588 E -.162(TO)144 456 S .63 -.315(RY E)
+.162 H(XP).315 E(ANSION)-.666 E F1(belo)2.25 E 2.5(wf)-.25 G
+(or a description of history e)-2.5 E(xpansion.)-.15 E F2
+(shell\255expand\255and\255r)108 468 Q(equote\255line \(\))-.18 E F1
+1.388(Expand the line by performing shell w)144 480 R 1.387(ord e)-.1 F
+1.387(xpansions, splitting the line into shell w)-.15 F 1.387
+(ords in the)-.1 F .942(same w)144 492 R .942
+(ay as for programmable completion.)-.1 F .943
+(This performs alias and history e)5.942 F(xpansion,)-.15 E F2($)3.443 E
+F1<08>A F0(string)A F1<08>A(and)144 504 Q F2($)3.859 E F1(")A F0(string)
+A F1 3.859("q)C 1.359(uoting, tilde e)-3.859 F 1.359
+(xpansion, parameter and v)-.15 F 1.359(ariable e)-.25 F 1.359
+(xpansion, arithmetic e)-.15 F(xpansion,)-.15 E .852
+(command and process substitution, w)144 516 R .852
+(ord splitting, and quote remo)-.1 F -.25(va)-.15 G 3.352(lo).25 G 3.353
+(ne)-3.352 G .853(ach w)-3.353 F .853(ord, then quotes)-.1 F 1.421
+(the resulting w)144 528 R 1.421(ords if necessary to pre)-.1 F -.15(ve)
+-.25 G 1.421(nt further e).15 F 3.921(xpansion. An)-.15 F -.15(ex)3.921
+G 1.42(plicit ar).15 F 1.42(gument suppresses)-.18 F 1.368
+(command and process substitution and quotes each resultant w)144 540 R
+3.869(ord. As)-.1 F 1.369(usual, double-quoting a)3.869 F -.1(wo)144 552
+S .287(rd will suppress w).1 F .287(ord splitting.)-.1 F .287
+(This can be useful when combined with suppressing command)5.287 F
+(substitution, for instance, so the w)144 564 Q
+(ords in the command substitution aren')-.1 E 2.5(tq)-.18 G(uoted indi)
+-2.5 E(vidually)-.25 E(.)-.65 E F2
+(history\255expand\255line \(M\255\000\))108 576 Q F1 .938
+(Perform history e)144 588 R .939(xpansion on the current line.)-.15 F
(See)5.939 E F3(HIST)3.439 E(OR)-.162 E 3.189(YE)-.315 G(XP)-3.189 E
(ANSION)-.666 E F1(belo)3.189 E 3.439(wf)-.25 G .939(or a descrip-)
--3.439 F(tion of history e)144 612 Q(xpansion.)-.15 E F2(magic\255space)
-108 624 Q F1 .438(Perform history e)144 636 R .438
+-3.439 F(tion of history e)144 600 Q(xpansion.)-.15 E F2(magic\255space)
+108 612 Q F1 .438(Perform history e)144 624 R .438
(xpansion on the current line and insert a space.)-.15 F(See)5.437 E F3
(HIST)2.937 E(OR)-.162 E 2.687(YE)-.315 G(XP)-2.687 E(ANSION)-.666 E F1
-(be-)2.687 E(lo)144 648 Q 2.5(wf)-.25 G(or a description of history e)
--2.5 E(xpansion.)-.15 E F2(alias\255expand\255line)108 660 Q F1 .394
-(Perform alias e)144 672 R .394(xpansion on the current line.)-.15 F
+(be-)2.687 E(lo)144 636 Q 2.5(wf)-.25 G(or a description of history e)
+-2.5 E(xpansion.)-.15 E F2(alias\255expand\255line)108 648 Q F1 .394
+(Perform alias e)144 660 R .394(xpansion on the current line.)-.15 F
(See)5.395 E F3(ALIASES)2.895 E F1(abo)2.645 E .695 -.15(ve f)-.15 H
-.395(or a description of alias e).15 F(xpan-)-.15 E(sion.)144 684 Q F2
-(history\255and\255alias\255expand\255line)108 696 Q F1
-(Perform history and alias e)144 708 Q(xpansion on the current line.)
--.15 E(GNU Bash 5.3)72 768 Q(2025 April 7)149.285 E(55)198.445 E 0 Cg EP
-%%Page: 56 56
+.395(or a description of alias e).15 F(xpan-)-.15 E(sion.)144 672 Q F2
+(history\255and\255alias\255expand\255line)108 684 Q F1
+(Perform history and alias e)144 696 Q(xpansion on the current line.)
+-.15 E(GNU Bash 5.3)72 768 Q(2026 January 14)141.79 E(56)190.95 E 0 Cg
+EP
+%%Page: 57 57
%%BeginPageSetup
BP
%%EndPageSetup
-.05(ga)-.15 G(ti).05 E 2.274 -.15(ve a)-.25 H -.18(rg).15 G 1.975
(ument, capitalize the pre).18 F(vious)-.25 E -.1(wo)144 724.8 S(rd, b)
.1 E(ut do not mo)-.2 E .3 -.15(ve p)-.15 H(oint.).15 E(GNU Bash 5.3)72
-768 Q(2025 April 7)149.285 E(56)198.445 E 0 Cg EP
-%%Page: 57 57
+768 Q(2026 January 14)141.79 E(57)190.95 E 0 Cg EP
+%%Page: 58 58
%%BeginPageSetup
BP
%%EndPageSetup
(Rotate the kill ring, and yank the ne)144 712.8 Q 2.5(wt)-.25 G 2.5
(op. Only)-2.5 F -.1(wo)2.5 G(rks follo).1 E(wing)-.25 E F2(yank)2.5 E
F1(or)2.5 E F2(yank\255pop)2.5 E F1(.)A(GNU Bash 5.3)72 768 Q
-(2025 April 7)149.285 E(57)198.445 E 0 Cg EP
-%%Page: 58 58
+(2026 January 14)141.79 E(58)190.95 E 0 Cg EP
+%%Page: 59 59
%%BeginPageSetup
BP
%%EndPageSetup
R F0(N)3.344 E F1 .844(lines after the line containing)3.344 F F0(S)
3.345 E F1(:)A F0(E)A F1 .845(to obtain the match list.)3.345 F
(This command is unbound by def)144 727.2 Q(ault.)-.1 E(GNU Bash 5.3)72
-768 Q(2025 April 7)149.285 E(58)198.445 E 0 Cg EP
-%%Page: 59 59
+768 Q(2026 January 14)141.79 E(59)190.95 E 0 Cg EP
+%%Page: 60 60
%%BeginPageSetup
BP
%%EndPageSetup
F1(Print the last k)144 679.2 Q -.15(ey)-.1 G
(board macro de\214ned in a format suitable for the).15 E F0(inputr)2.5
E(c)-.37 E F1(\214le.)2.5 E F2(Miscellaneous)87 696 Q F1(GNU Bash 5.3)72
-768 Q(2025 April 7)149.285 E(59)198.445 E 0 Cg EP
-%%Page: 60 60
+768 Q(2026 January 14)141.79 E(60)190.95 E 0 Cg EP
+%%Page: 61 61
%%BeginPageSetup
BP
%%EndPageSetup
(names, replacing the w)144 708 R 2.583(ord. If)-.1 F 2.583(an)2.583 G
.083(umeric ar)-2.583 F .083(gument is supplied, append a)-.18 F F2(*)
2.584 E F1 .084(before pathname e)2.584 F(xpan-)-.15 E(sion.)144 720 Q
-(GNU Bash 5.3)72 768 Q(2025 April 7)149.285 E(60)198.445 E 0 Cg EP
-%%Page: 61 61
+(GNU Bash 5.3)72 768 Q(2026 January 14)141.79 E(61)190.95 E 0 Cg EP
+%%Page: 62 62
%%BeginPageSetup
BP
%%EndPageSetup
-.15 F(matched ag)108 729.6 Q(ainst the w)-.05 E
(ord being completed, and the matching w)-.1 E
(ords become possible completions.)-.1 E(GNU Bash 5.3)72 768 Q
-(2025 April 7)149.285 E(61)198.445 E 0 Cg EP
-%%Page: 62 62
+(2026 January 14)141.79 E(62)190.95 E 0 Cg EP
+%%Page: 63 63
%%BeginPageSetup
BP
%%EndPageSetup
108 249.6 R .267(should print a list of completions, one per line, to t\
he standard output.)2.766 F .267(Backslash will escape a)5.267 F(ne)108
261.6 Q(wline, if necessary)-.25 E 5(.T)-.65 G
-(hese are added to the set of possible completions.)-5 E .349
-(After generating all of the possible completions,)108 278.4 R F2(bash)
+(hese are added to the set of possible completions.)-5 E .129
+(External commands that are in)108 278.4 R -.2(vo)-.4 G -.1(ke).2 G
+2.629(dt).1 G 2.629(og)-2.629 G .129(enerate completions \( \231e)-2.629
+F .128(xternal completers\232\) recei)-.15 F .428 -.15(ve t)-.25 H .128
+(he w).15 F .128(ord pre-)-.1 F .751(ceding the completion w)108 290.4 R
+.751(ord as an ar)-.1 F .751(gument, as described abo)-.18 F -.15(ve)
+-.15 G 5.751(.T).15 G .752(his pro)-5.751 F .752(vides conte)-.15 F .752
+(xt that is sometimes)-.15 F .023(useful, b)108 302.4 R .022
+(ut may include information that is considered sensiti)-.2 F .322 -.15
+(ve o)-.25 H 2.522(rp).15 G .022(art of a w)-2.522 F .022(ord e)-.1 F
+.022(xpansion that will not ap-)-.15 F .976
+(pear in the command line after e)108 314.4 R 3.476(xpansion. That)-.15
+F -.1(wo)3.476 G .976
+(rd may be visible in process listings or in audit logs.).1 F .259(This\
+ may be a concern to users and completion speci\214cation authors if th\
+ere is sensiti)108 326.4 R .558 -.15(ve i)-.25 H .258(nformation on the)
+.15 F .596(command line before e)108 338.4 R .596
+(xpansion, since completion tak)-.15 F .596(es place before w)-.1 F .596
+(ords are e)-.1 F 3.096(xpanded. If)-.15 F .597(this is an is-)3.097 F
+.665(sue, completion authors should use functions as wrappers around e)
+108 350.4 R .665(xternal commands and pass conte)-.15 F .665(xt in-)-.15
+F 1.652(formation to the e)108 362.4 R 1.652(xternal command in a dif)
+-.15 F 1.652(ferent w)-.25 F(ay)-.1 E 6.652(.E)-.65 G 1.652
+(xternal completers can infer conte)-6.652 F 1.652(xt from the)-.15 F F3
+(COMP_LINE)108 374.4 Q F1(and)3.253 E F3(COMP_POINT)3.503 E F1(en)3.253
+E 1.003(vironment v)-.4 F 1.002(ariables, b)-.25 F 1.002(ut the)-.2 F
+3.502(yn)-.15 G 1.002(eed to ensure the)-3.502 F 3.502(yb)-.15 G 1.002
+(reak w)-3.502 F 1.002(ords in the)-.1 F(same w)108 386.4 Q(ay)-.1 E F2
+-.18(re)2.5 G(adline).18 E F1(does, using the)2.5 E F3(COMP_W)2.5 E
+(ORDBREAKS)-.09 E F1 -.25(va)2.25 G(riable.).25 E .348
+(After generating all of the possible completions,)108 403.2 R F2(bash)
2.848 E F1 .348(applies an)2.848 F 2.848<798c>-.15 G .348
-(lter speci\214ed with the)-2.848 F F2<ad58>2.848 E F1 .348
-(option to the)2.848 F .055(completions in the list.)108 290.4 R .055
+(lter speci\214ed with the)-2.848 F F2<ad58>2.849 E F1 .349
+(option to the)2.849 F .055(completions in the list.)108 415.2 R .055
(The \214lter is a pattern as used for pathname e)5.055 F .055
(xpansion; a)-.15 F F2(&)2.555 E F1 .055(in the pattern is replaced)
-2.555 F .576(with the te)108 302.4 R .576(xt of the w)-.15 F .575
+2.555 F .575(with the te)108 427.2 R .575(xt of the w)-.15 F .575
(ord being completed.)-.1 F 3.075(Al)5.575 G(iteral)-3.075 E F2(&)3.075
-E F1 .575(may be escaped with a backslash; the backslash is)3.075 F
-(remo)108 314.4 Q -.15(ve)-.15 G 2.988(db).15 G .488
-(efore attempting a match.)-2.988 F(An)5.488 E 2.988(yc)-.15 G .488
+E F1 .576(may be escaped with a backslash; the backslash is)3.075 F
+(remo)108 439.2 Q -.15(ve)-.15 G 2.989(db).15 G .488
+(efore attempting a match.)-2.989 F(An)5.488 E 2.988(yc)-.15 G .488
(ompletion that matches the pattern is remo)-2.988 F -.15(ve)-.15 G
-2.988(df).15 G .488(rom the list.)-2.988 F(A)5.489 E(leading)108 326.4 Q
-F2(!)2.898 E F1(ne)2.898 E -.05(ga)-.15 G .397
+2.988(df).15 G .488(rom the list.)-2.988 F(A)5.488 E(leading)108 451.2 Q
+F2(!)2.897 E F1(ne)2.897 E -.05(ga)-.15 G .397
(tes the pattern; in this case).05 F F2(bash)2.897 E F1(remo)2.897 E
-.15(ve)-.15 G 2.897(sa).15 G .697 -.15(ny c)-2.897 H .397
-(ompletion that does not match the pattern.).15 F(If)5.397 E(the)108
-338.4 Q F2(nocasematch)2.797 E F1 .297(shell option is enabled,)2.797 F
-F2(bash)2.797 E F1 .298(performs the match without re)2.797 F -.05(ga)
--.15 G .298(rd to the case of alphabetic).05 F(characters.)108 350.4 Q
-(Finally)108 367.2 Q 2.78(,p)-.65 G .28(rogrammable completion adds an)
--2.78 F 2.78(yp)-.15 G .279(re\214x and suf)-2.78 F .279
-(\214x speci\214ed with the)-.25 F F2<ad50>2.779 E F1(and)2.779 E F2
-<ad53>2.779 E F1 .279(options, respec-)2.779 F(ti)108 379.2 Q -.15(ve)
--.25 G(ly).15 E 2.5(,t)-.65 G 2.5(oe)-2.5 G
-(ach completion, and returns the result to)-2.5 E F2 -.18(re)2.5 G
-(adline).18 E F1(as the list of possible completions.)2.5 E .246
-(If the pre)108 396 R .247(viously-applied actions do not generate an)
--.25 F 2.747(ym)-.15 G .247(atches, and the)-2.747 F F2 .247(\255o dir)
-2.747 F(names)-.15 E F1 .247(option w)2.747 F .247(as supplied to)-.1 F
-F2(complete)108 408 Q F1(when the compspec w)2.5 E(as de\214ned,)-.1 E
-F2(bash)2.5 E F1(attempts directory name completion.)2.5 E .53(If the)
-108 424.8 R F2 .53(\255o plusdirs)3.03 F F1 .53(option w)3.03 F .53
-(as supplied to)-.1 F F2(complete)3.03 E F1 .53(when the compspec w)3.03
-F .53(as de\214ned,)-.1 F F2(bash)3.03 E F1 .53(attempts direc-)3.03 F
-(tory name completion and adds an)108 436.8 Q 2.5(ym)-.15 G
-(atches to the set of possible completions.)-2.5 E .559(By def)108 453.6
-R .559(ault, if a compspec is found, whate)-.1 F -.15(ve)-.25 G 3.059
-(ri).15 G 3.059(tg)-3.059 G .56
-(enerates is returned to the completion code as the full set)-3.059 F
-.054(of possible completions.)108 465.6 R .054(The def)5.054 F(ault)-.1
-E F2(bash)2.554 E F1 .054(completions and the)2.554 F F2 -.18(re)2.553 G
-(adline).18 E F1(def)2.553 E .053(ault of \214lename completion are)-.1
-F 2.822(disabled. If)108 477.6 R(the)2.822 E F2 .322(\255o bashdefault)
-2.822 F F1 .322(option w)2.822 F .322(as supplied to)-.1 F F2(complete)
-2.823 E F1 .323(when the compspec w)2.823 F .323(as de\214ned, and the)
--.1 F .373(compspec generates no matches,)108 489.6 R F2(bash)2.872 E F1
+(ompletion that does not match the pattern.).15 F(If)5.398 E(the)108
+463.2 Q F2(nocasematch)2.798 E F1 .298(shell option is enabled,)2.798 F
+F2(bash)2.798 E F1 .297(performs the match without re)2.798 F -.05(ga)
+-.15 G .297(rd to the case of alphabetic).05 F(characters.)108 475.2 Q
+(Finally)108 492 Q 2.779(,p)-.65 G .279(rogrammable completion adds an)
+-2.779 F 2.779(yp)-.15 G .279(re\214x and suf)-2.779 F .279
+(\214x speci\214ed with the)-.25 F F2<ad50>2.78 E F1(and)2.78 E F2<ad53>
+2.78 E F1 .28(options, respec-)2.78 F(ti)108 504 Q -.15(ve)-.25 G(ly).15
+E 2.5(,t)-.65 G 2.5(oe)-2.5 G(ach completion, and returns the result to)
+-2.5 E F2 -.18(re)2.5 G(adline).18 E F1
+(as the list of possible completions.)2.5 E .247(If the pre)108 520.8 R
+.247(viously-applied actions do not generate an)-.25 F 2.747(ym)-.15 G
+.247(atches, and the)-2.747 F F2 .247(\255o dir)2.747 F(names)-.15 E F1
+.247(option w)2.747 F .246(as supplied to)-.1 F F2(complete)108 532.8 Q
+F1(when the compspec w)2.5 E(as de\214ned,)-.1 E F2(bash)2.5 E F1
+(attempts directory name completion.)2.5 E .53(If the)108 549.6 R F2 .53
+(\255o plusdirs)3.03 F F1 .53(option w)3.03 F .53(as supplied to)-.1 F
+F2(complete)3.03 E F1 .53(when the compspec w)3.03 F .53(as de\214ned,)
+-.1 F F2(bash)3.03 E F1 .53(attempts direc-)3.03 F
+(tory name completion and adds an)108 561.6 Q 2.5(ym)-.15 G
+(atches to the set of possible completions.)-2.5 E .56(By def)108 578.4
+R .56(ault, if a compspec is found, whate)-.1 F -.15(ve)-.25 G 3.06(ri)
+.15 G 3.06(tg)-3.06 G .559
+(enerates is returned to the completion code as the full set)-3.06 F
+.053(of possible completions.)108 590.4 R .053(The def)5.053 F(ault)-.1
+E F2(bash)2.553 E F1 .054(completions and the)2.553 F F2 -.18(re)2.554 G
+(adline).18 E F1(def)2.554 E .054(ault of \214lename completion are)-.1
+F 2.823(disabled. If)108 602.4 R(the)2.823 E F2 .323(\255o bashdefault)
+2.823 F F1 .323(option w)2.823 F .323(as supplied to)-.1 F F2(complete)
+2.822 E F1 .322(when the compspec w)2.822 F .322(as de\214ned, and the)
+-.1 F .372(compspec generates no matches,)108 614.4 R F2(bash)2.872 E F1
.372(attempts its def)2.872 F .372(ault completions.)-.1 F .372
-(If the compspec and, if attempted,)5.372 F 1.214(the def)108 501.6 R
+(If the compspec and, if attempted,)5.372 F 1.214(the def)108 626.4 R
(ault)-.1 E F2(bash)3.714 E F1 1.214
(completions generate no matches, and the)3.714 F F2 1.214
(\255o default)3.714 F F1 1.214(option w)3.714 F 1.214(as supplied to)
--.1 F F2(complete)3.714 E F1(when the compspec w)108 513.6 Q
+-.1 F F2(complete)3.714 E F1(when the compspec w)108 638.4 Q
(as de\214ned, programmable completion performs)-.1 E F2 -.18(re)2.5 G
-(adline).18 E F1 1.1 -.55('s d)D(ef).55 E(ault completion.)-.1 E .749
-(The options supplied to)108 530.4 R F2(complete)3.249 E F1(and)3.249 E
+(adline).18 E F1 1.1 -.55('s d)D(ef).55 E(ault completion.)-.1 E .748
+(The options supplied to)108 655.2 R F2(complete)3.248 E F1(and)3.248 E
F2(compopt)3.249 E F1 .749(can control ho)3.249 F(w)-.25 E F2 -.18(re)
-3.249 G(adline).18 E F1 .748(treats the completions.)3.248 F -.15(Fo)
-5.748 G 3.248(ri).15 G(n-)-3.248 E .791(stance, the)108 542.4 R F0 .791
-(\255o fullquote)3.291 F F1 .791(option tells)3.291 F F2 -.18(re)3.291 G
-(adline).18 E F1 .791(to quote the matches as if the)3.291 F 3.291(yw)
--.15 G .791(ere \214lenames.)-3.291 F .792(See the de-)5.791 F
-(scription of)108 554.4 Q F2(complete)2.5 E F1(belo)2.5 E 2.5(wf)-.25 G
-(or details.)-2.5 E .766(When a compspec indicates that it w)108 571.2 R
-.765(ants directory name completion, the programmable completion func-)
--.1 F .469(tions force)108 583.2 R F2 -.18(re)2.969 G(adline).18 E F1
-.469(to append a slash to completed names which are symbolic links to d\
-irectories, subject)2.969 F 2.575(to the v)108 595.2 R 2.575
-(alue of the)-.25 F F2(mark\255dir)5.075 E 2.575(ectories r)-.18 F
-(eadline)-.18 E F1 -.25(va)5.075 G 2.575(riable, re).25 F -.05(ga)-.15 G
-2.575(rdless of the setting of the).05 F F2(mark-sym-)5.075 E(link)108
-607.2 Q(ed\255dir)-.1 E(ectories r)-.18 E(eadline)-.18 E F1 -.25(va)2.5
-G(riable.).25 E .19
-(There is some support for dynamically modifying completions.)108 624 R
-.191(This is most useful when used in combina-)5.191 F 1.172
-(tion with a def)108 636 R 1.172(ault completion speci\214ed with)-.1 F
-F2 1.172(complete \255D)3.672 F F1 6.172(.I)C(t')-6.172 E 3.672(sp)-.55
-G 1.172(ossible for shell functions e)-3.672 F -.15(xe)-.15 G 1.172
-(cuted as).15 F .733(completion functions to indicate that completion s\
-hould be retried by returning an e)108 648 R .734(xit status of 124.)
--.15 F .734(If a)5.734 F .1(shell function returns 124, and changes the\
- compspec associated with the command on which completion is)108 660 R
-.665(being attempted \(supplied as the \214rst ar)108 672 R .666
-(gument when the function is e)-.18 F -.15(xe)-.15 G .666
-(cuted\), programmable completion).15 F .1(restarts from the be)108 684
-R .1(ginning, with an attempt to \214nd a ne)-.15 F 2.6(wc)-.25 G .1
-(ompspec for that command.)-2.6 F .1(This can be used to)5.1 F -.2(bu)
-108 696 S(ild a set of completions dynamically as completion is attempt\
-ed, rather than loading them all at once.).2 E -.15(Fo)108 712.8 S 2.636
-(ri).15 G .137
-(nstance, assuming that there is a library of compspecs, each k)-2.636 F
-.137(ept in a \214le corresponding to the name of)-.1 F
-(the command, the follo)108 724.8 Q(wing def)-.25 E
-(ault completion function w)-.1 E(ould load completions dynamically:)-.1
-E(GNU Bash 5.3)72 768 Q(2025 April 7)149.285 E(62)198.445 E 0 Cg EP
-%%Page: 63 63
+3.249 G(adline).18 E F1 .749(treats the completions.)3.249 F -.15(Fo)
+5.749 G 3.249(ri).15 G(n-)-3.249 E .695(stance, the)108 667.2 R F2 .695
+(\255o fullquote)3.195 F F1 .695(option tells)3.195 F F2 -.18(re)3.195 G
+(adline).18 E F1 .695(to quote the matches as if the)3.195 F 3.195(yw)
+-.15 G .695(ere \214lenames.)-3.195 F .695(See the de-)5.695 F
+(scription of)108 679.2 Q F2(complete)2.5 E F1(belo)2.5 E 2.5(wf)-.25 G
+(or details.)-2.5 E .765(When a compspec indicates that it w)108 696 R
+.766(ants directory name completion, the programmable completion func-)
+-.1 F .47(tions force)108 708 R F2 -.18(re)2.97 G(adline).18 E F1 .469(\
+to append a slash to completed names which are symbolic links to direct\
+ories, subject)2.97 F 4.042(to the v)108 720 R 4.043(alue of the)-.25 F
+F2(mark\255dir)6.543 E 4.043(ectories r)-.18 F(eadline)-.18 E F1 -.25
+(va)6.543 G 4.043(riable, re).25 F -.05(ga)-.15 G 4.043
+(rdless of the setting of the).05 F F2(mark-)6.543 E F1(GNU Bash 5.3)72
+768 Q(2026 January 14)141.79 E(63)190.95 E 0 Cg EP
+%%Page: 64 64
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E/F2 10/Courier@0 SF(_completion_loader\(\))144 84 Q
-({)144 96 Q 6(.")156 108 S
+.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(symlink)108 84 Q(ed\255dir)
+-.1 E(ectories r)-.18 E(eadline)-.18 E F1 -.25(va)2.5 G(riable.).25 E
+.191(There is some support for dynamically modifying completions.)108
+100.8 R .19(This is most useful when used in combina-)5.191 F 1.172
+(tion with a def)108 112.8 R 1.172(ault completion speci\214ed with)-.1
+F F2 1.172(complete \255D)3.672 F F1 6.172(.I)C(t')-6.172 E 3.672(sp)
+-.55 G 1.172(ossible for shell functions e)-3.672 F -.15(xe)-.15 G 1.172
+(cuted as).15 F .734(completion functions to indicate that completion s\
+hould be retried by returning an e)108 124.8 R .733(xit status of 124.)
+-.15 F .733(If a)5.733 F .1(shell function returns 124, and changes the\
+ compspec associated with the command on which completion is)108 136.8 R
+.666(being attempted \(supplied as the \214rst ar)108 148.8 R .665
+(gument when the function is e)-.18 F -.15(xe)-.15 G .665
+(cuted\), programmable completion).15 F .1(restarts from the be)108
+160.8 R .1(ginning, with an attempt to \214nd a ne)-.15 F 2.6(wc)-.25 G
+.1(ompspec for that command.)-2.6 F .1(This can be used to)5.1 F -.2(bu)
+108 172.8 S(ild a set of completions dynamically as completion is attem\
+pted, rather than loading them all at once.).2 E -.15(Fo)108 189.6 S
+2.637(ri).15 G .137
+(nstance, assuming that there is a library of compspecs, each k)-2.637 F
+.137(ept in a \214le corresponding to the name of)-.1 F
+(the command, the follo)108 201.6 Q(wing def)-.25 E
+(ault completion function w)-.1 E(ould load completions dynamically:)-.1
+E/F3 10/Courier@0 SF(_completion_loader\(\))144 213.6 Q({)144 225.6 Q 6
+(.")156 237.6 S
(/etc/bash_completion.d/$1.sh" >/dev/null 2>&1 && return 124)-6 E(})144
-120 Q(complete \255D \255F _completion_loader \255o bashdefault \255o d\
-efault)144 132 Q/F3 10.95/Times-Bold@0 SF(HIST)72 148.8 Q(OR)-.197 E(Y)
--.383 E F1 .372(When the)108 160.8 R/F4 10/Times-Bold@0 SF .372
-(\255o history)2.872 F F1 .372(option to the)2.872 F F4(set)2.872 E F1
--.2(bu)2.872 G .372(iltin is enabled, the shell pro).2 F .371
-(vides access to the)-.15 F F0 .371(command history)2.871 F F1(,)A .304
-(the list of commands pre)108 172.8 R .304(viously typed.)-.25 F .304
-(The v)5.304 F .304(alue of the)-.25 F/F5 9/Times-Bold@0 SF(HISTSIZE)
-2.804 E F1 -.25(va)2.554 G .305(riable is used as the number of com-).25
-F .488(mands to sa)108 184.8 R .788 -.15(ve i)-.2 H 2.988(nah).15 G .488
-(istory list: the shell sa)-2.988 F -.15(ve)-.2 G 2.988(st).15 G .488
-(he te)-2.988 F .488(xt of the last)-.15 F F5(HISTSIZE)2.988 E F1 .487
-(commands \(def)2.738 F .487(ault 500\).)-.1 F(The)5.487 E .805
+249.6 Q(complete \255D \255F _completion_loader \255o bashdefault \255o\
+ default)144 261.6 Q/F4 10.95/Times-Bold@0 SF(HIST)72 278.4 Q(OR)-.197 E
+(Y)-.383 E F1 .371(When the)108 290.4 R F2 .371(\255o history)2.871 F F1
+.371(option to the)2.871 F F2(set)2.872 E F1 -.2(bu)2.872 G .372
+(iltin is enabled, the shell pro).2 F .372(vides access to the)-.15 F F0
+.372(command history)2.872 F F1(,)A .305(the list of commands pre)108
+302.4 R .305(viously typed.)-.25 F .305(The v)5.305 F .304(alue of the)
+-.25 F/F5 9/Times-Bold@0 SF(HISTSIZE)2.804 E F1 -.25(va)2.554 G .304
+(riable is used as the number of com-).25 F .487(mands to sa)108 314.4 R
+.787 -.15(ve i)-.2 H 2.988(nah).15 G .488(istory list: the shell sa)
+-2.988 F -.15(ve)-.2 G 2.988(st).15 G .488(he te)-2.988 F .488
+(xt of the last)-.15 F F5(HISTSIZE)2.988 E F1 .488(commands \(def)2.738
+F .488(ault 500\).)-.1 F(The)5.488 E .805
(shell stores each command in the history list prior to parameter and v)
-108 196.8 R .805(ariable e)-.25 F .805(xpansion \(see)-.15 F F5(EXP)
-3.305 E(ANSION)-.666 E F1(abo)108 208.8 Q -.15(ve)-.15 G 3.218(\)b).15 G
-.717(ut after history e)-3.418 F .717
+108 326.4 R .805(ariable e)-.25 F .805(xpansion \(see)-.15 F F5(EXP)
+3.305 E(ANSION)-.666 E F1(abo)108 338.4 Q -.15(ve)-.15 G 3.217(\)b).15 G
+.717(ut after history e)-3.417 F .717
(xpansion is performed, subject to the v)-.15 F .717
-(alues of the shell v)-.25 F(ariables)-.25 E F5(HISTIGNORE)3.217 E F1
-(and)108 220.8 Q F5(HISTCONTR)2.5 E(OL)-.27 E/F6 9/Times-Roman@0 SF(.)A
-F1 .362(On startup,)108 237.6 R F4(bash)2.862 E F1 .363(initializes the\
+(alues of the shell v)-.25 F(ariables)-.25 E F5(HISTIGNORE)3.218 E F1
+(and)108 350.4 Q F5(HISTCONTR)2.5 E(OL)-.27 E/F6 9/Times-Roman@0 SF(.)A
+F1 .363(On startup,)108 367.2 R F2(bash)2.863 E F1 .363(initializes the\
history list by reading history entries from the \214le named by the)
-2.862 F F5(HISTFILE)2.863 E F1 -.25(va)108 249.6 S .069(riable \(def).25
-F(ault)-.1 E F0(\001/.bash_history)4.235 E F1 2.569(\). That)1.666 F
-.069(\214le is referred to as the)2.569 F F0 .069(history \214le)2.569 F
-F1 5.069(.T)C .068(he history \214le is truncated, if)-5.069 F
-(necessary)108 261.6 Q 3.265(,t)-.65 G 3.265(oc)-3.265 G .765
+2.863 F F5(HISTFILE)2.862 E F1 -.25(va)108 379.2 S .068(riable \(def).25
+F(ault)-.1 E F0(\001/.bash_history)4.234 E F1 2.568(\). That)1.666 F
+.069(\214le is referred to as the)2.568 F F0 .069(history \214le)2.569 F
+F1 5.069(.T)C .069(he history \214le is truncated, if)-5.069 F
+(necessary)108 391.2 Q 3.266(,t)-.65 G 3.266(oc)-3.266 G .765
(ontain no more than the number of history entries speci\214ed by the v)
--3.265 F .765(alue of the)-.25 F F5(HISTFILE-)3.266 E(SIZE)108 273.6 Q
-F1 -.25(va)2.593 G 2.843(riable. If).25 F F5(HISTFILESIZE)2.843 E F1
-.342(is unset, or set to null, a non-numeric v)2.593 F .342
-(alue, or a numeric v)-.25 F .342(alue less than)-.25 F
-(zero, the history \214le is not truncated.)108 285.6 Q .385
-(When the history \214le is read, lines be)108 302.4 R .385
-(ginning with the history comment character follo)-.15 F .386
-(wed immediately by)-.25 F 3.486(ad)108 314.4 S .986
+-3.266 F .765(alue of the)-.25 F F5(HISTFILE-)3.265 E(SIZE)108 403.2 Q
+F1 -.25(va)2.592 G 2.842(riable. If).25 F F5(HISTFILESIZE)2.842 E F1
+.342(is unset, or set to null, a non-numeric v)2.592 F .343
+(alue, or a numeric v)-.25 F .343(alue less than)-.25 F
+(zero, the history \214le is not truncated.)108 415.2 Q .386
+(When the history \214le is read, lines be)108 432 R .385
+(ginning with the history comment character follo)-.15 F .385
+(wed immediately by)-.25 F 3.486(ad)108 444 S .986
(igit are interpreted as timestamps for the follo)-3.486 F .986
(wing history line.)-.25 F .986(These timestamps are optionally dis-)
-5.986 F .328(played depending on the v)108 326.4 R .328(alue of the)-.25
-F F5(HISTTIMEFORMA)2.828 E(T)-.855 E F1 -.25(va)2.578 G 2.828
-(riable. When).25 F .329(present, history timestamps de-)2.828 F
-(limit history entries, making multi-line entries possible.)108 338.4 Q
-1.197(When a shell with history enabled e)108 355.2 R(xits,)-.15 E F4
-(bash)3.697 E F1 1.196(copies the last)3.696 F F5($HISTSIZE)3.696 E F1
-1.196(entries from the history list to)3.446 F F5($HISTFILE)108 367.2 Q
-F6(.)A F1 .056(If the)4.556 F F4(histappend)2.556 E F1 .056
-(shell option is enabled \(see the description of)2.556 F F4(shopt)2.556
+5.986 F .329(played depending on the v)108 456 R .328(alue of the)-.25 F
+F5(HISTTIMEFORMA)2.828 E(T)-.855 E F1 -.25(va)2.578 G 2.828
+(riable. When).25 F .328(present, history timestamps de-)2.828 F
+(limit history entries, making multi-line entries possible.)108 468 Q
+1.196(When a shell with history enabled e)108 484.8 R(xits,)-.15 E F2
+(bash)3.696 E F1 1.196(copies the last)3.696 F F5($HISTSIZE)3.697 E F1
+1.197(entries from the history list to)3.447 F F5($HISTFILE)108 496.8 Q
+F6(.)A F1 .056(If the)4.556 F F2(histappend)2.556 E F1 .056
+(shell option is enabled \(see the description of)2.556 F F2(shopt)2.556
E F1(under)2.556 E F5 .056(SHELL B)2.556 F(UIL)-.09 E(TIN)-.828 E
-(COMMANDS)108 379.2 Q F1(belo)2.359 E(w\),)-.25 E F4(bash)2.609 E F1
+(COMMANDS)108 508.8 Q F1(belo)2.358 E(w\),)-.25 E F2(bash)2.608 E F1
.108(appends the entries to the history \214le, otherwise it o)2.608 F
--.15(ve)-.15 G .108(rwrites the history \214le.).15 F(If)5.108 E F5
-(HISTFILE)108 391.2 Q F1 .265(is unset or null, or if the history \214l\
-e is unwritable, the history is not sa)2.515 F -.15(ve)-.2 G 2.766
-(d. After).15 F(sa)2.766 E .266(ving the his-)-.2 F(tory)108 403.2 Q(,)
--.65 E F4(bash)2.5 E F1
+-.15(ve)-.15 G .108(rwrites the history \214le.).15 F(If)5.109 E F5
+(HISTFILE)108 520.8 Q F1 .265(is unset or null, or if the history \214l\
+e is unwritable, the history is not sa)2.516 F -.15(ve)-.2 G 2.765
+(d. After).15 F(sa)2.765 E .265(ving the his-)-.2 F(tory)108 532.8 Q(,)
+-.65 E F2(bash)2.5 E F1
(truncates the history \214le to contain no more than)2.5 E F5
(HISTFILESIZE)2.5 E F1(lines as described abo)2.25 E -.15(ve)-.15 G(.)
-.15 E .544(If the)108 420 R F5(HISTTIMEFORMA)3.044 E(T)-.855 E F1 -.25
+.15 E .544(If the)108 549.6 R F5(HISTTIMEFORMA)3.044 E(T)-.855 E F1 -.25
(va)2.794 G .544(riable is set, the shell writes the timestamp informat\
ion associated with each).25 F .94
-(history entry to the history \214le, mark)108 432 R .94
+(history entry to the history \214le, mark)108 561.6 R .94
(ed with the history comment character)-.1 F 3.44(,s)-.4 G 3.44(ot)-3.44
G .94(imestamps are preserv)-3.44 F(ed)-.15 E .105
-(across shell sessions.)108 444 R .105(This uses the history comment ch\
-aracter to distinguish timestamps from other history)5.105 F 2.5
-(lines. As)108 456 R(abo)2.5 E -.15(ve)-.15 G 2.5(,w).15 G(hen using)
+(across shell sessions.)108 573.6 R .105(This uses the history comment \
+character to distinguish timestamps from other history)5.105 F 2.5
+(lines. As)108 585.6 R(abo)2.5 E -.15(ve)-.15 G 2.5(,w).15 G(hen using)
-2.5 E F5(HISTTIMEFORMA)2.5 E(T)-.855 E F6(,)A F1
-(the timestamps delimit multi-line history entries.)2.25 E(The)108 472.8
-Q F4(fc)3.159 E F1 -.2(bu)3.159 G .659(iltin command \(see).2 F F5 .66
+(the timestamps delimit multi-line history entries.)2.25 E(The)108 602.4
+Q F2(fc)3.16 E F1 -.2(bu)3.16 G .66(iltin command \(see).2 F F5 .66
(SHELL B)3.16 F(UIL)-.09 E .66(TIN COMMANDS)-.828 F F1(belo)2.91 E .66
-(w\) will list or edit and re-e)-.25 F -.15(xe)-.15 G .66(cute a por).15
-F(-)-.2 E .184(tion of the history list.)108 484.8 R(The)5.184 E F4
+(w\) will list or edit and re-e)-.25 F -.15(xe)-.15 G .659(cute a por)
+.15 F(-)-.2 E .183(tion of the history list.)108 614.4 R(The)5.184 E F2
(history)2.684 E F1 -.2(bu)2.684 G .184(iltin can display or modify the\
- history list and manipulate the history).2 F 3.027(\214le. When)108
-496.8 R .528(using command-line editing, search commands are a)3.027 F
+ history list and manipulate the history).2 F 3.028(\214le. When)108
+626.4 R .528(using command-line editing, search commands are a)3.028 F
-.25(va)-.2 G .528(ilable in each editing mode that pro).25 F(vide)-.15
-E(access to the history list.)108 508.8 Q 1.486(The shell allo)108 525.6
-R 1.486(ws control o)-.25 F -.15(ve)-.15 G 3.986(rw).15 G 1.486
+E(access to the history list.)108 638.4 Q 1.485(The shell allo)108 655.2
+R 1.485(ws control o)-.25 F -.15(ve)-.15 G 3.986(rw).15 G 1.486
(hich commands are sa)-3.986 F -.15(ve)-.2 G 3.986(do).15 G 3.986(nt)
--3.986 G 1.486(he history list.)-3.986 F(The)6.485 E F5(HISTCONTR)3.985
-E(OL)-.27 E F1(and)3.735 E F5(HISTIGNORE)108 537.6 Q F1 -.25(va)2.816 G
-.566(riables are used to sa).25 F .866 -.15(ve o)-.2 H .566
-(nly a subset of the commands entered.).15 F .567(If the)5.566 F F4
-(cmdhist)3.067 E F1 .567(shell op-)3.067 F 1.404
-(tion is enabled, the shell attempts to sa)108 549.6 R 1.703 -.15(ve e)
--.2 H 1.403(ach line of a multi-line command in the same history entry)
-.15 F(,)-.65 E 1.712(adding semicolons where necessary to preserv)108
-561.6 R 4.212(es)-.15 G 1.713(yntactic correctness.)-4.212 F(The)6.713 E
-F4(lithist)4.213 E F1 1.713(shell option modi\214es)4.213 F F4(cmdhist)
-108 573.6 Q F1 .037(by sa)2.537 F .037
+-3.986 G 1.486(he history list.)-3.986 F(The)6.486 E F5(HISTCONTR)3.986
+E(OL)-.27 E F1(and)3.736 E F5(HISTIGNORE)108 667.2 Q F1 -.25(va)2.817 G
+.567(riables are used to sa).25 F .866 -.15(ve o)-.2 H .566
+(nly a subset of the commands entered.).15 F .566(If the)5.566 F F2
+(cmdhist)3.066 E F1 .566(shell op-)3.066 F 1.403
+(tion is enabled, the shell attempts to sa)108 679.2 R 1.703 -.15(ve e)
+-.2 H 1.404(ach line of a multi-line command in the same history entry)
+.15 F(,)-.65 E 1.713(adding semicolons where necessary to preserv)108
+691.2 R 4.213(es)-.15 G 1.712(yntactic correctness.)-4.213 F(The)6.712 E
+F2(lithist)4.212 E F1 1.712(shell option modi\214es)4.212 F F2(cmdhist)
+108 703.2 Q F1 .036(by sa)2.536 F .036
(ving the command with embedded ne)-.2 F .037
-(wlines instead of semicolons.)-.25 F .036(See the description of the)
-5.036 F F4(shopt)108 585.6 Q F1 -.2(bu)2.539 G .039(iltin belo).2 F
-2.539(wu)-.25 G(nder)-2.539 E F5 .04(SHELL B)2.539 F(UIL)-.09 E .04
-(TIN COMMANDS)-.828 F F1 .04
+(wlines instead of semicolons.)-.25 F .037(See the description of the)
+5.037 F F2(shopt)108 715.2 Q F1 -.2(bu)2.54 G .04(iltin belo).2 F 2.54
+(wu)-.25 G(nder)-2.54 E F5 .04(SHELL B)2.54 F(UIL)-.09 E .04
+(TIN COMMANDS)-.828 F F1 .039
(for information on setting and unsetting shell op-)2.29 F(tions.)108
-597.6 Q F3(HIST)72 614.4 Q(OR)-.197 E 2.738(YE)-.383 G(XP)-2.738 E
-(ANSION)-.81 E F1 .611(The shell supports a history e)108 626.4 R .611
-(xpansion feature that is similar to the history e)-.15 F .61
-(xpansion in)-.15 F F4(csh)3.11 E F1 5.61(.T)C .61(his section)-5.61 F
-(describes what syntax features are a)108 638.4 Q -.25(va)-.2 G(ilable.)
-.25 E .771(History e)108 655.2 R .771(xpansion is enabled by def)-.15 F
-.771(ault for interacti)-.1 F 1.071 -.15(ve s)-.25 H .771
-(hells, and can be disabled using the).15 F F4(+H)3.272 E F1 .772
-(option to)3.272 F(the)108 667.2 Q F4(set)2.513 E F1 -.2(bu)2.513 G .013
-(iltin command \(see).2 F F5 .013(SHELL B)2.513 F(UIL)-.09 E .013
-(TIN COMMANDS)-.828 F F1(belo)2.263 E 2.513(w\). Non-interacti)-.25 F
-.313 -.15(ve s)-.25 H .012(hells do not perform).15 F(history e)108
-679.2 Q(xpansion by def)-.15 E(ault, b)-.1 E
-(ut it can be enabled with \231set -H\232.)-.2 E 1.305(History e)108 696
-R 1.305(xpansions introduce w)-.15 F 1.306(ords from the history list i\
-nto the input stream, making it easy to repeat)-.1 F .21
-(commands, insert the ar)108 708 R .21(guments to a pre)-.18 F .209
-(vious command into the current input line, or \214x errors in pre)-.25
-F(vious)-.25 E(commands quickly)108 720 Q(.)-.65 E(GNU Bash 5.3)72 768 Q
-(2025 April 7)149.285 E(63)198.445 E 0 Cg EP
-%%Page: 64 64
+727.2 Q(GNU Bash 5.3)72 768 Q(2026 January 14)141.79 E(64)190.95 E 0 Cg
+EP
+%%Page: 65 65
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E 1.163(History e)108 84 R 1.163(xpansion is perform\
-ed immediately after a complete line is read, before the shell breaks i\
-t into)-.15 F -.1(wo)108 96 S .113
-(rds, and is performed on each line indi).1 F(vidually)-.25 E 5.113(.T)
--.65 G .113(he shell attempts to inform the history e)-5.113 F .113
-(xpansion func-)-.15 F(tions about quoting still in ef)108 108 Q
-(fect from pre)-.25 E(vious lines.)-.25 E .248(It tak)108 124.8 R .248
-(es place in tw)-.1 F 2.748(op)-.1 G 2.748(arts. The)-2.748 F .249(\214\
+.25 E F1(\(1\)).95 E/F2 10.95/Times-Bold@0 SF(HIST)72 84 Q(OR)-.197 E
+2.738(YE)-.383 G(XP)-2.738 E(ANSION)-.81 E F1 .61
+(The shell supports a history e)108 96 R .611
+(xpansion feature that is similar to the history e)-.15 F .611
+(xpansion in)-.15 F/F3 10/Times-Bold@0 SF(csh)3.111 E F1 5.611(.T)C .611
+(his section)-5.611 F(describes what syntax features are a)108 108 Q
+-.25(va)-.2 G(ilable.).25 E .772(History e)108 124.8 R .772
+(xpansion is enabled by def)-.15 F .771(ault for interacti)-.1 F 1.071
+-.15(ve s)-.25 H .771(hells, and can be disabled using the).15 F F3(+H)
+3.271 E F1 .771(option to)3.271 F(the)108 136.8 Q F3(set)2.512 E F1 -.2
+(bu)2.512 G .012(iltin command \(see).2 F/F4 9/Times-Bold@0 SF .013
+(SHELL B)2.513 F(UIL)-.09 E .013(TIN COMMANDS)-.828 F F1(belo)2.263 E
+2.513(w\). Non-interacti)-.25 F .313 -.15(ve s)-.25 H .013
+(hells do not perform).15 F(history e)108 148.8 Q(xpansion by def)-.15 E
+(ault, b)-.1 E(ut it can be enabled with \231set -H\232.)-.2 E 1.306
+(History e)108 165.6 R 1.306(xpansions introduce w)-.15 F 1.306(ords fr\
+om the history list into the input stream, making it easy to repeat)-.1
+F .209(commands, insert the ar)108 177.6 R .209(guments to a pre)-.18 F
+.21(vious command into the current input line, or \214x errors in pre)
+-.25 F(vious)-.25 E(commands quickly)108 189.6 Q(.)-.65 E 1.164
+(History e)108 206.4 R 1.163(xpansion is performed immediately after a \
+complete line is read, before the shell breaks it into)-.15 F -.1(wo)108
+218.4 S .113(rds, and is performed on each line indi).1 F(vidually)-.25
+E 5.113(.T)-.65 G .113(he shell attempts to inform the history e)-5.113
+F .114(xpansion func-)-.15 F(tions about quoting still in ef)108 230.4 Q
+(fect from pre)-.25 E(vious lines.)-.25 E .249(It tak)108 247.2 R .249
+(es place in tw)-.1 F 2.749(op)-.1 G 2.749(arts. The)-2.749 F .248(\214\
rst is to determine which history list entry to use during substitution\
-.)2.748 F(The)5.249 E(second is to select portions of that entry to inc\
-lude into the current one.)108 136.8 Q .075
-(The entry selected from the history is the)108 153.6 R F0 -.15(ev)2.575
-G(ent).15 E F1 2.575(,a)C .074
-(nd the portions of that entry that are acted upon are)-2.575 F F0(wor)
-2.574 E(ds)-.37 E F1(.)A -1.11(Va)108 165.6 S(rious)1.11 E F0
-(modi\214er)2.942 E(s)-.1 E F1 .443(are a)2.943 F -.25(va)-.2 G .443
+.)2.749 F(The)5.248 E(second is to select portions of that entry to inc\
+lude into the current one.)108 259.2 Q .074
+(The entry selected from the history is the)108 276 R F0 -.15(ev)2.574 G
+(ent).15 E F1 2.574(,a)C .075
+(nd the portions of that entry that are acted upon are)-2.574 F F0(wor)
+2.575 E(ds)-.37 E F1(.)A -1.11(Va)108 288 S(rious)1.11 E F0(modi\214er)
+2.943 E(s)-.1 E F1 .443(are a)2.943 F -.25(va)-.2 G .443
(ilable to manipulate the selected w).25 F 2.943(ords. The)-.1 F .443
(entry is split into w)2.943 F .443(ords in the same)-.1 F -.1(fa)108
-177.6 S 1.427(shion as when reading input, so that se).1 F -.15(ve)-.25
-G(ral).15 E F0(metac)3.927 E(har)-.15 E(acter)-.15 E F1 1.427
-(-separated w)B 1.427(ords surrounded by quotes are)-.1 F .921
-(considered one w)108 189.6 R 3.421(ord. The)-.1 F F0 -.15(ev)3.421 G
-.921(ent designator).15 F F1 .921(selects the e)3.421 F -.15(ve)-.25 G
-.922(nt, the optional).15 F F0(wor)3.422 E 3.422(dd)-.37 G(esignator)
--3.422 E F1 .922(selects w)3.422 F(ords)-.1 E(from the e)108 201.6 Q
--.15(ve)-.25 G(nt, and v).15 E(arious optional)-.25 E F0(modi\214er)2.5
-E(s)-.1 E F1(are a)2.5 E -.25(va)-.2 G
-(ilable to manipulate the selected w).25 E(ords.)-.1 E .575(History e)
-108 218.4 R .575
-(xpansions are introduced by the appearance of the history e)-.15 F .574
-(xpansion character)-.15 F 3.074(,w)-.4 G .574(hich is)-3.074 F/F2 10
-/Times-Bold@0 SF(!)3.907 E F1 .574(by de-)3.907 F -.1(fa)108 230.4 S 2.5
-(ult. History).1 F -.15(ex)2.5 G(pansions may appear an).15 E
-(ywhere in the input, b)-.15 E(ut do not nest.)-.2 E .79
-(Only backslash \()108 247.2 R F2(\\).833 E F1 3.29(\)a).833 G .79
-(nd single quotes can quote the history e)-3.29 F .79
-(xpansion character)-.15 F 3.291(,b)-.4 G .791(ut the history e)-3.491 F
-(xpansion)-.15 E .789(character is also treated as quoted if it immedia\
-tely precedes the closing double quote in a double-quoted)108 259.2 R
-(string.)108 271.2 Q(Se)108 288 Q -.15(ve)-.25 G .03
+300 S 1.427(shion as when reading input, so that se).1 F -.15(ve)-.25 G
+(ral).15 E F0(metac)3.927 E(har)-.15 E(acter)-.15 E F1 1.427
+(-separated w)B 1.427(ords surrounded by quotes are)-.1 F .922
+(considered one w)108 312 R 3.422(ord. The)-.1 F F0 -.15(ev)3.422 G .922
+(ent designator).15 F F1 .921(selects the e)3.422 F -.15(ve)-.25 G .921
+(nt, the optional).15 F F0(wor)3.421 E 3.421(dd)-.37 G(esignator)-3.421
+E F1 .921(selects w)3.421 F(ords)-.1 E(from the e)108 324 Q -.15(ve)-.25
+G(nt, and v).15 E(arious optional)-.25 E F0(modi\214er)2.5 E(s)-.1 E F1
+(are a)2.5 E -.25(va)-.2 G(ilable to manipulate the selected w).25 E
+(ords.)-.1 E .574(History e)108 340.8 R .574
+(xpansions are introduced by the appearance of the history e)-.15 F .575
+(xpansion character)-.15 F 3.075(,w)-.4 G .575(hich is)-3.075 F F3(!)
+3.908 E F1 .575(by de-)3.908 F -.1(fa)108 352.8 S 2.5(ult. History).1 F
+-.15(ex)2.5 G(pansions may appear an).15 E(ywhere in the input, b)-.15 E
+(ut do not nest.)-.2 E .791(Only backslash \()108 369.6 R F3(\\).833 E
+F1 3.291(\)a).833 G .79(nd single quotes can quote the history e)-3.291
+F .79(xpansion character)-.15 F 3.29(,b)-.4 G .79(ut the history e)-3.49
+F(xpansion)-.15 E .789(character is also treated as quoted if it immedi\
+ately precedes the closing double quote in a double-quoted)108 381.6 R
+(string.)108 393.6 Q(Se)108 410.4 Q -.15(ve)-.25 G .03
(ral characters inhibit history e).15 F .03
(xpansion if found immediately follo)-.15 F .03(wing the history e)-.25
-F .03(xpansion character)-.15 F(,)-.4 E -2.15 -.25(ev e)108 300 T 3.722
-(ni).25 G 3.722(fi)-3.722 G 3.722(ti)-3.722 G 3.722(su)-3.722 G 1.222
-(nquoted: space, tab, ne)-3.722 F 1.222(wline, carriage return,)-.25 F
-F2(=)3.722 E F1 3.722(,a)C 1.222
-(nd the other shell metacharacters de\214ned)-3.722 F(abo)108 312 Q -.15
-(ve)-.15 G(.).15 E 1.763(There is a special abbre)108 328.8 R 1.764
+F .03(xpansion character)-.15 F(,)-.4 E -2.15 -.25(ev e)108 422.4 T
+3.721(ni).25 G 3.721(fi)-3.721 G 3.722(ti)-3.721 G 3.722(su)-3.722 G
+1.222(nquoted: space, tab, ne)-3.722 F 1.222(wline, carriage return,)
+-.25 F F3(=)3.722 E F1 3.722(,a)C 1.222
+(nd the other shell metacharacters de\214ned)-3.722 F(abo)108 434.4 Q
+-.15(ve)-.15 G(.).15 E 1.764(There is a special abbre)108 451.2 R 1.764
(viation for substitution, acti)-.25 F 2.064 -.15(ve w)-.25 H 1.764
(hen the).15 F F0(quic)4.264 E 4.264(ks)-.2 G(ubstitution)-4.264 E F1
-1.764(character \(described)4.264 F(abo)108 340.8 Q .99 -.15(ve u)-.15 H
-(nder).15 E F2(histchars)3.19 E F1 3.19(\)i)C 3.19(st)-3.19 G .69
+1.763(character \(described)4.263 F(abo)108 463.2 Q .99 -.15(ve u)-.15 H
+(nder).15 E F3(histchars)3.19 E F1 3.19(\)i)C 3.19(st)-3.19 G .69
(he \214rst character on the line.)-3.19 F .69(It selects the pre)5.69 F
.69(vious history list entry)-.25 F 3.19(,u)-.65 G .69(sing an)-3.19 F
--2.15 -.25(ev e)108 352.8 T .586(nt designator equi).25 F -.25(va)-.25 G
-.586(lent to).25 F F2(!!)3.086 E F1 3.086(,a)C .586
-(nd substitutes one string for another in that entry)-3.086 F 5.587(.I)
--.65 G 3.087(ti)-5.587 G 3.087(sd)-3.087 G .587(escribed belo)-3.087 F
-(w)-.25 E(under)108 364.8 Q F2(Ev)3.321 E .821(ent Designators)-.1 F F1
-5.821(.T)C .821(his is the only history e)-5.821 F .821
-(xpansion that does not be)-.15 F .82(gin with the history e)-.15 F
-(xpan-)-.15 E(sion character)108 376.8 Q(.)-.55 E(Se)108 393.6 Q -.15
-(ve)-.25 G 1.216(ral shell options settable with the).15 F F2(shopt)
-3.717 E F1 -.2(bu)3.717 G 1.217(iltin will modify history e).2 F 1.217
-(xpansion beha)-.15 F 1.217(vior \(see the de-)-.2 F 1.284
-(scription of the)108 405.6 R F2(shopt)3.783 E F1 -.2(bu)3.783 G 1.283
-(iltin belo).2 F 1.283(w\).and If the)-.25 F F2(histv)3.783 E(erify)-.1
-E F1 1.283(shell option is enabled, and)3.783 F F2 -.18(re)3.783 G
-(adline).18 E F1 1.283(is being)3.783 F .554(used, history substitution\
-s are not immediately passed to the shell parser)108 417.6 R 5.554(.I)
--.55 G .554(nstead, the e)-5.554 F .554(xpanded line is re-)-.15 F 2.746
-(loaded into the)108 429.6 R F2 -.18(re)5.246 G(adline).18 E F1 2.746
+-2.15 -.25(ev e)108 475.2 T .587(nt designator equi).25 F -.25(va)-.25 G
+.587(lent to).25 F F3(!!)3.087 E F1 3.087(,a)C .586
+(nd substitutes one string for another in that entry)-3.087 F 5.586(.I)
+-.65 G 3.086(ti)-5.586 G 3.086(sd)-3.086 G .586(escribed belo)-3.086 F
+(w)-.25 E(under)108 487.2 Q F3(Ev)3.32 E .82(ent Designators)-.1 F F1
+5.82(.T)C .82(his is the only history e)-5.82 F .821
+(xpansion that does not be)-.15 F .821(gin with the history e)-.15 F
+(xpan-)-.15 E(sion character)108 499.2 Q(.)-.55 E(Se)108 516 Q -.15(ve)
+-.25 G 1.217(ral shell options settable with the).15 F F3(shopt)3.717 E
+F1 -.2(bu)3.717 G 1.217(iltin will modify history e).2 F 1.216
+(xpansion beha)-.15 F 1.216(vior \(see the de-)-.2 F 1.283
+(scription of the)108 528 R F3(shopt)3.783 E F1 -.2(bu)3.783 G 1.283
+(iltin belo).2 F 1.283(w\).and If the)-.25 F F3(histv)3.783 E(erify)-.1
+E F1 1.283(shell option is enabled, and)3.783 F F3 -.18(re)3.783 G
+(adline).18 E F1 1.284(is being)3.784 F .554(used, history substitution\
+s are not immediately passed to the shell parser)108 540 R 5.554(.I)-.55
+G .554(nstead, the e)-5.554 F .553(xpanded line is re-)-.15 F 2.746
+(loaded into the)108 552 R F3 -.18(re)5.246 G(adline).18 E F1 2.746
(editing b)5.246 F(uf)-.2 E 2.746(fer for further modi\214cation.)-.25 F
-(If)7.746 E F2 -.18(re)5.246 G(adline).18 E F1 2.746
-(is being used, and the)5.246 F F2(histr)108 441.6 Q(eedit)-.18 E F1
-.825(shell option is enabled, a f)3.325 F .825
-(ailed history substitution is reloaded into the)-.1 F F2 -.18(re)3.326
-G(adline).18 E F1 .826(editing b)3.326 F(uf)-.2 E(fer)-.25 E
-(for correction.)108 453.6 Q(The)108 470.4 Q F2<ad70>2.699 E F1 .199
-(option to the)2.699 F F2(history)2.699 E F1 -.2(bu)2.699 G .199
+(If)7.746 E F3 -.18(re)5.246 G(adline).18 E F1 2.746
+(is being used, and the)5.246 F F3(histr)108 564 Q(eedit)-.18 E F1 .826
+(shell option is enabled, a f)3.326 F .825
+(ailed history substitution is reloaded into the)-.1 F F3 -.18(re)3.325
+G(adline).18 E F1 .825(editing b)3.325 F(uf)-.2 E(fer)-.25 E
+(for correction.)108 576 Q(The)108 592.8 Q F3<ad70>2.698 E F1 .199
+(option to the)2.698 F F3(history)2.699 E F1 -.2(bu)2.699 G .199
(iltin command sho).2 F .199(ws what a history e)-.25 F .199
-(xpansion will do before using it.)-.15 F(The)5.198 E F2<ad73>108 482.4
-Q F1 .377(option to the)2.877 F F2(history)2.877 E F1 -.2(bu)2.878 G
+(xpansion will do before using it.)-.15 F(The)5.199 E F3<ad73>108 604.8
+Q F1 .378(option to the)2.878 F F3(history)2.878 E F1 -.2(bu)2.878 G
.378(iltin will add commands to the end of the history list without act\
-ually e).2 F -.15(xe)-.15 G(cuting).15 E(them, so that the)108 494.4 Q
+ually e).2 F -.15(xe)-.15 G(cuting).15 E(them, so that the)108 616.8 Q
2.5(ya)-.15 G(re a)-2.5 E -.25(va)-.2 G(ilable for subsequent recall.)
-.25 E 1.109(The shell allo)108 511.2 R 1.108(ws control of the v)-.25 F
+.25 E 1.108(The shell allo)108 633.6 R 1.108(ws control of the v)-.25 F
1.108(arious characters used by the history e)-.25 F 1.108
-(xpansion mechanism \(see the de-)-.15 F .162(scription of)108 523.2 R
-F2(histchars)2.662 E F1(abo)2.662 E .462 -.15(ve u)-.15 H(nder).15 E F2
-.163(Shell V)2.662 F(ariables)-.92 E F1 2.663(\). The)B .163
+(xpansion mechanism \(see the de-)-.15 F .163(scription of)108 645.6 R
+F3(histchars)2.663 E F1(abo)2.663 E .463 -.15(ve u)-.15 H(nder).15 E F3
+.163(Shell V)2.663 F(ariables)-.92 E F1 2.663(\). The)B .162
(shell uses the history comment character to mark)2.663 F
-(history timestamps when writing the history \214le.)108 535.2 Q F2(Ev)
-87 552 Q(ent Designators)-.1 E F1 .586(An e)108 564 R -.15(ve)-.25 G
+(history timestamps when writing the history \214le.)108 657.6 Q F3(Ev)
+87 674.4 Q(ent Designators)-.1 E F1 .585(An e)108 686.4 R -.15(ve)-.25 G
.586(nt designator is a reference to an entry in the history list.).15 F
-.586(The e)5.586 F -.15(ve)-.25 G .585
-(nt designator consists of the por).15 F(-)-.2 E 1.305(tion of the w)108
-576 R 1.305(ord be)-.1 F 1.305(ginning with the history e)-.15 F 1.306
-(xpansion character and ending with the w)-.15 F 1.306
-(ord designator if)-.1 F .445(present, or the end of the w)108 588 R
-2.945(ord. Unless)-.1 F .444(the reference is absolute, e)2.945 F -.15
-(ve)-.25 G .444(nts are relati).15 F .744 -.15(ve t)-.25 H 2.944(ot).15
-G .444(he current position)-2.944 F(in the history list.)108 600 Q F2(!)
-108 616.8 Q F1 .078(Start a history substitution, e)144 616.8 R .078
-(xcept when follo)-.15 F .079(wed by a)-.25 F F2(blank)2.579 E F1 2.579
-(,n)C -.25(ew)-2.579 G .079(line, carriage return, =, or).25 F 2.579(,w)
--.4 G(hen)-2.579 E(the)144 628.8 Q F2(extglob)2.5 E F1
-(shell option is enabled using the)2.5 E F2(shopt)2.5 E F1 -.2(bu)2.5 G
-(iltin, \(.).2 E F2(!)108 640.8 Q F0(n)A F1(Refer to history list entry)
-144 640.8 Q F0(n)2.86 E F1(.).24 E F2<21ad>108 652.8 Q F0(n)A F1
-(Refer to the current entry minus)144 652.8 Q F0(n)2.86 E F1(.).24 E F2
-(!!)108 664.8 Q F1(Refer to the pre)144 664.8 Q(vious entry)-.25 E 5(.T)
--.65 G(his is a synon)-5 E(ym for \231!\2551\232.)-.15 E F2(!)108 676.8
-Q F0(string)A F1 .865(Refer to the most recent command preceding the cu\
-rrent position in the history list starting with)144 676.8 R F0(string)
-144.34 688.8 Q F1(.).22 E F2(!?)108 700.8 Q F0(string)A F2([?])A F1
-1.503(Refer to the most recent command preceding the current position i\
-n the history list containing)144 712.8 R F0(string)144.34 724.8 Q F1
-5.497(.T).22 G .497(he trailing)-5.497 F F2(?)2.997 E F1 .497
-(may be omitted if)2.997 F F0(string)3.337 E F1 .496(is follo)3.216 F
-.496(wed immediately by a ne)-.25 F 2.996(wline. If)-.25 F F0(string)
-2.996 E F1(is)2.996 E(GNU Bash 5.3)72 768 Q(2025 April 7)149.285 E(64)
-198.445 E 0 Cg EP
-%%Page: 65 65
+.586(The e)5.586 F -.15(ve)-.25 G .586
+(nt designator consists of the por).15 F(-)-.2 E 1.306(tion of the w)108
+698.4 R 1.306(ord be)-.1 F 1.306(ginning with the history e)-.15 F 1.305
+(xpansion character and ending with the w)-.15 F 1.305
+(ord designator if)-.1 F .444(present, or the end of the w)108 710.4 R
+2.944(ord. Unless)-.1 F .444(the reference is absolute, e)2.944 F -.15
+(ve)-.25 G .445(nts are relati).15 F .745 -.15(ve t)-.25 H 2.945(ot).15
+G .445(he current position)-2.945 F(in the history list.)108 722.4 Q
+(GNU Bash 5.3)72 768 Q(2026 January 14)141.79 E(65)190.95 E 0 Cg EP
+%%Page: 66 66
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E .039(missing, this uses the string from the most r\
-ecent search; it is an error if there is no pre)144 84 R .04
-(vious search)-.25 F(string.)144 96 Q/F2 12/Times-Bold@0 SF<00>108 113 Q
-F0(string1)-5 I F2<00>5 I F0(string2)-5 I F2<00>5 I F1 .753
-(Quick substitution.)144 120 R .753(Repeat the pre)5.753 F .753
+.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(!)108 84 Q F1 .079
+(Start a history substitution, e)144 84 R .079(xcept when follo)-.15 F
+.079(wed by a)-.25 F F2(blank)2.579 E F1 2.579(,n)C -.25(ew)-2.579 G
+.078(line, carriage return, =, or).25 F 2.578(,w)-.4 G(hen)-2.578 E(the)
+144 96 Q F2(extglob)2.5 E F1(shell option is enabled using the)2.5 E F2
+(shopt)2.5 E F1 -.2(bu)2.5 G(iltin, \(.).2 E F2(!)108 108 Q F0(n)A F1
+(Refer to history list entry)144 108 Q F0(n)2.86 E F1(.).24 E F2<21ad>
+108 120 Q F0(n)A F1(Refer to the current entry minus)144 120 Q F0(n)2.86
+E F1(.).24 E F2(!!)108 132 Q F1(Refer to the pre)144 132 Q(vious entry)
+-.25 E 5(.T)-.65 G(his is a synon)-5 E(ym for \231!\2551\232.)-.15 E F2
+(!)108 144 Q F0(string)A F1 .865(Refer to the most recent command prece\
+ding the current position in the history list starting with)144 144 R F0
+(string)144.34 156 Q F1(.).22 E F2(!?)108 168 Q F0(string)A F2([?])A F1
+1.503(Refer to the most recent command preceding the current position i\
+n the history list containing)144 180 R F0(string)144.34 192 Q F1 5.496
+(.T).22 G .496(he trailing)-5.496 F F2(?)2.996 E F1 .496
+(may be omitted if)2.996 F F0(string)3.336 E F1 .497(is follo)3.216 F
+.497(wed immediately by a ne)-.25 F 2.997(wline. If)-.25 F F0(string)
+2.997 E F1(is)2.997 E .04(missing, this uses the string from the most r\
+ecent search; it is an error if there is no pre)144 204 R .039
+(vious search)-.25 F(string.)144 216 Q/F3 12/Times-Bold@0 SF<00>108 233
+Q F0(string1)-5 I F3<00>5 I F0(string2)-5 I F3<00>5 I F1 .752
+(Quick substitution.)144 240 R .752(Repeat the pre)5.752 F .753
(vious command, replacing)-.25 F F0(string1)3.593 E F1(with)3.253 E F0
-(string2)3.592 E F1 5.752(.E).02 G(qui)-5.752 E -.25(va)-.25 G .752
-(lent to).25 F(\231!!:s)144 132 Q/F3 12/Times-Roman@0 SF<00>5 I F0
-(string1)-5 I F3<00>5 I F0(string2)-5 I F3<00>5 I F1 2.5<9a28>-5 K(see)
--2.5 E/F4 10/Times-Bold@0 SF(Modi\214ers)2.5 E F1(belo)2.5 E(w\).)-.25 E
-F4(!#)108 144 Q F1(The entire command line typed so f)144 144 Q(ar)-.1 E
-(.)-.55 E F4 -.75(Wo)87 160.8 S(rd Designators).75 E F1 -.8(Wo)108 172.8
-S .067(rd designators are used to select desired w).8 F .067
-(ords from the e)-.1 F -.15(ve)-.25 G 2.567(nt. The).15 F 2.567(ya)-.15
-G .067(re optional; if the w)-2.567 F .068(ord designator)-.1 F(isn')108
-184.8 Q 3.516(ts)-.18 G 1.016(upplied, the history e)-3.516 F 1.016
-(xpansion uses the entire e)-.15 F -.15(ve)-.25 G 3.516(nt. A).15 F F4
-(:)3.516 E F1 1.015(separates the e)3.515 F -.15(ve)-.25 G 1.015
-(nt speci\214cation from the).15 F -.1(wo)108 196.8 S .331
-(rd designator).1 F 5.331(.I)-.55 G 2.832(tm)-5.331 G .332
+(string2)3.593 E F1 5.753(.E).02 G(qui)-5.753 E -.25(va)-.25 G .753
+(lent to).25 F(\231!!:s)144 252 Q/F4 12/Times-Roman@0 SF<00>5 I F0
+(string1)-5 I F4<00>5 I F0(string2)-5 I F4<00>5 I F1 2.5<9a28>-5 K(see)
+-2.5 E F2(Modi\214ers)2.5 E F1(belo)2.5 E(w\).)-.25 E F2(!#)108 264 Q F1
+(The entire command line typed so f)144 264 Q(ar)-.1 E(.)-.55 E F2 -.75
+(Wo)87 280.8 S(rd Designators).75 E F1 -.8(Wo)108 292.8 S .067
+(rd designators are used to select desired w).8 F .067(ords from the e)
+-.1 F -.15(ve)-.25 G 2.567(nt. The).15 F 2.567(ya)-.15 G .067
+(re optional; if the w)-2.567 F .067(ord designator)-.1 F(isn')108 304.8
+Q 3.515(ts)-.18 G 1.015(upplied, the history e)-3.515 F 1.015
+(xpansion uses the entire e)-.15 F -.15(ve)-.25 G 3.516(nt. A).15 F F2
+(:)3.516 E F1 1.016(separates the e)3.516 F -.15(ve)-.25 G 1.016
+(nt speci\214cation from the).15 F -.1(wo)108 316.8 S .332
+(rd designator).1 F 5.332(.I)-.55 G 2.832(tm)-5.332 G .332
(ay be omitted if the w)-2.832 F .332(ord designator be)-.1 F .332
-(gins with a)-.15 F F4<00>2.832 E F1(,)A F4($)2.832 E F1(,)A F4(*)2.832
-E F1(,)A F4<ad>2.832 E F1 2.832(,o)C(r)-2.832 E F4(%)2.832 E F1 5.332
-(.W)C .332(ords are num-)-6.132 F .194(bered from the be)108 208.8 R
+(gins with a)-.15 F F2<00>2.832 E F1(,)A F2($)2.832 E F1(,)A F2(*)2.832
+E F1(,)A F2<ad>2.832 E F1 2.832(,o)C(r)-2.832 E F2(%)2.832 E F1 5.332
+(.W)C .331(ords are num-)-6.132 F .193(bered from the be)108 328.8 R
.194(ginning of the line, with the \214rst w)-.15 F .194
-(ord being denoted by 0 \(zero\).)-.1 F -.8(Wo)5.193 G .193
+(ord being denoted by 0 \(zero\).)-.1 F -.8(Wo)5.194 G .194
(rds are inserted into).8 F
-(the current line separated by single spaces.)108 220.8 Q F4 2.5(0\()108
-237.6 S(zer)-2.5 E(o\))-.18 E F1(The zeroth w)144 249.6 Q 2.5(ord. F)-.1
+(the current line separated by single spaces.)108 340.8 Q F2 2.5(0\()108
+357.6 S(zer)-2.5 E(o\))-.18 E F1(The zeroth w)144 369.6 Q 2.5(ord. F)-.1
F(or the shell, this is the command w)-.15 E(ord.)-.1 E F0(n)108.36
-261.6 Q F1(The)144 261.6 Q F0(n)2.5 E F1(th w)A(ord.)-.1 E F4<00>108
-273.6 Q F1(The \214rst ar)144 273.6 Q(gument: w)-.18 E(ord 1.)-.1 E F4
-($)108 285.6 Q F1 .063(The last w)144 285.6 R 2.563(ord. This)-.1 F .063
-(is usually the last ar)2.563 F .064(gument, b)-.18 F .064(ut will e)-.2
-F .064(xpand to the zeroth w)-.15 F .064(ord if there is only)-.1 F
-(one w)144 297.6 Q(ord in the line.)-.1 E F4(%)108 309.6 Q F1 1.125
-(The \214rst w)144 309.6 R 1.125(ord matched by the most recent \231?)
--.1 F F0(string)A F1 3.624(?\232 search,)B 1.124
-(if the search string be)3.624 F 1.124(gins with a)-.15 F .486
-(character that is part of a w)144 321.6 R 2.986(ord. By)-.1 F(def)2.986
-E .486(ault, searches be)-.1 F .487
-(gin at the end of each line and proceed to)-.15 F(the be)144 333.6 Q
+381.6 Q F1(The)144 381.6 Q F0(n)2.5 E F1(th w)A(ord.)-.1 E F2<00>108
+393.6 Q F1(The \214rst ar)144 393.6 Q(gument: w)-.18 E(ord 1.)-.1 E F2
+($)108 405.6 Q F1 .064(The last w)144 405.6 R 2.564(ord. This)-.1 F .064
+(is usually the last ar)2.564 F .064(gument, b)-.18 F .064(ut will e)-.2
+F .064(xpand to the zeroth w)-.15 F .063(ord if there is only)-.1 F
+(one w)144 417.6 Q(ord in the line.)-.1 E F2(%)108 429.6 Q F1 1.124
+(The \214rst w)144 429.6 R 1.124(ord matched by the most recent \231?)
+-.1 F F0(string)A F1 3.624(?\232 search,)B 1.125
+(if the search string be)3.624 F 1.125(gins with a)-.15 F .487
+(character that is part of a w)144 441.6 R 2.986(ord. By)-.1 F(def)2.986
+E .486(ault, searches be)-.1 F .486
+(gin at the end of each line and proceed to)-.15 F(the be)144 453.6 Q
(ginning, so the \214rst w)-.15 E
(ord matched is the one closest to the end of the line.)-.1 E F0(x)
-108.77 345.6 Q F4<ad>A F0(y)A F1 2.5(Ar)144 345.6 S(ange of w)-2.5 E
+108.77 465.6 Q F2<ad>A F0(y)A F1 2.5(Ar)144 465.6 S(ange of w)-2.5 E
(ords; \231\255)-.1 E F0(y)A F1 2.5<9a61>C(bbre)-2.5 E(viates \2310\255)
--.25 E F0(y)A F1<9a2e>A F4(*)108 357.6 Q F1 .219(All of the w)144 357.6
-R .219(ords b)-.1 F .219(ut the zeroth.)-.2 F .219(This is a synon)5.219
-F .219(ym for \231)-.15 F F0(1\255$)A F1 2.719(\232. It)B .218
-(is not an error to use)2.719 F F4(*)2.718 E F1 .218(if there is)2.718 F
-(just one w)144 369.6 Q(ord in the e)-.1 E -.15(ve)-.25 G(nt; it e).15 E
-(xpands to the empty string in that case.)-.15 E F4(x*)108 381.6 Q F1
-(Abbre)144 381.6 Q(viates)-.25 E F0(x\255$)2.5 E F1(.)A F4<78ad>108
-393.6 Q F1(Abbre)144 393.6 Q(viates)-.25 E F0(x\255$)2.5 E F1(lik)2.5 E
-(e)-.1 E F4(x*)2.5 E F1 2.5(,b)C(ut omits the last w)-2.7 E 2.5(ord. If)
--.1 F F4(x)2.5 E F1(is missing, it def)2.5 E(aults to 0.)-.1 E .368
-(If a w)108 410.4 R .368(ord designator is supplied without an e)-.1 F
--.15(ve)-.25 G .368(nt speci\214cation, the pre).15 F .369
+-.25 E F0(y)A F1<9a2e>A F2(*)108 477.6 Q F1 .218(All of the w)144 477.6
+R .218(ords b)-.1 F .218(ut the zeroth.)-.2 F .219(This is a synon)5.218
+F .219(ym for \231)-.15 F F0(1\255$)A F1 2.719(\232. It)B .219
+(is not an error to use)2.719 F F2(*)2.719 E F1 .219(if there is)2.719 F
+(just one w)144 489.6 Q(ord in the e)-.1 E -.15(ve)-.25 G(nt; it e).15 E
+(xpands to the empty string in that case.)-.15 E F2(x*)108 501.6 Q F1
+(Abbre)144 501.6 Q(viates)-.25 E F0(x\255$)2.5 E F1(.)A F2<78ad>108
+513.6 Q F1(Abbre)144 513.6 Q(viates)-.25 E F0(x\255$)2.5 E F1(lik)2.5 E
+(e)-.1 E F2(x*)2.5 E F1 2.5(,b)C(ut omits the last w)-2.7 E 2.5(ord. If)
+-.1 F F2(x)2.5 E F1(is missing, it def)2.5 E(aults to 0.)-.1 E .369
+(If a w)108 530.4 R .368(ord designator is supplied without an e)-.1 F
+-.15(ve)-.25 G .368(nt speci\214cation, the pre).15 F .368
(vious command is used as the e)-.25 F -.15(ve)-.25 G(nt,).15 E(equi)108
-422.4 Q -.25(va)-.25 G(lent to).25 E F4(!!)2.5 E F1(.)A F4(Modi\214ers)
-87 439.2 Q F1 .47(After the optional w)108 451.2 R .47(ord designator)
--.1 F 2.97(,t)-.4 G .47(he e)-2.97 F .469
+542.4 Q -.25(va)-.25 G(lent to).25 E F2(!!)2.5 E F1(.)A F2(Modi\214ers)
+87 559.2 Q F1 .469(After the optional w)108 571.2 R .469(ord designator)
+-.1 F 2.969(,t)-.4 G .469(he e)-2.969 F .47
(xpansion may include a sequence of one or more of the follo)-.15 F
-(wing)-.25 E(modi\214ers, each preceded by a \231:\232.)108 463.2 Q
+(wing)-.25 E(modi\214ers, each preceded by a \231:\232.)108 583.2 Q
(These modify)5 E 2.5(,o)-.65 G 2.5(re)-2.5 G(dit, the w)-2.5 E
(ord or w)-.1 E(ords selected from the history e)-.1 E -.15(ve)-.25 G
-(nt.).15 E F4(h)108 480 Q F1(Remo)144 480 Q .3 -.15(ve a t)-.15 H
-(railing pathname component, lea).15 E(ving only the head.)-.2 E F4(t)
-108 492 Q F1(Remo)144 492 Q .3 -.15(ve a)-.15 H
-(ll leading pathname components, lea).15 E(ving the tail.)-.2 E F4(r)108
-504 Q F1(Remo)144 504 Q .3 -.15(ve a t)-.15 H(railing suf).15 E
+(nt.).15 E F2(h)108 600 Q F1(Remo)144 600 Q .3 -.15(ve a t)-.15 H
+(railing pathname component, lea).15 E(ving only the head.)-.2 E F2(t)
+108 612 Q F1(Remo)144 612 Q .3 -.15(ve a)-.15 H
+(ll leading pathname components, lea).15 E(ving the tail.)-.2 E F2(r)108
+624 Q F1(Remo)144 624 Q .3 -.15(ve a t)-.15 H(railing suf).15 E
(\214x of the form)-.25 E F0(.xxx)2.5 E F1 2.5(,l)C(ea)-2.5 E
-(ving the basename.)-.2 E F4(e)108 516 Q F1(Remo)144 516 Q .3 -.15(ve a)
--.15 H(ll b).15 E(ut the trailing suf)-.2 E(\214x.)-.25 E F4(p)108 528 Q
-F1(Print the ne)144 528 Q 2.5(wc)-.25 G(ommand b)-2.5 E(ut do not e)-.2
-E -.15(xe)-.15 G(cute it.).15 E F4(q)108 540 Q F1
-(Quote the substituted w)144 540 Q
-(ords, escaping further substitutions.)-.1 E F4(x)108 552 Q F1 .385
-(Quote the substituted w)144 552 R .385(ords as with)-.1 F F4(q)2.885 E
-F1 2.885(,b)C .386(ut break into w)-3.085 F .386(ords at)-.1 F F4
-(blanks)2.886 E F1 .386(and ne)2.886 F 2.886(wlines. The)-.25 F F4(q)
-2.886 E F1(and)2.886 E F4(x)2.886 E F1(modi\214ers are mutually e)144
-564 Q(xclusi)-.15 E -.15(ve)-.25 G 2.5(;e).15 G
-(xpansion uses the last one supplied.)-2.65 E F4(s/)108 576 Q F0(old)A
-F4(/)A F0(ne)A(w)-.15 E F4(/)A F1(Substitute)144 588 Q F0(ne)3.329 E(w)
--.15 E F1 .469(for the \214rst occurrence of)3.279 F F0(old)3.199 E F1
+(ving the basename.)-.2 E F2(e)108 636 Q F1(Remo)144 636 Q .3 -.15(ve a)
+-.15 H(ll b).15 E(ut the trailing suf)-.2 E(\214x.)-.25 E F2(p)108 648 Q
+F1(Print the ne)144 648 Q 2.5(wc)-.25 G(ommand b)-2.5 E(ut do not e)-.2
+E -.15(xe)-.15 G(cute it.).15 E F2(q)108 660 Q F1
+(Quote the substituted w)144 660 Q
+(ords, escaping further substitutions.)-.1 E F2(x)108 672 Q F1 .386
+(Quote the substituted w)144 672 R .386(ords as with)-.1 F F2(q)2.886 E
+F1 2.886(,b)C .386(ut break into w)-3.086 F .385(ords at)-.1 F F2
+(blanks)2.885 E F1 .385(and ne)2.885 F 2.885(wlines. The)-.25 F F2(q)
+2.885 E F1(and)2.885 E F2(x)2.885 E F1(modi\214ers are mutually e)144
+684 Q(xclusi)-.15 E -.15(ve)-.25 G 2.5(;e).15 G
+(xpansion uses the last one supplied.)-2.65 E F2(s/)108 696 Q F0(old)A
+F2(/)A F0(ne)A(w)-.15 E F2(/)A F1(Substitute)144 708 Q F0(ne)3.328 E(w)
+-.15 E F1 .469(for the \214rst occurrence of)3.278 F F0(old)3.199 E F1
.469(in the e)3.739 F -.15(ve)-.25 G .469(nt line.).15 F(An)5.469 E
-2.969(yc)-.15 G .469(haracter may be used as the)-2.969 F .294
-(delimiter in place of /.)144 600 R .295
+2.969(yc)-.15 G .469(haracter may be used as the)-2.969 F .295
+(delimiter in place of /.)144 720 R .294
(The \214nal delimiter is optional if it is the last character of the e)
-5.294 F -.15(ve)-.25 G .295(nt line.).15 F(A)5.295 E .229
-(single backslash quotes the delimiter in)144 612 R F0(old)2.959 E F1
-(and)3.498 E F0(ne)3.088 E(w)-.15 E F1 5.228(.I).31 G 2.728(f&a)-5.228 G
-.228(ppears in)-2.728 F F0(ne)3.088 E(w)-.15 E F1 2.728(,i).31 G 2.728
-(ti)-2.728 G 2.728(sr)-2.728 G .228(eplaced with)-2.728 F F0(old)2.958 E
-F1(.).77 E 2.986(As)144 624 S .486(ingle backslash quotes the &.)-2.986
-F(If)5.486 E F0(old)3.216 E F1 .486(is null, it is set to the last)3.756
-F F0(old)3.216 E F1 .487(substituted, or)3.756 F 2.987(,i)-.4 G 2.987
-(fn)-2.987 G 2.987(op)-2.987 G(re)-2.987 E(vi-)-.25 E 1.09
-(ous history substitutions took place, the last)144 636 R F0(string)3.93
-E F1 1.09(in a)3.81 F F4(!?)3.59 E F0(string)A F4([?])A F1 3.59
-(search. If)6.09 F F0(ne)3.95 E(w)-.15 E F1 1.09(is null, each)3.9 F
-(matching)144 648 Q F0(old)2.73 E F1(is deleted.)3.27 E F4(&)108 660 Q
-F1(Repeat the pre)144 660 Q(vious substitution.)-.25 E F4(g)108 672 Q F1
-.267(Cause changes to be applied o)144 672 R -.15(ve)-.15 G 2.767(rt).15
-G .267(he entire e)-2.767 F -.15(ve)-.25 G .267(nt line.).15 F .267
-(This is used in conjunction with \231)5.267 F F4(:s)A F1 2.768<9a28>C
-(e.g.,)-2.768 E<99>144 684 Q F4(:gs/)A F0(old)A F4(/)A F0(ne)A(w)-.15 E
-F4(/)A F1(\232\) or \231)A F4(:&)A F1 2.5(\232. If)B(used with \231)2.5
-E F4(:s)A F1(\232, an)A 2.5(yd)-.15 G
-(elimiter can be used in place of /, and the \214nal de-)-2.5 E
-(limiter is optional if it is the last character of the e)144 696 Q -.15
-(ve)-.25 G(nt line.).15 E(An)5 E F4(a)2.5 E F1(may be used as a synon)
-2.5 E(ym for)-.15 E F4(g)2.5 E F1(.)A(GNU Bash 5.3)72 768 Q
-(2025 April 7)149.285 E(65)198.445 E 0 Cg EP
-%%Page: 66 66
+5.295 F -.15(ve)-.25 G .294(nt line.).15 F(A)5.294 E(GNU Bash 5.3)72 768
+Q(2026 January 14)141.79 E(66)190.95 E 0 Cg EP
+%%Page: 67 67
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(G)108 84 Q F1
-(Apply the follo)144 84 Q(wing \231)-.25 E F2(s)A F1 2.5<9a6f>C 2.5
-<7299>-2.5 G F2(&)-2.5 E F1 2.5<9a6d>C(odi\214er once to each w)-2.5 E
-(ord in the e)-.1 E -.15(ve)-.25 G(nt line.).15 E/F3 10.95/Times-Bold@0
-SF(SHELL B)72 100.8 Q(UIL)-.11 E(TIN COMMANDS)-1.007 E F1 .063
-(Unless otherwise noted, each b)108 112.8 R .062(uiltin command documen\
+.25 E F1(\(1\)).95 E .228(single backslash quotes the delimiter in)144
+84 R F0(old)2.958 E F1(and)3.498 E F0(ne)3.088 E(w)-.15 E F1 5.228(.I)
+.31 G 2.728(f&a)-5.228 G .228(ppears in)-2.728 F F0(ne)3.089 E(w)-.15 E
+F1 2.729(,i).31 G 2.729(ti)-2.729 G 2.729(sr)-2.729 G .229(eplaced with)
+-2.729 F F0(old)2.959 E F1(.).77 E 2.987(As)144 96 S .487
+(ingle backslash quotes the &.)-2.987 F(If)5.486 E F0(old)3.216 E F1
+.486(is null, it is set to the last)3.756 F F0(old)3.216 E F1 .486
+(substituted, or)3.756 F 2.986(,i)-.4 G 2.986(fn)-2.986 G 2.986(op)
+-2.986 G(re)-2.986 E(vi-)-.25 E 1.09
+(ous history substitutions took place, the last)144 108 R F0(string)3.93
+E F1 1.09(in a)3.81 F/F2 10/Times-Bold@0 SF(!?)3.59 E F0(string)A F2
+([?])A F1 3.59(search. If)6.09 F F0(ne)3.95 E(w)-.15 E F1 1.09
+(is null, each)3.9 F(matching)144 120 Q F0(old)2.73 E F1(is deleted.)
+3.27 E F2(&)108 132 Q F1(Repeat the pre)144 132 Q(vious substitution.)
+-.25 E F2(g)108 144 Q F1 .267(Cause changes to be applied o)144 144 R
+-.15(ve)-.15 G 2.767(rt).15 G .267(he entire e)-2.767 F -.15(ve)-.25 G
+.267(nt line.).15 F .267(This is used in conjunction with \231)5.267 F
+F2(:s)A F1 2.767<9a28>C(e.g.,)-2.767 E<99>144 156 Q F2(:gs/)A F0(old)A
+F2(/)A F0(ne)A(w)-.15 E F2(/)A F1(\232\) or \231)A F2(:&)A F1 2.5
+(\232. If)B(used with \231)2.5 E F2(:s)A F1(\232, an)A 2.5(yd)-.15 G
+(elimiter can be used in place of /, and the \214nal de-)-2.5 E
+(limiter is optional if it is the last character of the e)144 168 Q -.15
+(ve)-.25 G(nt line.).15 E(An)5 E F2(a)2.5 E F1(may be used as a synon)
+2.5 E(ym for)-.15 E F2(g)2.5 E F1(.)A F2(G)108 180 Q F1(Apply the follo)
+144 180 Q(wing \231)-.25 E F2(s)A F1 2.5<9a6f>C 2.5<7299>-2.5 G F2(&)
+-2.5 E F1 2.5<9a6d>C(odi\214er once to each w)-2.5 E(ord in the e)-.1 E
+-.15(ve)-.25 G(nt line.).15 E/F3 10.95/Times-Bold@0 SF(SHELL B)72 196.8
+Q(UIL)-.11 E(TIN COMMANDS)-1.007 E F1 .062
+(Unless otherwise noted, each b)108 208.8 R .062(uiltin command documen\
ted in this section as accepting options preceded by)-.2 F F2<ad>108
-124.8 Q F1(accepts)3.077 E F2<adad>3.077 E F1 .577
+220.8 Q F1(accepts)3.077 E F2<adad>3.077 E F1 .577
(to signify the end of the options.)3.077 F(The)5.577 E F2(:)3.077 E F1
(,)A F2(true)3.077 E F1(,)A F2(false)3.077 E F1 3.077(,a)C(nd)-3.077 E
F2(test)3.077 E F1(/)A F2([)A F1 -.2(bu)3.077 G .577
-(iltins do not accept options).2 F .462(and do not treat)108 136.8 R F2
+(iltins do not accept options).2 F .461(and do not treat)108 232.8 R F2
<adad>2.961 E F1(specially)2.961 E 5.461(.T)-.65 G(he)-5.461 E F2(exit)
2.961 E F1(,)A F2(logout)2.961 E F1(,)A F2 -.18(re)2.961 G(tur).18 E(n)
-.15 E F1(,)A F2(br)2.961 E(eak)-.18 E F1(,)A F2(continue)2.961 E F1(,)A
F2(let)2.961 E F1 2.961(,a)C(nd)-2.961 E F2(shift)2.961 E F1 -.2(bu)
-2.961 G .461(iltins accept and).2 F .26(process ar)108 148.8 R .26
-(guments be)-.18 F .26(ginning with)-.15 F F2<ad>2.76 E F1 .261
-(without requiring)2.76 F F2<adad>2.761 E F1 5.261(.O)C .261(ther b)
--5.261 F .261(uiltins that accept ar)-.2 F .261(guments b)-.18 F .261
+2.962 G .462(iltins accept and).2 F .261(process ar)108 244.8 R .261
+(guments be)-.18 F .261(ginning with)-.15 F F2<ad>2.761 E F1 .261
+(without requiring)2.761 F F2<adad>2.761 E F1 5.261(.O)C .261(ther b)
+-5.261 F .26(uiltins that accept ar)-.2 F .26(guments b)-.18 F .26
(ut are not)-.2 F 1.154(speci\214ed as accepting options interpret ar)
-108 160.8 R 1.154(guments be)-.18 F 1.154(ginning with)-.15 F F2<ad>
+108 256.8 R 1.154(guments be)-.18 F 1.154(ginning with)-.15 F F2<ad>
3.654 E F1 1.154(as in)3.654 F -.25(va)-.4 G 1.154
(lid options and require).25 F F2<adad>3.654 E F1(to)3.654 E(pre)108
-172.8 Q -.15(ve)-.25 G(nt this interpretation.).15 E F2(:)108 189.6 Q F1
-([)2.5 E F0(ar)A(guments)-.37 E F1(])A .451(No ef)144 201.6 R .451
-(fect; the command does nothing be)-.25 F .452(yond e)-.15 F(xpanding)
--.15 E F0(ar)3.282 E(guments)-.37 E F1 .452(and performing an)3.222 F
-2.952(ys)-.15 G(peci\214ed)-2.952 E 2.5(redirections. The)144 213.6 R
-(return status is zero.)2.5 E F2(.)108 230.4 Q F1([)2.5 E F2<ad70>A F0
-(path)2.5 E F1(])A F0(\214lename)2.5 E F1([)2.5 E F0(ar)A(guments)-.37 E
-F1(])A F2(sour)108 242.4 Q(ce)-.18 E F1([)2.5 E F2<ad70>A F0(path)2.5 E
-F1(])A F0(\214lename)2.5 E F1([)2.5 E F0(ar)A(guments)-.37 E F1(])A(The)
-144 254.4 Q F2(.)2.79 E F1 .29(command \()2.79 F F2(sour)A(ce)-.18 E F1
-2.79(\)r)C .289(eads and e)-2.79 F -.15(xe)-.15 G .289
-(cute commands from).15 F F0(\214lename)4.699 E F1 .289
-(in the current shell en)2.969 F(viron-)-.4 E(ment and returns the e)144
-266.4 Q(xit status of the last command e)-.15 E -.15(xe)-.15 G
-(cuted from).15 E F0(\214lename)4.41 E F1(.).18 E(If)144 283.2 Q F0
-(\214lename)2.662 E F1 .162(does not contain a slash,)2.662 F F2(.)2.662
-E F1 .162(searches for it.)2.662 F .162(If the)5.162 F F2<ad70>2.662 E
-F1 .163(option is supplied,)2.663 F F2(.)2.663 E F1(treats)2.663 E F0
-(path)2.663 E F1 .163(as a)2.663 F .598
-(colon-separated list of directories in which to \214nd)144 295.2 R F0
+268.8 Q -.15(ve)-.25 G(nt this interpretation.).15 E .395(All b)108
+285.6 R .395(uiltins e)-.2 F(xcept)-.15 E F2(:)2.895 E F1(,)A F2(true)
+2.895 E F1(,)A F2(false)2.895 E F1(,)A F2(echo)2.895 E F1 2.895(,a)C(nd)
+-2.895 E F2(test)2.895 E F1(/)A F2([)A F1(accept)2.894 E F2
+(\255\255help)2.894 E F1 .394(as a special option.)2.894 F(If)5.394 E F2
+(\255\255help)2.894 E F1 .394(is supplied,)2.894 F(these b)108 297.6 Q
+(uiltins output a help message and e)-.2 E(xit with a status of 0.)-.15
+E F2(:)108 314.4 Q F1([)2.5 E F0(ar)A(guments)-.37 E F1(])A .451(No ef)
+144 326.4 R .451(fect; the command does nothing be)-.25 F .452(yond e)
+-.15 F(xpanding)-.15 E F0(ar)3.282 E(guments)-.37 E F1 .452
+(and performing an)3.222 F 2.952(ys)-.15 G(peci\214ed)-2.952 E 2.5
+(redirections. The)144 338.4 R(return status is zero.)2.5 E F2(.)108
+355.2 Q F1([)2.5 E F2<ad70>A F0(path)2.5 E F1(])A F0(\214lename)2.5 E F1
+([)2.5 E F0(ar)A(guments)-.37 E F1(])A F2(sour)108 367.2 Q(ce)-.18 E F1
+([)2.5 E F2<ad70>A F0(path)2.5 E F1(])A F0(\214lename)2.5 E F1([)2.5 E
+F0(ar)A(guments)-.37 E F1(])A(The)144 379.2 Q F2(.)2.79 E F1 .29
+(command \()2.79 F F2(sour)A(ce)-.18 E F1 2.79(\)r)C .289(eads and e)
+-2.79 F -.15(xe)-.15 G .289(cute commands from).15 F F0(\214lename)4.699
+E F1 .289(in the current shell en)2.969 F(viron-)-.4 E
+(ment and returns the e)144 391.2 Q(xit status of the last command e)
+-.15 E -.15(xe)-.15 G(cuted from).15 E F0(\214lename)4.41 E F1(.).18 E
+(If)144 408 Q F0(\214lename)2.662 E F1 .162(does not contain a slash,)
+2.662 F F2(.)2.662 E F1 .162(searches for it.)2.662 F .162(If the)5.162
+F F2<ad70>2.662 E F1 .163(option is supplied,)2.663 F F2(.)2.663 E F1
+(treats)2.663 E F0(path)2.663 E F1 .163(as a)2.663 F .598
+(colon-separated list of directories in which to \214nd)144 420 R F0
(\214lename)3.097 E F1 3.097(;o)C(therwise,)-3.097 E F2(.)3.097 E F1
.597(uses the entries in)3.097 F/F4 9/Times-Bold@0 SF -.666(PA)3.097 G
-(TH)-.189 E F1 .302(to \214nd the directory containing)144 307.2 R F0
+(TH)-.189 E F1 .302(to \214nd the directory containing)144 432 R F0
(\214lename)4.712 E F1(.).18 E F0(\214lename)5.303 E F1 .303
(does not need to be e)2.803 F -.15(xe)-.15 G 2.803(cutable. When).15 F
F2(bash)2.803 E F1(is)2.803 E .459
-(not in posix mode, it searches the current directory if)144 319.2 R F0
+(not in posix mode, it searches the current directory if)144 444 R F0
(\214lename)2.959 E F1 .459(is not found in)2.959 F F4 -.666(PA)2.959 G
(TH)-.189 E/F5 9/Times-Roman@0 SF(,)A F1 -.2(bu)2.708 G 2.958(td).2 G
-.458(oes not)-2.958 F .6(search the current directory if)144 331.2 R F2
+.458(oes not)-2.958 F .6(search the current directory if)144 456 R F2
<ad70>3.1 E F1 .6(is supplied.)3.1 F .6(If the)5.6 F F2(sour)3.1 E
(cepath)-.18 E F1 .6(option to the)3.1 F F2(shopt)3.1 E F1 -.2(bu)3.1 G
-.6(iltin com-).2 F(mand is turned of)144 343.2 Q(f,)-.25 E F2(.)2.5 E F1
+.6(iltin com-).2 F(mand is turned of)144 468 Q(f,)-.25 E F2(.)2.5 E F1
(does not search)2.5 E F4 -.666(PA)2.5 G(TH)-.189 E F5(.)A F1 .65(If an)
-144 360 R(y)-.15 E F0(ar)3.15 E(guments)-.37 E F1 .649
+144 484.8 R(y)-.15 E F0(ar)3.15 E(guments)-.37 E F1 .649
(are supplied, the)3.15 F 3.149(yb)-.15 G .649
(ecome the positional parameters when)-3.149 F F0(\214lename)3.149 E F1
.649(is e)3.149 F -.15(xe)-.15 G(cuted.).15 E
-(Otherwise the positional parameters are unchanged.)144 372 Q .498
-(If the)144 388.8 R F2<ad54>2.998 E F1 .498(option is enabled,)2.998 F
+(Otherwise the positional parameters are unchanged.)144 496.8 Q .498
+(If the)144 513.6 R F2<ad54>2.998 E F1 .498(option is enabled,)2.998 F
F2(.)2.998 E F1 .498(inherits an)2.998 F 2.998(yt)-.15 G .498(rap on)
-2.998 F F2(DEB)2.999 E(UG)-.1 E F1 2.999(;i)C 2.999(fi)-2.999 G 2.999
(ti)-2.999 G 2.999(sn)-2.999 G .499(ot, an)-2.999 F(y)-.15 E F2(DEB)
-2.999 E(UG)-.1 E F1 .499(trap string is)2.999 F(sa)144 400.8 Q -.15(ve)
+2.999 E(UG)-.1 E F1 .499(trap string is)2.999 F(sa)144 525.6 Q -.15(ve)
-.2 G 3.26(da).15 G .76(nd restored around the call to)-3.26 F F2(.)3.26
E F1 3.26(,a)C(nd)-3.26 E F2(.)3.26 E F1 .76(unsets the)3.26 F F2(DEB)
3.26 E(UG)-.1 E F1 .76(trap while it e)3.26 F -.15(xe)-.15 G 3.26
(cutes. If).15 F F2<ad54>3.26 E F1(is)3.26 E 1.076
-(not set, and the sourced \214le changes the)144 412.8 R F2(DEB)3.576 E
+(not set, and the sourced \214le changes the)144 537.6 R F2(DEB)3.576 E
(UG)-.1 E F1 1.076(trap, the ne)3.576 F 3.576(wv)-.25 G 1.077
(alue persists after)-3.826 F F2(.)3.577 E F1(completes.)3.577 E .424
-(The return status is the status of the last command e)144 424.8 R -.15
+(The return status is the status of the last command e)144 549.6 R -.15
(xe)-.15 G .423(cuted from).15 F F0(\214lename)2.923 E F1 .423
-(\(0 if no commands are)2.923 F -.15(exe)144 436.8 S
+(\(0 if no commands are)2.923 F -.15(exe)144 561.6 S
(cuted\), and non-zero if).15 E F0(\214lename)4.41 E F1
-(is not found or cannot be read.)2.68 E F2(alias)108 453.6 Q F1([)2.5 E
+(is not found or cannot be read.)2.68 E F2(alias)108 578.4 Q F1([)2.5 E
F2<ad70>A F1 2.5(][)C F0(name)-2.5 E F1([=)A F0(value)A F1 2.5(].)C
-1.666(..)-.834 G(])-1.666 E -.4(Wi)144 465.6 S 2.6(th no ar).4 F 2.6
+1.666(..)-.834 G(])-1.666 E -.4(Wi)144 590.4 S 2.6(th no ar).4 F 2.6
(guments or with the)-.18 F F2<ad70>5.1 E F1(option,)5.1 E F2(alias)
5.101 E F1 2.601(prints the list of aliases in the form)5.101 F F2
-(alias)5.101 E F0(name)144 477.6 Q F1(=)A F0(value)A F1 1.715
+(alias)5.101 E F0(name)144 602.4 Q F1(=)A F0(value)A F1 1.715
(on standard output.)4.215 F 1.715(When ar)6.715 F 1.714
(guments are supplied, de\214ne an alias for each)-.18 F F0(name)4.214 E
-F1(whose)144 489.6 Q F0(value)2.508 E F1 .009(is gi)2.508 F -.15(ve)-.25
+F1(whose)144 614.4 Q F0(value)2.508 E F1 .009(is gi)2.508 F -.15(ve)-.25
G 2.509(n. A).15 F .009(trailing space in)2.509 F F0(value)2.509 E F1
.009(causes the ne)2.509 F .009(xt w)-.15 F .009(ord to be check)-.1 F
.009(ed for alias substi-)-.1 F .027(tution when the alias is e)144
-501.6 R .026(xpanded during command parsing.)-.15 F -.15(Fo)5.026 G
+626.4 R .026(xpanded during command parsing.)-.15 F -.15(Fo)5.026 G
2.526(re).15 G(ach)-2.526 E F0(name)2.526 E F1 .026(in the ar)2.526 F
-.026(gument list for)-.18 F .303(which no)144 513.6 R F0(value)2.803 E
+.026(gument list for)-.18 F .303(which no)144 638.4 R F0(value)2.803 E
F1 .304(is supplied, print the name and v)2.804 F .304
(alue of the alias)-.25 F F0(name)2.804 E F1(.)A F2(alias)5.304 E F1
-.304(returns true unless a)2.804 F F0(name)144 525.6 Q F1(is gi)2.5 E
+.304(returns true unless a)2.804 F F0(name)144 650.4 Q F1(is gi)2.5 E
-.15(ve)-.25 G 2.5(n\().15 G(without a corresponding =)-2.5 E F0(value)A
F1 2.5(\)f)C(or which no alias has been de\214ned.)-2.5 E F2(bg)108
-542.4 Q F1([)2.5 E F0(jobspec)A F1 1.666(...)2.5 G(])-1.666 E .745
-(Resume each suspended job)144 554.4 R F0(jobspec)3.245 E F1 .745
+667.2 Q F1([)2.5 E F0(jobspec)A F1 1.666(...)2.5 G(])-1.666 E .745
+(Resume each suspended job)144 679.2 R F0(jobspec)3.245 E F1 .745
(in the background, as if it had been started with)3.245 F F2(&)3.244 E
-F1 5.744(.I)C(f)-5.744 E F0(job-)4.984 E(spec)144 566.4 Q F1 .949
+F1 5.744(.I)C(f)-5.744 E F0(job-)4.984 E(spec)144 691.2 Q F1 .949
(is not present, the shell uses its notion of the)3.759 F F0(curr)3.45 E
.95(ent job)-.37 F F1(.)A F2(bg)5.95 E F0(jobspec)5.19 E F1 .95
(returns 0 unless run)3.76 F .419(when job control is disabled or)144
-578.4 R 2.919(,w)-.4 G .419(hen run with job control enabled, an)-2.919
+703.2 R 2.919(,w)-.4 G .419(hen run with job control enabled, an)-2.919
F 2.918(ys)-.15 G(peci\214ed)-2.918 E F0(jobspec)2.918 E F1 -.1(wa)2.918
-G 2.918(sn).1 G(ot)-2.918 E(found or w)144 590.4 Q
-(as started without job control.)-.1 E F2(bind)108 607.2 Q F1([)2.5 E F2
-<ad6d>A F0 -.1(ke)2.5 G(ymap)-.2 E F1 2.5(][)C F2(\255lsvSVX)-2.5 E F1
-(])A F2(bind)108 619.2 Q F1([)2.5 E F2<ad6d>A F0 -.1(ke)2.5 G(ymap)-.2 E
-F1 2.5(][)C F2<ad71>-2.5 E F0(function)2.5 E F1 2.5(][)C F2<ad75>-2.5 E
-F0(function)2.5 E F1 2.5(][)C F2<ad72>-2.5 E F0 -.1(ke)2.5 G(yseq)-.2 E
-F1(])A F2(bind)108 631.2 Q F1([)2.5 E F2<ad6d>A F0 -.1(ke)2.5 G(ymap)-.2
-E F1(])A F2<ad66>2.5 E F0(\214lename)2.5 E F2(bind)108 643.2 Q F1([)2.5
-E F2<ad6d>A F0 -.1(ke)2.5 G(ymap)-.2 E F1(])A F2<ad78>2.5 E F0 -.1(ke)
-2.5 G(yseq)-.2 E F1([:])A F0(shell\255command)2.5 E F2(bind)108 655.2 Q
-F1([)2.5 E F2<ad6d>A F0 -.1(ke)2.5 G(ymap)-.2 E F1(])A F0 -.1(ke)2.5 G
-(yseq)-.2 E F1(:)A F0(function\255name)A F2(bind)108 667.2 Q F1([)2.5 E
-F2<ad6d>A F0 -.1(ke)2.5 G(ymap)-.2 E F1(])A F2<ad70>2.5 E F1(|)A F2
-<ad50>A F1([)2.5 E F0 -.37(re)C(adline\255command).37 E F1(])A F2(bind)
-108 679.2 Q F1([)2.5 E F2<ad6d>A F0 -.1(ke)2.5 G(ymap)-.2 E F1(])A F0
--.1(ke)2.5 G(yseq)-.2 E F1(:)A F0 -.37(re)C(adline\255command).37 E F2
-(bind)108 691.2 Q F0 -.37(re)2.5 G(adline-command-line).37 E F1 .238
-(Display current)144 703.2 R F2 -.18(re)2.738 G(adline).18 E F1 -.1(ke)
-2.738 G 2.738(ya)-.05 G .239(nd function bindings, bind a k)-2.738 F
-.539 -.15(ey s)-.1 H .239(equence to a).15 F F2 -.18(re)2.739 G(adline)
-.18 E F1 .239(function or)2.739 F .211
-(macro or to a shell command, or set a)144 715.2 R F2 -.18(re)2.711 G
-(adline).18 E F1 -.25(va)2.711 G 2.711(riable. Each).25 F .211
-(non-option ar)2.711 F .211(gument is a k)-.18 F .511 -.15(ey b)-.1 H
-(ind-).15 E 1.75(ing or command as it w)144 727.2 R 1.751
-(ould appear in a)-.1 F F2 -.18(re)4.251 G(adline).18 E F1 1.751
-(initialization \214le such as)4.251 F F0(.inputr)4.481 E(c)-.37 E F1
-4.251(,b).31 G 1.751(ut each)-4.451 F(GNU Bash 5.3)72 768 Q
-(2025 April 7)149.285 E(66)198.445 E 0 Cg EP
-%%Page: 67 67
+G 2.918(sn).1 G(ot)-2.918 E(found or w)144 715.2 Q
+(as started without job control.)-.1 E(GNU Bash 5.3)72 768 Q
+(2026 January 14)141.79 E(67)190.95 E 0 Cg EP
+%%Page: 68 68
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E .476
-(binding or command must be passed as a separate ar)144 84 R .475(gumen\
-t; e.g., \010"\\C\255x\\C\255r": re\255read\255init\255\214le\010.)-.18
-F .509(In the follo)144 96 R .509(wing descriptions, output a)-.25 F
--.25(va)-.2 G .509(ilable to be re-read is formatted as commands that w)
-.25 F(ould)-.1 E .351(appear in a)144 108 R/F2 10/Times-Bold@0 SF -.18
-(re)2.851 G(adline).18 E F1 .351(initialization \214le or that w)2.851 F
-.351(ould be supplied as indi)-.1 F .35(vidual ar)-.25 F .35
-(guments to a)-.18 F F2(bind)2.85 E F1 2.5(command. Options,)144 120 R
+.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(bind)108 84 Q F1([)2.5 E F2
+<ad6d>A F0 -.1(ke)2.5 G(ymap)-.2 E F1 2.5(][)C F2(\255lsvSVX)-2.5 E F1
+(])A F2(bind)108 96 Q F1([)2.5 E F2<ad6d>A F0 -.1(ke)2.5 G(ymap)-.2 E F1
+2.5(][)C F2<ad71>-2.5 E F0(function)2.5 E F1 2.5(][)C F2<ad75>-2.5 E F0
+(function)2.5 E F1 2.5(][)C F2<ad72>-2.5 E F0 -.1(ke)2.5 G(yseq)-.2 E F1
+(])A F2(bind)108 108 Q F1([)2.5 E F2<ad6d>A F0 -.1(ke)2.5 G(ymap)-.2 E
+F1(])A F2<ad66>2.5 E F0(\214lename)2.5 E F2(bind)108 120 Q F1([)2.5 E F2
+<ad6d>A F0 -.1(ke)2.5 G(ymap)-.2 E F1(])A F2<ad78>2.5 E F0 -.1(ke)2.5 G
+(yseq)-.2 E F1([:])A F0(shell\255command)2.5 E F2(bind)108 132 Q F1([)
+2.5 E F2<ad6d>A F0 -.1(ke)2.5 G(ymap)-.2 E F1(])A F0 -.1(ke)2.5 G(yseq)
+-.2 E F1(:)A F0(function\255name)A F2(bind)108 144 Q F1([)2.5 E F2<ad6d>
+A F0 -.1(ke)2.5 G(ymap)-.2 E F1(])A F2<ad70>2.5 E F1(|)A F2<ad50>A F1([)
+2.5 E F0 -.37(re)C(adline\255command).37 E F1(])A F2(bind)108 156 Q F1
+([)2.5 E F2<ad6d>A F0 -.1(ke)2.5 G(ymap)-.2 E F1(])A F0 -.1(ke)2.5 G
+(yseq)-.2 E F1(:)A F0 -.37(re)C(adline\255command).37 E F2(bind)108 168
+Q F0 -.37(re)2.5 G(adline-command-line).37 E F1 .238(Display current)144
+180 R F2 -.18(re)2.738 G(adline).18 E F1 -.1(ke)2.738 G 2.738(ya)-.05 G
+.239(nd function bindings, bind a k)-2.738 F .539 -.15(ey s)-.1 H .239
+(equence to a).15 F F2 -.18(re)2.739 G(adline).18 E F1 .239(function or)
+2.739 F .211(macro or to a shell command, or set a)144 192 R F2 -.18(re)
+2.711 G(adline).18 E F1 -.25(va)2.711 G 2.711(riable. Each).25 F .211
+(non-option ar)2.711 F .211(gument is a k)-.18 F .511 -.15(ey b)-.1 H
+(ind-).15 E .258(ing or command as it w)144 204 R .259(ould appear in a)
+-.1 F F2 -.18(re)2.759 G(adline).18 E F1 .259
+(initialization \214le such as)2.759 F F0(.inputr)2.989 E(c)-.37 E F1
+2.759(,b).31 G .259(ut each bind-)-2.959 F .782
+(ing or command must be passed as a separate ar)144 216 R .781(gument; \
+e.g., \010"\\C\255x\\C\255r": re\255read\255init\255\214le\010.)-.18 F
+(In)5.781 E .192(the follo)144 228 R .192(wing descriptions, output a)
+-.25 F -.25(va)-.2 G .192
+(ilable to be re-read is formatted as commands that w).25 F .193
+(ould ap-)-.1 F .941(pear in a)144 240 R F2 -.18(re)3.441 G(adline).18 E
+F1 .941(initialization \214le or that w)3.441 F .941
+(ould be supplied as indi)-.1 F .94(vidual ar)-.25 F .94(guments to a)
+-.18 F F2(bind)3.44 E F1 2.5(command. Options,)144 252 R
(if supplied, ha)2.5 E .3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)
--.25 E F2<ad6d>144 132 Q F0 -.1(ke)2.5 G(ymap)-.2 E F1(Use)180 144 Q F0
+-.25 E F2<ad6d>144 264 Q F0 -.1(ke)2.5 G(ymap)-.2 E F1(Use)180 276 Q F0
-.1(ke)5.158 G(ymap)-.2 E F1 2.658(as the k)5.348 F -.15(ey)-.1 G 2.658
(map to be af).15 F 2.659(fected by the subsequent bindings.)-.25 F
-(Acceptable)7.659 E F0 -.1(ke)180 156 S(ymap)-.2 E F1 3.193(names are)
+(Acceptable)7.659 E F0 -.1(ke)180 288 S(ymap)-.2 E F1 3.193(names are)
5.883 F F0 3.193(emacs, emacs\255standar)5.693 F 3.192
(d, emacs\255meta, emacs\255ctlx, vi, vi\255mo)-.37 F(ve)-.1 E(,)-.1 E
-(vi\255command)180 168 Q F1 4.089(,a)C(nd)-4.089 E F0(vi\255insert)4.379
+(vi\255command)180 300 Q F1 4.089(,a)C(nd)-4.089 E F0(vi\255insert)4.379
E F1(.).68 E F0(vi)6.589 E F1 1.589(is equi)4.089 F -.25(va)-.25 G 1.589
(lent to).25 F F0(vi\255command)4.089 E F1(\()4.089 E F0(vi\255mo)A(ve)
--.1 E F1 1.59(is also a syn-)4.089 F(on)180 180 Q(ym\);)-.15 E F0(emacs)
+-.1 E F1 1.59(is also a syn-)4.089 F(on)180 312 Q(ym\);)-.15 E F0(emacs)
2.5 E F1(is equi)2.5 E -.25(va)-.25 G(lent to).25 E F0(emacs\255standar)
-2.5 E(d)-.37 E F1(.)A F2<ad6c>144 192 Q F1(List the names of all)180 192
-Q F2 -.18(re)2.5 G(adline).18 E F1(functions.)2.5 E F2<ad70>144 204 Q F1
-(Display)180 204 Q F2 -.18(re)2.982 G(adline).18 E F1 .481
+2.5 E(d)-.37 E F1(.)A F2<ad6c>144 324 Q F1(List the names of all)180 324
+Q F2 -.18(re)2.5 G(adline).18 E F1(functions.)2.5 E F2<ad70>144 336 Q F1
+(Display)180 336 Q F2 -.18(re)2.982 G(adline).18 E F1 .481
(function names and bindings in such a w)2.982 F .481(ay that the)-.1 F
-2.981(yc)-.15 G .481(an be used as an)-2.981 F(ar)180 216 Q .192
+2.981(yc)-.15 G .481(an be used as an)-2.981 F(ar)180 348 Q .192
(gument to a subsequent)-.18 F F2(bind)2.692 E F1 .192(command or in a)
2.692 F F2 -.18(re)2.692 G(adline).18 E F1 .193(initialization \214le.)
2.693 F .193(If ar)5.193 F(guments)-.18 E 1.524
-(remain after option processing,)180 228 R F2(bind)4.024 E F1 1.523
+(remain after option processing,)180 360 R F2(bind)4.024 E F1 1.523
(treats them as)4.023 F F2 -.18(re)4.023 G(adline).18 E F1 1.523
-(command names and re-)4.023 F(stricts output to those names.)180 240 Q
-F2<ad50>144 252 Q F1 .173(List current)180 252 R F2 -.18(re)2.673 G
+(command names and re-)4.023 F(stricts output to those names.)180 372 Q
+F2<ad50>144 384 Q F1 .173(List current)180 384 R F2 -.18(re)2.673 G
(adline).18 E F1 .173(function names and bindings.)2.673 F .173(If ar)
-5.173 F .174(guments remain after option pro-)-.18 F(cessing,)180 264 Q
+5.173 F .174(guments remain after option pro-)-.18 F(cessing,)180 396 Q
F2(bind)4.855 E F1 2.354(treats them as)4.855 F F2 -.18(re)4.854 G
(adline).18 E F1 2.354(command names and restricts output to those)4.854
-F(names.)180 276 Q F2<ad73>144 288 Q F1(Display)180 288 Q F2 -.18(re)
+F(names.)180 408 Q F2<ad73>144 420 Q F1(Display)180 420 Q F2 -.18(re)
3.655 G(adline).18 E F1 -.1(ke)3.655 G 3.655(ys)-.05 G 1.155
(equences bound to macros and the strings the)-3.655 F 3.655(yo)-.15 G
-1.155(utput in such a)-3.655 F -.1(wa)180 300 S 2.555(yt).1 G .055
+1.155(utput in such a)-3.655 F -.1(wa)180 432 S 2.555(yt).1 G .055
(hat the)-2.555 F 2.555(yc)-.15 G .055(an be used as an ar)-2.555 F .055
(gument to a subsequent)-.18 F F2(bind)2.555 E F1 .054(command or in a)
2.554 F F2 -.18(re)2.554 G(adline).18 E F1(initialization \214le.)180
-312 Q F2<ad53>144 324 Q F1(Display)180 324 Q F2 -.18(re)2.5 G(adline).18
+444 Q F2<ad53>144 456 Q F1(Display)180 456 Q F2 -.18(re)2.5 G(adline).18
E F1 -.1(ke)2.5 G 2.5(ys)-.05 G
(equences bound to macros and the strings the)-2.5 E 2.5(yo)-.15 G
-(utput.)-2.5 E F2<ad76>144 336 Q F1(Display)180 336 Q F2 -.18(re)2.783 G
+(utput.)-2.5 E F2<ad76>144 468 Q F1(Display)180 468 Q F2 -.18(re)2.783 G
(adline).18 E F1 -.25(va)2.783 G .283(riable names and v).25 F .283
(alues in such a w)-.25 F .284(ay that the)-.1 F 2.784(yc)-.15 G .284
-(an be used as an ar)-2.784 F(-)-.2 E(gument to a subsequent)180 348 Q
+(an be used as an ar)-2.784 F(-)-.2 E(gument to a subsequent)180 480 Q
F2(bind)2.5 E F1(command or in a)2.5 E F2 -.18(re)2.5 G(adline).18 E F1
-(initialization \214le.)2.5 E F2<ad56>144 360 Q F1(List current)180 360
+(initialization \214le.)2.5 E F2<ad56>144 492 Q F1(List current)180 492
Q F2 -.18(re)2.5 G(adline).18 E F1 -.25(va)2.5 G(riable names and v).25
-E(alues.)-.25 E F2<ad66>144 372 Q F0(\214lename)2.5 E F1(Read k)180 384
+E(alues.)-.25 E F2<ad66>144 504 Q F0(\214lename)2.5 E F1(Read k)180 516
Q .3 -.15(ey b)-.1 H(indings from).15 E F0(\214lename)2.5 E F1(.)A F2
-<ad71>144 396 Q F0(function)2.5 E F1(Display k)180 408 Q .3 -.15(ey s)
+<ad71>144 528 Q F0(function)2.5 E F1(Display k)180 540 Q .3 -.15(ey s)
-.1 H(equences that in).15 E -.2(vo)-.4 G .2 -.1(ke t).2 H(he named).1 E
-F2 -.18(re)2.5 G(adline).18 E F0(function)2.5 E F1(.)A F2<ad75>144 420 Q
-F0(function)2.5 E F1(Unbind all k)180 432 Q .3 -.15(ey s)-.1 H
+F2 -.18(re)2.5 G(adline).18 E F0(function)2.5 E F1(.)A F2<ad75>144 552 Q
+F0(function)2.5 E F1(Unbind all k)180 564 Q .3 -.15(ey s)-.1 H
(equences bound to the named).15 E F2 -.18(re)2.5 G(adline).18 E F0
-(function)2.5 E F1(.)A F2<ad72>144 444 Q F0 -.1(ke)2.5 G(yseq)-.2 E F1
-(Remo)180 456 Q .3 -.15(ve a)-.15 H .3 -.15(ny c).15 H
+(function)2.5 E F1(.)A F2<ad72>144 576 Q F0 -.1(ke)2.5 G(yseq)-.2 E F1
+(Remo)180 588 Q .3 -.15(ve a)-.15 H .3 -.15(ny c).15 H
(urrent binding for).15 E F0 -.1(ke)2.5 G(yseq)-.2 E F1(.)A F2<ad78>144
-468 Q F0 -.1(ke)2.5 G(yseq)-.2 E F2([: ])A F0(shell\255command)A F1
-(Cause)180 480 Q F0(shell\255command)4.345 E F1 1.845(to be e)4.345 F
+600 Q F0 -.1(ke)2.5 G(yseq)-.2 E F2([: ])A F0(shell\255command)A F1
+(Cause)180 612 Q F0(shell\255command)4.345 E F1 1.845(to be e)4.345 F
-.15(xe)-.15 G 1.845(cuted whene).15 F -.15(ve)-.25 G(r).15 E F0 -.1(ke)
4.345 G(yseq)-.2 E F1 1.844(is entered.)4.344 F 1.844(The separator be-)
-6.844 F(tween)180 492 Q F0 -.1(ke)3.015 G(yseq)-.2 E F1(and)3.015 E F0
+6.844 F(tween)180 624 Q F0 -.1(ke)3.015 G(yseq)-.2 E F1(and)3.015 E F0
(shell\255command)3.016 E F1 .516
(is either whitespace or a colon optionally follo)3.016 F .516(wed by)
--.25 F 3.459(whitespace. If)180 504 R .958(the separator is whitespace,)
+-.25 F 3.459(whitespace. If)180 636 R .958(the separator is whitespace,)
3.459 F F0(shell\255command)3.458 E F1 .958(must be enclosed in double)
-3.458 F .622(quotes and)180 516 R F2 -.18(re)3.122 G(adline).18 E F1
+3.458 F .622(quotes and)180 648 R F2 -.18(re)3.122 G(adline).18 E F1
-.15(ex)3.122 G .623(pands an).15 F 3.123(yo)-.15 G 3.123(fi)-3.123 G
.623(ts special backslash-escapes in)-3.123 F F0(shell\255command)3.123
-E F1(be-)3.123 E .713(fore sa)180 528 R .713(ving it.)-.2 F .713
+E F1(be-)3.123 E .713(fore sa)180 660 R .713(ving it.)-.2 F .713
(If the separator is a colon, an)5.713 F 3.213(ye)-.15 G .712
-(nclosing double quotes are optional, and)-3.213 F F2 -.18(re)180 540 S
+(nclosing double quotes are optional, and)-3.213 F F2 -.18(re)180 672 S
(adline).18 E F1 .098(does not e)2.598 F .098
(xpand the command string before sa)-.15 F .099(ving it.)-.2 F .099
(Since the entire k)5.099 F .399 -.15(ey b)-.1 H(ind-).15 E .641(ing e)
-180 552 R .641(xpression must be a single ar)-.15 F .641
+180 684 R .641(xpression must be a single ar)-.15 F .641
(gument, it should be enclosed in single quotes.)-.18 F(When)5.64 E F0
-(shell\255command)180 564 Q F1 .563(is e)3.063 F -.15(xe)-.15 G .563
+(shell\255command)180 696 Q F1 .563(is e)3.063 F -.15(xe)-.15 G .563
(cuted, the shell sets the).15 F/F3 9/Times-Bold@0 SF(READLINE_LINE)
3.063 E F1 -.25(va)2.813 G .563(riable to the contents).25 F .32(of the)
-180 576 R F2 -.18(re)2.82 G(adline).18 E F1 .32(line b)2.82 F(uf)-.2 E
+180 708 R F2 -.18(re)2.82 G(adline).18 E F1 .32(line b)2.82 F(uf)-.2 E
.32(fer and the)-.25 F F3(READLINE_POINT)2.82 E F1(and)2.57 E F3
-(READLINE_MARK)2.82 E F1 -.25(va)2.569 G(riables).25 E .545
-(to the current location of the insertion point and the sa)180 588 R
--.15(ve)-.2 G 3.046(di).15 G .546(nsertion point \(the mark\), re-)
--3.046 F(specti)180 600 Q -.15(ve)-.25 G(ly).15 E 7.188(.T)-.65 G 2.188
-(he shell assigns an)-7.188 F 4.688(yn)-.15 G 2.188(umeric ar)-4.688 F
-2.188(gument the user supplied to the)-.18 F F3(READ-)4.688 E
-(LINE_ARGUMENT)180 612 Q F1 -.25(va)2.398 G 2.648(riable. If).25 F .148
-(there w)2.648 F .148(as no ar)-.1 F .148(gument, that v)-.18 F .149
-(ariable is not set.)-.25 F .149(If the e)5.149 F(x-)-.15 E .583
-(ecuted command changes the v)180 624 R .583(alue of an)-.25 F 3.083(yo)
--.15 G(f)-3.083 E F3(READLINE_LINE)3.083 E/F4 9/Times-Roman@0 SF(,)A F3
-(READLINE_POINT)2.832 E F4(,)A F1(or)2.832 E F3(READLINE_MARK)180 636 Q
-F4(,)A F1(those ne)2.25 E 2.5(wv)-.25 G
-(alues will be re\215ected in the editing state.)-2.75 E F2<ad58>144 648
-Q F1 .829(List all k)180 648 R 1.129 -.15(ey s)-.1 H .829
-(equences bound to shell commands and the associated commands in a for)
-.15 F(-)-.2 E(mat that can be reused as an ar)180 660 Q
-(gument to a subsequent)-.18 E F2(bind)2.5 E F1(command.)2.5 E
-(The return v)144 676.8 Q(alue is 0 unless an unrecognized option is su\
-pplied or an error occurred.)-.25 E F2(br)108 693.6 Q(eak)-.18 E F1([)
-2.5 E F0(n)A F1(])A .012(Exit from within a)144 705.6 R F2 -.25(fo)2.512
-G(r).25 E F1(,)A F2(while)2.512 E F1(,)A F2(until)2.512 E F1 2.512(,o)C
-(r)-2.512 E F2(select)2.512 E F1 2.512(loop. If)2.512 F F0(n)2.512 E F1
-.011(is speci\214ed,)2.512 F F2(br)2.511 E(eak)-.18 E F1 -.15(ex)2.511 G
-(its).15 E F0(n)2.511 E F1 .011(enclosing loops.)2.511 F F0(n)144.36
-717.6 Q F1 .632(must be)3.372 F/F5 10/Symbol SF<b3>3.132 E F1 3.132
-(1. If)3.132 F F0(n)3.492 E F1 .632(is greater than the number of enclo\
-sing loops, all enclosing loops are e)3.372 F(xited.)-.15 E
-(The return v)144 729.6 Q(alue is 0 unless)-.25 E F0(n)2.5 E F1
-(is not greater than or equal to 1.)2.5 E(GNU Bash 5.3)72 768 Q
-(2025 April 7)149.285 E(67)198.445 E 0 Cg EP
-%%Page: 68 68
+(READLINE_MARK)2.82 E F1 -.25(va)2.569 G(riables).25 E 1.556
+(to the current location of the insertion point and the sa)180 720 R
+-.15(ve)-.2 G 4.056(di).15 G 1.556(nsertion point \(the mark\),)-4.056 F
+(GNU Bash 5.3)72 768 Q(2026 January 14)141.79 E(68)190.95 E 0 Cg EP
+%%Page: 69 69
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF -.2(bu)108 84 S(iltin).2 E F0
-(shell\255b)2.5 E(uiltin)-.2 E F1([)2.5 E F0(ar)A(guments)-.37 E F1(])A
-(Ex)144 96 Q 1.261(ecute the speci\214ed shell b)-.15 F(uiltin)-.2 E F0
-(shell\255b)3.761 E(uiltin)-.2 E F1 3.761(,p)C 1.261(assing it)-3.761 F
-F0(ar)4.091 E(guments)-.37 E F1 3.761(,a).27 G 1.26(nd return its e)
--3.761 F 1.26(xit status.)-.15 F 1.053(This is useful when de\214ning a\
- function whose name is the same as a shell b)144 108 R 1.053
-(uiltin, retaining the)-.2 F 1.166(functionality of the b)144 120 R
-1.166(uiltin within the function.)-.2 F(The)6.166 E F2(cd)3.666 E F1 -.2
-(bu)3.666 G 1.165(iltin is commonly rede\214ned this w).2 F(ay)-.1 E(.)
--.65 E(The return status is f)144 132 Q(alse if)-.1 E F0(shell\255b)2.84
-E(uiltin)-.2 E F1(is not a shell b)2.74 E(uiltin command.)-.2 E F2
-(caller)108 148.8 Q F1([)2.5 E F0 -.2(ex)C(pr).2 E F1(])A .253
-(Returns the conte)144 160.8 R .254(xt of an)-.15 F 2.754(ya)-.15 G(cti)
--2.754 E .554 -.15(ve s)-.25 H .254
+.25 E F1(\(1\)).95 E(respecti)180 84 Q -.15(ve)-.25 G(ly).15 E 6.541(.T)
+-.65 G 1.541(he shell assigns an)-6.541 F 4.041(yn)-.15 G 1.541
+(umeric ar)-4.041 F 1.54(gument the user supplied to the)-.18 F/F2 9
+/Times-Bold@0 SF(READ-)4.04 E(LINE_ARGUMENT)180 96 Q F1 -.25(va)2.398 G
+2.648(riable. If).25 F .148(there w)2.648 F .148(as no ar)-.1 F .148
+(gument, that v)-.18 F .149(ariable is not set.)-.25 F .149(If the e)
+5.149 F(x-)-.15 E .583(ecuted command changes the v)180 108 R .583
+(alue of an)-.25 F 3.083(yo)-.15 G(f)-3.083 E F2(READLINE_LINE)3.083 E
+/F3 9/Times-Roman@0 SF(,)A F2(READLINE_POINT)2.832 E F3(,)A F1(or)2.832
+E F2(READLINE_MARK)180 120 Q F3(,)A F1(those ne)2.25 E 2.5(wv)-.25 G
+(alues will be re\215ected in the editing state.)-2.75 E/F4 10
+/Times-Bold@0 SF<ad58>144 132 Q F1 .829(List all k)180 132 R 1.129 -.15
+(ey s)-.1 H .829
+(equences bound to shell commands and the associated commands in a for)
+.15 F(-)-.2 E(mat that can be reused as an ar)180 144 Q
+(gument to a subsequent)-.18 E F4(bind)2.5 E F1(command.)2.5 E
+(The return v)144 160.8 Q(alue is 0 unless an unrecognized option is su\
+pplied or an error occurred.)-.25 E F4(br)108 177.6 Q(eak)-.18 E F1([)
+2.5 E F0(n)A F1(])A .012(Exit from within a)144 189.6 R F4 -.25(fo)2.512
+G(r).25 E F1(,)A F4(while)2.512 E F1(,)A F4(until)2.512 E F1 2.512(,o)C
+(r)-2.512 E F4(select)2.512 E F1 2.512(loop. If)2.512 F F0(n)2.512 E F1
+.011(is speci\214ed,)2.512 F F4(br)2.511 E(eak)-.18 E F1 -.15(ex)2.511 G
+(its).15 E F0(n)2.511 E F1 .011(enclosing loops.)2.511 F F0(n)144.36
+201.6 Q F1 .632(must be)3.372 F/F5 10/Symbol SF<b3>3.132 E F1 3.132
+(1. If)3.132 F F0(n)3.492 E F1 .632(is greater than the number of enclo\
+sing loops, all enclosing loops are e)3.372 F(xited.)-.15 E
+(The return v)144 213.6 Q(alue is 0 unless)-.25 E F0(n)2.5 E F1
+(is not greater than or equal to 1.)2.5 E F4 -.2(bu)108 230.4 S(iltin).2
+E F0(shell\255b)2.5 E(uiltin)-.2 E F1([)2.5 E F0(ar)A(guments)-.37 E F1
+(])A(Ex)144 242.4 Q 1.261(ecute the speci\214ed shell b)-.15 F(uiltin)
+-.2 E F0(shell\255b)3.761 E(uiltin)-.2 E F1 3.761(,p)C 1.261(assing it)
+-3.761 F F0(ar)4.091 E(guments)-.37 E F1 3.761(,a).27 G 1.26
+(nd return its e)-3.761 F 1.26(xit status.)-.15 F 1.053(This is useful \
+when de\214ning a function whose name is the same as a shell b)144 254.4
+R 1.053(uiltin, retaining the)-.2 F 1.166(functionality of the b)144
+266.4 R 1.166(uiltin within the function.)-.2 F(The)6.166 E F4(cd)3.666
+E F1 -.2(bu)3.666 G 1.165(iltin is commonly rede\214ned this w).2 F(ay)
+-.1 E(.)-.65 E(The return status is f)144 278.4 Q(alse if)-.1 E F0
+(shell\255b)2.84 E(uiltin)-.2 E F1(is not a shell b)2.74 E
+(uiltin command.)-.2 E F4(caller)108 295.2 Q F1([)2.5 E F0 -.2(ex)C(pr)
+.2 E F1(])A .253(Returns the conte)144 307.2 R .254(xt of an)-.15 F
+2.754(ya)-.15 G(cti)-2.754 E .554 -.15(ve s)-.25 H .254
(ubroutine call \(a shell function or a script e).15 F -.15(xe)-.15 G
-.254(cuted with the).15 F F2(.)2.754 E F1(or)2.754 E F2(sour)144 172.8 Q
-(ce)-.18 E F1 -.2(bu)2.5 G(iltins\).).2 E -.4(Wi)144 189.6 S(thout).4 E
-F0 -.2(ex)3.294 G(pr).2 E F1(,)A F2(caller)3.294 E F1 .793(displays the\
- line number and source \214lename of the current subroutine call.)3.294
-F .124(If a non-ne)144 201.6 R -.05(ga)-.15 G(ti).05 E .424 -.15(ve i)
--.25 H(nte).15 E .124(ger is supplied as)-.15 F F0 -.2(ex)2.624 G(pr).2
-E F1(,)A F2(caller)2.624 E F1 .124(displays the line number)2.624 F
-2.624(,s)-.4 G .124(ubroutine name, and)-2.624 F .743
-(source \214le corresponding to that position in the current e)144 213.6
-R -.15(xe)-.15 G .743(cution call stack.).15 F .742(This e)5.743 F .742
-(xtra informa-)-.15 F(tion may be used, for e)144 225.6 Q
+.254(cuted with the).15 F F4(.)2.754 E F1(or)2.754 E F4(sour)144 319.2 Q
+(ce)-.18 E F1 -.2(bu)2.5 G(iltins\).).2 E -.4(Wi)144 336 S(thout).4 E F0
+-.2(ex)3.294 G(pr).2 E F1(,)A F4(caller)3.294 E F1 .793(displays the li\
+ne number and source \214lename of the current subroutine call.)3.294 F
+.124(If a non-ne)144 348 R -.05(ga)-.15 G(ti).05 E .424 -.15(ve i)-.25 H
+(nte).15 E .124(ger is supplied as)-.15 F F0 -.2(ex)2.624 G(pr).2 E F1
+(,)A F4(caller)2.624 E F1 .124(displays the line number)2.624 F 2.624
+(,s)-.4 G .124(ubroutine name, and)-2.624 F .743
+(source \214le corresponding to that position in the current e)144 360 R
+-.15(xe)-.15 G .743(cution call stack.).15 F .742(This e)5.743 F .742
+(xtra informa-)-.15 F(tion may be used, for e)144 372 Q
(xample, to print a stack trace.)-.15 E(The current frame is frame 0.)5
-E .1(The return v)144 242.4 R .1(alue is 0 unless the shell is not e)
+E .1(The return v)144 388.8 R .1(alue is 0 unless the shell is not e)
-.25 F -.15(xe)-.15 G .101(cuting a subroutine call or).15 F F0 -.2(ex)
-2.601 G(pr).2 E F1 .101(does not correspond)2.601 F(to a v)144 254.4 Q
-(alid position in the call stack.)-.25 E F2(cd)108 271.2 Q F1([)2.5 E F2
-<ad4c>A F1 2.5(][)C F2<ad40>-2.5 E F1 2.5(][)C F0(dir)-2.5 E F1(])A F2
-(cd \255P)108 283.2 Q F1([)2.5 E F2<ad65>A F1 2.5(][)C F2<ad40>-2.5 E F1
+2.601 G(pr).2 E F1 .101(does not correspond)2.601 F(to a v)144 400.8 Q
+(alid position in the call stack.)-.25 E F4(cd)108 417.6 Q F1([)2.5 E F4
+<ad4c>A F1 2.5(][)C F4<ad40>-2.5 E F1 2.5(][)C F0(dir)-2.5 E F1(])A F4
+(cd \255P)108 429.6 Q F1([)2.5 E F4<ad65>A F1 2.5(][)C F4<ad40>-2.5 E F1
2.5(][)C F0(dir)-2.5 E F1(])A .322(Change the current directory to)144
-295.2 R F0(dir)2.822 E F1 5.322(.i)C(f)-5.322 E F0(dir)2.822 E F1 .321
-(is not supplied, the v)2.822 F .321(alue of the)-.25 F/F3 9
-/Times-Bold@0 SF(HOME)2.821 E F1 .321(shell v)2.571 F .321(ariable is)
--.25 F .74(used as)144 307.2 R F0(dir)3.24 E F1 5.74(.T)C .74(he v)-5.74
-F(ariable)-.25 E F3(CDP)3.24 E -.855(AT)-.666 G(H).855 E F1 -.15(ex)2.99
-G .74(ists, and).15 F F0(dir)3.24 E F1 .74(does not be)3.24 F .74
-(gin with a slash \(/\),)-.15 F F2(cd)3.24 E F1 .741(uses it as a)3.24 F
-1.837(search path: the shell searches each directory name in)144 319.2 R
-F3(CDP)4.336 E -.855(AT)-.666 G(H).855 E F1(for)4.086 E F0(dir)4.336 E
-F1 6.836(.A)C(lternati)-6.836 E 2.136 -.15(ve d)-.25 H(irectory).15 E
-.447(names in)144 331.2 R F3(CDP)2.947 E -.855(AT)-.666 G(H).855 E F1
-.447(are separated by a colon \(:\).)2.697 F 2.948(An)5.448 G .448
-(ull directory name in)-2.948 F F3(CDP)2.948 E -.855(AT)-.666 G(H).855 E
-F1 .448(is the same as)2.698 F(the current directory)144 343.2 Q 2.5(,i)
--.65 G(.e., \231.\232.)-2.5 E(The)144 360 Q F2<ad50>2.915 E F1 .415
-(option causes)2.915 F F2(cd)2.915 E F1 .415(to use the ph)2.915 F .414
+441.6 R F0(dir)2.822 E F1 5.322(.i)C(f)-5.322 E F0(dir)2.822 E F1 .321
+(is not supplied, the v)2.822 F .321(alue of the)-.25 F F2(HOME)2.821 E
+F1 .321(shell v)2.571 F .321(ariable is)-.25 F .066(used as)144 453.6 R
+F0(dir)2.566 E F1 5.066(.I)C(f)-5.066 E F0(dir)2.566 E F1 .066
+(is the empty string,)2.566 F F4(cd)2.566 E F1 .066
+(treats it as an error)2.566 F 5.066(.T)-.55 G .066(he v)-5.066 F
+(ariable)-.25 E F2(CDP)2.566 E -.855(AT)-.666 G(H).855 E F1 -.15(ex)
+2.317 G .067(ists, and).15 F F0(dir)2.567 E F1 .475(does not be)144
+465.6 R .475(gin with a slash \(/\),)-.15 F F4(cd)2.974 E F1 .474
+(uses it as a search path: the shell searches each directory name)2.974
+F(in)144 477.6 Q F2(CDP)3.097 E -.855(AT)-.666 G(H).855 E F1(for)2.847 E
+F0(dir)3.098 E F1 5.598(.A)C(lternati)-5.598 E .898 -.15(ve d)-.25 H
+.598(irectory names in).15 F F2(CDP)3.098 E -.855(AT)-.666 G(H).855 E F1
+.598(are separated by a colon \(:\).)2.848 F 3.098(An)5.598 G(ull)-3.098
+E(directory name in)144 489.6 Q F2(CDP)2.5 E -.855(AT)-.666 G(H).855 E
+F1(is the same as the current directory)2.25 E 2.5(,i)-.65 G
+(.e., \231.\232.)-2.5 E(The)144 506.4 Q F4<ad50>2.915 E F1 .415
+(option causes)2.915 F F4(cd)2.915 E F1 .415(to use the ph)2.915 F .414
(ysical directory structure by resolving symbolic links while)-.05 F
-(tra)144 372 Q -.15(ve)-.2 G(rsing).15 E F0(dir)2.673 E F1 .173
+(tra)144 518.4 Q -.15(ve)-.2 G(rsing).15 E F0(dir)2.673 E F1 .173
(and before processing instances of)2.673 F F0 1.666(..)4.339 G F1(in)
-2.673 E F0(dir)2.673 E F1 .174(\(see also the)2.673 F F2<ad50>2.674 E F1
-.174(option to the)2.674 F F2(set)2.674 E F1 -.2(bu)2.674 G(iltin).2 E
-(command\).)144 384 Q(The)144 400.8 Q F2<ad4c>3.039 E F1 .539
-(option forces)3.039 F F2(cd)3.039 E F1 .539(to follo)3.039 F 3.039(ws)
+2.673 E F0(dir)2.673 E F1 .174(\(see also the)2.673 F F4<ad50>2.674 E F1
+.174(option to the)2.674 F F4(set)2.674 E F1 -.2(bu)2.674 G(iltin).2 E
+(command\).)144 530.4 Q(The)144 547.2 Q F4<ad4c>3.039 E F1 .539
+(option forces)3.039 F F4(cd)3.039 E F1 .539(to follo)3.039 F 3.039(ws)
-.25 G .538
(ymbolic links by resolving the link after processing instances)-3.039 F
-(of)144 412.8 Q F0 1.666(..)4.414 G F1(in)2.748 E F0(dir)2.748 E F1
+(of)144 559.2 Q F0 1.666(..)4.414 G F1(in)2.748 E F0(dir)2.748 E F1
5.248(.I)C(f)-5.248 E F0 1.666(..)4.414 G F1 .248(appears in)2.748 F F0
-(dir)2.748 E F1(,)A F2(cd)2.748 E F1 .249(processes it by remo)2.749 F
+(dir)2.748 E F1(,)A F4(cd)2.748 E F1 .249(processes it by remo)2.749 F
.249(ving the immediately pre)-.15 F .249(vious pathname)-.25 F .202
-(component from)144 424.8 R F0(dir)2.702 E F1 2.702(,b)C .202
+(component from)144 571.2 R F0(dir)2.702 E F1 2.702(,b)C .202
(ack to a slash or the be)-2.702 F .202(ginning of)-.15 F F0(dir)2.702 E
F1 2.701(,a)C .201(nd v)-2.701 F .201(erifying that the portion of)-.15
F F0(dir)2.701 E F1(it)2.701 E .282
-(has processed to that point is still a v)144 436.8 R .282
+(has processed to that point is still a v)144 583.2 R .282
(alid directory name after remo)-.25 F .282
-(ving the pathname component.)-.15 F .624(If it is not a v)144 448.8 R
-.624(alid directory name,)-.25 F F2(cd)3.124 E F1 .624
-(returns a non-zero status.)3.124 F .623(If neither)5.624 F F2<ad4c>
-3.123 E F1(nor)3.123 E F2<ad50>3.123 E F1 .623(is supplied,)3.123 F F2
-(cd)144 460.8 Q F1(beha)2.5 E -.15(ve)-.2 G 2.5(sa).15 G 2.5(si)-2.5 G
-(f)-2.5 E F2<ad4c>2.5 E F1(had been supplied.)2.5 E .245(If the)144
-477.6 R F2<ad65>2.745 E F1 .245(option is supplied with)2.745 F F2<ad50>
-2.745 E F1 2.745(,a)C(nd)-2.745 E F2(cd)2.745 E F1 .245
+(ving the pathname component.)-.15 F .624(If it is not a v)144 595.2 R
+.624(alid directory name,)-.25 F F4(cd)3.124 E F1 .624
+(returns a non-zero status.)3.124 F .623(If neither)5.624 F F4<ad4c>
+3.123 E F1(nor)3.123 E F4<ad50>3.123 E F1 .623(is supplied,)3.123 F F4
+(cd)144 607.2 Q F1(beha)2.5 E -.15(ve)-.2 G 2.5(sa).15 G 2.5(si)-2.5 G
+(f)-2.5 E F4<ad4c>2.5 E F1(had been supplied.)2.5 E .245(If the)144 624
+R F4<ad65>2.745 E F1 .245(option is supplied with)2.745 F F4<ad50>2.745
+E F1 2.745(,a)C(nd)-2.745 E F4(cd)2.745 E F1 .245
(cannot successfully determine the current w)2.745 F .245(orking di-)-.1
F(rectory after a successful directory change, it returns a non-zero st\
-atus.)144 489.6 Q .243(On systems that support it, the)144 506.4 R F2
+atus.)144 636 Q .243(On systems that support it, the)144 652.8 R F4
<ad40>2.743 E F1 .242(option presents the e)2.743 F .242(xtended attrib)
--.15 F .242(utes associated with a \214le as)-.2 F 2.5(ad)144 518.4 S
-(irectory)-2.5 E(.)-.65 E(An ar)144 535.2 Q(gument of)-.18 E F2<ad>2.5 E
-F1(is con)2.5 E -.15(ve)-.4 G(rted to).15 E F3($OLDPWD)2.5 E F1
-(before attempting the directory change.)2.25 E(If)144 552 Q F2(cd)3 E
-F1 .5(uses a non-empty directory name from)3 F F3(CDP)3.001 E -.855(AT)
--.666 G(H).855 E/F4 9/Times-Roman@0 SF(,)A F1 .501(or if)2.751 F F2<ad>
-3.001 E F1 .501(is the \214rst ar)3.001 F .501(gument, and the direc-)
--.18 F 1.243(tory change is successful,)144 564 R F2(cd)3.743 E F1 1.243
+-.15 F .242(utes associated with a \214le as)-.2 F 2.5(ad)144 664.8 S
+(irectory)-2.5 E(.)-.65 E(An ar)144 681.6 Q(gument of)-.18 E F4<ad>2.5 E
+F1(is con)2.5 E -.15(ve)-.4 G(rted to).15 E F2($OLDPWD)2.5 E F1
+(before attempting the directory change.)2.25 E(If)144 698.4 Q F4(cd)3 E
+F1 .5(uses a non-empty directory name from)3 F F2(CDP)3.001 E -.855(AT)
+-.666 G(H).855 E F3(,)A F1 .501(or if)2.751 F F4<ad>3.001 E F1 .501
+(is the \214rst ar)3.001 F .501(gument, and the direc-)-.18 F 1.243
+(tory change is successful,)144 710.4 R F4(cd)3.743 E F1 1.243
(writes the absolute pathname of the ne)3.743 F 3.742(ww)-.25 G 1.242
-(orking directory to the)-3.842 F(standard output.)144 576 Q 1.113
-(If the directory change is successful,)144 592.8 R F2(cd)3.613 E F1
-1.113(sets the v)3.613 F 1.113(alue of the)-.25 F F2(PWD)3.613 E F1(en)
-3.613 E 1.113(vironment v)-.4 F 1.114(ariable to the)-.25 F(ne)144 604.8
-Q 4.306(wd)-.25 G 1.806(irectory name, and sets the)-4.306 F F2(OLDPWD)
-4.306 E F1(en)4.306 E 1.806(vironment v)-.4 F 1.806(ariable to the v)
--.25 F 1.805(alue of the current)-.25 F -.1(wo)144 616.8 S
-(rking directory before the change.).1 E(The return v)144 633.6 Q
+(orking directory to the)-3.842 F(standard output.)144 722.4 Q
+(GNU Bash 5.3)72 768 Q(2026 January 14)141.79 E(69)190.95 E 0 Cg EP
+%%Page: 70 70
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E 1.113(If the directory change is successful,)144 84
+R/F2 10/Times-Bold@0 SF(cd)3.613 E F1 1.113(sets the v)3.613 F 1.113
+(alue of the)-.25 F F2(PWD)3.613 E F1(en)3.613 E 1.113(vironment v)-.4 F
+1.114(ariable to the)-.25 F(ne)144 96 Q 4.306(wd)-.25 G 1.806
+(irectory name, and sets the)-4.306 F F2(OLDPWD)4.306 E F1(en)4.306 E
+1.806(vironment v)-.4 F 1.806(ariable to the v)-.25 F 1.805
+(alue of the current)-.25 F -.1(wo)144 108 S
+(rking directory before the change.).1 E(The return v)144 124.8 Q
(alue is true if the directory w)-.25 E(as successfully changed; f)-.1 E
-(alse otherwise.)-.1 E F2(command)108 650.4 Q F1([)2.5 E F2(\255pVv)A F1
+(alse otherwise.)-.1 E F2(command)108 141.6 Q F1([)2.5 E F2(\255pVv)A F1
(])A F0(command)2.5 E F1([)2.5 E F0(ar)A(g)-.37 E F1 1.666(...)2.5 G(])
--1.666 E(The)144 662.4 Q F2(command)3.078 E F1 -.2(bu)3.078 G .578
+-1.666 E(The)144 153.6 Q F2(command)3.078 E F1 -.2(bu)3.078 G .578
(iltin runs).2 F F0(command)3.278 E F1(with)3.848 E F0(ar)3.408 E(gs)
-.37 E F1 .579(suppressing the normal shell function lookup for)3.348 F
-F0(command)144 674.4 Q F1 6.346(.O)C 1.346(nly b)-6.346 F 1.345
-(uiltin commands or commands found in the)-.2 F F3 -.666(PA)3.845 G(TH)
--.189 E F1(named)3.595 E F0(command)3.845 E F1 1.345(are e)3.845 F -.15
-(xe)-.15 G(-).15 E 2.714(cuted. If)144 686.4 R(the)2.714 E F2<ad70>2.714
-E F1 .214(option is supplied, the search for)2.714 F F0(command)2.914 E
-F1 .214(is performed using a def)3.484 F .215(ault v)-.1 F .215
-(alue for)-.25 F F3 -.666(PA)144 698.4 S(TH)-.189 E F1
+F0(command)144 165.6 Q F1 6.346(.O)C 1.346(nly b)-6.346 F 1.345
+(uiltin commands or commands found in the)-.2 F/F3 9/Times-Bold@0 SF
+-.666(PA)3.845 G(TH)-.189 E F1(named)3.595 E F0(command)3.845 E F1 1.345
+(are e)3.845 F -.15(xe)-.15 G(-).15 E 2.714(cuted. If)144 177.6 R(the)
+2.714 E F2<ad70>2.714 E F1 .214(option is supplied, the search for)2.714
+F F0(command)2.914 E F1 .214(is performed using a def)3.484 F .215
+(ault v)-.1 F .215(alue for)-.25 F F3 -.666(PA)144 189.6 S(TH)-.189 E F1
(that is guaranteed to \214nd all of the standard utilities.)2.25 E .273
-(If either the)144 715.2 R F2<ad56>2.773 E F1(or)2.773 E F2<ad76>2.773 E
+(If either the)144 206.4 R F2<ad56>2.773 E F1(or)2.773 E F2<ad76>2.773 E
F1 .273(option is supplied,)2.773 F F2(command)2.773 E F1 .273
(prints a description of)2.773 F F0(command)2.973 E F1 5.273(.T).77 G
(he)-5.273 E F2<ad76>2.773 E F1(op-)2.772 E .436
-(tion displays a single w)144 727.2 R .437
+(tion displays a single w)144 218.4 R .437
(ord indicating the command or \214lename used to in)-.1 F -.2(vo)-.4 G
-.1(ke).2 G F0(command)3.237 E F1 2.937(;t).77 G(he)-2.937 E F2<ad56>
-2.937 E F1(GNU Bash 5.3)72 768 Q(2025 April 7)149.285 E(68)198.445 E 0
-Cg EP
-%%Page: 69 69
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E(option produces a more v)144 84 Q
-(erbose description.)-.15 E .632(If the)144 100.8 R/F2 10/Times-Bold@0
-SF<ad56>3.131 E F1(or)3.131 E F2<ad76>3.131 E F1 .631
-(option is supplied, the e)3.131 F .631(xit status is zero if)-.15 F F0
-(command)3.331 E F1 -.1(wa)3.901 G 3.131(sf).1 G .631
-(ound, and non-zero if)-3.131 F 2.809(not. If)144 112.8 R .309
+2.937 E F1(option produces a more v)144 230.4 Q(erbose description.)-.15
+E .632(If the)144 247.2 R F2<ad56>3.131 E F1(or)3.131 E F2<ad76>3.131 E
+F1 .631(option is supplied, the e)3.131 F .631(xit status is zero if)
+-.15 F F0(command)3.331 E F1 -.1(wa)3.901 G 3.131(sf).1 G .631
+(ound, and non-zero if)-3.131 F 2.809(not. If)144 259.2 R .309
(neither option is supplied and an error occurred or)2.809 F F0(command)
3.01 E F1 .31(cannot be found, the e)3.58 F .31(xit sta-)-.15 F
-(tus is 127.)144 124.8 Q(Otherwise, the e)5 E(xit status of the)-.15 E
+(tus is 127.)144 271.2 Q(Otherwise, the e)5 E(xit status of the)-.15 E
F2(command)2.5 E F1 -.2(bu)2.5 G(iltin is the e).2 E(xit status of)-.15
-E F0(command)2.7 E F1(.).77 E F2(compgen)108 141.6 Q F1([)2.5 E F2<ad56>
-A F0(varname)2.5 E F1 2.5(][)C F0(option)-2.5 E F1 2.5(][)C F0(wor)-2.5
-E(d)-.37 E F1(])A .013(Generate possible completion matches for)144
-153.6 R F0(wor)2.513 E(d)-.37 E F1 .013(according to the)2.513 F F0
-(option)2.513 E F1 .013(s, which may be an)B 2.512(yo)-.15 G(ption)
--2.512 E 1.216(accepted by the)144 165.6 R F2(complete)3.716 E F1 -.2
-(bu)3.716 G 1.216(iltin with the e).2 F 1.216(xceptions of)-.15 F F2
-<ad70>3.716 E F1(,)A F2<ad72>3.717 E F1(,)A F2<ad44>3.717 E F1(,)A F2
-<ad45>3.717 E F1 3.717(,a)C(nd)-3.717 E F2<ad49>3.717 E F1 3.717(,a)C
-1.217(nd write the)-3.717 F(matches to the standard output.)144 177.6 Q
-1.376(If the)144 194.4 R F2<ad56>3.876 E F1 1.376(option is supplied,)
-3.876 F F2(compgen)3.876 E F1 1.376
-(stores the generated completions into the inde)3.876 F -.15(xe)-.15 G
-3.875(da).15 G(rray)-3.875 E -.25(va)144 206.4 S(riable).25 E F0
-(varname)2.5 E F1(instead of writing them to the standard output.)2.5 E
-.194(When using the)144 223.2 R F2<ad46>2.694 E F1(or)2.694 E F2<ad43>
-2.694 E F1 .195(options, the v)2.695 F .195(arious shell v)-.25 F .195
-(ariables set by the programmable completion)-.25 F -.1(fa)144 235.2 S
+E F0(command)2.7 E F1(.).77 E F2(compgen)108 288 Q F1([)2.5 E F2<ad56>A
+F0(varname)2.5 E F1 2.5(][)C F0(option)-2.5 E F1 2.5(][)C F0(wor)-2.5 E
+(d)-.37 E F1(])A .013(Generate possible completion matches for)144 300 R
+F0(wor)2.513 E(d)-.37 E F1 .013(according to the)2.513 F F0(option)2.513
+E F1 .013(s, which may be an)B 2.512(yo)-.15 G(ption)-2.512 E 1.216
+(accepted by the)144 312 R F2(complete)3.716 E F1 -.2(bu)3.716 G 1.216
+(iltin with the e).2 F 1.216(xceptions of)-.15 F F2<ad70>3.716 E F1(,)A
+F2<ad72>3.717 E F1(,)A F2<ad44>3.717 E F1(,)A F2<ad45>3.717 E F1 3.717
+(,a)C(nd)-3.717 E F2<ad49>3.717 E F1 3.717(,a)C 1.217(nd write the)
+-3.717 F(matches to the standard output.)144 324 Q 1.376(If the)144
+340.8 R F2<ad56>3.876 E F1 1.376(option is supplied,)3.876 F F2(compgen)
+3.876 E F1 1.376(stores the generated completions into the inde)3.876 F
+-.15(xe)-.15 G 3.875(da).15 G(rray)-3.875 E -.25(va)144 352.8 S(riable)
+.25 E F0(varname)2.5 E F1
+(instead of writing them to the standard output.)2.5 E .194
+(When using the)144 369.6 R F2<ad46>2.694 E F1(or)2.694 E F2<ad43>2.694
+E F1 .195(options, the v)2.695 F .195(arious shell v)-.25 F .195
+(ariables set by the programmable completion)-.25 F -.1(fa)144 381.6 S
(cilities, while a).1 E -.25(va)-.2 G(ilable, will not ha).25 E .3 -.15
(ve u)-.2 H(seful v).15 E(alues.)-.25 E .352
-(The matches will be generated in the same w)144 252 R .352
+(The matches will be generated in the same w)144 398.4 R .352
(ay as if the programmable completion code had gen-)-.1 F .02(erated th\
em directly from a completion speci\214cation with the same \215ags.)144
-264 R(If)5.02 E F0(wor)2.52 E(d)-.37 E F1 .02(is speci\214ed, only)2.52
-F(those completions matching)144 276 Q F0(wor)2.5 E(d)-.37 E F1
-(will be displayed or stored.)2.5 E(The return v)144 292.8 Q
+410.4 R(If)5.02 E F0(wor)2.52 E(d)-.37 E F1 .02(is speci\214ed, only)
+2.52 F(those completions matching)144 422.4 Q F0(wor)2.5 E(d)-.37 E F1
+(will be displayed or stored.)2.5 E(The return v)144 439.2 Q
(alue is true unless an in)-.25 E -.25(va)-.4 G
(lid option is supplied, or no matches were generated.).25 E F2
-(complete)108 309.6 Q F1([)2.5 E F2(\255abcdefgjksuv)A F1 2.5(][)C F2
+(complete)108 456 Q F1([)2.5 E F2(\255abcdefgjksuv)A F1 2.5(][)C F2
<ad6f>-2.5 E F0(comp-option)2.5 E F1 2.5(][)C F2(\255DEI)-2.5 E F1 2.5
-(][)C F2<ad41>-2.5 E F0(action)2.5 E F1(])A([)144 321.6 Q F2<ad47>A F0
+(][)C F2<ad41>-2.5 E F0(action)2.5 E F1(])A([)144 468 Q F2<ad47>A F0
(globpat)2.5 E F1 2.5(][)C F2<ad57>-2.5 E F0(wor)2.5 E(dlist)-.37 E F1
2.5(][)C F2<ad46>-2.5 E F0(function)2.5 E F1 2.5(][)C F2<ad43>-2.5 E F0
-(command)2.5 E F1(])A([)144 333.6 Q F2<ad58>A F0(\214lterpat)2.5 E F1
-2.5(][)C F2<ad50>-2.5 E F0(pr)2.5 E(e\214x)-.37 E F1 2.5(][)C F2<ad53>
--2.5 E F0(suf)2.5 E<8c78>-.18 E F1(])A F0(name)2.5 E F1([)2.5 E F0(name)
-A F1 1.666(...)2.5 G(])-1.666 E F2(complete \255pr)108 345.6 Q F1([)2.5
-E F2(\255DEI)A F1 2.5(][)C F0(name)-2.5 E F1 1.666(...)2.5 G(])-1.666 E
-(Specify ho)144 357.6 Q 2.5(wa)-.25 G -.18(rg)-2.5 G(uments to each).18
-E F0(name)2.5 E F1(should be completed.)2.5 E .11(If the)144 374.4 R F2
+(command)2.5 E F1(])A([)144 480 Q F2<ad58>A F0(\214lterpat)2.5 E F1 2.5
+(][)C F2<ad50>-2.5 E F0(pr)2.5 E(e\214x)-.37 E F1 2.5(][)C F2<ad53>-2.5
+E F0(suf)2.5 E<8c78>-.18 E F1(])A F0(name)2.5 E F1([)2.5 E F0(name)A F1
+1.666(...)2.5 G(])-1.666 E F2(complete \255pr)108 492 Q F1([)2.5 E F2
+(\255DEI)A F1 2.5(][)C F0(name)-2.5 E F1 1.666(...)2.5 G(])-1.666 E
+(Specify ho)144 504 Q 2.5(wa)-.25 G -.18(rg)-2.5 G(uments to each).18 E
+F0(name)2.5 E F1(should be completed.)2.5 E .11(If the)144 520.8 R F2
<ad70>2.61 E F1 .11(option is supplied, or if no options or)2.61 F F0
(name)2.609 E F1 2.609(sa)C .109(re supplied, print e)-2.609 F .109
-(xisting completion spec-)-.15 F .924(i\214cations in a w)144 386.4 R
+(xisting completion spec-)-.15 F .924(i\214cations in a w)144 532.8 R
.924(ay that allo)-.1 F .924(ws them to be reused as input.)-.25 F(The)
5.924 E F2<ad72>3.424 E F1 .924(option remo)3.424 F -.15(ve)-.15 G 3.425
-(sac).15 G(ompletion)-3.425 E(speci\214cation for each)144 398.4 Q F0
+(sac).15 G(ompletion)-3.425 E(speci\214cation for each)144 544.8 Q F0
(name)2.5 E F1 2.5(,o)C .8 -.4(r, i)-2.5 H 2.5(fn).4 G(o)-2.5 E F0(name)
2.5 E F1 2.5(sa)C(re supplied, all completion speci\214cations.)-2.5 E
-(The)144 415.2 Q F2<ad44>2.585 E F1 .085(option indicates that other su\
+(The)144 561.6 Q F2<ad44>2.585 E F1 .085(option indicates that other su\
pplied options and actions should apply to the \231def)2.585 F .084
(ault\232 com-)-.1 F .032(mand completion; that is, completion attempte\
-d on a command for which no completion has pre)144 427.2 R(vi-)-.25 E
-.46(ously been de\214ned.)144 439.2 R(The)5.46 E F2<ad45>2.96 E F1 .459
+d on a command for which no completion has pre)144 573.6 R(vi-)-.25 E
+.46(ously been de\214ned.)144 585.6 R(The)5.46 E F2<ad45>2.96 E F1 .459
(option indicates that other supplied options and actions should apply)
2.959 F .169(to \231empty\232 command completion; that is, completion a\
-ttempted on a blank line.)144 451.2 R(The)5.17 E F2<ad49>2.67 E F1 .17
+ttempted on a blank line.)144 597.6 R(The)5.17 E F2<ad49>2.67 E F1 .17
(option in-)2.67 F 1.025(dicates that other supplied options and action\
-s should apply to completion on the initial non-as-)144 463.2 R .281
-(signment w)144 475.2 R .281
+s should apply to completion on the initial non-as-)144 609.6 R .281
+(signment w)144 621.6 R .281
(ord on the line, or after a command delimiter such as)-.1 F F2(;)2.781
E F1(or)2.781 E F2(|)2.781 E F1 2.781(,w)C .282(hich is usually command)
--2.781 F .6(name completion.)144 487.2 R .599
+-2.781 F .6(name completion.)144 633.6 R .599
(If multiple options are supplied, the)5.6 F F2<ad44>3.099 E F1 .599
(option tak)3.099 F .599(es precedence o)-.1 F -.15(ve)-.15 G(r).15 E F2
-<ad45>3.099 E F1 3.099(,a)C(nd)-3.099 E .186(both tak)144 499.2 R 2.686
+<ad45>3.099 E F1 3.099(,a)C(nd)-3.099 E .186(both tak)144 645.6 R 2.686
(ep)-.1 G .186(recedence o)-2.686 F -.15(ve)-.15 G(r).15 E F2<ad49>2.686
E F1 5.186(.I)C 2.686(fa)-5.186 G .486 -.15(ny o)-2.686 H(f).15 E F2
<ad44>2.686 E F1(,)A F2<ad45>2.686 E F1 2.686(,o)C(r)-2.686 E F2<ad49>
2.686 E F1 .186(are supplied, an)2.686 F 2.686(yo)-.15 G(ther)-2.686 E
F0(name)2.686 E F1(ar)2.687 E .187(guments are)-.18 F(ignored; these co\
-mpletions only apply to the case speci\214ed by the option.)144 511.2 Q
+mpletions only apply to the case speci\214ed by the option.)144 657.6 Q
.443(The process of applying these completion speci\214cations when att\
-empting w)144 528 R .442(ord completion)-.1 F .442(is de-)5.442 F
-(scribed abo)144 540 Q .3 -.15(ve u)-.15 H(nder).15 E F2(Pr)2.5 E
+empting w)144 674.4 R .442(ord completion)-.1 F .442(is de-)5.442 F
+(scribed abo)144 686.4 Q .3 -.15(ve u)-.15 H(nder).15 E F2(Pr)2.5 E
(ogrammable Completion)-.18 E F1(.)A .555
-(Other options, if speci\214ed, ha)144 556.8 R .855 -.15(ve t)-.2 H .555
+(Other options, if speci\214ed, ha)144 703.2 R .855 -.15(ve t)-.2 H .555
(he follo).15 F .555(wing meanings.)-.25 F .555(The ar)5.555 F .555
(guments to the)-.18 F F2<ad47>3.056 E F1(,)A F2<ad57>3.056 E F1 3.056
(,a)C(nd)-3.056 E F2<ad58>3.056 E F1 .723(options \(and, if necessary)
-144 568.8 R 3.223(,t)-.65 G(he)-3.223 E F2<ad50>3.223 E F1(and)3.223 E
+144 715.2 R 3.223(,t)-.65 G(he)-3.223 E F2<ad50>3.223 E F1(and)3.223 E
F2<ad53>3.223 E F1 .722
(options\) should be quoted to protect them from e)3.223 F(xpan-)-.15 E
-(sion before the)144 580.8 Q F2(complete)2.5 E F1 -.2(bu)2.5 G
-(iltin is in).2 E -.2(vo)-.4 G -.1(ke).2 G(d.).1 E F2<ad6f>144 597.6 Q
-F0(comp-option)2.5 E F1(The)184 609.6 Q F0(comp-option)2.79 E F1 .291
-(controls se)2.791 F -.15(ve)-.25 G .291(ral aspects of the compspec')
-.15 F 2.791(sb)-.55 G(eha)-2.791 E .291(vior be)-.2 F .291
-(yond the simple)-.15 F(generation of completions.)184 621.6 Q F0
-(comp-option)5 E F1(may be one of:)2.5 E F2(bashdefault)184 633.6 Q F1
-.281(Perform the rest of the def)224 645.6 R(ault)-.1 E F2(bash)2.781 E
-F1 .281(completions if the compspec generates no)2.781 F(matches.)224
-657.6 Q F2(default)184 669.6 Q F1(Use)224 669.6 Q F2 -.18(re)5.085 G
-(adline).18 E F1 3.685 -.55('s d)D(ef).55 E 2.586
-(ault \214lename completion if the compspec generates no)-.1 F(matches.)
-224 681.6 Q F2(dir)184 693.6 Q(names)-.15 E F1(Perform directory name c\
-ompletion if the compspec generates no matches.)224 705.6 Q
-(GNU Bash 5.3)72 768 Q(2025 April 7)149.285 E(69)198.445 E 0 Cg EP
-%%Page: 70 70
+(sion before the)144 727.2 Q F2(complete)2.5 E F1 -.2(bu)2.5 G
+(iltin is in).2 E -.2(vo)-.4 G -.1(ke).2 G(d.).1 E(GNU Bash 5.3)72 768 Q
+(2026 January 14)141.79 E(70)190.95 E 0 Cg EP
+%%Page: 71 71
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(\214lenames)184 84 Q F1 -.7
-(Te)224 96 S(ll).7 E F2 -.18(re)4.104 G(adline).18 E F1 1.604
-(that the compspec generates \214lenames, so it can perform an)4.104 F
-(y)-.15 E .291(\214lename\255speci\214c processing \(such as adding a s\
-lash to directory names, quot-)224 108 R .904
-(ing special characters, or suppressing trailing spaces\).)224 120 R
-.903(This is intended to be)5.904 F(used with shell functions.)224 132 Q
-F2(fullquote)184 144 Q F1 -.7(Te)224 156 S(ll).7 E F2 -.18(re)2.5 G
+.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF<ad6f>144 84 Q F0(comp-option)
+2.5 E F1(The)184 96 Q F0(comp-option)2.79 E F1 .291(controls se)2.791 F
+-.15(ve)-.25 G .291(ral aspects of the compspec').15 F 2.791(sb)-.55 G
+(eha)-2.791 E .291(vior be)-.2 F .291(yond the simple)-.15 F
+(generation of completions.)184 108 Q F0(comp-option)5 E F1
+(may be one of:)2.5 E F2(bashdefault)184 120 Q F1 .281
+(Perform the rest of the def)224 132 R(ault)-.1 E F2(bash)2.781 E F1
+.281(completions if the compspec generates no)2.781 F(matches.)224 144 Q
+F2(default)184 156 Q F1(Use)224 156 Q F2 -.18(re)5.085 G(adline).18 E F1
+3.685 -.55('s d)D(ef).55 E 2.586
+(ault \214lename completion if the compspec generates no)-.1 F(matches.)
+224 168 Q F2(dir)184 180 Q(names)-.15 E F1(Perform directory name compl\
+etion if the compspec generates no matches.)224 192 Q F2(\214lenames)184
+204 Q F1 -.7(Te)224 216 S(ll).7 E F2 -.18(re)4.104 G(adline).18 E F1
+1.604(that the compspec generates \214lenames, so it can perform an)
+4.104 F(y)-.15 E .291(\214lename\255speci\214c processing \(such as add\
+ing a slash to directory names, quot-)224 228 R .904
+(ing special characters, or suppressing trailing spaces\).)224 240 R
+.903(This is intended to be)5.904 F(used with shell functions.)224 252 Q
+F2(fullquote)184 264 Q F1 -.7(Te)224 276 S(ll).7 E F2 -.18(re)2.5 G
(adline).18 E F1(to quote all the completed w)2.5 E(ords e)-.1 E -.15
(ve)-.25 G 2.5(ni).15 G 2.5(ft)-2.5 G(he)-2.5 E 2.5(ya)-.15 G
-(re not \214lenames.)-2.5 E F2(noquote)184 168 Q F1 -.7(Te)224 168 S(ll)
+(re not \214lenames.)-2.5 E F2(noquote)184 288 Q F1 -.7(Te)224 288 S(ll)
.7 E F2 -.18(re)3.096 G(adline).18 E F1 .597
(not to quote the completed w)3.096 F .597(ords if the)-.1 F 3.097(ya)
-.15 G .597(re \214lenames \(quoting)-3.097 F(\214lenames is the def)224
-180 Q(ault\).)-.1 E F2(nosort)184 192 Q F1 -.7(Te)224 192 S(ll).7 E F2
+300 Q(ault\).)-.1 E F2(nosort)184 312 Q F1 -.7(Te)224 312 S(ll).7 E F2
-.18(re)2.5 G(adline).18 E F1
(not to sort the list of possible completions alphabetically)2.5 E(.)
--.65 E F2(nospace)184 204 Q F1 -.7(Te)224 204 S(ll).7 E F2 -.18(re)2.534
+-.65 E F2(nospace)184 324 Q F1 -.7(Te)224 324 S(ll).7 E F2 -.18(re)2.534
G(adline).18 E F1 .034(not to append a space \(the def)2.534 F .033
(ault\) to w)-.1 F .033(ords completed at the end)-.1 F(of the line.)224
-216 Q F2(plusdirs)184 228 Q F1 2.542(After generating an)224 228 R 5.042
+336 Q F2(plusdirs)184 348 Q F1 2.542(After generating an)224 348 R 5.042
(ym)-.15 G 2.542(atches de\214ned by the compspec, attempt directory)
--5.042 F(name completion and add an)224 240 Q 2.5(ym)-.15 G
-(atches to the results of the other actions.)-2.5 E F2<ad41>144 252 Q F0
-(action)2.5 E F1(The)184 264 Q F0(action)2.5 E F1
+-5.042 F(name completion and add an)224 360 Q 2.5(ym)-.15 G
+(atches to the results of the other actions.)-2.5 E F2<ad41>144 372 Q F0
+(action)2.5 E F1(The)184 384 Q F0(action)2.5 E F1
(may be one of the follo)2.5 E
(wing to generate a list of possible completions:)-.25 E F2(alias)184
-276 Q F1(Alias names.)224 276 Q(May also be speci\214ed as)5 E F2<ad61>
-2.5 E F1(.)A F2(arrayv)184 288 Q(ar)-.1 E F1(Array v)224 300 Q
-(ariable names.)-.25 E F2(binding)184 312 Q(Readline)224 312 Q F1 -.1
-(ke)2.5 G 2.5(yb)-.05 G(inding names.)-2.5 E F2 -.2(bu)184 324 S(iltin)
-.2 E F1(Names of shell b)224 324 Q(uiltin commands.)-.2 E
-(May also be speci\214ed as)5 E F2<ad62>2.5 E F1(.)A F2(command)184 336
-Q F1(Command names.)224 348 Q(May also be speci\214ed as)5 E F2<ad63>2.5
-E F1(.)A F2(dir)184 360 Q(ectory)-.18 E F1(Directory names.)224 372 Q
-(May also be speci\214ed as)5 E F2<ad64>2.5 E F1(.)A F2(disabled)184 384
-Q F1(Names of disabled shell b)224 396 Q(uiltins.)-.2 E F2(enabled)184
-408 Q F1(Names of enabled shell b)224 408 Q(uiltins.)-.2 E F2(export)184
-420 Q F1(Names of e)224 420 Q(xported shell v)-.15 E 2.5(ariables. May)
+396 Q F1(Alias names.)224 396 Q(May also be speci\214ed as)5 E F2<ad61>
+2.5 E F1(.)A F2(arrayv)184 408 Q(ar)-.1 E F1(Array v)224 420 Q
+(ariable names.)-.25 E F2(binding)184 432 Q(Readline)224 432 Q F1 -.1
+(ke)2.5 G 2.5(yb)-.05 G(inding names.)-2.5 E F2 -.2(bu)184 444 S(iltin)
+.2 E F1(Names of shell b)224 444 Q(uiltin commands.)-.2 E
+(May also be speci\214ed as)5 E F2<ad62>2.5 E F1(.)A F2(command)184 456
+Q F1(Command names.)224 468 Q(May also be speci\214ed as)5 E F2<ad63>2.5
+E F1(.)A F2(dir)184 480 Q(ectory)-.18 E F1(Directory names.)224 492 Q
+(May also be speci\214ed as)5 E F2<ad64>2.5 E F1(.)A F2(disabled)184 504
+Q F1(Names of disabled shell b)224 516 Q(uiltins.)-.2 E F2(enabled)184
+528 Q F1(Names of enabled shell b)224 528 Q(uiltins.)-.2 E F2(export)184
+540 Q F1(Names of e)224 540 Q(xported shell v)-.15 E 2.5(ariables. May)
-.25 F(also be speci\214ed as)2.5 E F2<ad65>2.5 E F1(.)A F2(\214le)184
-432 Q F1 .092(File and directory names, similar to)224 432 R F2 -.18(re)
+552 Q F1 .092(File and directory names, similar to)224 552 R F2 -.18(re)
2.592 G(adline).18 E F1 1.192 -.55('s \214)D .092(lename completion.).55
-F .092(May also)5.092 F(be speci\214ed as)224 444 Q F2<ad66>2.5 E F1(.)A
-F2(function)184 456 Q F1(Names of shell functions.)224 468 Q F2(gr)184
-480 Q(oup)-.18 E F1(Group names.)224 480 Q(May also be speci\214ed as)5
-E F2<ad67>2.5 E F1(.)A F2(helptopic)184 492 Q F1
-(Help topics as accepted by the)224 504 Q F2(help)2.5 E F1 -.2(bu)2.5 G
-(iltin.).2 E F2(hostname)184 516 Q F1(Hostnames, as tak)224 528 Q
+F .092(May also)5.092 F(be speci\214ed as)224 564 Q F2<ad66>2.5 E F1(.)A
+F2(function)184 576 Q F1(Names of shell functions.)224 588 Q F2(gr)184
+600 Q(oup)-.18 E F1(Group names.)224 600 Q(May also be speci\214ed as)5
+E F2<ad67>2.5 E F1(.)A F2(helptopic)184 612 Q F1
+(Help topics as accepted by the)224 624 Q F2(help)2.5 E F1 -.2(bu)2.5 G
+(iltin.).2 E F2(hostname)184 636 Q F1(Hostnames, as tak)224 648 Q
(en from the \214le speci\214ed by the)-.1 E/F3 9/Times-Bold@0 SF
-(HOSTFILE)2.5 E F1(shell v)2.25 E(ariable.)-.25 E F2(job)184 540 Q F1
-(Job names, if job control is acti)224 540 Q -.15(ve)-.25 G 5(.M).15 G
-(ay also be speci\214ed as)-5 E F2<ad6a>2.5 E F1(.)A F2 -.1(ke)184 552 S
-(yw).1 E(ord)-.1 E F1(Shell reserv)224 564 Q(ed w)-.15 E 2.5(ords. May)
+(HOSTFILE)2.5 E F1(shell v)2.25 E(ariable.)-.25 E F2(job)184 660 Q F1
+(Job names, if job control is acti)224 660 Q -.15(ve)-.25 G 5(.M).15 G
+(ay also be speci\214ed as)-5 E F2<ad6a>2.5 E F1(.)A F2 -.1(ke)184 672 S
+(yw).1 E(ord)-.1 E F1(Shell reserv)224 684 Q(ed w)-.15 E 2.5(ords. May)
-.1 F(also be speci\214ed as)2.5 E F2<ad6b>2.5 E F1(.)A F2(running)184
-576 Q F1(Names of running jobs, if job control is acti)224 576 Q -.15
-(ve)-.25 G(.).15 E F2(ser)184 588 Q(vice)-.1 E F1(Service names.)224 588
-Q(May also be speci\214ed as)5 E F2<ad73>2.5 E F1(.)A F2(setopt)184 600
-Q F1 -1.11(Va)224 600 S(lid ar)1.11 E(guments for the)-.18 E F2<ad6f>2.5
-E F1(option to the)2.5 E F2(set)2.5 E F1 -.2(bu)2.5 G(iltin.).2 E F2
-(shopt)184 612 Q F1(Shell option names as accepted by the)224 612 Q F2
-(shopt)2.5 E F1 -.2(bu)2.5 G(iltin.).2 E F2(signal)184 624 Q F1
-(Signal names.)224 624 Q F2(stopped)184 636 Q F1
-(Names of stopped jobs, if job control is acti)224 636 Q -.15(ve)-.25 G
-(.).15 E F2(user)184 648 Q F1(User names.)224 648 Q
-(May also be speci\214ed as)5 E F2<ad75>2.5 E F1(.)A F2 -.1(va)184 660 S
-(riable).1 E F1(Names of all shell v)224 660 Q 2.5(ariables. May)-.25 F
-(also be speci\214ed as)2.5 E F2<ad76>2.5 E F1(.)A F2<ad43>144 672 Q F0
-(command)2.5 E(command)184 684 Q F1 1.055(is e)3.555 F -.15(xe)-.15 G
-1.055(cuted in a subshell en).15 F 1.056
-(vironment, and its output is used as the possible)-.4 F 2.5
-(completions. Ar)184 696 R(guments are passed as with the)-.18 E F2
-<ad46>2.5 E F1(option.)2.5 E(GNU Bash 5.3)72 768 Q(2025 April 7)149.285
-E(70)198.445 E 0 Cg EP
-%%Page: 71 71
+696 Q F1(Names of running jobs, if job control is acti)224 696 Q -.15
+(ve)-.25 G(.).15 E(GNU Bash 5.3)72 768 Q(2026 January 14)141.79 E(71)
+190.95 E 0 Cg EP
+%%Page: 72 72
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF<ad46>144 84 Q F0(function)2.5
-E F1 .114(The shell function)184 96 R F0(function)2.614 E F1 .114(is e)
-2.614 F -.15(xe)-.15 G .114(cuted in the current shell en).15 F 2.614
-(vironment. When)-.4 F .113(the func-)2.613 F .816(tion is e)184 108 R
+.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(ser)184 84 Q(vice)-.1 E F1
+(Service names.)224 84 Q(May also be speci\214ed as)5 E F2<ad73>2.5 E F1
+(.)A F2(setopt)184 96 Q F1 -1.11(Va)224 96 S(lid ar)1.11 E
+(guments for the)-.18 E F2<ad6f>2.5 E F1(option to the)2.5 E F2(set)2.5
+E F1 -.2(bu)2.5 G(iltin.).2 E F2(shopt)184 108 Q F1
+(Shell option names as accepted by the)224 108 Q F2(shopt)2.5 E F1 -.2
+(bu)2.5 G(iltin.).2 E F2(signal)184 120 Q F1(Signal names.)224 120 Q F2
+(stopped)184 132 Q F1(Names of stopped jobs, if job control is acti)224
+132 Q -.15(ve)-.25 G(.).15 E F2(user)184 144 Q F1(User names.)224 144 Q
+(May also be speci\214ed as)5 E F2<ad75>2.5 E F1(.)A F2 -.1(va)184 156 S
+(riable).1 E F1(Names of all shell v)224 156 Q 2.5(ariables. May)-.25 F
+(also be speci\214ed as)2.5 E F2<ad76>2.5 E F1(.)A F2<ad43>144 168 Q F0
+(command)2.5 E(command)184 180 Q F1 1.055(is e)3.555 F -.15(xe)-.15 G
+1.055(cuted in a subshell en).15 F 1.056
+(vironment, and its output is used as the possible)-.4 F 2.5
+(completions. Ar)184 192 R(guments are passed as with the)-.18 E F2
+<ad46>2.5 E F1(option.)2.5 E F2<ad46>144 204 Q F0(function)2.5 E F1 .114
+(The shell function)184 216 R F0(function)2.614 E F1 .114(is e)2.614 F
+-.15(xe)-.15 G .114(cuted in the current shell en).15 F 2.614
+(vironment. When)-.4 F .113(the func-)2.613 F .816(tion is e)184 228 R
-.15(xe)-.15 G .816(cuted, the \214rst ar).15 F .816(gument \()-.18 F F2
($1)A F1 3.316(\)i)C 3.316(st)-3.316 G .817
(he name of the command whose ar)-3.316 F(guments)-.18 E 1.407
-(are being completed, the second ar)184 120 R 1.407(gument \()-.18 F F2
+(are being completed, the second ar)184 240 R 1.407(gument \()-.18 F F2
($2)A F1 3.907(\)i)C 3.907(st)-3.907 G 1.407(he w)-3.907 F 1.407
-(ord being completed, and the)-.1 F .103(third ar)184 132 R .103
+(ord being completed, and the)-.1 F .103(third ar)184 252 R .103
(gument \()-.18 F F2($3)A F1 2.603(\)i)C 2.603(st)-2.603 G .103(he w)
-2.603 F .104(ord preceding the w)-.1 F .104
-(ord being completed on the current com-)-.1 F 2.135(mand line.)184 144
+(ord being completed on the current com-)-.1 F 2.135(mand line.)184 264
R(When)7.135 E F0(function)4.635 E F1 2.134
(\214nishes, programmable completion retrie)4.635 F -.15(ve)-.25 G 4.634
-(st).15 G 2.134(he possible)-4.634 F(completions from the v)184 156 Q
+(st).15 G 2.134(he possible)-4.634 F(completions from the v)184 276 Q
(alue of the)-.25 E/F3 9/Times-Bold@0 SF(COMPREPL)2.5 E(Y)-.828 E F1
-(array v)2.25 E(ariable.)-.25 E F2<ad47>144 168 Q F0(globpat)2.5 E F1
-(Expand the pathname e)184 180 Q(xpansion pattern)-.15 E F0(globpat)2.5
-E F1(to generate the possible completions.)2.5 E F2<ad50>144 192 Q F0
-(pr)2.5 E(e\214x)-.37 E F1(Add)184 204 Q F0(pr)2.597 E(e\214x)-.37 E F1
+(array v)2.25 E(ariable.)-.25 E F2<ad47>144 288 Q F0(globpat)2.5 E F1
+(Expand the pathname e)184 300 Q(xpansion pattern)-.15 E F0(globpat)2.5
+E F1(to generate the possible completions.)2.5 E F2<ad50>144 312 Q F0
+(pr)2.5 E(e\214x)-.37 E F1(Add)184 324 Q F0(pr)2.597 E(e\214x)-.37 E F1
.098(to the be)2.597 F .098
(ginning of each possible completion after all other options ha)-.15 F
-.398 -.15(ve b)-.2 H(een).15 E(applied.)184 216 Q F2<ad53>144 228 Q F0
-(suf)2.5 E<8c78>-.18 E F1(Append)184 228 Q F0(suf)2.5 E<8c78>-.18 E F1
+.398 -.15(ve b)-.2 H(een).15 E(applied.)184 336 Q F2<ad53>144 348 Q F0
+(suf)2.5 E<8c78>-.18 E F1(Append)184 348 Q F0(suf)2.5 E<8c78>-.18 E F1
(to each possible completion after all other options ha)2.5 E .3 -.15
-(ve b)-.2 H(een applied.).15 E F2<ad57>144 240 Q F0(wor)2.5 E(dlist)-.37
-E F1 .834(Split the)184 252 R F0(wor)3.334 E(dlist)-.37 E F1 .833
+(ve b)-.2 H(een applied.).15 E F2<ad57>144 360 Q F0(wor)2.5 E(dlist)-.37
+E F1 .834(Split the)184 372 R F0(wor)3.334 E(dlist)-.37 E F1 .833
(using the characters in the)3.334 F F3(IFS)3.333 E F1 .833(special v)
3.083 F .833(ariable as delimiters, and e)-.25 F(x-)-.15 E .017
-(pand each resulting w)184 264 R 2.518(ord. Shell)-.1 F .018
+(pand each resulting w)184 384 R 2.518(ord. Shell)-.1 F .018
(quoting is honored within)2.518 F F0(wor)2.518 E(dlist)-.37 E F1 2.518
(,i)C 2.518(no)-2.518 G .018(rder to pro)-2.518 F .018(vide a)-.15 F
-1.158(mechanism for the w)184 276 R 1.158
+1.158(mechanism for the w)184 396 R 1.158
(ords to contain shell metacharacters or characters in the v)-.1 F 1.157
-(alue of)-.25 F F3(IFS)184 288 Q/F4 9/Times-Roman@0 SF(.)A F1 .04(The p\
+(alue of)-.25 F F3(IFS)184 408 Q/F4 9/Times-Roman@0 SF(.)A F1 .04(The p\
ossible completions are the members of the resultant list which match a\
- pre\214x)4.54 F(of the w)184 300 Q(ord being completed.)-.1 E F2<ad58>
-144 312 Q F0(\214lterpat)2.5 E(\214lterpat)184 324 Q F1 .456
+ pre\214x)4.54 F(of the w)184 420 Q(ord being completed.)-.1 E F2<ad58>
+144 432 Q F0(\214lterpat)2.5 E(\214lterpat)184 444 Q F1 .456
(is a pattern as used for pathname e)2.956 F 2.956(xpansion. It)-.15 F
.455(is applied to the list of possible)2.956 F 1.596
-(completions generated by the preceding options and ar)184 336 R 1.596
-(guments, and each completion)-.18 F(matching)184 348 Q F0(\214lterpat)
+(completions generated by the preceding options and ar)184 456 R 1.596
+(guments, and each completion)-.18 F(matching)184 468 Q F0(\214lterpat)
3.205 E F1 .705(is remo)3.205 F -.15(ve)-.15 G 3.205(df).15 G .704
(rom the list.)-3.205 F 3.204(Al)5.704 G(eading)-3.204 E F2(!)3.204 E F1
(in)3.204 E F0(\214lterpat)3.204 E F1(ne)3.204 E -.05(ga)-.15 G .704
-(tes the pattern;).05 F(in this case, an)184 360 Q 2.5(yc)-.15 G
+(tes the pattern;).05 F(in this case, an)184 480 Q 2.5(yc)-.15 G
(ompletion not matching)-2.5 E F0(\214lterpat)2.5 E F1(is remo)2.5 E
--.15(ve)-.15 G(d.).15 E .46(The return v)144 376.8 R .46
+-.15(ve)-.15 G(d.).15 E .46(The return v)144 496.8 R .46
(alue is true unless an in)-.25 F -.25(va)-.4 G .461
(lid option is supplied, an option other than).25 F F2<ad70>2.961 E F1
(,)A F2<ad72>2.961 E F1(,)A F2<ad44>2.961 E F1(,)A F2<ad45>2.961 E F1(,)
-A(or)144 388.8 Q F2<ad49>2.986 E F1 .486(is supplied without a)2.986 F
+A(or)144 508.8 Q F2<ad49>2.986 E F1 .486(is supplied without a)2.986 F
F0(name)2.986 E F1(ar)2.986 E .486(gument, an attempt is made to remo)
-.18 F .785 -.15(ve a c)-.15 H .485(ompletion speci\214ca-).15 F .163
-(tion for a)144 400.8 R F0(name)2.663 E F1 .164
+(tion for a)144 520.8 R F0(name)2.663 E F1 .164
(for which no speci\214cation e)2.663 F .164
(xists, or an error occurs adding a completion speci\214ca-)-.15 F
-(tion.)144 412.8 Q F2(compopt)108 429.6 Q F1([)2.5 E F2<ad6f>A F0
+(tion.)144 532.8 Q F2(compopt)108 549.6 Q F1([)2.5 E F2<ad6f>A F0
(option)2.5 E F1 2.5(][)C F2(\255DEI)-2.5 E F1 2.5(][)C F2(+o)-2.5 E F0
(option)2.5 E F1 2.5(][)C F0(name)-2.5 E F1(])A .447
-(Modify completion options for each)144 441.6 R F0(name)2.947 E F1 .447
+(Modify completion options for each)144 561.6 R F0(name)2.947 E F1 .447
(according to the)2.947 F F0(option)2.947 E F1 .447
(s, or for the currently-e)B -.15(xe)-.15 G(cuting).15 E .926
-(completion if no)144 453.6 R F0(name)3.426 E F1 3.426(sa)C .926
+(completion if no)144 573.6 R F0(name)3.426 E F1 3.426(sa)C .926
(re supplied.)-3.426 F .926(If no)5.926 F F0(option)3.426 E F1 3.427(sa)
C .927(re supplied, display the completion options)-3.427 F 1.314
-(for each)144 465.6 R F0(name)3.814 E F1 1.314
+(for each)144 585.6 R F0(name)3.814 E F1 1.314
(or the current completion.)3.814 F 1.314(The possible v)6.314 F 1.314
(alues of)-.25 F F0(option)3.814 E F1 1.313(are those v)3.814 F 1.313
-(alid for the)-.25 F F2(complete)144 477.6 Q F1 -.2(bu)2.5 G
-(iltin described abo).2 E -.15(ve)-.15 G(.).15 E(The)144 494.4 Q F2
+(alid for the)-.25 F F2(complete)144 597.6 Q F1 -.2(bu)2.5 G
+(iltin described abo).2 E -.15(ve)-.15 G(.).15 E(The)144 614.4 Q F2
<ad44>3.007 E F1 .507(option indicates that other supplied options shou\
ld apply to the \231def)3.007 F .508(ault\232 command com-)-.1 F 1.413
-(pletion; the)144 506.4 R F2<ad45>3.913 E F1 1.412(option indicates tha\
+(pletion; the)144 626.4 R F2<ad45>3.913 E F1 1.412(option indicates tha\
t other supplied options should apply to \231empty\232 command)3.913 F
-.378(completion; and the)144 518.4 R F2<ad49>2.878 E F1 .379(option ind\
+.378(completion; and the)144 638.4 R F2<ad49>2.878 E F1 .379(option ind\
icates that other supplied options should apply to completion on)2.878 F
-(the initial w)144 530.4 Q(ord on the line.)-.1 E
+(the initial w)144 650.4 Q(ord on the line.)-.1 E
(These are determined in the same w)5 E(ay as the)-.1 E F2(complete)2.5
E F1 -.2(bu)2.5 G(iltin.).2 E 1.216
-(If multiple options are supplied, the)144 547.2 R F2<ad44>3.715 E F1
+(If multiple options are supplied, the)144 667.2 R F2<ad44>3.715 E F1
1.215(option tak)3.715 F 1.215(es precedence o)-.1 F -.15(ve)-.15 G(r)
.15 E F2<ad45>3.715 E F1 3.715(,a)C 1.215(nd both tak)-3.715 F 3.715(ep)
--.1 G(rece-)-3.715 E(dence o)144 559.2 Q -.15(ve)-.15 G(r).15 E F2<ad49>
-2.5 E F1(.)A .431(The return v)144 576 R .431(alue is true unless an in)
+-.1 G(rece-)-3.715 E(dence o)144 679.2 Q -.15(ve)-.15 G(r).15 E F2<ad49>
+2.5 E F1(.)A .431(The return v)144 696 R .431(alue is true unless an in)
-.25 F -.25(va)-.4 G .431
(lid option is supplied, an attempt is made to modify the op-).25 F
-(tions for a)144 588 Q F0(name)2.5 E F1
+(tions for a)144 708 Q F0(name)2.5 E F1
(for which no completion speci\214cation e)2.5 E
-(xists, or an output error occurs.)-.15 E F2(continue)108 604.8 Q F1([)
-2.5 E F0(n)A F1(])A F2(continue)144 616.8 Q F1 .148(resumes the ne)2.648
-F .148(xt iteration of the enclosing)-.15 F F2 -.25(fo)2.648 G(r).25 E
-F1(,)A F2(while)2.648 E F1(,)A F2(until)2.648 E F1 2.648(,o)C(r)-2.648 E
-F2(select)2.647 E F1 2.647(loop. If)2.647 F F0(n)3.007 E F1 .147
-(is speci-)2.887 F(\214ed,)144 628.8 Q F2(bash)3.092 E F1 .592
+(xists, or an output error occurs.)-.15 E(GNU Bash 5.3)72 768 Q
+(2026 January 14)141.79 E(72)190.95 E 0 Cg EP
+%%Page: 73 73
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(continue)108 84 Q F1([)2.5 E
+F0(n)A F1(])A F2(continue)144 96 Q F1 .148(resumes the ne)2.648 F .148
+(xt iteration of the enclosing)-.15 F F2 -.25(fo)2.648 G(r).25 E F1(,)A
+F2(while)2.648 E F1(,)A F2(until)2.648 E F1 2.648(,o)C(r)-2.648 E F2
+(select)2.647 E F1 2.647(loop. If)2.647 F F0(n)3.007 E F1 .147
+(is speci-)2.887 F(\214ed,)144 108 Q F2(bash)3.092 E F1 .592
(resumes the)3.092 F F0(n)3.092 E F1 .592(th enclosing loop.)B F0(n)
-5.952 E F1 .592(must be)3.332 F/F5 10/Symbol SF<b3>3.092 E F1 3.093
+5.952 E F1 .592(must be)3.332 F/F3 10/Symbol SF<b3>3.092 E F1 3.093
(1. If)3.093 F F0(n)3.453 E F1 .593(is greater than the number of en-)
3.333 F .41(closing loops, the shell resumes the last enclosing loop \(\
-the \231top-le)144 640.8 R -.15(ve)-.25 G .409(l\232 loop\).).15 F .409
-(The return v)5.409 F .409(alue is)-.25 F 2.5(0u)144 652.8 S(nless)-2.5
-E F0(n)2.5 E F1(is not greater than or equal to 1.)2.5 E F2(declar)108
-669.6 Q(e)-.18 E F1([)2.5 E F2(\255aAfFgiIlnrtux)A F1 2.5(][)C F2<ad70>
+the \231top-le)144 120 R -.15(ve)-.25 G .409(l\232 loop\).).15 F .409
+(The return v)5.409 F .409(alue is)-.25 F 2.5(0u)144 132 S(nless)-2.5 E
+F0(n)2.5 E F1(is not greater than or equal to 1.)2.5 E F2(declar)108
+148.8 Q(e)-.18 E F1([)2.5 E F2(\255aAfFgiIlnrtux)A F1 2.5(][)C F2<ad70>
-2.5 E F1 2.5(][)C F0(name)-2.5 E F1([=)A F0(value)A F1 2.5(].)C 1.666
-(..)-.834 G(])-1.666 E F2(typeset)108 681.6 Q F1([)2.5 E F2
+(..)-.834 G(])-1.666 E F2(typeset)108 160.8 Q F1([)2.5 E F2
(\255aAfFgiIlnrtux)A F1 2.5(][)C F2<ad70>-2.5 E F1 2.5(][)C F0(name)-2.5
E F1([=)A F0(value)A F1 2.5(].)C 1.666(..)-.834 G(])-1.666 E 1.264
-(Declare v)144 693.6 R 1.264(ariables and/or gi)-.25 F 1.564 -.15(ve t)
+(Declare v)144 172.8 R 1.264(ariables and/or gi)-.25 F 1.564 -.15(ve t)
-.25 H 1.264(hem attrib).15 F 3.765(utes. If)-.2 F(no)3.765 E F0(name)
3.765 E F1 3.765(sa)C 1.265(re gi)-3.765 F -.15(ve)-.25 G 3.765(nt).15 G
-1.265(hen display the v)-3.765 F 1.265(alues of)-.25 F -.25(va)144 705.6
+1.265(hen display the v)-3.765 F 1.265(alues of)-.25 F -.25(va)144 184.8
S .572(riables or functions.).25 F(The)5.572 E F2<ad70>3.072 E F1 .571
(option will display the attrib)3.072 F .571(utes and v)-.2 F .571
(alues of each)-.25 F F0(name)3.431 E F1 5.571(.W).18 G(hen)-5.571 E F2
-<ad70>144 717.6 Q F1(is used with)2.5 E F0(name)2.5 E F1(ar)2.5 E
+<ad70>144 196.8 Q F1(is used with)2.5 E F0(name)2.5 E F1(ar)2.5 E
(guments, additional options, other than)-.18 E F2<ad66>2.5 E F1(and)2.5
-E F2<ad46>2.5 E F1 2.5(,a)C(re ignored.)-2.5 E(GNU Bash 5.3)72 768 Q
-(2025 April 7)149.285 E(71)198.445 E 0 Cg EP
-%%Page: 72 72
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E(When)144 84 Q/F2 10/Times-Bold@0 SF<ad70>2.761 E F1
-.261(is supplied without)2.761 F F0(name)2.761 E F1(ar)2.761 E(guments,)
--.18 E F2(declar)2.761 E(e)-.18 E F1 .261(will display the attrib)2.761
-F .262(utes and v)-.2 F .262(alues of all)-.25 F -.25(va)144 96 S .28
-(riables ha).25 F .28(ving the attrib)-.2 F .279
-(utes speci\214ed by the additional options.)-.2 F .279
-(If no other options are supplied)5.279 F(with)144 108 Q F2<ad70>2.515 E
-F1(,)A F2(declar)2.515 E(e)-.18 E F1 .015(will display the attrib)2.515
-F .015(utes and v)-.2 F .015(alues of all shell v)-.25 F 2.515
-(ariables. The)-.25 F F2<ad66>2.515 E F1 .015(option restricts)2.515 F
-(the display to shell functions.)144 120 Q(The)144 136.8 Q F2<ad46>3.489
-E F1 .989(option inhibits the display of function de\214nitions; only t\
-he function name and attrib)3.489 F(utes)-.2 E 1.31(are printed.)144
-148.8 R 1.31(If the)6.31 F F2(extdeb)3.81 E(ug)-.2 E F1 1.31
-(shell option is enabled using)3.81 F F2(shopt)3.81 E F1 3.81(,t)C 1.31
-(he source \214le name and line)-3.81 F(number where each)144 160.8 Q F0
-(name)2.5 E F1(is de\214ned are displayed as well.)2.5 E(The)5 E F2
-<ad46>2.5 E F1(option implies)2.5 E F2<ad66>2.5 E F1(.)A(The)144 177.6 Q
-F2<ad67>2.735 E F1 .235(option forces v)2.735 F .235
+E F2<ad46>2.5 E F1 2.5(,a)C(re ignored.)-2.5 E(When)144 213.6 Q F2<ad70>
+2.761 E F1 .261(is supplied without)2.761 F F0(name)2.761 E F1(ar)2.761
+E(guments,)-.18 E F2(declar)2.761 E(e)-.18 E F1 .261
+(will display the attrib)2.761 F .262(utes and v)-.2 F .262
+(alues of all)-.25 F -.25(va)144 225.6 S .28(riables ha).25 F .28
+(ving the attrib)-.2 F .279(utes speci\214ed by the additional options.)
+-.2 F .279(If no other options are supplied)5.279 F(with)144 237.6 Q F2
+<ad70>2.515 E F1(,)A F2(declar)2.515 E(e)-.18 E F1 .015
+(will display the attrib)2.515 F .015(utes and v)-.2 F .015
+(alues of all shell v)-.25 F 2.515(ariables. The)-.25 F F2<ad66>2.515 E
+F1 .015(option restricts)2.515 F(the display to shell functions.)144
+249.6 Q(The)144 266.4 Q F2<ad46>3.489 E F1 .989(option inhibits the dis\
+play of function de\214nitions; only the function name and attrib)3.489
+F(utes)-.2 E 1.31(are printed.)144 278.4 R 1.31(If the)6.31 F F2(extdeb)
+3.81 E(ug)-.2 E F1 1.31(shell option is enabled using)3.81 F F2(shopt)
+3.81 E F1 3.81(,t)C 1.31(he source \214le name and line)-3.81 F
+(number where each)144 290.4 Q F0(name)2.5 E F1
+(is de\214ned are displayed as well.)2.5 E(The)5 E F2<ad46>2.5 E F1
+(option implies)2.5 E F2<ad66>2.5 E F1(.)A(The)144 307.2 Q F2<ad67>2.735
+E F1 .235(option forces v)2.735 F .235
(ariables to be created or modi\214ed at the global scope, e)-.25 F -.15
(ve)-.25 G 2.734(nw).15 G(hen)-2.734 E F2(declar)2.734 E(e)-.18 E F1(is)
-2.734 E -.15(exe)144 189.6 S(cuted in a shell function.).15 E
+2.734 E -.15(exe)144 319.2 S(cuted in a shell function.).15 E
(It is ignored when)5 E F2(declar)2.5 E(e)-.18 E F1(is not e)2.5 E -.15
-(xe)-.15 G(cuted in a shell function.).15 E(The)144 206.4 Q F2<ad49>
-3.998 E F1 1.498(option causes local v)3.998 F 1.499
+(xe)-.15 G(cuted in a shell function.).15 E(The)144 336 Q F2<ad49>3.998
+E F1 1.498(option causes local v)3.998 F 1.499
(ariables to inherit the attrib)-.25 F 1.499(utes \(e)-.2 F 1.499
(xcept the)-.15 F F0(namer)3.999 E(ef)-.37 E F1(attrib)3.999 E 1.499
-(ute\) and)-.2 F -.25(va)144 218.4 S .658(lue of an).25 F 3.158(ye)-.15
-G .658(xisting v)-3.308 F .658(ariable with the same)-.25 F F0(name)
-3.158 E F1 .658(at a surrounding scope.)3.158 F .657(If there is no e)
-5.657 F(xisting)-.15 E -.25(va)144 230.4 S(riable, the local v).25 E
-(ariable is initially unset.)-.25 E .698(The follo)144 247.2 R .699
+(ute\) and)-.2 F -.25(va)144 348 S .658(lue of an).25 F 3.158(ye)-.15 G
+.658(xisting v)-3.308 F .658(ariable with the same)-.25 F F0(name)3.158
+E F1 .658(at a surrounding scope.)3.158 F .657(If there is no e)5.657 F
+(xisting)-.15 E -.25(va)144 360 S(riable, the local v).25 E
+(ariable is initially unset.)-.25 E .698(The follo)144 376.8 R .699
(wing options can be used to restrict output to v)-.25 F .699
(ariables with the speci\214ed attrib)-.25 F .699(ute or to)-.2 F(gi)144
-259.2 Q .3 -.15(ve v)-.25 H(ariables attrib)-.1 E(utes:)-.2 E F2<ad61>
-144 271.2 Q F1(Each)180 271.2 Q F0(name)2.5 E F1(is an inde)2.5 E -.15
+388.8 Q .3 -.15(ve v)-.25 H(ariables attrib)-.1 E(utes:)-.2 E F2<ad61>
+144 400.8 Q F1(Each)180 400.8 Q F0(name)2.5 E F1(is an inde)2.5 E -.15
(xe)-.15 G 2.5(da).15 G(rray v)-2.5 E(ariable \(see)-.25 E F2(Arrays)2.5
-E F1(abo)2.5 E -.15(ve)-.15 G(\).).15 E F2<ad41>144 283.2 Q F1(Each)180
-283.2 Q F0(name)2.5 E F1(is an associati)2.5 E .3 -.15(ve a)-.25 H
+E F1(abo)2.5 E -.15(ve)-.15 G(\).).15 E F2<ad41>144 412.8 Q F1(Each)180
+412.8 Q F0(name)2.5 E F1(is an associati)2.5 E .3 -.15(ve a)-.25 H
(rray v).15 E(ariable \(see)-.25 E F2(Arrays)2.5 E F1(abo)2.5 E -.15(ve)
--.15 G(\).).15 E F2<ad66>144 295.2 Q F1(Each)180 295.2 Q F0(name)2.5 E
-F1(refers to a shell function.)2.5 E F2<ad69>144 307.2 Q F1 .558(The v)
-180 307.2 R .558(ariable is treated as an inte)-.25 F .558
-(ger; arithmetic e)-.15 F -.25(va)-.25 G .558(luation \(see).25 F/F3 9
+-.15 G(\).).15 E F2<ad66>144 424.8 Q F1(Each)180 424.8 Q F0(name)2.5 E
+F1(refers to a shell function.)2.5 E F2<ad69>144 436.8 Q F1 .558(The v)
+180 436.8 R .558(ariable is treated as an inte)-.25 F .558
+(ger; arithmetic e)-.15 F -.25(va)-.25 G .558(luation \(see).25 F/F4 9
/Times-Bold@0 SF .557(ARITHMETIC EV)3.058 F(ALU)-1.215 E(A-)-.54 E(TION)
-180 319.2 Q F1(abo)2.25 E -.15(ve)-.15 G 2.5(\)i).15 G 2.5(sp)-2.5 G
+180 448.8 Q F1(abo)2.25 E -.15(ve)-.15 G 2.5(\)i).15 G 2.5(sp)-2.5 G
(erformed when the v)-2.5 E(ariable is assigned a v)-.25 E(alue.)-.25 E
-F2<ad6c>144 331.2 Q F1 .909(When the v)180 331.2 R .909
+F2<ad6c>144 460.8 Q F1 .909(When the v)180 460.8 R .909
(ariable is assigned a v)-.25 F .909(alue, all upper)-.25 F .909
(-case characters are con)-.2 F -.15(ve)-.4 G .91(rted to lo).15 F(wer)
--.25 E(-)-.2 E 2.5(case. The)180 343.2 R(upper)2.5 E(-case attrib)-.2 E
-(ute is disabled.)-.2 E F2<ad6e>144 355.2 Q F1(Gi)180 355.2 Q 1.62 -.15
+-.25 E(-)-.2 E 2.5(case. The)180 472.8 R(upper)2.5 E(-case attrib)-.2 E
+(ute is disabled.)-.2 E F2<ad6e>144 484.8 Q F1(Gi)180 484.8 Q 1.62 -.15
(ve e)-.25 H(ach).15 E F0(name)3.82 E F1(the)3.82 E F0(namer)3.819 E(ef)
-.37 E F1(attrib)3.819 E 1.319
(ute, making it a name reference to another v)-.2 F(ariable.)-.25 E .477
-(That other v)180 367.2 R .478(ariable is de\214ned by the v)-.25 F .478
+(That other v)180 496.8 R .478(ariable is de\214ned by the v)-.25 F .478
(alue of)-.25 F F0(name)2.978 E F1 5.478(.A)C .478
-(ll references, assignments, and at-)-5.478 F(trib)180 379.2 Q .782
+(ll references, assignments, and at-)-5.478 F(trib)180 508.8 Q .782
(ute modi\214cations to)-.2 F F0(name)3.282 E F1 3.282(,e)C .782
(xcept those using or changing the)-3.432 F F2<ad6e>3.281 E F1(attrib)
-3.281 E .781(ute itself, are)-.2 F .808(performed on the v)180 391.2 R
+3.281 E .781(ute itself, are)-.2 F .808(performed on the v)180 520.8 R
.808(ariable referenced by)-.25 F F0(name)3.308 E F1 1.908 -.55('s v)D
3.308(alue. The).3 F .809(nameref attrib)3.309 F .809(ute cannot be)-.2
-F(applied to array v)180 403.2 Q(ariables.)-.25 E F2<ad72>144 415.2 Q F1
-(Mak)180 415.2 Q(e)-.1 E F0(name)3.655 E F1 3.655(sr)C(eadonly)-3.655 E
+F(applied to array v)180 532.8 Q(ariables.)-.25 E F2<ad72>144 544.8 Q F1
+(Mak)180 544.8 Q(e)-.1 E F0(name)3.655 E F1 3.655(sr)C(eadonly)-3.655 E
6.154(.T)-.65 G 1.154(hese names cannot then be assigned v)-6.154 F
1.154(alues by subsequent as-)-.25 F(signment statements or unset.)180
-427.2 Q F2<ad74>144 439.2 Q F1(Gi)180 439.2 Q .729 -.15(ve e)-.25 H(ach)
+556.8 Q F2<ad74>144 568.8 Q F1(Gi)180 568.8 Q .729 -.15(ve e)-.25 H(ach)
.15 E F0(name)2.929 E F1(the)2.929 E F0(tr)2.929 E(ace)-.15 E F1(attrib)
2.929 E 2.929(ute. T)-.2 F .429(raced functions inherit the)-.35 F F2
(DEB)2.929 E(UG)-.1 E F1(and)2.93 E F2(RETURN)2.93 E F1
-(traps from the calling shell.)180 451.2 Q(The trace attrib)5 E
+(traps from the calling shell.)180 580.8 Q(The trace attrib)5 E
(ute has no special meaning for v)-.2 E(ariables.)-.25 E F2<ad75>144
-463.2 Q F1 .91(When the v)180 463.2 R .909(ariable is assigned a v)-.25
+592.8 Q F1 .91(When the v)180 592.8 R .909(ariable is assigned a v)-.25
F .909(alue, all lo)-.25 F(wer)-.25 E .909(-case characters are con)-.2
-F -.15(ve)-.4 G .909(rted to upper).15 F(-)-.2 E 2.5(case. The)180 475.2
+F -.15(ve)-.4 G .909(rted to upper).15 F(-)-.2 E 2.5(case. The)180 604.8
R(lo)2.5 E(wer)-.25 E(-case attrib)-.2 E(ute is disabled.)-.2 E F2<ad78>
-144 487.2 Q F1(Mark each)180 487.2 Q F0(name)2.5 E F1(for e)2.5 E
+144 616.8 Q F1(Mark each)180 616.8 Q F0(name)2.5 E F1(for e)2.5 E
(xport to subsequent commands via the en)-.15 E(vironment.)-.4 E .657
-(Using \231+\232 instead of \231\255\232 turns of)144 504 R 3.157(ft)
+(Using \231+\232 instead of \231\255\232 turns of)144 633.6 R 3.157(ft)
-.25 G .657(he speci\214ed attrib)-3.157 F .657(ute instead, with the e)
-.2 F .657(xceptions that)-.15 F F2(+a)3.157 E F1(and)3.157 E F2(+A)144
-516 Q F1(may not be used to destro)2.5 E 2.5(ya)-.1 G(rray v)-2.5 E
+645.6 Q F1(may not be used to destro)2.5 E 2.5(ya)-.1 G(rray v)-2.5 E
(ariables and)-.25 E F2(+r)2.5 E F1(will not remo)2.5 E .3 -.15(ve t)
-.15 H(he readonly attrib).15 E(ute.)-.2 E .415
-(When used in a function,)144 532.8 R F2(declar)2.915 E(e)-.18 E F1(and)
+(When used in a function,)144 662.4 R F2(declar)2.915 E(e)-.18 E F1(and)
2.915 E F2(typeset)2.915 E F1(mak)2.915 E 2.915(ee)-.1 G(ach)-2.915 E F0
(name)2.915 E F1 .415(local, as with the)2.915 F F2(local)2.915 E F1
-(command,)2.915 E .703(unless the)144 544.8 R F2<ad67>3.203 E F1 .703
+(command,)2.915 E .703(unless the)144 674.4 R F2<ad67>3.203 E F1 .703
(option is supplied.)3.203 F .703(If a v)5.703 F .703
(ariable name is follo)-.25 F .703(wed by =)-.25 F F0(value)A F1 3.204
(,t)C .704(he v)-3.204 F .704(alue of the v)-.25 F(ari-)-.25 E .879
-(able is set to)144 556.8 R F0(value)3.379 E F1 5.879(.W)C .879
+(able is set to)144 686.4 R F0(value)3.379 E F1 5.879(.W)C .879
(hen using)-5.879 F F2<ad61>3.379 E F1(or)3.379 E F2<ad41>3.379 E F1
.879(and the compound assignment syntax to create array)3.379 F -.25(va)
-144 568.8 S(riables, additional attrib).25 E(utes do not tak)-.2 E 2.5
+144 698.4 S(riables, additional attrib).25 E(utes do not tak)-.2 E 2.5
(ee)-.1 G -.25(ff)-2.5 G(ect until subsequent assignments.).25 E .432
-(The return v)144 585.6 R .433(alue is 0 unless an in)-.25 F -.25(va)-.4
+(The return v)144 715.2 R .433(alue is 0 unless an in)-.25 F -.25(va)-.4
G .433
(lid option is encountered, an attempt is made to de\214ne a func-).25 F
.417(tion using \231\255f foo=bar\232, an attempt is made to assign a v)
-144 597.6 R .416(alue to a readonly v)-.25 F .416
-(ariable, an attempt is)-.25 F .974(made to assign a v)144 609.6 R .974
+144 727.2 R .416(alue to a readonly v)-.25 F .416
+(ariable, an attempt is)-.25 F(GNU Bash 5.3)72 768 Q(2026 January 14)
+141.79 E(73)190.95 E 0 Cg EP
+%%Page: 74 74
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E .974(made to assign a v)144 84 R .974
(alue to an array v)-.25 F .974
-(ariable without using the compound assignment syntax \(see)-.25 F F2
-(Arrays)144 621.6 Q F1(abo)2.86 E -.15(ve)-.15 G .36(\), one of the).15
-F F0(names)2.86 E F1 .36(is not a v)2.86 F .36(alid shell v)-.25 F .36
-(ariable name, an attempt is made to turn of)-.25 F(f)-.25 E .056
-(readonly status for a readonly v)144 633.6 R .057
+(ariable without using the compound assignment syntax \(see)-.25 F/F2 10
+/Times-Bold@0 SF(Arrays)144 96 Q F1(abo)2.86 E -.15(ve)-.15 G .36
+(\), one of the).15 F F0(names)2.86 E F1 .36(is not a v)2.86 F .36
+(alid shell v)-.25 F .36(ariable name, an attempt is made to turn of)
+-.25 F(f)-.25 E .056(readonly status for a readonly v)144 108 R .057
(ariable, an attempt is made to turn of)-.25 F 2.557(fa)-.25 G .057
(rray status for an array v)-2.557 F(ari-)-.25 E
-(able, or an attempt is made to display a non-e)144 645.6 Q
+(able, or an attempt is made to display a non-e)144 120 Q
(xistent function with)-.15 E F2<ad66>2.5 E F1(.)A F2
-(dirs [\255clpv] [+)108 662.4 Q F0(n)A F2 2.5(][)C<ad>-2.5 E F0(n)A F2
-(])A F1 -.4(Wi)144 674.4 S .607
+(dirs [\255clpv] [+)108 136.8 Q F0(n)A F2 2.5(][)C<ad>-2.5 E F0(n)A F2
+(])A F1 -.4(Wi)144 148.8 S .607
(thout options, display the list of currently remembered directories.).4
F .606(The def)5.606 F .606(ault display is on a)-.1 F 1.238
-(single line with directory names separated by spaces.)144 686.4 R 1.238
-(Directories are added to the list with the)6.238 F F2(pushd)144 698.4 Q
+(single line with directory names separated by spaces.)144 160.8 R 1.238
+(Directories are added to the list with the)6.238 F F2(pushd)144 172.8 Q
F1 .928(command; the)3.428 F F2(popd)3.428 E F1 .928(command remo)3.428
F -.15(ve)-.15 G 3.428(se).15 G .928(ntries from the list.)-3.428 F .928
-(The current directory is al-)5.928 F -.1(wa)144 710.4 S
-(ys the \214rst directory in the stack.).1 E(GNU Bash 5.3)72 768 Q
-(2025 April 7)149.285 E(72)198.445 E 0 Cg EP
-%%Page: 73 73
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E(Options, if supplied, ha)144 84 Q .3 -.15(ve t)-.2
-H(he follo).15 E(wing meanings:)-.25 E/F2 10/Times-Bold@0 SF<ad63>144 96
-Q F1(Clears the directory stack by deleting all of the entries.)180 96 Q
-F2<ad6c>144 108 Q F1 .881
-(Produces a listing using full pathnames; the def)180 108 R .882
+(The current directory is al-)5.928 F -.1(wa)144 184.8 S
+(ys the \214rst directory in the stack.).1 E(Options, if supplied, ha)
+144 201.6 Q .3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F2
+<ad63>144 213.6 Q F1
+(Clears the directory stack by deleting all of the entries.)180 213.6 Q
+F2<ad6c>144 225.6 Q F1 .881
+(Produces a listing using full pathnames; the def)180 225.6 R .882
(ault listing format uses a tilde to denote)-.1 F(the home directory)180
-120 Q(.)-.65 E F2<ad70>144 132 Q F1
-(Print the directory stack with one entry per line.)180 132 Q F2<ad76>
-144 144 Q F1 .273(Print the directory stack with one entry per line, pr\
-e\214xing each entry with its inde)180 144 R 2.772(xi)-.15 G 2.772(nt)
--2.772 G(he)-2.772 E(stack.)180 156 Q F2(+)144 168 Q F0(n)A F1 1.564
-(Displays the)180 168 R F0(n)4.064 E F1 1.565
+237.6 Q(.)-.65 E F2<ad70>144 249.6 Q F1
+(Print the directory stack with one entry per line.)180 249.6 Q F2<ad76>
+144 261.6 Q F1 .273(Print the directory stack with one entry per line, \
+pre\214xing each entry with its inde)180 261.6 R 2.772(xi)-.15 G 2.772
+(nt)-2.772 G(he)-2.772 E(stack.)180 273.6 Q F2(+)144 285.6 Q F0(n)A F1
+1.564(Displays the)180 285.6 R F0(n)4.064 E F1 1.565
(th entry counting from the left of the list sho)B 1.565(wn by)-.25 F F2
(dirs)4.065 E F1 1.565(when in)4.065 F -.2(vo)-.4 G -.1(ke).2 G(d).1 E
-(without options, starting with zero.)180 180 Q F2<ad>144 192 Q F0(n)A
-F1 1.194(Displays the)180 192 R F0(n)3.694 E F1 1.194
+(without options, starting with zero.)180 297.6 Q F2<ad>144 309.6 Q F0
+(n)A F1 1.194(Displays the)180 309.6 R F0(n)3.694 E F1 1.194
(th entry counting from the right of the list sho)B 1.194(wn by)-.25 F
F2(dirs)3.694 E F1 1.194(when in)3.694 F -.2(vo)-.4 G -.1(ke).2 G(d).1 E
-(without options, starting with zero.)180 204 Q .257(The return v)144
-220.8 R .258(alue is 0 unless an in)-.25 F -.25(va)-.4 G .258
+(without options, starting with zero.)180 321.6 Q .257(The return v)144
+338.4 R .258(alue is 0 unless an in)-.25 F -.25(va)-.4 G .258
(lid option is supplied or).25 F F0(n)2.758 E F1(inde)2.758 E -.15(xe)
-.15 G 2.758(sb).15 G -.15(ey)-2.758 G .258(ond the end of the direc-)
-.15 F(tory stack.)144 232.8 Q F2(diso)108 249.6 Q(wn)-.1 E F1([)2.5 E F2
+.15 F(tory stack.)144 350.4 Q F2(diso)108 367.2 Q(wn)-.1 E F1([)2.5 E F2
(\255ar)A F1 2.5(][)C F2<ad68>-2.5 E F1 2.5(][)C F0(id)-2.5 E F1 1.666
-(...)2.5 G(])-1.666 E -.4(Wi)144 261.6 S .343(thout options, remo).4 F
+(...)2.5 G(])-1.666 E -.4(Wi)144 379.2 S .343(thout options, remo).4 F
.643 -.15(ve e)-.15 H(ach).15 E F0(id)2.853 E F1 .342
(from the table of acti)3.613 F .642 -.15(ve j)-.25 H 2.842(obs. Each)
.15 F F0(id)2.842 E F1 .342(may be a job speci\214cation)2.842 F F0
-(jobspec)144 273.6 Q F1(or a process ID)2.5 E F0(pid)2.5 E F1 2.5(;i)C
+(jobspec)144 391.2 Q F1(or a process ID)2.5 E F0(pid)2.5 E F1 2.5(;i)C
(f)-2.5 E F0(id)2.5 E F1(is a)2.5 E F0(pid)2.5 E F1(,)A F2(diso)2.5 E
(wn)-.1 E F1(uses the job containing)2.5 E F0(pid)2.5 E F1(as)2.5 E F0
-(jobspec)2.5 E F1(.)A .682(If the)144 290.4 R F2<ad68>3.183 E F1 .683
+(jobspec)2.5 E F1(.)A .682(If the)144 408 R F2<ad68>3.183 E F1 .683
(option is supplied,)3.183 F F2(diso)3.183 E(wn)-.1 E F1 .683
(does not remo)3.183 F .983 -.15(ve t)-.15 H .683
(he jobs corresponding to each).15 F F0(id)3.193 E F1 .683(from the)
-3.953 F .184(jobs table, b)144 302.4 R .184
+3.953 F .184(jobs table, b)144 420 R .184
(ut rather marks them so the shell does not send)-.2 F/F3 9/Times-Bold@0
SF(SIGHUP)2.684 E F1 .184(to the job if the shell recei)2.434 F -.15(ve)
--.25 G(s).15 E(a)144 314.4 Q F3(SIGHUP)2.5 E/F4 9/Times-Roman@0 SF(.)A
-F1 .57(If no)144 331.2 R F0(id)3.08 E F1 .57(is supplied, the)3.84 F F2
+-.25 G(s).15 E(a)144 432 Q F3(SIGHUP)2.5 E/F4 9/Times-Roman@0 SF(.)A F1
+.57(If no)144 448.8 R F0(id)3.08 E F1 .57(is supplied, the)3.84 F F2
<ad61>3.07 E F1 .57(option means to remo)3.07 F .871 -.15(ve o)-.15 H
3.071(rm).15 G .571(ark all jobs; the)-3.071 F F2<ad72>3.071 E F1 .571
-(option without an)3.071 F F0(id)3.081 E F1(ar)144 343.2 Q .659
+(option without an)3.071 F F0(id)3.081 E F1(ar)144 460.8 Q .659
(gument remo)-.18 F -.15(ve)-.15 G 3.159(so).15 G 3.159(rm)-3.159 G .659
(arks running jobs.)-3.159 F .658(If no)5.659 F F0(id)3.168 E F1 .658
(is supplied, and neither the)3.928 F F2<ad61>3.158 E F1 .658(nor the)
-3.158 F F2<ad72>3.158 E F1(op-)3.158 E(tion is supplied,)144 355.2 Q F2
+3.158 F F2<ad72>3.158 E F1(op-)3.158 E(tion is supplied,)144 472.8 Q F2
(diso)2.5 E(wn)-.1 E F1(remo)2.5 E -.15(ve)-.15 G 2.5(so).15 G 2.5(rm)
--2.5 G(arks the current job)-2.5 E(.)-.4 E(The return v)144 372 Q
+-2.5 G(arks the current job)-2.5 E(.)-.4 E(The return v)144 489.6 Q
(alue is 0 unless an)-.25 E F0(id)2.51 E F1(does not specify a v)3.27 E
-(alid job)-.25 E(.)-.4 E F2(echo)108 388.8 Q F1([)2.5 E F2(\255neE)A F1
+(alid job)-.25 E(.)-.4 E F2(echo)108 506.4 Q F1([)2.5 E F2(\255neE)A F1
2.5(][)C F0(ar)-2.5 E(g)-.37 E F1 1.666(...)2.5 G(])-1.666 E .424
-(Output the)144 400.8 R F0(ar)2.924 E(g)-.37 E F1 .424
+(Output the)144 518.4 R F0(ar)2.924 E(g)-.37 E F1 .424
(s, separated by spaces, follo)B .424(wed by a ne)-.25 F 2.924
(wline. The)-.25 F .424(return status is 0 unless a write)2.924 F
-(error occurs.)144 412.8 Q(If)5 E F2<ad6e>2.5 E F1
+(error occurs.)144 530.4 Q(If)5 E F2<ad6e>2.5 E F1
(is speci\214ed, the trailing ne)2.5 E(wline is not printed.)-.25 E .48
-(If the)144 429.6 R F2<ad65>2.98 E F1 .48(option is gi)2.98 F -.15(ve)
+(If the)144 547.2 R F2<ad65>2.98 E F1 .48(option is gi)2.98 F -.15(ve)
-.25 G(n,).15 E F2(echo)2.98 E F1 .48(interprets the follo)2.98 F .48
(wing backslash-escaped characters.)-.25 F(The)5.48 E F2<ad45>2.98 E F1
(op-)2.98 E .469
-(tion disables interpretation of these escape characters, e)144 441.6 R
+(tion disables interpretation of these escape characters, e)144 559.2 R
-.15(ve)-.25 G 2.969(no).15 G 2.969(ns)-2.969 G .469(ystems where the)
--2.969 F 2.97(ya)-.15 G .47(re interpreted)-2.97 F .41(by def)144 453.6
+-2.969 F 2.97(ya)-.15 G .47(re interpreted)-2.97 F .41(by def)144 571.2
R 2.91(ault. The)-.1 F F2(xpg_echo)2.91 E F1 .41
(shell option determines whether or not)2.91 F F2(echo)2.91 E F1 .41
(interprets an)2.91 F 2.91(yo)-.15 G .41(ptions and)-2.91 F -.15(ex)144
-465.6 S(pands these escape characters.).15 E F2(echo)5 E F1
+583.2 S(pands these escape characters.).15 E F2(echo)5 E F1
(does not interpret)2.5 E F2<adad>2.5 E F1(to mean the end of options.)
-2.5 E F2(echo)144 482.4 Q F1(interprets the follo)2.5 E
-(wing escape sequences:)-.25 E F2(\\a)144 494.4 Q F1(alert \(bell\))180
-494.4 Q F2(\\b)144 506.4 Q F1(backspace)180 506.4 Q F2(\\c)144 518.4 Q
-F1(suppress further output)180 518.4 Q F2(\\e)144 530.4 Q(\\E)144 542.4
-Q F1(an escape character)180 542.4 Q F2(\\f)144 554.4 Q F1(form feed)180
-554.4 Q F2(\\n)144 566.4 Q F1(ne)180 566.4 Q 2.5(wl)-.25 G(ine)-2.5 E F2
-(\\r)144 578.4 Q F1(carriage return)180 578.4 Q F2(\\t)144 590.4 Q F1
-(horizontal tab)180 590.4 Q F2(\\v)144 602.4 Q F1 -.15(ve)180 602.4 S
-(rtical tab).15 E F2(\\\\)144 614.4 Q F1(backslash)180 614.4 Q F2(\\0)
-144 626.4 Q F0(nnn)A F1(The eight-bit character whose v)180 626.4 Q
-(alue is the octal v)-.25 E(alue)-.25 E F0(nnn)2.5 E F1
-(\(zero to three octal digits\).)2.5 E F2(\\x)144 638.4 Q F0(HH)A F1
-(The eight-bit character whose v)180 638.4 Q(alue is the he)-.25 E
-(xadecimal v)-.15 E(alue)-.25 E F0(HH)2.5 E F1(\(one or tw)2.5 E 2.5(oh)
--.1 G .3 -.15(ex d)-2.5 H(igits\).).15 E F2(\\u)144 650.4 Q F0(HHHH)A F1
-1.203(The Unicode \(ISO/IEC 10646\) character whose v)180 662.4 R 1.204
-(alue is the he)-.25 F 1.204(xadecimal v)-.15 F(alue)-.25 E F0(HHHH)
-3.704 E F1(\(one to four he)180 674.4 Q 2.5(xd)-.15 G(igits\).)-2.5 E F2
-(\\U)144 686.4 Q F0(HHHHHHHH)A F1 .245
-(The Unicode \(ISO/IEC 10646\) character whose v)180 698.4 R .244
-(alue is the he)-.25 F .244(xadecimal v)-.15 F(alue)-.25 E F0(HHHHH-)
-2.744 E(HHH)180 710.4 Q F1(\(one to eight he)2.5 E 2.5(xd)-.15 G
-(igits\).)-2.5 E F2(echo)144 727.2 Q F1(writes an)2.5 E 2.5(yu)-.15 G
-(nrecognized backslash-escaped characters unchanged.)-2.5 E
-(GNU Bash 5.3)72 768 Q(2025 April 7)149.285 E(73)198.445 E 0 Cg EP
-%%Page: 74 74
+2.5 E F2(echo)144 600 Q F1(interprets the follo)2.5 E
+(wing escape sequences:)-.25 E F2(\\a)144 612 Q F1(alert \(bell\))180
+612 Q F2(\\b)144 624 Q F1(backspace)180 624 Q F2(\\c)144 636 Q F1
+(suppress further output)180 636 Q F2(\\e)144 648 Q(\\E)144 660 Q F1
+(an escape character)180 660 Q F2(\\f)144 672 Q F1(form feed)180 672 Q
+F2(\\n)144 684 Q F1(ne)180 684 Q 2.5(wl)-.25 G(ine)-2.5 E F2(\\r)144 696
+Q F1(carriage return)180 696 Q(GNU Bash 5.3)72 768 Q(2026 January 14)
+141.79 E(74)190.95 E 0 Cg EP
+%%Page: 75 75
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(enable)108 84 Q F1([)2.5 E F2
-<ad61>A F1 2.5(][)C F2(\255dnps)-2.5 E F1 2.5(][)C F2<ad66>-2.5 E F0
-(\214lename)2.5 E F1 2.5(][)C F0(name)-2.5 E F1 1.666(...)2.5 G(])-1.666
-E 1.199(Enable and disable b)144 96 R 1.199(uiltin shell commands.)-.2 F
-1.199(Disabling a b)6.199 F 1.199(uiltin allo)-.2 F 1.199(ws an e)-.25 F
--.15(xe)-.15 G 1.2(cutable \214le which).15 F 1.737
-(has the same name as a shell b)144 108 R 1.737(uiltin to be e)-.2 F
--.15(xe)-.15 G 1.737(cuted without specifying a full pathname, e).15 F
--.15(ve)-.25 G(n).15 E(though the shell normally searches for b)144 120
-Q(uiltins before \214les.)-.2 E(If)144 136.8 Q F2<ad6e>3.357 E F1 .857
+.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(\\t)144 84 Q F1
+(horizontal tab)180 84 Q F2(\\v)144 96 Q F1 -.15(ve)180 96 S(rtical tab)
+.15 E F2(\\\\)144 108 Q F1(backslash)180 108 Q F2(\\0)144 120 Q F0(nnn)A
+F1(The eight-bit character whose v)180 120 Q(alue is the octal v)-.25 E
+(alue)-.25 E F0(nnn)2.5 E F1(\(zero to three octal digits\).)2.5 E F2
+(\\x)144 132 Q F0(HH)A F1(The eight-bit character whose v)180 132 Q
+(alue is the he)-.25 E(xadecimal v)-.15 E(alue)-.25 E F0(HH)2.5 E F1
+(\(one or tw)2.5 E 2.5(oh)-.1 G .3 -.15(ex d)-2.5 H(igits\).).15 E F2
+(\\u)144 144 Q F0(HHHH)A F1 1.203
+(The Unicode \(ISO/IEC 10646\) character whose v)180 156 R 1.204
+(alue is the he)-.25 F 1.204(xadecimal v)-.15 F(alue)-.25 E F0(HHHH)
+3.704 E F1(\(one to four he)180 168 Q 2.5(xd)-.15 G(igits\).)-2.5 E F2
+(\\U)144 180 Q F0(HHHHHHHH)A F1 .245
+(The Unicode \(ISO/IEC 10646\) character whose v)180 192 R .244
+(alue is the he)-.25 F .244(xadecimal v)-.15 F(alue)-.25 E F0(HHHHH-)
+2.744 E(HHH)180 204 Q F1(\(one to eight he)2.5 E 2.5(xd)-.15 G(igits\).)
+-2.5 E F2(echo)144 220.8 Q F1(writes an)2.5 E 2.5(yu)-.15 G
+(nrecognized backslash-escaped characters unchanged.)-2.5 E F2(enable)
+108 237.6 Q F1([)2.5 E F2<ad61>A F1 2.5(][)C F2(\255dnps)-2.5 E F1 2.5
+(][)C F2<ad66>-2.5 E F0(\214lename)2.5 E F1 2.5(][)C F0(name)-2.5 E F1
+1.666(...)2.5 G(])-1.666 E 1.199(Enable and disable b)144 249.6 R 1.199
+(uiltin shell commands.)-.2 F 1.199(Disabling a b)6.199 F 1.199
+(uiltin allo)-.2 F 1.199(ws an e)-.25 F -.15(xe)-.15 G 1.2
+(cutable \214le which).15 F 1.737(has the same name as a shell b)144
+261.6 R 1.737(uiltin to be e)-.2 F -.15(xe)-.15 G 1.737
+(cuted without specifying a full pathname, e).15 F -.15(ve)-.25 G(n).15
+E(though the shell normally searches for b)144 273.6 Q
+(uiltins before \214les.)-.2 E(If)144 290.4 Q F2<ad6e>3.357 E F1 .857
(is supplied, each)3.357 F F0(name)3.357 E F1 .857
(is disabled; otherwise,)3.357 F F0(name)3.358 E F1 3.358(sa)C .858
(re enabled.)-3.358 F -.15(Fo)5.858 G 3.358(re).15 G .858
-(xample, to use the)-3.508 F F2(test)144 148.8 Q F1(binary found using)
+(xample, to use the)-3.508 F F2(test)144 302.4 Q F1(binary found using)
2.5 E/F3 9/Times-Bold@0 SF -.666(PA)2.5 G(TH)-.189 E F1
(instead of the shell b)2.25 E(uiltin v)-.2 E
-(ersion, run \231enable \255n test\232.)-.15 E 1.165(If no)144 165.6 R
+(ersion, run \231enable \255n test\232.)-.15 E 1.165(If no)144 319.2 R
F0(name)3.665 E F1(ar)3.665 E 1.165(guments are supplied, or if the)-.18
F F2<ad70>3.665 E F1 1.165(option is supplied, print a list of shell b)
-3.665 F(uiltins.)-.2 E -.4(Wi)144 177.6 S 1.005(th no other option ar).4
+3.665 F(uiltins.)-.2 E -.4(Wi)144 331.2 S 1.005(th no other option ar).4
F 1.005(guments, the list consists of all enabled shell b)-.18 F 3.505
(uiltins. If)-.2 F F2<ad6e>3.505 E F1 1.005(is supplied,)3.505 F .46
-(print only disabled b)144 189.6 R 2.96(uiltins. If)-.2 F F2<ad61>2.96 E
+(print only disabled b)144 343.2 R 2.96(uiltins. If)-.2 F F2<ad61>2.96 E
F1 .46(is supplied, the list printed includes all b)2.96 F .46
(uiltins, with an indica-)-.2 F .951
-(tion of whether or not each is enabled.)144 201.6 R(The)5.951 E F2
+(tion of whether or not each is enabled.)144 355.2 R(The)5.951 E F2
<ad73>3.451 E F1 .951(option means to restrict the output to the)3.451 F
-/F4 9/Times-Roman@0 SF(POSIX)3.452 E F0(special)144 213.6 Q F1 -.2(bu)
-2.5 G(iltins.).2 E(The)144 230.4 Q F2<ad66>2.785 E F1 .285
+/F4 9/Times-Roman@0 SF(POSIX)3.452 E F0(special)144 367.2 Q F1 -.2(bu)
+2.5 G(iltins.).2 E(The)144 384 Q F2<ad66>2.785 E F1 .285
(option means to load the ne)2.785 F 2.785(wb)-.25 G .285
(uiltin command)-2.985 F F0(name)3.145 E F1 .285(from shared object)
2.965 F F0(\214lename)4.695 E F1 2.785(,o).18 G 2.785(ns)-2.785 G(ys-)
--2.785 E .01(tems that support dynamic loading.)144 242.4 R(If)5.01 E F0
+-2.785 E .01(tems that support dynamic loading.)144 396 R(If)5.01 E F0
(\214lename)2.51 E F1 .01(does not contain a slash,)2.51 F F2(Bash)2.51
-E F1 .01(will use the v)2.51 F .01(alue of)-.25 F(the)144 254.4 Q F2 -.3
+E F1 .01(will use the v)2.51 F .01(alue of)-.25 F(the)144 408 Q F2 -.3
(BA)4.457 G(SH_LO).3 E(AD)-.4 E(ABLES_P)-.35 E -.95(AT)-.74 G(H).95 E F1
-.25(va)4.457 G 1.956
(riable as a colon-separated list of directories in which to).25 F .305
-(search for)144 266.4 R F0(\214lename)2.805 E F1 5.305(.T)C .305(he def)
+(search for)144 420 R F0(\214lename)2.805 E F1 5.305(.T)C .305(he def)
-5.305 F .305(ault for)-.1 F F2 -.3(BA)2.805 G(SH_LO).3 E(AD)-.4 E
(ABLES_P)-.35 E -.95(AT)-.74 G(H).95 E F1 .305
(is system-dependent, and may)2.805 F .054
-(include \231.\232 to force a search of the current directory)144 278.4
-R 5.054(.T)-.65 G(he)-5.054 E F2<ad64>2.554 E F1 .054
+(include \231.\232 to force a search of the current directory)144 432 R
+5.054(.T)-.65 G(he)-5.054 E F2<ad64>2.554 E F1 .054
(option will delete a b)2.554 F .054(uiltin pre)-.2 F(viously)-.25 E
-(loaded with)144 290.4 Q F2<ad66>2.5 E F1 5(.I)C(f)-5 E F0<ad73>2.5 E F1
-(is used with)2.5 E F0<ad66>2.5 E F1 2.5(,t)C(he ne)-2.5 E 2.5(wb)-.25 G
+(loaded with)144 444 Q F2<ad66>2.5 E F1 5(.I)C(f)-5 E F2<ad73>2.5 E F1
+(is used with)2.5 E F2<ad66>2.5 E F1 2.5(,t)C(he ne)-2.5 E 2.5(wb)-.25 G
(uiltin becomes a)-2.7 E F4(POSIX)2.5 E F1(special b)2.25 E(uiltin.)-.2
-E .269(If no options are supplied and a)144 307.2 R F0(name)2.769 E F1
+E .269(If no options are supplied and a)144 460.8 R F0(name)2.769 E F1
.269(is not a shell b)2.769 F(uiltin,)-.2 E F2(enable)2.769 E F1 .269
(will attempt to load)2.769 F F0(name)2.769 E F1(from)2.769 E 2.5(as)144
-319.2 S(hared object named)-2.5 E F0(name)2.5 E F1 2.5(,a)C 2.5(si)-2.5
+472.8 S(hared object named)-2.5 E F0(name)2.5 E F1 2.5(,a)C 2.5(si)-2.5
G 2.5(ft)-2.5 G(he command were \231enable \255f)-2.5 E F0(name name)2.5
-E F1<9a2e>A .478(The return v)144 336 R .477(alue is 0 unless a)-.25 F
+E F1<9a2e>A .478(The return v)144 489.6 R .477(alue is 0 unless a)-.25 F
F0(name)3.337 E F1 .477(is not a shell b)3.157 F .477
(uiltin or there is an error loading a ne)-.2 F 2.977(wb)-.25 G(uiltin)
--3.177 E(from a shared object.)144 348 Q F2 -2.3 -.15(ev a)108 364.8 T
+-3.177 E(from a shared object.)144 501.6 Q F2 -2.3 -.15(ev a)108 518.4 T
(l).15 E F1([)2.5 E F0(ar)A(g)-.37 E F1 1.666(...)2.5 G(])-1.666 E 1.347
-(Concatenate the)144 376.8 R F0(ar)3.847 E(g)-.37 E F1 3.847(st)C 1.348
+(Concatenate the)144 530.4 R F0(ar)3.847 E(g)-.37 E F1 3.847(st)C 1.348
(ogether into a single command, separating them with spaces.)-3.847 F F2
-(Bash)6.348 E F1(then)3.848 E .177(reads and e)144 388.8 R -.15(xe)-.15
+(Bash)6.348 E F1(then)3.848 E .177(reads and e)144 542.4 R -.15(xe)-.15
G .176(cute this command, and returns its e).15 F .176
(xit status as the return status of)-.15 F F2 -2.3 -.15(ev a)2.676 H(l)
.15 E F1 5.176(.I)C 2.676(ft)-5.176 G .176(here are)-2.676 F(no)144
-400.8 Q F0(ar)2.83 E(gs)-.37 E F1 2.5(,o).27 G 2.5(ro)-2.5 G
+554.4 Q F0(ar)2.83 E(gs)-.37 E F1 2.5(,o).27 G 2.5(ro)-2.5 G
(nly null ar)-2.5 E(guments,)-.18 E F2 -2.3 -.15(ev a)2.5 H(l).15 E F1
-(returns 0.)2.5 E F2(exec)108 417.6 Q F1([)2.5 E F2(\255cl)A F1 2.5(][)C
+(returns 0.)2.5 E F2(exec)108 571.2 Q F1([)2.5 E F2(\255cl)A F1 2.5(][)C
F2<ad61>-2.5 E F0(name)2.5 E F1 2.5(][)C F0(command)-2.5 E F1([)2.5 E F0
-(ar)A(guments)-.37 E F1(]])A(If)144 429.6 Q F0(command)2.983 E F1 .283
+(ar)A(guments)-.37 E F1(]])A(If)144 583.2 Q F0(command)2.983 E F1 .283
(is speci\214ed, it replaces the shell without creating a ne)3.553 F
2.784(wp)-.25 G(rocess.)-2.784 E F0(command)5.284 E F1 .284(cannot be)
-2.784 F 2.878(as)144 441.6 S .378(hell b)-2.878 F .378
+2.784 F 2.878(as)144 595.2 S .378(hell b)-2.878 F .378
(uiltin or function.)-.2 F(The)5.378 E F0(ar)3.208 E(guments)-.37 E F1
.378(become the ar)3.148 F .377(guments to)-.18 F F0(command)2.877 E F1
5.377(.I)C 2.877(ft)-5.377 G(he)-2.877 E F2<ad6c>2.877 E F1 .377
(option is)2.877 F .078(supplied, the shell places a dash at the be)144
-453.6 R .078(ginning of the zeroth ar)-.15 F .078(gument passed to)-.18
+607.2 R .078(ginning of the zeroth ar)-.15 F .078(gument passed to)-.18
F F0(command)2.779 E F1 5.079(.T).77 G(his)-5.079 E .139(is what)144
-465.6 R F0(lo)2.729 E(gin)-.1 E F1 .139(\(1\) does.).24 F(The)5.139 E F2
+619.2 R F0(lo)2.729 E(gin)-.1 E F1 .139(\(1\) does.).24 F(The)5.139 E F2
<ad63>2.639 E F1 .139(option causes)2.639 F F0(command)2.839 E F1 .139
(to be e)3.409 F -.15(xe)-.15 G .138(cuted with an empty en).15 F
-(vironment.)-.4 E(If)144 477.6 Q F2<ad61>2.5 E F1
+(vironment.)-.4 E(If)144 631.2 Q F2<ad61>2.5 E F1
(is supplied, the shell passes)2.5 E F0(name)2.86 E F1(as the zeroth ar)
2.68 E(gument to the e)-.18 E -.15(xe)-.15 G(cuted command.).15 E(If)144
-494.4 Q F0(command)3.245 E F1 .545(cannot be e)3.815 F -.15(xe)-.15 G
-.546(cuted for some reason, a non-interacti).15 F .846 -.15(ve s)-.25 H
-.546(hell e).15 F .546(xits, unless the)-.15 F F2(execfail)3.046 E F1
-1.22(shell option is enabled.)144 506.4 R 1.22
+648 Q F0(command)3.245 E F1 .545(cannot be e)3.815 F -.15(xe)-.15 G .546
+(cuted for some reason, a non-interacti).15 F .846 -.15(ve s)-.25 H .546
+(hell e).15 F .546(xits, unless the)-.15 F F2(execfail)3.046 E F1 1.22
+(shell option is enabled.)144 660 R 1.22
(In that case, it returns a non-zero status.)6.22 F 1.22(An interacti)
6.22 F 1.52 -.15(ve s)-.25 H 1.22(hell returns a).15 F
-(non-zero status if the \214le cannot be e)144 518.4 Q -.15(xe)-.15 G
-2.5(cuted. A).15 F(subshell e)2.5 E(xits unconditionally if)-.15 E F2
-(exec)2.5 E F1 -.1(fa)2.5 G(ils.).1 E(If)144 535.2 Q F0(command)3.224 E
-F1 .524(is not speci\214ed, an)3.794 F 3.024(yr)-.15 G .524
+(non-zero status if the \214le cannot be e)144 672 Q -.15(xe)-.15 G 2.5
+(cuted. A).15 F(subshell e)2.5 E(xits unconditionally if)-.15 E F2(exec)
+2.5 E F1 -.1(fa)2.5 G(ils.).1 E(If)144 688.8 Q F0(command)3.224 E F1
+.524(is not speci\214ed, an)3.794 F 3.024(yr)-.15 G .524
(edirections tak)-3.024 F 3.024(ee)-.1 G -.25(ff)-3.024 G .525
-(ect in the current shell, and the return status).25 F(is 0.)144 547.2 Q
+(ect in the current shell, and the return status).25 F(is 0.)144 700.8 Q
(If there is a redirection error)5 E 2.5(,t)-.4 G
-(he return status is 1.)-2.5 E F2(exit)108 564 Q F1([)2.5 E F0(n)A F1(])
-A .096(Cause the shell to e)144 564 R .096(xit with a status of)-.15 F
-F0(n)2.596 E F1 5.096(.I)C(f)-5.096 E F0(n)2.955 E F1 .095
-(is omitted, the e)2.835 F .095(xit status is that of the last command)
--.15 F -.15(exe)144 576 S 2.5(cuted. An).15 F 2.5(yt)-.15 G(rap on)-2.5
-E F3(EXIT)2.5 E F1(is e)2.25 E -.15(xe)-.15 G
-(cuted before the shell terminates.).15 E F2(export)108 592.8 Q F1([)2.5
-E F2(\255fn)A F1 2.5(][).833 G F0(name)-2.5 E F1([=)A F0(value)A F1
-(]] .)A 1.666(..)1.666 G F2(export \255p [\255f)108 604.8 Q(]).833 E F1
-.256(The supplied)144 616.8 R F0(names)3.117 E F1 .257(are mark)3.027 F
-.257(ed for automatic e)-.1 F .257(xport to the en)-.15 F .257
-(vironment of subsequently e)-.4 F -.15(xe)-.15 G(cuted).15 E 2.5
-(commands. If)144 628.8 R(the)2.5 E F2<ad66>2.5 E F1(option is gi)2.5 E
--.15(ve)-.25 G(n, the).15 E F0(names)2.86 E F1(refer to functions.)2.77
-E(The)144 645.6 Q F2<ad6e>2.681 E F1 .181(option une)2.681 F .181
-(xports, or remo)-.15 F -.15(ve)-.15 G 2.681(st).15 G .181(he e)-2.681 F
-.181(xport attrib)-.15 F .181(ute, from each)-.2 F F0(name)2.68 E F1
-5.18(.I)C 2.68(fn)-5.18 G(o)-2.68 E F0(names)3.04 E F1 .18(are gi)2.95 F
--.15(ve)-.25 G(n,).15 E .096(or if only the)144 657.6 R F2<ad70>2.597 E
-F1 .097(option is supplied,)2.597 F F2(export)2.597 E F1 .097
+(he return status is 1.)-2.5 E(GNU Bash 5.3)72 768 Q(2026 January 14)
+141.79 E(75)190.95 E 0 Cg EP
+%%Page: 76 76
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(exit)108 84 Q F1([)2.5 E F0
+(n)A F1(])A .096(Cause the shell to e)144 84 R .096
+(xit with a status of)-.15 F F0(n)2.596 E F1 5.096(.I)C(f)-5.096 E F0(n)
+2.955 E F1 .095(is omitted, the e)2.835 F .095
+(xit status is that of the last command)-.15 F -.15(exe)144 96 S 2.5
+(cuted. An).15 F 2.5(yt)-.15 G(rap on)-2.5 E/F3 9/Times-Bold@0 SF(EXIT)
+2.5 E F1(is e)2.25 E -.15(xe)-.15 G(cuted before the shell terminates.)
+.15 E F2(export)108 112.8 Q F1([)2.5 E F2(\255fn)A F1 2.5(][).833 G F0
+(name)-2.5 E F1([=)A F0(value)A F1(]] .)A 1.666(..)1.666 G F2
+(export \255p [\255f)108 124.8 Q(]).833 E F1 .256(The supplied)144 136.8
+R F0(names)3.117 E F1 .257(are mark)3.027 F .257(ed for automatic e)-.1
+F .257(xport to the en)-.15 F .257(vironment of subsequently e)-.4 F
+-.15(xe)-.15 G(cuted).15 E 2.5(commands. If)144 148.8 R(the)2.5 E F2
+<ad66>2.5 E F1(option is gi)2.5 E -.15(ve)-.25 G(n, the).15 E F0(names)
+2.86 E F1(refer to functions.)2.77 E(The)144 165.6 Q F2<ad6e>2.681 E F1
+.181(option une)2.681 F .181(xports, or remo)-.15 F -.15(ve)-.15 G 2.681
+(st).15 G .181(he e)-2.681 F .181(xport attrib)-.15 F .181
+(ute, from each)-.2 F F0(name)2.68 E F1 5.18(.I)C 2.68(fn)-5.18 G(o)
+-2.68 E F0(names)3.04 E F1 .18(are gi)2.95 F -.15(ve)-.25 G(n,).15 E
+.096(or if only the)144 177.6 R F2<ad70>2.597 E F1 .097
+(option is supplied,)2.597 F F2(export)2.597 E F1 .097
(displays a list of names of all e)2.597 F .097(xported v)-.15 F .097
-(ariables on the)-.25 F .976(standard output.)144 669.6 R(Using)5.976 E
+(ariables on the)-.25 F .976(standard output.)144 189.6 R(Using)5.976 E
F2<ad70>3.476 E F1(and)3.476 E F2<ad66>3.476 E F1 .975
(together displays e)3.475 F .975(xported functions.)-.15 F(The)5.975 E
F2<ad70>3.475 E F1 .975(option displays)3.475 F
-(output in a form that may be reused as input.)144 681.6 Q F2(export)144
-698.4 Q F1(allo)2.94 E .44(ws the v)-.25 F .44(alue of a v)-.25 F .44
+(output in a form that may be reused as input.)144 201.6 Q F2(export)144
+218.4 Q F1(allo)2.94 E .44(ws the v)-.25 F .44(alue of a v)-.25 F .44
(ariable to be set when it is e)-.25 F .44(xported or une)-.15 F .44
-(xported by follo)-.15 F .44(wing the)-.25 F -.25(va)144 710.4 S .152
+(xported by follo)-.15 F .44(wing the)-.25 F -.25(va)144 230.4 S .152
(riable name with =).25 F F0(value)A F1 5.152(.T)C .152(his sets the v)
-5.152 F .152(alue of the v)-.25 F .152(ariable to)-.25 F F0(value)2.652
-E F1 .151(while modifying the e)2.652 F(xport)-.15 E(attrib)144 722.4 Q
-(ute.)-.2 E F2(export)6.36 E F1 1.36(returns an e)3.86 F 1.361
-(xit status of 0 unless an in)-.15 F -.25(va)-.4 G 1.361
-(lid option is encountered, one of the).25 F(GNU Bash 5.3)72 768 Q
-(2025 April 7)149.285 E(74)198.445 E 0 Cg EP
-%%Page: 75 75
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E F0(names)144 84 Q F1(is not a v)2.5 E(alid shell v)
--.25 E(ariable name, or)-.25 E/F2 10/Times-Bold@0 SF<ad66>2.5 E F1
-(is supplied with a)2.5 E F0(name)2.86 E F1(that is not a function.)2.68
-E F2(false)108 100.8 Q F1(Does nothing; returns a non-zero status.)144
-100.8 Q F2(fc)108 117.6 Q F1([)2.5 E F2<ad65>A F0(ename)2.5 E F1 2.5(][)
-C F2(\255lnr)-2.5 E F1 2.5(][)C F0<8c72>-2.5 E(st)-.1 E F1 2.5(][)C F0
-(last)-2.5 E F1(])A F2(fc \255s)108 129.6 Q F1([)2.5 E F0(pat)A F1(=)A
-F0 -.37(re)C(p).37 E F1 2.5(][)C F0(cmd)-2.5 E F1(])A .432
-(The \214rst form selects a range of commands from)144 141.6 R F0<8c72>
+E F1 .151(while modifying the e)2.652 F(xport)-.15 E(attrib)144 242.4 Q
+(ute.)-.2 E F2(export)6.36 E F1 1.36(returns an e)3.86 F 1.361
+(xit status of 0 unless an in)-.15 F -.25(va)-.4 G 1.361
+(lid option is encountered, one of the).25 F F0(names)144 254.4 Q F1
+(is not a v)2.5 E(alid shell v)-.25 E(ariable name, or)-.25 E F2<ad66>
+2.5 E F1(is supplied with a)2.5 E F0(name)2.86 E F1
+(that is not a function.)2.68 E F2(false)108 271.2 Q F1
+(Does nothing; returns a non-zero status.)144 271.2 Q F2(fc)108 288 Q F1
+([)2.5 E F2<ad65>A F0(ename)2.5 E F1 2.5(][)C F2<ad44>-2.5 E F1 2.5(][)C
+F2(\255lnr)-2.5 E F1 2.5(][)C F0<8c72>-2.5 E(st)-.1 E F1 2.5(][)C F0
+(last)-2.5 E F1(])A F2(fc \255s)108 300 Q F1([)2.5 E F0(pat)A F1(=)A F0
+-.37(re)C(p).37 E F1 2.5(][)C F0(cmd)-2.5 E F1(])A .432
+(The \214rst form selects a range of commands from)144 312 R F0<8c72>
4.842 E(st)-.1 E F1(to)3.612 E F0(last)3.022 E F1 .431
(from the history list and displays or)3.612 F .141(edits and re-e)144
-153.6 R -.15(xe)-.15 G .141(cutes them.).15 F F0 -.45(Fi)5.141 G -.1(rs)
+324 R -.15(xe)-.15 G .141(cutes them.).15 F F0 -.45(Fi)5.141 G -.1(rs)
.45 G(t).1 E F1(and)3.321 E F0(last)2.731 E F1 .141
(may be speci\214ed as a string \(to locate the last command)3.321 F(be)
-144 165.6 Q .311(ginning with that string\) or as a number \(an inde)
--.15 F 2.811(xi)-.15 G .31(nto the history list, where a ne)-2.811 F
--.05(ga)-.15 G(ti).05 E .61 -.15(ve n)-.25 H(umber).15 E
-(is used as an of)144 177.6 Q(fset from the current command number\).)
--.25 E .746(When listing, a)144 194.4 R F0<8c72>3.246 E(st)-.1 E F1(or)
-3.246 E F0(last)3.246 E F1 .746(of 0 is equi)3.246 F -.25(va)-.25 G .746
+144 336 Q .311(ginning with that string\) or as a number \(an inde)-.15
+F 2.811(xi)-.15 G .31(nto the history list, where a ne)-2.811 F -.05(ga)
+-.15 G(ti).05 E .61 -.15(ve n)-.25 H(umber).15 E(is used as an of)144
+348 Q(fset from the current command number\).)-.25 E .746
+(When listing, a)144 364.8 R F0<8c72>3.246 E(st)-.1 E F1(or)3.246 E F0
+(last)3.246 E F1 .746(of 0 is equi)3.246 F -.25(va)-.25 G .746
(lent to \2551 and \2550 is equi).25 F -.25(va)-.25 G .747
-(lent to the current command).25 F .779(\(usually the)144 206.4 R F2(fc)
+(lent to the current command).25 F .779(\(usually the)144 376.8 R F2(fc)
3.279 E F1 .779(command\); otherwise 0 is equi)3.279 F -.25(va)-.25 G
.779(lent to \2551 and \2550 is in).25 F -.25(va)-.4 G 3.279(lid. If).25
F F0(last)3.369 E F1 .778(is not speci-)3.959 F .513(\214ed, it is set \
to the current command for listing \(so that \231fc \255l \25510\232 pr\
-ints the last 10 commands\))144 218.4 R .767(and to)144 230.4 R F0<8c72>
+ints the last 10 commands\))144 388.8 R .767(and to)144 400.8 R F0<8c72>
5.177 E(st)-.1 E F1 3.266(otherwise. If)3.946 F F0<8c72>5.176 E(st)-.1 E
F1 .766(is not speci\214ed, it is set to the pre)3.946 F .766
-(vious command for editing and)-.25 F(\25516 for listing.)144 242.4 Q
-.696(If the)144 259.2 R F2<ad6c>3.196 E F1 .696
+(vious command for editing and)-.25 F(\25516 for listing.)144 412.8 Q
+.696(If the)144 429.6 R F2<ad6c>3.196 E F1 .696
(option is supplied, the commands are listed on the standard output.)
3.196 F(The)5.697 E F2<ad6e>3.197 E F1 .697(option sup-)3.197 F
-(presses the command numbers when listing.)144 271.2 Q(The)5 E F2<ad72>
+(presses the command numbers when listing.)144 441.6 Q(The)5 E F2<ad72>
2.5 E F1(option re)2.5 E -.15(ve)-.25 G(rses the order of the commands.)
-.15 E(Otherwise,)144 288 Q F2(fc)2.902 E F1(in)2.902 E -.2(vo)-.4 G -.1
-(ke).2 G 2.902(st).1 G .402(he editor named by)-2.902 F F0(ename)3.092 E
-F1 .402(on a \214le containing those commands.)3.082 F(If)5.402 E F0
-(ename)3.092 E F1 .541(is not supplied,)144 300 R F2(fc)3.041 E F1 .542
-(uses the v)3.042 F .542(alue of the)-.25 F/F3 9/Times-Bold@0 SF(FCEDIT)
-3.042 E F1 -.25(va)2.792 G .542(riable, and the v).25 F .542(alue of)
--.25 F F3(EDIT)3.042 E(OR)-.162 E F1(if)2.792 E F3(FCEDIT)3.042 E F1(is)
-2.792 E .213(not set.)144 312 R .212(If neither v)5.213 F .212
+.15 E(Otherwise,)144 458.4 Q F2(fc)2.902 E F1(in)2.902 E -.2(vo)-.4 G
+-.1(ke).2 G 2.902(st).1 G .402(he editor named by)-2.902 F F0(ename)
+3.092 E F1 .402(on a \214le containing those commands.)3.082 F(If)5.402
+E F0(ename)3.092 E F1 .541(is not supplied,)144 470.4 R F2(fc)3.041 E F1
+.542(uses the v)3.042 F .542(alue of the)-.25 F F3(FCEDIT)3.042 E F1
+-.25(va)2.792 G .542(riable, and the v).25 F .542(alue of)-.25 F F3
+(EDIT)3.042 E(OR)-.162 E F1(if)2.792 E F3(FCEDIT)3.042 E F1(is)2.792 E
+.213(not set.)144 482.4 R .212(If neither v)5.213 F .212
(ariable is set,)-.25 F F2(fc)2.712 E F1(uses)2.712 E F0(vi.)4.378 E F1
.212(When editing is complete,)4.378 F F2(fc)2.712 E F1 .212
-(reads the \214le containing)2.712 F
-(the edited commands and echoes and e)144 324 Q -.15(xe)-.15 G
-(cutes them.).15 E .711(In the second form,)144 340.8 R F2(fc)3.211 E F1
-(re-e)3.211 E -.15(xe)-.15 G(cutes).15 E F0(command)3.211 E F1 .711
-(after replacing each instance of)3.211 F F0(pat)3.212 E F1(with)3.212 E
-F0 -.37(re)3.212 G(p).37 E F1(.)A F0(Com-)5.712 E(mand)144 352.8 Q F1
-(is interpreted the same as)2.5 E F0<8c72>2.5 E(st)-.1 E F1(abo)2.5 E
--.15(ve)-.15 G(.).15 E 2.827(Au)144 369.6 S .327
+(reads the \214le containing)2.712 F .563
+(the edited commands and echoes and e)144 494.4 R -.15(xe)-.15 G .563
+(cutes them.).15 F(The)5.563 E F2<ad44>3.063 E F1 .563
+(option, if supplied, causes)3.063 F F2(fc)3.063 E F1 .564(to re-)3.064
+F(mo)144 506.4 Q 1.153 -.15(ve t)-.15 H .852
+(he selected commands from the history list before e).15 F -.15(xe)-.15
+G .852(cuting the \214le of edited commands.).15 F F2<ad44>144 518.4 Q
+F1(is only ef)2.5 E(fecti)-.25 E .3 -.15(ve w)-.25 H(hen).15 E F2(fc)2.5
+E F1(is in)2.5 E -.2(vo)-.4 G -.1(ke).2 G 2.5(di).1 G 2.5(nt)-2.5 G
+(his w)-2.5 E(ay)-.1 E(.)-.65 E .711(In the second form,)144 535.2 R F2
+(fc)3.211 E F1(re-e)3.211 E -.15(xe)-.15 G(cutes).15 E F0(command)3.211
+E F1 .711(after replacing each instance of)3.211 F F0(pat)3.212 E F1
+(with)3.212 E F0 -.37(re)3.212 G(p).37 E F1(.)A F0(Com-)5.712 E(mand)144
+547.2 Q F1(is interpreted the same as)2.5 E F0<8c72>2.5 E(st)-.1 E F1
+(abo)2.5 E -.15(ve)-.15 G(.).15 E 2.827(Au)144 564 S .327
(seful alias to use with)-2.827 F F2(fc)2.827 E F1 .327(is \231r="fc \
\255s"\232, so that typing \231r cc\232 runs the last command be)2.827 F
-(ginning)-.15 E(with \231cc\232 and typing \231r\232 re-e)144 381.6 Q
--.15(xe)-.15 G(cutes the last command.).15 E .439
-(If the \214rst form is used, the return v)144 398.4 R .44
+(ginning)-.15 E(with \231cc\232 and typing \231r\232 re-e)144 576 Q -.15
+(xe)-.15 G(cutes the last command.).15 E .439
+(If the \214rst form is used, the return v)144 592.8 R .44
(alue is zero unless an in)-.25 F -.25(va)-.4 G .44
(lid option is encountered or).25 F F0<8c72>4.85 E(st)-.1 E F1(or)3.62 E
-F0(last)144.09 410.4 Q F1 .402(specify history lines out of range.)3.582
+F0(last)144.09 604.8 Q F1 .402(specify history lines out of range.)3.582
F .402(When editing and re-e)5.402 F -.15(xe)-.15 G .402
-(cuting a \214le of commands, the re-).15 F .573(turn v)144 422.4 R .573
+(cuting a \214le of commands, the re-).15 F .573(turn v)144 616.8 R .573
(alue is the v)-.25 F .573(alue of the last command e)-.25 F -.15(xe)
-.15 G .573(cuted or f).15 F .574
(ailure if an error occurs with the tempo-)-.1 F .686(rary \214le.)144
-434.4 R .685
+628.8 R .685
(If the second form is used, the return status is that of the re-e)5.686
-F -.15(xe)-.15 G .685(cuted command, unless).15 F F0(cmd)144.2 446.4 Q
+F -.15(xe)-.15 G .685(cuted command, unless).15 F F0(cmd)144.2 640.8 Q
F1(does not specify a v)3.27 E(alid history entry)-.25 E 2.5(,i)-.65 G
2.5(nw)-2.5 G(hich case)-2.5 E F2(fc)2.5 E F1
-(returns a non-zero status.)2.5 E F2(fg)108 463.2 Q F1([)2.5 E F0
-(jobspec)A F1(])A(Resume)144 475.2 Q F0(jobspec)4.638 E F1 .398
+(returns a non-zero status.)2.5 E F2(fg)108 657.6 Q F1([)2.5 E F0
+(jobspec)A F1(])A(Resume)144 669.6 Q F0(jobspec)4.638 E F1 .398
(in the fore)3.208 F .399(ground, and mak)-.15 F 2.899(ei)-.1 G 2.899
(tt)-2.899 G .399(he current job)-2.899 F 5.399(.I)-.4 G(f)-5.399 E F0
(jobspec)4.639 E F1 .399(is not present,)3.209 F F2(fg)2.899 E F1(uses)
-2.899 E .248(the shell')144 487.2 R 2.748(sn)-.55 G .248(otion of the)
+2.899 E .248(the shell')144 681.6 R 2.748(sn)-.55 G .248(otion of the)
-2.748 F F0(curr)2.747 E .247(ent job)-.37 F F1 5.247(.T)C .247
(he return v)-5.247 F .247
(alue is that of the command placed into the fore-)-.25 F .097
-(ground, or f)144 499.2 R .098
+(ground, or f)144 693.6 R .098
(ailure if run when job control is disabled or)-.1 F 2.598(,w)-.4 G .098
(hen run with job control enabled, if)-2.598 F F0(job-)4.338 E(spec)144
-511.2 Q F1(does not specify a v)2.81 E(alid job or)-.25 E F0(jobspec)
+705.6 Q F1(does not specify a v)2.81 E(alid job or)-.25 E F0(jobspec)
4.24 E F1(speci\214es a job that w)2.81 E
-(as started without job control.)-.1 E F2(getopts)108 528 Q F0
+(as started without job control.)-.1 E(GNU Bash 5.3)72 768 Q
+(2026 January 14)141.79 E(76)190.95 E 0 Cg EP
+%%Page: 77 77
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(getopts)108 84 Q F0
(optstring name)2.5 E F1([)2.5 E F0(ar)A(g)-.37 E F1 1.666(...)2.5 G(])
--1.666 E F2(getopts)144 540 Q F1 .051(is used by shell scripts and func\
-tions to parse positional parameters and obtain options and)2.551 F
-1.129(their ar)144 552 R(guments.)-.18 E F0(optstring)6.359 E F1 1.129(\
-contains the option characters to be recognized; if a character is fol-)
-3.849 F(lo)144 564 Q .657(wed by a colon, the option is e)-.25 F .657
+-1.666 E F2(getopts)144 96 Q F1 .051(is used by shell scripts and funct\
+ions to parse positional parameters and obtain options and)2.551 F 1.129
+(their ar)144 108 R(guments.)-.18 E F0(optstring)6.359 E F1 1.129(conta\
+ins the option characters to be recognized; if a character is fol-)3.849
+F(lo)144 120 Q .657(wed by a colon, the option is e)-.25 F .657
(xpected to ha)-.15 F .956 -.15(ve a)-.2 H 3.156(na).15 G -.18(rg)-3.156
G .656(ument, which should be separated from it).18 F(by white space.)
-144 576 Q(The colon and question mark characters may not be used as opt\
-ion characters.)5 E .031(Each time it is in)144 592.8 R -.2(vo)-.4 G -.1
+144 132 Q(The colon and question mark characters may not be used as opt\
+ion characters.)5 E .031(Each time it is in)144 148.8 R -.2(vo)-.4 G -.1
(ke).2 G(d,).1 E F2(getopts)2.531 E F1 .031(places the ne)2.531 F .031
(xt option in the shell v)-.15 F(ariable)-.25 E F0(name)2.892 E F1 2.532
(,i).18 G(nitializing)-2.532 E F0(name)2.892 E F1 .523(if it does not e)
-144 604.8 R .522(xist, and the inde)-.15 F 3.022(xo)-.15 G 3.022(ft)
+144 160.8 R .522(xist, and the inde)-.15 F 3.022(xo)-.15 G 3.022(ft)
-3.022 G .522(he ne)-3.022 F .522(xt ar)-.15 F .522
-(gument to be processed into the v)-.18 F(ariable)-.25 E F3(OPTIND)3.022
-E/F4 9/Times-Roman@0 SF(.)A F3(OPTIND)144 616.8 Q F1 .079
+(gument to be processed into the v)-.18 F(ariable)-.25 E/F3 9
+/Times-Bold@0 SF(OPTIND)3.022 E/F4 9/Times-Roman@0 SF(.)A F3(OPTIND)144
+172.8 Q F1 .079
(is initialized to 1 each time the shell or a shell script is in)2.329 F
-.2(vo)-.4 G -.1(ke).2 G 2.58(d. When).1 F .08(an option requires)2.58 F
-(an ar)144 628.8 Q(gument,)-.18 E F2(getopts)2.5 E F1(places that ar)2.5
+(an ar)144 184.8 Q(gument,)-.18 E F2(getopts)2.5 E F1(places that ar)2.5
E(gument into the v)-.18 E(ariable)-.25 E F3(OPT)2.5 E(ARG)-.81 E F4(.)A
-F1 .647(The shell does not reset)144 645.6 R F3(OPTIND)3.147 E F1 .647
+F1 .647(The shell does not reset)144 201.6 R F3(OPTIND)3.147 E F1 .647
(automatically; it must be manually reset between multiple calls)2.897 F
-(to)144 657.6 Q F2(getopts)2.5 E F1(within the same shell in)2.5 E -.2
+(to)144 213.6 Q F2(getopts)2.5 E F1(within the same shell in)2.5 E -.2
(vo)-.4 G(cation to use a ne).2 E 2.5(ws)-.25 G(et of parameters.)-2.5 E
-.101(When it reaches the end of options,)144 674.4 R F2(getopts)2.602 E
+.101(When it reaches the end of options,)144 230.4 R F2(getopts)2.602 E
F1 -.15(ex)2.602 G .102(its with a return v).15 F .102
(alue greater than zero.)-.25 F F3(OPTIND)5.102 E F1(is)2.352 E
-(set to the inde)144 686.4 Q 2.5(xo)-.15 G 2.5(ft)-2.5 G
+(set to the inde)144 242.4 Q 2.5(xo)-.15 G 2.5(ft)-2.5 G
(he \214rst non-option ar)-2.5 E(gument, and)-.18 E F0(name)2.5 E F1
-(is set to ?.)2.5 E F2(getopts)144 703.2 Q F1 .485
+(is set to ?.)2.5 E F2(getopts)144 259.2 Q F1 .485
(normally parses the positional parameters, b)2.985 F .485
(ut if more ar)-.2 F .485(guments are supplied as)-.18 F F0(ar)3.315 E
-(g)-.37 E F1 -.25(va)3.205 G(l-).25 E(ues,)144 715.2 Q F2(getopts)2.5 E
-F1(parses those instead.)2.5 E(GNU Bash 5.3)72 768 Q(2025 April 7)
-149.285 E(75)198.445 E 0 Cg EP
-%%Page: 76 76
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(getopts)144 84 Q F1 .833
+(g)-.37 E F1 -.25(va)3.205 G(l-).25 E(ues,)144 271.2 Q F2(getopts)2.5 E
+F1(parses those instead.)2.5 E F2(getopts)144 288 Q F1 .833
(can report errors in tw)3.332 F 3.333(ow)-.1 G 3.333(ays. If)-3.433 F
.833(the \214rst character of)3.333 F F0(optstring)3.563 E F1 .833
(is a colon,)3.553 F F2(getopts)3.333 E F1(uses)3.333 E F0(silent)144.34
-96 Q F1 .212(error reporting.)3.392 F .212(In normal operation,)5.212 F
+300 Q F1 .212(error reporting.)3.392 F .212(In normal operation,)5.212 F
F2(getopts)2.712 E F1 .211
-(prints diagnostic messages when it encounters)2.712 F(in)144 108 Q -.25
+(prints diagnostic messages when it encounters)2.712 F(in)144 312 Q -.25
(va)-.4 G .319(lid options or missing option ar).25 F 2.82(guments. If)
--.18 F .32(the v)2.82 F(ariable)-.25 E/F3 9/Times-Bold@0 SF(OPTERR)2.82
-E F1 .32(is set to 0,)2.57 F F2(getopts)2.82 E F1 .32(does not)2.82 F
-(display an)144 120 Q 2.5(ye)-.15 G(rror messages, e)-2.5 E -.15(ve)-.25
+-.18 F .32(the v)2.82 F(ariable)-.25 E F3(OPTERR)2.82 E F1 .32
+(is set to 0,)2.57 F F2(getopts)2.82 E F1 .32(does not)2.82 F
+(display an)144 324 Q 2.5(ye)-.15 G(rror messages, e)-2.5 E -.15(ve)-.25
G 2.5(ni).15 G 2.5(ft)-2.5 G(he \214rst character of)-2.5 E F0
-(optstring)2.73 E F1(is not a colon.)2.72 E(If)144 136.8 Q F2(getopts)
+(optstring)2.73 E F1(is not a colon.)2.72 E(If)144 340.8 Q F2(getopts)
2.673 E F1 .173(detects an in)2.673 F -.25(va)-.4 G .173
(lid option, it places ? into).25 F F0(name)3.033 E F1 .172
(and, if not silent, prints an error message)2.853 F 1.147(and unsets)
-144 148.8 R F3(OPT)3.647 E(ARG)-.81 E/F4 9/Times-Roman@0 SF(.)A F1(If)
-5.647 E F2(getopts)3.647 E F1 1.147
-(is silent, it assigns the option character found to)3.647 F F3(OPT)
-3.647 E(ARG)-.81 E F1(and)3.398 E(does not print a diagnostic message.)
-144 160.8 Q .602(If a required ar)144 177.6 R .602
-(gument is not found, and)-.18 F F2(getopts)3.102 E F1 .602
-(is not silent, it sets the v)3.102 F .602(alue of)-.25 F F0(name)3.102
-E F1 .602(to a ques-)3.102 F 1.055(tion mark \()144 189.6 R F2(?).833 E
-F1 1.055(\), unsets).833 F F3(OPT)3.555 E(ARG)-.81 E F4(,)A F1 1.056
-(and prints a diagnostic message.)3.306 F(If)6.056 E F2(getopts)3.556 E
-F1 1.056(is silent, it sets the)3.556 F -.25(va)144 201.6 S(lue of).25 E
-F0(name)2.5 E F1(to a colon \()2.5 E F2(:).833 E F1 2.5(\)a).833 G
-(nd sets)-2.5 E F3(OPT)2.5 E(ARG)-.81 E F1
-(to the option character found.)2.25 E F2(getopts)144 218.4 Q F1 .902
+144 352.8 R F3(OPT)3.647 E(ARG)-.81 E F4(.)A F1(If)5.647 E F2(getopts)
+3.647 E F1 1.147(is silent, it assigns the option character found to)
+3.647 F F3(OPT)3.647 E(ARG)-.81 E F1(and)3.398 E
+(does not print a diagnostic message.)144 364.8 Q .602(If a required ar)
+144 381.6 R .602(gument is not found, and)-.18 F F2(getopts)3.102 E F1
+.602(is not silent, it sets the v)3.102 F .602(alue of)-.25 F F0(name)
+3.102 E F1 .602(to a ques-)3.102 F 1.055(tion mark \()144 393.6 R F2(?)
+.833 E F1 1.055(\), unsets).833 F F3(OPT)3.555 E(ARG)-.81 E F4(,)A F1
+1.056(and prints a diagnostic message.)3.306 F(If)6.056 E F2(getopts)
+3.556 E F1 1.056(is silent, it sets the)3.556 F -.25(va)144 405.6 S
+(lue of).25 E F0(name)2.5 E F1(to a colon \()2.5 E F2(:).833 E F1 2.5
+(\)a).833 G(nd sets)-2.5 E F3(OPT)2.5 E(ARG)-.81 E F1
+(to the option character found.)2.25 E F2(getopts)144 422.4 Q F1 .902
(returns true if an option, speci\214ed or unspeci\214ed, is found.)
3.402 F .902(It returns f)5.902 F .901(alse if the end of)-.1 F
-(options is encountered or an error occurs.)144 230.4 Q F2(hash)108
-247.2 Q F1([)2.5 E F2(\255lr)A F1 2.5(][)C F2<ad70>-2.5 E F0(\214lename)
+(options is encountered or an error occurs.)144 434.4 Q F2(hash)108
+451.2 Q F1([)2.5 E F2(\255lr)A F1 2.5(][)C F2<ad70>-2.5 E F0(\214lename)
2.5 E F1 2.5(][)C F2(\255dt)-2.5 E F1 2.5(][)C F0(name)-2.5 E F1(])A
-.636(Each time)144 259.2 R F2(hash)3.136 E F1 .636(is in)3.136 F -.2(vo)
+.636(Each time)144 463.2 R F2(hash)3.136 E F1 .636(is in)3.136 F -.2(vo)
-.4 G -.1(ke).2 G .636(d, it remembers the full pathname of the command)
.1 F F0(name)3.496 E F1 .636(as determined)3.316 F 1.427
-(by searching the directories in)144 271.2 R F2($P)3.927 E -.95(AT)-.74
+(by searching the directories in)144 475.2 R F2($P)3.927 E -.95(AT)-.74
G(H).95 E F1 6.427(.A)C 1.727 -.15(ny p)-6.427 H(re).15 E 1.427
-(viously-remembered pathname associated with)-.25 F F0(name)144 283.2 Q
+(viously-remembered pathname associated with)-.25 F F0(name)144 487.2 Q
F1 .942(is discarded.)3.442 F .942(If the)5.942 F F2<ad70>3.442 E F1
.942(option is supplied,)3.442 F F2(hash)3.442 E F1(uses)3.442 E F0
(\214lename)5.352 E F1 .943(as the full pathname of the)3.623 F
-(command.)144 295.2 Q(The)144 312 Q F2<ad72>3.313 E F1 .813
+(command.)144 499.2 Q(The)144 516 Q F2<ad72>3.313 E F1 .813
(option causes the shell to for)3.313 F .813
(get all remembered locations.)-.18 F .812(Assigning to the)5.812 F F2
-.74(PA)3.312 G(TH)-.21 E F1 -.25(va)3.312 G(ri-).25 E .277
-(able also clears all hashed \214lenames.)144 324 R(The)5.277 E F2<ad64>
+(able also clears all hashed \214lenames.)144 528 R(The)5.277 E F2<ad64>
2.777 E F1 .278(option causes the shell to for)2.777 F .278
-(get the remembered lo-)-.18 F(cation of each)144 336 Q F0(name)2.5 E F1
-(.)A .108(If the)144 352.8 R F2<ad74>2.608 E F1 .108
+(get the remembered lo-)-.18 F(cation of each)144 540 Q F0(name)2.5 E F1
+(.)A .108(If the)144 556.8 R F2<ad74>2.608 E F1 .108
(option is supplied,)2.608 F F2(hash)2.608 E F1 .107
(prints the full pathname corresponding to each)2.608 F F0(name)2.607 E
-F1 5.107(.I)C 2.607(fm)-5.107 G(ultiple)-2.607 E F0(name)144 364.8 Q F1
+F1 5.107(.I)C 2.607(fm)-5.107 G(ultiple)-2.607 E F0(name)144 568.8 Q F1
(ar)3.153 E .653(guments are supplied with)-.18 F F2<ad74>3.153 E F1(,)A
F2(hash)3.153 E F1 .654(prints the)3.154 F F0(name)3.154 E F1 .654
(before the corresponding hashed full)3.154 F 2.5(pathname. The)144
-376.8 R F2<ad6c>2.5 E F1
+580.8 R F2<ad6c>2.5 E F1
(option displays output in a format that may be reused as input.)2.5 E
-1.191(If no ar)144 393.6 R 1.191(guments are gi)-.18 F -.15(ve)-.25 G
+1.191(If no ar)144 597.6 R 1.191(guments are gi)-.18 F -.15(ve)-.25 G
1.191(n, or if only).15 F F2<ad6c>3.691 E F1 1.191(is supplied,)3.691 F
F2(hash)3.69 E F1 1.19(prints information about remembered)3.69 F 2.722
-(commands. The)144 405.6 R F2<ad74>2.722 E F1(,)A F2<ad64>2.722 E F1
+(commands. The)144 609.6 R F2<ad74>2.722 E F1(,)A F2<ad64>2.722 E F1
2.722(,a)C(nd)-2.722 E F2<ad70>2.722 E F1 .223
(options \(the options that act on the)2.722 F F0(name)2.723 E F1(ar)
-2.723 E .223(guments\) are mutually)-.18 F -.15(ex)144 417.6 S(clusi).15
+2.723 E .223(guments\) are mutually)-.18 F -.15(ex)144 621.6 S(clusi).15
E -.15(ve)-.25 G 5.738(.O).15 G .738(nly one will be acti)-5.738 F -.15
(ve)-.25 G 5.738(.I).15 G 3.238(fm)-5.738 G .738
(ore than one is supplied,)-3.238 F F2<ad74>3.237 E F1 .737
(has higher priority than)3.237 F F2<ad70>3.237 E F1(,)A(and both ha)144
-429.6 Q .3 -.15(ve h)-.2 H(igher priority than).15 E F2<ad64>2.5 E F1(.)
-A(The return status is zero unless a)144 446.4 Q F0(name)2.86 E F1
+633.6 Q .3 -.15(ve h)-.2 H(igher priority than).15 E F2<ad64>2.5 E F1(.)
+A(The return status is zero unless a)144 650.4 Q F0(name)2.86 E F1
(is not found or an in)2.68 E -.25(va)-.4 G(lid option is supplied.).25
-E F2(help)108 463.2 Q F1([)2.5 E F2(\255dms)A F1 2.5(][)C F0(pattern)
--2.5 E F1(])A .866(Display helpful information about b)144 475.2 R .867
+E F2(help)108 667.2 Q F1([)2.5 E F2(\255dms)A F1 2.5(][)C F0(pattern)
+-2.5 E F1(])A .866(Display helpful information about b)144 679.2 R .867
(uiltin commands.)-.2 F(If)5.867 E F0(pattern)4.617 E F1 .867
(is speci\214ed,)3.607 F F2(help)3.367 E F1(gi)3.367 E -.15(ve)-.25 G
3.367(sd).15 G(etailed)-3.367 E .612(help on all commands matching)144
-487.2 R F0(pattern)4.362 E F1 .612(as described belo)3.352 F .612
-(w; otherwise it displays a list of all the)-.25 F -.2(bu)144 499.2 S
-(iltins and shell compound commands.).2 E(Options, if supplied, ha)144
-516 Q .3 -.15(ve t)-.2 H(he follo).15 E 2.5(wm)-.25 G(eanings:)-2.5 E F2
-<ad64>144 532.8 Q F1(Display a short description of each)180 532.8 Q F0
-(pattern)2.5 E F2<ad6d>144 544.8 Q F1(Display the description of each)
-180 544.8 Q F0(pattern)2.5 E F1(in a manpage-lik)2.5 E 2.5(ef)-.1 G
-(ormat)-2.5 E F2<ad73>144 556.8 Q F1
-(Display only a short usage synopsis for each)180 556.8 Q F0(pattern)2.5
-E F1(If)144 573.6 Q F0(pattern)3.016 E F1 .516
-(contains pattern matching characters \(see)3.016 F F3 -.09(Pa)3.016 G
-(tter).09 E 2.766(nM)-.135 G(atching)-2.766 E F1(abo)2.766 E -.15(ve)
--.15 G 3.016(\)i).15 G(t')-3.016 E 3.016(st)-.55 G .517
-(reated as a shell)-3.016 F(pattern and)144 585.6 Q F2(help)2.5 E F1
-(prints the description of each help topic matching)2.5 E F0(pattern)2.5
-E F1(.)A .249(If not, and)144 602.4 R F0(pattern)2.749 E F1 -.15(ex)
-2.749 G .249(actly matches the name of a help topic,).15 F F2(help)2.749
-E F1 .248(prints the description associated)2.748 F .054
-(with that topic.)144 614.4 R(Otherwise,)5.054 E F2(help)2.554 E F1 .054
-(performs pre\214x matching and prints the descriptions of all match-)
-2.554 F(ing help topics.)144 626.4 Q
-(The return status is 0 unless no command matches)144 643.2 Q F0
-(pattern)3.75 E F1(.).24 E F2(history [)108 660 Q F0(n)A F2(])A
-(history \255c)108 672 Q(history \255d)108 684 Q F0(of)2.5 E(fset)-.18 E
-F2(history \255d)108 696 Q F0(start)2.5 E F1(-)A F0(end)A F1
-(GNU Bash 5.3)72 768 Q(2025 April 7)149.285 E(76)198.445 E 0 Cg EP
-%%Page: 77 77
+691.2 R F0(pattern)4.362 E F1 .612(as described belo)3.352 F .612
+(w; otherwise it displays a list of all the)-.25 F -.2(bu)144 703.2 S
+(iltins and shell compound commands.).2 E(GNU Bash 5.3)72 768 Q
+(2026 January 14)141.79 E(77)190.95 E 0 Cg EP
+%%Page: 78 78
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(history \255anrw)108 84 Q F1
-([)2.5 E F0(\214lename)A F1(])A F2(history \255p)108 96 Q F0(ar)2.5 E(g)
--.37 E F1([)2.5 E F0(ar)A(g)-.37 E F1 1.666(...)2.5 G(])-1.666 E F2
-(history \255s)108 108 Q F0(ar)2.5 E(g)-.37 E F1([)2.5 E F0(ar)A(g)-.37
-E F1 1.666(...)2.5 G(])-1.666 E -.4(Wi)144 120 S .832
-(th no options, display the command history list with numbers.).4 F .831
-(Entries pre\214x)5.831 F .831(ed with a)-.15 F F2(*)3.331 E F1(ha)3.331
-E -.15(ve)-.2 G 1.081(been modi\214ed.)144 132 R 1.082(An ar)6.081 F
-1.082(gument of)-.18 F F0(n)3.942 E F1 1.082(lists only the last)3.822 F
-F0(n)3.942 E F1 3.582(entries. If)3.822 F 1.082(the shell v)3.582 F
-(ariable)-.25 E/F3 9/Times-Bold@0 SF(HISTTIME-)3.582 E(FORMA)144 144 Q
-(T)-.855 E F1 .464
-(is set and not null, it is used as a format string for)2.715 F F0
-(strftime)3.304 E F1 .464(\(3\) to display the time stamp).18 F 1.715
-(associated with each displayed history entry)144 156 R 6.715(.I)-.65 G
-(f)-6.715 E F2(history)4.216 E F1(uses)4.216 E F3(HISTTIMEFORMA)4.216 E
-(T)-.855 E/F4 9/Times-Roman@0 SF(,)A F1 1.716(it does not)3.966 F
-(print an interv)144 168 Q
-(ening space between the formatted time stamp and the history entry)-.15
-E(.)-.65 E(If)144 184.8 Q F0(\214lename)3.37 E F1 .87(is supplied,)3.37
-F F2(history)3.37 E F1 .869
+.25 E F1(\(1\)).95 E(Options, if supplied, ha)144 84 Q .3 -.15(ve t)-.2
+H(he follo).15 E 2.5(wm)-.25 G(eanings:)-2.5 E/F2 10/Times-Bold@0 SF
+<ad64>144 100.8 Q F1(Display a short description of each)180 100.8 Q F0
+(pattern)2.5 E F2<ad6d>144 112.8 Q F1(Display the description of each)
+180 112.8 Q F0(pattern)2.5 E F1(in a manpage-lik)2.5 E 2.5(ef)-.1 G
+(ormat)-2.5 E F2<ad73>144 124.8 Q F1
+(Display only a short usage synopsis for each)180 124.8 Q F0(pattern)2.5
+E F1(If)144 141.6 Q F0(pattern)3.016 E F1 .516
+(contains pattern matching characters \(see)3.016 F/F3 9/Times-Bold@0 SF
+-.09(Pa)3.016 G(tter).09 E 2.766(nM)-.135 G(atching)-2.766 E F1(abo)
+2.766 E -.15(ve)-.15 G 3.016(\)i).15 G(t')-3.016 E 3.016(st)-.55 G .517
+(reated as a shell)-3.016 F(pattern and)144 153.6 Q F2(help)2.5 E F1
+(prints the description of each help topic matching)2.5 E F0(pattern)2.5
+E F1(.)A .249(If not, and)144 170.4 R F0(pattern)2.749 E F1 -.15(ex)
+2.749 G .249(actly matches the name of a help topic,).15 F F2(help)2.749
+E F1 .248(prints the description associated)2.748 F .054
+(with that topic.)144 182.4 R(Otherwise,)5.054 E F2(help)2.554 E F1 .054
+(performs pre\214x matching and prints the descriptions of all match-)
+2.554 F(ing help topics.)144 194.4 Q
+(The return status is 0 unless no command matches)144 211.2 Q F0
+(pattern)3.75 E F1(.).24 E F2(history [\255H] [)108 228 Q F0 -.15(ra)C
+(ng).15 E(e)-.1 E F2(])A(history \255c)108 240 Q(history \255d)108 252 Q
+F0 -.15(ra)2.5 G(ng).15 E(e)-.1 E F2(history \255anrw)108 264 Q F1([)2.5
+E F0(\214lename)A F1(])A F2(history \255p)108 276 Q F0(ar)2.5 E(g)-.37 E
+F1([)2.5 E F0(ar)A(g)-.37 E F1 1.666(...)2.5 G(])-1.666 E F2
+(history \255s)108 288 Q F0(ar)2.5 E(g)-.37 E F1([)2.5 E F0(ar)A(g)-.37
+E F1 1.666(...)2.5 G(])-1.666 E -.4(Wi)144 300 S .565
+(th no options, or with the).4 F F2<ad48>3.065 E F1 .564
+(option, display the portion of the command history list speci\214ed)
+3.064 F(by)144 312 Q F0 -.15(ra)2.546 G(ng).15 E(e)-.1 E F1 2.546(,a)C
+2.546(sd)-2.546 G .046(escribed belo)-2.546 F 3.846 -.65(w. I)-.25 H(f)
+.65 E F0 -.15(ra)2.546 G(ng).15 E(e)-.1 E F1 .046
+(is not speci\214ed, display the entire history list.)2.546 F -.4(Wi)
+5.047 G(thout).4 E F2<ad48>2.547 E F1(,)A
+(display the list with command numbers, pre\214xing entries that ha)144
+324 Q .3 -.15(ve b)-.2 H(een modi\214ed with a \231*\232.).15 E(A)144
+340.8 Q F0 -.15(ra)2.686 G(ng).15 E(e)-.1 E F1(ar)2.866 E .185
+(gument is speci\214ed in the form of a number)-.18 F F0(of)2.685 E
+(fset)-.18 E F1 .185(or a range)2.685 F F0(start)2.685 E F1<ad>A F0(end)
+A F1 5.185(.I)C(f)-5.185 E F0(of)2.685 E(fset)-.18 E F1 .185(is sup-)
+2.685 F .542(plied, it references the history entry at position)144
+352.8 R F0(of)3.042 E(fset)-.18 E F1 .543
+(in the history list; when listing this displays)3.043 F .211(the last)
+144 364.8 R F0(of)2.711 E(fset)-.18 E F1 2.711(entries. A)2.711 F(ne)
+2.711 E -.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G F0(of)2.861 E(fset)-.18 E
+F1 .21(counts back from the end of the history list, relati)2.711 F .51
+-.15(ve t)-.25 H 2.71(oo).15 G(ne)-2.71 E .362
+(greater than the last history position.)144 376.8 R .362
+(When listing, ne)5.362 F -.05(ga)-.15 G(ti).05 E .662 -.15(ve a)-.25 H
+.362(nd positi).15 F -.15(ve)-.25 G F0(of)3.012 E(fsets)-.18 E F1(ha)
+2.862 E .663 -.15(ve i)-.2 H .363(dentical re-).15 F(sults.)144 388.8 Q
+F0(start)5.247 E F1(and)2.747 E F0(end)2.747 E F1 2.747(,i)C 2.746(fs)
+-2.747 G .246(upplied, reference the portion of the history list be)
+-2.746 F .246(ginning at position)-.15 F F0(start)2.746 E F1 .285
+(through position)144 400.8 R F0(end)2.785 E F1 5.285(.I)C(f)-5.285 E F0
+(start)2.785 E F1(or)2.785 E F0(end)2.785 E F1 .285(are ne)2.785 F -.05
+(ga)-.15 G(ti).05 E -.15(ve)-.25 G 2.785(,t).15 G(he)-2.785 E 2.785(yc)
+-.15 G .285(ount back from the end of the history list.)-2.785 F .038
+(When listing, if)144 412.8 R F0(start)2.538 E F1 .038(is greater than)
+2.538 F F0(end)2.538 E F1 2.538(,t)C .038
+(he history entries are displayed in re)-2.538 F -.15(ve)-.25 G .037
+(rse order from).15 F F0(end)2.537 E F1(to)144 424.8 Q F0(start)2.5 E F1
+(.)A .687(If the shell v)144 441.6 R(ariable)-.25 E F3(HISTTIMEFORMA)
+3.187 E(T)-.855 E F1 .687
+(is set and not null, it is used as a format string for)2.937 F F0
+(strf-)3.527 E(time)144 453.6 Q F1 1.378(\(3\) to display the time stam\
+p associated with each displayed history entry).18 F 6.378(.I)-.65 G(f)
+-6.378 E F2(history)3.877 E F1(uses)3.877 E F3(HISTTIMEFORMA)144 465.6 Q
+(T)-.855 E/F4 9/Times-Roman@0 SF(,)A F1 .285
+(it does not print an interv)2.535 F .285
+(ening space between the formatted time stamp and)-.15 F
+(the history entry)144 477.6 Q(.)-.65 E(If)144 494.4 Q F0(\214lename)
+3.37 E F1 .87(is supplied,)3.37 F F2(history)3.37 E F1 .869
(uses it as the name of the history \214le; if not, it uses the v)3.37 F
-.869(alue of)-.25 F F3(HISTFILE)144 196.8 Q F4(.)A F1(If)4.938 E F0
+.869(alue of)-.25 F F3(HISTFILE)144 506.4 Q F4(.)A F1(If)4.938 E F0
(\214lename)2.938 E F1 .438(is not supplied and)2.938 F F3(HISTFILE)
2.938 E F1 .438(is unset or null, the)2.688 F F2 .438
(\255a, \255n, \255r)2.938 F(,)-.92 E F1(and)2.939 E F2<ad77>2.939 E F1
-(op-)2.939 E(tions ha)144 208.8 Q .3 -.15(ve n)-.2 H 2.5(oe).15 G -.25
-(ff)-2.5 G(ect.).25 E(Options, if supplied, ha)144 225.6 Q .3 -.15(ve t)
--.2 H(he follo).15 E(wing meanings:)-.25 E F2<ad63>144 237.6 Q F1 .018
-(Clear the history list by deleting all the entries.)180 237.6 R .017
+(op-)2.939 E(tions ha)144 518.4 Q .3 -.15(ve n)-.2 H 2.5(oe).15 G -.25
+(ff)-2.5 G(ect.).25 E(Options, if supplied, ha)144 535.2 Q .3 -.15(ve t)
+-.2 H(he follo).15 E(wing meanings:)-.25 E F2<ad63>144 547.2 Q F1 .018
+(Clear the history list by deleting all the entries.)180 547.2 R .017
(This can be used with the other options to)5.018 F
-(replace the history list.)180 249.6 Q F2<ad64>144 261.6 Q F0(of)2.5 E
-(fset)-.18 E F1 .389(Delete the history entry at position)180 273.6 R F0
-(of)2.889 E(fset)-.18 E F1 5.389(.I)C(f)-5.389 E F0(of)2.889 E(fset)-.18
-E F1 .389(is ne)2.889 F -.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G 2.89(,i)
-.15 G 2.89(ti)-2.89 G 2.89(si)-2.89 G .39(nterpreted as relati)-2.89 F
--.15(ve)-.25 G .599
-(to one greater than the last history position, so ne)180 285.6 R -.05
-(ga)-.15 G(ti).05 E .899 -.15(ve i)-.25 H .598
-(ndices count back from the end).15 F(of the history)180 297.6 Q 2.5(,a)
--.65 G(nd an inde)-2.5 E 2.5(xo)-.15 G 2.5<66ad>-2.5 G 2.5(1r)-2.5 G
-(efers to the current)-2.5 E F2(history \255d)2.5 E F1(command.)2.5 E F2
-<ad64>144 309.6 Q F0(start)2.5 E F1<ad>A F0(end)A F1 1.25
-(Delete the range of history entries between positions)180 321.6 R F0
-(start)3.75 E F1(and)3.75 E F0(end)3.75 E F1 3.75(,i)C(nclusi)-3.75 E
--.15(ve)-.25 G 6.25(.P).15 G(ositi)-6.25 E -.15(ve)-.25 G(and ne)180
-333.6 Q -.05(ga)-.15 G(ti).05 E .3 -.15(ve v)-.25 H(alues for)-.1 E F0
-(start)2.5 E F1(and)2.5 E F0(end)2.5 E F1
-(are interpreted as described abo)2.5 E -.15(ve)-.15 G(.).15 E F2<ad61>
-144 345.6 Q F1 .776(Append the \231ne)180 345.6 R .776
+(replace the history list.)180 559.2 Q F2<ad64>144 571.2 Q F0 -.15(ra)
+2.5 G(ng).15 E(e)-.1 E F1 .704
+(Delete the history entries speci\214ed by)180 583.2 R F0 -.15(ra)3.204
+G(ng).15 E(e)-.1 E F1 3.204(,a)C 3.204(sd)-3.204 G .704(escribed abo)
+-3.204 F -.15(ve)-.15 G 5.704(.A).15 G 3.205(ni)-5.704 G(nde)-3.205 E
+3.205(xo)-.15 G 3.205<66ad>-3.205 G 3.205(1r)-3.205 G(efers)-3.205 E
+(to the current)180 595.2 Q F2(history \255d)2.5 E F1(command.)2.5 E F2
+<ad48>144 607.2 Q F1 .342
+(Display the selected history entries in the format that w)180 607.2 R
+.342(ould be written to the history \214le,)-.1 F 1.764(including an)180
+619.2 R 4.264(yt)-.15 G 1.764(ime stamp information as described belo)
+-4.264 F 3.065 -.65(w, w)-.25 H 1.765(ithout pre\214xing the entry).65 F
+(with an)180 631.2 Q 2.5(yl)-.15 G(ine number or \231*\232.)-2.5 E F2
+<ad61>144 643.2 Q F1 .776(Append the \231ne)180 643.2 R .776
(w\232 history lines to the history \214le.)-.25 F .775
-(These are history lines entered since)5.776 F(the be)180 357.6 Q
+(These are history lines entered since)5.776 F(the be)180 655.2 Q
(ginning of the current)-.15 E F2(bash)2.5 E F1(session, b)2.5 E
-(ut not already appended to the history \214le.)-.2 E F2<ad6e>144 369.6
+(ut not already appended to the history \214le.)-.2 E F2<ad6e>144 667.2
Q F1 .732(Read the history lines not already read from the history \214\
-le and add them to the current)180 369.6 R .143(history list.)180 381.6
+le and add them to the current)180 667.2 R .143(history list.)180 679.2
R .143(These are lines appended to the history \214le since the be)5.143
-F .142(ginning of the current)-.15 F F2(bash)180 393.6 Q F1(session.)2.5
-E F2<ad72>144 405.6 Q F1(Read the history \214le and append its content\
-s to the current history list.)180 405.6 Q F2<ad77>144 417.6 Q F1
-(Write the current history list to the history \214le, o)180 417.6 Q
--.15(ve)-.15 G(rwriting the history \214le.).15 E F2<ad70>144 429.6 Q F1
-.625(Perform history substitution on the follo)180 429.6 R(wing)-.25 E
-F0(ar)3.125 E(gs)-.37 E F1 .626(and display the result on the standard)
-3.125 F .469(output, without storing the results in the history list.)
-180 441.6 R(Each)5.469 E F0(ar)2.969 E(g)-.37 E F1 .468
-(must be quoted to disable)2.968 F(normal history e)180 453.6 Q
-(xpansion.)-.15 E F2<ad73>144 465.6 Q F1 .362(Store the)180 465.6 R F0
-(ar)3.192 E(gs)-.37 E F1 .363(in the history list as a single entry)
-3.132 F 5.363(.T)-.65 G .363(he last command in the history list is)
--5.363 F(remo)180 477.6 Q -.15(ve)-.15 G 2.5(db).15 G(efore adding the)
--2.5 E F0(ar)2.83 E(gs)-.37 E F1(.).27 E 1.153(If the)144 494.4 R F3
-(HISTTIMEFORMA)3.653 E(T)-.855 E F1 -.25(va)3.402 G 1.152
-(riable is set,).25 F F2(history)3.652 E F1 1.152
-(writes the time stamp information associated)3.652 F .188
-(with each history entry to the history \214le, mark)144 506.4 R .189
-(ed with the history comment character as described)-.1 F(abo)144 518.4
-Q -.15(ve)-.15 G 5.265(.W).15 G .264
+F .142(ginning of the current)-.15 F F2(bash)180 691.2 Q F1(session.)2.5
+E F2<ad72>144 703.2 Q F1(Read the history \214le and append its content\
+s to the current history list.)180 703.2 Q(GNU Bash 5.3)72 768 Q
+(2026 January 14)141.79 E(78)190.95 E 0 Cg EP
+%%Page: 79 79
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF<ad77>144 84 Q F1
+(Write the current history list to the history \214le, o)180 84 Q -.15
+(ve)-.15 G(rwriting the history \214le.).15 E F2<ad70>144 96 Q F1 .625
+(Perform history substitution on the follo)180 96 R(wing)-.25 E F0(ar)
+3.125 E(gs)-.37 E F1 .626(and display the result on the standard)3.125 F
+.469(output, without storing the results in the history list.)180 108 R
+(Each)5.469 E F0(ar)2.969 E(g)-.37 E F1 .468(must be quoted to disable)
+2.968 F(normal history e)180 120 Q(xpansion.)-.15 E F2<ad73>144 132 Q F1
+.362(Store the)180 132 R F0(ar)3.192 E(gs)-.37 E F1 .363
+(in the history list as a single entry)3.132 F 5.363(.T)-.65 G .363
+(he last command in the history list is)-5.363 F(remo)180 144 Q -.15(ve)
+-.15 G 2.5(db).15 G(efore adding the)-2.5 E F0(ar)2.83 E(gs)-.37 E F1(.)
+.27 E 1.153(If the)144 160.8 R/F3 9/Times-Bold@0 SF(HISTTIMEFORMA)3.653
+E(T)-.855 E F1 -.25(va)3.402 G 1.152(riable is set,).25 F F2(history)
+3.652 E F1 1.152(writes the time stamp information associated)3.652 F
+.188(with each history entry to the history \214le, mark)144 172.8 R
+.189(ed with the history comment character as described)-.1 F(abo)144
+184.8 Q -.15(ve)-.15 G 5.265(.W).15 G .264
(hen the history \214le is read, lines be)-5.265 F .264
(ginning with the history comment character follo)-.15 F(wed)-.25 E
(immediately by a digit are interpreted as timestamps for the follo)144
-530.4 Q(wing history entry)-.25 E(.)-.65 E .051(The return v)144 547.2 R
+196.8 Q(wing history entry)-.25 E(.)-.65 E .051(The return v)144 213.6 R
.051(alue is 0 unless an in)-.25 F -.25(va)-.4 G .051
(lid option is encountered, an error occurs while reading or writ-).25 F
-.707(ing the history \214le, an in)144 559.2 R -.25(va)-.4 G(lid).25 E
+.707(ing the history \214le, an in)144 225.6 R -.25(va)-.4 G(lid).25 E
F0(of)3.207 E(fset)-.18 E F1 .707(or range is supplied as an ar)3.207 F
.707(gument to)-.18 F F2<ad64>3.207 E F1 3.207(,o)C 3.206(rt)-3.207 G
-.706(he history e)-3.206 F(x-)-.15 E(pansion supplied as an ar)144 571.2
+.706(he history e)-3.206 F(x-)-.15 E(pansion supplied as an ar)144 237.6
Q(gument to)-.18 E F2<ad70>2.5 E F1 -.1(fa)2.5 G(ils.).1 E F2(jobs)108
-588 Q F1([)2.5 E F2(\255lnprs)A F1 2.5(][)C F0(jobspec)A F1 -3.332 1.666
-(... ])2.5 H F2(jobs \255x)108 600 Q F0(command)2.5 E F1([)2.5 E F0(ar)
-2.5 E(gs)-.37 E F1 -3.332 1.666(... ])2.5 H
-(The \214rst form lists the acti)144 612 Q .3 -.15(ve j)-.25 H 2.5
+254.4 Q F1([)2.5 E F2(\255lnprs)A F1 2.5(][)C F0(jobspec)A F1 -3.332
+1.666(... ])2.5 H F2(jobs \255x)108 266.4 Q F0(command)2.5 E F1([)2.5 E
+F0(ar)2.5 E(gs)-.37 E F1 -3.332 1.666(... ])2.5 H
+(The \214rst form lists the acti)144 278.4 Q .3 -.15(ve j)-.25 H 2.5
(obs. The).15 F(options ha)2.5 E .3 -.15(ve t)-.2 H(he follo).15 E
-(wing meanings:)-.25 E F2<ad6c>144 624 Q F1
-(List process IDs in addition to the normal information.)180 624 Q F2
-<ad6e>144 636 Q F1 .193(Display information only about jobs that ha)180
-636 R .494 -.15(ve c)-.2 H .194(hanged status since the user w).15 F
-.194(as last noti-)-.1 F(\214ed of their status.)180 648 Q F2<ad70>144
-660 Q F1(List only the process ID of the job')180 660 Q 2.5(sp)-.55 G
-(rocess group leader)-2.5 E(.)-.55 E F2<ad72>144 672 Q F1
-(Display only running jobs.)180 672 Q F2<ad73>144 684 Q F1
-(Display only stopped jobs.)180 684 Q(If)144 700.8 Q F0(jobspec)5.19 E
+(wing meanings:)-.25 E F2<ad6c>144 290.4 Q F1
+(List process IDs in addition to the normal information.)180 290.4 Q F2
+<ad6e>144 302.4 Q F1 .193(Display information only about jobs that ha)
+180 302.4 R .494 -.15(ve c)-.2 H .194(hanged status since the user w).15
+F .194(as last noti-)-.1 F(\214ed of their status.)180 314.4 Q F2<ad70>
+144 326.4 Q F1(List only the process ID of the job')180 326.4 Q 2.5(sp)
+-.55 G(rocess group leader)-2.5 E(.)-.55 E F2<ad72>144 338.4 Q F1
+(Display only running jobs.)180 338.4 Q F2<ad73>144 350.4 Q F1
+(Display only stopped jobs.)180 350.4 Q(If)144 367.2 Q F0(jobspec)5.19 E
F1 .95(is supplied,)3.76 F F2(jobs)3.45 E F1 .95
(restricts output to information about that job)3.45 F 5.95(.T)-.4 G .95
-(he return status is 0)-5.95 F(unless an in)144 712.8 Q -.25(va)-.4 G
+(he return status is 0)-5.95 F(unless an in)144 379.2 Q -.25(va)-.4 G
(lid option is encountered or an in).25 E -.25(va)-.4 G(lid).25 E F0
-(jobspec)4.24 E F1(is supplied.)2.81 E(GNU Bash 5.3)72 768 Q
-(2025 April 7)149.285 E(77)198.445 E 0 Cg EP
-%%Page: 78 78
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E .394(If the)144 84 R/F2 10/Times-Bold@0 SF<ad78>
+(jobspec)4.24 E F1(is supplied.)2.81 E .394(If the)144 396 R F2<ad78>
2.894 E F1 .394(option is supplied,)2.894 F F2(jobs)2.894 E F1 .394
(replaces an)2.894 F(y)-.15 E F0(jobspec)4.634 E F1 .394(found in)3.204
F F0(command)3.094 E F1(or)3.664 E F0(ar)3.224 E(gs)-.37 E F1 .395
-(with the corre-)3.164 F(sponding process group ID, and e)144 96 Q -.15
+(with the corre-)3.164 F(sponding process group ID, and e)144 408 Q -.15
(xe)-.15 G(cutes).15 E F0(command)2.7 E F1 2.5(,p).77 G(assing it)-2.5 E
F0(ar)2.83 E(gs)-.37 E F1 2.5(,r).27 G(eturning its e)-2.5 E
-(xit status.)-.15 E F2(kill)108 112.8 Q F1([)2.5 E F2<ad73>A F0(sigspec)
+(xit status.)-.15 E F2(kill)108 424.8 Q F1([)2.5 E F2<ad73>A F0(sigspec)
2.5 E F1(|)2.5 E F2<ad6e>2.5 E F0(signum)2.5 E F1(|)2.5 E F2<ad>2.5 E F0
(sigspec)A F1(])A F0(id)2.5 E F1 2.5([.)2.5 G -3.332 1.666(.. ])-.834 H
-F2(kill \255l)108 124.8 Q F1(|)A F2<ad4c>A F1([)2.5 E F0(sigspec)A F1(|)
+F2(kill \255l)108 436.8 Q F1(|)A F2<ad4c>A F1([)2.5 E F0(sigspec)A F1(|)
2.5 E F0 -.2(ex)2.5 G(it_status).2 E F1(])A .662
-(Send the signal speci\214ed by)144 136.8 R F0(sigspec)3.501 E F1(or)
+(Send the signal speci\214ed by)144 448.8 R F0(sigspec)3.501 E F1(or)
3.471 E F0(signum)3.501 E F1 .661(to the processes named by each)3.481 F
F0(id)3.171 E F1 5.661(.E).77 G(ach)-5.661 E F0(id)3.171 E F1(may)3.931
-E .294(be a job speci\214cation)144 148.8 R F0(jobspec)2.794 E F1 .294
+E .294(be a job speci\214cation)144 460.8 R F0(jobspec)2.794 E F1 .294
(or a process ID)2.794 F F0(pid)2.794 E F1(.)A F0(sigspec)5.634 E F1
.295(is either a case-insensiti)3.105 F .595 -.15(ve s)-.25 H .295
-(ignal name).15 F .465(such as)144 160.8 R/F3 9/Times-Bold@0 SF(SIGKILL)
-2.965 E F1 .465(\(with or without the)2.715 F F3(SIG)2.965 E F1 .464
+(ignal name).15 F .465(such as)144 472.8 R F3(SIGKILL)2.965 E F1 .465
+(\(with or without the)2.715 F F3(SIG)2.965 E F1 .464
(pre\214x\) or a signal number;)2.715 F F0(signum)3.304 E F1 .464
-(is a signal number)3.284 F(.)-.55 E(If)144 172.8 Q F0(sigspec)2.84 E F1
+(is a signal number)3.284 F(.)-.55 E(If)144 484.8 Q F0(sigspec)2.84 E F1
(is not supplied, then)2.81 E F2(kill)2.5 E F1(sends)2.5 E F3(SIGTERM)
-2.5 E/F4 9/Times-Roman@0 SF(.)A F1(The)144 189.6 Q F2<ad6c>2.873 E F1
+2.5 E/F4 9/Times-Roman@0 SF(.)A F1(The)144 501.6 Q F2<ad6c>2.873 E F1
.374(option lists the signal names.)2.873 F .374(If an)5.374 F 2.874(ya)
-.15 G -.18(rg)-2.874 G .374(uments are supplied when).18 F F2<ad6c>
2.874 E F1 .374(is gi)2.874 F -.15(ve)-.25 G(n,).15 E F2(kill)2.874 E F1
.374(lists the)2.874 F .12(names of the signals corresponding to the ar)
-144 201.6 R .119(guments, and the return status is 0.)-.18 F(The)5.119 E
+144 513.6 R .119(guments, and the return status is 0.)-.18 F(The)5.119 E
F0 -.2(ex)2.619 G(it_status).2 E F1(ar)2.619 E(-)-.2 E .799(gument to)
-144 213.6 R F2<ad6c>3.299 E F1 .799
+144 525.6 R F2<ad6c>3.299 E F1 .799
(is a number specifying either a signal number or the e)3.299 F .8
(xit status of a process termi-)-.15 F .381
-(nated by a signal; if it is supplied,)144 225.6 R F2(kill)2.881 E F1
+(nated by a signal; if it is supplied,)144 537.6 R F2(kill)2.881 E F1
.381(prints the name of the signal that caused the process to ter)2.881
-F(-)-.2 E(minate.)144 237.6 Q F2(kill)6.09 E F1 1.09
+F(-)-.2 E(minate.)144 549.6 Q F2(kill)6.09 E F1 1.09
(assumes that process e)3.59 F 1.091
(xit statuses are greater than 128; an)-.15 F 1.091
-(ything less than that is a)-.15 F(signal number)144 249.6 Q 5(.T)-.55 G
+(ything less than that is a)-.15 F(signal number)144 561.6 Q 5(.T)-.55 G
(he)-5 E F2<ad4c>2.5 E F1(option is equi)2.5 E -.25(va)-.25 G(lent to)
-.25 E F2<ad6c>2.5 E F1(.)A F2(kill)144 266.4 Q F1 .277
+.25 E F2<ad6c>2.5 E F1(.)A F2(kill)144 578.4 Q F1 .277
(returns true if at least one signal w)2.777 F .277
(as successfully sent, or f)-.1 F .277(alse if an error occurs or an in)
--.1 F -.25(va)-.4 G(lid).25 E(option is encountered.)144 278.4 Q F2(let)
-108 295.2 Q F0(ar)2.5 E(g)-.37 E F1([)2.5 E F0(ar)A(g)-.37 E F1 1.666
-(...)2.5 G(])-1.666 E(Each)144 307.2 Q F0(ar)3.992 E(g)-.37 E F1 1.162
+-.1 F -.25(va)-.4 G(lid).25 E(option is encountered.)144 590.4 Q F2(let)
+108 607.2 Q F0(ar)2.5 E(g)-.37 E F1([)2.5 E F0(ar)A(g)-.37 E F1 1.666
+(...)2.5 G(])-1.666 E(Each)144 619.2 Q F0(ar)3.992 E(g)-.37 E F1 1.162
(is e)3.882 F -.25(va)-.25 G 1.162(luated as an arithmetic e).25 F 1.162
(xpression \(see)-.15 F F3 1.162(ARITHMETIC EV)3.662 F(ALU)-1.215 E
-.855(AT)-.54 G(ION).855 E F1(abo)3.412 E -.15(ve)-.15 G 3.663(\). If)
-.15 F(the last)144 319.2 Q F0(ar)2.83 E(g)-.37 E F1 -.25(eva)2.72 G
+.15 F(the last)144 631.2 Q F0(ar)2.83 E(g)-.37 E F1 -.25(eva)2.72 G
(luates to 0,).25 E F2(let)2.5 E F1(returns 1; otherwise)2.5 E F2(let)
-2.5 E F1(returns 0.)2.5 E F2(local)108 336 Q F1([)2.5 E F0(option)A F1
+2.5 E F1(returns 0.)2.5 E F2(local)108 648 Q F1([)2.5 E F0(option)A F1
2.5(][)C F0(name)-2.5 E F1([=)A F0(value)A F1 2.5(].)C -3.332 1.666
-(.. | \255 ])-.834 H -.15(Fo)144 348 S 2.614(re).15 G .114(ach ar)-2.614
+(.. | \255 ])-.834 H -.15(Fo)144 660 S 2.614(re).15 G .114(ach ar)-2.614
F .114(gument, create a local v)-.18 F .114(ariable named)-.25 F F0
(name)2.974 E F1 .113(and assign it)2.794 F F0(value)2.903 E F1 5.113
(.T).18 G(he)-5.113 E F0(option)2.613 E F1 .113(can be an)2.613 F(y)-.15
-E .909(of the options accepted by)144 360 R F2(declar)3.409 E(e)-.18 E
+E .909(of the options accepted by)144 672 R F2(declar)3.409 E(e)-.18 E
F1 5.909(.W)C(hen)-5.909 E F2(local)3.409 E F1 .91
(is used within a function, it causes the v)3.409 F(ariable)-.25 E F0
-(name)144.36 372 Q F1 .441(to ha)3.121 F .741 -.15(ve a v)-.2 H .441
+(name)144.36 684 Q F1 .441(to ha)3.121 F .741 -.15(ve a v)-.2 H .441
(isible scope restricted to that function and its children.).15 F .44
(It is an error to use)5.44 F F2(local)2.94 E F1
-(when not within a function.)144 384 Q(If)144 400.8 Q F0(name)3.08 E F1
+(when not within a function.)144 696 Q(If)144 712.8 Q F0(name)3.08 E F1
.58(is \255, it mak)3.08 F .581
(es the set of shell options local to the function in which)-.1 F F2
(local)3.081 E F1 .581(is in)3.081 F -.2(vo)-.4 G -.1(ke).2 G .581
-(d: an).1 F(y)-.15 E .352(shell options changed using the)144 412.8 R F2
+(d: an).1 F(y)-.15 E .352(shell options changed using the)144 724.8 R F2
(set)2.851 E F1 -.2(bu)2.851 G .351
(iltin inside the function after the call to).2 F F2(local)2.851 E F1
-.351(are restored to)2.851 F .324(their original v)144 424.8 R .324
+.351(are restored to)2.851 F(GNU Bash 5.3)72 768 Q(2026 January 14)
+141.79 E(79)190.95 E 0 Cg EP
+%%Page: 80 80
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E .324(their original v)144 84 R .324
(alues when the function returns.)-.25 F .324
-(The restore is performed as if a series of)5.324 F F2(set)2.825 E F1
-(com-)2.825 E(mands were e)144 436.8 Q -.15(xe)-.15 G
+(The restore is performed as if a series of)5.324 F/F2 10/Times-Bold@0
+SF(set)2.825 E F1(com-)2.825 E(mands were e)144 96 Q -.15(xe)-.15 G
(cuted to restore the v).15 E
-(alues that were in place before the function.)-.25 E -.4(Wi)144 453.6 S
+(alues that were in place before the function.)-.25 E -.4(Wi)144 112.8 S
(th no operands,).4 E F2(local)2.5 E F1(writes a list of local v)2.5 E
(ariables to the standard output.)-.25 E .341
-(The return status is 0 unless)144 470.4 R F2(local)2.841 E F1 .341
+(The return status is 0 unless)144 129.6 R F2(local)2.841 E F1 .341
(is used outside a function, an in)2.841 F -.25(va)-.4 G(lid).25 E F0
(name)3.201 E F1 .341(is supplied, or)3.021 F F0(name)2.841 E F1
-(is a readonly v)144 482.4 Q(ariable.)-.25 E F2(logout [)108 499.2 Q F0
-(n)A F2(])A F1(Exit a login shell, returning a status of)144 511.2 Q F0
+(is a readonly v)144 141.6 Q(ariable.)-.25 E F2(logout [)108 158.4 Q F0
+(n)A F2(])A F1(Exit a login shell, returning a status of)144 170.4 Q F0
(n)2.5 E F1(to the shell')2.5 E 2.5(sp)-.55 G(arent.)-2.5 E F2
-(map\214le)108 528 Q F1([)2.5 E F2<ad64>A F0(delim)2.5 E F1 2.5(][)C F2
-<ad6e>-2.5 E F0(count)2.5 E F1 2.5(][)C F2<ad4f>-2.5 E F0(origin)2.5 E
+(map\214le)108 187.2 Q F1([)2.5 E F2<ad64>A F0(delim)2.5 E F1 2.5(][)C
+F2<ad6e>-2.5 E F0(count)2.5 E F1 2.5(][)C F2<ad4f>-2.5 E F0(origin)2.5 E
F1 2.5(][)C F2<ad73>-2.5 E F0(count)2.5 E F1 2.5(][)C F2<ad74>-2.5 E F1
2.5(][)C F2<ad75>-2.5 E F0(fd)2.5 E F1 2.5(][)C F2<ad43>-2.5 E F0
(callbac)2.5 E(k)-.2 E F1 2.5(][)C F2<ad63>-2.5 E F0(quantum)2.5 E F1
-2.5(][)C F0(arr)-2.5 E(ay)-.15 E F1(])A F2 -.18(re)108 540 S(adarray).18
-E F1([)2.5 E F2<ad64>A F0(delim)2.5 E F1 2.5(][)C F2<ad6e>-2.5 E F0
+2.5(][)C F0(arr)-2.5 E(ay)-.15 E F1(])A F2 -.18(re)108 199.2 S(adarray)
+.18 E F1([)2.5 E F2<ad64>A F0(delim)2.5 E F1 2.5(][)C F2<ad6e>-2.5 E F0
(count)2.5 E F1 2.5(][)C F2<ad4f>-2.5 E F0(origin)2.5 E F1 2.5(][)C F2
<ad73>-2.5 E F0(count)2.5 E F1 2.5(][)C F2<ad74>-2.5 E F1 2.5(][)C F2
<ad75>-2.5 E F0(fd)2.5 E F1 2.5(][)C F2<ad43>-2.5 E F0(callbac)2.5 E(k)
-.2 E F1 2.5(][)C F2<ad63>-2.5 E F0(quantum)2.5 E F1 2.5(][)C F0(arr)
-2.5 E(ay)-.15 E F1(])A .328
-(Read lines from the standard input, or from \214le descriptor)144 552 R
-F0(fd)4.798 E F1 .328(if the)3.598 F F2<ad75>2.829 E F1 .329
-(option is supplied, into the)2.829 F(inde)144 564 Q -.15(xe)-.15 G 3.49
-(da).15 G .99(rray v)-3.49 F(ariable)-.25 E F0(arr)3.82 E(ay)-.15 E F1
-5.99(.T).32 G .989(he v)-5.99 F(ariable)-.25 E F3(MAPFILE)3.489 E F1
-.989(is the def)3.239 F(ault)-.1 E F0(arr)3.489 E(ay)-.15 E F1 5.989(.O)
-C .989(ptions, if supplied,)-5.989 F(ha)144 576 Q .3 -.15(ve t)-.2 H
-(he follo).15 E(wing meanings:)-.25 E F2<ad64>144 588 Q F1 .281
-(Use the \214rst character of)180 588 R F0(delim)2.781 E F1 .281
-(to terminate each input line, rather than ne)2.781 F 2.782(wline. If)
--.25 F F0(delim)2.782 E F1(is the empty string,)180 600 Q F2(map\214le)
-2.5 E F1(will terminate a line when it reads a NUL character)2.5 E(.)
--.55 E F2<ad6e>144 612 Q F1(Cop)180 612 Q 2.5(ya)-.1 G 2.5(tm)-2.5 G
-(ost)-2.5 E F0(count)2.7 E F1 2.5(lines. If)3.18 F F0(count)2.5 E F1
-(is 0, cop)2.5 E 2.5(ya)-.1 G(ll lines.)-2.5 E F2<ad4f>144 624 Q F1(Be)
-180 624 Q(gin assigning to)-.15 E F0(arr)2.83 E(ay)-.15 E F1(at inde)
-2.82 E(x)-.15 E F0(origin)2.73 E F1 5(.T).24 G(he def)-5 E(ault inde)-.1
-E 2.5(xi)-.15 G 2.5(s0)-2.5 G(.)-2.5 E F2<ad73>144 636 Q F1
-(Discard the \214rst)180 636 Q F0(count)2.5 E F1(lines read.)2.5 E F2
-<ad74>144 648 Q F1(Remo)180 648 Q .3 -.15(ve a t)-.15 H(railing).15 E F0
-(delim)2.5 E F1(\(def)2.5 E(ault ne)-.1 E(wline\) from each line read.)
--.25 E F2<ad75>144 660 Q F1(Read lines from \214le descriptor)180 660 Q
-F0(fd)2.5 E F1(instead of the standard input.)2.5 E F2<ad43>144 672 Q F1
-(Ev)180 672 Q(aluate)-.25 E F0(callbac)2.7 E(k)-.2 E F1(each time)3.17 E
-F0(quantum)2.5 E F1(lines are read.)2.5 E(The)5 E F2<ad63>2.5 E F1
-(option speci\214es)2.5 E F0(quantum)2.75 E F1(.).32 E F2<ad63>144 684 Q
-F1(Specify the number of lines read between each call to)180 684 Q F0
-(callbac)2.7 E(k)-.2 E F1(.).67 E(If)144 700.8 Q F2<ad43>2.968 E F1 .467
+(Read lines from the standard input, or from \214le descriptor)144 211.2
+R F0(fd)4.798 E F1 .328(if the)3.598 F F2<ad75>2.829 E F1 .329
+(option is supplied, into the)2.829 F(inde)144 223.2 Q -.15(xe)-.15 G
+3.49(da).15 G .99(rray v)-3.49 F(ariable)-.25 E F0(arr)3.82 E(ay)-.15 E
+F1 5.99(.T).32 G .989(he v)-5.99 F(ariable)-.25 E/F3 9/Times-Bold@0 SF
+(MAPFILE)3.489 E F1 .989(is the def)3.239 F(ault)-.1 E F0(arr)3.489 E
+(ay)-.15 E F1 5.989(.O)C .989(ptions, if supplied,)-5.989 F(ha)144 235.2
+Q .3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F2<ad64>144
+247.2 Q F1 .281(Use the \214rst character of)180 247.2 R F0(delim)2.781
+E F1 .281(to terminate each input line, rather than ne)2.781 F 2.782
+(wline. If)-.25 F F0(delim)2.782 E F1(is the empty string,)180 259.2 Q
+F2(map\214le)2.5 E F1
+(will terminate a line when it reads a NUL character)2.5 E(.)-.55 E F2
+<ad6e>144 271.2 Q F1(Cop)180 271.2 Q 2.5(ya)-.1 G 2.5(tm)-2.5 G(ost)-2.5
+E F0(count)2.7 E F1 2.5(lines. If)3.18 F F0(count)2.5 E F1(is 0, cop)2.5
+E 2.5(ya)-.1 G(ll lines.)-2.5 E F2<ad4f>144 283.2 Q F1(Be)180 283.2 Q
+(gin assigning to)-.15 E F0(arr)2.83 E(ay)-.15 E F1(at inde)2.82 E(x)
+-.15 E F0(origin)2.73 E F1 5(.T).24 G(he def)-5 E(ault inde)-.1 E 2.5
+(xi)-.15 G 2.5(s0)-2.5 G(.)-2.5 E F2<ad73>144 295.2 Q F1
+(Discard the \214rst)180 295.2 Q F0(count)2.5 E F1(lines read.)2.5 E F2
+<ad74>144 307.2 Q F1(Remo)180 307.2 Q .3 -.15(ve a t)-.15 H(railing).15
+E F0(delim)2.5 E F1(\(def)2.5 E(ault ne)-.1 E
+(wline\) from each line read.)-.25 E F2<ad75>144 319.2 Q F1
+(Read lines from \214le descriptor)180 319.2 Q F0(fd)2.5 E F1
+(instead of the standard input.)2.5 E F2<ad43>144 331.2 Q F1(Ev)180
+331.2 Q(aluate)-.25 E F0(callbac)2.7 E(k)-.2 E F1(each time)3.17 E F0
+(quantum)2.5 E F1(lines are read.)2.5 E(The)5 E F2<ad63>2.5 E F1
+(option speci\214es)2.5 E F0(quantum)2.75 E F1(.).32 E F2<ad63>144 343.2
+Q F1(Specify the number of lines read between each call to)180 343.2 Q
+F0(callbac)2.7 E(k)-.2 E F1(.).67 E(If)144 360 Q F2<ad43>2.968 E F1 .467
(is speci\214ed without)2.967 F F2<ad63>2.967 E F1 2.967(,t)C .467
(he def)-2.967 F .467(ault quantum is 5000.)-.1 F(When)5.467 E F0
(callbac)2.967 E(k)-.2 E F1 .467(is e)2.967 F -.25(va)-.25 G .467
-(luated, it is sup-).25 F .261(plied the inde)144 712.8 R 2.761(xo)-.15
-G 2.761(ft)-2.761 G .261(he ne)-2.761 F .262(xt array element to be ass\
-igned and the line to be assigned to that element)-.15 F .275
-(as additional ar)144 724.8 R(guments.)-.18 E F0(callbac)5.275 E(k)-.2 E
+(luated, it is sup-).25 F .261(plied the inde)144 372 R 2.761(xo)-.15 G
+2.761(ft)-2.761 G .261(he ne)-2.761 F .262(xt array element to be assig\
+ned and the line to be assigned to that element)-.15 F .275
+(as additional ar)144 384 R(guments.)-.18 E F0(callbac)5.275 E(k)-.2 E
F1 .275(is e)2.775 F -.25(va)-.25 G .274
(luated after the line is read b).25 F .274
-(ut before the array element is)-.2 F(GNU Bash 5.3)72 768 Q
-(2025 April 7)149.285 E(78)198.445 E 0 Cg EP
-%%Page: 79 79
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E(assigned.)144 84 Q(If not supplied with an e)144
-100.8 Q(xplicit origin,)-.15 E/F2 10/Times-Bold@0 SF(map\214le)2.5 E F1
-(will clear)2.5 E F0(arr)2.5 E(ay)-.15 E F1(before assigning to it.)2.5
-E F2(map\214le)144 117.6 Q F1 1.065(returns zero unless an in)3.565 F
--.25(va)-.4 G 1.065(lid option or option ar).25 F 1.065
-(gument is supplied,)-.18 F F0(arr)3.566 E(ay)-.15 E F1 1.066(is in)
-3.566 F -.25(va)-.4 G 1.066(lid or).25 F(unassignable, or if)144 129.6 Q
-F0(arr)2.5 E(ay)-.15 E F1(is not an inde)2.5 E -.15(xe)-.15 G 2.5(da).15
-G(rray)-2.5 E(.)-.65 E F2(popd)108 146.4 Q F1<5bad>2.5 E F2(n)A F1 2.5
-(][)C(+)-2.5 E F0(n)A F1 2.5(][)C<ad>-2.5 E F0(n)A F1(])A(Remo)144 158.4
-Q 1.151 -.15(ve e)-.15 H .851(ntries from the directory stack.).15 F .85
+(ut before the array element is)-.2 F(assigned.)144 396 Q
+(If not supplied with an e)144 412.8 Q(xplicit origin,)-.15 E F2
+(map\214le)2.5 E F1(will clear)2.5 E F0(arr)2.5 E(ay)-.15 E F1
+(before assigning to it.)2.5 E F2(map\214le)144 429.6 Q F1 1.065
+(returns zero unless an in)3.565 F -.25(va)-.4 G 1.065
+(lid option or option ar).25 F 1.065(gument is supplied,)-.18 F F0(arr)
+3.566 E(ay)-.15 E F1 1.066(is in)3.566 F -.25(va)-.4 G 1.066(lid or).25
+F(unassignable, or if)144 441.6 Q F0(arr)2.5 E(ay)-.15 E F1
+(is not an inde)2.5 E -.15(xe)-.15 G 2.5(da).15 G(rray)-2.5 E(.)-.65 E
+F2(popd)108 458.4 Q F1<5bad>2.5 E F2(n)A F1 2.5(][)C(+)-2.5 E F0(n)A F1
+2.5(][)C<ad>-2.5 E F0(n)A F1(])A(Remo)144 470.4 Q 1.151 -.15(ve e)-.15 H
+.851(ntries from the directory stack.).15 F .85
(The elements are numbered from 0 starting at the \214rst)5.851 F .848
-(directory listed by)144 170.4 R F2(dirs)3.348 E F1 3.348(,s)C(o)-3.348
+(directory listed by)144 482.4 R F2(dirs)3.348 E F1 3.348(,s)C(o)-3.348
E F2(popd)3.348 E F1 .848(is equi)3.348 F -.25(va)-.25 G .848
(lent to \231popd +0.).25 F 5.848<9a57>-.7 G .848(ith no ar)-6.248 F
(guments,)-.18 E F2(popd)3.348 E F1(remo)3.348 E -.15(ve)-.15 G(s).15 E
-1.143(the top directory from the stack, and changes to the ne)144 182.4
+1.143(the top directory from the stack, and changes to the ne)144 494.4
R 3.642(wt)-.25 G 1.142(op directory)-3.642 F 6.142(.A)-.65 G -.18(rg)
--6.142 G 1.142(uments, if supplied,).18 F(ha)144 194.4 Q .3 -.15(ve t)
--.2 H(he follo).15 E(wing meanings:)-.25 E F2<ad6e>144 206.4 Q F1 .504
-(Suppress the normal change of directory when remo)180 206.4 R .504
+-6.142 G 1.142(uments, if supplied,).18 F(ha)144 506.4 Q .3 -.15(ve t)
+-.2 H(he follo).15 E(wing meanings:)-.25 E F2<ad6e>144 518.4 Q F1 .504
+(Suppress the normal change of directory when remo)180 518.4 R .504
(ving directories from the stack, only)-.15 F(manipulate the stack.)180
-218.4 Q F2(+)144 230.4 Q F0(n)A F1(Remo)180 230.4 Q .684 -.15(ve t)-.15
+530.4 Q F2(+)144 542.4 Q F0(n)A F1(Remo)180 542.4 Q .684 -.15(ve t)-.15
H(he).15 E F0(n)2.884 E F1 .383
(th entry counting from the left of the list sho)B .383(wn by)-.25 F F2
(dirs)2.883 E F1 2.883(,s)C .383(tarting with zero,)-2.883 F .776
-(from the stack.)180 242.4 R -.15(Fo)5.776 G 3.276(re).15 G .776
+(from the stack.)180 554.4 R -.15(Fo)5.776 G 3.276(re).15 G .776
(xample: \231popd +0\232 remo)-3.426 F -.15(ve)-.15 G 3.276(st).15 G
.777(he \214rst directory)-3.276 F 3.277<2c99>-.65 G .777
-(popd +1\232 the sec-)-3.277 F(ond.)180 254.4 Q F2<ad>144 266.4 Q F0(n)A
-F1(Remo)180 266.4 Q .336 -.15(ve t)-.15 H(he).15 E F0(n)2.536 E F1 .036
+(popd +1\232 the sec-)-3.277 F(ond.)180 566.4 Q F2<ad>144 578.4 Q F0(n)A
+F1(Remo)180 578.4 Q .336 -.15(ve t)-.15 H(he).15 E F0(n)2.536 E F1 .036
(th entry counting from the right of the list sho)B .035(wn by)-.25 F F2
(dirs)2.535 E F1 2.535(,s)C .035(tarting with zero.)-2.535 F -.15(Fo)180
-278.4 S 2.5(re).15 G(xample: \231popd \2550\232 remo)-2.65 E -.15(ve)
+590.4 S 2.5(re).15 G(xample: \231popd \2550\232 remo)-2.65 E -.15(ve)
-.15 G 2.5(st).15 G(he last directory)-2.5 E 2.5<2c99>-.65 G
-(popd \2551\232 the ne)-2.5 E(xt to last.)-.15 E 1.057
+(popd \2551\232 the ne)-2.5 E(xt to last.)-.15 E 1.086
(If the top element of the directory stack is modi\214ed, and the)144
-295.2 R F0<ad6e>3.558 E F1 1.058(option w)3.558 F 1.058
-(as not supplied,)-.1 F F2(popd)3.558 E F1 .25(uses the)144 307.2 R F2
+607.2 R F2<ad6e>3.587 E F1 1.087(option w)3.587 F 1.087
+(as not supplied,)-.1 F F2(popd)3.587 E F1 .25(uses the)144 619.2 R F2
(cd)2.749 E F1 -.2(bu)2.749 G .249
(iltin to change to the directory at the top of the stack.).2 F .249
(If the)5.249 F F2(cd)2.749 E F1 -.1(fa)2.749 G(ils,).1 E F2(popd)2.749
-E F1 .249(returns a)2.749 F(non-zero v)144 319.2 Q(alue.)-.25 E
-(Otherwise,)144 336 Q F2(popd)3.571 E F1 1.072(returns f)3.571 F 1.072
+E F1 .249(returns a)2.749 F(non-zero v)144 631.2 Q(alue.)-.25 E
+(Otherwise,)144 648 Q F2(popd)3.571 E F1 1.072(returns f)3.571 F 1.072
(alse if an in)-.1 F -.25(va)-.4 G 1.072
(lid option is supplied, the directory stack is empty).25 F 3.572(,o)
--.65 G(r)-3.572 E F0(n)3.572 E F1(speci\214es a non-e)144 348 Q
-(xistent directory stack entry)-.15 E(.)-.65 E 1.451(If the)144 364.8 R
+-.65 G(r)-3.572 E F0(n)3.572 E F1(speci\214es a non-e)144 660 Q
+(xistent directory stack entry)-.15 E(.)-.65 E 1.451(If the)144 676.8 R
F2(popd)3.951 E F1 1.451(command is successful,)3.951 F F2(bash)3.951 E
F1(runs)3.951 E F2(dirs)3.951 E F1 1.451(to sho)3.951 F 3.95(wt)-.25 G
1.45(he \214nal contents of the directory)-3.95 F
-(stack, and the return status is 0.)144 376.8 Q F2(printf)108 393.6 Q F1
+(stack, and the return status is 0.)144 688.8 Q F2(printf)108 705.6 Q F1
([)2.5 E F2<ad76>A F0(var)2.5 E F1(])A F0(format)2.5 E F1([)2.5 E F0(ar)
-A(guments)-.37 E F1(])A .357(Write the formatted)144 405.6 R F0(ar)2.857
+A(guments)-.37 E F1(])A .357(Write the formatted)144 717.6 R F0(ar)2.857
E(guments)-.37 E F1 .357
(to the standard output under the control of the)2.857 F F0(format)2.858
E F1 5.358(.T)C(he)-5.358 E F2<ad76>2.858 E F1(op-)2.858 E
-(tion assigns the output to the v)144 417.6 Q(ariable)-.25 E F0(var)2.5
-E F1(rather than printing it to the standard output.)2.5 E(The)144 434.4
-Q F0(format)3.018 E F1 .517(is a character string which contains three \
-types of objects: plain characters, which are)3.018 F .704(simply copie\
-d to standard output, character escape sequences, which are con)144
-446.4 R -.15(ve)-.4 G .704(rted and copied to).15 F .036(the standard o\
-utput, and format speci\214cations, each of which causes printing of th\
-e ne)144 458.4 R .036(xt successi)-.15 F -.15(ve)-.25 G F0(ar)144 470.4
-Q(gument)-.37 E F1 7.824(.I)C 5.324(na)-7.824 G 2.824
-(ddition to the standard)-5.324 F F0(printf)6.575 E F1 2.825
-(\(3\) format characters)1.96 F F2(cCsSndiouxXeEfFgGaA)5.325 E F1(,)A F2
-(printf)144 482.4 Q F1(interprets the follo)2.5 E
-(wing additional format speci\214ers:)-.25 E F2(%b)144 494.4 Q F1
-(causes)180 494.4 Q F2(printf)2.596 E F1 .096(to e)2.596 F .096
-(xpand backslash escape sequences in the corresponding)-.15 F F0(ar)
-2.596 E(gument)-.37 E F1 .095(in the)2.595 F(same w)180 506.4 Q(ay as)
--.1 E F2(echo \255e)2.5 E F1(.)A F2(%q)144 518.4 Q F1(causes)180 518.4 Q
-F2(printf)2.51 E F1 .01(to output the corresponding)2.51 F F0(ar)2.51 E
+(tion assigns the output to the v)144 729.6 Q(ariable)-.25 E F0(var)2.5
+E F1(rather than printing it to the standard output.)2.5 E(GNU Bash 5.3)
+72 768 Q(2026 January 14)141.79 E(80)190.95 E 0 Cg EP
+%%Page: 81 81
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E(The)144 84 Q F0(format)3.018 E F1 .517(is a charac\
+ter string which contains three types of objects: plain characters, whi\
+ch are)3.018 F .704(simply copied to standard output, character escape \
+sequences, which are con)144 96 R -.15(ve)-.4 G .704(rted and copied to)
+.15 F .036(the standard output, and format speci\214cations, each of wh\
+ich causes printing of the ne)144 108 R .036(xt successi)-.15 F -.15(ve)
+-.25 G F0(ar)144 120 Q(gument)-.37 E F1 7.824(.I)C 5.324(na)-7.824 G
+2.824(ddition to the standard)-5.324 F F0(printf)6.575 E F1 2.825
+(\(3\) format characters)1.96 F/F2 10/Times-Bold@0 SF
+(cCsSndiouxXeEfFgGaA)5.325 E F1(,)A F2(printf)144 132 Q F1
+(interprets the follo)2.5 E(wing additional format speci\214ers:)-.25 E
+F2(%b)144 144 Q F1(causes)180 144 Q F2(printf)2.596 E F1 .096(to e)2.596
+F .096(xpand backslash escape sequences in the corresponding)-.15 F F0
+(ar)2.596 E(gument)-.37 E F1 .095(in the)2.595 F(same w)180 156 Q(ay as)
+-.1 E F2(echo \255e)2.5 E F1(.)A F2(%q)144 168 Q F1(causes)180 168 Q F2
+(printf)2.51 E F1 .01(to output the corresponding)2.51 F F0(ar)2.51 E
(gument)-.37 E F1 .01(in a format that can be reused as shell)2.51 F
-(input.)180 530.4 Q F2(%q)5.544 E F1(and)3.044 E F2(%Q)3.044 E F1 .544
+(input.)180 180 Q F2(%q)5.544 E F1(and)3.044 E F2(%Q)3.044 E F1 .544
(use the)3.044 F F2<240808>3.044 E F1 .544(quoting style if an)3.044 F
3.044(yc)-.15 G .543(haracters in the ar)-3.044 F .543
(gument string re-)-.18 F 1.285
-(quire it, and backslash quoting otherwise.)180 542.4 R 1.286
+(quire it, and backslash quoting otherwise.)180 192 R 1.286
(If the format string uses the)6.285 F F0(printf)3.786 E F1(alternate)
-3.786 E(form, these tw)180 554.4 Q 2.5(of)-.1 G(ormats quote the ar)-2.5
-E(gument string using single quotes.)-.18 E F2(%Q)144 566.4 Q F1(lik)180
-566.4 Q(e)-.1 E F2(%q)2.5 E F1 2.5(,b)C(ut applies an)-2.7 E 2.5(ys)-.15
-G(upplied precision to the)-2.5 E F0(ar)2.5 E(gument)-.37 E F1
-(before quoting it.)2.5 E F2(%\()144 578.4 Q F0(datefmt)A F2(\)T)A F1
-(causes)180 590.4 Q F2(printf)4.404 E F1 1.904
+3.786 E(form, these tw)180 204 Q 2.5(of)-.1 G(ormats quote the ar)-2.5 E
+(gument string using single quotes.)-.18 E F2(%Q)144 216 Q F1(lik)180
+216 Q(e)-.1 E F2(%q)2.5 E F1 2.5(,b)C(ut applies an)-2.7 E 2.5(ys)-.15 G
+(upplied precision to the)-2.5 E F0(ar)2.5 E(gument)-.37 E F1
+(before quoting it.)2.5 E F2(%\()144 228 Q F0(datefmt)A F2(\)T)A F1
+(causes)180 240 Q F2(printf)4.404 E F1 1.904
(to output the date-time string resulting from using)4.404 F F0(datefmt)
-4.404 E F1 1.903(as a format)4.404 F .333(string for)180 602.4 R F0
+4.404 E F1 1.903(as a format)4.404 F .333(string for)180 252 R F0
(strftime)3.173 E F1 2.833(\(3\). The).18 F(corresponding)2.833 E F0(ar)
2.834 E(gument)-.37 E F1 .334(is an inte)2.834 F .334
(ger representing the number)-.15 F .977(of seconds since the epoch.)180
-614.4 R .977(This format speci\214er recognizes tw)5.977 F 3.476(os)-.1
-G .976(pecial ar)-3.476 F .976(gument v)-.18 F(al-)-.25 E .602(ues: \
-\2551 represents the current time, and \2552 represents the time the sh\
-ell w)180 626.4 R .602(as in)-.1 F -.2(vo)-.4 G -.1(ke).2 G 3.102(d. If)
-.1 F .747(no ar)180 638.4 R .747(gument is speci\214ed, con)-.18 F -.15
-(ve)-.4 G .747(rsion beha).15 F -.15(ve)-.2 G 3.247(sa).15 G 3.247(si)
--3.247 G 3.247<66ad>-3.247 G 3.247(1h)-3.247 G .747(ad been supplied.)
--3.247 F .746(This is an e)5.746 F(x-)-.15 E(ception to the usual)180
-650.4 Q F2(printf)2.5 E F1(beha)2.5 E(vior)-.2 E(.)-.55 E .946(The %b, \
-%q, and %T format speci\214ers all use the \214eld width and precision \
-ar)144 667.2 R .946(guments from the)-.18 F .339
-(format speci\214cation and write that man)144 679.2 R 2.838(yb)-.15 G
+264 R .977(This format speci\214er recognizes tw)5.977 F 3.476(os)-.1 G
+.976(pecial ar)-3.476 F .976(gument v)-.18 F(al-)-.25 E .602(ues: \2551\
+ represents the current time, and \2552 represents the time the shell w)
+180 276 R .602(as in)-.1 F -.2(vo)-.4 G -.1(ke).2 G 3.102(d. If).1 F
+.747(no ar)180 288 R .747(gument is speci\214ed, con)-.18 F -.15(ve)-.4
+G .747(rsion beha).15 F -.15(ve)-.2 G 3.247(sa).15 G 3.247(si)-3.247 G
+3.247<66ad>-3.247 G 3.247(1h)-3.247 G .747(ad been supplied.)-3.247 F
+.746(This is an e)5.746 F(x-)-.15 E(ception to the usual)180 300 Q F2
+(printf)2.5 E F1(beha)2.5 E(vior)-.2 E(.)-.55 E .946(The %b, %q, and %T\
+ format speci\214ers all use the \214eld width and precision ar)144
+316.8 R .946(guments from the)-.18 F .339
+(format speci\214cation and write that man)144 328.8 R 2.838(yb)-.15 G
.338(ytes from \(or use that wide a \214eld for\) the e)-2.838 F .338
(xpanded ar)-.15 F(-)-.2 E
(gument, which usually contains more characters than the original.)144
-691.2 Q(The %n format speci\214er accepts a corresponding ar)144 708 Q
-(gument that is treated as a shell v)-.18 E(ariable name.)-.25 E
-(GNU Bash 5.3)72 768 Q(2025 April 7)149.285 E(79)198.445 E 0 Cg EP
-%%Page: 80 80
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E .393
+340.8 Q(The %n format speci\214er accepts a corresponding ar)144 357.6 Q
+(gument that is treated as a shell v)-.18 E(ariable name.)-.25 E .393
(The %s and %c format speci\214ers accept an l \(long\) modi\214er)144
-84 R 2.894(,w)-.4 G .394(hich forces them to con)-2.894 F -.15(ve)-.4 G
-.394(rt the ar).15 F(-)-.2 E .321
-(gument string to a wide-character string and apply an)144 96 R 2.821
+374.4 R 2.894(,w)-.4 G .394(hich forces them to con)-2.894 F -.15(ve)-.4
+G .394(rt the ar).15 F(-)-.2 E .321
+(gument string to a wide-character string and apply an)144 386.4 R 2.821
(ys)-.15 G .32(upplied \214eld width and precision in terms)-2.821 F
-.308(of characters, not bytes.)144 108 R .308
+.308(of characters, not bytes.)144 398.4 R .308
(The %S and %C format speci\214ers are equi)5.308 F -.25(va)-.25 G .308
-(lent to %ls and %lc, respec-).25 F(ti)144 120 Q -.15(ve)-.25 G(ly).15 E
-(.)-.65 E(Ar)144 136.8 Q .464(guments to non-string format speci\214ers\
- are treated as C constants, e)-.18 F .463(xcept that a leading plus or)
--.15 F .359(minus sign is allo)144 148.8 R .359
+(lent to %ls and %lc, respec-).25 F(ti)144 410.4 Q -.15(ve)-.25 G(ly).15
+E(.)-.65 E(Ar)144 427.2 Q .464(guments to non-string format speci\214er\
+s are treated as C constants, e)-.18 F .463
+(xcept that a leading plus or)-.15 F .359(minus sign is allo)144 439.2 R
+.359
(wed, and if the leading character is a single or double quote, the v)
--.25 F .36(alue is the nu-)-.25 F(meric v)144 160.8 Q(alue of the follo)
+-.25 F .36(alue is the nu-)-.25 F(meric v)144 451.2 Q(alue of the follo)
-.25 E(wing character)-.25 E 2.5(,u)-.4 G(sing the current locale.)-2.5
-E(The)144 177.6 Q F0(format)2.515 E F1 .015
+E -.15(Fo)144 468 S .429(rmat speci\214ers may apply to the).15 F F0(n)
+2.929 E F1 .429(th ar)B .429(gument rather than the ne)-.18 F .428
+(xt sequential ar)-.15 F 2.928(gument. In)-.18 F(this)2.928 E .216(case\
+, the '%' in the format speci\214er is replaced by the sequence \231%)
+144 480 R F0(n)A F1 .216($\232, where)B F0(n)2.716 E F1 .217
+(is a decimal inte-)2.716 F .91(ger greater than 0, gi)144 492 R .91
+(ving the ar)-.25 F .909(gument number to use as the operand.)-.18 F
+.909(The format string should)5.909 F .58
+(not mix numbered and unnumbered ar)144 504 R .58
+(gument speci\214ers, though this is allo)-.18 F 3.08(wed. Unnumbered)
+-.25 F(ar)3.08 E(-)-.2 E .7(gument speci\214ers al)144 516 R -.1(wa)-.1
+G .7(ys refer to the ne).1 F .7(xt ar)-.15 F .7(gument follo)-.18 F .7
+(wing the last ar)-.25 F .7(gument consumed by an)-.18 F 1.164
+(unnumbered speci\214er; numbered ar)144 528 R 1.165
+(gument speci\214ers refer to absolute positions in the ar)-.18 F
+(gument)-.18 E(list.)144 540 Q(The)144 556.8 Q F0(format)2.515 E F1 .015
(is reused as necessary to consume all of the)2.515 F F0(ar)2.515 E
(guments)-.37 E F1 5.015(.I)C 2.514(ft)-5.015 G(he)-2.514 E F0(format)
2.514 E F1 .014(requires more)2.514 F F0(ar)2.514 E(-)-.2 E(guments)144
-189.6 Q F1 .565(than are supplied, the e)3.065 F .566
+568.8 Q F1 .565(than are supplied, the e)3.065 F .566
(xtra format speci\214cations beha)-.15 F .866 -.15(ve a)-.2 H 3.066(si)
.15 G 3.066(faz)-3.066 G .566(ero v)-3.066 F .566(alue or null string,)
--.25 F .542(as appropriate, had been supplied.)144 201.6 R .541
-(The return v)5.541 F .541(alue is zero on success, non-zero if an in)
--.25 F -.25(va)-.4 G .541(lid op-).25 F
-(tion is supplied or a write or assignment error occurs.)144 213.6 Q/F2
-10/Times-Bold@0 SF(pushd)108 230.4 Q F1([)2.5 E F2<ad6e>A F1 2.5(][)C(+)
--2.5 E F0(n)A F1 2.5(][)C<ad>-2.5 E F0(n)A F1(])A F2(pushd)108 242.4 Q
-F1([)2.5 E F2<ad6e>A F1 2.5(][)C F0(dir)-2.5 E F1(])A 1.049(Add a direc\
-tory to the top of the directory stack, or rotate the stack, making the\
- ne)144 254.4 R 3.549(wt)-.25 G 1.049(op of the)-3.549 F .089
-(stack the current w)144 266.4 R .089(orking directory)-.1 F 5.089(.W)
+-.25 F 1.786(as appropriate, had been supplied.)144 580.8 R(If)6.786 E
+F0(format)4.285 E F1 1.785(is reused, a numbered ar)4.285 F 1.785
+(gument speci\214er \231%)-.18 F F0(n)A F1<249a>A .017(refers to the)144
+592.8 R F0(n)2.518 E F1 .018(th ar)B .018(gument follo)-.18 F .018
+(wing the highest numbered ar)-.25 F .018(gument consumed by the pre)
+-.18 F .018(vious use)-.25 F(of)144 604.8 Q F0(format)2.5 E F1(.)A .527
+(The return v)144 621.6 R .526
+(alue is zero on success, non-zero if an in)-.25 F -.25(va)-.4 G .526
+(lid option is supplied or a write or assign-).25 F(ment error occurs.)
+144 633.6 Q F2(pushd)108 650.4 Q F1([)2.5 E F2<ad6e>A F1 2.5(][)C(+)-2.5
+E F0(n)A F1 2.5(][)C<ad>-2.5 E F0(n)A F1(])A F2(pushd)108 662.4 Q F1([)
+2.5 E F2<ad6e>A F1 2.5(][)C F0(dir)-2.5 E F1(])A 1.049(Add a directory \
+to the top of the directory stack, or rotate the stack, making the ne)
+144 674.4 R 3.549(wt)-.25 G 1.049(op of the)-3.549 F .089
+(stack the current w)144 686.4 R .089(orking directory)-.1 F 5.089(.W)
-.65 G .089(ith no ar)-5.489 F(guments,)-.18 E F2(pushd)2.589 E F1 -.15
(ex)2.588 G .088(changes the top tw).15 F 2.588(oe)-.1 G .088
-(lements of)-2.588 F(the directory stack.)144 278.4 Q(Ar)5 E
+(lements of)-2.588 F(the directory stack.)144 698.4 Q(Ar)5 E
(guments, if supplied, ha)-.18 E .3 -.15(ve t)-.2 H(he follo).15 E
-(wing meanings:)-.25 E F2<ad6e>144 290.4 Q F1 .347(Suppress the normal \
-change of directory when rotating or adding directories to the stack,)
-180 290.4 R(only manipulate the stack.)180 302.4 Q F2(+)144 314.4 Q F0
-(n)A F1 .147(Rotate the stack so that the)180 314.4 R F0(n)2.647 E F1
+(wing meanings:)-.25 E(GNU Bash 5.3)72 768 Q(2026 January 14)141.79 E
+(81)190.95 E 0 Cg EP
+%%Page: 82 82
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF<ad6e>144 84 Q F1 .347(Suppre\
+ss the normal change of directory when rotating or adding directories t\
+o the stack,)180 84 R(only manipulate the stack.)180 96 Q F2(+)144 108 Q
+F0(n)A F1 .147(Rotate the stack so that the)180 108 R F0(n)2.647 E F1
.147(th directory \(counting from the left of the list sho)B .147(wn by)
-.25 F F2(dirs)2.647 E F1(,)A(starting with zero\) is at the top.)180
-326.4 Q F2<ad>144 338.4 Q F0(n)A F1 .92(Rotates the stack so that the)
-180 338.4 R F0(n)3.42 E F1 .92
+120 Q F2<ad>144 132 Q F0(n)A F1 .92(Rotates the stack so that the)180
+132 R F0(n)3.42 E F1 .92
(th directory \(counting from the right of the list sho)B .92(wn by)-.25
-F F2(dirs)180 350.4 Q F1 2.5(,s)C(tarting with zero\) is at the top.)
--2.5 E F0(dir)144.35 362.4 Q F1(Adds)180 362.4 Q F0(dir)2.85 E F1
+F F2(dirs)180 144 Q F1 2.5(,s)C(tarting with zero\) is at the top.)-2.5
+E F0(dir)144.35 156 Q F1(Adds)180 156 Q F0(dir)2.85 E F1
(to the directory stack at the top.)3.23 E .435
-(After the stack has been modi\214ed, if the)144 379.2 R F2<ad6e>2.935 E
+(After the stack has been modi\214ed, if the)144 172.8 R F2<ad6e>2.935 E
F1 .434(option w)2.934 F .434(as not supplied,)-.1 F F2(pushd)2.934 E F1
.434(uses the)2.934 F F2(cd)2.934 E F1 -.2(bu)2.934 G .434(iltin to).2 F
-(change to the directory at the top of the stack.)144 391.2 Q(If the)5 E
+(change to the directory at the top of the stack.)144 184.8 Q(If the)5 E
F2(cd)2.5 E F1 -.1(fa)2.5 G(ils,).1 E F2(pushd)2.5 E F1
(returns a non-zero v)2.5 E(alue.)-.25 E .907(Otherwise, if no ar)144
-408 R .908(guments are supplied,)-.18 F F2(pushd)3.408 E F1 .908
+201.6 R .908(guments are supplied,)-.18 F F2(pushd)3.408 E F1 .908
(returns zero unless the directory stack is empty)3.408 F(.)-.65 E 1.478
-(When rotating the directory stack,)144 420 R F2(pushd)3.978 E F1 1.477
-(returns zero unless the directory stack is empty or)3.977 F F0(n)3.977
-E F1(speci\214es a non-e)144 432 Q(xistent directory stack element.)-.15
-E 1.172(If the)144 448.8 R F2(pushd)3.672 E F1 1.172
-(command is successful,)3.672 F F2(bash)3.672 E F1(runs)3.672 E F2(dirs)
-3.672 E F1 1.173(to sho)3.673 F 3.673(wt)-.25 G 1.173
-(he \214nal contents of the directory)-3.673 F(stack.)144 460.8 Q F2
-(pwd)108 477.6 Q F1([)2.5 E F2(\255LP)A F1(])A .845
-(Print the absolute pathname of the current w)144 489.6 R .845
+(When rotating the directory stack,)144 213.6 R F2(pushd)3.978 E F1
+1.477(returns zero unless the directory stack is empty or)3.977 F F0(n)
+3.977 E F1(speci\214es a non-e)144 225.6 Q
+(xistent directory stack element.)-.15 E 1.172(If the)144 242.4 R F2
+(pushd)3.672 E F1 1.172(command is successful,)3.672 F F2(bash)3.672 E
+F1(runs)3.672 E F2(dirs)3.672 E F1 1.173(to sho)3.673 F 3.673(wt)-.25 G
+1.173(he \214nal contents of the directory)-3.673 F(stack.)144 254.4 Q
+F2(pwd)108 271.2 Q F1([)2.5 E F2(\255LP)A F1(])A .845
+(Print the absolute pathname of the current w)144 283.2 R .845
(orking directory)-.1 F 5.844(.T)-.65 G .844
(he pathname printed contains no)-5.844 F .181(symbolic links if the)144
-501.6 R F2<ad50>2.681 E F1 .181(option is supplied or the)2.681 F F2
+295.2 R F2<ad50>2.681 E F1 .181(option is supplied or the)2.681 F F2
.181(\255o ph)2.681 F(ysical)-.15 E F1 .181(option to the)2.681 F F2
(set)2.681 E F1 -.2(bu)2.681 G .182(iltin command is).2 F 3.264
-(enabled. If)144 513.6 R(the)3.264 E F2<ad4c>3.264 E F1 .763
+(enabled. If)144 307.2 R(the)3.264 E F2<ad4c>3.264 E F1 .763
(option is used, the pathname printed may contain symbolic links.)3.264
F .763(The return)5.763 F .405(status is 0 unless an error occurs while\
- reading the name of the current directory or an in)144 525.6 R -.25(va)
--.4 G .405(lid op-).25 F(tion is supplied.)144 537.6 Q F2 -.18(re)108
-554.4 S(ad).18 E F1([)2.5 E F2(\255Eers)A F1 2.5(][)C F2<ad61>-2.5 E F0
+ reading the name of the current directory or an in)144 319.2 R -.25(va)
+-.4 G .405(lid op-).25 F(tion is supplied.)144 331.2 Q F2 -.18(re)108
+348 S(ad).18 E F1([)2.5 E F2(\255Eers)A F1 2.5(][)C F2<ad61>-2.5 E F0
(aname)2.5 E F1 2.5(][)C F2<ad64>-2.5 E F0(delim)2.5 E F1 2.5(][)C F2
<ad69>-2.5 E F0(te)2.5 E(xt)-.2 E F1 2.5(][)C F2<ad6e>-2.5 E F0(nc)2.5 E
(har)-.15 E(s)-.1 E F1 2.5(][)C F2<ad4e>-2.5 E F0(nc)2.5 E(har)-.15 E(s)
-.1 E F1 2.5(][)C F2<ad70>-2.5 E F0(pr)2.5 E(ompt)-.45 E F1 2.5(][)C F2
<ad74>-2.5 E F0(timeout)2.5 E F1 2.5(][)C F2<ad75>-2.5 E F0(fd)2.5 E F1
-(])A([)108 566.4 Q F0(name)A F1 1.666(...)2.5 G(])-1.666 E .146
+(])A([)108 360 Q F0(name)A F1 1.666(...)2.5 G(])-1.666 E .146
(Read one line from the standard input, or from the \214le descriptor)
-144 578.4 R F0(fd)2.645 E F1 .145(supplied as an ar)2.645 F .145
-(gument to the)-.18 F F2<ad75>144 590.4 Q F1 .618
-(option, split it into w)3.118 F .618(ords as described abo)-.1 F .918
--.15(ve u)-.15 H(nder).15 E F2 -.75(Wo)3.118 G .618(rd Splitting).75 F
-F1 3.118(,a)C .618(nd assign the \214rst w)-3.118 F(ord)-.1 E .844
-(to the \214rst)144 602.4 R F0(name)3.704 E F1 3.344(,t).18 G .844
-(he second w)-3.344 F .844(ord to the second)-.1 F F0(name)3.704 E F1
-3.344(,a).18 G .844(nd so on.)-3.344 F .843(If there are more w)5.843 F
-.843(ords than)-.1 F .052(names, the remaining w)144 614.4 R .052
-(ords and their interv)-.1 F .052
-(ening delimiters are assigned to the last)-.15 F F0(name)2.912 E F1
-5.052(.I).18 G 2.552(ft)-5.052 G(here)-2.552 E .541(are fe)144 626.4 R
+144 372 R F0(fd)2.645 E F1 .145(supplied as an ar)2.645 F .145
+(gument to the)-.18 F F2<ad75>144 384 Q F1 .618(option, split it into w)
+3.118 F .618(ords as described abo)-.1 F .918 -.15(ve u)-.15 H(nder).15
+E F2 -.75(Wo)3.118 G .618(rd Splitting).75 F F1 3.118(,a)C .618
+(nd assign the \214rst w)-3.118 F(ord)-.1 E .844(to the \214rst)144 396
+R F0(name)3.704 E F1 3.344(,t).18 G .844(he second w)-3.344 F .844
+(ord to the second)-.1 F F0(name)3.704 E F1 3.344(,a).18 G .844
+(nd so on.)-3.344 F .843(If there are more w)5.843 F .843(ords than)-.1
+F .052(names, the remaining w)144 408 R .052(ords and their interv)-.1 F
+.052(ening delimiters are assigned to the last)-.15 F F0(name)2.912 E F1
+5.052(.I).18 G 2.552(ft)-5.052 G(here)-2.552 E .541(are fe)144 420 R
.541(wer w)-.25 F .541(ords read from the input stream than names, the \
-remaining names are assigned empty)-.1 F -.25(va)144 638.4 S 3.2
+remaining names are assigned empty)-.1 F -.25(va)144 432 S 3.2
(lues. The).25 F .7(characters in the v)3.2 F .7(alue of the)-.25 F/F3 9
/Times-Bold@0 SF(IFS)3.2 E F1 -.25(va)2.95 G .701
(riable are used to split the line into w).25 F .701(ords using)-.1 F
-.956(the same rules the shell uses for e)144 650.4 R .956
+.956(the same rules the shell uses for e)144 444 R .956
(xpansion \(described abo)-.15 F 1.256 -.15(ve u)-.15 H(nder).15 E F2
-.75(Wo)3.455 G .955(rd Splitting).75 F F1 3.455(\). The)B(back-)3.455 E
-1.183(slash character \()144 662.4 R F2(\\)A F1 3.683(\)r)C(emo)-3.683 E
+1.183(slash character \()144 456 R F2(\\)A F1 3.683(\)r)C(emo)-3.683 E
-.15(ve)-.15 G 3.683(sa).15 G 1.484 -.15(ny s)-3.683 H 1.184
(pecial meaning for the ne).15 F 1.184
-(xt character read and is used for line)-.15 F(continuation.)144 674.4 Q
-(Options, if supplied, ha)144 691.2 Q .3 -.15(ve t)-.2 H(he follo).15 E
-(wing meanings:)-.25 E F2<ad61>144 703.2 Q F0(aname)2.5 E F1 1.026
-(The w)180 715.2 R 1.026
+(xt character read and is used for line)-.15 F(continuation.)144 468 Q
+(Options, if supplied, ha)144 484.8 Q .3 -.15(ve t)-.2 H(he follo).15 E
+(wing meanings:)-.25 E F2<ad61>144 496.8 Q F0(aname)2.5 E F1 1.026
+(The w)180 508.8 R 1.026
(ords are assigned to sequential indices of the array v)-.1 F(ariable)
-.25 E F0(aname)3.855 E F1 3.525(,s).18 G 1.025(tarting at 0.)-3.525 F
-F0(aname)180.33 727.2 Q F1(is unset before an)2.68 E 2.5(yn)-.15 G .5
+F0(aname)180.33 520.8 Q F1(is unset before an)2.68 E 2.5(yn)-.15 G .5
-.25(ew va)-2.5 H(lues are assigned.).25 E(Other)5 E F0(name)2.5 E F1
-(ar)2.5 E(guments are ignored.)-.18 E(GNU Bash 5.3)72 768 Q
-(2025 April 7)149.285 E(80)198.445 E 0 Cg EP
-%%Page: 81 81
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF<ad64>144 84 Q F0(delim)2.5 E
-F1 .502(The \214rst character of)180 96 R F0(delim)3.002 E F1 .503
+(ar)2.5 E(guments are ignored.)-.18 E F2<ad64>144 532.8 Q F0(delim)2.5 E
+F1 .502(The \214rst character of)180 544.8 R F0(delim)3.002 E F1 .503
(terminates the input line, rather than ne)3.002 F 3.003(wline. If)-.25
-F F0(delim)3.003 E F1 .503(is the)3.003 F(empty string,)180 108 Q F2
+F F0(delim)3.003 E F1 .503(is the)3.003 F(empty string,)180 556.8 Q F2
-.18(re)2.5 G(ad).18 E F1
(will terminate a line when it reads a NUL character)2.5 E(.)-.55 E F2
-<ad65>144 120 Q F1 1.762
-(If the standard input is coming from a terminal,)180 120 R F2 -.18(re)
-4.261 G(ad).18 E F1(uses)4.261 E F2 -.18(re)4.261 G(adline).18 E F1
-(\(see)4.261 E/F3 9/Times-Bold@0 SF(READLINE)4.261 E F1(abo)180 132 Q
--.15(ve)-.15 G 3.573(\)t).15 G 3.573(oo)-3.573 G 1.073(btain the line.)
--3.573 F F2(Readline)6.073 E F1 1.073(uses the current \(or def)3.573 F
-1.074(ault, if line editing w)-.1 F 1.074(as not)-.1 F(pre)180 144 Q
+<ad65>144 568.8 Q F1 1.762
+(If the standard input is coming from a terminal,)180 568.8 R F2 -.18
+(re)4.261 G(ad).18 E F1(uses)4.261 E F2 -.18(re)4.261 G(adline).18 E F1
+(\(see)4.261 E F3(READLINE)4.261 E F1(abo)180 580.8 Q -.15(ve)-.15 G
+3.573(\)t).15 G 3.573(oo)-3.573 G 1.073(btain the line.)-3.573 F F2
+(Readline)6.073 E F1 1.073(uses the current \(or def)3.573 F 1.074
+(ault, if line editing w)-.1 F 1.074(as not)-.1 F(pre)180 592.8 Q
(viously acti)-.25 E -.15(ve)-.25 G 2.5(\)e).15 G(diting settings, b)
-2.5 E(ut uses)-.2 E F2 -.18(re)2.5 G(adline).18 E F1 1.1 -.55('s d)D
-(ef).55 E(ault \214lename completion.)-.1 E F2<ad45>144 156 Q F1 1.762
-(If the standard input is coming from a terminal,)180 156 R F2 -.18(re)
-4.261 G(ad).18 E F1(uses)4.261 E F2 -.18(re)4.261 G(adline).18 E F1
-(\(see)4.261 E F3(READLINE)4.261 E F1(abo)180 168 Q -.15(ve)-.15 G 3.573
-(\)t).15 G 3.573(oo)-3.573 G 1.073(btain the line.)-3.573 F F2(Readline)
-6.073 E F1 1.073(uses the current \(or def)3.573 F 1.074
-(ault, if line editing w)-.1 F 1.074(as not)-.1 F(pre)180 180 Q .042
+(ef).55 E(ault \214lename completion.)-.1 E F2<ad45>144 604.8 Q F1 1.762
+(If the standard input is coming from a terminal,)180 604.8 R F2 -.18
+(re)4.261 G(ad).18 E F1(uses)4.261 E F2 -.18(re)4.261 G(adline).18 E F1
+(\(see)4.261 E F3(READLINE)4.261 E F1(abo)180 616.8 Q -.15(ve)-.15 G
+3.573(\)t).15 G 3.573(oo)-3.573 G 1.073(btain the line.)-3.573 F F2
+(Readline)6.073 E F1 1.073(uses the current \(or def)3.573 F 1.074
+(ault, if line editing w)-.1 F 1.074(as not)-.1 F(pre)180 628.8 Q .042
(viously acti)-.25 F -.15(ve)-.25 G 2.542(\)e).15 G .042
(diting settings, b)-2.542 F .042(ut uses bash')-.2 F 2.542(sd)-.55 G
(ef)-2.542 E .042(ault completion, including program-)-.1 F
-(mable completion.)180 192 Q F2<ad69>144 204 Q F0(te)2.5 E(xt)-.2 E F1
-(If)180 204 Q F2 -.18(re)3.313 G(adline).18 E F1 .814
+(mable completion.)180 640.8 Q F2<ad69>144 652.8 Q F0(te)2.5 E(xt)-.2 E
+F1(If)180 652.8 Q F2 -.18(re)3.313 G(adline).18 E F1 .814
(is being used to read the line,)3.313 F F2 -.18(re)3.314 G(ad).18 E F1
(places)3.314 E F0(te)3.314 E(xt)-.2 E F1 .814(into the editing b)3.314
-F(uf)-.2 E .814(fer before)-.25 F(editing be)180 216 Q(gins.)-.15 E F2
-<ad6e>144 228 Q F0(nc)2.5 E(har)-.15 E(s)-.1 E F2 -.18(re)180 240 S(ad)
-.18 E F1 .323(returns after reading)2.823 F F0(nc)2.823 E(har)-.15 E(s)
--.1 E F1 .323(characters rather than w)2.823 F .323
+F(uf)-.2 E .814(fer before)-.25 F(editing be)180 664.8 Q(gins.)-.15 E F2
+<ad6e>144 676.8 Q F0(nc)2.5 E(har)-.15 E(s)-.1 E F2 -.18(re)180 688.8 S
+(ad).18 E F1 .323(returns after reading)2.823 F F0(nc)2.823 E(har)-.15 E
+(s)-.1 E F1 .323(characters rather than w)2.823 F .323
(aiting for a complete line of in-)-.1 F .736
-(put, unless it encounters EOF or)180 252 R F2 -.18(re)3.236 G(ad).18 E
-F1 .736(times out, b)3.236 F .737(ut honors a delimiter if it reads fe)
--.2 F(wer)-.25 E(than)180 264 Q F0(nc)2.5 E(har)-.15 E(s)-.1 E F1
-(characters before the delimiter)2.5 E(.)-.55 E F2<ad4e>144 276 Q F0(nc)
-2.5 E(har)-.15 E(s)-.1 E F2 -.18(re)180 288 S(ad).18 E F1 1.269
+(put, unless it encounters EOF or)180 700.8 R F2 -.18(re)3.236 G(ad).18
+E F1 .736(times out, b)3.236 F .737
+(ut honors a delimiter if it reads fe)-.2 F(wer)-.25 E(than)180 712.8 Q
+F0(nc)2.5 E(har)-.15 E(s)-.1 E F1(characters before the delimiter)2.5 E
+(.)-.55 E(GNU Bash 5.3)72 768 Q(2026 January 14)141.79 E(82)190.95 E 0
+Cg EP
+%%Page: 83 83
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF<ad4e>144 84 Q F0(nc)2.5 E
+(har)-.15 E(s)-.1 E F2 -.18(re)180 96 S(ad).18 E F1 1.269
(returns after reading e)3.77 F(xactly)-.15 E F0(nc)3.769 E(har)-.15 E
(s)-.1 E F1 1.269(characters rather than w)3.769 F 1.269
(aiting for a complete)-.1 F .172
-(line of input, unless it encounters EOF or)180 300 R F2 -.18(re)2.673 G
+(line of input, unless it encounters EOF or)180 108 R F2 -.18(re)2.673 G
(ad).18 E F1 .173(times out.)2.673 F(An)5.173 E 2.673(yd)-.15 G .173
(elimiter characters in the)-2.673 F 1.246
-(input are not treated specially and do not cause)180 312 R F2 -.18(re)
+(input are not treated specially and do not cause)180 120 R F2 -.18(re)
3.746 G(ad).18 E F1 1.245(to return until it has read)3.746 F F0(nc)
-3.745 E(har)-.15 E(s)-.1 E F1 2.566(characters. The)180 324 R .066
+3.745 E(har)-.15 E(s)-.1 E F1 2.566(characters. The)180 132 R .066
(result is not split on the characters in)2.566 F F2(IFS)2.567 E F1
2.567(;t)C .067(he intent is that the v)-2.567 F .067(ariable is)-.25 F
-.895(assigned e)180 336 R .895(xactly the characters read \(with the e)
+.895(assigned e)180 144 R .895(xactly the characters read \(with the e)
-.15 F .894(xception of backslash; see the)-.15 F F2<ad72>3.394 E F1
-(option)3.394 E(belo)180 348 Q(w\).)-.25 E F2<ad70>144 360 Q F0(pr)2.5 E
-(ompt)-.45 E F1(Display)180 372 Q F0(pr)3.66 E(ompt)-.45 E F1 1.161
+(option)3.394 E(belo)180 156 Q(w\).)-.25 E F2<ad70>144 168 Q F0(pr)2.5 E
+(ompt)-.45 E F1(Display)180 180 Q F0(pr)3.66 E(ompt)-.45 E F1 1.161
(on standard error)3.66 F 3.661(,w)-.4 G 1.161(ithout a trailing ne)
--3.661 F 1.161(wline, before attempting to read)-.25 F(an)180 384 Q 2.5
+-3.661 F 1.161(wline, before attempting to read)-.25 F(an)180 192 Q 2.5
(yi)-.15 G(nput, b)-2.5 E(ut only if input is coming from a terminal.)
--.2 E F2<ad72>144 396 Q F1 .544
-(Backslash does not act as an escape character)180 396 R 5.543(.T)-.55 G
+-.2 E F2<ad72>144 204 Q F1 .544
+(Backslash does not act as an escape character)180 204 R 5.543(.T)-.55 G
.543(he backslash is considered to be part of)-5.543 F .492(the line.)
-180 408 R .492(In particular)5.492 F 2.992(,ab)-.4 G(ackslash-ne)-2.992
+180 216 R .492(In particular)5.492 F 2.992(,ab)-.4 G(ackslash-ne)-2.992
E .493(wline pair may not then be used as a line continua-)-.25 F(tion.)
-180 420 Q F2<ad73>144 432 Q F1(Silent mode.)180 432 Q
+180 228 Q F2<ad73>144 240 Q F1(Silent mode.)180 240 Q
(If input is coming from a terminal, characters are not echoed.)5 E F2
-<ad74>144 444 Q F0(timeout)2.5 E F1(Cause)180 456 Q F2 -.18(re)2.767 G
+<ad74>144 252 Q F0(timeout)2.5 E F1(Cause)180 264 Q F2 -.18(re)2.767 G
(ad).18 E F1 .267(to time out and return f)2.767 F .266
(ailure if it does not read a complete line of input \(or a)-.1 F .468
-(speci\214ed number of characters\) within)180 468 R F0(timeout)2.968 E
+(speci\214ed number of characters\) within)180 276 R F0(timeout)2.968 E
F1(seconds.)2.968 E F0(timeout)5.468 E F1 .469(may be a decimal num-)
-2.968 F .464(ber with a fractional portion follo)180 480 R .464
+2.968 F .464(ber with a fractional portion follo)180 288 R .464
(wing the decimal point.)-.25 F .463(This option is only ef)5.463 F
-(fecti)-.25 E .763 -.15(ve i)-.25 H(f).15 E F2 -.18(re)180 492 S(ad).18
+(fecti)-.25 E .763 -.15(ve i)-.25 H(f).15 E F2 -.18(re)180 300 S(ad).18
E F1 1.176(is reading input from a terminal, pipe, or other special \
\214le; it has no ef)3.676 F 1.177(fect when)-.25 F .108
-(reading from re)180 504 R .108(gular \214les.)-.15 F(If)5.108 E F2 -.18
+(reading from re)180 312 R .108(gular \214les.)-.15 F(If)5.108 E F2 -.18
(re)2.608 G(ad).18 E F1 .108(times out, it sa)2.608 F -.15(ve)-.2 G
2.607(sa).15 G .407 -.15(ny p)-2.607 H .107
-(artial input read into the speci-).15 F .942(\214ed v)180 516 R
+(artial input read into the speci-).15 F .942(\214ed v)180 324 R
(ariable)-.25 E F0(name)3.442 E F1 3.442(,a)C .942(nd the e)-3.442 F
.942(xit status is greater than 128.)-.15 F(If)5.943 E F0(timeout)3.443
E F1 .943(is 0,)3.443 F F2 -.18(re)3.443 G(ad).18 E F1(returns)3.443 E
-(immediately)180 528 Q 3.26(,w)-.65 G .76(ithout trying to read an)-3.26
+(immediately)180 336 Q 3.26(,w)-.65 G .76(ithout trying to read an)-3.26
F 3.26(yd)-.15 G 3.26(ata. In)-3.26 F .759(this case, the e)3.259 F .759
-(xit status is 0 if input is)-.15 F -.2(av)180 540 S
+(xit status is 0 if input is)-.15 F -.2(av)180 348 S
(ailable on the speci\214ed \214le descriptor)-.05 E 2.5(,o)-.4 G 2.5
(rt)-2.5 G(he read will return EOF)-2.5 E 2.5(,n)-.8 G
-(on-zero otherwise.)-2.5 E F2<ad75>144 552 Q F0(fd)2.5 E F1
-(Read input from \214le descriptor)180 552 Q F0(fd)2.5 E F1
+(on-zero otherwise.)-2.5 E F2<ad75>144 360 Q F0(fd)2.5 E F1
+(Read input from \214le descriptor)180 360 Q F0(fd)2.5 E F1
(instead of the standard input.)2.5 E(Other than the case where)144
-568.8 Q F0(delim)2.5 E F1(is the empty string,)2.5 E F2 -.18(re)2.5 G
+376.8 Q F0(delim)2.5 E F1(is the empty string,)2.5 E F2 -.18(re)2.5 G
(ad).18 E F1(ignores an)2.5 E 2.5(yN)-.15 G(UL characters in the input.)
--2.5 E .96(If no)144 585.6 R F0(names)3.82 E F1 .96(are supplied,)3.73 F
+-2.5 E .96(If no)144 393.6 R F0(names)3.82 E F1 .96(are supplied,)3.73 F
F2 -.18(re)3.46 G(ad).18 E F1 .961
(assigns the line read, without the ending delimiter b)3.461 F .961
-(ut otherwise)-.2 F(unmodi\214ed, to the v)144 597.6 Q(ariable)-.25 E F3
-(REPL)2.5 E(Y)-.828 E/F4 9/Times-Roman@0 SF(.)A F1 .033(The e)144 614.4
-R .033(xit status is zero, unless end-of-\214le is encountered,)-.15 F
-F2 -.18(re)2.532 G(ad).18 E F1 .032
-(times out \(in which case the status is)2.532 F .31
-(greater than 128\), a v)144 626.4 R .311
+(ut otherwise)-.2 F(unmodi\214ed, to the v)144 405.6 Q(ariable)-.25 E/F3
+9/Times-Bold@0 SF(REPL)2.5 E(Y)-.828 E/F4 9/Times-Roman@0 SF(.)A F1 .033
+(The e)144 422.4 R .033
+(xit status is zero, unless end-of-\214le is encountered,)-.15 F F2 -.18
+(re)2.532 G(ad).18 E F1 .032(times out \(in which case the status is)
+2.532 F .31(greater than 128\), a v)144 434.4 R .311
(ariable assignment error \(such as assigning to a readonly v)-.25 F
-.311(ariable\) occurs, or)-.25 F(an in)144 638.4 Q -.25(va)-.4 G
+.311(ariable\) occurs, or)-.25 F(an in)144 446.4 Q -.25(va)-.4 G
(lid \214le descriptor is supplied as the ar).25 E(gument to)-.18 E F2
-<ad75>2.5 E F1(.)A F2 -.18(re)108 655.2 S(adonly).18 E F1([)2.5 E F2
+<ad75>2.5 E F1(.)A F2 -.18(re)108 463.2 S(adonly).18 E F1([)2.5 E F2
(\255aAf)A F1 2.5(][)C F2<ad70>-2.5 E F1 2.5(][)C F0(name)-2.5 E F1([=)A
F0(wor)A(d)-.37 E F1 2.5(].)C 1.666(..)-.834 G(])-1.666 E .77(The gi)144
-667.2 R -.15(ve)-.25 G(n).15 E F0(names)3.27 E F1 .77(are mark)3.27 F
+475.2 R -.15(ve)-.25 G(n).15 E F0(names)3.27 E F1 .77(are mark)3.27 F
.77(ed readonly; the v)-.1 F .77(alues of these)-.25 F F0(names)3.63 E
F1 .77(may not be changed by subse-)3.54 F .445
-(quent assignment or unset.)144 679.2 R .446(If the)5.446 F F2<ad66>
+(quent assignment or unset.)144 487.2 R .446(If the)5.446 F F2<ad66>
2.946 E F1 .446(option is supplied, each)2.946 F F0(name)2.946 E F1 .446
-(refers to a shell function.)2.946 F(The)5.446 E F2<ad61>144 691.2 Q F1
+(refers to a shell function.)2.946 F(The)5.446 E F2<ad61>144 499.2 Q F1
.383(option restricts the v)2.883 F .383(ariables to inde)-.25 F -.15
(xe)-.15 G 2.883(da).15 G .383(rrays; the)-2.883 F F2<ad41>2.883 E F1
.382(option restricts the v)2.883 F .382(ariables to associa-)-.25 F(ti)
-144 703.2 Q 1.558 -.15(ve a)-.25 H 3.758(rrays. If).15 F 1.258
+144 511.2 Q 1.558 -.15(ve a)-.25 H 3.758(rrays. If).15 F 1.258
(both options are supplied,)3.758 F F2<ad41>3.758 E F1(tak)3.758 E 1.258
(es precedence.)-.1 F 1.258(If no)6.258 F F0(name)4.118 E F1(ar)3.938 E
-1.258(guments are sup-)-.18 F .412(plied, or if the)144 715.2 R F2<ad70>
+1.258(guments are sup-)-.18 F .412(plied, or if the)144 523.2 R F2<ad70>
2.912 E F1 .412(option is supplied, print a list of all readonly names.)
2.912 F .411(The other options may be)5.411 F .327
(used to restrict the output to a subset of the set of readonly names.)
-144 727.2 R(The)5.327 E F2<ad70>2.827 E F1 .327(option displays output)
-2.827 F(GNU Bash 5.3)72 768 Q(2025 April 7)149.285 E(81)198.445 E 0 Cg
-EP
-%%Page: 82 82
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E(in a format that may be reused as input.)144 84 Q
-/F2 10/Times-Bold@0 SF -.18(re)144 100.8 S(adonly).18 E F1(allo)2.653 E
-.153(ws the v)-.25 F .153(alue of a v)-.25 F .153
+144 535.2 R(The)5.327 E F2<ad70>2.827 E F1 .327(option displays output)
+2.827 F(in a format that may be reused as input.)144 547.2 Q F2 -.18(re)
+144 564 S(adonly).18 E F1(allo)2.653 E .153(ws the v)-.25 F .153
+(alue of a v)-.25 F .153
(ariable to be set at the same time the readonly attrib)-.25 F .152
-(ute is changed)-.2 F .687(by follo)144 112.8 R .687(wing the v)-.25 F
+(ute is changed)-.2 F .687(by follo)144 576 R .687(wing the v)-.25 F
.687(ariable name with =)-.25 F F0(value)A F1 5.688(.T)C .688
(his sets the v)-5.688 F .688(alue of the v)-.25 F .688(ariable is to)
-.25 F F0(value)3.188 E F1(while)3.188 E(modifying the readonly attrib)
-144 124.8 Q(ute.)-.2 E .303(The return status is 0 unless an in)144
-141.6 R -.25(va)-.4 G .303(lid option is encountered, one of the).25 F
-F0(names)3.162 E F1 .302(is not a v)3.072 F .302(alid shell)-.25 F -.25
-(va)144 153.6 S(riable name, or).25 E F2<ad66>2.5 E F1
+144 588 Q(ute.)-.2 E .303(The return status is 0 unless an in)144 604.8
+R -.25(va)-.4 G .303(lid option is encountered, one of the).25 F F0
+(names)3.162 E F1 .302(is not a v)3.072 F .302(alid shell)-.25 F -.25
+(va)144 616.8 S(riable name, or).25 E F2<ad66>2.5 E F1
(is supplied with a)2.5 E F0(name)2.86 E F1(that is not a function.)2.68
-E F2 -.18(re)108 170.4 S(tur).18 E(n)-.15 E F1([)2.5 E F0(n)A F1(])A
-.182(Stop e)144 182.4 R -.15(xe)-.15 G .182
+E F2 -.18(re)108 633.6 S(tur).18 E(n)-.15 E F1([)2.5 E F0(n)A F1(])A
+.182(Stop e)144 645.6 R -.15(xe)-.15 G .182
(cuting a shell function or sourced \214le and return the v).15 F .182
(alue speci\214ed by)-.25 F F0(n)3.042 E F1 .182(to its caller)2.922 F
5.183(.I)-.55 G(f)-5.183 E F0(n)3.043 E F1 .589
-(is omitted, the return status is that of the last command e)144 194.4 R
+(is omitted, the return status is that of the last command e)144 657.6 R
-.15(xe)-.15 G 3.089(cuted. If).15 F F2 -.18(re)3.089 G(tur).18 E(n)-.15
E F1 .589(is e)3.089 F -.15(xe)-.15 G .588(cuted by a trap).15 F
-(handler)144 206.4 Q 3.469(,t)-.4 G .969
+(handler)144 669.6 Q 3.469(,t)-.4 G .969
(he last command used to determine the status is the last command e)
-3.469 F -.15(xe)-.15 G .97(cuted before the).15 F .13(trap handler)144
-218.4 R 5.13(.I)-.55 G(f)-5.13 E F2 -.18(re)2.63 G(tur).18 E(n)-.15 E F1
+681.6 R 5.13(.I)-.55 G(f)-5.13 E F2 -.18(re)2.63 G(tur).18 E(n)-.15 E F1
.13(is e)2.63 F -.15(xe)-.15 G .13(cuted during a).15 F F2(DEB)2.629 E
(UG)-.1 E F1 .129(trap, the last command used to determine the)2.629 F
-(status is the last command e)144 230.4 Q -.15(xe)-.15 G
+(status is the last command e)144 693.6 Q -.15(xe)-.15 G
(cuted by the trap handler before).15 E F2 -.18(re)2.5 G(tur).18 E(n)
-.15 E F1 -.1(wa)2.5 G 2.5(si).1 G -1.9 -.4(nv o)-2.5 H -.1(ke).4 G(d.)
-.1 E(When)144 247.2 Q F2 -.18(re)3.817 G(tur).18 E(n)-.15 E F1 1.317
+.1 E(When)144 710.4 Q F2 -.18(re)3.817 G(tur).18 E(n)-.15 E F1 1.317
(is used to terminate e)3.817 F -.15(xe)-.15 G 1.318
(cution of a script being e).15 F -.15(xe)-.15 G 1.318(cuted by the).15
F F2(.)3.818 E F1(\()6.318 E F2(sour)A(ce)-.18 E F1 3.818(\)c)C(om-)
--3.818 E .808(mand, it causes the shell to stop e)144 259.2 R -.15(xe)
+-3.818 E .808(mand, it causes the shell to stop e)144 722.4 R -.15(xe)
-.15 G .807(cuting that script and return either).15 F F0(n)3.667 E F1
-.807(or the e)3.547 F .807(xit status of the)-.15 F .314(last command e)
-144 271.2 R -.15(xe)-.15 G .314(cuted within the script as the e).15 F
-.314(xit status of the script.)-.15 F(If)5.315 E F0(n)2.815 E F1 .315
-(is supplied, the return)2.815 F -.25(va)144 283.2 S
-(lue is its least signi\214cant 8 bits.).25 E(An)144 300 Q 3.176(yc)-.15
-G .676(ommand associated with the)-3.176 F F2(RETURN)3.176 E F1 .675
-(trap is e)3.175 F -.15(xe)-.15 G .675(cuted before e).15 F -.15(xe)-.15
-G .675(cution resumes after the).15 F(function or script.)144 312 Q .948
-(The return status is non-zero if)144 328.8 R F2 -.18(re)3.449 G(tur).18
+.807(or the e)3.547 F .807(xit status of the)-.15 F(GNU Bash 5.3)72 768
+Q(2026 January 14)141.79 E(83)190.95 E 0 Cg EP
+%%Page: 84 84
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E .314(last command e)144 84 R -.15(xe)-.15 G .314
+(cuted within the script as the e).15 F .314(xit status of the script.)
+-.15 F(If)5.315 E F0(n)2.815 E F1 .315(is supplied, the return)2.815 F
+-.25(va)144 96 S(lue is its least signi\214cant 8 bits.).25 E(An)144
+112.8 Q 3.176(yc)-.15 G .676(ommand associated with the)-3.176 F/F2 10
+/Times-Bold@0 SF(RETURN)3.176 E F1 .675(trap is e)3.175 F -.15(xe)-.15 G
+.675(cuted before e).15 F -.15(xe)-.15 G .675(cution resumes after the)
+.15 F(function or script.)144 124.8 Q .948
+(The return status is non-zero if)144 141.6 R F2 -.18(re)3.449 G(tur).18
E(n)-.15 E F1 .949(is supplied a non-numeric ar)3.449 F .949
-(gument, or is used outside a)-.18 F(function and not during e)144 340.8
+(gument, or is used outside a)-.18 F(function and not during e)144 153.6
Q -.15(xe)-.15 G(cution of a script by).15 E F2(.)2.5 E F1(or)3.333 E F2
-(sour)2.5 E(ce)-.18 E F1(.)A F2(set)108 357.6 Q F1([)2.5 E F2
+(sour)2.5 E(ce)-.18 E F1(.)A F2(set)108 170.4 Q F1([)2.5 E F2
(\255abefhkmnptuvxBCEHPT)A F1 2.5(][)C F2<ad6f>-2.5 E F0(option\255name)
2.5 E F1 2.5(][)C F2<adad>-2.5 E F1 2.5(][)C F2<ad>-2.5 E F1 2.5(][)C F0
-(ar)-2.5 E(g)-.37 E F1 1.666(...)2.5 G(])-1.666 E F2(set)108 369.6 Q F1
+(ar)-2.5 E(g)-.37 E F1 1.666(...)2.5 G(])-1.666 E F2(set)108 182.4 Q F1
([)2.5 E F2(+abefhkmnptuvxBCEHPT)A F1 2.5(][)C F2(+o)-2.5 E F0
(option\255name)2.5 E F1 2.5(][)C F2<adad>-2.5 E F1 2.5(][)C F2<ad>-2.5
E F1 2.5(][)C F0(ar)-2.5 E(g)-.37 E F1 1.666(...)2.5 G(])-1.666 E F2
-(set \255o)108 381.6 Q(set +o)108 393.6 Q F1 -.4(Wi)144 393.6 S .574
+(set \255o)108 194.4 Q(set +o)108 206.4 Q F1 -.4(Wi)144 206.4 S .574
(thout options, display the name and v).4 F .574(alue of each shell v)
-.25 F .573(ariable in a format that can be reused)-.25 F .113
-(as input for setting or resetting the currently-set v)144 405.6 R 2.613
+(as input for setting or resetting the currently-set v)144 218.4 R 2.613
(ariables. Read-only)-.25 F -.25(va)2.613 G .113
(riables cannot be reset.).25 F(In)5.113 E .958
-(posix mode, only shell v)144 417.6 R .958(ariables are listed.)-.25 F
+(posix mode, only shell v)144 230.4 R .958(ariables are listed.)-.25 F
.957(The output is sorted according to the current locale.)5.957 F .58
-(When options are speci\214ed, the)144 429.6 R 3.081(ys)-.15 G .581
+(When options are speci\214ed, the)144 242.4 R 3.081(ys)-.15 G .581
(et or unset shell attrib)-3.081 F 3.081(utes. An)-.2 F 3.081(ya)-.15 G
-.18(rg)-3.081 G .581(uments remaining after op-).18 F .161
-(tion processing are treated as v)144 441.6 R .161
+(tion processing are treated as v)144 254.4 R .161
(alues for the positional parameters and are assigned, in order)-.25 F
-2.66(,t)-.4 G(o)-2.66 E F2($1)2.66 E F1(,)A F2($2)144 453.6 Q F1 2.5(,.)
+2.66(,t)-.4 G(o)-2.66 E F2($1)2.66 E F1(,)A F2($2)144 266.4 Q F1 2.5(,.)
C 1.666(..)-.834 G(,)-1.666 E F2($)2.5 E F0(n)A F1 5(.O)C
(ptions, if speci\214ed, ha)-5 E .3 -.15(ve t)-.2 H(he follo).15 E
-(wing meanings:)-.25 E F2<ad61>144 465.6 Q F1 1.377(Each v)184 465.6 R
+(wing meanings:)-.25 E F2<ad61>144 278.4 Q F1 1.377(Each v)184 278.4 R
1.377(ariable or function that is created or modi\214ed is gi)-.25 F
-.15(ve)-.25 G 3.877(nt).15 G 1.377(he e)-3.877 F 1.378(xport attrib)
--.15 F 1.378(ute and)-.2 F(mark)184 477.6 Q(ed for e)-.1 E
+-.15 F 1.378(ute and)-.2 F(mark)184 290.4 Q(ed for e)-.1 E
(xport to the en)-.15 E(vironment of subsequent commands.)-.4 E F2<ad62>
-144 489.6 Q F1 .132
-(Report the status of terminated background jobs immediately)184 489.6 R
+144 302.4 Q F1 .132
+(Report the status of terminated background jobs immediately)184 302.4 R
2.632(,r)-.65 G .131(ather than before the ne)-2.632 F(xt)-.15 E .48
-(primary prompt or after a fore)184 501.6 R .48
+(primary prompt or after a fore)184 314.4 R .48
(ground command terminates.)-.15 F .48(This is ef)5.48 F(fecti)-.25 E
.78 -.15(ve o)-.25 H .48(nly when).15 F(job control is enabled.)184
-513.6 Q F2<ad65>144 525.6 Q F1 .088(Exit immediately if a)184 525.6 R F0
+326.4 Q F2<ad65>144 338.4 Q F1 .088(Exit immediately if a)184 338.4 R F0
(pipeline)2.588 E F1 .087(\(which may consist of a single)2.588 F F0
.087(simple command)2.587 F F1 .087(\), a)B F0(list)2.587 E F1 2.587(,o)
-C(r)-2.587 E(a)184 537.6 Q F0 1.52(compound command)4.02 F F1(\(see)
+C(r)-2.587 E(a)184 350.4 Q F0 1.52(compound command)4.02 F F1(\(see)
4.021 E/F3 9/Times-Bold@0 SF 1.521(SHELL GRAMMAR)4.021 F F1(abo)3.771 E
-.15(ve)-.15 G 1.521(\), e).15 F 1.521(xits with a non-zero status.)-.15
-F .08(The shell does not e)184 549.6 R .079(xit if the command that f)
+F .08(The shell does not e)184 362.4 R .079(xit if the command that f)
-.15 F .079(ails is part of the command list immediately)-.1 F(follo)184
-561.6 Q .174(wing a)-.25 F F2(while)2.674 E F1(or)2.674 E F2(until)2.674
+374.4 Q .174(wing a)-.25 F F2(while)2.674 E F1(or)2.674 E F2(until)2.674
E F1(reserv)2.674 E .174(ed w)-.15 F .174(ord, part of the test follo)
-.1 F .175(wing the)-.25 F F2(if)2.675 E F1(or)2.675 E F2(elif)2.675 E
-F1(reserv)2.675 E(ed)-.15 E -.1(wo)184 573.6 S .582(rds, part of an).1 F
+F1(reserv)2.675 E(ed)-.15 E -.1(wo)184 386.4 S .582(rds, part of an).1 F
3.082(yc)-.15 G .582(ommand e)-3.082 F -.15(xe)-.15 G .581(cuted in a)
.15 F F2(&&)3.081 E F1(or)3.081 E F2(||)3.081 E F1 .581(list e)3.081 F
.581(xcept the command follo)-.15 F(wing)-.25 E 1.206(the \214nal)184
-585.6 R F2(&&)3.706 E F1(or)3.706 E F2(||)3.706 E F1 3.706(,a)C 1.506
+398.4 R F2(&&)3.706 E F1(or)3.706 E F2(||)3.706 E F1 3.706(,a)C 1.506
-.15(ny c)-3.706 H 1.206(ommand in a pipeline b).15 F 1.206
-(ut the last \(subject to the state of the)-.2 F F2(pipefail)184 597.6 Q
+(ut the last \(subject to the state of the)-.2 F F2(pipefail)184 410.4 Q
F1 1.308(shell option\), or if the command')3.808 F 3.807(sr)-.55 G
1.307(eturn v)-3.807 F 1.307(alue is being in)-.25 F -.15(ve)-.4 G 1.307
(rted with).15 F F2(!)3.807 E F1 6.307(.I)C 3.807(fa)-6.307 G .274(comp\
ound command other than a subshell returns a non-zero status because a \
-command)184 609.6 R -.1(fa)184 621.6 S .195(iled while).1 F F2<ad65>
+command)184 422.4 R -.1(fa)184 434.4 S .195(iled while).1 F F2<ad65>
2.695 E F1 -.1(wa)2.695 G 2.695(sb).1 G .195
(eing ignored, the shell does not e)-2.695 F 2.694(xit. A)-.15 F .194
(trap on)2.694 F F2(ERR)2.694 E F1 2.694(,i)C 2.694(fs)-2.694 G .194
(et, is e)-2.694 F -.15(xe)-.15 G(-).15 E .59(cuted before the shell e)
-184 633.6 R 3.09(xits. This)-.15 F .59(option applies to the shell en)
-3.09 F .59(vironment and each sub-)-.4 F 1.492(shell en)184 645.6 R
+184 446.4 R 3.09(xits. This)-.15 F .59(option applies to the shell en)
+3.09 F .59(vironment and each sub-)-.4 F 1.492(shell en)184 458.4 R
1.492(vironment separately \(see)-.4 F F3 1.492(COMMAND EXECUTION ENVIR)
3.992 F(ONMENT)-.27 E F1(abo)3.741 E -.15(ve)-.15 G(\),).15 E
-(and may cause subshells to e)184 657.6 Q(xit before e)-.15 E -.15(xe)
+(and may cause subshells to e)184 470.4 Q(xit before e)-.15 E -.15(xe)
-.15 G(cuting all the commands in the subshell.).15 E .998
-(If a compound command or shell function e)184 674.4 R -.15(xe)-.15 G
+(If a compound command or shell function e)184 487.2 R -.15(xe)-.15 G
.999(cutes in a conte).15 F .999(xt where)-.15 F F2<ad65>3.499 E F1 .999
-(is being ig-)3.499 F .089(nored, none of the commands e)184 686.4 R
+(is being ig-)3.499 F .089(nored, none of the commands e)184 499.2 R
-.15(xe)-.15 G .089(cuted within the compound command or function body)
-.15 F .502(will be af)184 698.4 R .502(fected by the)-.25 F F2<ad65>
+.15 F .502(will be af)184 511.2 R .502(fected by the)-.25 F F2<ad65>
3.002 E F1 .502(setting, e)3.002 F -.15(ve)-.25 G 3.002(ni).15 G(f)
-3.002 E F2<ad65>3.002 E F1 .502(is set and a command returns a f)3.002
-F .503(ailure sta-)-.1 F 4.184(tus. If)184 710.4 R 4.184(ac)4.184 G
+F .503(ailure sta-)-.1 F 4.184(tus. If)184 523.2 R 4.184(ac)4.184 G
1.684(ompound command or shell function sets)-4.184 F F2<ad65>4.183 E F1
1.683(while e)4.183 F -.15(xe)-.15 G 1.683(cuting in a conte).15 F(xt)
--.15 E(where)184 722.4 Q F2<ad65>3.153 E F1 .653
+-.15 E(where)184 535.2 Q F2<ad65>3.153 E F1 .653
(is ignored, that setting will not ha)3.153 F .954 -.15(ve a)-.2 H .954
-.15(ny e).15 H -.25(ff).15 G .654(ect until the compound command).25 F
-(GNU Bash 5.3)72 768 Q(2025 April 7)149.285 E(82)198.445 E 0 Cg EP
-%%Page: 83 83
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E
-(or the command containing the function call completes.)184 84 Q/F2 10
-/Times-Bold@0 SF<ad66>144 96 Q F1(Disable pathname e)184 96 Q(xpansion.)
--.15 E F2<ad68>144 108 Q F1 .988
-(Remember the location of commands as the)184 108 R 3.488(ya)-.15 G .988
-(re look)-3.488 F .988(ed up for e)-.1 F -.15(xe)-.15 G 3.488
-(cution. This).15 F .987(is en-)3.487 F(abled by def)184 120 Q(ault.)-.1
-E F2<ad6b>144 132 Q F1 .513(All ar)184 132 R .514
+(or the command containing the function call completes.)184 547.2 Q F2
+<ad66>144 559.2 Q F1(Disable pathname e)184 559.2 Q(xpansion.)-.15 E F2
+<ad68>144 571.2 Q F1 .988(Remember the location of commands as the)184
+571.2 R 3.488(ya)-.15 G .988(re look)-3.488 F .988(ed up for e)-.1 F
+-.15(xe)-.15 G 3.488(cution. This).15 F .987(is en-)3.487 F
+(abled by def)184 583.2 Q(ault.)-.1 E F2<ad6b>144 595.2 Q F1 .513
+(All ar)184 595.2 R .514
(guments in the form of assignment statements are placed in the en)-.18
F .514(vironment for a)-.4 F
-(command, not just those that precede the command name.)184 144 Q F2
-<ad6d>144 156 Q F1 .149(Monitor mode.)184 156 R .149
+(command, not just those that precede the command name.)184 607.2 Q F2
+<ad6d>144 619.2 Q F1 .149(Monitor mode.)184 619.2 R .149
(Job control is enabled.)5.149 F .148(This option is on by def)5.149 F
.148(ault for interacti)-.1 F .448 -.15(ve s)-.25 H(hells).15 E .65
-(on systems that support it \(see)184 168 R/F3 9/Times-Bold@0 SF .651
-(JOB CONTR)3.151 F(OL)-.27 E F1(abo)2.901 E -.15(ve)-.15 G 3.151
-(\). All).15 F .651(processes run in a separate)3.151 F .679
-(process group.)184 180 R .678(When a background job completes, the she\
-ll prints a line containing its)5.679 F -.15(ex)184 192 S(it status.).15
-E F2<ad6e>144 204 Q F1 .652(Read commands b)184 204 R .652(ut do not e)
--.2 F -.15(xe)-.15 G .652(cute them.).15 F .653
+(on systems that support it \(see)184 631.2 R F3 .651(JOB CONTR)3.151 F
+(OL)-.27 E F1(abo)2.901 E -.15(ve)-.15 G 3.151(\). All).15 F .651
+(processes run in a separate)3.151 F .679(process group.)184 643.2 R
+.678(When a background job completes, the shell prints a line containin\
+g its)5.679 F -.15(ex)184 655.2 S(it status.).15 E F2<ad6e>144 667.2 Q
+F1 .652(Read commands b)184 667.2 R .652(ut do not e)-.2 F -.15(xe)-.15
+G .652(cute them.).15 F .653
(This may be used to check a shell script for)5.652 F(syntax errors.)184
-216 Q(This is ignored by interacti)5 E .3 -.15(ve s)-.25 H(hells.).15 E
-F2<ad6f>144 228 Q F0(option\255name)2.5 E F1(The)184 240 Q F0
-(option\255name)2.5 E F1(can be one of the follo)2.5 E(wing:)-.25 E F2
-(allexport)184 252 Q F1(Same as)224 264 Q F2<ad61>2.5 E F1(.)A F2
-(braceexpand)184 276 Q F1(Same as)224 288 Q F2<ad42>2.5 E F1(.)A F2
-(emacs)184 300 Q F1 .089(Use an emacs-style command line editing interf)
-224 300 R 2.589(ace. This)-.1 F .089(is enabled by def)2.589 F(ault)-.1
-E .95(when the shell is interacti)224 312 R -.15(ve)-.25 G 3.45(,u).15 G
-.95(nless the shell is started with the)-3.45 F F2(\255\255noediting)
-3.45 E F1 2.5(option. This)224 324 R(also af)2.5 E
-(fects the editing interf)-.25 E(ace used for)-.1 E F2 -.18(re)2.5 G
-(ad \255e).18 E F1(.)A F2(err)184 336 Q(exit)-.18 E F1(Same as)224 336 Q
-F2<ad65>2.5 E F1(.)A F2(errtrace)184 348 Q F1(Same as)224 348 Q F2<ad45>
-2.5 E F1(.)A F2(functrace)184 360 Q F1(Same as)224 372 Q F2<ad54>2.5 E
-F1(.)A F2(hashall)184 384 Q F1(Same as)224 384 Q F2<ad68>2.5 E F1(.)A F2
-(histexpand)184 396 Q F1(Same as)224 408 Q F2<ad48>2.5 E F1(.)A F2
-(history)184 420 Q F1 .587(Enable command history)224 420 R 3.087(,a)
+679.2 Q(This is ignored by interacti)5 E .3 -.15(ve s)-.25 H(hells.).15
+E F2<ad6f>144 691.2 Q F0(option\255name)2.5 E F1(The)184 703.2 Q F0
+(option\255name)2.5 E F1(can be one of the follo)2.5 E(wing:)-.25 E
+(GNU Bash 5.3)72 768 Q(2026 January 14)141.79 E(84)190.95 E 0 Cg EP
+%%Page: 85 85
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(allexport)184 84 Q F1
+(Same as)224 96 Q F2<ad61>2.5 E F1(.)A F2(braceexpand)184 108 Q F1
+(Same as)224 120 Q F2<ad42>2.5 E F1(.)A F2(emacs)184 132 Q F1 .089
+(Use an emacs-style command line editing interf)224 132 R 2.589
+(ace. This)-.1 F .089(is enabled by def)2.589 F(ault)-.1 E .95
+(when the shell is interacti)224 144 R -.15(ve)-.25 G 3.45(,u).15 G .95
+(nless the shell is started with the)-3.45 F F2(\255\255noediting)3.45 E
+F1 2.5(option. This)224 156 R(also af)2.5 E(fects the editing interf)
+-.25 E(ace used for)-.1 E F2 -.18(re)2.5 G(ad \255e).18 E F1(.)A F2(err)
+184 168 Q(exit)-.18 E F1(Same as)224 168 Q F2<ad65>2.5 E F1(.)A F2
+(errtrace)184 180 Q F1(Same as)224 180 Q F2<ad45>2.5 E F1(.)A F2
+(functrace)184 192 Q F1(Same as)224 204 Q F2<ad54>2.5 E F1(.)A F2
+(hashall)184 216 Q F1(Same as)224 216 Q F2<ad68>2.5 E F1(.)A F2
+(histexpand)184 228 Q F1(Same as)224 240 Q F2<ad48>2.5 E F1(.)A F2
+(history)184 252 Q F1 .587(Enable command history)224 252 R 3.087(,a)
-.65 G 3.087(sd)-3.087 G .587(escribed abo)-3.087 F .887 -.15(ve u)-.15
-H(nder).15 E F3(HIST)3.087 E(OR)-.162 E(Y)-.315 E/F4 9/Times-Roman@0 SF
-(.)A F1 .587(This option is)5.087 F(on by def)224 432 Q
+H(nder).15 E/F3 9/Times-Bold@0 SF(HIST)3.087 E(OR)-.162 E(Y)-.315 E/F4 9
+/Times-Roman@0 SF(.)A F1 .587(This option is)5.087 F(on by def)224 264 Q
(ault in interacti)-.1 E .3 -.15(ve s)-.25 H(hells.).15 E F2(ignor)184
-444 Q(eeof)-.18 E F1 .821(The ef)224 456 R .822
+276 Q(eeof)-.18 E F1 .821(The ef)224 288 R .822
(fect is as if the shell command \231IGNOREEOF=10\232 had been e)-.25 F
--.15(xe)-.15 G(cuted).15 E(\(see)224 468 Q F2(Shell V)2.5 E(ariables)
--.92 E F1(abo)2.5 E -.15(ve)-.15 G(\).).15 E F2 -.1(ke)184 480 S(yw).1 E
-(ord)-.1 E F1(Same as)224 492 Q F2<ad6b>2.5 E F1(.)A F2(monitor)184 504
-Q F1(Same as)224 504 Q F2<ad6d>2.5 E F1(.)A F2(noclob)184 516 Q(ber)-.1
-E F1(Same as)224 528 Q F2<ad43>2.5 E F1(.)A F2(noexec)184 540 Q F1
-(Same as)224 540 Q F2<ad6e>2.5 E F1(.)A F2(noglob)184 552 Q F1(Same as)
-224 552 Q F2<ad66>2.5 E F1(.)A F2(nolog)184 564 Q F1(Currently ignored.)
-224 564 Q F2(notify)184 576 Q F1(Same as)224 576 Q F2<ad62>2.5 E F1(.)A
-F2(nounset)184 588 Q F1(Same as)224 588 Q F2<ad75>2.5 E F1(.)A F2
-(onecmd)184 600 Q F1(Same as)224 600 Q F2<ad74>2.5 E F1(.)A F2(ph)184
-612 Q(ysical)-.15 E F1(Same as)224 612 Q F2<ad50>2.5 E F1(.)A F2
-(pipefail)184 624 Q F1 1.03(If set, the return v)224 624 R 1.029
+-.15(xe)-.15 G(cuted).15 E(\(see)224 300 Q F2(Shell V)2.5 E(ariables)
+-.92 E F1(abo)2.5 E -.15(ve)-.15 G(\).).15 E F2 -.1(ke)184 312 S(yw).1 E
+(ord)-.1 E F1(Same as)224 324 Q F2<ad6b>2.5 E F1(.)A F2(monitor)184 336
+Q F1(Same as)224 336 Q F2<ad6d>2.5 E F1(.)A F2(noclob)184 348 Q(ber)-.1
+E F1(Same as)224 360 Q F2<ad43>2.5 E F1(.)A F2(noexec)184 372 Q F1
+(Same as)224 372 Q F2<ad6e>2.5 E F1(.)A F2(noglob)184 384 Q F1(Same as)
+224 384 Q F2<ad66>2.5 E F1(.)A F2(nolog)184 396 Q F1(Currently ignored.)
+224 396 Q F2(notify)184 408 Q F1(Same as)224 408 Q F2<ad62>2.5 E F1(.)A
+F2(nounset)184 420 Q F1(Same as)224 420 Q F2<ad75>2.5 E F1(.)A F2
+(onecmd)184 432 Q F1(Same as)224 432 Q F2<ad74>2.5 E F1(.)A F2(ph)184
+444 Q(ysical)-.15 E F1(Same as)224 444 Q F2<ad50>2.5 E F1(.)A F2
+(pipefail)184 456 Q F1 1.03(If set, the return v)224 456 R 1.029
(alue of a pipeline is the v)-.25 F 1.029
-(alue of the last \(rightmost\) com-)-.25 F 1.136(mand to e)224 636 R
+(alue of the last \(rightmost\) com-)-.25 F 1.136(mand to e)224 468 R
1.136
(xit with a non-zero status, or zero if all commands in the pipeline)
--.15 F -.15(ex)224 648 S(it successfully).15 E 5(.T)-.65 G
-(his option is disabled by def)-5 E(ault.)-.1 E F2(posix)184 660 Q F1
-.755(Enable posix mode; change the beha)224 660 R .755(vior of)-.2 F F2
+-.15 F -.15(ex)224 480 S(it successfully).15 E 5(.T)-.65 G
+(his option is disabled by def)-5 E(ault.)-.1 E F2(posix)184 492 Q F1
+.755(Enable posix mode; change the beha)224 492 R .755(vior of)-.2 F F2
(bash)3.254 E F1 .754(where the def)3.254 F .754(ault operation)-.1 F
-(dif)224 672 Q .491(fers from the)-.25 F F4(POSIX)2.991 E F1 .491
+(dif)224 504 Q .491(fers from the)-.25 F F4(POSIX)2.991 E F1 .491
(standard to match the standard.)2.741 F(See)5.491 E F3 .491(SEE ALSO)
2.991 F F1(belo)2.741 E(w)-.25 E .955
-(for a reference to a document that details ho)224 684 R 3.454(wp)-.25 G
+(for a reference to a document that details ho)224 516 R 3.454(wp)-.25 G
.954(osix mode af)-3.454 F .954(fects bash')-.25 F 3.454(sb)-.55 G(e-)
--3.454 E(ha)224 696 Q(vior)-.2 E(.)-.55 E(GNU Bash 5.3)72 768 Q
-(2025 April 7)149.285 E(83)198.445 E 0 Cg EP
-%%Page: 84 84
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(pri)184 84 Q(vileged)-.1 E F1
-(Same as)224 96 Q F2<ad70>2.5 E F1(.)A F2 -.1(ve)184 108 S(rbose).1 E F1
-(Same as)224 108 Q F2<ad76>2.5 E F1(.)A F2(vi)184 120 Q F1 .209
-(Use a vi-style command line editing interf)224 120 R 2.709(ace. This)
--.1 F .209(also af)2.709 F .21(fects the editing in-)-.25 F(terf)224 132
+-3.454 E(ha)224 528 Q(vior)-.2 E(.)-.55 E F2(pri)184 540 Q(vileged)-.1 E
+F1(Same as)224 552 Q F2<ad70>2.5 E F1(.)A F2 -.1(ve)184 564 S(rbose).1 E
+F1(Same as)224 564 Q F2<ad76>2.5 E F1(.)A F2(vi)184 576 Q F1 .209
+(Use a vi-style command line editing interf)224 576 R 2.709(ace. This)
+-.1 F .209(also af)2.709 F .21(fects the editing in-)-.25 F(terf)224 588
Q(ace used for)-.1 E F2 -.18(re)2.5 G(ad \255e).18 E F1(.)A F2(xtrace)
-184 144 Q F1(Same as)224 144 Q F2<ad78>2.5 E F1(.)A(If)184 156 Q F2
+184 600 Q F1(Same as)224 600 Q F2<ad78>2.5 E F1(.)A(If)184 612 Q F2
<ad6f>2.766 E F1 .266(is supplied with no)2.766 F F0(option\255name)
2.765 E F1(,)A F2(set)2.765 E F1 .265
(prints the current shell option settings.)2.765 F(If)5.265 E F2(+o)
-2.765 E F1 .078(is supplied with no)184 168 R F0(option\255name)2.578 E
+2.765 E F1 .078(is supplied with no)184 624 R F0(option\255name)2.578 E
F1(,)A F2(set)2.578 E F1 .079(prints a series of)2.579 F F2(set)2.579 E
F1 .079(commands to recreate the cur)2.579 F(-)-.2 E
-(rent option settings on the standard output.)184 180 Q F2<ad70>144 192
-Q F1 -.45(Tu)184 192 S 3.278(rn on).45 F F0(privile)7.028 E -.1(ge)-.4 G
+(rent option settings on the standard output.)184 636 Q F2<ad70>144 648
+Q F1 -.45(Tu)184 648 S 3.278(rn on).45 F F0(privile)7.028 E -.1(ge)-.4 G
(d).1 E F1 5.777(mode. In)6.548 F 3.277
-(this mode, the shell does not read the)5.777 F/F3 9/Times-Bold@0 SF
-($ENV)5.777 E F1(and)5.527 E F3($B)184 204 Q(ASH_ENV)-.27 E F1 .018
+(this mode, the shell does not read the)5.777 F F3($ENV)5.777 E F1(and)
+5.527 E F3($B)184 660 Q(ASH_ENV)-.27 E F1 .018
(\214les, shell functions are not inherited from the en)2.267 F .018
-(vironment, and the)-.4 F F3(SHEL-)2.518 E(LOPTS)184 216 Q/F4 9
-/Times-Roman@0 SF(,)A F3 -.27(BA)2.59 G(SHOPTS).27 E F4(,)A F3(CDP)2.59
-E -.855(AT)-.666 G(H).855 E F4(,)A F1(and)2.59 E F3(GLOBIGNORE)2.84 E F1
--.25(va)2.589 G .339(riables, if the).25 F 2.839(ya)-.15 G .339
-(ppear in the en)-2.839 F(vi-)-.4 E .02(ronment, are ignored.)184 228 R
-.021(If the shell is started with the ef)5.02 F(fecti)-.25 E .321 -.15
-(ve u)-.25 H .021(ser \(group\) id not equal to).15 F .043
-(the real user \(group\) id, and the)184 240 R F2<ad70>2.543 E F1 .043
+(vironment, and the)-.4 F F3(SHEL-)2.518 E(LOPTS)184 672 Q F4(,)A F3
+-.27(BA)2.59 G(SHOPTS).27 E F4(,)A F3(CDP)2.59 E -.855(AT)-.666 G(H).855
+E F4(,)A F1(and)2.59 E F3(GLOBIGNORE)2.84 E F1 -.25(va)2.589 G .339
+(riables, if the).25 F 2.839(ya)-.15 G .339(ppear in the en)-2.839 F
+(vi-)-.4 E .02(ronment, are ignored.)184 684 R .021
+(If the shell is started with the ef)5.02 F(fecti)-.25 E .321 -.15(ve u)
+-.25 H .021(ser \(group\) id not equal to).15 F .043
+(the real user \(group\) id, and the)184 696 R F2<ad70>2.543 E F1 .043
(option is not supplied, these actions are tak)2.543 F .043(en and the)
--.1 F(ef)184 252 Q(fecti)-.25 E .878 -.15(ve u)-.25 H .579
+-.1 F(ef)184 708 Q(fecti)-.25 E .878 -.15(ve u)-.25 H .579
(ser id is set to the real user id.).15 F .579(If the)5.579 F F2<ad70>
3.079 E F1 .579(option is supplied at startup, the ef-)3.079 F(fecti)184
-264 Q 1.21 -.15(ve u)-.25 H .91(ser id is not reset.).15 F -.45(Tu)5.91
+720 Q 1.21 -.15(ve u)-.25 H .91(ser id is not reset.).15 F -.45(Tu)5.91
G .91(rning this option of).45 F 3.41(fc)-.25 G .91(auses the ef)-3.41 F
(fecti)-.25 E 1.21 -.15(ve u)-.25 H .91(ser and group).15 F
-(ids to be set to the real user and group ids.)184 276 Q F2<ad72>144 288
-Q F1(Enable restricted shell mode.)184 288 Q
-(This option cannot be unset once it has been set.)5 E F2<ad74>144 300 Q
-F1(Exit after reading and e)184 300 Q -.15(xe)-.15 G
-(cuting one command.).15 E F2<ad75>144 312 Q F1 -.35(Tr)184 312 S .662
+(GNU Bash 5.3)72 768 Q(2026 January 14)141.79 E(85)190.95 E 0 Cg EP
+%%Page: 86 86
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E(ids to be set to the real user and group ids.)184
+84 Q/F2 10/Times-Bold@0 SF<ad72>144 96 Q F1
+(Enable restricted shell mode.)184 96 Q
+(This option cannot be unset once it has been set.)5 E F2<ad74>144 108 Q
+F1(Exit after reading and e)184 108 Q -.15(xe)-.15 G
+(cuting one command.).15 E F2<ad75>144 120 Q F1 -.35(Tr)184 120 S .662
(eat unset v).35 F .662(ariables and parameters other than the special \
-parameters \231@\232 and \231*\232, or)-.25 F .349(array v)184 324 R
+parameters \231@\232 and \231*\232, or)-.25 F .349(array v)184 132 R
.348(ariables subscripted with \231@\232 or \231*\232, as an error when\
- performing parameter e)-.25 F(x-)-.15 E 2.89(pansion. If)184 336 R -.15
+ performing parameter e)-.25 F(x-)-.15 E 2.89(pansion. If)184 144 R -.15
(ex)2.89 G .391(pansion is attempted on an unset v).15 F .391
(ariable or parameter)-.25 F 2.891(,t)-.4 G .391(he shell prints an)
--2.891 F(error message, and, if not interacti)184 348 Q -.15(ve)-.25 G
-2.5(,e).15 G(xits with a non-zero status.)-2.65 E F2<ad76>144 360 Q F1
-(Print shell input lines as the)184 360 Q 2.5(ya)-.15 G(re read.)-2.5 E
-F2<ad78>144 372 Q F1 .315(After e)184 372 R .315(xpanding each)-.15 F F0
+-2.891 F(error message, and, if not interacti)184 156 Q -.15(ve)-.25 G
+2.5(,e).15 G(xits with a non-zero status.)-2.65 E F2<ad76>144 168 Q F1
+(Print shell input lines as the)184 168 Q 2.5(ya)-.15 G(re read.)-2.5 E
+F2<ad78>144 180 Q F1 .315(After e)184 180 R .315(xpanding each)-.15 F F0
.315(simple command)2.815 F F1(,)A F2 -.25(fo)2.815 G(r).25 E F1
(command,)2.815 E F2(case)2.815 E F1(command,)2.815 E F2(select)2.815 E
-F1(command,)2.815 E 1.235(or arithmetic)184 384 R F2 -.25(fo)3.736 G(r)
+F1(command,)2.815 E 1.235(or arithmetic)184 192 R F2 -.25(fo)3.736 G(r)
.25 E F1 1.236(command, display the e)3.736 F 1.236(xpanded v)-.15 F
-1.236(alue of)-.25 F F3(PS4)3.736 E F4(,)A F1(follo)3.486 E 1.236
-(wed by the com-)-.25 F(mand and its e)184 396 Q(xpanded ar)-.15 E
-(guments or associated w)-.18 E(ord list, to the standard error)-.1 E(.)
--.55 E F2<ad42>144 408 Q F1 1.206(The shell performs brace e)184 408 R
-1.206(xpansion \(see)-.15 F F2 1.205(Brace Expansion)3.705 F F1(abo)
-3.705 E -.15(ve)-.15 G 3.705(\). This).15 F 1.205(is on by de-)3.705 F
--.1(fa)184 420 S(ult.).1 E F2<ad43>144 432 Q F1 .213(If set,)184 432 R
-F2(bash)2.713 E F1 .213(does not o)2.713 F -.15(ve)-.15 G .214
-(rwrite an e).15 F .214(xisting \214le with the)-.15 F F2(>)2.714 E F1
-(,)A F2(>&)2.714 E F1 2.714(,a)C(nd)-2.714 E F2(<>)2.714 E F1 .214
-(redirection opera-)2.714 F 3.148(tors. Using)184 444 R .648
-(the redirection operator)3.148 F F2(>|)3.148 E F1 .648(instead of)3.148
-F F2(>)3.148 E F1 .648(will o)3.148 F -.15(ve)-.15 G .648
-(rride this and force the cre-).15 F(ation of an output \214le.)184 456
-Q F2<ad45>144 468 Q F1 .103(If set, an)184 468 R 2.603(yt)-.15 G .103
-(rap on)-2.603 F F2(ERR)2.603 E F1 .104
+1.236(alue of)-.25 F/F3 9/Times-Bold@0 SF(PS4)3.736 E/F4 9/Times-Roman@0
+SF(,)A F1(follo)3.486 E 1.236(wed by the com-)-.25 F(mand and its e)184
+204 Q(xpanded ar)-.15 E(guments or associated w)-.18 E
+(ord list, to the standard error)-.1 E(.)-.55 E F2<ad42>144 216 Q F1
+1.206(The shell performs brace e)184 216 R 1.206(xpansion \(see)-.15 F
+F2 1.205(Brace Expansion)3.705 F F1(abo)3.705 E -.15(ve)-.15 G 3.705
+(\). This).15 F 1.205(is on by de-)3.705 F -.1(fa)184 228 S(ult.).1 E F2
+<ad43>144 240 Q F1 .213(If set,)184 240 R F2(bash)2.713 E F1 .213
+(does not o)2.713 F -.15(ve)-.15 G .214(rwrite an e).15 F .214
+(xisting \214le with the)-.15 F F2(>)2.714 E F1(,)A F2(>&)2.714 E F1
+2.714(,a)C(nd)-2.714 E F2(<>)2.714 E F1 .214(redirection opera-)2.714 F
+3.148(tors. Using)184 252 R .648(the redirection operator)3.148 F F2(>|)
+3.148 E F1 .648(instead of)3.148 F F2(>)3.148 E F1 .648(will o)3.148 F
+-.15(ve)-.15 G .648(rride this and force the cre-).15 F
+(ation of an output \214le.)184 264 Q F2<ad45>144 276 Q F1 .103
+(If set, an)184 276 R 2.603(yt)-.15 G .103(rap on)-2.603 F F2(ERR)2.603
+E F1 .104
(is inherited by shell functions, command substitutions, and com-)2.603
-F .839(mands e)184 480 R -.15(xe)-.15 G .839(cuted in a subshell en).15
+F .839(mands e)184 288 R -.15(xe)-.15 G .839(cuted in a subshell en).15
F 3.339(vironment. The)-.4 F F2(ERR)3.338 E F1 .838
-(trap is normally not inherited in)3.338 F(such cases.)184 492 Q F2
-<ad48>144 504 Q F1(Enable)184 504 Q F2(!)3.031 E F1 .531
+(trap is normally not inherited in)3.338 F(such cases.)184 300 Q F2
+<ad48>144 312 Q F1(Enable)184 312 Q F2(!)3.031 E F1 .531
(style history substitution.)5.531 F .531(This option is on by def)5.531
-F .532(ault when the shell is inter)-.1 F(-)-.2 E(acti)184 516 Q -.15
-(ve)-.25 G(.).15 E F2<ad50>144 528 Q F1 .96
-(If set, the shell does not resolv)184 528 R 3.459(es)-.15 G .959
+F .532(ault when the shell is inter)-.1 F(-)-.2 E(acti)184 324 Q -.15
+(ve)-.25 G(.).15 E F2<ad50>144 336 Q F1 .96
+(If set, the shell does not resolv)184 336 R 3.459(es)-.15 G .959
(ymbolic links when e)-3.459 F -.15(xe)-.15 G .959
(cuting commands such as).15 F F2(cd)3.459 E F1 1.452
-(that change the current w)184 540 R 1.452(orking directory)-.1 F 6.452
+(that change the current w)184 348 R 1.452(orking directory)-.1 F 6.452
(.I)-.65 G 3.953(tu)-6.452 G 1.453(ses the ph)-3.953 F 1.453
-(ysical directory structure in-)-.05 F 3.335(stead. By)184 552 R(def)
+(ysical directory structure in-)-.05 F 3.335(stead. By)184 360 R(def)
3.335 E(ault,)-.1 E F2(bash)3.334 E F1(follo)3.334 E .834
(ws the logical chain of directories when performing com-)-.25 F
-(mands which change the current directory)184 564 Q(.)-.65 E F2<ad54>144
-576 Q F1 .89(If set, an)184 576 R 3.39(yt)-.15 G .89(raps on)-3.39 F F2
+(mands which change the current directory)184 372 Q(.)-.65 E F2<ad54>144
+384 Q F1 .89(If set, an)184 384 R 3.39(yt)-.15 G .89(raps on)-3.39 F F2
(DEB)3.39 E(UG)-.1 E F1(and)3.39 E F2(RETURN)3.39 E F1 .89
(are inherited by shell functions, command)3.39 F 1.932
-(substitutions, and commands e)184 588 R -.15(xe)-.15 G 1.932
+(substitutions, and commands e)184 396 R -.15(xe)-.15 G 1.932
(cuted in a subshell en).15 F 4.432(vironment. The)-.4 F F2(DEB)4.432 E
-(UG)-.1 E F1(and)4.432 E F2(RETURN)184 600 Q F1
-(traps are normally not inherited in such cases.)2.5 E F2<adad>144 612 Q
-F1 .909(If no ar)184 612 R .909(guments follo)-.18 F 3.409(wt)-.25 G
+(UG)-.1 E F1(and)4.432 E F2(RETURN)184 408 Q F1
+(traps are normally not inherited in such cases.)2.5 E F2<adad>144 420 Q
+F1 .909(If no ar)184 420 R .909(guments follo)-.18 F 3.409(wt)-.25 G
.909(his option, unset the positional parameters.)-3.409 F .91
-(Otherwise, set the)5.909 F(positional parameters to the)184 624 Q F0
+(Otherwise, set the)5.909 F(positional parameters to the)184 432 Q F0
(ar)2.5 E(g)-.37 E F1(s, e)A -.15(ve)-.25 G 2.5(ni).15 G 2.5(fs)-2.5 G
(ome of them be)-2.5 E(gin with a)-.15 E F2<ad>2.5 E F1(.)A F2<ad>144
-636 Q F1 1.368(Signal the end of options, and assign all remaining)184
-636 R F0(ar)3.868 E(g)-.37 E F1 3.867(st)C 3.867(ot)-3.867 G 1.367
-(he positional parameters.)-3.867 F(The)184 648 Q F2<ad78>2.848 E F1
+444 Q F1 1.368(Signal the end of options, and assign all remaining)184
+444 R F0(ar)3.868 E(g)-.37 E F1 3.867(st)C 3.867(ot)-3.867 G 1.367
+(he positional parameters.)-3.867 F(The)184 456 Q F2<ad78>2.848 E F1
(and)2.848 E F2<ad76>2.848 E F1 .349(options are turned of)2.848 F 2.849
(f. If)-.25 F .349(there are no)2.849 F F0(ar)2.849 E(g)-.37 E F1 .349
-(s, the positional parameters re-)B(main unchanged.)184 660 Q .425
-(The options are of)144 676.8 R 2.925(fb)-.25 G 2.925(yd)-2.925 G(ef)
+(s, the positional parameters re-)B(main unchanged.)184 468 Q .425
+(The options are of)144 484.8 R 2.925(fb)-.25 G 2.925(yd)-2.925 G(ef)
-2.925 E .425(ault unless otherwise noted.)-.1 F .425
(Using + rather than \255 causes these options)5.425 F .177
-(to be turned of)144 688.8 R 2.677(f. The)-.25 F .178
+(to be turned of)144 496.8 R 2.677(f. The)-.25 F .178
(options can also be speci\214ed as ar)2.678 F .178(guments to an in)
-.18 F -.2(vo)-.4 G .178(cation of the shell.).2 F(The)5.178 E .654
-(current set of options may be found in)144 700.8 R F2<24ad>3.153 E F1
+(current set of options may be found in)144 508.8 R F2<24ad>3.153 E F1
5.653(.T)C .653(he return status is al)-5.653 F -.1(wa)-.1 G .653
(ys zero unless an in).1 F -.25(va)-.4 G .653(lid op-).25 F
-(tion is encountered.)144 712.8 Q(GNU Bash 5.3)72 768 Q(2025 April 7)
-149.285 E(84)198.445 E 0 Cg EP
-%%Page: 85 85
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(shift)108 84 Q F1([)2.5 E F0
-(n)A F1(])A .596(Rename positional parameters from)144 96 R F0(n)3.097 E
+(tion is encountered.)144 520.8 Q F2(shift)108 537.6 Q F1([)2.5 E F0(n)A
+F1(])A .596(Rename positional parameters from)144 549.6 R F0(n)3.097 E
F1 .597(+1 .)B -2.735 1.666(.. t)1.666 H(o)-1.666 E F2 .597($1 .)3.097 F
1.666(..)1.666 G(.)-1.666 E F1 -.15(Pa)5.597 G .597
-(rameters represented by the numbers).15 F F2($#)3.097 E F1(do)144 108 Q
-.079(wn to)-.25 F F2($#)2.579 E F1<ad>A F0(n)A F1 .078(+1 are unset.)B
+(rameters represented by the numbers).15 F F2($#)3.097 E F1(do)144 561.6
+Q .079(wn to)-.25 F F2($#)2.579 E F1<ad>A F0(n)A F1 .078(+1 are unset.)B
F0(n)5.438 E F1 .078(must be a non-ne)2.818 F -.05(ga)-.15 G(ti).05 E
.378 -.15(ve n)-.25 H .078(umber less than or equal to).15 F F2($#)2.578
E F1 5.078(.I)C(f)-5.078 E F0(n)2.938 E F1 .078(is 0, no)2.818 F .502
-(parameters are changed.)144 120 R(If)5.502 E F0(n)3.362 E F1 .502
+(parameters are changed.)144 573.6 R(If)5.502 E F0(n)3.362 E F1 .502
(is not gi)3.242 F -.15(ve)-.25 G .502(n, it is assumed to be 1.).15 F
(If)5.503 E F0(n)3.363 E F1 .503(is greater than)3.243 F F2($#)3.003 E
F1 3.003(,t)C .503(he posi-)-3.003 F .46
-(tional parameters are not changed.)144 132 R .46
+(tional parameters are not changed.)144 585.6 R .46
(The return status is greater than zero if)5.46 F F0(n)3.32 E F1 .46
(is greater than)3.2 F F2($#)2.96 E F1(or)2.96 E
-(less than zero; otherwise 0.)144 144 Q F2(shopt)108 160.8 Q F1([)2.5 E
-F2(\255pqsu)A F1 2.5(][)C F2<ad6f>-2.5 E F1 2.5(][)C F0(optname)-2.5 E
-F1 1.666(...)2.5 G(])-1.666 E -.8(To)144 172.8 S .639(ggle the v).8 F
+(less than zero; otherwise 0.)144 597.6 Q F2(shopt)108 614.4 Q F1([)2.5
+E F2(\255pqsu)A F1 2.5(][)C F2<ad6f>-2.5 E F1 2.5(][)C F0(optname)-2.5 E
+F1 1.666(...)2.5 G(])-1.666 E -.8(To)144 626.4 S .639(ggle the v).8 F
.639(alues of settings controlling optional shell beha)-.25 F(vior)-.2 E
5.639(.T)-.55 G .64(he settings can be either those)-5.639 F .375
-(listed belo)144 184.8 R 1.675 -.65(w, o)-.25 H 1.175 -.4(r, i).65 H
+(listed belo)144 638.4 R 1.675 -.65(w, o)-.25 H 1.175 -.4(r, i).65 H
2.875(ft).4 G(he)-2.875 E F2<ad6f>2.875 E F1 .375
(option is used, those a)2.875 F -.25(va)-.2 G .375(ilable with the).25
F F2<ad6f>2.875 E F1 .374(option to the)2.875 F F2(set)2.874 E F1 -.2
-(bu)2.874 G .374(iltin com-).2 F(mand.)144 196.8 Q -.4(Wi)144 213.6 S
+(bu)2.874 G .374(iltin com-).2 F(mand.)144 650.4 Q -.4(Wi)144 667.2 S
.547(th no options, or with the).4 F F2<ad70>3.048 E F1 .548
(option, display a list of all settable options, with an indication of)
-3.048 F .675(whether or not each is set; if an)144 225.6 R(y)-.15 E F0
+3.048 F .675(whether or not each is set; if an)144 679.2 R(y)-.15 E F0
(optnames)3.175 E F1 .674
(are supplied, the output is restricted to those options.)3.175 F(The)
-144 237.6 Q F2<ad70>2.5 E F1
+144 691.2 Q F2<ad70>2.5 E F1
(option displays output in a form that may be reused as input.)2.5 E
-(Other options ha)144 254.4 Q .3 -.15(ve t)-.2 H(he follo).15 E
-(wing meanings:)-.25 E F2<ad73>144 266.4 Q F1(Enable \(set\) each)180
-266.4 Q F0(optname)2.5 E F1(.)A F2<ad75>144 278.4 Q F1
-(Disable \(unset\) each)180 278.4 Q F0(optname)2.5 E F1(.)A F2<ad71>144
-290.4 Q F1 .003(Suppresses normal output \(quiet mode\); the return sta\
-tus indicates whether the)180 290.4 R F0(optname)2.504 E F1(is)2.504 E
-.042(set or unset.)180 302.4 R .042(If multiple)5.042 F F0(optname)2.542
-E F1(ar)2.542 E .042(guments are supplied with)-.18 F F2<ad71>2.542 E F1
-2.542(,t)C .042(he return status is zero)-2.542 F(if all)180 314.4 Q F0
+(Other options ha)144 708 Q .3 -.15(ve t)-.2 H(he follo).15 E
+(wing meanings:)-.25 E(GNU Bash 5.3)72 768 Q(2026 January 14)141.79 E
+(86)190.95 E 0 Cg EP
+%%Page: 87 87
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF<ad73>144 84 Q F1
+(Enable \(set\) each)180 84 Q F0(optname)2.5 E F1(.)A F2<ad75>144 96 Q
+F1(Disable \(unset\) each)180 96 Q F0(optname)2.5 E F1(.)A F2<ad71>144
+108 Q F1 .003(Suppresses normal output \(quiet mode\); the return statu\
+s indicates whether the)180 108 R F0(optname)2.504 E F1(is)2.504 E .042
+(set or unset.)180 120 R .042(If multiple)5.042 F F0(optname)2.542 E F1
+(ar)2.542 E .042(guments are supplied with)-.18 F F2<ad71>2.542 E F1
+2.542(,t)C .042(he return status is zero)-2.542 F(if all)180 132 Q F0
(optnames)2.5 E F1(are enabled; non-zero otherwise.)2.5 E F2<ad6f>144
-326.4 Q F1(Restricts the v)180 326.4 Q(alues of)-.25 E F0(optname)2.5 E
-F1(to be those de\214ned for the)2.5 E F2<ad6f>2.5 E F1(option to the)
-2.5 E F2(set)2.5 E F1 -.2(bu)2.5 G(iltin.).2 E .624(If either)144 343.2
-R F2<ad73>3.124 E F1(or)3.124 E F2<ad75>3.124 E F1 .624(is used with no)
+144 Q F1(Restricts the v)180 144 Q(alues of)-.25 E F0(optname)2.5 E F1
+(to be those de\214ned for the)2.5 E F2<ad6f>2.5 E F1(option to the)2.5
+E F2(set)2.5 E F1 -.2(bu)2.5 G(iltin.).2 E .624(If either)144 160.8 R F2
+<ad73>3.124 E F1(or)3.124 E F2<ad75>3.124 E F1 .624(is used with no)
3.124 F F0(optname)3.124 E F1(ar)3.124 E(guments,)-.18 E F2(shopt)3.124
E F1(sho)3.124 E .624(ws only those options which are)-.25 F .984
-(set or unset, respecti)144 355.2 R -.15(ve)-.25 G(ly).15 E 5.984(.U)
+(set or unset, respecti)144 172.8 R -.15(ve)-.25 G(ly).15 E 5.984(.U)
-.65 G .984(nless otherwise noted, the)-5.984 F F2(shopt)3.484 E F1 .983
-(options are disabled \(unset\) by de-)3.483 F -.1(fa)144 367.2 S(ult.)
-.1 E 1.544(The return status when listing options is zero if all)144 384
-R F0(optnames)4.044 E F1 1.545(are enabled, non-zero otherwise.)4.045 F
-.696
+(options are disabled \(unset\) by de-)3.483 F -.1(fa)144 184.8 S(ult.)
+.1 E 1.544(The return status when listing options is zero if all)144
+201.6 R F0(optnames)4.044 E F1 1.545(are enabled, non-zero otherwise.)
+4.045 F .696
(When setting or unsetting options, the return status is zero unless an)
-144 396 R F0(optname)3.196 E F1 .696(is not a v)3.196 F .695(alid shell)
--.25 F(option.)144 408 Q(The list of)144 424.8 Q F2(shopt)2.5 E F1
-(options is:)2.5 E F2(array_expand_once)144 441.6 Q F1 1.831
-(If set, the shell suppresses multiple e)184 453.6 R -.25(va)-.25 G
+144 213.6 R F0(optname)3.196 E F1 .696(is not a v)3.196 F .695
+(alid shell)-.25 F(option.)144 225.6 Q(The list of)144 242.4 Q F2(shopt)
+2.5 E F1(options is:)2.5 E F2(array_expand_once)144 259.2 Q F1 1.831
+(If set, the shell suppresses multiple e)184 271.2 R -.25(va)-.25 G
1.832(luation of associati).25 F 2.132 -.15(ve a)-.25 H 1.832(nd inde)
.15 F -.15(xe)-.15 G 4.332(da).15 G 1.832(rray sub-)-4.332 F .025
-(scripts during arithmetic e)184 465.6 R .025(xpression e)-.15 F -.25
+(scripts during arithmetic e)184 283.2 R .025(xpression e)-.15 F -.25
(va)-.25 G .025(luation, while e).25 F -.15(xe)-.15 G .025(cuting b).15
-F .025(uiltins that can perform)-.2 F -.25(va)184 477.6 S
+F .025(uiltins that can perform)-.2 F -.25(va)184 295.2 S
(riable assignments, and while e).25 E -.15(xe)-.15 G(cuting b).15 E
(uiltins that perform array dereferencing.)-.2 E F2(assoc_expand_once)
-144 489.6 Q F1(Deprecated; a synon)184 501.6 Q(ym for)-.15 E F2
-(array_expand_once)2.5 E F1(.)A F2(autocd)144 513.6 Q F1 .199
-(If set, a command name that is the name of a directory is e)184 513.6 R
+144 307.2 Q F1(Deprecated; a synon)184 319.2 Q(ym for)-.15 E F2
+(array_expand_once)2.5 E F1(.)A F2(autocd)144 331.2 Q F1 .199
+(If set, a command name that is the name of a directory is e)184 331.2 R
-.15(xe)-.15 G .2(cuted as if it were the ar).15 F(gu-)-.18 E
-(ment to the)184 525.6 Q F2(cd)2.5 E F1 2.5(command. This)2.5 F
+(ment to the)184 343.2 Q F2(cd)2.5 E F1 2.5(command. This)2.5 F
(option is only used by interacti)2.5 E .3 -.15(ve s)-.25 H(hells.).15 E
-F2(bash_sour)144 537.6 Q(ce_fullpath)-.18 E F1 .124
-(If set, \214lenames added to the)184 549.6 R F2 -.3(BA)2.624 G
+F2(bash_sour)144 355.2 Q(ce_fullpath)-.18 E F1 .124
+(If set, \214lenames added to the)184 367.2 R F2 -.3(BA)2.624 G
(SH_SOURCE).3 E F1 .124(array v)2.624 F .124(ariable are con)-.25 F -.15
-(ve)-.4 G .123(rted to full path-).15 F(names \(see)184 561.6 Q F2
+(ve)-.4 G .123(rted to full path-).15 F(names \(see)184 379.2 Q F2
(Shell V)2.5 E(ariables)-.92 E F1(abo)2.5 E -.15(ve)-.15 G(\).).15 E F2
-(cdable_v)144 573.6 Q(ars)-.1 E F1 .155(If set, an ar)184 585.6 R .155
+(cdable_v)144 391.2 Q(ars)-.1 E F1 .155(If set, an ar)184 403.2 R .155
(gument to the)-.18 F F2(cd)2.655 E F1 -.2(bu)2.655 G .156
(iltin command that is not a directory is assumed to be the).2 F
-(name of a v)184 597.6 Q(ariable whose v)-.25 E
-(alue is the directory to change to.)-.25 E F2(cdspell)144 609.6 Q F1
-1.293(If set, the)184 609.6 R F2(cd)3.793 E F1 1.293(command attempts t\
+(name of a v)184 415.2 Q(ariable whose v)-.25 E
+(alue is the directory to change to.)-.25 E F2(cdspell)144 427.2 Q F1
+1.293(If set, the)184 427.2 R F2(cd)3.793 E F1 1.293(command attempts t\
o correct minor errors in the spelling of a directory)3.793 F 3.982
-(component. Minor)184 621.6 R 1.482
+(component. Minor)184 439.2 R 1.482
(errors include transposed characters, a missing character)3.982 F 3.982
-(,a)-.4 G 1.482(nd one)-3.982 F -.15(ex)184 633.6 S .973(tra character)
+(,a)-.4 G 1.482(nd one)-3.982 F -.15(ex)184 451.2 S .973(tra character)
.15 F 5.973(.I)-.55 G(f)-5.973 E F2(cd)3.473 E F1 .972
(corrects the directory name, it prints the corrected \214lename, and)
-3.473 F(the command proceeds.)184 645.6 Q
+3.473 F(the command proceeds.)184 463.2 Q
(This option is only used by interacti)5 E .3 -.15(ve s)-.25 H(hells.)
-.15 E F2(checkhash)144 657.6 Q F1 .736(If set,)184 669.6 R F2(bash)3.236
+.15 E F2(checkhash)144 475.2 Q F1 .736(If set,)184 487.2 R F2(bash)3.236
E F1 .736(checks that a command found in the hash table e)3.236 F .737
(xists before trying to e)-.15 F -.15(xe)-.15 G(-).15 E(cute it.)184
-681.6 Q(If a hashed command no longer e)5 E(xists,)-.15 E F2(bash)2.5 E
-F1(performs a normal path search.)2.5 E F2(checkjobs)144 693.6 Q F1 .449
-(If set,)184 705.6 R F2(bash)2.949 E F1 .449(lists the status of an)
+499.2 Q(If a hashed command no longer e)5 E(xists,)-.15 E F2(bash)2.5 E
+F1(performs a normal path search.)2.5 E F2(checkjobs)144 511.2 Q F1 .449
+(If set,)184 523.2 R F2(bash)2.949 E F1 .449(lists the status of an)
2.949 F 2.949(ys)-.15 G .448(topped and running jobs before e)-2.949 F
-.448(xiting an interacti)-.15 F -.15(ve)-.25 G 2.783(shell. If)184 717.6
+.448(xiting an interacti)-.15 F -.15(ve)-.25 G 2.783(shell. If)184 535.2
R(an)2.783 E 2.783(yj)-.15 G .283(obs are running,)-2.783 F F2(bash)
2.784 E F1 .284(defers the e)2.784 F .284(xit until a second e)-.15 F
-.284(xit is attempted with-)-.15 F .835(out an interv)184 729.6 R .835
+.284(xit is attempted with-)-.15 F .835(out an interv)184 547.2 R .835
(ening command \(see)-.15 F/F3 9/Times-Bold@0 SF .835(JOB CONTR)3.335 F
(OL)-.27 E F1(abo)3.085 E -.15(ve)-.15 G 3.334(\). The).15 F .834
-(shell al)3.334 F -.1(wa)-.1 G .834(ys postpones).1 F(GNU Bash 5.3)72
-768 Q(2025 April 7)149.285 E(85)198.445 E 0 Cg EP
-%%Page: 86 86
+(shell al)3.334 F -.1(wa)-.1 G .834(ys postpones).1 F -.15(ex)184 559.2
+S(iting if an).15 E 2.5(yj)-.15 G(obs are stopped.)-2.5 E F2
+(checkwinsize)144 571.2 Q F1 1.09(If set,)184 583.2 R F2(bash)3.59 E F1
+1.09(checks the windo)3.59 F 3.59(ws)-.25 G 1.09(ize after each e)-3.59
+F 1.09(xternal \(non-b)-.15 F 1.09(uiltin\) command and, if)-.2 F
+(necessary)184 595.2 Q 2.938(,u)-.65 G .438(pdates the v)-2.938 F .438
+(alues of)-.25 F F3(LINES)2.938 E F1(and)2.688 E F3(COLUMNS)2.938 E/F4 9
+/Times-Roman@0 SF(,)A F1 .437(using the \214le descriptor associ-)2.688
+F(ated with the standard error if it is a terminal.)184 607.2 Q
+(This option is enabled by def)5 E(ault.)-.1 E F2(cmdhist)144 619.2 Q F1
+.172(If set,)184 619.2 R F2(bash)2.672 E F1 .172(attempts to sa)2.672 F
+.472 -.15(ve a)-.2 H .173
+(ll lines of a multiple-line command in the same history en-).15 F(try)
+184 631.2 Q 5.597(.T)-.65 G .597(his allo)-5.597 F .597
+(ws easy re-editing of multi-line commands.)-.25 F .597
+(This option is enabled by de-)5.597 F -.1(fa)184 643.2 S 1.287(ult, b)
+.1 F 1.288(ut only has an ef)-.2 F 1.288
+(fect if command history is enabled, as described abo)-.25 F 1.588 -.15
+(ve u)-.15 H(nder).15 E F3(HIST)184 655.2 Q(OR)-.162 E(Y)-.315 E F4(.)A
+F2(compat31)144 667.2 Q(compat32)144 679.2 Q(compat40)144 691.2 Q
+(compat41)144 703.2 Q F1(GNU Bash 5.3)72 768 Q(2026 January 14)141.79 E
+(87)190.95 E 0 Cg EP
+%%Page: 88 88
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E -.15(ex)184 84 S(iting if an).15 E 2.5(yj)-.15 G
-(obs are stopped.)-2.5 E/F2 10/Times-Bold@0 SF(checkwinsize)144 96 Q F1
-1.09(If set,)184 108 R F2(bash)3.59 E F1 1.09(checks the windo)3.59 F
-3.59(ws)-.25 G 1.09(ize after each e)-3.59 F 1.09(xternal \(non-b)-.15 F
-1.09(uiltin\) command and, if)-.2 F(necessary)184 120 Q 2.938(,u)-.65 G
-.438(pdates the v)-2.938 F .438(alues of)-.25 F/F3 9/Times-Bold@0 SF
-(LINES)2.938 E F1(and)2.688 E F3(COLUMNS)2.938 E/F4 9/Times-Roman@0 SF
-(,)A F1 .437(using the \214le descriptor associ-)2.688 F
-(ated with the standard error if it is a terminal.)184 132 Q
-(This option is enabled by def)5 E(ault.)-.1 E F2(cmdhist)144 144 Q F1
-.172(If set,)184 144 R F2(bash)2.672 E F1 .172(attempts to sa)2.672 F
-.472 -.15(ve a)-.2 H .173
-(ll lines of a multiple-line command in the same history en-).15 F(try)
-184 156 Q 5.597(.T)-.65 G .597(his allo)-5.597 F .597
-(ws easy re-editing of multi-line commands.)-.25 F .597
-(This option is enabled by de-)5.597 F -.1(fa)184 168 S 1.287(ult, b).1
-F 1.288(ut only has an ef)-.2 F 1.288
-(fect if command history is enabled, as described abo)-.25 F 1.588 -.15
-(ve u)-.15 H(nder).15 E F3(HIST)184 180 Q(OR)-.162 E(Y)-.315 E F4(.)A F2
-(compat31)144 192 Q(compat32)144 204 Q(compat40)144 216 Q(compat41)144
-228 Q(compat42)144 240 Q(compat43)144 252 Q(compat44)144 264 Q F1 .889
-(These control aspects of the shell')184 276 R 3.389(sc)-.55 G .889
-(ompatibility mode \(see)-3.389 F F3 .889(SHELL COMP)3.389 F -.855(AT)
--.666 G(IBILITY).855 E(MODE)184 288 Q F1(belo)2.25 E(w\).)-.25 E F2
-(complete_fullquote)144 300 Q F1 .653(If set,)184 312 R F2(bash)3.153 E
-F1 .653(quotes all shell metacharacters in \214lenames and directory na\
-mes when per)3.153 F(-)-.2 E 1.525(forming completion.)184 324 R 1.524
-(If not set,)6.525 F F2(bash)4.024 E F1(remo)4.024 E -.15(ve)-.15 G
-4.024(sm).15 G 1.524(etacharacters such as the dollar sign)-4.024 F
-2.667(from the set of characters that will be quoted in completed \214l\
-enames when these)184 336 R .029(metacharacters appear in shell v)184
-348 R .028(ariable references in w)-.25 F .028(ords to be completed.)-.1
-F .028(This means)5.028 F 1.072(that dollar signs in v)184 360 R 1.073
+.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(compat42)144 84 Q(compat43)
+144 96 Q(compat44)144 108 Q F1 .889(These control aspects of the shell')
+184 120 R 3.389(sc)-.55 G .889(ompatibility mode \(see)-3.389 F/F3 9
+/Times-Bold@0 SF .889(SHELL COMP)3.389 F -.855(AT)-.666 G(IBILITY).855 E
+(MODE)184 132 Q F1(belo)2.25 E(w\).)-.25 E F2(complete_fullquote)144 144
+Q F1 .653(If set,)184 156 R F2(bash)3.153 E F1 .653(quotes all shell me\
+tacharacters in \214lenames and directory names when per)3.153 F(-)-.2 E
+1.525(forming completion.)184 168 R 1.524(If not set,)6.525 F F2(bash)
+4.024 E F1(remo)4.024 E -.15(ve)-.15 G 4.024(sm).15 G 1.524
+(etacharacters such as the dollar sign)-4.024 F 2.667(from the set of c\
+haracters that will be quoted in completed \214lenames when these)184
+180 R .029(metacharacters appear in shell v)184 192 R .028
+(ariable references in w)-.25 F .028(ords to be completed.)-.1 F .028
+(This means)5.028 F 1.072(that dollar signs in v)184 204 R 1.073
(ariable names that e)-.25 F 1.073
(xpand to directories will not be quoted; ho)-.15 F(w-)-.25 E -2.15 -.25
-(ev e)184 372 T 1.923 -.4(r, a).25 H 1.423 -.15(ny d).4 H 1.123
+(ev e)184 216 T 1.923 -.4(r, a).25 H 1.423 -.15(ny d).4 H 1.123
(ollar signs appearing in \214lenames will not be quoted, either).15 F
6.123(.T)-.55 G 1.122(his is acti)-6.123 F -.15(ve)-.25 G .59
(only when bash is using backslashes to quote completed \214lenames.)184
-384 R .59(This v)5.59 F .59(ariable is set)-.25 F(by def)184 396 Q
+228 R .59(This v)5.59 F .59(ariable is set)-.25 F(by def)184 240 Q
(ault, which is the def)-.1 E(ault bash beha)-.1 E(vior in v)-.2 E
-(ersions through 4.2.)-.15 E F2(dir)144 408 Q(expand)-.18 E F1 .487
-(If set,)184 420 R F2(bash)2.987 E F1 .486
+(ersions through 4.2.)-.15 E F2(dir)144 252 Q(expand)-.18 E F1 .487
+(If set,)184 264 R F2(bash)2.987 E F1 .486
(replaces directory names with the results of w)2.986 F .486(ord e)-.1 F
.486(xpansion when perform-)-.15 F 1.25(ing \214lename completion.)184
-432 R 1.25(This changes the contents of the)6.25 F F2 -.18(re)3.75 G
+276 R 1.25(This changes the contents of the)6.25 F F2 -.18(re)3.75 G
(adline).18 E F1 1.25(editing b)3.75 F(uf)-.2 E(fer)-.25 E 6.25(.I)-.55
-G(f)-6.25 E(not set,)184 444 Q F2(bash)2.5 E F1(attempts to preserv)2.5
-E 2.5(ew)-.15 G(hat the user typed.)-2.5 E F2(dirspell)144 456 Q F1 .859
-(If set,)184 456 R F2(bash)3.359 E F1 .858
+G(f)-6.25 E(not set,)184 288 Q F2(bash)2.5 E F1(attempts to preserv)2.5
+E 2.5(ew)-.15 G(hat the user typed.)-2.5 E F2(dirspell)144 300 Q F1 .859
+(If set,)184 300 R F2(bash)3.359 E F1 .858
(attempts spelling correction on directory names during w)3.359 F .858
(ord completion if)-.1 F
-(the directory name initially supplied does not e)184 468 Q(xist.)-.15 E
-F2(dotglob)144 480 Q F1 1.087(If set,)184 480 R F2(bash)3.587 E F1 1.088
+(the directory name initially supplied does not e)184 312 Q(xist.)-.15 E
+F2(dotglob)144 324 Q F1 1.087(If set,)184 324 R F2(bash)3.587 E F1 1.088
(includes \214lenames be)3.588 F 1.088
(ginning with a \231.\232 in the results of pathname e)-.15 F(xpan-)-.15
-E 2.5(sion. The)184 492 R(\214lenames)2.5 E F0(.)4.166 E F1(and)4.166 E
+E 2.5(sion. The)184 336 R(\214lenames)2.5 E F0(.)4.166 E F1(and)4.166 E
F0(..)4.166 E F1(must al)4.166 E -.1(wa)-.1 G(ys be matched e).1 E
(xplicitly)-.15 E 2.5(,e)-.65 G -.15(ve)-2.75 G 2.5(ni).15 G(f)-2.5 E F2
-(dotglob)2.5 E F1(is set.)2.5 E F2(execfail)144 504 Q F1 .517
-(If set, a non-interacti)184 504 R .817 -.15(ve s)-.25 H .517
+(dotglob)2.5 E F1(is set.)2.5 E F2(execfail)144 348 Q F1 .517
+(If set, a non-interacti)184 348 R .817 -.15(ve s)-.25 H .517
(hell will not e).15 F .516(xit if it cannot e)-.15 F -.15(xe)-.15 G
.516(cute the \214le speci\214ed as an ar).15 F(-)-.2 E(gument to the)
-184 516 Q F2(exec)2.5 E F1 -.2(bu)2.5 G 2.5(iltin. An).2 F(interacti)2.5
+184 360 Q F2(exec)2.5 E F1 -.2(bu)2.5 G 2.5(iltin. An).2 F(interacti)2.5
E .3 -.15(ve s)-.25 H(hell does not e).15 E(xit if)-.15 E F2(exec)2.5 E
-F1 -.1(fa)2.5 G(ils.).1 E F2(expand_aliases)144 528 Q F1 .716
-(If set, aliases are e)184 540 R .717(xpanded as described abo)-.15 F
-1.017 -.15(ve u)-.15 H(nder).15 E F3(ALIASES)3.217 E F4(.)A F1 .717
-(This option is enabled)5.217 F(by def)184 552 Q(ault for interacti)-.1
-E .3 -.15(ve s)-.25 H(hells.).15 E F2(extdeb)144 564 Q(ug)-.2 E F1 .17
-(If set at shell in)184 576 R -.2(vo)-.4 G .17
+F1 -.1(fa)2.5 G(ils.).1 E F2(expand_aliases)144 372 Q F1 .716
+(If set, aliases are e)184 384 R .717(xpanded as described abo)-.15 F
+1.017 -.15(ve u)-.15 H(nder).15 E F3(ALIASES)3.217 E/F4 9/Times-Roman@0
+SF(.)A F1 .717(This option is enabled)5.217 F(by def)184 396 Q
+(ault for interacti)-.1 E .3 -.15(ve s)-.25 H(hells.).15 E F2(extdeb)144
+408 Q(ug)-.2 E F1 .17(If set at shell in)184 420 R -.2(vo)-.4 G .17
(cation, or in a shell startup \214le, arrange to e).2 F -.15(xe)-.15 G
.17(cute the deb).15 F .17(ugger pro\214le)-.2 F 1.081
-(before the shell starts, identical to the)184 588 R F2<adad646562>3.582
+(before the shell starts, identical to the)184 432 R F2<adad646562>3.582
E(ugger)-.2 E F1 3.582(option. If)3.582 F 1.082(set after in)3.582 F -.2
-(vo)-.4 G 1.082(cation, be-).2 F(ha)184 600 Q
+(vo)-.4 G 1.082(cation, be-).2 F(ha)184 444 Q
(vior intended for use by deb)-.2 E(uggers is enabled:)-.2 E F2(1.)184
-612 Q F1(The)220 612 Q F2<ad46>4.251 E F1 1.751(option to the)4.251 F F2
+456 Q F1(The)220 456 Q F2<ad46>4.251 E F1 1.751(option to the)4.251 F F2
(declar)4.251 E(e)-.18 E F1 -.2(bu)4.251 G 1.751
(iltin displays the source \214le name and line).2 F
-(number corresponding to each function name supplied as an ar)220 624 Q
-(gument.)-.18 E F2(2.)184 636 Q F1 1.667(If the command run by the)220
-636 R F2(DEB)4.167 E(UG)-.1 E F1 1.667(trap returns a non-zero v)4.167 F
-1.667(alue, the ne)-.25 F(xt)-.15 E(command is skipped and not e)220 648
-Q -.15(xe)-.15 G(cuted.).15 E F2(3.)184 660 Q F1 .841
-(If the command run by the)220 660 R F2(DEB)3.341 E(UG)-.1 E F1 .841
+(number corresponding to each function name supplied as an ar)220 468 Q
+(gument.)-.18 E F2(2.)184 480 Q F1 1.667(If the command run by the)220
+480 R F2(DEB)4.167 E(UG)-.1 E F1 1.667(trap returns a non-zero v)4.167 F
+1.667(alue, the ne)-.25 F(xt)-.15 E(command is skipped and not e)220 492
+Q -.15(xe)-.15 G(cuted.).15 E F2(3.)184 504 Q F1 .841
+(If the command run by the)220 504 R F2(DEB)3.341 E(UG)-.1 E F1 .841
(trap returns a v)3.341 F .84(alue of 2, and the shell is)-.25 F -.15
-(exe)220 672 S .488
+(exe)220 516 S .488
(cuting in a subroutine \(a shell function or a shell script e).15 F
-.15(xe)-.15 G .488(cuted by the).15 F F2(.)2.988 E F1(or)2.988 E F2
-(sour)220 684 Q(ce)-.18 E F1 -.2(bu)2.5 G
+(sour)220 528 Q(ce)-.18 E F1 -.2(bu)2.5 G
(iltins\), the shell simulates a call to).2 E F2 -.18(re)2.5 G(tur).18 E
-(n)-.15 E F1(.)A F2(4.)184 696 Q F3 -.27(BA)220 696 S(SH_ARGC).27 E F1
+(n)-.15 E F1(.)A F2(4.)184 540 Q F3 -.27(BA)220 540 S(SH_ARGC).27 E F1
(and)3.154 E F3 -.27(BA)3.404 G(SH_ARGV).27 E F1 .904
-(are updated as described in their descriptions)3.154 F(abo)220 708 Q
--.15(ve)-.15 G(\).).15 E(GNU Bash 5.3)72 768 Q(2025 April 7)149.285 E
-(86)198.445 E 0 Cg EP
-%%Page: 87 87
+(are updated as described in their descriptions)3.154 F(abo)220 552 Q
+-.15(ve)-.15 G(\).).15 E F2(5.)184 564 Q F1 1.637(Function tracing is e\
+nabled: command substitution, shell functions, and sub-)220 564 R
+(shells in)220 576 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F2
+(\()2.5 E F0(command)2.5 E F2(\))2.5 E F1(inherit the)2.5 E F2(DEB)2.5 E
+(UG)-.1 E F1(and)2.5 E F2(RETURN)2.5 E F1(traps.)2.5 E F2(6.)184 588 Q
+F1 1.082(Error tracing is enabled: command substitution, shell function\
+s, and subshells)220 588 R(in)220 600 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw)
+.1 G(ith)-2.5 E F2(\()2.5 E F0(command)2.5 E F2(\))2.5 E F1(inherit the)
+2.5 E F2(ERR)2.5 E F1(trap.)2.5 E F2(extglob)144 612 Q F1 .856
+(If set, enable the e)184 612 R .856
+(xtended pattern matching features described abo)-.15 F 1.157 -.15(ve u)
+-.15 H(nder).15 E F2 -.1(Pa)3.357 G(thname).1 E(Expansion)184 624 Q F1
+(.)A F2(extquote)144 636 Q F1 .86(If set,)184 648 R F2($)3.36 E F1<08>A
+F0(string)A F1 3.36<0861>C(nd)-3.36 E F2($)3.36 E F1(")A F0(string)A F1
+3.36("q)C .86(uoting is performed within)-3.36 F F2(${)3.36 E F0(par)A
+(ameter)-.15 E F2(})A F1 -.15(ex)3.36 G .86(pansions en-).15 F
+(closed in double quotes.)184 660 Q(This option is enabled by def)5 E
+(ault.)-.1 E F2(failglob)144 672 Q F1 .242(If set, patterns which f)184
+672 R .243(ail to match \214lenames during pathname e)-.1 F .243
+(xpansion result in an e)-.15 F(x-)-.15 E(pansion error)184 684 Q(.)-.55
+E F2 -.25(fo)144 696 S -.18(rc).25 G(e_\214gnor).18 E(e)-.18 E F1 .937
+(If set, the suf)184 708 R<8c78>-.25 E .936(es speci\214ed by the)-.15 F
+F3(FIGNORE)3.436 E F1 .936(shell v)3.186 F .936(ariable cause w)-.25 F
+.936(ords to be ignored)-.1 F 2.267(when performing w)184 720 R 2.267
+(ord completion e)-.1 F -.15(ve)-.25 G 4.767(ni).15 G 4.767(ft)-4.767 G
+2.268(he ignored w)-4.767 F 2.268(ords are the only possible)-.1 F
+(GNU Bash 5.3)72 768 Q(2026 January 14)141.79 E(88)190.95 E 0 Cg EP
+%%Page: 89 89
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(5.)184 84 Q F1 1.637(Functio\
-n tracing is enabled: command substitution, shell functions, and sub-)
-220 84 R(shells in)220 96 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)
--2.5 E F2(\()2.5 E F0(command)2.5 E F2(\))2.5 E F1(inherit the)2.5 E F2
-(DEB)2.5 E(UG)-.1 E F1(and)2.5 E F2(RETURN)2.5 E F1(traps.)2.5 E F2(6.)
-184 108 Q F1 1.082(Error tracing is enabled: command substitution, shel\
-l functions, and subshells)220 108 R(in)220 120 Q -.2(vo)-.4 G -.1(ke).2
-G 2.5(dw).1 G(ith)-2.5 E F2(\()2.5 E F0(command)2.5 E F2(\))2.5 E F1
-(inherit the)2.5 E F2(ERR)2.5 E F1(trap.)2.5 E F2(extglob)144 132 Q F1
-.856(If set, enable the e)184 132 R .856
-(xtended pattern matching features described abo)-.15 F 1.157 -.15(ve u)
--.15 H(nder).15 E F2 -.1(Pa)3.357 G(thname).1 E(Expansion)184 144 Q F1
-(.)A F2(extquote)144 156 Q F1 .86(If set,)184 168 R F2($)3.36 E F1<08>A
-F0(string)A F1 3.36<0861>C(nd)-3.36 E F2($)3.36 E F1(")A F0(string)A F1
-3.36("q)C .86(uoting is performed within)-3.36 F F2(${)3.36 E F0(par)A
-(ameter)-.15 E F2(})A F1 -.15(ex)3.36 G .86(pansions en-).15 F
-(closed in double quotes.)184 180 Q(This option is enabled by def)5 E
-(ault.)-.1 E F2(failglob)144 192 Q F1 .242(If set, patterns which f)184
-192 R .243(ail to match \214lenames during pathname e)-.1 F .243
-(xpansion result in an e)-.15 F(x-)-.15 E(pansion error)184 204 Q(.)-.55
-E F2 -.25(fo)144 216 S -.18(rc).25 G(e_\214gnor).18 E(e)-.18 E F1 .937
-(If set, the suf)184 228 R<8c78>-.25 E .936(es speci\214ed by the)-.15 F
-/F3 9/Times-Bold@0 SF(FIGNORE)3.436 E F1 .936(shell v)3.186 F .936
-(ariable cause w)-.25 F .936(ords to be ignored)-.1 F .32
-(when performing w)184 240 R .32(ord completion e)-.1 F -.15(ve)-.25 G
-2.82(ni).15 G 2.82(ft)-2.82 G .32(he ignored w)-2.82 F .32
-(ords are the only possible com-)-.1 F 3.239(pletions. See)184 252 R F2
-.739(Shell V)3.239 F(ariables)-.92 E F1(abo)3.238 E 1.038 -.15(ve f)-.15
-H .738(or a description of).15 F F3(FIGNORE)3.238 E/F4 9/Times-Roman@0
-SF(.)A F1 .738(This option is en-)5.238 F(abled by def)184 264 Q(ault.)
--.1 E F2(globasciiranges)144 276 Q F1 2.518(If set, range e)184 288 R
-2.519(xpressions used in pattern matching brack)-.15 F 2.519(et e)-.1 F
-2.519(xpressions \(see)-.15 F F3 -.09(Pa)5.019 G(tter).09 E(n)-.135 E
-(Matching)184 300 Q F1(abo)2.965 E -.15(ve)-.15 G 3.215(\)b).15 G(eha)
+.25 E F1(\(1\)).95 E 3.138(completions. See)184 84 R/F2 10/Times-Bold@0
+SF .638(Shell V)3.138 F(ariables)-.92 E F1(abo)3.137 E .937 -.15(ve f)
+-.15 H .637(or a description of).15 F/F3 9/Times-Bold@0 SF(FIGNORE)3.137
+E/F4 9/Times-Roman@0 SF(.)A F1 .637(This option is)5.137 F
+(enabled by def)184 96 Q(ault.)-.1 E F2(globasciiranges)144 108 Q F1
+2.518(If set, range e)184 120 R 2.519
+(xpressions used in pattern matching brack)-.15 F 2.519(et e)-.1 F 2.519
+(xpressions \(see)-.15 F F3 -.09(Pa)5.019 G(tter).09 E(n)-.135 E
+(Matching)184 132 Q F1(abo)2.965 E -.15(ve)-.15 G 3.215(\)b).15 G(eha)
-3.215 E 1.015 -.15(ve a)-.2 H 3.214(si).15 G 3.214(fi)-3.214 G 3.214
(nt)-3.214 G .714(he traditional C locale when performing comparisons.)
--3.214 F .987(That is, pattern matching does not tak)184 312 R 3.487(et)
+-3.214 F .987(That is, pattern matching does not tak)184 144 R 3.487(et)
-.1 G .987(he current locale')-3.487 F 3.487(sc)-.55 G .987
-(ollating sequence into ac-)-3.487 F 1.552(count, so)184 324 R F2(b)
+(ollating sequence into ac-)-3.487 F 1.552(count, so)184 156 R F2(b)
4.052 E F1 1.552(will not collate between)4.052 F F2(A)4.051 E F1(and)
4.051 E F2(B)4.051 E F1 4.051(,a)C 1.551(nd upper)-4.051 F 1.551
(-case and lo)-.2 F(wer)-.25 E 1.551(-case ASCII)-.2 F
-(characters will collate together)184 336 Q(.)-.55 E F2(globskipdots)144
-348 Q F1 .727(If set, pathname e)184 360 R .727(xpansion will ne)-.15 F
+(characters will collate together)184 168 Q(.)-.55 E F2(globskipdots)144
+180 Q F1 .727(If set, pathname e)184 192 R .727(xpansion will ne)-.15 F
-.15(ve)-.25 G 3.227(rm).15 G .727(atch the \214lenames)-3.227 F F0(.)
4.893 E F1(and)4.893 E F0(..)4.893 E F1 3.227(,e)1.666 G -.15(ve)-3.477
-G 3.227(ni).15 G 3.227(ft)-3.227 G .728(he pattern)-3.227 F(be)184 372 Q
+G 3.227(ni).15 G 3.227(ft)-3.227 G .728(he pattern)-3.227 F(be)184 204 Q
(gins with a \231.\232.)-.15 E(This option is enabled by def)5 E(ault.)
--.1 E F2(globstar)144 384 Q F1 .519(If set, the pattern)184 384 R F2(**)
+-.1 E F2(globstar)144 216 Q F1 .519(If set, the pattern)184 216 R F2(**)
3.019 E F1 .519(used in a pathname e)3.019 F .519(xpansion conte)-.15 F
.518(xt will match all \214les and zero)-.15 F .431
-(or more directories and subdirectories.)184 396 R .431
+(or more directories and subdirectories.)184 228 R .431
(If the pattern is follo)5.431 F .432(wed by a)-.25 F F2(/)2.932 E F1
2.932(,o)C .432(nly directories)-2.932 F(and subdirectories match.)184
-408 Q F2(gnu_errfmt)144 420 Q F1(If set, shell error messages are writt\
-en in the standard GNU error message format.)184 432 Q F2(histappend)144
-444 Q F1 .676
+240 Q F2(gnu_errfmt)144 252 Q F1(If set, shell error messages are writt\
+en in the standard GNU error message format.)184 264 Q F2(histappend)144
+276 Q F1 .676
(If set, the history list is appended to the \214le named by the v)184
-456 R .676(alue of the)-.25 F F3(HISTFILE)3.176 E F1 -.25(va)2.926 G
-(ri-).25 E(able when the shell e)184 468 Q(xits, rather than o)-.15 E
--.15(ve)-.15 G(rwriting the \214le.).15 E F2(histr)144 480 Q(eedit)-.18
-E F1 .117(If set, and)184 492 R F2 -.18(re)2.617 G(adline).18 E F1 .118
+288 R .676(alue of the)-.25 F F3(HISTFILE)3.176 E F1 -.25(va)2.926 G
+(ri-).25 E(able when the shell e)184 300 Q(xits, rather than o)-.15 E
+-.15(ve)-.15 G(rwriting the \214le.).15 E F2(histr)144 312 Q(eedit)-.18
+E F1 .117(If set, and)184 324 R F2 -.18(re)2.617 G(adline).18 E F1 .118
(is being used, the user is gi)2.617 F -.15(ve)-.25 G 2.618(nt).15 G
.118(he opportunity to re-edit a f)-2.618 F .118(ailed his-)-.1 F
-(tory substitution.)184 504 Q F2(histv)144 516 Q(erify)-.1 E F1 .403
-(If set, and)184 528 R F2 -.18(re)2.903 G(adline).18 E F1 .403
+(tory substitution.)184 336 Q F2(histv)144 348 Q(erify)-.1 E F1 .403
+(If set, and)184 360 R F2 -.18(re)2.903 G(adline).18 E F1 .403
(is being used, the results of history substitution are not immediately)
-2.903 F .661(passed to the shell parser)184 540 R 5.661(.I)-.55 G .662
+2.903 F .661(passed to the shell parser)184 372 R 5.661(.I)-.55 G .662
(nstead, the resulting line is loaded into the)-5.661 F F2 -.18(re)3.162
-G(adline).18 E F1(editing)3.162 E -.2(bu)184 552 S -.25(ff).2 G(er).25 E
+G(adline).18 E F1(editing)3.162 E -.2(bu)184 384 S -.25(ff).2 G(er).25 E
2.5(,a)-.4 G(llo)-2.5 E(wing further modi\214cation.)-.25 E F2
-(hostcomplete)144 564 Q F1 1.182(If set, and)184 576 R F2 -.18(re)3.682
+(hostcomplete)144 396 Q F1 1.182(If set, and)184 408 R F2 -.18(re)3.682
G(adline).18 E F1 1.182(is being used,)3.682 F F2(bash)3.682 E F1 1.181
(will attempt to perform hostname completion)3.681 F 1.38(when a w)184
-588 R 1.38(ord containing a)-.1 F F2(@)3.881 E F1 1.381
+420 R 1.38(ord containing a)-.1 F F2(@)3.881 E F1 1.381
(is being completed \(see)3.881 F F2(Completing)3.881 E F1(under)3.881 E
-F3(READLINE)3.881 E F1(abo)184 600 Q -.15(ve)-.15 G 2.5(\). This).15 F
-(is enabled by def)2.5 E(ault.)-.1 E F2(huponexit)144 612 Q F1(If set,)
-184 624 Q F2(bash)2.5 E F1(will send)2.5 E F3(SIGHUP)2.5 E F1
+F3(READLINE)3.881 E F1(abo)184 432 Q -.15(ve)-.15 G 2.5(\). This).15 F
+(is enabled by def)2.5 E(ault.)-.1 E F2(huponexit)144 444 Q F1(If set,)
+184 456 Q F2(bash)2.5 E F1(will send)2.5 E F3(SIGHUP)2.5 E F1
(to all jobs when an interacti)2.25 E .3 -.15(ve l)-.25 H(ogin shell e)
-.15 E(xits.)-.15 E F2(inherit_err)144 636 Q(exit)-.18 E F1 .22
-(If set, command substitution inherits the v)184 648 R .219(alue of the)
+.15 E(xits.)-.15 E F2(inherit_err)144 468 Q(exit)-.18 E F1 .22
+(If set, command substitution inherits the v)184 480 R .219(alue of the)
-.25 F F2(err)2.719 E(exit)-.18 E F1 .219(option, instead of unsetting)
-2.719 F(it in the subshell en)184 660 Q 2.5(vironment. This)-.4 F
+2.719 F(it in the subshell en)184 492 Q 2.5(vironment. This)-.4 F
(option is enabled when posix mode is enabled.)2.5 E F2(interacti)144
-672 Q -.1(ve)-.1 G(_comments).1 E F1 .208(In an interacti)184 684 R .508
+504 Q -.1(ve)-.1 G(_comments).1 E F1 .208(In an interacti)184 516 R .508
-.15(ve s)-.25 H .208(hell, a w).15 F .209(ord be)-.1 F .209
(ginning with)-.15 F F2(#)2.709 E F1 .209(causes that w)2.709 F .209
(ord and all remaining char)-.1 F(-)-.2 E .612
-(acters on that line to be ignored, as in a non-interacti)184 696 R .912
+(acters on that line to be ignored, as in a non-interacti)184 528 R .912
-.15(ve s)-.25 H .612(hell \(see).15 F F3(COMMENTS)3.112 E F1(abo)2.862
-E -.15(ve)-.15 G(\).).15 E(This option is enabled by def)184 708 Q
-(ault.)-.1 E(GNU Bash 5.3)72 768 Q(2025 April 7)149.285 E(87)198.445 E 0
-Cg EP
-%%Page: 88 88
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(lastpipe)144 84 Q F1 .066
-(If set, and job control is not acti)184 84 R -.15(ve)-.25 G 2.566(,t)
+E -.15(ve)-.15 G(\).).15 E(This option is enabled by def)184 540 Q
+(ault.)-.1 E F2(lastpipe)144 552 Q F1 .066
+(If set, and job control is not acti)184 552 R -.15(ve)-.25 G 2.566(,t)
.15 G .066(he shell runs the last command of a pipeline not e)-2.566 F
-.15(xe)-.15 G(-).15 E(cuted in the background in the current shell en)
-184 96 Q(vironment.)-.4 E F2(lithist)144 108 Q F1 .655(If set, and the)
-184 108 R F2(cmdhist)3.155 E F1 .654
+184 564 Q(vironment.)-.4 E F2(lithist)144 576 Q F1 .655(If set, and the)
+184 576 R F2(cmdhist)3.155 E F1 .654
(option is enabled, multi-line commands are sa)3.154 F -.15(ve)-.2 G
3.154(dt).15 G 3.154(ot)-3.154 G .654(he history)-3.154 F
-(with embedded ne)184 120 Q
+(with embedded ne)184 588 Q
(wlines rather than using semicolon separators where possible.)-.25 E F2
-(localv)144 132 Q(ar_inherit)-.1 E F1 .421(If set, local v)184 144 R
+(localv)144 600 Q(ar_inherit)-.1 E F1 .421(If set, local v)184 612 R
.422(ariables inherit the v)-.25 F .422(alue and attrib)-.25 F .422
(utes of a v)-.2 F .422(ariable of the same name that)-.25 F -.15(ex)184
-156 S .174(ists at a pre).15 F .174(vious scope before an)-.25 F 2.673
+624 S .174(ists at a pre).15 F .174(vious scope before an)-.25 F 2.673
(yn)-.15 G .673 -.25(ew va)-2.673 H .173(lue is assigned.).25 F .173
-(The nameref attrib)5.173 F .173(ute is not)-.2 F(inherited.)184 168 Q
-F2(localv)144 180 Q(ar_unset)-.1 E F1 .328(If set, calling)184 192 R F2
+(The nameref attrib)5.173 F .173(ute is not)-.2 F(inherited.)184 636 Q
+F2(localv)144 648 Q(ar_unset)-.1 E F1 .328(If set, calling)184 660 R F2
(unset)2.828 E F1 .328(on local v)2.828 F .329(ariables in pre)-.25 F
.329(vious function scopes marks them so subse-)-.25 F .365
-(quent lookups \214nd them unset until that function returns.)184 204 R
+(quent lookups \214nd them unset until that function returns.)184 672 R
.364(This is identical to the beha)5.364 F(v-)-.2 E
-(ior of unsetting local v)184 216 Q
-(ariables at the current function scope.)-.25 E F2(login_shell)144 228 Q
+(ior of unsetting local v)184 684 Q
+(ariables at the current function scope.)-.25 E F2(login_shell)144 696 Q
F1 .486
(The shell sets this option if it is started as a login shell \(see)184
-240 R/F3 9/Times-Bold@0 SF(INV)2.987 E(OCA)-.405 E(TION)-.855 E F1(abo)
-2.737 E -.15(ve)-.15 G 2.987(\). The).15 F -.25(va)184 252 S
-(lue may not be changed.).25 E F2(mailwar)144 264 Q(n)-.15 E F1 .815
-(If set, and a \214le that)184 276 R F2(bash)3.315 E F1 .814
+708 R F3(INV)2.987 E(OCA)-.405 E(TION)-.855 E F1(abo)2.737 E -.15(ve)
+-.15 G 2.987(\). The).15 F -.25(va)184 720 S(lue may not be changed.).25
+E(GNU Bash 5.3)72 768 Q(2026 January 14)141.79 E(89)190.95 E 0 Cg EP
+%%Page: 90 90
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(mailwar)144 84 Q(n)-.15 E F1
+.815(If set, and a \214le that)184 96 R F2(bash)3.315 E F1 .814
(is checking for mail has been accessed since the last time it)3.315 F
--.1(wa)184 288 S 2.5(sc).1 G(heck)-2.5 E(ed,)-.1 E F2(bash)2.5 E F1
+-.1(wa)184 108 S 2.5(sc).1 G(heck)-2.5 E(ed,)-.1 E F2(bash)2.5 E F1
(displays the message \231The mail in)2.5 E F0(mail\214le)2.5 E F1
-(has been read\232.)2.5 E F2(no_empty_cmd_completion)144 300 Q F1 .609
-(If set, and)184 312 R F2 -.18(re)3.109 G(adline).18 E F1 .609
+(has been read\232.)2.5 E F2(no_empty_cmd_completion)144 120 Q F1 .609
+(If set, and)184 132 R F2 -.18(re)3.109 G(adline).18 E F1 .609
(is being used,)3.109 F F2(bash)3.109 E F1 .609(does not search)3.109 F
-F3 -.666(PA)3.109 G(TH)-.189 E F1 .61(for possible completions)2.86 F
-(when completion is attempted on an empty line.)184 324 Q F2(nocaseglob)
-144 336 Q F1 .437(If set,)184 348 R F2(bash)2.937 E F1 .436
+/F3 9/Times-Bold@0 SF -.666(PA)3.109 G(TH)-.189 E F1 .61
+(for possible completions)2.86 F
+(when completion is attempted on an empty line.)184 144 Q F2(nocaseglob)
+144 156 Q F1 .437(If set,)184 168 R F2(bash)2.937 E F1 .436
(matches \214lenames in a case\255insensiti)2.937 F .736 -.15(ve f)-.25
-H .436(ashion when performing pathname).05 F -.15(ex)184 360 S
+H .436(ashion when performing pathname).05 F -.15(ex)184 180 S
(pansion \(see).15 E F2 -.1(Pa)2.5 G(thname Expansion).1 E F1(abo)2.5 E
--.15(ve)-.15 G(\).).15 E F2(nocasematch)144 372 Q F1 1.193(If set,)184
-384 R F2(bash)3.693 E F1 1.194(matches patterns in a case\255insensiti)
+-.15(ve)-.15 G(\).).15 E F2(nocasematch)144 192 Q F1 1.193(If set,)184
+204 R F2(bash)3.693 E F1 1.194(matches patterns in a case\255insensiti)
3.693 F 1.494 -.15(ve f)-.25 H 1.194(ashion when performing matching).05
-F .551(while e)184 396 R -.15(xe)-.15 G(cuting).15 E F2(case)3.051 E F1
+F .551(while e)184 216 R -.15(xe)-.15 G(cuting).15 E F2(case)3.051 E F1
(or)3.051 E F2([[)3.051 E F1 .551
(conditional commands, when performing pattern substitution)3.051 F -.1
-(wo)184 408 S .622(rd e).1 F .623(xpansions, or when \214ltering possib\
-le completions as part of programmable com-)-.15 F(pletion.)184 420 Q F2
-(noexpand_translation)144 432 Q F1 .67(If set,)184 444 R F2(bash)3.17 E
+(wo)184 228 S .622(rd e).1 F .623(xpansions, or when \214ltering possib\
+le completions as part of programmable com-)-.15 F(pletion.)184 240 Q F2
+(noexpand_translation)144 252 Q F1 .67(If set,)184 264 R F2(bash)3.17 E
F1 .669(encloses the translated results of)3.169 F F2($")3.169 E F1
1.666(...)C F2(")-1.666 E F1 .669(quoting in single quotes instead of)
-3.169 F(double quotes.)184 456 Q
+3.169 F(double quotes.)184 276 Q
(If the string is not translated, this has no ef)5 E(fect.)-.25 E F2
-(nullglob)144 468 Q F1 1.581(If set, pathname e)184 480 R 1.581
+(nullglob)144 288 Q F1 1.581(If set, pathname e)184 300 R 1.581
(xpansion patterns which match no \214les \(see)-.15 F F2 -.1(Pa)4.081 G
-1.581(thname Expansion).1 F F1(abo)184 492 Q -.15(ve)-.15 G 2.5(\)e).15
+1.581(thname Expansion).1 F F1(abo)184 312 Q -.15(ve)-.15 G 2.5(\)e).15
G(xpand to nothing and are remo)-2.65 E -.15(ve)-.15 G(d, rather than e)
-.15 E(xpanding to themselv)-.15 E(es.)-.15 E F2(patsub_r)144 504 Q
-(eplacement)-.18 E F1 .106(If set,)184 516 R F2(bash)2.606 E F1 -.15(ex)
+.15 E(xpanding to themselv)-.15 E(es.)-.15 E F2(patsub_r)144 324 Q
+(eplacement)-.18 E F1 .106(If set,)184 336 R F2(bash)2.606 E F1 -.15(ex)
2.606 G .106(pands occurrences of).15 F F2(&)2.606 E F1 .105
(in the replacement string of pattern substitution to)2.606 F .527
-(the te)184 528 R .527(xt matched by the pattern, as described under)
+(the te)184 348 R .527(xt matched by the pattern, as described under)
-.15 F F2 -.1(Pa)3.028 G .528(rameter Expansion).1 F F1(abo)3.028 E -.15
-(ve)-.15 G 5.528(.T).15 G(his)-5.528 E(option is enabled by def)184 540
-Q(ault.)-.1 E F2(pr)144 552 Q(ogcomp)-.18 E F1 .767
-(If set, enable the programmable completion f)184 564 R .766
+(ve)-.15 G 5.528(.T).15 G(his)-5.528 E(option is enabled by def)184 360
+Q(ault.)-.1 E F2(pr)144 372 Q(ogcomp)-.18 E F1 .767
+(If set, enable the programmable completion f)184 384 R .766
(acilities \(see)-.1 F F2(Pr)3.266 E .766(ogrammable Completion)-.18 F
-F1(abo)184 576 Q -.15(ve)-.15 G 2.5(\). This).15 F
-(option is enabled by def)2.5 E(ault.)-.1 E F2(pr)144 588 Q
+F1(abo)184 396 Q -.15(ve)-.15 G 2.5(\). This).15 F
+(option is enabled by def)2.5 E(ault.)-.1 E F2(pr)144 408 Q
(ogcomp_alias)-.18 E F1 2.124
-(If set, and programmable completion is enabled,)184 600 R F2(bash)4.624
-E F1 2.124(treats a command name that)4.624 F(doesn')184 612 Q 3.11(th)
+(If set, and programmable completion is enabled,)184 420 R F2(bash)4.624
+E F1 2.124(treats a command name that)4.624 F(doesn')184 432 Q 3.11(th)
-.18 G -2.25 -.2(av e)-3.11 H(an)3.31 E 3.11(yc)-.15 G .61
(ompletions as a possible alias and attempts alias e)-3.11 F 3.11
-(xpansion. If)-.15 F .61(it has)3.11 F 1.473(an alias,)184 624 R F2
+(xpansion. If)-.15 F .61(it has)3.11 F 1.473(an alias,)184 444 R F2
(bash)3.973 E F1 1.473
(attempts programmable completion using the command w)3.973 F 1.473
-(ord resulting)-.1 F(from the e)184 636 Q(xpanded alias.)-.15 E F2(pr)
-144 648 Q(omptv)-.18 E(ars)-.1 E F1 1.448(If set, prompt strings under)
-184 660 R 1.448(go parameter e)-.18 F 1.447
-(xpansion, command substitution, arithmetic)-.15 F -.15(ex)184 672 S .17
+(ord resulting)-.1 F(from the e)184 456 Q(xpanded alias.)-.15 E F2(pr)
+144 468 Q(omptv)-.18 E(ars)-.1 E F1 1.448(If set, prompt strings under)
+184 480 R 1.448(go parameter e)-.18 F 1.447
+(xpansion, command substitution, arithmetic)-.15 F -.15(ex)184 492 S .17
(pansion, and quote remo).15 F -.25(va)-.15 G 2.67(la).25 G .17
(fter being e)-2.67 F .17(xpanded as described in)-.15 F F3(PR)2.671 E
(OMPTING)-.27 E F1(abo)2.421 E -.15(ve)-.15 G(.).15 E
-(This option is enabled by def)184 684 Q(ault.)-.1 E F2 -.18(re)144 696
+(This option is enabled by def)184 504 Q(ault.)-.1 E F2 -.18(re)144 516
S(stricted_shell).18 E F1 1.069
(The shell sets this option if it is started in restricted mode \(see)
-184 708 R F3 1.069(RESTRICTED SHELL)3.569 F F1(belo)184 720 Q 4.178
-(w\). The)-.25 F -.25(va)4.178 G 1.678(lue may not be changed.).25 F
-1.678(This is not reset when the startup \214les are)6.678 F
-(GNU Bash 5.3)72 768 Q(2025 April 7)149.285 E(88)198.445 E 0 Cg EP
-%%Page: 89 89
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E -.15(exe)184 84 S(cuted, allo).15 E
-(wing the startup \214les to disco)-.25 E -.15(ve)-.15 G 2.5(rw).15 G
-(hether or not a shell is restricted.)-2.5 E/F2 10/Times-Bold@0 SF
-(shift_v)144 96 Q(erbose)-.1 E F1 .502(If set, the)184 108 R F2(shift)
-3.002 E F1 -.2(bu)3.002 G .501
+184 528 R F3 1.069(RESTRICTED SHELL)3.569 F F1(belo)184 540 Q 2.86
+(w\). The)-.25 F -.25(va)2.86 G .36(lue may not be changed.).25 F .36
+(This is not reset when the startup \214les are e)5.36 F -.15(xe)-.15 G
+(-).15 E(cuted, allo)184 552 Q(wing the startup \214les to disco)-.25 E
+-.15(ve)-.15 G 2.5(rw).15 G(hether or not a shell is restricted.)-2.5 E
+F2(shift_v)144 564 Q(erbose)-.1 E F1 .502(If set, the)184 576 R F2
+(shift)3.002 E F1 -.2(bu)3.002 G .501
(iltin prints an error message when the shift count e).2 F .501
-(xceeds the number)-.15 F(of positional parameters.)184 120 Q F2(sour)
-144 132 Q(cepath)-.18 E F1 .77(If set, the)184 144 R F2(.)3.27 E F1(\()
+(xceeds the number)-.15 F(of positional parameters.)184 588 Q F2(sour)
+144 600 Q(cepath)-.18 E F1 .77(If set, the)184 612 R F2(.)3.27 E F1(\()
3.27 E F2(sour)A(ce)-.18 E F1 3.27(\)b)C .77(uiltin uses the v)-3.47 F
-.771(alue of)-.25 F/F3 9/Times-Bold@0 SF -.666(PA)3.271 G(TH)-.189 E F1
-.771(to \214nd the directory containing the)3.021 F .422
-(\214le supplied as an ar)184 156 R .422(gument when the)-.18 F F2<ad70>
+.771(alue of)-.25 F F3 -.666(PA)3.271 G(TH)-.189 E F1 .771
+(to \214nd the directory containing the)3.021 F .422
+(\214le supplied as an ar)184 624 R .422(gument when the)-.18 F F2<ad70>
2.921 E F1 .421(option is not supplied.)2.921 F .421
-(This option is enabled)5.421 F(by def)184 168 Q(ault.)-.1 E F2 -.1(va)
-144 180 S(rr).1 E(edir_close)-.18 E F1 .74(If set, the shell automatica\
-lly closes \214le descriptors assigned using the)184 192 R F0({varname})
-3.24 E F1(redi-)3.24 E .424(rection syntax \(see)184 204 R F3
+(This option is enabled)5.421 F(by def)184 636 Q(ault.)-.1 E F2 -.1(va)
+144 648 S(rr).1 E(edir_close)-.18 E F1 .74(If set, the shell automatica\
+lly closes \214le descriptors assigned using the)184 660 R F0({varname})
+3.24 E F1(redi-)3.24 E .424(rection syntax \(see)184 672 R F3
(REDIRECTION)2.924 E F1(abo)2.674 E -.15(ve)-.15 G 2.924(\)i).15 G .424
(nstead of lea)-2.924 F .424(ving them open when the com-)-.2 F
-(mand completes.)184 216 Q F2(xpg_echo)144 228 Q F1 .073(If set, the)184
-240 R F2(echo)2.574 E F1 -.2(bu)2.574 G .074(iltin e).2 F .074
+(mand completes.)184 684 Q F2(xpg_echo)144 696 Q F1 .073(If set, the)184
+708 R F2(echo)2.574 E F1 -.2(bu)2.574 G .074(iltin e).2 F .074
(xpands backslash-escape sequences by def)-.15 F 2.574(ault. If)-.1 F
(the)2.574 E F2(posix)2.574 E F1(shell)2.574 E(option is also enabled,)
-184 252 Q F2(echo)2.5 E F1(does not interpret an)2.5 E 2.5(yo)-.15 G
-(ptions.)-2.5 E F2(suspend)108 268.8 Q F1([)2.5 E F2<ad66>A F1(])A .91
-(Suspend the e)144 280.8 R -.15(xe)-.15 G .91
+184 720 Q F2(echo)2.5 E F1(does not interpret an)2.5 E 2.5(yo)-.15 G
+(ptions.)-2.5 E(GNU Bash 5.3)72 768 Q(2026 January 14)141.79 E(90)190.95
+E 0 Cg EP
+%%Page: 91 91
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(suspend)108 84 Q F1([)2.5 E
+F2<ad66>A F1(])A .91(Suspend the e)144 96 R -.15(xe)-.15 G .91
(cution of this shell until it recei).15 F -.15(ve)-.25 G 3.41(sa).15 G
-F3(SIGCONT)-.001 E F1 3.409(signal. A)3.159 F .909
+/F3 9/Times-Bold@0 SF(SIGCONT)-.001 E F1 3.409(signal. A)3.159 F .909
(login shell, or a shell)3.409 F 1.043
-(without job control enabled, cannot be suspended; the)144 292.8 R F2
+(without job control enabled, cannot be suspended; the)144 108 R F2
<ad66>3.543 E F1 1.043(option will o)3.543 F -.15(ve)-.15 G 1.044
-(rride this and force the).15 F 2.744(suspension. The)144 304.8 R .244(\
-return status is 0 unless the shell is a login shell or job control is \
-not enabled and)2.744 F F2<ad66>144 316.8 Q F1(is not supplied.)2.5 E F2
-(test)108 333.6 Q F0 -.2(ex)2.5 G(pr).2 E F2([)108 345.6 Q F0 -.2(ex)2.5
+(rride this and force the).15 F 2.744(suspension. The)144 120 R .244(re\
+turn status is 0 unless the shell is a login shell or job control is no\
+t enabled and)2.744 F F2<ad66>144 132 Q F1(is not supplied.)2.5 E F2
+(test)108 148.8 Q F0 -.2(ex)2.5 G(pr).2 E F2([)108 160.8 Q F0 -.2(ex)2.5
G(pr).2 E F2(])2.5 E F1 .877(Return a status of 0 \(true\) or 1 \(f)144
-345.6 R .878(alse\) depending on the e)-.1 F -.25(va)-.25 G .878
-(luation of the conditional e).25 F(xpression)-.15 E F0 -.2(ex)144 357.6
+160.8 R .878(alse\) depending on the e)-.1 F -.25(va)-.25 G .878
+(luation of the conditional e).25 F(xpression)-.15 E F0 -.2(ex)144 172.8
S(pr).2 E F1 5.53(.E).73 G .53
(ach operator and operand must be a separate ar)-5.53 F 3.03
(gument. Expressions)-.18 F .53(are composed of the)3.03 F 1.36
-(primaries described abo)144 369.6 R 1.66 -.15(ve u)-.15 H(nder).15 E F3
+(primaries described abo)144 184.8 R 1.66 -.15(ve u)-.15 H(nder).15 E F3
(CONDITION)3.86 E 1.36(AL EXPRESSIONS)-.18 F/F4 9/Times-Roman@0 SF(.)A
F2(test)5.86 E F1 1.361(does not accept an)3.86 F 3.861(yo)-.15 G(p-)
--3.861 E(tions, nor does it accept and ignore an ar)144 381.6 Q
+-3.861 E(tions, nor does it accept and ignore an ar)144 196.8 Q
(gument of)-.18 E F2<adad>2.5 E F1(as signifying the end of options.)2.5
-E .786(Expressions may be combined using the follo)144 398.4 R .785
+E .786(Expressions may be combined using the follo)144 213.6 R .785
(wing operators, listed in decreasing order of prece-)-.25 F 2.93
-(dence. The)144 410.4 R -.25(eva)2.93 G .43
+(dence. The)144 225.6 R -.25(eva)2.93 G .43
(luation depends on the number of ar).25 F .43(guments; see belo)-.18 F
-.65(w.)-.25 G F2(test)6.08 E F1 .43(uses operator prece-)2.93 F
-(dence when there are \214v)144 422.4 Q 2.5(eo)-.15 G 2.5(rm)-2.5 G
-(ore ar)-2.5 E(guments.)-.18 E F2(!)144 434.4 Q F0 -.2(ex)2.5 G(pr).2 E
-F1 -.35(Tr)180 434.4 S(ue if).35 E F0 -.2(ex)2.5 G(pr).2 E F1(is f)3.23
-E(alse.)-.1 E F2(\()144 446.4 Q F0 -.2(ex)2.5 G(pr).2 E F2(\))2.5 E F1
-(Returns the v)180 446.4 Q(alue of)-.25 E F0 -.2(ex)2.5 G(pr).2 E F1 5
+(dence when there are \214v)144 237.6 Q 2.5(eo)-.15 G 2.5(rm)-2.5 G
+(ore ar)-2.5 E(guments.)-.18 E F2(!)144 249.6 Q F0 -.2(ex)2.5 G(pr).2 E
+F1 -.35(Tr)180 249.6 S(ue if).35 E F0 -.2(ex)2.5 G(pr).2 E F1(is f)3.23
+E(alse.)-.1 E F2(\()144 261.6 Q F0 -.2(ex)2.5 G(pr).2 E F2(\))2.5 E F1
+(Returns the v)180 261.6 Q(alue of)-.25 E F0 -.2(ex)2.5 G(pr).2 E F1 5
(.T)C(his may be used to o)-5 E -.15(ve)-.15 G
-(rride normal operator precedence.).15 E F0 -.2(ex)144 458.4 S(pr1).2 E
-F1<ad>2.5 E F2(a)A F0 -.2(ex)2.5 G(pr2).2 E F1 -.35(Tr)180 470.4 S
+(rride normal operator precedence.).15 E F0 -.2(ex)144 273.6 S(pr1).2 E
+F1<ad>2.5 E F2(a)A F0 -.2(ex)2.5 G(pr2).2 E F1 -.35(Tr)180 285.6 S
(ue if both).35 E F0 -.2(ex)2.5 G(pr1).2 E F1(and)2.5 E F0 -.2(ex)2.5 G
-(pr2).2 E F1(are true.)2.52 E F0 -.2(ex)144 482.4 S(pr1).2 E F1<ad>2.5 E
-F2(o)A F0 -.2(ex)2.5 G(pr2).2 E F1 -.35(Tr)180 494.4 S(ue if either).35
+(pr2).2 E F1(are true.)2.52 E F0 -.2(ex)144 297.6 S(pr1).2 E F1<ad>2.5 E
+F2(o)A F0 -.2(ex)2.5 G(pr2).2 E F1 -.35(Tr)180 309.6 S(ue if either).35
E F0 -.2(ex)2.5 G(pr1).2 E F1(or)2.5 E F0 -.2(ex)2.5 G(pr2).2 E F1
-(is true.)2.52 E F2(test)144 511.2 Q F1(and)2.5 E F2([)2.5 E F1 -.25
+(is true.)2.52 E F2(test)144 326.4 Q F1(and)2.5 E F2([)2.5 E F1 -.25
(eva)2.5 G(luate conditional e).25 E
(xpressions using a set of rules based on the number of ar)-.15 E
-(guments.)-.18 E 2.5(0a)144 528 S -.18(rg)-2.5 G(uments).18 E(The e)180
-540 Q(xpression is f)-.15 E(alse.)-.1 E 2.5(1a)144 552 S -.18(rg)-2.5 G
-(ument).18 E(The e)180 564 Q(xpression is true if and only if the ar)
--.15 E(gument is not null.)-.18 E 2.5(2a)144 576 S -.18(rg)-2.5 G
-(uments).18 E .37(If the \214rst ar)180 588 R .37(gument is)-.18 F F2(!)
-2.87 E F1 2.87(,t)C .37(he e)-2.87 F .37
-(xpression is true if and only if the second ar)-.15 F .37
-(gument is null.)-.18 F .379(If the \214rst ar)180 600 R .38
+(guments.)-.18 E 2.5(0a)144 343.2 S -.18(rg)-2.5 G(uments).18 E(The e)
+180 355.2 Q(xpression is f)-.15 E(alse.)-.1 E 2.5(1a)144 367.2 S -.18
+(rg)-2.5 G(ument).18 E(The e)180 379.2 Q
+(xpression is true if and only if the ar)-.15 E(gument is not null.)-.18
+E 2.5(2a)144 391.2 S -.18(rg)-2.5 G(uments).18 E .37(If the \214rst ar)
+180 403.2 R .37(gument is)-.18 F F2(!)2.87 E F1 2.87(,t)C .37(he e)-2.87
+F .37(xpression is true if and only if the second ar)-.15 F .37
+(gument is null.)-.18 F .379(If the \214rst ar)180 415.2 R .38
(gument is one of the unary conditional operators listed abo)-.18 F .68
--.15(ve u)-.15 H(nder).15 E F3(CONDI-)2.88 E(TION)180 612 Q .553
+-.15(ve u)-.15 H(nder).15 E F3(CONDI-)2.88 E(TION)180 427.2 Q .553
(AL EXPRESSIONS)-.18 F F4(,)A F1 .552(the e)2.802 F .552
(xpression is true if the unary test is true.)-.15 F .552
-(If the \214rst ar)5.552 F(gu-)-.18 E(ment is not a v)180 624 Q
+(If the \214rst ar)5.552 F(gu-)-.18 E(ment is not a v)180 439.2 Q
(alid unary conditional operator)-.25 E 2.5(,t)-.4 G(he e)-2.5 E
-(xpression is f)-.15 E(alse.)-.1 E 2.5(3a)144 636 S -.18(rg)-2.5 G
-(uments).18 E .236(The follo)180 648 R .236
+(xpression is f)-.15 E(alse.)-.1 E 2.5(3a)144 451.2 S -.18(rg)-2.5 G
+(uments).18 E .236(The follo)180 463.2 R .236
(wing conditions are applied in the order listed.)-.25 F .236
(If the second ar)5.236 F .236(gument is one of)-.18 F .855
-(the binary conditional operators listed abo)180 660 R 1.155 -.15(ve u)
--.15 H(nder).15 E F3(CONDITION)3.355 E .855(AL EXPRESSIONS)-.18 F F4(,)A
-F1(the)3.104 E .578(result of the e)180 672 R .578(xpression is the res\
-ult of the binary test using the \214rst and third ar)-.15 F(guments)
--.18 E 1.333(as operands.)180 684 R(The)6.333 E F2<ad61>3.833 E F1(and)
-3.833 E F2<ad6f>3.832 E F1 1.332
+(the binary conditional operators listed abo)180 475.2 R 1.155 -.15
+(ve u)-.15 H(nder).15 E F3(CONDITION)3.355 E .855(AL EXPRESSIONS)-.18 F
+F4(,)A F1(the)3.104 E .578(result of the e)180 487.2 R .578(xpression i\
+s the result of the binary test using the \214rst and third ar)-.15 F
+(guments)-.18 E 1.333(as operands.)180 499.2 R(The)6.333 E F2<ad61>3.833
+E F1(and)3.833 E F2<ad6f>3.832 E F1 1.332
(operators are considered binary operators when there are)3.832 F .558
-(three ar)180 696 R 3.058(guments. If)-.18 F .558(the \214rst ar)3.058 F
-.558(gument is)-.18 F F2(!)3.058 E F1 3.058(,t)C .558(he v)-3.058 F .558
-(alue is the ne)-.25 F -.05(ga)-.15 G .558(tion of the tw).05 F(o-ar)-.1
-E(gument)-.18 E .521(test using the second and third ar)180 708 R 3.021
-(guments. If)-.18 F .521(the \214rst ar)3.021 F .52(gument is e)-.18 F
-(xactly)-.15 E F2(\()3.02 E F1 .52(and the third)3.02 F(ar)180 720 Q
-2.899(gument is e)-.18 F(xactly)-.15 E F2(\))5.399 E F1 5.399(,t)C 2.899
-(he result is the one-ar)-5.399 F 2.9(gument test of the second ar)-.18
-F(gument.)-.18 E(GNU Bash 5.3)72 768 Q(2025 April 7)149.285 E(89)198.445
-E 0 Cg EP
-%%Page: 90 90
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E(Otherwise, the e)180 84 Q(xpression is f)-.15 E
-(alse.)-.1 E 2.5(4a)144 96 S -.18(rg)-2.5 G(uments).18 E .43(The follo)
-180 108 R .43(wing conditions are applied in the order listed.)-.25 F
-.429(If the \214rst ar)5.429 F .429(gument is)-.18 F/F2 10/Times-Bold@0
-SF(!)2.929 E F1 2.929(,t)C .429(he re-)-2.929 F 1.314(sult is the ne)180
-120 R -.05(ga)-.15 G 1.314(tion of the three-ar).05 F 1.314(gument e)
--.18 F 1.314(xpression composed of the remaining ar)-.15 F(gu-)-.18 E
-2.902(ments. If)180 132 R .402(the \214rst ar)2.902 F .401(gument is e)
--.18 F(xactly)-.15 E F2(\()2.901 E F1 .401(and the fourth ar)2.901 F
-.401(gument is e)-.18 F(xactly)-.15 E F2(\))2.901 E F1 2.901(,t)C .401
-(he result is)-2.901 F 1.235(the tw)180 144 R(o-ar)-.1 E 1.236
+(three ar)180 511.2 R 3.058(guments. If)-.18 F .558(the \214rst ar)3.058
+F .558(gument is)-.18 F F2(!)3.058 E F1 3.058(,t)C .558(he v)-3.058 F
+.558(alue is the ne)-.25 F -.05(ga)-.15 G .558(tion of the tw).05 F
+(o-ar)-.1 E(gument)-.18 E .521(test using the second and third ar)180
+523.2 R 3.021(guments. If)-.18 F .521(the \214rst ar)3.021 F .52
+(gument is e)-.18 F(xactly)-.15 E F2(\()3.02 E F1 .52(and the third)3.02
+F(ar)180 535.2 Q .485(gument is e)-.18 F(xactly)-.15 E F2(\))2.985 E F1
+2.985(,t)C .485(he result is the one-ar)-2.985 F .485
+(gument test of the second ar)-.18 F 2.985(gument. Other)-.18 F(-)-.2 E
+(wise, the e)180 547.2 Q(xpression is f)-.15 E(alse.)-.1 E 2.5(4a)144
+559.2 S -.18(rg)-2.5 G(uments).18 E .43(The follo)180 571.2 R .43
+(wing conditions are applied in the order listed.)-.25 F .429
+(If the \214rst ar)5.429 F .429(gument is)-.18 F F2(!)2.929 E F1 2.929
+(,t)C .429(he re-)-2.929 F 1.314(sult is the ne)180 583.2 R -.05(ga)-.15
+G 1.314(tion of the three-ar).05 F 1.314(gument e)-.18 F 1.314
+(xpression composed of the remaining ar)-.15 F(gu-)-.18 E 2.902
+(ments. If)180 595.2 R .402(the \214rst ar)2.902 F .401(gument is e)-.18
+F(xactly)-.15 E F2(\()2.901 E F1 .401(and the fourth ar)2.901 F .401
+(gument is e)-.18 F(xactly)-.15 E F2(\))2.901 E F1 2.901(,t)C .401
+(he result is)-2.901 F 1.235(the tw)180 607.2 R(o-ar)-.1 E 1.236
(gument test of the second and third ar)-.18 F 3.736
(guments. Otherwise,)-.18 F 1.236(the e)3.736 F 1.236(xpression is)-.15
-F(parsed and e)180 156 Q -.25(va)-.25 G
+F(parsed and e)180 619.2 Q -.25(va)-.25 G
(luated according to precedence using the rules listed abo).25 E -.15
-(ve)-.15 G(.).15 E 2.5(5o)144 168 S 2.5(rm)-2.5 G(ore ar)-2.5 E(guments)
--.18 E 1.635(The e)180 180 R 1.635(xpression is parsed and e)-.15 F -.25
-(va)-.25 G 1.635(luated according to precedence using the rules listed)
-.25 F(abo)180 192 Q -.15(ve)-.15 G(.).15 E .163
-(When the shell is in posix mode, or if the e)144 208.8 R .163
+(ve)-.15 G(.).15 E 2.5(5o)144 631.2 S 2.5(rm)-2.5 G(ore ar)-2.5 E
+(guments)-.18 E 1.635(The e)180 643.2 R 1.635(xpression is parsed and e)
+-.15 F -.25(va)-.25 G 1.635
+(luated according to precedence using the rules listed).25 F(abo)180
+655.2 Q -.15(ve)-.15 G(.).15 E .163
+(When the shell is in posix mode, or if the e)144 672 R .163
(xpression is part of the)-.15 F F2([[)2.663 E F1 .163(command, the)
2.663 F F2(<)2.663 E F1(and)2.663 E F2(>)2.663 E F1(opera-)2.663 E .669
-(tors sort using the current locale.)144 220.8 R .669
+(tors sort using the current locale.)144 684 R .669
(If the shell is not in posix mode, the)5.669 F F2(test)3.169 E F1(and)
-3.169 E F2([)3.169 E F1 .668(commands sort)3.169 F(le)144 232.8 Q
+3.169 E F2([)3.169 E F1 .668(commands sort)3.169 F(le)144 696 Q
(xicographically using ASCII ordering.)-.15 E .006
-(The historical operator)144 249.6 R .006
+(The historical operator)144 712.8 R .006
(-precedence parsing with 4 or more ar)-.2 F .006
(guments can lead to ambiguities when)-.18 F .842
-(it encounters strings that look lik)144 261.6 R 3.341(ep)-.1 G 3.341
-(rimaries. The)-3.341 F/F3 9/Times-Roman@0 SF(POSIX)3.341 E F1 .841
+(it encounters strings that look lik)144 724.8 R 3.341(ep)-.1 G 3.341
+(rimaries. The)-3.341 F F4(POSIX)3.341 E F1 .841
(standard has deprecated the)3.091 F F2<ad61>3.341 E F1(and)3.341 E F2
-<ad6f>3.341 E F1 .885(primaries and enclosing e)144 273.6 R .886
+<ad6f>3.341 E F1(GNU Bash 5.3)72 768 Q(2026 January 14)141.79 E(91)
+190.95 E 0 Cg EP
+%%Page: 92 92
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E .885(primaries and enclosing e)144 84 R .886
(xpressions within parentheses.)-.15 F .886
(Scripts should no longer use them.)5.886 F(It')5.886 E(s)-.55 E .066
-(much more reliable to restrict test in)144 285.6 R -.2(vo)-.4 G .066
+(much more reliable to restrict test in)144 96 R -.2(vo)-.4 G .066
(cations to a single primary).2 F 2.566(,a)-.65 G .066
-(nd to replace uses of)-2.566 F F2<ad61>2.566 E F1(and)2.566 E F2<ad6f>
-2.566 E F1(with the shell')144 297.6 Q(s)-.55 E F2(&&)2.5 E F1(and)2.5 E
-F2(||)2.5 E F1(list operators.)2.5 E F2(times)108 314.4 Q F1 1.229(Prin\
-t the accumulated user and system times for the shell and for processes\
- run from the shell.)144 314.4 R(The return status is 0.)144 326.4 Q F2
-(trap)108 343.2 Q F1([)2.5 E F2(\255lpP)A F1 2.5(][)C([)-2.5 E F0
-(action)A F1(])A F0(sigspec)2.5 E F1 1.666(...)2.5 G(])-1.666 E(The)144
-355.2 Q F0(action)4.332 E F1 1.501(is a command that is read and e)4.242
-F -.15(xe)-.15 G 1.501(cuted when the shell recei).15 F -.15(ve)-.25 G
-4.001(sa).15 G 1.801 -.15(ny o)-4.001 H 4.001(ft).15 G 1.501(he signals)
--4.001 F F0(sigspec)144.34 367.2 Q F1 5.708(.I).31 G(f)-5.708 E F0
-(action)3.538 E F1 .709(is absent \(and there is a single)3.449 F F0
-(sigspec)3.209 E F1 3.209(\)o)C(r)-3.209 E F2<ad>3.209 E F1 3.209(,e)C
-.709(ach speci\214ed)-3.209 F F0(sigspec)3.209 E F1 .709(is reset to)
-3.209 F .293(the v)144 379.2 R .292(alue it had when the shell w)-.25 F
-.292(as started.)-.1 F(If)5.292 E F0(action)3.122 E F1 .292
+(nd to replace uses of)-2.566 F/F2 10/Times-Bold@0 SF<ad61>2.566 E F1
+(and)2.566 E F2<ad6f>2.566 E F1(with the shell')144 108 Q(s)-.55 E F2
+(&&)2.5 E F1(and)2.5 E F2(||)2.5 E F1(list operators.)2.5 E F2(times)108
+124.8 Q F1 1.229(Print the accumulated user and system times for the sh\
+ell and for processes run from the shell.)144 124.8 R
+(The return status is 0.)144 136.8 Q F2(trap)108 153.6 Q F1([)2.5 E F2
+(\255lpP)A F1 2.5(][)C([)-2.5 E F0(action)A F1(])A F0(sigspec)2.5 E F1
+1.666(...)2.5 G(])-1.666 E(The)144 165.6 Q F0(action)4.332 E F1 1.501
+(is a command that is read and e)4.242 F -.15(xe)-.15 G 1.501
+(cuted when the shell recei).15 F -.15(ve)-.25 G 4.001(sa).15 G 1.801
+-.15(ny o)-4.001 H 4.001(ft).15 G 1.501(he signals)-4.001 F F0(sigspec)
+144.34 177.6 Q F1 5.708(.I).31 G(f)-5.708 E F0(action)3.538 E F1 .709
+(is absent \(and there is a single)3.449 F F0(sigspec)3.209 E F1 3.209
+(\)o)C(r)-3.209 E F2<ad>3.209 E F1 3.209(,e)C .709(ach speci\214ed)
+-3.209 F F0(sigspec)3.209 E F1 .709(is reset to)3.209 F .293(the v)144
+189.6 R .292(alue it had when the shell w)-.25 F .292(as started.)-.1 F
+(If)5.292 E F0(action)3.122 E F1 .292
(is the null string the signal speci\214ed by each)3.032 F F0(sigspec)
-144.34 391.2 Q F1(is ignored by the shell and by the commands it in)2.81
-E -.2(vo)-.4 G -.1(ke).2 G(s.).1 E .165(If no ar)144 408 R .165
+144.34 201.6 Q F1(is ignored by the shell and by the commands it in)2.81
+E -.2(vo)-.4 G -.1(ke).2 G(s.).1 E .165(If no ar)144 218.4 R .165
(guments are supplied,)-.18 F F2(trap)2.665 E F1 .165
(displays the actions associated with each trapped signal as a set)2.665
-F(of)144 420 Q F2(trap)2.57 E F1 .069(commands that can be reused as sh\
-ell input to restore the current signal dispositions.)2.57 F(If)5.069 E
-F2<ad70>2.569 E F1 .473(is gi)144 432 R -.15(ve)-.25 G .473(n, and).15 F
-F0(action)3.303 E F1 .473(is not present, then)3.213 F F2(trap)2.973 E
-F1 .473(displays the actions associated with each)2.973 F F0(sigspec)
-3.314 E F1(or)3.284 E(,)-.4 E .364
-(if none are supplied, for all trapped signals, as a set of)144 444 R F2
-(trap)2.864 E F1 .363(commands that can be reused as shell)2.864 F .207
-(input to restore the current signal dispositions.)144 456 R(The)5.207 E
-F2<ad50>2.707 E F1 .207(option beha)2.707 F -.15(ve)-.2 G 2.707(ss).15 G
-(imilarly)-2.707 E 2.707(,b)-.65 G .208(ut displays only)-2.907 F 1.553
-(the actions associated with each)144 468 R F0(sigspec)4.052 E F1(ar)
-4.052 E(gument.)-.18 E F2<ad50>6.552 E F1 1.552(requires at least one)
-4.052 F F0(sigspec)4.052 E F1(ar)4.052 E(gument.)-.18 E(The)144 480 Q F2
-<ad50>2.779 E F1(or)2.779 E F2<ad70>2.779 E F1 .279
-(options may be used in a subshell en)2.779 F .28
+F(of)144 230.4 Q F2(trap)2.57 E F1 .069(commands that can be reused as \
+shell input to restore the current signal dispositions.)2.57 F(If)5.069
+E F2<ad70>2.569 E F1 .473(is gi)144 242.4 R -.15(ve)-.25 G .473(n, and)
+.15 F F0(action)3.303 E F1 .473(is not present, then)3.213 F F2(trap)
+2.973 E F1 .473(displays the actions associated with each)2.973 F F0
+(sigspec)3.314 E F1(or)3.284 E(,)-.4 E .364
+(if none are supplied, for all trapped signals, as a set of)144 254.4 R
+F2(trap)2.864 E F1 .363(commands that can be reused as shell)2.864 F
+.207(input to restore the current signal dispositions.)144 266.4 R(The)
+5.207 E F2<ad50>2.707 E F1 .207(option beha)2.707 F -.15(ve)-.2 G 2.707
+(ss).15 G(imilarly)-2.707 E 2.707(,b)-.65 G .208(ut displays only)-2.907
+F 1.553(the actions associated with each)144 278.4 R F0(sigspec)4.052 E
+F1(ar)4.052 E(gument.)-.18 E F2<ad50>6.552 E F1 1.552
+(requires at least one)4.052 F F0(sigspec)4.052 E F1(ar)4.052 E(gument.)
+-.18 E(The)144 290.4 Q F2<ad50>2.779 E F1(or)2.779 E F2<ad70>2.779 E F1
+.279(options may be used in a subshell en)2.779 F .28
(vironment \(e.g., command substitution\) and, as)-.4 F .239
-(long as the)144 492 R 2.739(ya)-.15 G .239(re used before)-2.739 F F2
+(long as the)144 302.4 R 2.739(ya)-.15 G .239(re used before)-2.739 F F2
(trap)2.739 E F1 .238(is used to change a signal')2.739 F 2.738(sh)-.55
-G .238(andling, will display the state of its)-2.738 F(parent')144 504 Q
-2.5(st)-.55 G(raps.)-2.5 E(The)144 520.8 Q F2<ad6c>2.515 E F1 .016
+G .238(andling, will display the state of its)-2.738 F(parent')144 314.4
+Q 2.5(st)-.55 G(raps.)-2.5 E(The)144 331.2 Q F2<ad6c>2.515 E F1 .016
(option prints a list of signal names and their corresponding numbers.)
2.515 F(Each)5.016 E F0(sigspec)2.856 E F1 .016(is either)2.826 F 2.615
-(as)144 532.8 S .115(ignal name de\214ned in <)-2.615 F F0(signal.h)A F1
+(as)144 343.2 S .115(ignal name de\214ned in <)-2.615 F F0(signal.h)A F1
.114(>, or a signal number)B 5.114(.S)-.55 G .114
(ignal names are case insensiti)-5.114 F .414 -.15(ve a)-.25 H .114
-(nd the).15 F/F4 9/Times-Bold@0 SF(SIG)144 544.8 Q F1 .782
+(nd the).15 F/F3 9/Times-Bold@0 SF(SIG)144 355.2 Q F1 .782
(pre\214x is optional.)3.032 F(If)5.782 E F2<ad6c>3.282 E F1 .782
(is supplied with no)3.282 F F0(sigspec)3.282 E F1(ar)3.282 E .783
(guments, it prints a list of v)-.18 F .783(alid signal)-.25 F(names.)
-144 556.8 Q .017(If a)144 573.6 R F0(sigspec)2.857 E F1(is)2.827 E F4
+144 367.2 Q .017(If a)144 384 R F0(sigspec)2.857 E F1(is)2.827 E F3
(EXIT)2.517 E F1(\(0\),)2.267 E F0(action)2.847 E F1 .017(is e)2.757 F
-.15(xe)-.15 G .017(cuted on e).15 F .016(xit from the shell.)-.15 F
-.016(If a)5.016 F F0(sigspec)2.856 E F1(is)2.826 E F4(DEB)2.516 E(UG)
--.09 E F3(,)A F0(action)2.596 E F1(is)2.756 E -.15(exe)144 585.6 S .797
-(cuted before e).15 F -.15(ve)-.25 G(ry).15 E F0 .797(simple command)
-3.297 F F1(,)A F0(for)3.297 E F1(command,)3.297 E F0(case)3.298 E F1
-(command,)3.298 E F0(select)3.298 E F1 .798(command, \(\( arith-)3.298 F
-.574(metic command, [[ conditional command, arithmetic)144 597.6 R F0
-(for)3.073 E F1 .573(command, and before the \214rst command)3.073 F
--.15(exe)144 609.6 S 1.98(cutes in a shell function \(see).15 F F4 1.98
+.016(If a)5.016 F F0(sigspec)2.856 E F1(is)2.826 E F3(DEB)2.516 E(UG)
+-.09 E/F4 9/Times-Roman@0 SF(,)A F0(action)2.596 E F1(is)2.756 E -.15
+(exe)144 396 S .797(cuted before e).15 F -.15(ve)-.25 G(ry).15 E F0 .797
+(simple command)3.297 F F1(,)A F0(for)3.297 E F1(command,)3.297 E F0
+(case)3.298 E F1(command,)3.298 E F0(select)3.298 E F1 .798
+(command, \(\( arith-)3.298 F .574
+(metic command, [[ conditional command, arithmetic)144 408 R F0(for)
+3.073 E F1 .573(command, and before the \214rst command)3.073 F -.15
+(exe)144 420 S 1.98(cutes in a shell function \(see).15 F F3 1.98
(SHELL GRAMMAR)4.48 F F1(abo)4.23 E -.15(ve)-.15 G 4.48(\). Refer).15 F
-1.98(to the description of the)4.48 F F2(extdeb)144 621.6 Q(ug)-.2 E F1
+1.98(to the description of the)4.48 F F2(extdeb)144 432 Q(ug)-.2 E F1
.385(shell option \(see)2.885 F F2(shopt)2.884 E F1(abo)2.884 E -.15(ve)
-.15 G 2.884(\)f).15 G .384(or details of its ef)-2.884 F .384
(fect on the)-.25 F F2(DEB)2.884 E(UG)-.1 E F1 2.884(trap. If)2.884 F(a)
-2.884 E F0(sigspec)3.224 E F1(is)144 633.6 Q F4(RETURN)2.802 E F3(,)A F0
+2.884 E F0(sigspec)3.224 E F1(is)144 444 Q F3(RETURN)2.802 E F4(,)A F0
(action)2.882 E F1 .302(is e)3.042 F -.15(xe)-.15 G .302
(cuted each time a shell function or a script e).15 F -.15(xe)-.15 G
.303(cuted with the).15 F F2(.)2.803 E F1(or)2.803 E F2(sour)2.803 E(ce)
--.18 E F1 -.2(bu)144 645.6 S(iltins \214nishes e).2 E -.15(xe)-.15 G
-(cuting.).15 E .349(If a)144 662.4 R F0(sigspec)3.189 E F1(is)3.159 E F4
-(ERR)2.849 E F3(,)A F0(action)2.929 E F1 .349(is e)3.089 F -.15(xe)-.15
+-.18 E F1 -.2(bu)144 456 S(iltins \214nishes e).2 E -.15(xe)-.15 G
+(cuting.).15 E .349(If a)144 472.8 R F0(sigspec)3.189 E F1(is)3.159 E F3
+(ERR)2.849 E F4(,)A F0(action)2.929 E F1 .349(is e)3.089 F -.15(xe)-.15
G .349(cuted whene).15 F -.15(ve)-.25 G 2.849(rap).15 G .349
(ipeline \(which may consist of a single simple)-2.849 F .164
(command\), a list, or a compound command returns a non\255zero e)144
-674.4 R .165(xit status, subject to the follo)-.15 F(wing)-.25 E 2.577
-(conditions. The)144 686.4 R F4(ERR)2.577 E F1 .077(trap is not e)2.327
+484.8 R .165(xit status, subject to the follo)-.15 F(wing)-.25 E 2.577
+(conditions. The)144 496.8 R F3(ERR)2.577 E F1 .077(trap is not e)2.327
F -.15(xe)-.15 G .077(cuted if the f).15 F .076
(ailed command is part of the command list imme-)-.1 F .314
-(diately follo)144 698.4 R .314(wing a)-.25 F F2(while)2.814 E F1(or)
+(diately follo)144 508.8 R .314(wing a)-.25 F F2(while)2.814 E F1(or)
2.814 E F2(until)2.814 E F1(reserv)2.814 E .314(ed w)-.15 F .314
(ord, part of the test in an)-.1 F F0(if)2.824 E F1 .315
-(statement, part of a com-)4.774 F .435(mand e)144 710.4 R -.15(xe)-.15
+(statement, part of a com-)4.774 F .435(mand e)144 520.8 R -.15(xe)-.15
G .435(cuted in a).15 F F2(&&)2.935 E F1(or)2.935 E F2(||)2.935 E F1
.435(list e)2.935 F .435(xcept the command follo)-.15 F .435
(wing the \214nal)-.25 F F2(&&)2.935 E F1(or)2.935 E F2(||)2.935 E F1
-2.935(,a)C .735 -.15(ny c)-2.935 H(ommand).15 E 1.225(in a pipeline b)
-144 722.4 R 1.225(ut the last \(subject to the state of the)-.2 F F2
-(pipefail)3.725 E F1 1.225(shell option\), or if the command')3.725 F(s)
--.55 E(GNU Bash 5.3)72 768 Q(2025 April 7)149.285 E(90)198.445 E 0 Cg EP
-%%Page: 91 91
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E .79(return v)144 84 R .79(alue is being in)-.25 F
--.15(ve)-.4 G .79(rted using).15 F/F2 10/Times-Bold@0 SF(!)3.29 E F1
-5.789(.T)C .789(hese are the same conditions obe)-5.789 F .789
-(yed by the)-.15 F F2(err)3.289 E(exit)-.18 E F1(\()3.289 E F2<ad65>A F1
-(\))A(option.)144 96 Q .069(When the shell is not interacti)144 112.8 R
--.15(ve)-.25 G 2.569(,s).15 G .07
+2.935(,a)C .735 -.15(ny c)-2.935 H(ommand).15 E .444(in a pipeline b)144
+532.8 R .445(ut the last \(subject to the state of the)-.2 F F2
+(pipefail)2.945 E F1 .445(shell option\), or if the command')2.945 F
+2.945(sr)-.55 G(e-)-2.945 E .269(turn v)144 544.8 R .269
+(alue is being in)-.25 F -.15(ve)-.4 G .269(rted using).15 F F2(!)2.769
+E F1 5.269(.T)C .269(hese are the same conditions obe)-5.269 F .269
+(yed by the)-.15 F F2(err)2.768 E(exit)-.18 E F1(\()2.768 E F2<ad65>A F1
+2.768(\)o)C(p-)-2.768 E(tion.)144 556.8 Q .069
+(When the shell is not interacti)144 573.6 R -.15(ve)-.25 G 2.569(,s).15
+G .07
(ignals ignored upon entry to the shell cannot be trapped or reset.)
--2.569 F(Interacti)144 124.8 Q .952 -.15(ve s)-.25 H .652
+-2.569 F(Interacti)144 585.6 Q .952 -.15(ve s)-.25 H .652
(hells permit trapping signals ignored on entry).15 F 5.651(.T)-.65 G
.651(rapped signals that are not being ig-)-6.001 F .576
-(nored are reset to their original v)144 136.8 R .576
+(nored are reset to their original v)144 597.6 R .576
(alues in a subshell or subshell en)-.25 F .577
-(vironment when one is created.)-.4 F(The return status is f)144 148.8 Q
+(vironment when one is created.)-.4 F(The return status is f)144 609.6 Q
(alse if an)-.1 E(y)-.15 E F0(sigspec)2.84 E F1(is in)2.81 E -.25(va)-.4
G(lid; otherwise).25 E F2(trap)2.5 E F1(returns true.)2.5 E F2(true)108
-165.6 Q F1(Does nothing, returns a 0 status.)144 165.6 Q F2(type)108
-182.4 Q F1([)2.5 E F2(\255aftpP)A F1(])A F0(name)2.5 E F1([)2.5 E F0
-(name)A F1 1.666(...)2.5 G(])-1.666 E(Indicate ho)144 194.4 Q 2.5(we)
+626.4 Q F1(Does nothing, returns a 0 status.)144 626.4 Q F2(type)108
+643.2 Q F1([)2.5 E F2(\255aftpP)A F1(])A F0(name)2.5 E F1([)2.5 E F0
+(name)A F1 1.666(...)2.5 G(])-1.666 E(Indicate ho)144 655.2 Q 2.5(we)
-.25 G(ach)-2.5 E F0(name)2.86 E F1 -.1(wo)2.68 G
-(uld be interpreted if used as a command name.).1 E .801(If the)144
-211.2 R F2<ad74>3.301 E F1 .801(option is used,)3.301 F F2(type)3.301 E
-F1 .801(prints a string which is one of)3.301 F F0(alias)3.63 E F1(,).27
-E F0 -.1(ke)3.3 G(ywor)-.2 E(d)-.37 E F1(,).77 E F0(function)5.27 E F1
-(,).24 E F0 -.2(bu)3.3 G(iltin).2 E F1 3.3(,o).24 G(r)-3.3 E F0(\214le)
-145.91 223.2 Q F1(if)3.622 E F0(name)3.802 E F1 .942
+(uld be interpreted if used as a command name.).1 E .801(If the)144 672
+R F2<ad74>3.301 E F1 .801(option is used,)3.301 F F2(type)3.301 E F1
+.801(prints a string which is one of)3.301 F F0(alias)3.63 E F1(,).27 E
+F0 -.1(ke)3.3 G(ywor)-.2 E(d)-.37 E F1(,).77 E F0(function)5.27 E F1(,)
+.24 E F0 -.2(bu)3.3 G(iltin).2 E F1 3.3(,o).24 G(r)-3.3 E F0(\214le)
+145.91 684 Q F1(if)3.622 E F0(name)3.802 E F1 .942
(is an alias, shell reserv)3.622 F .942(ed w)-.15 F .942
(ord, function, b)-.1 F .942(uiltin, or e)-.2 F -.15(xe)-.15 G .942
(cutable \214le, respecti).15 F -.15(ve)-.25 G(ly).15 E 5.942(.I)-.65 G
-(f)-5.942 E(the)144 235.2 Q F0(name)2.86 E F1(is not found,)2.68 E F2
+(f)-5.942 E(the)144 696 Q F0(name)2.86 E F1(is not found,)2.68 E F2
(type)2.5 E F1(prints nothing and returns a non-zero e)2.5 E
-(xit status.)-.15 E 1.483(If the)144 252 R F2<ad70>3.983 E F1 1.483
+(xit status.)-.15 E 1.483(If the)144 712.8 R F2<ad70>3.983 E F1 1.483
(option is used,)3.983 F F2(type)3.983 E F1 1.482
(either returns the pathname of the e)3.982 F -.15(xe)-.15 G 1.482
(cutable \214le that w).15 F 1.482(ould be)-.1 F .44(found by searching)
-144 264 R F2($P)2.94 E -.95(AT)-.74 G(H).95 E F1(for)2.94 E F0(name)3.3
-E F1 .441(or nothing if \231type \255t name\232 w)3.12 F .441
+144 724.8 R F2($P)2.94 E -.95(AT)-.74 G(H).95 E F1(for)2.94 E F0(name)
+3.3 E F1 .441(or nothing if \231type \255t name\232 w)3.12 F .441
(ould not return)-.1 F F0(\214le)4.851 E F1 5.441(.T).18 G(he)-5.441 E
-F2<ad50>2.941 E F1 .206(option forces a)144 276 R/F3 9/Times-Bold@0 SF
+F2<ad50>2.941 E F1(GNU Bash 5.3)72 768 Q(2026 January 14)141.79 E(92)
+190.95 E 0 Cg EP
+%%Page: 93 93
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E .206(option forces a)144 84 R/F2 9/Times-Bold@0 SF
-.666(PA)2.706 G(TH)-.189 E F1 .206(search for each)2.456 F F0(name)
2.706 E F1 2.706(,e)C -.15(ve)-2.956 G 2.706(ni).15 G 2.705<6699>-2.706
G .205(type \255t name\232 w)-2.705 F .205(ould not return)-.1 F F0
(\214le)4.615 E F1 5.205(.I).18 G(f)-5.205 E F0(name)2.705 E F1 .241
-(is present in the table of hashed commands,)144 288 R F2<ad70>2.742 E
-F1(and)2.742 E F2<ad50>2.742 E F1 .242(print the hashed v)2.742 F .242
-(alue, which is not neces-)-.25 F
-(sarily the \214le that appears \214rst in)144 300 Q F3 -.666(PA)2.5 G
-(TH)-.189 E/F4 9/Times-Roman@0 SF(.)A F1 .653(If the)144 316.8 R F2
-<ad61>3.153 E F1 .653(option is used,)3.153 F F2(type)3.153 E F1 .653
+(is present in the table of hashed commands,)144 96 R/F3 10/Times-Bold@0
+SF<ad70>2.742 E F1(and)2.742 E F3<ad50>2.742 E F1 .242
+(print the hashed v)2.742 F .242(alue, which is not neces-)-.25 F
+(sarily the \214le that appears \214rst in)144 108 Q F2 -.666(PA)2.5 G
+(TH)-.189 E/F4 9/Times-Roman@0 SF(.)A F1 .653(If the)144 124.8 R F3
+<ad61>3.153 E F1 .653(option is used,)3.153 F F3(type)3.153 E F1 .653
(prints all of the places that contain a command named)3.153 F F0(name)
3.512 E F1 5.652(.T).18 G(his)-5.652 E .735(includes aliases, reserv)144
-328.8 R .735(ed w)-.15 F .736(ords, functions, and b)-.1 F .736
-(uiltins, b)-.2 F .736(ut the path search options \()-.2 F F2<ad70>A F1
-(and)3.236 E F2<ad50>3.236 E F1(\))A .292
-(can be supplied to restrict the output to e)144 340.8 R -.15(xe)-.15 G
-.292(cutable \214les.).15 F F2(type)5.292 E F1 .291
+136.8 R .735(ed w)-.15 F .736(ords, functions, and b)-.1 F .736
+(uiltins, b)-.2 F .736(ut the path search options \()-.2 F F3<ad70>A F1
+(and)3.236 E F3<ad50>3.236 E F1(\))A .292
+(can be supplied to restrict the output to e)144 148.8 R -.15(xe)-.15 G
+.292(cutable \214les.).15 F F3(type)5.292 E F1 .291
(does not consult the table of hashed)2.792 F(commands when using)144
-352.8 Q F2<ad61>2.5 E F1(with)2.5 E F2<ad70>2.5 E F1 2.5(,a)C
-(nd only performs a)-2.5 E F3 -.666(PA)2.5 G(TH)-.189 E F1(search for)
-2.25 E F0(name)2.5 E F1(.)A(The)144 369.6 Q F2<ad66>2.757 E F1 .257
-(option suppresses shell function lookup, as with the)2.757 F F2
-(command)2.757 E F1 -.2(bu)2.758 G(iltin.).2 E F2(type)5.258 E F1 .258
-(returns true if)2.758 F(all of the ar)144 381.6 Q(guments are found, f)
--.18 E(alse if an)-.1 E 2.5(ya)-.15 G(re not found.)-2.5 E F2(ulimit)108
-398.4 Q F1([)2.5 E F2(\255HS)A F1(])A F2<ad61>2.5 E(ulimit)108 410.4 Q
-F1([)2.5 E F2(\255HS)A F1 2.5(][)C F2(\255bcde\214klmnpqrstuvxPR)-2.5 E
-(T)-.4 E F1([)2.5 E F0(limit)A F1(]])A(Pro)144 422.4 Q .279
+160.8 Q F3<ad61>2.5 E F1(with)2.5 E F3<ad70>2.5 E F1 2.5(,a)C
+(nd only performs a)-2.5 E F2 -.666(PA)2.5 G(TH)-.189 E F1(search for)
+2.25 E F0(name)2.5 E F1(.)A(The)144 177.6 Q F3<ad66>2.757 E F1 .257
+(option suppresses shell function lookup, as with the)2.757 F F3
+(command)2.757 E F1 -.2(bu)2.758 G(iltin.).2 E F3(type)5.258 E F1 .258
+(returns true if)2.758 F(all of the ar)144 189.6 Q(guments are found, f)
+-.18 E(alse if an)-.1 E 2.5(ya)-.15 G(re not found.)-2.5 E F3(ulimit)108
+206.4 Q F1([)2.5 E F3(\255HS)A F1(])A F3<ad61>2.5 E(ulimit)108 218.4 Q
+F1([)2.5 E F3(\255HS)A F1 2.5(][)C F3(\255bcde\214klmnpqrstuvxPR)-2.5 E
+(T)-.4 E F1([)2.5 E F0(limit)A F1(]])A(Pro)144 230.4 Q .279
(vides control o)-.15 F -.15(ve)-.15 G 2.778(rt).15 G .278
(he resources a)-2.778 F -.25(va)-.2 G .278
(ilable to the shell and to processes it starts, on systems that).25 F
-(allo)144 434.4 Q 2.5(ws)-.25 G(uch control.)-2.5 E(The)144 451.2 Q F2
-<ad48>2.693 E F1(and)2.693 E F2<ad53>2.693 E F1 .193
+(allo)144 242.4 Q 2.5(ws)-.25 G(uch control.)-2.5 E(The)144 259.2 Q F3
+<ad48>2.693 E F1(and)2.693 E F3<ad53>2.693 E F1 .193
(options specify whether the hard or soft limit is set for the gi)2.693
F -.15(ve)-.25 G 2.694(nr).15 G 2.694(esource. A)-2.694 F(hard)2.694 E
.497(limit cannot be increased by a non-root user once it is set; a sof\
-t limit may be increased up to the)144 463.2 R -.25(va)144 475.2 S
-(lue of the hard limit.).25 E(If neither)5 E F2<ad48>2.5 E F1(nor)2.5 E
-F2<ad53>2.5 E F1(is speci\214ed,)2.5 E F2(ulimit)2.5 E F1
-(sets both the soft and hard limits.)2.5 E .402(The v)144 492 R .402
+t limit may be increased up to the)144 271.2 R -.25(va)144 283.2 S
+(lue of the hard limit.).25 E(If neither)5 E F3<ad48>2.5 E F1(nor)2.5 E
+F3<ad53>2.5 E F1(is speci\214ed,)2.5 E F3(ulimit)2.5 E F1
+(sets both the soft and hard limits.)2.5 E .402(The v)144 300 R .402
(alue of)-.25 F F0(limit)2.992 E F1 .402(can be a number in the unit sp\
eci\214ed for the resource or one of the special v)3.582 F(al-)-.25 E
-(ues)144 504 Q F2(hard)3.019 E F1(,)A F2(soft)3.019 E F1 3.019(,o)C(r)
--3.019 E F2(unlimited)3.019 E F1 3.018(,w)C .518
+(ues)144 312 Q F3(hard)3.019 E F1(,)A F3(soft)3.019 E F1 3.019(,o)C(r)
+-3.019 E F3(unlimited)3.019 E F1 3.018(,w)C .518
(hich stand for the current hard limit, the current soft limit, and no)
--3.018 F 1.055(limit, respecti)144 516 R -.15(ve)-.25 G(ly).15 E 6.055
-(.I)-.65 G(f)-6.055 E F0(limit)3.645 E F1 1.055(is omitted,)4.235 F F2
+-3.018 F 1.055(limit, respecti)144 324 R -.15(ve)-.25 G(ly).15 E 6.055
+(.I)-.65 G(f)-6.055 E F0(limit)3.645 E F1 1.055(is omitted,)4.235 F F3
(ulimit)3.555 E F1 1.055(prints the current v)3.555 F 1.056
(alue of the soft limit of the re-)-.25 F .637(source, unless the)144
-528 R F2<ad48>3.137 E F1 .637(option is gi)3.137 F -.15(ve)-.25 G 3.137
+336 R F3<ad48>3.137 E F1 .637(option is gi)3.137 F -.15(ve)-.25 G 3.137
(n. When).15 F .637
(more than one resource is speci\214ed, the limit name)3.137 F
-(and unit, if appropriate, are printed before the v)144 540 Q 2.5
-(alue. Other)-.25 F(options are interpreted as follo)2.5 E(ws:)-.25 E F2
-<ad61>144 552 Q F1(Report all current limits; no limits are set.)180 552
-Q F2<ad62>144 564 Q F1(The maximum sock)180 564 Q(et b)-.1 E(uf)-.2 E
-(fer size.)-.25 E F2<ad63>144 576 Q F1
-(The maximum size of core \214les created.)180 576 Q F2<ad64>144 588 Q
-F1(The maximum size of a process')180 588 Q 2.5(sd)-.55 G(ata se)-2.5 E
-(gment.)-.15 E F2<ad65>144 600 Q F1
-(The maximum scheduling priority \(\231nice\232\).)180 600 Q F2<ad66>144
-612 Q F1
+(and unit, if appropriate, are printed before the v)144 348 Q 2.5
+(alue. Other)-.25 F(options are interpreted as follo)2.5 E(ws:)-.25 E F3
+<ad61>144 360 Q F1(Report all current limits; no limits are set.)180 360
+Q F3<ad62>144 372 Q F1(The maximum sock)180 372 Q(et b)-.1 E(uf)-.2 E
+(fer size.)-.25 E F3<ad63>144 384 Q F1
+(The maximum size of core \214les created.)180 384 Q F3<ad64>144 396 Q
+F1(The maximum size of a process')180 396 Q 2.5(sd)-.55 G(ata se)-2.5 E
+(gment.)-.15 E F3<ad65>144 408 Q F1
+(The maximum scheduling priority \(\231nice\232\).)180 408 Q F3<ad66>144
+420 Q F1
(The maximum size of \214les written by the shell and its children.)180
-612 Q F2<ad69>144 624 Q F1(The maximum number of pending signals.)180
-624 Q F2<ad6b>144 636 Q F1
-(The maximum number of kqueues that may be allocated.)180 636 Q F2<ad6c>
-144 648 Q F1(The maximum size that may be lock)180 648 Q(ed into memory)
--.1 E(.)-.65 E F2<ad6d>144 660 Q F1(The maximum resident set size \(man)
-180 660 Q 2.5(ys)-.15 G(ystems do not honor this limit\).)-2.5 E F2
-<ad6e>144 672 Q F1 .791(The maximum number of open \214le descriptors \
-\(most systems do not allo)180 672 R 3.291(wt)-.25 G .791(his v)-3.291 F
-.791(alue to)-.25 F(be set\).)180 684 Q F2<ad70>144 696 Q F1
-(The pipe size in 512-byte blocks \(this may not be set\).)180 696 Q
-(GNU Bash 5.3)72 768 Q(2025 April 7)149.285 E(91)198.445 E 0 Cg EP
-%%Page: 92 92
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF<ad71>144 84 Q F1
-(The maximum number of bytes in)180 84 Q/F3 9/Times-Roman@0 SF(POSIX)2.5
-E F1(message queues.)2.25 E F2<ad72>144 96 Q F1
-(The maximum real-time scheduling priority)180 96 Q(.)-.65 E F2<ad73>144
-108 Q F1(The maximum stack size.)180 108 Q F2<ad74>144 120 Q F1
-(The maximum amount of cpu time in seconds.)180 120 Q F2<ad75>144 132 Q
-F1(The maximum number of processes a)180 132 Q -.25(va)-.2 G
-(ilable to a single user).25 E(.)-.55 E F2<ad76>144 144 Q F1 .47
-(The maximum amount of virtual memory a)180 144 R -.25(va)-.2 G .47
+420 Q F3<ad69>144 432 Q F1(The maximum number of pending signals.)180
+432 Q F3<ad6b>144 444 Q F1
+(The maximum number of kqueues that may be allocated.)180 444 Q F3<ad6c>
+144 456 Q F1(The maximum size that may be lock)180 456 Q(ed into memory)
+-.1 E(.)-.65 E F3<ad6d>144 468 Q F1(The maximum resident set size \(man)
+180 468 Q 2.5(ys)-.15 G(ystems do not honor this limit\).)-2.5 E F3
+<ad6e>144 480 Q F1 .791(The maximum number of open \214le descriptors \
+\(most systems do not allo)180 480 R 3.291(wt)-.25 G .791(his v)-3.291 F
+.791(alue to)-.25 F(be set\).)180 492 Q F3<ad70>144 504 Q F1
+(The pipe size in 512-byte blocks \(this may not be set\).)180 504 Q F3
+<ad71>144 516 Q F1(The maximum number of bytes in)180 516 Q F4(POSIX)2.5
+E F1(message queues.)2.25 E F3<ad72>144 528 Q F1
+(The maximum real-time scheduling priority)180 528 Q(.)-.65 E F3<ad73>
+144 540 Q F1(The maximum stack size.)180 540 Q F3<ad74>144 552 Q F1
+(The maximum amount of cpu time in seconds.)180 552 Q F3<ad75>144 564 Q
+F1(The maximum number of processes a)180 564 Q -.25(va)-.2 G
+(ilable to a single user).25 E(.)-.55 E F3<ad76>144 576 Q F1 .47
+(The maximum amount of virtual memory a)180 576 R -.25(va)-.2 G .47
(ilable to the shell and, on some systems, to).25 F(its children.)180
-156 Q F2<ad78>144 168 Q F1(The maximum number of \214le locks.)180 168 Q
-F2<ad50>144 180 Q F1(The maximum number of pseudoterminals.)180 180 Q F2
-<ad52>144 192 Q F1(The maximum time a real-time process can run before \
-blocking, in microseconds.)180 192 Q F2<ad54>144 204 Q F1
-(The maximum number of threads.)180 204 Q(If)144 220.8 Q F0(limit)3.061
-E F1 .471(is supplied, and the)3.651 F F2<ad61>2.971 E F1 .471
+588 Q F3<ad78>144 600 Q F1(The maximum number of \214le locks.)180 600 Q
+F3<ad50>144 612 Q F1(The maximum number of pseudoterminals.)180 612 Q F3
+<ad52>144 624 Q F1(The maximum time a real-time process can run before \
+blocking, in microseconds.)180 624 Q F3<ad54>144 636 Q F1
+(The maximum number of threads.)180 636 Q(If)144 652.8 Q F0(limit)3.061
+E F1 .471(is supplied, and the)3.651 F F3<ad61>2.971 E F1 .471
(option is not used,)2.971 F F0(limit)2.971 E F1 .471(is the ne)2.971 F
2.971(wv)-.25 G .471(alue of the speci\214ed resource.)-3.221 F
-(If no option is supplied, then)144 232.8 Q F2<ad66>2.5 E F1
-(is assumed.)2.5 E -1.11(Va)144 249.6 S .388
-(lues are in 1024-byte increments, e)1.11 F .388(xcept for)-.15 F F2
-<ad74>2.888 E F1 2.888(,w)C .388(hich is in seconds;)-2.888 F F2<ad52>
-2.888 E F1 2.888(,w)C .388(hich is in microsec-)-2.888 F(onds;)144 261.6
-Q F2<ad70>3.286 E F1 3.286(,w)C .786
-(hich is in units of 512-byte blocks;)-3.286 F F2<ad50>3.287 E F1(,)A F2
-<ad54>3.287 E F1(,)A F2<ad62>3.287 E F1(,)A F2<ad6b>3.287 E F1(,)A F2
-<ad6e>3.287 E F1 3.287(,a)C(nd)-3.287 E F2<ad75>3.287 E F1 3.287(,w)C
-.787(hich are unscaled)-3.287 F -.25(va)144 273.6 S .498
-(lues; and, when in posix mode,).25 F F2<ad63>2.998 E F1(and)2.998 E F2
+(If no option is supplied, then)144 664.8 Q F3<ad66>2.5 E F1
+(is assumed.)2.5 E -1.11(Va)144 681.6 S .388
+(lues are in 1024-byte increments, e)1.11 F .388(xcept for)-.15 F F3
+<ad74>2.888 E F1 2.888(,w)C .388(hich is in seconds;)-2.888 F F3<ad52>
+2.888 E F1 2.888(,w)C .388(hich is in microsec-)-2.888 F(onds;)144 693.6
+Q F3<ad70>3.286 E F1 3.286(,w)C .786
+(hich is in units of 512-byte blocks;)-3.286 F F3<ad50>3.287 E F1(,)A F3
+<ad54>3.287 E F1(,)A F3<ad62>3.287 E F1(,)A F3<ad6b>3.287 E F1(,)A F3
+<ad6e>3.287 E F1 3.287(,a)C(nd)-3.287 E F3<ad75>3.287 E F1 3.287(,w)C
+.787(hich are unscaled)-3.287 F -.25(va)144 705.6 S .498
+(lues; and, when in posix mode,).25 F F3<ad63>2.998 E F1(and)2.998 E F3
<ad66>2.998 E F1 2.998(,w)C .498(hich are in 512-byte increments.)-2.998
-F .498(The return status)5.498 F(is 0 unless an in)144 285.6 Q -.25(va)
+F .498(The return status)5.498 F(is 0 unless an in)144 717.6 Q -.25(va)
-.4 G(lid option or ar).25 E
(gument is supplied, or an error occurs while setting a ne)-.18 E 2.5
-(wl)-.25 G(imit.)-2.5 E F2(umask)108 302.4 Q F1([)2.5 E F2<ad70>A F1 2.5
-(][)C F2<ad53>-2.5 E F1 2.5(][)C F0(mode)-2.5 E F1(])A .791
-(Set the user \214le-creation mask to)144 314.4 R F0(mode)3.671 E F1
+(wl)-.25 G(imit.)-2.5 E(GNU Bash 5.3)72 768 Q(2026 January 14)141.79 E
+(93)190.95 E 0 Cg EP
+%%Page: 94 94
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(umask)108 84 Q F1([)2.5 E F2
+<ad70>A F1 2.5(][)C F2<ad53>-2.5 E F1 2.5(][)C F0(mode)-2.5 E F1(])A
+.791(Set the user \214le-creation mask to)144 96 R F0(mode)3.671 E F1
5.792(.I).18 G(f)-5.792 E F0(mode)3.672 E F1(be)3.472 E .792
(gins with a digit, it is interpreted as an octal)-.15 F .066(number; o\
therwise it is interpreted as a symbolic mode mask similar to that acce\
-pted by)144 326.4 R F0 -.15(ch)2.566 G(mod).15 E F1(\(1\).).77 E(If)144
-338.4 Q F0(mode)3.031 E F1 .151(is omitted,)2.831 F F2(umask)2.651 E F1
+pted by)144 108 R F0 -.15(ch)2.566 G(mod).15 E F1(\(1\).).77 E(If)144
+120 Q F0(mode)3.031 E F1 .151(is omitted,)2.831 F F2(umask)2.651 E F1
.152(prints the current v)2.651 F .152(alue of the mask.)-.25 F(The)
5.152 E F2<ad53>2.652 E F1 .152(option without a)2.652 F F0(mode)2.652 E
F1(ar)2.652 E(-)-.2 E .394
-(gument prints the mask in a symbolic format; the def)144 350.4 R .394
+(gument prints the mask in a symbolic format; the def)144 132 R .394
(ault output is an octal number)-.1 F 5.394(.I)-.55 G 2.894(ft)-5.394 G
(he)-2.894 E F2<ad70>2.893 E F1(op-)2.893 E .329(tion is supplied, and)
-144 362.4 R F0(mode)3.209 E F1 .329
+144 144 R F0(mode)3.209 E F1 .329
(is omitted, the output is in a form that may be reused as input.)3.009
-F .329(The re-)5.329 F .151(turn status is zero if the mode w)144 374.4
-R .151(as successfully changed or if no)-.1 F F0(mode)2.65 E F1(ar)2.65
-E .15(gument w)-.18 F .15(as supplied, and)-.1 F(non-zero otherwise.)144
-386.4 Q F2(unalias)108 403.2 Q F1<5bad>2.5 E F2(a)A F1 2.5(][)C F0(name)
--2.5 E F1 1.666(...)2.5 G(])-1.666 E(Remo)144 415.2 Q .706 -.15(ve e)
+F .329(The re-)5.329 F .151(turn status is zero if the mode w)144 156 R
+.151(as successfully changed or if no)-.1 F F0(mode)2.65 E F1(ar)2.65 E
+.15(gument w)-.18 F .15(as supplied, and)-.1 F(non-zero otherwise.)144
+168 Q F2(unalias)108 184.8 Q F1<5bad>2.5 E F2(a)A F1 2.5(][)C F0(name)
+-2.5 E F1 1.666(...)2.5 G(])-1.666 E(Remo)144 196.8 Q .706 -.15(ve e)
-.15 H(ach).15 E F0(name)2.906 E F1 .406
(from the list of de\214ned aliases.)2.906 F(If)5.406 E F2<ad61>2.906 E
F1 .406(is supplied, remo)2.906 F .707 -.15(ve a)-.15 H .407
-(ll alias de\214nitions.).15 F(The return v)144 427.2 Q
+(ll alias de\214nitions.).15 F(The return v)144 208.8 Q
(alue is true unless a supplied)-.25 E F0(name)2.86 E F1
-(is not a de\214ned alias.)2.68 E F2(unset)108 444 Q F1<5bad>2.5 E F2
+(is not a de\214ned alias.)2.68 E F2(unset)108 225.6 Q F1<5bad>2.5 E F2
(fv)A F1 2.5(][)C<ad>-2.5 E F2(n)A F1 2.5(][)C F0(name)-2.5 E F1 1.666
-(...)2.5 G(])-1.666 E -.15(Fo)144 456 S 3.804(re).15 G(ach)-3.804 E F0
+(...)2.5 G(])-1.666 E -.15(Fo)144 237.6 S 3.804(re).15 G(ach)-3.804 E F0
(name)4.164 E F1 3.804(,r).18 G(emo)-3.804 E 1.604 -.15(ve t)-.15 H
1.304(he corresponding v).15 F 1.303(ariable or function.)-.25 F 1.303
(If the)6.303 F F2<ad76>3.803 E F1 1.303(option is gi)3.803 F -.15(ve)
--.25 G 1.303(n, each).15 F F0(name)144.36 468 Q F1 .069
+-.25 G 1.303(n, each).15 F F0(name)144.36 249.6 Q F1 .069
(refers to a shell v)2.748 F .069(ariable, and that v)-.25 F .069
(ariable is remo)-.25 F -.15(ve)-.15 G 2.569(d. If).15 F F2<ad66>2.569 E
F1 .069(is speci\214ed, each)2.569 F F0(name)2.929 E F1 .069(refers to)
-2.749 F 2.566(as)144 480 S .066
+2.749 F 2.566(as)144 261.6 S .066
(hell function, and the function de\214nition is remo)-2.566 F -.15(ve)
-.15 G 2.566(d. If).15 F(the)2.566 E F2<ad6e>2.565 E F1 .065
(option is supplied, and)2.565 F F0(name)2.565 E F1 .065(is a)2.565 F
--.25(va)144 492 S .874(riable with the).25 F F0(namer)3.374 E(ef)-.37 E
-F1(attrib)3.374 E(ute,)-.2 E F0(name)3.374 E F1 .875
+-.25(va)144 273.6 S .874(riable with the).25 F F0(namer)3.374 E(ef)-.37
+E F1(attrib)3.374 E(ute,)-.2 E F0(name)3.374 E F1 .875
(will be unset rather than the v)3.375 F .875(ariable it references.)
--.25 F F2<ad6e>5.875 E F1 1.217(has no ef)144 504 R 1.217(fect if the)
+-.25 F F2<ad6e>5.875 E F1 1.217(has no ef)144 285.6 R 1.217(fect if the)
-.25 F F2<ad66>3.716 E F1 1.216(option is supplied.)3.716 F 1.216
(Read-only v)6.216 F 1.216(ariables and functions may not be unset.)-.25
-F .713(When v)144 516 R .713(ariables or functions are remo)-.25 F -.15
-(ve)-.15 G .713(d, the).15 F 3.214(ya)-.15 G .714(re also remo)-3.214 F
--.15(ve)-.15 G 3.214(df).15 G .714(rom the en)-3.214 F .714
-(vironment passed to)-.4 F 1.004(subsequent commands.)144 528 R 1.003
+F .713(When v)144 297.6 R .713(ariables or functions are remo)-.25 F
+-.15(ve)-.15 G .713(d, the).15 F 3.214(ya)-.15 G .714(re also remo)
+-3.214 F -.15(ve)-.15 G 3.214(df).15 G .714(rom the en)-3.214 F .714
+(vironment passed to)-.4 F 1.004(subsequent commands.)144 309.6 R 1.003
(If no options are supplied, each)6.004 F F0(name)3.503 E F1 1.003
(refers to a v)3.503 F 1.003(ariable; if there is no)-.25 F -.25(va)144
-540 S .176(riable by that name, a function with that name, if an).25 F
+321.6 S .176(riable by that name, a function with that name, if an).25 F
1.477 -.65(y, i)-.15 H 2.677(su).65 G 2.677(nset. Some)-2.677 F .177
-(shell v)2.677 F .177(ariables may not be)-.25 F 2.805(unset. If)144 552
-R(an)2.805 E 2.804(yo)-.15 G(f)-2.804 E/F4 9/Times-Bold@0 SF -.27(BA)
-2.804 G(SH_ALIASES).27 E F3(,)A F4 -.27(BA)2.554 G(SH_ARGV0).27 E F3(,)A
-F4 -.27(BA)2.554 G(SH_CMDS).27 E F3(,)A F4 -.27(BA)2.554 G(SH_COMMAND)
-.27 E F3(,)A F4 -.27(BA)2.554 G(SH_SUB-).27 E(SHELL)144 564 Q F3(,)A F4
--.27(BA)2.79 G(SHPID).27 E F3(,)A F4(COMP_W)2.79 E(ORDBREAKS)-.09 E F3
-(,)A F4(DIRST)2.79 E -.495(AC)-.81 G(K).495 E F3(,)A F4(EPOCHREAL)2.79 E
-(TIME)-.828 E F3(,)A F4(EPOCHSECONDS)2.79 E F3(,)A F4(FUNCN)144 576 Q
-(AME)-.18 E F3(,)A F4(GR)4.368 E(OUPS)-.27 E F3(,)A F4(HISTCMD)4.368 E
-F3(,)A F4(LINENO)4.368 E F3(,)A F4(RANDOM)4.368 E F3(,)A F4(SECONDS)
-4.368 E F3(,)A F1(or)4.368 E F4(SRANDOM)4.618 E F1 2.117(are unset,)
-4.368 F(the)144 588 Q 2.741(yl)-.15 G .241
-(ose their special properties, e)-2.741 F -.15(ve)-.25 G 2.741(ni).15 G
-2.741(ft)-2.741 G(he)-2.741 E 2.741(ya)-.15 G .241
+(shell v)2.677 F .177(ariables may not be)-.25 F 2.805(unset. If)144
+333.6 R(an)2.805 E 2.804(yo)-.15 G(f)-2.804 E/F3 9/Times-Bold@0 SF -.27
+(BA)2.804 G(SH_ALIASES).27 E/F4 9/Times-Roman@0 SF(,)A F3 -.27(BA)2.554
+G(SH_ARGV0).27 E F4(,)A F3 -.27(BA)2.554 G(SH_CMDS).27 E F4(,)A F3 -.27
+(BA)2.554 G(SH_COMMAND).27 E F4(,)A F3 -.27(BA)2.554 G(SH_SUB-).27 E
+(SHELL)144 345.6 Q F4(,)A F3 -.27(BA)2.79 G(SHPID).27 E F4(,)A F3
+(COMP_W)2.79 E(ORDBREAKS)-.09 E F4(,)A F3(DIRST)2.79 E -.495(AC)-.81 G
+(K).495 E F4(,)A F3(EPOCHREAL)2.79 E(TIME)-.828 E F4(,)A F3
+(EPOCHSECONDS)2.79 E F4(,)A F3(FUNCN)144 357.6 Q(AME)-.18 E F4(,)A F3
+(GR)4.368 E(OUPS)-.27 E F4(,)A F3(HISTCMD)4.368 E F4(,)A F3(LINENO)4.368
+E F4(,)A F3(RANDOM)4.368 E F4(,)A F3(SECONDS)4.368 E F4(,)A F1(or)4.368
+E F3(SRANDOM)4.618 E F1 2.117(are unset,)4.368 F(the)144 369.6 Q 2.741
+(yl)-.15 G .241(ose their special properties, e)-2.741 F -.15(ve)-.25 G
+2.741(ni).15 G 2.741(ft)-2.741 G(he)-2.741 E 2.741(ya)-.15 G .241
(re subsequently reset.)-2.741 F .241(The e)5.241 F .242
-(xit status is true unless)-.15 F(a)144 600 Q F0(name)2.86 E F1
-(is readonly or may not be unset.)2.68 E F2(wait)108 616.8 Q F1([)2.5 E
+(xit status is true unless)-.15 F(a)144 381.6 Q F0(name)2.86 E F1
+(is readonly or may not be unset.)2.68 E F2(wait)108 398.4 Q F1([)2.5 E
F2(\255fn)A F1 2.5(][)C F2<ad70>-2.5 E F0(varname)2.5 E F1 2.5(][)C F0
-(id)-2.5 E F1 1.666(...)2.5 G(])-1.666 E -.8(Wa)144 628.8 S 1.009
+(id)-2.5 E F1 1.666(...)2.5 G(])-1.666 E -.8(Wa)144 410.4 S 1.009
(it for each speci\214ed child process).8 F F0(id)3.508 E F1 1.008
(and return the termination status of the last)3.508 F F0(id)3.508 E F1
6.008(.E)C(ach)-6.008 E F0(id)3.508 E F1 .499(may be a process ID)144
-640.8 R F0(pid)2.999 E F1 .499(or a job speci\214cation)2.999 F F0
+422.4 R F0(pid)2.999 E F1 .499(or a job speci\214cation)2.999 F F0
(jobspec)2.999 E F1 3(;i)C 3(faj)-3 G .5(obspec is supplied,)-3 F F2
(wait)3 E F1 -.1(wa)3 G .5(its for all).1 F(processes in the job)144
-652.8 Q(.)-.4 E .387(If no options or)144 669.6 R F0(id)2.887 E F1 2.886
+434.4 Q(.)-.4 E .387(If no options or)144 451.2 R F0(id)2.887 E F1 2.886
(sa)C .386(re supplied,)-2.886 F F2(wait)2.886 E F1 -.1(wa)2.886 G .386
(its for all running background jobs and the last-e).1 F -.15(xe)-.15 G
(cuted).15 E(process substitution, if its process id is the same as)144
-681.6 Q F2($!)2.5 E F1 2.5(,a)C(nd the return status is zero.)-2.5 E .47
-(If the)144 698.4 R F2<ad6e>2.97 E F1 .47(option is supplied,)2.97 F F2
+463.2 Q F2($!)2.5 E F1 2.5(,a)C(nd the return status is zero.)-2.5 E .47
+(If the)144 480 R F2<ad6e>2.97 E F1 .47(option is supplied,)2.97 F F2
(wait)2.97 E F1 -.1(wa)2.97 G .47(its for an).1 F 2.97(yo)-.15 G .47
(ne of the gi)-2.97 F -.15(ve)-.25 G(n).15 E F0(id)2.97 E F1 2.97(so)C
1.27 -.4(r, i)-2.97 H 2.97(fn).4 G(o)-2.97 E F0(id)2.97 E F1 2.97(sa)C
.47(re supplied, an)-2.97 F(y)-.15 E .482
-(job or process substitution, to complete and returns its e)144 710.4 R
+(job or process substitution, to complete and returns its e)144 492 R
.482(xit status.)-.15 F .481(If none of the supplied)5.482 F F0(id)2.981
-E F1 2.981(si)C 2.981(sa)-2.981 G 1.337(child of the shell, or if no)144
-722.4 R F0(id)3.838 E F1 3.838(sa)C 1.338
-(re supplied and the shell has no unw)-3.838 F 1.338
-(aited-for children, the e)-.1 F(xit)-.15 E(GNU Bash 5.3)72 768 Q
-(2025 April 7)149.285 E(92)198.445 E 0 Cg EP
-%%Page: 93 93
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E(status is 127.)144 84 Q .347(If the)144 100.8 R/F2
-10/Times-Bold@0 SF<ad70>2.847 E F1 .347(option is supplied,)2.847 F F2
-(wait)2.847 E F1 .347
+E F1 2.981(si)C 2.981(sa)-2.981 G .375(child of the shell, or if no)144
+504 R F0(id)2.876 E F1 2.876(sa)C .376
+(re supplied and the shell has no unw)-2.876 F .376
+(aited-for children, the e)-.1 F .376(xit sta-)-.15 F(tus is 127.)144
+516 Q .347(If the)144 532.8 R F2<ad70>2.847 E F1 .347
+(option is supplied,)2.847 F F2(wait)2.847 E F1 .347
(assigns the process or job identi\214er of the job for which the e)
-2.847 F(xit)-.15 E .006(status is returned to the v)144 112.8 R(ariable)
+2.847 F(xit)-.15 E .006(status is returned to the v)144 544.8 R(ariable)
-.25 E F0(varname)2.506 E F1 .006(named by the option ar)2.506 F 2.506
(gument. The)-.18 F -.25(va)2.506 G .006(riable, which can-).25 F .225
-(not be readonly)144 124.8 R 2.725(,w)-.65 G .225
+(not be readonly)144 556.8 R 2.725(,w)-.65 G .225
(ill be unset initially)-2.725 F 2.724(,b)-.65 G .224(efore an)-2.724 F
2.724(ya)-.15 G 2.724(ssignment. This)-2.724 F .224
-(is useful only when used with)2.724 F(the)144 136.8 Q F2<ad6e>2.5 E F1
-(option.)2.5 E .532(Supplying the)144 153.6 R F2<ad66>3.033 E F1 .533
+(is useful only when used with)2.724 F(the)144 568.8 Q F2<ad6e>2.5 E F1
+(option.)2.5 E .532(Supplying the)144 585.6 R F2<ad66>3.033 E F1 .533
(option, when job control is enabled, forces)3.033 F F2(wait)3.033 E F1
.533(to w)3.033 F .533(ait for each)-.1 F F0(id)3.033 E F1 .533
-(to terminate)3.033 F(before returning its status, instead of returning\
- when it changes status.)144 165.6 Q .311(If none of the)144 182.4 R F0
-(id)2.811 E F1 2.811(ss)C .311(pecify one of the shell')-2.811 F 2.811
-(sa)-.55 G(cti)-2.811 E .611 -.15(ve c)-.25 H .311
+(to terminate)3.033 F 1.311(before returning its status, instead of ret\
+urning when it changes status.)144 597.6 R 1.311(If there are no)6.311 F
+F0(id)3.811 E F1(ar)3.811 E(gu-)-.18 E(ments,)144 609.6 Q F2(wait)2.5 E
+F1 -.1(wa)2.5 G(its until all background processes ha).1 E .3 -.15(ve t)
+-.2 H(erminated.).15 E .311(If none of the)144 626.4 R F0(id)2.811 E F1
+2.811(ss)C .311(pecify one of the shell')-2.811 F 2.811(sa)-.55 G(cti)
+-2.811 E .611 -.15(ve c)-.25 H .311
(hild processes, the return status is 127.).15 F(If)5.311 E F2(wait)
-2.811 E F1 .153(is interrupted by a signal, an)144 194.4 R(y)-.15 E F0
+2.812 E F1 .153(is interrupted by a signal, an)144 638.4 R(y)-.15 E F0
(varname)2.653 E F1 .153
(will remain unset, and the return status will be greater than)2.653 F
-.21(128, as described under)144 206.4 R F2(SIGN)2.71 E(ALS)-.2 E F1(abo)
+.21(128, as described under)144 650.4 R F2(SIGN)2.71 E(ALS)-.2 E F1(abo)
2.71 E -.15(ve)-.15 G 5.21(.O).15 G .21
(therwise, the return status is the e)-5.21 F .21
-(xit status of the last)-.15 F F0(id)144 218.4 Q F1(.)A/F3 10.95
-/Times-Bold@0 SF(SHELL COMP)72 235.2 Q -1.04(AT)-.81 G(IBILITY MODE)1.04
-E F1 1.354(Bash-4.0 introduced the concept of a)108 247.2 R F0 1.355
-(shell compatibility le)3.855 F(vel)-.15 E F1 3.855(,s)C 1.355
-(peci\214ed as a set of options to the shopt)-3.855 F -.2(bu)108 259.2 S
-.622(iltin \().2 F F2(compat31)A F1(,)A F2(compat32)3.122 E F1(,)A F2
-(compat40)3.122 E F1(,)A F2(compat41)3.122 E F1 3.122(,a)C .622
-(nd so on\).)-3.122 F .621(There is only one current compatibility)5.621
-F(le)108 271.2 Q -.15(ve)-.25 G 3.057(l\212e).15 G .557
-(ach option is mutually e)-3.057 F(xclusi)-.15 E -.15(ve)-.25 G 5.557
+(xit status of the last)-.15 F F0(id)144 662.4 Q F1(.)A/F5 10.95
+/Times-Bold@0 SF(SHELL COMP)72 679.2 Q -1.04(AT)-.81 G(IBILITY MODE)1.04
+E F1 1.355(Bash-4.0 introduced the concept of a)108 691.2 R F0 1.355
+(shell compatibility le)3.855 F(vel)-.15 E F1 3.855(,s)C 1.354
+(peci\214ed as a set of options to the shopt)-3.855 F -.2(bu)108 703.2 S
+.621(iltin \().2 F F2(compat31)A F1(,)A F2(compat32)3.121 E F1(,)A F2
+(compat40)3.121 E F1(,)A F2(compat41)3.121 E F1 3.121(,a)C .621
+(nd so on\).)-3.121 F .622(There is only one current compatibility)5.622
+F(le)108 715.2 Q -.15(ve)-.25 G 3.058<6c8a>.15 G .557
+(each option is mutually e)-.001 F(xclusi)-.15 E -.15(ve)-.25 G 5.557
(.T).15 G .557(he compatibility le)-5.557 F -.15(ve)-.25 G 3.057(li).15
G 3.057(si)-3.057 G .557(ntended to allo)-3.057 F 3.057(wu)-.25 G .557
-(sers to select be-)-3.057 F(ha)108 283.2 Q 1.084(vior from pre)-.2 F
-1.084(vious v)-.25 F 1.083(ersions that is incompatible with ne)-.15 F
-1.083(wer v)-.25 F 1.083(ersions while the)-.15 F 3.583(ym)-.15 G 1.083
-(igrate scripts to use)-3.583 F(current features and beha)108 295.2 Q
-(vior)-.2 E 5(.I)-.55 G(t')-5 E 2.5(si)-.55 G
-(ntended to be a temporary solution.)-2.5 E 1.456
-(This section does not mention beha)108 312 R 1.457
-(vior that is standard for a particular v)-.2 F 1.457
-(ersion \(e.g., setting)-.15 F F2(compat32)3.957 E F1 .446
-(means that quoting the right hand side of the re)108 324 R(ge)-.15 E
-.445(xp matching operator quotes special re)-.15 F(ge)-.15 E .445
-(xp characters in)-.15 F(the w)108 336 Q(ord, which is def)-.1 E
+(sers to select be-)-3.057 F(ha)108 727.2 Q 1.083(vior from pre)-.2 F
+1.083(vious v)-.25 F 1.083(ersions that is incompatible with ne)-.15 F
+1.083(wer v)-.25 F 1.083(ersions while the)-.15 F 3.584(ym)-.15 G 1.084
+(igrate scripts to use)-3.584 F(GNU Bash 5.3)72 768 Q(2026 January 14)
+141.79 E(94)190.95 E 0 Cg EP
+%%Page: 95 95
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E(current features and beha)108 84 Q(vior)-.2 E 5(.I)
+-.55 G(t')-5 E 2.5(si)-.55 G(ntended to be a temporary solution.)-2.5 E
+1.457(This section does not mention beha)108 100.8 R 1.457
+(vior that is standard for a particular v)-.2 F 1.456
+(ersion \(e.g., setting)-.15 F/F2 10/Times-Bold@0 SF(compat32)3.956 E F1
+.445(means that quoting the right hand side of the re)108 112.8 R(ge)
+-.15 E .446(xp matching operator quotes special re)-.15 F(ge)-.15 E .446
+(xp characters in)-.15 F(the w)108 124.8 Q(ord, which is def)-.1 E
(ault beha)-.1 E(vior in bash-3.2 and subsequent v)-.2 E(ersions\).)-.15
-E .522(If a user enables, say)108 352.8 R(,)-.65 E F2(compat32)3.023 E
+E .523(If a user enables, say)108 141.6 R(,)-.65 E F2(compat32)3.023 E
F1 3.023(,i)C 3.023(tm)-3.023 G .523(ay af)-3.023 F .523(fect the beha)
--.25 F .523(vior of other compatibility le)-.2 F -.15(ve)-.25 G .523
-(ls up to and includ-).15 F .26(ing the current compatibility le)108
-364.8 R -.15(ve)-.25 G 2.76(l. The).15 F .259
-(idea is that each compatibility le)2.759 F -.15(ve)-.25 G 2.759(lc).15
-G .259(ontrols beha)-2.759 F .259(vior that changed)-.2 F 1.645
-(in that v)108 376.8 R 1.646(ersion of)-.15 F F2(bash)4.146 E F1 4.146
-(,b)C 1.646(ut that beha)-4.346 F 1.646(vior may ha)-.2 F 1.946 -.15
-(ve b)-.2 H 1.646(een present in earlier v).15 F 4.146(ersions. F)-.15 F
-1.646(or instance, the)-.15 F .761
-(change to use locale-based comparisons with the)108 388.8 R F2([[)3.261
-E F1 .76(command came in bash-4.1, and earlier v)3.261 F .76
-(ersions used)-.15 F 1.904(ASCII-based comparisons, so enabling)108
-400.8 R F2(compat32)4.404 E F1 1.905
-(will enable ASCII-based comparisons as well.)4.404 F(That)6.905 E .296
-(granularity may not be suf)108 412.8 R .296
+-.25 F .523(vior of other compatibility le)-.2 F -.15(ve)-.25 G .522
+(ls up to and includ-).15 F .259(ing the current compatibility le)108
+153.6 R -.15(ve)-.25 G 2.759(l. The).15 F .259
+(idea is that each compatibility le)2.759 F -.15(ve)-.25 G 2.76(lc).15 G
+.26(ontrols beha)-2.76 F .26(vior that changed)-.2 F 1.646(in that v)108
+165.6 R 1.646(ersion of)-.15 F F2(bash)4.146 E F1 4.146(,b)C 1.646
+(ut that beha)-4.346 F 1.646(vior may ha)-.2 F 1.946 -.15(ve b)-.2 H
+1.646(een present in earlier v).15 F 4.146(ersions. F)-.15 F 1.645
+(or instance, the)-.15 F .76
+(change to use locale-based comparisons with the)108 177.6 R F2([[)3.261
+E F1 .761(command came in bash-4.1, and earlier v)3.261 F .761
+(ersions used)-.15 F 1.905(ASCII-based comparisons, so enabling)108
+189.6 R F2(compat32)4.405 E F1 1.904
+(will enable ASCII-based comparisons as well.)4.405 F(That)6.904 E .295
+(granularity may not be suf)108 201.6 R .296
(\214cient for all uses, and as a result users should emplo)-.25 F 2.796
-(yc)-.1 G .295(ompatibility le)-2.796 F -.15(ve)-.25 G .295(ls care-).15
-F(fully)108 424.8 Q 5(.R)-.65 G(ead the documentation for a particular \
-feature to \214nd out the current beha)-5 E(vior)-.2 E(.)-.55 E .531
-(Bash-4.3 introduced a ne)108 441.6 R 3.031(ws)-.25 G .531(hell v)-3.031
-F(ariable:)-.25 E/F4 9/Times-Bold@0 SF -.27(BA)3.031 G(SH_COMP).27 E
--.855(AT)-.666 G/F5 9/Times-Roman@0 SF(.).855 E F1 .531(The v)5.031 F
-.531(alue assigned to this v)-.25 F .532(ariable \(a decimal)-.25 F -.15
-(ve)108 453.6 S .108(rsion number lik).15 F 2.608(e4)-.1 G .108
-(.2, or an inte)-2.608 F .108(ger corresponding to the)-.15 F F2(compat)
-2.607 E F0(NN)A F1 .107(option, lik)2.607 F 2.607(e4)-.1 G .107
-(2\) determines the com-)-2.607 F(patibility le)108 465.6 Q -.15(ve)-.25
-G(l.).15 E .733(Starting with bash-4.4,)108 482.4 R F2(bash)3.233 E F1
+(yc)-.1 G .296(ompatibility le)-2.796 F -.15(ve)-.25 G .296(ls care-).15
+F(fully)108 213.6 Q 5(.R)-.65 G(ead the documentation for a particular \
+feature to \214nd out the current beha)-5 E(vior)-.2 E(.)-.55 E .532
+(Bash-4.3 introduced a ne)108 230.4 R 3.032(ws)-.25 G .531(hell v)-3.032
+F(ariable:)-.25 E/F3 9/Times-Bold@0 SF -.27(BA)3.031 G(SH_COMP).27 E
+-.855(AT)-.666 G/F4 9/Times-Roman@0 SF(.).855 E F1 .531(The v)5.031 F
+.531(alue assigned to this v)-.25 F .531(ariable \(a decimal)-.25 F -.15
+(ve)108 242.4 S .107(rsion number lik).15 F 2.607(e4)-.1 G .107
+(.2, or an inte)-2.607 F .107(ger corresponding to the)-.15 F F2(compat)
+2.608 E F0(NN)A F1 .108(option, lik)2.608 F 2.608(e4)-.1 G .108
+(2\) determines the com-)-2.608 F(patibility le)108 254.4 Q -.15(ve)-.25
+G(l.).15 E .734(Starting with bash-4.4,)108 271.2 R F2(bash)3.233 E F1
(be)3.233 E -.05(ga)-.15 G 3.233(nd).05 G .733
(eprecating older compatibility le)-3.233 F -.15(ve)-.25 G 3.233(ls. Ev)
.15 F(entually)-.15 E 3.233(,t)-.65 G .733(he options will be)-3.233 F
-(remo)108 494.4 Q -.15(ve)-.15 G 2.5(di).15 G 2.5(nf)-2.5 G -.2(avo)-2.6
-G 2.5(ro).2 G(f)-2.5 E F4 -.27(BA)2.5 G(SH_COMP).27 E -.855(AT)-.666 G
-F5(.).855 E F1 1.441(Bash-5.0 w)108 511.2 R 1.441(as the \214nal v)-.1 F
-1.441(ersion for which there w)-.15 F 1.441(as an indi)-.1 F 1.44
-(vidual shopt option for the pre)-.25 F 1.44(vious v)-.25 F(ersion.)-.15
-E F4 -.27(BA)108 523.2 S(SH_COMP).27 E -.855(AT)-.666 G F1
+(remo)108 283.2 Q -.15(ve)-.15 G 2.5(di).15 G 2.5(nf)-2.5 G -.2(avo)-2.6
+G 2.5(ro).2 G(f)-2.5 E F3 -.27(BA)2.5 G(SH_COMP).27 E -.855(AT)-.666 G
+F4(.).855 E F1 1.44(Bash-5.0 w)108 300 R 1.44(as the \214nal v)-.1 F
+1.44(ersion for which there w)-.15 F 1.441(as an indi)-.1 F 1.441
+(vidual shopt option for the pre)-.25 F 1.441(vious v)-.25 F(ersion.)
+-.15 E F3 -.27(BA)108 312 S(SH_COMP).27 E -.855(AT)-.666 G F1
(is the only mechanism to control the compatibility le)3.105 E -.15(ve)
-.25 G 2.5(li).15 G 2.5(nv)-2.5 G(ersions ne)-2.65 E(wer than bash-5.0.)
--.25 E 1.613(The follo)108 540 R 1.613(wing table describes the beha)
+-.25 E 1.614(The follo)108 328.8 R 1.613(wing table describes the beha)
-.25 F 1.613(vior changes controlled by each compatibility le)-.2 F -.15
-(ve)-.25 G 4.113(ls).15 G 4.114(etting. The)-4.113 F F2(compat)108 552 Q
-F0(NN)A F1 1.186
-(tag is used as shorthand for setting the compatibility le)3.686 F -.15
+(ve)-.25 G 4.113(ls).15 G 4.113(etting. The)-4.113 F F2(compat)108 340.8
+Q F0(NN)A F1 1.186
+(tag is used as shorthand for setting the compatibility le)3.685 F -.15
(ve)-.25 G 3.686(lt).15 G(o)-3.686 E F0(NN)3.686 E F1 1.186
-(using one of the follo)3.686 F(wing)-.25 E 3.806(mechanisms. F)108 564
-R 1.306(or v)-.15 F 1.306
+(using one of the follo)3.686 F(wing)-.25 E 3.807(mechanisms. F)108
+352.8 R 1.307(or v)-.15 F 1.307
(ersions prior to bash-5.0, the compatibility le)-.15 F -.15(ve)-.25 G
-3.807(lm).15 G 1.307(ay be set using the corresponding)-3.807 F F2
-(compat)108 576 Q F0(NN)A F1 .502(shopt option.)3.002 F -.15(Fo)5.502 G
-3.002(rb).15 G .502(ash-4.3 and later v)-3.002 F .502(ersions, the)-.15
-F F4 -.27(BA)3.002 G(SH_COMP).27 E -.855(AT)-.666 G F1 -.25(va)3.607 G
-.502(riable is preferred, and it).25 F
-(is required for bash-5.1 and later v)108 588 Q(ersions.)-.15 E F2
-(compat31)108 604.8 Q F1<83>144 616.8 Q(Quoting the rhs of the)180 616.8
+3.806(lm).15 G 1.306(ay be set using the corresponding)-3.806 F F2
+(compat)108 364.8 Q F0(NN)A F1 .502(shopt option.)3.002 F -.15(Fo)5.502
+G 3.002(rb).15 G .502(ash-4.3 and later v)-3.002 F .502(ersions, the)
+-.15 F F3 -.27(BA)3.002 G(SH_COMP).27 E -.855(AT)-.666 G F1 -.25(va)
+3.607 G .502(riable is preferred, and it).25 F
+(is required for bash-5.1 and later v)108 376.8 Q(ersions.)-.15 E F2
+(compat31)108 393.6 Q F1<83>144 405.6 Q(Quoting the rhs of the)180 405.6
Q F2([[)2.5 E F1(command')2.5 E 2.5(sr)-.55 G -.15(eg)-2.5 G -.15(ex).15
G 2.5(pm).15 G(atching operator \(=\001\) has no special ef)-2.5 E
-(fect.)-.25 E F2(compat32)108 633.6 Q F1<83>144 645.6 Q(The)180 645.6 Q
-F2(<)3.25 E F1(and)3.25 E F2(>)3.25 E F1 .75(operators to the)3.25 F F2
-([[)3.251 E F1 .751
+(fect.)-.25 E F2(compat32)108 422.4 Q F1<83>144 434.4 Q(The)180 434.4 Q
+F2(<)3.251 E F1(and)3.251 E F2(>)3.251 E F1 .751(operators to the)3.251
+F F2([[)3.251 E F1 .75
(command do not consider the current locale when com-)3.251 F
-(paring strings; the)180 657.6 Q 2.5(yu)-.15 G(se ASCII ordering.)-2.5 E
-F2(compat40)108 674.4 Q F1<83>144 686.4 Q(The)180 686.4 Q F2(<)3.251 E
-F1(and)3.251 E F2(>)3.251 E F1 .751(operators to the)3.251 F F2([[)3.251
-E F1 .75(command do not consider the current locale when com-)3.251 F
-.495(paring strings; the)180 698.4 R 2.995(yu)-.15 G .495
-(se ASCII ordering.)-2.995 F F2(Bash)5.495 E F1 -.15(ve)2.995 G .496
-(rsions prior to bash-4.1 use ASCII col-).15 F 1.174(lation and)180
-710.4 R F0(str)4.014 E(cmp)-.37 E F1 1.173
-(\(3\); bash-4.1 and later use the current locale').19 F 3.673(sc)-.55 G
-1.173(ollation sequence and)-3.673 F F0(str)180.34 722.4 Q(coll)-.37 E
-F1(\(3\).).51 E(GNU Bash 5.3)72 768 Q(2025 April 7)149.285 E(93)198.445
-E 0 Cg EP
-%%Page: 94 94
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E/F2 10/Times-Bold@0 SF(compat41)108 84 Q F1<83>144
-96 Q 1.216(In posix mode,)180 96 R F2(time)3.716 E F1 1.216
-(may be follo)3.716 F 1.216
-(wed by options and still be recognized as a reserv)-.25 F(ed)-.15 E -.1
-(wo)180 108 S(rd \(this is).1 E/F3 9/Times-Roman@0 SF(POSIX)2.5 E F1
-(interpretation 267\).)2.25 E<83>144 120 Q(In)180 120 Q F0(posix)2.674 E
-F1 .174(mode, the parser requires that an e)2.674 F -.15(ve)-.25 G 2.674
-(nn).15 G .174(umber of single quotes occur in the)-2.674 F F0(wor)2.673
-E(d)-.37 E F1 .281(portion of a double-quoted parameter e)180 132 R .282
-(xpansion and treats them specially)-.15 F 2.782(,s)-.65 G 2.782(ot)
--2.782 G .282(hat charac-)-2.782 F
-(ters within the single quotes are considered quoted \(this is)180 144 Q
-F3(POSIX)2.5 E F1(interpretation 221\).)2.25 E F2(compat42)108 160.8 Q
-F1<83>144 172.8 Q .753(The replacement string in double-quoted pattern \
-substitution does not under)180 172.8 R .752(go quote re-)-.18 F(mo)180
-184.8 Q -.25(va)-.15 G(l, as it does in v).25 E(ersions after bash-4.2.)
--.15 E<83>144 196.8 Q .514
-(In posix mode, single quotes are considered special when e)180 196.8 R
-.514(xpanding the)-.15 F F0(wor)3.014 E(d)-.37 E F1 .514(portion of)
-3.014 F 3.39(ad)180 208.8 S .89(ouble-quoted parameter e)-3.39 F .89
-(xpansion and can be used to quote a closing brace or other)-.15 F .214
-(special character \(this is part of)180 220.8 R F3(POSIX)2.714 E F1
-.215(interpretation 221\); in later v)2.465 F .215
+(paring strings; the)180 446.4 Q 2.5(yu)-.15 G(se ASCII ordering.)-2.5 E
+F2(compat40)108 463.2 Q F1<83>144 475.2 Q(The)180 475.2 Q F2(<)3.25 E F1
+(and)3.25 E F2(>)3.25 E F1 .75(operators to the)3.25 F F2([[)3.251 E F1
+.751(command do not consider the current locale when com-)3.251 F .496
+(paring strings; the)180 487.2 R 2.996(yu)-.15 G .496
+(se ASCII ordering.)-2.996 F F2(Bash)5.495 E F1 -.15(ve)2.995 G .495
+(rsions prior to bash-4.1 use ASCII col-).15 F 1.173(lation and)180
+499.2 R F0(str)4.013 E(cmp)-.37 E F1 1.173
+(\(3\); bash-4.1 and later use the current locale').19 F 3.674(sc)-.55 G
+1.174(ollation sequence and)-3.674 F F0(str)180.34 511.2 Q(coll)-.37 E
+F1(\(3\).).51 E F2(compat41)108 528 Q F1<83>144 540 Q 1.216
+(In posix mode,)180 540 R F2(time)3.716 E F1 1.216(may be follo)3.716 F
+1.216(wed by options and still be recognized as a reserv)-.25 F(ed)-.15
+E -.1(wo)180 552 S(rd \(this is).1 E F4(POSIX)2.5 E F1
+(interpretation 267\).)2.25 E<83>144 564 Q(In)180 564 Q F0(posix)2.673 E
+F1 .174(mode, the parser requires that an e)2.673 F -.15(ve)-.25 G 2.674
+(nn).15 G .174(umber of single quotes occur in the)-2.674 F F0(wor)2.674
+E(d)-.37 E F1 .282(portion of a double-quoted parameter e)180 576 R .282
+(xpansion and treats them specially)-.15 F 2.781(,s)-.65 G 2.781(ot)
+-2.781 G .281(hat charac-)-2.781 F
+(ters within the single quotes are considered quoted \(this is)180 588 Q
+F4(POSIX)2.5 E F1(interpretation 221\).)2.25 E F2(compat42)108 604.8 Q
+F1<83>144 616.8 Q .753(The replacement string in double-quoted pattern \
+substitution does not under)180 616.8 R .753(go quote re-)-.18 F(mo)180
+628.8 Q -.25(va)-.15 G(l, as it does in v).25 E(ersions after bash-4.2.)
+-.15 E<83>144 640.8 Q .514
+(In posix mode, single quotes are considered special when e)180 640.8 R
+.514(xpanding the)-.15 F F0(wor)3.014 E(d)-.37 E F1 .513(portion of)
+3.013 F 3.39(ad)180 652.8 S .89(ouble-quoted parameter e)-3.39 F .89
+(xpansion and can be used to quote a closing brace or other)-.15 F .215
+(special character \(this is part of)180 664.8 R F4(POSIX)2.715 E F1
+.214(interpretation 221\); in later v)2.465 F .214
(ersions, single quotes)-.15 F(are not special within double-quoted w)
-180 232.8 Q(ord e)-.1 E(xpansions.)-.15 E F2(compat43)108 249.6 Q F1<83>
-144 261.6 Q -.8(Wo)180 261.6 S .375(rd e).8 F .374
+180 676.8 Q(ord e)-.1 E(xpansions.)-.15 E F2(compat43)108 693.6 Q F1<83>
+144 705.6 Q -.8(Wo)180 705.6 S .374(rd e).8 F .374
(xpansion errors are considered non-f)-.15 F .374
-(atal errors that cause the current command to)-.1 F -.1(fa)180 273.6 S
+(atal errors that cause the current command to)-.1 F -.1(fa)180 717.6 S
.605(il, e).1 F -.15(ve)-.25 G 3.105(ni).15 G 3.105(np)-3.105 G .605
(osix mode \(the def)-3.105 F .605(ault beha)-.1 F .605(vior is to mak)
-.2 F 3.105(et)-.1 G .605(hem f)-3.105 F .605
-(atal errors that cause the)-.1 F(shell to e)180 285.6 Q(xit\).)-.15 E
-<83>144 297.6 Q .196(When e)180 297.6 R -.15(xe)-.15 G .196
-(cuting a shell function, the loop state \(while/until/etc.\)).15 F .195
-(is not reset, so)5.196 F F2(br)2.695 E(eak)-.18 E F1(or)2.695 E F2
-(continue)180 309.6 Q F1 1.167
+(atal errors that cause the)-.1 F(shell to e)180 729.6 Q(xit\).)-.15 E
+(GNU Bash 5.3)72 768 Q(2026 January 14)141.79 E(95)190.95 E 0 Cg EP
+%%Page: 96 96
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E<83>144 84 Q .195(When e)180 84 R -.15(xe)-.15 G
+.196(cuting a shell function, the loop state \(while/until/etc.\)).15 F
+.196(is not reset, so)5.196 F/F2 10/Times-Bold@0 SF(br)2.696 E(eak)-.18
+E F1(or)2.696 E F2(continue)180 96 Q F1 1.167
(in that function will break or continue loops in the calling conte)
-3.666 F 3.667(xt. Bash-4.4)-.15 F(and later reset the loop state to pre)
-180 321.6 Q -.15(ve)-.25 G(nt this.).15 E F2(compat44)108 338.4 Q F1<83>
-144 350.4 Q .481(The shell sets up the v)180 350.4 R .481(alues used by)
--.25 F/F4 9/Times-Bold@0 SF -.27(BA)2.981 G(SH_ARGV).27 E F1(and)2.731 E
-F4 -.27(BA)2.981 G(SH_ARGC).27 E F1 .481(so the)2.731 F 2.981(yc)-.15 G
-.481(an e)-2.981 F(xpand)-.15 E(to the shell')180 362.4 Q 2.5(sp)-.55 G
+3.667 F 3.666(xt. Bash-4.4)-.15 F(and later reset the loop state to pre)
+180 108 Q -.15(ve)-.25 G(nt this.).15 E F2(compat44)108 124.8 Q F1<83>
+144 136.8 Q .481(The shell sets up the v)180 136.8 R .481(alues used by)
+-.25 F/F3 9/Times-Bold@0 SF -.27(BA)2.981 G(SH_ARGV).27 E F1(and)2.731 E
+F3 -.27(BA)2.981 G(SH_ARGC).27 E F1 .481(so the)2.731 F 2.981(yc)-.15 G
+.481(an e)-2.981 F(xpand)-.15 E(to the shell')180 148.8 Q 2.5(sp)-.55 G
(ositional parameters e)-2.5 E -.15(ve)-.25 G 2.5(ni).15 G 2.5(fe)-2.5 G
-(xtended deb)-2.65 E(ugging mode is not enabled.)-.2 E<83>144 374.4 Q
-3.854(As)180 374.4 S 1.354(ubshell inherits loops from its parent conte)
--3.854 F 1.354(xt, so)-.15 F F2(br)3.854 E(eak)-.18 E F1(or)3.854 E F2
-(continue)3.855 E F1 1.355(will cause the)3.855 F(subshell to e)180
-386.4 Q 2.5(xit. Bash-5.0)-.15 F(and later reset the loop state to pre)
-2.5 E -.15(ve)-.25 G(nt the e).15 E(xit)-.15 E<83>144 398.4 Q -1.11(Va)
-180 398.4 S .495(riable assignments preceding b)1.11 F .495(uiltins lik)
--.2 F(e)-.1 E F2(export)2.995 E F1(and)2.995 E F2 -.18(re)2.994 G
-(adonly).18 E F1 .494(that set attrib)2.994 F .494(utes con-)-.2 F .119
-(tinue to af)180 410.4 R .119(fect v)-.25 F .119
-(ariables with the same name in the calling en)-.25 F .12(vironment e)
--.4 F -.15(ve)-.25 G 2.62(ni).15 G 2.62(ft)-2.62 G .12(he shell is)-2.62
-F(not in posix mode.)180 422.4 Q F2(compat50)108 439.2 Q F1<83>144 451.2
-Q 1.209(Bash-5.1 changed the w)180 451.2 R(ay)-.1 E F4($RANDOM)3.709 E
-F1 1.209(is generated to introduce slightly more random-)3.459 F 3.371
-(ness. If)180 463.2 R .871(the shell compatibility le)3.371 F -.15(ve)
--.25 G 3.371(li).15 G 3.371(ss)-3.371 G .871(et to 50 or lo)-3.371 F
-(wer)-.25 E 3.371(,i)-.4 G 3.371(tr)-3.371 G -2.15 -.25(ev e)-3.371 H
-.872(rts to the method from).25 F .733(bash-5.0 and pre)180 475.2 R .733
-(vious v)-.25 F .732
+(xtended deb)-2.65 E(ugging mode is not enabled.)-.2 E<83>144 160.8 Q
+3.855(As)180 160.8 S 1.355(ubshell inherits loops from its parent conte)
+-3.855 F 1.354(xt, so)-.15 F F2(br)3.854 E(eak)-.18 E F1(or)3.854 E F2
+(continue)3.854 E F1 1.354(will cause the)3.854 F(subshell to e)180
+172.8 Q 2.5(xit. Bash-5.0)-.15 F(and later reset the loop state to pre)
+2.5 E -.15(ve)-.25 G(nt the e).15 E(xit)-.15 E<83>144 184.8 Q -1.11(Va)
+180 184.8 S .494(riable assignments preceding b)1.11 F .494(uiltins lik)
+-.2 F(e)-.1 E F2(export)2.994 E F1(and)2.995 E F2 -.18(re)2.995 G
+(adonly).18 E F1 .495(that set attrib)2.995 F .495(utes con-)-.2 F .12
+(tinue to af)180 196.8 R .12(fect v)-.25 F .119
+(ariables with the same name in the calling en)-.25 F .119(vironment e)
+-.4 F -.15(ve)-.25 G 2.619(ni).15 G 2.619(ft)-2.619 G .119(he shell is)
+-2.619 F(not in posix mode.)180 208.8 Q F2(compat50)108 225.6 Q F1<83>
+144 237.6 Q 1.209(Bash-5.1 changed the w)180 237.6 R(ay)-.1 E F3
+($RANDOM)3.709 E F1 1.209
+(is generated to introduce slightly more random-)3.459 F 3.372(ness. If)
+180 249.6 R .871(the shell compatibility le)3.372 F -.15(ve)-.25 G 3.371
+(li).15 G 3.371(ss)-3.371 G .871(et to 50 or lo)-3.371 F(wer)-.25 E
+3.371(,i)-.4 G 3.371(tr)-3.371 G -2.15 -.25(ev e)-3.371 H .871
+(rts to the method from).25 F .732(bash-5.0 and pre)180 261.6 R .732
+(vious v)-.25 F .733
(ersions, so seeding the random number generator by assigning a)-.15 F
--.25(va)180 487.2 S(lue to).25 E F4(RANDOM)2.5 E F1
-(will produce the same sequence as in bash-5.0.)2.25 E<83>144 499.2 Q
-.695(If the command hash table is empty)180 499.2 R 3.196(,b)-.65 G .696
-(ash v)-3.196 F .696(ersions prior to bash-5.1 printed an informa-)-.15
-F 1.321(tional message to that ef)180 511.2 R 1.321(fect, e)-.25 F -.15
+-.25(va)180 273.6 S(lue to).25 E F3(RANDOM)2.5 E F1
+(will produce the same sequence as in bash-5.0.)2.25 E<83>144 285.6 Q
+.696(If the command hash table is empty)180 285.6 R 3.196(,b)-.65 G .696
+(ash v)-3.196 F .695(ersions prior to bash-5.1 printed an informa-)-.15
+F 1.32(tional message to that ef)180 297.6 R 1.321(fect, e)-.25 F -.15
(ve)-.25 G 3.821(nw).15 G 1.321
(hen producing output that can be reused as input.)-3.821 F
-(Bash-5.1 suppresses that message when the)180 523.2 Q F2<ad6c>2.5 E F1
-(option is supplied.)2.5 E F2(compat51)108 540 Q F1<83>144 552 Q(The)180
-552 Q F2(unset)2.954 E F1 -.2(bu)2.954 G .454
-(iltin treats attempts to unset array subscripts).2 F F2(@)2.955 E F1
-(and)2.955 E F2(*)2.955 E F1(dif)2.955 E .455(ferently depending)-.25 F
-(on whether the array is inde)180 564 Q -.15(xe)-.15 G 2.5(do).15 G 2.5
-(ra)-2.5 G(ssociati)-2.5 E -.15(ve)-.25 G 2.5(,a).15 G(nd dif)-2.5 E
-(ferently than in pre)-.25 E(vious v)-.25 E(ersions.)-.15 E<83>144 576 Q
-.235(Arithmetic commands \()180 576 R F2(\(\()2.734 E F1 1.666(...)C F2
-(\)\))-1.666 E F1 2.734(\)a)2.734 G .234(nd the e)-2.734 F .234
-(xpressions in an arithmetic for statement can be)-.15 F -.15(ex)180 588
-S(panded more than once.).15 E<83>144 600 Q .25(Expressions used as ar)
-180 600 R .251(guments to arithmetic operators in the)-.18 F F2([[)2.751
-E F1 .251(conditional command can)2.751 F(be e)180 612 Q
-(xpanded more than once.)-.15 E<83>144 624 Q(The e)180 624 Q
+(Bash-5.1 suppresses that message when the)180 309.6 Q F2<ad6c>2.5 E F1
+(option is supplied.)2.5 E F2(compat51)108 326.4 Q F1<83>144 338.4 Q
+(The)180 338.4 Q F2(unset)2.955 E F1 -.2(bu)2.955 G .455
+(iltin treats attempts to unset array subscripts).2 F F2(@)2.954 E F1
+(and)2.954 E F2(*)2.954 E F1(dif)2.954 E .454(ferently depending)-.25 F
+(on whether the array is inde)180 350.4 Q -.15(xe)-.15 G 2.5(do).15 G
+2.5(ra)-2.5 G(ssociati)-2.5 E -.15(ve)-.25 G 2.5(,a).15 G(nd dif)-2.5 E
+(ferently than in pre)-.25 E(vious v)-.25 E(ersions.)-.15 E<83>144 362.4
+Q .234(Arithmetic commands \()180 362.4 R F2(\(\()2.734 E F1 1.666(...)C
+F2(\)\))-1.666 E F1 2.734(\)a)2.734 G .234(nd the e)-2.734 F .234
+(xpressions in an arithmetic for statement can be)-.15 F -.15(ex)180
+374.4 S(panded more than once.).15 E<83>144 386.4 Q .251
+(Expressions used as ar)180 386.4 R .251
+(guments to arithmetic operators in the)-.18 F F2([[)2.751 E F1 .25
+(conditional command can)2.751 F(be e)180 398.4 Q
+(xpanded more than once.)-.15 E<83>144 410.4 Q(The e)180 410.4 Q
(xpressions in substring parameter brace e)-.15 E(xpansion can be e)-.15
-E(xpanded more than once.)-.15 E<83>144 636 Q(The e)180 636 Q
+E(xpanded more than once.)-.15 E<83>144 422.4 Q(The e)180 422.4 Q
(xpressions in the)-.15 E F2($\(\()2.5 E F1 1.666(...)C F2(\)\))-1.666 E
F1 -.1(wo)2.5 G(rd e).1 E(xpansion can be e)-.15 E
-(xpanded more than once.)-.15 E<83>144 648 Q(Arithmetic e)180 648 Q
+(xpanded more than once.)-.15 E<83>144 434.4 Q(Arithmetic e)180 434.4 Q
(xpressions used as inde)-.15 E -.15(xe)-.15 G 2.5(da).15 G
(rray subscripts can be e)-2.5 E(xpanded more than once.)-.15 E<83>144
-660 Q F2 .606(test \255v)180 660 R F1 3.106(,w)C .606(hen gi)-3.106 F
--.15(ve)-.25 G 3.106(na).15 G 3.106(na)-3.106 G -.18(rg)-3.106 G .605
+446.4 Q F2 .605(test \255v)180 446.4 R F1 3.105(,w)C .605(hen gi)-3.105
+F -.15(ve)-.25 G 3.105(na).15 G 3.105(na)-3.105 G -.18(rg)-3.105 G .605
(ument of).18 F F2(A[@])3.105 E F1 3.105(,w)C(here)-3.105 E F2(A)3.105 E
-F1 .605(is an e)3.105 F .605(xisting associati)-.15 F .905 -.15(ve a)
--.25 H(rray).15 E 3.105(,w)-.65 G(ill)-3.105 E .714
-(return true if the array has an)180 672 R 3.214(ys)-.15 G .714
+F1 .606(is an e)3.105 F .606(xisting associati)-.15 F .906 -.15(ve a)
+-.25 H(rray).15 E 3.106(,w)-.65 G(ill)-3.106 E .714
+(return true if the array has an)180 458.4 R 3.214(ys)-.15 G .714
(et elements.)-3.214 F .714(Bash-5.2 will look for and report on a k)
-5.714 F -.15(ey)-.1 G(named)180 684 Q F2(@)2.5 E F1(.)A<83>144 696 Q
-1.363(The ${)180 696 R F0(par)A(ameter)-.15 E F2([:]=)A F0(value)A F1
-3.863(}w)C 1.362(ord e)-3.963 F 1.362(xpansion will return)-.15 F F0
-(value)3.862 E F1 3.862(,b)C 1.362(efore an)-3.862 F 3.862(yv)-.15 G
-(ariable-spe-)-4.112 E .623(ci\214c transformations ha)180 708 R .923
+5.714 F -.15(ey)-.1 G(named)180 470.4 Q F2(@)2.5 E F1(.)A<83>144 482.4 Q
+1.362(The ${)180 482.4 R F0(par)A(ameter)-.15 E F2([:]=)A F0(value)A F1
+3.862(}w)C 1.362(ord e)-3.962 F 1.362(xpansion will return)-.15 F F0
+(value)3.862 E F1 3.862(,b)C 1.363(efore an)-3.862 F 3.863(yv)-.15 G
+(ariable-spe-)-4.113 E .623(ci\214c transformations ha)180 494.4 R .923
-.15(ve b)-.2 H .623(een performed \(e.g., con).15 F -.15(ve)-.4 G .623
(rting to lo).15 F 3.123(wercase\). Bash-5.2)-.25 F(will)3.123 E
-(return the \214nal v)180 720 Q(alue assigned to the v)-.25 E(ariable.)
--.25 E(GNU Bash 5.3)72 768 Q(2025 April 7)149.285 E(94)198.445 E 0 Cg EP
-%%Page: 95 95
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
-138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E<83>144 84 Q -.15(Pa)180 84 S .946
-(rsing command substitutions will beha).15 F 1.246 -.15(ve a)-.2 H 3.445
-(si).15 G 3.445(fe)-3.445 G .945(xtended globbing \(see the description)
--3.595 F .338(of the)180 96 R/F2 10/Times-Bold@0 SF(shopt)2.838 E F1 -.2
-(bu)2.838 G .338(iltin abo).2 F -.15(ve)-.15 G 2.838(\)i).15 G 2.838(se)
--2.838 G .339(nabled, so that parsing a command substitution containing)
--2.838 F .023(an e)180 108 R .023(xtglob pattern \(say)-.15 F 2.523(,a)
--.65 G 2.523(sp)-2.523 G .022(art of a shell function\) will not f)
--2.523 F 2.522(ail. This)-.1 F .022(assumes the intent is)2.522 F .039
-(to enable e)180 120 R .039(xtglob before the command is e)-.15 F -.15
-(xe)-.15 G .039(cuted and w).15 F .039(ord e)-.1 F .04
-(xpansions are performed.)-.15 F(It)5.04 E .4(will f)180 132 R .4
-(ail at w)-.1 F .4(ord e)-.1 F .4(xpansion time if e)-.15 F .4
-(xtglob hasn')-.15 F 2.9(tb)-.18 G .4
-(een enabled by the time the command)-2.9 F(is e)180 144 Q -.15(xe)-.15
-G(cuted.).15 E F2(compat52)108 160.8 Q F1<83>144 172.8 Q(The)180 172.8 Q
-F2(test)3.167 E F1 -.2(bu)3.167 G .667
+(return the \214nal v)180 506.4 Q(alue assigned to the v)-.25 E
+(ariable.)-.25 E<83>144 518.4 Q -.15(Pa)180 518.4 S .945
+(rsing command substitutions will beha).15 F 1.245 -.15(ve a)-.2 H 3.445
+(si).15 G 3.446(fe)-3.445 G .946(xtended globbing \(see the description)
+-3.596 F .339(of the)180 530.4 R F2(shopt)2.839 E F1 -.2(bu)2.839 G .339
+(iltin abo).2 F -.15(ve)-.15 G 2.839(\)i).15 G 2.839(se)-2.839 G .338
+(nabled, so that parsing a command substitution containing)-2.839 F .022
+(an e)180 542.4 R .022(xtglob pattern \(say)-.15 F 2.522(,a)-.65 G 2.522
+(sp)-2.522 G .022(art of a shell function\) will not f)-2.522 F 2.523
+(ail. This)-.1 F .023(assumes the intent is)2.523 F .04(to enable e)180
+554.4 R .039(xtglob before the command is e)-.15 F -.15(xe)-.15 G .039
+(cuted and w).15 F .039(ord e)-.1 F .039(xpansions are performed.)-.15 F
+(It)5.039 E .4(will f)180 566.4 R .4(ail at w)-.1 F .4(ord e)-.1 F .4
+(xpansion time if e)-.15 F .4(xtglob hasn')-.15 F 2.9(tb)-.18 G .4
+(een enabled by the time the command)-2.9 F(is e)180 578.4 Q -.15(xe)
+-.15 G(cuted.).15 E F2(compat52)108 595.2 Q F1<83>144 607.2 Q(The)180
+607.2 Q F2(test)3.168 E F1 -.2(bu)3.168 G .667
(iltin uses its historical algorithm to parse parenthesized sube).2 F
-.668(xpressions when)-.15 F(gi)180 184.8 Q -.15(ve)-.25 G 2.5<6e8c>.15 G
+.667(xpressions when)-.15 F(gi)180 619.2 Q -.15(ve)-.25 G 2.5<6e8c>.15 G
.3 -.15(ve o)-2.5 H 2.5(rm).15 G(ore ar)-2.5 E(guments.)-.18 E<83>144
-196.8 Q .484(If the)180 196.8 R F2<ad70>2.984 E F1(or)2.983 E F2<ad50>
+631.2 Q .483(If the)180 631.2 R F2<ad70>2.983 E F1(or)2.983 E F2<ad50>
2.983 E F1 .483(option is supplied to the)2.983 F F2(bind)2.983 E F1 -.2
-(bu)2.983 G(iltin,).2 E F2(bind)2.983 E F1 .483(treats an)2.983 F 2.983
-(ya)-.15 G -.18(rg)-2.983 G .483(uments remain-).18 F .339
+(bu)2.983 G(iltin,).2 E F2(bind)2.983 E F1 .483(treats an)2.983 F 2.984
+(ya)-.15 G -.18(rg)-2.984 G .484(uments remain-).18 F .339
(ing after option processing as bindable command names, and displays an)
-180 208.8 R 2.84(yk)-.15 G .64 -.15(ey s)-2.94 H(equences).15 E
-(bound to those commands, instead of treating the ar)180 220.8 Q
-(guments as k)-.18 E .3 -.15(ey s)-.1 H(equences to bind.).15 E/F3 10.95
-/Times-Bold@0 SF(RESTRICTED SHELL)72 237.6 Q F1(If)108 249.6 Q F2(bash)
-3.572 E F1 1.071(is started with the name)3.571 F F2(rbash)3.571 E F1
-3.571(,o)C 3.571(rt)-3.571 G(he)-3.571 E F2<ad72>3.571 E F1 1.071
+180 643.2 R 2.839(yk)-.15 G .639 -.15(ey s)-2.939 H(equences).15 E
+(bound to those commands, instead of treating the ar)180 655.2 Q
+(guments as k)-.18 E .3 -.15(ey s)-.1 H(equences to bind.).15 E/F4 10.95
+/Times-Bold@0 SF(RESTRICTED SHELL)72 672 Q F1(If)108 684 Q F2(bash)3.571
+E F1 1.071(is started with the name)3.571 F F2(rbash)3.571 E F1 3.571
+(,o)C 3.571(rt)-3.571 G(he)-3.571 E F2<ad72>3.571 E F1 1.071
(option is supplied at in)3.571 F -.2(vo)-.4 G 1.071
-(cation, the shell becomes).2 F F0 -.37(re)3.571 G(-).37 E(stricted)108
-261.6 Q F1 5.445(.A)C .445(restricted shell is used to set up an en)-2.5
-F .445(vironment more controlled than the standard shell.)-.4 F .445
-(It be-)5.445 F(ha)108 273.6 Q -.15(ve)-.2 G 2.5(si).15 G(dentically to)
+(cation, the shell becomes).2 F F0 -.37(re)3.572 G(-).37 E(stricted)108
+696 Q F1 5.445(.A)C .445(restricted shell is used to set up an en)-2.5 F
+.445(vironment more controlled than the standard shell.)-.4 F .445
+(It be-)5.445 F(ha)108 708 Q -.15(ve)-.2 G 2.5(si).15 G(dentically to)
-2.5 E F2(bash)2.5 E F1(with the e)2.5 E(xception that the follo)-.15 E
-(wing are disallo)-.25 E(wed or not performed:)-.25 E<83>108 290.4 Q
-(Changing directories with)144 290.4 Q F2(cd)2.5 E F1(.)A<83>108 307.2 Q
-(Setting or unsetting the v)144 307.2 Q(alues of)-.25 E/F4 9
-/Times-Bold@0 SF(SHELL)2.5 E/F5 9/Times-Roman@0 SF(,)A F4 -.666(PA)2.25
-G(TH)-.189 E F5(,)A F4(HISTFILE)2.25 E F5(,)A F4(ENV)2.25 E F5(,)A F1
-(or)2.25 E F4 -.27(BA)2.5 G(SH_ENV).27 E F5(.)A F1<83>108 324 Q
-(Specifying command names containing)144 324 Q F2(/)2.5 E F1(.)A<83>108
-340.8 Q(Specifying a \214lename containing a)144 340.8 Q F2(/)2.5 E F1
-(as an ar)2.5 E(gument to the)-.18 E F2(.)2.5 E F1 -.2(bu)5 G
-(iltin command.).2 E<83>108 357.6 Q(Using the)144 357.6 Q F2<ad70>2.5 E
+(wing are disallo)-.25 E(wed or not performed:)-.25 E(GNU Bash 5.3)72
+768 Q(2026 January 14)141.79 E(96)190.95 E 0 Cg EP
+%%Page: 97 97
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
+138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
+.25 E F1(\(1\)).95 E<83>108 84 Q(Changing directories with)144 84 Q/F2
+10/Times-Bold@0 SF(cd)2.5 E F1(.)A<83>108 100.8 Q
+(Setting or unsetting the v)144 100.8 Q(alues of)-.25 E/F3 9
+/Times-Bold@0 SF(SHELL)2.5 E/F4 9/Times-Roman@0 SF(,)A F3 -.666(PA)2.25
+G(TH)-.189 E F4(,)A F3(HISTFILE)2.25 E F4(,)A F3(ENV)2.25 E F4(,)A F1
+(or)2.25 E F3 -.27(BA)2.5 G(SH_ENV).27 E F4(.)A F1<83>108 117.6 Q
+(Specifying command names containing)144 117.6 Q F2(/)2.5 E F1(.)A<83>
+108 134.4 Q(Specifying a \214lename containing a)144 134.4 Q F2(/)2.5 E
+F1(as an ar)2.5 E(gument to the)-.18 E F2(.)2.5 E F1 -.2(bu)5 G
+(iltin command.).2 E<83>108 151.2 Q(Using the)144 151.2 Q F2<ad70>2.5 E
F1(option to the)2.5 E F2(.)2.5 E F1 -.2(bu)5 G
-(iltin command to specify a search path.).2 E<83>108 374.4 Q
-(Specifying a \214lename containing a slash as an ar)144 374.4 Q
+(iltin command to specify a search path.).2 E<83>108 168 Q
+(Specifying a \214lename containing a slash as an ar)144 168 Q
(gument to the)-.18 E F2(history)2.5 E F1 -.2(bu)2.5 G(iltin command.).2
-E<83>108 391.2 Q .351
-(Specifying a \214lename containing a slash as an ar)144 391.2 R .351
+E<83>108 184.8 Q .351
+(Specifying a \214lename containing a slash as an ar)144 184.8 R .351
(gument to the)-.18 F F2<ad70>2.851 E F1 .351(option to the)2.851 F F2
-(hash)2.851 E F1 -.2(bu)2.851 G .351(iltin com-).2 F(mand.)144 403.2 Q
-<83>108 420 Q(Importing function de\214nitions from the shell en)144 420
-Q(vironment at startup.)-.4 E<83>108 436.8 Q -.15(Pa)144 436.8 S
-(rsing the v).15 E(alues of)-.25 E F4 -.27(BA)2.5 G(SHOPTS).27 E F1(and)
-2.25 E F4(SHELLOPTS)2.5 E F1(from the shell en)2.25 E
-(vironment at startup.)-.4 E<83>108 453.6 Q(Redirecting output using th\
-e >, >|, <>, >&, &>, and >> redirection operators.)144 453.6 Q<83>108
-470.4 Q(Using the)144 470.4 Q F2(exec)2.5 E F1 -.2(bu)2.5 G
+(hash)2.852 E F1 -.2(bu)2.852 G .352(iltin com-).2 F(mand.)144 196.8 Q
+<83>108 213.6 Q(Importing function de\214nitions from the shell en)144
+213.6 Q(vironment at startup.)-.4 E<83>108 230.4 Q -.15(Pa)144 230.4 S
+(rsing the v).15 E(alues of)-.25 E F3 -.27(BA)2.5 G(SHOPTS).27 E F1(and)
+2.25 E F3(SHELLOPTS)2.5 E F1(from the shell en)2.25 E
+(vironment at startup.)-.4 E<83>108 247.2 Q(Redirecting output using th\
+e >, >|, <>, >&, &>, and >> redirection operators.)144 247.2 Q<83>108
+264 Q(Using the)144 264 Q F2(exec)2.5 E F1 -.2(bu)2.5 G
(iltin command to replace the shell with another command.).2 E<83>108
-487.2 Q(Adding or deleting b)144 487.2 Q(uiltin commands with the)-.2 E
+280.8 Q(Adding or deleting b)144 280.8 Q(uiltin commands with the)-.2 E
F2<ad66>2.5 E F1(and)2.5 E F2<ad64>2.5 E F1(options to the)2.5 E F2
-(enable)2.5 E F1 -.2(bu)2.5 G(iltin command.).2 E<83>108 504 Q
-(Using the)144 504 Q F2(enable)2.5 E F1 -.2(bu)2.5 G
+(enable)2.5 E F1 -.2(bu)2.5 G(iltin command.).2 E<83>108 297.6 Q
+(Using the)144 297.6 Q F2(enable)2.5 E F1 -.2(bu)2.5 G
(iltin command to enable disabled shell b).2 E(uiltins.)-.2 E<83>108
-520.8 Q(Specifying the)144 520.8 Q F2<ad70>2.5 E F1(option to the)2.5 E
-F2(command)2.5 E F1 -.2(bu)2.5 G(iltin command.).2 E<83>108 537.6 Q -.45
-(Tu)144 537.6 S(rning of).45 E 2.5(fr)-.25 G(estricted mode with)-2.5 E
+314.4 Q(Specifying the)144 314.4 Q F2<ad70>2.5 E F1(option to the)2.5 E
+F2(command)2.5 E F1 -.2(bu)2.5 G(iltin command.).2 E<83>108 331.2 Q -.45
+(Tu)144 331.2 S(rning of).45 E 2.5(fr)-.25 G(estricted mode with)-2.5 E
F2(set +r)2.5 E F1(or)2.5 E F2(shopt \255u r)2.5 E(estricted_shell)-.18
-E F1(.)A(These restrictions are enforced after an)108 554.4 Q 2.5(ys)
--.15 G(tartup \214les are read.)-2.5 E 1.566
-(When a command that is found to be a shell script is e)108 571.2 R -.15
-(xe)-.15 G 1.567(cuted \(see).15 F F4 1.567(COMMAND EXECUTION)4.067 F F1
-(abo)3.817 E -.15(ve)-.15 G(\),).15 E F2(rbash)108 583.2 Q F1(turns of)
+E F1(.)A(These restrictions are enforced after an)108 348 Q 2.5(ys)-.15
+G(tartup \214les are read.)-2.5 E 1.566
+(When a command that is found to be a shell script is e)108 364.8 R -.15
+(xe)-.15 G 1.566(cuted \(see).15 F F3 1.566(COMMAND EXECUTION)4.066 F F1
+(abo)3.816 E -.15(ve)-.15 G(\),).15 E F2(rbash)108 376.8 Q F1(turns of)
2.5 E 2.5(fa)-.25 G .3 -.15(ny r)-2.5 H(estrictions in the shell spa).15
-E(wned to e)-.15 E -.15(xe)-.15 G(cute the script.).15 E F3(SEE ALSO)72
-600 Q F0(Bash Refer)108 612 Q(ence Manual)-.37 E F1 2.5(,B)C(rian F)-2.5
-E(ox and Chet Rame)-.15 E(y)-.15 E F0(The Gnu Readline Libr)108 624 Q
-(ary)-.15 E F1 2.5(,B)C(rian F)-2.5 E(ox and Chet Rame)-.15 E(y)-.15 E
-F0(The Gnu History Libr)108 636 Q(ary)-.15 E F1 2.5(,B)C(rian F)-2.5 E
-(ox and Chet Rame)-.15 E(y)-.15 E F0 -.8(Po)108 648 S(rtable Oper).8 E
-(ating System Interface \(POSIX\) P)-.15 E(art 2: Shell and Utilities)
--.8 E F1 2.5(,I)C(EEE \212)-2.5 E(http://pubs.opengroup.or)144 660 Q
-(g/onlinepubs/9799919799/)-.18 E(http://tiswww)108 672 Q
-(.case.edu/\001chet/bash/POSIX \212 a description of posix mode)-.65 E
-F0(sh)108 684 Q F1(\(1\),)A F0(ksh)2.5 E F1(\(1\),)A F0(csh)2.5 E F1
-(\(1\))A F0(emacs)108 696 Q F1(\(1\),)A F0(vi)2.5 E F1(\(1\))A
-(GNU Bash 5.3)72 768 Q(2025 April 7)149.285 E(95)198.445 E 0 Cg EP
-%%Page: 96 96
+E(wned to e)-.15 E -.15(xe)-.15 G(cute the script.).15 E/F5 10.95
+/Times-Bold@0 SF(SEE ALSO)72 393.6 Q F0(Bash Refer)108 405.6 Q
+(ence Manual)-.37 E F1 2.5(,B)C(rian F)-2.5 E(ox and Chet Rame)-.15 E(y)
+-.15 E F0(The GNU Readline Libr)108 417.6 Q(ary)-.15 E F1 2.5(,B)C
+(rian F)-2.5 E(ox and Chet Rame)-.15 E(y)-.15 E F0(The GNU History Libr)
+108 429.6 Q(ary)-.15 E F1 2.5(,B)C(rian F)-2.5 E(ox and Chet Rame)-.15 E
+(y)-.15 E(POSIX.1-2024, The IEEE and The Open Group)108 441.6 Q/F6 10
+/Symbol SF<e1>144 453.6 Q F1(https://pubs.opengroup.or)A
+(g/onlinepubs/9799919799/)-.18 E F6<f1>A F1 2.5(ad)108 465.6 S
+(escription of posix mode)-2.5 E F6<e1>144 477.6 Q F1(http://tiswww)A
+(.case.edu/\001chet/bash/POSIX)-.65 E F6<f1>A F0(sh)108 489.6 Q F1
+(\(1\),)A F0(ksh)2.5 E F1(\(1\),)A F0(csh)2.5 E F1(\(1\))A F0(emacs)108
+501.6 Q F1(\(1\),)A F0(vi)2.5 E F1(\(1\))A F0 -.37(re)108 513.6 S
+(adline).37 E F1(\(3\))A F5(FILES)72 530.4 Q F0(/bin/bash)109.666 542.4
+Q F1(The)144 554.4 Q F2(bash)2.5 E F1 -.15(exe)2.5 G(cutable).15 E F0
+(/etc/pr)109.666 566.4 Q(o\214le)-.45 E F1
+(The systemwide initialization \214le, e)144 578.4 Q -.15(xe)-.15 G
+(cuted for login shells).15 E F0(\001/.bash_pr)109.666 590.4 Q(o\214le)
+-.45 E F1(The personal initialization \214le, e)144 602.4 Q -.15(xe)-.15
+G(cuted for login shells).15 E F0(\001/.bashr)109.666 614.4 Q(c)-.37 E
+F1(The indi)144 626.4 Q(vidual per)-.25 E(-interacti)-.2 E -.15(ve)-.25
+G(-shell startup \214le).15 E F0(\001/.bash_lo)109.666 638.4 Q(gout)-.1
+E F1(The indi)144 650.4 Q(vidual login shell cleanup \214le, e)-.25 E
+-.15(xe)-.15 G(cuted when a login shell e).15 E(xits)-.15 E F0
+(\001/.bash_history)109.666 662.4 Q F1(The def)144 674.4 Q(ault v)-.1 E
+(alue of)-.25 E F2(HISTFILE)2.5 E F1 2.5(,t)C
+(he \214le in which bash sa)-2.5 E -.15(ve)-.2 G 2.5(st).15 G
+(he command history)-2.5 E F0(\001/.inputr)109.666 686.4 Q(c)-.37 E F1
+(Indi)144 698.4 Q(vidual)-.25 E F0 -.37(re)2.5 G(adline).37 E F1
+(initialization \214le)2.5 E(GNU Bash 5.3)72 768 Q(2026 January 14)
+141.79 E(97)190.95 E 0 Cg EP
+%%Page: 98 98
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Italic@0 SF -.25(BA)72 48 S(SH).25 E/F1 10/Times-Roman@0 SF
138.32(\(1\) General).95 F(Commands Manual)2.5 E F0 -.25(BA)140.82 G(SH)
-.25 E F1(\(1\)).95 E F0 -.37(re)108 84 S(adline).37 E F1(\(3\))A/F2
-10.95/Times-Bold@0 SF(FILES)72 100.8 Q F0(/bin/bash)109.666 112.8 Q F1
-(The)144 124.8 Q/F3 10/Times-Bold@0 SF(bash)2.5 E F1 -.15(exe)2.5 G
-(cutable).15 E F0(/etc/pr)109.666 136.8 Q(o\214le)-.45 E F1
-(The systemwide initialization \214le, e)144 148.8 Q -.15(xe)-.15 G
-(cuted for login shells).15 E F0(\001/.bash_pr)109.666 160.8 Q(o\214le)
--.45 E F1(The personal initialization \214le, e)144 172.8 Q -.15(xe)-.15
-G(cuted for login shells).15 E F0(\001/.bashr)109.666 184.8 Q(c)-.37 E
-F1(The indi)144 196.8 Q(vidual per)-.25 E(-interacti)-.2 E -.15(ve)-.25
-G(-shell startup \214le).15 E F0(\001/.bash_lo)109.666 208.8 Q(gout)-.1
-E F1(The indi)144 220.8 Q(vidual login shell cleanup \214le, e)-.25 E
--.15(xe)-.15 G(cuted when a login shell e).15 E(xits)-.15 E F0
-(\001/.bash_history)109.666 232.8 Q F1(The def)144 244.8 Q(ault v)-.1 E
-(alue of)-.25 E F3(HISTFILE)2.5 E F1 2.5(,t)C
-(he \214le in which bash sa)-2.5 E -.15(ve)-.2 G 2.5(st).15 G
-(he command history)-2.5 E F0(\001/.inputr)109.666 256.8 Q(c)-.37 E F1
-(Indi)144 268.8 Q(vidual)-.25 E F0 -.37(re)2.5 G(adline).37 E F1
-(initialization \214le)2.5 E F2 -.548(AU)72 285.6 S(THORS).548 E F1
-(Brian F)108 297.6 Q(ox, Free Softw)-.15 E(are F)-.1 E(oundation)-.15 E
-(bfox@gnu.or)108 309.6 Q(g)-.18 E(Chet Rame)108 326.4 Q 1.3 -.65(y, C)
--.15 H(ase W).65 E(estern Reserv)-.8 E 2.5(eU)-.15 G(ni)-2.5 E -.15(ve)
--.25 G(rsity).15 E(chet.rame)108 338.4 Q(y@case.edu)-.15 E F2 -.11(BU)72
-355.2 S 2.738(GR).11 G(EPOR)-2.738 E(TS)-.438 E F1 .568
-(If you \214nd a b)108 367.2 R .568(ug in)-.2 F F3(bash)3.068 E F1 3.068
-(,y)C .568(ou should report it.)-3.068 F .568
-(But \214rst, you should mak)5.568 F 3.068(es)-.1 G .568
-(ure that it really is a b)-3.068 F .567(ug, and)-.2 F 5.625
-(that it appears in the latest v)108 379.2 R 5.625(ersion of)-.15 F F3
-(bash)8.125 E F1 10.625(.T)C 5.625(he latest v)-10.625 F 5.626
-(ersion is al)-.15 F -.1(wa)-.1 G 5.626(ys a).1 F -.25(va)-.2 G 5.626
-(ilable from).25 F F0(ftp://ftp.gnu.or)108 391.2 Q(g/pub/gnu/bash/)-.37
-E F1(and)2.5 E F0(http://git.savannah.gnu.or)2.5 E
-(g/cgit/bash.git/snapshot/bash-master)-.37 E(.tar)-1.11 E(.gz)-1.11 E F1
-(.)A .411(Once you ha)108 408 R .711 -.15(ve d)-.2 H .411
-(etermined that a b).15 F .411(ug actually e)-.2 F .411(xists, use the)
--.15 F F0(bashb)3.18 E(ug)-.2 E F1 .41(command to submit a b)3.13 F .41
-(ug report.)-.2 F(If)5.41 E .021(you ha)108 420 R .321 -.15(ve a \214)
--.2 H .021(x, you are encouraged to mail that as well!).15 F -1.1(Yo)
-5.021 G 2.521(um)1.1 G .021
-(ay send suggestions and \231philosophical\232 b)-2.521 F(ug)-.2 E
-(reports to)108 432 Q F0 -.2(bu)2.5 G(g-bash@gnu.or).2 E(g)-.37 E F1
-(or post them to the Usenet ne)2.5 E(wsgroup)-.25 E F3(gnu.bash.b)2.5 E
-(ug)-.2 E F1(.)A(ALL b)108 448.8 Q(ug reports should include:)-.2 E
-(The v)108 465.6 Q(ersion number of)-.15 E F3(bash)2.5 E F1(The hardw)
-108 477.6 Q(are and operating system)-.1 E(The compiler used to compile)
-108 489.6 Q 2.5(Ad)108 501.6 S(escription of the b)-2.5 E(ug beha)-.2 E
-(vior)-.2 E 2.5(As)108 513.6 S(hort script or \231recipe\232 which e)
--2.5 E -.15(xe)-.15 G(rcises the b).15 E(ug)-.2 E F0(bashb)108.27 530.4
-Q(ug)-.2 E F1
+.25 E F1(\(1\)).95 E/F2 10.95/Times-Bold@0 SF -.548(AU)72 84 S(THORS)
+.548 E F1(Brian F)108 96 Q(ox, Free Softw)-.15 E(are F)-.1 E(oundation)
+-.15 E/F3 10/Symbol SF<e1>2.5 E F1(bfox@gnu.or)A(g)-.18 E F3<f1>A F1
+(Chet Rame)108 112.8 Q 1.3 -.65(y, C)-.15 H(ase W).65 E(estern Reserv)
+-.8 E 2.5(eU)-.15 G(ni)-2.5 E -.15(ve)-.25 G(rsity).15 E F3<e1>2.5 E F1
+(chet.rame)A(y@case.edu)-.15 E F3<f1>A F2 -.11(BU)72 129.6 S 2.738(GR)
+.11 G(EPOR)-2.738 E(TS)-.438 E F1 .567(If you \214nd a b)108 141.6 R
+.568(ug in)-.2 F/F4 10/Times-Bold@0 SF(bash)3.068 E F1 3.068(,y)C .568
+(ou should report it.)-3.068 F .568(But \214rst, you should mak)5.568 F
+3.068(es)-.1 G .568(ure that it really is a b)-3.068 F .568(ug, and)-.2
+F 5.626(that it appears in the latest v)108 153.6 R 5.625(ersion of)-.15
+F F4(bash)8.125 E F1 10.625(.T)C 5.625(he latest v)-10.625 F 5.625
+(ersion is al)-.15 F -.1(wa)-.1 G 5.625(ys a).1 F -.25(va)-.2 G 5.625
+(ilable from).25 F F3<e1>108 165.6 Q F1(ftp://ftp.gnu.or)A
+(g/pub/gnu/bash/)-.18 E F3<f1>A F1(and)9.76 E F3<e1>9.76 E F1
+(http://git.sa)A -.25(va)-.2 G(nnah.gnu.or).25 E
+(g/cgit/bash.git/snapshot/bash\255master.tar)-.18 E(.)-.55 E(gz)108
+177.6 Q F3<f1>A F1(.)A .411(Once you ha)108 194.4 R .711 -.15(ve d)-.2 H
+.411(etermined that a b).15 F .411(ug actually e)-.2 F .411
+(xists, use the)-.15 F F0(bashb)3.18 E(ug)-.2 E F1 .41
+(command to submit a b)3.13 F .41(ug report.)-.2 F(If)5.41 E .021
+(you ha)108 206.4 R .321 -.15(ve a \214)-.2 H .021
+(x, you are encouraged to mail that as well!).15 F -1.1(Yo)5.021 G 2.521
+(um)1.1 G .021(ay send suggestions and \231philosophical\232 b)-2.521 F
+(ug)-.2 E(reports, as well as comments and b)108 218.4 Q
+(ug reports concerning this manual page, to to)-.2 E F3<e1>2.5 E F1 -.2
+(bu)C(g\255bash@gnu.or).2 E(g)-.18 E F3<f1>A F1(.)A F0(All)109.01 235.2
+Q F1 -.2(bu)3.01 G 2.5(gr).2 G(eports should include:)-2.5 E<83>108 252
+Q(the v)118 252 Q(ersion number of)-.15 E F4(bash)2.5 E F1
+(\(\231echo $B)2.5 E(ASH_VERSION\232\),)-.35 E<83>108 264 Q
+(the host platform and operating system \(\231uname \255a\232\),)118 264
+Q<83>108 276 Q(either)118 276 Q(\(a\))128 288 Q .239
+(if you or an administrator b)148 288 R .239(uilt and installed)-.2 F F4
+(bash)2.739 E F1 .239(from source, the name and v)2.739 F .238
+(ersion of the com-)-.15 F(piler used to b)148 300 Q
+(uild it, as reported by)-.2 E F4(bash)2.5 E F1 1.1 -.55('s \231)D
+(con\214gure\232 script; or).55 E(\(b\))128 312 Q .432
+(if your site uses a distrib)148 312 R(utor')-.2 E(s)-.55 E F4(bash)
+2.932 E F1 .432(package, the v)2.932 F .433
+(ersion of that package \(for e)-.15 F .433(xample, \231dpkg \255i)-.15
+F(bash\232 or \231rpm \255qi bash\232\),)148 324 Q<83>108 336 Q 2.5(ad)
+118 336 S(escription of the beha)-2.5 E(vior)-.2 E F4(bash)2.5 E F1 -.15
+(ex)2.5 G(hibited,).15 E<83>108 348 Q 2.5(ad)118 348 S
+(escription of the beha)-2.5 E(vior you e)-.2 E(xpected from)-.15 E F4
+(bash)2.5 E F1 2.5(,a)C(nd)-2.5 E<83>108 360 Q 2.5(as)118 360 S
+(hort shell script or \231recipe\232 e)-2.5 E -.15(xe)-.15 G
+(rcising the une).15 E(xpected beha)-.15 E(vior)-.2 E(.)-.55 E F0(bashb)
+108.27 376.8 Q(ug)-.2 E F1
(inserts the \214rst three items automatically into the template it pro)
-2.72 E(vides for \214ling a b)-.15 E(ug report.)-.2 E(Comments and b)108
-547.2 Q(ug reports concerning this manual page should be directed to)-.2
-E F0 -.15(ch)2.5 G(et.r).15 E(ame)-.15 E(y@case)-.3 E(.edu)-.15 E F1(.)
-.25 E F2 -.11(BU)72 564 S(GS).11 E F1(It')108 576 Q 2.5(st)-.55 G
-(oo big and too slo)-2.5 E -.65(w.)-.25 G 1.869
-(There are some subtle dif)108 592.8 R 1.869(ferences between)-.25 F F3
-(bash)4.369 E F1 1.869(and traditional v)4.369 F 1.869(ersions of)-.15 F
-F3(sh)4.368 E F1 4.368(,m)C 1.868(ostly because of the)-4.368 F/F4 9
-/Times-Roman@0 SF(POSIX)108 604.8 Q F1(speci\214cation.)2.25 E
-(Aliases are confusing in some uses.)108 621.6 Q(Shell b)108 638.4 Q
+2.72 E(vides for \214ling a b)-.15 E(ug report.)-.2 E F2 -.11(BU)72
+393.6 S(GS).11 E F1(It')108 405.6 Q 2.5(st)-.55 G(oo big and too slo)
+-2.5 E -.65(w.)-.25 G .761(There are some subtle dif)108 422.4 R .761
+(ferences between)-.25 F F4(bash)3.261 E F1 .761(and historical v)3.261
+F .761(ersions of)-.15 F F4(sh)3.26 E F1 3.26(,d)C .76(ue mostly to)
+-3.26 F F4(bash)3.26 E F1 1.86 -.55('s i)D(nde-).55 E
+(pendent implementation and the e)108 434.4 Q -.2(vo)-.25 G
+(lution of the).2 E/F5 9/Times-Roman@0 SF(POSIX)2.5 E F1
+(speci\214cation.)2.25 E(Aliases are confusing in some uses.)108 451.2 Q
+(Shell b)108 468 Q
(uiltin commands and functions are not stoppable/restartable.)-.2 E .146
(Compound commands and command lists of the form \231a ; b ; c\232 are \
-not handled gracefully when combined)108 655.2 R .5
-(with process suspension.)108 667.2 R .5
+not handled gracefully when combined)108 484.8 R .5
+(with process suspension.)108 496.8 R .5
(When a process is stopped, the shell immediately e)5.5 F -.15(xe)-.15 G
.5(cutes the ne).15 F .5(xt command in)-.15 F .941
-(the list or breaks out of an)108 679.2 R 3.441(ye)-.15 G .941
+(the list or breaks out of an)108 508.8 R 3.441(ye)-.15 G .941
(xisting loops.)-3.591 F .941(It suf)5.941 F .941
(\214ces to enclose the command in parentheses to force it)-.25 F .824(\
into a subshell, which may be stopped as a unit, or to start the comman\
-d in the background and immedi-)108 691.2 R
-(ately bring it into the fore)108 703.2 Q(ground.)-.15 E(Array v)108 720
-Q(ariables may not \(yet\) be e)-.25 E(xported.)-.15 E(GNU Bash 5.3)72
-768 Q(2025 April 7)149.285 E(96)198.445 E 0 Cg EP
+d in the background and immedi-)108 520.8 R
+(ately bring it into the fore)108 532.8 Q(ground.)-.15 E(Array v)108
+549.6 Q(ariables may not \(yet\) be e)-.25 E(xported.)-.15 E
+(GNU Bash 5.3)72 768 Q(2026 January 14)141.79 E(98)190.95 E 0 Cg EP
%%Trailer
end
%%EOF
-This is pdfTeX, Version 3.141592653-2.6-1.40.27 (TeX Live 2025/MacPorts 2025.74524_1) (preloaded format=pdfetex 2025.9.16) 29 JAN 2026 13:25
+This is pdfTeX, Version 3.141592653-2.6-1.40.27 (TeX Live 2025/MacPorts 2025.74524_1) (preloaded format=etex 2025.9.16) 2 FEB 2026 15:27
entering extended mode
restricted \write18 enabled.
file:line:error style messages enabled.
%&-line parsing enabled.
-**\input /usr/local/src/bash/bash-20260123/doc/bashref.texi \input /usr/local/s
-rc/bash/bash-20260123/doc/bashref.texi
-(/usr/local/src/bash/bash-20260123/doc/bashref.texi
-(/usr/local/src/bash/bash-20260123/doc/texinfo.tex
+**\nonstopmode \input /usr/local/src/bash/bash-20260130/doc/bashref.texi \input
+ /usr/local/src/bash/bash-20260130/doc/bashref.texi
+(/usr/local/src/bash/bash-20260130/doc/bashref.texi
+(/usr/local/src/bash/bash-20260130/doc/texinfo.tex
Loading texinfo [version 2015-11-22.14]:
\outerhsize=\dimen16
\outervsize=\dimen17
texinfo.tex: doing @include of version.texi
-(/usr/local/src/bash/bash-20260123/doc/version.texi) [1{/opt/local/var/db/texmf
-/fonts/map/pdftex/updmap/pdftex.map}] [2]
-(/usr/local/build/bash/bash-20260123/doc/bashref.toc [-1] [-2] [-3]) [-4]
-(/usr/local/build/bash/bash-20260123/doc/bashref.toc)
-(/usr/local/build/bash/bash-20260123/doc/bashref.toc) Chapter 1
+(/usr/local/src/bash/bash-20260130/doc/version.texi) [1] [2]
+(/usr/local/build/bash/bash-20260130/doc/bashref.toc [-1] [-2] [-3]) [-4]
+Chapter 1
\openout0 = `bashref.toc'.
-
-(/usr/local/build/bash/bash-20260123/doc/bashref.aux)
+ (/usr/local/build/bash/bash-20260130/doc/bashref.aux)
\openout1 = `bashref.aux'.
- [1] Chapter 2 [2]
+ [1] Chapter 2
+[2]
@cpindfile=@write2
\openout2 = `bashref.cp'.
-
-[3] Chapter 3 [4] [5] [6] [7]
+ [3] Chapter 3 [4] [5] [6] [7]
@vrindfile=@write3
\openout3 = `bashref.vr'.
@rwindfile=@write4
\openout4 = `bashref.rw'.
- [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20{/opt/local/share/texmf-t
-exlive/fonts/enc/dvips/cm-super/cm-super-t1.enc}] [21] [22] [23] [24]
-[25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39]
-[40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] Chapter 4 [51]
+ [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23]
+[24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38]
+[39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] Chapter 4 [51]
@btindfile=@write5
\openout5 = `bashref.bt'.
- [52]
-[53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67]
-[68] [69] [70] [71] [72] [73]
+
+[52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66]
+[67] [68] [69] [70] [71] [72] [73]
Overfull \hbox (38.26585pt too wide) in paragraph at lines 5964--5964
[]@texttt set [-abefhkmnptuvxBCEHPT] [-o @textttsl option-name@texttt ] [--] [
-] [@textttsl ar-gu-ment []@texttt ][]
texinfo.tex: doing @include of rluser.texi
-(/usr/local/src/bash/bash-20260123/lib/readline/doc/rluser.texi Chapter 8
+(/usr/local/src/bash/bash-20260130/lib/readline/doc/rluser.texi Chapter 8
[129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140]
Underfull \hbox (badness 7540) in paragraph at lines 969--975
[]@textrm In the ex-am-ple above, @textttsl C-u[] @textrm is bound to the func
texinfo.tex: doing @include of hsuser.texi
-(/usr/local/src/bash/bash-20260123/lib/readline/doc/hsuser.texi Chapter 9
+(/usr/local/src/bash/bash-20260130/lib/readline/doc/hsuser.texi Chapter 9
[167] [168] [169] [170] [171] [172] [173]) Chapter 10 [174] [175] [176]
[177] [178]
Underfull \hbox (badness 10000) in paragraph at lines 10793--10802
texinfo.tex: doing @include of fdl.texi
-(/usr/local/src/bash/bash-20260123/doc/fdl.texi [192] [193] [194] [195]
+(/usr/local/src/bash/bash-20260130/doc/fdl.texi [192] [193] [194] [195]
[196] [197] [198]) Appendix D [199] [200] [201] [202] [203] [204] [205]
[206] [207] [208] )
Here is how much of TeX's memory you used:
- 4116 strings out of 495820
- 47662 string characters out of 6170887
- 145125 words of memory out of 5000000
- 5053 multiletter control sequences out of 15000+600000
+ 3531 strings out of 495830
+ 40273 string characters out of 6171293
+ 88550 words of memory out of 5000000
+ 4884 multiletter control sequences out of 15000+600000
34315 words of font info for 116 fonts, out of 8000000 for 9000
701 hyphenation exceptions out of 8191
- 16i,6n,16p,389b,983s stack positions out of 10000i,1000n,20000p,200000b,200000s
-</opt/local/share/texmf-texlive/fonts/type1/public/amsfonts/
-cm/cmbx12.pfb></opt/local/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cm
-csc10.pfb></opt/local/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmmi10
-.pfb></opt/local/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmmi12.pfb>
-</opt/local/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmmi9.pfb></opt/
-local/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmr10.pfb></opt/local/
-share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmr9.pfb></opt/local/share/t
-exmf-texlive/fonts/type1/public/amsfonts/cm/cmsl10.pfb></opt/local/share/texmf-
-texlive/fonts/type1/public/amsfonts/cm/cmsltt10.pfb></opt/local/share/texmf-tex
-live/fonts/type1/public/amsfonts/cm/cmsy10.pfb></opt/local/share/texmf-texlive/
-fonts/type1/public/amsfonts/cm/cmti10.pfb></opt/local/share/texmf-texlive/fonts
-/type1/public/amsfonts/cm/cmtt10.pfb></opt/local/share/texmf-texlive/fonts/type
-1/public/amsfonts/cm/cmtt12.pfb></opt/local/share/texmf-texlive/fonts/type1/pub
-lic/amsfonts/cm/cmtt9.pfb></opt/local/share/texmf-texlive/fonts/type1/public/cm
--super/sfrm1095.pfb></opt/local/share/texmf-texlive/fonts/type1/public/cm-super
-/sfrm1440.pfb>
-Output written on bashref.pdf (214 pages, 813195 bytes).
-PDF statistics:
- 2948 PDF objects out of 2984 (max. 8388607)
- 2686 compressed objects within 27 object streams
- 342 named destinations out of 1000 (max. 500000)
- 1157 words of extra memory for PDF output out of 10000 (max. 10000000)
+ 16i,6n,16p,402b,942s stack positions out of 10000i,1000n,20000p,200000b,200000s
+Output written on bashref.dvi (214 pages, 903700 bytes).
%!PS-Adobe-2.0
-%%Creator: dvips(k) 2024.1 (TeX Live 2024) Copyright 2024 Radical Eye Software
+%%Creator: dvips(k) 2025.1 (TeX Live 2025) Copyright 2025 Radical Eye Software
%%Title: bashref.dvi
-%%CreationDate: Fri May 30 12:52:48 2025
+%%CreationDate: Mon Feb 2 20:27:20 2026
%%Pages: 214
%%PageOrder: Ascend
%%BoundingBox: 0 0 612 792
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips -D 600 -t letter -o bashref.ps bashref.dvi
%DVIPSParameters: dpi=600
-%DVIPSSource: TeX output 2025.05.30:0852
+%DVIPSSource: TeX output 2026.02.02:1527
%%BeginProcSet: tex.pro 0 0
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
dup 51 /three put
dup 58 /colon put
dup 65 /A put
+dup 66 /B put
dup 67 /C put
dup 68 /D put
dup 69 /E put
650DDF28FC1AF21FA124C16EE8ABB98904F03E7F49E54348B1AF2211A1768768
D62E35EA2EF7F2756B58168F9FFB5785DAEAB324C90FDF6207E670DF277D6AB5
F0924B26BCF52CDA2980680320314F41244B73DA6367C434B5DCDB96B6F0F454
-89BE772F9A8B4DF72D83923C87D8DE5F9A34F4A221A0813168DA2140B74E415E
-E0D7776B86AFCA5C6A24927FEE493B0DEA861804ADEFDF7823EDE59940E2810C
-6AB44DFD9C2C79C5C4855B514C64A33EFC4411006D6E7F10A3A6869D5FD6DA0F
-CA39AF458C583D600D18C9AC9C8325A02139C24C634144862E1A07448BE8BA4F
-09030D39AA74BA631AF7370E3FC2F33FB9F19052D5418504BD590495996A3A13
-45AAE77F8A657FF1A41B3E2D9166743E3DAB549E89BBBF14FDBBD6BBAF24089A
-1878AF0758A56AB894D1232CBF429242B5A64EFFCA48D249E3FCCDAF57E7D159
-5C1502BDA4F4FB6611AD80E2F770C9937138B5BC0A55FB2211ABFEDB3E8592A8
-301DDA6ED93ECD673CD5A1AA3FBDBB62772313AD1C3A2B73C05D7202905F10A7
-6D295A07FCE97831B68BCAB081F0DF2BA97D425F409EFBAE2831CDEB299E353D
-BBDD7CE0041FB2DBF57E6F66EAEB0DA1A6AEBF50E78779440410764AB03A7100
-F491E92782B89A665B288A03846796394367C05A213E072A108BDD9D1D1763DE
-15CB12CA7984981AE8C05019D3AF855E37023E14012C2BA0DB768E37C3128EE0
-9C0DFE3D3B3BC42634AFAF4FCECE835689C49690222C5E2136E4843AA9E428EE
-990B46FBFF889F75D756D5D82D5D6772857997D4BA8258744C6665573E661A79
-73EAAA2BCDFA1A76AC5925A93CF052C766ED8B37806ABA24F37E50401799E2DD
-9DD1738F09EF3F2BC7029AE73B55991D89523B09FAE70671D22D0509CEEA68FE
-B5C14A412A3FB6F70A7BA5090CEB3923A17527AA7BE9B49105340C6A561DF3A5
-AAB7B43DD95461D1611D6D8BDA96F5578662BCEA3054CDA86033EECC7347B564
-BB034F230FDF4337703C156865E1EF00CA127816572A1DC5F341895256155CF4
-83848B1CC0C3B4B5DD2007A0FAE66FF9DB4DED11F1FD718CF6D2F186DE00C338
-DA4A895A31539C698ADBED03E308E2309BA867EE59AED836DDF6A19B96345E86
-BA48CC96CEBA702644952EAEABC4E9048961518C5C6DF396E7089AC7493B847D
-D4BAB5647316AD31A97D54E9EB5D292704FF8F43ED9F61C0BE5A7EC3E7C2B833
-73FFA3C78139D494B0ADA8B03414A2A5339BE9DC9AFADBF801CDAB652D68BB70
-85FF2F586F8202D534893B9B79F7AF2B27D46672C23E38903454FC2632CB3368
-D87397E13270EC8F7BB76074C39C26323042FBA8922455247EB620A4B42458F4
-D770E3E5A08DEA1FD34A862A4D8F8FFA5E31534CFDB5143E7D547E3A47655E05
-E2AE1C613F4D0195EABE455BE63FE2AFE2D6B514FAD44C86F3938511DC9EB590
-530E055F904A71C4FF15CACE3F59403B19344DB4809B558AA5F5640DB3E682AA
-307DDA3A46DFBA6A7AF82110519F8D51FB66C4F8D9F4A18BB9EEA39D6C637F0E
-765DC076740D8A210C91797AD069DF95DE0260F446C3A20A1C6434686DD99150
-6FBE2ED314B24B65B28C607AE3EA478BCFD62FF2FF5EDE5BE4BE0000E939B71F
-333AA8981A43024A509531E075E74594492A7121798BE5E5C4EA29F2744DC70B
-20EDB37953452FCE47CC55C9DF7F65DDAFFDF95D89C21F6879B6D292922D4D32
-241554B5EAF2DB8231E2655E9E3397E4A167B48BD93BC16C91D6B6C4B1696685
-ECCA2B198F1BCA5B38F97DABDF27C3A8323A581BD40FD2DAC5C9C06A229DA326
-ADC343604C50285CC6E45AAEB1054AB0973A5BD73573CC389A6606C3BAC40B9A
-E5F4A5685E04F91CC25B5C41A6231FA9EF82B3EE1FED2F1BB6D79096E2A775DA
-CCD42E4080EA17947BD80667E6564E47DD90C62CF0C5311C68AB72AD15E5E46C
-A2D38A95530827F5C5BF7C24ADA00F28CF981CF0CC80B473A9351EE28CD6841A
-84BA8CDFA125371ECECCECD50DFABF6EE5B5371A7E943C51AD3E8EDF018DE8EA
-B50D8A530B6C7ED32C07222B4D469155B85FC06401AA264A2160D058359F0718
-0B4AA76823BF3E55332876BAC15FB8A00E023B88222494C1814084719E931BE5
-AD8094E3BB1372543444E13C3B286FC981799FF55CF24842C9CBC772C17CB0A2
-67D927930E29A050F682EE612F51157B33671A195558D8CFD8DBC5480AA59372
-BC9C85BE5270EF8EBA5AC71B1B47386268786BA4A4737D11677BE0E6FEAC378B
-94F4A215C3D8E0EF94638F3C8C95CC59FE19665017756C82FFCCEC6F628846A3
-B88BDEE7D41840313891A2A53F9747AC96BDD710260010C3E6C882210860BDFB
-FD81FFA8A8D2657ED7C69759ED4415F5CBCDCDA031425E083C215FAE849758D3
-8C55E03A58B2646C16C49E29B612AD5D9610EB02C7415B2211F883CDCD498BEC
-F24F473F374A4DCC56050299361A8FA9BAE265F894118D3B702C360EBF6BD9F7
-A1CF799BE7F05284AB25328880B1E34D204D62F5415DBB13C272987BDD6C6D5D
-DDAEDB62BB850A78B386B3E7D343620188FA7C6FB8843C91FD4B1DAFCAE89624
-E298853990A9636B92FCDD7DCFEF07F933667B6109968C1C18555DD9D785D55A
-D2B809BDFA936E80B10E1B07A013FDF2FC7E262A7C450317936CB2E13EFD216F
-8D4BF87DF0B973061F6B735856A6D43724928D14433B258B92AE531CEA5C1B3C
-2681CBAD39D59E2A97A0C4120096F0216A6200CB6E57BB36D283CD959760A11F
-546AF65B699E169CF5632CF0EDAC06DAEB255A56964BB82BEEA15D684ED60DE6
-198BE3F79A54F295A7A38E37D2E5E876B1AEEECBE0C01A4FC14BF18FD39D850C
-03725D43A83D4C87A9260967CA95D331A690960A046148530802CC7F02069900
-5F6C0D107D67F0BA9C7D506911C52494B880A0F87CD3A82FA2CF0113EB5940D5
-C7C980133B004CEB5753524562AA8BC3BF5CED71C36CF359065C6A363E24797E
-ECE14969EA2A9EB684861B1654917B77D2EBBF45BACEA966318752E66D7C31D3
-2BDC9B9DB24D9160E0FC52473CEF1AFF38D203BB351FF39296F88E93AD356774
-F38D00769198C604519F447561D7354DA24280EAE19F849657529BE5D3A6153A
-B62363931E5D7A92C5DB026BE5B713C83BDFE8C7587AA7180AFFA0E75DDE9A4E
-2E1AA290EB31C4E7E46A23CA191CE6D95C00F521DBAD593B94769D5D6BE3D168
-73B196B82109797CF96BC04928EB8170C3D38221E42D7C7A3E1AC0102841F678
-9152D56BD088E8D99928347A578D363C665873FCEF06219A4AF1D0B8C257D872
-C0DFE89AE70F31943046657E8B897D1517A4EE80970645EF16E0B2E8AE4E4EF9
-55BF36260357C4149FA567A76229F2060E32B0466140B24BB3961C260C49AE68
-277851D73C8BBE0BF77A78704EB963D4344A850003E28A375E2A69565F8C3FAB
-2E09BFF66AB7CFD1D552BD7E45078487EB1A7E594C369ED6348F55F933368C03
-610727B32150B0EB50DCD5AEC9BEE951D1D8A9E29F65AA65505FD3EC373DD7BD
-2FB9208F7684EFB4F1D1469B777A20E2BE49653F72CA4CFA82BA6E2C1D6F1BF7
-7DD55370D844534620759DB5BDC1892B11317780A8F9A96F09C3E62085B0DE33
-D504B75034B7B2E9A5DDFEBFF6EFFC839A3576F255542777DAC9D4F1ADCEC04F
-9E778979707862AE686D3BE9AF114407D4A2BB038696086BDA5FECAC853ED562
-D41B0C9AFDB3ACC0643CAB65EEFC00DD23F0BC62F1B37D63FA11227A00CD9A62
-D53767F3858768C5269227417709BA5B16262950EF0B044C70DDAB2B2E23E414
-273433D416961C2D70D295FD067632B927DD5C696F0F06FB797294C67BB49FB2
-082A983123221EB7B996D01F2DBC29BF64776779E57100DE79D782DAC503F9A0
-D6AF653F90B88AD0448AA489372197C73AC04AD25BE6F6ABB5522C8949EA9AD7
-595A8DA1F85CEE2319E5CB52E14AD7190A848162699DC403F621E8D397FCD6CD
-AD675B5FB6F94ECD86CE5F393A3DBA655EB9D7F378CBFC1B825B0D30FF547B9D
-F438239E33FA25D3AE1647DBBC2D2FBBC4633212C87DE6C4D9C24B63389F7485
-9317993ABED205C2EC8343290CB5C4607D8FBCAE3D8CF488AC2B375E106679B5
-33D0CA1FC53CA84213C6D730E6E323A70D83896E9CC3830829405923628762E8
-04EDDDF92D60D017F145206FF3D8B24920F0C5245B40047BC2737CB798C6F45C
-6A8A0C93F774F2802CF456E073F71946A134169E43DEE07741A22A320F26AD40
-AB4DFF0911F8410A41FD42FF85CCE6A36BFE491EF9E55D289C7819D80C0DC683
-DDD6F9EAA64ED6EE3EBF9856E6AB7B2414CE6092962BCA221D33F88A96A56A23
-BAF4263BD1DA16FF9603763885F53B487900CE67B4D284BC5BF26C703160E521
-4E03A8B9027895B0EE1A83870CD51E19F3067C8CAA48B8C0413A4C72ECA3EEBD
-69E48BE8F07725C2C148AFCC5473313AB8A5BC9E8E4ED6394432D6A4E744921E
-E9EF653830F38DDC8A6F9CDAAAD7C0FE8A4D899A1E2D195BFC406B2FBF68B051
-1461097A6E722E5820E24A6E9B12266CC199D60539FF43AF421123A64D16EF88
-FED55774EC4590C27AE8D7A1761B0E794756A0993C0D5A696701A930476B878C
-394598197A0C220A86DAC3FFE9B5CF3EE2A8C5424CECE9F1325CA21F365D0429
-AF995E5EB97D3F15FC9C55B0DDC8B50B7A453114F48D316D4CEDB25EC5482606
-65CDBDFCEC87764297922A66012FB5BAD133DC94E240382FD82483BE01F51DE0
-923D0D96F86552805E220BF8E8C0F380D5164C298D05D1CE52A34A28C04BBC52
-E0F8BE2CEC964ADCD8380518EB6D8811F851FFBA2A6506A5BE2BDB77C6D676CF
-443F4C3F37279F1D7BAD1DF5D8D4CDC87552BC21033E1368110E801D5099765A
-E5BED70CB5EE00E3BE43C99A33B7E2931B4B27F1F432B310326F5DED88698BE4
-346043A6023D9BB5ADFDDEE75BB2D988B19B6F3AC387FB494F20264A0C4FC57B
-F6A074B930A0FAA8B052EA6CA69E2F7B908C918B7A8E591F3D557F8451D657CE
-71AFBBE239B0C98F0EA80A967A19BD6644E317AC52AD965D0E7D9F4AE2FEC110
-FCAAC2D3440187C8FEF875DB92105452DE04F311D236914DAEB84AE8788FD47B
-9BD6DFAA777B512B4FE15F4C1822947CF8912366733E60BBF206F557682135E0
-55FAE5EA672123F895ECFA6FEF3ED60D08FEC6ED3BDEE50E9D63812C3D2DD783
-1DD5795757D4FBAD9AD2AF3E4E1C553A0C2DF99E7E61404CC9FB5EACB796CE1A
-117C235608020FDCD05BA16EA4C01E0A82450648060932DB12FB5F74A9C554FA
-5A93A80E1FBEF6E3778DE1F0D5286F330E0B5FE4C75D62646F7C85AFEE9E7B93
-A7BF0E414DC1863AC784829B402EF906BBDD5F627A95396409FE7F39A2028EC1
-5B4A10E26C8A5A18FACEFA9AEE9E8915D37139C5229FF0A5A05CD2F653560616
-0FE1E6F7FF482CD4FDB7FD142318FC99303C6F5A8E38750DB1856E075D8E8DFF
-191DA6912E238315325F662372DA1974D6B1D23A0FE4642B374637758C222356
-B3B6047756A13A928B3C85789F8411818AC0F324BAC8CAA92E90D4644C77CEB9
-76ACB388F9A4F293770E2CE67D1D3B341E39273C75257D9B1BAA2F087094E796
-5A074FFE3F5850183B4B9D693B0A158CE0D3098C7C9A8D2E499463125267080D
-2843D44A355EBF88F59F03C47CC335ECE2C7BE42DD8642633A5F15D674F29AD4
-753C26BFAA261D1F1DEBC6BE493255049964B4072861A73DDB193C3E58295BC8
-8AD51CC8D9458D619354638AF537762E7FE6D316737B869C717D343D8EF630B7
-137347144689CCB81672E0E386215B1C3AEF691FF2CF292E73A193C9D74EB428
-14AAC558E8C4525880A2C7281BA3CE6F9EC501DC127D28345E9AF7E9709225D2
-0C60358C55E4CC8ECD149A78B21F2EBEBFE166AD7308B859D7B4349245EDF9BC
-6F54739155EFF438C6CB6C91104D9F1825605372FC062947F1EBD1D7CBF8FDF1
-AAB32E35516CDC2E00951CBAD1C71FC969EB5086DA8E08C09F5560216BD4A170
-3DB6E2DE02C07AF656F062F390CABBF691476C9539ADE8195CA2E3D8C099CD10
-F4DD4657C898C94FA38C3B8C5638088CA55EEAC94D7D219FCA0F88345C6C9EDA
-DF6F83867982C0B9FBEB1AB936507F6BC752C20581E43BEBA07571E46BFF81E1
-5E86123D6742FA2A52EAD557383E9A0A503D60C3E70F94F7F2ACC89AE2906734
-53AF63352BDCE3CF1F8D0CFA5F626BB106CEDC52A306DAF6B2927662B6979534
-2B3EC21893220EF713D5DF65135F5104B49444911B4B4D6C2C9F7DAC826F99B3
-464D11F72A97B1ECA89C70CB2C842DA260319F9FFAF1BDA611AA95B649C76E42
-2BB637D899D0B6C621FEEB60D1515A96B1D9832E2C04E2569F9CF7E8CBB1D204
-4B1FB28302BADBFD1565A00CE9C9F57B5F570F30398FC3D4443D38CF90BD2C17
-04B324338F4AEBF8A981046383AE55DF81F790E010752F4FAF81727D015A9948
-56C05460804E13C79C4D47EE1CCDDA43575EAAB1DD280BE6698C1970538B7CDB
-197B4E1B8D42F7ED791AD2017445863EE8AA5DD04DA5E276D809A835D66DBF61
-0BC8CEB2CF577B77F84B0F9768235F8EBC2CF7E4EBD3BA79D87CB1DB81180644
-DFF6B4B98CDD23C4D7A48FC2DE56E8ADCAFCA7C39C6E668D4F30CF758400581A
-B5DC9BE94782D6C80B9774363B59FA2F743FE060820E613F8E43B274902CBC05
-1F9BCF5149560C71021005C5C5DEA5A6C395CF814BB94240AAFC6633A38B7E16
-06A2448E6E3E6AB66A0E5185C486FFDA2FDA024A52841A58425F85243C69ED99
-23439D51305613CCF81D3ECBFA89C1A15809E8064C401288C430F7EF0DF4E9B5
-4A7120944D23010FFDD476558C0305F668F45560F8E205B3B9AA763F56FFFFE9
-5B6A86EE97D93CD0741FB17BA5FACA451BFDF6BE95286F88F8D38CC5B43DBC2F
-E7BF2F0B74C8C9DF80CA79FC8CCC95FDFD9504B405645533E8CD4B43E1C78563
-D04C51595EDFFF8BEC0686C78CE9FC4AC68BC4D85F96ED6A6E3CBACAB509F25A
-436A260FE38A0300E53A9F642464F431CD4C5A0E3B9B29CDB89CC970D3E83A98
-969463640C5C884B0F86542DCBAF3F8633B17A84A22229423866A18B5C5C0B6D
-53A5F0342D7DE8EA24866F993788A3356D6EEB55FC1AE972ADA0D79B87707E06
-0619521AA74D87D40811CE9E855E6F41A0101C0B4EFF29BE26C2E8D00BB60612
-6A355164081F912689E6D5EFE23F8D27CCE733239DDDB636ADCC813FD66FDDFC
-AD2781F053EF9A1FE7A58D094F82F38B12CA9AE82FA61AEEB139F5F8A8252EF1
-679600A46BAC5C0BFD72AA4946D951D7C2661260878E9D25B6E9044542D907E7
-CBE2ED81B2D82DB3295E939D3ABF1C36F6D36DE762835B5DE47251EE2936C02D
-3CD841A9659D82BED613D2DA9E3495698EAE741300E664B300E4A27FE62E3FEF
-D6A56E8F2F022A10B5283F6051136CA61AB8437CFFEBE0673DA2CBA9AF104BC1
-5E8DBE1E4962672411887F695734D5B678F889C1BD4FCF307B4434DBAB5D67FF
-0ACD8632F334FA4AC51EB8A19E7BFD2E7E28657381C10E3D0E5BB5DDF042CAA7
-349AD78446868A0F7B0ABE98D483E2E8DBA63DF25DAA9B7DDB3359372BED3588
-241CF87CAC183673D71281CE06895EACC815D19B18E6B3B89C6B3081505EAD5D
-E0E72CA6417222E3C1473F30DDB991CFB02405482F818DE9220188086BC6C8F9
-47C74D3CCE03231A923E9E0DE319CBF9795BCEC39666C0587BA02F9DC6688293
-4D1F15616E7E01366C4179453FFE4C3A4BB29F56C8926858A74940FCD18A1186
-EB1CCDA83AB6B3FCCF3619F43B3C581BF0E5443CDDDDEAC930B97281C3F9E252
-5CB5ABF70C2BE11A3A4CBF85D4197854E2A157EF0CFF287321B3719A7ADE8FD2
-F3BE459681DC85EF5F0E885DCA942742CEF39E8FAAF5E057EB3BCFCEB7ED9B10
-66902F943506BB738F57FD25FA954D28E64FE8F3F50A502D520AC6270699AD1F
-BFAEFDD4B88D6A7A1EA64B945C9C44E2A3669680E60F3523EBABC5FED606C778
-EADF4538655865B10936646AD7208D21BCF7B2E57F4068C5A0E8660E1B301F0E
-ED4E0B8B8A3F40C2C922E41002384D767F3A8FB3A11B62F230A9679A35922A61
-181581CC15A13E7F61AE877119A0064993917A446EC52CF656E554AD9BD9D144
-72148D82FCA963976B1B00F33A952F80FB0D3A6D9316F448350103723619CC4A
-B1707D5C5E8DEBED0BEEC0744032FE0BBC2FD472DC75A2C4F14706B251EBB828
-D3955A1D7E36E011D4F72B61D63DBFA70AF54C326B6861A19D24EE210CE1D319
-75FF6B4A682B97432DAF059372FF2F4E52781716E605B83CA32001D61C20DAF9
-26714CDAA4F20C55242C18B3E5898140CD0944E1AA876200036434112FEE9B62
-FA35EDBCDDE3C0A5ED9F63CE2558DBF6E1AB0EB6906D4E8A42A5764809EAE7A6
-A7537A9A573F5076925F1B62056BAB1F099B926B375EDFBB24BE522F4BDB3DB7
-F5BEA76B058C86869FDFA7890169B6348A94D9EAFF775FE2577A52EF76A77DC5
-A29688E833A340FCE21355EE57EF30E303D5D9B6DD2178A3C10C30BFC136F728
-8CAD848779C0B5E12538795D50E16AD2C3EE94B1209264BC1F12B769C7A5C0A1
-AE2F7254EA38A70B4F829C189E1601BD64BE364E6674C59183359653041072A8
-B09B3569953E6F771E2A4174B829F4487020A87F842BDC2DB7CD3FB613B9F294
-D33D5D8E2353F787CCC3320898CBF22F164734F77FFD4E2EAFA65833119311B9
-888D0BE9CEE2F32AC56CF4E6B596EE732A973075EF01B5488C686CDB0ADC8C0C
-C233D4948F0360F6D56F8D589902E5E628760651A3F58802A63741BFBCE0F734
-D3376BCB4B493927C4EAECE1404013021C7C0999CAAC5629A0DE33DE1A2DC418
-B828567133D9574960EB7BB0875FAD78B3DE8B178F502B7A726503CA905F3347
-6D5A8530ADE146063D1874B4BB41C00330EE17EF5A0F9CAFFBD205D622102B8F
-0D9B072E319458046CC28881295E4BB9B23C992AC130360CEAD9A521337383E5
-5C24335A41B47A996D21F2989C839E4D327D6BAE2E9B63DA85596FDC4C68D6ED
-96DE7B1A57738F6003800A8D8724584494FD92083E674009F6B004097644D2CD
-28E3FD77EE41F1D34BE89BCE631FF56315E616100A4E1E04380A828351DA905E
-74316EA611ECEFAC9EB81838B12C69E96DBBFCEADF8A373C7A4462CD6A1BC58C
-4EE6544EEE1B5F7BC2B210B7243D0F38B0EC6C100341D2BE89E080A235A966CA
-B113631F66F1BBD45A2A724684C903CB09B569DFB8A3C750DC23EADC43667100
-79543852C44A70FB5FA9F0DE7463D3565976F0FDCAE03F58D1F29BD261C976B8
-4BAFD037C03EEE434D7E37ADFB3D7220D3A26283E88F14D4711AF59FFC897D08
-77127068DAFD031E5DACB522BB942AFF08E775D7AAB901F7AB8E77C6FBA0BD40
-EBE4A89F95F33C66BD1B0499984B8B4E3B9DDF5ED490B8BB504221F15E47E28E
-CEC5FB4D5EFCC6B97A2B68D100AD7437350B25455CBC63EC2EE047076DEB7215
-90AB8606F3C9FE7A89C0E96DF22C54B1C143930EDEDD7F431604C1A8874E7D0D
-7506E66C161CEBA0B1886FD0FD407A3E5D299B3FB2E039F8CF5A8BEC78697FD1
-DBE98C722C7F43BA28BE838E886A56A94089519AF2E46825E8CDCEBE115770EE
-ADAD9978D9510901056C8EC54B6E593E395009C3544AE9FE402922BABD4DA452
-F03453671177955AD0BFBFC6872549EA8197E0548CAA7E52841F2AA3C6297E1C
-73D90B1358C7207930887CE5A7AB1F91A28A84CCE9E8930C503362C0D29EBCCA
-35871CE490D20231FE8307AD5864FA75C3B942ABC9083F15602A346C16670A91
-4B25B8CEA32384C8ABF7C0DD8475E5F397754F3E47824DAFE91BB81C8B9C6FC1
-8D9B6389AE4B1002BCE6922F7A2B215B381C0D757187A506296297BF94906A67
-837A7A87285463DF5F731160FA8B800E678B873651C2E9A408864D58DCA363ED
-7F5970756CEDD2A49B8264164E6691BE09C806BE0EBD3F7438B40197BDD2AFCF
-01981E5710F520F9C1B0951F1A6BC906D5663C9B086AA735565D6A5EADA5AD61
-3727EC014B079E6D09A17D02EE272A2E0BC1BD8FD48A23B771E8DF42F1181B36
-9130DEA2C9D6C0ACA8198583B1E80FA0CC51201F3035817CA4E7DA2189D51DC4
-77865B61FF01369429796CC2CE7524AE4B6CEBE9BD8D0D3D0EAE8AAFBE5F3F6A
-EB0C9A446945A7A8941CF3DF2A2DB3C5A2F0632EDEFE0E4B571C1861FAD1A749
-8869865FCE693468A52ACA6598210C2C8F220D50C9FCE6823474060C943DE4E9
-D94867DEB3EE3428E798ED41ED8BB08B5592A15320A0C7D36D4556E7B8620543
-C33BE5A252B6EAA2D52140B83FC450213716309FA35112E8D95E5DAC1C6A995E
-9DF2171135278BED55DA8A5A2A183661AB684159396182EB6C6FDF19DCBF2574
-BA529D4AF83C30D950B85E290CC4C9C2B7E6DEE46C2DCC9D354BED7FD003F3B6
-953D07731841626CEE6D7686CF67669B19943BE10C8F7420530AF0C5F41FB173
-CBB5B4C549AA31F08830CBFB0A161AFA1F599B48EA9507CD87126FB25B15D069
-EF3BF31FD7BD130C2FF2A99B2DD636232AA28B40FD07D1668370AF7C97E2B6FA
-59A08955D2FBD868591E1B9BB487572EE416B4B3DE3E921FB0CE4C9928E2DD1B
-EAFD8D0E68CFB95C41201280C68183B3CB6BDAFA383D346A04680F22AE5A2D79
-6CA818F696E202A2640CC8148A03C854EB5B3444F771692F35E5E21E3B
+89BE7661D1416F2BB409A4F10AE9AFCA3B58EF5798E2994CC88293A853CAD2A1
+D8712BC2B1B360BBB14942FAE41436ACC03DF5595C79C747FB5F2B646751D0AE
+2AB43E7BB2DAE44CDAAAB59C2A6AFB2500FEFC77B9252F96A8EA041EBD9A40CB
+E24BBBB5826A75D759AC1B9A89BBDEAABB51FDA8D952D3E35F04AD6F0EAFE0FE
+BA3152C0E7B0CF0272A3CC2EF21D3F4A0529918B37463124DFF7ACBDE31DC27D
+A6C9A32FC00743FC7447EB384935D1B4E4A8220BEB3D7576C129098BF6F0A28C
+8C1833DFD6E7DD432E26E99D5FE7A36497E42745DF80C7D5931EDC1820D5EFDC
+CA386FE9D8CA8933200005168822308456ECC75A18A2B6678D6A6DD1C1CDCE99
+6EB4FEAABEFFE9A04DE22253498D2B546258C954E40B5097A9C42C68AF46422D
+50C34D78CBCD6E77CD65721C6BACB50B22DF173A2E383D1BBC6E16E6DE9737C9
+F5C46DAFE7C4D184592E5F9F6C90D436C2A0D35C75BFBA9F47E1536FCF3B62BD
+5630F2B9E2652C818333A659CB4AD99BDAFC9D6B50FC3E4DCBB61FB4B186FB42
+9287092740DC0C5DB7CA023AE8626ADF777054FB51095A862CB68F84ED7D36E9
+CECA94A47892A980EE03C9A1212209F8A4623BB9EE9001273E053A8E669C619E
+07666D6CFE3E3C6C4F533394C0864528A90B85BFD5B6D2B9C04BEE46EF498809
+12F6D45BFB393D783BE43279BBB04D1F2B58018D14AD1755829F61C579CB9CBC
+F8EA26256A90F6B155ECDFEABB35C183706FF948DDB61381F9CA54A664E46AA6
+F3D97C9F03A069A9AA85F7A556E98F87B0C880A8929B1A9DF8E112853F74C475
+83AE38CD2E65F734115CA4830DF054E2FAB7968BB99CC3CE8D677DBEB8F26770
+4CE748BFBE6A29B20D9FF170D30E46690D2A5BC3F77098108CED5B88D36AC5F3
+6A686299D6F9E0706A766B669E8A302D008DE53A95839CAEFF2678BC7F7711FC
+84DA7ADB3876B5CDF624B2DE323A9E002834D3679C8F1F8AE772603DCE7EE00D
+96C109C4944A88A4FA3A1E48D38E0DAD2E3E0CBAF82D64A2BEC8F32935A38BDB
+483C166E05EAB997540E5FD5922F512CF631E3D5C149A775C5152330054B9ACF
+AACFF2A8392903089F325855E24B8BAA4ED862A4286C1DE4531980F5477743D5
+1ED23FB205C0F0755058BEE2F86704B6CB98680E09EC6CEE9605BC7D4AB58CA1
+64FF9BD83096345A4589BCF48ABF3F54F5D08A135C7DA33B900BC3EDE866F07C
+E09C05E42F134F04FA4B8A55B3966D486A863F160F3C62426B3D64F8408C5BAD
+96C31B4A72224CEF8E1FBB77F122E7C155F106BAE64F161909B66EDB7081E745
+2EC0007570F1571C00FA2109CD85A9D4D71E031028A625E1051ABE0F0CE54503
+9B08B2B66353E9915FE0DA2C97FD649A337AE6A3460554F3914BD5167BD54A4A
+1C989FACF0E99DC295A9272BB5ABD73BE6662ECB4E0F1F81C1B69902956F7533
+D3F808331A1B3C385975AD9A2C24CB1815A80E12C4FA2BD5DAF61C03789D6E05
+E615920B9A831612B0162866E6CED78635578B7916004A1E077FE7AE2463F40D
+A873F4AC144108C5B182611E58E2BDDCC7077D60592B98B9835E75E4E696C317
+B6F2AA7C2955E0B904366C8E3AC2ECF6010945F93219BEBA66F0374FF67FC1C9
+9AE9F0DFCA04EF459CA101AD3FAEE963AE94249223FAAE77F4A054D4529790AF
+6F473C5DEC423BB6F68677B3DC46DA1752C364BE5A3152FBC3422127D839DACF
+BCA1A10323B357534880D7A90CF9AD85DAF560741AD8F09807C0A6D4B713B8D6
+3816FB659786FC5556906D5BD4215DD8E40C81CC87261D385EEEB2F90A0653B3
+E4A4C47178BC3D581B9C5D4043DDC91226E820D5364BBDB44042F1B728FCEF5E
+A42E12858E1061AE6D54B7FE0630232BE2BCE6C91D5DD755F8B05619DDF679DE
+DA691E30D6DBD8CE2FEA4BF92E9DCDA6267F7FDDBEF64A077887B1FDE734467A
+E5A41162BEEA990A5DF016CA1670DA3A8CF759CB346A8D5C67D0477527D5271D
+1E704729CD6D348B237C782562521ECED241279A9063F3366E418CAC6A7A217E
+97D7647D05E78E92B7CEEDE0886AF80B7E6233EC8CC480F6ABCCF821CE2DBA60
+2067F415892268A594B29DADFF6AAED7B37ECEECE83B00F38BCD6EE0C85C4208
+B5FCF446BBE25288449670392A4CABAA79B6FA17C9458203DDF28ED7D10B5FF9
+7C68768B4435905AD4EECA26EC94078546BB1D6F291FF7024D6F7AE21A58A3ED
+6B3DB59F2A12DC33A97EBC69A3C31D165F3557321A6FAD1D08301A2E7D50588F
+E37AB44E4E9C2D5AC0A7CFEE161EBE3BE537F0E20270A1D8248CAE21D932F828
+ED90AC3A1E90089B5B751D67D507E4ECA8867EB2F9145C056166A32598207453
+2A662F3E2B72E21024B9E8EFBCF666B351E14939739A46272A74C360FE4434C9
+8AA56BB5D5D4291715039DF83233ACEE78AA94BD1162ABAFA56C3B1097DB1C36
+CBED764E2DC66BC6CCF091084AC96571DEB21FBA8825B6454CDAA7D7F2F002C5
+886E10372D6DECD67AE8198E6CDAC62BAF8E0342C607650E523690BDA7E4F485
+5F4785F17B5787377463A7D11A068538CBF5163DECFFCD367602DE63AF6359C1
+57B5DE4C75A72F92E7ABE5F254488435820B117D214489BB8EA91AE010D834B3
+DFC68AFA65251BE0E739199502E3408659F199FF0E483D2243725685D53509FA
+F198A88CACBD30A36E878FD4FF5378F1F3A94FA0E026CB97D7960793ADC0D57F
+1A04B684730EF3BEFEDCBB55271BF56457B561991E0EC5C50F3D8EA7B056B315
+2F22ED7D408A32AE708651E916DAD5007F7DAB605C98583D35B688B79D566F17
+63B6C05278A9192C0C4CE5A0FA55028A4E547C756EDC106DD846A44BFF0DC929
+CFAA2555D926656BFF20A06C7DA66373F0CF7E5303ED51F142D38B90C5DD879D
+EB3F6C354D2D21B9DBACE7FA2AEF4E1837073553F14C42A76B637A72D7C9E939
+D078D45F4217E7A1519B6A4A800FDD3858D5595BDFA5E321A311DA8EF758DB6B
+D9341820D744F44BB8E304140D6F71ADF8D3D15BA8C6641983CB78ADFCA82CB6
+1330D16F7E148FC41431C93CE788A90B469B22F820320C47814243AA73A3414C
+049D747625F95F3D233D99AC28F992CB9E82AE81ED6E96718B1ED83CCC10295B
+784262C9562641A3C936940C7604EF79460174365CFEEBDF09F90105DF6CB219
+55F8AF9B293F0B758D2BC9769D029B4693796ABDA5AFD27D983CF90D8A495CFB
+273248BB133E65E1492A43DB27197CF96CA6F55790E477C71A2FDC6942523238
+DF7AE85862AFADB610CF3B4A9CEE75450C034469EA39D6ED1D87DBB8E50ADC79
+CE5A3F32E20B32CA7E7AC75A7CAB2B92C104544001B8C867BDD974B3EE75D405
+8EA8BF7E39C5801D50DA3FEA049C47495A07329332908E1CD5A24FA87A4A9F7F
+9A83C20F34769F4D311C76F815EB0686EC497880CCDBFA211E2E1E329001B9C1
+577DF7260E425C2970DF345C37F3BE5F580389207749867EAA20E9ED186B73CD
+45FBD5DF095CEA24CE578123134EDFBA233E871A655E7ED3190E772525E64CFC
+22E302085CDEFF61C2DE878CC62FAC47B47268A2A1A0B7EE6C430E2A6FB02F31
+C571497BBBB11B7C8E9AA8A5AE4A8AE03DD594678D38A03324F58E373272D2DF
+6082E20FE34CB2B48DB39EADE3034D35857D7028D5FD4EF89AA472A6E06DBA2D
+BDDDD91C83B094F241CB8B5CF1B8FC5B4AFE9E623AD9884D2FD13391249D7ACB
+E9B40DEB3330A0C39C8A8FF93CCEE4A960AA155CBF4D08CAC1C679B1E47F1332
+6BEB8CB7418CA235BE5F9112FAE450586C6F7047975F9487CA97F4ABAC4F5D38
+461FA882723FB4FE08CE6BFE4486289ED8EDADCDD2B36313EE041CB5C3FBEABB
+E2B3F7F94CFD4F23475C8F6DBA20DB831B32037F134F6654D943FD120688A4CA
+195734031AF412370172596E83FBE5FC602B7E706960AB652331F90CBFAFD0D6
+8ACEDEDF3AFCC59F68AA4FE95F85DC22547BC7B3CBC62154BC893CEB87CFBCD9
+9735D74F8A63ADBD6B13E90259A29B286EA0FD63B343796E6422AADE01FDFC87
+DBA684304B6A0E28F91E3F803B773B26DCF64F67613CA384DDD1D18168A7FD90
+417C538F1B417A31F60B60C08390B746B1E2031528A73273CDA07CFC5CCBD2F0
+42EF0E3C58C6368E38088098D4021717B67ED54CBB0C0EAE47E22A7437A7DEA7
+E1778448FCAABB3F361C9418AA2CE48E32249E9B9D97387D48229CD7FF2F960F
+B331EC3ADC2F2A5DCE7A82344F676958CB1AD788CA07C476DEC14B7462E53023
+45FCB0B3040D2900DE6FE804146AC6256B39B0E064998F1CA42405614AE90DA0
+CF2ACA6E256AB8108CBE88F8A89B69C6F5C1C7AAF32F20B3CCC1C30BECAF8250
+CB43EBD5A435D16CC08EA01CD20593372E73491DF84DB280FC47FA163F1859D1
+099233BA5DC0735C1861A749110482B0F1FFB7202183BF05E2CB7B0A4FA1F80F
+A197317A22D8DDD49851AF08A920E7FA172FFD776BAB0CDC33F88D408B181FD8
+216165A30395CF8AD24AB527674225EB493B9E0680904993E93676F25C8A4A50
+E273B28BF61E430FB50AFBECE633BCCF4D086B06B4D57B0A830E7BC136C73C39
+289DC2379D18BDD94292B9E085FBB878F4A1224102FDDFE38F2B9EF6B2C3B020
+802F6EF477BD5CD7F30E8AD28BACC673F3222F5C3EFD8E1BBF7CC8FEE9910A09
+A636EA1A4820623DA41AFB80699BDEC24BC9F502D399E6ED1B3C318F9F872ED9
+FDAA7207F8E9D80D7F777009909DB1B82AA93D2AC12A60D590B2827DF59C01D1
+E030E3841AD0EA7C039AB9C50FF3D9CB37E5ED5C14BF65D70F26D4A6D98F29FE
+9A2C39A85225B946657F7EA3222207E864C70F45068F03677BF724D1813A77F8
+FB3CA1D3CC80F08BC4A385418F8D812EC6DC2E86E957062F1C7DD1715F8024AC
+77C2562C80F103D0134C0BC0A07463B06BE7487524B07F44707056AE259F5711
+41F4C62CA75837A6696E337699AEB3D0724437F1834CD04E236FC92CACE5411F
+FFC37F0049A9D127D6E616EA40126079BE85F2C5DEF4112B6A55D7FEC9F8271D
+C454367EAE4BB65028B4296C050BF7C595235CB729F72BB4801F3AD00102A622
+331536ECA51CEF390A17F0D4A0689DF68098DC98C80FFFB23ED5EC3F3CA20860
+7648397153B6BBF1D40C82CE56741A22A92D55AC7449C2C350C6D18132ABE8DA
+475ECA094BD487B213DE5156206BB7B917412A4C965CCA72A456A81F9B4EEA77
+760A1A3E76D9551F634D2D88C2D814459B74F6B532949B1329642971A421722A
+2EC35A5A717F5CD19D111DE26C10F8384ECC60D619C6B2C369666B3F2891E2D3
+0410087DBA4C23FB5045B83F6469D332A2DB8D2CBA9E1F14818CCC50E024FB0A
+F742700C59CA75FBE228868136357C93A3770F75F610C8BF473B919141708D2D
+4C9CCB46D908D1920A4F91BC9A6960FF8161A491ABCA27BABA6CF18A44EF4BD2
+E3AF295E23ABD9CCAC5277FA6BEA0E3094429F22113A2A9DC3DC93902A72B7FA
+E46815B8708E6FD123459E7F269DF2B16DFDCC1751AE3458B9EF139CC8ED3F6C
+0653BAF4E06B660A488B950A10413BA5E5F583461AB0B92B8549DD39C83797A0
+8E00B02A112CBDA2F41CF406545D102524BA0131E369FE051170804EB0A8BB45
+F6C9D796D54E20D12E6EE7C55DDCA2E8241A49BE818100A5A82F67549FC8070E
+B8D28DFFA97DF47A1806A8D16650043A519520BE6D2BF43419518C58DCD60C77
+49C74154199B591EFD5046B2BE5A83FBE336D8195A041801C895F183CA217C7E
+6B39372DF255A968CE8B7663C148B3AF59D7C1841E10B15A9CBC747CC0449696
+5CD1A15115A280438F8ECB2160CF2D85D642F445F0B36B32C1099A800DF04794
+DFDC55BB685ED62EC5B9C1E80BEC7AF12E6FEBA4DCBF7C1F89521CEAADC3477F
+7B65938BA5B3289825906F234957479E028538F41492E931BEF3845C397876F9
+6C44683F2E1E187DA8908D06B767C784BE8968101A508D53380312D4465DC1CF
+BD41EFAC52851BFCB0C9CFABCA1841039A884A1BFCC8F069A0DFD121EE6BE4F1
+3866DB9A7E6AAA67FBD6EFB07C2E4B2A5FD15C03D2AC558704F95F4AFE2C24BC
+02478EE51167F2363DBB8BFF1E3250233C54641F077753523ADEAAB08DB3A8B3
+E1159366449426E0BAB86054F63E0C1158410D72A2548853D9535404B50C51BF
+B1A9E7E21977378DCDEB18B3454C68483FB04470BC100DF850452C974DE0FF69
+5965249C6A6174933EA84CF1EEA6643F535017260EDF237115EAE9159BE00C78
+40F03C9D430DE842CDB86A439757D1A31BE4ACDB8840C7B9003042F548854744
+FC9AC4E425E96310763A306908719C7C53F0B4C6672DDF591E494DABFEC94148
+45636BBC2B8F775F973D62C0D0B6E9D64038994ABD5FB5AFC1B37732DBF6B936
+2D765FFFF592D08B8522668875117987BDBB253AECA4FB2C05F8B70530707CAD
+5A6B86D4AE836311DDC7524EEC2007AB579BC3359A5610C6E52FAE63D55D9147
+013306856253DB1E3A8A5FFBB8BE926A1D97B2D0469C83D17C3BFA4DD89AF0A8
+B57B36CF37ECB798635810F9004233F517F14A4B0FC90F9A647B8BE3C353ADB9
+7826FB350B48FC5789207A5223D002319AA6F637671EE14F35CB84D244A68438
+020FA7A7253FB6C4CEFA33344F71CDC9BDBCB72FBD7E2F936419D0DBCD67355E
+85A87C740E716F51943C57A3D4AE85514228D7404756AFF8187525117F4CD4D5
+1FEB6BF76744BAD7CFEADED9DE316E37B0D299284E45E89554F8AD3AD50D112D
+5D14362426DDDB52F3666AA09EDAD69A0F3495F18C71FCD5E516FCE4BF3EE78B
+EA2275D7209D87C987063794D4FC4E7B74412DA124B3303B62C7E88F12F2A28F
+A7BEE5257A7644E7714BAFBA1084227DEED6080CE772E6E7E986788E17B64B3E
+D977ECDBC352E8EA7354BFCC6DE68A5956F4C99F86DDF57CBB2D9784D3B812C8
+3EB09F95A89A85A6904AAFB352F8958307985F8E5C17410316DD083F65BF7621
+FA50D3D43B0EF3FAAD16D388AF6372A6B5E8608D222822F9BAC78DF2847DBA91
+8EF05C16637E5E0CABFE64F21A20E8523CD92D2248B55C80CD9C22407E8E34A1
+60F3ABA917E0A45CB2AC89AD035AA6770DA9BFF1B89984B8494283C233C8744F
+D546BD91AC009CA41509D7F0E3E09770AEA84B97C1C05D452A517EEFDFD28B1C
+A683609627800B0DD655CADCA8D6AA4AEB4D96869FA3500E312AFEBD97BDC77D
+5412C29A44046B5C71550B66BAA85CF52F21F17CA31C2437B213075EF5791EF4
+3D76A45BA0EB156E9E88EA654536590463B3E45D4A0AA4A0E986A86B3C60D74D
+E86E97BF92293E7380AF786BF395E068FC96926016F866F7319AD9CD9B920C54
+C64C75A314ACB76D238B1102E260BCCA7BD833B1FD10FA58D73E4068C1BD6C1F
+8FC34505679A0127139A18602C23667F706D035A1221C5BFF4A6A03795EF8CC2
+222B607A337B95184D55DC54391A1F53DED68E93803115E30BFE769FD445866A
+05C40F4DC18BA8D687F7CE1AFDF37AB09062013671A6D9CC67B449BBF92311BA
+90457BBC74B1749DFBACC86AB6268ED4194726F012A0FF7C532F8C1112CF4A84
+6DE9084519FF8BB3D546D11D1E01D52D571BE012632015BBBE82B889769E1036
+0A0D869C95F472B73F7FAADDD3FDEAAA2F01FC3D78BBC298EA956E946F3E8498
+7A012A3198C889C29882112642A724BFBF5DE561A9DF89FB33291DD559CB82CE
+0E83495213E829B0B2D64067988E9D2DCAA26D8AA8584C72EFA35747EBB4AAD7
+45EF1B120134A03CF9D4A9FB03B6FF3147C7577F610A6226EACC416BB99C3035
+AD1A2C21967036DB4A36513494AF6DA682C7AB0438868F7D558C3CE18C2AD23E
+6CFC3B65FFDF9760CF27383449A13A9BEB9E9FB5F8EA849A73F015A13597D3F4
+1FA6CC69188D1626358A8ED4F7E0F514EB16EDBB3457888FD4E07CC3FD0C3791
+EE028CFA95CE9E124826B5AEF1CF7B90E90140476CFDFFD277279FB368E03674
+8787C2B5A613C29A17A35C7DC295D628225BE87736D3A362478C1B9753D18E97
+4B39A53B5D5A9D4C947E3A204286B35659E2D93A226593899CF99C090C83EBFC
+103FE4DA9459969BD277645BF55527AFD39CC6CBD27B9BE0E823FA5C3BBD5A56
+CD21012F7194062A4EDDA4452C821F21FBCE9E1039C6189547520349EE1293B3
+E65F6530C81F9FE2DBA500686C20A4FB00F10513EBB656183BC8EB8F4006E887
+E466A8996B68CE5517E767FFC45CA9EBF32B76D5CC781271C4AC31A03030B351
+9061A59637565104C962E5A6ACDD13179718D2C8A0ACEB490DFF33733B1E6242
+0305E7E43C18D3DBCA2E5040CF723AAFFDA4B8495517F2D21296FC67DBADBFB3
+9351392A761A71AAC56D326B7A165AC3993531A8737A47C97951F96D0E60C76E
+25BA6186DA75AC2A03FA95768FD6A0ADF7F65CD6532E3574A158BA25A33D7BF9
+7F978AF082D1B88DFED2C8612A3DE019657057C33D2BF1EDA86FC5B98DE3A24D
+F3FEDA60C3BC40C9ECCD4BCF936C639F8AB5633A82104AD575C7F7EBB22F215B
+7D6F095371F4FB6755D250A7780C1F33BB947BB567A98CE10F7AC438F522F41C
+1EC7E8BF03A7D2E573A8246D238ACC3A750E94CFD51D5DB2EF0938A45C6DC04B
+9F307D08A6D58CE3F4FBAF73A0EC6700E1782E1EE54836B34168097D66FBF25B
+49BFB2CCB6DE4BBDD9BC3D6AB556946AB43F213E25AE828C36DA43E0B37C4874
+866699184C6BC9AF936F75FEF0E498C4CBE86E48A09CA75B919E8893630C9407
+4C80F5348F3A723EDA04A92AF6866D60EBFFBE8753237296B782D5765D8208BA
+3B620DFFEF0B7510CDF17E4972EF4477EEB0FECCEE7496D1068843E8C7A1B53A
+2D252C14D5F548729ED292A52AE7B829A27DDCB81079C0A585F78FB1E49213B1
+43F5EE63DC3FE62CAFA6626D98FE4389C3FF39D6F42C94BC8DD0520C87C85310
+1A8AA2DE38A34D022084B315A230CEB576135F29D6B58BF547758CBE375B93AD
+8E615BCCDF8EB7B8B337B7DD011061B1EF84746FB18463020EA4139E928C84C6
+1375693E61BBA38B5FC949259778B0A4540317DD2E668578646FB648DCA24935
+C4F1139EFBEF2FF8581E576DE56FD91F1671FF46789FF634E21B86FB29B6CB56
+CF1DBC6A5BB182CCE4BECB8BD55C1AC15CAD970B3FD257E36A9AB3C23D385082
+786FAF0531CCB6BF0DD1F08134E3B2098B19A37D562ED37C14CF8FEF8250B4B3
+0EC071FF5C7527568DFEEA17DD29B15C6716A99B0096F5BA24732CCE35C7C2AF
+07A6E8F8B3F549EC78EEE4F3CB2215284C372A8527F5C541EAFB7336EAF5CD5B
+098BA114F89181D1EC442773CC176324F81EFC3195B4B74CDEB6FB1C71229D99
+BC38D749A633C00D61EA912E164E5224C81015B2C6D8B3E24120A6EE61F99AC8
+30C0D97F9B6EFB3D73D01B10EC8FC21DA3B42E2E9A78CA16BCA8F8B7168AA832
+9FE6D9C4D864A2EF90BB388A5D57FDD0BC324EFB3BE5349DCFB1CD14CDC3403D
+3C1B7FD9CDEB063F4E4C22D750E4D954FB9AAA009EC9ED196A069A85DBAE7824
+1BC7F2939D3643B3903386E7ECE8864ADE7362503FDACDE1CA23ACDDFCBEEBC8
+44FD1722868EB84442FAD9816A93706288ADF7E0836186189BC340B50AE0C85F
+41F96B91C943991F3CED309A778D817838B9A6949B2D3413EF11807A02CCE043
+6782C772957E10B040F093711AC9EE635CD1C633DCA1F54EB4A9DC449859EA8A
+35FFA8D7339B547EF4F8AC343671D21F90D67EAC7EDB89BCE1A759D4F10A34EC
+2985E65AE4423C35E01742645F0470954724EC9D5106A0F3262356A87368C4FE
+E9F772D47D48C9CE0CFFEC3C8EA91F88B96A37FACD5CEF3948BE1FC9F13E150E
+207E3B6483145C643E2E1B34264FB51F75E3CCDD03E2B6D146793CDC1F30FDB8
+06D721A964724988786362267ABE1C4F0B318C531FA781F10435A45195B63050
+40264C164FB22ED43E401680AC2CDD22A15B40000BB0A12E0EBF333E0452AA73
+4AABF786B49DF873D8AD0928E17EE7ABA9A6B28710A3DE016D5840E4876D1708
+E69EA0A4C744AADD3D4C442CA6A919DA9EFD346251375C86D7F2DB605328E7C9
+6887D67BB72C860332566109D9DD111AA2F9D32879C9E2B3039A44B296ABC319
+F602CC4FFBA51062421473A63505BA2871A2B122693056485FA9D6200DB6E44B
+E47D2A91BE35CE505BAF96152EC7A9360734F7150F508D0B6F14DC6C07EA557E
+3BEE3187A5F01CBB80858C9DE5C01C812B0C32F4F03AC6FCD8C64B2696FBF649
+41A9845DB50EF01B197B28A9878B6D891BC9664056F8A62BEE9324000C3CEB5C
+E9B1181AD913581D30840E84CD01AF0171B8B325426DC12F8376664BE8EE930D
+1AF9E18C565B18C6E9A7C1F6076C75DA595FD5C23AE63743C613186827408A3E
+182115EA2D1C51B713611428360205CD530BCA527F56FC70C0DD3C54E1561F6E
+4925D75F608B8FE76FF09038F02A81924A0D91746888A9DC44275C29A82A114F
+A02137BAC60C5C533A4DF2C61E7D7466F310714D25F5ECC13193DA00AE4E255C
+B1109C25E8C510DC74C07386B184CEFB8D6447C63D98165A4A287F51CE3D0F54
+D785B636A2F5CC4ACEC5F9D411C348AF6BEAE58A0163FCABCFD3DA345C344811
+94D583FAC330C8B553099F8E1CB65AA7BCB8C2DC71CD4D60EAA9793A5F738310
+0B3BB21EA79771A90F1AE208A240FB75D8CE8FC0214BC3BC570D47AF880FBEA8
+83FB1F2153A17788B79EC2EC5EFF27AA1626EF2EAE21BD8B9DCE77782226CCD4
+E9525F63CBCAF8C9D2A9C6C9BC5B90056DE0F4F7FBC61B3B0AA5C826FF30DAA5
+3387F6F840DB4BF1630189
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
T1Encoding ReEncodeFont }2 91.3242 /SFRM1095 rf /Fj
134[48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48
48 48 48 48 48 48 48 48 1[48 1[48 48 48 2[48 3[48 48
-48 1[48 1[48 48 48 2[48 48 1[48 48 48 48 1[48 6[48 6[48
-48 48 48 2[48 5[48 39[{}51 90.9091 /CMSLTT10 rf /Fk 134[65
+48 1[48 1[48 48 48 2[48 48 1[48 48 48 48 48 48 6[48 6[48
+48 48 48 2[48 5[48 39[{}52 90.9091 /CMSLTT10 rf /Fk 134[65
65 89 65 68 48 48 50 65 68 61 68 102 34 65 1[34 68 61
37 56 68 55 68 60 7[93 93 127 1[94 85 68 92 92 84 92
96 116 74 96 1[46 96 96 77 81 94 89 87 93 1[58 5[61 61
TeXDict begin 1 0 bop 150 1318 a Fv(Bash)64 b(Reference)j(Man)-5
b(ual)p 150 1385 3600 34 v 2361 1481 a Fu(Reference)31
b(Do)s(cumen)m(tation)i(for)d(Bash)2428 1589 y(Edition)h(5.3,)g(for)f
-Ft(Bash)g Fu(V)-8 b(ersion)31 b(5.3.)3364 1697 y(Ma)m(y)g(2025)150
+Ft(Bash)g Fu(V)-8 b(ersion)31 b(5.3.)3218 1697 y(Jan)m(uary)f(2026)150
4927 y Fs(Chet)45 b(Ramey)-11 b(,)46 b(Case)g(W)-11 b(estern)46
b(Reserv)l(e)g(Univ)l(ersit)l(y)150 5068 y(Brian)f(F)-11
b(o)l(x,)45 b(F)-11 b(ree)45 b(Soft)l(w)l(are)h(F)-11
%%Page: 2 2
TeXDict begin 2 1 bop 150 4279 a Fu(This)35 b(text)h(is)g(a)g(brief)f
(description)h(of)f(the)h(features)g(that)g(are)g(presen)m(t)g(in)f
-(the)h(Bash)f(shell)h(\(v)m(ersion)150 4389 y(5.3,)c(18)f(Ma)m(y)g
-(2025\).)150 4523 y(This)k(is)h(Edition)f(5.3,)k(last)d(up)s(dated)e
-(18)j(Ma)m(y)g(2025,)i(of)c Fr(The)h(GNU)g(Bash)g(Reference)g(Man)m
-(ual)p Fu(,)i(for)150 4633 y Ft(Bash)p Fu(,)29 b(V)-8
+(the)h(Bash)f(shell)h(\(v)m(ersion)150 4389 y(5.3,)c(14)f(Jan)m(uary)f
+(2026\).)150 4523 y(This)35 b(is)h(Edition)f(5.3,)k(last)d(up)s(dated)f
+(14)h(Jan)m(uary)f(2026,)k(of)d Fr(The)f(GNU)i(Bash)e(Reference)i(Man)m
+(ual)p Fu(,)150 4633 y(for)30 b Ft(Bash)p Fu(,)g(V)-8
b(ersion)31 b(5.3.)150 4767 y(Cop)m(yrigh)m(t)602 4764
-y(c)577 4767 y Fq(\015)f Fu(1988{2025)35 b(F)-8 b(ree)31
+y(c)577 4767 y Fq(\015)f Fu(1988{2026)35 b(F)-8 b(ree)31
b(Soft)m(w)m(are)h(F)-8 b(oundation,)31 b(Inc.)390 4902
y(P)m(ermission)21 b(is)f(gran)m(ted)h(to)g(cop)m(y)-8
b(,)24 b(distribute)c(and/or)h(mo)s(dify)e(this)i(do)s(cumen)m(t)f
b(W)-8 b(ords)27 b Fn(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)40
-b Fu(9)399 2767 y(3.2.2)93 b(Simple)30 b(Commands)15
-b Fn(:)f(:)i(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
-f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
-(:)f(:)h(:)f(:)g(:)h(:)f(:)29 b Fu(9)399 2877 y(3.2.3)93
+b Fu(9)399 2767 y(3.2.2)93 b(Simple)30 b(Commands)13
+b Fn(:)h(:)h(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
+g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
+(:)h(:)f(:)g(:)h(:)f(:)26 b Fu(10)399 2877 y(3.2.3)93
b(Pip)s(elines)23 b Fn(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
b Fu(12)524 3315 y(3.2.5.2)93 b(Conditional)31 b(Constructs)25
b Fn(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)39
-b Fu(12)524 3425 y(3.2.5.3)93 b(Grouping)30 b(Commands)22
+b Fu(13)524 3425 y(3.2.5.3)93 b(Grouping)30 b(Commands)22
b Fn(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)36
b Fu(18)399 3534 y(3.2.6)93 b(Copro)s(cesses)26 b Fn(:)15
h(:)f(:)h(:)21 b Fu(23)399 4082 y(3.4.2)93 b(Sp)s(ecial)30
b(P)m(arameters)c Fn(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)
-g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b Fu(23)275 4192
+g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b Fu(24)275 4192
y(3.5)92 b(Shell)30 b(Expansions)24 b Fn(:)15 b(:)h(:)f(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
-(:)g(:)h(:)f(:)38 b Fu(24)399 4301 y(3.5.1)93 b(Brace)31
+(:)g(:)h(:)f(:)38 b Fu(25)399 4301 y(3.5.1)93 b(Brace)31
b(Expansion)9 b Fn(:)15 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)22 b
Fu(37)399 4849 y(3.5.6)93 b(Pro)s(cess)30 b(Substitution)15
b Fn(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
-(:)f(:)g(:)h(:)28 b Fu(37)399 4959 y(3.5.7)93 b(W)-8
+(:)f(:)g(:)h(:)28 b Fu(38)399 4959 y(3.5.7)93 b(W)-8
b(ord)31 b(Splitting)d Fn(:)15 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)41
(:)h(:)f(:)g(:)27 b Fu(41)399 193 y(3.6.1)93 b(Redirecting)31
b(Input)11 b Fn(:)j(:)i(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
-h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)24 b Fu(42)399 302
+h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)24 b Fu(43)399 302
y(3.6.2)93 b(Redirecting)31 b(Output)15 b Fn(:)f(:)i(:)f(:)h(:)f(:)g(:)
h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)28
(Error)16 b Fn(:)e(:)i(:)f(:)g(:)h(:)f(:)h(:)f(:)29 b
Fu(43)399 631 y(3.6.5)93 b(App)s(ending)28 b(Standard)i(Output)f(and)h
(Standard)f(Error)d Fn(:)15 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)40
-b Fu(43)399 741 y(3.6.6)93 b(Here)31 b(Do)s(cumen)m(ts)15
+b Fu(44)399 741 y(3.6.6)93 b(Here)31 b(Do)s(cumen)m(ts)15
b Fn(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)27 b Fu(44)399 850 y(3.6.7)93
b Fu(44)399 960 y(3.6.8)93 b(Duplicating)32 b(File)f(Descriptors)25
b Fn(:)15 b(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)37
-b Fu(44)399 1069 y(3.6.9)93 b(Mo)m(ving)32 b(File)f(Descriptors)d
+b Fu(45)399 1069 y(3.6.9)93 b(Mo)m(ving)32 b(File)f(Descriptors)d
Fn(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
40 b Fu(45)399 1179 y(3.6.10)93 b(Op)s(ening)29 b(File)j(Descriptors)f
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
28 b Fu(46)399 1617 y(3.7.3)93 b(Command)29 b(Execution)i(En)m
(vironmen)m(t)17 b Fn(:)e(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
-(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)30 b Fu(46)399
+(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)30 b Fu(47)399
1727 y(3.7.4)93 b(En)m(vironmen)m(t)26 b Fn(:)16 b(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
-(:)f(:)g(:)h(:)39 b Fu(47)399 1836 y(3.7.5)93 b(Exit)31
+(:)f(:)g(:)h(:)39 b Fu(48)399 1836 y(3.7.5)93 b(Exit)31
b(Status)16 b Fn(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)29
(:)f(:)g(:)h(:)f(:)26 b Fu(61)275 2663 y(4.3)92 b(Mo)s(difying)30
b(Shell)g(Beha)m(vior)18 b Fn(:)f(:)e(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
-h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)31 b Fu(73)399
+h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)31 b Fu(74)399
2772 y(4.3.1)93 b(The)30 b(Set)g(Builtin)14 b Fn(:)i(:)f(:)h(:)f(:)g(:)
h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
h(:)f(:)h(:)f(:)g(:)36 b Fu(116)399 302 y(6.11.2)93 b(Bash)31
b(POSIX)e(Mo)s(de)18 b Fn(:)e(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
-f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)31 b Fu(116)275 412 y(6.12)92
+f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)31 b Fu(117)275 412 y(6.12)92
b(Shell)30 b(Compatibilit)m(y)i(Mo)s(de)25 b Fn(:)15
b(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)38
-b Fu(121)150 663 y Fs(7)135 b(Job)45 b(Con)l(trol)35
+b Fu(122)150 663 y Fs(7)135 b(Job)45 b(Con)l(trol)35
b Fo(:)20 b(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)
g(:)48 b Fs(125)275 800 y Fu(7.1)92 b(Job)30 b(Con)m(trol)h(Basics)23
150 820 y(are)36 b(a)m(v)-5 b(ailable)38 b(in)d(Bash,)i(and)e(the)h
(rules)f(for)g(ev)-5 b(aluation)37 b(and)e(quoting)h(are)f(tak)m(en)i
(from)e(the)h Fm(posix)150 929 y Fu(sp)s(eci\014cation)31
-b(for)f(the)h(`standard')f(Unix)g(shell.)275 1086 y(This)h(c)m(hapter)i
-(brie\015y)e(summarizes)h(the)h(shell's)f(`building)g(blo)s(c)m(ks':)45
-b(commands,)32 b(con)m(trol)i(struc-)150 1196 y(tures,)k(shell)e
-(functions,)h(shell)g Fl(p)-5 b(ar)g(ameters)p Fu(,)41
-b(shell)36 b(expansions,)i Fl(r)-5 b(e)g(dir)g(e)g(ctions)p
+b(for)f(the)h(\\standard")f(Unix)h(shell.)275 1086 y(This)c(c)m(hapter)
+i(brie\015y)e(summarizes)h(the)h(shell's)f(\\building)g(blo)s(c)m(ks":)
+41 b(commands,)28 b(con)m(trol)i(struc-)150 1196 y(tures,)38
+b(shell)e(functions,)h(shell)g Fl(p)-5 b(ar)g(ameters)p
+Fu(,)41 b(shell)36 b(expansions,)i Fl(r)-5 b(e)g(dir)g(e)g(ctions)p
Fu(,)40 b(whic)m(h)c(are)h(a)f(w)m(a)m(y)h(to)150 1306
y(direct)31 b(input)e(and)h(output)g(from)g(and)g(to)h(named)f
(\014les,)g(and)g(ho)m(w)g(the)h(shell)g(executes)g(commands.)150
(\(see)h(Section)h(3.2)f([Shell)g(Com-)330 4296 y(mands],)30
b(page)h(9\).)199 4442 y(4.)61 b(P)m(erforms)40 b(the)h(v)-5
b(arious)40 b(shell)h(expansions)f(\(see)h(Section)g(3.5)g([Shell)g
-(Expansions],)h(page)f(24\),)330 4551 y(breaking)35 b(the)g(expanded)g
+(Expansions],)h(page)f(25\),)330 4551 y(breaking)35 b(the)g(expanded)g
(tok)m(ens)h(in)m(to)g(lists)f(of)g(\014lenames)h(\(see)g(Section)f
(3.5.8)i([Filename)g(Ex-)330 4661 y(pansion],)30 b(page)h(39\))h(and)e
(commands)g(and)g(argumen)m(ts.)199 4807 y(5.)61 b(P)m(erforms)36
(enabled.)40 b(The)150 3816 y(c)m(haracters)22 b(`)p
Ft($)p Fu(')f(and)g(`)p Ft(`)p Fu(')g(retain)g(their)g(sp)s(ecial)h
(meaning)f(within)f(double)h(quotes)g(\(see)h(Section)g(3.5)g([Shell)
-150 3925 y(Expansions],)k(page)g(24\).)40 b(The)25 b(bac)m(kslash)h
+150 3925 y(Expansions],)k(page)g(25\).)40 b(The)25 b(bac)m(kslash)h
(retains)g(its)f(sp)s(ecial)h(meaning)g(only)f(when)g(follo)m(w)m(ed)h
(b)m(y)g(one)150 4035 y(of)k(the)g(follo)m(wing)i(c)m(haracters:)42
b(`)p Ft($)p Fu(',)30 b(`)p Ft(`)p Fu(',)h(`)p Ft(")p
(catalog)h(\014les)150 408 y(with)28 b(Spanish)f(\(es\))i(and)f(Esp)s
(eran)m(to)h(\(eo\))g(translations)h(in)m(to)f(a)g(lo)s(cal)h
(directory)f(y)m(ou)f(use)g(for)h(custom)150 518 y(translation)i
-(\014les,)g(y)m(ou)g(could)f(run)390 649 y Ft(TEXTDOMAIN=example)390
-758 y(TEXTDOMAINDIR=/usr/local)o(/sha)o(re/l)o(oca)o(le)390
-977 y(cp)47 b(es.mo)g(${TEXTDOMAINDIR}/es/LC_)o(MES)o(SAGE)o(S/${)o
-(TEX)o(TDOM)o(AIN})o(.mo)390 1087 y(cp)g(eo.mo)g
+(\014les,)g(y)m(ou)g(could)f(run)390 653 y Ft(TEXTDOMAIN=example)390
+763 y(TEXTDOMAINDIR=/usr/local)o(/sha)o(re/l)o(oca)o(le)390
+982 y(cp)47 b(es.mo)g(${TEXTDOMAINDIR}/es/LC_)o(MES)o(SAGE)o(S/${)o
+(TEX)o(TDOM)o(AIN})o(.mo)390 1092 y(cp)g(eo.mo)g
(${TEXTDOMAINDIR}/eo/LC_)o(MES)o(SAGE)o(S/${)o(TEX)o(TDOM)o(AIN})o(.mo)
-275 1218 y Fu(When)30 b(all)i(of)f(this)f(is)h(done,)g(and)f(the)h
+275 1227 y Fu(When)30 b(all)i(of)f(this)f(is)h(done,)g(and)f(the)h
(message)h(catalog)h(\014les)e(con)m(taining)h(the)f(compiled)g
-(transla-)150 1327 y(tions)c(are)g(installed)h(in)e(the)h(correct)h(lo)
+(transla-)150 1336 y(tions)c(are)g(installed)h(in)e(the)h(correct)h(lo)
s(cation,)h(y)m(our)e(users)f(will)h(b)s(e)f(able)h(to)h(see)f
-(translated)h(strings)e(in)150 1437 y(an)m(y)k(of)f(the)h(supp)s(orted)
+(translated)h(strings)e(in)150 1446 y(an)m(y)k(of)f(the)h(supp)s(orted)
d(languages)k(b)m(y)e(setting)h(the)g Ft(LANG)e Fu(or)h
Ft(LC_MESSAGES)d Fu(en)m(vironmen)m(t)k(v)-5 b(ariables)150
-1546 y(b)s(efore)30 b(running)f(y)m(our)h(script.)150
-1738 y Fk(3.1.3)63 b(Commen)m(ts)150 1885 y Fu(In)21
+1555 y(b)s(efore)30 b(running)f(y)m(our)h(script.)150
+1755 y Fk(3.1.3)63 b(Commen)m(ts)150 1902 y Fu(In)21
b(a)i(non-in)m(teractiv)m(e)h(shell,)g(or)e(an)g(in)m(teractiv)m(e)j
(shell)d(in)g(whic)m(h)g(the)g Ft(interactive_comments)16
-b Fu(option)150 1995 y(to)40 b(the)f Ft(shopt)e Fu(builtin)h(is)h
+b Fu(option)150 2012 y(to)40 b(the)f Ft(shopt)e Fu(builtin)h(is)h
(enabled)g(\(see)h(Section)g(4.3.2)g([The)f(Shopt)f(Builtin],)k(page)e
-(78\),)i(a)d(w)m(ord)150 2104 y(b)s(eginning)33 b(with)g(`)p
+(78\),)i(a)d(w)m(ord)150 2121 y(b)s(eginning)33 b(with)g(`)p
Ft(#)p Fu(')h(in)m(tro)s(duces)f(a)h(commen)m(t.)52 b(A)33
b(w)m(ord)h(b)s(egins)f(at)h(the)g(b)s(eginning)f(of)g(a)h(line,)h
-(after)150 2214 y(unquoted)20 b(whitespace,)j(or)e(after)g(an)g(op)s
+(after)150 2231 y(unquoted)20 b(whitespace,)j(or)e(after)g(an)g(op)s
(erator.)38 b(The)20 b(commen)m(t)i(causes)f(that)g(w)m(ord)f(and)g
-(all)i(remaining)150 2323 y(c)m(haracters)47 b(on)e(that)g(line)h(to)g
+(all)i(remaining)150 2341 y(c)m(haracters)47 b(on)e(that)g(line)h(to)g
(b)s(e)e(ignored.)86 b(An)44 b(in)m(teractiv)m(e)k(shell)e(without)f
-(the)g Ft(interactive_)150 2433 y(comments)27 b Fu(option)j(enabled)g
+(the)g Ft(interactive_)150 2450 y(comments)27 b Fu(option)j(enabled)g
(do)s(es)f(not)h(allo)m(w)h(commen)m(ts.)41 b(The)29
b Ft(interactive_comments)24 b Fu(option)30 b(is)150
-2542 y(enabled)g(b)m(y)g(default)h(in)f(in)m(teractiv)m(e)j(shells.)41
+2560 y(enabled)g(b)m(y)g(default)h(in)f(in)m(teractiv)m(e)j(shells.)41
b(See)30 b(Section)i(6.3)f([In)m(teractiv)m(e)i(Shells],)e(page)g(104,)
-g(for)g(a)150 2652 y(description)f(of)h(what)f(mak)m(es)h(a)g(shell)g
-(in)m(teractiv)m(e.)150 2885 y Fs(3.2)68 b(Shell)45 b(Commands)150
-3045 y Fu(A)d(simple)g(shell)g(command)f(suc)m(h)h(as)g
+g(for)g(a)150 2669 y(description)f(of)h(what)f(mak)m(es)h(a)g(shell)g
+(in)m(teractiv)m(e.)150 2911 y Fs(3.2)68 b(Shell)45 b(Commands)150
+3070 y Fu(A)d(simple)g(shell)g(command)f(suc)m(h)h(as)g
Ft(echo)29 b(a)h(b)g(c)41 b Fu(consists)i(of)f(the)f(command)h(itself)h
-(follo)m(w)m(ed)g(b)m(y)150 3154 y(argumen)m(ts,)31 b(separated)g(b)m
-(y)f(spaces.)275 3285 y(More)h(complex)h(shell)f(commands)g(are)g(comp)
+(follo)m(w)m(ed)g(b)m(y)150 3180 y(argumen)m(ts,)31 b(separated)g(b)m
+(y)f(spaces.)275 3315 y(More)h(complex)h(shell)f(commands)g(are)g(comp)
s(osed)g(of)g(simple)g(commands)g(arranged)g(together)h(in)150
-3394 y(a)f(v)-5 b(ariet)m(y)32 b(of)f(w)m(a)m(ys:)41
+3425 y(a)f(v)-5 b(ariet)m(y)32 b(of)f(w)m(a)m(ys:)41
b(in)31 b(a)g(pip)s(eline)f(in)g(whic)m(h)g(the)h(output)f(of)h(one)f
-(command)h(b)s(ecomes)f(the)h(input)f(of)150 3504 y(a)h(second,)f(in)h
+(command)h(b)s(ecomes)f(the)h(input)f(of)150 3534 y(a)h(second,)f(in)h
(a)f(lo)s(op)h(or)f(conditional)i(construct,)f(or)f(in)g(some)h(other)g
-(grouping.)150 3695 y Fk(3.2.1)63 b(Reserv)m(ed)40 b(W)-10
-b(ords)150 3842 y Fu(Reserv)m(ed)33 b(w)m(ords)g(are)g(w)m(ords)g(that)
+(grouping.)150 3734 y Fk(3.2.1)63 b(Reserv)m(ed)40 b(W)-10
+b(ords)150 3881 y Fu(Reserv)m(ed)33 b(w)m(ords)g(are)g(w)m(ords)g(that)
g(ha)m(v)m(e)h(sp)s(ecial)g(meaning)f(to)h(the)f(shell.)49
-b(They)32 b(are)h(used)g(to)g(b)s(egin)150 3952 y(and)d(end)f(the)i
-(shell's)g(comp)s(ound)e(commands.)275 4083 y(The)k(follo)m(wing)i(w)m
-(ords)e(are)h(recognized)i(as)e(reserv)m(ed)f(when)g(unquoted)g(and)g
-(the)h(\014rst)f(w)m(ord)h(of)g(a)150 4192 y(command)c(\(see)h(b)s(elo)
-m(w)g(for)f(exceptions\):)150 4323 y Ft(if)364 b(then)168
-b(elif)g(else)g(fi)336 b(time)150 4432 y(for)316 b(in)264
-b(until)120 b(while)g(do)336 b(done)150 4542 y(case)268
-b(esac)168 b(coproc)72 b(select)g(function)150 4652 y({)412
-b(})312 b([[)264 b(]])g(!)150 4782 y(in)33 b Fu(is)h(recognized)h(as)f
-(a)g(reserv)m(ed)f(w)m(ord)h(if)f(it)h(is)g(the)g(third)f(w)m(ord)g(of)
-h(a)g Ft(case)e Fu(or)i Ft(select)e Fu(command.)150 4892
-y Ft(in)e Fu(and)g Ft(do)f Fu(are)i(recognized)h(as)e(reserv)m(ed)h(w)m
-(ords)f(if)g(they)h(are)f(the)h(third)f(w)m(ord)g(in)g(a)g
-Ft(for)g Fu(command.)150 5083 y Fk(3.2.2)63 b(Simple)41
-b(Commands)150 5230 y Fu(A)20 b(simple)h(command)f(is)g(the)h(kind)e
-(of)i(command)f(that's)h(executed)g(most)g(often.)38
-b(It's)20 b(just)g(a)h(sequence)g(of)150 5340 y(w)m(ords)h(separated)i
-(b)m(y)e Ft(blank)p Fu(s,)i(terminated)f(b)m(y)g(one)g(of)g(the)g
-(shell's)g(con)m(trol)h(op)s(erators)f(\(see)h(Chapter)f(2)p
-eop end
+b(They)32 b(are)h(used)g(to)g(b)s(egin)150 3991 y(and)d(end)f(the)i
+(shell's)g(comp)s(ound)e(commands.)275 4126 y(Reserv)m(ed)h(w)m(ords)g
+(are)h(recognized)h(as)e(reserv)m(ed)h(when)e(unquoted)h(and)g(either)
+225 4261 y Fq(\017)60 b Fu(the)31 b(\014rst)e(w)m(ord)h(of)h(a)f
+(command;)225 4396 y Fq(\017)60 b Fu(the)31 b(\014rst)e(w)m(ord)h
+(follo)m(wing)i(a)f(reserv)m(ed)f(w)m(ord)g(other)h(than)f
+Ft(case)p Fu(,)g Ft(for)p Fu(,)f Ft(select)p Fu(,)g(or)i
+Ft(in)p Fu(;)225 4530 y Fq(\017)60 b Fu(the)31 b(third)e(w)m(ord)h(of)h
+(a)f Ft(case)g Fu(command)g(\(only)h Ft(in)e Fu(is)i(v)-5
+b(alid\);)225 4665 y Fq(\017)60 b Fu(the)31 b(third)e(w)m(ord)h(of)h(a)
+f Ft(for)g Fu(or)g Ft(select)f Fu(command)h(\(only)h
+Ft(in)f Fu(and)f Ft(do)h Fu(are)h(v)-5 b(alid\);)225
+4800 y Fq(\017)60 b Fu(follo)m(wing)32 b(a)f(con)m(trol)g(op)s(erator.)
+150 4960 y(The)38 b(shell)h(will)g(also)h(recognize)g(reserv)m(ed)f(w)m
+(ords)f(where)h(the)g(syn)m(tax)g(of)g(a)g(command)f(sp)s(eci\014cally)
+150 5070 y(requires)30 b(the)g(reserv)m(ed)h(w)m(ord)f(as)h(the)f(only)
+h(correct)g(tok)m(en.)275 5205 y(The)e(follo)m(wing)j(are)f(reserv)m
+(ed)g(w)m(ords:)150 5340 y Ft(if)364 b(then)168 b(elif)g(else)g(fi)336
+b(time)p eop end
%%Page: 10 16
TeXDict begin 10 15 bop 150 -116 a Fu(Chapter)30 b(3:)41
b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(10)150 299
-y([De\014nitions],)37 b(page)e(3\).)54 b(The)35 b(\014rst)e(w)m(ord)i
-(generally)g(sp)s(eci\014es)g(a)g(command)f(to)h(b)s(e)f(executed,)j
-(with)150 408 y(the)31 b(rest)f(of)h(the)f(w)m(ords)g(b)s(eing)g(that)h
-(command's)f(argumen)m(ts.)275 549 y(The)h(return)h(status)g(\(see)i
-(Section)f(3.7.5)h([Exit)f(Status],)h(page)f(48\))g(of)g(a)g(simple)f
-(command)g(is)h(its)150 658 y(exit)38 b(status)f(as)g(pro)m(vided)f(b)m
-(y)h(the)g Fm(posix)f Fu(1003.1)j Ft(waitpid)c Fu(function,)j(or)f(128)
-p Ft(+)p Fr(n)g Fu(if)g(the)g(command)150 768 y(w)m(as)31
-b(terminated)g(b)m(y)f(signal)h Fr(n)p Fu(.)150 973 y
-Fk(3.2.3)63 b(Pip)s(elines)150 1120 y Fu(A)21 b Ft(pipeline)d
+y Ft(for)316 b(in)264 b(until)120 b(while)g(do)336 b(done)150
+408 y(case)268 b(esac)168 b(coproc)72 b(select)g(function)150
+518 y({)412 b(})312 b([[)264 b(]])g(!)150 724 y Fk(3.2.2)63
+b(Simple)41 b(Commands)150 871 y Fu(A)20 b(simple)h(command)f(is)g(the)
+h(kind)e(of)i(command)f(that's)h(executed)g(most)g(often.)38
+b(It's)20 b(just)g(a)h(sequence)g(of)150 980 y(w)m(ords)h(separated)i
+(b)m(y)e Ft(blank)p Fu(s,)i(terminated)f(b)m(y)g(one)g(of)g(the)g
+(shell's)g(con)m(trol)h(op)s(erators)f(\(see)h(Chapter)f(2)150
+1090 y([De\014nitions],)37 b(page)e(3\).)54 b(The)35
+b(\014rst)e(w)m(ord)i(generally)g(sp)s(eci\014es)g(a)g(command)f(to)h
+(b)s(e)f(executed,)j(with)150 1199 y(the)31 b(rest)f(of)h(the)f(w)m
+(ords)g(b)s(eing)g(that)h(command's)f(argumen)m(ts.)275
+1340 y(The)h(return)h(status)g(\(see)i(Section)f(3.7.5)h([Exit)f
+(Status],)h(page)f(48\))g(of)g(a)g(simple)f(command)g(is)h(its)150
+1450 y(exit)38 b(status)f(as)g(pro)m(vided)f(b)m(y)h(the)g
+Fm(posix)f Fu(1003.1)j Ft(waitpid)c Fu(function,)j(or)f(128)p
+Ft(+)p Fr(n)g Fu(if)g(the)g(command)150 1559 y(w)m(as)31
+b(terminated)g(b)m(y)f(signal)h Fr(n)p Fu(.)150 1765
+y Fk(3.2.3)63 b(Pip)s(elines)150 1912 y Fu(A)21 b Ft(pipeline)d
Fu(is)j(a)g(sequence)g(of)g(one)g(or)g(more)g(commands)f(separated)h(b)
m(y)g(one)g(of)g(the)g(con)m(trol)h(op)s(erators)150
-1229 y(`)p Ft(|)p Fu(')31 b(or)f(`)p Ft(|&)p Fu('.)275
-1369 y(The)f(format)i(for)f(a)h(pip)s(eline)f(is)390
-1510 y Ft([time)46 b([-p]])h([!])g Fj(command1)e Ft([)j(|)f(or)g(|&)g
-Fj(command2)f Ft(])h(...)150 1650 y Fu(The)25 b(output)f(of)i(eac)m(h)g
+2022 y(`)p Ft(|)p Fu(')31 b(or)f(`)p Ft(|&)p Fu('.)275
+2162 y(The)f(format)i(for)f(a)h(pip)s(eline)f(is)390
+2303 y Ft([time)46 b([-p]])h([!])g Fj(command1)e Ft([)j(|)f(or)g(|&)g
+Fj(command2)f Ft(])h(...)150 2444 y Fu(The)25 b(output)f(of)i(eac)m(h)g
(command)f(in)f(the)i(pip)s(eline)e(is)i(connected)g(via)f(a)h(pip)s(e)
-e(to)i(the)f(input)f(of)h(the)h(next)150 1759 y(command.)40
+e(to)i(the)f(input)f(of)h(the)h(next)150 2554 y(command.)40
b(That)29 b(is,)h(eac)m(h)h(command)e(reads)g(the)h(previous)f
-(command's)g(output.)40 b(This)29 b(connection)150 1869
+(command's)g(output.)40 b(This)29 b(connection)150 2663
y(is)h(p)s(erformed)f(b)s(efore)h(an)m(y)h(redirections)g(sp)s
-(eci\014ed)f(b)m(y)g Fr(command1)p Fu(.)275 2009 y(If)h(`)p
+(eci\014ed)f(b)m(y)g Fr(command1)p Fu(.)275 2804 y(If)h(`)p
Ft(|&)p Fu(')h(is)g(the)g(pip)s(eline)f(op)s(erator,)i
Fr(command1)7 b Fu('s)32 b(standard)f(error,)h(in)g(addition)g(to)h
-(its)f(standard)150 2119 y(output,)j(is)f(connected)i(to)f
+(its)f(standard)150 2914 y(output,)j(is)f(connected)i(to)f
Fr(command2)7 b Fu('s)35 b(standard)e(input)g(through)h(the)g(pip)s(e;)
-i(it)f(is)f(shorthand)f(for)150 2228 y Ft(2>&1)c(|)p
+i(it)f(is)f(shorthand)f(for)150 3023 y Ft(2>&1)c(|)p
Fu(.)40 b(This)26 b(implicit)j(redirection)f(of)g(the)g(standard)f
(error)g(to)h(the)g(standard)f(output)g(is)g(p)s(erformed)150
-2338 y(after)k(an)m(y)g(redirections)g(sp)s(eci\014ed)e(b)m(y)h
+3133 y(after)k(an)m(y)g(redirections)g(sp)s(eci\014ed)e(b)m(y)h
Fr(command1)p Fu(,)h(consisten)m(t)h(with)e(that)h(shorthand.)275
-2478 y(If)38 b(the)i(reserv)m(ed)g(w)m(ord)f Ft(time)f
+3274 y(If)38 b(the)i(reserv)m(ed)g(w)m(ord)f Ft(time)f
Fu(precedes)h(the)h(pip)s(eline,)h(Bash)f(prin)m(ts)e(timing)i
-(statistics)i(for)d(the)150 2588 y(pip)s(eline)d(once)h(it)g
+(statistics)i(for)d(the)150 3383 y(pip)s(eline)d(once)h(it)g
(\014nishes.)58 b(The)36 b(statistics)i(curren)m(tly)f(consist)g(of)g
-(elapsed)f(\(w)m(all-clo)s(c)m(k\))k(time)e(and)150 2697
+(elapsed)f(\(w)m(all-clo)s(c)m(k\))k(time)e(and)150 3493
y(user)33 b(and)f(system)i(time)g(consumed)e(b)m(y)i(the)f(command's)g
(execution.)51 b(The)33 b Ft(-p)g Fu(option)g(c)m(hanges)i(the)150
-2807 y(output)24 b(format)h(to)g(that)g(sp)s(eci\014ed)f(b)m(y)g
+3602 y(output)24 b(format)h(to)g(that)g(sp)s(eci\014ed)f(b)m(y)g
Fm(posix)p Fu(.)38 b(When)24 b(the)h(shell)f(is)h(in)f
-Fm(posix)g Fu(mo)s(de)g(\(see)h(Section)g(6.11)150 2916
+Fm(posix)g Fu(mo)s(de)g(\(see)h(Section)g(6.11)150 3712
y([Bash)33 b(POSIX)f(Mo)s(de],)i(page)f(116\),)i(it)e(do)s(es)g(not)f
(recognize)j Ft(time)c Fu(as)i(a)g(reserv)m(ed)g(w)m(ord)f(if)h(the)g
-(next)150 3026 y(tok)m(en)22 b(b)s(egins)e(with)h(a)g(`)p
+(next)150 3822 y(tok)m(en)22 b(b)s(egins)e(with)h(a)g(`)p
Ft(-)p Fu('.)38 b(The)20 b(v)-5 b(alue)22 b(of)f(the)g
Ft(TIMEFORMAT)d Fu(v)-5 b(ariable)22 b(is)e(a)i(format)f(string)g(that)
-g(sp)s(eci\014es)150 3136 y(ho)m(w)29 b(the)f(timing)h(information)g
+g(sp)s(eci\014es)150 3931 y(ho)m(w)29 b(the)f(timing)h(information)g
(should)f(b)s(e)g(displa)m(y)m(ed.)40 b(See)29 b(Section)g(5.2)h([Bash)
-f(V)-8 b(ariables],)31 b(page)e(87,)150 3245 y(for)34
+f(V)-8 b(ariables],)31 b(page)e(87,)150 4041 y(for)34
b(a)g(description)g(of)g(the)g(a)m(v)-5 b(ailable)37
b(formats.)51 b(Pro)m(viding)35 b Ft(time)d Fu(as)j(a)f(reserv)m(ed)g
-(w)m(ord)g(p)s(ermits)f(the)150 3355 y(timing)g(of)g(shell)f(builtins,)
+(w)m(ord)g(p)s(ermits)f(the)150 4150 y(timing)g(of)g(shell)f(builtins,)
h(shell)f(functions,)h(and)f(pip)s(elines.)46 b(An)32
-b(external)i Ft(time)d Fu(command)h(cannot)150 3464 y(time)f(these)g
-(easily)-8 b(.)275 3604 y(When)30 b(the)g(shell)g(is)h(in)f
+b(external)i Ft(time)d Fu(command)h(cannot)150 4260 y(time)f(these)g
+(easily)-8 b(.)275 4401 y(When)30 b(the)g(shell)g(is)h(in)f
Fm(posix)f Fu(mo)s(de)h(\(see)h(Section)g(6.11)h([Bash)e(POSIX)g(Mo)s
-(de],)g(page)h(116\),)i(y)m(ou)150 3714 y(can)f(use)g
+(de],)g(page)h(116\),)i(y)m(ou)150 4510 y(can)f(use)g
Ft(time)f Fu(b)m(y)i(itself)g(as)f(a)h(simple)f(command.)46
b(In)31 b(this)h(case,)i(the)f(shell)f(displa)m(ys)g(the)h(total)h
-(user)150 3824 y(and)27 b(system)g(time)h(consumed)f(b)m(y)g(the)g
+(user)150 4620 y(and)27 b(system)g(time)h(consumed)f(b)m(y)g(the)g
(shell)h(and)f(its)g(c)m(hildren.)40 b(The)27 b Ft(TIMEFORMAT)d
-Fu(v)-5 b(ariable)28 b(sp)s(eci\014es)150 3933 y(the)j(format)f(of)h
-(the)f(time)h(information.)275 4073 y(If)c(a)h(pip)s(eline)f(is)h(not)f
+Fu(v)-5 b(ariable)28 b(sp)s(eci\014es)150 4730 y(the)j(format)f(of)h
+(the)f(time)h(information.)275 4870 y(If)c(a)h(pip)s(eline)f(is)h(not)f
(executed)i(async)m(hronously)e(\(see)i(Section)f(3.2.4)i([Lists],)f
-(page)f(11\),)i(the)e(shell)150 4183 y(w)m(aits)j(for)f(all)i(commands)
-e(in)g(the)g(pip)s(eline)g(to)h(complete.)275 4323 y(Eac)m(h)d(command)
+(page)f(11\),)i(the)e(shell)150 4980 y(w)m(aits)j(for)f(all)i(commands)
+e(in)g(the)g(pip)s(eline)g(to)h(complete.)275 5121 y(Eac)m(h)d(command)
g(in)f(a)i(m)m(ulti-command)f(pip)s(eline,)h(where)e(pip)s(es)g(are)h
-(created,)i(is)e(executed)h(in)f(its)150 4433 y(o)m(wn)h
+(created,)i(is)e(executed)h(in)f(its)150 5230 y(o)m(wn)h
Fr(subshell)p Fu(,)f(whic)m(h)h(is)g(a)g(separate)h(pro)s(cess)e(\(see)
i(Section)g(3.7.3)g([Command)f(Execution)g(En)m(viron-)150
-4542 y(men)m(t],)d(page)e(46\).)40 b(If)23 b(the)h Ft(lastpipe)d
+5340 y(men)m(t],)d(page)e(47\).)40 b(If)23 b(the)h Ft(lastpipe)d
Fu(option)j(is)g(enabled)g(using)f(the)h Ft(shopt)e Fu(builtin)h(\(see)
-i(Section)f(4.3.2)150 4652 y([The)33 b(Shopt)f(Builtin],)i(page)g
-(78\),)h(and)d(job)h(con)m(trol)h(is)f(not)g(activ)m(e,)j(the)d(last)h
-(elemen)m(t)g(of)f(a)g(pip)s(eline)150 4761 y(ma)m(y)e(b)s(e)f(run)f(b)
-m(y)h(the)g(shell)h(pro)s(cess.)275 4902 y(The)24 b(exit)i(status)f(of)
-h(a)f(pip)s(eline)g(is)g(the)g(exit)h(status)f(of)h(the)f(last)h
-(command)f(in)f(the)i(pip)s(eline,)g(unless)150 5011
-y(the)31 b Ft(pipefail)d Fu(option)j(is)g(enabled)f(\(see)i(Section)f
-(4.3.1)i([The)d(Set)h(Builtin],)g(page)h(74\).)42 b(If)30
-b Ft(pipefail)150 5121 y Fu(is)f(enabled,)g(the)f(pip)s(eline's)g
-(return)g(status)h(is)f(the)h(v)-5 b(alue)29 b(of)f(the)h(last)g
-(\(righ)m(tmost\))i(command)d(to)h(exit)150 5230 y(with)34
-b(a)h(non-zero)g(status,)i(or)d(zero)i(if)e(all)i(commands)e(exit)h
-(successfully)-8 b(.)54 b(If)34 b(the)h(reserv)m(ed)g(w)m(ord)f(`)p
-Ft(!)p Fu(')150 5340 y(precedes)e(the)f(pip)s(eline,)h(the)f(exit)i
-(status)f(is)f(the)h(logical)i(negation)f(of)e(the)h(exit)g(status)g
-(as)g(describ)s(ed)p eop end
+i(Section)f(4.3.2)p eop end
%%Page: 11 17
TeXDict begin 11 16 bop 150 -116 a Fu(Chapter)30 b(3:)41
b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(11)150 299
-y(ab)s(o)m(v)m(e.)42 b(If)30 b(a)h(pip)s(eline)f(is)h(not)g(executed)g
-(async)m(hronously)f(\(see)i(Section)f(3.2.4)h([Lists],)g(page)f(11\),)
-h(the)150 408 y(shell)39 b(w)m(aits)h(for)f(all)h(commands)e(in)h(the)g
-(pip)s(eline)g(to)g(terminate)h(b)s(efore)f(returning)f(a)h(v)-5
-b(alue.)67 b(The)150 518 y(return)29 b(status)i(of)g(an)f(async)m
-(hronous)g(pip)s(eline)g(is)g(0.)150 734 y Fk(3.2.4)63
-b(Lists)41 b(of)h(Commands)150 881 y Fu(A)37 b Ft(list)e
-Fu(is)i(a)g(sequence)g(of)g(one)g(or)f(more)h(pip)s(elines)f(separated)
-h(b)m(y)g(one)g(of)f(the)h(op)s(erators)g(`)p Ft(;)p
-Fu(',)i(`)p Ft(&)p Fu(',)150 991 y(`)p Ft(&&)p Fu(',)31
-b(or)f(`)p Ft(||)p Fu(',)g(and)g(optionally)i(terminated)f(b)m(y)f(one)
-h(of)f(`)p Ft(;)p Fu(',)h(`)p Ft(&)p Fu(',)g(or)f(a)h
-Ft(newline)p Fu(.)275 1143 y(Of)23 b(these)h(list)g(op)s(erators,)i(`)p
-Ft(&&)p Fu(')d(and)g(`)p Ft(||)p Fu(')h(ha)m(v)m(e)h(equal)f
-(precedence,)i(follo)m(w)m(ed)f(b)m(y)f(`)p Ft(;)p Fu(')g(and)f(`)p
-Ft(&)p Fu(',)i(whic)m(h)150 1252 y(ha)m(v)m(e)32 b(equal)e(precedence.)
-275 1404 y(A)f(sequence)h(of)g(one)g(or)g(more)g(newlines)f(ma)m(y)h
+y([The)33 b(Shopt)f(Builtin],)i(page)g(78\),)h(and)d(job)h(con)m(trol)h
+(is)f(not)g(activ)m(e,)j(the)d(last)h(elemen)m(t)g(of)f(a)g(pip)s
+(eline)150 408 y(ma)m(y)e(b)s(e)f(run)f(b)m(y)h(the)g(shell)h(pro)s
+(cess.)275 546 y(The)24 b(exit)i(status)f(of)h(a)f(pip)s(eline)g(is)g
+(the)g(exit)h(status)f(of)h(the)f(last)h(command)f(in)f(the)i(pip)s
+(eline,)g(unless)150 656 y(the)31 b Ft(pipefail)d Fu(option)j(is)g
+(enabled)f(\(see)i(Section)f(4.3.1)i([The)d(Set)h(Builtin],)g(page)h
+(74\).)42 b(If)30 b Ft(pipefail)150 766 y Fu(is)f(enabled,)g(the)f(pip)
+s(eline's)g(return)g(status)h(is)f(the)h(v)-5 b(alue)29
+b(of)f(the)h(last)g(\(righ)m(tmost\))i(command)d(to)h(exit)150
+875 y(with)34 b(a)h(non-zero)g(status,)i(or)d(zero)i(if)e(all)i
+(commands)e(exit)h(successfully)-8 b(.)54 b(If)34 b(the)h(reserv)m(ed)g
+(w)m(ord)f(`)p Ft(!)p Fu(')150 985 y(precedes)e(the)f(pip)s(eline,)h
+(the)f(exit)i(status)f(is)f(the)h(logical)i(negation)f(of)e(the)h(exit)
+g(status)g(as)g(describ)s(ed)150 1094 y(ab)s(o)m(v)m(e.)42
+b(If)30 b(a)h(pip)s(eline)f(is)h(not)g(executed)g(async)m(hronously)f
+(\(see)i(Section)f(3.2.4)h([Lists],)g(page)f(11\),)h(the)150
+1204 y(shell)39 b(w)m(aits)h(for)f(all)h(commands)e(in)h(the)g(pip)s
+(eline)g(to)g(terminate)h(b)s(efore)f(returning)f(a)h(v)-5
+b(alue.)67 b(The)150 1314 y(return)29 b(status)i(of)g(an)f(async)m
+(hronous)g(pip)s(eline)g(is)g(0.)150 1516 y Fk(3.2.4)63
+b(Lists)41 b(of)h(Commands)150 1663 y Fu(A)32 b Ft(list)e
+Fu(is)i(a)g(sequence)g(of)f(one)h(or)g(more)g Fm(and)e
+Fu(or)i Fm(or)f Fu(lists)h(separated)g(b)m(y)g(one)g(of)f(the)h(op)s
+(erators)g(`)p Ft(;)p Fu(')150 1773 y(or)e(`)p Ft(&)p
+Fu(',)h(or)g(a)f Ft(newline)p Fu(,)f(and)h(optionally)h(terminated)g(b)
+m(y)g(one)f(of)h(those)g(three)f(c)m(haracters.)275 1911
+y Fm(and)g Fu(and)h Fm(or)g Fu(lists)h(are)g(sequences)f(of)h(one)g(or)
+f(more)h(pip)s(elines)e(separated)i(b)m(y)g(the)f(con)m(trol)i(op)s
+(er-)150 2020 y(ators)e(`)p Ft(&&)p Fu(')f(and)g(`)p
+Ft(||)p Fu(',)h(resp)s(ectiv)m(ely)-8 b(.)42 b Fm(and)30
+b Fu(and)f Fm(or)h Fu(lists)h(are)g(executed)g(with)f(left)h(asso)s
+(ciativit)m(y)-8 b(.)275 2158 y(An)30 b Fm(and)f Fu(list)i(has)f(the)h
+(form)390 2296 y Fj(command1)46 b Ft(&&)h Fj(command2)150
+2434 y Fr(command2)38 b Fu(is)30 b(executed)i(if,)e(and)g(only)g(if,)h
+Fr(command1)38 b Fu(returns)29 b(an)h(exit)h(status)g(of)g(zero)g
+(\(success\).)275 2572 y(An)f Fm(or)f Fu(list)i(has)f(the)h(form)390
+2710 y Fj(command1)46 b Ft(||)h Fj(command2)150 2848
+y Fr(command2)38 b Fu(is)30 b(executed)i(if,)e(and)g(only)g(if,)h
+Fr(command1)38 b Fu(returns)29 b(a)i(non-zero)g(exit)g(status.)275
+2986 y(The)h(return)g(status)i(of)f Fm(and)f Fu(and)h
+Fm(or)f Fu(lists)i(is)f(the)g(exit)h(status)g(of)f(the)g(last)h
+(command)f(executed)150 3095 y(in)d(the)h(list.)275 3233
+y(Of)23 b(these)h(list)g(op)s(erators,)i(`)p Ft(&&)p
+Fu(')d(and)g(`)p Ft(||)p Fu(')h(ha)m(v)m(e)h(equal)f(precedence,)i
+(follo)m(w)m(ed)f(b)m(y)f(`)p Ft(;)p Fu(')g(and)f(`)p
+Ft(&)p Fu(',)i(whic)m(h)150 3343 y(ha)m(v)m(e)32 b(equal)e(precedence.)
+275 3481 y(A)f(sequence)h(of)g(one)g(or)g(more)g(newlines)f(ma)m(y)h
(app)s(ear)f(in)h(a)g Ft(list)e Fu(to)j(delimit)f(commands,)g(equiv-)
-150 1513 y(alen)m(t)i(to)f(a)g(semicolon.)275 1665 y(If)c(a)h(command)f
+150 3590 y(alen)m(t)i(to)f(a)g(semicolon.)275 3728 y(If)c(a)h(command)f
(is)h(terminated)g(b)m(y)g(the)g(con)m(trol)h(op)s(erator)f(`)p
Ft(&)p Fu(',)h(the)e(shell)h(executes)h(the)f(command)150
-1775 y(async)m(hronously)g(in)h(a)g(subshell.)39 b(This)28
+3838 y(async)m(hronously)g(in)h(a)g(subshell.)39 b(This)28
b(is)h(kno)m(wn)f(as)h(executing)h(the)f(command)g(in)f(the)h
-Fr(bac)m(kground)p Fu(,)150 1884 y(and)42 b(these)i(are)f(referred)g
+Fr(bac)m(kground)p Fu(,)150 3947 y(and)42 b(these)i(are)f(referred)g
(to)g(as)h Fr(async)m(hronous)i Fu(commands.)78 b(The)43
-b(shell)g(do)s(es)g(not)g(w)m(ait)h(for)f(the)150 1994
+b(shell)g(do)s(es)g(not)g(w)m(ait)h(for)f(the)150 4057
y(command)34 b(to)h(\014nish,)f(and)f(the)h(return)f(status)i(is)f(0)g
(\(true\).)53 b(When)34 b(job)g(con)m(trol)h(is)f(not)h(activ)m(e)h
-(\(see)150 2103 y(Chapter)27 b(7)h([Job)f(Con)m(trol],)i(page)g(125\),)
-h(the)d(standard)g(input)f(for)i(async)m(hronous)f(commands,)h(in)f
-(the)150 2213 y(absence)k(of)f(an)m(y)h(explicit)h(redirections,)f(is)f
-(redirected)h(from)f Ft(/dev/null)p Fu(.)275 2365 y(Commands)19
-b(separated)j(b)m(y)f(a)g(`)p Ft(;)p Fu(')g(are)h(executed)g(sequen)m
-(tially;)k(the)21 b(shell)g(w)m(aits)h(for)f(eac)m(h)h(command)150
-2474 y(to)31 b(terminate)h(in)e(turn.)39 b(The)30 b(return)f(status)i
-(is)f(the)h(exit)g(status)g(of)g(the)f(last)h(command)f(executed.)275
-2626 y Fm(and)g Fu(and)h Fm(or)g Fu(lists)h(are)g(sequences)f(of)h(one)
-g(or)f(more)h(pip)s(elines)e(separated)i(b)m(y)g(the)f(con)m(trol)i(op)
-s(er-)150 2735 y(ators)e(`)p Ft(&&)p Fu(')f(and)g(`)p
-Ft(||)p Fu(',)h(resp)s(ectiv)m(ely)-8 b(.)42 b Fm(and)30
-b Fu(and)f Fm(or)h Fu(lists)h(are)g(executed)g(with)f(left)h(asso)s
-(ciativit)m(y)-8 b(.)275 2887 y(An)30 b Fm(and)f Fu(list)i(has)f(the)h
-(form)390 3039 y Fj(command1)46 b Ft(&&)h Fj(command2)150
-3190 y Fr(command2)38 b Fu(is)30 b(executed)i(if,)e(and)g(only)g(if,)h
-Fr(command1)38 b Fu(returns)29 b(an)h(exit)h(status)g(of)g(zero)g
-(\(success\).)275 3342 y(An)f Fm(or)f Fu(list)i(has)f(the)h(form)390
-3493 y Fj(command1)46 b Ft(||)h Fj(command2)150 3645
-y Fr(command2)38 b Fu(is)30 b(executed)i(if,)e(and)g(only)g(if,)h
-Fr(command1)38 b Fu(returns)29 b(a)i(non-zero)g(exit)g(status.)275
-3797 y(The)h(return)g(status)i(of)f Fm(and)f Fu(and)h
-Fm(or)f Fu(lists)i(is)f(the)g(exit)h(status)g(of)f(the)g(last)h
-(command)f(executed)150 3906 y(in)d(the)h(list.)150 4123
-y Fk(3.2.5)63 b(Comp)s(ound)42 b(Commands)150 4270 y
-Fu(Comp)s(ound)29 b(commands)h(are)i(the)f(shell)g(programming)f
+(\(see)150 4167 y(Chapter)j(7)h([Job)g(Con)m(trol],)k(page)c(125\),)k
+(the)c(standard)f(input)g(for)h(async)m(hronous)f(commands,)j(in)150
+4276 y(the)f(absence)h(of)f(an)m(y)g(explicit)h(redirections)g(in)m(v)m
+(olving)g(the)f(standard)f(input,)j(is)e(redirected)g(from)150
+4386 y Ft(/dev/null)p Fu(.)275 4524 y(Commands)25 b(separated)i(or)f
+(terminated)h(b)m(y)g(`)p Ft(;)p Fu(')f(\(or)h(equiv)-5
+b(alen)m(t)28 b Ft(newline)p Fu(\))d(are)i(executed)g(sequen-)150
+4633 y(tially;)32 b(the)f(shell)f(w)m(aits)i(for)e(eac)m(h)h(command)f
+(to)i(terminate)f(in)f(turn.)275 4771 y(The)f(return)h(status)g(of)h(a)
+g(list)g(is)f(the)h(exit)g(status)g(of)f(the)h(last)g(command)f
+(executed.)150 4974 y Fk(3.2.5)63 b(Comp)s(ound)42 b(Commands)150
+5121 y Fu(Comp)s(ound)29 b(commands)h(are)i(the)f(shell)g(programming)f
(language)j(constructs.)42 b(Eac)m(h)32 b(construct)f(b)s(e-)150
-4379 y(gins)25 b(with)f(a)i(reserv)m(ed)f(w)m(ord)f(or)h(con)m(trol)h
+5230 y(gins)25 b(with)f(a)i(reserv)m(ed)f(w)m(ord)f(or)h(con)m(trol)h
(op)s(erator)f(and)g(is)g(terminated)g(b)m(y)g(a)g(corresp)s(onding)f
-(reserv)m(ed)150 4489 y(w)m(ord)i(or)g(op)s(erator.)40
+(reserv)m(ed)150 5340 y(w)m(ord)i(or)g(op)s(erator.)40
b(An)m(y)26 b(redirections)g(\(see)i(Section)f(3.6)g([Redirections],)h
-(page)f(41\))h(asso)s(ciated)f(with)150 4598 y(a)k(comp)s(ound)f
-(command)h(apply)f(to)i(all)g(commands)f(within)f(that)i(comp)s(ound)d
-(command)i(unless)f(ex-)150 4708 y(plicitly)i(o)m(v)m(erridden.)275
-4860 y(In)20 b(most)h(cases)g(a)g(list)h(of)f(commands)f(in)g(a)h(comp)
-s(ound)f(command's)g(description)h(ma)m(y)g(b)s(e)f(separated)150
-4969 y(from)30 b(the)h(rest)g(of)g(the)g(command)g(b)m(y)f(one)h(or)g
-(more)g(newlines,)g(and)f(ma)m(y)i(b)s(e)e(follo)m(w)m(ed)i(b)m(y)f(a)g
-(newline)150 5079 y(in)f(place)h(of)g(a)g(semicolon.)275
-5230 y(Bash)45 b(pro)m(vides)h(lo)s(oping)g(constructs,)j(conditional)e
-(commands,)j(and)44 b(mec)m(hanisms)i(to)g(group)150
-5340 y(commands)30 b(and)g(execute)i(them)e(as)g(a)h(unit.)p
-eop end
+(page)f(41\))h(asso)s(ciated)f(with)p eop end
%%Page: 12 18
TeXDict begin 12 17 bop 150 -116 a Fu(Chapter)30 b(3:)41
b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(12)150 299
-y Fk(3.2.5.1)63 b(Lo)s(oping)43 b(Constructs)150 446
-y Fu(Bash)31 b(supp)s(orts)d(the)j(follo)m(wing)g(lo)s(oping)g
-(constructs.)275 579 y(Note)k(that)f(wherev)m(er)g(a)g(`)p
+y(a)31 b(comp)s(ound)f(command)h(apply)f(to)i(all)g(commands)f(within)f
+(that)i(comp)s(ound)d(command)i(unless)f(ex-)150 408
+y(plicitly)i(o)m(v)m(erridden.)275 548 y(In)20 b(most)h(cases)g(a)g
+(list)h(of)f(commands)f(in)g(a)h(comp)s(ound)f(command's)g(description)
+h(ma)m(y)g(b)s(e)f(separated)150 657 y(from)30 b(the)h(rest)g(of)g(the)
+g(command)g(b)m(y)f(one)h(or)g(more)g(newlines,)g(and)f(ma)m(y)i(b)s(e)
+e(follo)m(w)m(ed)i(b)m(y)f(a)g(newline)150 767 y(in)f(place)h(of)g(a)g
+(semicolon.)275 906 y(Bash)45 b(pro)m(vides)h(lo)s(oping)g(constructs,)
+j(conditional)e(commands,)j(and)44 b(mec)m(hanisms)i(to)g(group)150
+1015 y(commands)30 b(and)g(execute)i(them)e(as)g(a)h(unit.)150
+1219 y Fk(3.2.5.1)63 b(Lo)s(oping)43 b(Constructs)150
+1366 y Fu(Bash)31 b(supp)s(orts)d(the)j(follo)m(wing)g(lo)s(oping)g
+(constructs.)275 1505 y(Note)k(that)f(wherev)m(er)g(a)g(`)p
Ft(;)p Fu(')g(app)s(ears)f(in)h(the)g(description)g(of)g(a)g(command's)
-g(syn)m(tax,)i(it)e(ma)m(y)h(b)s(e)150 689 y(replaced)c(with)f(one)h
-(or)f(more)g(newlines.)150 845 y Ft(until)240 b Fu(The)30
+g(syn)m(tax,)i(it)e(ma)m(y)h(b)s(e)150 1615 y(replaced)c(with)f(one)h
+(or)f(more)g(newlines.)150 1781 y Ft(until)240 b Fu(The)30
b(syn)m(tax)h(of)f(the)h Ft(until)e Fu(command)h(is:)870
-979 y Ft(until)46 b Fj(test-commands)p Ft(;)e(do)j Fj
-(consequent-commands)p Ft(;)c(done)630 1112 y Fu(Execute)f
+1918 y Ft(until)46 b Fj(test-commands)p Ft(;)e(do)j Fj
+(consequent-commands)p Ft(;)c(done)630 2055 y Fu(Execute)f
Fr(consequen)m(t-commands)k Fu(as)41 b(long)h(as)f Fr(test-commands)46
-b Fu(has)41 b(an)g(exit)h(status)630 1221 y(whic)m(h)c(is)h(not)g
+b Fu(has)41 b(an)g(exit)h(status)630 2164 y(whic)m(h)c(is)h(not)g
(zero.)67 b(The)38 b(return)g(status)h(is)f(the)h(exit)h(status)f(of)g
-(the)g(last)g(command)630 1331 y(executed)31 b(in)f Fr(consequen)m
+(the)g(last)g(command)630 2274 y(executed)31 b(in)f Fr(consequen)m
(t-commands)p Fu(,)i(or)e(zero)h(if)g(none)f(w)m(as)h(executed.)150
-1488 y Ft(while)240 b Fu(The)30 b(syn)m(tax)h(of)f(the)h
-Ft(while)e Fu(command)h(is:)870 1621 y Ft(while)46 b
+2438 y Ft(while)240 b Fu(The)30 b(syn)m(tax)h(of)f(the)h
+Ft(while)e Fu(command)h(is:)870 2575 y Ft(while)46 b
Fj(test-commands)p Ft(;)e(do)j Fj(consequent-commands)p
-Ft(;)c(done)630 1754 y Fu(Execute)f Fr(consequen)m(t-commands)k
+Ft(;)c(done)630 2711 y Fu(Execute)f Fr(consequen)m(t-commands)k
Fu(as)41 b(long)h(as)f Fr(test-commands)46 b Fu(has)41
-b(an)g(exit)h(status)630 1864 y(of)34 b(zero.)53 b(The)34
+b(an)g(exit)h(status)630 2821 y(of)34 b(zero.)53 b(The)34
b(return)f(status)h(is)h(the)f(exit)h(status)g(of)f(the)g(last)h
-(command)f(executed)h(in)630 1973 y Fr(consequen)m(t-commands)p
+(command)f(executed)h(in)630 2931 y Fr(consequen)m(t-commands)p
Fu(,)c(or)g(zero)g(if)f(none)g(w)m(as)h(executed.)150
-2130 y Ft(for)336 b Fu(The)30 b(syn)m(tax)h(of)f(the)h
-Ft(for)e Fu(command)i(is:)870 2263 y Ft(for)47 b Fj(name)g
+3095 y Ft(for)336 b Fu(The)30 b(syn)m(tax)h(of)f(the)h
+Ft(for)e Fu(command)i(is:)870 3231 y Ft(for)47 b Fj(name)g
Ft([)g([in)g Fj(words)f Ft(...)o(])i(;)f(])h(do)f Fj(commands)p
-Ft(;)e(done)630 2397 y Fu(Expand)31 b Fr(w)m(ords)k Fu(\(see)e(Section)
-g(3.5)h([Shell)e(Expansions],)g(page)h(24\),)h(and)e(then)g(execute)630
-2506 y Fr(commands)41 b Fu(once)d(for)g(eac)m(h)h(w)m(ord)e(in)g(the)h
+Ft(;)e(done)630 3368 y Fu(Expand)31 b Fr(w)m(ords)k Fu(\(see)e(Section)
+g(3.5)h([Shell)e(Expansions],)g(page)h(25\),)h(and)e(then)g(execute)630
+3478 y Fr(commands)41 b Fu(once)d(for)g(eac)m(h)h(w)m(ord)e(in)g(the)h
(resultan)m(t)g(list,)j(with)c Fr(name)43 b Fu(b)s(ound)35
-b(to)k(the)630 2616 y(curren)m(t)44 b(w)m(ord.)81 b(If)44
+b(to)k(the)630 3587 y(curren)m(t)44 b(w)m(ord.)81 b(If)44
b(`)p Ft(in)30 b Fj(words)p Fu(')42 b(is)i(not)h(presen)m(t,)i(the)e
-Ft(for)e Fu(command)g(executes)j(the)630 2725 y Fr(commands)39
+Ft(for)e Fu(command)g(executes)j(the)630 3697 y Fr(commands)39
b Fu(once)e(for)f(eac)m(h)h(p)s(ositional)g(parameter)f(that)h(is)f
(set,)i(as)e(if)g(`)p Ft(in)30 b("$@")p Fu(')36 b(had)630
-2835 y(b)s(een)30 b(sp)s(eci\014ed)f(\(see)j(Section)f(3.4.2)h([Sp)s
-(ecial)f(P)m(arameters],)h(page)f(23\).)630 2968 y(The)c(return)f
+3807 y(b)s(een)30 b(sp)s(eci\014ed)f(\(see)j(Section)f(3.4.2)h([Sp)s
+(ecial)f(P)m(arameters],)h(page)f(24\).)630 3943 y(The)c(return)f
(status)h(is)g(the)h(exit)g(status)f(of)g(the)h(last)g(command)e(that)i
-(executes.)41 b(If)27 b(there)630 3078 y(are)38 b(no)f(items)g(in)g
+(executes.)41 b(If)27 b(there)630 4053 y(are)38 b(no)f(items)g(in)g
(the)h(expansion)f(of)g Fr(w)m(ords)p Fu(,)i(no)e(commands)g(are)g
-(executed,)j(and)d(the)630 3187 y(return)29 b(status)i(is)f(zero.)630
-3320 y(There)45 b(is)g(an)g(alternate)i(form)e(of)h(the)f
+(executed,)j(and)d(the)630 4162 y(return)29 b(status)i(is)f(zero.)630
+4299 y(There)45 b(is)g(an)g(alternate)i(form)e(of)h(the)f
Ft(for)g Fu(command)g(whic)m(h)g(is)g(similar)h(to)g(the)f(C)630
-3430 y(language:)870 3563 y Ft(for)i(\(\()g Fj(expr1)f
+4409 y(language:)870 4546 y Ft(for)i(\(\()g Fj(expr1)f
Ft(;)i Fj(expr2)e Ft(;)i Fj(expr3)e Ft(\)\))h([;])g(do)g
-Fj(commands)f Ft(;)h(done)630 3696 y Fu(First,)28 b(ev)-5
+Fj(commands)f Ft(;)h(done)630 4682 y Fu(First,)28 b(ev)-5
b(aluate)27 b(the)g(arithmetic)g(expression)f Fr(expr1)33
b Fu(according)27 b(to)g(the)f(rules)g(describ)s(ed)630
-3806 y(b)s(elo)m(w)i(\(see)g(Section)g(6.5)g([Shell)g(Arithmetic],)h
+4792 y(b)s(elo)m(w)i(\(see)g(Section)g(6.5)g([Shell)g(Arithmetic],)h
(page)f(107\).)41 b(Then,)28 b(rep)s(eatedly)f(ev)-5
-b(aluate)630 3916 y(the)41 b(arithmetic)g(expression)g
+b(aluate)630 4902 y(the)41 b(arithmetic)g(expression)g
Fr(expr2)47 b Fu(un)m(til)41 b(it)g(ev)-5 b(aluates)42
-b(to)g(zero.)71 b(Eac)m(h)42 b(time)f Fr(expr2)630 4025
+b(to)g(zero.)71 b(Eac)m(h)42 b(time)f Fr(expr2)630 5011
y Fu(ev)-5 b(aluates)35 b(to)g(a)f(non-zero)g(v)-5 b(alue,)35
b(execute)g Fr(commands)i Fu(and)c(ev)-5 b(aluate)36
-b(the)e(arithmetic)630 4135 y(expression)g Fr(expr3)p
+b(the)e(arithmetic)630 5121 y(expression)g Fr(expr3)p
Fu(.)50 b(If)34 b(an)m(y)g(expression)f(is)h(omitted,)i(it)e(b)s(eha)m
(v)m(es)h(as)f(if)g(it)g(ev)-5 b(aluates)35 b(to)630
-4244 y(1.)49 b(The)32 b(return)g(v)-5 b(alue)33 b(is)g(the)g(exit)h
+5230 y(1.)49 b(The)32 b(return)g(v)-5 b(alue)33 b(is)g(the)g(exit)h
(status)f(of)g(the)g(last)h(command)f(in)f Fr(commands)k
-Fu(that)630 4354 y(is)30 b(executed,)i(or)e(non-zero)h(if)g(an)m(y)f
-(of)h(the)f(expressions)g(is)h(in)m(v)-5 b(alid.)275
-4511 y(Use)31 b(the)h Ft(break)e Fu(and)h Ft(continue)e
-Fu(builtins)i(\(see)h(Section)h(4.1)f([Bourne)g(Shell)f(Builtins],)i
-(page)f(52\))150 4620 y(to)f(con)m(trol)h(lo)s(op)e(execution.)150
-4817 y Fk(3.2.5.2)63 b(Conditional)42 b(Constructs)150
-4988 y Ft(if)384 b Fu(The)30 b(syn)m(tax)h(of)f(the)h
-Ft(if)f Fu(command)g(is:)870 5121 y Ft(if)47 b Fj(test-commands)p
-Ft(;)d(then)965 5230 y Fj(consequent-commands)p Ft(;)870
-5340 y([elif)i Fj(more-test-commands)p Ft(;)d(then)p
-eop end
+Fu(that)630 5340 y(is)30 b(executed,)i(or)e(non-zero)h(if)g(an)m(y)f
+(of)h(the)f(expressions)g(is)h(in)m(v)-5 b(alid.)p eop
+end
%%Page: 13 19
TeXDict begin 13 18 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(13)965 299
-y Fj(more-consequents)p Ft(;])870 408 y([else)46 b Fj
-(alternate-consequents)p Ft(;])870 518 y(fi)630 652 y
-Fu(The)53 b Fr(test-commands)58 b Fu(list)c(is)g(executed,)60
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(13)275 299
+y(Use)31 b(the)h Ft(break)e Fu(and)h Ft(continue)e Fu(builtins)i(\(see)
+h(Section)h(4.1)f([Bourne)g(Shell)f(Builtins],)i(page)f(52\))150
+408 y(to)f(con)m(trol)h(lo)s(op)e(execution.)150 600
+y Fk(3.2.5.2)63 b(Conditional)42 b(Constructs)150 768
+y Ft(if)384 b Fu(The)30 b(syn)m(tax)h(of)f(the)h Ft(if)f
+Fu(command)g(is:)870 898 y Ft(if)47 b Fj(test-commands)p
+Ft(;)d(then)965 1008 y Fj(consequent-commands)p Ft(;)870
+1117 y([elif)i Fj(more-test-commands)p Ft(;)d(then)965
+1227 y Fj(more-consequents)p Ft(;])870 1337 y([else)j
+Fj(alternate-consequents)p Ft(;])870 1446 y(fi)630 1577
+y Fu(The)53 b Fr(test-commands)58 b Fu(list)c(is)g(executed,)60
b(and)53 b(if)g(its)h(return)e(status)i(is)f(zero,)61
-b(the)630 762 y Fr(consequen)m(t-commands)44 b Fu(list)d(is)f
+b(the)630 1686 y Fr(consequen)m(t-commands)44 b Fu(list)d(is)f
(executed.)70 b(If)40 b Fr(test-commands)k Fu(returns)39
-b(a)h(non-zero)630 871 y(status,)45 b(eac)m(h)e Ft(elif)d
+b(a)h(non-zero)630 1796 y(status,)45 b(eac)m(h)e Ft(elif)d
Fu(list)i(is)g(executed)h(in)e(turn,)j(and)d(if)g(its)h(exit)h(status)f
-(is)f(zero,)46 b(the)630 981 y(corresp)s(onding)37 b
+(is)f(zero,)46 b(the)630 1906 y(corresp)s(onding)37 b
Fr(more-consequen)m(ts)42 b Fu(is)c(executed)g(and)f(the)h(command)g
-(completes.)63 b(If)630 1090 y(`)p Ft(else)29 b Fj
+(completes.)63 b(If)630 2015 y(`)p Ft(else)29 b Fj
(alternate-consequents)p Fu(')c(is)30 b(presen)m(t,)h(and)f(the)g
-(\014nal)g(command)g(in)g(the)g(\014nal)630 1200 y Ft(if)44
+(\014nal)g(command)g(in)g(the)g(\014nal)630 2125 y Ft(if)44
b Fu(or)g Ft(elif)f Fu(clause)i(has)f(a)h(non-zero)g(exit)g(status,)j
-(then)c Fr(alternate-consequen)m(ts)51 b Fu(is)630 1310
+(then)c Fr(alternate-consequen)m(ts)51 b Fu(is)630 2234
y(executed.)k(The)34 b(return)g(status)h(is)f(the)h(exit)h(status)f(of)
-g(the)g(last)g(command)g(executed,)630 1419 y(or)30 b(zero)i(if)e(no)g
-(condition)h(tested)g(true.)150 1577 y Ft(case)288 b
+g(the)g(last)g(command)g(executed,)630 2344 y(or)30 b(zero)i(if)e(no)g
+(condition)h(tested)g(true.)150 2495 y Ft(case)288 b
Fu(The)30 b(syn)m(tax)h(of)f(the)h Ft(case)e Fu(command)h(is:)870
-1711 y Ft(case)47 b Fj(word)f Ft(in)1061 1821 y([)h([\(])g
+2626 y Ft(case)47 b Fj(word)f Ft(in)1061 2736 y([)h([\(])g
Fj(pattern)f Ft([|)h Fj(pattern)p Ft(]...)m(\))h Fj(command-list)c
-Ft(;;]...)870 1931 y(esac)630 2064 y(case)20 b Fu(will)i(selectiv)m
+Ft(;;]...)870 2845 y(esac)630 2976 y(case)20 b Fu(will)i(selectiv)m
(ely)j(execute)e(the)e Fr(command-list)k Fu(corresp)s(onding)20
-b(to)i(the)g(\014rst)f Fr(pattern)630 2174 y Fu(that)36
+b(to)i(the)g(\014rst)f Fr(pattern)630 3085 y Fu(that)36
b(matc)m(hes)h Fr(w)m(ord)p Fu(,)g(pro)s(ceeding)e(from)g(the)h
(\014rst)f(pattern)h(to)g(the)g(last.)57 b(The)35 b(matc)m(h)630
-2284 y(is)30 b(p)s(erformed)f(according)i(to)h(the)e(rules)g(describ)s
+3195 y(is)30 b(p)s(erformed)f(according)i(to)h(the)e(rules)g(describ)s
(ed)f(b)s(elo)m(w)i(in)f(Section)h(3.5.8.1)i([P)m(attern)630
-2393 y(Matc)m(hing],)44 b(page)d(39.)70 b(If)40 b(the)g
-Ft(nocasematch)c Fu(shell)41 b(option)f(\(see)h(the)f(description)g(of)
-630 2503 y Ft(shopt)34 b Fu(in)h(Section)h(4.3.2)h([The)e(Shopt)f
-(Builtin],)k(page)e(78\))g(is)g(enabled,)g(the)g(matc)m(h)g(is)630
-2612 y(p)s(erformed)29 b(without)i(regard)g(to)g(the)g(case)h(of)f
-(alphab)s(etic)g(c)m(haracters.)44 b(The)30 b(`)p Ft(|)p
-Fu(')h(is)g(used)630 2722 y(to)g(separate)h(m)m(ultiple)f(patterns)g
-(in)f(a)h(pattern)g(list,)h(and)e(the)g(`)p Ft(\))p Fu(')h(op)s(erator)
-g(terminates)630 2832 y(the)i(pattern)g(list.)49 b(A)33
-b(pattern)g(list)h(and)e(an)h(asso)s(ciated)h Fr(command-list)i
-Fu(is)d(kno)m(wn)f(as)i(a)630 2941 y Fr(clause)p Fu(.)630
-3075 y(Eac)m(h)e(clause)h(m)m(ust)e(b)s(e)g(terminated)h(with)g(`)p
-Ft(;;)p Fu(',)g(`)p Ft(;&)p Fu(',)g(or)g(`)p Ft(;;&)p
-Fu('.)44 b(The)31 b Fr(w)m(ord)k Fu(undergo)s(es)630
-3185 y(tilde)j(expansion,)i(parameter)e(expansion,)i(command)e
-(substitution,)h(pro)s(cess)e(substi-)630 3294 y(tution,)i(arithmetic)f
-(expansion,)h(and)e(quote)g(remo)m(v)-5 b(al)38 b(\(see)g(Section)g
-(3.5.3)h([Shell)e(P)m(a-)630 3404 y(rameter)d(Expansion],)g(page)g
-(27\))h(b)s(efore)e(the)h(shell)g(attempts)g(to)g(matc)m(h)h(the)f
-(pattern.)630 3513 y(Eac)m(h)g Fr(pattern)f Fu(undergo)s(es)g(tilde)h
-(expansion,)g(parameter)g(expansion,)g(command)f(sub-)630
-3623 y(stitution,)e(arithmetic)h(expansion,)f(pro)s(cess)e
-(substitution,)i(and)f(quote)h(remo)m(v)-5 b(al.)630
-3757 y(There)30 b(ma)m(y)g(b)s(e)f(an)h(arbitrary)g(n)m(um)m(b)s(er)f
-(of)h Ft(case)f Fu(clauses,)i(eac)m(h)g(terminated)g(b)m(y)e(a)i(`)p
-Ft(;;)p Fu(',)630 3867 y(`)p Ft(;&)p Fu(',)c(or)e(`)p
-Ft(;;&)p Fu('.)39 b(The)25 b(\014rst)g(pattern)h(that)g(matc)m(hes)h
-(determines)e(the)h(command-list)g(that)630 3976 y(is)35
-b(executed.)55 b(It's)35 b(a)g(common)g(idiom)g(to)g(use)g(`)p
-Ft(*)p Fu(')g(as)g(the)g(\014nal)f(pattern)h(to)h(de\014ne)e(the)630
-4086 y(default)d(case,)g(since)g(that)g(pattern)f(will)h(alw)m(a)m(ys)h
-(matc)m(h.)630 4220 y(Here)j(is)g(an)g(example)h(using)e
-Ft(case)g Fu(in)g(a)h(script)g(that)h(could)f(b)s(e)f(used)g(to)h
-(describ)s(e)g(one)630 4329 y(in)m(teresting)d(feature)f(of)f(an)g
-(animal:)870 4463 y Ft(echo)47 b(-n)g("Enter)f(the)h(name)f(of)i(an)f
-(animal:)f(")870 4573 y(read)h(ANIMAL)870 4682 y(echo)g(-n)g("The)f
-($ANIMAL)g(has)h(")870 4792 y(case)g($ANIMAL)e(in)965
-4902 y(horse)i(|)g(dog)g(|)h(cat\))e(echo)h(-n)g("four";;)965
-5011 y(man)g(|)h(kangaroo)d(\))j(echo)e(-n)i("two";;)965
-5121 y(*\))g(echo)e(-n)h("an)g(unknown)f(number)g(of";;)870
-5230 y(esac)870 5340 y(echo)h(")g(legs.")p eop end
+3304 y(Matc)m(hing],)27 b(page)e(39.)39 b(The)23 b Fr(w)m(ord)k
+Fu(undergo)s(es)c(tilde)h(expansion,)i(parameter)e(expansion,)630
+3414 y(command)36 b(substitution,)h(pro)s(cess)e(substitution,)i
+(arithmetic)h(expansion,)f(and)e(quote)630 3524 y(remo)m(v)-5
+b(al)23 b(\(see)f(Section)g(3.5.3)h([Shell)f(P)m(arameter)g
+(Expansion],)h(page)g(27\))f(b)s(efore)f(the)h(shell)630
+3633 y(attempts)29 b(to)g(matc)m(h)g(the)f(pattern.)40
+b(Eac)m(h)29 b Fr(pattern)f Fu(examined)g(undergo)s(es)f(tilde)i
+(expan-)630 3743 y(sion,)35 b(parameter)g(expansion,)g(command)f
+(substitution,)h(arithmetic)h(expansion,)f(pro-)630 3852
+y(cess)c(substitution,)g(and)f(quote)h(remo)m(v)-5 b(al.)43
+b(If)30 b(the)h Ft(nocasematch)c Fu(shell)k(option)g(\(see)h(the)630
+3962 y(description)g(of)g Ft(shopt)f Fu(in)h(Section)g(4.3.2)i([The)e
+(Shopt)f(Builtin],)j(page)e(78\))i(is)e(enabled,)630
+4072 y(the)f(matc)m(h)g(is)f(p)s(erformed)f(without)h(regard)h(to)g
+(the)f(case)i(of)e(alphab)s(etic)h(c)m(haracters.)630
+4202 y(A)d(pattern)h(list)f(is)h(a)f(set)h(of)f(one)h(or)f(more)g
+(patterns)g(separated)h(b)m(y)f(`)p Ft(|)p Fu(',)h(and)e(terminated)630
+4312 y(b)m(y)f(the)h(`)p Ft(\))p Fu(')g(op)s(erator.)40
+b(A)27 b(case)g Fr(clause)33 b Fu(is)26 b(a)h(pattern)g(list)g(and)f
+(an)h(asso)s(ciated)h Fr(command-)630 4421 y(list)p Fu(,)36
+b(terminated)e(b)m(y)f(`)p Ft(;;)p Fu(',)i(`)p Ft(;&)p
+Fu(',)g(or)f(`)p Ft(;;&)p Fu('.)50 b(The)33 b(terminator)i(is)f
+(optional)h(for)e(the)h(last)630 4531 y(clause)25 b(preceding)g
+Ft(esac)p Fu(.)37 b(There)24 b(ma)m(y)h(b)s(e)f(an)h(arbitrary)f(n)m
+(um)m(b)s(er)f(of)i Ft(case)e Fu(clauses.)39 b(The)630
+4641 y(\014rst)34 b(pattern)g(that)h(matc)m(hes)h(determines)e(the)h
+(command-list)g(that)g(is)f(executed.)54 b(It's)630 4750
+y(a)30 b(common)g(idiom)g(to)h(use)e(`)p Ft(*)p Fu(')h(as)g(the)g
+(\014nal)g(pattern)g(to)g(de\014ne)f(the)h(default)g(case,)i(since)630
+4860 y(that)f(pattern)f(will)h(alw)m(a)m(ys)h(matc)m(h.)630
+4990 y(Here)j(is)g(an)g(example)h(using)e Ft(case)g Fu(in)g(a)h(script)
+g(that)h(could)f(b)s(e)f(used)g(to)h(describ)s(e)g(one)630
+5100 y(in)m(teresting)d(feature)f(of)f(an)g(animal:)870
+5230 y Ft(echo)47 b(-n)g("Enter)f(the)h(name)f(of)i(an)f(animal:)f(")
+870 5340 y(read)h(ANIMAL)p eop end
%%Page: 14 20
TeXDict begin 14 19 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(14)630 299
-y(If)35 b(the)h(`)p Ft(;;)p Fu(')g(op)s(erator)g(is)g(used,)h(the)f
-Ft(case)f Fu(command)h(completes)h(after)f(the)g(\014rst)f(pat-)630
-408 y(tern)g(matc)m(h.)56 b(Using)36 b(`)p Ft(;&)p Fu(')f(in)g(place)h
-(of)g(`)p Ft(;;)p Fu(')f(causes)h(execution)g(to)g(con)m(tin)m(ue)h
-(with)e(the)630 518 y Fr(command-list)25 b Fu(asso)s(ciated)g(with)d
-(the)h(next)g(clause,)i(if)e(an)m(y)-8 b(.)39 b(Using)23
-b(`)p Ft(;;&)p Fu(')f(in)g(place)i(of)f(`)p Ft(;;)p Fu(')630
-628 y(causes)30 b(the)h(shell)f(to)h(test)g(the)f(patterns)g(in)g(the)g
-(next)g(clause,)i(if)e(an)m(y)-8 b(,)31 b(and)e(execute)j(an)m(y)630
-737 y(asso)s(ciated)j Fr(command-list)h Fu(if)e(the)f(matc)m(h)i
-(succeeds,)f(con)m(tin)m(uing)h(the)f(case)g(statemen)m(t)630
-847 y(execution)e(as)e(if)h(the)f(pattern)h(list)g(had)e(not)i(matc)m
-(hed.)630 982 y(The)j(return)f(status)h(is)g(zero)h(if)g(no)f
-Fr(pattern)g Fu(matc)m(hes.)53 b(Otherwise,)35 b(the)g(return)e(status)
-630 1092 y(is)d(the)h(exit)g(status)g(of)f(the)h(last)g
-Fr(command-list)i Fu(executed.)150 1253 y Ft(select)630
-1388 y Fu(The)g Ft(select)f Fu(construct)i(allo)m(ws)h(the)f(easy)g
-(generation)h(of)e(men)m(us.)50 b(It)34 b(has)f(almost)i(the)630
-1498 y(same)c(syn)m(tax)g(as)f(the)h Ft(for)e Fu(command:)870
-1633 y Ft(select)46 b Fj(name)h Ft([in)g Fj(words)f Ft(...)o(];)h(do)h
-Fj(commands)p Ft(;)d(done)630 1769 y Fu(First,)27 b(expand)e(the)g
-(list)h(of)g(w)m(ords)f(follo)m(wing)i Ft(in)p Fu(,)f(generating)h(a)f
-(list)g(of)f(items,)i(and)e(prin)m(t)630 1878 y(the)37
-b(set)g(of)g(expanded)g(w)m(ords)f(on)h(the)g(standard)f(error)g
-(stream,)j(eac)m(h)f(preceded)f(b)m(y)g(a)630 1988 y(n)m(um)m(b)s(er.)i
-(If)30 b(the)g(`)p Ft(in)g Fj(words)p Fu(')f(is)h(omitted,)h(prin)m(t)f
-(the)g(p)s(ositional)h(parameters,)f(as)g(if)g(`)p Ft(in)630
-2097 y("$@")p Fu(')36 b(had)h(b)s(een)g(sp)s(eci\014ed.)61
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(14)870 299
+y Ft(echo)47 b(-n)g("The)f($ANIMAL)g(has)h(")870 408
+y(case)g($ANIMAL)e(in)965 518 y(horse)i(|)g(dog)g(|)h(cat\))e(echo)h
+(-n)g("four";;)965 628 y(man)g(|)h(kangaroo)d(\))j(echo)e(-n)i("two";;)
+965 737 y(*\))g(echo)e(-n)h("an)g(unknown)f(number)g(of";;)870
+847 y(esac)870 956 y(echo)h(")g(legs.")630 1110 y Fu(When)29
+b(a)h(matc)m(h)g(is)g(found,)e Ft(case)g Fu(executes)j(the)e(corresp)s
+(onding)g Fr(command-list)p Fu(.)41 b(If)29 b(the)630
+1219 y(`)p Ft(;;)p Fu(')39 b(op)s(erator)g(terminates)h(the)f(case)h
+(clause,)i(the)e Ft(case)d Fu(command)i(completes)h(after)630
+1329 y(the)27 b(\014rst)e(pattern)i(matc)m(h.)40 b(Using)27
+b(the)f(`)p Ft(;&)p Fu(')g(terminator)i(con)m(tin)m(ues)f(execution)h
+(with)e(the)630 1439 y Fr(command-list)f Fu(asso)s(ciated)e(with)f(the)
+g(next)g(clause,)i(if)e(an)m(y)-8 b(.)39 b(Using)22 b(the)g(`)p
+Ft(;;&)p Fu(')f(terminator)630 1548 y(causes)i(the)g(shell)g(to)g(test)
+h(the)e(pattern)h(list)h(in)e(the)h(next)f(clause,)k(if)c(an)m(y)-8
+b(,)26 b(and)c(execute)i(an)m(y)630 1658 y(asso)s(ciated)35
+b Fr(command-list)h Fu(if)e(the)f(matc)m(h)i(succeeds,)f(con)m(tin)m
+(uing)h(the)f(case)g(statemen)m(t)630 1767 y(execution)e(as)e(if)h(the)
+f(pattern)h(list)g(had)e(not)i(matc)m(hed.)630 1899 y(The)j(return)f
+(status)h(is)g(zero)h(if)g(no)f Fr(pattern)g Fu(matc)m(hes.)53
+b(Otherwise,)35 b(the)g(return)e(status)630 2008 y(is)d(the)h(exit)g
+(status)g(of)f(the)h(last)g Fr(command-list)i Fu(executed.)150
+2162 y Ft(select)630 2293 y Fu(The)g Ft(select)f Fu(construct)i(allo)m
+(ws)h(the)f(easy)g(generation)h(of)e(men)m(us.)50 b(It)34
+b(has)f(almost)i(the)630 2403 y(same)c(syn)m(tax)g(as)f(the)h
+Ft(for)e Fu(command:)870 2534 y Ft(select)46 b Fj(name)h
+Ft([in)g Fj(words)f Ft(...)o(];)h(do)h Fj(commands)p
+Ft(;)d(done)630 2666 y Fu(First,)27 b(expand)e(the)g(list)h(of)g(w)m
+(ords)f(follo)m(wing)i Ft(in)p Fu(,)f(generating)h(a)f(list)g(of)f
+(items,)i(and)e(prin)m(t)630 2776 y(the)37 b(set)g(of)g(expanded)g(w)m
+(ords)f(on)h(the)g(standard)f(error)g(stream,)j(eac)m(h)f(preceded)f(b)
+m(y)g(a)630 2885 y(n)m(um)m(b)s(er.)i(If)30 b(the)g(`)p
+Ft(in)g Fj(words)p Fu(')f(is)h(omitted,)h(prin)m(t)f(the)g(p)s
+(ositional)h(parameters,)f(as)g(if)g(`)p Ft(in)630 2995
+y("$@")p Fu(')36 b(had)h(b)s(een)g(sp)s(eci\014ed.)61
b Ft(select)36 b Fu(then)h(displa)m(ys)g(the)h Ft(PS3)e
-Fu(prompt)h(and)f(reads)i(a)630 2207 y(line)30 b(from)f(the)h(standard)
+Fu(prompt)h(and)f(reads)i(a)630 3104 y(line)30 b(from)f(the)h(standard)
e(input.)40 b(If)29 b(the)h(line)g(consists)g(of)f(a)h(n)m(um)m(b)s(er)
-f(corresp)s(onding)f(to)630 2317 y(one)e(of)g(the)g(displa)m(y)m(ed)h
+f(corresp)s(onding)f(to)630 3214 y(one)e(of)g(the)g(displa)m(y)m(ed)h
(w)m(ords,)f(then)g Ft(select)e Fu(sets)j(the)f(v)-5
b(alue)26 b(of)g Fr(name)31 b Fu(to)c(that)g(w)m(ord.)38
-b(If)630 2426 y(the)30 b(line)h(is)f(empt)m(y)-8 b(,)31
+b(If)630 3324 y(the)30 b(line)h(is)f(empt)m(y)-8 b(,)31
b Ft(select)d Fu(displa)m(ys)i(the)g(w)m(ords)g(and)f(prompt)g(again.)
-42 b(If)30 b Ft(EOF)f Fu(is)h(read,)630 2536 y Ft(select)h
+42 b(If)30 b Ft(EOF)f Fu(is)h(read,)630 3433 y Ft(select)h
Fu(completes)k(and)d(returns)g(1.)49 b(An)m(y)33 b(other)g(v)-5
b(alue)34 b(read)f(causes)g Fr(name)38 b Fu(to)c(b)s(e)e(set)630
-2645 y(to)f(n)m(ull.)41 b(The)30 b(line)g(read)h(is)f(sa)m(v)m(ed)h(in)
-g(the)f(v)-5 b(ariable)31 b Ft(REPLY)p Fu(.)630 2781
+3543 y(to)f(n)m(ull.)41 b(The)30 b(line)g(read)h(is)f(sa)m(v)m(ed)h(in)
+g(the)f(v)-5 b(ariable)31 b Ft(REPLY)p Fu(.)630 3674
y(The)42 b Fr(commands)j Fu(are)d(executed)h(after)g(eac)m(h)g
(selection)h(un)m(til)e(a)h Ft(break)d Fu(command)i(is)630
-2890 y(executed,)32 b(at)f(whic)m(h)f(p)s(oin)m(t)g(the)h
-Ft(select)d Fu(command)i(completes.)630 3026 y(Here)39
+3784 y(executed,)32 b(at)f(whic)m(h)f(p)s(oin)m(t)g(the)h
+Ft(select)d Fu(command)i(completes.)630 3915 y(Here)39
b(is)g(an)g(example)h(that)f(allo)m(ws)i(the)e(user)f(to)i(pic)m(k)f(a)
-g(\014lename)h(from)e(the)h(curren)m(t)630 3135 y(directory)-8
+g(\014lename)h(from)e(the)h(curren)m(t)630 4025 y(directory)-8
b(,)32 b(and)d(displa)m(ys)i(the)f(name)h(and)f(index)f(of)i(the)g
-(\014le)f(selected.)870 3271 y Ft(select)46 b(fname)g(in)i(*;)870
-3380 y(do)870 3490 y(echo)f(you)g(picked)f($fname)g(\\\($REPLY\\\))870
-3599 y(break;)870 3709 y(done)150 3870 y(\(\(...)o(\)\))870
-4006 y(\(\()h Fj(expression)e Ft(\)\))630 4141 y Fu(The)33
+(\014le)f(selected.)870 4156 y Ft(select)46 b(fname)g(in)i(*;)870
+4266 y(do)870 4376 y(echo)f(you)g(picked)f($fname)g(\\\($REPLY\\\))870
+4485 y(break;)870 4595 y(done)150 4748 y(\(\(...)o(\)\))870
+4880 y(\(\()h Fj(expression)e Ft(\)\))630 5011 y Fu(The)33
b(arithmetic)i Fr(expression)f Fu(is)f(ev)-5 b(aluated)35
b(according)g(to)f(the)g(rules)f(describ)s(ed)g(b)s(elo)m(w)630
-4251 y(\(see)38 b(Section)g(6.5)h([Shell)e(Arithmetic],)j(page)f
+5121 y(\(see)38 b(Section)g(6.5)h([Shell)e(Arithmetic],)j(page)f
(107\).)63 b(The)36 b Fr(expression)h Fu(undergo)s(es)g(the)630
-4360 y(same)25 b(expansions)g(as)g(if)g(it)g(w)m(ere)g(within)g(double)
-f(quotes,)j(but)d(unescap)s(ed)g(double)g(quote)630 4470
+5230 y(same)25 b(expansions)g(as)g(if)g(it)g(w)m(ere)g(within)g(double)
+f(quotes,)j(but)d(unescap)s(ed)g(double)g(quote)630 5340
y(c)m(haracters)35 b(in)e Fr(expression)g Fu(are)g(not)h(treated)g(sp)s
-(ecially)g(and)f(are)g(remo)m(v)m(ed.)51 b(Since)33 b(this)630
-4579 y(can)21 b(p)s(oten)m(tially)i(result)d(in)h(empt)m(y)g(strings,)i
-(this)e(command)f(treats)i(those)f(as)g(expressions)630
-4689 y(that)31 b(ev)-5 b(aluate)33 b(to)e(0.)42 b(If)30
-b(the)h(v)-5 b(alue)32 b(of)e(the)h(expression)g(is)g(non-zero,)g(the)g
-(return)f(status)630 4798 y(is)g(0;)h(otherwise)g(the)g(return)e
-(status)i(is)f(1.)150 4960 y Ft([[...)o(]])870 5095 y([[)47
-b Fj(expression)e Ft(]])630 5230 y Fu(Ev)-5 b(aluate)24
-b(the)e(conditional)i(expression)e Fr(expression)g Fu(and)g(return)f(a)
-i(status)g(of)f(zero)h(\(true\))630 5340 y(or)28 b(non-zero)g
-(\(false\).)41 b(Expressions)27 b(are)h(comp)s(osed)f(of)h(the)g
-(primaries)f(describ)s(ed)g(b)s(elo)m(w)p eop end
+(ecially)g(and)f(are)g(remo)m(v)m(ed.)51 b(Since)33 b(this)p
+eop end
%%Page: 15 21
TeXDict begin 15 20 bop 150 -116 a Fu(Chapter)30 b(3:)41
b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(15)630 299
-y(in)36 b(Section)h(6.4)h([Bash)f(Conditional)g(Expressions],)g(page)g
-(105.)60 b(The)36 b(w)m(ords)g(b)s(et)m(w)m(een)630 408
-y(the)27 b Ft([[)f Fu(and)h Ft(]])f Fu(do)h(not)g(undergo)f(w)m(ord)h
-(splitting)g(and)g(\014lename)g(expansion.)39 b(The)27
-b(shell)630 518 y(p)s(erforms)f(tilde)j(expansion,)f(parameter)g(and)g
-(v)-5 b(ariable)28 b(expansion,)h(arithmetic)g(expan-)630
-628 y(sion,)j(command)g(substitution,)g(pro)s(cess)g(substitution,)g
-(and)f(quote)i(remo)m(v)-5 b(al)33 b(on)e(those)630 737
-y(w)m(ords.)48 b(Conditional)34 b(op)s(erators)f(suc)m(h)f(as)h(`)p
-Ft(-f)p Fu(')g(m)m(ust)g(b)s(e)f(unquoted)h(to)g(b)s(e)g(recognized)630
-847 y(as)e(primaries.)630 978 y(When)k(used)f(with)h
+y(can)21 b(p)s(oten)m(tially)i(result)d(in)h(empt)m(y)g(strings,)i
+(this)e(command)f(treats)i(those)f(as)g(expressions)630
+408 y(that)31 b(ev)-5 b(aluate)33 b(to)e(0.)42 b(If)30
+b(the)h(v)-5 b(alue)32 b(of)e(the)h(expression)g(is)g(non-zero,)g(the)g
+(return)f(status)630 518 y(is)g(0;)h(otherwise)g(the)g(return)e(status)
+i(is)f(1.)150 667 y Ft([[...)o(]])870 797 y([[)47 b Fj(expression)e
+Ft(]])630 927 y Fu(Ev)-5 b(aluate)24 b(the)e(conditional)i(expression)e
+Fr(expression)g Fu(and)g(return)f(a)i(status)g(of)f(zero)h(\(true\))630
+1036 y(or)28 b(non-zero)g(\(false\).)41 b(Expressions)27
+b(are)h(comp)s(osed)f(of)h(the)g(primaries)f(describ)s(ed)g(b)s(elo)m
+(w)630 1146 y(in)36 b(Section)h(6.4)h([Bash)f(Conditional)g
+(Expressions],)g(page)g(105.)60 b(The)36 b(w)m(ords)g(b)s(et)m(w)m(een)
+630 1255 y(the)27 b Ft([[)f Fu(and)h Ft(]])f Fu(do)h(not)g(undergo)f(w)
+m(ord)h(splitting)g(and)g(\014lename)g(expansion.)39
+b(The)27 b(shell)630 1365 y(p)s(erforms)f(tilde)j(expansion,)f
+(parameter)g(and)g(v)-5 b(ariable)28 b(expansion,)h(arithmetic)g
+(expan-)630 1474 y(sion,)j(command)g(substitution,)g(pro)s(cess)g
+(substitution,)g(and)f(quote)i(remo)m(v)-5 b(al)33 b(on)e(those)630
+1584 y(w)m(ords.)48 b(Conditional)34 b(op)s(erators)f(suc)m(h)f(as)h(`)
+p Ft(-f)p Fu(')g(m)m(ust)g(b)s(e)f(unquoted)h(to)g(b)s(e)g(recognized)
+630 1694 y(as)e(primaries.)630 1823 y(When)k(used)f(with)h
Ft([[)p Fu(,)h(the)f(`)p Ft(<)p Fu(')g(and)g(`)p Ft(>)p
Fu(')g(op)s(erators)g(sort)g(lexicographically)j(using)d(the)630
-1088 y(curren)m(t)30 b(lo)s(cale.)630 1219 y(When)22
+1933 y(curren)m(t)30 b(lo)s(cale.)630 2062 y(When)22
b(the)h(`)p Ft(==)p Fu(')f(and)g(`)p Ft(!=)p Fu(')g(op)s(erators)h(are)
g(used,)g(the)g(string)f(to)i(the)e(righ)m(t)h(of)g(the)g(op)s(erator)
-630 1329 y(is)31 b(considered)g(a)h(pattern)f(and)g(matc)m(hed)h
+630 2172 y(is)31 b(considered)g(a)h(pattern)f(and)g(matc)m(hed)h
(according)g(to)g(the)g(rules)f(describ)s(ed)f(b)s(elo)m(w)h(in)630
-1439 y(Section)d(3.5.8.1)h([P)m(attern)f(Matc)m(hing],)h(page)f(39,)g
+2281 y(Section)d(3.5.8.1)h([P)m(attern)f(Matc)m(hing],)h(page)f(39,)g
(as)f(if)g(the)g Ft(extglob)d Fu(shell)j(option)g(w)m(ere)630
-1548 y(enabled.)46 b(The)31 b(`)p Ft(=)p Fu(')h(op)s(erator)h(is)f
+2391 y(enabled.)46 b(The)31 b(`)p Ft(=)p Fu(')h(op)s(erator)h(is)f
(iden)m(tical)h(to)g(`)p Ft(==)p Fu('.)46 b(If)31 b(the)h
-Ft(nocasematch)d Fu(shell)j(option)630 1658 y(\(see)42
+Ft(nocasematch)d Fu(shell)j(option)630 2501 y(\(see)42
b(the)f(description)g(of)h Ft(shopt)d Fu(in)i(Section)h(4.3.2)h([The)e
-(Shopt)f(Builtin],)45 b(page)d(78\))630 1767 y(is)e(enabled,)i(the)e
+(Shopt)f(Builtin],)45 b(page)d(78\))630 2610 y(is)e(enabled,)i(the)e
(matc)m(h)h(is)e(p)s(erformed)g(without)g(regard)h(to)h(the)f(case)g
-(of)g(alphab)s(etic)630 1877 y(c)m(haracters.)h(The)28
+(of)g(alphab)s(etic)630 2720 y(c)m(haracters.)h(The)28
b(return)e(v)-5 b(alue)28 b(is)g(0)g(if)g(the)g(string)g(matc)m(hes)h
(\(`)p Ft(==)p Fu('\))f(or)g(do)s(es)f(not)h(matc)m(h)630
-1987 y(\(`)p Ft(!=)p Fu('\))j(the)g(pattern,)f(and)g(1)h(otherwise.)630
-2118 y(If)20 b(y)m(ou)h(quote)g(an)m(y)f(part)h(of)f(the)h(pattern,)h
+2829 y(\(`)p Ft(!=)p Fu('\))j(the)g(pattern,)f(and)g(1)h(otherwise.)630
+2959 y(If)20 b(y)m(ou)h(quote)g(an)m(y)f(part)h(of)f(the)h(pattern,)h
(using)e(an)m(y)h(of)f(the)h(shell's)g(quoting)g(mec)m(hanisms,)630
-2228 y(the)43 b(quoted)g(p)s(ortion)g(is)g(matc)m(hed)h(literally)-8
+3068 y(the)43 b(quoted)g(p)s(ortion)g(is)g(matc)m(hed)h(literally)-8
b(.)81 b(This)42 b(means)h(ev)m(ery)h(c)m(haracter)h(in)e(the)630
-2337 y(quoted)34 b(p)s(ortion)f(matc)m(hes)i(itself,)h(instead)e(of)f
+3178 y(quoted)34 b(p)s(ortion)f(matc)m(hes)i(itself,)h(instead)e(of)f
(ha)m(ving)i(an)m(y)f(sp)s(ecial)g(pattern)g(matc)m(hing)630
-2447 y(meaning.)630 2578 y(An)f(additional)i(binary)e(op)s(erator,)i(`)
+3288 y(meaning.)630 3417 y(An)f(additional)i(binary)e(op)s(erator,)i(`)
p Ft(=~)p Fu(',)g(is)f(a)m(v)-5 b(ailable,)37 b(with)c(the)h(same)g
-(precedence)h(as)630 2688 y(`)p Ft(==)p Fu(')40 b(and)g(`)p
+(precedence)h(as)630 3527 y(`)p Ft(==)p Fu(')40 b(and)g(`)p
Ft(!=)p Fu('.)70 b(When)40 b(y)m(ou)g(use)g(`)p Ft(=~)p
Fu(',)j(the)d(string)h(to)f(the)h(righ)m(t)g(of)f(the)g(op)s(erator)h
-(is)630 2798 y(considered)36 b(a)g Fm(posix)f Fu(extended)g(regular)h
+(is)630 3636 y(considered)36 b(a)g Fm(posix)f Fu(extended)g(regular)h
(expression)g(pattern)f(and)g(matc)m(hed)i(accord-)630
-2907 y(ingly)k(\(using)f(the)h Fm(posix)f Ft(regcomp)f
+3746 y(ingly)k(\(using)f(the)h Fm(posix)f Ft(regcomp)f
Fu(and)h Ft(regexec)e Fu(in)m(terfaces)k(usually)f(describ)s(ed)e(in)
-630 3017 y Fl(r)-5 b(e)g(gex)11 b Fu(\(3\)\).)56 b(The)34
+630 3856 y Fl(r)-5 b(e)g(gex)11 b Fu(\(3\)\).)56 b(The)34
b(return)g(v)-5 b(alue)35 b(is)g(0)g(if)g(the)g(string)g(matc)m(hes)h
-(the)f(pattern,)h(and)e(1)i(if)e(it)630 3126 y(do)s(es)39
+(the)f(pattern,)h(and)e(1)i(if)e(it)630 3965 y(do)s(es)39
b(not.)66 b(If)38 b(the)h(regular)g(expression)g(is)g(syn)m(tactically)
-i(incorrect,)i(the)c(conditional)630 3236 y(expression)e(returns)e(2.)
+i(incorrect,)i(the)c(conditional)630 4075 y(expression)e(returns)e(2.)
61 b(If)37 b(the)g Ft(nocasematch)d Fu(shell)j(option)h(\(see)g(the)f
-(description)g(of)630 3345 y Ft(shopt)d Fu(in)h(Section)h(4.3.2)h([The)
+(description)g(of)630 4184 y Ft(shopt)d Fu(in)h(Section)h(4.3.2)h([The)
e(Shopt)f(Builtin],)k(page)e(78\))g(is)g(enabled,)g(the)g(matc)m(h)g
-(is)630 3455 y(p)s(erformed)29 b(without)h(regard)h(to)g(the)f(case)i
-(of)e(alphab)s(etic)h(c)m(haracters.)630 3587 y(Y)-8
+(is)630 4294 y(p)s(erformed)29 b(without)h(regard)h(to)g(the)f(case)i
+(of)e(alphab)s(etic)h(c)m(haracters.)630 4423 y(Y)-8
b(ou)23 b(can)g(quote)g(an)m(y)g(part)g(of)g(the)g(pattern)f(to)i
(force)f(the)g(quoted)g(p)s(ortion)f(to)h(b)s(e)f(matc)m(hed)630
-3696 y(literally)33 b(instead)f(of)g(as)f(a)h(regular)g(expression)f
+4533 y(literally)33 b(instead)f(of)g(as)f(a)h(regular)g(expression)f
(\(see)h(ab)s(o)m(v)m(e\).)46 b(If)31 b(the)h(pattern)f(is)h(stored)630
-3806 y(in)h(a)i(shell)f(v)-5 b(ariable,)35 b(quoting)f(the)g(v)-5
+4643 y(in)h(a)i(shell)f(v)-5 b(ariable,)35 b(quoting)f(the)g(v)-5
b(ariable)35 b(expansion)e(forces)i(the)f(en)m(tire)g(pattern)g(to)630
-3915 y(b)s(e)c(matc)m(hed)h(literally)-8 b(.)630 4047
+4752 y(b)s(e)c(matc)m(hed)h(literally)-8 b(.)630 4882
y(The)30 b(matc)m(h)h(succeeds)g(if)f(the)h(pattern)g(matc)m(hes)g(an)m
(y)g(part)f(of)h(the)f(string.)41 b(If)30 b(y)m(ou)h(w)m(an)m(t)630
-4156 y(to)d(force)g(the)g(pattern)f(to)h(matc)m(h)g(the)g(en)m(tire)g
+4991 y(to)d(force)g(the)g(pattern)f(to)h(matc)m(h)g(the)g(en)m(tire)g
(string,)h(anc)m(hor)e(the)h(pattern)f(using)g(the)h(`)p
-Ft(^)p Fu(')630 4266 y(and)i(`)p Ft($)p Fu(')g(regular)h(expression)f
-(op)s(erators.)630 4398 y(F)-8 b(or)31 b(example,)g(the)f(follo)m(wing)
+Ft(^)p Fu(')630 5101 y(and)i(`)p Ft($)p Fu(')g(regular)h(expression)f
+(op)s(erators.)630 5230 y(F)-8 b(or)31 b(example,)g(the)f(follo)m(wing)
h(will)f(matc)m(h)h(a)g(line)f(\(stored)g(in)g(the)g(shell)g(v)-5
-b(ariable)31 b Ft(line)p Fu(\))630 4507 y(if)42 b(there)h(is)g(a)f
+b(ariable)31 b Ft(line)p Fu(\))630 5340 y(if)42 b(there)h(is)g(a)f
(sequence)h(of)g(c)m(haracters)h(an)m(ywhere)e(in)g(the)h(v)-5
-b(alue)43 b(consisting)g(of)g(an)m(y)630 4617 y(n)m(um)m(b)s(er,)26
-b(including)g(zero,)i(of)f(c)m(haracters)g(in)f(the)h
-Ft(space)e Fu(c)m(haracter)j(class,)g(immediately)630
-4726 y(follo)m(w)m(ed)k(b)m(y)e(zero)h(or)g(one)f(instances)h(of)g(`)p
-Ft(a)p Fu(',)g(then)f(a)h(`)p Ft(b)p Fu(':)870 4858 y
+b(alue)43 b(consisting)g(of)g(an)m(y)p eop end
+%%Page: 16 22
+TeXDict begin 16 21 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(16)630 299
+y(n)m(um)m(b)s(er,)26 b(including)g(zero,)i(of)f(c)m(haracters)g(in)f
+(the)h Ft(space)e Fu(c)m(haracter)j(class,)g(immediately)630
+408 y(follo)m(w)m(ed)k(b)m(y)e(zero)h(or)g(one)f(instances)h(of)g(`)p
+Ft(a)p Fu(',)g(then)f(a)h(`)p Ft(b)p Fu(':)870 542 y
Ft([[)47 b($line)g(=~)g([[:space:]]*\(a\)?b)c(]])630
-4989 y Fu(That)f(means)g(v)-5 b(alues)42 b(for)g Ft(line)f
+675 y Fu(That)f(means)g(v)-5 b(alues)42 b(for)g Ft(line)f
Fu(lik)m(e)i(`)p Ft(aab)p Fu(',)i(`)31 b Ft(aaaaaab)p
Fu(',)43 b(`)p Ft(xaby)p Fu(',)i(and)c(`)31 b Ft(ab)p
-Fu(')42 b(will)g(all)630 5099 y(matc)m(h,)32 b(as)e(will)h(a)g(line)f
+Fu(')42 b(will)g(all)630 784 y(matc)m(h,)32 b(as)e(will)h(a)g(line)f
(con)m(taining)i(a)f(`)p Ft(b)p Fu(')g(an)m(ywhere)f(in)g(its)h(v)-5
-b(alue.)630 5230 y(If)28 b(y)m(ou)h(w)m(an)m(t)g(to)g(matc)m(h)h(a)e(c)
-m(haracter)j(that's)e(sp)s(ecial)g(to)g(the)g(regular)f(expression)g
-(gram-)630 5340 y(mar)g(\(`)p Ft(^$|[]\(\)\\.*+?)p Fu('\),)e(it)j(has)f
+b(alue.)630 917 y(If)28 b(y)m(ou)h(w)m(an)m(t)g(to)g(matc)m(h)h(a)e(c)m
+(haracter)j(that's)e(sp)s(ecial)g(to)g(the)g(regular)f(expression)g
+(gram-)630 1027 y(mar)g(\(`)p Ft(^$|[]\(\)\\.*+?)p Fu('\),)e(it)j(has)f
(to)h(b)s(e)e(quoted)h(to)h(remo)m(v)m(e)g(its)g(sp)s(ecial)g(meaning.)
-40 b(This)p eop end
-%%Page: 16 22
-TeXDict begin 16 21 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(16)630 299
-y(means)24 b(that)h(in)f(the)h(pattern)f(`)p Ft(xxx.txt)p
-Fu(',)g(the)h(`)p Ft(.)p Fu(')f(matc)m(hes)i(an)m(y)f(c)m(haracter)g
-(in)f(the)h(string)630 408 y(\(its)34 b(usual)f(regular)g(expression)g
-(meaning\),)i(but)e(in)g(the)g(pattern)h(`)p Ft("xxx.txt")p
-Fu(',)e(it)i(can)630 518 y(only)c(matc)m(h)i(a)f(literal)g(`)p
-Ft(.)p Fu('.)630 655 y(Lik)m(ewise,)i(if)f(y)m(ou)g(w)m(an)m(t)g(to)h
-(include)e(a)h(c)m(haracter)h(in)e(y)m(our)h(pattern)g(that)g(has)f(a)h
-(sp)s(ecial)630 765 y(meaning)21 b(to)h(the)g(regular)f(expression)g
-(grammar,)i(y)m(ou)f(m)m(ust)f(mak)m(e)h(sure)e(it's)i(not)g(quoted.)
-630 874 y(If)44 b(y)m(ou)g(w)m(an)m(t)h(to)g(anc)m(hor)f(a)h(pattern)f
-(at)h(the)f(b)s(eginning)f(or)h(end)g(of)g(the)g(string,)k(for)630
-984 y(instance,)e(y)m(ou)d(cannot)g(quote)g(the)f(`)p
-Ft(^)p Fu(')h(or)f(`)p Ft($)p Fu(')g(c)m(haracters)i(using)e(an)m(y)g
-(form)g(of)h(shell)630 1093 y(quoting.)630 1230 y(If)28
-b(y)m(ou)h(w)m(an)m(t)g(to)g(matc)m(h)h(`)p Ft(initial)e(string)p
-Fu(')f(at)i(the)g(start)g(of)g(a)g(line,)g(the)g(follo)m(wing)h(will)
-630 1340 y(w)m(ork:)870 1477 y Ft([[)47 b($line)g(=~)g(^"initial)e
-(string")h(]])630 1614 y Fu(but)30 b(this)g(will)h(not:)870
-1751 y Ft([[)47 b($line)g(=~)g("^initial)e(string")h(]])630
-1888 y Fu(b)s(ecause)c(in)h(the)f(second)h(example)g(the)g(`)p
-Ft(^)p Fu(')f(is)h(quoted)g(and)f(do)s(esn't)g(ha)m(v)m(e)i(its)e
-(usual)630 1998 y(sp)s(ecial)31 b(meaning.)630 2134 y(It)h(is)f
-(sometimes)h(di\016cult)g(to)g(sp)s(ecify)f(a)h(regular)g(expression)f
-(prop)s(erly)f(without)h(using)630 2244 y(quotes,)c(or)f(to)g(k)m(eep)h
-(trac)m(k)g(of)e(the)h(quoting)g(used)f(b)m(y)h(regular)f(expressions)h
-(while)f(pa)m(ying)630 2354 y(atten)m(tion)40 b(to)f(shell)f(quoting)h
-(and)e(the)h(shell's)h(quote)f(remo)m(v)-5 b(al.)65 b(Storing)38
-b(the)h(regular)630 2463 y(expression)45 b(in)g(a)g(shell)h(v)-5
-b(ariable)46 b(is)f(often)g(a)h(useful)e(w)m(a)m(y)i(to)g(a)m(v)m(oid)h
-(problems)d(with)630 2573 y(quoting)35 b(c)m(haracters)g(that)g(are)g
-(sp)s(ecial)g(to)g(the)f(shell.)53 b(F)-8 b(or)35 b(example,)h(the)e
-(follo)m(wing)i(is)630 2682 y(equiv)-5 b(alen)m(t)32
-b(to)f(the)f(pattern)h(used)f(ab)s(o)m(v)m(e:)870 2819
-y Ft(pattern='[[:space:]]*\(a\))o(?b')870 2929 y([[)47
-b($line)g(=~)g($pattern)e(]])630 3066 y Fu(Shell)29 b(programmers)f
-(should)f(tak)m(e)k(sp)s(ecial)e(care)g(with)g(bac)m(kslashes,)h(since)
-f(bac)m(kslashes)630 3176 y(are)22 b(used)f(b)m(y)h(b)s(oth)f(the)h
-(shell)g(and)f(regular)h(expressions)f(to)i(remo)m(v)m(e)g(the)f(sp)s
-(ecial)h(meaning)630 3285 y(from)j(the)g(follo)m(wing)i(c)m(haracter.)
-41 b(This)25 b(means)h(that)h(after)g(the)f(shell's)g(w)m(ord)g
-(expansions)630 3395 y(complete)i(\(see)f(Section)g(3.5)h([Shell)e
-(Expansions],)h(page)g(24\),)i(an)m(y)d(bac)m(kslashes)i(remain-)630
-3504 y(ing)44 b(in)f(parts)g(of)h(the)g(pattern)f(that)h(w)m(ere)g
+40 b(This)630 1136 y(means)24 b(that)h(in)f(the)h(pattern)f(`)p
+Ft(xxx.txt)p Fu(',)g(the)h(`)p Ft(.)p Fu(')f(matc)m(hes)i(an)m(y)f(c)m
+(haracter)g(in)f(the)h(string)630 1246 y(\(its)34 b(usual)f(regular)g
+(expression)g(meaning\),)i(but)e(in)g(the)g(pattern)h(`)p
+Ft("xxx.txt")p Fu(',)e(it)i(can)630 1356 y(only)c(matc)m(h)i(a)f
+(literal)g(`)p Ft(.)p Fu('.)630 1489 y(Lik)m(ewise,)i(if)f(y)m(ou)g(w)m
+(an)m(t)g(to)h(include)e(a)h(c)m(haracter)h(in)e(y)m(our)h(pattern)g
+(that)g(has)f(a)h(sp)s(ecial)630 1598 y(meaning)21 b(to)h(the)g
+(regular)f(expression)g(grammar,)i(y)m(ou)f(m)m(ust)f(mak)m(e)h(sure)e
+(it's)i(not)g(quoted.)630 1708 y(If)44 b(y)m(ou)g(w)m(an)m(t)h(to)g
+(anc)m(hor)f(a)h(pattern)f(at)h(the)f(b)s(eginning)f(or)h(end)g(of)g
+(the)g(string,)k(for)630 1817 y(instance,)e(y)m(ou)d(cannot)g(quote)g
+(the)f(`)p Ft(^)p Fu(')h(or)f(`)p Ft($)p Fu(')g(c)m(haracters)i(using)e
+(an)m(y)g(form)g(of)h(shell)630 1927 y(quoting.)630 2060
+y(If)28 b(y)m(ou)h(w)m(an)m(t)g(to)g(matc)m(h)h(`)p Ft(initial)e
+(string)p Fu(')f(at)i(the)g(start)g(of)g(a)g(line,)g(the)g(follo)m
+(wing)h(will)630 2170 y(w)m(ork:)870 2303 y Ft([[)47
+b($line)g(=~)g(^"initial)e(string")h(]])630 2436 y Fu(but)30
+b(this)g(will)h(not:)870 2569 y Ft([[)47 b($line)g(=~)g("^initial)e
+(string")h(]])630 2702 y Fu(b)s(ecause)c(in)h(the)f(second)h(example)g
+(the)g(`)p Ft(^)p Fu(')f(is)h(quoted)g(and)f(do)s(esn't)g(ha)m(v)m(e)i
+(its)e(usual)630 2812 y(sp)s(ecial)31 b(meaning.)630
+2945 y(It)h(is)f(sometimes)h(di\016cult)g(to)g(sp)s(ecify)f(a)h
+(regular)g(expression)f(prop)s(erly)f(without)h(using)630
+3054 y(quotes,)c(or)f(to)g(k)m(eep)h(trac)m(k)g(of)e(the)h(quoting)g
+(used)f(b)m(y)h(regular)f(expressions)h(while)f(pa)m(ying)630
+3164 y(atten)m(tion)40 b(to)f(shell)f(quoting)h(and)e(the)h(shell's)h
+(quote)f(remo)m(v)-5 b(al.)65 b(Storing)38 b(the)h(regular)630
+3273 y(expression)45 b(in)g(a)g(shell)h(v)-5 b(ariable)46
+b(is)f(often)g(a)h(useful)e(w)m(a)m(y)i(to)g(a)m(v)m(oid)h(problems)d
+(with)630 3383 y(quoting)35 b(c)m(haracters)g(that)g(are)g(sp)s(ecial)g
+(to)g(the)f(shell.)53 b(F)-8 b(or)35 b(example,)h(the)e(follo)m(wing)i
+(is)630 3493 y(equiv)-5 b(alen)m(t)32 b(to)f(the)f(pattern)h(used)f(ab)
+s(o)m(v)m(e:)870 3626 y Ft(pattern='[[:space:]]*\(a\))o(?b')870
+3735 y([[)47 b($line)g(=~)g($pattern)e(]])630 3868 y
+Fu(Shell)29 b(programmers)f(should)f(tak)m(e)k(sp)s(ecial)e(care)g
+(with)g(bac)m(kslashes,)h(since)f(bac)m(kslashes)630
+3978 y(are)22 b(used)f(b)m(y)h(b)s(oth)f(the)h(shell)g(and)f(regular)h
+(expressions)f(to)i(remo)m(v)m(e)g(the)f(sp)s(ecial)h(meaning)630
+4088 y(from)j(the)g(follo)m(wing)i(c)m(haracter.)41 b(This)25
+b(means)h(that)h(after)g(the)f(shell's)g(w)m(ord)g(expansions)630
+4197 y(complete)i(\(see)f(Section)g(3.5)h([Shell)e(Expansions],)h(page)
+g(25\),)i(an)m(y)d(bac)m(kslashes)i(remain-)630 4307
+y(ing)44 b(in)f(parts)g(of)h(the)g(pattern)f(that)h(w)m(ere)g
(originally)h(not)f(quoted)g(can)g(remo)m(v)m(e)h(the)630
-3614 y(sp)s(ecial)29 b(meaning)g(of)g(pattern)f(c)m(haracters.)42
+4416 y(sp)s(ecial)29 b(meaning)g(of)g(pattern)f(c)m(haracters.)42
b(If)28 b(an)m(y)h(part)g(of)f(the)h(pattern)g(is)f(quoted,)i(the)630
-3724 y(shell)h(do)s(es)f(its)g(b)s(est)g(to)i(ensure)d(that)i(the)g
+4526 y(shell)h(do)s(es)f(its)g(b)s(est)g(to)i(ensure)d(that)i(the)g
(regular)f(expression)h(treats)g(those)g(remaining)630
-3833 y(bac)m(kslashes)g(as)g(literal,)h(if)e(they)h(app)s(eared)f(in)g
-(a)g(quoted)h(p)s(ortion.)630 3970 y(The)f(follo)m(wing)i(t)m(w)m(o)f
+4635 y(bac)m(kslashes)g(as)g(literal,)h(if)e(they)h(app)s(eared)f(in)g
+(a)g(quoted)h(p)s(ortion.)630 4769 y(The)f(follo)m(wing)i(t)m(w)m(o)f
(sets)g(of)g(commands)f(are)h Fl(not)39 b Fu(equiv)-5
-b(alen)m(t:)870 4107 y Ft(pattern='\\.')870 4326 y([[)47
-b(.)h(=~)f($pattern)e(]])870 4436 y([[)i(.)h(=~)f(\\.)g(]])870
-4655 y([[)g(.)h(=~)f("$pattern")e(]])870 4765 y([[)i(.)h(=~)f('\\.')f
-(]])630 4902 y Fu(The)28 b(\014rst)h(t)m(w)m(o)h(matc)m(hes)g(will)f
+b(alen)m(t:)870 4902 y Ft(pattern='\\.')870 5121 y([[)47
+b(.)h(=~)f($pattern)e(]])870 5230 y([[)i(.)h(=~)f(\\.)g(]])p
+eop end
+%%Page: 17 23
+TeXDict begin 17 22 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(17)870 299
+y Ft([[)47 b(.)h(=~)f("$pattern")e(]])870 408 y([[)i(.)h(=~)f('\\.')f
+(]])630 549 y Fu(The)28 b(\014rst)h(t)m(w)m(o)h(matc)m(hes)g(will)f
(succeed,)h(but)f(the)g(second)g(t)m(w)m(o)h(will)f(not,)h(b)s(ecause)f
-(in)g(the)630 5011 y(second)e(t)m(w)m(o)i(the)e(bac)m(kslash)h(will)f
-(b)s(e)g(part)g(of)g(the)g(pattern)g(to)h(b)s(e)f(matc)m(hed.)40
-b(In)26 b(the)i(\014rst)630 5121 y(t)m(w)m(o)33 b(examples,)f(the)g
+(in)g(the)630 659 y(second)e(t)m(w)m(o)i(the)e(bac)m(kslash)h(will)f(b)
+s(e)g(part)g(of)g(the)g(pattern)g(to)h(b)s(e)f(matc)m(hed.)40
+b(In)26 b(the)i(\014rst)630 769 y(t)m(w)m(o)33 b(examples,)f(the)g
(pattern)f(passed)g(to)h(the)g(regular)f(expression)h(parser)e(is)i(`)p
-Ft(\\.)p Fu('.)43 b(The)630 5230 y(bac)m(kslash)35 b(remo)m(v)m(es)g
+Ft(\\.)p Fu('.)43 b(The)630 878 y(bac)m(kslash)35 b(remo)m(v)m(es)g
(the)g(sp)s(ecial)f(meaning)h(from)e(`)p Ft(.)p Fu(',)j(so)e(the)h
(literal)g(`)p Ft(.)p Fu(')g(matc)m(hes.)53 b(In)630
-5340 y(the)35 b(second)h(t)m(w)m(o)g(examples,)h(the)f(pattern)f
-(passed)g(to)h(the)f(regular)h(expression)f(parser)p
-eop end
-%%Page: 17 23
-TeXDict begin 17 22 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(17)630 299
-y(has)26 b(the)g(bac)m(kslash)g(quoted)g(\(e.g.,)j(`)p
-Ft(\\\\\\.)p Fu('\),)e(whic)m(h)e(will)h(not)g(matc)m(h)h(the)f
-(string,)h(since)f(it)630 408 y(do)s(es)31 b(not)g(con)m(tain)h(a)g
-(bac)m(kslash.)43 b(If)31 b(the)g(string)g(in)g(the)g(\014rst)f
-(examples)i(w)m(ere)g(an)m(ything)630 518 y(other)f(than)f(`)p
-Ft(.)p Fu(',)h(sa)m(y)g(`)p Ft(a)p Fu(',)g(the)f(pattern)h(w)m(ould)f
-(not)h(matc)m(h,)g(b)s(ecause)g(the)f(quoted)h(`)p Ft(.)p
-Fu(')f(in)630 628 y(the)h(pattern)f(loses)h(its)g(sp)s(ecial)g(meaning)
-g(of)f(matc)m(hing)i(an)m(y)e(single)h(c)m(haracter.)630
-781 y(Brac)m(k)m(et)d(expressions)d(in)g(regular)h(expressions)f(can)h
-(b)s(e)e(sources)i(of)f(errors)g(as)h(w)m(ell,)i(since)630
-891 y(c)m(haracters)43 b(that)f(are)g(normally)g(sp)s(ecial)g(in)f
-(regular)h(expressions)f(lose)i(their)e(sp)s(ecial)630
-1000 y(meanings)24 b(b)s(et)m(w)m(een)g(brac)m(k)m(ets.)40
+988 y(the)35 b(second)h(t)m(w)m(o)g(examples,)h(the)f(pattern)f(passed)
+g(to)h(the)f(regular)h(expression)f(parser)630 1097 y(has)26
+b(the)g(bac)m(kslash)g(quoted)g(\(e.g.,)j(`)p Ft(\\\\\\.)p
+Fu('\),)e(whic)m(h)e(will)h(not)g(matc)m(h)h(the)f(string,)h(since)f
+(it)630 1207 y(do)s(es)31 b(not)g(con)m(tain)h(a)g(bac)m(kslash.)43
+b(If)31 b(the)g(string)g(in)g(the)g(\014rst)f(examples)i(w)m(ere)g(an)m
+(ything)630 1316 y(other)f(than)f(`)p Ft(.)p Fu(',)h(sa)m(y)g(`)p
+Ft(a)p Fu(',)g(the)f(pattern)h(w)m(ould)f(not)h(matc)m(h,)g(b)s(ecause)
+g(the)f(quoted)h(`)p Ft(.)p Fu(')f(in)630 1426 y(the)h(pattern)f(loses)
+h(its)g(sp)s(ecial)g(meaning)g(of)f(matc)m(hing)i(an)m(y)e(single)h(c)m
+(haracter.)630 1567 y(Brac)m(k)m(et)d(expressions)d(in)g(regular)h
+(expressions)f(can)h(b)s(e)e(sources)i(of)f(errors)g(as)h(w)m(ell,)i
+(since)630 1677 y(c)m(haracters)43 b(that)f(are)g(normally)g(sp)s
+(ecial)g(in)f(regular)h(expressions)f(lose)i(their)e(sp)s(ecial)630
+1786 y(meanings)24 b(b)s(et)m(w)m(een)g(brac)m(k)m(ets.)40
b(Ho)m(w)m(ev)m(er,)27 b(y)m(ou)e(can)f(use)f(brac)m(k)m(et)i
-(expressions)f(to)g(matc)m(h)630 1110 y(sp)s(ecial)31
+(expressions)f(to)g(matc)m(h)630 1896 y(sp)s(ecial)31
b(pattern)g(c)m(haracters)h(without)f(quoting)g(them,)f(so)h(they)g
-(are)g(sometimes)h(useful)630 1220 y(for)e(this)g(purp)s(ose.)630
-1373 y(Though)f(it)i(migh)m(t)g(seem)f(lik)m(e)i(a)e(strange)h(w)m(a)m
+(are)g(sometimes)h(useful)630 2005 y(for)e(this)g(purp)s(ose.)630
+2146 y(Though)f(it)i(migh)m(t)g(seem)f(lik)m(e)i(a)e(strange)h(w)m(a)m
(y)g(to)g(write)f(it,)h(the)g(follo)m(wing)g(pattern)g(will)630
-1483 y(matc)m(h)g(a)g(`)p Ft(.)p Fu(')g(in)f(the)g(string:)870
-1637 y Ft([[)47 b(.)h(=~)f([.])g(]])630 1790 y Fu(The)30
+2256 y(matc)m(h)g(a)g(`)p Ft(.)p Fu(')g(in)f(the)g(string:)870
+2397 y Ft([[)47 b(.)h(=~)f([.])g(]])630 2538 y Fu(The)30
b(shell)g(p)s(erforms)f(an)m(y)i(w)m(ord)f(expansions)g(b)s(efore)g
-(passing)g(the)g(pattern)h(to)g(the)f(reg-)630 1900 y(ular)44
+(passing)g(the)g(pattern)h(to)g(the)f(reg-)630 2647 y(ular)44
b(expression)g(functions,)k(so)d(y)m(ou)f(can)h(assume)f(that)h(the)g
-(shell's)g(quoting)f(tak)m(es)630 2009 y(precedence.)63
+(shell's)g(quoting)f(tak)m(es)630 2757 y(precedence.)63
b(As)37 b(noted)h(ab)s(o)m(v)m(e,)j(the)d(regular)f(expression)h
-(parser)f(will)h(in)m(terpret)g(an)m(y)630 2119 y(unquoted)30
+(parser)f(will)h(in)m(terpret)g(an)m(y)630 2866 y(unquoted)30
b(bac)m(kslashes)h(remaining)g(in)g(the)g(pattern)f(after)i(shell)e
-(expansion)h(according)630 2229 y(to)40 b(its)g(o)m(wn)f(rules.)68
+(expansion)h(according)630 2976 y(to)40 b(its)g(o)m(wn)f(rules.)68
b(The)39 b(in)m(ten)m(tion)i(is)e(to)h(a)m(v)m(oid)h(making)f(shell)f
-(programmers)g(quote)630 2338 y(things)31 b(t)m(wice)h(as)f(m)m(uc)m(h)
+(programmers)g(quote)630 3086 y(things)31 b(t)m(wice)h(as)f(m)m(uc)m(h)
f(as)h(p)s(ossible,)g(so)g(shell)g(quoting)g(should)f(b)s(e)g
-(su\016cien)m(t)h(to)g(quote)630 2448 y(sp)s(ecial)g(pattern)f(c)m
-(haracters)i(where)e(that's)h(necessary)-8 b(.)630 2601
+(su\016cien)m(t)h(to)g(quote)630 3195 y(sp)s(ecial)g(pattern)f(c)m
+(haracters)i(where)e(that's)h(necessary)-8 b(.)630 3336
y(The)39 b(arra)m(y)h(v)-5 b(ariable)40 b Ft(BASH_REMATCH)c
Fu(records)j(whic)m(h)g(parts)g(of)g(the)h(string)f(matc)m(hed)630
-2711 y(the)34 b(pattern.)51 b(The)33 b(elemen)m(t)i(of)f
+3446 y(the)34 b(pattern.)51 b(The)33 b(elemen)m(t)i(of)f
Ft(BASH_REMATCH)d Fu(with)i(index)g(0)h(con)m(tains)h(the)f(p)s(ortion)
-630 2821 y(of)39 b(the)g(string)g(matc)m(hing)h(the)g(en)m(tire)f
+630 3555 y(of)39 b(the)g(string)g(matc)m(hing)h(the)g(en)m(tire)f
(regular)h(expression.)66 b(Substrings)37 b(matc)m(hed)j(b)m(y)630
-2930 y(paren)m(thesized)k(sub)s(expressions)e(within)i(the)g(regular)g
-(expression)g(are)g(sa)m(v)m(ed)h(in)f(the)630 3040 y(remaining)33
+3665 y(paren)m(thesized)k(sub)s(expressions)e(within)i(the)g(regular)g
+(expression)g(are)g(sa)m(v)m(ed)h(in)f(the)630 3774 y(remaining)33
b Ft(BASH_REMATCH)c Fu(indices.)49 b(The)32 b(elemen)m(t)i(of)f
-Ft(BASH_REMATCH)d Fu(with)i(index)g Fr(n)630 3149 y Fu(is)e(the)h(p)s
+Ft(BASH_REMATCH)d Fu(with)i(index)g Fr(n)630 3884 y Fu(is)e(the)h(p)s
(ortion)f(of)g(the)h(string)f(matc)m(hing)i(the)e Fr(n)p
-Fu(th)g(paren)m(thesized)h(sub)s(expression.)630 3303
+Fu(th)g(paren)m(thesized)h(sub)s(expression.)630 4025
y(Bash)26 b(sets)h Ft(BASH_REMATCH)c Fu(in)j(the)g(global)i(scop)s(e;)f
(declaring)g(it)g(as)g(a)f(lo)s(cal)i(v)-5 b(ariable)27
-b(will)630 3413 y(lead)k(to)g(unexp)s(ected)f(results.)630
-3566 y(Expressions)23 b(ma)m(y)h(b)s(e)e(com)m(bined)i(using)f(the)h
+b(will)630 4134 y(lead)k(to)g(unexp)s(ected)f(results.)630
+4275 y(Expressions)23 b(ma)m(y)h(b)s(e)e(com)m(bined)i(using)f(the)h
(follo)m(wing)h(op)s(erators,)g(listed)f(in)f(decreasing)630
-3676 y(order)30 b(of)g(precedence:)630 3874 y Ft(\()g
-Fj(expression)e Ft(\))1110 3983 y Fu(Returns)i(the)h(v)-5
+4385 y(order)30 b(of)g(precedence:)630 4557 y Ft(\()g
+Fj(expression)e Ft(\))1110 4667 y Fu(Returns)i(the)h(v)-5
b(alue)31 b(of)g Fr(expression)p Fu(.)42 b(This)30 b(ma)m(y)i(b)s(e)e
-(used)g(to)i(o)m(v)m(erride)g(the)1110 4093 y(normal)e(precedence)h(of)
-g(op)s(erators.)630 4291 y Ft(!)f Fj(expression)1110
-4400 y Fu(T)-8 b(rue)30 b(if)g Fr(expression)g Fu(is)h(false.)630
-4598 y Fj(expression1)c Ft(&&)j Fj(expression2)1110 4708
+(used)g(to)i(o)m(v)m(erride)g(the)1110 4776 y(normal)e(precedence)h(of)
+g(op)s(erators.)630 4949 y Ft(!)f Fj(expression)1110
+5058 y Fu(T)-8 b(rue)30 b(if)g Fr(expression)g Fu(is)h(false.)630
+5230 y Fj(expression1)c Ft(&&)j Fj(expression2)1110 5340
y Fu(T)-8 b(rue)30 b(if)g(b)s(oth)g Fr(expression1)38
-b Fu(and)29 b Fr(expression2)38 b Fu(are)31 b(true.)630
-4905 y Fj(expression1)c Ft(||)j Fj(expression2)1110 5015
+b Fu(and)29 b Fr(expression2)38 b Fu(are)31 b(true.)p
+eop end
+%%Page: 18 24
+TeXDict begin 18 23 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(18)630 299
+y Fj(expression1)27 b Ft(||)j Fj(expression2)1110 408
y Fu(T)-8 b(rue)30 b(if)g(either)h Fr(expression1)38
b Fu(or)30 b Fr(expression2)38 b Fu(is)30 b(true.)630
-5213 y(The)24 b Ft(&&)h Fu(and)f Ft(||)g Fu(op)s(erators)h(do)g(not)g
+562 y(The)24 b Ft(&&)h Fu(and)f Ft(||)g Fu(op)s(erators)h(do)g(not)g
(ev)-5 b(aluate)27 b Fr(expression2)32 b Fu(if)25 b(the)g(v)-5
-b(alue)25 b(of)g Fr(expression1)630 5322 y Fu(is)30 b(su\016cien)m(t)h
+b(alue)25 b(of)g Fr(expression1)630 671 y Fu(is)30 b(su\016cien)m(t)h
(to)g(determine)g(the)f(return)g(v)-5 b(alue)31 b(of)f(the)h(en)m(tire)
-g(conditional)h(expression.)p eop end
-%%Page: 18 24
-TeXDict begin 18 23 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(18)150 299
-y Fk(3.2.5.3)63 b(Grouping)43 b(Commands)150 446 y Fu(Bash)30
-b(pro)m(vides)g(t)m(w)m(o)h(w)m(a)m(ys)f(to)h(group)e(a)h(list)g(of)g
-(commands)f(to)i(b)s(e)e(executed)h(as)g(a)h(unit.)40
-b(When)29 b(com-)150 555 y(mands)h(are)i(group)s(ed,)f(redirections)h
-(ma)m(y)g(b)s(e)e(applied)i(to)g(the)f(en)m(tire)h(command)g(list.)44
-b(F)-8 b(or)32 b(example,)150 665 y(the)f(output)f(of)g(all)h(the)g
-(commands)f(in)g(the)h(list)g(ma)m(y)g(b)s(e)e(redirected)i(to)g(a)g
-(single)g(stream.)150 826 y Ft(\(\))870 961 y(\()47 b
-Fj(list)g Ft(\))630 1097 y Fu(Placing)42 b(a)g(list)g(of)f(commands)g
-(b)s(et)m(w)m(een)h(paren)m(theses)f(forces)h(the)f(shell)h(to)g
-(create)h(a)630 1206 y(subshell)33 b(\(see)h(Section)g(3.7.3)i
-([Command)c(Execution)j(En)m(vironmen)m(t],)g(page)f(46\),)i(and)630
-1316 y(eac)m(h)g(of)f(the)h(commands)e(in)h Fr(list)i
-Fu(is)e(executed)h(in)f(that)h(subshell)e(en)m(vironmen)m(t.)55
-b(Since)630 1425 y(the)33 b Fr(list)j Fu(is)e(executed)g(in)f(a)g
-(subshell,)h(v)-5 b(ariable)34 b(assignmen)m(ts)g(do)f(not)g(remain)g
-(in)g(e\013ect)630 1535 y(after)e(the)f(subshell)g(completes.)150
-1696 y Ft({})870 1831 y({)47 b Fj(list)p Ft(;)g(})630
-1966 y Fu(Placing)30 b(a)g(list)g(of)g(commands)f(b)s(et)m(w)m(een)h
-(curly)f(braces)g(causes)h(the)f(list)h(to)g(b)s(e)f(executed)630
-2075 y(in)38 b(the)h(curren)m(t)g(shell)f(en)m(vironmen)m(t.)66
+g(conditional)h(expression.)150 865 y Fk(3.2.5.3)63 b(Grouping)43
+b(Commands)150 1012 y Fu(Bash)30 b(pro)m(vides)g(t)m(w)m(o)h(w)m(a)m
+(ys)f(to)h(group)e(a)h(list)g(of)g(commands)f(to)i(b)s(e)e(executed)h
+(as)g(a)h(unit.)40 b(When)29 b(com-)150 1121 y(mands)h(are)i(group)s
+(ed,)f(redirections)h(ma)m(y)g(b)s(e)e(applied)i(to)g(the)f(en)m(tire)h
+(command)g(list.)44 b(F)-8 b(or)32 b(example,)150 1231
+y(the)f(output)f(of)g(all)h(the)g(commands)f(in)g(the)h(list)g(ma)m(y)g
+(b)s(e)e(redirected)i(to)g(a)g(single)g(stream.)150 1384
+y Ft(\(\))870 1516 y(\()47 b Fj(list)g Ft(\))630 1647
+y Fu(Placing)42 b(a)g(list)g(of)f(commands)g(b)s(et)m(w)m(een)h(paren)m
+(theses)f(forces)h(the)f(shell)h(to)g(create)h(a)630
+1757 y(subshell)33 b(\(see)h(Section)g(3.7.3)i([Command)c(Execution)j
+(En)m(vironmen)m(t],)g(page)f(47\),)i(and)630 1866 y(eac)m(h)g(of)f
+(the)h(commands)e(in)h Fr(list)i Fu(is)e(executed)h(in)f(that)h
+(subshell)e(en)m(vironmen)m(t.)55 b(Since)630 1976 y(the)33
+b Fr(list)j Fu(is)e(executed)g(in)f(a)g(subshell,)h(v)-5
+b(ariable)34 b(assignmen)m(ts)g(do)f(not)g(remain)g(in)g(e\013ect)630
+2085 y(after)e(the)f(subshell)g(completes.)150 2239 y
+Ft({})870 2370 y({)47 b Fj(list)p Ft(;)g(})630 2502 y
+Fu(Placing)30 b(a)g(list)g(of)g(commands)f(b)s(et)m(w)m(een)h(curly)f
+(braces)g(causes)h(the)f(list)h(to)g(b)s(e)f(executed)630
+2611 y(in)38 b(the)h(curren)m(t)g(shell)f(en)m(vironmen)m(t.)66
b(No)40 b(subshell)d(is)i(created.)67 b(The)38 b(semicolon)i(\(or)630
-2185 y(newline\))31 b(follo)m(wing)g Fr(list)i Fu(is)e(required.)275
-2346 y(In)44 b(addition)h(to)h(the)f(creation)i(of)e(a)g(subshell,)j
+2721 y(newline\))31 b(follo)m(wing)g Fr(list)i Fu(is)e(required.)275
+2874 y(In)44 b(addition)h(to)h(the)f(creation)i(of)e(a)g(subshell,)j
(there)e(is)f(a)g(subtle)g(di\013erence)h(b)s(et)m(w)m(een)f(these)150
-2456 y(t)m(w)m(o)f(constructs)f(due)g(to)g(historical)i(reasons.)78
+2984 y(t)m(w)m(o)f(constructs)f(due)g(to)g(historical)i(reasons.)78
b(The)42 b(braces)i(are)f(reserv)m(ed)g(w)m(ords,)j(so)d(they)g(m)m
-(ust)150 2565 y(b)s(e)36 b(separated)h(from)f(the)g Fr(list)j
+(ust)150 3093 y(b)s(e)36 b(separated)h(from)f(the)g Fr(list)j
Fu(b)m(y)e Ft(blank)p Fu(s)e(or)h(other)h(shell)f(metac)m(haracters.)62
-b(The)36 b(paren)m(theses)h(are)150 2675 y(op)s(erators,)29
+b(The)36 b(paren)m(theses)h(are)150 3203 y(op)s(erators,)29
b(and)e(are)i(recognized)g(as)g(separate)g(tok)m(ens)g(b)m(y)f(the)g
(shell)g(ev)m(en)h(if)f(they)h(are)f(not)g(separated)150
-2785 y(from)i(the)g Fr(list)j Fu(b)m(y)e(whitespace.)275
-2920 y(The)e(exit)j(status)e(of)h(b)s(oth)f(of)g(these)h(constructs)g
-(is)f(the)h(exit)g(status)f(of)h Fr(list)p Fu(.)150 3121
-y Fk(3.2.6)63 b(Copro)s(cesses)150 3268 y Fu(A)37 b Ft(coprocess)c
+3312 y(from)i(the)g Fr(list)j Fu(b)m(y)e(whitespace.)275
+3444 y(The)e(exit)j(status)e(of)h(b)s(oth)f(of)g(these)h(constructs)g
+(is)f(the)h(exit)g(status)f(of)h Fr(list)p Fu(.)150 3637
+y Fk(3.2.6)63 b(Copro)s(cesses)150 3784 y Fu(A)37 b Ft(coprocess)c
Fu(is)k(a)g(shell)f(command)h(preceded)f(b)m(y)g(the)h
Ft(coproc)d Fu(reserv)m(ed)j(w)m(ord.)59 b(A)36 b(copro)s(cess)h(is)150
-3377 y(executed)g(async)m(hronously)g(in)f(a)h(subshell,)g(as)g(if)g
+3894 y(executed)g(async)m(hronously)g(in)f(a)h(subshell,)g(as)g(if)g
(the)f(command)h(had)f(b)s(een)f(terminated)i(with)g(the)150
-3487 y(`)p Ft(&)p Fu(')d(con)m(trol)h(op)s(erator,)g(with)f(a)g(t)m(w)m
+4003 y(`)p Ft(&)p Fu(')d(con)m(trol)h(op)s(erator,)g(with)f(a)g(t)m(w)m
(o-w)m(a)m(y)i(pip)s(e)d(established)h(b)s(et)m(w)m(een)h(the)f
-(executing)h(shell)f(and)f(the)150 3597 y(copro)s(cess.)275
-3732 y(The)c(syn)m(tax)i(for)f(a)h(copro)s(cess)g(is:)390
-3868 y Ft(coproc)46 b([)p Fj(NAME)p Ft(])g Fj(command)g
-Ft([)p Fj(redirections)p Ft(])150 4004 y Fu(This)33 b(creates)i(a)f
+(executing)h(shell)f(and)f(the)150 4113 y(copro)s(cess.)275
+4244 y(The)c(syn)m(tax)i(for)f(a)h(copro)s(cess)g(is:)390
+4376 y Ft(coproc)46 b([)p Fj(NAME)p Ft(])g Fj(command)g
+Ft([)p Fj(redirections)p Ft(])150 4507 y Fu(This)33 b(creates)i(a)f
(copro)s(cess)g(named)f Fr(NAME)p Fu(.)51 b Fr(command)37
b Fu(ma)m(y)d(b)s(e)f(either)h(a)g(simple)g(command)f(\(see)150
-4113 y(Section)44 b(3.2.2)i([Simple)d(Commands],)k(page)d(9\))g(or)g(a)
-g(comp)s(ound)e(command)h(\(see)i(Section)f(3.2.5)150
-4223 y([Comp)s(ound)e(Commands],)47 b(page)e(11\).)83
+4617 y(Section)41 b(3.2.2)g([Simple)f(Commands],)i(page)e(10\))h(or)f
+(a)h(comp)s(ound)d(command)i(\(see)g(Section)h(3.2.5)150
+4726 y([Comp)s(ound)h(Commands],)47 b(page)e(11\).)83
b Fr(NAME)50 b Fu(is)44 b(a)g(shell)g(v)-5 b(ariable)45
b(name.)82 b(If)44 b Fr(NAME)50 b Fu(is)44 b(not)150
-4333 y(supplied,)29 b(the)i(default)f(name)h(is)f Ft(COPROC)p
-Fu(.)275 4468 y(The)f(recommended)h(form)g(to)h(use)f(for)h(a)f(copro)s
-(cess)h(is)390 4604 y Ft(coproc)46 b Fj(NAME)h Ft({)g
-Fj(command)p Ft(;)f(})150 4740 y Fu(This)23 b(form)g(is)h(preferred)e
+4836 y(supplied,)29 b(the)i(default)f(name)h(is)f Ft(COPROC)p
+Fu(.)275 4967 y(The)f(recommended)h(form)g(to)h(use)f(for)h(a)f(copro)s
+(cess)h(is)390 5099 y Ft(coproc)46 b Fj(NAME)h Ft({)g
+Fj(command)p Ft(;)f(})150 5230 y Fu(This)23 b(form)g(is)h(preferred)e
(b)s(ecause)i(simple)f(commands)g(result)h(in)f(the)h(copro)s(cess)g
-(alw)m(a)m(ys)h(b)s(eing)e(named)150 4849 y Ft(COPROC)p
+(alw)m(a)m(ys)h(b)s(eing)e(named)150 5340 y Ft(COPROC)p
Fu(,)29 b(and)h(it)h(is)f(simpler)g(to)h(use)f(and)g(more)g(complete)i
-(than)e(the)h(other)g(comp)s(ound)d(commands.)275 4985
-y(There)h(are)i(other)g(forms)f(of)g(copro)s(cesses:)390
-5121 y Ft(coproc)46 b Fj(NAME)h(compound-command)390
-5230 y Ft(coproc)f Fj(compound-command)390 5340 y Ft(coproc)g
-Fj(simple-command)p eop end
+(than)e(the)h(other)g(comp)s(ound)d(commands.)p eop end
%%Page: 19 25
TeXDict begin 19 24 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(19)150 299
-y(If)41 b Fr(command)46 b Fu(is)41 b(a)i(comp)s(ound)d(command,)45
-b Fr(NAME)i Fu(is)42 b(optional.)77 b(The)41 b(w)m(ord)g(follo)m(wing)j
-Ft(coproc)150 408 y Fu(determines)27 b(whether)f(that)i(w)m(ord)f(is)g
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(19)275 299
+y(There)29 b(are)i(other)g(forms)f(of)g(copro)s(cesses:)390
+435 y Ft(coproc)46 b Fj(NAME)h(compound-command)390 544
+y Ft(coproc)f Fj(compound-command)390 654 y Ft(coproc)g
+Fj(simple-command)150 790 y Fu(If)41 b Fr(command)46
+b Fu(is)41 b(a)i(comp)s(ound)d(command,)45 b Fr(NAME)i
+Fu(is)42 b(optional.)77 b(The)41 b(w)m(ord)g(follo)m(wing)j
+Ft(coproc)150 899 y Fu(determines)27 b(whether)f(that)i(w)m(ord)f(is)g
(in)m(terpreted)g(as)g(a)h(v)-5 b(ariable)28 b(name:)39
-b(it)27 b(is)g(in)m(terpreted)h(as)f Fr(NAME)150 518
+b(it)27 b(is)g(in)m(terpreted)h(as)f Fr(NAME)150 1009
y Fu(if)i(it)h(is)g(not)f(a)h(reserv)m(ed)f(w)m(ord)g(that)h(in)m(tro)s
(duces)f(a)h(comp)s(ound)e(command.)40 b(If)29 b Fr(command)k
-Fu(is)c(a)h(simple)150 628 y(command,)36 b Fr(NAME)k
+Fu(is)c(a)h(simple)150 1119 y(command,)36 b Fr(NAME)k
Fu(is)35 b(not)f(allo)m(w)m(ed;)39 b(this)34 b(is)h(to)g(a)m(v)m(oid)h
(confusion)f(b)s(et)m(w)m(een)g Fr(NAME)40 b Fu(and)34
-b(the)h(\014rst)150 737 y(w)m(ord)30 b(of)h(the)f(simple)g(command.)275
-871 y(When)42 b(the)i(copro)s(cess)f(is)g(executed,)48
+b(the)h(\014rst)150 1228 y(w)m(ord)30 b(of)h(the)f(simple)g(command.)
+275 1364 y(When)42 b(the)i(copro)s(cess)f(is)g(executed,)48
b(the)43 b(shell)g(creates)i(an)e(arra)m(y)g(v)-5 b(ariable)44
-b(\(see)g(Section)g(6.7)150 981 y([Arra)m(ys],)h(page)e(110\))g(named)e
-Fr(NAME)48 b Fu(in)41 b(the)h(con)m(text)h(of)f(the)g(executing)h
-(shell.)75 b(The)41 b(standard)150 1090 y(output)32 b(of)h
+b(\(see)g(Section)g(6.7)150 1474 y([Arra)m(ys],)h(page)e(110\))g(named)
+e Fr(NAME)48 b Fu(in)41 b(the)h(con)m(text)h(of)f(the)g(executing)h
+(shell.)75 b(The)41 b(standard)150 1583 y(output)32 b(of)h
Fr(command)i Fu(is)e(connected)g(via)g(a)g(pip)s(e)f(to)h(a)g(\014le)f
(descriptor)h(in)f(the)g(executing)i(shell,)g(and)150
-1200 y(that)d(\014le)g(descriptor)g(is)g(assigned)f(to)i
+1693 y(that)d(\014le)g(descriptor)g(is)g(assigned)f(to)i
Fr(NAME)5 b Fu([0].)43 b(The)31 b(standard)f(input)f(of)i
-Fr(command)j Fu(is)d(connected)150 1309 y(via)40 b(a)g(pip)s(e)f(to)h
+Fr(command)j Fu(is)d(connected)150 1802 y(via)40 b(a)g(pip)s(e)f(to)h
(a)g(\014le)g(descriptor)f(in)g(the)h(executing)h(shell,)h(and)d(that)h
-(\014le)g(descriptor)f(is)h(assigned)150 1419 y(to)f
+(\014le)g(descriptor)f(is)h(assigned)150 1912 y(to)f
Fr(NAME)5 b Fu([1].)65 b(This)38 b(pip)s(e)f(is)h(established)g(b)s
(efore)g(an)m(y)g(redirections)h(sp)s(eci\014ed)e(b)m(y)h(the)g
-(command)150 1529 y(\(see)33 b(Section)f(3.6)h([Redirections],)g(page)g
+(command)150 2022 y(\(see)33 b(Section)f(3.6)h([Redirections],)g(page)g
(41\).)45 b(The)31 b(\014le)h(descriptors)f(can)h(b)s(e)f(utilized)i
-(as)f(argumen)m(ts)150 1638 y(to)42 b(shell)g(commands)f(and)g
+(as)f(argumen)m(ts)150 2131 y(to)42 b(shell)g(commands)f(and)g
(redirections)h(using)f(standard)g(w)m(ord)g(expansions.)74
-b(Other)41 b(than)g(those)150 1748 y(created)27 b(to)g(execute)g
+b(Other)41 b(than)g(those)150 2241 y(created)27 b(to)g(execute)g
(command)f(and)f(pro)s(cess)h(substitutions,)h(the)f(\014le)g
-(descriptors)g(are)g(not)h(a)m(v)-5 b(ailable)150 1857
-y(in)30 b(subshells.)275 1991 y(The)d(pro)s(cess)h(ID)h(of)f(the)h
+(descriptors)g(are)g(not)h(a)m(v)-5 b(ailable)150 2350
+y(in)30 b(subshells.)275 2486 y(The)d(pro)s(cess)h(ID)h(of)f(the)h
(shell)f(spa)m(wned)g(to)h(execute)h(the)e(copro)s(cess)h(is)f(a)m(v)-5
-b(ailable)31 b(as)d(the)h(v)-5 b(alue)29 b(of)150 2101
+b(ailable)31 b(as)d(the)h(v)-5 b(alue)29 b(of)150 2596
y(the)23 b(v)-5 b(ariable)24 b Fj(NAME)p Ft(_PID)p Fu(.)36
b(The)23 b Ft(wait)f Fu(builtin)g(ma)m(y)i(b)s(e)f(used)f(to)i(w)m(ait)
-g(for)f(the)g(copro)s(cess)h(to)g(terminate.)275 2235
+g(for)f(the)g(copro)s(cess)h(to)g(terminate.)275 2732
y(Since)c(the)g(copro)s(cess)h(is)g(created)g(as)g(an)f(async)m
(hronous)g(command,)i(the)f Ft(coproc)d Fu(command)i(alw)m(a)m(ys)150
-2344 y(returns)29 b(success.)41 b(The)30 b(return)f(status)i(of)f(a)h
+2841 y(returns)29 b(success.)41 b(The)30 b(return)f(status)i(of)f(a)h
(copro)s(cess)g(is)f(the)h(exit)g(status)g(of)f Fr(command)p
-Fu(.)150 2542 y Fk(3.2.7)63 b(GNU)41 b(P)m(arallel)150
-2689 y Fu(There)30 b(are)h(w)m(a)m(ys)g(to)g(run)f(commands)g(in)g
+Fu(.)150 3042 y Fk(3.2.7)63 b(GNU)41 b(P)m(arallel)150
+3189 y Fu(There)30 b(are)h(w)m(a)m(ys)g(to)g(run)f(commands)g(in)g
(parallel)h(that)h(are)e(not)h(built)g(in)m(to)g(Bash.)41
-b(GNU)31 b(P)m(arallel)i(is)150 2799 y(a)e(to)s(ol)g(to)g(do)f(just)g
-(that.)275 2933 y(GNU)e(P)m(arallel,)i(as)e(its)g(name)f(suggests,)j
+b(GNU)31 b(P)m(arallel)i(is)150 3298 y(a)e(to)s(ol)g(to)g(do)f(just)g
+(that.)275 3434 y(GNU)e(P)m(arallel,)i(as)e(its)g(name)f(suggests,)j
(can)d(b)s(e)g(used)g(to)h(build)f(and)g(run)f(commands)h(in)h
-(parallel.)150 3042 y(Y)-8 b(ou)41 b(ma)m(y)g(run)e(the)h(same)h
+(parallel.)150 3544 y(Y)-8 b(ou)41 b(ma)m(y)g(run)e(the)h(same)h
(command)f(with)g(di\013eren)m(t)h(argumen)m(ts,)j(whether)39
-b(they)i(are)g(\014lenames,)150 3152 y(usernames,)27
+b(they)i(are)g(\014lenames,)150 3653 y(usernames,)27
b(hostnames,)h(or)e(lines)h(read)f(from)h(\014les.)39
b(GNU)27 b(P)m(arallel)i(pro)m(vides)d(shorthand)g(references)150
-3261 y(to)38 b(man)m(y)g(of)g(the)g(most)g(common)g(op)s(erations)g
+3763 y(to)38 b(man)m(y)g(of)g(the)g(most)g(common)g(op)s(erations)g
(\(input)f(lines,)j(v)-5 b(arious)38 b(p)s(ortions)f(of)h(the)g(input)e
-(line,)150 3371 y(di\013eren)m(t)f(w)m(a)m(ys)h(to)f(sp)s(ecify)f(the)h
+(line,)150 3873 y(di\013eren)m(t)f(w)m(a)m(ys)h(to)f(sp)s(ecify)f(the)h
(input)f(source,)i(and)e(so)h(on\).)54 b(P)m(arallel)36
-b(can)f(replace)h Ft(xargs)d Fu(or)i(feed)150 3481 y(commands)30
+b(can)f(replace)h Ft(xargs)d Fu(or)i(feed)150 3982 y(commands)30
b(from)g(its)h(input)e(sources)h(to)i(sev)m(eral)f(di\013eren)m(t)g
-(instances)g(of)g(Bash.)275 3614 y(F)-8 b(or)28 b(a)h(complete)g
+(instances)g(of)g(Bash.)275 4118 y(F)-8 b(or)28 b(a)h(complete)g
(description,)g(refer)f(to)g(the)h(GNU)f(P)m(arallel)i(do)s(cumen)m
-(tation,)g(whic)m(h)e(is)g(a)m(v)-5 b(ailable)150 3724
+(tation,)g(whic)m(h)e(is)g(a)m(v)-5 b(ailable)150 4228
y(at)31 b Ft(https://www.gnu.org/softw)o(are)o(/par)o(alle)o(l/p)o
-(aral)o(lel_)o(tut)o(oria)o(l.ht)o(ml)p Fu(.)150 3963
-y Fs(3.3)68 b(Shell)45 b(F)-11 b(unctions)150 4123 y
+(aral)o(lel_)o(tut)o(oria)o(l.ht)o(ml)p Fu(.)150 4470
+y Fs(3.3)68 b(Shell)45 b(F)-11 b(unctions)150 4630 y
Fu(Shell)35 b(functions)h(are)g(a)g(w)m(a)m(y)g(to)h(group)e(commands)g
(for)h(later)g(execution)h(using)e(a)h(single)g(name)g(for)150
-4232 y(the)31 b(group.)43 b(They)31 b(are)g(executed)h(just)f(lik)m(e)h
+4739 y(the)31 b(group.)43 b(They)31 b(are)g(executed)h(just)f(lik)m(e)h
(a)g Ft(")p Fu(regular)p Ft(")f Fu(simple)g(command.)43
-b(When)31 b(the)g(name)g(of)h(a)150 4342 y(shell)g(function)g(is)g
+b(When)31 b(the)g(name)g(of)h(a)150 4849 y(shell)g(function)g(is)g
(used)g(as)g(a)h(simple)f(command)g(name,)h(the)f(shell)g(executes)i
-(the)e(list)h(of)f(commands)150 4452 y(asso)s(ciated)22
+(the)e(list)h(of)f(commands)150 4959 y(asso)s(ciated)22
b(with)f(that)g(function)g(name.)37 b(Shell)21 b(functions)g(are)g
(executed)h(in)e(the)h(curren)m(t)g(shell)g(con)m(text;)150
-4561 y(there)31 b(is)f(no)g(new)g(pro)s(cess)g(created)h(to)h(in)m
-(terpret)e(them.)275 4695 y(F)-8 b(unctions)30 b(are)h(declared)g
-(using)f(this)g(syn)m(tax:)390 4829 y Fj(fname)46 b Ft(\(\))i
-Fj(compound-command)43 b Ft([)k Fj(redirections)e Ft(])275
-4963 y Fu(or)390 5097 y Ft(function)h Fj(fname)g Ft([\(\)])h
+5068 y(there)31 b(is)f(no)g(new)g(pro)s(cess)g(created)h(to)h(in)m
+(terpret)e(them.)275 5204 y(F)-8 b(unctions)30 b(are)h(declared)g
+(using)f(this)g(syn)m(tax:)390 5340 y Fj(fname)46 b Ft(\(\))i
+Fj(compound-command)43 b Ft([)k Fj(redirections)e Ft(])p
+eop end
+%%Page: 20 26
+TeXDict begin 20 25 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(20)275 299
+y(or)390 430 y Ft(function)46 b Fj(fname)g Ft([\(\)])h
Fj(compound-command)c Ft([)k Fj(redirections)e Ft(])275
-5230 y Fu(This)37 b(de\014nes)h(a)h(shell)f(function)g(named)g
+562 y Fu(This)37 b(de\014nes)h(a)h(shell)f(function)g(named)g
Fr(fname)p Fu(.)65 b(The)38 b(reserv)m(ed)h(w)m(ord)f
-Ft(function)e Fu(is)j(optional.)150 5340 y(If)33 b(the)g
+Ft(function)e Fu(is)j(optional.)150 671 y(If)33 b(the)g
Ft(function)e Fu(reserv)m(ed)i(w)m(ord)g(is)g(supplied,)g(the)g(paren)m
(theses)h(are)f(optional.)50 b(The)33 b Fr(b)s(o)s(dy)39
-b Fu(of)34 b(the)p eop end
-%%Page: 20 26
-TeXDict begin 20 25 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(20)150 299
-y(function)41 b(is)h(the)g(comp)s(ound)e(command)h Fr(comp)s
-(ound-command)j Fu(\(see)e(Section)h(3.2.5)g([Comp)s(ound)150
-408 y(Commands],)30 b(page)h(11\).)42 b(That)30 b(command)g(is)g
-(usually)h(a)f Fr(list)j Fu(enclosed)e(b)s(et)m(w)m(een)g
-Fi({)g Fu(and)f Fi(})p Fu(,)h(but)e(ma)m(y)150 518 y(b)s(e)k(an)m(y)h
-(comp)s(ound)f(command)g(listed)i(ab)s(o)m(v)m(e.)52
-b(If)33 b(the)i Ft(function)c Fu(reserv)m(ed)j(w)m(ord)g(is)f(used,)i
-(but)e(the)150 628 y(paren)m(theses)41 b(are)g(not)g(supplied,)h(the)e
-(braces)h(are)g(recommended.)71 b(When)40 b(the)h(shell)g(is)f(in)h
-Fm(posix)150 737 y Fu(mo)s(de)31 b(\(see)h(Section)g(6.11)h([Bash)f
-(POSIX)e(Mo)s(de],)i(page)g(116\),)i Fr(fname)i Fu(m)m(ust)31
-b(b)s(e)g(a)h(v)-5 b(alid)31 b(shell)h(name)150 847 y(and)h(ma)m(y)h
-(not)f(b)s(e)g(the)h(same)f(as)h(one)g(of)f(the)h(sp)s(ecial)g
-(builtins)e(\(see)j(Section)f(4.4)g([Sp)s(ecial)g(Builtins],)150
-956 y(page)d(85\).)41 b(When)30 b(not)g(in)g Fm(posix)f
-Fu(mo)s(de,)h(a)g(function)f(name)h(can)g(b)s(e)g(an)m(y)g(unquoted)f
-(shell)h(w)m(ord)f(that)150 1066 y(do)s(es)h(not)h(con)m(tain)g(`)p
-Ft($)p Fu('.)275 1203 y(An)m(y)d(redirections)g(\(see)h(Section)g(3.6)g
-([Redirections],)i(page)d(41\))i(asso)s(ciated)f(with)f(the)g(shell)h
-(func-)150 1313 y(tion)37 b(are)f(p)s(erformed)f(when)g(the)h(function)
-g(is)g(executed.)59 b(F)-8 b(unction)37 b(de\014nitions)f(are)h
-(deleted)f(using)150 1422 y(the)31 b Ft(-f)e Fu(option)i(to)g(the)g
+b Fu(of)34 b(the)150 781 y(function)41 b(is)h(the)g(comp)s(ound)e
+(command)h Fr(comp)s(ound-command)j Fu(\(see)e(Section)h(3.2.5)g([Comp)
+s(ound)150 891 y(Commands],)30 b(page)h(11\).)42 b(That)30
+b(command)g(is)g(usually)h(a)f Fr(list)j Fu(enclosed)e(b)s(et)m(w)m
+(een)g Fi({)g Fu(and)f Fi(})p Fu(,)h(but)e(ma)m(y)150
+1000 y(b)s(e)k(an)m(y)h(comp)s(ound)f(command)g(listed)i(ab)s(o)m(v)m
+(e.)52 b(If)33 b(the)i Ft(function)c Fu(reserv)m(ed)j(w)m(ord)g(is)f
+(used,)i(but)e(the)150 1110 y(paren)m(theses)41 b(are)g(not)g
+(supplied,)h(the)e(braces)h(are)g(recommended.)71 b(When)40
+b(the)h(shell)g(is)f(in)h Fm(posix)150 1219 y Fu(mo)s(de)31
+b(\(see)h(Section)g(6.11)h([Bash)f(POSIX)e(Mo)s(de],)i(page)g(116\),)i
+Fr(fname)i Fu(m)m(ust)31 b(b)s(e)g(a)h(v)-5 b(alid)31
+b(shell)h(name)150 1329 y(and)h(ma)m(y)h(not)f(b)s(e)g(the)h(same)f(as)
+h(one)g(of)f(the)h(sp)s(ecial)g(builtins)e(\(see)j(Section)f(4.4)g([Sp)
+s(ecial)g(Builtins],)150 1439 y(page)d(85\).)41 b(When)30
+b(not)g(in)g Fm(posix)f Fu(mo)s(de,)h(a)g(function)f(name)h(can)g(b)s
+(e)g(an)m(y)g(unquoted)f(shell)h(w)m(ord)f(that)150 1548
+y(do)s(es)h(not)h(con)m(tain)g(`)p Ft($)p Fu('.)275 1680
+y(An)m(y)d(redirections)g(\(see)h(Section)g(3.6)g([Redirections],)i
+(page)d(41\))i(asso)s(ciated)f(with)f(the)g(shell)h(func-)150
+1789 y(tion)37 b(are)f(p)s(erformed)f(when)g(the)h(function)g(is)g
+(executed.)59 b(F)-8 b(unction)37 b(de\014nitions)f(are)h(deleted)f
+(using)150 1899 y(the)31 b Ft(-f)e Fu(option)i(to)g(the)g
Ft(unset)e Fu(builtin)h(\(see)h(Section)g(4.1)h([Bourne)e(Shell)g
-(Builtins],)h(page)h(52\).)275 1559 y(The)26 b(exit)i(status)g(of)f(a)h
+(Builtins],)h(page)h(52\).)275 2030 y(The)26 b(exit)i(status)g(of)f(a)h
(function)f(de\014nition)g(is)g(zero)h(unless)f(a)g(syn)m(tax)h(error)f
-(o)s(ccurs)g(or)g(a)h(readonly)150 1669 y(function)k(with)f(the)i(same)
+(o)s(ccurs)g(or)g(a)h(readonly)150 2140 y(function)k(with)f(the)i(same)
f(name)g(already)h(exists.)46 b(When)32 b(executed,)h(the)f(exit)h
-(status)g(of)f(a)g(function)150 1778 y(is)e(the)h(exit)g(status)g(of)f
+(status)g(of)f(a)g(function)150 2250 y(is)e(the)h(exit)g(status)g(of)f
(the)h(last)g(command)f(executed)i(in)e(the)g(b)s(o)s(dy)-8
-b(.)275 1915 y(Note)22 b(that)f(for)f(historical)i(reasons,)h(in)e(the)
+b(.)275 2381 y(Note)22 b(that)f(for)f(historical)i(reasons,)h(in)e(the)
g(most)g(common)g(usage)g(the)g(curly)f(braces)h(that)g(surround)150
-2025 y(the)38 b(b)s(o)s(dy)d(of)j(the)f(function)g(m)m(ust)g(b)s(e)g
+2491 y(the)38 b(b)s(o)s(dy)d(of)j(the)f(function)g(m)m(ust)g(b)s(e)g
(separated)h(from)f(the)g(b)s(o)s(dy)f(b)m(y)h Ft(blank)p
-Fu(s)f(or)h(newlines.)62 b(This)150 2134 y(is)38 b(b)s(ecause)g(the)h
+Fu(s)f(or)h(newlines.)62 b(This)150 2600 y(is)38 b(b)s(ecause)g(the)h
(braces)f(are)h(reserv)m(ed)f(w)m(ords)g(and)f(are)i(only)f(recognized)
-i(as)e(suc)m(h)g(when)f(they)i(are)150 2244 y(separated)j(from)g(the)g
+i(as)e(suc)m(h)g(when)f(they)i(are)150 2710 y(separated)j(from)g(the)g
(command)f(list)i(b)m(y)f(whitespace)g(or)g(another)g(shell)g(metac)m
-(haracter.)78 b(When)150 2354 y(using)30 b(the)g(braces,)h(the)g
+(haracter.)78 b(When)150 2819 y(using)30 b(the)g(braces,)h(the)g
Fr(list)i Fu(m)m(ust)d(b)s(e)g(terminated)h(b)m(y)f(a)h(semicolon,)h(a)
-e(`)p Ft(&)p Fu(',)h(or)g(a)f(newline.)275 2491 y Fr(comp)s
+e(`)p Ft(&)p Fu(',)h(or)g(a)f(newline.)275 2951 y Fr(comp)s
(ound-command)38 b Fu(is)f(executed)g(whenev)m(er)f Fr(fname)42
b Fu(is)36 b(sp)s(eci\014ed)g(as)g(the)h(name)g(of)f(a)h(simple)150
-2600 y(command.)h(F)-8 b(unctions)25 b(are)g(executed)g(in)g(the)f(con)
+3061 y(command.)h(F)-8 b(unctions)25 b(are)g(executed)g(in)g(the)f(con)
m(text)i(of)f(the)f(calling)i(shell;)h(there)e(is)f(no)h(new)e(pro)s
-(cess)150 2710 y(created)31 b(to)h(in)m(terpret)e(them)h(\(con)m(trast)
+(cess)150 3170 y(created)31 b(to)h(in)m(terpret)e(them)h(\(con)m(trast)
h(this)e(with)g(the)h(execution)g(of)g(a)g(shell)f(script\).)275
-2847 y(When)i(a)i(function)f(is)g(executed,)i(the)e(argumen)m(ts)h(to)g
+3302 y(When)i(a)i(function)f(is)g(executed,)i(the)e(argumen)m(ts)h(to)g
(the)f(function)g(b)s(ecome)g(the)h(p)s(ositional)g(pa-)150
-2956 y(rameters)42 b(during)e(its)i(execution)h(\(see)f(Section)g
+3411 y(rameters)42 b(during)e(its)i(execution)h(\(see)f(Section)g
(3.4.1)h([P)m(ositional)h(P)m(arameters],)i(page)c(23\).)75
-b(The)150 3066 y(sp)s(ecial)37 b(parameter)f(`)p Ft(#)p
+b(The)150 3521 y(sp)s(ecial)37 b(parameter)f(`)p Ft(#)p
Fu(')g(that)h(expands)e(to)i(the)f(n)m(um)m(b)s(er)f(of)h(p)s
-(ositional)h(parameters)f(is)g(up)s(dated)f(to)150 3176
+(ositional)h(parameters)f(is)g(up)s(dated)f(to)150 3630
y(re\015ect)g(the)g(new)e(set)i(of)g(p)s(ositional)g(parameters.)53
b(Sp)s(ecial)35 b(parameter)g Ft(0)f Fu(is)g(unc)m(hanged.)53
-b(The)34 b(\014rst)150 3285 y(elemen)m(t)j(of)e(the)h
+b(The)34 b(\014rst)150 3740 y(elemen)m(t)j(of)e(the)h
Ft(FUNCNAME)d Fu(v)-5 b(ariable)36 b(is)g(set)g(to)g(the)f(name)h(of)f
-(the)h(function)f(while)g(the)h(function)f(is)150 3395
-y(executing.)275 3532 y(All)25 b(other)g(asp)s(ects)g(of)g(the)g(shell)
+(the)h(function)f(while)g(the)h(function)f(is)150 3850
+y(executing.)275 3981 y(All)25 b(other)g(asp)s(ects)g(of)g(the)g(shell)
g(execution)h(en)m(vironmen)m(t)g(are)f(iden)m(tical)h(b)s(et)m(w)m
-(een)g(a)f(function)g(and)150 3641 y(its)35 b(caller)i(with)d(these)i
+(een)g(a)f(function)g(and)150 4091 y(its)35 b(caller)i(with)d(these)i
(exceptions:)50 b(the)36 b Ft(DEBUG)d Fu(and)h Ft(RETURN)g
-Fu(traps)g(are)i(not)f(inherited)f(unless)h(the)150 3751
+Fu(traps)g(are)i(not)f(inherited)f(unless)h(the)150 4200
y(function)26 b(has)g(b)s(een)f(giv)m(en)i(the)g Ft(trace)d
Fu(attribute)j(using)f(the)g Ft(declare)e Fu(builtin)i(or)g(the)h
-Ft(-o)i(functrace)150 3861 y Fu(option)f(has)e(b)s(een)h(enabled)g
+Ft(-o)i(functrace)150 4310 y Fu(option)f(has)e(b)s(een)h(enabled)g
(with)g(the)g Ft(set)f Fu(builtin,)i(\(in)f(whic)m(h)f(case)j(all)f
-(functions)e(inherit)h(the)g Ft(DEBUG)150 3970 y Fu(and)33
+(functions)e(inherit)h(the)g Ft(DEBUG)150 4419 y Fu(and)33
b Ft(RETURN)f Fu(traps\),)j(and)e(the)h Ft(ERR)f Fu(trap)h(is)g(not)g
(inherited)f(unless)g(the)h Ft(-o)c(errtrace)h Fu(shell)j(option)150
-4080 y(has)h(b)s(een)f(enabled.)55 b(See)35 b(Section)h(4.1)g([Bourne)f
+4529 y(has)h(b)s(een)f(enabled.)55 b(See)35 b(Section)h(4.1)g([Bourne)f
(Shell)g(Builtins],)i(page)f(52,)i(for)c(the)i(description)f(of)150
-4189 y(the)c Ft(trap)e Fu(builtin.)275 4326 y(The)38
+4639 y(the)c Ft(trap)e Fu(builtin.)275 4770 y(The)38
b Ft(FUNCNEST)f Fu(v)-5 b(ariable,)42 b(if)d(set)h(to)g(a)g(n)m(umeric)
f(v)-5 b(alue)39 b(greater)h(than)f(0,)j(de\014nes)d(a)g(maxim)m(um)150
-4436 y(function)24 b(nesting)h(lev)m(el.)40 b(F)-8 b(unction)25
+4880 y(function)24 b(nesting)h(lev)m(el.)40 b(F)-8 b(unction)25
b(in)m(v)m(o)s(cations)i(that)e(exceed)g(the)g(limit)g(cause)g(the)g
-(en)m(tire)g(command)150 4545 y(to)31 b(ab)s(ort.)275
-4682 y(If)37 b(the)g(builtin)g(command)h Ft(return)d
+(en)m(tire)g(command)150 4989 y(to)31 b(ab)s(ort.)275
+5121 y(If)37 b(the)g(builtin)g(command)h Ft(return)d
Fu(is)j(executed)g(in)g(a)g(function,)h(the)e(function)h(completes)h
-(and)150 4792 y(execution)25 b(resumes)e(with)h(the)g(next)g(command)f
+(and)150 5230 y(execution)25 b(resumes)e(with)h(the)g(next)g(command)f
(after)i(the)f(function)f(call.)40 b(An)m(y)24 b(command)f(asso)s
-(ciated)150 4902 y(with)h(the)h Ft(RETURN)d Fu(trap)i(is)h(executed)g
+(ciated)150 5340 y(with)h(the)h Ft(RETURN)d Fu(trap)i(is)h(executed)g
(b)s(efore)f(execution)i(resumes.)38 b(When)24 b(a)h(function)f
-(completes,)j(the)150 5011 y(v)-5 b(alues)29 b(of)g(the)g(p)s
-(ositional)h(parameters)f(and)g(the)g(sp)s(ecial)g(parameter)h(`)p
-Ft(#)p Fu(')f(are)g(restored)g(to)h(the)f(v)-5 b(alues)150
-5121 y(they)30 b(had)f(prior)g(to)h(the)g(function's)g(execution.)41
-b(If)29 b Ft(return)f Fu(is)i(supplied)e(a)i(n)m(umeric)g(argumen)m(t,)
-g(that)150 5230 y(is)35 b(the)g(function's)g(return)f(status;)k
-(otherwise)e(the)f(function's)g(return)f(status)h(is)g(the)g(exit)h
-(status)g(of)150 5340 y(the)31 b(last)g(command)f(executed)h(b)s(efore)
-f(the)h Ft(return)p Fu(.)p eop end
+(completes,)j(the)p eop end
%%Page: 21 27
TeXDict begin 21 26 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(21)275 299
-y(V)-8 b(ariables)43 b(lo)s(cal)h(to)f(the)g(function)f(are)h(declared)
-g(with)f(the)h Ft(local)e Fu(builtin)h(\()p Fr(lo)s(cal)i(v)-5
-b(ariables)t Fu(\).)150 408 y(Ordinarily)d(,)35 b(v)-5
-b(ariables)35 b(and)f(their)g(v)-5 b(alues)35 b(are)g(shared)e(b)s(et)m
-(w)m(een)i(a)g(function)f(and)g(its)g(caller.)54 b(These)150
-518 y(v)-5 b(ariables)30 b(are)f(visible)g(only)g(to)h(the)f(function)f
-(and)g(the)i(commands)e(it)h(in)m(v)m(ok)m(es.)42 b(This)28
-b(is)h(particularly)150 628 y(imp)s(ortan)m(t)i(when)e(a)i(shell)f
-(function)g(calls)i(other)e(functions.)275 778 y(In)j(the)h(follo)m
-(wing)i(description,)f(the)g Fr(curren)m(t)f(scop)s(e)39
-b Fu(is)34 b(a)h(curren)m(tly-)g(executing)g(function.)52
-b(Pre-)150 888 y(vious)33 b(scop)s(es)g(consist)g(of)g(that)g
-(function's)g(caller)h(and)e(so)h(on,)h(bac)m(k)g(to)f(the)g
-Ft(")p Fu(global)p Ft(")h Fu(scop)s(e,)f(where)150 998
-y(the)g(shell)g(is)g(not)g(executing)i(an)m(y)e(shell)g(function.)48
-b(A)33 b(lo)s(cal)h(v)-5 b(ariable)34 b(at)g(the)f(curren)m(t)g(lo)s
-(cal)h(scop)s(e)f(is)150 1107 y(a)k(v)-5 b(ariable)38
-b(declared)f(using)f(the)h Ft(local)f Fu(or)h Ft(declare)d
-Fu(builtins)j(in)f(the)h(function)g(that)g(is)g(curren)m(tly)150
-1217 y(executing.)275 1367 y(Lo)s(cal)26 b(v)-5 b(ariables)26
-b Ft(")p Fu(shado)m(w)p Ft(")e Fu(v)-5 b(ariables)26
-b(with)g(the)f(same)h(name)f(declared)h(at)g(previous)f(scop)s(es.)39
-b(F)-8 b(or)150 1477 y(instance,)27 b(a)e(lo)s(cal)h(v)-5
-b(ariable)25 b(declared)g(in)f(a)h(function)f(hides)h(v)-5
-b(ariables)25 b(with)f(the)h(same)g(name)f(declared)150
-1587 y(at)30 b(previous)e(scop)s(es,)i(including)f(global)h(v)-5
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(21)150 299
+y(v)-5 b(alues)29 b(of)g(the)g(p)s(ositional)h(parameters)f(and)g(the)g
+(sp)s(ecial)g(parameter)h(`)p Ft(#)p Fu(')f(are)g(restored)g(to)h(the)f
+(v)-5 b(alues)150 408 y(they)30 b(had)f(prior)g(to)h(the)g(function's)g
+(execution.)41 b(If)29 b Ft(return)f Fu(is)i(supplied)e(a)i(n)m(umeric)
+g(argumen)m(t,)g(that)150 518 y(is)35 b(the)g(function's)g(return)f
+(status;)k(otherwise)e(the)f(function's)g(return)f(status)h(is)g(the)g
+(exit)h(status)g(of)150 628 y(the)31 b(last)g(command)f(executed)h(b)s
+(efore)f(the)h Ft(return)p Fu(.)275 762 y(V)-8 b(ariables)43
+b(lo)s(cal)h(to)f(the)g(function)f(are)h(declared)g(with)f(the)h
+Ft(local)e Fu(builtin)h(\()p Fr(lo)s(cal)i(v)-5 b(ariables)t
+Fu(\).)150 871 y(Ordinarily)d(,)35 b(v)-5 b(ariables)35
+b(and)f(their)g(v)-5 b(alues)35 b(are)g(shared)e(b)s(et)m(w)m(een)i(a)g
+(function)f(and)g(its)g(caller.)54 b(These)150 981 y(v)-5
+b(ariables)30 b(are)f(visible)g(only)g(to)h(the)f(function)f(and)g(the)
+i(commands)e(it)h(in)m(v)m(ok)m(es.)42 b(This)28 b(is)h(particularly)
+150 1090 y(imp)s(ortan)m(t)i(when)e(a)i(shell)f(function)g(calls)i
+(other)e(functions.)275 1224 y(In)j(the)h(follo)m(wing)i(description,)f
+(the)g Fr(curren)m(t)f(scop)s(e)39 b Fu(is)34 b(a)h(curren)m(tly-)g
+(executing)g(function.)52 b(Pre-)150 1334 y(vious)33
+b(scop)s(es)g(consist)g(of)g(that)g(function's)g(caller)h(and)e(so)h
+(on,)h(bac)m(k)g(to)f(the)g Ft(")p Fu(global)p Ft(")h
+Fu(scop)s(e,)f(where)150 1443 y(the)g(shell)g(is)g(not)g(executing)i
+(an)m(y)e(shell)g(function.)48 b(A)33 b(lo)s(cal)h(v)-5
+b(ariable)34 b(at)g(the)f(curren)m(t)g(lo)s(cal)h(scop)s(e)f(is)150
+1553 y(a)k(v)-5 b(ariable)38 b(declared)f(using)f(the)h
+Ft(local)f Fu(or)h Ft(declare)d Fu(builtins)j(in)f(the)h(function)g
+(that)g(is)g(curren)m(tly)150 1663 y(executing.)275 1797
+y(Lo)s(cal)26 b(v)-5 b(ariables)26 b Ft(")p Fu(shado)m(w)p
+Ft(")e Fu(v)-5 b(ariables)26 b(with)g(the)f(same)h(name)f(declared)h
+(at)g(previous)f(scop)s(es.)39 b(F)-8 b(or)150 1906 y(instance,)27
+b(a)e(lo)s(cal)h(v)-5 b(ariable)25 b(declared)g(in)f(a)h(function)f
+(hides)h(v)-5 b(ariables)25 b(with)f(the)h(same)g(name)f(declared)150
+2016 y(at)30 b(previous)e(scop)s(es,)i(including)f(global)h(v)-5
b(ariables:)41 b(references)29 b(and)g(assignmen)m(ts)h(refer)e(to)i
-(the)g(lo)s(cal)150 1696 y(v)-5 b(ariable,)35 b(lea)m(ving)h(the)e(v)-5
+(the)g(lo)s(cal)150 2125 y(v)-5 b(ariable,)35 b(lea)m(ving)h(the)e(v)-5
b(ariables)34 b(at)g(previous)f(scop)s(es)h(unmo)s(di\014ed.)48
-b(When)34 b(the)g(function)f(returns,)150 1806 y(the)e(global)g(v)-5
-b(ariable)31 b(is)g(once)g(again)g(visible.)275 1956
+b(When)34 b(the)g(function)f(returns,)150 2235 y(the)e(global)g(v)-5
+b(ariable)31 b(is)g(once)g(again)g(visible.)275 2369
y(The)f(shell)h(uses)g Fr(dynamic)g(scoping)39 b Fu(to)32
b(con)m(trol)g(a)f(v)-5 b(ariable's)32 b(visibilit)m(y)h(within)d
-(functions.)42 b(With)150 2066 y(dynamic)31 b(scoping,)i(visible)e(v)-5
+(functions.)42 b(With)150 2478 y(dynamic)31 b(scoping,)i(visible)e(v)-5
b(ariables)32 b(and)f(their)h(v)-5 b(alues)32 b(are)f(a)h(result)g(of)f
-(the)h(sequence)g(of)f(function)150 2176 y(calls)37 b(that)g(caused)g
+(the)h(sequence)g(of)f(function)150 2588 y(calls)37 b(that)g(caused)g
(execution)g(to)g(reac)m(h)g(the)g(curren)m(t)f(function.)58
b(The)36 b(v)-5 b(alue)36 b(of)h(a)g(v)-5 b(ariable)37
-b(that)g(a)150 2285 y(function)30 b(sees)h(dep)s(ends)d(on)i(its)h(v)-5
+b(that)g(a)150 2698 y(function)30 b(sees)h(dep)s(ends)d(on)i(its)h(v)-5
b(alue)30 b(within)g(its)h(caller,)h(if)e(an)m(y)-8 b(,)31
-b(whether)f(that)g(caller)i(is)e(the)h(global)150 2395
+b(whether)f(that)g(caller)i(is)e(the)h(global)150 2807
y(scop)s(e)41 b(or)g(another)g(shell)g(function.)73 b(This)40
b(is)h(also)h(the)f(v)-5 b(alue)41 b(that)h(a)f(lo)s(cal)i(v)-5
-b(ariable)41 b(declaration)150 2504 y(shado)m(ws,)30
+b(ariable)41 b(declaration)150 2917 y(shado)m(ws,)30
b(and)g(the)h(v)-5 b(alue)31 b(that)f(is)h(restored)f(when)g(the)g
-(function)g(returns.)275 2655 y(F)-8 b(or)38 b(example,)h(if)f(a)f(v)-5
+(function)g(returns.)275 3051 y(F)-8 b(or)38 b(example,)h(if)f(a)f(v)-5
b(ariable)38 b Ft(var)f Fu(is)g(declared)h(as)f(lo)s(cal)i(in)e
(function)g Ft(func1)p Fu(,)g(and)g Ft(func1)f Fu(calls)150
-2765 y(another)42 b(function)g Ft(func2)p Fu(,)i(references)e(to)h
+3160 y(another)42 b(function)g Ft(func2)p Fu(,)i(references)e(to)h
Ft(var)e Fu(made)h(from)f(within)h Ft(func2)e Fu(resolv)m(e)k(to)e(the)
-h(lo)s(cal)150 2874 y(v)-5 b(ariable)31 b Ft(var)f Fu(from)g
+h(lo)s(cal)150 3270 y(v)-5 b(ariable)31 b Ft(var)f Fu(from)g
Ft(func1)p Fu(,)f(shado)m(wing)h(an)m(y)h(global)h(v)-5
-b(ariable)31 b(named)f Ft(var)p Fu(.)275 3025 y(The)f(follo)m(wing)j
+b(ariable)31 b(named)f Ft(var)p Fu(.)275 3404 y(The)f(follo)m(wing)j
(script)f(demonstrates)f(this)h(b)s(eha)m(vior.)40 b(When)31
-b(executed,)g(the)g(script)f(displa)m(ys)390 3176 y Ft(In)47
-b(func2,)f(var)h(=)h(func1)e(local)390 3326 y(func1\(\))390
-3436 y({)581 3545 y(local)g(var='func1)f(local')581 3655
-y(func2)390 3765 y(})390 3984 y(func2\(\))390 4093 y({)581
-4203 y(echo)i("In)f(func2,)h(var)f(=)i($var")390 4313
-y(})390 4532 y(var=global)390 4641 y(func1)275 4792 y
+b(executed,)g(the)g(script)f(displa)m(ys)390 3538 y Ft(In)47
+b(func2,)f(var)h(=)h(func1)e(local)390 3672 y(func1\(\))390
+3781 y({)581 3891 y(local)g(var='func1)f(local')581 4001
+y(func2)390 4110 y(})390 4329 y(func2\(\))390 4439 y({)581
+4548 y(echo)i("In)f(func2,)h(var)f(=)i($var")390 4658
+y(})390 4877 y(var=global)390 4987 y(func1)275 5121 y
Fu(The)32 b Ft(unset)g Fu(builtin)g(also)i(acts)g(using)e(the)i(same)f
(dynamic)g(scop)s(e:)46 b(if)33 b(a)g(v)-5 b(ariable)34
-b(is)f(lo)s(cal)h(to)g(the)150 4902 y(curren)m(t)f(scop)s(e,)i
+b(is)f(lo)s(cal)h(to)g(the)150 5230 y(curren)m(t)f(scop)s(e,)i
Ft(unset)d Fu(unsets)i(it;)i(otherwise)e(the)g(unset)f(will)h(refer)f
(to)i(the)e(v)-5 b(ariable)35 b(found)d(in)i(an)m(y)150
-5011 y(calling)28 b(scop)s(e)g(as)f(describ)s(ed)f(ab)s(o)m(v)m(e.)40
+5340 y(calling)28 b(scop)s(e)g(as)f(describ)s(ed)f(ab)s(o)m(v)m(e.)40
b(If)27 b(a)g(v)-5 b(ariable)28 b(at)g(the)f(curren)m(t)g(lo)s(cal)h
-(scop)s(e)f(is)g(unset,)h(it)f(remains)150 5121 y(so)35
-b(\(app)s(earing)h(as)f(unset\))g(un)m(til)h(it)g(is)f(reset)h(in)f
-(that)g(scop)s(e)h(or)f(un)m(til)h(the)f(function)g(returns.)54
-b(Once)150 5230 y(the)36 b(function)g(returns,)g(an)m(y)g(instance)g
-(of)g(the)g(v)-5 b(ariable)37 b(at)f(a)h(previous)e(scop)s(e)h(b)s
-(ecomes)g(visible.)57 b(If)150 5340 y(the)30 b(unset)f(acts)i(on)e(a)h
-(v)-5 b(ariable)31 b(at)f(a)g(previous)f(scop)s(e,)i(an)m(y)f(instance)
-g(of)g(a)g(v)-5 b(ariable)30 b(with)g(that)g(name)p eop
-end
+(scop)s(e)f(is)g(unset,)h(it)f(remains)p eop end
%%Page: 22 28
TeXDict begin 22 27 bop 150 -116 a Fu(Chapter)30 b(3:)41
b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(22)150 299
-y(that)32 b(had)f(b)s(een)g(shado)m(w)m(ed)h(b)s(ecomes)g(visible)g
-(\(see)h(b)s(elo)m(w)e(ho)m(w)h(the)g Ft(localvar_unset)c
-Fu(shell)j(option)150 408 y(c)m(hanges)g(this)g(b)s(eha)m(vior\).)275
-549 y(The)49 b Ft(-f)h Fu(option)g(to)h(the)g Ft(declare)d
-Fu(\()p Ft(typeset)p Fu(\))h(builtin)g(command)h(\(see)h(Section)g(4.2)
-h([Bash)150 659 y(Builtins],)d(page)c(61\))g(lists)g(function)f(names)g
-(and)g(de\014nitions.)82 b(The)43 b Ft(-F)h Fu(option)h(to)g
-Ft(declare)d Fu(or)150 768 y Ft(typeset)f Fu(lists)i(the)g(function)g
+y(so)35 b(\(app)s(earing)h(as)f(unset\))g(un)m(til)h(it)g(is)f(reset)h
+(in)f(that)g(scop)s(e)h(or)f(un)m(til)h(the)f(function)g(returns.)54
+b(Once)150 408 y(the)36 b(function)g(returns,)g(an)m(y)g(instance)g(of)
+g(the)g(v)-5 b(ariable)37 b(at)f(a)h(previous)e(scop)s(e)h(b)s(ecomes)g
+(visible.)57 b(If)150 518 y(the)30 b(unset)f(acts)i(on)e(a)h(v)-5
+b(ariable)31 b(at)f(a)g(previous)f(scop)s(e,)i(an)m(y)f(instance)g(of)g
+(a)g(v)-5 b(ariable)30 b(with)g(that)g(name)150 628 y(that)i(had)f(b)s
+(een)g(shado)m(w)m(ed)h(b)s(ecomes)g(visible)g(\(see)h(b)s(elo)m(w)e
+(ho)m(w)h(the)g Ft(localvar_unset)c Fu(shell)j(option)150
+737 y(c)m(hanges)g(this)g(b)s(eha)m(vior\).)275 878 y(The)49
+b Ft(-f)h Fu(option)g(to)h(the)g Ft(declare)d Fu(\()p
+Ft(typeset)p Fu(\))h(builtin)g(command)h(\(see)h(Section)g(4.2)h([Bash)
+150 987 y(Builtins],)d(page)c(61\))g(lists)g(function)f(names)g(and)g
+(de\014nitions.)82 b(The)43 b Ft(-F)h Fu(option)h(to)g
+Ft(declare)d Fu(or)150 1097 y Ft(typeset)f Fu(lists)i(the)g(function)g
(names)g(only)g(\(and)f(optionally)i(the)g(source)f(\014le)g(and)f
-(line)h(n)m(um)m(b)s(er,)150 878 y(if)c(the)h Ft(extdebug)c
+(line)h(n)m(um)m(b)s(er,)150 1207 y(if)c(the)h Ft(extdebug)c
Fu(shell)k(option)f(is)h(enabled\).)67 b(F)-8 b(unctions)40
b(ma)m(y)g(b)s(e)e(exp)s(orted)h(so)g(that)h(c)m(hild)g(shell)150
-987 y(pro)s(cesses)g(\(those)i(created)f(when)f(executing)h(a)g
+1316 y(pro)s(cesses)g(\(those)i(created)f(when)f(executing)h(a)g
(separate)h(shell)e(in)m(v)m(o)s(cation\))j(automatically)h(ha)m(v)m(e)
-150 1097 y(them)i(de\014ned)f(with)h(the)h Ft(-f)f Fu(option)h(to)g
+150 1426 y(them)i(de\014ned)f(with)h(the)h Ft(-f)f Fu(option)h(to)g
(the)f Ft(export)f Fu(builtin)h(\(see)h(Section)g(4.1)h([Bourne)e
-(Shell)150 1207 y(Builtins],)g(page)e(52\).)78 b(The)42
+(Shell)150 1535 y(Builtins],)g(page)e(52\).)78 b(The)42
b Ft(-f)g Fu(option)g(to)i(the)e Ft(unset)f Fu(builtin)h(\(see)i
-(Section)f(4.1)h([Bourne)e(Shell)150 1316 y(Builtins],)31
+(Section)f(4.1)h([Bourne)e(Shell)150 1645 y(Builtins],)31
b(page)g(52\))h(deletes)f(a)g(function)f(de\014nition.)275
-1457 y(F)-8 b(unctions)33 b(ma)m(y)g(b)s(e)g(recursiv)m(e.)48
+1786 y(F)-8 b(unctions)33 b(ma)m(y)g(b)s(e)g(recursiv)m(e.)48
b(The)32 b Ft(FUNCNEST)f Fu(v)-5 b(ariable)34 b(ma)m(y)f(b)s(e)f(used)g
-(to)i(limit)g(the)f(depth)f(of)150 1566 y(the)j(function)g(call)h(stac)
+(to)i(limit)g(the)f(depth)f(of)150 1895 y(the)j(function)g(call)h(stac)
m(k)g(and)f(restrict)g(the)g(n)m(um)m(b)s(er)f(of)h(function)g(in)m(v)m
-(o)s(cations.)56 b(By)35 b(default,)i(Bash)150 1676 y(places)31
+(o)s(cations.)56 b(By)35 b(default,)i(Bash)150 2005 y(places)31
b(no)f(limit)i(on)e(the)g(n)m(um)m(b)s(er)g(of)g(recursiv)m(e)h(calls.)
-150 1926 y Fs(3.4)68 b(Shell)45 b(P)l(arameters)150 2085
+150 2255 y Fs(3.4)68 b(Shell)45 b(P)l(arameters)150 2414
y Fu(A)39 b Fr(parameter)45 b Fu(is)39 b(an)g(en)m(tit)m(y)h(that)f
(stores)g(v)-5 b(alues.)66 b(It)39 b(can)g(b)s(e)f(a)h
Ft(name)p Fu(,)h(a)f(n)m(um)m(b)s(er,)g(or)g(one)g(of)g(the)150
-2195 y(sp)s(ecial)c(c)m(haracters)h(listed)g(b)s(elo)m(w.)53
+2524 y(sp)s(ecial)c(c)m(haracters)h(listed)g(b)s(elo)m(w.)53
b(A)35 b Fr(v)-5 b(ariable)41 b Fu(is)34 b(a)h(parameter)h(denoted)e(b)
m(y)h(a)g Ft(name)p Fu(.)52 b(A)35 b(v)-5 b(ariable)150
-2305 y(has)41 b(a)h Ft(value)d Fu(and)i(zero)h(or)f(more)g
+2633 y(has)41 b(a)h Ft(value)d Fu(and)i(zero)h(or)f(more)g
Ft(attributes)p Fu(.)71 b(A)m(ttributes)42 b(are)f(assigned)h(using)f
-(the)g Ft(declare)150 2414 y Fu(builtin)29 b(command)g(\(see)h(the)g
+(the)g Ft(declare)150 2743 y Fu(builtin)29 b(command)g(\(see)h(the)g
(description)f(of)g(the)h Ft(declare)d Fu(builtin)i(in)g(Section)h(4.2)
-g([Bash)g(Builtins],)150 2524 y(page)h(61\).)42 b(The)30
+g([Bash)g(Builtins],)150 2852 y(page)h(61\).)42 b(The)30
b Ft(export)f Fu(and)g Ft(readonly)f Fu(builtins)i(assign)h(sp)s
-(eci\014c)f(attributes.)275 2664 y(A)e(parameter)h(is)g(set)g(if)f(it)h
+(eci\014c)f(attributes.)275 2993 y(A)e(parameter)h(is)g(set)g(if)f(it)h
(has)f(b)s(een)g(assigned)h(a)g(v)-5 b(alue.)40 b(The)28
b(n)m(ull)h(string)f(is)h(a)g(v)-5 b(alid)28 b(v)-5 b(alue.)41
-b(Once)150 2774 y(a)31 b(v)-5 b(ariable)31 b(is)f(set,)i(it)e(ma)m(y)h
+b(Once)150 3103 y(a)31 b(v)-5 b(ariable)31 b(is)f(set,)i(it)e(ma)m(y)h
(b)s(e)f(unset)g(only)h(b)m(y)f(using)g(the)g Ft(unset)f
-Fu(builtin)h(command.)275 2915 y(A)g(v)-5 b(ariable)31
+Fu(builtin)h(command.)275 3243 y(A)g(v)-5 b(ariable)31
b(is)g(assigned)f(to)h(using)f(a)h(statemen)m(t)h(of)f(the)f(form)390
-3055 y Fj(name)p Ft(=[)p Fj(value)p Ft(])150 3196 y Fu(If)43
+3384 y Fj(name)p Ft(=[)p Fj(value)p Ft(])150 3525 y Fu(If)43
b Fr(v)-5 b(alue)49 b Fu(is)43 b(not)h(giv)m(en,)k(the)c(v)-5
b(ariable)44 b(is)f(assigned)h(the)f(n)m(ull)h(string.)80
b(All)44 b Fr(v)-5 b(alue)5 b Fu(s)43 b(undergo)g(tilde)150
-3305 y(expansion,)25 b(parameter)f(and)f(v)-5 b(ariable)25
+3634 y(expansion,)25 b(parameter)f(and)f(v)-5 b(ariable)25
b(expansion,)g(command)e(substitution,)i(arithmetic)g(expansion,)150
-3415 y(and)i(quote)i(remo)m(v)-5 b(al)29 b(\(see)g(Section)f(3.5.3)i
+3744 y(and)i(quote)i(remo)m(v)-5 b(al)29 b(\(see)g(Section)f(3.5.3)i
([Shell)e(P)m(arameter)h(Expansion],)f(page)h(27\).)41
-b(If)27 b(the)h(v)-5 b(ariable)150 3525 y(has)35 b(its)h
+b(If)27 b(the)h(v)-5 b(ariable)150 3853 y(has)35 b(its)h
Ft(integer)e Fu(attribute)i(set,)i(then)d Fr(v)-5 b(alue)42
b Fu(is)35 b(ev)-5 b(aluated)37 b(as)f(an)f(arithmetic)i(expression)f
-(ev)m(en)g(if)150 3634 y(the)i Ft($\(\(...)n(\)\))f Fu(expansion)g(is)g
+(ev)m(en)g(if)150 3963 y(the)i Ft($\(\(...)n(\)\))f Fu(expansion)g(is)g
(not)h(used)e(\(see)j(Section)f(3.5.5)h([Arithmetic)f(Expansion],)h
-(page)f(37\).)150 3744 y(W)-8 b(ord)26 b(splitting)h(and)e(\014lename)h
+(page)f(37\).)150 4072 y(W)-8 b(ord)26 b(splitting)h(and)e(\014lename)h
(expansion)g(are)g(not)h(p)s(erformed.)37 b(Assignmen)m(t)27
-b(statemen)m(ts)g(ma)m(y)g(also)150 3853 y(app)s(ear)22
+b(statemen)m(ts)g(ma)m(y)g(also)150 4182 y(app)s(ear)22
b(as)h(argumen)m(ts)g(to)h(the)f Ft(alias)p Fu(,)g Ft(declare)p
Fu(,)f Ft(typeset)p Fu(,)h Ft(export)p Fu(,)g Ft(readonly)p
-Fu(,)f(and)g Ft(local)f Fu(builtin)150 3963 y(commands)31
+Fu(,)f(and)g Ft(local)f Fu(builtin)150 4292 y(commands)31
b(\()p Fr(declaration)i(commands)t Fu(\).)43 b(When)32
b(in)f Fm(posix)f Fu(mo)s(de)h(\(see)h(Section)g(6.11)h([Bash)f(POSIX)
-150 4072 y(Mo)s(de],)h(page)f(116\),)i(these)e(builtins)f(ma)m(y)h(app)
+150 4401 y(Mo)s(de],)h(page)f(116\),)i(these)e(builtins)f(ma)m(y)h(app)
s(ear)f(in)g(a)h(command)f(after)h(one)g(or)g(more)g(instances)g(of)150
-4182 y(the)f Ft(command)d Fu(builtin)i(and)g(retain)h(these)f
+4511 y(the)f Ft(command)d Fu(builtin)i(and)g(retain)h(these)f
(assignmen)m(t)i(statemen)m(t)g(prop)s(erties.)40 b(F)-8
-b(or)31 b(example,)390 4323 y Ft(command)46 b(export)g(var=value)275
-4463 y Fu(In)29 b(the)h(con)m(text)i(where)d(an)h(assignmen)m(t)h
+b(or)31 b(example,)390 4651 y Ft(command)46 b(export)g(var=value)275
+4792 y Fu(In)29 b(the)h(con)m(text)i(where)d(an)h(assignmen)m(t)h
(statemen)m(t)h(is)e(assigning)g(a)h(v)-5 b(alue)30 b(to)h(a)f(shell)g
-(v)-5 b(ariable)31 b(or)150 4573 y(arra)m(y)36 b(index)g(\(see)h
+(v)-5 b(ariable)31 b(or)150 4902 y(arra)m(y)36 b(index)g(\(see)h
(Section)g(6.7)g([Arra)m(ys],)h(page)f(110\),)i(the)d(`)p
Ft(+=)p Fu(')g(op)s(erator)g(app)s(ends)e(to)j(or)f(adds)f(to)150
-4682 y(the)j(v)-5 b(ariable's)38 b(previous)f(v)-5 b(alue.)63
+5011 y(the)j(v)-5 b(ariable's)38 b(previous)f(v)-5 b(alue.)63
b(This)36 b(includes)h(argumen)m(ts)h(to)g(declaration)h(commands)f
-(suc)m(h)f(as)150 4792 y Ft(declare)31 b Fu(that)k(accept)f(assignmen)m
+(suc)m(h)f(as)150 5121 y Ft(declare)31 b Fu(that)k(accept)f(assignmen)m
(t)h(statemen)m(ts.)51 b(When)34 b(`)p Ft(+=)p Fu(')f(is)g(applied)h
-(to)g(a)g(v)-5 b(ariable)34 b(for)f(whic)m(h)150 4902
+(to)g(a)g(v)-5 b(ariable)34 b(for)f(whic)m(h)150 5230
y(the)23 b Ft(integer)d Fu(attribute)k(has)e(b)s(een)g(set,)j(the)d(v)
-5 b(ariable's)24 b(curren)m(t)e(v)-5 b(alue)23 b(and)f
Fr(v)-5 b(alue)28 b Fu(are)23 b(eac)m(h)h(ev)-5 b(aluated)150
-5011 y(as)25 b(arithmetic)i(expressions,)f(and)e(the)i(sum)e(of)h(the)h
+5340 y(as)25 b(arithmetic)i(expressions,)f(and)e(the)i(sum)e(of)h(the)h
(results)f(is)g(assigned)g(as)h(the)f(v)-5 b(ariable's)26
-b(v)-5 b(alue.)39 b(The)150 5121 y(curren)m(t)24 b(v)-5
-b(alue)26 b(is)e(usually)h(an)f(in)m(teger)i(constan)m(t,)i(but)c(ma)m
-(y)h(b)s(e)f(an)h(expression.)38 b(When)25 b(`)p Ft(+=)p
-Fu(')f(is)h(applied)150 5230 y(to)35 b(an)f(arra)m(y)h(v)-5
-b(ariable)34 b(using)g(comp)s(ound)f(assignmen)m(t)i(\(see)g(Section)g
-(6.7)g([Arra)m(ys],)h(page)f(110\),)i(the)150 5340 y(v)-5
-b(ariable's)33 b(v)-5 b(alue)34 b(is)e(not)h(unset)f(\(as)h(it)g(is)g
-(when)f(using)g(`)p Ft(=)p Fu('\),)i(and)e(new)g(v)-5
-b(alues)33 b(are)g(app)s(ended)d(to)k(the)p eop end
+b(v)-5 b(alue.)39 b(The)p eop end
%%Page: 23 29
TeXDict begin 23 28 bop 150 -116 a Fu(Chapter)30 b(3:)41
b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(23)150 299
-y(arra)m(y)38 b(b)s(eginning)f(at)h(one)g(greater)h(than)f(the)g(arra)m
-(y's)g(maxim)m(um)f(index)h(\(for)f(indexed)g(arra)m(ys\),)k(or)150
-408 y(added)24 b(as)i(additional)g(k)m(ey-v)-5 b(alue)26
+y(curren)m(t)24 b(v)-5 b(alue)26 b(is)e(usually)h(an)f(in)m(teger)i
+(constan)m(t,)i(but)c(ma)m(y)h(b)s(e)f(an)h(expression.)38
+b(When)25 b(`)p Ft(+=)p Fu(')f(is)h(applied)150 408 y(to)35
+b(an)f(arra)m(y)h(v)-5 b(ariable)34 b(using)g(comp)s(ound)f(assignmen)m
+(t)i(\(see)g(Section)g(6.7)g([Arra)m(ys],)h(page)f(110\),)i(the)150
+518 y(v)-5 b(ariable's)33 b(v)-5 b(alue)34 b(is)e(not)h(unset)f(\(as)h
+(it)g(is)g(when)f(using)g(`)p Ft(=)p Fu('\),)i(and)e(new)g(v)-5
+b(alues)33 b(are)g(app)s(ended)d(to)k(the)150 628 y(arra)m(y)k(b)s
+(eginning)f(at)h(one)g(greater)h(than)f(the)g(arra)m(y's)g(maxim)m(um)f
+(index)h(\(for)f(indexed)g(arra)m(ys\),)k(or)150 737
+y(added)24 b(as)i(additional)g(k)m(ey-v)-5 b(alue)26
b(pairs)f(in)g(an)g(asso)s(ciativ)m(e)j(arra)m(y)-8 b(.)40
b(When)24 b(applied)h(to)h(a)g(string-v)-5 b(alued)150
-518 y(v)g(ariable,)31 b Fr(v)-5 b(alue)36 b Fu(is)31
+847 y(v)g(ariable,)31 b Fr(v)-5 b(alue)36 b Fu(is)31
b(expanded)e(and)h(app)s(ended)f(to)i(the)f(v)-5 b(ariable's)32
-b(v)-5 b(alue.)275 671 y(A)28 b(v)-5 b(ariable)28 b(can)h(b)s(e)e
+b(v)-5 b(alue.)275 1036 y(A)28 b(v)-5 b(ariable)28 b(can)h(b)s(e)e
(assigned)h(the)h Ft(nameref)d Fu(attribute)i(using)g(the)g
Ft(-n)f Fu(option)i(to)g(the)f Ft(declare)e Fu(or)150
-780 y Ft(local)f Fu(builtin)h(commands)g(\(see)i(Section)f(4.2)h([Bash)
-f(Builtins],)h(page)f(61\))h(to)f(create)i(a)e Fr(nameref)p
-Fu(,)g(or)g(a)150 890 y(reference)f(to)g(another)f(v)-5
+1145 y Ft(local)f Fu(builtin)h(commands)g(\(see)i(Section)f(4.2)h
+([Bash)f(Builtins],)h(page)f(61\))h(to)f(create)i(a)e
+Fr(nameref)p Fu(,)g(or)g(a)150 1255 y(reference)f(to)g(another)f(v)-5
b(ariable.)40 b(This)24 b(allo)m(ws)j(v)-5 b(ariables)26
b(to)g(b)s(e)e(manipulated)h(indirectly)-8 b(.)40 b(Whenev)m(er)150
-999 y(the)31 b(nameref)g(v)-5 b(ariable)32 b(is)f(referenced,)g
+1365 y(the)31 b(nameref)g(v)-5 b(ariable)32 b(is)f(referenced,)g
(assigned)h(to,)g(unset,)f(or)g(has)f(its)i(attributes)f(mo)s(di\014ed)
-f(\(other)150 1109 y(than)c(using)g(or)h(c)m(hanging)g(the)g(nameref)f
+f(\(other)150 1474 y(than)c(using)g(or)h(c)m(hanging)g(the)g(nameref)f
(attribute)i(itself)7 b(\),)29 b(the)d(op)s(eration)h(is)g(actually)h
-(p)s(erformed)d(on)150 1219 y(the)31 b(v)-5 b(ariable)31
+(p)s(erformed)d(on)150 1584 y(the)31 b(v)-5 b(ariable)31
b(sp)s(eci\014ed)f(b)m(y)g(the)h(nameref)f(v)-5 b(ariable's)31
b(v)-5 b(alue.)42 b(A)30 b(nameref)g(is)h(commonly)g(used)e(within)150
-1328 y(shell)h(functions)g(to)h(refer)f(to)h(a)f(v)-5
+1693 y(shell)h(functions)g(to)h(refer)f(to)h(a)f(v)-5
b(ariable)31 b(whose)f(name)h(is)f(passed)g(as)g(an)g(argumen)m(t)h(to)
-g(the)f(function.)150 1438 y(F)-8 b(or)31 b(instance,)g(if)g(a)g(v)-5
+g(the)f(function.)150 1803 y(F)-8 b(or)31 b(instance,)g(if)g(a)g(v)-5
b(ariable)31 b(name)f(is)h(passed)e(to)j(a)e(shell)h(function)f(as)h
-(its)f(\014rst)g(argumen)m(t,)h(running)390 1590 y Ft(declare)46
-b(-n)h(ref=$1)150 1743 y Fu(inside)35 b(the)h(function)f(creates)h(a)g
+(its)f(\014rst)g(argumen)m(t,)h(running)390 1992 y Ft(declare)46
+b(-n)h(ref=$1)150 2181 y Fu(inside)35 b(the)h(function)f(creates)h(a)g
(lo)s(cal)h(nameref)e(v)-5 b(ariable)36 b Ft(ref)f Fu(whose)g(v)-5
-b(alue)36 b(is)f(the)h(v)-5 b(ariable)36 b(name)150 1852
+b(alue)36 b(is)f(the)h(v)-5 b(ariable)36 b(name)150 2290
y(passed)h(as)g(the)h(\014rst)e(argumen)m(t.)62 b(References)38
b(and)e(assignmen)m(ts)i(to)g Ft(ref)p Fu(,)g(and)f(c)m(hanges)h(to)g
-(its)g(at-)150 1962 y(tributes,)30 b(are)f(treated)h(as)g(references,)g
+(its)g(at-)150 2400 y(tributes,)30 b(are)f(treated)h(as)g(references,)g
(assignmen)m(ts,)g(and)f(attribute)h(mo)s(di\014cations)g(to)g(the)f(v)
--5 b(ariable)150 2072 y(whose)30 b(name)h(w)m(as)f(passed)g(as)h
-Ft($1)p Fu(.)275 2224 y(If)g(the)g(con)m(trol)i(v)-5
+-5 b(ariable)150 2510 y(whose)30 b(name)h(w)m(as)f(passed)g(as)h
+Ft($1)p Fu(.)275 2698 y(If)g(the)g(con)m(trol)i(v)-5
b(ariable)32 b(in)g(a)f Ft(for)g Fu(lo)s(op)h(has)f(the)g(nameref)h
(attribute,)g(the)g(list)g(of)g(w)m(ords)f(can)h(b)s(e)150
-2334 y(a)39 b(list)g(of)f(shell)h(v)-5 b(ariables,)41
+2808 y(a)39 b(list)g(of)f(shell)h(v)-5 b(ariables,)41
b(and)d(a)h(name)f(reference)h(is)g(established)f(for)h(eac)m(h)g(w)m
-(ord)f(in)g(the)h(list,)i(in)150 2443 y(turn,)d(when)d(the)i(lo)s(op)g
+(ord)f(in)g(the)h(list,)i(in)150 2918 y(turn,)d(when)d(the)i(lo)s(op)g
(is)g(executed.)61 b(Arra)m(y)37 b(v)-5 b(ariables)37
b(cannot)h(b)s(e)e(giv)m(en)h(the)g(nameref)g(attribute.)150
-2553 y(Ho)m(w)m(ev)m(er,)i(nameref)d(v)-5 b(ariables)36
+3027 y(Ho)m(w)m(ev)m(er,)i(nameref)d(v)-5 b(ariables)36
b(can)g(reference)g(arra)m(y)g(v)-5 b(ariables)37 b(and)e(subscripted)f
-(arra)m(y)i(v)-5 b(ariables.)150 2663 y(Namerefs)36 b(can)f(b)s(e)g
+(arra)m(y)i(v)-5 b(ariables.)150 3137 y(Namerefs)36 b(can)f(b)s(e)g
(unset)g(using)g(the)h Ft(-n)e Fu(option)i(to)g(the)g
Ft(unset)e Fu(builtin)h(\(see)h(Section)g(4.1)h([Bourne)150
-2772 y(Shell)43 b(Builtins],)j(page)e(52\).)79 b(Otherwise,)45
+3246 y(Shell)43 b(Builtins],)j(page)e(52\).)79 b(Otherwise,)45
b(if)e Ft(unset)e Fu(is)i(executed)h(with)e(the)h(name)g(of)g(a)g
-(nameref)150 2882 y(v)-5 b(ariable)31 b(as)g(an)f(argumen)m(t,)h(the)g
+(nameref)150 3356 y(v)-5 b(ariable)31 b(as)g(an)f(argumen)m(t,)h(the)g
(v)-5 b(ariable)31 b(referenced)f(b)m(y)g(the)h(nameref)f(v)-5
-b(ariable)31 b(is)g(unset.)275 3034 y(When)36 b(the)h(shell)h(starts,)h
+b(ariable)31 b(is)g(unset.)275 3545 y(When)36 b(the)h(shell)h(starts,)h
(it)e(reads)g(its)h(en)m(vironmen)m(t)f(and)g(creates)h(a)f(shell)g(v)
--5 b(ariable)38 b(from)f(eac)m(h)150 3144 y(en)m(vironmen)m(t)27
+-5 b(ariable)38 b(from)f(eac)m(h)150 3655 y(en)m(vironmen)m(t)27
b(v)-5 b(ariable)28 b(that)f(has)g(a)g(v)-5 b(alid)27
b(name,)h(as)f(describ)s(ed)f(b)s(elo)m(w)h(\(see)h(Section)f(3.7.4)i
-([En)m(viron-)150 3253 y(men)m(t],)i(page)g(47\).)150
-3471 y Fk(3.4.1)63 b(P)m(ositional)41 b(P)m(arameters)150
-3618 y Fu(A)28 b Fr(p)s(ositional)h(parameter)35 b Fu(is)28
+([En)m(viron-)150 3764 y(men)m(t],)i(page)g(48\).)150
+4018 y Fk(3.4.1)63 b(P)m(ositional)41 b(P)m(arameters)150
+4165 y Fu(A)28 b Fr(p)s(ositional)h(parameter)35 b Fu(is)28
b(a)g(parameter)g(denoted)g(b)m(y)g(one)g(or)g(more)g(digits,)h(other)g
-(than)e(the)h(single)150 3727 y(digit)34 b Ft(0)p Fu(.)48
+(than)e(the)h(single)150 4274 y(digit)34 b Ft(0)p Fu(.)48
b(P)m(ositional)36 b(parameters)d(are)g(assigned)h(from)e(the)i
(shell's)f(argumen)m(ts)g(when)f(it)i(is)f(in)m(v)m(ok)m(ed,)150
-3837 y(and)38 b(ma)m(y)i(b)s(e)e(reassigned)i(using)e(the)h
+4384 y(and)38 b(ma)m(y)i(b)s(e)e(reassigned)i(using)e(the)h
Ft(set)g Fu(builtin)f(command.)67 b(P)m(ositional)41
-b(parameter)e Ft(N)g Fu(ma)m(y)h(b)s(e)150 3946 y(referenced)34
+b(parameter)e Ft(N)g Fu(ma)m(y)h(b)s(e)150 4494 y(referenced)34
b(as)h Ft(${N})p Fu(,)g(or)f(as)h Ft($N)e Fu(when)h Ft(N)g
Fu(consists)h(of)f(a)h(single)g(digit.)54 b(P)m(ositional)37
-b(parameters)d(ma)m(y)150 4056 y(not)j(b)s(e)f(assigned)h(to)g(with)f
+b(parameters)d(ma)m(y)150 4603 y(not)j(b)s(e)f(assigned)h(to)g(with)f
(assignmen)m(t)i(statemen)m(ts.)61 b(The)36 b Ft(set)g
Fu(and)g Ft(shift)f Fu(builtins)h(are)h(used)f(to)150
-4166 y(set)k(and)f(unset)f(them)i(\(see)g(Chapter)f(4)g([Shell)h
+4713 y(set)k(and)f(unset)f(them)i(\(see)g(Chapter)f(4)g([Shell)h
(Builtin)g(Commands],)h(page)f(52\).)68 b(The)39 b(p)s(ositional)150
-4275 y(parameters)44 b(are)g(temp)s(orarily)g(replaced)h(when)e(a)h
+4822 y(parameters)44 b(are)g(temp)s(orarily)g(replaced)h(when)e(a)h
(shell)g(function)g(is)g(executed)g(\(see)h(Section)g(3.3)150
-4385 y([Shell)30 b(F)-8 b(unctions],)32 b(page)f(19\).)275
-4537 y(When)c(a)i(p)s(ositional)g(parameter)g(consisting)f(of)h(more)f
+4932 y([Shell)30 b(F)-8 b(unctions],)32 b(page)f(19\).)275
+5121 y(When)c(a)i(p)s(ositional)g(parameter)g(consisting)f(of)h(more)f
(than)g(a)g(single)h(digit)g(is)f(expanded,)g(it)h(m)m(ust)150
-4647 y(b)s(e)e(enclosed)h(in)g(braces.)40 b(Without)28
+5230 y(b)s(e)e(enclosed)h(in)g(braces.)40 b(Without)28
b(braces,)h(a)f(digit)g(follo)m(wing)h(`)p Ft($)p Fu(')f(can)g(only)f
-(refer)h(to)g(one)g(of)g(the)g(\014rst)150 4757 y(nine)i(p)s(ositional)
+(refer)h(to)g(one)g(of)g(the)g(\014rst)150 5340 y(nine)i(p)s(ositional)
h(parameters)g(\($1)p Ft(\\)p Fu(-$9\))i(or)d(the)h(sp)s(ecial)g
-(parameter)f($0)i(\(see)f(b)s(elo)m(w\).)150 4974 y Fk(3.4.2)63
-b(Sp)s(ecial)41 b(P)m(arameters)150 5121 y Fu(The)d(shell)g(treats)h
-(sev)m(eral)g(parameters)f(sp)s(ecially)-8 b(.)65 b(These)38
-b(parameters)h(ma)m(y)f(only)g(b)s(e)g(referenced;)150
-5230 y(assignmen)m(t)31 b(to)f(them)g(is)g(not)g(allo)m(w)m(ed.)43
-b(Sp)s(ecial)30 b(parameters)g(are)g(denoted)g(b)m(y)g(one)g(of)g(the)g
-(follo)m(wing)150 5340 y(c)m(haracters.)p eop end
+(parameter)f($0)i(\(see)f(b)s(elo)m(w\).)p eop end
%%Page: 24 30
TeXDict begin 24 29 bop 150 -116 a Fu(Chapter)30 b(3:)41
b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(24)150 299
-y Ft(*)432 b Fu(\($*\))38 b(Expands)d(to)i(the)f(p)s(ositional)h
-(parameters,)h(starting)f(from)f(one.)59 b(When)36 b(the)g(ex-)630
-408 y(pansion)h(is)h(not)g(within)f(double)g(quotes,)j(eac)m(h)f(p)s
-(ositional)f(parameter)g(expands)f(to)i(a)630 518 y(separate)31
+y Fk(3.4.2)63 b(Sp)s(ecial)41 b(P)m(arameters)150 446
+y Fu(The)d(shell)g(treats)h(sev)m(eral)g(parameters)f(sp)s(ecially)-8
+b(.)65 b(These)38 b(parameters)h(ma)m(y)f(only)g(b)s(e)g(referenced;)
+150 555 y(assignmen)m(t)31 b(to)f(them)g(is)g(not)g(allo)m(w)m(ed.)43
+b(Sp)s(ecial)30 b(parameters)g(are)g(denoted)g(b)m(y)g(one)g(of)g(the)g
+(follo)m(wing)150 665 y(c)m(haracters.)150 841 y Ft(*)432
+b Fu(\($*\))38 b(Expands)d(to)i(the)f(p)s(ositional)h(parameters,)h
+(starting)f(from)f(one.)59 b(When)36 b(the)g(ex-)630
+951 y(pansion)h(is)h(not)g(within)f(double)g(quotes,)j(eac)m(h)f(p)s
+(ositional)f(parameter)g(expands)f(to)i(a)630 1060 y(separate)31
b(w)m(ord.)41 b(In)30 b(con)m(texts)i(where)e(w)m(ord)g(expansions)g
-(are)h(p)s(erformed,)e(those)i(w)m(ords)630 628 y(are)d(sub)5
+(are)h(p)s(erformed,)e(those)i(w)m(ords)630 1170 y(are)d(sub)5
b(ject)27 b(to)i(further)d(w)m(ord)h(splitting)h(and)f(\014lename)h
-(expansion.)40 b(When)27 b(the)h(expan-)630 737 y(sion)h(o)s(ccurs)g
+(expansion.)40 b(When)27 b(the)h(expan-)630 1279 y(sion)h(o)s(ccurs)g
(within)g(double)g(quotes,)h(it)g(expands)f(to)h(a)f(single)h(w)m(ord)f
-(with)g(the)h(v)-5 b(alue)30 b(of)630 847 y(eac)m(h)37
+(with)g(the)h(v)-5 b(alue)30 b(of)630 1389 y(eac)m(h)37
b(parameter)g(separated)f(b)m(y)g(the)g(\014rst)g(c)m(haracter)h(of)g
(the)f Ft(IFS)f Fu(v)-5 b(ariable.)59 b(That)36 b(is,)630
-956 y Ft("$*")d Fu(is)h(equiv)-5 b(alen)m(t)35 b(to)g
+1499 y Ft("$*")d Fu(is)h(equiv)-5 b(alen)m(t)35 b(to)g
Ft("$1)p Fj(c)p Ft($2)p Fj(c)p Ft(...)m(")p Fu(,)g(where)e
Fr(c)40 b Fu(is)34 b(the)g(\014rst)g(c)m(haracter)h(of)f(the)g(v)-5
-b(alue)630 1066 y(of)30 b(the)g Ft(IFS)g Fu(v)-5 b(ariable.)41
+b(alue)630 1608 y(of)30 b(the)g Ft(IFS)g Fu(v)-5 b(ariable.)41
b(If)30 b Ft(IFS)f Fu(is)h(unset,)g(the)g(parameters)g(are)h(separated)
-f(b)m(y)g(spaces.)41 b(If)630 1176 y Ft(IFS)29 b Fu(is)i(n)m(ull,)f
+f(b)m(y)g(spaces.)41 b(If)630 1718 y Ft(IFS)29 b Fu(is)i(n)m(ull,)f
(the)h(parameters)g(are)f(joined)h(without)f(in)m(terv)m(ening)i
-(separators.)150 1334 y Ft(@)432 b Fu(\($@\))43 b(Expands)f(to)h(the)g
+(separators.)150 1888 y Ft(@)432 b Fu(\($@\))43 b(Expands)f(to)h(the)g
(p)s(ositional)g(parameters,)k(starting)c(from)f(one.)78
-b(In)42 b(con)m(texts)630 1444 y(where)35 b(w)m(ord)h(splitting)g(is)g
+b(In)42 b(con)m(texts)630 1998 y(where)35 b(w)m(ord)h(splitting)g(is)g
(p)s(erformed,)g(this)g(expands)e(eac)m(h)j(p)s(ositional)g(parameter)f
-(to)630 1553 y(a)d(separate)h(w)m(ord;)g(if)f(not)g(within)g(double)f
+(to)630 2107 y(a)d(separate)h(w)m(ord;)g(if)f(not)g(within)g(double)f
(quotes,)j(these)e(w)m(ords)g(are)g(sub)5 b(ject)33 b(to)g(w)m(ord)630
-1663 y(splitting.)45 b(In)30 b(con)m(texts)j(where)e(w)m(ord)g
+2217 y(splitting.)45 b(In)30 b(con)m(texts)j(where)e(w)m(ord)g
(splitting)i(is)e(not)h(p)s(erformed,)e(suc)m(h)h(as)h(the)f(v)-5
-b(alue)630 1773 y(p)s(ortion)36 b(of)h(an)g(assignmen)m(t)h(statemen)m
+b(alue)630 2327 y(p)s(ortion)36 b(of)h(an)g(assignmen)m(t)h(statemen)m
(t,)i(this)d(expands)f(to)h(a)g(single)h(w)m(ord)e(with)h(eac)m(h)630
-1882 y(p)s(ositional)31 b(parameter)g(separated)g(b)m(y)f(a)h(space.)41
+2436 y(p)s(ositional)31 b(parameter)g(separated)g(b)m(y)f(a)h(space.)41
b(When)31 b(the)f(expansion)g(o)s(ccurs)g(within)630
-1992 y(double)35 b(quotes,)i(and)e(w)m(ord)g(splitting)h(is)f(p)s
+2546 y(double)35 b(quotes,)i(and)e(w)m(ord)g(splitting)h(is)f(p)s
(erformed,)g(eac)m(h)h(parameter)g(expands)f(to)h(a)630
-2101 y(separate)j(w)m(ord.)61 b(That)38 b(is,)h Ft("$@")e
+2655 y(separate)j(w)m(ord.)61 b(That)38 b(is,)h Ft("$@")e
Fu(is)g(equiv)-5 b(alen)m(t)39 b(to)g Ft("$1")29 b("$2")g(...)o
-Fu(.)62 b(If)37 b(the)h(double-)630 2211 y(quoted)29
+Fu(.)62 b(If)37 b(the)h(double-)630 2765 y(quoted)29
b(expansion)g(o)s(ccurs)g(within)f(a)i(w)m(ord,)f(the)g(expansion)g(of)
-h(the)f(\014rst)f(parameter)i(is)630 2321 y(joined)k(with)g(the)g
+h(the)f(\014rst)f(parameter)i(is)630 2875 y(joined)k(with)g(the)g
(expansion)g(of)g(the)g(b)s(eginning)f(part)h(of)g(the)g(original)i(w)m
-(ord,)e(and)g(the)630 2430 y(expansion)j(of)g(the)g(last)g(parameter)h
+(ord,)e(and)g(the)630 2984 y(expansion)j(of)g(the)g(last)g(parameter)h
(is)f(joined)f(with)h(the)g(expansion)f(of)h(the)g(last)h(part)630
-2540 y(of)f(the)g(original)g(w)m(ord.)59 b(When)37 b(there)g(are)f(no)h
+3094 y(of)f(the)g(original)g(w)m(ord.)59 b(When)37 b(there)g(are)f(no)h
(p)s(ositional)g(parameters,)i Ft("$@")d Fu(and)g Ft($@)630
-2649 y Fu(expand)30 b(to)h(nothing)f(\(i.e.,)i(they)f(are)f(remo)m(v)m
-(ed\).)150 2808 y Ft(#)432 b Fu(\($#\))31 b(Expands)e(to)i(the)g(n)m
+3203 y Fu(expand)30 b(to)h(nothing)f(\(i.e.,)i(they)f(are)f(remo)m(v)m
+(ed\).)150 3374 y Ft(#)432 b Fu(\($#\))31 b(Expands)e(to)i(the)g(n)m
(um)m(b)s(er)e(of)h(p)s(ositional)i(parameters)e(in)g(decimal.)150
-2967 y Ft(?)432 b Fu(\($?\))41 b(Expands)29 b(to)j(the)e(exit)h(status)
+3544 y Ft(?)432 b Fu(\($?\))41 b(Expands)29 b(to)j(the)e(exit)h(status)
g(of)g(the)f(most)h(recen)m(tly)h(executed)f(command.)150
-3125 y Ft(-)432 b Fu(\($-,)24 b(a)e(h)m(yphen.\))37 b(Expands)20
+3715 y Ft(-)432 b Fu(\($-,)24 b(a)e(h)m(yphen.\))37 b(Expands)20
b(to)i(the)f(curren)m(t)h(option)f(\015ags)h(as)f(sp)s(eci\014ed)g(up)s
-(on)f(in)m(v)m(o)s(cation,)630 3235 y(b)m(y)38 b(the)h
+(on)f(in)m(v)m(o)s(cation,)630 3824 y(b)m(y)38 b(the)h
Ft(set)f Fu(builtin)g(command,)j(or)d(those)i(set)f(b)m(y)f(the)h
-(shell)g(itself)g(\(suc)m(h)g(as)g(the)g Ft(-i)630 3344
-y Fu(option\).)150 3503 y Ft($)432 b Fu(\($$\))39 b(Expands)c(to)j(the)
+(shell)g(itself)g(\(suc)m(h)g(as)g(the)g Ft(-i)630 3934
+y Fu(option\).)150 4105 y Ft($)432 b Fu(\($$\))39 b(Expands)c(to)j(the)
f(pro)s(cess)g Fm(id)g Fu(of)g(the)g(shell.)61 b(In)36
-b(a)h(subshell,)h(it)g(expands)e(to)i(the)630 3613 y(pro)s(cess)30
+b(a)h(subshell,)h(it)g(expands)e(to)i(the)630 4214 y(pro)s(cess)30
b Fm(id)g Fu(of)h(the)g(in)m(v)m(oking)g(shell,)g(not)g(the)f
-(subshell.)150 3771 y Ft(!)432 b Fu(\($!\))51 b(Expands)32
+(subshell.)150 4385 y Ft(!)432 b Fu(\($!\))51 b(Expands)32
b(to)i(the)g(pro)s(cess)f Fm(id)h Fu(of)f(the)h(job)f(most)h(recen)m
-(tly)h(placed)f(in)m(to)g(the)g(bac)m(k-)630 3881 y(ground,)26
+(tly)h(placed)f(in)m(to)g(the)g(bac)m(k-)630 4494 y(ground,)26
b(whether)g(executed)g(as)h(an)f(async)m(hronous)f(command)h(or)g
-(using)g(the)g Ft(bg)f Fu(builtin)630 3990 y(\(see)31
+(using)g(the)g Ft(bg)f Fu(builtin)630 4604 y(\(see)31
b(Section)h(7.2)f([Job)f(Con)m(trol)h(Builtins],)g(page)h(126\).)150
-4149 y Ft(0)432 b Fu(\($0\))46 b(Expands)d(to)i(the)g(name)g(of)f(the)h
+4774 y Ft(0)432 b Fu(\($0\))46 b(Expands)d(to)i(the)g(name)g(of)f(the)h
(shell)g(or)f(shell)h(script.)83 b(This)44 b(is)g(set)h(at)h(shell)630
-4259 y(initialization.)d(If)27 b(Bash)h(is)g(in)m(v)m(ok)m(ed)h(with)e
+4884 y(initialization.)d(If)27 b(Bash)h(is)g(in)m(v)m(ok)m(ed)h(with)e
(a)i(\014le)e(of)h(commands)g(\(see)g(Section)h(3.8)g([Shell)630
-4368 y(Scripts],)g(page)g(50\),)h Ft($0)e Fu(is)h(set)g(to)g(the)f
+4994 y(Scripts],)g(page)g(50\),)h Ft($0)e Fu(is)h(set)g(to)g(the)f
(name)h(of)f(that)h(\014le.)41 b(If)28 b(Bash)g(is)h(started)g(with)f
-(the)630 4478 y Ft(-c)f Fu(option)h(\(see)h(Section)f(6.1)h([In)m(v)m
+(the)630 5103 y Ft(-c)f Fu(option)h(\(see)h(Section)f(6.1)h([In)m(v)m
(oking)g(Bash],)g(page)f(100\),)i(then)d Ft($0)h Fu(is)f(set)h(to)h
-(the)f(\014rst)630 4587 y(argumen)m(t)j(after)g(the)g(string)g(to)g(b)s
+(the)f(\014rst)630 5213 y(argumen)m(t)j(after)g(the)g(string)g(to)g(b)s
(e)f(executed,)i(if)f(one)g(is)f(presen)m(t.)42 b(Otherwise,)31
-b(it)g(is)f(set)630 4697 y(to)h(the)g(\014lename)f(used)g(to)h(in)m(v)m
-(ok)m(e)h(Bash,)f(as)g(giv)m(en)g(b)m(y)f(argumen)m(t)h(zero.)150
-4937 y Fs(3.5)68 b(Shell)45 b(Expansions)150 5096 y Fu(Expansion)39
-b(is)i(p)s(erformed)d(on)i(the)g(command)g(line)h(after)f(it)h(has)f(b)
-s(een)f(split)h(in)m(to)h Ft(token)p Fu(s.)69 b(Bash)150
-5206 y(p)s(erforms)29 b(these)i(expansions:)225 5340
-y Fq(\017)60 b Fu(brace)31 b(expansion)p eop end
+b(it)g(is)f(set)630 5322 y(to)h(the)g(\014lename)f(used)g(to)h(in)m(v)m
+(ok)m(e)h(Bash,)f(as)g(giv)m(en)g(b)m(y)f(argumen)m(t)h(zero.)p
+eop end
%%Page: 25 31
TeXDict begin 25 30 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(25)225 299
-y Fq(\017)60 b Fu(tilde)31 b(expansion)225 441 y Fq(\017)60
-b Fu(parameter)31 b(and)f(v)-5 b(ariable)31 b(expansion)225
-584 y Fq(\017)60 b Fu(command)30 b(substitution)225 726
-y Fq(\017)60 b Fu(arithmetic)32 b(expansion)225 868 y
-Fq(\017)60 b Fu(w)m(ord)30 b(splitting)225 1011 y Fq(\017)60
-b Fu(\014lename)31 b(expansion)225 1153 y Fq(\017)60
-b Fu(quote)31 b(remo)m(v)-5 b(al)275 1336 y(The)24 b(order)h(of)h
-(expansions)f(is:)39 b(brace)25 b(expansion;)j(tilde)e(expansion,)g
-(parameter)g(and)f(v)-5 b(ariable)26 b(ex-)150 1446 y(pansion,)j
-(arithmetic)i(expansion,)f(and)f(command)g(substitution)g(\(done)g(in)h
-(a)f(left-to-righ)m(t)k(fashion\);)150 1556 y(w)m(ord)d(splitting;)h
-(\014lename)g(expansion;)f(and)g(quote)h(remo)m(v)-5
-b(al.)275 1706 y(On)27 b(systems)h(that)h(can)g(supp)s(ort)e(it,)i
-(there)g(is)f(an)g(additional)i(expansion)e(a)m(v)-5
-b(ailable:)42 b Fr(pro)s(cess)28 b(sub-)150 1815 y(stitution)p
-Fu(.)42 b(This)30 b(is)g(p)s(erformed)f(at)j(the)e(same)h(time)h(as)e
-(tilde,)i(parameter,)f(v)-5 b(ariable,)32 b(and)e(arithmetic)150
-1925 y(expansion)g(and)g(command)g(substitution.)275
-2075 y Fr(Quote)42 b(remo)m(v)-5 b(al)46 b Fu(is)c(alw)m(a)m(ys)h(p)s
-(erformed)d(last.)76 b(It)42 b(remo)m(v)m(es)h(quote)f(c)m(haracters)i
-(presen)m(t)d(in)h(the)150 2185 y(original)35 b(w)m(ord,)g(not)f(ones)g
-(resulting)h(from)e(one)h(of)h(the)f(other)g(expansions,)h(unless)e
-(they)h(ha)m(v)m(e)i(b)s(een)150 2295 y(quoted)31 b(themselv)m(es.)41
-b(See)31 b(Section)g(3.5.9)h([Quote)f(Remo)m(v)-5 b(al],)33
-b(page)e(41,)g(for)g(more)f(details.)275 2445 y(Only)h(brace)i
-(expansion,)h(w)m(ord)e(splitting,)i(and)e(\014lename)h(expansion)f
-(can)h(increase)g(the)g(n)m(um)m(b)s(er)150 2554 y(of)24
-b(w)m(ords)g(of)g(the)h(expansion;)h(other)e(expansions)g(expand)g(a)g
-(single)h(w)m(ord)f(to)h(a)f(single)h(w)m(ord.)38 b(The)24
-b(only)150 2664 y(exceptions)i(to)f(this)g(are)g(the)g(expansions)g(of)
-g Ft("$@")f Fu(and)g Ft($*)g Fu(\(see)i(Section)f(3.4.2)i([Sp)s(ecial)e
-(P)m(arameters],)150 2774 y(page)31 b(23\),)h(and)e Ft("${)p
-Fj(name)p Ft([@]}")d Fu(and)i Ft(${)p Fj(name)p Ft([*]})f
-Fu(\(see)j(Section)h(6.7)f([Arra)m(ys],)g(page)g(110\).)150
-2989 y Fk(3.5.1)63 b(Brace)40 b(Expansion)150 3136 y
-Fu(Brace)k(expansion)e(is)h(a)g(mec)m(hanism)g(to)g(generate)h
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(25)150 299
+y Fs(3.5)68 b(Shell)45 b(Expansions)150 458 y Fu(Expansion)39
+b(is)i(p)s(erformed)d(on)i(the)g(command)g(line)h(after)f(it)h(has)f(b)
+s(een)f(split)h(in)m(to)h Ft(token)p Fu(s.)69 b(Bash)150
+568 y(p)s(erforms)29 b(these)i(expansions:)225 701 y
+Fq(\017)60 b Fu(brace)31 b(expansion)225 834 y Fq(\017)60
+b Fu(tilde)31 b(expansion)225 967 y Fq(\017)60 b Fu(parameter)31
+b(and)f(v)-5 b(ariable)31 b(expansion)225 1100 y Fq(\017)60
+b Fu(command)30 b(substitution)225 1233 y Fq(\017)60
+b Fu(arithmetic)32 b(expansion)225 1366 y Fq(\017)60
+b Fu(w)m(ord)30 b(splitting)225 1499 y Fq(\017)60 b Fu(\014lename)31
+b(expansion)225 1632 y Fq(\017)60 b Fu(quote)31 b(remo)m(v)-5
+b(al)275 1788 y(The)24 b(order)h(of)h(expansions)f(is:)39
+b(brace)25 b(expansion;)j(tilde)e(expansion,)g(parameter)g(and)f(v)-5
+b(ariable)26 b(ex-)150 1898 y(pansion,)j(arithmetic)i(expansion,)f(and)
+f(command)g(substitution)g(\(done)g(in)h(a)f(left-to-righ)m(t)k
+(fashion\);)150 2007 y(w)m(ord)d(splitting;)h(\014lename)g(expansion;)f
+(and)g(quote)h(remo)m(v)-5 b(al.)275 2140 y(On)27 b(systems)h(that)h
+(can)g(supp)s(ort)e(it,)i(there)g(is)f(an)g(additional)i(expansion)e(a)
+m(v)-5 b(ailable:)42 b Fr(pro)s(cess)28 b(sub-)150 2250
+y(stitution)p Fu(.)42 b(This)30 b(is)g(p)s(erformed)f(at)j(the)e(same)h
+(time)h(as)e(tilde,)i(parameter,)f(v)-5 b(ariable,)32
+b(and)e(arithmetic)150 2359 y(expansion)g(and)g(command)g
+(substitution.)275 2492 y Fr(Quote)42 b(remo)m(v)-5 b(al)46
+b Fu(is)c(alw)m(a)m(ys)h(p)s(erformed)d(last.)76 b(It)42
+b(remo)m(v)m(es)h(quote)f(c)m(haracters)i(presen)m(t)d(in)h(the)150
+2602 y(original)35 b(w)m(ord,)g(not)f(ones)g(resulting)h(from)e(one)h
+(of)h(the)f(other)g(expansions,)h(unless)e(they)h(ha)m(v)m(e)i(b)s(een)
+150 2711 y(quoted)31 b(themselv)m(es.)41 b(See)31 b(Section)g(3.5.9)h
+([Quote)f(Remo)m(v)-5 b(al],)33 b(page)e(41,)g(for)g(more)f(details.)
+275 2844 y(Only)h(brace)i(expansion,)h(w)m(ord)e(splitting,)i(and)e
+(\014lename)h(expansion)f(can)h(increase)g(the)g(n)m(um)m(b)s(er)150
+2954 y(of)24 b(w)m(ords)g(of)g(the)h(expansion;)h(other)e(expansions)g
+(expand)g(a)g(single)h(w)m(ord)f(to)h(a)f(single)h(w)m(ord.)38
+b(The)24 b(only)150 3064 y(exceptions)i(to)f(this)g(are)g(the)g
+(expansions)g(of)g Ft("$@")f Fu(and)g Ft($*)g Fu(\(see)i(Section)f
+(3.4.2)i([Sp)s(ecial)e(P)m(arameters],)150 3173 y(page)31
+b(24\),)h(and)e Ft("${)p Fj(name)p Ft([@]}")d Fu(and)i
+Ft(${)p Fj(name)p Ft([*]})f Fu(\(see)j(Section)h(6.7)f([Arra)m(ys],)g
+(page)g(110\).)150 3369 y Fk(3.5.1)63 b(Brace)40 b(Expansion)150
+3516 y Fu(Brace)k(expansion)e(is)h(a)g(mec)m(hanism)g(to)g(generate)h
(arbitrary)f(strings)f(sharing)g(a)h(common)g(pre\014x)150
-3245 y(and)31 b(su\016x,)f(either)i(of)f(whic)m(h)g(can)h(b)s(e)e(empt)
+3626 y(and)31 b(su\016x,)f(either)i(of)f(whic)m(h)g(can)h(b)s(e)e(empt)
m(y)-8 b(.)44 b(This)31 b(mec)m(hanism)g(is)g(similar)h(to)g
-Fr(\014lename)f(expansion)150 3355 y Fu(\(see)39 b(Section)h(3.5.8)g
+Fr(\014lename)f(expansion)150 3736 y Fu(\(see)39 b(Section)h(3.5.8)g
([Filename)g(Expansion],)g(page)f(39\),)j(but)c(the)h(\014lenames)f
-(generated)i(need)e(not)150 3464 y(exist.)57 b(P)m(atterns)37
+(generated)i(need)e(not)150 3845 y(exist.)57 b(P)m(atterns)37
b(to)f(b)s(e)f(brace)h(expanded)f(are)h(formed)g(from)f(an)g(optional)i
-Fr(pream)m(ble)p Fu(,)h(follo)m(w)m(ed)f(b)m(y)150 3574
+Fr(pream)m(ble)p Fu(,)h(follo)m(w)m(ed)f(b)m(y)150 3955
y(either)24 b(a)h(series)f(of)g(comma-separated)h(strings)f(or)g(a)g
(sequence)g(expression)g(b)s(et)m(w)m(een)h(a)f(pair)f(of)i(braces,)150
-3684 y(follo)m(w)m(ed)h(b)m(y)f(an)g(optional)g Fr(p)s(ostscript)p
+4064 y(follo)m(w)m(ed)h(b)m(y)f(an)g(optional)g Fr(p)s(ostscript)p
Fu(.)39 b(The)24 b(pream)m(ble)h(is)g(pre\014xed)e(to)j(eac)m(h)g
-(string)f(con)m(tained)g(within)150 3793 y(the)32 b(braces,)h(and)e
+(string)f(con)m(tained)g(within)150 4174 y(the)32 b(braces,)h(and)e
(the)h(p)s(ostscript)g(is)g(then)g(app)s(ended)e(to)i(eac)m(h)h
-(resulting)g(string,)f(expanding)g(left)g(to)150 3903
-y(righ)m(t.)275 4053 y(Brace)37 b(expansions)f(ma)m(y)h(b)s(e)f
+(resulting)g(string,)f(expanding)g(left)g(to)150 4284
+y(righ)m(t.)275 4416 y(Brace)37 b(expansions)f(ma)m(y)h(b)s(e)f
(nested.)59 b(The)36 b(results)g(of)h(eac)m(h)g(expanded)f(string)g
-(are)h(not)g(sorted;)150 4163 y(brace)31 b(expansion)f(preserv)m(es)g
+(are)h(not)g(sorted;)150 4526 y(brace)31 b(expansion)f(preserv)m(es)g
(left)h(to)h(righ)m(t)e(order.)41 b(F)-8 b(or)31 b(example,)390
-4313 y Ft(bash$)46 b(echo)h(a{d,c,b}e)390 4423 y(ade)g(ace)g(abe)275
-4573 y Fu(A)30 b(sequence)h(expression)g(tak)m(es)h(the)f(form)f
+4659 y Ft(bash$)46 b(echo)h(a{d,c,b}e)390 4769 y(ade)g(ace)g(abe)275
+4902 y Fu(A)30 b(sequence)h(expression)g(tak)m(es)h(the)f(form)f
Fj(x)p Ft(..)p Fj(y)p Ft([..)p Fj(incr)p Ft(])p Fu(,)d(where)j
Fr(x)37 b Fu(and)30 b Fr(y)39 b Fu(are)31 b(either)g(in)m(tegers)150
-4682 y(or)j(letters,)i(and)d Fr(incr)p Fu(,)h(an)g(optional)g(incremen)
+5011 y(or)j(letters,)i(and)d Fr(incr)p Fu(,)h(an)g(optional)g(incremen)
m(t,)i(is)d(an)h(in)m(teger.)52 b(When)33 b(in)m(tegers)i(are)f
-(supplied,)g(the)150 4792 y(expression)40 b(expands)e(to)j(eac)m(h)g(n)
+(supplied,)g(the)150 5121 y(expression)40 b(expands)e(to)j(eac)m(h)g(n)
m(um)m(b)s(er)d(b)s(et)m(w)m(een)j Fr(x)46 b Fu(and)39
b Fr(y)p Fu(,)j(inclusiv)m(e.)70 b(If)39 b(either)h Fr(x)46
-b Fu(or)40 b Fr(y)47 b Fu(b)s(egins)150 4902 y(with)c(a)g(zero,)k(eac)m
+b Fu(or)40 b Fr(y)47 b Fu(b)s(egins)150 5230 y(with)c(a)g(zero,)k(eac)m
(h)d(generated)g(term)f(will)g(con)m(tain)h(the)f(same)g(n)m(um)m(b)s
-(er)f(of)h(digits,)k(zero-padding)150 5011 y(where)e(necessary)-8
+(er)f(of)h(digits,)k(zero-padding)150 5340 y(where)e(necessary)-8
b(.)86 b(When)45 b(letters)i(are)f(supplied,)i(the)d(expression)g
-(expands)g(to)h(eac)m(h)g(c)m(haracter)150 5121 y(lexicographically)37
-b(b)s(et)m(w)m(een)e Fr(x)40 b Fu(and)34 b Fr(y)p Fu(,)i(inclusiv)m(e,)
-g(using)e(the)g(C)g(lo)s(cale.)54 b(Note)36 b(that)f(b)s(oth)e
-Fr(x)41 b Fu(and)33 b Fr(y)150 5230 y Fu(m)m(ust)e(b)s(e)f(of)h(the)g
-(same)g(t)m(yp)s(e)g(\(in)m(teger)h(or)f(letter\).)43
-b(When)31 b(the)g(incremen)m(t)g(is)g(supplied,)f(it)h(is)g(used)f(as)
-150 5340 y(the)h(di\013erence)f(b)s(et)m(w)m(een)h(eac)m(h)h(term.)41
-b(The)30 b(default)g(incremen)m(t)h(is)g(1)f(or)h(-1)g(as)f
-(appropriate.)p eop end
+(expands)g(to)h(eac)m(h)g(c)m(haracter)p eop end
%%Page: 26 32
TeXDict begin 26 31 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(26)275 299
-y(Brace)36 b(expansion)g(is)f(p)s(erformed)f(b)s(efore)h(an)m(y)h
-(other)g(expansions,)h(and)e(an)m(y)g(c)m(haracters)i(sp)s(ecial)150
-408 y(to)32 b(other)g(expansions)g(are)g(preserv)m(ed)f(in)h(the)f
-(result.)45 b(It)32 b(is)g(strictly)g(textual.)46 b(Bash)32
-b(do)s(es)f(not)h(apply)150 518 y(an)m(y)27 b(syn)m(tactic)i(in)m
-(terpretation)g(to)f(the)f(con)m(text)i(of)e(the)g(expansion)g(or)g
-(the)h(text)g(b)s(et)m(w)m(een)f(the)h(braces.)275 654
-y(A)h(correctly-formed)i(brace)f(expansion)f(m)m(ust)h(con)m(tain)h
-(unquoted)e(op)s(ening)g(and)g(closing)i(braces,)150
-763 y(and)h(at)i(least)g(one)f(unquoted)g(comma)g(or)g(a)h(v)-5
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(26)150 299
+y(lexicographically)37 b(b)s(et)m(w)m(een)e Fr(x)40 b
+Fu(and)34 b Fr(y)p Fu(,)i(inclusiv)m(e,)g(using)e(the)g(C)g(lo)s(cale.)
+54 b(Note)36 b(that)f(b)s(oth)e Fr(x)41 b Fu(and)33 b
+Fr(y)150 408 y Fu(m)m(ust)e(b)s(e)f(of)h(the)g(same)g(t)m(yp)s(e)g
+(\(in)m(teger)h(or)f(letter\).)43 b(When)31 b(the)g(incremen)m(t)g(is)g
+(supplied,)f(it)h(is)g(used)f(as)150 518 y(the)h(di\013erence)f(b)s(et)
+m(w)m(een)h(eac)m(h)h(term.)41 b(The)30 b(default)g(incremen)m(t)h(is)g
+(1)f(or)h(-1)g(as)f(appropriate.)275 656 y(Brace)36 b(expansion)g(is)f
+(p)s(erformed)f(b)s(efore)h(an)m(y)h(other)g(expansions,)h(and)e(an)m
+(y)g(c)m(haracters)i(sp)s(ecial)150 765 y(to)32 b(other)g(expansions)g
+(are)g(preserv)m(ed)f(in)h(the)f(result.)45 b(It)32 b(is)g(strictly)g
+(textual.)46 b(Bash)32 b(do)s(es)f(not)h(apply)150 875
+y(an)m(y)27 b(syn)m(tactic)i(in)m(terpretation)g(to)f(the)f(con)m(text)
+i(of)e(the)g(expansion)g(or)g(the)h(text)g(b)s(et)m(w)m(een)f(the)h
+(braces.)275 1012 y(A)h(correctly-formed)i(brace)f(expansion)f(m)m(ust)
+h(con)m(tain)h(unquoted)e(op)s(ening)g(and)g(closing)i(braces,)150
+1122 y(and)h(at)i(least)g(one)f(unquoted)g(comma)g(or)g(a)h(v)-5
b(alid)33 b(sequence)g(expression.)48 b(An)m(y)33 b(incorrectly)h
-(formed)150 873 y(brace)d(expansion)f(is)g(left)h(unc)m(hanged.)275
-1008 y(A)22 b(`)p Ft({)p Fu(')h(or)f(`)p Ft(,)p Fu(')h(ma)m(y)g(b)s(e)e
+(formed)150 1232 y(brace)d(expansion)f(is)g(left)h(unc)m(hanged.)275
+1369 y(A)22 b(`)p Ft({)p Fu(')h(or)f(`)p Ft(,)p Fu(')h(ma)m(y)g(b)s(e)e
(quoted)i(with)f(a)h(bac)m(kslash)g(to)g(prev)m(en)m(t)g(its)g(b)s
-(eing)f(considered)g(part)g(of)h(a)g(brace)150 1118 y(expression.)51
+(eing)f(considered)g(part)g(of)h(a)g(brace)150 1479 y(expression.)51
b(T)-8 b(o)34 b(a)m(v)m(oid)i(con\015icts)e(with)g(parameter)g
(expansion,)h(the)f(string)g(`)p Ft(${)p Fu(')g(is)g(not)g(considered)
-150 1227 y(eligible)e(for)e(brace)h(expansion,)f(and)g(inhibits)g
+150 1588 y(eligible)e(for)e(brace)h(expansion,)f(and)g(inhibits)g
(brace)h(expansion)f(un)m(til)g(the)h(closing)h(`)p Ft(})p
-Fu('.)275 1363 y(This)e(construct)h(is)g(t)m(ypically)i(used)d(as)h
+Fu('.)275 1726 y(This)e(construct)h(is)g(t)m(ypically)i(used)d(as)h
(shorthand)f(when)g(the)h(common)g(pre\014x)f(of)h(the)g(strings)g(to)
-150 1472 y(b)s(e)f(generated)h(is)g(longer)g(than)f(in)g(the)g(ab)s(o)m
-(v)m(e)i(example:)390 1608 y Ft(mkdir)46 b(/usr/local/src/bash/{old,n)o
-(ew,)o(dist)o(,bug)o(s})275 1743 y Fu(or)390 1879 y Ft(chown)g(root)h
+150 1836 y(b)s(e)f(generated)h(is)g(longer)g(than)f(in)g(the)g(ab)s(o)m
+(v)m(e)i(example:)390 1973 y Ft(mkdir)46 b(/usr/local/src/bash/{old,n)o
+(ew,)o(dist)o(,bug)o(s})275 2111 y Fu(or)390 2248 y Ft(chown)g(root)h
(/usr/{ucb/{ex,edit},lib/)o({ex?)o(.?*,)o(how)o(_ex})o(})275
-2014 y Fu(Brace)39 b(expansion)e(in)m(tro)s(duces)h(a)g(sligh)m(t)h
+2386 y Fu(Brace)39 b(expansion)e(in)m(tro)s(duces)h(a)g(sligh)m(t)h
(incompatibilit)m(y)h(with)e(historical)h(v)m(ersions)f(of)g
-Ft(sh)p Fu(.)63 b Ft(sh)150 2124 y Fu(do)s(es)41 b(not)g(treat)h(op)s
+Ft(sh)p Fu(.)63 b Ft(sh)150 2496 y Fu(do)s(es)41 b(not)g(treat)h(op)s
(ening)f(or)g(closing)i(braces)e(sp)s(ecially)h(when)e(they)h(app)s
-(ear)g(as)g(part)g(of)h(a)f(w)m(ord,)150 2233 y(and)36
+(ear)g(as)g(part)g(of)h(a)f(w)m(ord,)150 2605 y(and)36
b(preserv)m(es)h(them)g(in)f(the)h(output.)60 b(Bash)37
b(remo)m(v)m(es)h(braces)f(from)g(w)m(ords)f(as)h(a)g(consequence)h(of)
-150 2343 y(brace)32 b(expansion.)45 b(F)-8 b(or)33 b(example,)g(a)f(w)m
+150 2715 y(brace)32 b(expansion.)45 b(F)-8 b(or)33 b(example,)g(a)f(w)m
(ord)g(en)m(tered)g(to)h Ft(sh)e Fu(as)h(`)p Ft(file{1,2})p
-Fu(')e(app)s(ears)h(iden)m(tically)j(in)150 2453 y(the)i(output.)56
+Fu(')e(app)s(ears)h(iden)m(tically)j(in)150 2824 y(the)i(output.)56
b(Bash)36 b(outputs)f(that)h(w)m(ord)f(as)h(`)p Ft(file1)29
b(file2)p Fu(')35 b(after)h(brace)g(expansion.)56 b(Start)36
-b(Bash)150 2562 y(with)28 b(the)h Ft(+B)e Fu(option)i(or)g(disable)f
+b(Bash)150 2934 y(with)28 b(the)h Ft(+B)e Fu(option)i(or)g(disable)f
(brace)h(expansion)f(with)g(the)h Ft(+B)f Fu(option)h(to)g(the)f
-Ft(set)g Fu(command)g(\(see)150 2672 y(Chapter)i(4)h([Shell)f(Builtin)h
+Ft(set)g Fu(command)g(\(see)150 3044 y(Chapter)i(4)h([Shell)f(Builtin)h
(Commands],)f(page)h(52\))g(for)f(strict)i Ft(sh)d Fu(compatibilit)m(y)
--8 b(.)150 2872 y Fk(3.5.2)63 b(Tilde)41 b(Expansion)150
-3019 y Fu(If)29 b(a)h(w)m(ord)g(b)s(egins)f(with)g(an)h(unquoted)f
+-8 b(.)150 3246 y Fk(3.5.2)63 b(Tilde)41 b(Expansion)150
+3393 y Fu(If)29 b(a)h(w)m(ord)g(b)s(egins)f(with)g(an)h(unquoted)f
(tilde)h(c)m(haracter)h(\(`)p Ft(~)p Fu('\),)g(all)g(of)f(the)g(c)m
-(haracters)h(up)d(to)j(the)f(\014rst)150 3128 y(unquoted)24
+(haracters)h(up)d(to)j(the)f(\014rst)150 3502 y(unquoted)24
b(slash)g(\(or)h(all)h(c)m(haracters,)h(if)e(there)g(is)f(no)h
(unquoted)e(slash\))i(are)g(considered)g(a)g Fr(tilde-pre\014x)p
-Fu(.)150 3238 y(If)38 b(none)g(of)g(the)h(c)m(haracters)g(in)f(the)h
+Fu(.)150 3612 y(If)38 b(none)g(of)g(the)h(c)m(haracters)g(in)f(the)h
(tilde-pre\014x)f(are)h(quoted,)h(the)f(c)m(haracters)h(in)d(the)i
-(tilde-pre\014x)150 3348 y(follo)m(wing)45 b(the)e(tilde)h(are)f
+(tilde-pre\014x)150 3722 y(follo)m(wing)45 b(the)e(tilde)h(are)f
(treated)h(as)f(a)h(p)s(ossible)e Fr(login)i(name)p Fu(.)79
b(If)43 b(this)g(login)h(name)f(is)g(the)g(n)m(ull)150
-3457 y(string,)33 b(the)g(tilde)g(is)f(replaced)h(with)g(the)f(v)-5
+3831 y(string,)33 b(the)g(tilde)g(is)f(replaced)h(with)g(the)f(v)-5
b(alue)33 b(of)g(the)f Ft(HOME)g Fu(shell)g(v)-5 b(ariable.)48
-b(If)32 b Ft(HOME)f Fu(is)i(unset,)g(the)150 3567 y(tilde)d(expands)f
+b(If)32 b Ft(HOME)f Fu(is)i(unset,)g(the)150 3941 y(tilde)d(expands)f
(to)i(the)e(home)h(directory)g(of)g(the)g(user)f(executing)i(the)e
-(shell)h(instead.)41 b(Otherwise,)30 b(the)150 3676 y(tilde-pre\014x)g
+(shell)h(instead.)41 b(Otherwise,)30 b(the)150 4050 y(tilde-pre\014x)g
(is)h(replaced)g(with)f(the)g(home)h(directory)g(asso)s(ciated)g(with)f
-(the)h(sp)s(eci\014ed)f(login)h(name.)275 3812 y(If)h(the)h
+(the)h(sp)s(eci\014ed)f(login)h(name.)275 4188 y(If)h(the)h
(tilde-pre\014x)f(is)h(`)p Ft(~+)p Fu(',)g(the)g(v)-5
b(alue)33 b(of)g(the)g(shell)g(v)-5 b(ariable)34 b Ft(PWD)d
-Fu(replaces)j(the)f(tilde-pre\014x.)47 b(If)150 3921
+Fu(replaces)j(the)f(tilde-pre\014x.)47 b(If)150 4298
y(the)36 b(tilde-pre\014x)f(is)h(`)p Ft(~-)p Fu(',)h(the)f(shell)f
(substitutes)h(the)f(v)-5 b(alue)36 b(of)g(the)g(shell)g(v)-5
-b(ariable)36 b Ft(OLDPWD)p Fu(,)f(if)h(it)g(is)150 4031
-y(set.)275 4166 y(If)29 b(the)h(c)m(haracters)h(follo)m(wing)h(the)e
+b(ariable)36 b Ft(OLDPWD)p Fu(,)f(if)h(it)g(is)150 4407
+y(set.)275 4545 y(If)29 b(the)h(c)m(haracters)h(follo)m(wing)h(the)e
(tilde)g(in)g(the)g(tilde-pre\014x)g(consist)g(of)g(a)h(n)m(um)m(b)s
-(er)d Fr(N)p Fu(,)j(optionally)150 4276 y(pre\014xed)22
+(er)d Fr(N)p Fu(,)j(optionally)150 4654 y(pre\014xed)22
b(b)m(y)h(a)h(`)p Ft(+)p Fu(')f(or)h(a)f(`)p Ft(-)p Fu(',)j(the)d
(tilde-pre\014x)g(is)h(replaced)f(with)g(the)h(corresp)s(onding)e
-(elemen)m(t)j(from)e(the)150 4386 y(directory)36 b(stac)m(k,)i(as)e(it)
+(elemen)m(t)j(from)e(the)150 4764 y(directory)36 b(stac)m(k,)i(as)e(it)
g(w)m(ould)f(b)s(e)g(displa)m(y)m(ed)h(b)m(y)g(the)f
Ft(dirs)g Fu(builtin)g(in)m(v)m(ok)m(ed)i(with)e(the)g(c)m(haracters)
-150 4495 y(follo)m(wing)40 b(tilde)f(in)g(the)f(tilde-pre\014x)h(as)g
+150 4874 y(follo)m(wing)40 b(tilde)f(in)g(the)f(tilde-pre\014x)h(as)g
(an)f(argumen)m(t)h(\(see)h(Section)f(6.8)h([The)e(Directory)i(Stac)m
-(k],)150 4605 y(page)34 b(112\).)50 b(If)32 b(the)h(tilde-pre\014x,)h
+(k],)150 4983 y(page)34 b(112\).)50 b(If)32 b(the)h(tilde-pre\014x,)h
(sans)e(the)h(tilde,)i(consists)e(of)g(a)h(n)m(um)m(b)s(er)d(without)i
-(a)g(leading)h(`)p Ft(+)p Fu(')f(or)150 4714 y(`)p Ft(-)p
+(a)g(leading)h(`)p Ft(+)p Fu(')f(or)150 5093 y(`)p Ft(-)p
Fu(',)e(tilde)g(expansion)f(assumes)g(`)p Ft(+)p Fu('.)275
-4850 y(The)h(results)h(of)h(tilde)g(expansion)f(are)h(treated)g(as)f
+5230 y(The)h(results)h(of)h(tilde)g(expansion)f(are)h(treated)g(as)f
(if)h(they)f(w)m(ere)h(quoted,)g(so)g(the)f(replacemen)m(t)i(is)150
-4959 y(not)d(sub)5 b(ject)30 b(to)h(w)m(ord)f(splitting)h(and)f
-(\014lename)g(expansion.)275 5095 y(If)24 b(the)i(login)g(name)f(is)g
-(in)m(v)-5 b(alid,)27 b(or)f(the)f(tilde)h(expansion)f(fails,)i(the)f
-(tilde-pre\014x)f(is)g(left)h(unc)m(hanged.)275 5230
-y(Bash)k(c)m(hec)m(ks)j(eac)m(h)f(v)-5 b(ariable)31 b(assignmen)m(t)h
-(for)e(unquoted)g(tilde-pre\014xes)h(immediately)h(follo)m(wing)150
-5340 y(a)26 b(`)p Ft(:)p Fu(')f(or)h(the)f(\014rst)g(`)p
-Ft(=)p Fu(',)i(and)e(p)s(erforms)f(tilde)i(expansion)f(in)g(these)h
-(cases.)40 b(Consequen)m(tly)-8 b(,)27 b(one)f(ma)m(y)g(use)p
-eop end
+5340 y(not)d(sub)5 b(ject)30 b(to)h(w)m(ord)f(splitting)h(and)f
+(\014lename)g(expansion.)p eop end
%%Page: 27 33
TeXDict begin 27 32 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(27)150 299
-y(\014lenames)32 b(with)f(tildes)h(in)f(assignmen)m(ts)i(to)f
-Ft(PATH)p Fu(,)f Ft(MAILPATH)p Fu(,)f(and)h Ft(CDPATH)p
-Fu(,)f(and)h(the)h(shell)g(assigns)150 408 y(the)f(expanded)e(v)-5
-b(alue.)275 542 y(The)29 b(follo)m(wing)j(table)g(sho)m(ws)e(ho)m(w)g
-(Bash)h(treats)g(unquoted)e(tilde-pre\014xes:)150 700
-y Ft(~)432 b Fu(The)30 b(v)-5 b(alue)31 b(of)f Ft($HOME)p
-Fu(.)150 858 y Ft(~/foo)240 b($HOME/foo)150 1016 y(~fred/foo)630
-1126 y Fu(The)30 b(directory)h(or)f(\014le)h Ft(foo)e
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(27)275 299
+y(If)24 b(the)i(login)g(name)f(is)g(in)m(v)-5 b(alid,)27
+b(or)f(the)f(tilde)h(expansion)f(fails,)i(the)f(tilde-pre\014x)f(is)g
+(left)h(unc)m(hanged.)275 432 y(Bash)k(c)m(hec)m(ks)j(eac)m(h)f(v)-5
+b(ariable)31 b(assignmen)m(t)h(for)e(unquoted)g(tilde-pre\014xes)h
+(immediately)h(follo)m(wing)150 541 y(a)26 b(`)p Ft(:)p
+Fu(')f(or)h(the)f(\014rst)g(`)p Ft(=)p Fu(',)i(and)e(p)s(erforms)f
+(tilde)i(expansion)f(in)g(these)h(cases.)40 b(Consequen)m(tly)-8
+b(,)27 b(one)f(ma)m(y)g(use)150 651 y(\014lenames)32
+b(with)f(tildes)h(in)f(assignmen)m(ts)i(to)f Ft(PATH)p
+Fu(,)f Ft(MAILPATH)p Fu(,)f(and)h Ft(CDPATH)p Fu(,)f(and)h(the)h(shell)
+g(assigns)150 760 y(the)f(expanded)e(v)-5 b(alue.)275
+893 y(The)29 b(follo)m(wing)j(table)g(sho)m(ws)e(ho)m(w)g(Bash)h
+(treats)g(unquoted)e(tilde-pre\014xes:)150 1049 y Ft(~)432
+b Fu(The)30 b(v)-5 b(alue)31 b(of)f Ft($HOME)p Fu(.)150
+1205 y Ft(~/foo)240 b($HOME/foo)150 1361 y(~fred/foo)630
+1471 y Fu(The)30 b(directory)h(or)f(\014le)h Ft(foo)e
Fu(in)h(the)h(home)f(directory)h(of)g(the)f(user)g Ft(fred)p
-Fu(.)150 1284 y Ft(~+/foo)192 b($PWD/foo)150 1442 y(~-/foo)g
-(${OLDPWD-'~-'}/foo)150 1600 y(~)p Fj(N)384 b Fu(The)30
+Fu(.)150 1627 y Ft(~+/foo)192 b($PWD/foo)150 1783 y(~-/foo)g
+(${OLDPWD-'~-'}/foo)150 1939 y(~)p Fj(N)384 b Fu(The)30
b(string)g(that)h(w)m(ould)f(b)s(e)g(displa)m(y)m(ed)h(b)m(y)f(`)p
-Ft(dirs)g(+)p Fj(N)p Fu('.)150 1757 y Ft(~+)p Fj(N)336
+Ft(dirs)g(+)p Fj(N)p Fu('.)150 2095 y Ft(~+)p Fj(N)336
b Fu(The)30 b(string)g(that)h(w)m(ould)f(b)s(e)g(displa)m(y)m(ed)h(b)m
-(y)f(`)p Ft(dirs)g(+)p Fj(N)p Fu('.)150 1915 y Ft(~-)p
+(y)f(`)p Ft(dirs)g(+)p Fj(N)p Fu('.)150 2251 y Ft(~-)p
Fj(N)336 b Fu(The)30 b(string)g(that)h(w)m(ould)f(b)s(e)g(displa)m(y)m
-(ed)h(b)m(y)f(`)p Ft(dirs)g(-)p Fj(N)p Fu('.)275 2073
+(ed)h(b)m(y)f(`)p Ft(dirs)g(-)p Fj(N)p Fu('.)275 2407
y(Bash)40 b(also)h(p)s(erforms)e(tilde)h(expansion)g(on)h(w)m(ords)e
(satisfying)i(the)f(conditions)h(of)f(v)-5 b(ariable)41
-b(as-)150 2183 y(signmen)m(ts)f(\(see)h(Section)g(3.4)g([Shell)f(P)m
+b(as-)150 2517 y(signmen)m(ts)f(\(see)h(Section)g(3.4)g([Shell)f(P)m
(arameters],)k(page)d(22\))g(when)e(they)h(app)s(ear)f(as)i(argumen)m
-(ts)150 2293 y(to)c(simple)f(commands.)57 b(Bash)36 b(do)s(es)f(not)h
+(ts)150 2626 y(to)c(simple)f(commands.)57 b(Bash)36 b(do)s(es)f(not)h
(do)g(this,)i(except)f(for)e(the)h(declaration)i(commands)d(listed)150
-2402 y(ab)s(o)m(v)m(e,)d(when)d(in)h Fm(posix)g Fu(mo)s(de.)150
-2600 y Fk(3.5.3)63 b(Shell)41 b(P)m(arameter)f(Expansion)150
-2747 y Fu(The)g(`)p Ft($)p Fu(')h(c)m(haracter)i(in)m(tro)s(duces)d
+2736 y(ab)s(o)m(v)m(e,)d(when)d(in)h Fm(posix)g Fu(mo)s(de.)150
+2932 y Fk(3.5.3)63 b(Shell)41 b(P)m(arameter)f(Expansion)150
+3079 y Fu(The)g(`)p Ft($)p Fu(')h(c)m(haracter)i(in)m(tro)s(duces)d
(parameter)h(expansion,)j(command)d(substitution,)i(or)e(arithmetic)150
-2856 y(expansion.)d(The)22 b(parameter)h(name)f(or)g(sym)m(b)s(ol)h(to)
+3188 y(expansion.)d(The)22 b(parameter)h(name)f(or)g(sym)m(b)s(ol)h(to)
g(b)s(e)e(expanded)h(ma)m(y)h(b)s(e)f(enclosed)h(in)f(braces,)i(whic)m
-(h)150 2966 y(are)31 b(optional)g(but)f(serv)m(e)h(to)h(protect)f(the)g
+(h)150 3298 y(are)31 b(optional)g(but)f(serv)m(e)h(to)h(protect)f(the)g
(v)-5 b(ariable)31 b(to)g(b)s(e)f(expanded)g(from)g(c)m(haracters)i
-(immediately)150 3076 y(follo)m(wing)46 b(it)f(whic)m(h)f(could)h(b)s
+(immediately)150 3407 y(follo)m(wing)46 b(it)f(whic)m(h)f(could)h(b)s
(e)e(in)m(terpreted)i(as)g(part)f(of)h(the)f(name.)83
b(F)-8 b(or)46 b(example,)j(if)44 b(the)h(\014rst)150
-3185 y(p)s(ositional)40 b(parameter)g(has)e(the)i(v)-5
+3517 y(p)s(ositional)40 b(parameter)g(has)e(the)i(v)-5
b(alue)39 b(`)p Ft(a)p Fu(',)j(then)d Ft(${11})f Fu(expands)g(to)i(the)
-f(v)-5 b(alue)40 b(of)f(the)g(elev)m(en)m(th)150 3295
+f(v)-5 b(alue)40 b(of)f(the)g(elev)m(en)m(th)150 3627
y(p)s(ositional)31 b(parameter,)g(while)g Ft($11)e Fu(expands)h(to)h(`)
-p Ft(a1)p Fu('.)275 3429 y(When)44 b(braces)i(are)f(used,)j(the)e(matc)
+p Ft(a1)p Fu('.)275 3759 y(When)44 b(braces)i(are)f(used,)j(the)e(matc)
m(hing)g(ending)f(brace)g(is)g(the)g(\014rst)g(`)p Ft(})p
-Fu(')g(not)g(escap)s(ed)h(b)m(y)f(a)150 3538 y(bac)m(kslash)40
+Fu(')g(not)g(escap)s(ed)h(b)m(y)f(a)150 3869 y(bac)m(kslash)40
b(or)f(within)g(a)g(quoted)g(string,)j(and)c(not)i(within)e(an)h(em)m
-(b)s(edded)f(arithmetic)j(expansion,)150 3648 y(command)30
-b(substitution,)g(or)h(parameter)g(expansion.)275 3782
+(b)s(edded)f(arithmetic)j(expansion,)150 3978 y(command)30
+b(substitution,)g(or)h(parameter)g(expansion.)275 4111
y(The)f(basic)h(form)f(of)h(parameter)h(expansion)e(is)h($)p
Fi({)p Fr(parameter)7 b Fi(})p Fu(,)32 b(whic)m(h)f(substitutes)g(the)f
-(v)-5 b(alue)32 b(of)150 3891 y Fr(parameter)p Fu(.)52
+(v)-5 b(alue)32 b(of)150 4221 y Fr(parameter)p Fu(.)52
b(The)34 b Fr(parameter)41 b Fu(is)34 b(a)h(shell)f(parameter)h(as)f
(describ)s(ed)f(ab)s(o)m(v)m(e)j(\(see)f(Section)g(3.4)g([Shell)150
-4001 y(P)m(arameters],)28 b(page)f(22\))g(or)f(an)f(arra)m(y)h
+4330 y(P)m(arameters],)28 b(page)f(22\))g(or)f(an)f(arra)m(y)h
(reference)h(\(see)f(Section)h(6.7)g([Arra)m(ys],)g(page)g(110\).)41
-b(The)25 b(braces)150 4110 y(are)32 b(required)g(when)f
+b(The)25 b(braces)150 4440 y(are)32 b(required)g(when)f
Fr(parameter)39 b Fu(is)32 b(a)h(p)s(ositional)f(parameter)h(with)f
-(more)g(than)g(one)g(digit,)i(or)e(when)150 4220 y Fr(parameter)37
+(more)g(than)g(one)g(digit,)i(or)e(when)150 4550 y Fr(parameter)37
b Fu(is)31 b(follo)m(w)m(ed)h(b)m(y)e(a)h(c)m(haracter)h(that)f(is)f
(not)h(to)g(b)s(e)f(in)m(terpreted)g(as)h(part)f(of)h(its)f(name.)275
-4354 y(If)k(the)h(\014rst)f(c)m(haracter)i(of)f Fr(parameter)42
+4682 y(If)k(the)h(\014rst)f(c)m(haracter)i(of)f Fr(parameter)42
b Fu(is)35 b(an)g(exclamation)i(p)s(oin)m(t)e(\(!\),)i(and)d
-Fr(parameter)42 b Fu(is)34 b(not)i(a)150 4463 y(nameref,)c(it)f(in)m
+Fr(parameter)42 b Fu(is)34 b(not)i(a)150 4792 y(nameref,)c(it)f(in)m
(tro)s(duces)h(a)f(lev)m(el)i(of)f(indirection.)44 b(Bash)31
b(uses)g(the)g(v)-5 b(alue)32 b(formed)f(b)m(y)g(expanding)g(the)150
-4573 y(rest)22 b(of)g Fr(parameter)29 b Fu(as)22 b(the)g(new)f
+4902 y(rest)22 b(of)g Fr(parameter)29 b Fu(as)22 b(the)g(new)f
Fr(parameter)7 b Fu(;)25 b(this)c(new)h(parameter)g(is)g(then)f
-(expanded)g(and)g(that)h(v)-5 b(alue)150 4682 y(is)35
+(expanded)g(and)g(that)h(v)-5 b(alue)150 5011 y(is)35
b(used)f(in)h(the)g(rest)g(of)g(the)h(expansion,)g(rather)f(than)g(the)
g(expansion)g(of)g(the)g(original)h Fr(parameter)p Fu(.)150
-4792 y(This)29 b(is)h(kno)m(wn)f(as)i Ft(indirect)d(expansion)p
+5121 y(This)29 b(is)h(kno)m(wn)f(as)i Ft(indirect)d(expansion)p
Fu(.)38 b(The)29 b(v)-5 b(alue)31 b(is)e(sub)5 b(ject)30
-b(to)h(tilde)f(expansion,)g(parameter)150 4902 y(expansion,)40
+b(to)h(tilde)f(expansion,)g(parameter)150 5230 y(expansion,)40
b(command)d(substitution,)j(and)d(arithmetic)i(expansion.)63
b(If)37 b Fr(parameter)45 b Fu(is)38 b(a)g(nameref,)150
-5011 y(this)27 b(expands)f(to)h(the)h(name)e(of)i(the)f(v)-5
+5340 y(this)27 b(expands)f(to)h(the)h(name)e(of)i(the)f(v)-5
b(ariable)27 b(referenced)g(b)m(y)g Fr(parameter)34 b
-Fu(instead)27 b(of)g(p)s(erforming)f(the)150 5121 y(complete)36
-b(indirect)f(expansion,)h(for)f(compatibilit)m(y)-8 b(.)57
-b(The)34 b(exceptions)i(to)f(this)g(are)g(the)g(expansions)150
-5230 y(of)29 b($)p Fi({)p Fu(!)p Fr(pre\014x)6 b Fu(*)p
+Fu(instead)27 b(of)g(p)s(erforming)f(the)p eop end
+%%Page: 28 34
+TeXDict begin 28 33 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(28)150 299
+y(complete)36 b(indirect)f(expansion,)h(for)f(compatibilit)m(y)-8
+b(.)57 b(The)34 b(exceptions)i(to)f(this)g(are)g(the)g(expansions)150
+408 y(of)29 b($)p Fi({)p Fu(!)p Fr(pre\014x)6 b Fu(*)p
Fi(})29 b Fu(and)f($)p Fi({)p Fu(!)p Fr(name)5 b Fu([@])p
Fi(})30 b Fu(describ)s(ed)d(b)s(elo)m(w.)41 b(The)27
b(exclamation)k(p)s(oin)m(t)d(m)m(ust)h(immediately)150
-5340 y(follo)m(w)j(the)e(left)h(brace)g(in)f(order)g(to)h(in)m(tro)s
-(duce)f(indirection.)p eop end
-%%Page: 28 34
-TeXDict begin 28 33 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(28)275 299
-y(In)39 b(eac)m(h)i(of)g(the)f(cases)h(b)s(elo)m(w,)i
-Fr(w)m(ord)h Fu(is)c(sub)5 b(ject)40 b(to)h(tilde)f(expansion,)j
-(parameter)e(expansion,)150 408 y(command)30 b(substitution,)g(and)g
-(arithmetic)i(expansion.)275 602 y(When)e(not)h(p)s(erforming)e
-(substring)g(expansion,)i(using)f(the)h(forms)f(describ)s(ed)f(b)s(elo)
-m(w)i(\(e.g.,)h(`)p Ft(:-)p Fu('\),)150 711 y(Bash)h(tests)h(for)e(a)i
-(parameter)f(that)h(is)e(unset)h(or)g(n)m(ull.)48 b(Omitting)33
-b(the)h(colon)f(results)g(in)g(a)g(test)h(only)150 821
-y(for)c(a)i(parameter)f(that)g(is)g(unset.)41 b(Put)31
-b(another)f(w)m(a)m(y)-8 b(,)33 b(if)e(the)f(colon)i(is)f(included,)f
-(the)h(op)s(erator)g(tests)150 930 y(for)36 b(b)s(oth)g
-Fr(parameter)7 b Fu('s)37 b(existence)h(and)e(that)i(its)f(v)-5
-b(alue)37 b(is)g(not)f(n)m(ull;)k(if)d(the)g(colon)h(is)e(omitted,)k
-(the)150 1040 y(op)s(erator)31 b(tests)g(only)f(for)g(existence.)150
-1287 y Ft(${)p Fj(parameter)p Ft(:)p Fq(\000)p Fj(word)p
-Ft(})630 1397 y Fu(If)g Fr(parameter)37 b Fu(is)30 b(unset)g(or)h(n)m
-(ull,)f(the)h(expansion)f(of)g Fr(w)m(ord)k Fu(is)c(substituted.)40
-b(Otherwise,)630 1507 y(the)31 b(v)-5 b(alue)30 b(of)h
-Fr(parameter)37 b Fu(is)31 b(substituted.)870 1670 y
-Ft($)47 b(v=123)870 1780 y($)g(echo)g(${v-unset})870
-1890 y(123)870 1999 y($)g(echo)g(${v:-unset-or-null})870
-2109 y(123)870 2218 y($)g(unset)g(v)870 2328 y($)g(echo)g(${v-unset})
-870 2438 y(unset)870 2547 y($)g(v=)870 2657 y($)g(echo)g(${v-unset})870
-2876 y($)g(echo)g(${v:-unset-or-null})870 2985 y(unset-or-null)150
-3204 y(${)p Fj(parameter)p Ft(:=)p Fj(word)p Ft(})630
-3313 y Fu(If)33 b Fr(parameter)40 b Fu(is)33 b(unset)f(or)h(n)m(ull,)h
+518 y(follo)m(w)j(the)e(left)h(brace)g(in)f(order)g(to)h(in)m(tro)s
+(duce)f(indirection.)275 656 y(In)39 b(eac)m(h)i(of)g(the)f(cases)h(b)s
+(elo)m(w,)i Fr(w)m(ord)h Fu(is)c(sub)5 b(ject)40 b(to)h(tilde)f
+(expansion,)j(parameter)e(expansion,)150 766 y(command)30
+b(substitution,)g(and)g(arithmetic)i(expansion.)275 904
+y(When)c(not)g(p)s(erforming)g(substring)f(expansion,)i(using)f(the)g
+(forms)g(describ)s(ed)f(b)s(elo)m(w)i(\(e.g.,)h(`)p Ft(:)p
+Fq(\000)p Fu('\),)150 1013 y(Bash)j(tests)h(for)e(a)i(parameter)f(that)
+h(is)e(unset)h(or)g(n)m(ull.)48 b(Omitting)33 b(the)h(colon)f(results)g
+(in)g(a)g(test)h(only)150 1123 y(for)c(a)i(parameter)f(that)g(is)g
+(unset.)41 b(Put)31 b(another)f(w)m(a)m(y)-8 b(,)33 b(if)e(the)f(colon)
+i(is)f(included,)f(the)h(op)s(erator)g(tests)150 1233
+y(for)36 b(b)s(oth)g Fr(parameter)7 b Fu('s)37 b(existence)h(and)e
+(that)i(its)f(v)-5 b(alue)37 b(is)g(not)f(n)m(ull;)k(if)d(the)g(colon)h
+(is)e(omitted,)k(the)150 1342 y(op)s(erator)31 b(tests)g(only)f(for)g
+(existence.)150 1507 y Ft(${)p Fj(parameter)p Ft(:)p
+Fq(\000)p Fj(word)p Ft(})630 1617 y Fu(If)g Fr(parameter)37
+b Fu(is)30 b(unset)g(or)h(n)m(ull,)f(the)h(expansion)f(of)g
+Fr(w)m(ord)k Fu(is)c(substituted.)40 b(Otherwise,)630
+1726 y(the)31 b(v)-5 b(alue)30 b(of)h Fr(parameter)37
+b Fu(is)31 b(substituted.)870 1863 y Ft($)47 b(v=123)870
+1972 y($)g(echo)g(${v-unset})870 2082 y(123)870 2191
+y($)g(echo)g(${v:-unset-or-null})870 2301 y(123)870 2411
+y($)g(unset)g(v)870 2520 y($)g(echo)g(${v-unset})870
+2630 y(unset)870 2739 y($)g(v=)870 2849 y($)g(echo)g(${v-unset})870
+3068 y($)g(echo)g(${v:-unset-or-null})870 3178 y(unset-or-null)150
+3341 y(${)p Fj(parameter)p Ft(:=)p Fj(word)p Ft(})630
+3450 y Fu(If)33 b Fr(parameter)40 b Fu(is)33 b(unset)f(or)h(n)m(ull,)h
(the)f(expansion)g(of)g Fr(w)m(ord)j Fu(is)d(assigned)g(to)h
-Fr(parameter)p Fu(,)630 3423 y(and)44 b(the)h(result)f(of)h(the)g
+Fr(parameter)p Fu(,)630 3560 y(and)44 b(the)h(result)f(of)h(the)g
(expansion)f(is)h(the)g(\014nal)f(v)-5 b(alue)45 b(of)g
-Fr(parameter)p Fu(.)84 b(P)m(ositional)630 3532 y(parameters)31
+Fr(parameter)p Fu(.)84 b(P)m(ositional)630 3669 y(parameters)31
b(and)e(sp)s(ecial)i(parameters)g(ma)m(y)g(not)g(b)s(e)e(assigned)i(in)
-f(this)g(w)m(a)m(y)-8 b(.)870 3696 y Ft($)47 b(unset)g(var)870
-3806 y($)g(:)h(${var=DEFAULT})870 3915 y($)f(echo)g($var)870
-4025 y(DEFAULT)870 4134 y($)g(var=)870 4244 y($)g(:)h(${var=DEFAULT})
-870 4354 y($)f(echo)g($var)870 4573 y($)g(var=)870 4682
-y($)g(:)h(${var:=DEFAULT})870 4792 y($)f(echo)g($var)870
-4902 y(DEFAULT)870 5011 y($)g(unset)g(var)870 5121 y($)g(:)h
-(${var:=DEFAULT})870 5230 y($)f(echo)g($var)870 5340
-y(DEFAULT)p eop end
+f(this)g(w)m(a)m(y)-8 b(.)870 3806 y Ft($)47 b(unset)g(var)870
+3915 y($)g(:)h(${var=DEFAULT})870 4025 y($)f(echo)g($var)870
+4134 y(DEFAULT)870 4244 y($)g(var=)870 4354 y($)g(:)h(${var=DEFAULT})
+870 4463 y($)f(echo)g($var)870 4682 y($)g(var=)870 4792
+y($)g(:)h(${var:=DEFAULT})870 4902 y($)f(echo)g($var)870
+5011 y(DEFAULT)870 5121 y($)g(unset)g(var)870 5230 y($)g(:)h
+(${var:=DEFAULT})870 5340 y($)f(echo)g($var)p eop end
%%Page: 29 35
TeXDict begin 29 34 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(29)150 299
-y Ft(${)p Fj(parameter)p Ft(:?)p Fj(word)p Ft(})630 408
-y Fu(If)44 b Fr(parameter)52 b Fu(is)44 b(n)m(ull)h(or)f(unset,)k(the)d
-(shell)g(writes)f(the)h(expansion)f(of)h Fr(w)m(ord)j
-Fu(\(or)d(a)630 518 y(message)31 b(to)g(that)g(e\013ect)h(if)e
-Fr(w)m(ord)k Fu(is)c(not)h(presen)m(t\))f(to)h(the)g(standard)e(error)h
-(and,)g(if)g(it)h(is)630 628 y(not)d(in)m(teractiv)m(e,)j(exits)e(with)
-e(a)h(non-zero)h(status.)40 b(An)27 b(in)m(teractiv)m(e)k(shell)c(do)s
-(es)h(not)g(exit,)630 737 y(but)j(do)s(es)g(not)g(execute)i(the)e
-(command)g(asso)s(ciated)i(with)e(the)h(expansion.)43
-b(Otherwise,)630 847 y(the)31 b(v)-5 b(alue)30 b(of)h
-Fr(parameter)37 b Fu(is)31 b(substituted.)870 975 y Ft($)47
-b(var=)870 1084 y($)g(:)h(${var:?var)d(is)i(unset)f(or)i(null})870
-1194 y(bash:)e(var:)h(var)g(is)g(unset)f(or)i(null)870
-1303 y($)f(echo)g(${var?var)e(is)j(unset})870 1523 y($)f(unset)g(var)
-870 1632 y($)g(:)h(${var?var)d(is)i(unset})870 1742 y(bash:)f(var:)h
-(var)g(is)g(unset)870 1851 y($)g(:)h(${var:?var)d(is)i(unset)f(or)i
-(null})870 1961 y(bash:)e(var:)h(var)g(is)g(unset)f(or)i(null)870
-2071 y($)f(var=123)870 2180 y($)g(echo)g(${var:?var)e(is)i(unset)g(or)g
-(null})870 2290 y(123)150 2436 y(${)p Fj(parameter)p
-Ft(:+)p Fj(word)p Ft(})630 2545 y Fu(If)35 b Fr(parameter)42
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(29)870 299
+y Ft(DEFAULT)150 463 y(${)p Fj(parameter)p Ft(:?)p Fj(word)p
+Ft(})630 573 y Fu(If)44 b Fr(parameter)52 b Fu(is)44
+b(n)m(ull)h(or)f(unset,)k(the)d(shell)g(writes)f(the)h(expansion)f(of)h
+Fr(w)m(ord)j Fu(\(or)d(a)630 682 y(message)31 b(to)g(that)g(e\013ect)h
+(if)e Fr(w)m(ord)k Fu(is)c(not)h(presen)m(t\))f(to)h(the)g(standard)e
+(error)h(and,)g(if)g(it)h(is)630 792 y(not)d(in)m(teractiv)m(e,)j
+(exits)e(with)e(a)h(non-zero)h(status.)40 b(An)27 b(in)m(teractiv)m(e)k
+(shell)c(do)s(es)h(not)g(exit,)630 902 y(but)j(do)s(es)g(not)g(execute)
+i(the)e(command)g(asso)s(ciated)i(with)e(the)h(expansion.)43
+b(Otherwise,)630 1011 y(the)31 b(v)-5 b(alue)30 b(of)h
+Fr(parameter)37 b Fu(is)31 b(substituted.)870 1148 y
+Ft($)47 b(var=)870 1258 y($)g(:)h(${var:?var)d(is)i(unset)f(or)i(null})
+870 1367 y(bash:)e(var:)h(var)g(is)g(unset)f(or)i(null)870
+1477 y($)f(echo)g(${var?var)e(is)j(unset})870 1696 y($)f(unset)g(var)
+870 1806 y($)g(:)h(${var?var)d(is)i(unset})870 1915 y(bash:)f(var:)h
+(var)g(is)g(unset)870 2025 y($)g(:)h(${var:?var)d(is)i(unset)f(or)i
+(null})870 2134 y(bash:)e(var:)h(var)g(is)g(unset)f(or)i(null)870
+2244 y($)f(var=123)870 2354 y($)g(echo)g(${var:?var)e(is)i(unset)g(or)g
+(null})870 2463 y(123)150 2628 y(${)p Fj(parameter)p
+Ft(:+)p Fj(word)p Ft(})630 2737 y Fu(If)35 b Fr(parameter)42
b Fu(is)36 b(n)m(ull)f(or)h(unset,)g(nothing)g(is)f(substituted,)i
-(otherwise)e(the)h(expansion)630 2655 y(of)31 b Fr(w)m(ord)i
+(otherwise)e(the)h(expansion)630 2847 y(of)31 b Fr(w)m(ord)i
Fu(is)e(substituted.)40 b(The)30 b(v)-5 b(alue)30 b(of)h
-Fr(parameter)37 b Fu(is)31 b(not)f(used.)870 2783 y Ft($)47
-b(var=123)870 2892 y($)g(echo)g(${var:+var)e(is)i(set)g(and)g(not)g
-(null})870 3002 y(var)g(is)g(set)g(and)g(not)g(null)870
-3112 y($)g(echo)g(${var+var)e(is)j(set})870 3221 y(var)f(is)g(set)870
-3331 y($)g(var=)870 3440 y($)g(echo)g(${var:+var)e(is)i(set)g(and)g
-(not)g(null})870 3660 y($)g(echo)g(${var+var)e(is)j(set})870
-3769 y(var)f(is)g(set)870 3879 y($)g(unset)g(var)870
-3988 y($)g(echo)g(${var+var)e(is)j(set})870 4208 y($)f(echo)g
-(${var:+var)e(is)i(set)g(and)g(not)g(null})870 4427 y($)150
-4573 y(${)p Fj(parameter)p Ft(:)p Fj(offset)p Ft(})150
-4682 y(${)p Fj(parameter)p Ft(:)p Fj(offset)p Ft(:)p
-Fj(lengt)o(h)p Ft(})630 4792 y Fu(This)30 b(is)h(referred)f(to)h(as)g
+Fr(parameter)37 b Fu(is)31 b(not)f(used.)870 2984 y Ft($)47
+b(var=123)870 3093 y($)g(echo)g(${var:+var)e(is)i(set)g(and)g(not)g
+(null})870 3203 y(var)g(is)g(set)g(and)g(not)g(null)870
+3313 y($)g(echo)g(${var+var)e(is)j(set})870 3422 y(var)f(is)g(set)870
+3532 y($)g(var=)870 3641 y($)g(echo)g(${var:+var)e(is)i(set)g(and)g
+(not)g(null})870 3861 y($)g(echo)g(${var+var)e(is)j(set})870
+3970 y(var)f(is)g(set)870 4080 y($)g(unset)g(var)870
+4189 y($)g(echo)g(${var+var)e(is)j(set})870 4408 y($)f(echo)g
+(${var:+var)e(is)i(set)g(and)g(not)g(null})870 4628 y($)150
+4792 y(${)p Fj(parameter)p Ft(:)p Fj(offset)p Ft(})150
+4902 y(${)p Fj(parameter)p Ft(:)p Fj(offset)p Ft(:)p
+Fj(lengt)o(h)p Ft(})630 5011 y Fu(This)30 b(is)h(referred)f(to)h(as)g
(Substring)f(Expansion.)41 b(It)31 b(expands)f(to)h(up)f(to)h
-Fr(length)g Fu(c)m(harac-)630 4902 y(ters)k(of)g(the)h(v)-5
+Fr(length)g Fu(c)m(harac-)630 5121 y(ters)k(of)g(the)h(v)-5
b(alue)35 b(of)g Fr(parameter)42 b Fu(starting)36 b(at)g(the)f(c)m
(haracter)i(sp)s(eci\014ed)d(b)m(y)h Fr(o\013set)p Fu(.)55
-b(If)630 5011 y Fr(parameter)34 b Fu(is)27 b(`)p Ft(@)p
+b(If)630 5230 y Fr(parameter)34 b Fu(is)27 b(`)p Ft(@)p
Fu(')g(or)g(`)p Ft(*)p Fu(',)g(an)g(indexed)g(arra)m(y)g(subscripted)e
(b)m(y)i(`)p Ft(@)p Fu(')g(or)g(`)p Ft(*)p Fu(',)h(or)f(an)f(asso)s
-(cia-)630 5121 y(tiv)m(e)j(arra)m(y)f(name,)g(the)g(results)f(di\013er)
+(cia-)630 5340 y(tiv)m(e)j(arra)m(y)f(name,)g(the)g(results)f(di\013er)
g(as)h(describ)s(ed)e(b)s(elo)m(w.)40 b(If)27 b(:)p Fr(length)h
-Fu(is)g(omitted)g(\(the)630 5230 y(\014rst)e(form)g(ab)s(o)m(v)m(e\),)j
-(this)d(expands)g(to)h(the)g(substring)e(of)h(the)h(v)-5
-b(alue)27 b(of)g Fr(parameter)33 b Fu(start-)630 5340
-y(ing)h(at)g(the)g(c)m(haracter)h(sp)s(eci\014ed)e(b)m(y)h
-Fr(o\013set)i Fu(and)d(extending)h(to)h(the)f(end)f(of)g(the)h(v)-5
-b(alue.)p eop end
+Fu(is)g(omitted)g(\(the)p eop end
%%Page: 30 36
TeXDict begin 30 35 bop 150 -116 a Fu(Chapter)30 b(3:)41
b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(30)630 299
-y(If)32 b Fr(o\013set)k Fu(is)d(omitted,)i(it)e(is)g(treated)g(as)g(0.)
-49 b(If)32 b Fr(length)h Fu(is)g(omitted,)i(but)d(the)h(colon)g(after)
-630 408 y Fr(o\013set)g Fu(is)d(presen)m(t,)g(it)h(is)e(treated)i(as)f
-(0.)41 b Fr(length)31 b Fu(and)e Fr(o\013set)k Fu(are)d(arithmetic)h
-(expressions)630 518 y(\(see)g(Section)h(6.5)f([Shell)f(Arithmetic],)i
-(page)f(107\).)630 655 y(If)39 b Fr(o\013set)k Fu(ev)-5
-b(aluates)41 b(to)f(a)g(n)m(um)m(b)s(er)f(less)h(than)f(zero,)k(the)d
-(v)-5 b(alue)40 b(is)g(used)e(as)i(an)g(o\013set)630
-765 y(in)33 b(c)m(haracters)i(from)f(the)f(end)g(of)h(the)g(v)-5
-b(alue)34 b(of)g Fr(parameter)p Fu(.)51 b(If)33 b Fr(length)h
-Fu(ev)-5 b(aluates)35 b(to)g(a)630 874 y(n)m(um)m(b)s(er)23
-b(less)h(than)g(zero,)j(it)d(is)h(in)m(terpreted)f(as)g(an)h(o\013set)g
-(in)f(c)m(haracters)h(from)f(the)g(end)g(of)630 984 y(the)31
+y(\014rst)26 b(form)g(ab)s(o)m(v)m(e\),)j(this)d(expands)g(to)h(the)g
+(substring)e(of)h(the)h(v)-5 b(alue)27 b(of)g Fr(parameter)33
+b Fu(start-)630 408 y(ing)h(at)g(the)g(c)m(haracter)h(sp)s(eci\014ed)e
+(b)m(y)h Fr(o\013set)i Fu(and)d(extending)h(to)h(the)f(end)f(of)g(the)h
+(v)-5 b(alue.)630 518 y(If)32 b Fr(o\013set)k Fu(is)d(omitted,)i(it)e
+(is)g(treated)g(as)g(0.)49 b(If)32 b Fr(length)h Fu(is)g(omitted,)i
+(but)d(the)h(colon)g(after)630 628 y Fr(o\013set)g Fu(is)d(presen)m(t,)
+g(it)h(is)e(treated)i(as)f(0.)41 b Fr(length)31 b Fu(and)e
+Fr(o\013set)k Fu(are)d(arithmetic)h(expressions)630 737
+y(\(see)g(Section)h(6.5)f([Shell)f(Arithmetic],)i(page)f(107\).)630
+874 y(If)39 b Fr(o\013set)k Fu(ev)-5 b(aluates)41 b(to)f(a)g(n)m(um)m
+(b)s(er)f(less)h(than)f(zero,)k(the)d(v)-5 b(alue)40
+b(is)g(used)e(as)i(an)g(o\013set)630 984 y(in)33 b(c)m(haracters)i
+(from)f(the)f(end)g(of)h(the)g(v)-5 b(alue)34 b(of)g
+Fr(parameter)p Fu(.)51 b(If)33 b Fr(length)h Fu(ev)-5
+b(aluates)35 b(to)g(a)630 1093 y(n)m(um)m(b)s(er)23 b(less)h(than)g
+(zero,)j(it)d(is)h(in)m(terpreted)f(as)g(an)h(o\013set)g(in)f(c)m
+(haracters)h(from)f(the)g(end)g(of)630 1203 y(the)31
b(v)-5 b(alue)31 b(of)g Fr(parameter)38 b Fu(rather)30
b(than)h(a)g(n)m(um)m(b)s(er)f(of)g(c)m(haracters,)j(and)d(the)h
-(expansion)630 1093 y(is)f(the)h(c)m(haracters)h(b)s(et)m(w)m(een)f
-Fr(o\013set)i Fu(and)d(that)h(result.)630 1230 y(Note)37
+(expansion)630 1313 y(is)f(the)h(c)m(haracters)h(b)s(et)m(w)m(een)f
+Fr(o\013set)i Fu(and)d(that)h(result.)630 1450 y(Note)37
b(that)f(a)g(negativ)m(e)i(o\013set)f(m)m(ust)f(b)s(e)f(separated)h
-(from)f(the)h(colon)h(b)m(y)e(at)i(least)g(one)630 1340
+(from)f(the)h(colon)h(b)m(y)e(at)i(least)g(one)630 1559
y(space)31 b(to)g(a)m(v)m(oid)h(b)s(eing)e(confused)g(with)g(the)g(`)p
-Ft(:-)p Fu(')h(expansion.)630 1477 y(Here)43 b(are)g(some)f(examples)h
-(illustrating)g(substring)f(expansion)g(on)g(parameters)h(and)630
-1587 y(subscripted)29 b(arra)m(ys:)630 1724 y Ft($)47
-b(string=01234567890abcdefgh)630 1833 y($)g(echo)g(${string:7})630
-1943 y(7890abcdefgh)630 2052 y($)g(echo)g(${string:7:0})630
-2271 y($)g(echo)g(${string:7:2})630 2381 y(78)630 2491
-y($)g(echo)g(${string:7:-2})630 2600 y(7890abcdef)630
-2710 y($)g(echo)g(${string:)e(-7})630 2819 y(bcdefgh)630
-2929 y($)i(echo)g(${string:)e(-7:0})630 3148 y($)i(echo)g(${string:)e
-(-7:2})630 3258 y(bc)630 3367 y($)i(echo)g(${string:)e(-7:-2})630
-3477 y(bcdef)630 3587 y($)i(set)g(--)h(01234567890abcdefgh)630
-3696 y($)f(echo)g(${1:7})630 3806 y(7890abcdefgh)630
-3915 y($)g(echo)g(${1:7:0})630 4134 y($)g(echo)g(${1:7:2})630
-4244 y(78)630 4354 y($)g(echo)g(${1:7:-2})630 4463 y(7890abcdef)630
-4573 y($)g(echo)g(${1:)g(-7})630 4682 y(bcdefgh)630 4792
-y($)g(echo)g(${1:)g(-7:0})630 5011 y($)g(echo)g(${1:)g(-7:2})630
-5121 y(bc)630 5230 y($)g(echo)g(${1:)g(-7:-2})630 5340
-y(bcdef)p eop end
+Ft(:)p Fq(\000)p Fu(')g(expansion.)630 1696 y(Here)43
+b(are)g(some)f(examples)h(illustrating)g(substring)f(expansion)g(on)g
+(parameters)h(and)630 1806 y(subscripted)29 b(arra)m(ys:)630
+1943 y Ft($)47 b(string=01234567890abcdefgh)630 2052
+y($)g(echo)g(${string:7})630 2162 y(7890abcdefgh)630
+2271 y($)g(echo)g(${string:7:0})630 2491 y($)g(echo)g(${string:7:2})630
+2600 y(78)630 2710 y($)g(echo)g(${string:7:-2})630 2819
+y(7890abcdef)630 2929 y($)g(echo)g(${string:)e(-7})630
+3039 y(bcdefgh)630 3148 y($)i(echo)g(${string:)e(-7:0})630
+3367 y($)i(echo)g(${string:)e(-7:2})630 3477 y(bc)630
+3587 y($)i(echo)g(${string:)e(-7:-2})630 3696 y(bcdef)630
+3806 y($)i(set)g(--)h(01234567890abcdefgh)630 3915 y($)f(echo)g(${1:7})
+630 4025 y(7890abcdefgh)630 4134 y($)g(echo)g(${1:7:0})630
+4354 y($)g(echo)g(${1:7:2})630 4463 y(78)630 4573 y($)g(echo)g
+(${1:7:-2})630 4682 y(7890abcdef)630 4792 y($)g(echo)g(${1:)g(-7})630
+4902 y(bcdefgh)630 5011 y($)g(echo)g(${1:)g(-7:0})630
+5230 y($)g(echo)g(${1:)g(-7:2})630 5340 y(bc)p eop end
%%Page: 31 37
TeXDict begin 31 36 bop 150 -116 a Fu(Chapter)30 b(3:)41
b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(31)630 299
-y Ft($)47 b(array[0]=01234567890abcdef)o(gh)630 408 y($)g(echo)g
-(${array[0]:7})630 518 y(7890abcdefgh)630 628 y($)g(echo)g
-(${array[0]:7:0})630 847 y($)g(echo)g(${array[0]:7:2})630
-956 y(78)630 1066 y($)g(echo)g(${array[0]:7:-2})630 1176
-y(7890abcdef)630 1285 y($)g(echo)g(${array[0]:)e(-7})630
-1395 y(bcdefgh)630 1504 y($)i(echo)g(${array[0]:)e(-7:0})630
-1724 y($)i(echo)g(${array[0]:)e(-7:2})630 1833 y(bc)630
-1943 y($)i(echo)g(${array[0]:)e(-7:-2})630 2052 y(bcdef)630
-2189 y Fu(If)34 b Fr(parameter)41 b Fu(is)35 b(`)p Ft(@)p
+y Ft($)47 b(echo)g(${1:)g(-7:-2})630 408 y(bcdef)630
+518 y($)g(array[0]=01234567890abcdef)o(gh)630 628 y($)g(echo)g
+(${array[0]:7})630 737 y(7890abcdefgh)630 847 y($)g(echo)g
+(${array[0]:7:0})630 1066 y($)g(echo)g(${array[0]:7:2})630
+1176 y(78)630 1285 y($)g(echo)g(${array[0]:7:-2})630
+1395 y(7890abcdef)630 1504 y($)g(echo)g(${array[0]:)e(-7})630
+1614 y(bcdefgh)630 1724 y($)i(echo)g(${array[0]:)e(-7:0})630
+1943 y($)i(echo)g(${array[0]:)e(-7:2})630 2052 y(bc)630
+2162 y($)i(echo)g(${array[0]:)e(-7:-2})630 2271 y(bcdef)630
+2408 y Fu(If)34 b Fr(parameter)41 b Fu(is)35 b(`)p Ft(@)p
Fu(')f(or)h(`)p Ft(*)p Fu(',)h(the)e(result)g(is)h Fr(length)g
-Fu(p)s(ositional)g(parameters)g(b)s(eginning)630 2299
+Fu(p)s(ositional)g(parameters)g(b)s(eginning)630 2518
y(at)j Fr(o\013set)p Fu(.)62 b(A)37 b(negativ)m(e)j Fr(o\013set)g
Fu(is)d(tak)m(en)i(relativ)m(e)g(to)f(one)f(greater)i(than)e(the)g
-(greatest)630 2408 y(p)s(ositional)23 b(parameter,)h(so)e(an)g
+(greatest)630 2628 y(p)s(ositional)23 b(parameter,)h(so)e(an)g
(o\013set)h(of)g(-1)f(ev)-5 b(aluates)24 b(to)f(the)f(last)h(p)s
-(ositional)f(parameter)630 2518 y(\(or)34 b(0)g(if)g(there)g(are)g(no)f
+(ositional)f(parameter)630 2737 y(\(or)34 b(0)g(if)g(there)g(are)g(no)f
(p)s(ositional)i(parameters\).)51 b(It)34 b(is)g(an)f(expansion)h
-(error)f(if)h Fr(length)630 2628 y Fu(ev)-5 b(aluates)32
+(error)f(if)h Fr(length)630 2847 y Fu(ev)-5 b(aluates)32
b(to)f(a)g(n)m(um)m(b)s(er)e(less)i(than)f(zero.)630
-2765 y(The)i(follo)m(wing)i(examples)f(illustrate)h(substring)d
-(expansion)i(using)f(p)s(ositional)h(param-)630 2874
-y(eters:)630 3011 y Ft($)47 b(set)g(--)h(1)f(2)g(3)h(4)f(5)h(6)f(7)h(8)
-f(9)h(0)f(a)h(b)f(c)g(d)h(e)f(f)h(g)f(h)630 3121 y($)g(echo)g(${@:7})
-630 3230 y(7)g(8)h(9)f(0)h(a)f(b)h(c)f(d)h(e)f(f)h(g)f(h)630
-3340 y($)g(echo)g(${@:7:0})630 3559 y($)g(echo)g(${@:7:2})630
-3669 y(7)g(8)630 3778 y($)g(echo)g(${@:7:-2})630 3888
-y(bash:)f(-2:)h(substring)f(expression)f(<)i(0)630 3998
-y($)g(echo)g(${@:)g(-7:2})630 4107 y(b)g(c)630 4217 y($)g(echo)g
-(${@:0})630 4326 y(./bash)f(1)i(2)f(3)g(4)h(5)f(6)h(7)f(8)h(9)f(0)h(a)f
-(b)h(c)f(d)g(e)h(f)f(g)h(h)630 4436 y($)f(echo)g(${@:0:2})630
-4545 y(./bash)f(1)630 4655 y($)h(echo)g(${@:)g(-7:0})630
-4902 y Fu(If)36 b Fr(parameter)43 b Fu(is)36 b(an)g(indexed)g(arra)m(y)
+2984 y(The)i(follo)m(wing)i(examples)f(illustrate)h(substring)d
+(expansion)i(using)f(p)s(ositional)h(param-)630 3093
+y(eters:)630 3230 y Ft($)47 b(set)g(--)h(1)f(2)g(3)h(4)f(5)h(6)f(7)h(8)
+f(9)h(0)f(a)h(b)f(c)g(d)h(e)f(f)h(g)f(h)630 3340 y($)g(echo)g(${@:7})
+630 3450 y(7)g(8)h(9)f(0)h(a)f(b)h(c)f(d)h(e)f(f)h(g)f(h)630
+3559 y($)g(echo)g(${@:7:0})630 3778 y($)g(echo)g(${@:7:2})630
+3888 y(7)g(8)630 3998 y($)g(echo)g(${@:7:-2})630 4107
+y(bash:)f(-2:)h(substring)f(expression)f(<)i(0)630 4217
+y($)g(echo)g(${@:)g(-7:2})630 4326 y(b)g(c)630 4436 y($)g(echo)g
+(${@:0})630 4545 y(./bash)f(1)i(2)f(3)g(4)h(5)f(6)h(7)f(8)h(9)f(0)h(a)f
+(b)h(c)f(d)g(e)h(f)f(g)h(h)630 4655 y($)f(echo)g(${@:0:2})630
+4765 y(./bash)f(1)630 4874 y($)h(echo)g(${@:)g(-7:0})630
+5121 y Fu(If)36 b Fr(parameter)43 b Fu(is)36 b(an)g(indexed)g(arra)m(y)
g(name)g(subscripted)f(b)m(y)h(`)p Ft(@)p Fu(')g(or)h(`)p
-Ft(*)p Fu(',)h(the)e(result)g(is)630 5011 y(the)j Fr(length)g
+Ft(*)p Fu(',)h(the)e(result)g(is)630 5230 y(the)j Fr(length)g
Fu(mem)m(b)s(ers)f(of)h(the)f(arra)m(y)i(b)s(eginning)d(with)i
Ft(${)p Fj(parameter)p Ft([)p Fj(offset)p Ft(]})p Fu(.)60
-b(A)630 5121 y(negativ)m(e)33 b Fr(o\013set)g Fu(is)e(tak)m(en)h
+b(A)630 5340 y(negativ)m(e)33 b Fr(o\013set)g Fu(is)e(tak)m(en)h
(relativ)m(e)g(to)g(one)f(greater)g(than)g(the)f(maxim)m(um)h(index)f
-(of)h(the)630 5230 y(sp)s(eci\014ed)38 b(arra)m(y)-8
-b(.)65 b(It)38 b(is)g(an)h(expansion)f(error)f(if)i Fr(length)f
-Fu(ev)-5 b(aluates)40 b(to)f(a)g(n)m(um)m(b)s(er)e(less)630
-5340 y(than)30 b(zero.)p eop end
+(of)h(the)p eop end
%%Page: 32 38
TeXDict begin 32 37 bop 150 -116 a Fu(Chapter)30 b(3:)41
b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(32)630 299
-y(These)23 b(examples)i(sho)m(w)e(ho)m(w)h(y)m(ou)g(can)g(use)f
-(substring)f(expansion)i(with)f(indexed)g(arra)m(ys:)630
-428 y Ft($)47 b(array=\(0)f(1)h(2)h(3)f(4)h(5)f(6)h(7)f(8)h(9)f(0)h(a)f
-(b)g(c)h(d)f(e)h(f)f(g)h(h\))630 538 y($)f(echo)g(${array[@]:7})630
-648 y(7)g(8)h(9)f(0)h(a)f(b)h(c)f(d)h(e)f(f)h(g)f(h)630
-757 y($)g(echo)g(${array[@]:7:2})630 867 y(7)g(8)630
-976 y($)g(echo)g(${array[@]:)e(-7:2})630 1086 y(b)i(c)630
-1196 y($)g(echo)g(${array[@]:)e(-7:-2})630 1305 y(bash:)h(-2:)h
-(substring)f(expression)f(<)i(0)630 1415 y($)g(echo)g(${array[@]:0})630
-1524 y(0)g(1)h(2)f(3)h(4)f(5)h(6)f(7)h(8)f(9)h(0)f(a)g(b)h(c)f(d)h(e)f
-(f)h(g)f(h)630 1634 y($)g(echo)g(${array[@]:0:2})630
-1743 y(0)g(1)630 1853 y($)g(echo)g(${array[@]:)e(-7:0})630
-2092 y Fu(Substring)25 b(expansion)g(applied)h(to)h(an)f(asso)s(ciativ)
+y(sp)s(eci\014ed)38 b(arra)m(y)-8 b(.)65 b(It)38 b(is)g(an)h(expansion)
+f(error)f(if)i Fr(length)f Fu(ev)-5 b(aluates)40 b(to)f(a)g(n)m(um)m(b)
+s(er)e(less)630 408 y(than)30 b(zero.)630 573 y(These)23
+b(examples)i(sho)m(w)e(ho)m(w)h(y)m(ou)g(can)g(use)f(substring)f
+(expansion)i(with)f(indexed)g(arra)m(ys:)630 737 y Ft($)47
+b(array=\(0)f(1)h(2)h(3)f(4)h(5)f(6)h(7)f(8)h(9)f(0)h(a)f(b)g(c)h(d)f
+(e)h(f)f(g)h(h\))630 847 y($)f(echo)g(${array[@]:7})630
+956 y(7)g(8)h(9)f(0)h(a)f(b)h(c)f(d)h(e)f(f)h(g)f(h)630
+1066 y($)g(echo)g(${array[@]:7:2})630 1176 y(7)g(8)630
+1285 y($)g(echo)g(${array[@]:)e(-7:2})630 1395 y(b)i(c)630
+1504 y($)g(echo)g(${array[@]:)e(-7:-2})630 1614 y(bash:)h(-2:)h
+(substring)f(expression)f(<)i(0)630 1724 y($)g(echo)g(${array[@]:0})630
+1833 y(0)g(1)h(2)f(3)h(4)f(5)h(6)f(7)h(8)f(9)h(0)f(a)g(b)h(c)f(d)h(e)f
+(f)h(g)f(h)630 1943 y($)g(echo)g(${array[@]:0:2})630
+2052 y(0)g(1)630 2162 y($)g(echo)g(${array[@]:)e(-7:0})630
+2436 y Fu(Substring)25 b(expansion)g(applied)h(to)h(an)f(asso)s(ciativ)
m(e)j(arra)m(y)d(pro)s(duces)f(unde\014ned)f(results.)630
-2222 y(Substring)32 b(indexing)i(is)f(zero-based)i(unless)e(the)h(p)s
-(ositional)g(parameters)g(are)g(used,)g(in)630 2331 y(whic)m(h)29
+2600 y(Substring)32 b(indexing)i(is)f(zero-based)i(unless)e(the)h(p)s
+(ositional)g(parameters)g(are)g(used,)g(in)630 2710 y(whic)m(h)29
b(case)i(the)f(indexing)g(starts)g(at)g(1)g(b)m(y)g(default.)41
b(If)29 b Fr(o\013set)k Fu(is)d(0,)g(and)f(the)h(p)s(ositional)630
-2441 y(parameters)h(are)f(used,)g Ft($0)g Fu(is)g(pre\014xed)g(to)h
-(the)f(list.)150 2590 y Ft(${!)p Fj(prefix)p Ft(*})150
-2700 y(${!)p Fj(prefix)p Ft(@})630 2809 y Fu(Expands)24
+2819 y(parameters)h(are)f(used,)g Ft($0)g Fu(is)g(pre\014xed)g(to)h
+(the)f(list.)150 3039 y Ft(${!)p Fj(prefix)p Ft(*})150
+3148 y(${!)p Fj(prefix)p Ft(@})630 3258 y Fu(Expands)24
b(to)h(the)g(names)g(of)g(v)-5 b(ariables)26 b(whose)f(names)f(b)s
(egin)h(with)f Fr(pre\014x)p Fu(,)i(separated)f(b)m(y)630
-2919 y(the)k(\014rst)f(c)m(haracter)j(of)e(the)g Ft(IFS)f
+3367 y(the)k(\014rst)f(c)m(haracter)j(of)e(the)g Ft(IFS)f
Fu(sp)s(ecial)i(v)-5 b(ariable.)41 b(When)29 b(`)p Ft(@)p
-Fu(')g(is)g(used)f(and)h(the)g(expan-)630 3029 y(sion)35
+Fu(')g(is)g(used)f(and)h(the)g(expan-)630 3477 y(sion)35
b(app)s(ears)g(within)f(double)h(quotes,)i(eac)m(h)f(v)-5
b(ariable)36 b(name)f(expands)g(to)g(a)h(separate)630
-3138 y(w)m(ord.)150 3288 y Ft(${!)p Fj(name)p Ft([@]})150
-3397 y(${!)p Fj(name)p Ft([*]})630 3507 y Fu(If)26 b
+3587 y(w)m(ord.)150 3806 y Ft(${!)p Fj(name)p Ft([@]})150
+3915 y(${!)p Fj(name)p Ft([*]})630 4025 y Fu(If)26 b
Fr(name)32 b Fu(is)27 b(an)f(arra)m(y)h(v)-5 b(ariable,)29
b(expands)d(to)h(the)g(list)g(of)g(arra)m(y)g(indices)g(\(k)m(eys\))h
-(assigned)630 3616 y(in)c Fr(name)p Fu(.)39 b(If)24 b
+(assigned)630 4134 y(in)c Fr(name)p Fu(.)39 b(If)24 b
Fr(name)30 b Fu(is)24 b(not)h(an)f(arra)m(y)-8 b(,)27
b(expands)c(to)j(0)f(if)f Fr(name)30 b Fu(is)24 b(set)h(and)f(n)m(ull)g
-(otherwise.)630 3726 y(When)39 b(`)p Ft(@)p Fu(')h(is)f(used)g(and)f
+(otherwise.)630 4244 y(When)39 b(`)p Ft(@)p Fu(')h(is)f(used)g(and)f
(the)i(expansion)f(app)s(ears)g(within)f(double)h(quotes,)k(eac)m(h)d
-(k)m(ey)630 3836 y(expands)30 b(to)h(a)f(separate)i(w)m(ord.)150
-3985 y Ft(${#)p Fj(parameter)p Ft(})630 4095 y Fu(Substitutes)37
+(k)m(ey)630 4354 y(expands)30 b(to)h(a)f(separate)i(w)m(ord.)150
+4573 y Ft(${#)p Fj(parameter)p Ft(})630 4682 y Fu(Substitutes)37
b(the)i(length)f(in)g(c)m(haracters)i(of)e(the)g(v)-5
b(alue)39 b(of)f Fr(parameter)p Fu(.)64 b(If)38 b Fr(parameter)630
-4204 y Fu(is)f(`)p Ft(*)p Fu(')g(or)g(`)p Ft(@)p Fu(',)i(the)f(v)-5
+4792 y Fu(is)f(`)p Ft(*)p Fu(')g(or)g(`)p Ft(@)p Fu(',)i(the)f(v)-5
b(alue)37 b(substituted)f(is)h(the)h(n)m(um)m(b)s(er)d(of)j(p)s
-(ositional)f(parameters.)61 b(If)630 4314 y Fr(parameter)41
+(ositional)f(parameters.)61 b(If)630 4902 y Fr(parameter)41
b Fu(is)35 b(an)f(arra)m(y)g(name)h(subscripted)e(b)m(y)h(`)p
Ft(*)p Fu(')g(or)g(`)p Ft(@)p Fu(',)i(the)f(v)-5 b(alue)34
-b(substituted)g(is)630 4423 y(the)j(n)m(um)m(b)s(er)e(of)i(elemen)m(ts)
+b(substituted)g(is)630 5011 y(the)j(n)m(um)m(b)s(er)e(of)i(elemen)m(ts)
h(in)e(the)h(arra)m(y)-8 b(.)60 b(If)36 b Fr(parameter)44
-b Fu(is)36 b(an)h(indexed)f(arra)m(y)h(name)630 4533
+b Fu(is)36 b(an)h(indexed)f(arra)m(y)h(name)630 5121
y(subscripted)25 b(b)m(y)h(a)h(negativ)m(e)i(n)m(um)m(b)s(er,)d(that)h
(n)m(um)m(b)s(er)e(is)h(in)m(terpreted)h(as)f(relativ)m(e)j(to)e(one)
-630 4643 y(greater)32 b(than)f(the)h(maxim)m(um)f(index)g(of)g
+630 5230 y(greater)32 b(than)f(the)h(maxim)m(um)f(index)g(of)g
Fr(parameter)p Fu(,)h(so)g(negativ)m(e)h(indices)e(coun)m(t)h(bac)m(k)
-630 4752 y(from)e(the)g(end)g(of)h(the)f(arra)m(y)-8
+630 5340 y(from)e(the)g(end)g(of)h(the)f(arra)m(y)-8
b(,)32 b(and)e(an)g(index)g(of)g(-1)h(references)g(the)g(last)g(elemen)
-m(t.)150 4902 y Ft(${)p Fj(parameter)p Ft(#)p Fj(word)p
-Ft(})150 5011 y(${)p Fj(parameter)p Ft(##)p Fj(word)p
-Ft(})630 5121 y Fu(The)c Fr(w)m(ord)j Fu(is)d(expanded)f(to)i(pro)s
-(duce)e(a)i(pattern)f(and)f(matc)m(hed)i(against)g(the)g(expanded)630
-5230 y(v)-5 b(alue)33 b(of)g Fr(parameter)40 b Fu(according)34
-b(to)g(the)f(rules)f(describ)s(ed)g(b)s(elo)m(w)h(\(see)h(Section)f
-(3.5.8.1)630 5340 y([P)m(attern)45 b(Matc)m(hing],)k(page)c(39\).)82
-b(If)44 b(the)g(pattern)g(matc)m(hes)h(the)f(b)s(eginning)f(of)h(the)p
-eop end
+m(t.)p eop end
%%Page: 33 39
TeXDict begin 33 38 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(33)630 299
-y(expanded)29 b(v)-5 b(alue)30 b(of)g Fr(parameter)p
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(33)150 299
+y Ft(${)p Fj(parameter)p Ft(#)p Fj(word)p Ft(})150 408
+y(${)p Fj(parameter)p Ft(##)p Fj(word)p Ft(})630 518
+y Fu(The)27 b Fr(w)m(ord)j Fu(is)d(expanded)f(to)i(pro)s(duce)e(a)i
+(pattern)f(and)f(matc)m(hed)i(against)g(the)g(expanded)630
+628 y(v)-5 b(alue)33 b(of)g Fr(parameter)40 b Fu(according)34
+b(to)g(the)f(rules)f(describ)s(ed)g(b)s(elo)m(w)h(\(see)h(Section)f
+(3.5.8.1)630 737 y([P)m(attern)45 b(Matc)m(hing],)k(page)c(39\).)82
+b(If)44 b(the)g(pattern)g(matc)m(hes)h(the)f(b)s(eginning)f(of)h(the)
+630 847 y(expanded)29 b(v)-5 b(alue)30 b(of)g Fr(parameter)p
Fu(,)g(then)g(the)f(result)h(of)g(the)g(expansion)f(is)h(the)g
-(expanded)630 408 y(v)-5 b(alue)41 b(of)g Fr(parameter)48
+(expanded)630 956 y(v)-5 b(alue)41 b(of)g Fr(parameter)48
b Fu(with)41 b(the)g(shortest)g(matc)m(hing)h(pattern)f(\(the)h(`)p
-Ft(#)p Fu(')f(case\))h(or)f(the)630 518 y(longest)32
+Ft(#)p Fu(')f(case\))h(or)f(the)630 1066 y(longest)32
b(matc)m(hing)f(pattern)g(\(the)g(`)p Ft(##)p Fu(')g(case\))h(deleted.)
42 b(If)30 b Fr(parameter)38 b Fu(is)30 b(`)p Ft(@)p
-Fu(')h(or)g(`)p Ft(*)p Fu(',)g(the)630 628 y(pattern)f(remo)m(v)-5
+Fu(')h(or)g(`)p Ft(*)p Fu(',)g(the)630 1176 y(pattern)f(remo)m(v)-5
b(al)31 b(op)s(eration)f(is)g(applied)g(to)g(eac)m(h)h(p)s(ositional)g
-(parameter)f(in)f(turn,)h(and)630 737 y(the)c(expansion)f(is)g(the)h
+(parameter)f(in)f(turn,)h(and)630 1285 y(the)c(expansion)f(is)g(the)h
(resultan)m(t)g(list.)40 b(If)25 b Fr(parameter)32 b
Fu(is)26 b(an)f(arra)m(y)h(v)-5 b(ariable)26 b(subscripted)630
-847 y(with)j(`)p Ft(@)p Fu(')h(or)g(`)p Ft(*)p Fu(',)g(the)g(pattern)g
+1395 y(with)j(`)p Ft(@)p Fu(')h(or)g(`)p Ft(*)p Fu(',)g(the)g(pattern)g
(remo)m(v)-5 b(al)30 b(op)s(eration)h(is)e(applied)h(to)g(eac)m(h)h
-(mem)m(b)s(er)e(of)h(the)630 956 y(arra)m(y)h(in)f(turn,)f(and)h(the)h
-(expansion)f(is)g(the)h(resultan)m(t)g(list.)150 1121
+(mem)m(b)s(er)e(of)h(the)630 1504 y(arra)m(y)h(in)f(turn,)f(and)h(the)h
+(expansion)f(is)g(the)h(resultan)m(t)g(list.)150 1708
y Ft(${)p Fj(parameter)p Ft(\045)p Fj(word)p Ft(})150
-1230 y(${)p Fj(parameter)p Ft(\045\045)p Fj(word)p Ft(})630
-1340 y Fu(The)c Fr(w)m(ord)j Fu(is)d(expanded)f(to)i(pro)s(duce)e(a)i
+1817 y(${)p Fj(parameter)p Ft(\045\045)p Fj(word)p Ft(})630
+1927 y Fu(The)c Fr(w)m(ord)j Fu(is)d(expanded)f(to)i(pro)s(duce)e(a)i
(pattern)f(and)f(matc)m(hed)i(against)g(the)g(expanded)630
-1450 y(v)-5 b(alue)33 b(of)g Fr(parameter)40 b Fu(according)34
+2037 y(v)-5 b(alue)33 b(of)g Fr(parameter)40 b Fu(according)34
b(to)g(the)f(rules)f(describ)s(ed)g(b)s(elo)m(w)h(\(see)h(Section)f
-(3.5.8.1)630 1559 y([P)m(attern)h(Matc)m(hing],)i(page)e(39\).)49
+(3.5.8.1)630 2146 y([P)m(attern)h(Matc)m(hing],)i(page)e(39\).)49
b(If)33 b(the)g(pattern)g(matc)m(hes)h(a)f(trailing)h(p)s(ortion)f(of)g
-(the)630 1669 y(expanded)43 b(v)-5 b(alue)44 b(of)g Fr(parameter)p
+(the)630 2256 y(expanded)43 b(v)-5 b(alue)44 b(of)g Fr(parameter)p
Fu(,)k(then)43 b(the)h(result)g(of)f(the)h(expansion)g(is)g(the)f(v)-5
-b(alue)630 1778 y(of)35 b Fr(parameter)42 b Fu(with)34
+b(alue)630 2365 y(of)35 b Fr(parameter)42 b Fu(with)34
b(the)h(shortest)g(matc)m(hing)h(pattern)f(\(the)g(`)p
-Ft(\045)p Fu(')g(case\))h(or)f(the)g(longest)630 1888
+Ft(\045)p Fu(')g(case\))h(or)f(the)g(longest)630 2475
y(matc)m(hing)c(pattern)e(\(the)h(`)p Ft(\045\045)p Fu(')f(case\))i
(deleted.)41 b(If)29 b Fr(parameter)37 b Fu(is)29 b(`)p
Ft(@)p Fu(')h(or)f(`)p Ft(*)p Fu(',)h(the)g(pattern)630
-1998 y(remo)m(v)-5 b(al)46 b(op)s(eration)f(is)g(applied)f(to)i(eac)m
+2585 y(remo)m(v)-5 b(al)46 b(op)s(eration)f(is)g(applied)f(to)i(eac)m
(h)f(p)s(ositional)h(parameter)f(in)f(turn,)k(and)c(the)630
-2107 y(expansion)38 b(is)g(the)g(resultan)m(t)h(list.)65
+2694 y(expansion)38 b(is)g(the)g(resultan)m(t)h(list.)65
b(If)37 b Fr(parameter)46 b Fu(is)38 b(an)g(arra)m(y)g(v)-5
-b(ariable)39 b(subscripted)630 2217 y(with)29 b(`)p Ft(@)p
+b(ariable)39 b(subscripted)630 2804 y(with)29 b(`)p Ft(@)p
Fu(')h(or)g(`)p Ft(*)p Fu(',)g(the)g(pattern)g(remo)m(v)-5
b(al)30 b(op)s(eration)h(is)e(applied)h(to)g(eac)m(h)h(mem)m(b)s(er)e
-(of)h(the)630 2326 y(arra)m(y)h(in)f(turn,)f(and)h(the)h(expansion)f
-(is)g(the)h(resultan)m(t)g(list.)150 2491 y Ft(${)p Fj(parameter)p
-Ft(/)p Fj(pattern)p Ft(/)p Fj(stri)o(ng)p Ft(})150 2600
+(of)h(the)630 2913 y(arra)m(y)h(in)f(turn,)f(and)h(the)h(expansion)f
+(is)g(the)h(resultan)m(t)g(list.)150 3117 y Ft(${)p Fj(parameter)p
+Ft(/)p Fj(pattern)p Ft(/)p Fj(stri)o(ng)p Ft(})150 3226
y(${)p Fj(parameter)p Ft(//)p Fj(pattern)p Ft(/)p Fj(str)o(ing)p
-Ft(})150 2710 y(${)p Fj(parameter)p Ft(/#)p Fj(pattern)p
-Ft(/)p Fj(str)o(ing)p Ft(})150 2819 y(${)p Fj(parameter)p
+Ft(})150 3336 y(${)p Fj(parameter)p Ft(/#)p Fj(pattern)p
+Ft(/)p Fj(str)o(ing)p Ft(})150 3446 y(${)p Fj(parameter)p
Ft(/\045)p Fj(pattern)p Ft(/)p Fj(str)o(ing)p Ft(})630
-2929 y Fu(The)40 b Fr(pattern)h Fu(is)g(expanded)e(to)j(pro)s(duce)d(a)
+3555 y Fu(The)40 b Fr(pattern)h Fu(is)g(expanded)e(to)j(pro)s(duce)d(a)
i(pattern)g(and)f(matc)m(hed)i(against)f(the)g(ex-)630
-3039 y(panded)i(v)-5 b(alue)44 b(of)g Fr(parameter)51
+3665 y(panded)i(v)-5 b(alue)44 b(of)g Fr(parameter)51
b Fu(as)44 b(describ)s(ed)f(b)s(elo)m(w)h(\(see)h(Section)f(3.5.8.1)j
-([P)m(attern)630 3148 y(Matc)m(hing],)41 b(page)d(39\).)63
+([P)m(attern)630 3774 y(Matc)m(hing],)41 b(page)d(39\).)63
b(The)37 b(longest)h(matc)m(h)g(of)g Fr(pattern)f Fu(in)g(the)h
-(expanded)e(v)-5 b(alue)38 b(is)630 3258 y(replaced)30
+(expanded)e(v)-5 b(alue)38 b(is)630 3884 y(replaced)30
b(with)e Fr(string)p Fu(.)41 b Fr(string)c Fu(undergo)s(es)28
b(tilde)i(expansion,)f(parameter)h(and)e(v)-5 b(ariable)630
-3367 y(expansion,)25 b(arithmetic)g(expansion,)g(command)e(and)g(pro)s
-(cess)g(substitution,)i(and)e(quote)630 3477 y(remo)m(v)-5
-b(al.)630 3614 y(In)45 b(the)g(\014rst)g(form)g(ab)s(o)m(v)m(e,)50
+3994 y(expansion,)25 b(arithmetic)g(expansion,)g(command)e(and)g(pro)s
+(cess)g(substitution,)i(and)e(quote)630 4103 y(remo)m(v)-5
+b(al.)630 4260 y(In)45 b(the)g(\014rst)g(form)g(ab)s(o)m(v)m(e,)50
b(only)c(the)f(\014rst)g(matc)m(h)h(is)f(replaced.)86
-b(If)45 b(there)h(are)g(t)m(w)m(o)630 3724 y(slashes)28
+b(If)45 b(there)h(are)g(t)m(w)m(o)630 4369 y(slashes)28
b(separating)g Fr(parameter)35 b Fu(and)27 b Fr(pattern)g
Fu(\(the)i(second)e(form)g(ab)s(o)m(v)m(e\),)j(all)f(matc)m(hes)630
-3833 y(of)d Fr(pattern)g Fu(are)g(replaced)g(with)f Fr(string)p
+4479 y(of)d Fr(pattern)g Fu(are)g(replaced)g(with)f Fr(string)p
Fu(.)40 b(If)25 b Fr(pattern)h Fu(is)f(preceded)h(b)m(y)f(`)p
-Ft(#)p Fu(')h(\(the)h(third)d(form)630 3943 y(ab)s(o)m(v)m(e\),)32
+Ft(#)p Fu(')h(\(the)h(third)d(form)630 4589 y(ab)s(o)m(v)m(e\),)32
b(it)e(m)m(ust)f(matc)m(h)i(at)f(the)g(b)s(eginning)e(of)i(the)g
(expanded)f(v)-5 b(alue)30 b(of)f Fr(parameter)p Fu(.)41
-b(If)630 4052 y Fr(pattern)28 b Fu(is)g(preceded)g(b)m(y)g(`)p
+b(If)630 4698 y Fr(pattern)28 b Fu(is)g(preceded)g(b)m(y)g(`)p
Ft(\045)p Fu(')g(\(the)h(fourth)e(form)h(ab)s(o)m(v)m(e\),)i(it)f(m)m
-(ust)f(matc)m(h)h(at)g(the)f(end)g(of)630 4162 y(the)j(expanded)e(v)-5
-b(alue)31 b(of)g Fr(parameter)p Fu(.)630 4299 y(If)38
+(ust)f(matc)m(h)h(at)g(the)f(end)g(of)630 4808 y(the)j(expanded)e(v)-5
+b(alue)31 b(of)g Fr(parameter)p Fu(.)630 4964 y(If)38
b(the)g(expansion)g(of)g Fr(string)46 b Fu(is)38 b(n)m(ull,)i(matc)m
(hes)f(of)g Fr(pattern)f Fu(are)g(deleted)h(and)f(the)g(`)p
-Ft(/)p Fu(')630 4408 y(follo)m(wing)32 b Fr(pattern)e
-Fu(ma)m(y)h(b)s(e)f(omitted.)630 4545 y(If)75 b(the)h
+Ft(/)p Fu(')630 5074 y(follo)m(wing)32 b Fr(pattern)e
+Fu(ma)m(y)h(b)s(e)f(omitted.)630 5230 y(If)75 b(the)h
Ft(patsub_replacement)71 b Fu(shell)76 b(option)h(is)e(enabled)h(using)
-g Ft(shopt)e Fu(\(see)630 4655 y(Section)38 b(4.3.2)h([The)f(Shopt)e
+g Ft(shopt)e Fu(\(see)630 5340 y(Section)38 b(4.3.2)h([The)f(Shopt)e
(Builtin],)k(page)e(78\),)j(an)m(y)d(unquoted)e(instances)i(of)g(`)p
-Ft(&)p Fu(')f(in)630 4765 y Fr(string)42 b Fu(are)34
-b(replaced)g(with)g(the)g(matc)m(hing)h(p)s(ortion)e(of)h
-Fr(pattern)p Fu(.)52 b(This)33 b(is)g(in)m(tended)h(to)630
-4874 y(duplicate)d(a)g(common)f Ft(sed)g Fu(idiom.)630
-5011 y(Quoting)f(an)m(y)f(part)h(of)f Fr(string)36 b
-Fu(inhibits)28 b(replacemen)m(t)i(in)e(the)g(expansion)h(of)f(the)h
-(quoted)630 5121 y(p)s(ortion,)36 b(including)f(replacemen)m(t)h
-(strings)f(stored)g(in)g(shell)g(v)-5 b(ariables.)56
-b(Bac)m(kslash)36 b(es-)630 5230 y(cap)s(es)d(`)p Ft(&)p
-Fu(')g(in)g Fr(string)8 b Fu(;)34 b(the)f(bac)m(kslash)h(is)f(remo)m(v)
-m(ed)h(in)f(order)f(to)i(p)s(ermit)e(a)i(literal)g(`)p
-Ft(&)p Fu(')f(in)630 5340 y(the)40 b(replacemen)m(t)h(string.)69
-b(Users)40 b(should)f(tak)m(e)i(care)g(if)f Fr(string)47
-b Fu(is)40 b(double-quoted)g(to)p eop end
+Ft(&)p Fu(')f(in)p eop end
%%Page: 34 40
-TeXDict begin 34 39 bop 150 -116 a Fu(Chapter)30 b(3:)h(Basic)g(Shell)g
-(F)-8 b(eatures)2256 b(34)630 299 y(a)m(v)m(oid)37 b(un)m(w)m(an)m(ted)
-f(in)m(teractions)i(b)s(et)m(w)m(een)e(the)g(bac)m(kslash)h(and)e
-(double-quoting,)j(since)630 408 y(bac)m(kslash)31 b(has)f(sp)s(ecial)h
-(meaning)f(within)g(double)f(quotes.)42 b(P)m(attern)31
-b(substitution)f(p)s(er-)630 518 y(forms)e(the)h(c)m(hec)m(k)i(for)d
-(unquoted)g(`)p Ft(&)p Fu(')h(after)g(expanding)g Fr(string)p
-Fu(,)g(so)g(users)f(should)g(ensure)630 628 y(to)33 b(prop)s(erly)e
-(quote)i(an)m(y)f(o)s(ccurrences)g(of)h(`)p Ft(&)p Fu(')f(they)g(w)m
-(an)m(t)h(to)g(b)s(e)f(tak)m(en)h(literally)h(in)e(the)630
-737 y(replacemen)m(t)k(and)e(ensure)g(an)m(y)h(instances)g(of)g(`)p
-Ft(&)p Fu(')f(they)h(w)m(an)m(t)g(to)h(b)s(e)e(replaced)h(are)g(un-)630
-847 y(quoted.)630 1016 y(F)-8 b(or)31 b(instance,)870
-1186 y Ft(var=abcdef)870 1295 y(rep='&)46 b(')870 1405
-y(echo)h(${var/abc/&)d(})870 1514 y(echo)j("${var/abc/&)d(}")870
-1624 y(echo)j(${var/abc/$rep})870 1733 y(echo)g("${var/abc/$rep}")630
-1903 y Fu(will)31 b(displa)m(y)f(four)g(lines)h(of)f
-Ft(")p Fu(ab)s(c)g(def)p Ft(")p Fu(,)g(while)870 2072
-y Ft(var=abcdef)870 2182 y(rep='&)46 b(')870 2291 y(echo)h
-(${var/abc/\\&)d(})870 2401 y(echo)j("${var/abc/\\&)d(}")870
-2511 y(echo)j(${var/abc/"&)d("})870 2620 y(echo)j(${var/abc/"$rep"})630
-2790 y Fu(will)34 b(displa)m(y)g(four)g(lines)g(of)g
-Ft(")p Fu(&)f(def)p Ft(")p Fu(.)51 b(Lik)m(e)35 b(the)f(pattern)g(remo)
-m(v)-5 b(al)35 b(op)s(erators,)g(double)630 2899 y(quotes)23
+TeXDict begin 34 39 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(34)630 299
+y Fr(string)42 b Fu(are)34 b(replaced)g(with)g(the)g(matc)m(hing)h(p)s
+(ortion)e(of)h Fr(pattern)p Fu(.)52 b(This)33 b(is)g(in)m(tended)h(to)
+630 408 y(duplicate)d(a)g(common)f Ft(sed)g Fu(idiom.)630
+536 y(Quoting)f(an)m(y)f(part)h(of)f Fr(string)36 b Fu(inhibits)28
+b(replacemen)m(t)i(in)e(the)g(expansion)h(of)f(the)h(quoted)630
+646 y(p)s(ortion,)36 b(including)f(replacemen)m(t)h(strings)f(stored)g
+(in)g(shell)g(v)-5 b(ariables.)56 b(Bac)m(kslash)36 b(es-)630
+756 y(cap)s(es)d(`)p Ft(&)p Fu(')g(in)g Fr(string)8 b
+Fu(;)34 b(the)f(bac)m(kslash)h(is)f(remo)m(v)m(ed)h(in)f(order)f(to)i
+(p)s(ermit)e(a)i(literal)g(`)p Ft(&)p Fu(')f(in)630 865
+y(the)40 b(replacemen)m(t)h(string.)69 b(Users)40 b(should)f(tak)m(e)i
+(care)g(if)f Fr(string)47 b Fu(is)40 b(double-quoted)g(to)630
+975 y(a)m(v)m(oid)d(un)m(w)m(an)m(ted)f(in)m(teractions)i(b)s(et)m(w)m
+(een)e(the)g(bac)m(kslash)h(and)e(double-quoting,)j(since)630
+1084 y(bac)m(kslash)31 b(has)f(sp)s(ecial)h(meaning)f(within)g(double)f
+(quotes.)42 b(P)m(attern)31 b(substitution)f(p)s(er-)630
+1194 y(forms)e(the)h(c)m(hec)m(k)i(for)d(unquoted)g(`)p
+Ft(&)p Fu(')h(after)g(expanding)g Fr(string)p Fu(,)g(so)g(users)f
+(should)g(ensure)630 1303 y(to)33 b(prop)s(erly)e(quote)i(an)m(y)f(o)s
+(ccurrences)g(of)h(`)p Ft(&)p Fu(')f(they)g(w)m(an)m(t)h(to)g(b)s(e)f
+(tak)m(en)h(literally)h(in)e(the)630 1413 y(replacemen)m(t)k(and)e
+(ensure)g(an)m(y)h(instances)g(of)g(`)p Ft(&)p Fu(')f(they)h(w)m(an)m
+(t)g(to)h(b)s(e)e(replaced)h(are)g(un-)630 1523 y(quoted.)630
+1650 y(F)-8 b(or)31 b(instance,)870 1778 y Ft(var=abcdef)870
+1888 y(rep='&)46 b(')870 1998 y(echo)h(${var/abc/&)d(})870
+2107 y(echo)j("${var/abc/&)d(}")870 2217 y(echo)j(${var/abc/$rep})870
+2326 y(echo)g("${var/abc/$rep}")630 2454 y Fu(will)31
+b(displa)m(y)f(four)g(lines)h(of)f Ft(")p Fu(ab)s(c)g(def)p
+Ft(")p Fu(,)g(while)870 2582 y Ft(var=abcdef)870 2692
+y(rep='&)46 b(')870 2801 y(echo)h(${var/abc/\\&)d(})870
+2911 y(echo)j("${var/abc/\\&)d(}")870 3020 y(echo)j(${var/abc/"&)d("})
+870 3130 y(echo)j(${var/abc/"$rep"})630 3258 y Fu(will)34
+b(displa)m(y)g(four)g(lines)g(of)g Ft(")p Fu(&)f(def)p
+Ft(")p Fu(.)51 b(Lik)m(e)35 b(the)f(pattern)g(remo)m(v)-5
+b(al)35 b(op)s(erators,)g(double)630 3367 y(quotes)23
b(surrounding)c(the)k(replacemen)m(t)g(string)f(quote)h(the)f(expanded)
-f(c)m(haracters,)26 b(while)630 3009 y(double)43 b(quotes)i(enclosing)f
+f(c)m(haracters,)26 b(while)630 3477 y(double)43 b(quotes)i(enclosing)f
(the)g(en)m(tire)h(parameter)f(substitution)f(do)h(not,)k(since)c(the)
-630 3118 y(expansion)e(is)h(p)s(erformed)e(in)h(a)h(con)m(text)h(that)f
+630 3587 y(expansion)e(is)h(p)s(erformed)e(in)h(a)h(con)m(text)h(that)f
(do)s(esn't)f(tak)m(e)i(an)m(y)f(enclosing)g(double)630
-3228 y(quotes)31 b(in)m(to)g(accoun)m(t.)630 3397 y(Since)24
+3696 y(quotes)31 b(in)m(to)g(accoun)m(t.)630 3824 y(Since)24
b(bac)m(kslash)i(can)e(escap)s(e)h(`)p Ft(&)p Fu(',)h(it)f(can)g(also)h
(escap)s(e)f(a)f(bac)m(kslash)i(in)e(the)g(replacemen)m(t)630
-3507 y(string.)39 b(This)26 b(means)g(that)h(`)p Ft(\\\\)p
+3934 y(string.)39 b(This)26 b(means)g(that)h(`)p Ft(\\\\)p
Fu(')g(will)f(insert)h(a)f(literal)i(bac)m(kslash)f(in)m(to)h(the)e
-(replacemen)m(t,)630 3616 y(so)31 b(these)f(t)m(w)m(o)i
-Ft(echo)d Fu(commands)870 3786 y Ft(var=abcdef)870 3895
-y(rep='\\\\&xyz')870 4005 y(echo)47 b(${var/abc/\\\\&xyz})870
-4115 y(echo)g(${var/abc/$rep})630 4284 y Fu(will)31 b(b)s(oth)e(output)
-h(`)p Ft(\\abcxyzdef)p Fu('.)630 4453 y(It)g(should)g(rarely)g(b)s(e)g
+(replacemen)m(t,)630 4043 y(so)31 b(these)f(t)m(w)m(o)i
+Ft(echo)d Fu(commands)870 4171 y Ft(var=abcdef)870 4281
+y(rep='\\\\&xyz')870 4390 y(echo)47 b(${var/abc/\\\\&xyz})870
+4500 y(echo)g(${var/abc/$rep})630 4628 y Fu(will)31 b(b)s(oth)e(output)
+h(`)p Ft(\\abcxyzdef)p Fu('.)630 4756 y(It)g(should)g(rarely)g(b)s(e)g
(necessary)h(to)g(enclose)h(only)e Fr(string)38 b Fu(in)30
-b(double)g(quotes.)630 4623 y(If)j(the)h Ft(nocasematch)d
+b(double)g(quotes.)630 4883 y(If)j(the)h Ft(nocasematch)d
Fu(shell)i(option)h(\(see)h(the)f(description)f(of)h
-Ft(shopt)e Fu(in)i(Section)g(4.3.2)630 4732 y([The)23
+Ft(shopt)e Fu(in)i(Section)g(4.3.2)630 4993 y([The)23
b(Shopt)g(Builtin],)j(page)e(78\))h(is)e(enabled,)i(the)f(matc)m(h)g
-(is)g(p)s(erformed)e(without)h(regard)630 4842 y(to)31
+(is)g(p)s(erformed)e(without)h(regard)630 5103 y(to)31
b(the)g(case)g(of)g(alphab)s(etic)g(c)m(haracters.)630
-5011 y(If)24 b Fr(parameter)31 b Fu(is)24 b(`)p Ft(@)p
+5230 y(If)24 b Fr(parameter)31 b Fu(is)24 b(`)p Ft(@)p
Fu(')h(or)f(`)p Ft(*)p Fu(',)i(the)e(substitution)g(op)s(eration)h(is)f
-(applied)g(to)h(eac)m(h)g(p)s(ositional)630 5121 y(parameter)35
+(applied)g(to)h(eac)m(h)g(p)s(ositional)630 5340 y(parameter)35
b(in)f(turn,)g(and)g(the)g(expansion)g(is)g(the)h(resultan)m(t)g(list.)
-53 b(If)34 b Fr(parameter)41 b Fu(is)34 b(an)630 5230
-y(arra)m(y)e(v)-5 b(ariable)32 b(subscripted)e(with)h(`)p
-Ft(@)p Fu(')g(or)h(`)p Ft(*)p Fu(',)g(the)f(substitution)g(op)s
-(eration)h(is)f(applied)630 5340 y(to)g(eac)m(h)h(mem)m(b)s(er)d(of)i
-(the)f(arra)m(y)h(in)f(turn,)g(and)g(the)g(expansion)h(is)f(the)g
-(resultan)m(t)i(list.)p eop end
+53 b(If)34 b Fr(parameter)41 b Fu(is)34 b(an)p eop end
%%Page: 35 41
TeXDict begin 35 40 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(35)150 299
-y Ft(${)p Fj(parameter)p Ft(^)p Fj(pattern)p Ft(})150
-408 y(${)p Fj(parameter)p Ft(^^)p Fj(pattern)p Ft(})150
-518 y(${)p Fj(parameter)p Ft(,)p Fj(pattern)p Ft(})150
-628 y(${)p Fj(parameter)p Ft(,,)p Fj(pattern)p Ft(})630
-737 y Fu(This)60 b(expansion)g(mo)s(di\014es)g(the)g(case)i(of)e
-(alphab)s(etic)h(c)m(haracters)h(in)e Fr(parameter)p
-Fu(.)630 847 y(First,)50 b(the)d Fr(pattern)f Fu(is)g(expanded)f(to)i
-(pro)s(duce)d(a)j(pattern)f(as)g(describ)s(ed)f(b)s(elo)m(w)h(in)630
-956 y(Section)31 b(3.5.8.1)i([P)m(attern)f(Matc)m(hing],)g(page)f(39.)
-630 1095 y Ft(Bash)43 b Fu(then)g(examines)i(c)m(haracters)g(in)e(the)h
-(expanded)g(v)-5 b(alue)44 b(of)g Fr(parameter)51 b Fu(against)630
-1204 y Fr(pattern)44 b Fu(as)g(describ)s(ed)e(b)s(elo)m(w.)81
-b(If)43 b(a)h(c)m(haracter)h(matc)m(hes)g(the)f(pattern,)j(its)d(case)h
-(is)630 1314 y(con)m(v)m(erted.)d(The)27 b(pattern)i(should)e(not)i
-(attempt)g(to)h(matc)m(h)f(more)f(than)g(one)h(c)m(haracter.)630
-1452 y(Using)e(`)p Ft(^)p Fu(')g(con)m(v)m(erts)i(lo)m(w)m(ercase)g
-(letters)f(matc)m(hing)g Fr(pattern)f Fu(to)h(upp)s(ercase;)f(`)p
-Ft(,)p Fu(')g(con)m(v)m(erts)630 1562 y(matc)m(hing)34
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(35)630 299
+y(arra)m(y)32 b(v)-5 b(ariable)32 b(subscripted)e(with)h(`)p
+Ft(@)p Fu(')g(or)h(`)p Ft(*)p Fu(',)g(the)f(substitution)g(op)s
+(eration)h(is)f(applied)630 408 y(to)g(eac)m(h)h(mem)m(b)s(er)d(of)i
+(the)f(arra)m(y)h(in)f(turn,)g(and)g(the)g(expansion)h(is)f(the)g
+(resultan)m(t)i(list.)150 587 y Ft(${)p Fj(parameter)p
+Ft(^)p Fj(pattern)p Ft(})150 697 y(${)p Fj(parameter)p
+Ft(^^)p Fj(pattern)p Ft(})150 806 y(${)p Fj(parameter)p
+Ft(,)p Fj(pattern)p Ft(})150 916 y(${)p Fj(parameter)p
+Ft(,,)p Fj(pattern)p Ft(})630 1026 y Fu(This)60 b(expansion)g(mo)s
+(di\014es)g(the)g(case)i(of)e(alphab)s(etic)h(c)m(haracters)h(in)e
+Fr(parameter)p Fu(.)630 1135 y(First,)50 b(the)d Fr(pattern)f
+Fu(is)g(expanded)f(to)i(pro)s(duce)d(a)j(pattern)f(as)g(describ)s(ed)f
+(b)s(elo)m(w)h(in)630 1245 y(Section)31 b(3.5.8.1)i([P)m(attern)f(Matc)
+m(hing],)g(page)f(39.)630 1389 y Ft(Bash)43 b Fu(then)g(examines)i(c)m
+(haracters)g(in)e(the)h(expanded)g(v)-5 b(alue)44 b(of)g
+Fr(parameter)51 b Fu(against)630 1499 y Fr(pattern)44
+b Fu(as)g(describ)s(ed)e(b)s(elo)m(w.)81 b(If)43 b(a)h(c)m(haracter)h
+(matc)m(hes)g(the)f(pattern,)j(its)d(case)h(is)630 1608
+y(con)m(v)m(erted.)d(The)27 b(pattern)i(should)e(not)i(attempt)g(to)h
+(matc)m(h)f(more)f(than)g(one)h(c)m(haracter.)630 1752
+y(Using)e(`)p Ft(^)p Fu(')g(con)m(v)m(erts)i(lo)m(w)m(ercase)g(letters)
+f(matc)m(hing)g Fr(pattern)f Fu(to)h(upp)s(ercase;)f(`)p
+Ft(,)p Fu(')g(con)m(v)m(erts)630 1862 y(matc)m(hing)34
b(upp)s(ercase)d(letters)j(to)g(lo)m(w)m(ercase.)49 b(The)32
b(`)p Ft(^)p Fu(')h(and)f(`)p Ft(,)p Fu(')h(v)-5 b(arian)m(ts)33
-b(examine)h(the)630 1672 y(\014rst)27 b(c)m(haracter)j(in)e(the)g
+b(examine)h(the)630 1972 y(\014rst)27 b(c)m(haracter)j(in)e(the)g
(expanded)f(v)-5 b(alue)29 b(and)e(con)m(v)m(ert)j(its)f(case)g(if)f
-(it)g(matc)m(hes)i Fr(pattern)p Fu(;)630 1781 y(the)41
+(it)g(matc)m(hes)i Fr(pattern)p Fu(;)630 2081 y(the)41
b(`)p Ft(^^)p Fu(')g(and)f(`)p Ft(,,)p Fu(')g(v)-5 b(arian)m(ts)42
b(examine)f(all)h(c)m(haracters)g(in)e(the)h(expanded)f(v)-5
-b(alue)42 b(and)630 1891 y(con)m(v)m(ert)33 b(eac)m(h)g(one)f(that)g
+b(alue)42 b(and)630 2191 y(con)m(v)m(ert)33 b(eac)m(h)g(one)f(that)g
(matc)m(hes)h Fr(pattern)p Fu(.)44 b(If)32 b Fr(pattern)f
-Fu(is)h(omitted,)h(it)f(is)g(treated)h(lik)m(e)630 2000
+Fu(is)h(omitted,)h(it)f(is)g(treated)h(lik)m(e)630 2300
y(a)e(`)p Ft(?)p Fu(',)g(whic)m(h)f(matc)m(hes)h(ev)m(ery)g(c)m
-(haracter.)630 2139 y(If)23 b Fr(parameter)31 b Fu(is)24
+(haracter.)630 2445 y(If)23 b Fr(parameter)31 b Fu(is)24
b(`)p Ft(@)p Fu(')g(or)g(`)p Ft(*)p Fu(',)h(the)f(case)h(mo)s
(di\014cation)f(op)s(eration)g(is)g(applied)g(to)g(eac)m(h)h(p)s(osi-)
-630 2248 y(tional)h(parameter)e(in)h(turn,)f(and)g(the)h(expansion)f
+630 2554 y(tional)h(parameter)e(in)h(turn,)f(and)g(the)h(expansion)f
(is)g(the)h(resultan)m(t)g(list.)40 b(If)23 b Fr(parameter)32
-b Fu(is)630 2358 y(an)e(arra)m(y)g(v)-5 b(ariable)31
+b Fu(is)630 2664 y(an)e(arra)m(y)g(v)-5 b(ariable)31
b(subscripted)d(with)i(`)p Ft(@)p Fu(')g(or)f(`)p Ft(*)p
Fu(',)i(the)f(case)g(mo)s(di\014cation)h(op)s(eration)f(is)630
-2468 y(applied)d(to)g(eac)m(h)h(mem)m(b)s(er)e(of)h(the)g(arra)m(y)g
+2773 y(applied)d(to)g(eac)m(h)h(mem)m(b)s(er)e(of)h(the)g(arra)m(y)g
(in)g(turn,)g(and)f(the)h(expansion)f(is)h(the)g(resultan)m(t)630
-2577 y(list.)150 2744 y Ft(${)p Fj(parameter)p Ft(@)p
-Fj(operator)p Ft(})630 2854 y Fu(The)h(expansion)h(is)f(either)h(a)g
+2883 y(list.)150 3062 y Ft(${)p Fj(parameter)p Ft(@)p
+Fj(operator)p Ft(})630 3171 y Fu(The)h(expansion)h(is)f(either)h(a)g
(transformation)g(of)g(the)g(v)-5 b(alue)29 b(of)g Fr(parameter)35
-b Fu(or)29 b(informa-)630 2964 y(tion)e(ab)s(out)f Fr(parameter)33
+b Fu(or)29 b(informa-)630 3281 y(tion)e(ab)s(out)f Fr(parameter)33
b Fu(itself,)28 b(dep)s(ending)c(on)i(the)h(v)-5 b(alue)26
b(of)h Fr(op)s(erator)p Fu(.)39 b(Eac)m(h)27 b Fr(op)s(erator)630
-3073 y Fu(is)j(a)h(single)g(letter:)630 3240 y Ft(U)432
+3390 y Fu(is)j(a)h(single)g(letter:)630 3569 y Ft(U)432
b Fu(The)31 b(expansion)g(is)g(a)g(string)h(that)f(is)h(the)f(v)-5
b(alue)32 b(of)f Fr(parameter)38 b Fu(with)31 b(lo)m(w-)1110
-3350 y(ercase)g(alphab)s(etic)g(c)m(haracters)h(con)m(v)m(erted)g(to)f
-(upp)s(ercase.)630 3517 y Ft(u)432 b Fu(The)34 b(expansion)g(is)g(a)h
+3679 y(ercase)g(alphab)s(etic)g(c)m(haracters)h(con)m(v)m(erted)g(to)f
+(upp)s(ercase.)630 3858 y Ft(u)432 b Fu(The)34 b(expansion)g(is)g(a)h
(string)f(that)h(is)g(the)f(v)-5 b(alue)35 b(of)f Fr(parameter)42
-b Fu(with)34 b(the)1110 3627 y(\014rst)c(c)m(haracter)i(con)m(v)m
+b Fu(with)34 b(the)1110 3967 y(\014rst)c(c)m(haracter)i(con)m(v)m
(erted)f(to)h(upp)s(ercase,)d(if)i(it)g(is)f(alphab)s(etic.)630
-3794 y Ft(L)432 b Fu(The)33 b(expansion)h(is)g(a)g(string)g(that)h(is)f
+4146 y Ft(L)432 b Fu(The)33 b(expansion)h(is)g(a)g(string)g(that)h(is)f
(the)g(v)-5 b(alue)34 b(of)g Fr(parameter)41 b Fu(with)34
-b(up-)1110 3904 y(p)s(ercase)c(alphab)s(etic)h(c)m(haracters)h(con)m(v)
-m(erted)g(to)f(lo)m(w)m(ercase.)630 4071 y Ft(Q)432 b
+b(up-)1110 4256 y(p)s(ercase)c(alphab)s(etic)h(c)m(haracters)h(con)m(v)
+m(erted)g(to)f(lo)m(w)m(ercase.)630 4434 y Ft(Q)432 b
Fu(The)30 b(expansion)h(is)g(a)g(string)f(that)i(is)f(the)g(v)-5
b(alue)31 b(of)g Fr(parameter)37 b Fu(quoted)31 b(in)1110
-4181 y(a)g(format)f(that)h(can)g(b)s(e)f(reused)f(as)i(input.)630
-4348 y Ft(E)432 b Fu(The)27 b(expansion)g(is)g(a)g(string)h(that)f(is)h
+4544 y(a)g(format)f(that)h(can)g(b)s(e)f(reused)f(as)i(input.)630
+4723 y Ft(E)432 b Fu(The)27 b(expansion)g(is)g(a)g(string)h(that)f(is)h
(the)f(v)-5 b(alue)28 b(of)f Fr(parameter)34 b Fu(with)27
-b(bac)m(k-)1110 4457 y(slash)e(escap)s(e)h(sequences)f(expanded)g(as)g
+b(bac)m(k-)1110 4832 y(slash)e(escap)s(e)h(sequences)f(expanded)g(as)g
(with)g(the)h Ft($'...)o(')e Fu(quoting)i(mec)m(h-)1110
-4567 y(anism.)630 4734 y Ft(P)432 b Fu(The)22 b(expansion)h(is)g(a)g
+4942 y(anism.)630 5121 y Ft(P)432 b Fu(The)22 b(expansion)h(is)g(a)g
(string)g(that)g(is)g(the)g(result)g(of)g(expanding)f(the)h(v)-5
-b(alue)24 b(of)1110 4844 y Fr(parameter)31 b Fu(as)24
+b(alue)24 b(of)1110 5230 y Fr(parameter)31 b Fu(as)24
b(if)f(it)h(w)m(ere)g(a)g(prompt)f(string)h(\(see)g(Section)h(6.9)g
-([Con)m(trolling)1110 4954 y(the)31 b(Prompt],)f(page)h(114\).)630
-5121 y Ft(A)432 b Fu(The)33 b(expansion)h(is)g(a)g(string)g(in)f(the)h
-(form)g(of)g(an)f(assignmen)m(t)i(statemen)m(t)1110 5230
-y(or)d Ft(declare)e Fu(command)i(that,)i(if)e(ev)-5 b(aluated,)34
-b(recreates)f Fr(parameter)39 b Fu(with)1110 5340 y(its)31
-b(attributes)g(and)e(v)-5 b(alue.)p eop end
+([Con)m(trolling)1110 5340 y(the)31 b(Prompt],)f(page)h(114\).)p
+eop end
%%Page: 36 42
TeXDict begin 36 41 bop 150 -116 a Fu(Chapter)30 b(3:)41
b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(36)630 299
-y Ft(K)432 b Fu(Pro)s(duces)33 b(a)i(p)s(ossibly-quoted)e(v)m(ersion)i
-(of)f(the)h(v)-5 b(alue)34 b(of)h Fr(parameter)p Fu(,)g(ex-)1110
-408 y(cept)46 b(that)h(it)f(prin)m(ts)f(the)h(v)-5 b(alues)47
+y Ft(A)432 b Fu(The)33 b(expansion)h(is)g(a)g(string)g(in)f(the)h(form)
+g(of)g(an)f(assignmen)m(t)i(statemen)m(t)1110 408 y(or)d
+Ft(declare)e Fu(command)i(that,)i(if)e(ev)-5 b(aluated,)34
+b(recreates)f Fr(parameter)39 b Fu(with)1110 518 y(its)31
+b(attributes)g(and)e(v)-5 b(alue.)630 675 y Ft(K)432
+b Fu(Pro)s(duces)33 b(a)i(p)s(ossibly-quoted)e(v)m(ersion)i(of)f(the)h
+(v)-5 b(alue)34 b(of)h Fr(parameter)p Fu(,)g(ex-)1110
+784 y(cept)46 b(that)h(it)f(prin)m(ts)f(the)h(v)-5 b(alues)47
b(of)f(indexed)f(and)g(asso)s(ciativ)m(e)k(arra)m(ys)1110
-518 y(as)37 b(a)g(sequence)f(of)h(quoted)g(k)m(ey-v)-5
+894 y(as)37 b(a)g(sequence)f(of)h(quoted)g(k)m(ey-v)-5
b(alue)38 b(pairs)e(\(see)h(Section)h(6.7)f([Arra)m(ys],)1110
-628 y(page)29 b(110\).)41 b(The)28 b(k)m(eys)g(and)f(v)-5
+1003 y(page)29 b(110\).)41 b(The)28 b(k)m(eys)g(and)f(v)-5
b(alues)29 b(are)f(quoted)g(in)f(a)i(format)f(that)g(can)h(b)s(e)1110
-737 y(reused)h(as)g(input.)630 896 y Ft(a)432 b Fu(The)30
+1113 y(reused)h(as)g(input.)630 1270 y Ft(a)432 b Fu(The)30
b(expansion)g(is)g(a)h(string)f(consisting)h(of)g(\015ag)g(v)-5
-b(alues)30 b(represen)m(ting)h Fr(pa-)1110 1006 y(rameter)7
-b Fu('s)31 b(attributes.)630 1165 y Ft(k)432 b Fu(Lik)m(e)29
+b(alues)30 b(represen)m(ting)h Fr(pa-)1110 1379 y(rameter)7
+b Fu('s)31 b(attributes.)630 1536 y Ft(k)432 b Fu(Lik)m(e)29
b(the)g(`)p Ft(K)p Fu(')g(transformation,)g(but)f(expands)g(the)g(k)m
-(eys)i(and)d(v)-5 b(alues)29 b(of)g(in-)1110 1275 y(dexed)c(and)f(asso)
+(eys)i(and)d(v)-5 b(alues)29 b(of)g(in-)1110 1646 y(dexed)c(and)f(asso)
s(ciativ)m(e)k(arra)m(ys)d(to)h(separate)f(w)m(ords)g(after)g(w)m(ord)g
-(splitting.)630 1434 y(If)k Fr(parameter)37 b Fu(is)30
+(splitting.)630 1802 y(If)k Fr(parameter)37 b Fu(is)30
b(`)p Ft(@)p Fu(')g(or)g(`)p Ft(*)p Fu(',)g(the)g(op)s(eration)g(is)g
(applied)f(to)i(eac)m(h)g(p)s(ositional)f(parameter)630
-1543 y(in)24 b(turn,)g(and)f(the)h(expansion)g(is)g(the)g(resultan)m(t)
+1912 y(in)24 b(turn,)g(and)f(the)h(expansion)g(is)g(the)g(resultan)m(t)
h(list.)39 b(If)23 b Fr(parameter)31 b Fu(is)24 b(an)g(arra)m(y)g(v)-5
-b(ariable)630 1653 y(subscripted)24 b(with)h(`)p Ft(@)p
+b(ariable)630 2021 y(subscripted)24 b(with)h(`)p Ft(@)p
Fu(')h(or)g(`)p Ft(*)p Fu(',)h(the)e(op)s(eration)h(is)g(applied)f(to)h
-(eac)m(h)h(mem)m(b)s(er)e(of)h(the)f(arra)m(y)630 1763
+(eac)m(h)h(mem)m(b)s(er)e(of)h(the)f(arra)m(y)630 2131
y(in)30 b(turn,)g(and)f(the)i(expansion)f(is)h(the)f(resultan)m(t)h
-(list.)630 1897 y(The)c(result)h(of)g(the)f(expansion)h(is)g(sub)5
+(list.)630 2264 y(The)c(result)h(of)g(the)f(expansion)h(is)g(sub)5
b(ject)27 b(to)h(w)m(ord)g(splitting)g(and)f(\014lename)h(expansion)630
-2007 y(as)j(describ)s(ed)e(b)s(elo)m(w.)150 2206 y Fk(3.5.4)63
-b(Command)41 b(Substitution)150 2352 y Fu(Command)24
+2374 y(as)j(describ)s(ed)e(b)s(elo)m(w.)150 2570 y Fk(3.5.4)63
+b(Command)41 b(Substitution)150 2717 y Fu(Command)24
b(substitution)h(allo)m(ws)h(the)f(output)g(of)g(a)g(command)g(to)h
-(replace)g(the)f(command)g(itself.)39 b(The)150 2462
+(replace)g(the)f(command)g(itself.)39 b(The)150 2827
y(standard)30 b(form)f(of)i(command)f(substitution)g(o)s(ccurs)g(when)g
-(a)g(command)h(is)f(enclosed)h(as)g(follo)m(ws:)390 2596
-y Ft($\()p Fj(command)p Ft(\))150 2731 y Fu(or)f(\(deprecated\))390
-2865 y Ft(`)p Fj(command)p Ft(`.)150 3000 y Fu(Bash)24
+(a)g(command)h(is)f(enclosed)h(as)g(follo)m(ws:)390 2960
+y Ft($\()p Fj(command)p Ft(\))150 3093 y Fu(or)f(\(deprecated\))390
+3226 y Ft(`)p Fj(command)p Ft(`.)150 3359 y Fu(Bash)24
b(p)s(erforms)e(command)i(substitution)f(b)m(y)h(executing)h
Fr(command)i Fu(in)c(a)h(subshell)f(en)m(vironmen)m(t)i(and)150
-3109 y(replacing)35 b(the)f(command)g(substitution)g(with)f(the)i
+3469 y(replacing)35 b(the)f(command)g(substitution)g(with)f(the)i
(standard)e(output)g(of)i(the)f(command,)h(with)f(an)m(y)150
-3219 y(trailing)j(newlines)f(deleted.)58 b(Em)m(b)s(edded)34
+3578 y(trailing)j(newlines)f(deleted.)58 b(Em)m(b)s(edded)34
b(newlines)i(are)g(not)g(deleted,)j(but)c(they)h(ma)m(y)h(b)s(e)e(remo)
-m(v)m(ed)150 3328 y(during)40 b(w)m(ord)i(splitting.)75
+m(v)m(ed)150 3688 y(during)40 b(w)m(ord)i(splitting.)75
b(The)41 b(command)g(substitution)g Ft($\(cat)29 b Fj(file)p
Ft(\))40 b Fu(can)i(b)s(e)f(replaced)h(b)m(y)g(the)150
-3438 y(equiv)-5 b(alen)m(t)32 b(but)d(faster)i Ft($\(<)f
-Fj(file)p Ft(\))p Fu(.)275 3572 y(With)h(the)h(old-st)m(yle)h(bac)m
+3798 y(equiv)-5 b(alen)m(t)32 b(but)d(faster)i Ft($\(<)f
+Fj(file)p Ft(\))p Fu(.)275 3931 y(With)h(the)h(old-st)m(yle)h(bac)m
(kquote)g(form)e(of)h(substitution,)f(bac)m(kslash)h(retains)g(its)g
-(literal)h(meaning)150 3682 y(except)k(when)d(follo)m(w)m(ed)k(b)m(y)d
+(literal)h(meaning)150 4040 y(except)k(when)d(follo)m(w)m(ed)k(b)m(y)d
(`)p Ft($)p Fu(',)j(`)p Ft(`)p Fu(',)f(or)f(`)p Ft(\\)p
Fu('.)57 b(The)35 b(\014rst)g(bac)m(kquote)i(not)f(preceded)g(b)m(y)f
-(a)h(bac)m(kslash)150 3791 y(terminates)k(the)e(command)h
+(a)h(bac)m(kslash)150 4150 y(terminates)k(the)e(command)h
(substitution.)65 b(When)39 b(using)f(the)h Ft($\()p
Fj(command)p Ft(\))c Fu(form,)41 b(all)e(c)m(haracters)150
-3901 y(b)s(et)m(w)m(een)31 b(the)g(paren)m(theses)f(mak)m(e)i(up)d(the)
+4260 y(b)s(et)m(w)m(een)31 b(the)g(paren)m(theses)f(mak)m(e)i(up)d(the)
h(command;)h(none)f(are)h(treated)g(sp)s(ecially)-8 b(.)275
-4035 y(There)29 b(is)i(an)f(alternate)i(form)e(of)h(command)f
-(substitution:)390 4170 y Ft(${)p Fj(c)47 b(command)p
-Ft(;)e(})150 4304 y Fu(whic)m(h)38 b(executes)i Fr(command)i
+4393 y(There)29 b(is)i(an)f(alternate)i(form)e(of)h(command)f
+(substitution:)390 4526 y Ft(${)p Fj(c)47 b(command)p
+Ft(;)e(})150 4659 y Fu(whic)m(h)38 b(executes)i Fr(command)i
Fu(in)d(the)g(curren)m(t)f(execution)i(en)m(vironmen)m(t)f(and)f
-(captures)h(its)g(output,)150 4414 y(again)31 b(with)f(trailing)i
-(newlines)e(remo)m(v)m(ed.)275 4548 y(The)40 b(c)m(haracter)i
-Fr(c)47 b Fu(follo)m(wing)42 b(the)f(op)s(en)g(brace)g(m)m(ust)f(b)s(e)
-h(a)g(space,)j(tab,)g(newline,)g(or)d(`)p Ft(|)p Fu(',)j(and)150
-4658 y(the)39 b(close)i(brace)e(m)m(ust)g(b)s(e)g(in)g(a)g(p)s(osition)
-h(where)e(a)i(reserv)m(ed)f(w)m(ord)g(ma)m(y)h(app)s(ear)e(\(i.e.,)43
-b(preceded)150 4767 y(b)m(y)32 b(a)g(command)g(terminator)h(suc)m(h)e
-(as)h(semicolon\).)47 b(Bash)32 b(allo)m(ws)i(the)e(close)h(brace)f(to)
-h(b)s(e)e(joined)h(to)150 4877 y(the)f(remaining)g(c)m(haracters)h(in)e
-(the)h(w)m(ord)f(without)h(b)s(eing)f(follo)m(w)m(ed)i(b)m(y)f(a)g
-(shell)f(metac)m(haracter)k(as)d(a)150 4986 y(reserv)m(ed)g(w)m(ord)f
-(w)m(ould)g(usually)g(require.)275 5121 y(An)m(y)j(side)h(e\013ects)h
-(of)e Fr(command)k Fu(tak)m(e)e(e\013ect)h(immediately)e(in)g(the)f
-(curren)m(t)h(execution)h(en)m(viron-)150 5230 y(men)m(t)d(and)g(p)s
-(ersist)f(in)g(the)h(curren)m(t)g(en)m(vironmen)m(t)h(after)f(the)g
-(command)g(completes)h(\(e.g.,)h(the)e Ft(exit)150 5340
-y Fu(builtin)e(exits)h(the)g(shell\).)p eop end
+(captures)h(its)g(output,)150 4768 y(again)31 b(with)f(trailing)i
+(newlines)e(remo)m(v)m(ed.)275 4902 y(The)g(c)m(haracter)j
+Fr(c)k Fu(follo)m(wing)c(the)e(op)s(en)f(brace)i(m)m(ust)f(b)s(e)g(a)g
+(space,)h(tab,)g(newline,)g(`)p Ft(|)p Fu(',)f(or)h(`)p
+Ft(;)p Fu(';)g(and)150 5011 y(the)39 b(close)i(brace)e(m)m(ust)g(b)s(e)
+g(in)g(a)g(p)s(osition)h(where)e(a)i(reserv)m(ed)f(w)m(ord)g(ma)m(y)h
+(app)s(ear)e(\(i.e.,)43 b(preceded)150 5121 y(b)m(y)32
+b(a)g(command)g(terminator)h(suc)m(h)e(as)h(semicolon\).)47
+b(Bash)32 b(allo)m(ws)i(the)e(close)h(brace)f(to)h(b)s(e)e(joined)h(to)
+150 5230 y(the)f(remaining)g(c)m(haracters)h(in)e(the)h(w)m(ord)f
+(without)h(b)s(eing)f(follo)m(w)m(ed)i(b)m(y)f(a)g(shell)f(metac)m
+(haracter)k(as)d(a)150 5340 y(reserv)m(ed)g(w)m(ord)f(w)m(ould)g
+(usually)g(require.)p eop end
%%Page: 37 43
TeXDict begin 37 42 bop 150 -116 a Fu(Chapter)30 b(3:)41
b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(37)275 299
-y(This)31 b(t)m(yp)s(e)i(of)g(command)f(substitution)g(sup)s
+y(An)m(y)33 b(side)h(e\013ects)h(of)e Fr(command)k Fu(tak)m(e)e
+(e\013ect)h(immediately)e(in)g(the)f(curren)m(t)h(execution)h(en)m
+(viron-)150 408 y(men)m(t)d(and)g(p)s(ersist)f(in)g(the)h(curren)m(t)g
+(en)m(vironmen)m(t)h(after)f(the)g(command)g(completes)h(\(e.g.,)h(the)
+e Ft(exit)150 518 y Fu(builtin)e(exits)h(the)g(shell\).)275
+652 y(This)g(t)m(yp)s(e)i(of)g(command)f(substitution)g(sup)s
(er\014cially)g(resem)m(bles)h(executing)h(an)f(unnamed)e(shell)150
-408 y(function:)42 b(lo)s(cal)33 b(v)-5 b(ariables)32
+761 y(function:)42 b(lo)s(cal)33 b(v)-5 b(ariables)32
b(are)g(created)g(as)g(when)e(a)i(shell)g(function)f(is)g(executing,)i
-(and)e(the)h Ft(return)150 518 y Fu(builtin)k(forces)i
+(and)e(the)h Ft(return)150 871 y Fu(builtin)k(forces)i
Fr(command)i Fu(to)e(complete;)j(ho)m(w)m(ev)m(er,)f(the)d(rest)g(of)g
-(the)h(execution)g(en)m(vironmen)m(t,)h(in-)150 628 y(cluding)30
+(the)h(execution)g(en)m(vironmen)m(t,)h(in-)150 980 y(cluding)30
b(the)h(p)s(ositional)g(parameters,)g(is)f(shared)g(with)g(the)h
-(caller.)275 762 y(If)26 b(the)g(\014rst)g(c)m(haracter)i(follo)m(wing)
-g(the)f(op)s(en)f(brace)h(is)f(a)h(`)p Ft(|)p Fu(',)h(the)f(construct)g
-(expands)e(to)j(the)e(v)-5 b(alue)150 871 y(of)24 b(the)g
-Ft(REPLY)e Fu(shell)i(v)-5 b(ariable)24 b(after)g Fr(command)j
-Fu(executes,)g(without)d(remo)m(ving)g(an)m(y)g(trailing)h(newlines,)
-150 981 y(and)h(the)g(standard)f(output)h(of)g Fr(command)k
-Fu(remains)c(the)g(same)h(as)f(in)g(the)g(calling)i(shell.)39
-b(Bash)27 b(creates)150 1091 y Ft(REPLY)33 b Fu(as)j(an)e
-(initially-unset)j(lo)s(cal)f(v)-5 b(ariable)35 b(when)f
-Fr(command)39 b Fu(executes,)e(and)d(restores)i Ft(REPLY)d
-Fu(to)150 1200 y(the)i(v)-5 b(alue)34 b(it)h(had)f(b)s(efore)g(the)h
-(command)f(substitution)g(after)h Fr(command)j Fu(completes,)f(as)d
-(with)h(an)m(y)150 1310 y(lo)s(cal)d(v)-5 b(ariable.)275
-1444 y(F)d(or)23 b(example,)i(this)e(construct)g(expands)f(to)i(`)p
-Ft(12345)p Fu(',)f(and)f(lea)m(v)m(es)j(the)e(shell)g(v)-5
-b(ariable)24 b Ft(X)e Fu(unc)m(hanged)150 1554 y(in)30
-b(the)h(curren)m(t)f(execution)h(en)m(vironmen)m(t:)390
-1797 y Ft(${)47 b(local)g(X=12345)e(;)j(echo)e($X;)h(})150
-1932 y Fu(\(not)28 b(declaring)g Ft(X)f Fu(as)g(lo)s(cal)i(w)m(ould)e
+(caller.)275 1114 y(If)24 b(the)h(\014rst)g(c)m(haracter)h(follo)m
+(wing)h(the)e(op)s(en)g(brace)g(is)g(a)h(`)p Ft(;)p Fu(',)g(the)g
+(construct)f(b)s(eha)m(v)m(es)h(lik)m(e)g(the)f(form)150
+1224 y(ab)s(o)m(v)m(e)37 b(but)e(preserv)m(es)g(an)m(y)h(trailing)h
+(newlines)e(in)h(the)f(output)h(of)f Fr(command)k Fu(instead)d(of)g
+(remo)m(ving)150 1333 y(them.)74 b(This)41 b(form)f(is)i(useful)f(when)
+f(the)i(trailing)g(newlines)f(are)h(signi\014can)m(t)h(and)d(should)h
+(not)h(b)s(e)150 1443 y(stripp)s(ed)29 b(from)h(the)g(command's)h
+(output.)275 1577 y(If)26 b(the)g(\014rst)g(c)m(haracter)i(follo)m
+(wing)g(the)f(op)s(en)f(brace)h(is)f(a)h(`)p Ft(|)p Fu(',)h(the)f
+(construct)g(expands)e(to)j(the)e(v)-5 b(alue)150 1686
+y(of)24 b(the)g Ft(REPLY)e Fu(shell)i(v)-5 b(ariable)24
+b(after)g Fr(command)j Fu(executes,)g(without)d(remo)m(ving)g(an)m(y)g
+(trailing)h(newlines,)150 1796 y(and)h(the)g(standard)f(output)h(of)g
+Fr(command)k Fu(remains)c(the)g(same)h(as)f(in)g(the)g(calling)i
+(shell.)39 b(Bash)27 b(creates)150 1905 y Ft(REPLY)33
+b Fu(as)j(an)e(initially-unset)j(lo)s(cal)f(v)-5 b(ariable)35
+b(when)f Fr(command)39 b Fu(executes,)e(and)d(restores)i
+Ft(REPLY)d Fu(to)150 2015 y(the)i(v)-5 b(alue)34 b(it)h(had)f(b)s
+(efore)g(the)h(command)f(substitution)g(after)h Fr(command)j
+Fu(completes,)f(as)d(with)h(an)m(y)150 2125 y(lo)s(cal)d(v)-5
+b(ariable.)275 2258 y(F)d(or)23 b(example,)i(this)e(construct)g
+(expands)f(to)i(`)p Ft(12345)p Fu(',)f(and)f(lea)m(v)m(es)j(the)e
+(shell)g(v)-5 b(ariable)24 b Ft(X)e Fu(unc)m(hanged)150
+2368 y(in)30 b(the)h(curren)m(t)f(execution)h(en)m(vironmen)m(t:)390
+2611 y Ft(${)47 b(local)g(X=12345)e(;)j(echo)e($X;)h(})150
+2745 y Fu(\(not)28 b(declaring)g Ft(X)f Fu(as)g(lo)s(cal)i(w)m(ould)e
(mo)s(dify)f(its)i(v)-5 b(alue)27 b(in)g(the)h(curren)m(t)f(en)m
-(vironmen)m(t,)i(as)e(with)g(normal)150 2041 y(shell)38
+(vironmen)m(t,)i(as)e(with)g(normal)150 2854 y(shell)38
b(function)g(execution\),)43 b(while)38 b(this)g(construct)h(do)s(es)f
(not)g(require)g(an)m(y)h(output)f(to)h(expand)e(to)150
-2151 y(`)p Ft(12345)p Fu(':)390 2285 y Ft(${|)47 b(REPLY=12345;)d(})150
-2419 y Fu(and)30 b(restores)h Ft(REPLY)e Fu(to)i(the)f(v)-5
+2964 y(`)p Ft(12345)p Fu(':)390 3098 y Ft(${|)47 b(REPLY=12345;)d(})150
+3231 y Fu(and)30 b(restores)h Ft(REPLY)e Fu(to)i(the)f(v)-5
b(alue)31 b(it)g(had)f(b)s(efore)g(the)g(command)g(substitution.)275
-2553 y(Command)22 b(substitutions)g(ma)m(y)i(b)s(e)e(nested.)39
+3365 y(Command)22 b(substitutions)g(ma)m(y)i(b)s(e)e(nested.)39
b(T)-8 b(o)23 b(nest)g(when)f(using)h(the)g(bac)m(kquoted)h(form,)g
-(escap)s(e)150 2663 y(the)31 b(inner)e(bac)m(kquotes)j(with)e(bac)m
-(kslashes.)275 2797 y(If)g(the)h(substitution)g(app)s(ears)f(within)h
+(escap)s(e)150 3474 y(the)31 b(inner)e(bac)m(kquotes)j(with)e(bac)m
+(kslashes.)275 3608 y(If)g(the)h(substitution)g(app)s(ears)f(within)h
(double)f(quotes,)i(Bash)f(do)s(es)g(not)g(p)s(erform)f(w)m(ord)g
-(splitting)150 2907 y(and)g(\014lename)g(expansion)h(on)f(the)g
-(results.)150 3105 y Fk(3.5.5)63 b(Arithmetic)40 b(Expansion)150
-3252 y Fu(Arithmetic)e(expansion)f(ev)-5 b(aluates)38
+(splitting)150 3718 y(and)g(\014lename)g(expansion)h(on)f(the)g
+(results.)150 3915 y Fk(3.5.5)63 b(Arithmetic)40 b(Expansion)150
+4062 y Fu(Arithmetic)e(expansion)f(ev)-5 b(aluates)38
b(an)f(arithmetic)i(expression)d(and)h(substitutes)g(the)g(result.)60
-b(The)150 3362 y(format)31 b(for)f(arithmetic)h(expansion)g(is:)390
-3496 y Ft($\(\()47 b Fj(expression)e Ft(\)\))275 3630
+b(The)150 4172 y(format)31 b(for)f(arithmetic)h(expansion)g(is:)390
+4306 y Ft($\(\()47 b Fj(expression)e Ft(\)\))275 4439
y Fu(The)34 b Fr(expression)h Fu(undergo)s(es)f(the)h(same)h
(expansions)e(as)i(if)f(it)g(w)m(ere)h(within)e(double)h(quotes,)i(but)
-150 3740 y(unescap)s(ed)26 b(double)h(quote)h(c)m(haracters)g(in)f
+150 4549 y(unescap)s(ed)26 b(double)h(quote)h(c)m(haracters)g(in)f
Fr(expression)g Fu(are)h(not)f(treated)h(sp)s(ecially)h(and)d(are)i
-(remo)m(v)m(ed.)150 3849 y(All)f(tok)m(ens)g(in)f(the)g(expression)g
+(remo)m(v)m(ed.)150 4658 y(All)f(tok)m(ens)g(in)f(the)g(expression)g
(undergo)f(parameter)i(and)f(v)-5 b(ariable)27 b(expansion,)g(command)f
-(substitu-)150 3959 y(tion,)j(and)d(quote)i(remo)m(v)-5
+(substitu-)150 4768 y(tion,)j(and)d(quote)i(remo)m(v)-5
b(al.)41 b(The)27 b(result)g(is)h(treated)g(as)g(the)f(arithmetic)i
-(expression)e(to)h(b)s(e)e(ev)-5 b(aluated.)150 4068
+(expression)e(to)h(b)s(e)e(ev)-5 b(aluated.)150 4878
y(Since)37 b(the)g(w)m(a)m(y)g(Bash)g(handles)g(double)f(quotes)h(can)g
(p)s(oten)m(tially)i(result)d(in)h(empt)m(y)g(strings,)i(arith-)150
-4178 y(metic)30 b(expansion)f(treats)h(those)g(as)f(expressions)g(that)
+4987 y(metic)30 b(expansion)f(treats)h(those)g(as)f(expressions)g(that)
h(ev)-5 b(aluate)31 b(to)f(0.)40 b(Arithmetic)30 b(expansions)f(ma)m(y)
-150 4288 y(b)s(e)h(nested.)275 4422 y(The)k(ev)-5 b(aluation)37
+150 5097 y(b)s(e)h(nested.)275 5230 y(The)k(ev)-5 b(aluation)37
b(is)f(p)s(erformed)e(according)i(to)g(the)g(rules)f(listed)h(b)s(elo)m
-(w)g(\(see)g(Section)g(6.5)h([Shell)150 4531 y(Arithmetic],)29
+(w)g(\(see)g(Section)g(6.5)h([Shell)150 5340 y(Arithmetic],)29
b(page)e(107\).)41 b(If)27 b(the)f(expression)h(is)f(in)m(v)-5
-b(alid,)29 b(Bash)d(prin)m(ts)g(a)i(message)f(indicating)h(failure)150
-4641 y(to)23 b(the)g(standard)f(error,)j(do)s(es)d(not)h(p)s(erform)e
-(the)i(substitution,)h(and)f(do)s(es)f(not)h(execute)h(the)f(command)
-150 4751 y(asso)s(ciated)32 b(with)e(the)g(expansion.)150
-4949 y Fk(3.5.6)63 b(Pro)s(cess)42 b(Substitution)150
-5096 y Fu(Pro)s(cess)33 b(substitution)g(allo)m(ws)i(a)e(pro)s(cess's)g
-(input)f(or)h(output)g(to)h(b)s(e)f(referred)f(to)i(using)f(a)g
-(\014lename.)150 5206 y(It)d(tak)m(es)i(the)f(form)f(of)390
-5340 y Ft(<\()p Fj(list)p Ft(\))p eop end
+b(alid,)29 b(Bash)d(prin)m(ts)g(a)i(message)f(indicating)h(failure)p
+eop end
%%Page: 38 44
TeXDict begin 38 43 bop 150 -116 a Fu(Chapter)30 b(3:)41
b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(38)150 299
-y(or)390 448 y Ft(>\()p Fj(list)p Ft(\))150 597 y Fu(The)28
-b(pro)s(cess)h Fr(list)j Fu(is)d(run)e(async)m(hronously)-8
-b(,)30 b(and)e(its)i(input)e(or)h(output)f(app)s(ears)h(as)g(a)g
-(\014lename.)41 b(This)150 707 y(\014lename)31 b(is)f(passed)g(as)h(an)
-f(argumen)m(t)h(to)g(the)f(curren)m(t)g(command)h(as)f(the)h(result)f
-(of)h(the)f(expansion.)275 856 y(If)k(the)i Ft(>\()p
-Fj(list)p Ft(\))d Fu(form)h(is)i(used,)f(writing)h(to)f(the)h(\014le)f
-(pro)m(vides)g(input)f(for)h Fr(list)p Fu(.)56 b(If)35
-b(the)g Ft(<\()p Fj(list)p Ft(\))150 966 y Fu(form)h(is)h(used,)h
-(reading)f(the)g(\014le)g(obtains)g(the)g(output)f(of)h
-Fr(list)p Fu(.)61 b(Note)38 b(that)f(no)g(space)g(ma)m(y)h(app)s(ear)
-150 1075 y(b)s(et)m(w)m(een)c(the)g Ft(<)f Fu(or)h Ft(>)f
+y(to)23 b(the)g(standard)f(error,)j(do)s(es)d(not)h(p)s(erform)e(the)i
+(substitution,)h(and)f(do)s(es)f(not)h(execute)h(the)f(command)150
+408 y(asso)s(ciated)32 b(with)e(the)g(expansion.)150
+602 y Fk(3.5.6)63 b(Pro)s(cess)42 b(Substitution)150
+749 y Fu(Pro)s(cess)33 b(substitution)g(allo)m(ws)i(a)e(pro)s(cess's)g
+(input)f(or)h(output)g(to)h(b)s(e)f(referred)f(to)i(using)f(a)g
+(\014lename.)150 858 y(It)d(tak)m(es)i(the)f(form)f(of)390
+990 y Ft(<\()p Fj(list)p Ft(\))150 1121 y Fu(or)390 1253
+y Ft(>\()p Fj(list)p Ft(\))150 1384 y Fu(The)e(pro)s(cess)h
+Fr(list)j Fu(is)d(run)e(async)m(hronously)-8 b(,)30 b(and)e(its)i
+(input)e(or)h(output)f(app)s(ears)h(as)g(a)g(\014lename.)41
+b(This)150 1494 y(\014lename)31 b(is)f(passed)g(as)h(an)f(argumen)m(t)h
+(to)g(the)f(curren)m(t)g(command)h(as)f(the)h(result)f(of)h(the)f
+(expansion.)275 1625 y(If)k(the)i Ft(>\()p Fj(list)p
+Ft(\))d Fu(form)h(is)i(used,)f(writing)h(to)f(the)h(\014le)f(pro)m
+(vides)g(input)f(for)h Fr(list)p Fu(.)56 b(If)35 b(the)g
+Ft(<\()p Fj(list)p Ft(\))150 1735 y Fu(form)h(is)h(used,)h(reading)f
+(the)g(\014le)g(obtains)g(the)g(output)f(of)h Fr(list)p
+Fu(.)61 b(Note)38 b(that)f(no)g(space)g(ma)m(y)h(app)s(ear)150
+1844 y(b)s(et)m(w)m(een)c(the)g Ft(<)f Fu(or)h Ft(>)f
Fu(and)g(the)h(left)h(paren)m(thesis,)f(otherwise)g(the)g(construct)g
-(w)m(ould)g(b)s(e)f(in)m(terpreted)150 1185 y(as)e(a)f(redirection.)275
-1334 y(Pro)s(cess)j(substitution)h(is)g(supp)s(orted)e(on)h(systems)h
+(w)m(ould)g(b)s(e)f(in)m(terpreted)150 1954 y(as)e(a)f(redirection.)275
+2085 y(Pro)s(cess)j(substitution)h(is)g(supp)s(orted)e(on)h(systems)h
(that)h(supp)s(ort)d(named)h(pip)s(es)g(\()p Fm(fif)n(o)p
-Fu(s\))h(or)g(the)150 1444 y Ft(/dev/fd)28 b Fu(metho)s(d)i(of)h
-(naming)f(op)s(en)g(\014les.)275 1593 y(When)36 b(a)m(v)-5
+Fu(s\))h(or)g(the)150 2195 y Ft(/dev/fd)28 b Fu(metho)s(d)i(of)h
+(naming)f(op)s(en)g(\014les.)275 2326 y(When)36 b(a)m(v)-5
b(ailable,)40 b(pro)s(cess)c(substitution)h(is)f(p)s(erformed)f(sim)m
-(ultaneously)i(with)g(parameter)g(and)150 1703 y(v)-5
+(ultaneously)i(with)g(parameter)g(and)150 2436 y(v)-5
b(ariable)31 b(expansion,)g(command)f(substitution,)g(and)g(arithmetic)
-i(expansion.)150 1917 y Fk(3.5.7)63 b(W)-10 b(ord)41
-b(Splitting)150 2064 y Fu(The)30 b(shell)h(scans)g(the)g(results)f(of)h
+i(expansion.)150 2629 y Fk(3.5.7)63 b(W)-10 b(ord)41
+b(Splitting)150 2776 y Fu(The)30 b(shell)h(scans)g(the)g(results)f(of)h
(parameter)g(expansion,)g(command)g(substitution,)g(and)f(arithmetic)
-150 2173 y(expansion)e(that)i(did)d(not)i(o)s(ccur)f(within)g(double)g
+150 2886 y(expansion)e(that)i(did)d(not)i(o)s(ccur)f(within)g(double)g
(quotes)h(for)g(w)m(ord)f(splitting.)41 b(W)-8 b(ords)29
-b(that)g(w)m(ere)g(not)150 2283 y(expanded)h(are)g(not)h(split.)275
-2432 y(The)d(shell)g(treats)i(eac)m(h)g(c)m(haracter)g(of)f
+b(that)g(w)m(ere)g(not)150 2995 y(expanded)h(are)g(not)h(split.)275
+3127 y(The)d(shell)g(treats)i(eac)m(h)g(c)m(haracter)g(of)f
Ft($IFS)e Fu(as)i(a)g(delimiter,)h(and)e(splits)g(the)h(results)f(of)h
-(the)g(other)150 2542 y(expansions)h(in)m(to)h(\014elds)f(using)g
+(the)g(other)150 3236 y(expansions)h(in)m(to)h(\014elds)f(using)g
(these)h(c)m(haracters)h(as)e(\014eld)g(terminators.)275
-2691 y(An)25 b Fr(IFS)g(whitespace)31 b Fu(c)m(haracter)c(is)f
+3368 y(An)25 b Fr(IFS)g(whitespace)31 b Fu(c)m(haracter)c(is)f
(whitespace)g(as)g(de\014ned)e(ab)s(o)m(v)m(e)j(\(see)f(Chapter)f(2)h
-([De\014nitions],)150 2801 y(page)37 b(3\))g(that)g(app)s(ears)e(in)h
+([De\014nitions],)150 3477 y(page)37 b(3\))g(that)g(app)s(ears)e(in)h
(the)g(v)-5 b(alue)37 b(of)f Ft(IFS)p Fu(.)57 b(Space,)38
b(tab,)g(and)e(newline)g(are)g(alw)m(a)m(ys)i(considered)150
-2910 y(IFS)30 b(whitespace,)h(ev)m(en)g(if)g(they)f(don't)h(app)s(ear)e
+3587 y(IFS)30 b(whitespace,)h(ev)m(en)g(if)g(they)f(don't)h(app)s(ear)e
(in)h(the)h(lo)s(cale's)h Ft(space)d Fu(category)-8 b(.)275
-3059 y(If)26 b Ft(IFS)g Fu(is)h(unset,)h(w)m(ord)e(splitting)i(b)s(eha)
+3718 y(If)26 b Ft(IFS)g Fu(is)h(unset,)h(w)m(ord)e(splitting)i(b)s(eha)
m(v)m(es)g(as)f(if)g(its)g(v)-5 b(alue)28 b(w)m(ere)f
-Ft(<space><tab><newline>)p Fu(,)c(and)150 3169 y(treats)41
+Ft(<space><tab><newline>)p Fu(,)c(and)150 3828 y(treats)41
b(these)f(c)m(haracters)h(as)f(IFS)f(whitespace.)70 b(If)39
b(the)h(v)-5 b(alue)40 b(of)g Ft(IFS)e Fu(is)i(n)m(ull,)i(no)e(w)m(ord)
-f(splitting)150 3279 y(o)s(ccurs,)30 b(but)g(implicit)h(n)m(ull)g
+f(splitting)150 3937 y(o)s(ccurs,)30 b(but)g(implicit)h(n)m(ull)g
(argumen)m(ts)f(\(see)i(b)s(elo)m(w\))f(are)f(still)i(remo)m(v)m(ed.)
-275 3428 y(W)-8 b(ord)43 b(splitting)i(b)s(egins)d(b)m(y)i(remo)m(ving)
+275 4069 y(W)-8 b(ord)43 b(splitting)i(b)s(egins)d(b)m(y)i(remo)m(ving)
g(sequences)g(of)g(IFS)f(whitespace)h(c)m(haracters)h(from)e(the)150
-3537 y(b)s(eginning)h(and)f(end)h(of)g(the)h(results)f(of)g(the)h
+4178 y(b)s(eginning)h(and)f(end)h(of)g(the)h(results)f(of)g(the)h
(previous)e(expansions,)48 b(then)c(splits)g(the)h(remaining)150
-3647 y(w)m(ords.)275 3796 y(If)37 b(the)i(v)-5 b(alue)39
+4288 y(w)m(ords.)275 4420 y(If)37 b(the)i(v)-5 b(alue)39
b(of)f Ft(IFS)g Fu(consists)h(solely)g(of)g(IFS)f(whitespace,)j(an)m(y)
-e(sequence)g(of)f(IFS)g(whitespace)150 3906 y(c)m(haracters)47
+e(sequence)g(of)f(IFS)g(whitespace)150 4529 y(c)m(haracters)47
b(delimits)f(a)g(\014eld,)j(so)d(a)f(\014eld)h(consists)g(of)f(c)m
-(haracters)i(that)f(are)g(not)g(unquoted)e(IFS)150 4015
+(haracters)i(that)f(are)g(not)g(unquoted)e(IFS)150 4639
y(whitespace,)31 b(and)f(n)m(ull)g(\014elds)g(result)h(only)f(from)g
-(quoting.)275 4165 y(If)g Ft(IFS)f Fu(con)m(tains)j(a)f(non-whitespace)
+(quoting.)275 4770 y(If)g Ft(IFS)f Fu(con)m(tains)j(a)f(non-whitespace)
g(c)m(haracter,)i(then)d(an)m(y)h(c)m(haracter)h(in)e(the)h(v)-5
-b(alue)31 b(of)g Ft(IFS)e Fu(that)150 4274 y(is)h(not)h(IFS)f
+b(alue)31 b(of)g Ft(IFS)e Fu(that)150 4880 y(is)h(not)h(IFS)f
(whitespace,)i(along)f(with)f(an)m(y)h(adjacen)m(t)h(IFS)e(whitespace)h
-(c)m(haracters,)h(delimits)f(a)g(\014eld.)150 4384 y(This)i(means)h
+(c)m(haracters,)h(delimits)f(a)g(\014eld.)150 4989 y(This)i(means)h
(that)g(adjacen)m(t)h(non-IFS-whitespace)g(delimiters)f(pro)s(duce)f(a)
-h(n)m(ull)g(\014eld.)51 b(A)34 b(sequence)150 4494 y(of)d(IFS)f
+h(n)m(ull)g(\014eld.)51 b(A)34 b(sequence)150 5099 y(of)d(IFS)f
(whitespace)h(c)m(haracters)g(also)h(delimits)f(a)f(\014eld.)275
-4643 y(Explicit)21 b(n)m(ull)g(argumen)m(ts)g(\()p Ft("")g
+5230 y(Explicit)21 b(n)m(ull)g(argumen)m(ts)g(\()p Ft("")g
Fu(or)g Ft('')p Fu(\))f(are)h(retained)h(and)e(passed)g(to)i(commands)e
-(as)i(empt)m(y)f(strings.)150 4752 y(Unquoted)26 b(implicit)i(n)m(ull)e
+(as)i(empt)m(y)f(strings.)150 5340 y(Unquoted)26 b(implicit)i(n)m(ull)e
(argumen)m(ts,)i(resulting)f(from)f(the)h(expansion)f(of)h(parameters)g
-(that)g(ha)m(v)m(e)h(no)150 4862 y(v)-5 b(alues,)31 b(are)h(remo)m(v)m
-(ed.)42 b(Expanding)30 b(a)h(parameter)g(with)g(no)f(v)-5
-b(alue)32 b(within)e(double)g(quotes)h(pro)s(duces)150
-4972 y(a)g(n)m(ull)f(\014eld,)g(whic)m(h)g(is)h(retained)g(and)e
-(passed)h(to)h(a)g(command)f(as)h(an)f(empt)m(y)h(string.)275
-5121 y(When)j(a)i(quoted)f(n)m(ull)g(argumen)m(t)g(app)s(ears)g(as)g
-(part)g(of)g(a)g(w)m(ord)g(whose)g(expansion)g(is)g(non-n)m(ull,)150
-5230 y(w)m(ord)29 b(splitting)h(remo)m(v)m(es)h(the)e(n)m(ull)g
-(argumen)m(t)h(p)s(ortion,)g(lea)m(ving)h(the)e(non-n)m(ull)g
-(expansion.)40 b(That)30 b(is,)150 5340 y(the)h(w)m(ord)f
-Ft(-d'')f Fu(b)s(ecomes)h Ft(-d)g Fu(after)h(w)m(ord)f(splitting)h(and)
-f(n)m(ull)g(argumen)m(t)h(remo)m(v)-5 b(al.)p eop end
+(that)g(ha)m(v)m(e)h(no)p eop end
%%Page: 39 45
TeXDict begin 39 44 bop 150 -116 a Fu(Chapter)30 b(3:)41
b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(39)150 299
-y Fk(3.5.8)63 b(Filename)41 b(Expansion)150 446 y Fu(After)30
+y(v)-5 b(alues,)31 b(are)h(remo)m(v)m(ed.)42 b(Expanding)30
+b(a)h(parameter)g(with)g(no)f(v)-5 b(alue)32 b(within)e(double)g
+(quotes)h(pro)s(duces)150 408 y(a)g(n)m(ull)f(\014eld,)g(whic)m(h)g(is)
+h(retained)g(and)e(passed)h(to)h(a)g(command)f(as)h(an)f(empt)m(y)h
+(string.)275 544 y(When)j(a)i(quoted)f(n)m(ull)g(argumen)m(t)g(app)s
+(ears)g(as)g(part)g(of)g(a)g(w)m(ord)g(whose)g(expansion)g(is)g(non-n)m
+(ull,)150 654 y(w)m(ord)29 b(splitting)h(remo)m(v)m(es)h(the)e(n)m(ull)
+g(argumen)m(t)h(p)s(ortion,)g(lea)m(ving)h(the)e(non-n)m(ull)g
+(expansion.)40 b(That)30 b(is,)150 763 y(the)h(w)m(ord)f
+Ft(-d'')f Fu(b)s(ecomes)h Ft(-d)g Fu(after)h(w)m(ord)f(splitting)h(and)
+f(n)m(ull)g(argumen)m(t)h(remo)m(v)-5 b(al.)150 964 y
+Fk(3.5.8)63 b(Filename)41 b(Expansion)150 1111 y Fu(After)30
b(w)m(ord)f(splitting,)i(unless)d(the)i Ft(-f)f Fu(option)h(has)f(b)s
(een)g(set)h(\(see)g(Section)h(4.3.1)g([The)e(Set)h(Builtin],)150
-555 y(page)d(74\),)i(Bash)d(scans)h(eac)m(h)h(w)m(ord)e(for)g(the)h(c)m
-(haracters)g(`)p Ft(*)p Fu(',)h(`)p Ft(?)p Fu(',)g(and)e(`)p
+1220 y(page)d(74\),)i(Bash)d(scans)h(eac)m(h)h(w)m(ord)e(for)g(the)h(c)
+m(haracters)g(`)p Ft(*)p Fu(',)h(`)p Ft(?)p Fu(',)g(and)e(`)p
Ft([)p Fu('.)39 b(If)26 b(one)h(of)g(these)f(c)m(haracters)150
-665 y(app)s(ears,)44 b(and)d(is)h(not)g(quoted,)j(then)d(the)g(w)m(ord)
-f(is)h(regarded)g(as)g(a)g Fr(pattern)p Fu(,)j(and)c(replaced)h(with)
-150 775 y(a)i(sorted)f(list)h(of)f(\014lenames)g(matc)m(hing)i(the)e
-(pattern)g(\(see)i(Section)f(3.5.8.1)h([P)m(attern)g(Matc)m(hing],)150
-884 y(page)21 b(39\),)j(sub)5 b(ject)20 b(to)h(the)g(v)-5
-b(alue)21 b(of)g(the)f Ft(GLOBSORT)e Fu(shell)j(v)-5
-b(ariable)21 b(\(see)h(Section)f(5.2)g([Bash)g(V)-8 b(ariables],)150
-994 y(page)31 b(87\).)275 1134 y(If)d(no)g(matc)m(hing)i(\014lenames)f
-(are)g(found,)f(and)g(the)h(shell)g(option)g Ft(nullglob)e
-Fu(is)h(disabled,)h(the)g(w)m(ord)150 1243 y(is)38 b(left)g(unc)m
-(hanged.)62 b(If)37 b(the)g Ft(nullglob)e Fu(option)j(is)g(set,)i(and)d
-(no)g(matc)m(hes)i(are)f(found,)g(the)g(w)m(ord)f(is)150
-1353 y(remo)m(v)m(ed.)j(If)23 b(the)h Ft(failglob)d Fu(shell)j(option)h
-(is)e(set,)j(and)e(no)f(matc)m(hes)i(are)f(found,)g(Bash)g(prin)m(ts)g
-(an)f(error)150 1462 y(message)28 b(and)e(do)s(es)h(not)g(execute)h
-(the)f(command.)39 b(If)27 b(the)g(shell)g(option)g Ft(nocaseglob)d
-Fu(is)j(enabled,)h(the)150 1572 y(matc)m(h)j(is)g(p)s(erformed)e
-(without)h(regard)g(to)h(the)g(case)g(of)g(alphab)s(etic)g(c)m
-(haracters.)275 1712 y(When)23 b(a)h(pattern)f(is)h(used)f(for)g
-(\014lename)h(expansion,)h(the)e(c)m(haracter)i(`)p Ft(.)p
-Fu(')f(at)g(the)g(start)g(of)g(a)g(\014lename)150 1821
-y(or)f(immediately)i(follo)m(wing)g(a)f(slash)f(m)m(ust)h(b)s(e)f(matc)
-m(hed)h(explicitly)-8 b(,)27 b(unless)c(the)g(shell)h(option)g
-Ft(dotglob)150 1931 y Fu(is)41 b(set.)74 b(In)40 b(order)h(to)g(matc)m
-(h)h(the)g(\014lenames)f Ft(.)g Fu(and)f Ft(..)p Fu(,)k(the)d(pattern)g
-(m)m(ust)g(b)s(egin)g(with)g(`)p Ft(.)p Fu(')g(\(for)150
-2040 y(example,)h(`)p Ft(.?)p Fu('\),)f(ev)m(en)f(if)f
-Ft(dotglob)d Fu(is)j(set.)67 b(If)38 b(the)h Ft(globskipdots)d
-Fu(shell)j(option)g(is)g(enabled,)i(the)150 2150 y(\014lenames)30
-b Ft(.)f Fu(and)g Ft(..)h Fu(nev)m(er)g(matc)m(h,)h(ev)m(en)f(if)g(the)
-g(pattern)g(b)s(egins)f(with)g(a)i(`)p Ft(.)p Fu('.)40
-b(When)30 b(not)g(matc)m(hing)150 2260 y(\014lenames,)h(the)f(`)p
-Ft(.)p Fu(')h(c)m(haracter)h(is)e(not)h(treated)g(sp)s(ecially)-8
-b(.)275 2399 y(When)30 b(matc)m(hing)i(a)f(\014lename,)h(the)f(slash)f
-(c)m(haracter)j(m)m(ust)d(alw)m(a)m(ys)j(b)s(e)d(matc)m(hed)h
-(explicitly)i(b)m(y)e(a)150 2509 y(slash)d(in)f(the)h(pattern,)h(but)e
-(in)h(other)g(matc)m(hing)h(con)m(texts)h(it)e(can)g(b)s(e)g(matc)m
-(hed)g(b)m(y)g(a)g(sp)s(ecial)h(pattern)150 2618 y(c)m(haracter)j(as)f
-(describ)s(ed)e(b)s(elo)m(w)h(\(see)i(Section)f(3.5.8.1)i([P)m(attern)e
-(Matc)m(hing],)i(page)e(39\).)275 2758 y(See)d(the)g(description)g(of)g
-Ft(shopt)e Fu(in)i(Section)g(4.3.2)i([The)e(Shopt)f(Builtin],)i(page)g
-(78,)g(for)f(a)g(descrip-)150 2868 y(tion)j(of)f(the)h
-Ft(nocaseglob)p Fu(,)d Ft(nullglob)p Fu(,)g Ft(globskipdots)p
-Fu(,)f Ft(failglob)p Fu(,)i(and)h Ft(dotglob)e Fu(options.)275
-3008 y(The)36 b Ft(GLOBIGNORE)d Fu(shell)k(v)-5 b(ariable)37
-b(ma)m(y)g(b)s(e)f(used)g(to)h(restrict)g(the)g(set)g(of)g(\014le)f
-(names)h(matc)m(hing)150 3117 y(a)42 b(pattern.)74 b(If)41
-b Ft(GLOBIGNORE)e Fu(is)i(set,)k(eac)m(h)e(matc)m(hing)f(\014le)g(name)
-f(that)h(also)h(matc)m(hes)f(one)g(of)g(the)150 3227
-y(patterns)34 b(in)g Ft(GLOBIGNORE)d Fu(is)k(remo)m(v)m(ed)g(from)f
-(the)g(list)h(of)f(matc)m(hes.)54 b(If)33 b(the)i Ft(nocaseglob)c
-Fu(option)k(is)150 3336 y(set,)c(the)e(matc)m(hing)i(against)g(the)f
-(patterns)f(in)h Ft(GLOBIGNORE)c Fu(is)k(p)s(erformed)e(without)i
-(regard)f(to)i(case.)150 3446 y(The)d(\014lenames)h Ft(.)g
-Fu(and)f Ft(..)h Fu(are)g(alw)m(a)m(ys)h(ignored)f(when)f
-Ft(GLOBIGNORE)f Fu(is)i(set)g(and)f(not)h(n)m(ull.)41
-b(Ho)m(w)m(ev)m(er,)150 3555 y(setting)30 b Ft(GLOBIGNORE)d
-Fu(to)j(a)f(non-n)m(ull)g(v)-5 b(alue)30 b(has)f(the)g(e\013ect)i(of)f
-(enabling)f(the)h Ft(dotglob)d Fu(shell)i(option,)150
-3665 y(so)42 b(all)h(other)g(\014lenames)f(b)s(eginning)f(with)h(a)h(`)
-p Ft(.)p Fu(')f(matc)m(h.)77 b(T)-8 b(o)42 b(get)h(the)g(old)f(b)s(eha)
-m(vior)g(of)h(ignoring)150 3775 y(\014lenames)29 b(b)s(eginning)f(with)
-h(a)h(`)p Ft(.)p Fu(',)f(mak)m(e)h(`)p Ft(.*)p Fu(')f(one)h(of)f(the)g
-(patterns)g(in)g Ft(GLOBIGNORE)p Fu(.)37 b(The)29 b Ft(dotglob)150
-3884 y Fu(option)37 b(is)f(disabled)h(when)e Ft(GLOBIGNORE)f
+1330 y(app)s(ears,)44 b(and)d(is)h(not)g(quoted,)j(then)d(the)g(w)m
+(ord)f(is)h(regarded)g(as)g(a)g Fr(pattern)p Fu(,)j(and)c(replaced)h
+(with)150 1439 y(a)i(sorted)f(list)h(of)f(\014lenames)g(matc)m(hing)i
+(the)e(pattern)g(\(see)i(Section)f(3.5.8.1)h([P)m(attern)g(Matc)m
+(hing],)150 1549 y(page)21 b(39\),)j(sub)5 b(ject)20
+b(to)h(the)g(v)-5 b(alue)21 b(of)g(the)f Ft(GLOBSORT)e
+Fu(shell)j(v)-5 b(ariable)21 b(\(see)h(Section)f(5.2)g([Bash)g(V)-8
+b(ariables],)150 1659 y(page)31 b(87\).)275 1794 y(If)d(no)g(matc)m
+(hing)i(\014lenames)f(are)g(found,)f(and)g(the)h(shell)g(option)g
+Ft(nullglob)e Fu(is)h(disabled,)h(the)g(w)m(ord)150 1904
+y(is)38 b(left)g(unc)m(hanged.)62 b(If)37 b(the)g Ft(nullglob)e
+Fu(option)j(is)g(set,)i(and)d(no)g(matc)m(hes)i(are)f(found,)g(the)g(w)
+m(ord)f(is)150 2013 y(remo)m(v)m(ed.)j(If)23 b(the)h
+Ft(failglob)d Fu(shell)j(option)h(is)e(set,)j(and)e(no)f(matc)m(hes)i
+(are)f(found,)g(Bash)g(prin)m(ts)g(an)f(error)150 2123
+y(message)28 b(and)e(do)s(es)h(not)g(execute)h(the)f(command.)39
+b(If)27 b(the)g(shell)g(option)g Ft(nocaseglob)d Fu(is)j(enabled,)h
+(the)150 2232 y(matc)m(h)j(is)g(p)s(erformed)e(without)h(regard)g(to)h
+(the)g(case)g(of)g(alphab)s(etic)g(c)m(haracters.)275
+2368 y(When)23 b(a)h(pattern)f(is)h(used)f(for)g(\014lename)h
+(expansion,)h(the)e(c)m(haracter)i(`)p Ft(.)p Fu(')f(at)g(the)g(start)g
+(of)g(a)g(\014lename)150 2478 y(or)f(immediately)i(follo)m(wing)g(a)f
+(slash)f(m)m(ust)h(b)s(e)f(matc)m(hed)h(explicitly)-8
+b(,)27 b(unless)c(the)g(shell)h(option)g Ft(dotglob)150
+2587 y Fu(is)41 b(set.)74 b(In)40 b(order)h(to)g(matc)m(h)h(the)g
+(\014lenames)f Ft(.)g Fu(and)f Ft(..)p Fu(,)k(the)d(pattern)g(m)m(ust)g
+(b)s(egin)g(with)g(`)p Ft(.)p Fu(')g(\(for)150 2697 y(example,)h(`)p
+Ft(.?)p Fu('\),)f(ev)m(en)f(if)f Ft(dotglob)d Fu(is)j(set.)67
+b(If)38 b(the)h Ft(globskipdots)d Fu(shell)j(option)g(is)g(enabled,)i
+(the)150 2806 y(\014lenames)30 b Ft(.)f Fu(and)g Ft(..)h
+Fu(nev)m(er)g(matc)m(h,)h(ev)m(en)f(if)g(the)g(pattern)g(b)s(egins)f
+(with)g(a)i(`)p Ft(.)p Fu('.)40 b(When)30 b(not)g(matc)m(hing)150
+2916 y(\014lenames,)h(the)f(`)p Ft(.)p Fu(')h(c)m(haracter)h(is)e(not)h
+(treated)g(sp)s(ecially)-8 b(.)275 3052 y(When)30 b(matc)m(hing)i(a)f
+(\014lename,)h(the)f(slash)f(c)m(haracter)j(m)m(ust)d(alw)m(a)m(ys)j(b)
+s(e)d(matc)m(hed)h(explicitly)i(b)m(y)e(a)150 3161 y(slash)d(in)f(the)h
+(pattern,)h(but)e(in)h(other)g(matc)m(hing)h(con)m(texts)h(it)e(can)g
+(b)s(e)g(matc)m(hed)g(b)m(y)g(a)g(sp)s(ecial)h(pattern)150
+3271 y(c)m(haracter)j(as)f(describ)s(ed)e(b)s(elo)m(w)h(\(see)i
+(Section)f(3.5.8.1)i([P)m(attern)e(Matc)m(hing],)i(page)e(39\).)275
+3406 y(See)d(the)g(description)g(of)g Ft(shopt)e Fu(in)i(Section)g
+(4.3.2)i([The)e(Shopt)f(Builtin],)i(page)g(78,)g(for)f(a)g(descrip-)150
+3516 y(tion)j(of)f(the)h Ft(nocaseglob)p Fu(,)d Ft(nullglob)p
+Fu(,)g Ft(globskipdots)p Fu(,)f Ft(failglob)p Fu(,)i(and)h
+Ft(dotglob)e Fu(options.)275 3652 y(The)36 b Ft(GLOBIGNORE)d
+Fu(shell)k(v)-5 b(ariable)37 b(ma)m(y)g(b)s(e)f(used)g(to)h(restrict)g
+(the)g(set)g(of)g(\014le)f(names)h(matc)m(hing)150 3761
+y(a)42 b(pattern.)74 b(If)41 b Ft(GLOBIGNORE)e Fu(is)i(set,)k(eac)m(h)e
+(matc)m(hing)f(\014le)g(name)f(that)h(also)h(matc)m(hes)f(one)g(of)g
+(the)150 3871 y(patterns)34 b(in)g Ft(GLOBIGNORE)d Fu(is)k(remo)m(v)m
+(ed)g(from)f(the)g(list)h(of)f(matc)m(hes.)54 b(If)33
+b(the)i Ft(nocaseglob)c Fu(option)k(is)150 3980 y(set,)c(the)e(matc)m
+(hing)i(against)g(the)f(patterns)f(in)h Ft(GLOBIGNORE)c
+Fu(is)k(p)s(erformed)e(without)i(regard)f(to)i(case.)150
+4090 y(The)d(\014lenames)h Ft(.)g Fu(and)f Ft(..)h Fu(are)g(alw)m(a)m
+(ys)h(ignored)f(when)f Ft(GLOBIGNORE)f Fu(is)i(set)g(and)f(not)h(n)m
+(ull.)41 b(Ho)m(w)m(ev)m(er,)150 4200 y(setting)30 b
+Ft(GLOBIGNORE)d Fu(to)j(a)f(non-n)m(ull)g(v)-5 b(alue)30
+b(has)f(the)g(e\013ect)i(of)f(enabling)f(the)h Ft(dotglob)d
+Fu(shell)i(option,)150 4309 y(so)42 b(all)h(other)g(\014lenames)f(b)s
+(eginning)f(with)h(a)h(`)p Ft(.)p Fu(')f(matc)m(h.)77
+b(T)-8 b(o)42 b(get)h(the)g(old)f(b)s(eha)m(vior)g(of)h(ignoring)150
+4419 y(\014lenames)29 b(b)s(eginning)f(with)h(a)h(`)p
+Ft(.)p Fu(',)f(mak)m(e)h(`)p Ft(.*)p Fu(')f(one)h(of)f(the)g(patterns)g
+(in)g Ft(GLOBIGNORE)p Fu(.)37 b(The)29 b Ft(dotglob)150
+4528 y Fu(option)37 b(is)f(disabled)h(when)e Ft(GLOBIGNORE)f
Fu(is)i(unset.)59 b(The)36 b Ft(GLOBIGNORE)d Fu(pattern)k(matc)m(hing)h
-(honors)150 3994 y(the)31 b(setting)g(of)g(the)f Ft(extglob)f
-Fu(shell)h(option.)275 4134 y(The)25 b(v)-5 b(alue)25
+(honors)150 4638 y(the)31 b(setting)g(of)g(the)f Ft(extglob)f
+Fu(shell)h(option.)275 4773 y(The)25 b(v)-5 b(alue)25
b(of)h(the)g Ft(GLOBSORT)d Fu(shell)j(v)-5 b(ariable)26
b(con)m(trols)h(ho)m(w)e(the)h(results)f(of)h(pathname)f(expansion)150
-4243 y(are)31 b(sorted,)g(as)f(describ)s(ed)f(b)s(elo)m(w)i(\(see)g
+4883 y(are)31 b(sorted,)g(as)f(describ)s(ed)f(b)s(elo)m(w)i(\(see)g
(Section)g(5.2)h([Bash)f(V)-8 b(ariables],)32 b(page)f(87\).)150
-4448 y Fk(3.5.8.1)63 b(P)m(attern)40 b(Matc)m(hing)150
-4595 y Fu(An)m(y)24 b(c)m(haracter)h(that)f(app)s(ears)f(in)g(a)h
+5083 y Fk(3.5.8.1)63 b(P)m(attern)40 b(Matc)m(hing)150
+5230 y Fu(An)m(y)24 b(c)m(haracter)h(that)f(app)s(ears)f(in)g(a)h
(pattern,)i(other)e(than)f(the)h(sp)s(ecial)g(pattern)g(c)m(haracters)h
-(describ)s(ed)150 4704 y(b)s(elo)m(w,)31 b(matc)m(hes)g(itself.)42
+(describ)s(ed)150 5340 y(b)s(elo)m(w,)31 b(matc)m(hes)g(itself.)42
b(The)29 b Fm(nul)h Fu(c)m(haracter)i(ma)m(y)e(not)h(o)s(ccur)f(in)g(a)
-h(pattern.)40 b(A)31 b(bac)m(kslash)g(escap)s(es)150
-4814 y(the)38 b(follo)m(wing)g(c)m(haracter;)43 b(the)37
-b(escaping)i(bac)m(kslash)e(is)h(discarded)f(when)f(matc)m(hing.)63
-b(The)36 b(sp)s(ecial)150 4923 y(pattern)30 b(c)m(haracters)i(m)m(ust)f
-(b)s(e)e(quoted)i(if)f(they)h(are)f(to)i(b)s(e)d(matc)m(hed)i
-(literally)-8 b(.)275 5063 y(The)29 b(sp)s(ecial)i(pattern)g(c)m
-(haracters)h(ha)m(v)m(e)f(the)g(follo)m(wing)h(meanings:)150
-5230 y Ft(*)432 b Fu(Matc)m(hes)31 b(an)m(y)e(string,)h(including)f
-(the)g(n)m(ull)g(string.)41 b(When)29 b(the)g Ft(globstar)e
-Fu(shell)i(option)630 5340 y(is)21 b(enabled,)j(and)d(`)p
-Ft(*)p Fu(')g(is)h(used)e(in)h(a)h(\014lename)f(expansion)h(con)m
-(text,)j(t)m(w)m(o)e(adjacen)m(t)f(`)p Ft(*)p Fu('s)g(used)p
-eop end
+h(pattern.)40 b(A)31 b(bac)m(kslash)g(escap)s(es)p eop
+end
%%Page: 40 46
TeXDict begin 40 45 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(40)630 299
-y(as)21 b(a)g(single)g(pattern)g(matc)m(h)g(all)h(\014les)e(and)g(zero)
-h(or)g(more)g(directories)g(and)f(sub)s(directories.)630
-408 y(If)26 b(follo)m(w)m(ed)i(b)m(y)f(a)g(`)p Ft(/)p
-Fu(',)h(t)m(w)m(o)g(adjacen)m(t)g(`)p Ft(*)p Fu('s)e(matc)m(h)i(only)f
-(directories)g(and)f(sub)s(directories.)150 557 y Ft(?)432
-b Fu(Matc)m(hes)32 b(an)m(y)f(single)g(c)m(haracter.)150
-705 y Ft([...)o(])241 b Fu(Matc)m(hes)25 b(an)m(y)e(one)g(of)g(the)g(c)
-m(haracters)h(enclosed)f(b)s(et)m(w)m(een)h(the)f(brac)m(k)m(ets.)40
-b(This)22 b(is)g(kno)m(wn)630 815 y(as)37 b(a)h Fr(brac)m(k)m(et)g
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(40)150 299
+y(the)38 b(follo)m(wing)g(c)m(haracter;)43 b(the)37 b(escaping)i(bac)m
+(kslash)e(is)h(discarded)f(when)f(matc)m(hing.)63 b(The)36
+b(sp)s(ecial)150 408 y(pattern)30 b(c)m(haracters)i(m)m(ust)f(b)s(e)e
+(quoted)i(if)f(they)h(are)f(to)i(b)s(e)d(matc)m(hed)i(literally)-8
+b(.)275 560 y(The)29 b(sp)s(ecial)i(pattern)g(c)m(haracters)h(ha)m(v)m
+(e)f(the)g(follo)m(wing)h(meanings:)150 744 y Ft(*)432
+b Fu(Matc)m(hes)31 b(an)m(y)e(string,)h(including)f(the)g(n)m(ull)g
+(string.)41 b(When)29 b(the)g Ft(globstar)e Fu(shell)i(option)630
+853 y(is)21 b(enabled,)j(and)d(`)p Ft(*)p Fu(')g(is)h(used)e(in)h(a)h
+(\014lename)f(expansion)h(con)m(text,)j(t)m(w)m(o)e(adjacen)m(t)f(`)p
+Ft(*)p Fu('s)g(used)630 963 y(as)f(a)g(single)g(pattern)g(matc)m(h)g
+(all)h(\014les)e(and)g(zero)h(or)g(more)g(directories)g(and)f(sub)s
+(directories.)630 1073 y(If)26 b(follo)m(w)m(ed)i(b)m(y)f(a)g(`)p
+Ft(/)p Fu(',)h(t)m(w)m(o)g(adjacen)m(t)g(`)p Ft(*)p Fu('s)e(matc)m(h)i
+(only)f(directories)g(and)f(sub)s(directories.)150 1249
+y Ft(?)432 b Fu(Matc)m(hes)32 b(an)m(y)f(single)g(c)m(haracter.)150
+1425 y Ft([...)o(])241 b Fu(Matc)m(hes)25 b(an)m(y)e(one)g(of)g(the)g
+(c)m(haracters)h(enclosed)f(b)s(et)m(w)m(een)h(the)f(brac)m(k)m(ets.)40
+b(This)22 b(is)g(kno)m(wn)630 1534 y(as)37 b(a)h Fr(brac)m(k)m(et)g
(expression)f Fu(and)f(matc)m(hes)i(a)g(single)f(c)m(haracter.)63
-b(A)37 b(pair)f(of)h(c)m(haracters)630 924 y(separated)44
+b(A)37 b(pair)f(of)h(c)m(haracters)630 1644 y(separated)44
b(b)m(y)f(a)h(h)m(yphen)e(denotes)i(a)f Fr(range)h(expression)p
Fu(;)50 b(an)m(y)44 b(c)m(haracter)g(that)g(falls)630
-1034 y(b)s(et)m(w)m(een)i(those)g(t)m(w)m(o)g(c)m(haracters,)51
+1753 y(b)s(et)m(w)m(een)i(those)g(t)m(w)m(o)g(c)m(haracters,)51
b(inclusiv)m(e,)f(using)45 b(the)g(curren)m(t)h(lo)s(cale's)h
-(collating)630 1143 y(sequence)29 b(and)f(c)m(haracter)i(set,)g(matc)m
+(collating)630 1863 y(sequence)29 b(and)f(c)m(haracter)i(set,)g(matc)m
(hes.)41 b(If)28 b(the)h(\014rst)e(c)m(haracter)k(follo)m(wing)f(the)e
-(`)p Ft([)p Fu(')h(is)g(a)630 1253 y(`)p Ft(!)p Fu(')j(or)h(a)g(`)p
+(`)p Ft([)p Fu(')h(is)g(a)630 1973 y(`)p Ft(!)p Fu(')j(or)h(a)g(`)p
Ft(^)p Fu(')f(then)g(an)m(y)h(c)m(haracter)h(not)e(within)g(the)g
(range)h(matc)m(hes.)48 b(T)-8 b(o)33 b(matc)m(h)g(a)g(`)p
-Fq(\000)p Fu(',)630 1363 y(include)e(it)h(as)f(the)g(\014rst)g(or)g
+Fq(\000)p Fu(',)630 2082 y(include)e(it)h(as)f(the)g(\014rst)g(or)g
(last)h(c)m(haracter)h(in)e(the)g(set.)44 b(T)-8 b(o)32
b(matc)m(h)g(a)f(`)p Ft(])p Fu(',)h(include)f(it)h(as)630
-1472 y(the)f(\014rst)e(c)m(haracter)j(in)e(the)h(set.)630
-1601 y(The)21 b(sorting)h(order)e(of)i(c)m(haracters)h(in)e(range)h
+2192 y(the)f(\014rst)e(c)m(haracter)j(in)e(the)h(set.)630
+2335 y(The)21 b(sorting)h(order)e(of)i(c)m(haracters)h(in)e(range)h
(expressions,)h(and)d(the)i(c)m(haracters)h(included)630
-1711 y(in)37 b(the)g(range,)j(are)d(determined)g(b)m(y)g(the)g(curren)m
-(t)g(lo)s(cale)i(and)d(the)i(v)-5 b(alues)37 b(of)g(the)h
-Ft(LC_)630 1820 y(COLLATE)28 b Fu(and)i Ft(LC_ALL)f Fu(shell)h(v)-5
-b(ariables,)32 b(if)e(set.)630 1949 y(F)-8 b(or)34 b(example,)g(in)f
-(the)g(default)g(C)f(lo)s(cale,)k(`)p Ft([a-dx-z])p Fu(')31
-b(is)i(equiv)-5 b(alen)m(t)34 b(to)g(`)p Ft([abcdxyz])p
-Fu('.)630 2059 y(Man)m(y)68 b(lo)s(cales)h(sort)f(c)m(haracters)h(in)e
-(dictionary)i(order,)76 b(and)67 b(in)g(these)h(lo)s(cales)630
-2168 y(`)p Ft([a-dx-z])p Fu(')36 b(is)i(t)m(ypically)i(not)e(equiv)-5
-b(alen)m(t)39 b(to)g(`)p Ft([abcdxyz])p Fu(';)g(it)g(migh)m(t)f(b)s(e)f
-(equiv)-5 b(alen)m(t)630 2278 y(to)34 b(`)p Ft([aBbCcDdxYyZz])p
-Fu(',)c(for)j(example.)49 b(T)-8 b(o)33 b(obtain)h(the)f(traditional)h
-(in)m(terpretation)h(of)630 2388 y(ranges)e(in)f(brac)m(k)m(et)i
-(expressions,)g(y)m(ou)f(can)g(force)g(the)g(use)f(of)h(the)g(C)f(lo)s
-(cale)i(b)m(y)f(setting)630 2497 y(the)c Ft(LC_COLLATE)e
-Fu(or)i Ft(LC_ALL)f Fu(en)m(vironmen)m(t)i(v)-5 b(ariable)30
-b(to)g(the)f(v)-5 b(alue)30 b(`)p Ft(C)p Fu(',)g(or)f(enable)h(the)630
-2607 y Ft(globasciiranges)c Fu(shell)31 b(option.)630
-2736 y(Within)j(a)h(brac)m(k)m(et)h(expression,)f Fr(c)m(haracter)h
-(classes)j Fu(can)34 b(b)s(e)g(sp)s(eci\014ed)f(using)h(the)g(syn-)630
-2845 y(tax)h Ft([:)p Fr(class)t Ft(:])p Fu(,)f(where)g
+2444 y(in)j(the)h(range,)h(are)f(determined)f(b)m(y)h(the)f(collating)j
+(sequence)e(of)g(the)g(curren)m(t)f(lo)s(cale)j(and)630
+2554 y(the)i(v)-5 b(alues)30 b(of)h(the)f Ft(LC_COLLATE)e
+Fu(and)i Ft(LC_ALL)e Fu(shell)j(v)-5 b(ariables,)31 b(if)g(set.)630
+2697 y(F)-8 b(or)34 b(example,)g(in)f(the)g(default)g(C)f(lo)s(cale,)k
+(`)p Ft([a-dx-z])p Fu(')31 b(is)i(equiv)-5 b(alen)m(t)34
+b(to)g(`)p Ft([abcdxyz])p Fu('.)630 2806 y(Man)m(y)68
+b(lo)s(cales)h(sort)f(c)m(haracters)h(in)e(dictionary)i(order,)76
+b(and)67 b(in)g(these)h(lo)s(cales)630 2916 y(`)p Ft([a-dx-z])p
+Fu(')36 b(is)i(t)m(ypically)i(not)e(equiv)-5 b(alen)m(t)39
+b(to)g(`)p Ft([abcdxyz])p Fu(';)g(it)g(migh)m(t)f(b)s(e)f(equiv)-5
+b(alen)m(t)630 3025 y(to)72 b(`)p Ft([aBbCcDdxYyZz])p
+Fu(')d(or)i(`)p Ft([aAbBcCdxXyYz])p Fu('.)161 b(T)-8
+b(o)73 b(obtain)f(the)g(traditional)630 3135 y(in)m(terpretation)34
+b(of)f(ranges)g(in)f(brac)m(k)m(et)i(expressions,)f(y)m(ou)g(can)g
+(force)h(the)e(use)h(of)g(the)f(C)630 3244 y(lo)s(cale)e(b)m(y)e
+(setting)h(the)g Ft(LC_COLLATE)c Fu(or)j Ft(LC_ALL)f
+Fu(en)m(vironmen)m(t)h(v)-5 b(ariables)29 b(to)g(the)f(v)-5
+b(alue)630 3354 y(`)p Ft(C)p Fu(',)31 b(or)f(enable)h(the)g
+Ft(globasciiranges)26 b Fu(shell)k(option.)630 3497 y(Within)k(a)h
+(brac)m(k)m(et)h(expression,)f Fr(c)m(haracter)h(classes)j
+Fu(can)34 b(b)s(e)g(sp)s(eci\014ed)f(using)h(the)g(syn-)630
+3606 y(tax)h Ft([:)p Fr(class)t Ft(:])p Fu(,)f(where)g
Fr(class)k Fu(is)c(one)g(of)h(the)f(follo)m(wing)h(classes)g(de\014ned)
-e(in)h(the)g Fm(posix)630 2955 y Fu(standard:)870 3084
+e(in)h(the)g Fm(posix)630 3716 y Fu(standard:)870 3859
y Ft(alnum)142 b(alpha)g(ascii)f(blank)h(cntrl)g(digit)g(graph)g(lower)
-870 3193 y(print)g(punct)g(space)f(upper)h(word)190 b(xdigit)630
-3322 y Fu(A)42 b(c)m(haracter)h(class)f(matc)m(hes)h(an)m(y)f(c)m
+870 3968 y(print)g(punct)g(space)f(upper)h(word)190 b(xdigit)630
+4111 y Fu(A)42 b(c)m(haracter)h(class)f(matc)m(hes)h(an)m(y)f(c)m
(haracter)h(b)s(elonging)f(to)g(that)g(class.)75 b(The)41
-b Ft(word)630 3432 y Fu(c)m(haracter)32 b(class)f(matc)m(hes)h
+b Ft(word)630 4221 y Fu(c)m(haracter)32 b(class)f(matc)m(hes)h
(letters,)f(digits,)h(and)d(the)i(c)m(haracter)h(`)p
-Ft(_)p Fu('.)630 3561 y(F)-8 b(or)35 b(instance,)i(the)e(follo)m(wing)h
+Ft(_)p Fu('.)630 4364 y(F)-8 b(or)35 b(instance,)i(the)e(follo)m(wing)h
(pattern)f(will)g(matc)m(h)h(an)m(y)f(c)m(haracter)h(b)s(elonging)f(to)
-h(the)630 3670 y Ft(space)29 b Fu(c)m(haracter)i(class)g(in)f(the)h
+h(the)630 4473 y Ft(space)29 b Fu(c)m(haracter)i(class)g(in)f(the)h
(curren)m(t)f(lo)s(cale,)i(then)d(an)m(y)i(upp)s(er)d(case)j(letter)h
-(or)e(`)p Ft(!)p Fu(',)h(a)630 3780 y(dot,)g(and)f(\014nally)g(an)m(y)h
+(or)e(`)p Ft(!)p Fu(',)h(a)630 4583 y(dot,)g(and)f(\014nally)g(an)m(y)h
(lo)m(w)m(er)g(case)h(letter)f(or)g(a)f(h)m(yphen.)870
-3909 y Ft([[:space:]][[:upper:]!].)o([-[:)o(lowe)o(r:])o(])630
-4038 y Fu(Within)40 b(a)g(brac)m(k)m(et)h(expression,)h(an)e
+4726 y Ft([[:space:]][[:upper:]!].)o([-[:)o(lowe)o(r:])o(])630
+4868 y Fu(Within)40 b(a)g(brac)m(k)m(et)h(expression,)h(an)e
Fr(equiv)-5 b(alence)41 b(class)j Fu(can)c(b)s(e)f(sp)s(eci\014ed)h
-(using)f(the)630 4147 y(syn)m(tax)31 b Ft([=)p Fr(c)6
+(using)f(the)630 4978 y(syn)m(tax)31 b Ft([=)p Fr(c)6
b Ft(=])p Fu(,)30 b(whic)m(h)g(matc)m(hes)h(all)h(c)m(haracters)g(with)
-e(the)h(same)g(collation)h(w)m(eigh)m(t)g(\(as)630 4257
+e(the)h(same)g(collation)h(w)m(eigh)m(t)g(\(as)630 5088
y(de\014ned)d(b)m(y)h(the)h(curren)m(t)f(lo)s(cale\))j(as)d(the)h(c)m
-(haracter)h Fr(c)p Fu(.)630 4386 y(Within)23 b(a)h(brac)m(k)m(et)h
+(haracter)h Fr(c)p Fu(.)630 5230 y(Within)23 b(a)h(brac)m(k)m(et)h
(expression,)f(the)g(syn)m(tax)f Ft([.)p Fr(sym)m(b)s(ol)t
-Ft(.])f Fu(matc)m(hes)i(the)g(collating)h(sym-)630 4495
-y(b)s(ol)30 b Fr(sym)m(b)s(ol)p Fu(.)275 4644 y(If)23
-b(the)g Ft(extglob)f Fu(shell)h(option)h(is)g(enabled)f(using)g(the)h
-Ft(shopt)e Fu(builtin,)i(the)g(shell)f(recognizes)j(sev)m(eral)150
-4753 y(extended)i(pattern)f(matc)m(hing)i(op)s(erators.)40
+Ft(.])f Fu(matc)m(hes)i(the)g(collating)h(sym-)630 5340
+y(b)s(ol)30 b Fr(sym)m(b)s(ol)p Fu(.)p eop end
+%%Page: 41 47
+TeXDict begin 41 46 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(41)275 299
+y(If)23 b(the)g Ft(extglob)f Fu(shell)h(option)h(is)g(enabled)f(using)g
+(the)h Ft(shopt)e Fu(builtin,)i(the)g(shell)f(recognizes)j(sev)m(eral)
+150 408 y(extended)i(pattern)f(matc)m(hing)i(op)s(erators.)40
b(In)26 b(the)i(follo)m(wing)h(description,)g(a)e Fr(pattern-list)k
-Fu(is)d(a)g(list)g(of)150 4863 y(one)23 b(or)f(more)h(patterns)g
+Fu(is)d(a)g(list)g(of)150 518 y(one)23 b(or)f(more)h(patterns)g
(separated)g(b)m(y)f(a)h(`)p Ft(|)p Fu('.)38 b(When)22
b(matc)m(hing)i(\014lenames,)g(the)f Ft(dotglob)e Fu(shell)h(option)150
-4973 y(determines)h(the)h(set)g(of)g(\014lenames)f(that)h(are)g
-(tested,)i(as)d(describ)s(ed)g(ab)s(o)m(v)m(e.)39 b(Comp)s(osite)24
-b(patterns)f(ma)m(y)150 5082 y(b)s(e)30 b(formed)g(using)f(one)i(or)f
-(more)h(of)g(the)f(follo)m(wing)i(sub-patterns:)150 5230
-y Ft(?\()p Fj(pattern-list)p Ft(\))630 5340 y Fu(Matc)m(hes)g(zero)f
-(or)g(one)f(o)s(ccurrence)h(of)f(the)h(giv)m(en)g(patterns.)p
-eop end
-%%Page: 41 47
-TeXDict begin 41 46 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(41)150 299
-y Ft(*\()p Fj(pattern-list)p Ft(\))630 408 y Fu(Matc)m(hes)32
-b(zero)f(or)g(more)f(o)s(ccurrences)h(of)f(the)h(giv)m(en)g(patterns.)
-150 563 y Ft(+\()p Fj(pattern-list)p Ft(\))630 673 y
-Fu(Matc)m(hes)h(one)f(or)f(more)h(o)s(ccurrences)f(of)h(the)f(giv)m(en)
-i(patterns.)150 828 y Ft(@\()p Fj(pattern-list)p Ft(\))630
-937 y Fu(Matc)m(hes)g(one)f(of)f(the)h(giv)m(en)g(patterns.)150
-1092 y Ft(!\()p Fj(pattern-list)p Ft(\))630 1202 y Fu(Matc)m(hes)h(an)m
-(ything)f(except)g(one)g(of)f(the)h(giv)m(en)g(patterns.)275
-1357 y(The)h Ft(extglob)f Fu(option)j(c)m(hanges)g(the)f(b)s(eha)m
-(vior)g(of)h(the)f(parser,)g(since)h(the)f(paren)m(theses)h(are)f(nor-)
-150 1466 y(mally)44 b(treated)g(as)f(op)s(erators)g(with)g(syn)m
-(tactic)i(meaning.)79 b(T)-8 b(o)44 b(ensure)e(that)i(extended)f(matc)m
-(hing)150 1576 y(patterns)30 b(are)g(parsed)f(correctly)-8
+628 y(determines)h(the)h(set)g(of)g(\014lenames)f(that)h(are)g(tested,)
+i(as)d(describ)s(ed)g(ab)s(o)m(v)m(e.)39 b(Comp)s(osite)24
+b(patterns)f(ma)m(y)150 737 y(b)s(e)30 b(formed)g(using)f(one)i(or)f
+(more)h(of)g(the)f(follo)m(wing)i(sub-patterns:)150 897
+y Ft(?\()p Fj(pattern-list)p Ft(\))630 1006 y Fu(Matc)m(hes)g(zero)f
+(or)g(one)f(o)s(ccurrence)h(of)f(the)h(giv)m(en)g(patterns.)150
+1166 y Ft(*\()p Fj(pattern-list)p Ft(\))630 1275 y Fu(Matc)m(hes)h
+(zero)f(or)g(more)f(o)s(ccurrences)h(of)f(the)h(giv)m(en)g(patterns.)
+150 1435 y Ft(+\()p Fj(pattern-list)p Ft(\))630 1544
+y Fu(Matc)m(hes)h(one)f(or)f(more)h(o)s(ccurrences)f(of)h(the)f(giv)m
+(en)i(patterns.)150 1704 y Ft(@\()p Fj(pattern-list)p
+Ft(\))630 1814 y Fu(Matc)m(hes)g(one)f(of)f(the)h(giv)m(en)g(patterns.)
+150 1973 y Ft(!\()p Fj(pattern-list)p Ft(\))630 2083
+y Fu(Matc)m(hes)h(an)m(ything)f(except)g(one)g(of)f(the)h(giv)m(en)g
+(patterns.)275 2242 y(The)h Ft(extglob)f Fu(option)j(c)m(hanges)g(the)f
+(b)s(eha)m(vior)g(of)h(the)f(parser,)g(since)h(the)f(paren)m(theses)h
+(are)f(nor-)150 2352 y(mally)44 b(treated)g(as)f(op)s(erators)g(with)g
+(syn)m(tactic)i(meaning.)79 b(T)-8 b(o)44 b(ensure)e(that)i(extended)f
+(matc)m(hing)150 2461 y(patterns)30 b(are)g(parsed)f(correctly)-8
b(,)32 b(mak)m(e)e(sure)g(that)g Ft(extglob)e Fu(is)h(enabled)h(b)s
-(efore)f(parsing)h(constructs)150 1685 y(con)m(taining)i(the)e
+(efore)f(parsing)h(constructs)150 2571 y(con)m(taining)i(the)e
(patterns,)h(including)f(shell)h(functions)f(and)f(command)h
-(substitutions.)275 1818 y(When)c(matc)m(hing)i(\014lenames,)g(the)f
+(substitutions.)275 2705 y(When)c(matc)m(hing)i(\014lenames,)g(the)f
Ft(dotglob)e Fu(shell)i(option)h(determines)f(the)g(set)g(of)g
-(\014lenames)g(that)150 1927 y(are)34 b(tested:)47 b(when)33
+(\014lenames)g(that)150 2815 y(are)34 b(tested:)47 b(when)33
b Ft(dotglob)e Fu(is)i(enabled,)i(the)e(set)h(of)g(\014lenames)f
-(includes)g(all)h(\014les)g(b)s(eginning)e(with)150 2037
+(includes)g(all)h(\014les)g(b)s(eginning)e(with)150 2925
y(`)p Ft(.)p Fu(',)j(but)e(the)i(\014lenames)f Ft(.)f
Fu(and)h Ft(..)f Fu(m)m(ust)h(b)s(e)f(matc)m(hed)i(b)m(y)e(a)i(pattern)
-f(or)g(sub-pattern)f(that)h(b)s(egins)150 2146 y(with)g(a)h(dot;)h
+f(or)g(sub-pattern)f(that)h(b)s(egins)150 3034 y(with)g(a)h(dot;)h
(when)e(it)g(is)h(disabled,)g(the)f(set)h(do)s(es)f(not)g(include)g(an)
m(y)h(\014lenames)f(b)s(eginning)g(with)g(`)p Ft(.)p
-Fu(')150 2256 y(unless)j(the)h(pattern)g(or)g(sub-pattern)f(b)s(egins)g
+Fu(')150 3144 y(unless)j(the)h(pattern)g(or)g(sub-pattern)f(b)s(egins)g
(with)h(a)g(`)p Ft(.)p Fu('.)64 b(If)37 b(the)h Ft(globskipdots)d
-Fu(shell)j(option)g(is)150 2366 y(enabled,)e(the)e(\014lenames)h
+Fu(shell)j(option)g(is)150 3253 y(enabled,)e(the)e(\014lenames)h
Ft(.)f Fu(and)f Ft(..)h Fu(nev)m(er)h(app)s(ear)e(in)i(the)f(set.)53
b(As)35 b(ab)s(o)m(v)m(e,)h(`)p Ft(.)p Fu(')f(only)f(has)h(a)f(sp)s
-(ecial)150 2475 y(meaning)d(when)e(matc)m(hing)i(\014lenames.)275
-2607 y(Complicated)41 b(extended)f(pattern)g(matc)m(hing)h(against)h
+(ecial)150 3363 y(meaning)d(when)e(matc)m(hing)i(\014lenames.)275
+3498 y(Complicated)41 b(extended)f(pattern)g(matc)m(hing)h(against)h
(long)f(strings)f(is)g(slo)m(w,)k(esp)s(ecially)d(when)150
-2717 y(the)29 b(patterns)g(con)m(tain)i(alternations)f(and)f(the)g
+3607 y(the)29 b(patterns)g(con)m(tain)i(alternations)f(and)f(the)g
(strings)g(con)m(tain)h(m)m(ultiple)g(matc)m(hes.)42
-b(Using)29 b(separate)150 2827 y(matc)m(hes)38 b(against)g(shorter)e
+b(Using)29 b(separate)150 3717 y(matc)m(hes)38 b(against)g(shorter)e
(strings,)i(or)f(using)f(arra)m(ys)h(of)g(strings)f(instead)h(of)g(a)g
-(single)g(long)h(string,)150 2936 y(ma)m(y)31 b(b)s(e)f(faster.)150
-3131 y Fk(3.5.9)63 b(Quote)41 b(Remo)m(v)-7 b(al)150
-3278 y Fu(After)32 b(the)g(preceding)g(expansions,)h(all)f(unquoted)f
+(single)g(long)h(string,)150 3826 y(ma)m(y)31 b(b)s(e)f(faster.)150
+4026 y Fk(3.5.9)63 b(Quote)41 b(Remo)m(v)-7 b(al)150
+4173 y Fu(After)32 b(the)g(preceding)g(expansions,)h(all)f(unquoted)f
(o)s(ccurrences)h(of)g(the)h(c)m(haracters)g(`)p Ft(\\)p
Fu(',)g(`)p Ft(')p Fu(',)f(and)g(`)p Ft(")p Fu(')150
-3387 y(that)f(did)f(not)g(result)g(from)g(one)h(of)g(the)f(ab)s(o)m(v)m
-(e)i(expansions)e(are)h(remo)m(v)m(ed.)150 3624 y Fs(3.6)68
-b(Redirections)150 3783 y Fu(Before)32 b(a)f(command)f(is)h(executed,)h
+4282 y(that)f(did)f(not)g(result)g(from)g(one)h(of)g(the)f(ab)s(o)m(v)m
+(e)i(expansions)e(are)h(remo)m(v)m(ed.)150 4523 y Fs(3.6)68
+b(Redirections)150 4682 y Fu(Before)32 b(a)f(command)f(is)h(executed,)h
(its)f(input)e(and)h(output)h(ma)m(y)g(b)s(e)f Fr(redirected)k
-Fu(using)c(a)i(sp)s(ecial)f(no-)150 3893 y(tation)d(in)m(terpreted)f(b)
+Fu(using)c(a)i(sp)s(ecial)f(no-)150 4792 y(tation)d(in)m(terpreted)f(b)
m(y)f(the)h(shell.)40 b Fr(Redirection)27 b Fu(allo)m(ws)h(commands')f
-(\014le)f(handles)g(to)i(b)s(e)e(duplicated,)150 4002
+(\014le)f(handles)g(to)i(b)s(e)e(duplicated,)150 4902
y(op)s(ened,)i(closed,)i(made)e(to)h(refer)f(to)h(di\013eren)m(t)f
(\014les,)h(and)f(can)g(c)m(hange)h(the)g(\014les)f(the)g(command)g
-(reads)150 4112 y(from)34 b(and)g(writes)h(to.)54 b(When)35
+(reads)150 5011 y(from)34 b(and)g(writes)h(to.)54 b(When)35
b(used)f(with)g(the)h Ft(exec)f Fu(builtin,)h(redirections)g(mo)s(dify)
-f(\014le)h(handles)f(in)150 4221 y(the)f(curren)m(t)g(shell)g
+f(\014le)h(handles)f(in)150 5121 y(the)f(curren)m(t)g(shell)g
(execution)h(en)m(vironmen)m(t.)49 b(The)33 b(follo)m(wing)h
-(redirection)g(op)s(erators)f(ma)m(y)h(precede)150 4331
+(redirection)g(op)s(erators)f(ma)m(y)h(precede)150 5230
y(or)29 b(app)s(ear)g(an)m(ywhere)g(within)g(a)h(simple)f(command)g(or)
h(ma)m(y)g(follo)m(w)g(a)g(command.)40 b(Redirections)31
-b(are)150 4441 y(pro)s(cessed)f(in)g(the)g(order)g(they)h(app)s(ear,)f
-(from)g(left)h(to)g(righ)m(t.)275 4573 y(Eac)m(h)45 b(redirection)h
-(that)f(ma)m(y)h(b)s(e)e(preceded)g(b)m(y)h(a)h(\014le)f(descriptor)f
-(n)m(um)m(b)s(er)g(ma)m(y)h(instead)h(b)s(e)150 4682
-y(preceded)22 b(b)m(y)h(a)g(w)m(ord)g(of)f(the)h(form)g
+b(are)150 5340 y(pro)s(cessed)f(in)g(the)g(order)g(they)h(app)s(ear,)f
+(from)g(left)h(to)g(righ)m(t.)p eop end
+%%Page: 42 48
+TeXDict begin 42 47 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(42)275 299
+y(Eac)m(h)45 b(redirection)h(that)f(ma)m(y)h(b)s(e)e(preceded)g(b)m(y)h
+(a)h(\014le)f(descriptor)f(n)m(um)m(b)s(er)g(ma)m(y)h(instead)h(b)s(e)
+150 408 y(preceded)22 b(b)m(y)h(a)g(w)m(ord)g(of)f(the)h(form)g
Fi({)p Fr(v)-5 b(arname)5 b Fi(})p Fu(.)39 b(In)22 b(this)g(case,)k
(for)d(eac)m(h)g(redirection)h(op)s(erator)f(except)150
-4792 y Ft(>&-)36 b Fu(and)h Ft(<&-)p Fu(,)h(the)g(shell)f(allo)s(cates)
-j(a)e(\014le)f(descriptor)g(greater)i(than)e(or)g(equal)h(to)g(10)g
-(and)f(assigns)150 4902 y(it)d(to)h Fi({)p Fr(v)-5 b(arname)5
+518 y Ft(>&-)36 b Fu(and)h Ft(<&-)p Fu(,)h(the)g(shell)f(allo)s(cates)j
+(a)e(\014le)f(descriptor)g(greater)i(than)e(or)g(equal)h(to)g(10)g(and)
+f(assigns)150 628 y(it)d(to)h Fi({)p Fr(v)-5 b(arname)5
b Fi(})p Fu(.)52 b(If)34 b Fi({)p Fr(v)-5 b(arname)5
b Fi(})35 b Fu(precedes)f Ft(>&-)f Fu(or)h Ft(<&-)p Fu(,)g(the)g(v)-5
b(alue)34 b(of)h Fr(v)-5 b(arname)39 b Fu(de\014nes)33
-b(the)h(\014le)150 5011 y(descriptor)g(to)g(close.)52
+b(the)h(\014le)150 737 y(descriptor)g(to)g(close.)52
b(If)34 b Fi({)p Fr(v)-5 b(arname)5 b Fi(})34 b Fu(is)g(supplied,)g
(the)g(redirection)g(p)s(ersists)f(b)s(ey)m(ond)g(the)h(scop)s(e)g(of)
-150 5121 y(the)i(command,)h(whic)m(h)e(allo)m(ws)i(the)f(shell)g
+150 847 y(the)i(command,)h(whic)m(h)e(allo)m(ws)i(the)f(shell)g
(programmer)f(to)h(manage)h(the)e(\014le)h(descriptor's)g(lifetime)150
-5230 y(man)m(ually)d(without)g(using)g(the)g Ft(exec)e
+956 y(man)m(ually)d(without)g(using)g(the)g Ft(exec)e
Fu(builtin.)48 b(The)32 b Ft(varredir_close)d Fu(shell)k(option)g
-(manages)h(this)150 5340 y(b)s(eha)m(vior)c(\(see)i(Section)f(4.3.2)h
-([The)e(Shopt)g(Builtin],)h(page)g(78\).)p eop end
-%%Page: 42 48
-TeXDict begin 42 47 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(42)275 299
-y(In)27 b(the)i(follo)m(wing)h(descriptions,)g(if)e(the)h(\014le)g
-(descriptor)f(n)m(um)m(b)s(er)g(is)g(omitted,)i(and)f(the)f(\014rst)g
-(c)m(har-)150 408 y(acter)42 b(of)f(the)g(redirection)g(op)s(erator)g
-(is)g(`)p Ft(<)p Fu(',)i(the)e(redirection)g(refers)g(to)g(the)g
-(standard)f(input)f(\(\014le)150 518 y(descriptor)33
-b(0\).)49 b(If)33 b(the)g(\014rst)f(c)m(haracter)i(of)g(the)f
-(redirection)g(op)s(erator)h(is)f(`)p Ft(>)p Fu(',)h(the)f(redirection)
-g(refers)150 628 y(to)e(the)g(standard)e(output)h(\(\014le)h
-(descriptor)f(1\).)275 760 y(The)h Fr(w)m(ord)k Fu(follo)m(wing)f(the)e
-(redirection)h(op)s(erator)f(in)g(the)g(follo)m(wing)h(descriptions,)g
-(unless)e(other-)150 869 y(wise)26 b(noted,)i(is)e(sub)5
-b(jected)26 b(to)h(brace)f(expansion,)i(tilde)e(expansion,)i(parameter)
-e(and)g(v)-5 b(ariable)27 b(expan-)150 979 y(sion,)i(command)g
-(substitution,)g(arithmetic)h(expansion,)g(quote)f(remo)m(v)-5
-b(al,)31 b(\014lename)e(expansion,)h(and)150 1088 y(w)m(ord)g
-(splitting.)41 b(If)30 b(it)h(expands)f(to)h(more)f(than)h(one)f(w)m
-(ord,)g(Bash)h(rep)s(orts)f(an)g(error.)275 1220 y(The)f(order)h(of)h
-(redirections)g(is)f(signi\014can)m(t.)42 b(F)-8 b(or)31
-b(example,)g(the)g(command)390 1352 y Ft(ls)47 b(>)h
-Fj(dirlist)d Ft(2>&1)150 1484 y Fu(directs)28 b(b)s(oth)f(standard)g
-(output)g(\(\014le)h(descriptor)f(1\))i(and)e(standard)f(error)i
-(\(\014le)g(descriptor)f(2\))h(to)h(the)150 1594 y(\014le)h
-Fr(dirlist)p Fu(,)h(while)f(the)h(command)390 1726 y
-Ft(ls)47 b(2>&1)g(>)g Fj(dirlist)150 1857 y Fu(directs)28
+(manages)h(this)150 1066 y(b)s(eha)m(vior)c(\(see)i(Section)f(4.3.2)h
+([The)e(Shopt)g(Builtin],)h(page)g(78\).)275 1211 y(In)c(the)i(follo)m
+(wing)h(descriptions,)g(if)e(the)h(\014le)g(descriptor)f(n)m(um)m(b)s
+(er)g(is)g(omitted,)i(and)f(the)f(\014rst)g(c)m(har-)150
+1321 y(acter)42 b(of)f(the)g(redirection)g(op)s(erator)g(is)g(`)p
+Ft(<)p Fu(',)i(the)e(redirection)g(refers)g(to)g(the)g(standard)f
+(input)f(\(\014le)150 1431 y(descriptor)33 b(0\).)49
+b(If)33 b(the)g(\014rst)f(c)m(haracter)i(of)g(the)f(redirection)g(op)s
+(erator)h(is)f(`)p Ft(>)p Fu(',)h(the)f(redirection)g(refers)150
+1540 y(to)e(the)g(standard)e(output)h(\(\014le)h(descriptor)f(1\).)275
+1686 y(The)h Fr(w)m(ord)k Fu(follo)m(wing)f(the)e(redirection)h(op)s
+(erator)f(in)g(the)g(follo)m(wing)h(descriptions,)g(unless)e(other-)150
+1795 y(wise)26 b(noted,)i(is)e(sub)5 b(jected)26 b(to)h(brace)f
+(expansion,)i(tilde)e(expansion,)i(parameter)e(and)g(v)-5
+b(ariable)27 b(expan-)150 1905 y(sion,)i(command)g(substitution,)g
+(arithmetic)h(expansion,)g(quote)f(remo)m(v)-5 b(al,)31
+b(\014lename)e(expansion,)h(and)150 2015 y(w)m(ord)g(splitting.)41
+b(If)30 b(it)h(expands)f(to)h(more)f(than)h(one)f(w)m(ord,)g(Bash)h
+(rep)s(orts)f(an)g(error.)275 2160 y(The)f(order)h(of)h(redirections)g
+(is)f(signi\014can)m(t.)42 b(F)-8 b(or)31 b(example,)g(the)g(command)
+390 2305 y Ft(ls)47 b(>)h Fj(dirlist)d Ft(2>&1)150 2451
+y Fu(directs)28 b(b)s(oth)f(standard)g(output)g(\(\014le)h(descriptor)f
+(1\))i(and)e(standard)f(error)i(\(\014le)g(descriptor)f(2\))h(to)h(the)
+150 2561 y(\014le)h Fr(dirlist)p Fu(,)h(while)f(the)h(command)390
+2706 y Ft(ls)47 b(2>&1)g(>)g Fj(dirlist)150 2852 y Fu(directs)28
b(only)f(the)h(standard)e(output)i(to)g(\014le)f Fr(dirlist)p
Fu(,)h(b)s(ecause)g(the)f(standard)g(error)g(w)m(as)h(made)f(a)h(cop)m
-(y)150 1967 y(of)j(the)f(standard)g(output)g(b)s(efore)g(the)g
+(y)150 2961 y(of)j(the)f(standard)g(output)g(b)s(efore)g(the)g
(standard)g(output)g(w)m(as)g(redirected)h(to)g Fr(dirlist)p
-Fu(.)275 2099 y(Bash)26 b(handles)f(sev)m(eral)j(\014lenames)e(sp)s
+Fu(.)275 3107 y(Bash)26 b(handles)f(sev)m(eral)j(\014lenames)e(sp)s
(ecially)h(when)f(they)g(are)g(used)g(in)g(redirections,)i(as)e
-(describ)s(ed)150 2209 y(in)g(the)g(follo)m(wing)i(table.)40
+(describ)s(ed)150 3216 y(in)g(the)g(follo)m(wing)i(table.)40
b(If)26 b(the)g(op)s(erating)h(system)f(on)h(whic)m(h)e(Bash)i(is)f
-(running)f(pro)m(vides)h(these)g(sp)s(e-)150 2318 y(cial)g(\014les,)g
+(running)f(pro)m(vides)h(these)g(sp)s(e-)150 3326 y(cial)g(\014les,)g
(Bash)e(uses)h(them;)h(otherwise)f(it)g(em)m(ulates)h(them)f(in)m
(ternally)g(with)g(the)f(b)s(eha)m(vior)h(describ)s(ed)150
-2428 y(b)s(elo)m(w.)150 2582 y Ft(/dev/fd/)p Fj(fd)630
-2692 y Fu(If)30 b Fr(fd)j Fu(is)d(a)h(v)-5 b(alid)31
+3435 y(b)s(elo)m(w.)150 3611 y Ft(/dev/fd/)p Fj(fd)630
+3721 y Fu(If)30 b Fr(fd)j Fu(is)d(a)h(v)-5 b(alid)31
b(in)m(teger,)h(duplicate)f(\014le)f(descriptor)h Fr(fd)p
-Fu(.)150 2846 y Ft(/dev/stdin)630 2955 y Fu(File)h(descriptor)e(0)h(is)
-f(duplicated.)150 3110 y Ft(/dev/stdout)630 3219 y Fu(File)i
-(descriptor)e(1)h(is)f(duplicated.)150 3373 y Ft(/dev/stderr)630
-3483 y Fu(File)i(descriptor)e(2)h(is)f(duplicated.)150
-3637 y Ft(/dev/tcp/)p Fj(host)p Ft(/)p Fj(port)630 3747
+Fu(.)150 3891 y Ft(/dev/stdin)630 4001 y Fu(File)h(descriptor)e(0)h(is)
+f(duplicated.)150 4171 y Ft(/dev/stdout)630 4281 y Fu(File)i
+(descriptor)e(1)h(is)f(duplicated.)150 4451 y Ft(/dev/stderr)630
+4561 y Fu(File)i(descriptor)e(2)h(is)f(duplicated.)150
+4731 y Ft(/dev/tcp/)p Fj(host)p Ft(/)p Fj(port)630 4841
y Fu(If)41 b Fr(host)i Fu(is)f(a)g(v)-5 b(alid)41 b(hostname)h(or)f(In)
m(ternet)h(address,)i(and)c Fr(p)s(ort)j Fu(is)f(an)f(in)m(teger)i(p)s
-(ort)630 3856 y(n)m(um)m(b)s(er)23 b(or)i(service)h(name,)g(Bash)f
+(ort)630 4950 y(n)m(um)m(b)s(er)23 b(or)i(service)h(name,)g(Bash)f
(attempts)h(to)f(op)s(en)f(the)h(corresp)s(onding)f(TCP)g(so)s(c)m(k)m
-(et.)150 4011 y Ft(/dev/udp/)p Fj(host)p Ft(/)p Fj(port)630
-4120 y Fu(If)41 b Fr(host)i Fu(is)f(a)g(v)-5 b(alid)41
+(et.)150 5121 y Ft(/dev/udp/)p Fj(host)p Ft(/)p Fj(port)630
+5230 y Fu(If)41 b Fr(host)i Fu(is)f(a)g(v)-5 b(alid)41
b(hostname)h(or)f(In)m(ternet)h(address,)i(and)c Fr(p)s(ort)j
-Fu(is)f(an)f(in)m(teger)i(p)s(ort)630 4230 y(n)m(um)m(b)s(er)23
+Fu(is)f(an)f(in)m(teger)i(p)s(ort)630 5340 y(n)m(um)m(b)s(er)23
b(or)h(service)h(name,)h(Bash)e(attempts)h(to)g(op)s(en)f(the)g
-(corresp)s(onding)f(UDP)i(so)s(c)m(k)m(et.)275 4384 y(A)30
-b(failure)h(to)g(op)s(en)e(or)i(create)h(a)e(\014le)h(causes)g(the)f
-(redirection)h(to)g(fail.)275 4516 y(Redirections)f(using)e(\014le)i
-(descriptors)f(greater)h(than)f(9)h(should)e(b)s(e)h(used)f(with)h
-(care,)h(as)g(they)f(ma)m(y)150 4626 y(con\015ict)i(with)f(\014le)h
-(descriptors)f(the)g(shell)h(uses)f(in)m(ternally)-8
-b(.)150 4820 y Fk(3.6.1)63 b(Redirecting)40 b(Input)150
-4967 y Fu(Redirecting)28 b(input)e(op)s(ens)h(the)g(\014le)g(whose)g
+(corresp)s(onding)f(UDP)i(so)s(c)m(k)m(et.)p eop end
+%%Page: 43 49
+TeXDict begin 43 48 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(43)275 299
+y(A)30 b(failure)h(to)g(op)s(en)e(or)i(create)h(a)e(\014le)h(causes)g
+(the)f(redirection)h(to)g(fail.)275 445 y(Redirections)f(using)e
+(\014le)i(descriptors)f(greater)h(than)f(9)h(should)e(b)s(e)h(used)f
+(with)h(care,)h(as)g(they)f(ma)m(y)150 554 y(con\015ict)i(with)f
+(\014le)h(descriptors)f(the)g(shell)h(uses)f(in)m(ternally)-8
+b(.)150 765 y Fk(3.6.1)63 b(Redirecting)40 b(Input)150
+912 y Fu(Redirecting)28 b(input)e(op)s(ens)h(the)g(\014le)g(whose)g
(name)g(results)g(from)g(the)g(expansion)g(of)h Fr(w)m(ord)i
-Fu(for)d(reading)150 5076 y(on)j(\014le)h(descriptor)f
+Fu(for)d(reading)150 1021 y(on)j(\014le)h(descriptor)f
Ft(n)p Fu(,)g(or)h(the)f(standard)g(input)f(\(\014le)i(descriptor)f
(0\))h(if)g Ft(n)f Fu(is)g(not)h(sp)s(eci\014ed.)275
-5208 y(The)e(general)j(format)e(for)h(redirecting)g(input)e(is:)390
-5340 y Ft([)p Fj(n)p Ft(]<)p Fj(word)p eop end
-%%Page: 43 49
-TeXDict begin 43 48 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(43)150 299
-y Fk(3.6.2)63 b(Redirecting)40 b(Output)150 446 y Fu(Redirecting)25
+1167 y(The)e(general)j(format)e(for)h(redirecting)g(input)e(is:)390
+1313 y Ft([)p Fj(n)p Ft(]<)p Fj(word)150 1523 y Fk(3.6.2)63
+b(Redirecting)40 b(Output)150 1670 y Fu(Redirecting)25
b(output)e(op)s(ens)g(the)i(\014le)f(whose)f(name)h(results)g(from)f
(the)h(expansion)g(of)g Fr(w)m(ord)j Fu(for)d(writing)150
-555 y(on)j(\014le)h(descriptor)f Fr(n)p Fu(,)h(or)f(the)h(standard)e
+1780 y(on)j(\014le)h(descriptor)f Fr(n)p Fu(,)h(or)f(the)h(standard)e
(output)i(\(\014le)f(descriptor)h(1\))g(if)f Fr(n)g Fu(is)h(not)f(sp)s
-(eci\014ed.)39 b(If)27 b(the)h(\014le)150 665 y(do)s(es)i(not)h(exist)g
-(it)g(is)f(created;)i(if)e(it)h(do)s(es)f(exist)h(it)g(is)g(truncated)f
-(to)h(zero)g(size.)275 812 y(The)e(general)j(format)e(for)h
-(redirecting)g(output)f(is:)390 959 y Ft([)p Fj(n)p Ft(]>[|])p
-Fj(word)275 1107 y Fu(If)d(the)h(redirection)h(op)s(erator)f(is)g(`)p
-Ft(>)p Fu(',)h(and)f(the)g Ft(noclobber)d Fu(option)k(to)f(the)h
-Ft(set)e Fu(builtin)g(command)150 1216 y(has)38 b(b)s(een)g(enabled,)i
-(the)f(redirection)g(fails)g(if)f(the)h(\014le)f(whose)g(name)h
-(results)f(from)g(the)g(expansion)150 1326 y(of)g Fr(w)m(ord)i
-Fu(exists)e(and)f(is)g(a)h(regular)g(\014le.)61 b(If)37
-b(the)h(redirection)g(op)s(erator)g(is)f(`)p Ft(>|)p
-Fu(',)i(or)f(the)f(redirection)150 1435 y(op)s(erator)31
+(eci\014ed.)39 b(If)27 b(the)h(\014le)150 1889 y(do)s(es)i(not)h(exist)
+g(it)g(is)f(created;)i(if)e(it)h(do)s(es)f(exist)h(it)g(is)g(truncated)
+f(to)h(zero)g(size.)275 2035 y(The)e(general)j(format)e(for)h
+(redirecting)g(output)f(is:)390 2181 y Ft([)p Fj(n)p
+Ft(]>[|])p Fj(word)275 2327 y Fu(If)d(the)h(redirection)h(op)s(erator)f
+(is)g(`)p Ft(>)p Fu(',)h(and)f(the)g Ft(noclobber)d Fu(option)k(to)f
+(the)h Ft(set)e Fu(builtin)g(command)150 2436 y(has)38
+b(b)s(een)g(enabled,)i(the)f(redirection)g(fails)g(if)f(the)h(\014le)f
+(whose)g(name)h(results)f(from)g(the)g(expansion)150
+2546 y(of)g Fr(w)m(ord)i Fu(exists)e(and)f(is)g(a)h(regular)g(\014le.)
+61 b(If)37 b(the)h(redirection)g(op)s(erator)g(is)f(`)p
+Ft(>|)p Fu(',)i(or)f(the)f(redirection)150 2656 y(op)s(erator)31
b(is)h(`)p Ft(>)p Fu(')f(and)f(the)i Ft(noclobber)c Fu(option)k(to)g
(the)f Ft(set)f Fu(builtin)h(is)g(not)g(enabled,)h(Bash)f(attempts)150
-1545 y(the)g(redirection)g(ev)m(en)g(if)f(the)h(\014le)f(named)g(b)m(y)
-g Fr(w)m(ord)k Fu(exists.)150 1757 y Fk(3.6.3)63 b(App)s(ending)42
-b(Redirected)e(Output)150 1904 y Fu(Redirecting)31 b(output)f(in)g
+2765 y(the)g(redirection)g(ev)m(en)g(if)f(the)h(\014le)f(named)g(b)m(y)
+g Fr(w)m(ord)k Fu(exists.)150 2976 y Fk(3.6.3)63 b(App)s(ending)42
+b(Redirected)e(Output)150 3123 y Fu(Redirecting)31 b(output)f(in)g
(this)g(fashion)f(op)s(ens)h(the)g(\014le)g(whose)g(name)g(results)g
-(from)g(the)g(expansion)g(of)150 2013 y Fr(w)m(ord)g
+(from)g(the)g(expansion)g(of)150 3232 y Fr(w)m(ord)g
Fu(for)c(app)s(ending)f(on)i(\014le)f(descriptor)h Fr(n)p
Fu(,)g(or)f(the)h(standard)f(output)g(\(\014le)h(descriptor)f(1\))i(if)
-e Fr(n)g Fu(is)h(not)150 2123 y(sp)s(eci\014ed.)40 b(If)30
+e Fr(n)g Fu(is)h(not)150 3342 y(sp)s(eci\014ed.)40 b(If)30
b(the)g(\014le)h(do)s(es)f(not)h(exist)g(it)g(is)f(created.)275
-2270 y(The)f(general)j(format)e(for)h(app)s(ending)e(output)h(is:)390
-2417 y Ft([)p Fj(n)p Ft(]>>)p Fj(word)150 2629 y Fk(3.6.4)63
+3488 y(The)f(general)j(format)e(for)h(app)s(ending)e(output)h(is:)390
+3633 y Ft([)p Fj(n)p Ft(]>>)p Fj(word)150 3844 y Fk(3.6.4)63
b(Redirecting)40 b(Standard)h(Output)g(and)g(Standard)g(Error)150
-2776 y Fu(This)26 b(construct)h(redirects)g(b)s(oth)e(the)i(standard)f
+3991 y Fu(This)26 b(construct)h(redirects)g(b)s(oth)e(the)i(standard)f
(output)g(\(\014le)h(descriptor)g(1\))g(and)f(the)h(standard)e(error)
-150 2886 y(output)30 b(\(\014le)h(descriptor)f(2\))h(to)g(the)g(\014le)
+150 4100 y(output)30 b(\(\014le)h(descriptor)f(2\))h(to)g(the)g(\014le)
f(whose)g(name)h(is)f(the)h(expansion)f(of)h Fr(w)m(ord)p
-Fu(.)275 3033 y(There)e(are)i(t)m(w)m(o)h(formats)e(for)h(redirecting)g
-(standard)e(output)h(and)g(standard)f(error:)390 3180
-y Ft(&>)p Fj(word)150 3328 y Fu(and)390 3475 y Ft(>&)p
-Fj(word)150 3622 y Fu(Of)h(the)g(t)m(w)m(o)i(forms,)e(the)h(\014rst)e
+Fu(.)275 4246 y(There)e(are)i(t)m(w)m(o)h(formats)e(for)h(redirecting)g
+(standard)e(output)h(and)g(standard)f(error:)390 4392
+y Ft(&>)p Fj(word)150 4538 y Fu(and)390 4683 y Ft(>&)p
+Fj(word)150 4829 y Fu(Of)h(the)g(t)m(w)m(o)i(forms,)e(the)h(\014rst)e
(is)i(preferred.)39 b(This)30 b(is)g(seman)m(tically)j(equiv)-5
-b(alen)m(t)32 b(to)390 3769 y Ft(>)p Fj(word)46 b Ft(2>&1)275
-3916 y Fu(When)41 b(using)g(the)h(second)f(form,)k Fr(w)m(ord)f
+b(alen)m(t)32 b(to)390 4975 y Ft(>)p Fj(word)46 b Ft(2>&1)275
+5121 y Fu(When)41 b(using)g(the)h(second)f(form,)k Fr(w)m(ord)f
Fu(ma)m(y)e(not)g(expand)f(to)h(a)g(n)m(um)m(b)s(er)f(or)g(`)p
-Ft(-)p Fu('.)75 b(If)41 b(it)h(do)s(es,)150 4026 y(other)27
+Ft(-)p Fu('.)75 b(If)41 b(it)h(do)s(es,)150 5230 y(other)27
b(redirection)g(op)s(erators)f(apply)h(\(see)g(Duplicating)h(File)f
(Descriptors)h(b)s(elo)m(w\))f(for)f(compatibilit)m(y)150
-4135 y(reasons.)150 4347 y Fk(3.6.5)63 b(App)s(ending)42
-b(Standard)f(Output)g(and)g(Standard)g(Error)150 4494
-y Fu(This)27 b(construct)h(app)s(ends)d(b)s(oth)i(the)h(standard)f
-(output)g(\(\014le)h(descriptor)g(1\))g(and)f(the)h(standard)e(error)
-150 4604 y(output)k(\(\014le)h(descriptor)f(2\))h(to)g(the)g(\014le)f
-(whose)g(name)h(is)f(the)h(expansion)f(of)h Fr(w)m(ord)p
-Fu(.)275 4751 y(The)e(format)i(for)f(app)s(ending)f(standard)h(output)g
-(and)f(standard)h(error)g(is:)390 4898 y Ft(&>>)p Fj(word)150
-5046 y Fu(This)g(is)g(seman)m(tically)j(equiv)-5 b(alen)m(t)32
-b(to)390 5193 y Ft(>>)p Fj(word)46 b Ft(2>&1)275 5340
-y Fu(\(see)31 b(Duplicating)h(File)f(Descriptors)g(b)s(elo)m(w\).)p
-eop end
+5340 y(reasons.)p eop end
%%Page: 44 50
TeXDict begin 44 49 bop 150 -116 a Fu(Chapter)30 b(3:)41
b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(44)150 299
-y Fk(3.6.6)63 b(Here)41 b(Do)s(cumen)m(ts)150 446 y Fu(This)36
-b(t)m(yp)s(e)h(of)f(redirection)h(instructs)g(the)f(shell)h(to)h(read)e
-(input)g(from)g(the)g(curren)m(t)h(source)g(un)m(til)f(it)150
-555 y(reads)h(a)h(line)g(con)m(taining)g(only)g Fr(delimiter)45
-b Fu(\(with)37 b(no)g(trailing)i(blanks\).)61 b(All)38
-b(of)g(the)f(lines)h(read)f(up)150 665 y(to)g(that)g(p)s(oin)m(t)f
-(then)g(b)s(ecome)h(the)g(standard)e(input)h(\(or)g(\014le)h
+y Fk(3.6.5)63 b(App)s(ending)42 b(Standard)f(Output)g(and)g(Standard)g
+(Error)150 446 y Fu(This)27 b(construct)h(app)s(ends)d(b)s(oth)i(the)h
+(standard)f(output)g(\(\014le)h(descriptor)g(1\))g(and)f(the)h
+(standard)e(error)150 555 y(output)k(\(\014le)h(descriptor)f(2\))h(to)g
+(the)g(\014le)f(whose)g(name)h(is)f(the)h(expansion)f(of)h
+Fr(w)m(ord)p Fu(.)275 700 y(The)e(format)i(for)f(app)s(ending)f
+(standard)h(output)g(and)f(standard)h(error)g(is:)390
+845 y Ft(&>>)p Fj(word)150 989 y Fu(This)g(is)g(seman)m(tically)j
+(equiv)-5 b(alen)m(t)32 b(to)390 1134 y Ft(>>)p Fj(word)46
+b Ft(2>&1)275 1279 y Fu(\(see)31 b(Duplicating)h(File)f(Descriptors)g
+(b)s(elo)m(w\).)150 1488 y Fk(3.6.6)63 b(Here)41 b(Do)s(cumen)m(ts)150
+1635 y Fu(This)36 b(t)m(yp)s(e)h(of)f(redirection)h(instructs)g(the)f
+(shell)h(to)h(read)e(input)g(from)g(the)g(curren)m(t)h(source)g(un)m
+(til)f(it)150 1744 y(reads)h(a)h(line)g(con)m(taining)g(only)g
+Fr(delimiter)45 b Fu(\(with)37 b(no)g(trailing)i(blanks\).)61
+b(All)38 b(of)g(the)f(lines)h(read)f(up)150 1854 y(to)g(that)g(p)s(oin)
+m(t)f(then)g(b)s(ecome)h(the)g(standard)e(input)h(\(or)g(\014le)h
(descriptor)f Fr(n)g Fu(if)g Fr(n)g Fu(is)g(sp)s(eci\014ed\))g(for)h(a)
-150 775 y(command.)275 914 y(The)29 b(format)i(of)g(here-do)s(cumen)m
-(ts)f(is:)390 1053 y Ft([)p Fj(n)p Ft(]<<[)p Fq(\000)p
-Ft(])p Fj(word)772 1163 y(here-document)390 1272 y(delimiter)275
-1412 y Fu(The)35 b(shell)h(do)s(es)f(not)h(p)s(erform)e(parameter)j
+150 1964 y(command.)275 2108 y(The)29 b(format)i(of)g(here-do)s(cumen)m
+(ts)f(is:)390 2253 y Ft([)p Fj(n)p Ft(]<<[)p Fq(\000)p
+Ft(])p Fj(word)772 2362 y(here-document)390 2472 y(delimiter)275
+2617 y Fu(The)35 b(shell)h(do)s(es)f(not)h(p)s(erform)e(parameter)j
(and)e(v)-5 b(ariable)36 b(expansion,)h(command)f(substitution,)150
-1521 y(arithmetic)c(expansion,)e(or)g(\014lename)h(expansion)f(on)h
-Fr(w)m(ord)p Fu(.)275 1661 y(If)f(an)m(y)g(part)h(of)g
+2726 y(arithmetic)c(expansion,)e(or)g(\014lename)h(expansion)f(on)h
+Fr(w)m(ord)p Fu(.)275 2871 y(If)f(an)m(y)g(part)h(of)g
Fr(w)m(ord)i Fu(is)e(quoted,)g(the)g Fr(delimiter)37
b Fu(is)31 b(the)g(result)f(of)h(quote)g(remo)m(v)-5
-b(al)32 b(on)e Fr(w)m(ord)p Fu(,)h(and)150 1770 y(the)36
+b(al)32 b(on)e Fr(w)m(ord)p Fu(,)h(and)150 2980 y(the)36
b(lines)f(in)h(the)f(here-do)s(cumen)m(t)h(are)g(not)g(expanded.)55
b(If)35 b Fr(w)m(ord)k Fu(is)c(unquoted,)h Fr(delimiter)43
-b Fu(is)36 b Fr(w)m(ord)150 1880 y Fu(itself,)h(and)d(the)h(here-do)s
+b Fu(is)36 b Fr(w)m(ord)150 3090 y Fu(itself,)h(and)d(the)h(here-do)s
(cumen)m(t)f(text)i(is)f(treated)g(similarly)h(to)f(a)g(double-quoted)g
-(string:)49 b(all)36 b(lines)150 1989 y(of)i(the)g(here-do)s(cumen)m(t)
+(string:)49 b(all)36 b(lines)150 3200 y(of)i(the)g(here-do)s(cumen)m(t)
g(are)g(sub)5 b(jected)38 b(to)h(parameter)f(expansion,)i(command)e
-(substitution,)i(and)150 2099 y(arithmetic)h(expansion,)i(the)d(c)m
+(substitution,)i(and)150 3309 y(arithmetic)h(expansion,)i(the)d(c)m
(haracter)i(sequence)e Ft(\\newline)e Fu(is)i(treated)h(literally)-8
-b(,)45 b(and)40 b(`)p Ft(\\)p Fu(')g(m)m(ust)150 2209
+b(,)45 b(and)40 b(`)p Ft(\\)p Fu(')g(m)m(ust)150 3419
y(b)s(e)31 b(used)g(to)i(quote)g(the)f(c)m(haracters)h(`)p
Ft(\\)p Fu(',)g(`)p Ft($)p Fu(',)f(and)g(`)p Ft(`)p Fu(';)h(ho)m(w)m
(ev)m(er,)h(double)d(quote)i(c)m(haracters)g(ha)m(v)m(e)g(no)150
-2318 y(sp)s(ecial)e(meaning.)275 2457 y(If)j(the)i(redirection)g(op)s
-(erator)g(is)f(`)p Ft(<<-)p Fu(',)i(the)f(shell)f(strips)g(leading)h
-(tab)g(c)m(haracters)h(are)e(stripp)s(ed)150 2567 y(from)28
-b(input)f(lines)i(and)f(the)h(line)f(con)m(taining)i
-Fr(delimiter)p Fu(.)41 b(This)28 b(allo)m(ws)i(here-do)s(cumen)m(ts)e
-(within)g(shell)150 2677 y(scripts)i(to)h(b)s(e)f(inden)m(ted)g(in)g(a)
-h(natural)f(fashion.)275 2816 y(If)25 b(the)h(delimiter)h(is)f(not)g
-(quoted,)i(the)e Ft(\\<newline>)d Fu(sequence)k(is)f(treated)h(as)f(a)g
-(line)h(con)m(tin)m(uation:)150 2925 y(the)j(t)m(w)m(o)h(lines)f(are)g
-(joined)g(and)f(the)h(bac)m(kslash-newline)h(is)f(remo)m(v)m(ed.)41
-b(This)29 b(happ)s(ens)f(while)i(reading)150 3035 y(the)j(here-do)s
-(cumen)m(t,)g(b)s(efore)f(the)h(c)m(hec)m(k)h(for)f(the)f(ending)h
-(delimiter,)h(so)f(joined)f(lines)h(can)g(form)f(the)150
-3145 y(end)e(delimiter.)150 3349 y Fk(3.6.7)63 b(Here)41
-b(Strings)150 3496 y Fu(A)30 b(v)-5 b(arian)m(t)32 b(of)e(here)h(do)s
-(cumen)m(ts,)f(the)g(format)h(is:)390 3635 y Ft([)p Fj(n)p
-Ft(]<<<)46 b Fj(word)275 3774 y Fu(The)29 b Fr(w)m(ord)k
-Fu(undergo)s(es)c(tilde)i(expansion,)f(parameter)h(and)e(v)-5
-b(ariable)31 b(expansion,)f(command)g(sub-)150 3884 y(stitution,)f
-(arithmetic)f(expansion,)g(and)f(quote)h(remo)m(v)-5
+3528 y(sp)s(ecial)e(meaning.)275 3673 y(If)38 b(the)i(redirection)g(op)
+s(erator)f(is)h(`)p Ft(<<-)p Fu(',)h(the)f(shell)f(strips)g(leading)h
+(tab)f(c)m(haracters)i(from)e(input)150 3783 y(lines)33
+b(and)f(the)h(line)h(con)m(taining)g Fr(delimiter)p Fu(.)49
+b(This)32 b(allo)m(ws)i(here-do)s(cumen)m(ts)f(within)f(shell)i
+(scripts)e(to)150 3892 y(b)s(e)e(inden)m(ted)g(in)g(a)h(natural)f
+(fashion.)275 4037 y(If)d(the)i(delimiter)f(is)h(not)f(quoted,)h(the)f
+(shell)h(treats)g(the)f Ft(\\<newline>)e Fu(sequence)i(as)h(a)f(line)h
+(con)m(tin-)150 4146 y(uation:)41 b(the)30 b(t)m(w)m(o)i(lines)e(are)h
+(joined)f(and)g(the)g(bac)m(kslash-newline)h(is)f(remo)m(v)m(ed.)42
+b(This)30 b(happ)s(ens)e(while)150 4256 y(reading)36
+b(the)h(here-do)s(cumen)m(t,)h(b)s(efore)e(the)g(c)m(hec)m(k)i(for)e
+(the)h(ending)f(delimiter,)i(so)f(joined)f(lines)h(can)150
+4366 y(form)30 b(the)g(end)g(delimiter.)150 4575 y Fk(3.6.7)63
+b(Here)41 b(Strings)150 4722 y Fu(A)30 b(v)-5 b(arian)m(t)32
+b(of)e(here)h(do)s(cumen)m(ts,)f(the)g(format)h(is:)390
+4867 y Ft([)p Fj(n)p Ft(]<<<)46 b Fj(word)275 5011 y
+Fu(The)29 b Fr(w)m(ord)k Fu(undergo)s(es)c(tilde)i(expansion,)f
+(parameter)h(and)e(v)-5 b(ariable)31 b(expansion,)f(command)g(sub-)150
+5121 y(stitution,)f(arithmetic)f(expansion,)g(and)f(quote)h(remo)m(v)-5
b(al.)41 b(Filename)29 b(expansion)e(and)f(w)m(ord)h(splitting)150
-3993 y(are)35 b(not)g(p)s(erformed.)51 b(The)34 b(result)h(is)g
+5230 y(are)35 b(not)g(p)s(erformed.)51 b(The)34 b(result)h(is)g
(supplied)e(as)i(a)f(single)i(string,)f(with)g(a)g(newline)f(app)s
-(ended,)g(to)150 4103 y(the)d(command)f(on)g(its)h(standard)e(input)h
+(ended,)g(to)150 5340 y(the)d(command)f(on)g(its)h(standard)e(input)h
(\(or)g(\014le)h(descriptor)f Fr(n)g Fu(if)g Fr(n)g Fu(is)h(sp)s
-(eci\014ed\).)150 4307 y Fk(3.6.8)63 b(Duplicating)41
-b(File)g(Descriptors)150 4454 y Fu(The)30 b(redirection)h(op)s(erator)
-390 4593 y Ft([)p Fj(n)p Ft(]<&)p Fj(word)150 4733 y
-Fu(is)44 b(used)f(to)i(duplicate)f(input)f(\014le)h(descriptors.)81
-b(If)44 b Fr(w)m(ord)j Fu(expands)c(to)i(one)f(or)g(more)g(digits,)k
-(\014le)150 4842 y(descriptor)39 b Fr(n)g Fu(is)g(made)g(to)h(b)s(e)f
-(a)g(cop)m(y)h(of)g(that)f(\014le)h(descriptor.)67 b(It)39
-b(is)g(a)h(redirection)g(error)f(if)g(the)150 4952 y(digits)34
-b(in)e Fr(w)m(ord)37 b Fu(do)c(not)g(sp)s(ecify)g(a)g(\014le)g
-(descriptor)g(op)s(en)g(for)f(input.)48 b(If)33 b Fr(w)m(ord)j
-Fu(ev)-5 b(aluates)35 b(to)f(`)p Ft(-)p Fu(',)g(\014le)150
-5061 y(descriptor)c Fr(n)g Fu(is)g(closed.)42 b(If)30
-b Fr(n)g Fu(is)g(not)h(sp)s(eci\014ed,)f(this)g(uses)g(the)g(standard)g
-(input)f(\(\014le)i(descriptor)f(0\).)275 5201 y(The)f(op)s(erator)390
-5340 y Ft([)p Fj(n)p Ft(]>&)p Fj(word)p eop end
+(eci\014ed\).)p eop end
%%Page: 45 51
TeXDict begin 45 50 bop 150 -116 a Fu(Chapter)30 b(3:)41
b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(45)150 299
-y(is)40 b(used)g(similarly)h(to)f(duplicate)h(output)f(\014le)g
-(descriptors.)70 b(If)40 b Fr(n)g Fu(is)g(not)h(sp)s(eci\014ed,)h(this)
-e(uses)g(the)150 408 y(standard)e(output)g(\(\014le)h(descriptor)f
-(1\).)66 b(It)38 b(is)h(a)f(redirection)h(error)g(if)f(the)h(digits)g
-(in)f Fr(w)m(ord)j Fu(do)e(not)150 518 y(sp)s(ecify)28
-b(a)i(\014le)e(descriptor)h(op)s(en)f(for)h(output.)40
-b(If)28 b Fr(w)m(ord)k Fu(ev)-5 b(aluates)30 b(to)g(`)p
-Ft(-)p Fu(',)f(\014le)g(descriptor)g Fr(n)f Fu(is)h(closed.)150
-628 y(As)34 b(a)g(sp)s(ecial)h(case,)h(if)e Fr(n)f Fu(is)h(omitted,)i
-(and)e Fr(w)m(ord)j Fu(do)s(es)d(not)g(expand)f(to)i(one)f(or)g(more)g
-(digits)h(or)f(`)p Ft(-)p Fu(',)150 737 y(this)c(redirects)h(the)g
-(standard)e(output)h(and)g(standard)f(error)h(as)h(describ)s(ed)e
-(previously)-8 b(.)150 927 y Fk(3.6.9)63 b(Mo)m(ving)41
-b(File)h(Descriptors)150 1074 y Fu(The)30 b(redirection)h(op)s(erator)
-390 1204 y Ft([)p Fj(n)p Ft(]<&)p Fj(digit)p Ft(-)150
-1334 y Fu(mo)m(v)m(es)i(the)f(\014le)g(descriptor)f Fr(digit)k
-Fu(to)d(\014le)g(descriptor)g Fr(n)p Fu(,)f(or)h(the)g(standard)f
-(input)f(\(\014le)j(descriptor)e(0\))150 1443 y(if)f
-Fr(n)g Fu(is)h(not)f(sp)s(eci\014ed.)40 b Fr(digit)33
-b Fu(is)e(closed)g(after)g(b)s(eing)f(duplicated)g(to)h
-Fr(n)p Fu(.)275 1573 y(Similarly)-8 b(,)31 b(the)f(redirection)h(op)s
-(erator)390 1703 y Ft([)p Fj(n)p Ft(]>&)p Fj(digit)p
-Ft(-)150 1833 y Fu(mo)m(v)m(es)e(the)g(\014le)f(descriptor)f
+y Fk(3.6.8)63 b(Duplicating)41 b(File)g(Descriptors)150
+446 y Fu(The)30 b(redirection)h(op)s(erator)390 578 y
+Ft([)p Fj(n)p Ft(]<&)p Fj(word)150 710 y Fu(is)44 b(used)f(to)i
+(duplicate)f(input)f(\014le)h(descriptors.)81 b(If)44
+b Fr(w)m(ord)j Fu(expands)c(to)i(one)f(or)g(more)g(digits,)k(\014le)150
+820 y(descriptor)39 b Fr(n)g Fu(is)g(made)g(to)h(b)s(e)f(a)g(cop)m(y)h
+(of)g(that)f(\014le)h(descriptor.)67 b(It)39 b(is)g(a)h(redirection)g
+(error)f(if)g(the)150 930 y(digits)34 b(in)e Fr(w)m(ord)37
+b Fu(do)c(not)g(sp)s(ecify)g(a)g(\014le)g(descriptor)g(op)s(en)g(for)f
+(input.)48 b(If)33 b Fr(w)m(ord)j Fu(ev)-5 b(aluates)35
+b(to)f(`)p Ft(-)p Fu(',)g(\014le)150 1039 y(descriptor)c
+Fr(n)g Fu(is)g(closed.)42 b(If)30 b Fr(n)g Fu(is)g(not)h(sp)s
+(eci\014ed,)f(this)g(uses)g(the)g(standard)g(input)f(\(\014le)i
+(descriptor)f(0\).)275 1171 y(The)f(op)s(erator)390 1304
+y Ft([)p Fj(n)p Ft(]>&)p Fj(word)150 1436 y Fu(is)40
+b(used)g(similarly)h(to)f(duplicate)h(output)f(\014le)g(descriptors.)70
+b(If)40 b Fr(n)g Fu(is)g(not)h(sp)s(eci\014ed,)h(this)e(uses)g(the)150
+1546 y(standard)e(output)g(\(\014le)h(descriptor)f(1\).)66
+b(It)38 b(is)h(a)f(redirection)h(error)g(if)f(the)h(digits)g(in)f
+Fr(w)m(ord)j Fu(do)e(not)150 1655 y(sp)s(ecify)28 b(a)i(\014le)e
+(descriptor)h(op)s(en)f(for)h(output.)40 b(If)28 b Fr(w)m(ord)k
+Fu(ev)-5 b(aluates)30 b(to)g(`)p Ft(-)p Fu(',)f(\014le)g(descriptor)g
+Fr(n)f Fu(is)h(closed.)150 1765 y(As)34 b(a)g(sp)s(ecial)h(case,)h(if)e
+Fr(n)f Fu(is)h(omitted,)i(and)e Fr(w)m(ord)j Fu(do)s(es)d(not)g(expand)
+f(to)i(one)f(or)g(more)g(digits)h(or)f(`)p Ft(-)p Fu(',)150
+1874 y(this)c(redirects)h(the)g(standard)e(output)h(and)g(standard)f
+(error)h(as)h(describ)s(ed)e(previously)-8 b(.)150 2069
+y Fk(3.6.9)63 b(Mo)m(ving)41 b(File)h(Descriptors)150
+2216 y Fu(The)30 b(redirection)h(op)s(erator)390 2348
+y Ft([)p Fj(n)p Ft(]<&)p Fj(digit)p Ft(-)150 2481 y Fu(mo)m(v)m(es)i
+(the)f(\014le)g(descriptor)f Fr(digit)k Fu(to)d(\014le)g(descriptor)g
+Fr(n)p Fu(,)f(or)h(the)g(standard)f(input)f(\(\014le)j(descriptor)e
+(0\))150 2590 y(if)f Fr(n)g Fu(is)h(not)f(sp)s(eci\014ed.)40
+b Fr(digit)33 b Fu(is)e(closed)g(after)g(b)s(eing)f(duplicated)g(to)h
+Fr(n)p Fu(.)275 2723 y(Similarly)-8 b(,)31 b(the)f(redirection)h(op)s
+(erator)390 2855 y Ft([)p Fj(n)p Ft(]>&)p Fj(digit)p
+Ft(-)150 2987 y Fu(mo)m(v)m(es)e(the)g(\014le)f(descriptor)f
Fr(digit)k Fu(to)e(\014le)f(descriptor)g Fr(n)p Fu(,)g(or)g(the)g
(standard)f(output)h(\(\014le)g(descriptor)g(1\))150
-1942 y(if)i Fr(n)g Fu(is)h(not)f(sp)s(eci\014ed.)150
-2132 y Fk(3.6.10)63 b(Op)s(ening)42 b(File)g(Descriptors)g(for)g
-(Reading)e(and)h(W)-10 b(riting)150 2279 y Fu(The)30
-b(redirection)h(op)s(erator)390 2409 y Ft([)p Fj(n)p
-Ft(]<>)p Fj(word)150 2539 y Fu(op)s(ens)37 b(the)h(\014le)g(whose)f
+3097 y(if)i Fr(n)g Fu(is)h(not)f(sp)s(eci\014ed.)150
+3292 y Fk(3.6.10)63 b(Op)s(ening)42 b(File)g(Descriptors)g(for)g
+(Reading)e(and)h(W)-10 b(riting)150 3438 y Fu(The)30
+b(redirection)h(op)s(erator)390 3571 y Ft([)p Fj(n)p
+Ft(]<>)p Fj(word)150 3703 y Fu(op)s(ens)37 b(the)h(\014le)g(whose)f
(name)h(is)g(the)g(expansion)g(of)g Fr(w)m(ord)j Fu(for)c(b)s(oth)g
-(reading)h(and)f(writing)h(on)g(\014le)150 2648 y(descriptor)i
+(reading)h(and)f(writing)h(on)g(\014le)150 3813 y(descriptor)i
Fr(n)p Fu(,)i(or)f(on)f(\014le)g(descriptor)g(0)h(if)f
Fr(n)f Fu(is)i(not)f(sp)s(eci\014ed.)70 b(If)39 b(the)i(\014le)f(do)s
-(es)g(not)g(exist,)k(it)d(is)150 2758 y(created.)150
-2989 y Fs(3.7)68 b(Executing)46 b(Commands)150 3209 y
-Fk(3.7.1)63 b(Simple)41 b(Command)h(Expansion)150 3356
+(es)g(not)g(exist,)k(it)d(is)150 3922 y(created.)150
+4159 y Fs(3.7)68 b(Executing)46 b(Commands)150 4381 y
+Fk(3.7.1)63 b(Simple)41 b(Command)h(Expansion)150 4527
y Fu(When)34 b(the)g(shell)h(executes)g(a)g(simple)f(command,)h(it)g(p)
s(erforms)d(the)j(follo)m(wing)g(expansions,)g(assign-)150
-3465 y(men)m(ts,)c(and)f(redirections,)h(from)f(left)h(to)g(righ)m(t,)g
-(in)f(the)h(follo)m(wing)h(order.)199 3595 y(1.)61 b(The)38
+4637 y(men)m(ts,)c(and)f(redirections,)h(from)f(left)h(to)g(righ)m(t,)g
+(in)f(the)h(follo)m(wing)h(order.)199 4769 y(1.)61 b(The)38
b(w)m(ords)f(that)i(the)g(parser)e(has)h(mark)m(ed)g(as)h(v)-5
b(ariable)39 b(assignmen)m(ts)g(\(those)g(preceding)f(the)330
-3705 y(command)30 b(name\))h(and)f(redirections)h(are)f(sa)m(v)m(ed)i
-(for)e(later)h(pro)s(cessing.)199 3834 y(2.)61 b(The)39
+4879 y(command)30 b(name\))h(and)f(redirections)h(are)f(sa)m(v)m(ed)i
+(for)e(later)h(pro)s(cessing.)199 5011 y(2.)61 b(The)39
b(w)m(ords)g(that)i(are)f(not)g(v)-5 b(ariable)40 b(assignmen)m(ts)h
(or)e(redirections)i(are)f(expanded)f(\(see)h(Sec-)330
-3944 y(tion)d(3.5)i([Shell)e(Expansions],)h(page)g(24\).)61
+5121 y(tion)d(3.5)i([Shell)e(Expansions],)h(page)g(25\).)61
b(If)37 b(an)m(y)g(w)m(ords)f(remain)h(after)h(expansion,)h(the)e
-(\014rst)330 4054 y(w)m(ord)31 b(is)g(tak)m(en)h(to)g(b)s(e)f(the)g
+(\014rst)330 5230 y(w)m(ord)31 b(is)g(tak)m(en)h(to)g(b)s(e)f(the)g
(name)h(of)f(the)h(command)f(and)f(the)i(remaining)f(w)m(ords)g(are)g
-(the)h(argu-)330 4163 y(men)m(ts.)199 4293 y(3.)61 b(Redirections)25
-b(are)f(p)s(erformed)f(as)h(describ)s(ed)f(ab)s(o)m(v)m(e)i(\(see)g
-(Section)g(3.6)g([Redirections],)i(page)d(41\).)199 4423
-y(4.)61 b(The)25 b(text)h(after)f(the)g(`)p Ft(=)p Fu(')h(in)e(eac)m(h)
-j(v)-5 b(ariable)25 b(assignmen)m(t)h(undergo)s(es)e(tilde)i
-(expansion,)g(parameter)330 4532 y(expansion,)49 b(command)d
-(substitution,)j(arithmetic)d(expansion,)k(and)45 b(quote)h(remo)m(v)-5
-b(al)46 b(b)s(efore)330 4642 y(b)s(eing)30 b(assigned)h(to)g(the)f(v)-5
-b(ariable.)275 4792 y(If)32 b(no)i(command)f(name)g(results,)h(the)g(v)
--5 b(ariable)34 b(assignmen)m(ts)g(a\013ect)h(the)f(curren)m(t)f(shell)
-h(en)m(viron-)150 4902 y(men)m(t.)68 b(In)38 b(the)h(case)i(of)e(suc)m
-(h)g(a)g(command)g(\(one)h(that)g(consists)g(only)f(of)g(assignmen)m(t)
-h(statemen)m(ts)150 5011 y(and)27 b(redirections\),)i(assignmen)m(t)g
+(the)h(argu-)330 5340 y(men)m(ts.)p eop end
+%%Page: 46 52
+TeXDict begin 46 51 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(46)199 299
+y(3.)61 b(Redirections)25 b(are)f(p)s(erformed)f(as)h(describ)s(ed)f
+(ab)s(o)m(v)m(e)i(\(see)g(Section)g(3.6)g([Redirections],)i(page)d
+(41\).)199 426 y(4.)61 b(The)25 b(text)h(after)f(the)g(`)p
+Ft(=)p Fu(')h(in)e(eac)m(h)j(v)-5 b(ariable)25 b(assignmen)m(t)h
+(undergo)s(es)e(tilde)i(expansion,)g(parameter)330 536
+y(expansion,)49 b(command)d(substitution,)j(arithmetic)d(expansion,)k
+(and)45 b(quote)h(remo)m(v)-5 b(al)46 b(b)s(efore)330
+646 y(b)s(eing)30 b(assigned)h(to)g(the)f(v)-5 b(ariable.)275
+791 y(If)32 b(no)i(command)f(name)g(results,)h(the)g(v)-5
+b(ariable)34 b(assignmen)m(ts)g(a\013ect)h(the)f(curren)m(t)f(shell)h
+(en)m(viron-)150 901 y(men)m(t.)68 b(In)38 b(the)h(case)i(of)e(suc)m(h)
+g(a)g(command)g(\(one)h(that)g(consists)g(only)f(of)g(assignmen)m(t)h
+(statemen)m(ts)150 1010 y(and)27 b(redirections\),)i(assignmen)m(t)g
(statemen)m(ts)g(are)f(p)s(erformed)e(b)s(efore)h(redirections.)41
-b(Otherwise,)28 b(the)150 5121 y(v)-5 b(ariables)27 b(are)g(added)e(to)
+b(Otherwise,)28 b(the)150 1120 y(v)-5 b(ariables)27 b(are)g(added)e(to)
i(the)g(en)m(vironmen)m(t)g(of)f(the)h(executed)g(command)f(and)g(do)g
-(not)h(a\013ect)h(the)e(cur-)150 5230 y(ren)m(t)32 b(shell)f(en)m
+(not)h(a\013ect)h(the)e(cur-)150 1230 y(ren)m(t)32 b(shell)f(en)m
(vironmen)m(t.)44 b(If)31 b(an)m(y)g(of)h(the)f(assignmen)m(ts)h
(attempts)g(to)g(assign)g(a)f(v)-5 b(alue)32 b(to)g(a)g(readonly)150
-5340 y(v)-5 b(ariable,)31 b(an)g(error)f(o)s(ccurs,)g(and)g(the)g
-(command)g(exits)i(with)e(a)g(non-zero)h(status.)p eop
-end
-%%Page: 46 52
-TeXDict begin 46 51 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(46)275 299
-y(If)33 b(no)g(command)g(name)h(results,)g(redirections)g(are)g(p)s
+1339 y(v)-5 b(ariable,)31 b(an)g(error)f(o)s(ccurs,)g(and)g(the)g
+(command)g(exits)i(with)e(a)g(non-zero)h(status.)275
+1467 y(If)i(no)g(command)g(name)h(results,)g(redirections)g(are)g(p)s
(erformed,)f(but)g(do)h(not)f(a\013ect)i(the)f(curren)m(t)150
-408 y(shell)d(en)m(vironmen)m(t.)41 b(A)30 b(redirection)h(error)f
+1576 y(shell)d(en)m(vironmen)m(t.)41 b(A)30 b(redirection)h(error)f
(causes)h(the)g(command)f(to)h(exit)g(with)f(a)h(non-zero)g(status.)275
-545 y(If)26 b(there)i(is)f(a)h(command)f(name)h(left)g(after)g
+1704 y(If)26 b(there)i(is)f(a)h(command)f(name)h(left)g(after)g
(expansion,)g(execution)h(pro)s(ceeds)e(as)g(describ)s(ed)f(b)s(elo)m
-(w.)150 655 y(Otherwise,)39 b(the)e(command)g(exits.)62
+(w.)150 1813 y(Otherwise,)39 b(the)e(command)g(exits.)62
b(If)37 b(one)g(of)g(the)h(expansions)f(con)m(tained)h(a)g(command)f
-(substitu-)150 764 y(tion,)i(the)d(exit)h(status)g(of)f(the)h(command)f
-(is)h(the)f(exit)h(status)g(of)f(the)h(last)g(command)f(substitution)
-150 874 y(p)s(erformed.)i(If)27 b(there)h(w)m(ere)g(no)f(command)g
+(substitu-)150 1923 y(tion,)i(the)d(exit)h(status)g(of)f(the)h(command)
+f(is)h(the)f(exit)h(status)g(of)f(the)h(last)g(command)f(substitution)
+150 2033 y(p)s(erformed.)i(If)27 b(there)h(w)m(ere)g(no)f(command)g
(substitutions,)h(the)g(command)f(exits)h(with)f(a)h(zero)g(status.)150
-1075 y Fk(3.7.2)63 b(Command)41 b(Searc)m(h)f(and)h(Execution)150
-1222 y Fu(After)i(a)h(command)f(has)g(b)s(een)f(split)h(in)m(to)h(w)m
+2218 y Fk(3.7.2)63 b(Command)41 b(Searc)m(h)f(and)h(Execution)150
+2365 y Fu(After)i(a)h(command)f(has)g(b)s(een)f(split)h(in)m(to)h(w)m
(ords,)j(if)c(it)g(results)g(in)g(a)h(simple)f(command)g(and)f(an)150
-1332 y(optional)32 b(list)f(of)f(argumen)m(ts,)h(the)g(shell)f(p)s
-(erforms)f(the)i(follo)m(wing)g(actions.)199 1469 y(1.)61
+2475 y(optional)32 b(list)f(of)f(argumen)m(ts,)h(the)g(shell)f(p)s
+(erforms)f(the)i(follo)m(wing)g(actions.)199 2602 y(1.)61
b(If)24 b(the)g(command)g(name)g(con)m(tains)i(no)e(slashes,)i(the)e
(shell)h(attempts)g(to)g(lo)s(cate)h(it.)39 b(If)24 b(there)g(exists)
-330 1578 y(a)h(shell)g(function)f(b)m(y)g(that)h(name,)h(that)f
+330 2712 y(a)h(shell)g(function)f(b)m(y)g(that)h(name,)h(that)f
(function)f(is)h(in)m(v)m(ok)m(ed)h(as)e(describ)s(ed)g(in)g(Section)h
-(3.3)h([Shell)330 1688 y(F)-8 b(unctions],)31 b(page)h(19.)199
-1823 y(2.)61 b(If)41 b(the)g(name)h(do)s(es)f(not)g(matc)m(h)i(a)e
+(3.3)h([Shell)330 2821 y(F)-8 b(unctions],)31 b(page)h(19.)199
+2949 y(2.)61 b(If)41 b(the)g(name)h(do)s(es)f(not)g(matc)m(h)i(a)e
(function,)j(the)e(shell)f(searc)m(hes)i(for)e(it)h(in)f(the)g(list)h
-(of)g(shell)330 1933 y(builtins.)e(If)30 b(a)h(matc)m(h)g(is)f(found,)g
-(that)h(builtin)f(is)g(in)m(v)m(ok)m(ed.)199 2069 y(3.)61
+(of)g(shell)330 3059 y(builtins.)e(If)30 b(a)h(matc)m(h)g(is)f(found,)g
+(that)h(builtin)f(is)g(in)m(v)m(ok)m(ed.)199 3186 y(3.)61
b(If)40 b(the)g(name)h(is)f(neither)h(a)f(shell)h(function)f(nor)g(a)g
(builtin,)j(and)d(con)m(tains)h(no)g(slashes,)i(Bash)330
-2178 y(searc)m(hes)c(eac)m(h)g(elemen)m(t)g(of)g Ft($PATH)d
+3296 y(searc)m(hes)c(eac)m(h)g(elemen)m(t)g(of)g Ft($PATH)d
Fu(for)i(a)g(directory)h(con)m(taining)g(an)f(executable)h(\014le)f(b)m
-(y)g(that)330 2288 y(name.)56 b(Bash)36 b(uses)f(a)h(hash)e(table)j(to)
+(y)g(that)330 3405 y(name.)56 b(Bash)36 b(uses)f(a)h(hash)e(table)j(to)
f(remem)m(b)s(er)f(the)h(full)f(pathnames)g(of)h(executable)h(\014les)e
-(to)330 2397 y(a)m(v)m(oid)e(m)m(ultiple)f Ft(PATH)f
+(to)330 3515 y(a)m(v)m(oid)e(m)m(ultiple)f Ft(PATH)f
Fu(searc)m(hes)i(\(see)f(the)g(description)g(of)f Ft(hash)g
-Fu(in)g(Section)i(4.1)f([Bourne)g(Shell)330 2507 y(Builtins],)h(page)f
+Fu(in)g(Section)i(4.1)f([Bourne)g(Shell)330 3624 y(Builtins],)h(page)f
(52\).)46 b(Bash)31 b(p)s(erforms)f(a)i(full)g(searc)m(h)g(of)g(the)f
(directories)i(in)e Ft($PATH)f Fu(only)i(if)g(the)330
-2617 y(command)24 b(is)h(not)g(found)e(in)i(the)g(hash)f(table.)39
+3734 y(command)24 b(is)h(not)g(found)e(in)i(the)g(hash)f(table.)39
b(If)25 b(the)f(searc)m(h)i(is)e(unsuccessful,)h(the)g(shell)g(searc)m
-(hes)330 2726 y(for)e(a)h(de\014ned)e(shell)h(function)h(named)e
+(hes)330 3844 y(for)e(a)h(de\014ned)e(shell)h(function)h(named)e
Ft(command_not_found_handle)p Fu(.)32 b(If)23 b(that)h(function)f
-(exists,)330 2836 y(it)33 b(is)f(in)m(v)m(ok)m(ed)i(in)e(a)h(separate)h
+(exists,)330 3953 y(it)33 b(is)f(in)m(v)m(ok)m(ed)i(in)e(a)h(separate)h
(execution)f(en)m(vironmen)m(t)g(with)f(the)h(original)h(command)e(and)
-g(the)330 2945 y(original)26 b(command's)e(argumen)m(ts)h(as)g(its)g
+g(the)330 4063 y(original)26 b(command's)e(argumen)m(ts)h(as)g(its)g
(argumen)m(ts,)h(and)e(the)h(function's)f(exit)i(status)f(b)s(ecomes)
-330 3055 y(the)j(exit)g(status)g(of)f(that)h(subshell.)39
+330 4172 y(the)j(exit)g(status)g(of)f(that)h(subshell.)39
b(If)27 b(that)h(function)f(is)h(not)g(de\014ned,)f(the)g(shell)h(prin)
-m(ts)f(an)g(error)330 3165 y(message)k(and)f(returns)f(an)i(exit)g
-(status)g(of)f(127.)199 3300 y(4.)61 b(If)33 b(the)g(searc)m(h)h(is)g
+m(ts)f(an)g(error)330 4282 y(message)k(and)f(returns)f(an)i(exit)g
+(status)g(of)f(127.)199 4410 y(4.)61 b(If)33 b(the)g(searc)m(h)h(is)g
(successful,)g(or)f(if)g(the)h(command)f(name)g(con)m(tains)i(one)f(or)
-f(more)g(slashes,)i(the)330 3410 y(shell)g(executes)h(the)f(named)f
+f(more)g(slashes,)i(the)330 4519 y(shell)g(executes)h(the)f(named)f
(program)g(in)h(a)g(separate)h(execution)f(en)m(vironmen)m(t.)55
-b(Argumen)m(t)35 b(0)330 3519 y(is)30 b(set)h(to)h(the)e(name)h(giv)m
+b(Argumen)m(t)35 b(0)330 4629 y(is)30 b(set)h(to)h(the)e(name)h(giv)m
(en,)g(and)f(the)h(remaining)f(argumen)m(ts)h(to)g(the)g(command)f(are)
-h(set)g(to)g(the)330 3629 y(argumen)m(ts)g(supplied,)e(if)h(an)m(y)-8
-b(.)199 3764 y(5.)61 b(If)31 b(this)f(execution)j(fails)e(b)s(ecause)g
+h(set)g(to)g(the)330 4738 y(argumen)m(ts)g(supplied,)e(if)h(an)m(y)-8
+b(.)199 4866 y(5.)61 b(If)31 b(this)f(execution)j(fails)e(b)s(ecause)g
(the)g(\014le)g(is)g(not)h(in)e(executable)j(format,)f(and)e(the)h
-(\014le)g(is)g(not)h(a)330 3874 y(directory)-8 b(,)33
+(\014le)g(is)g(not)h(a)330 4976 y(directory)-8 b(,)33
b(it)g(is)e(assumed)g(to)i(b)s(e)e(a)h Fr(shell)g(script)p
Fu(,)g(a)h(\014le)e(con)m(taining)j(shell)e(commands,)g(and)f(the)330
-3984 y(shell)g(executes)g(it)g(as)g(describ)s(ed)e(in)h(Section)h(3.8)h
-([Shell)e(Scripts],)g(page)i(50.)199 4119 y(6.)61 b(If)38
+5085 y(shell)g(executes)g(it)g(as)g(describ)s(ed)e(in)h(Section)h(3.8)h
+([Shell)e(Scripts],)g(page)i(50.)199 5213 y(6.)61 b(If)38
b(the)h(command)f(w)m(as)h(not)g(b)s(egun)e(async)m(hronously)-8
b(,)42 b(the)c(shell)h(w)m(aits)h(for)e(the)h(command)f(to)330
-4229 y(complete)32 b(and)e(collects)i(its)f(exit)g(status.)150
-4430 y Fk(3.7.3)63 b(Command)41 b(Execution)f(En)m(vironmen)m(t)150
-4577 y Fu(The)30 b(shell)g(has)h(an)f Fr(execution)h(en)m(vironmen)m(t)
-p Fu(,)h(whic)m(h)e(consists)h(of)f(the)h(follo)m(wing:)225
-4714 y Fq(\017)60 b Fu(Op)s(en)29 b(\014les)i(inherited)f(b)m(y)g(the)h
-(shell)g(at)g(in)m(v)m(o)s(cation,)i(as)e(mo)s(di\014ed)e(b)m(y)i
-(redirections)g(supplied)e(to)330 4824 y(the)i Ft(exec)e
-Fu(builtin.)225 4959 y Fq(\017)60 b Fu(The)33 b(curren)m(t)g(w)m
-(orking)h(directory)g(as)f(set)h(b)m(y)g Ft(cd)p Fu(,)g
-Ft(pushd)p Fu(,)f(or)g Ft(popd)p Fu(,)g(or)h(inherited)f(b)m(y)g(the)h
-(shell)330 5069 y(at)d(in)m(v)m(o)s(cation.)225 5204
-y Fq(\017)60 b Fu(The)30 b(\014le)g(creation)i(mo)s(de)e(mask)g(as)h
-(set)g(b)m(y)f Ft(umask)f Fu(or)h(inherited)h(from)e(the)i(shell's)g
-(paren)m(t.)225 5340 y Fq(\017)60 b Fu(Curren)m(t)29
-b(traps)h(set)h(b)m(y)g Ft(trap)p Fu(.)p eop end
+5322 y(complete)32 b(and)e(collects)i(its)f(exit)g(status.)p
+eop end
%%Page: 47 53
TeXDict begin 47 52 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(47)225 299
-y Fq(\017)60 b Fu(Shell)28 b(parameters)h(that)g(are)g(set)g(b)m(y)f(v)
--5 b(ariable)29 b(assignmen)m(t)g(or)g(with)f Ft(set)f
-Fu(or)i(inherited)f(from)g(the)330 408 y(shell's)j(paren)m(t)f(in)g
-(the)h(en)m(vironmen)m(t.)225 542 y Fq(\017)60 b Fu(Shell)42
-b(functions)g(de\014ned)f(during)h(execution)h(or)g(inherited)f(from)g
-(the)g(shell's)h(paren)m(t)g(in)f(the)330 651 y(en)m(vironmen)m(t.)225
-784 y Fq(\017)60 b Fu(Options)30 b(enabled)h(at)g(in)m(v)m(o)s(cation)i
-(\(either)f(b)m(y)e(default)h(or)g(with)f(command-line)i(argumen)m
-(ts\))f(or)330 894 y(b)m(y)f Ft(set)p Fu(.)225 1027 y
-Fq(\017)60 b Fu(Options)30 b(enabled)g(b)m(y)h Ft(shopt)d
-Fu(\(see)k(Section)f(4.3.2)h([The)e(Shopt)g(Builtin],)h(page)g(78\).)
-225 1160 y Fq(\017)60 b Fu(Shell)30 b(aliases)i(de\014ned)d(with)h
-Ft(alias)f Fu(\(see)j(Section)f(6.6)g([Aliases],)h(page)g(109\).)225
-1293 y Fq(\017)60 b Fu(V)-8 b(arious)49 b(pro)s(cess)f
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(47)150 299
+y Fk(3.7.3)63 b(Command)41 b(Execution)f(En)m(vironmen)m(t)150
+446 y Fu(The)30 b(shell)g(has)h(an)f Fr(execution)h(en)m(vironmen)m(t)p
+Fu(,)h(whic)m(h)e(consists)h(of)f(the)h(follo)m(wing:)225
+579 y Fq(\017)60 b Fu(Op)s(en)29 b(\014les)i(inherited)f(b)m(y)g(the)h
+(shell)g(at)g(in)m(v)m(o)s(cation,)i(as)e(mo)s(di\014ed)e(b)m(y)i
+(redirections)g(supplied)e(to)330 688 y(the)i Ft(exec)e
+Fu(builtin.)225 821 y Fq(\017)60 b Fu(The)33 b(curren)m(t)g(w)m(orking)
+h(directory)g(as)f(set)h(b)m(y)g Ft(cd)p Fu(,)g Ft(pushd)p
+Fu(,)f(or)g Ft(popd)p Fu(,)g(or)h(inherited)f(b)m(y)g(the)h(shell)330
+931 y(at)d(in)m(v)m(o)s(cation.)225 1063 y Fq(\017)60
+b Fu(The)30 b(\014le)g(creation)i(mo)s(de)e(mask)g(as)h(set)g(b)m(y)f
+Ft(umask)f Fu(or)h(inherited)h(from)e(the)i(shell's)g(paren)m(t.)225
+1196 y Fq(\017)60 b Fu(Curren)m(t)29 b(traps)h(set)h(b)m(y)g
+Ft(trap)p Fu(.)225 1329 y Fq(\017)60 b Fu(Shell)28 b(parameters)h(that)
+g(are)g(set)g(b)m(y)f(v)-5 b(ariable)29 b(assignmen)m(t)g(or)g(with)f
+Ft(set)f Fu(or)i(inherited)f(from)g(the)330 1439 y(shell's)j(paren)m(t)
+f(in)g(the)h(en)m(vironmen)m(t.)225 1571 y Fq(\017)60
+b Fu(Shell)42 b(functions)g(de\014ned)f(during)h(execution)h(or)g
+(inherited)f(from)g(the)g(shell's)h(paren)m(t)g(in)f(the)330
+1681 y(en)m(vironmen)m(t.)225 1814 y Fq(\017)60 b Fu(Options)30
+b(enabled)h(at)g(in)m(v)m(o)s(cation)i(\(either)f(b)m(y)e(default)h(or)
+g(with)f(command-line)i(argumen)m(ts\))f(or)330 1923
+y(b)m(y)f Ft(set)p Fu(.)225 2056 y Fq(\017)60 b Fu(Options)30
+b(enabled)g(b)m(y)h Ft(shopt)d Fu(\(see)k(Section)f(4.3.2)h([The)e
+(Shopt)g(Builtin],)h(page)g(78\).)225 2189 y Fq(\017)60
+b Fu(Shell)30 b(aliases)i(de\014ned)d(with)h Ft(alias)f
+Fu(\(see)j(Section)f(6.6)g([Aliases],)h(page)g(109\).)225
+2322 y Fq(\017)60 b Fu(V)-8 b(arious)49 b(pro)s(cess)f
Fm(id)p Fu(s,)53 b(including)47 b(those)i(of)f(bac)m(kground)g(jobs)g
-(\(see)h(Section)g(3.2.4)h([Lists],)330 1403 y(page)31
+(\(see)h(Section)g(3.2.4)h([Lists],)330 2431 y(page)31
b(11\),)h(the)f(v)-5 b(alue)30 b(of)h Ft($$)p Fu(,)f(and)g(the)g(v)-5
-b(alue)31 b(of)g Ft($PPID)p Fu(.)275 1560 y(When)j(a)g(simple)h
+b(alue)31 b(of)g Ft($PPID)p Fu(.)275 2587 y(When)j(a)g(simple)h
(command)f(other)g(than)g(a)h(builtin)f(or)g(shell)h(function)f(is)g
-(to)h(b)s(e)f(executed,)i(it)f(is)150 1669 y(in)m(v)m(ok)m(ed)25
+(to)h(b)s(e)f(executed,)i(it)f(is)150 2697 y(in)m(v)m(ok)m(ed)25
b(in)f(a)g(separate)h(execution)g(en)m(vironmen)m(t)g(that)f(consists)g
(of)h(the)f(follo)m(wing.)40 b(Unless)24 b(otherwise)150
-1779 y(noted,)31 b(the)f(v)-5 b(alues)31 b(are)g(inherited)f(from)g
-(the)g(shell.)225 1912 y Fq(\017)60 b Fu(The)28 b(shell's)h(op)s(en)f
+2807 y(noted,)31 b(the)f(v)-5 b(alues)31 b(are)g(inherited)f(from)g
+(the)g(shell.)225 2939 y Fq(\017)60 b Fu(The)28 b(shell's)h(op)s(en)f
(\014les,)h(plus)f(an)m(y)g(mo)s(di\014cations)h(and)f(additions)h(sp)s
-(eci\014ed)f(b)m(y)g(redirections)h(to)330 2021 y(the)i(command.)225
-2155 y Fq(\017)60 b Fu(The)30 b(curren)m(t)g(w)m(orking)h(directory)-8
-b(.)225 2288 y Fq(\017)60 b Fu(The)30 b(\014le)g(creation)i(mo)s(de)e
-(mask.)225 2421 y Fq(\017)60 b Fu(Shell)31 b(v)-5 b(ariables)31
+(eci\014ed)f(b)m(y)g(redirections)h(to)330 3049 y(the)i(command.)225
+3182 y Fq(\017)60 b Fu(The)30 b(curren)m(t)g(w)m(orking)h(directory)-8
+b(.)225 3315 y Fq(\017)60 b Fu(The)30 b(\014le)g(creation)i(mo)s(de)e
+(mask.)225 3447 y Fq(\017)60 b Fu(Shell)31 b(v)-5 b(ariables)31
b(and)f(functions)h(mark)m(ed)f(for)h(exp)s(ort,)g(along)h(with)e(v)-5
-b(ariables)32 b(exp)s(orted)e(for)h(the)330 2530 y(command,)f(passed)g
+b(ariables)32 b(exp)s(orted)e(for)h(the)330 3557 y(command,)f(passed)g
(in)g(the)h(en)m(vironmen)m(t)g(\(see)g(Section)g(3.7.4)i([En)m
-(vironmen)m(t],)e(page)g(47\).)225 2664 y Fq(\017)60
+(vironmen)m(t],)e(page)g(48\).)225 3690 y Fq(\017)60
b Fu(T)-8 b(raps)29 b(caugh)m(t)i(b)m(y)e(the)h(shell)g(are)g(reset)g
(to)g(the)g(v)-5 b(alues)30 b(inherited)f(from)h(the)f(shell's)h(paren)
-m(t,)h(and)330 2773 y(traps)f(ignored)h(b)m(y)f(the)g(shell)h(are)g
-(ignored.)275 2930 y(A)41 b(command)g(in)m(v)m(ok)m(ed)i(in)e(this)h
+m(t,)h(and)330 3799 y(traps)f(ignored)h(b)m(y)f(the)g(shell)h(are)g
+(ignored.)275 3955 y(A)41 b(command)g(in)m(v)m(ok)m(ed)i(in)e(this)h
(separate)g(en)m(vironmen)m(t)g(cannot)g(a\013ect)h(the)f(shell's)g
-(execution)150 3039 y(en)m(vironmen)m(t.)275 3172 y(A)30
+(execution)150 4065 y(en)m(vironmen)m(t.)275 4198 y(A)30
b Fr(subshell)j Fu(is)d(a)h(cop)m(y)g(of)g(the)f(shell)h(pro)s(cess.)
-275 3306 y(Command)k(substitution,)j(commands)e(group)s(ed)f(with)i
-(paren)m(theses,)h(and)e(async)m(hronous)g(com-)150 3415
+275 4330 y(Command)k(substitution,)j(commands)e(group)s(ed)f(with)i
+(paren)m(theses,)h(and)e(async)m(hronous)g(com-)150 4440
y(mands)c(are)h(in)m(v)m(ok)m(ed)i(in)d(a)i(subshell)e(en)m(vironmen)m
(t)h(that)h(is)f(a)g(duplicate)h(of)f(the)g(shell)g(en)m(vironmen)m(t,)
-150 3525 y(except)i(that)g(traps)f(caugh)m(t)h(b)m(y)f(the)h(shell)f
+150 4550 y(except)i(that)g(traps)f(caugh)m(t)h(b)m(y)f(the)h(shell)f
(are)g(reset)h(to)g(the)f(v)-5 b(alues)35 b(that)g(the)f(shell)h
-(inherited)e(from)150 3634 y(its)43 b(paren)m(t)f(at)h(in)m(v)m(o)s
+(inherited)e(from)150 4659 y(its)43 b(paren)m(t)f(at)h(in)m(v)m(o)s
(cation.)78 b(Builtin)43 b(commands)f(that)h(are)f(in)m(v)m(ok)m(ed)i
-(as)e(part)g(of)h(a)f(pip)s(eline,)j(ex-)150 3744 y(cept)32
+(as)e(part)g(of)h(a)f(pip)s(eline,)j(ex-)150 4769 y(cept)32
b(p)s(ossibly)e(in)h(the)h(last)g(elemen)m(t)h(dep)s(ending)c(on)j(the)
f(v)-5 b(alue)32 b(of)f(the)h Ft(lastpipe)d Fu(shell)i(option)h(\(see)
-150 3854 y(Section)37 b(4.3.2)i([The)d(Shopt)g(Builtin],)j(page)e
+150 4878 y(Section)37 b(4.3.2)i([The)d(Shopt)g(Builtin],)j(page)e
(78\),)j(are)d(also)h(executed)f(in)f(a)h(subshell)f(en)m(vironmen)m
-(t.)150 3963 y(Changes)27 b(made)g(to)h(the)g(subshell)e(en)m(vironmen)
+(t.)150 4988 y(Changes)27 b(made)g(to)h(the)g(subshell)e(en)m(vironmen)
m(t)i(cannot)g(a\013ect)h(the)e(shell's)h(execution)g(en)m(vironmen)m
-(t.)275 4096 y(When)i(the)h(shell)g(is)g(in)f Fm(posix)h
+(t.)275 5121 y(When)i(the)h(shell)g(is)g(in)f Fm(posix)h
Fu(mo)s(de,)f(subshells)g(spa)m(wned)g(to)i(execute)g(command)e
-(substitutions)150 4206 y(inherit)35 b(the)g(v)-5 b(alue)35
+(substitutions)150 5230 y(inherit)35 b(the)g(v)-5 b(alue)35
b(of)h(the)f Ft(-e)f Fu(option)h(from)g(the)g(paren)m(t)g(shell.)55
b(When)35 b(not)g(in)g Fm(posix)f Fu(mo)s(de,)i(Bash)150
-4315 y(clears)41 b(the)f Ft(-e)f Fu(option)h(in)g(suc)m(h)f(subshells)g
+5340 y(clears)41 b(the)f Ft(-e)f Fu(option)h(in)g(suc)m(h)f(subshells)g
(See)h(the)g(description)g(of)g(the)g Ft(inherit_errexit)c
-Fu(shell)150 4425 y(option)30 b(\(see)h(Section)g(4.2)g([Bash)f
-(Builtins],)h(page)g(61\))g(for)f(ho)m(w)g(to)g(con)m(trol)i(this)e(b)s
-(eha)m(vior)g(when)f(not)150 4535 y(in)h Fm(posix)g Fu(mo)s(de.)275
-4668 y(If)23 b(a)h(command)g(is)g(follo)m(w)m(ed)h(b)m(y)f(a)g(`)p
-Ft(&)p Fu(')g(and)f(job)h(con)m(trol)h(is)f(not)g(activ)m(e,)k(the)c
-(default)g(standard)f(input)150 4777 y(for)35 b(the)g(command)g(is)g
-(the)g(empt)m(y)h(\014le)f Ft(/dev/null)p Fu(.)52 b(Otherwise,)37
-b(the)e(in)m(v)m(ok)m(ed)h(command)f(inherits)150 4887
-y(the)c(\014le)f(descriptors)g(of)h(the)f(calling)i(shell)f(as)f(mo)s
-(di\014ed)g(b)m(y)g(redirections.)150 5083 y Fk(3.7.4)63
-b(En)m(vironmen)m(t)150 5230 y Fu(When)29 b(a)g(program)f(is)h(in)m(v)m
-(ok)m(ed)h(it)g(is)f(giv)m(en)g(an)g(arra)m(y)g(of)g(strings)g(called)h
-(the)f Fr(en)m(vironmen)m(t)p Fu(.)41 b(This)28 b(is)h(a)150
-5340 y(list)i(of)g(name-v)-5 b(alue)31 b(pairs,)f(of)h(the)f(form)g
-Ft(name=value)p Fu(.)p eop end
+Fu(shell)p eop end
%%Page: 48 54
TeXDict begin 48 53 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(48)275 299
-y(Bash)39 b(pro)m(vides)g(sev)m(eral)i(w)m(a)m(ys)g(to)f(manipulate)f
-(the)h(en)m(vironmen)m(t.)69 b(On)38 b(in)m(v)m(o)s(cation,)44
-b(the)c(shell)150 408 y(scans)g(its)h(o)m(wn)f(en)m(vironmen)m(t)h(and)
-f(creates)i(a)f(parameter)f(for)g(eac)m(h)i(name)e(found,)i
-(automatically)150 518 y(marking)23 b(it)h(for)f Ft(export)f
-Fu(to)i(c)m(hild)g(pro)s(cesses.)38 b(Executed)24 b(commands)f(inherit)
-g(the)g(en)m(vironmen)m(t.)39 b(The)150 628 y Ft(export)p
-Fu(,)21 b(`)p Ft(declare)29 b(-x)p Fu(',)22 b(and)e Ft(unset)g
-Fu(commands)g(mo)s(dify)g(the)h(en)m(vironmen)m(t)g(b)m(y)g(adding)f
-(and)g(deleting)150 737 y(parameters)43 b(and)f(functions.)78
-b(If)42 b(the)h(v)-5 b(alue)43 b(of)g(a)g(parameter)g(in)g(the)g(en)m
-(vironmen)m(t)g(is)g(mo)s(di\014ed,)150 847 y(the)h(new)f(v)-5
-b(alue)45 b(automatically)h(b)s(ecomes)f(part)e(of)h(the)g(en)m
-(vironmen)m(t,)k(replacing)d(the)f(old.)81 b(The)150
-956 y(en)m(vironmen)m(t)27 b(inherited)g(b)m(y)g(an)m(y)g(executed)g
-(command)g(consists)g(of)g(the)g(shell's)g(initial)h(en)m(vironmen)m
-(t,)150 1066 y(whose)c(v)-5 b(alues)25 b(ma)m(y)h(b)s(e)e(mo)s
-(di\014ed)f(in)i(the)f(shell,)j(less)e(an)m(y)g(pairs)f(remo)m(v)m(ed)i
-(b)m(y)e(the)h Ft(unset)e Fu(and)h(`)p Ft(export)150
-1176 y(-n)p Fu(')30 b(commands,)g(plus)g(an)m(y)g(additions)h(via)g
-(the)f Ft(export)f Fu(and)h(`)p Ft(declare)e(-x)p Fu(')i(commands.)275
-1306 y(If)f(an)m(y)h(parameter)h(assignmen)m(t)f(statemen)m(ts,)i(as)e
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(48)150 299
+y(option)30 b(\(see)h(Section)g(4.2)g([Bash)f(Builtins],)h(page)g(61\))
+g(for)f(ho)m(w)g(to)g(con)m(trol)i(this)e(b)s(eha)m(vior)g(when)f(not)
+150 408 y(in)h Fm(posix)g Fu(mo)s(de.)275 552 y(If)38
+b(a)h(command)f(is)g(follo)m(w)m(ed)j(b)m(y)d(a)h(`)p
+Ft(&)p Fu(')g(and)f(job)g(con)m(trol)i(is)e(not)h(activ)m(e,)k(the)c
+(default)g(standard)150 662 y(input)34 b(for)i(the)f(command)h(is)f
+(the)h(empt)m(y)g(\014le)f Ft(/dev/null)p Fu(,)f(unless)h(the)h
+(command)f(has)g(an)h(explicit)150 772 y(redirection)29
+b(in)m(v)m(olving)i(the)e(standard)f(input.)39 b(Otherwise,)29
+b(the)g(in)m(v)m(ok)m(ed)h(command)e(inherits)h(the)g(\014le)150
+881 y(descriptors)h(of)h(the)f(calling)i(shell)f(as)f(mo)s(di\014ed)f
+(b)m(y)i(redirections.)150 1090 y Fk(3.7.4)63 b(En)m(vironmen)m(t)150
+1237 y Fu(When)29 b(a)g(program)f(is)h(in)m(v)m(ok)m(ed)h(it)g(is)f
+(giv)m(en)g(an)g(arra)m(y)g(of)g(strings)g(called)h(the)f
+Fr(en)m(vironmen)m(t)p Fu(.)41 b(This)28 b(is)h(a)150
+1346 y(list)i(of)g(name-v)-5 b(alue)31 b(pairs,)f(of)h(the)f(form)g
+Ft(name=value)p Fu(.)275 1490 y(Bash)39 b(pro)m(vides)g(sev)m(eral)i(w)
+m(a)m(ys)g(to)f(manipulate)f(the)h(en)m(vironmen)m(t.)69
+b(On)38 b(in)m(v)m(o)s(cation,)44 b(the)c(shell)150 1600
+y(scans)g(its)h(o)m(wn)f(en)m(vironmen)m(t)h(and)f(creates)i(a)f
+(parameter)f(for)g(eac)m(h)i(name)e(found,)i(automatically)150
+1710 y(marking)23 b(it)h(for)f Ft(export)f Fu(to)i(c)m(hild)g(pro)s
+(cesses.)38 b(Executed)24 b(commands)f(inherit)g(the)g(en)m(vironmen)m
+(t.)39 b(The)150 1819 y Ft(export)p Fu(,)21 b(`)p Ft(declare)29
+b(-x)p Fu(',)22 b(and)e Ft(unset)g Fu(commands)g(mo)s(dify)g(the)h(en)m
+(vironmen)m(t)g(b)m(y)g(adding)f(and)g(deleting)150 1929
+y(parameters)43 b(and)f(functions.)78 b(If)42 b(the)h(v)-5
+b(alue)43 b(of)g(a)g(parameter)g(in)g(the)g(en)m(vironmen)m(t)g(is)g
+(mo)s(di\014ed,)150 2038 y(the)h(new)f(v)-5 b(alue)45
+b(automatically)h(b)s(ecomes)f(part)e(of)h(the)g(en)m(vironmen)m(t,)k
+(replacing)d(the)f(old.)81 b(The)150 2148 y(en)m(vironmen)m(t)27
+b(inherited)g(b)m(y)g(an)m(y)g(executed)g(command)g(consists)g(of)g
+(the)g(shell's)g(initial)h(en)m(vironmen)m(t,)150 2258
+y(whose)c(v)-5 b(alues)25 b(ma)m(y)h(b)s(e)e(mo)s(di\014ed)f(in)i(the)f
+(shell,)j(less)e(an)m(y)g(pairs)f(remo)m(v)m(ed)i(b)m(y)e(the)h
+Ft(unset)e Fu(and)h(`)p Ft(export)150 2367 y(-n)p Fu(')30
+b(commands,)g(plus)g(an)m(y)g(additions)h(via)g(the)f
+Ft(export)f Fu(and)h(`)p Ft(declare)e(-x)p Fu(')i(commands.)275
+2511 y(If)f(an)m(y)h(parameter)h(assignmen)m(t)f(statemen)m(ts,)i(as)e
(describ)s(ed)f(in)h(Section)g(3.4)h([Shell)f(P)m(arameters],)150
-1416 y(page)j(22,)h(app)s(ear)d(b)s(efore)h(a)g(simple)h(command,)f
+2621 y(page)j(22,)h(app)s(ear)d(b)s(efore)h(a)g(simple)h(command,)f
(the)h(v)-5 b(ariable)33 b(assignmen)m(ts)f(are)h(part)f(of)g(that)h
-(com-)150 1525 y(mand's)26 b(en)m(vironmen)m(t)h(for)g(as)g(long)h(as)f
+(com-)150 2730 y(mand's)26 b(en)m(vironmen)m(t)h(for)g(as)g(long)h(as)f
(it)g(executes.)41 b(These)26 b(assignmen)m(t)i(statemen)m(ts)g
-(a\013ect)h(only)e(the)150 1635 y(en)m(vironmen)m(t)h(seen)g(b)m(y)f
+(a\013ect)h(only)e(the)150 2840 y(en)m(vironmen)m(t)h(seen)g(b)m(y)f
(that)h(command.)40 b(If)27 b(these)h(assignmen)m(ts)g(precede)g(a)g
-(call)h(to)f(a)g(shell)g(function,)150 1744 y(the)j(v)-5
+(call)h(to)f(a)g(shell)g(function,)150 2949 y(the)j(v)-5
b(ariables)31 b(are)f(lo)s(cal)i(to)f(the)g(function)f(and)g(exp)s
-(orted)g(to)h(that)g(function's)f(c)m(hildren.)275 1875
+(orted)g(to)h(that)g(function's)f(c)m(hildren.)275 3093
y(If)g(the)h Ft(-k)g Fu(option)g(is)g(set)h(\(see)g(Section)g(4.3.1)g
([The)f(Set)g(Builtin],)h(page)g(74\),)h(then)e(all)g(parameter)150
-1985 y(assignmen)m(ts)f(are)g(placed)h(in)e(the)h(en)m(vironmen)m(t)g
+3203 y(assignmen)m(ts)f(are)g(placed)h(in)e(the)h(en)m(vironmen)m(t)g
(for)g(a)g(command,)f(not)h(just)f(those)i(that)f(precede)g(the)150
-2094 y(command)g(name.)275 2225 y(When)h(Bash)h(in)m(v)m(ok)m(es)i(an)e
+3313 y(command)g(name.)275 3457 y(When)h(Bash)h(in)m(v)m(ok)m(es)i(an)e
(external)h(command,)f(the)g(v)-5 b(ariable)33 b(`)p
Ft($_)p Fu(')f(is)g(set)h(to)f(the)g(full)g(pathname)150
-2334 y(of)f(the)f(command)g(and)g(passed)g(to)h(that)g(command)f(in)g
-(its)h(en)m(vironmen)m(t.)150 2526 y Fk(3.7.5)63 b(Exit)40
-b(Status)150 2673 y Fu(The)23 b(exit)i(status)f(of)h(an)e(executed)i
+3566 y(of)f(the)f(command)g(and)g(passed)g(to)h(that)g(command)f(in)g
+(its)h(en)m(vironmen)m(t.)150 3775 y Fk(3.7.5)63 b(Exit)40
+b(Status)150 3922 y Fu(The)23 b(exit)i(status)f(of)h(an)e(executed)i
(command)f(is)g(the)g(v)-5 b(alue)24 b(returned)f(b)m(y)h(the)g
-Ft(waitpid)e Fu(system)i(call)h(or)150 2782 y(equiv)-5
+Ft(waitpid)e Fu(system)i(call)h(or)150 4031 y(equiv)-5
b(alen)m(t)33 b(function.)45 b(Exit)32 b(statuses)g(fall)g(b)s(et)m(w)m
(een)h(0)f(and)f(255,)i(though,)f(as)g(explained)g(b)s(elo)m(w,)h(the)
-150 2892 y(shell)i(ma)m(y)g(use)f(v)-5 b(alues)35 b(ab)s(o)m(v)m(e)g
+150 4141 y(shell)i(ma)m(y)g(use)f(v)-5 b(alues)35 b(ab)s(o)m(v)m(e)g
(125)h(sp)s(ecially)-8 b(.)54 b(Exit)35 b(statuses)g(from)f(shell)h
-(builtins)f(and)f(comp)s(ound)150 3001 y(commands)j(are)g(also)h
+(builtins)f(and)f(comp)s(ound)150 4251 y(commands)j(are)g(also)h
(limited)g(to)g(this)f(range.)58 b(Under)36 b(certain)h(circumstances,)
-h(the)e(shell)h(will)f(use)150 3111 y(sp)s(ecial)31 b(v)-5
+h(the)e(shell)h(will)f(use)150 4360 y(sp)s(ecial)31 b(v)-5
b(alues)31 b(to)g(indicate)g(sp)s(eci\014c)f(failure)h(mo)s(des.)275
-3242 y(F)-8 b(or)32 b(the)g(shell's)g(purp)s(oses,)e(a)j(command)e
+4504 y(F)-8 b(or)32 b(the)g(shell's)g(purp)s(oses,)e(a)j(command)e
(whic)m(h)h(exits)g(with)g(a)g(zero)g(exit)h(status)f(has)f(succeeded.)
-150 3351 y(So)38 b(while)f(an)h(exit)h(status)f(of)g(zero)g(indicates)h
+150 4614 y(So)38 b(while)f(an)h(exit)h(status)f(of)g(zero)g(indicates)h
(success,)h(a)e(non-zero)g(exit)h(status)f(indicates)g(failure.)150
-3461 y(This)27 b(seemingly)i(coun)m(ter-in)m(tuitiv)m(e)i(sc)m(heme)e
+4723 y(This)27 b(seemingly)i(coun)m(ter-in)m(tuitiv)m(e)i(sc)m(heme)e
(is)f(used)f(so)h(there)h(is)f(one)g(w)m(ell-de\014ned)g(w)m(a)m(y)h
-(to)g(indicate)150 3570 y(success)i(and)e(a)i(v)-5 b(ariet)m(y)32
+(to)g(indicate)150 4833 y(success)i(and)e(a)i(v)-5 b(ariet)m(y)32
b(of)e(w)m(a)m(ys)i(to)f(indicate)g(v)-5 b(arious)31
-b(failure)f(mo)s(des.)275 3701 y(When)g(a)h(command)g(terminates)g(on)g
+b(failure)f(mo)s(des.)275 4977 y(When)g(a)h(command)g(terminates)g(on)g
(a)g(fatal)h(signal)f(whose)g(n)m(um)m(b)s(er)e(is)i
-Fr(N)p Fu(,)g(Bash)g(uses)g(the)f(v)-5 b(alue)150 3811
+Fr(N)p Fu(,)g(Bash)g(uses)g(the)f(v)-5 b(alue)150 5086
y(128)p Ft(+)p Fr(N)41 b Fu(as)31 b(the)g(exit)g(status.)275
-3941 y(If)k(a)h(command)g(is)g(not)g(found,)g(the)g(c)m(hild)h(pro)s
+5230 y(If)k(a)h(command)g(is)g(not)g(found,)g(the)g(c)m(hild)h(pro)s
(cess)e(created)i(to)g(execute)g(it)g(returns)d(a)j(status)f(of)150
-4051 y(127.)42 b(If)30 b(a)h(command)f(is)g(found)f(but)h(is)g(not)h
-(executable,)h(the)f(return)e(status)i(is)f(126.)275
-4181 y(If)i(a)i(command)f(fails)g(b)s(ecause)g(of)h(an)f(error)f
-(during)g(expansion)h(or)g(redirection,)i(the)f(exit)g(status)150
-4291 y(is)c(greater)i(than)e(zero.)275 4421 y(The)38
-b(exit)h(status)g(is)g(used)f(b)m(y)g(the)h(Bash)g(conditional)h
-(commands)e(\(see)h(Section)h(3.2.5.2)h([Con-)150 4531
-y(ditional)i(Constructs],)h(page)f(12\))g(and)e(some)i(of)f(the)g(list)
-g(constructs)g(\(see)h(Section)f(3.2.4)i([Lists],)150
-4641 y(page)31 b(11\).)275 4771 y(All)40 b(of)g(the)h(Bash)f(builtins)f
-(return)g(an)h(exit)h(status)g(of)f(zero)h(if)f(they)g(succeed)g(and)g
-(a)g(non-zero)150 4881 y(status)34 b(on)f(failure,)i(so)f(they)g(ma)m
-(y)g(b)s(e)f(used)g(b)m(y)g(the)h(conditional)h(and)e(list)h
-(constructs.)50 b(All)35 b(builtins)150 4990 y(return)e(an)i(exit)g
-(status)g(of)f(2)h(to)g(indicate)h(incorrect)f(usage,)h(generally)g(in)
-m(v)-5 b(alid)35 b(options)g(or)f(missing)150 5100 y(argumen)m(ts.)275
-5230 y(The)f(exit)i(status)f(of)h(the)f(last)h(command)f(is)g(a)m(v)-5
-b(ailable)36 b(in)e(the)g(sp)s(ecial)h(parameter)f($?)52
-b(\(see)35 b(Sec-)150 5340 y(tion)c(3.4.2)h([Sp)s(ecial)f(P)m
-(arameters],)h(page)f(23\).)p eop end
+5340 y(127.)42 b(If)30 b(a)h(command)f(is)g(found)f(but)h(is)g(not)h
+(executable,)h(the)f(return)e(status)i(is)f(126.)p eop
+end
%%Page: 49 55
TeXDict begin 49 54 bop 150 -116 a Fu(Chapter)30 b(3:)41
b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(49)275 299
-y(Bash)32 b(itself)i(returns)e(the)h(exit)g(status)g(of)g(the)g(last)h
-(command)e(executed,)j(unless)d(a)h(syn)m(tax)g(error)150
-408 y(o)s(ccurs,)38 b(in)f(whic)m(h)f(case)i(it)f(exits)g(with)g(a)g
-(non-zero)g(v)-5 b(alue.)60 b(See)37 b(also)h(the)e Ft(exit)g
-Fu(builtin)g(command)150 518 y(\(see)31 b(Section)h(4.1)f([Bourne)f
-(Shell)h(Builtins],)g(page)g(52.)150 748 y Fk(3.7.6)63
-b(Signals)150 895 y Fu(When)29 b(Bash)h(is)f(in)m(teractiv)m(e,)k(in)c
-(the)h(absence)g(of)g(an)m(y)f(traps,)h(it)g(ignores)g
-Ft(SIGTERM)d Fu(\(so)j(that)h(`)p Ft(kill)e(0)p Fu(')150
-1005 y(do)s(es)d(not)g(kill)h(an)f(in)m(teractiv)m(e)j(shell\),)f(and)e
-(catc)m(hes)i(and)d(handles)h Ft(SIGINT)e Fu(\(so)j(that)g(the)f
-Ft(wait)f Fu(builtin)150 1114 y(is)35 b(in)m(terruptible\).)56
-b(When)36 b(Bash)f(receiv)m(es)i(a)f Ft(SIGINT)p Fu(,)f(it)h(breaks)f
-(out)h(of)g(an)m(y)f(executing)i(lo)s(ops.)56 b(In)150
-1224 y(all)39 b(cases,)i(Bash)e(ignores)g Ft(SIGQUIT)p
-Fu(.)62 b(If)38 b(job)g(con)m(trol)h(is)g(in)e(e\013ect)j(\(see)f
-(Chapter)f(7)h([Job)f(Con)m(trol],)150 1333 y(page)31
-b(125\),)h(Bash)f(ignores)g Ft(SIGTTIN)p Fu(,)d Ft(SIGTTOU)p
-Fu(,)h(and)h Ft(SIGTSTP)p Fu(.)275 1499 y(The)25 b Ft(trap)g
-Fu(builtin)h(mo)s(di\014es)g(the)g(shell's)h(signal)g(handling,)f(as)h
-(describ)s(ed)e(b)s(elo)m(w)i(\(see)g(Section)g(4.1)150
-1608 y([Bourne)j(Shell)h(Builtins],)g(page)g(52.)275
-1774 y(Non-builtin)38 b(commands)f(Bash)h(executes)i(ha)m(v)m(e)f
-(signal)f(handlers)f(set)i(to)g(the)f(v)-5 b(alues)38
-b(inherited)150 1883 y(b)m(y)c(the)h(shell)f(from)g(its)h(paren)m(t,)h
+y(If)32 b(a)i(command)f(fails)g(b)s(ecause)g(of)h(an)f(error)f(during)g
+(expansion)h(or)g(redirection,)i(the)f(exit)g(status)150
+408 y(is)c(greater)i(than)e(zero.)275 539 y(The)38 b(exit)h(status)g
+(is)g(used)f(b)m(y)g(the)h(Bash)g(conditional)h(commands)e(\(see)h
+(Section)h(3.2.5.2)h([Con-)150 649 y(ditional)i(Constructs],)h(page)f
+(13\))g(and)e(some)i(of)f(the)g(list)g(constructs)g(\(see)h(Section)f
+(3.2.4)i([Lists],)150 758 y(page)31 b(11\).)275 889 y(All)40
+b(of)g(the)h(Bash)f(builtins)f(return)g(an)h(exit)h(status)g(of)f(zero)
+h(if)f(they)g(succeed)g(and)g(a)g(non-zero)150 998 y(status)34
+b(on)f(failure,)i(so)f(they)g(ma)m(y)g(b)s(e)f(used)g(b)m(y)g(the)h
+(conditional)h(and)e(list)h(constructs.)50 b(All)35 b(builtins)150
+1108 y(return)e(an)i(exit)g(status)g(of)f(2)h(to)g(indicate)h
+(incorrect)f(usage,)h(generally)g(in)m(v)-5 b(alid)35
+b(options)g(or)f(missing)150 1218 y(argumen)m(ts.)275
+1348 y(The)f(exit)i(status)f(of)h(the)f(last)h(command)f(is)g(a)m(v)-5
+b(ailable)36 b(in)e(the)g(sp)s(ecial)h(parameter)f($?)52
+b(\(see)35 b(Sec-)150 1458 y(tion)c(3.4.2)h([Sp)s(ecial)f(P)m
+(arameters],)h(page)f(24\).)275 1588 y(Bash)h(itself)i(returns)e(the)h
+(exit)g(status)g(of)g(the)g(last)h(command)e(executed,)j(unless)d(a)h
+(syn)m(tax)g(error)150 1698 y(o)s(ccurs,)38 b(in)f(whic)m(h)f(case)i
+(it)f(exits)g(with)g(a)g(non-zero)g(v)-5 b(alue.)60 b(See)37
+b(also)h(the)e Ft(exit)g Fu(builtin)g(command)150 1807
+y(\(see)31 b(Section)h(4.1)f([Bourne)f(Shell)h(Builtins],)g(page)g
+(52\).)150 1999 y Fk(3.7.6)63 b(Signals)150 2146 y Fu(When)29
+b(Bash)h(is)f(in)m(teractiv)m(e,)k(in)c(the)h(absence)g(of)g(an)m(y)f
+(traps,)h(it)g(ignores)g Ft(SIGTERM)d Fu(\(so)j(that)h(`)p
+Ft(kill)e(0)p Fu(')150 2255 y(do)s(es)d(not)g(kill)h(an)f(in)m
+(teractiv)m(e)j(shell\),)f(and)e(catc)m(hes)i(and)d(handles)h
+Ft(SIGINT)e Fu(\(so)j(that)g(the)f Ft(wait)f Fu(builtin)150
+2365 y(is)34 b(in)m(terruptible\).)53 b(When)34 b(Bash)h(receiv)m(es)h
+(a)e Ft(SIGINT)p Fu(,)g(it)h(breaks)f(out)h(of)f(an)m(y)h(executing)g
+(lo)s(ops)g(and)150 2474 y(command)28 b(lists.)40 b(In)27
+b(all)i(cases,)h(Bash)e(ignores)g Ft(SIGQUIT)p Fu(.)38
+b(If)27 b(job)h(con)m(trol)h(is)f(in)g(e\013ect)h(\(see)g(Chapter)f(7)
+150 2584 y([Job)i(Con)m(trol],)i(page)f(125\),)h(Bash)f(ignores)g
+Ft(SIGTTIN)p Fu(,)d Ft(SIGTTOU)p Fu(,)h(and)h Ft(SIGTSTP)p
+Fu(.)275 2715 y(The)25 b Ft(trap)g Fu(builtin)h(mo)s(di\014es)g(the)g
+(shell's)h(signal)g(handling,)f(as)h(describ)s(ed)e(b)s(elo)m(w)i
+(\(see)g(Section)g(4.1)150 2824 y([Bourne)j(Shell)h(Builtins],)g(page)g
+(52\).)275 2955 y(Non-builtin)38 b(commands)f(Bash)h(executes)i(ha)m(v)
+m(e)f(signal)f(handlers)f(set)i(to)g(the)f(v)-5 b(alues)38
+b(inherited)150 3064 y(b)m(y)c(the)h(shell)f(from)g(its)h(paren)m(t,)h
(unless)d Ft(trap)g Fu(sets)i(them)f(to)h(b)s(e)f(ignored,)i(in)e(whic)
-m(h)g(case)h(the)g(c)m(hild)150 1993 y(pro)s(cess)26
+m(h)g(case)h(the)g(c)m(hild)150 3174 y(pro)s(cess)26
b(will)g(ignore)h(them)f(as)g(w)m(ell.)40 b(When)26 b(job)g(con)m(trol)
i(is)e(not)g(in)g(e\013ect,)j(async)m(hronous)c(commands)150
-2102 y(ignore)36 b Ft(SIGINT)e Fu(and)h Ft(SIGQUIT)e
+3284 y(ignore)36 b Ft(SIGINT)e Fu(and)h Ft(SIGQUIT)e
Fu(in)j(addition)f(to)i(these)f(inherited)f(handlers.)55
-b(Commands)35 b(run)f(as)i(a)150 2212 y(result)27 b(of)h(command)f
+b(Commands)35 b(run)f(as)i(a)150 3393 y(result)27 b(of)h(command)f
(substitution)h(ignore)g(the)g(k)m(eyb)s(oard-generated)g(job)g(con)m
-(trol)h(signals)f Ft(SIGTTIN)p Fu(,)150 2322 y Ft(SIGTTOU)p
-Fu(,)h(and)g Ft(SIGTSTP)p Fu(.)275 2487 y(The)h(shell)i(exits)g(b)m(y)f
+(trol)h(signals)f Ft(SIGTTIN)p Fu(,)150 3503 y Ft(SIGTTOU)p
+Fu(,)h(and)g Ft(SIGTSTP)p Fu(.)275 3633 y(The)h(shell)i(exits)g(b)m(y)f
(default)g(up)s(on)f(receipt)i(of)f(a)h Ft(SIGHUP)p Fu(.)42
b(Before)32 b(exiting,)h(an)e(in)m(teractiv)m(e)j(shell)150
-2597 y(resends)i(the)h Ft(SIGHUP)e Fu(to)i(all)h(jobs,)g(running)d(or)i
+3743 y(resends)i(the)h Ft(SIGHUP)e Fu(to)i(all)h(jobs,)g(running)d(or)i
(stopp)s(ed.)59 b(The)36 b(shell)h(sends)f Ft(SIGCONT)e
-Fu(to)k(stopp)s(ed)150 2706 y(jobs)g(to)h(ensure)e(that)i(they)g
+Fu(to)k(stopp)s(ed)150 3852 y(jobs)g(to)h(ensure)e(that)i(they)g
(receiv)m(e)h(the)f Ft(SIGHUP)d Fu(\(See)j(Chapter)f(7)h([Job)f(Con)m
-(trol],)j(page)e(125,)j(for)150 2816 y(more)31 b(information)g(ab)s
+(trol],)j(page)e(125,)j(for)150 3962 y(more)31 b(information)g(ab)s
(out)g(running)e(and)h(stopp)s(ed)g(jobs\).)43 b(T)-8
b(o)31 b(prev)m(en)m(t)h(the)f(shell)g(from)f(sending)h(the)150
-2925 y Ft(SIGHUP)36 b Fu(signal)i(to)g(a)f(particular)h(job,)h(remo)m
+4072 y Ft(SIGHUP)36 b Fu(signal)i(to)g(a)f(particular)h(job,)h(remo)m
(v)m(e)g(it)f(from)f(the)g(jobs)g(table)h(with)f(the)h
-Ft(disown)d Fu(builtin)150 3035 y(\(see)i(Section)g(7.2)f([Job)g(Con)m
+Ft(disown)d Fu(builtin)150 4181 y(\(see)i(Section)g(7.2)f([Job)g(Con)m
(trol)h(Builtins],)h(page)e(126\))i(or)e(mark)f(it)i(not)f(to)h(receiv)
-m(e)g Ft(SIGHUP)d Fu(using)150 3144 y Ft(disown)29 b(-h)p
-Fu(.)275 3310 y(If)36 b(the)h Ft(huponexit)d Fu(shell)j(option)g(has)g
+m(e)g Ft(SIGHUP)d Fu(using)150 4291 y Ft(disown)29 b(-h)p
+Fu(.)275 4421 y(If)36 b(the)h Ft(huponexit)d Fu(shell)j(option)g(has)g
(b)s(een)f(set)h(using)g Ft(shopt)e Fu(\(see)j(Section)g(4.3.2)g([The)f
-(Shopt)150 3419 y(Builtin],)31 b(page)g(78\),)h(Bash)f(sends)e(a)i
+(Shopt)150 4531 y(Builtin],)31 b(page)g(78\),)h(Bash)f(sends)e(a)i
Ft(SIGHUP)e Fu(to)i(all)g(jobs)f(when)f(an)i(in)m(teractiv)m(e)i(login)
-e(shell)g(exits.)275 3585 y(If)d(Bash)h(is)g(w)m(aiting)h(for)e(a)i
+e(shell)g(exits.)275 4661 y(If)d(Bash)h(is)g(w)m(aiting)h(for)e(a)i
(command)e(to)i(complete)g(and)e(receiv)m(es)j(a)e(signal)g(for)g(whic)
-m(h)f(a)i(trap)e(has)150 3694 y(b)s(een)k(set,)h(it)g(will)g(not)f
+m(h)f(a)i(trap)e(has)150 4771 y(b)s(een)k(set,)h(it)g(will)g(not)f
(execute)i(the)f(trap)f(un)m(til)g(the)h(command)f(completes.)48
-b(If)32 b(Bash)g(is)h(w)m(aiting)g(for)150 3804 y(an)i(async)m(hronous)
+b(If)32 b(Bash)g(is)h(w)m(aiting)g(for)150 4881 y(an)i(async)m(hronous)
g(command)g(via)h(the)g Ft(wait)e Fu(builtin,)i(and)f(it)h(receiv)m(es)
-h(a)e(signal)h(for)f(whic)m(h)g(a)h(trap)150 3913 y(has)27
+h(a)e(signal)h(for)f(whic)m(h)g(a)h(trap)150 4990 y(has)27
b(b)s(een)g(set,)h(the)g Ft(wait)e Fu(builtin)h(will)g(return)f
(immediately)j(with)e(an)g(exit)h(status)g(greater)g(than)f(128,)150
-4023 y(immediately)32 b(after)f(whic)m(h)f(the)g(shell)h(executes)g
-(the)g(trap.)275 4188 y(When)41 b(job)g(con)m(trol)h(is)g(not)f
+5100 y(immediately)32 b(after)f(whic)m(h)f(the)g(shell)h(executes)g
+(the)g(trap.)275 5230 y(When)41 b(job)g(con)m(trol)h(is)g(not)f
(enabled,)k(and)40 b(Bash)i(is)f(w)m(aiting)i(for)e(a)h(foreground)e
-(command)h(to)150 4298 y(complete,)35 b(the)e(shell)h(receiv)m(es)g(k)m
+(command)h(to)150 5340 y(complete,)35 b(the)e(shell)h(receiv)m(es)g(k)m
(eyb)s(oard-generated)g(signals)g(suc)m(h)e(as)i Ft(SIGINT)d
-Fu(\(usually)i(generated)150 4408 y(b)m(y)e(`)p Ft(^C)p
-Fu('\))h(that)g(users)e(commonly)i(in)m(tend)g(to)g(send)e(to)j(that)f
-(command.)43 b(This)31 b(happ)s(ens)e(b)s(ecause)j(the)150
-4517 y(shell)23 b(and)g(the)h(command)f(are)g(in)g(the)h(same)f(pro)s
-(cess)g(group)g(as)h(the)f(terminal,)i(and)e(`)p Ft(^C)p
-Fu(')g(sends)g Ft(SIGINT)150 4627 y Fu(to)36 b(all)g(pro)s(cesses)f(in)
-g(that)h(pro)s(cess)e(group.)55 b(Since)35 b(Bash)g(do)s(es)g(not)h
-(enable)f(job)g(con)m(trol)i(b)m(y)e(default)150 4736
-y(when)29 b(the)i(shell)g(is)f(not)h(in)m(teractiv)m(e,)i(this)d
-(scenario)i(is)e(most)h(common)f(in)g(non-in)m(teractiv)m(e)j(shells.)
-275 4902 y(When)23 b(job)g(con)m(trol)j(is)d(enabled,)j(and)d(Bash)h
-(is)g(w)m(aiting)h(for)e(a)h(foreground)f(command)h(to)g(complete,)150
-5011 y(the)30 b(shell)f(do)s(es)g(not)h(receiv)m(e)h(k)m(eyb)s
+Fu(\(usually)i(generated)p eop end
+%%Page: 50 56
+TeXDict begin 50 55 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(50)150 299
+y(b)m(y)31 b(`)p Ft(^C)p Fu('\))h(that)g(users)e(commonly)i(in)m(tend)g
+(to)g(send)e(to)j(that)f(command.)43 b(This)31 b(happ)s(ens)e(b)s
+(ecause)j(the)150 408 y(shell)23 b(and)g(the)h(command)f(are)g(in)g
+(the)h(same)f(pro)s(cess)g(group)g(as)h(the)f(terminal,)i(and)e(`)p
+Ft(^C)p Fu(')g(sends)g Ft(SIGINT)150 518 y Fu(to)36 b(all)g(pro)s
+(cesses)f(in)g(that)h(pro)s(cess)e(group.)55 b(Since)35
+b(Bash)g(do)s(es)g(not)h(enable)f(job)g(con)m(trol)i(b)m(y)e(default)
+150 628 y(when)29 b(the)i(shell)g(is)f(not)h(in)m(teractiv)m(e,)i(this)
+d(scenario)i(is)e(most)h(common)f(in)g(non-in)m(teractiv)m(e)j(shells.)
+275 782 y(When)23 b(job)g(con)m(trol)j(is)d(enabled,)j(and)d(Bash)h(is)
+g(w)m(aiting)h(for)e(a)h(foreground)f(command)h(to)g(complete,)150
+891 y(the)30 b(shell)f(do)s(es)g(not)h(receiv)m(e)h(k)m(eyb)s
(oard-generated)f(signals,)h(b)s(ecause)e(it)h(is)f(not)h(in)f(the)h
-(same)f(pro)s(cess)150 5121 y(group)40 b(as)h(the)g(terminal.)73
+(same)f(pro)s(cess)150 1001 y(group)40 b(as)h(the)g(terminal.)73
b(This)40 b(scenario)i(is)e(most)i(common)f(in)f(in)m(teractiv)m(e)k
-(shells,)f(where)e(Bash)150 5230 y(attempts)e(to)g(enable)f(job)g(con)m
+(shells,)f(where)e(Bash)150 1111 y(attempts)e(to)g(enable)f(job)g(con)m
(trol)i(b)m(y)e(default.)64 b(See)38 b(Chapter)g(7)g([Job)g(Con)m
-(trol],)j(page)e(125,)j(for)c(a)150 5340 y(more)31 b(in-depth)e
-(discussion)h(of)g(pro)s(cess)g(groups.)p eop end
-%%Page: 50 56
-TeXDict begin 50 55 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(50)275 299
-y(When)21 b(job)h(con)m(trol)h(is)f(not)h(enabled,)h(and)d(Bash)h
-(receiv)m(es)i Ft(SIGINT)c Fu(while)i(w)m(aiting)i(for)d(a)i
-(foreground)150 408 y(command,)28 b(it)h(w)m(aits)g(un)m(til)f(that)h
-(foreground)e(command)g(terminates)i(and)f(then)f(decides)i(what)e(to)i
-(do)150 518 y(ab)s(out)h(the)h Ft(SIGINT)p Fu(:)199 651
-y(1.)61 b(If)37 b(the)i(command)e(terminates)i(due)e(to)i(the)f
+(trol],)j(page)e(125,)j(for)c(a)150 1220 y(more)31 b(in-depth)e
+(discussion)h(of)g(pro)s(cess)g(groups.)275 1374 y(When)21
+b(job)h(con)m(trol)h(is)f(not)h(enabled,)h(and)d(Bash)h(receiv)m(es)i
+Ft(SIGINT)c Fu(while)i(w)m(aiting)i(for)d(a)i(foreground)150
+1484 y(command,)28 b(it)h(w)m(aits)g(un)m(til)f(that)h(foreground)e
+(command)g(terminates)i(and)f(then)f(decides)i(what)e(to)i(do)150
+1594 y(ab)s(out)h(the)h Ft(SIGINT)p Fu(:)199 1748 y(1.)61
+b(If)37 b(the)i(command)e(terminates)i(due)e(to)i(the)f
Ft(SIGINT)p Fu(,)g(Bash)g(concludes)g(that)h(the)f(user)f(mean)m(t)330
-761 y(to)i(send)e(the)h Ft(SIGINT)e Fu(to)i(the)g(shell)g(as)g(w)m
+1857 y(to)i(send)e(the)h Ft(SIGINT)e Fu(to)i(the)g(shell)g(as)g(w)m
(ell,)j(and)d(acts)g(on)g(the)g Ft(SIGINT)e Fu(\(e.g.,)42
-b(b)m(y)37 b(running)g(a)330 870 y Ft(SIGINT)26 b Fu(trap,)i(exiting)g
+b(b)m(y)37 b(running)g(a)330 1967 y Ft(SIGINT)26 b Fu(trap,)i(exiting)g
(a)g(non-in)m(teractiv)m(e)i(shell,)e(or)f(returning)g(to)h(the)f(top)h
-(lev)m(el)h(to)f(read)f(a)g(new)330 980 y(command\).)199
-1113 y(2.)61 b(If)33 b(the)h(command)g(do)s(es)f(not)h(terminate)h(due)
+(lev)m(el)h(to)f(read)f(a)g(new)330 2077 y(command\).)199
+2221 y(2.)61 b(If)33 b(the)h(command)g(do)s(es)f(not)h(terminate)h(due)
e(to)i Ft(SIGINT)p Fu(,)e(the)h(program)g(handled)f(the)h
-Ft(SIGINT)330 1223 y Fu(itself)h(and)e(did)h(not)g(treat)h(it)g(as)f(a)
+Ft(SIGINT)330 2331 y Fu(itself)h(and)e(did)h(not)g(treat)h(it)g(as)f(a)
g(fatal)i(signal.)52 b(In)33 b(that)i(case,)h(Bash)e(do)s(es)g(not)g
-(treat)i Ft(SIGINT)330 1332 y Fu(as)41 b(a)g(fatal)g(signal,)j(either,)
+(treat)i Ft(SIGINT)330 2440 y Fu(as)41 b(a)g(fatal)g(signal,)j(either,)
g(instead)d(assuming)f(that)h(the)g Ft(SIGINT)d Fu(w)m(as)j(used)f(as)h
-(part)f(of)h(the)330 1442 y(program's)32 b(normal)g(op)s(eration)h
+(part)f(of)h(the)330 2550 y(program's)32 b(normal)g(op)s(eration)h
(\(e.g.,)h Ft(emacs)d Fu(uses)g(it)i(to)g(ab)s(ort)f(editing)h
-(commands\))f(or)g(delib-)330 1552 y(erately)41 b(discarded.)69
+(commands\))f(or)g(delib-)330 2659 y(erately)41 b(discarded.)69
b(Ho)m(w)m(ev)m(er,)45 b(Bash)40 b(will)h(run)d(an)m(y)j(trap)e(set)i
(on)f Ft(SIGINT)p Fu(,)h(as)f(it)h(do)s(es)e(with)330
-1661 y(an)m(y)31 b(other)f(trapp)s(ed)f(signal)i(it)g(receiv)m(es)h
+2769 y(an)m(y)31 b(other)f(trapp)s(ed)f(signal)i(it)g(receiv)m(es)h
(while)e(it)h(is)f(w)m(aiting)h(for)f(the)h(foreground)e(command)h(to)
-330 1771 y(complete,)i(for)e(compatibilit)m(y)-8 b(.)275
-1928 y(When)31 b(job)h(con)m(trol)h(is)g(enabled,)f(Bash)g(do)s(es)g
+330 2879 y(complete,)i(for)e(compatibilit)m(y)-8 b(.)275
+3068 y(When)31 b(job)h(con)m(trol)h(is)g(enabled,)f(Bash)g(do)s(es)g
(not)g(receiv)m(e)i(k)m(eyb)s(oard-generated)f(signals)g(suc)m(h)f(as)
-150 2037 y Ft(SIGINT)j Fu(while)j(it)f(is)h(w)m(aiting)g(for)f(a)h
+150 3177 y Ft(SIGINT)j Fu(while)j(it)f(is)h(w)m(aiting)g(for)f(a)h
(foreground)e(command.)61 b(An)37 b(in)m(teractiv)m(e)j(shell)d(do)s
-(es)g(not)h(pa)m(y)150 2147 y(atten)m(tion)44 b(to)f(the)f
+(es)g(not)h(pa)m(y)150 3287 y(atten)m(tion)44 b(to)f(the)f
Ft(SIGINT)p Fu(,)h(ev)m(en)g(if)f(the)g(foreground)f(command)h
-(terminates)h(as)f(a)h(result,)i(other)150 2256 y(than)39
+(terminates)h(as)f(a)h(result,)i(other)150 3396 y(than)39
b(noting)g(its)g(exit)h(status.)67 b(If)39 b(the)g(shell)g(is)g(not)g
(in)m(teractiv)m(e,)44 b(and)39 b(the)g(foreground)f(command)150
-2366 y(terminates)23 b(due)f(to)h(the)g Ft(SIGINT)p Fu(,)g(Bash)f
+3506 y(terminates)23 b(due)f(to)h(the)g Ft(SIGINT)p Fu(,)g(Bash)f
(pretends)g(it)h(receiv)m(ed)h(the)e Ft(SIGINT)f Fu(itself)j
-(\(scenario)f(1)g(ab)s(o)m(v)m(e\),)150 2476 y(for)30
-b(compatibilit)m(y)-8 b(.)150 2714 y Fs(3.8)68 b(Shell)45
-b(Scripts)150 2873 y Fu(A)30 b(shell)f(script)h(is)f(a)h(text)h(\014le)
+(\(scenario)f(1)g(ab)s(o)m(v)m(e\),)150 3615 y(for)30
+b(compatibilit)m(y)-8 b(.)150 3886 y Fs(3.8)68 b(Shell)45
+b(Scripts)150 4045 y Fu(A)30 b(shell)f(script)h(is)f(a)h(text)h(\014le)
f(con)m(taining)h(shell)f(commands.)40 b(When)29 b(suc)m(h)g(a)h
-(\014le)g(is)f(used)g(as)h(the)g(\014rst)150 2983 y(non-option)c
+(\014le)g(is)f(used)g(as)h(the)g(\014rst)150 4155 y(non-option)c
(argumen)m(t)h(when)e(in)m(v)m(oking)i(Bash,)g(and)f(neither)g(the)g
Ft(-c)g Fu(nor)f Ft(-s)h Fu(option)g(is)g(supplied)f(\(see)150
-3092 y(Section)35 b(6.1)h([In)m(v)m(oking)g(Bash],)g(page)f(100\),)j
+4264 y(Section)35 b(6.1)h([In)m(v)m(oking)g(Bash],)g(page)f(100\),)j
(Bash)c(reads)h(and)f(executes)i(commands)e(from)g(the)h(\014le,)150
-3202 y(then)29 b(exits.)42 b(This)28 b(mo)s(de)i(of)f(op)s(eration)i
+4374 y(then)29 b(exits.)42 b(This)28 b(mo)s(de)i(of)f(op)s(eration)i
(creates)g(a)f(non-in)m(teractiv)m(e)i(shell.)41 b(If)29
-b(the)h(\014lename)f(do)s(es)h(not)150 3312 y(con)m(tain)g(an)m(y)e
+b(the)h(\014lename)f(do)s(es)h(not)150 4484 y(con)m(tain)g(an)m(y)e
(slashes,)h(the)g(shell)f(\014rst)g(searc)m(hes)h(for)f(the)h(\014le)f
(in)g(the)h(curren)m(t)f(directory)-8 b(,)30 b(and)d(lo)s(oks)i(in)150
-3421 y(the)i(directories)g(in)f Ft($PATH)f Fu(if)h(not)h(found)e
-(there.)275 3554 y(Bash)34 b(tries)g(to)g(determine)g(whether)g(the)g
+4593 y(the)i(directories)g(in)f Ft($PATH)f Fu(if)h(not)h(found)e
+(there.)275 4747 y(Bash)34 b(tries)g(to)g(determine)g(whether)g(the)g
(\014le)f(is)h(a)h(text)f(\014le)g(or)g(a)g(binary)-8
-b(,)35 b(and)e(will)h(not)h(execute)150 3664 y(\014les)30
-b(it)h(determines)g(to)g(b)s(e)e(binaries.)275 3797 y(When)34
+b(,)35 b(and)e(will)h(not)h(execute)150 4857 y(\014les)30
+b(it)h(determines)g(to)g(b)s(e)e(binaries.)275 5011 y(When)34
b(Bash)h(runs)e(a)i(shell)g(script,)g(it)h(sets)f(the)f(sp)s(ecial)i
(parameter)f Ft(0)f Fu(to)h(the)g(name)g(of)g(the)g(\014le,)150
-3907 y(rather)k(than)g(the)h(name)f(of)h(the)f(shell,)j(and)d(the)h(p)s
+5121 y(rather)k(than)g(the)h(name)f(of)h(the)f(shell,)j(and)d(the)h(p)s
(ositional)g(parameters)f(are)h(set)g(to)g(the)g(remain-)150
-4016 y(ing)f(argumen)m(ts,)j(if)d(an)m(y)g(are)g(giv)m(en.)67
+5230 y(ing)f(argumen)m(ts,)j(if)d(an)m(y)g(are)g(giv)m(en.)67
b(If)39 b(no)g(additional)g(argumen)m(ts)h(are)f(supplied,)h(the)f(p)s
-(ositional)150 4126 y(parameters)31 b(are)f(unset.)275
-4259 y(A)39 b(shell)h(script)f(ma)m(y)h(b)s(e)f(made)h(executable)h(b)m
-(y)e(using)g(the)h Ft(chmod)e Fu(command)h(to)h(turn)e(on)i(the)150
-4369 y(execute)j(bit.)73 b(When)41 b(Bash)g(\014nds)e(suc)m(h)i(a)h
-(\014le)f(while)g(searc)m(hing)h(the)f Ft($PATH)f Fu(for)h(a)h
-(command,)h(it)150 4478 y(creates)32 b(a)f(new)e(instance)i(of)g
-(itself)g(to)g(execute)h(it.)41 b(In)30 b(other)h(w)m(ords,)f
-(executing)390 4612 y Ft(filename)46 b Fj(arguments)150
-4745 y Fu(is)30 b(equiv)-5 b(alen)m(t)32 b(to)f(executing)390
-4878 y Ft(bash)47 b(filename)e Fj(arguments)150 5011
-y Fu(if)30 b Ft(filename)d Fu(is)j(an)f(executable)j(shell)e(script.)40
-b(This)29 b(subshell)g(reinitializes)i(itself,)g(so)f(that)h(the)e
-(e\013ect)150 5121 y(is)36 b(as)h(if)g(a)f(new)g(shell)h(had)f(b)s(een)
-g(in)m(v)m(ok)m(ed)h(to)h(in)m(terpret)e(the)h(script,)h(with)e(the)h
-(exception)h(that)f(the)150 5230 y(lo)s(cations)25 b(of)g(commands)e
-(remem)m(b)s(ered)h(b)m(y)g(the)g(paren)m(t)g(\(see)h(the)f
-(description)g(of)g Ft(hash)f Fu(in)h(Section)h(4.1)150
-5340 y([Bourne)30 b(Shell)h(Builtins],)g(page)g(52\))h(are)e(retained)h
-(b)m(y)f(the)h(c)m(hild.)p eop end
+(ositional)150 5340 y(parameters)31 b(are)f(unset.)p
+eop end
%%Page: 51 57
TeXDict begin 51 56 bop 150 -116 a Fu(Chapter)30 b(3:)41
b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(51)275 299
-y(The)25 b Fm(gnu)h Fu(op)s(erating)g(system,)h(and)f(most)g(v)m
-(ersions)g(of)g(Unix,)h(mak)m(e)g(this)f(a)g(part)g(of)g(the)g(op)s
-(erating)150 408 y(system's)36 b(command)g(execution)h(mec)m(hanism.)58
-b(If)35 b(the)h(\014rst)f(line)h(of)g(a)h(script)f(b)s(egins)f(with)g
-(the)i(t)m(w)m(o)150 518 y(c)m(haracters)46 b(`)p Ft(#!)p
-Fu(',)i(the)c(remainder)g(of)g(the)h(line)g(sp)s(eci\014es)f(an)g(in)m
-(terpreter)h(for)f(the)g(program)g(and,)150 628 y(dep)s(ending)34
-b(on)h(the)h(op)s(erating)f(system,)i(one)f(or)f(more)h(optional)h
-(argumen)m(ts)e(for)g(that)h(in)m(terpreter.)150 737
-y(Th)m(us,)c(y)m(ou)h(can)g(sp)s(ecify)f(Bash,)h Ft(awk)p
-Fu(,)g(P)m(erl,)g(or)g(some)g(other)f(in)m(terpreter)h(and)f(write)h
-(the)f(rest)h(of)g(the)150 847 y(script)d(\014le)h(in)f(that)h
-(language.)275 981 y(The)k(argumen)m(ts)h(to)h(the)f(in)m(terpreter)h
+y(A)39 b(shell)h(script)f(ma)m(y)h(b)s(e)f(made)h(executable)h(b)m(y)e
+(using)g(the)h Ft(chmod)e Fu(command)h(to)h(turn)e(on)i(the)150
+408 y(execute)j(bit.)73 b(When)41 b(Bash)g(\014nds)e(suc)m(h)i(a)h
+(\014le)f(while)g(searc)m(hing)h(the)f Ft($PATH)f Fu(for)h(a)h
+(command,)h(it)150 518 y(creates)32 b(a)f(new)e(instance)i(of)g(itself)
+g(to)g(execute)h(it.)41 b(In)30 b(other)h(w)m(ords,)f(executing)390
+653 y Ft(filename)46 b Fj(arguments)150 787 y Fu(is)30
+b(equiv)-5 b(alen)m(t)32 b(to)f(executing)390 922 y Ft(bash)47
+b(filename)e Fj(arguments)150 1056 y Fu(if)30 b Ft(filename)d
+Fu(is)j(an)f(executable)j(shell)e(script.)40 b(This)29
+b(subshell)g(reinitializes)i(itself,)g(so)f(that)h(the)e(e\013ect)150
+1166 y(is)36 b(as)h(if)g(a)f(new)g(shell)h(had)f(b)s(een)g(in)m(v)m(ok)
+m(ed)h(to)h(in)m(terpret)e(the)h(script,)h(with)e(the)h(exception)h
+(that)f(the)150 1275 y(lo)s(cations)25 b(of)g(commands)e(remem)m(b)s
+(ered)h(b)m(y)g(the)g(paren)m(t)g(\(see)h(the)f(description)g(of)g
+Ft(hash)f Fu(in)h(Section)h(4.1)150 1385 y([Bourne)30
+b(Shell)h(Builtins],)g(page)g(52\))h(are)e(retained)h(b)m(y)f(the)h(c)m
+(hild.)275 1519 y(The)25 b Fm(gnu)h Fu(op)s(erating)g(system,)h(and)f
+(most)g(v)m(ersions)g(of)g(Unix,)h(mak)m(e)g(this)f(a)g(part)g(of)g
+(the)g(op)s(erating)150 1629 y(system's)36 b(command)g(execution)h(mec)
+m(hanism.)58 b(If)35 b(the)h(\014rst)f(line)h(of)g(a)h(script)f(b)s
+(egins)f(with)g(the)i(t)m(w)m(o)150 1738 y(c)m(haracters)46
+b(`)p Ft(#!)p Fu(',)i(the)c(remainder)g(of)g(the)h(line)g(sp)s
+(eci\014es)f(an)g(in)m(terpreter)h(for)f(the)g(program)g(and,)150
+1848 y(dep)s(ending)34 b(on)h(the)h(op)s(erating)f(system,)i(one)f(or)f
+(more)h(optional)h(argumen)m(ts)e(for)g(that)h(in)m(terpreter.)150
+1958 y(Th)m(us,)c(y)m(ou)h(can)g(sp)s(ecify)f(Bash,)h
+Ft(awk)p Fu(,)g(P)m(erl,)g(or)g(some)g(other)f(in)m(terpreter)h(and)f
+(write)h(the)f(rest)h(of)g(the)150 2067 y(script)d(\014le)h(in)f(that)h
+(language.)275 2202 y(The)k(argumen)m(ts)h(to)h(the)f(in)m(terpreter)h
(consist)f(of)h(one)f(or)g(more)g(optional)h(argumen)m(ts)f(follo)m
-(wing)150 1091 y(the)e(in)m(terpreter)g(name)g(on)g(the)g(\014rst)g
+(wing)150 2311 y(the)e(in)m(terpreter)g(name)g(on)g(the)g(\014rst)g
(line)g(of)g(the)g(script)g(\014le,)h(follo)m(w)m(ed)h(b)m(y)e(the)g
-(name)g(of)g(the)g(script)150 1200 y(\014le,)k(follo)m(w)m(ed)g(b)m(y)e
+(name)g(of)g(the)g(script)150 2421 y(\014le,)k(follo)m(w)m(ed)g(b)m(y)e
(the)g(rest)g(of)g(the)h(argumen)m(ts)f(supplied)f(to)i(the)f(script.)
-58 b(The)35 b(details)i(of)g(ho)m(w)f(the)150 1310 y(in)m(terpreter)26
+58 b(The)35 b(details)i(of)g(ho)m(w)f(the)150 2531 y(in)m(terpreter)26
b(line)g(is)g(split)g(in)m(to)h(an)f(in)m(terpreter)g(name)g(and)f(a)h
(set)h(of)e(argumen)m(ts)i(v)-5 b(ary)25 b(across)i(systems.)150
-1420 y(Bash)j(will)f(p)s(erform)g(this)g(action)i(on)e(op)s(erating)h
+2640 y(Bash)j(will)f(p)s(erform)g(this)g(action)i(on)e(op)s(erating)h
(systems)g(that)g(do)f(not)h(handle)f(it)h(themselv)m(es.)42
-b(Note)150 1529 y(that)e(some)g(older)g(v)m(ersions)g(of)g(Unix)f
+b(Note)150 2750 y(that)e(some)g(older)g(v)m(ersions)g(of)g(Unix)f
(limit)i(the)f(in)m(terpreter)g(name)g(and)f(a)h(single)g(argumen)m(t)g
-(to)h(a)150 1639 y(maxim)m(um)21 b(of)g(32)h(c)m(haracters,)j(so)c
+(to)h(a)150 2859 y(maxim)m(um)21 b(of)g(32)h(c)m(haracters,)j(so)c
(it's)h(not)g(p)s(ortable)f(to)h(assume)e(that)i(using)f(more)g(than)g
-(one)g(argumen)m(t)150 1748 y(will)31 b(w)m(ork.)275
-1883 y(Bash)h(scripts)g(often)g(b)s(egin)g(with)g Ft(#!)e(/bin/bash)g
+(one)g(argumen)m(t)150 2969 y(will)31 b(w)m(ork.)275
+3103 y(Bash)h(scripts)g(often)g(b)s(egin)g(with)g Ft(#!)e(/bin/bash)g
Fu(\(assuming)i(that)h(Bash)f(has)g(b)s(een)f(installed)i(in)150
-1993 y Ft(/bin)p Fu(\),)26 b(since)h(this)f(ensures)f(that)i(Bash)f
+3213 y Ft(/bin)p Fu(\),)26 b(since)h(this)f(ensures)f(that)i(Bash)f
(will)h(b)s(e)f(used)f(to)i(in)m(terpret)f(the)h(script,)g(ev)m(en)g
-(if)f(it)h(is)f(executed)150 2102 y(under)h(another)h(shell.)41
+(if)f(it)h(is)f(executed)150 3323 y(under)h(another)h(shell.)41
b(It's)28 b(a)h(common)g(idiom)f(to)h(use)f Ft(env)g
Fu(to)h(\014nd)e Ft(bash)g Fu(ev)m(en)i(if)f(it's)i(b)s(een)d
-(installed)150 2212 y(in)h(another)g(directory:)40 b
+(installed)150 3432 y(in)h(another)g(directory:)40 b
Ft(#!/usr/bin/env)27 b(bash)f Fu(will)j(\014nd)d(the)j(\014rst)e(o)s
(ccurrence)h(of)g Ft(bash)f Fu(in)h Ft($PATH)p Fu(.)p
eop end
b(Shell)53 b(Builtin)f(Commands)150 545 y Fu(Builtin)34
b(commands)f(are)h(con)m(tained)g(within)f(the)h(shell)g(itself.)50
b(When)34 b(the)f(name)h(of)f(a)h(builtin)f(com-)150
-655 y(mand)26 b(is)i(used)e(as)i(the)g(\014rst)e(w)m(ord)h(of)h(a)f
+654 y(mand)26 b(is)i(used)e(as)i(the)g(\014rst)e(w)m(ord)h(of)h(a)f
(simple)h(command)f(\(see)h(Section)g(3.2.2)h([Simple)f(Commands],)150
-764 y(page)21 b(9\),)j(the)d(shell)g(executes)h(the)f(command)f
-(directly)-8 b(,)24 b(without)d(in)m(v)m(oking)h(another)f(program.)37
-b(Builtin)150 874 y(commands)f(are)h(necessary)g(to)g(implemen)m(t)g
-(functionalit)m(y)h(imp)s(ossible)e(or)h(incon)m(v)m(enien)m(t)h(to)f
-(obtain)150 984 y(with)30 b(separate)h(utilities.)275
-1122 y(This)c(section)j(brie\015y)e(describ)s(es)g(the)h(builtins)f
-(whic)m(h)g(Bash)h(inherits)f(from)g(the)h(Bourne)g(Shell,)g(as)150
-1232 y(w)m(ell)i(as)g(the)g(builtin)e(commands)h(whic)m(h)h(are)f
+764 y(page)46 b(10\),)j(the)c(shell)g(executes)i(the)e(command)f
+(directly)-8 b(,)50 b(without)45 b(in)m(v)m(oking)h(another)f(program.)
+150 874 y(Builtin)35 b(commands)e(are)i(necessary)f(to)h(implemen)m(t)g
+(functionalit)m(y)g(imp)s(ossible)f(or)g(incon)m(v)m(enien)m(t)i(to)150
+983 y(obtain)31 b(with)f(separate)h(utilities.)275 1122
+y(This)c(section)j(brie\015y)e(describ)s(es)g(the)h(builtins)f(whic)m
+(h)g(Bash)h(inherits)f(from)g(the)h(Bourne)g(Shell,)g(as)150
+1231 y(w)m(ell)i(as)g(the)g(builtin)e(commands)h(whic)m(h)h(are)f
(unique)g(to)h(or)f(ha)m(v)m(e)i(b)s(een)d(extended)i(in)f(Bash.)275
1370 y(Sev)m(eral)45 b(builtin)e(commands)h(are)h(describ)s(ed)e(in)h
(other)g(c)m(hapters:)69 b(builtin)43 b(commands)h(whic)m(h)150
-1480 y(pro)m(vide)23 b(the)h(Bash)f(in)m(terface)i(to)f(the)g(job)f
+1479 y(pro)m(vide)23 b(the)h(Bash)f(in)m(terface)i(to)f(the)g(job)f
(con)m(trol)i(facilities)g(\(see)f(Section)h(7.2)f([Job)f(Con)m(trol)h
-(Builtins],)150 1590 y(page)33 b(126\),)i(the)e(directory)g(stac)m(k)h
+(Builtins],)150 1589 y(page)33 b(126\),)i(the)e(directory)g(stac)m(k)h
(\(see)f(Section)h(6.8.1)g([Directory)g(Stac)m(k)g(Builtins],)g(page)f
-(112\),)i(the)150 1699 y(command)23 b(history)h(\(see)g(Section)g(9.2)h
+(112\),)i(the)150 1698 y(command)23 b(history)h(\(see)g(Section)g(9.2)h
([Bash)f(History)g(Builtins],)h(page)g(169\),)h(and)d(the)h
-(programmable)150 1809 y(completion)32 b(facilities)g(\(see)g(Section)f
+(programmable)150 1808 y(completion)32 b(facilities)g(\(see)g(Section)f
(8.7)g([Programmable)g(Completion)g(Builtins],)g(page)h(161\).)275
-1947 y(Man)m(y)f(of)f(the)h(builtins)e(ha)m(v)m(e)j(b)s(een)e(extended)
-g(b)m(y)g Fm(posix)g Fu(or)g(Bash.)275 2086 y(Unless)20
+1946 y(Man)m(y)f(of)f(the)h(builtins)e(ha)m(v)m(e)j(b)s(een)e(extended)
+g(b)m(y)g Fm(posix)g Fu(or)g(Bash.)275 2085 y(Unless)20
b(otherwise)h(noted,)h(eac)m(h)g(builtin)e(command)g(do)s(cumen)m(ted)g
-(as)h(accepting)h(options)e(preceded)150 2195 y(b)m(y)42
+(as)h(accepting)h(options)e(preceded)150 2194 y(b)m(y)42
b(`)p Ft(-)p Fu(')g(accepts)h(`)p Ft(--)p Fu(')f(to)h(signify)f(the)g
(end)f(of)h(the)g(options.)76 b(The)41 b Ft(:)p Fu(,)k
Ft(true)p Fu(,)f Ft(false)p Fu(,)g(and)d Ft(test)p Fu(/)p
-Ft([)150 2305 y Fu(builtins)32 b(do)g(not)h(accept)h(options)f(and)f
+Ft([)150 2304 y Fu(builtins)32 b(do)g(not)h(accept)h(options)f(and)f
(do)g(not)h(treat)g(`)p Ft(--)p Fu(')g(sp)s(ecially)-8
b(.)48 b(The)32 b Ft(exit)p Fu(,)g Ft(logout)p Fu(,)f
-Ft(return)p Fu(,)150 2415 y Ft(break)p Fu(,)38 b Ft(continue)p
+Ft(return)p Fu(,)150 2414 y Ft(break)p Fu(,)38 b Ft(continue)p
Fu(,)f Ft(let)p Fu(,)i(and)d Ft(shift)g Fu(builtins)h(accept)i(and)e
(pro)s(cess)g(argumen)m(ts)h(b)s(eginning)e(with)150
-2524 y(`)p Ft(-)p Fu(')h(without)f(requiring)g(`)p Ft(--)p
+2523 y(`)p Ft(-)p Fu(')h(without)f(requiring)g(`)p Ft(--)p
Fu('.)59 b(Other)36 b(builtins)g(that)h(accept)h(argumen)m(ts)f(but)f
-(are)h(not)g(sp)s(eci\014ed)f(as)150 2634 y(accepting)28
+(are)h(not)g(sp)s(eci\014ed)f(as)150 2633 y(accepting)28
b(options)f(in)m(terpret)g(argumen)m(ts)g(b)s(eginning)e(with)i(`)p
Ft(-)p Fu(')f(as)h(in)m(v)-5 b(alid)27 b(options)g(and)f(require)g(`)p
-Ft(--)p Fu(')150 2743 y(to)31 b(prev)m(en)m(t)g(this)f(in)m
-(terpretation.)150 2990 y Fs(4.1)68 b(Bourne)45 b(Shell)g(Builtins)150
-3150 y Fu(The)22 b(follo)m(wing)j(shell)d(builtin)h(commands)f(are)h
-(inherited)g(from)f(the)h(Bourne)g(Shell.)38 b(These)22
-b(commands)150 3259 y(are)31 b(implemen)m(ted)g(as)f(sp)s(eci\014ed)g
-(b)m(y)g(the)h Fm(posix)e Fu(standard.)150 3425 y Ft(:)h
-Fu(\(a)h(colon\))870 3534 y Ft(:)47 b([)p Fj(arguments)p
-Ft(])630 3671 y Fu(Do)c(nothing)f(b)s(ey)m(ond)g(expanding)f
+Ft(--)p Fu(')150 2742 y(to)31 b(prev)m(en)m(t)g(this)f(in)m
+(terpretation.)275 2881 y(All)24 b(builtins)g(except)h
+Ft(:)p Fu(,)h Ft(true)p Fu(,)e Ft(false)p Fu(,)h Ft(echo)p
+Fu(,)f(and)g Ft(test)p Fu(/)p Ft([)f Fu(accept)j(`)p
+Ft(--help)p Fu(')d(as)i(a)f(sp)s(ecial)h(option.)150
+2990 y(If)30 b(`)p Ft(--help)p Fu(')f(is)h(supplied,)g(these)h
+(builtins)e(output)h(a)h(help)f(message)i(and)d(exit)j(with)e(a)h
+(status)f(of)h(0.)150 3237 y Fs(4.1)68 b(Bourne)45 b(Shell)g(Builtins)
+150 3396 y Fu(The)22 b(follo)m(wing)j(shell)d(builtin)h(commands)f(are)
+h(inherited)g(from)f(the)h(Bourne)g(Shell.)38 b(These)22
+b(commands)150 3506 y(are)31 b(implemen)m(ted)g(as)f(sp)s(eci\014ed)g
+(b)m(y)g(the)h Fm(posix)e Fu(standard.)150 3671 y Ft(:)h
+Fu(\(a)h(colon\))870 3781 y Ft(:)47 b([)p Fj(arguments)p
+Ft(])630 3917 y Fu(Do)c(nothing)f(b)s(ey)m(ond)g(expanding)f
Fr(argumen)m(ts)46 b Fu(and)c(p)s(erforming)f(redirections.)76
-b(The)630 3781 y(return)29 b(status)i(is)f(zero.)150
-3944 y Ft(.)g Fu(\(a)h(p)s(erio)s(d\))870 4054 y Ft(.)47
+b(The)630 4027 y(return)29 b(status)i(is)f(zero.)150
+4190 y Ft(.)g Fu(\(a)h(p)s(erio)s(d\))870 4300 y Ft(.)47
b([-p)g Fj(path)p Ft(])g Fj(filename)e Ft([)p Fj(arguments)p
-Ft(])630 4190 y Fu(The)33 b Ft(.)g Fu(command)g(reads)g(and)g(execute)h
+Ft(])630 4436 y Fu(The)33 b Ft(.)g Fu(command)g(reads)g(and)g(execute)h
(commands)f(from)g(the)h Fr(\014lename)k Fu(argumen)m(t)c(in)630
-4300 y(the)d(curren)m(t)f(shell)g(con)m(text.)630 4436
+4546 y(the)d(curren)m(t)f(shell)g(con)m(text.)630 4682
y(If)d Fr(\014lename)33 b Fu(do)s(es)28 b(not)f(con)m(tain)i(a)f
(slash,)h Ft(.)e Fu(searc)m(hes)i(for)e(it.)41 b(If)27
-b Ft(-p)g Fu(is)g(supplied,)h Ft(.)f Fu(treats)630 4546
+b Ft(-p)g Fu(is)g(supplied,)h Ft(.)f Fu(treats)630 4792
y Fr(path)d Fu(as)h(a)f(colon-separated)j(list)e(of)f(directories)h(in)
f(whic)m(h)g(to)i(\014nd)c Fr(\014lename)5 b Fu(;)27
-b(otherwise,)630 4655 y Ft(.)36 b Fu(uses)f(the)i(directories)g(in)e
+b(otherwise,)630 4902 y Ft(.)36 b Fu(uses)f(the)i(directories)g(in)e
Ft(PATH)g Fu(to)i(\014nd)e Fr(\014lename)p Fu(.)58 b
Fr(\014lename)41 b Fu(do)s(es)36 b(not)g(need)g(to)h(b)s(e)630
-4765 y(executable.)42 b(When)28 b(Bash)h(is)g(not)f(in)h
+5011 y(executable.)42 b(When)28 b(Bash)h(is)g(not)f(in)h
Fm(posix)f Fu(mo)s(de,)g(it)i(searc)m(hes)f(the)g(curren)m(t)f
-(directory)630 4875 y(if)33 b Fr(\014lename)39 b Fu(is)33
+(directory)630 5121 y(if)33 b Fr(\014lename)39 b Fu(is)33
b(not)h(found)e(in)h Ft($PATH)p Fu(,)g(but)g(do)s(es)g(not)g(searc)m(h)
-h(the)g(curren)m(t)f(directory)h(if)630 4984 y Ft(-p)25
+h(the)g(curren)m(t)f(directory)h(if)630 5230 y Ft(-p)25
b Fu(is)i(supplied.)38 b(If)25 b(the)h Ft(sourcepath)e
Fu(option)i(\(see)h(Section)g(4.3.2)h([The)e(Shopt)f(Builtin],)630
-5094 y(page)31 b(78\))h(is)e(turned)f(o\013,)i Ft(.)f
-Fu(do)s(es)g(not)h(searc)m(h)g Ft(PATH)p Fu(.)630 5230
-y(If)39 b(an)m(y)h Fr(argumen)m(ts)j Fu(are)d(supplied,)h(they)e(b)s
-(ecome)h(the)g(p)s(ositional)g(parameters)g(when)630
-5340 y Fr(\014lename)c Fu(is)30 b(executed.)42 b(Otherwise)30
-b(the)g(p)s(ositional)i(parameters)e(are)h(unc)m(hanged.)p
-eop end
+5340 y(page)31 b(78\))h(is)e(turned)f(o\013,)i Ft(.)f
+Fu(do)s(es)g(not)h(searc)m(h)g Ft(PATH)p Fu(.)p eop end
%%Page: 53 59
TeXDict begin 53 58 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(53)630 299 y(If)27
-b(the)h Ft(-T)f Fu(option)h(is)g(enabled,)g Ft(.)f Fu(inherits)g(an)m
-(y)h(trap)g(on)f Ft(DEBUG)p Fu(;)h(if)f(it)h(is)g(not,)g(an)m(y)g
-Ft(DEBUG)630 408 y Fu(trap)k(string)g(is)g(sa)m(v)m(ed)h(and)f
+b(Shell)30 b(Builtin)h(Commands)2069 b(53)630 299 y(If)39
+b(an)m(y)h Fr(argumen)m(ts)j Fu(are)d(supplied,)h(they)e(b)s(ecome)h
+(the)g(p)s(ositional)g(parameters)g(when)630 408 y Fr(\014lename)c
+Fu(is)30 b(executed.)42 b(Otherwise)30 b(the)g(p)s(ositional)i
+(parameters)e(are)h(unc)m(hanged.)630 539 y(If)c(the)h
+Ft(-T)f Fu(option)h(is)g(enabled,)g Ft(.)f Fu(inherits)g(an)m(y)h(trap)
+g(on)f Ft(DEBUG)p Fu(;)h(if)f(it)h(is)g(not,)g(an)m(y)g
+Ft(DEBUG)630 648 y Fu(trap)k(string)g(is)g(sa)m(v)m(ed)h(and)f
(restored)g(around)f(the)i(call)g(to)g Ft(.)p Fu(,)f(and)g
-Ft(.)g Fu(unsets)f(the)h Ft(DEBUG)630 518 y Fu(trap)f(while)h(it)g
+Ft(.)g Fu(unsets)f(the)h Ft(DEBUG)630 758 y Fu(trap)f(while)h(it)g
(executes.)46 b(If)31 b Ft(-T)g Fu(is)g(not)h(set,)h(and)d(the)i
-(sourced)f(\014le)h(c)m(hanges)h(the)e Ft(DEBUG)630 628
+(sourced)f(\014le)h(c)m(hanges)h(the)e Ft(DEBUG)630 867
y Fu(trap,)40 b(the)e(new)f(v)-5 b(alue)38 b(p)s(ersists)f(after)h
Ft(.)g Fu(completes.)64 b(The)37 b(return)g(status)h(is)g(the)g(exit)
-630 737 y(status)h(of)f(the)h(last)g(command)f(executed)h(from)f
+630 977 y(status)h(of)f(the)h(last)g(command)f(executed)h(from)f
Fr(\014lename)p Fu(,)i(or)f(zero)g(if)f(no)g(commands)630
-847 y(are)33 b(executed.)50 b(If)32 b Fr(\014lename)39
+1087 y(are)33 b(executed.)50 b(If)32 b Fr(\014lename)39
b Fu(is)33 b(not)g(found,)g(or)g(cannot)g(b)s(e)g(read,)g(the)h(return)
-e(status)h(is)630 956 y(non-zero.)41 b(This)30 b(builtin)g(is)g(equiv)
--5 b(alen)m(t)32 b(to)f Ft(source)p Fu(.)150 1107 y Ft(break)870
-1237 y(break)46 b([)p Fj(n)p Ft(])630 1367 y Fu(Exit)35
+e(status)h(is)630 1196 y(non-zero.)41 b(This)30 b(builtin)g(is)g(equiv)
+-5 b(alen)m(t)32 b(to)f Ft(source)p Fu(.)150 1347 y Ft(break)870
+1477 y(break)46 b([)p Fj(n)p Ft(])630 1607 y Fu(Exit)35
b(from)g(a)g Ft(for)p Fu(,)g Ft(while)p Fu(,)g Ft(until)p
Fu(,)g(or)g Ft(select)e Fu(lo)s(op.)55 b(If)34 b Fr(n)h
-Fu(is)g(supplied,)g Ft(break)e Fu(exits)630 1477 y(the)27
+Fu(is)g(supplied,)g Ft(break)e Fu(exits)630 1717 y(the)27
b Fr(n)p Fu(th)e(enclosing)j(lo)s(op.)39 b Fr(n)26 b
Fu(m)m(ust)g(b)s(e)g(greater)h(than)f(or)h(equal)g(to)g(1.)40
-b(The)25 b(return)h(status)630 1587 y(is)k(zero)i(unless)d
+b(The)25 b(return)h(status)630 1826 y(is)k(zero)i(unless)d
Fr(n)h Fu(is)g(not)h(greater)h(than)e(or)g(equal)h(to)g(1.)150
-1737 y Ft(cd)870 1867 y(cd)47 b([-L])g([-@])f([)p Fj(directory)p
-Ft(])870 1977 y(cd)h(-P)g([-e])g([-@])g([)p Fj(directory)p
-Ft(])630 2107 y Fu(Change)27 b(the)g(curren)m(t)f(w)m(orking)h
+1977 y Ft(cd)870 2107 y(cd)47 b([-L])g([-@])f([)p Fj(directory)p
+Ft(])870 2217 y(cd)h(-P)g([-e])g([-@])g([)p Fj(directory)p
+Ft(])630 2347 y Fu(Change)27 b(the)g(curren)m(t)f(w)m(orking)h
(directory)g(to)h Fr(directory)p Fu(.)40 b(If)26 b Fr(directory)35
-b Fu(is)27 b(not)g(supplied,)630 2217 y(the)37 b(v)-5
-b(alue)37 b(of)g(the)f Ft(HOME)g Fu(shell)h(v)-5 b(ariable)37
-b(is)g(used)f(as)g Fr(directory)p Fu(.)60 b(If)37 b(the)f(shell)h(v)-5
-b(ariable)630 2326 y Ft(CDPATH)27 b Fu(exists,)i(and)f
-Fr(directory)37 b Fu(do)s(es)28 b(not)g(b)s(egin)g(with)g(a)h(slash,)g
-Ft(cd)e Fu(uses)h(it)h(as)g(a)f(searc)m(h)630 2436 y(path:)38
-b Ft(cd)26 b Fu(searc)m(hes)h(eac)m(h)g(directory)f(name)g(in)g
-Ft(CDPATH)e Fu(for)i Fr(directory)p Fu(,)i(with)e(alternativ)m(e)630
-2545 y(directory)i(names)g(in)f Ft(CDPATH)f Fu(separated)i(b)m(y)f(a)h
-(colon)h(\(`)p Ft(:)p Fu('\).)40 b(A)28 b(n)m(ull)g(directory)g(name)f
-(in)630 2655 y Ft(CDPATH)i Fu(means)h(the)h(same)f(thing)h(as)f(the)h
-(curren)m(t)f(directory)-8 b(.)630 2785 y(The)31 b Ft(-P)h
-Fu(option)g(means)g(not)g(to)h(follo)m(w)g(sym)m(b)s(olic)g(links:)44
-b(sym)m(b)s(olic)32 b(links)g(are)g(resolv)m(ed)630 2895
-y(while)45 b Ft(cd)f Fu(is)h(tra)m(v)m(ersing)i Fr(directory)53
-b Fu(and)44 b(b)s(efore)h(pro)s(cessing)f(an)h(instance)h(of)f
-Ft(..)f Fu(in)630 3004 y Fr(directory)p Fu(.)630 3134
-y(By)34 b(default,)h(or)e(when)g(the)g Ft(-L)g Fu(option)h(is)g
-(supplied,)f(sym)m(b)s(olic)h(links)f(in)h Fr(directory)42
-b Fu(are)630 3244 y(resolv)m(ed)31 b(after)g Ft(cd)f
-Fu(pro)s(cesses)g(an)g(instance)h(of)g Ft(..)f Fu(in)g
-Fr(directory)p Fu(.)630 3374 y(If)c Ft(..)g Fu(app)s(ears)g(in)g
-Fr(directory)p Fu(,)j Ft(cd)d Fu(pro)s(cesses)g(it)h(b)m(y)g(remo)m
-(ving)g(the)g(immediately)h(preced-)630 3484 y(ing)37
+b Fu(is)27 b(not)g(supplied,)630 2456 y(the)41 b(v)-5
+b(alue)41 b(of)f(the)h Ft(HOME)e Fu(shell)i(v)-5 b(ariable)42
+b(is)e(used)g(as)h Fr(directory)p Fu(.)71 b(If)40 b Fr(directory)49
+b Fu(is)41 b(the)630 2566 y(empt)m(y)34 b(string,)g Ft(cd)f
+Fu(treats)i(it)f(as)g(an)f(error.)50 b(If)33 b(the)h(shell)f(v)-5
+b(ariable)35 b Ft(CDPATH)c Fu(exists,)36 b(and)630 2676
+y Fr(directory)k Fu(do)s(es)30 b(not)i(b)s(egin)f(with)g(a)g(slash,)h
+Ft(cd)f Fu(uses)f(it)i(as)g(a)f(searc)m(h)h(path:)42
+b Ft(cd)31 b Fu(searc)m(hes)630 2785 y(eac)m(h)i(directory)f(name)g(in)
+g Ft(CDPATH)e Fu(for)i Fr(directory)p Fu(,)h(with)e(alternativ)m(e)k
+(directory)d(names)630 2895 y(in)g Ft(CDPATH)f Fu(separated)j(b)m(y)e
+(a)h(colon)h(\(`)p Ft(:)p Fu('\).)49 b(A)33 b(n)m(ull)f(directory)i
+(name)f(in)f Ft(CDPATH)f Fu(means)630 3004 y(the)g(same)f(thing)h(as)f
+(the)h(curren)m(t)f(directory)-8 b(.)630 3134 y(The)31
+b Ft(-P)h Fu(option)g(means)g(not)g(to)h(follo)m(w)g(sym)m(b)s(olic)g
+(links:)44 b(sym)m(b)s(olic)32 b(links)g(are)g(resolv)m(ed)630
+3244 y(while)45 b Ft(cd)f Fu(is)h(tra)m(v)m(ersing)i
+Fr(directory)53 b Fu(and)44 b(b)s(efore)h(pro)s(cessing)f(an)h
+(instance)h(of)f Ft(..)f Fu(in)630 3354 y Fr(directory)p
+Fu(.)630 3484 y(By)34 b(default,)h(or)e(when)g(the)g
+Ft(-L)g Fu(option)h(is)g(supplied,)f(sym)m(b)s(olic)h(links)f(in)h
+Fr(directory)42 b Fu(are)630 3593 y(resolv)m(ed)31 b(after)g
+Ft(cd)f Fu(pro)s(cesses)g(an)g(instance)h(of)g Ft(..)f
+Fu(in)g Fr(directory)p Fu(.)630 3724 y(If)c Ft(..)g Fu(app)s(ears)g(in)
+g Fr(directory)p Fu(,)j Ft(cd)d Fu(pro)s(cesses)g(it)h(b)m(y)g(remo)m
+(ving)g(the)g(immediately)h(preced-)630 3833 y(ing)37
b(pathname)g(comp)s(onen)m(t,)j(bac)m(k)e(to)g(a)f(slash)g(or)h(the)f
-(b)s(eginning)g(of)g Fr(directory)p Fu(,)j(and)630 3593
+(b)s(eginning)g(of)g Fr(directory)p Fu(,)j(and)630 3943
y(v)m(erifying)35 b(that)g(the)f(p)s(ortion)g(of)g Fr(directory)42
b Fu(it)35 b(has)f(pro)s(cessed)g(to)g(that)h(p)s(oin)m(t)f(is)g(still)
-i(a)630 3703 y(v)-5 b(alid)38 b(directory)g(name)g(after)g(remo)m(ving)
+i(a)630 4052 y(v)-5 b(alid)38 b(directory)g(name)g(after)g(remo)m(ving)
g(the)g(pathname)f(comp)s(onen)m(t.)63 b(If)37 b(it)h(is)g(not)g(a)630
-3813 y(v)-5 b(alid)31 b(directory)g(name,)f Ft(cd)g Fu(returns)f(a)i
-(non-zero)g(status.)630 3943 y(If)i(the)h Ft(-e)f Fu(option)h(is)g
+4162 y(v)-5 b(alid)31 b(directory)g(name,)f Ft(cd)g Fu(returns)f(a)i
+(non-zero)g(status.)630 4292 y(If)i(the)h Ft(-e)f Fu(option)h(is)g
(supplied)e(with)i Ft(-P)f Fu(and)g Ft(cd)g Fu(cannot)h(successfully)g
-(determine)g(the)630 4052 y(curren)m(t)c(w)m(orking)h(directory)g
+(determine)g(the)630 4402 y(curren)m(t)c(w)m(orking)h(directory)g
(after)f(a)h(successful)f(directory)h(c)m(hange,)h(it)e(returns)g(a)g
-(non-)630 4162 y(zero)h(status.)630 4292 y(On)41 b(systems)h(that)h
+(non-)630 4511 y(zero)h(status.)630 4641 y(On)41 b(systems)h(that)h
(supp)s(ort)d(it,)46 b(the)c Ft(-@)g Fu(option)g(presen)m(ts)g(the)g
-(extended)g(attributes)630 4402 y(asso)s(ciated)32 b(with)e(a)h(\014le)
-f(as)h(a)f(directory)-8 b(.)630 4532 y(If)35 b Fr(directory)44
+(extended)g(attributes)630 4751 y(asso)s(ciated)32 b(with)e(a)h(\014le)
+f(as)h(a)f(directory)-8 b(.)630 4881 y(If)35 b Fr(directory)44
b Fu(is)36 b(`)p Ft(-)p Fu(',)h(it)f(is)g(con)m(v)m(erted)h(to)f
Ft($OLDPWD)e Fu(b)s(efore)h(attempting)i(the)e(directory)630
-4641 y(c)m(hange.)630 4771 y(If)d Ft(cd)f Fu(uses)h(a)h(non-empt)m(y)f
+4991 y(c)m(hange.)630 5121 y(If)d Ft(cd)f Fu(uses)h(a)h(non-empt)m(y)f
(directory)h(name)f(from)g Ft(CDPATH)p Fu(,)f(or)h(if)g(`)p
-Ft(-)p Fu(')h(is)f(the)g(\014rst)g(argu-)630 4881 y(men)m(t,)g(and)f
+Ft(-)p Fu(')h(is)f(the)g(\014rst)g(argu-)630 5230 y(men)m(t,)g(and)f
(the)g(directory)h(c)m(hange)h(is)e(successful,)h Ft(cd)e
-Fu(writes)i(the)f(absolute)h(pathname)630 4991 y(of)f(the)f(new)g(w)m
-(orking)h(directory)g(to)g(the)f(standard)g(output.)630
-5121 y(If)i(the)i(directory)f(c)m(hange)h(is)f(successful,)h
-Ft(cd)e Fu(sets)h(the)h(v)-5 b(alue)33 b(of)g(the)g Ft(PWD)f
-Fu(en)m(vironmen)m(t)630 5230 y(v)-5 b(ariable)32 b(to)g(the)f(new)g
+Fu(writes)i(the)f(absolute)h(pathname)630 5340 y(of)f(the)f(new)g(w)m
+(orking)h(directory)g(to)g(the)f(standard)g(output.)p
+eop end
+%%Page: 54 60
+TeXDict begin 54 59 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(54)630 299 y(If)32
+b(the)i(directory)f(c)m(hange)h(is)f(successful,)h Ft(cd)e
+Fu(sets)h(the)h(v)-5 b(alue)33 b(of)g(the)g Ft(PWD)f
+Fu(en)m(vironmen)m(t)630 408 y(v)-5 b(ariable)32 b(to)g(the)f(new)g
(directory)g(name,)h(and)e(sets)i(the)f Ft(OLDPWD)e Fu(en)m(vironmen)m
-(t)j(v)-5 b(ariable)630 5340 y(to)31 b(the)g(v)-5 b(alue)31
+(t)j(v)-5 b(ariable)630 518 y(to)31 b(the)g(v)-5 b(alue)31
b(of)f(the)h(curren)m(t)f(w)m(orking)g(directory)h(b)s(efore)f(the)h(c)
-m(hange.)p eop end
-%%Page: 54 60
-TeXDict begin 54 59 bop 150 -116 a Fu(Chapter)30 b(4:)h(Shell)f
-(Builtin)h(Commands)2079 b(54)630 299 y(The)29 b(return)g(status)h(is)f
-(zero)i(if)e(the)h(directory)g(is)g(successfully)g(c)m(hanged,)g
-(non-zero)g(oth-)630 408 y(erwise.)150 566 y Ft(continue)870
-699 y(continue)46 b([)p Fj(n)p Ft(])630 833 y(continue)41
-b Fu(resumes)h(the)h(next)g(iteration)h(of)f(an)g(enclosing)g
-Ft(for)p Fu(,)j Ft(while)p Fu(,)e Ft(until)p Fu(,)h(or)630
-942 y Ft(select)29 b Fu(lo)s(op.)41 b(If)30 b Fr(n)g
-Fu(is)g(supplied,)f(Bash)i(resumes)f(the)g(execution)i(of)f(the)f
-Fr(n)p Fu(th)g(enclosing)630 1052 y(lo)s(op.)45 b Fr(n)31
-b Fu(m)m(ust)g(b)s(e)g(greater)i(than)e(or)h(equal)g(to)g(1.)45
-b(The)31 b(return)g(status)h(is)f(zero)i(unless)d Fr(n)630
-1161 y Fu(is)g(not)h(greater)h(than)e(or)g(equal)h(to)g(1.)150
-1319 y Ft(eval)870 1452 y(eval)47 b([)p Fj(arguments)p
-Ft(])630 1585 y Fu(The)27 b Fr(argumen)m(ts)k Fu(are)c(concatenated)i
-(together)g(in)m(to)f(a)f(single)h(command,)g(separated)f(b)m(y)630
-1695 y(spaces.)40 b(Bash)28 b(then)f(reads)h(and)f(executes)i(this)e
-(command)h(and)f(returns)f(its)i(exit)h(status)630 1805
-y(as)g(the)f(exit)h(status)g(of)g Ft(eval)p Fu(.)39 b(If)27
-b(there)i(are)g(no)f(argumen)m(ts)h(or)f(only)h(empt)m(y)f(argumen)m
-(ts,)630 1914 y(the)j(return)e(status)i(is)f(zero.)150
-2071 y Ft(exec)870 2205 y(exec)47 b([-cl])f([-a)h Fj(name)p
+m(hange.)630 647 y(The)e(return)g(status)h(is)f(zero)i(if)e(the)h
+(directory)g(is)g(successfully)g(c)m(hanged,)g(non-zero)g(oth-)630
+756 y(erwise.)150 904 y Ft(continue)870 1033 y(continue)46
+b([)p Fj(n)p Ft(])630 1161 y(continue)41 b Fu(resumes)h(the)h(next)g
+(iteration)h(of)f(an)g(enclosing)g Ft(for)p Fu(,)j Ft(while)p
+Fu(,)e Ft(until)p Fu(,)h(or)630 1271 y Ft(select)29 b
+Fu(lo)s(op.)41 b(If)30 b Fr(n)g Fu(is)g(supplied,)f(Bash)i(resumes)f
+(the)g(execution)i(of)f(the)f Fr(n)p Fu(th)g(enclosing)630
+1380 y(lo)s(op.)45 b Fr(n)31 b Fu(m)m(ust)g(b)s(e)g(greater)i(than)e
+(or)h(equal)g(to)g(1.)45 b(The)31 b(return)g(status)h(is)f(zero)i
+(unless)d Fr(n)630 1490 y Fu(is)g(not)h(greater)h(than)e(or)g(equal)h
+(to)g(1.)150 1638 y Ft(eval)870 1766 y(eval)47 b([)p
+Fj(arguments)p Ft(])630 1895 y Fu(The)27 b Fr(argumen)m(ts)k
+Fu(are)c(concatenated)i(together)g(in)m(to)f(a)f(single)h(command,)g
+(separated)f(b)m(y)630 2005 y(spaces.)40 b(Bash)28 b(then)f(reads)h
+(and)f(executes)i(this)e(command)h(and)f(returns)f(its)i(exit)h(status)
+630 2114 y(as)g(the)f(exit)h(status)g(of)g Ft(eval)p
+Fu(.)39 b(If)27 b(there)i(are)g(no)f(argumen)m(ts)h(or)f(only)h(empt)m
+(y)f(argumen)m(ts,)630 2224 y(the)j(return)e(status)i(is)f(zero.)150
+2372 y Ft(exec)870 2500 y(exec)47 b([-cl])f([-a)h Fj(name)p
Ft(])f([)p Fj(command)g Ft([)p Fj(arguments)p Ft(]])630
-2338 y Fu(If)36 b Fr(command)k Fu(is)c(supplied,)h(it)g(replaces)h(the)
+2629 y Fu(If)36 b Fr(command)k Fu(is)c(supplied,)h(it)g(replaces)h(the)
e(shell)h(without)f(creating)i(a)f(new)f(pro)s(cess.)630
-2448 y Fr(command)43 b Fu(cannot)d(b)s(e)e(a)i(shell)f(builtin)g(or)h
+2738 y Fr(command)43 b Fu(cannot)d(b)s(e)e(a)i(shell)f(builtin)g(or)h
(function.)67 b(The)39 b Fr(argumen)m(ts)k Fu(b)s(ecome)d(the)630
-2557 y(argumen)m(ts)g(to)h Fr(command)i Fu(If)d(the)g
+2848 y(argumen)m(ts)g(to)h Fr(command)i Fu(If)d(the)g
Ft(-l)f Fu(option)h(is)g(supplied,)h(the)g(shell)f(places)g(a)h(dash)
-630 2667 y(at)g(the)g(b)s(eginning)f(of)h(the)g(zeroth)h(argumen)m(t)f
+630 2958 y(at)g(the)g(b)s(eginning)f(of)h(the)g(zeroth)h(argumen)m(t)f
(passed)f(to)i Fr(command)p Fu(.)71 b(This)40 b(is)h(what)630
-2777 y(the)31 b Ft(login)f Fu(program)h(do)s(es.)42 b(The)31
+3067 y(the)31 b Ft(login)f Fu(program)h(do)s(es.)42 b(The)31
b Ft(-c)f Fu(option)i(causes)g Fr(command)i Fu(to)e(b)s(e)e(executed)i
-(with)630 2886 y(an)i(empt)m(y)h(en)m(vironmen)m(t.)54
+(with)630 3177 y(an)i(empt)m(y)h(en)m(vironmen)m(t.)54
b(If)34 b Ft(-a)g Fu(is)h(supplied,)f(the)h(shell)g(passes)f
-Fr(name)40 b Fu(as)35 b(the)f(zeroth)630 2996 y(argumen)m(t)d(to)g
-Fr(command)p Fu(.)630 3129 y(If)h Fr(command)j Fu(cannot)e(b)s(e)f
+Fr(name)40 b Fu(as)35 b(the)f(zeroth)630 3286 y(argumen)m(t)d(to)g
+Fr(command)p Fu(.)630 3415 y(If)h Fr(command)j Fu(cannot)e(b)s(e)f
(executed)h(for)f(some)g(reason,)h(a)g(non-in)m(teractiv)m(e)i(shell)d
-(exits,)630 3239 y(unless)39 b(the)h Ft(execfail)e Fu(shell)i(option)h
+(exits,)630 3525 y(unless)39 b(the)h Ft(execfail)e Fu(shell)i(option)h
(is)f(enabled.)69 b(In)39 b(that)i(case,)j(it)c(returns)f(a)h(non-)630
-3348 y(zero)32 b(status.)44 b(An)31 b(in)m(teractiv)m(e)j(shell)e
+3634 y(zero)32 b(status.)44 b(An)31 b(in)m(teractiv)m(e)j(shell)e
(returns)e(a)i(non-zero)g(status)f(if)h(the)f(\014le)h(cannot)g(b)s(e)
-630 3458 y(executed.)42 b(A)30 b(subshell)g(exits)h(unconditionally)g
-(if)f Ft(exec)f Fu(fails.)630 3591 y(If)42 b Fr(command)k
+630 3744 y(executed.)42 b(A)30 b(subshell)g(exits)h(unconditionally)g
+(if)f Ft(exec)f Fu(fails.)630 3872 y(If)42 b Fr(command)k
Fu(is)c(not)h(sp)s(eci\014ed,)i(redirections)e(ma)m(y)g(b)s(e)f(used)g
-(to)h(a\013ect)h(the)f(curren)m(t)630 3701 y(shell)33
+(to)h(a\013ect)h(the)f(curren)m(t)630 3982 y(shell)33
b(en)m(vironmen)m(t.)48 b(If)32 b(there)h(are)g(no)f(redirection)h
-(errors,)g(the)g(return)e(status)i(is)g(zero;)630 3810
+(errors,)g(the)g(return)e(status)i(is)g(zero;)630 4092
y(otherwise)e(the)f(return)g(status)g(is)h(non-zero.)150
-3968 y Ft(exit)870 4101 y(exit)47 b([)p Fj(n)p Ft(])630
-4235 y Fu(Exit)30 b(the)g(shell,)h(returning)d(a)j(status)f(of)g
+4239 y Ft(exit)870 4368 y(exit)47 b([)p Fj(n)p Ft(])630
+4497 y Fu(Exit)30 b(the)g(shell,)h(returning)d(a)j(status)f(of)g
Fr(n)f Fu(to)h(the)g(shell's)g(paren)m(t.)41 b(If)30
-b Fr(n)f Fu(is)h(omitted,)h(the)630 4344 y(exit)c(status)g(is)g(that)g
+b Fr(n)f Fu(is)h(omitted,)h(the)630 4606 y(exit)c(status)g(is)g(that)g
(of)g(the)g(last)g(command)f(executed.)41 b(An)m(y)26
-b(trap)h(on)f Ft(EXIT)f Fu(is)i(executed)630 4454 y(b)s(efore)j(the)h
-(shell)f(terminates.)150 4611 y Ft(export)870 4744 y(export)46
+b(trap)h(on)f Ft(EXIT)f Fu(is)i(executed)630 4716 y(b)s(efore)j(the)h
+(shell)f(terminates.)150 4864 y Ft(export)870 4992 y(export)46
b([-fn])g([-p])h([)p Fj(name)p Ft([=)p Fj(value)p Ft(]])630
-4878 y Fu(Mark)34 b(eac)m(h)h Fr(name)k Fu(to)c(b)s(e)e(passed)g(to)i
+5121 y Fu(Mark)34 b(eac)m(h)h Fr(name)k Fu(to)c(b)s(e)e(passed)g(to)i
(subsequen)m(tly)e(executed)i(commands)e(in)h(the)g(en-)630
-4987 y(vironmen)m(t.)75 b(If)42 b(the)f Ft(-f)h Fu(option)g(is)g
+5230 y(vironmen)m(t.)75 b(If)42 b(the)f Ft(-f)h Fu(option)g(is)g
(supplied,)h(the)f Fr(name)5 b Fu(s)42 b(refer)g(to)g(shell)g
-(functions;)630 5097 y(otherwise)31 b(the)f(names)h(refer)f(to)h(shell)
-f(v)-5 b(ariables.)630 5230 y(The)31 b Ft(-n)f Fu(option)i(means)f(to)h
-(unexp)s(ort)e(eac)m(h)j(name:)42 b(no)32 b(longer)f(mark)g(it)h(for)f
-(exp)s(ort.)43 b(If)630 5340 y(no)30 b Fr(name)5 b Fu(s)31
-b(are)g(supplied,)e(or)i(if)f(only)h(the)g Ft(-p)f Fu(option)h(is)f
-(giv)m(en,)i Ft(export)d Fu(displa)m(ys)h(a)h(list)p
-eop end
+(functions;)630 5340 y(otherwise)31 b(the)f(names)h(refer)f(to)h(shell)
+f(v)-5 b(ariables.)p eop end
%%Page: 55 61
-TeXDict begin 55 60 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(55)630 299 y(of)37
-b(names)h(of)f(all)h(exp)s(orted)f(v)-5 b(ariables)38
-b(on)f(the)g(standard)g(output.)61 b(Using)37 b Ft(-p)g
-Fu(and)g Ft(-f)630 408 y Fu(together)32 b(displa)m(ys)f(exp)s(orted)g
-(functions.)41 b(The)31 b Ft(-p)f Fu(option)h(displa)m(ys)g(output)g
-(in)f(a)h(form)630 518 y(that)g(ma)m(y)g(b)s(e)f(reused)f(as)i(input.)
-630 647 y Ft(export)e Fu(allo)m(ws)k(the)e(v)-5 b(alue)31
+TeXDict begin 55 60 bop 150 -116 a Fu(Chapter)30 b(4:)h(Shell)f
+(Builtin)h(Commands)2079 b(55)630 299 y(The)31 b Ft(-n)f
+Fu(option)i(means)f(to)h(unexp)s(ort)e(eac)m(h)j(name:)42
+b(no)32 b(longer)f(mark)g(it)h(for)f(exp)s(ort.)43 b(If)630
+408 y(no)30 b Fr(name)5 b Fu(s)31 b(are)g(supplied,)e(or)i(if)f(only)h
+(the)g Ft(-p)f Fu(option)h(is)f(giv)m(en,)i Ft(export)d
+Fu(displa)m(ys)h(a)h(list)630 518 y(of)37 b(names)h(of)f(all)h(exp)s
+(orted)f(v)-5 b(ariables)38 b(on)f(the)g(standard)g(output.)61
+b(Using)37 b Ft(-p)g Fu(and)g Ft(-f)630 628 y Fu(together)32
+b(displa)m(ys)f(exp)s(orted)g(functions.)41 b(The)31
+b Ft(-p)f Fu(option)h(displa)m(ys)g(output)g(in)f(a)h(form)630
+737 y(that)g(ma)m(y)g(b)s(e)f(reused)f(as)i(input.)630
+866 y Ft(export)e Fu(allo)m(ws)k(the)e(v)-5 b(alue)31
b(of)h(a)f(v)-5 b(ariable)32 b(to)g(b)s(e)e(set)i(at)f(the)g(same)h
-(time)g(it)f(is)g(exp)s(orted)630 757 y(or)e(unexp)s(orted)f(b)m(y)g
+(time)g(it)f(is)g(exp)s(orted)630 976 y(or)e(unexp)s(orted)f(b)m(y)g
(follo)m(wing)j(the)e(v)-5 b(ariable)30 b(name)f(with)f(=)p
Fr(v)-5 b(alue)p Fu(.)41 b(This)28 b(sets)h(the)g(v)-5
-b(alue)630 866 y(of)31 b(the)f(v)-5 b(ariable)31 b(is)g(to)g
+b(alue)630 1085 y(of)31 b(the)f(v)-5 b(ariable)31 b(is)g(to)g
Fr(v)-5 b(alue)36 b Fu(while)30 b(mo)s(difying)g(the)g(exp)s(ort)h
-(attribute.)630 995 y(The)e(return)e(status)j(is)f(zero)h(unless)e(an)h
-(in)m(v)-5 b(alid)29 b(option)h(is)f(supplied,)f(one)i(of)f(the)g
-(names)630 1105 y(is)k(not)g(a)h(v)-5 b(alid)33 b(shell)h(v)-5
+(attribute.)630 1214 y(The)e(return)e(status)j(is)f(zero)h(unless)e(an)
+h(in)m(v)-5 b(alid)29 b(option)h(is)f(supplied,)f(one)i(of)f(the)g
+(names)630 1324 y(is)k(not)g(a)h(v)-5 b(alid)33 b(shell)h(v)-5
b(ariable)33 b(name,)i(or)e Ft(-f)f Fu(is)h(supplied)f(with)h(a)g(name)
-g(that)h(is)f(not)h(a)630 1214 y(shell)d(function.)150
-1363 y Ft(false)870 1491 y(false)630 1620 y Fu(Do)s(es)g(nothing;)g
-(returns)e(a)h(non-zero)h(status.)150 1769 y Ft(getopts)870
-1898 y(getopts)46 b Fj(optstring)f(name)i Ft([)p Fj(arg)f
-Ft(...])630 2027 y(getopts)24 b Fu(is)i(used)f(b)m(y)h(shell)g(scripts)
+g(that)h(is)f(not)h(a)630 1433 y(shell)d(function.)150
+1582 y Ft(false)870 1711 y(false)630 1840 y Fu(Do)s(es)g(nothing;)g
+(returns)e(a)h(non-zero)h(status.)150 1988 y Ft(getopts)870
+2117 y(getopts)46 b Fj(optstring)f(name)i Ft([)p Fj(arg)f
+Ft(...])630 2246 y(getopts)24 b Fu(is)i(used)f(b)m(y)h(shell)g(scripts)
g(or)g(functions)f(to)i(parse)f(p)s(ositional)g(parameters)h(and)630
-2136 y(obtain)35 b(options)h(and)e(their)h(argumen)m(ts.)55
+2355 y(obtain)35 b(options)h(and)e(their)h(argumen)m(ts.)55
b Fr(optstring)43 b Fu(con)m(tains)36 b(the)f(option)g(c)m(haracters)
-630 2246 y(to)h(b)s(e)f(recognized;)k(if)c(a)h(c)m(haracter)h(is)e
+630 2465 y(to)h(b)s(e)f(recognized;)k(if)c(a)h(c)m(haracter)h(is)e
(follo)m(w)m(ed)i(b)m(y)e(a)h(colon,)i(the)d(option)h(is)g(exp)s(ected)
-630 2355 y(to)g(ha)m(v)m(e)h(an)f(argumen)m(t,)h(whic)m(h)f(should)e(b)
+630 2574 y(to)g(ha)m(v)m(e)h(an)f(argumen)m(t,)h(whic)m(h)f(should)e(b)
s(e)h(separated)h(from)g(it)g(b)m(y)f(whitespace.)57
-b(The)630 2465 y(colon)31 b(\(`)p Ft(:)p Fu('\))h(and)d(question)i
+b(The)630 2684 y(colon)31 b(\(`)p Ft(:)p Fu('\))h(and)d(question)i
(mark)f(\(`)p Ft(?)p Fu('\))h(ma)m(y)g(not)g(b)s(e)f(used)f(as)i
-(option)g(c)m(haracters.)630 2594 y(Eac)m(h)38 b(time)g(it)g(is)f(in)m
+(option)g(c)m(haracters.)630 2813 y(Eac)m(h)38 b(time)g(it)g(is)f(in)m
(v)m(ok)m(ed,)k Ft(getopts)35 b Fu(places)j(the)f(next)h(option)f(in)g
-(the)h(shell)f(v)-5 b(ariable)630 2703 y Fr(name)p Fu(,)28
+(the)h(shell)f(v)-5 b(ariable)630 2923 y Fr(name)p Fu(,)28
b(initializing)h Fr(name)j Fu(if)27 b(it)h(do)s(es)f(not)g(exist,)i
(and)d(the)h(index)g(of)g(the)g(next)g(argumen)m(t)630
-2813 y(to)34 b(b)s(e)f(pro)s(cessed)g(in)m(to)i(the)f(v)-5
+3032 y(to)34 b(b)s(e)f(pro)s(cessed)g(in)m(to)i(the)f(v)-5
b(ariable)34 b Ft(OPTIND)p Fu(.)48 b Ft(OPTIND)32 b Fu(is)i
-(initialized)h(to)g(1)f(eac)m(h)g(time)630 2923 y(the)k(shell)f(or)h(a)
+(initialized)h(to)g(1)f(eac)m(h)g(time)630 3142 y(the)k(shell)f(or)h(a)
g(shell)f(script)h(is)f(in)m(v)m(ok)m(ed.)63 b(When)38
-b(an)f(option)h(requires)f(an)g(argumen)m(t,)630 3032
+b(an)f(option)h(requires)f(an)g(argumen)m(t,)630 3251
y Ft(getopts)28 b Fu(places)k(that)f(argumen)m(t)f(in)m(to)i(the)e(v)-5
-b(ariable)31 b Ft(OPTARG)p Fu(.)630 3161 y(The)j(shell)g(do)s(es)h(not)
+b(ariable)31 b Ft(OPTARG)p Fu(.)630 3380 y(The)j(shell)g(do)s(es)h(not)
f(reset)h Ft(OPTIND)e Fu(automatically;)39 b(it)c(m)m(ust)g(b)s(e)e
-(man)m(ually)i(reset)g(b)s(e-)630 3271 y(t)m(w)m(een)e(m)m(ultiple)f
+(man)m(ually)i(reset)g(b)s(e-)630 3490 y(t)m(w)m(een)e(m)m(ultiple)f
(calls)g(to)g Ft(getopts)e Fu(within)h(the)g(same)h(shell)g(in)m(v)m(o)
-s(cation)h(to)g(use)e(a)g(new)630 3380 y(set)g(of)f(parameters.)630
-3509 y(When)i(it)g(reac)m(hes)h(the)e(end)h(of)f(options,)i
+s(cation)h(to)g(use)e(a)g(new)630 3599 y(set)g(of)f(parameters.)630
+3728 y(When)i(it)g(reac)m(hes)h(the)e(end)h(of)f(options,)i
Ft(getopts)d Fu(exits)i(with)g(a)g(return)f(v)-5 b(alue)32
-b(greater)630 3619 y(than)39 b(zero.)67 b Ft(OPTIND)38
+b(greater)630 3838 y(than)39 b(zero.)67 b Ft(OPTIND)38
b Fu(is)h(set)g(to)h(the)f(index)g(of)g(the)g(\014rst)f(non-option)i
-(argumen)m(t,)i(and)630 3728 y Fr(name)36 b Fu(is)30
-b(set)h(to)g(`)p Ft(?)p Fu('.)630 3857 y Ft(getopts)c
+(argumen)m(t,)i(and)630 3948 y Fr(name)36 b Fu(is)30
+b(set)h(to)g(`)p Ft(?)p Fu('.)630 4076 y Ft(getopts)c
Fu(normally)j(parses)e(the)i(p)s(ositional)g(parameters,)g(but)e(if)i
-(more)f(argumen)m(ts)h(are)630 3967 y(supplied)f(as)i
+(more)f(argumen)m(ts)h(are)630 4186 y(supplied)f(as)i
Fr(arg)38 b Fu(v)-5 b(alues,)31 b Ft(getopts)e Fu(parses)h(those)h
-(instead.)630 4096 y Ft(getopts)37 b Fu(can)i(rep)s(ort)f(errors)g(in)h
+(instead.)630 4315 y Ft(getopts)37 b Fu(can)i(rep)s(ort)f(errors)g(in)h
(t)m(w)m(o)h(w)m(a)m(ys.)67 b(If)38 b(the)h(\014rst)g(c)m(haracter)h
-(of)f Fr(optstring)47 b Fu(is)630 4205 y(a)41 b(colon,)k
+(of)f Fr(optstring)47 b Fu(is)630 4425 y(a)41 b(colon,)k
Ft(getopts)39 b Fu(uses)h Fl(silent)50 b Fu(error)40
b(rep)s(orting.)72 b(In)40 b(normal)h(op)s(eration,)j
-Ft(getopts)630 4315 y Fu(prin)m(ts)26 b(diagnostic)i(messages)g(when)e
+Ft(getopts)630 4534 y Fu(prin)m(ts)26 b(diagnostic)i(messages)g(when)e
(it)h(encoun)m(ters)g(in)m(v)-5 b(alid)27 b(options)g(or)g(missing)f
-(option)630 4425 y(argumen)m(ts.)63 b(If)37 b(the)h(v)-5
+(option)630 4644 y(argumen)m(ts.)63 b(If)37 b(the)h(v)-5
b(ariable)38 b Ft(OPTERR)e Fu(is)i(set)g(to)g(0,)i Ft(getopts)c
-Fu(do)s(es)h(not)h(displa)m(y)g(an)m(y)630 4534 y(error)30
+Fu(do)s(es)h(not)h(displa)m(y)g(an)m(y)630 4753 y(error)30
b(messages,)i(ev)m(en)f(if)f(the)h(\014rst)e(c)m(haracter)j(of)f
-Ft(optstring)d Fu(is)i(not)h(a)f(colon.)630 4663 y(If)i
+Ft(optstring)d Fu(is)i(not)h(a)f(colon.)630 4882 y(If)i
Ft(getopts)e Fu(detects)j(an)g(in)m(v)-5 b(alid)32 b(option,)i(it)f
(places)g(`)p Ft(?)p Fu(')f(in)m(to)h Fr(name)38 b Fu(and,)32
-b(if)g(not)h(silen)m(t,)630 4773 y(prin)m(ts)e(an)h(error)f(message)i
+b(if)g(not)h(silen)m(t,)630 4992 y(prin)m(ts)e(an)h(error)f(message)i
(and)e(unsets)g Ft(OPTARG)p Fu(.)42 b(If)31 b Ft(getopts)f
-Fu(is)i(silen)m(t,)h(it)f(assigns)g(the)630 4882 y(option)f(c)m
+Fu(is)i(silen)m(t,)h(it)f(assigns)g(the)630 5101 y(option)f(c)m
(haracter)h(found)d(to)i Ft(OPTARG)e Fu(and)g(do)s(es)h(not)h(prin)m(t)
-f(a)h(diagnostic)h(message.)630 5011 y(If)21 b(a)h(required)f(argumen)m
+f(a)h(diagnostic)h(message.)630 5230 y(If)21 b(a)h(required)f(argumen)m
(t)h(is)g(not)g(found,)g(and)f Ft(getopts)f Fu(is)h(not)h(silen)m(t,)j
-(it)d(sets)g(the)g(v)-5 b(alue)22 b(of)630 5121 y Fr(name)32
+(it)d(sets)g(the)g(v)-5 b(alue)22 b(of)630 5340 y Fr(name)32
b Fu(to)27 b(a)g(question)g(mark)f(\(`)p Ft(?)p Fu('\),)j(unsets)d
-Ft(OPTARG)p Fu(,)g(and)g(prin)m(ts)g(a)h(diagnostic)h(message.)630
-5230 y(If)i Ft(getopts)f Fu(is)i(silen)m(t,)h(it)f(sets)h(the)f(v)-5
-b(alue)31 b(of)g Fr(name)36 b Fu(to)31 b(a)g(colon)h(\(`)p
-Ft(:)p Fu('\),)g(and)e(sets)i Ft(OPTARG)630 5340 y Fu(to)f(the)g
-(option)g(c)m(haracter)g(found.)p eop end
+Ft(OPTARG)p Fu(,)g(and)g(prin)m(ts)g(a)h(diagnostic)h(message.)p
+eop end
%%Page: 56 62
-TeXDict begin 56 61 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(56)630 299 y Ft(getopts)28
-b Fu(returns)h(true)h(if)g(an)g(option,)h(sp)s(eci\014ed)e(or)h(unsp)s
-(eci\014ed,)f(is)h(found.)39 b(It)30 b(returns)630 408
-y(false)h(when)e(it)i(encoun)m(ters)g(the)g(end)e(of)i(options)g(or)f
-(if)g(an)h(error)f(o)s(ccurs.)150 573 y Ft(hash)870 710
-y(hash)47 b([-r])f([-p)h Fj(filename)p Ft(])e([-dt])i([)p
-Fj(name)p Ft(])630 847 y Fu(Eac)m(h)37 b(time)h Ft(hash)d
-Fu(is)i(in)m(v)m(ok)m(ed,)j(it)d(remem)m(b)s(ers)f(the)h(full)f
-(\014lenames)h(of)f(the)h(commands)630 956 y(sp)s(eci\014ed)c(as)i
-Fr(name)k Fu(argumen)m(ts,)c(so)g(they)f(need)g(not)g(b)s(e)f(searc)m
-(hed)i(for)f(on)g(subsequen)m(t)630 1066 y(in)m(v)m(o)s(cations.)79
-b(The)41 b(commands)h(are)h(found)e(b)m(y)h(searc)m(hing)i(through)d
-(the)i(directories)630 1176 y(listed)32 b(in)g Ft($PATH)p
-Fu(.)43 b(An)m(y)32 b(previously-remem)m(b)s(ered)f(\014lename)h(asso)s
-(ciated)h(with)e Fr(name)37 b Fu(is)630 1285 y(discarded.)51
-b(The)33 b Ft(-p)g Fu(option)i(inhibits)e(the)h(path)g(searc)m(h,)h
-(and)e Ft(hash)g Fu(uses)h Fr(\014lename)39 b Fu(as)630
-1395 y(the)31 b(lo)s(cation)h(of)e Fr(name)p Fu(.)630
-1532 y(The)35 b Ft(-r)g Fu(option)h(causes)g(the)g(shell)g(to)h(forget)
-f(all)h(remem)m(b)s(ered)e(lo)s(cations.)58 b(Assigning)630
-1641 y(to)31 b(the)f Ft(PATH)e Fu(v)-5 b(ariable)31 b(also)g(clears)g
-(all)g(hashed)e(\014lenames.)40 b(The)30 b Ft(-d)f Fu(option)h(causes)h
-(the)630 1751 y(shell)g(to)g(forget)g(the)g(remem)m(b)s(ered)e(lo)s
-(cation)j(of)f(eac)m(h)g Fr(name)p Fu(.)630 1888 y(If)38
-b(the)h Ft(-t)f Fu(option)h(is)g(supplied,)g Ft(hash)f
-Fu(prin)m(ts)g(the)h(full)f(pathname)h(corresp)s(onding)e(to)630
-1998 y(eac)m(h)29 b Fr(name)p Fu(.)40 b(If)28 b(m)m(ultiple)h
-Fr(name)k Fu(argumen)m(ts)c(are)f(supplied)f(with)h Ft(-t)p
-Fu(,)g Ft(hash)f Fu(prin)m(ts)h(eac)m(h)630 2107 y Fr(name)i
+TeXDict begin 56 61 bop 150 -116 a Fu(Chapter)30 b(4:)h(Shell)f
+(Builtin)h(Commands)2079 b(56)630 299 y(If)30 b Ft(getopts)f
+Fu(is)i(silen)m(t,)h(it)f(sets)h(the)f(v)-5 b(alue)31
+b(of)g Fr(name)36 b Fu(to)31 b(a)g(colon)h(\(`)p Ft(:)p
+Fu('\),)g(and)e(sets)i Ft(OPTARG)630 408 y Fu(to)f(the)g(option)g(c)m
+(haracter)g(found.)630 544 y Ft(getopts)d Fu(returns)h(true)h(if)g(an)g
+(option,)h(sp)s(eci\014ed)e(or)h(unsp)s(eci\014ed,)f(is)h(found.)39
+b(It)30 b(returns)630 653 y(false)h(when)e(it)i(encoun)m(ters)g(the)g
+(end)e(of)i(options)g(or)f(if)g(an)h(error)f(o)s(ccurs.)150
+815 y Ft(hash)870 950 y(hash)47 b([-r])f([-p)h Fj(filename)p
+Ft(])e([-dt])i([)p Fj(name)p Ft(])630 1085 y Fu(Eac)m(h)37
+b(time)h Ft(hash)d Fu(is)i(in)m(v)m(ok)m(ed,)j(it)d(remem)m(b)s(ers)f
+(the)h(full)f(\014lenames)h(of)f(the)h(commands)630 1195
+y(sp)s(eci\014ed)c(as)i Fr(name)k Fu(argumen)m(ts,)c(so)g(they)f(need)g
+(not)g(b)s(e)f(searc)m(hed)i(for)f(on)g(subsequen)m(t)630
+1305 y(in)m(v)m(o)s(cations.)79 b(The)41 b(commands)h(are)h(found)e(b)m
+(y)h(searc)m(hing)i(through)d(the)i(directories)630 1414
+y(listed)32 b(in)g Ft($PATH)p Fu(.)43 b(An)m(y)32 b(previously-remem)m
+(b)s(ered)f(\014lename)h(asso)s(ciated)h(with)e Fr(name)37
+b Fu(is)630 1524 y(discarded.)51 b(The)33 b Ft(-p)g Fu(option)i
+(inhibits)e(the)h(path)g(searc)m(h,)h(and)e Ft(hash)g
+Fu(uses)h Fr(\014lename)39 b Fu(as)630 1633 y(the)31
+b(lo)s(cation)h(of)e Fr(name)p Fu(.)630 1769 y(The)35
+b Ft(-r)g Fu(option)h(causes)g(the)g(shell)g(to)h(forget)f(all)h(remem)
+m(b)s(ered)e(lo)s(cations.)58 b(Assigning)630 1878 y(to)31
+b(the)f Ft(PATH)e Fu(v)-5 b(ariable)31 b(also)g(clears)g(all)g(hashed)e
+(\014lenames.)40 b(The)30 b Ft(-d)f Fu(option)h(causes)h(the)630
+1988 y(shell)g(to)g(forget)g(the)g(remem)m(b)s(ered)e(lo)s(cation)j(of)
+f(eac)m(h)g Fr(name)p Fu(.)630 2123 y(If)38 b(the)h Ft(-t)f
+Fu(option)h(is)g(supplied,)g Ft(hash)f Fu(prin)m(ts)g(the)h(full)f
+(pathname)h(corresp)s(onding)e(to)630 2233 y(eac)m(h)29
+b Fr(name)p Fu(.)40 b(If)28 b(m)m(ultiple)h Fr(name)k
+Fu(argumen)m(ts)c(are)f(supplied)f(with)h Ft(-t)p Fu(,)g
+Ft(hash)f Fu(prin)m(ts)h(eac)m(h)630 2342 y Fr(name)i
Fu(b)s(efore)24 b(the)h(corresp)s(onding)f(hashed)f(full)i(path.)38
b(The)24 b Ft(-l)g Fu(option)i(displa)m(ys)e(output)630
-2217 y(in)30 b(a)h(format)g(that)f(ma)m(y)h(b)s(e)f(reused)g(as)g
-(input.)630 2354 y(If)38 b(no)g(argumen)m(ts)g(are)h(giv)m(en,)i(or)d
+2452 y(in)30 b(a)h(format)g(that)f(ma)m(y)h(b)s(e)f(reused)g(as)g
+(input.)630 2587 y(If)38 b(no)g(argumen)m(ts)g(are)h(giv)m(en,)i(or)d
(if)h(only)f Ft(-l)g Fu(is)g(supplied,)h Ft(hash)e Fu(prin)m(ts)h
-(information)630 2463 y(ab)s(out)d(remem)m(b)s(ered)g(commands.)57
+(information)630 2697 y(ab)s(out)d(remem)m(b)s(ered)g(commands.)57
b(The)35 b Ft(-t)p Fu(,)h Ft(-d)p Fu(,)h(and)e Ft(-p)g
-Fu(options)h(\(the)g(options)g(that)630 2573 y(act)28
+Fu(options)h(\(the)g(options)g(that)630 2807 y(act)28
b(on)f(the)h Fr(name)k Fu(argumen)m(ts\))c(are)f(m)m(utually)h
(exclusiv)m(e.)41 b(Only)26 b(one)i(will)f(b)s(e)g(activ)m(e.)41
-b(If)630 2682 y(more)25 b(than)h(one)f(is)h(supplied,)f
+b(If)630 2916 y(more)25 b(than)h(one)f(is)h(supplied,)f
Ft(-t)g Fu(has)g(higher)g(priorit)m(y)g(than)g Ft(-p)p
-Fu(,)h(and)f(b)s(oth)g(ha)m(v)m(e)h(higher)630 2792 y(priorit)m(y)31
-b(than)f Ft(-d)p Fu(.)630 2929 y(The)38 b(return)g(status)h(is)g(zero)h
+Fu(,)h(and)f(b)s(oth)g(ha)m(v)m(e)h(higher)630 3026 y(priorit)m(y)31
+b(than)f Ft(-d)p Fu(.)630 3161 y(The)38 b(return)g(status)h(is)g(zero)h
(unless)e(a)i Fr(name)k Fu(is)39 b(not)g(found)e(or)i(an)g(in)m(v)-5
-b(alid)40 b(option)f(is)630 3039 y(supplied.)150 3203
-y Ft(pwd)870 3340 y(pwd)47 b([-LP])630 3477 y Fu(Prin)m(t)29
+b(alid)40 b(option)f(is)630 3271 y(supplied.)150 3432
+y Ft(pwd)870 3567 y(pwd)47 b([-LP])630 3703 y Fu(Prin)m(t)29
b(the)g(absolute)h(pathname)e(of)h(the)h(curren)m(t)e(w)m(orking)h
(directory)-8 b(.)42 b(If)28 b(the)h Ft(-P)f Fu(option)630
-3587 y(is)41 b(supplied,)i(or)f(the)f Ft(-o)30 b(physical)39
+3812 y(is)41 b(supplied,)i(or)f(the)f Ft(-o)30 b(physical)39
b Fu(option)j(to)g(the)f Ft(set)g Fu(builtin)g(\(see)h(Section)g(4.3.1)
-630 3696 y([The)35 b(Set)f(Builtin],)j(page)f(74\))g(is)f(enabled,)h
+630 3922 y([The)35 b(Set)f(Builtin],)j(page)f(74\))g(is)f(enabled,)h
(the)f(pathname)f(prin)m(ted)g(will)i(not)f(con)m(tain)630
-3806 y(sym)m(b)s(olic)29 b(links.)39 b(If)28 b(the)h
+4031 y(sym)m(b)s(olic)29 b(links.)39 b(If)28 b(the)h
Ft(-L)e Fu(option)i(is)g(supplied,)e(the)i(pathname)f(prin)m(ted)g(ma)m
-(y)h(con)m(tain)630 3915 y(sym)m(b)s(olic)34 b(links.)52
+(y)h(con)m(tain)630 4141 y(sym)m(b)s(olic)34 b(links.)52
b(The)33 b(return)g(status)i(is)f(zero)h(unless)e(an)h(error)f(is)h
-(encoun)m(tered)h(while)630 4025 y(determining)30 b(the)g(name)g(of)g
+(encoun)m(tered)h(while)630 4251 y(determining)30 b(the)g(name)g(of)g
(the)g(curren)m(t)f(directory)i(or)f(an)f(in)m(v)-5 b(alid)31
-b(option)f(is)g(supplied.)150 4189 y Ft(readonly)870
-4326 y(readonly)46 b([-aAf])g([-p])g([)p Fj(name)p Ft([=)p
-Fj(value)p Ft(]])e(...)630 4463 y Fu(Mark)24 b(eac)m(h)h
+b(option)f(is)g(supplied.)150 4412 y Ft(readonly)870
+4547 y(readonly)46 b([-aAf])g([-p])g([)p Fj(name)p Ft([=)p
+Fj(value)p Ft(]])e(...)630 4682 y Fu(Mark)24 b(eac)m(h)h
Fr(name)k Fu(as)24 b(readonly)-8 b(.)39 b(The)24 b(v)-5
b(alues)24 b(of)g(these)g(names)g(ma)m(y)g(not)g(b)s(e)g(c)m(hanged)g
-(b)m(y)630 4573 y(subsequen)m(t)29 b(assignmen)m(t)i(or)f(unset.)41
+(b)m(y)630 4792 y(subsequen)m(t)29 b(assignmen)m(t)i(or)f(unset.)41
b(If)29 b(the)i Ft(-f)e Fu(option)i(is)f(supplied,)f(eac)m(h)i
-Fr(name)k Fu(refers)630 4682 y(to)30 b(a)f(shell)g(function.)40
+Fr(name)k Fu(refers)630 4902 y(to)30 b(a)f(shell)g(function.)40
b(The)29 b Ft(-a)f Fu(option)i(means)e(eac)m(h)j Fr(name)j
-Fu(refers)28 b(to)i(an)f(indexed)f(arra)m(y)630 4792
+Fu(refers)28 b(to)i(an)f(indexed)f(arra)m(y)630 5011
y(v)-5 b(ariable;)28 b(the)f Ft(-A)e Fu(option)h(means)g(eac)m(h)h
Fr(name)k Fu(refers)26 b(to)g(an)g(asso)s(ciativ)m(e)i(arra)m(y)f(v)-5
-b(ariable.)630 4902 y(If)35 b(b)s(oth)g(options)h(are)h(supplied,)f
+b(ariable.)630 5121 y(If)35 b(b)s(oth)g(options)h(are)h(supplied,)f
Ft(-A)f Fu(tak)m(es)i(precedence.)58 b(If)35 b(no)h Fr(name)k
-Fu(argumen)m(ts)d(are)630 5011 y(supplied,)44 b(or)f(if)f(the)g
+Fu(argumen)m(ts)d(are)630 5230 y(supplied,)44 b(or)f(if)f(the)g
Ft(-p)g Fu(option)h(is)f(supplied,)i(prin)m(t)e(a)h(list)g(of)f(all)h
-(readonly)g(names.)630 5121 y(The)32 b(other)g(options)g(ma)m(y)h(b)s
+(readonly)g(names.)630 5340 y(The)32 b(other)g(options)g(ma)m(y)h(b)s
(e)f(used)f(to)i(restrict)g(the)f(output)g(to)h(a)f(subset)g(of)g(the)g
-(set)h(of)630 5230 y(readonly)26 b(names.)40 b(The)25
-b Ft(-p)h Fu(option)g(displa)m(ys)h(output)f(in)f(a)i(format)g(that)f
-(ma)m(y)h(b)s(e)f(reused)630 5340 y(as)31 b(input.)p
-eop end
+(set)h(of)p eop end
%%Page: 57 63
TeXDict begin 57 62 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(57)630 299 y Ft(readonly)25
-b Fu(allo)m(ws)j(the)f(v)-5 b(alue)27 b(of)h(a)f(v)-5
-b(ariable)28 b(to)f(b)s(e)g(set)g(at)h(the)f(same)g(time)h(the)f
-(readonly)630 408 y(attribute)j(is)f(c)m(hanged)g(b)m(y)g(follo)m(wing)
-h(the)g(v)-5 b(ariable)29 b(name)g(with)g(=)p Fr(v)-5
-b(alue)p Fu(.)40 b(This)28 b(sets)i(the)630 518 y(v)-5
-b(alue)31 b(of)f(the)h(v)-5 b(ariable)31 b(is)g(to)g
+b(Shell)30 b(Builtin)h(Commands)2069 b(57)630 299 y(readonly)26
+b(names.)40 b(The)25 b Ft(-p)h Fu(option)g(displa)m(ys)h(output)f(in)f
+(a)i(format)g(that)f(ma)m(y)h(b)s(e)f(reused)630 408
+y(as)31 b(input.)630 544 y Ft(readonly)25 b Fu(allo)m(ws)j(the)f(v)-5
+b(alue)27 b(of)h(a)f(v)-5 b(ariable)28 b(to)f(b)s(e)g(set)g(at)h(the)f
+(same)g(time)h(the)f(readonly)630 653 y(attribute)j(is)f(c)m(hanged)g
+(b)m(y)g(follo)m(wing)h(the)g(v)-5 b(ariable)29 b(name)g(with)g(=)p
+Fr(v)-5 b(alue)p Fu(.)40 b(This)28 b(sets)i(the)630 763
+y(v)-5 b(alue)31 b(of)f(the)h(v)-5 b(ariable)31 b(is)g(to)g
Fr(v)-5 b(alue)36 b Fu(while)30 b(mo)s(difying)g(the)g(readonly)h
-(attribute.)630 647 y(The)g(return)f(status)h(is)h(zero)g(unless)e(an)h
+(attribute.)630 898 y(The)g(return)f(status)h(is)h(zero)g(unless)e(an)h
(in)m(v)-5 b(alid)32 b(option)g(is)f(supplied,)f(one)i(of)f(the)h
-Fr(name)630 757 y Fu(argumen)m(ts)38 b(is)g(not)g(a)h(v)-5
+Fr(name)630 1008 y Fu(argumen)m(ts)38 b(is)g(not)g(a)h(v)-5
b(alid)38 b(shell)g(v)-5 b(ariable)39 b(or)f(function)f(name,)j(or)e
-(the)g Ft(-f)g Fu(option)g(is)630 866 y(supplied)29 b(with)h(a)h(name)f
-(that)h(is)g(not)f(a)h(shell)g(function.)150 1014 y Ft(return)870
-1143 y(return)46 b([)p Fj(n)p Ft(])630 1272 y Fu(Stop)22
-b(executing)h(a)f(shell)g(function)g(or)f(sourced)h(\014le)g(and)f
-(return)g(the)h(v)-5 b(alue)22 b Fr(n)g Fu(to)g(its)g(caller.)630
-1382 y(If)38 b Fr(n)h Fu(is)g(not)g(supplied,)h(the)f(return)e(v)-5
-b(alue)40 b(is)f(the)g(exit)g(status)g(of)g(the)g(last)h(command)630
-1491 y(executed.)51 b(If)33 b Ft(return)f Fu(is)i(executed)g(b)m(y)g(a)
-g(trap)f(handler,)h(the)g(last)g(command)f(used)g(to)630
-1601 y(determine)e(the)g(status)h(is)f(the)g(last)h(command)e(executed)
-i(b)s(efore)f(the)g(trap)g(handler.)41 b(If)630 1711
-y Ft(return)31 b Fu(is)h(executed)h(during)e(a)i Ft(DEBUG)e
-Fu(trap,)i(the)g(last)g(command)f(used)g(to)h(determine)630
-1820 y(the)26 b(status)g(is)g(the)g(last)h(command)f(executed)g(b)m(y)g
+(the)g Ft(-f)g Fu(option)g(is)630 1118 y(supplied)29
+b(with)h(a)h(name)f(that)h(is)g(not)f(a)h(shell)g(function.)150
+1279 y Ft(return)870 1414 y(return)46 b([)p Fj(n)p Ft(])630
+1549 y Fu(Stop)22 b(executing)h(a)f(shell)g(function)g(or)f(sourced)h
+(\014le)g(and)f(return)g(the)h(v)-5 b(alue)22 b Fr(n)g
+Fu(to)g(its)g(caller.)630 1659 y(If)38 b Fr(n)h Fu(is)g(not)g
+(supplied,)h(the)f(return)e(v)-5 b(alue)40 b(is)f(the)g(exit)g(status)g
+(of)g(the)g(last)h(command)630 1769 y(executed.)51 b(If)33
+b Ft(return)f Fu(is)i(executed)g(b)m(y)g(a)g(trap)f(handler,)h(the)g
+(last)g(command)f(used)g(to)630 1878 y(determine)e(the)g(status)h(is)f
+(the)g(last)h(command)e(executed)i(b)s(efore)f(the)g(trap)g(handler.)41
+b(If)630 1988 y Ft(return)31 b Fu(is)h(executed)h(during)e(a)i
+Ft(DEBUG)e Fu(trap,)i(the)g(last)g(command)f(used)g(to)h(determine)630
+2097 y(the)26 b(status)g(is)g(the)g(last)h(command)f(executed)g(b)m(y)g
(the)g(trap)g(handler)f(b)s(efore)g Ft(return)g Fu(w)m(as)630
-1930 y(in)m(v)m(ok)m(ed.)630 2059 y(When)f Ft(return)f
+2207 y(in)m(v)m(ok)m(ed.)630 2342 y(When)f Ft(return)f
Fu(is)h(used)f(to)i(terminate)g(execution)h(of)e(a)h(script)f(b)s(eing)
-g(executed)h(with)f(the)630 2168 y Ft(.)34 b Fu(\()p
+g(executed)h(with)f(the)630 2452 y Ft(.)34 b Fu(\()p
Ft(source)p Fu(\))g(builtin,)h(it)h(returns)d(either)i
Fr(n)f Fu(or)h(the)g(exit)g(status)g(of)g(the)g(last)g(command)630
-2278 y(executed)d(within)f(the)g(script)g(as)g(the)g(exit)h(status)g
+2562 y(executed)d(within)f(the)g(script)g(as)g(the)g(exit)h(status)g
(of)f(the)g(script.)43 b(If)31 b Fr(n)f Fu(is)h(supplied,)g(the)630
-2388 y(return)e(v)-5 b(alue)31 b(is)g(its)f(least)i(signi\014can)m(t)f
-(8)g(bits.)630 2516 y(An)m(y)39 b(command)f(asso)s(ciated)j(with)d(the)
+2671 y(return)e(v)-5 b(alue)31 b(is)g(its)f(least)i(signi\014can)m(t)f
+(8)g(bits.)630 2807 y(An)m(y)39 b(command)f(asso)s(ciated)j(with)d(the)
h Ft(RETURN)e Fu(trap)i(is)g(executed)g(b)s(efore)g(execution)630
-2626 y(resumes)30 b(after)h(the)f(function)g(or)h(script.)630
-2755 y(The)39 b(return)f(status)i(is)g(non-zero)g(if)f
+2916 y(resumes)30 b(after)h(the)f(function)g(or)h(script.)630
+3051 y(The)39 b(return)f(status)i(is)g(non-zero)g(if)f
Ft(return)f Fu(is)h(supplied)g(a)g(non-n)m(umeric)g(argumen)m(t)630
-2865 y(or)34 b(is)g(used)f(outside)h(a)g(function)g(and)f(not)i(during)
+3161 y(or)34 b(is)g(used)f(outside)h(a)g(function)g(and)f(not)i(during)
d(the)i(execution)h(of)f(a)h(script)f(b)m(y)f Ft(.)h
-Fu(or)630 2974 y Ft(source)p Fu(.)150 3122 y Ft(shift)870
-3251 y(shift)46 b([)p Fj(n)p Ft(])630 3380 y Fu(Shift)26
+Fu(or)630 3271 y Ft(source)p Fu(.)150 3432 y Ft(shift)870
+3567 y(shift)46 b([)p Fj(n)p Ft(])630 3703 y Fu(Shift)26
b(the)h(p)s(ositional)g(parameters)g(to)h(the)f(left)g(b)m(y)g
Fr(n)p Fu(:)38 b(the)27 b(p)s(ositional)g(parameters)g(from)630
-3490 y Fr(n)p Ft(+)p Fu(1)h(.)22 b(.)g(.)34 b Ft($#)22
+3812 y Fr(n)p Ft(+)p Fu(1)h(.)22 b(.)g(.)34 b Ft($#)22
b Fu(are)h(renamed)g(to)g Ft($1)28 b Fu(.)22 b(.)g(.)34
b Ft($#)p Fu(-)p Fr(n)p Fu(.)j(P)m(arameters)24 b(represen)m(ted)f(b)m
-(y)g(the)f(n)m(um)m(b)s(ers)630 3599 y Ft($#)35 b Fu(do)m(wn)g(to)h
+(y)g(the)f(n)m(um)m(b)s(ers)630 3922 y Ft($#)35 b Fu(do)m(wn)g(to)h
Ft($#)p Fu(-)p Fr(n)p Ft(+)p Fu(1)f(are)g(unset.)56 b
Fr(n)35 b Fu(m)m(ust)g(b)s(e)g(a)h(non-negativ)m(e)h(n)m(um)m(b)s(er)d
-(less)i(than)f(or)630 3709 y(equal)f(to)f Ft($#)p Fu(.)48
+(less)i(than)f(or)630 4031 y(equal)f(to)f Ft($#)p Fu(.)48
b(If)33 b Fr(n)f Fu(is)h(not)g(supplied,)g(it)h(is)f(assumed)f(to)i(b)s
(e)e(1.)49 b(If)32 b Fr(n)h Fu(is)g(zero)h(or)f(greater)630
-3819 y(than)f Ft($#)p Fu(,)g(the)h(p)s(ositional)f(parameters)h(are)g
+4141 y(than)f Ft($#)p Fu(,)g(the)h(p)s(ositional)f(parameters)h(are)g
(not)f(c)m(hanged.)47 b(The)31 b(return)g(status)i(is)f(zero)630
-3928 y(unless)e Fr(n)f Fu(is)i(greater)g(than)g Ft($#)e
+4251 y(unless)e Fr(n)f Fu(is)i(greater)g(than)g Ft($#)e
Fu(or)i(less)f(than)h(zero,)g(non-zero)g(otherwise.)150
-4076 y Ft(test)150 4186 y([)870 4315 y(test)47 b Fj(expr)630
-4444 y Fu(Ev)-5 b(aluate)43 b(a)f(conditional)h(expression)f
+4412 y Ft(test)150 4521 y([)870 4657 y(test)47 b Fj(expr)630
+4792 y Fu(Ev)-5 b(aluate)43 b(a)f(conditional)h(expression)f
Fr(expr)48 b Fu(and)41 b(return)g(a)h(status)g(of)g(0)g(\(true\))h(or)f
-(1)630 4554 y(\(false\).)g(Eac)m(h)31 b(op)s(erator)f(and)f(op)s(erand)
+(1)630 4902 y(\(false\).)g(Eac)m(h)31 b(op)s(erator)f(and)f(op)s(erand)
g(m)m(ust)h(b)s(e)f(a)i(separate)g(argumen)m(t.)41 b(Expressions)630
-4663 y(are)26 b(comp)s(osed)f(of)g(the)h(primaries)f(describ)s(ed)f(b)s
+5011 y(are)26 b(comp)s(osed)f(of)g(the)h(primaries)f(describ)s(ed)f(b)s
(elo)m(w)h(in)g(Section)h(6.4)h([Bash)e(Conditional)630
-4773 y(Expressions],)35 b(page)h(105.)55 b Ft(test)34
+5121 y(Expressions],)35 b(page)h(105.)55 b Ft(test)34
b Fu(do)s(es)g(not)h(accept)h(an)m(y)f(options,)i(nor)d(do)s(es)g(it)h
-(accept)630 4882 y(and)28 b(ignore)g(an)h(argumen)m(t)f(of)h
+(accept)630 5230 y(and)28 b(ignore)g(an)h(argumen)m(t)f(of)h
Ft(--)e Fu(as)i(signifying)f(the)h(end)e(of)i(options.)40
-b(When)28 b(using)g(the)630 4992 y Ft([)i Fu(form,)g(the)h(last)g
+b(When)28 b(using)g(the)630 5340 y Ft([)i Fu(form,)g(the)h(last)g
(argumen)m(t)g(to)g(the)f(command)h(m)m(ust)f(b)s(e)g(a)g
-Ft(])p Fu(.)630 5121 y(Expressions)23 b(ma)m(y)h(b)s(e)e(com)m(bined)i
-(using)f(the)h(follo)m(wing)h(op)s(erators,)g(listed)f(in)f(decreasing)
-630 5230 y(order)30 b(of)h(precedence.)43 b(The)30 b(ev)-5
-b(aluation)33 b(dep)s(ends)28 b(on)j(the)g(n)m(um)m(b)s(er)f(of)h
-(argumen)m(ts;)g(see)630 5340 y(b)s(elo)m(w.)41 b Ft(test)29
-b Fu(uses)h(op)s(erator)h(precedence)g(when)e(there)i(are)f(\014v)m(e)h
-(or)f(more)h(argumen)m(ts.)p eop end
+Ft(])p Fu(.)p eop end
%%Page: 58 64
TeXDict begin 58 63 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(58)630 299 y Ft(!)30
-b Fj(expr)210 b Fu(T)-8 b(rue)30 b(if)g Fr(expr)37 b
-Fu(is)30 b(false.)630 454 y Ft(\()g Fj(expr)f Ft(\))133
-b Fu(Returns)36 b(the)i(v)-5 b(alue)37 b(of)g Fr(expr)p
-Fu(.)61 b(This)36 b(ma)m(y)i(b)s(e)f(used)f(to)i(o)m(v)m(erride)g
-(normal)1110 564 y(op)s(erator)31 b(precedence.)630 719
-y Fj(expr1)e Ft(-a)h Fj(expr2)1110 829 y Fu(T)-8 b(rue)30
-b(if)g(b)s(oth)g Fr(expr1)37 b Fu(and)30 b Fr(expr2)38
-b Fu(are)30 b(true.)630 984 y Fj(expr1)f Ft(-o)h Fj(expr2)1110
-1093 y Fu(T)-8 b(rue)30 b(if)g(either)h Fr(expr1)38 b
-Fu(or)30 b Fr(expr2)37 b Fu(is)31 b(true.)630 1249 y(The)37
+b(Shell)30 b(Builtin)h(Commands)2069 b(58)630 299 y(Expressions)23
+b(ma)m(y)h(b)s(e)e(com)m(bined)i(using)f(the)h(follo)m(wing)h(op)s
+(erators,)g(listed)f(in)f(decreasing)630 408 y(order)30
+b(of)h(precedence.)43 b(The)30 b(ev)-5 b(aluation)33
+b(dep)s(ends)28 b(on)j(the)g(n)m(um)m(b)s(er)f(of)h(argumen)m(ts;)g
+(see)630 518 y(b)s(elo)m(w.)41 b Ft(test)29 b Fu(uses)h(op)s(erator)h
+(precedence)g(when)e(there)i(are)f(\014v)m(e)h(or)f(more)h(argumen)m
+(ts.)630 671 y Ft(!)f Fj(expr)210 b Fu(T)-8 b(rue)30
+b(if)g Fr(expr)37 b Fu(is)30 b(false.)630 825 y Ft(\()g
+Fj(expr)f Ft(\))133 b Fu(Returns)36 b(the)i(v)-5 b(alue)37
+b(of)g Fr(expr)p Fu(.)61 b(This)36 b(ma)m(y)i(b)s(e)f(used)f(to)i(o)m
+(v)m(erride)g(normal)1110 934 y(op)s(erator)31 b(precedence.)630
+1088 y Fj(expr1)e Ft(-a)h Fj(expr2)1110 1198 y Fu(T)-8
+b(rue)30 b(if)g(b)s(oth)g Fr(expr1)37 b Fu(and)30 b Fr(expr2)38
+b Fu(are)30 b(true.)630 1351 y Fj(expr1)f Ft(-o)h Fj(expr2)1110
+1461 y Fu(T)-8 b(rue)30 b(if)g(either)h Fr(expr1)38 b
+Fu(or)30 b Fr(expr2)37 b Fu(is)31 b(true.)630 1614 y(The)37
b Ft(test)f Fu(and)g Ft([)h Fu(builtins)g(ev)-5 b(aluate)39
b(conditional)f(expressions)f(using)g(a)g(set)h(of)f(rules)630
-1358 y(based)30 b(on)g(the)h(n)m(um)m(b)s(er)e(of)h(argumen)m(ts.)630
-1513 y(0)h(argumen)m(ts)1110 1623 y(The)f(expression)g(is)g(false.)630
-1778 y(1)h(argumen)m(t)1110 1888 y(The)f(expression)g(is)g(true)h(if,)f
+1724 y(based)30 b(on)g(the)h(n)m(um)m(b)s(er)e(of)h(argumen)m(ts.)630
+1877 y(0)h(argumen)m(ts)1110 1987 y(The)f(expression)g(is)g(false.)630
+2140 y(1)h(argumen)m(t)1110 2250 y(The)f(expression)g(is)g(true)h(if,)f
(and)g(only)g(if,)h(the)g(argumen)m(t)f(is)h(not)f(n)m(ull.)630
-2043 y(2)h(argumen)m(ts)1110 2153 y(If)f(the)h(\014rst)f(argumen)m(t)h
+2403 y(2)h(argumen)m(ts)1110 2513 y(If)f(the)h(\014rst)f(argumen)m(t)h
(is)g(`)p Ft(!)p Fu(',)g(the)g(expression)g(is)g(true)f(if)h(and)f
-(only)h(if)g(the)1110 2262 y(second)j(argumen)m(t)f(is)h(n)m(ull.)50
+(only)h(if)g(the)1110 2622 y(second)j(argumen)m(t)f(is)h(n)m(ull.)50
b(If)33 b(the)h(\014rst)e(argumen)m(t)i(is)g(one)g(of)f(the)h(unary)
-1110 2372 y(conditional)42 b(op)s(erators)f(\(see)g(Section)h(6.4)f
-([Bash)g(Conditional)g(Expres-)1110 2482 y(sions],)30
+1110 2732 y(conditional)42 b(op)s(erators)f(\(see)g(Section)h(6.4)f
+([Bash)g(Conditional)g(Expres-)1110 2841 y(sions],)30
b(page)h(105\),)g(the)f(expression)g(is)f(true)h(if)f(the)h(unary)f
-(test)h(is)g(true.)40 b(If)1110 2591 y(the)33 b(\014rst)g(argumen)m(t)h
+(test)h(is)g(true.)40 b(If)1110 2951 y(the)33 b(\014rst)g(argumen)m(t)h
(is)f(not)g(a)h(v)-5 b(alid)34 b(unary)e(op)s(erator,)i(the)g
-(expression)f(is)1110 2701 y(false.)630 2856 y(3)e(argumen)m(ts)1110
-2966 y(The)f(follo)m(wing)i(conditions)f(are)f(applied)h(in)f(the)g
-(order)g(listed.)1159 3098 y(1.)61 b(If)29 b(the)g(second)g(argumen)m
+(expression)f(is)1110 3061 y(false.)630 3214 y(3)e(argumen)m(ts)1110
+3324 y(The)f(follo)m(wing)i(conditions)f(are)f(applied)h(in)f(the)g
+(order)g(listed.)1159 3455 y(1.)61 b(If)29 b(the)g(second)g(argumen)m
(t)h(is)f(one)h(of)f(the)h(binary)e(conditional)j(op)s(era-)1290
-3208 y(tors)21 b(\(see)i(Section)f(6.4)g([Bash)g(Conditional)f
-(Expressions],)i(page)f(105\),)1290 3317 y(the)i(result)g(of)f(the)h
+3565 y(tors)21 b(\(see)i(Section)f(6.4)g([Bash)g(Conditional)f
+(Expressions],)i(page)f(105\),)1290 3674 y(the)i(result)g(of)f(the)h
(expression)g(is)g(the)f(result)h(of)g(the)g(binary)f(test)h(using)1290
-3427 y(the)35 b(\014rst)e(and)h(third)g(argumen)m(ts)h(as)f(op)s
+3784 y(the)35 b(\014rst)e(and)h(third)g(argumen)m(ts)h(as)f(op)s
(erands.)52 b(The)34 b(`)p Ft(-a)p Fu(')g(and)g(`)p Ft(-o)p
-Fu(')1290 3536 y(op)s(erators)24 b(are)g(considered)g(binary)f(op)s
-(erators)h(when)f(there)h(are)h(three)1290 3646 y(argumen)m(ts.)1159
-3778 y(2.)61 b(If)41 b(the)h(\014rst)e(argumen)m(t)i(is)f(`)p
+Fu(')1290 3893 y(op)s(erators)24 b(are)g(considered)g(binary)f(op)s
+(erators)h(when)f(there)h(are)h(three)1290 4003 y(argumen)m(ts.)1159
+4134 y(2.)61 b(If)41 b(the)h(\014rst)e(argumen)m(t)i(is)f(`)p
Ft(!)p Fu(',)k(the)d(v)-5 b(alue)41 b(is)h(the)f(negation)i(of)f(the)
-1290 3888 y(t)m(w)m(o-argumen)m(t)33 b(test)e(using)f(the)g(second)h
-(and)e(third)h(argumen)m(ts.)1159 4020 y(3.)61 b(If)35
+1290 4244 y(t)m(w)m(o-argumen)m(t)33 b(test)e(using)f(the)g(second)h
+(and)e(third)h(argumen)m(ts.)1159 4376 y(3.)61 b(If)35
b(the)h(\014rst)e(argumen)m(t)i(is)g(exactly)h(`)p Ft(\()p
-Fu(')f(and)f(the)g(third)g(argumen)m(t)h(is)1290 4130
+Fu(')f(and)f(the)g(third)g(argumen)m(t)h(is)1290 4485
y(exactly)i(`)p Ft(\))p Fu(',)g(the)f(result)f(is)h(the)f(one-argumen)m
-(t)i(test)f(of)f(the)h(second)1290 4240 y(argumen)m(t.)1159
-4372 y(4.)61 b(Otherwise,)30 b(the)h(expression)f(is)g(false.)630
-4527 y(4)h(argumen)m(ts)1110 4637 y(The)f(follo)m(wing)i(conditions)f
-(are)f(applied)h(in)f(the)g(order)g(listed.)1159 4769
+(t)i(test)f(of)f(the)h(second)1290 4595 y(argumen)m(t.)1159
+4726 y(4.)61 b(Otherwise,)30 b(the)h(expression)f(is)g(false.)630
+4880 y(4)h(argumen)m(ts)1110 4989 y(The)f(follo)m(wing)i(conditions)f
+(are)f(applied)h(in)f(the)g(order)g(listed.)1159 5121
y(1.)61 b(If)39 b(the)i(\014rst)e(argumen)m(t)h(is)g(`)p
Ft(!)p Fu(',)j(the)d(result)f(is)h(the)g(negation)i(of)e(the)1290
-4879 y(three-argumen)m(t)k(expression)e(comp)s(osed)g(of)h(the)g
-(remaining)g(argu-)1290 4988 y(men)m(ts.)1159 5121 y(2.)61
-b(If)31 b(the)g(\014rst)f(argumen)m(t)i(is)f(exactly)i(`)p
-Ft(\()p Fu(')e(and)g(the)g(fourth)f(argumen)m(t)i(is)1290
-5230 y(exactly)38 b(`)p Ft(\))p Fu(',)f(the)f(result)g(is)g(the)g(t)m
-(w)m(o-argumen)m(t)i(test)f(of)f(the)g(second)1290 5340
-y(and)30 b(third)f(argumen)m(ts.)p eop end
+5230 y(three-argumen)m(t)k(expression)e(comp)s(osed)g(of)h(the)g
+(remaining)g(argu-)1290 5340 y(men)m(ts.)p eop end
%%Page: 59 65
TeXDict begin 59 64 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(59)1159 299 y(3.)61
-b(Otherwise,)26 b(the)f(expression)f(is)h(parsed)f(and)g(ev)-5
-b(aluated)26 b(according)g(to)1290 408 y(precedence)31
-b(using)f(the)g(rules)g(listed)h(ab)s(o)m(v)m(e.)630
-576 y(5)g(or)f(more)h(argumen)m(ts)1110 685 y(The)43
-b(expression)f(is)i(parsed)e(and)g(ev)-5 b(aluated)45
-b(according)f(to)f(precedence)1110 795 y(using)30 b(the)g(rules)g
-(listed)h(ab)s(o)m(v)m(e.)630 962 y(If)24 b(the)h(shell)g(is)f(in)h
-Fm(posix)e Fu(mo)s(de,)j(or)f(if)f(the)h(expression)f(is)h(part)f(of)h
-(the)g Ft([[)f Fu(command,)i(the)630 1072 y(`)p Ft(<)p
-Fu(')34 b(and)e(`)p Ft(>)p Fu(')i(op)s(erators)g(sort)f(using)g(the)h
-(curren)m(t)f(lo)s(cale.)52 b(If)33 b(the)h(shell)f(is)h(not)g(in)f
-Fm(posix)630 1181 y Fu(mo)s(de,)28 b(the)f Ft(test)f
-Fu(and)g(`)p Ft([)p Fu(')h(commands)g(sort)g(lexicographically)j(using)
-c(ASCI)s(I)g(ordering.)630 1320 y(The)k(historical)i(op)s
-(erator-precedence)f(parsing)f(with)g(4)h(or)f(more)h(argumen)m(ts)g
-(can)f(lead)630 1429 y(to)k(am)m(biguities)g(when)e(it)i(encoun)m(ters)
-f(strings)g(that)h(lo)s(ok)f(lik)m(e)i(primaries.)48
-b(The)33 b Fm(posix)630 1539 y Fu(standard)42 b(has)g(deprecated)i(the)
-f Ft(-a)f Fu(and)g Ft(-o)g Fu(primaries)g(and)h(enclosing)g
-(expressions)630 1649 y(within)28 b(paren)m(theses.)40
-b(Scripts)28 b(should)f(no)h(longer)h(use)f(them.)40
-b(It's)28 b(m)m(uc)m(h)g(more)h(reliable)630 1758 y(to)f(restrict)f
-(test)h(in)m(v)m(o)s(cations)h(to)e(a)g(single)h(primary)-8
-b(,)27 b(and)f(to)i(replace)g(uses)e(of)h Ft(-a)f Fu(and)h
-Ft(-o)630 1868 y Fu(with)j(the)h(shell's)f Ft(&&)g Fu(and)g
-Ft(||)g Fu(list)h(op)s(erators.)41 b(F)-8 b(or)31 b(example,)g(use)870
-2006 y Ft(test)47 b(-n)g(string1)f(&&)h(test)f(-n)i(string2)630
-2145 y Fu(instead)31 b(of)870 2283 y Ft(test)47 b(-n)g(string1)f(-a)h
-(-n)g(string2)150 2450 y(times)870 2589 y(times)630 2727
-y Fu(Prin)m(t)37 b(out)h(the)g(user)e(and)h(system)g(times)h(used)f(b)m
-(y)g(the)h(shell)f(and)g(its)h(c)m(hildren.)61 b(The)630
-2837 y(return)29 b(status)i(is)f(zero.)150 3004 y Ft(trap)870
-3142 y(trap)47 b([-lpP])f([)p Fj(action)p Ft(])f([)p
-Fj(sigspec)h Ft(...)o(])630 3281 y Fu(The)27 b Fr(action)i
-Fu(is)e(a)h(command)f(that)h(is)f(read)h(and)f(executed)h(when)e(the)i
-(shell)f(receiv)m(es)j(an)m(y)630 3390 y(of)d(the)g(signals)h
-Fr(sigsp)s(ec)p Fu(.)39 b(If)27 b Fr(action)h Fu(is)f(absen)m(t)g
-(\(and)g(there)g(is)g(a)g(single)h Fr(sigsp)s(ec)6 b
-Fu(\))27 b(or)f(equal)630 3500 y(to)32 b(`)p Ft(-)p Fu(',)f(eac)m(h)i
-(sp)s(eci\014ed)d Fr(sigsp)s(ec)6 b Fu('s)31 b(disp)s(osition)g(is)g
-(reset)g(to)h(the)f(v)-5 b(alue)32 b(it)f(had)g(when)f(the)630
-3610 y(shell)i(w)m(as)h(started.)47 b(If)32 b Fr(action)h
-Fu(is)f(the)h(n)m(ull)f(string,)h(then)f(the)g(signal)h(sp)s(eci\014ed)
-f(b)m(y)g(eac)m(h)630 3719 y Fr(sigsp)s(ec)k Fu(is)30
-b(ignored)h(b)m(y)f(the)h(shell)f(and)g(commands)g(it)h(in)m(v)m(ok)m
-(es.)630 3858 y(If)44 b(no)h(argumen)m(ts)g(are)g(supplied,)j
-Ft(trap)c Fu(prin)m(ts)g(the)h(actions)h(asso)s(ciated)g(with)f(eac)m
-(h)630 3967 y(trapp)s(ed)29 b(signal)j(as)f(a)g(set)g(of)f
-Ft(trap)g Fu(commands)g(that)h(can)g(b)s(e)f(reused)g(as)h(shell)g
-(input)e(to)630 4077 y(restore)i(the)g(curren)m(t)f(signal)h(disp)s
-(ositions.)630 4215 y(If)g Fr(action)h Fu(is)g(not)f(presen)m(t)g(and)g
-Ft(-p)f Fu(has)h(b)s(een)g(supplied,)f Ft(trap)g Fu(displa)m(ys)i(the)f
-(trap)g(com-)630 4325 y(mands)44 b(asso)s(ciated)j(with)e(eac)m(h)h
-Fr(sigsp)s(ec)p Fu(,)k(or,)f(if)c(no)h Fr(sigsp)s(ec)6
-b Fu(s)44 b(are)i(supplied,)i(for)d(all)630 4434 y(trapp)s(ed)33
-b(signals,)j(as)e(a)h(set)f(of)h Ft(trap)e Fu(commands)g(that)i(can)f
-(b)s(e)g(reused)f(as)i(shell)f(input)630 4544 y(to)c(restore)g(the)g
-(curren)m(t)f(signal)h(disp)s(ositions.)40 b(The)28 b
-Ft(-P)h Fu(option)h(b)s(eha)m(v)m(es)g(similarly)-8 b(,)31
-b(but)630 4654 y(displa)m(ys)37 b(only)f(the)h(actions)h(asso)s(ciated)
-g(with)e(eac)m(h)i Fr(sigsp)s(ec)43 b Fu(argumen)m(t.)59
-b Ft(-P)36 b Fu(requires)630 4763 y(at)30 b(least)g(one)g
-Fr(sigsp)s(ec)35 b Fu(argumen)m(t.)40 b(The)29 b Ft(-P)g
-Fu(or)g Ft(-p)f Fu(options)i(ma)m(y)g(b)s(e)e(used)g(in)h(a)h(subshell)
-630 4873 y(en)m(vironmen)m(t)g(\(e.g.,)h(command)e(substitution\))g
-(and,)f(as)i(long)f(as)h(they)f(are)g(used)f(b)s(efore)630
-4982 y Ft(trap)g Fu(is)i(used)f(to)h(c)m(hange)g(a)g(signal's)h
-(handling,)e(will)h(displa)m(y)f(the)h(state)h(of)f(its)g(paren)m(t's)
-630 5092 y(traps.)630 5230 y(The)35 b Ft(-l)f Fu(option)h(prin)m(ts)g
-(a)g(list)h(of)f(signal)h(names)f(and)f(their)h(corresp)s(onding)f(n)m
-(um)m(b)s(ers.)630 5340 y(Eac)m(h)c Fr(sigsp)s(ec)k Fu(is)29
-b(either)g(a)h(signal)f(name)g(or)g(a)g(signal)h(n)m(um)m(b)s(er.)39
-b(Signal)29 b(names)g(are)g(case)p eop end
+b(Shell)30 b(Builtin)h(Commands)2069 b(59)1159 299 y(2.)61
+b(If)31 b(the)g(\014rst)f(argumen)m(t)i(is)f(exactly)i(`)p
+Ft(\()p Fu(')e(and)g(the)g(fourth)f(argumen)m(t)i(is)1290
+408 y(exactly)38 b(`)p Ft(\))p Fu(',)f(the)f(result)g(is)g(the)g(t)m(w)
+m(o-argumen)m(t)i(test)f(of)f(the)g(second)1290 518 y(and)30
+b(third)f(argumen)m(ts.)1159 651 y(3.)61 b(Otherwise,)26
+b(the)f(expression)f(is)h(parsed)f(and)g(ev)-5 b(aluated)26
+b(according)g(to)1290 760 y(precedence)31 b(using)f(the)g(rules)g
+(listed)h(ab)s(o)m(v)m(e.)630 916 y(5)g(or)f(more)h(argumen)m(ts)1110
+1026 y(The)43 b(expression)f(is)i(parsed)e(and)g(ev)-5
+b(aluated)45 b(according)f(to)f(precedence)1110 1135
+y(using)30 b(the)g(rules)g(listed)h(ab)s(o)m(v)m(e.)630
+1291 y(If)24 b(the)h(shell)g(is)f(in)h Fm(posix)e Fu(mo)s(de,)j(or)f
+(if)f(the)h(expression)f(is)h(part)f(of)h(the)g Ft([[)f
+Fu(command,)i(the)630 1401 y(`)p Ft(<)p Fu(')34 b(and)e(`)p
+Ft(>)p Fu(')i(op)s(erators)g(sort)f(using)g(the)h(curren)m(t)f(lo)s
+(cale.)52 b(If)33 b(the)h(shell)f(is)h(not)g(in)f Fm(posix)630
+1510 y Fu(mo)s(de,)28 b(the)f Ft(test)f Fu(and)g(`)p
+Ft([)p Fu(')h(commands)g(sort)g(lexicographically)j(using)c(ASCI)s(I)g
+(ordering.)630 1643 y(The)k(historical)i(op)s(erator-precedence)f
+(parsing)f(with)g(4)h(or)f(more)h(argumen)m(ts)g(can)f(lead)630
+1752 y(to)k(am)m(biguities)g(when)e(it)i(encoun)m(ters)f(strings)g
+(that)h(lo)s(ok)f(lik)m(e)i(primaries.)48 b(The)33 b
+Fm(posix)630 1862 y Fu(standard)42 b(has)g(deprecated)i(the)f
+Ft(-a)f Fu(and)g Ft(-o)g Fu(primaries)g(and)h(enclosing)g(expressions)
+630 1972 y(within)28 b(paren)m(theses.)40 b(Scripts)28
+b(should)f(no)h(longer)h(use)f(them.)40 b(It's)28 b(m)m(uc)m(h)g(more)h
+(reliable)630 2081 y(to)f(restrict)f(test)h(in)m(v)m(o)s(cations)h(to)e
+(a)g(single)h(primary)-8 b(,)27 b(and)f(to)i(replace)g(uses)e(of)h
+Ft(-a)f Fu(and)h Ft(-o)630 2191 y Fu(with)j(the)h(shell's)f
+Ft(&&)g Fu(and)g Ft(||)g Fu(list)h(op)s(erators.)41 b(F)-8
+b(or)31 b(example,)g(use)870 2323 y Ft(test)47 b(-n)g(string1)f(&&)h
+(test)f(-n)i(string2)630 2456 y Fu(instead)31 b(of)870
+2589 y Ft(test)47 b(-n)g(string1)f(-a)h(-n)g(string2)150
+2744 y(times)870 2877 y(times)630 3010 y Fu(Prin)m(t)37
+b(out)h(the)g(user)e(and)h(system)g(times)h(used)f(b)m(y)g(the)h(shell)
+f(and)g(its)h(c)m(hildren.)61 b(The)630 3119 y(return)29
+b(status)i(is)f(zero.)150 3275 y Ft(trap)870 3408 y(trap)47
+b([-lpP])f([)p Fj(action)p Ft(])f([)p Fj(sigspec)h Ft(...)o(])630
+3540 y Fu(The)27 b Fr(action)i Fu(is)e(a)h(command)f(that)h(is)f(read)h
+(and)f(executed)h(when)e(the)i(shell)f(receiv)m(es)j(an)m(y)630
+3650 y(of)d(the)g(signals)h Fr(sigsp)s(ec)p Fu(.)39 b(If)27
+b Fr(action)h Fu(is)f(absen)m(t)g(\(and)g(there)g(is)g(a)g(single)h
+Fr(sigsp)s(ec)6 b Fu(\))27 b(or)f(equal)630 3760 y(to)32
+b(`)p Ft(-)p Fu(',)f(eac)m(h)i(sp)s(eci\014ed)d Fr(sigsp)s(ec)6
+b Fu('s)31 b(disp)s(osition)g(is)g(reset)g(to)h(the)f(v)-5
+b(alue)32 b(it)f(had)g(when)f(the)630 3869 y(shell)i(w)m(as)h(started.)
+47 b(If)32 b Fr(action)h Fu(is)f(the)h(n)m(ull)f(string,)h(then)f(the)g
+(signal)h(sp)s(eci\014ed)f(b)m(y)g(eac)m(h)630 3979 y
+Fr(sigsp)s(ec)k Fu(is)30 b(ignored)h(b)m(y)f(the)h(shell)f(and)g
+(commands)g(it)h(in)m(v)m(ok)m(es.)630 4111 y(If)44 b(no)h(argumen)m
+(ts)g(are)g(supplied,)j Ft(trap)c Fu(prin)m(ts)g(the)h(actions)h(asso)s
+(ciated)g(with)f(eac)m(h)630 4221 y(trapp)s(ed)29 b(signal)j(as)f(a)g
+(set)g(of)f Ft(trap)g Fu(commands)g(that)h(can)g(b)s(e)f(reused)g(as)h
+(shell)g(input)e(to)630 4331 y(restore)i(the)g(curren)m(t)f(signal)h
+(disp)s(ositions.)630 4463 y(If)g Fr(action)h Fu(is)g(not)f(presen)m(t)
+g(and)g Ft(-p)f Fu(has)h(b)s(een)g(supplied,)f Ft(trap)g
+Fu(displa)m(ys)i(the)f(trap)g(com-)630 4573 y(mands)44
+b(asso)s(ciated)j(with)e(eac)m(h)h Fr(sigsp)s(ec)p Fu(,)k(or,)f(if)c
+(no)h Fr(sigsp)s(ec)6 b Fu(s)44 b(are)i(supplied,)i(for)d(all)630
+4682 y(trapp)s(ed)33 b(signals,)j(as)e(a)h(set)f(of)h
+Ft(trap)e Fu(commands)g(that)i(can)f(b)s(e)g(reused)f(as)i(shell)f
+(input)630 4792 y(to)c(restore)g(the)g(curren)m(t)f(signal)h(disp)s
+(ositions.)40 b(The)28 b Ft(-P)h Fu(option)h(b)s(eha)m(v)m(es)g
+(similarly)-8 b(,)31 b(but)630 4902 y(displa)m(ys)37
+b(only)f(the)h(actions)h(asso)s(ciated)g(with)e(eac)m(h)i
+Fr(sigsp)s(ec)43 b Fu(argumen)m(t.)59 b Ft(-P)36 b Fu(requires)630
+5011 y(at)30 b(least)g(one)g Fr(sigsp)s(ec)35 b Fu(argumen)m(t.)40
+b(The)29 b Ft(-P)g Fu(or)g Ft(-p)f Fu(options)i(ma)m(y)g(b)s(e)e(used)g
+(in)h(a)h(subshell)630 5121 y(en)m(vironmen)m(t)g(\(e.g.,)h(command)e
+(substitution\))g(and,)f(as)i(long)f(as)h(they)f(are)g(used)f(b)s
+(efore)630 5230 y Ft(trap)g Fu(is)i(used)f(to)h(c)m(hange)g(a)g
+(signal's)h(handling,)e(will)h(displa)m(y)f(the)h(state)h(of)f(its)g
+(paren)m(t's)630 5340 y(traps.)p eop end
%%Page: 60 66
TeXDict begin 60 65 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(60)630 299 y(insensitiv)m(e)42
-b(and)e(the)h Ft(SIG)f Fu(pre\014x)f(is)i(optional.)73
-b(If)40 b Ft(-l)g Fu(is)h(supplied)e(with)i(no)f Fr(sigsp)s(ec)630
-408 y Fu(argumen)m(ts,)31 b(it)g(prin)m(ts)f(a)g(list)h(of)g(v)-5
-b(alid)31 b(signal)g(names.)630 552 y(If)e(a)g Fr(sigsp)s(ec)35
-b Fu(is)30 b Ft(0)f Fu(or)g Ft(EXIT)p Fu(,)f Fr(action)j
-Fu(is)e(executed)h(when)f(the)g(shell)g(exits.)42 b(If)28
-b(a)i Fr(sigsp)s(ec)35 b Fu(is)630 661 y Ft(DEBUG)p Fu(,)g
-Fr(action)g Fu(is)g(executed)h(b)s(efore)e(ev)m(ery)h(simple)g
-(command,)h Ft(for)d Fu(command,)j Ft(case)630 771 y
-Fu(command,)29 b Ft(select)d Fu(command,)j(\(\()g(arithmetic)h
-(command,)e([[)h(conditional)h(command,)630 881 y(arithmetic)44
+b(Shell)30 b(Builtin)h(Commands)2069 b(60)630 299 y(The)35
+b Ft(-l)f Fu(option)h(prin)m(ts)g(a)g(list)h(of)f(signal)h(names)f(and)
+f(their)h(corresp)s(onding)f(n)m(um)m(b)s(ers.)630 408
+y(Eac)m(h)c Fr(sigsp)s(ec)k Fu(is)29 b(either)g(a)h(signal)f(name)g(or)
+g(a)g(signal)h(n)m(um)m(b)s(er.)39 b(Signal)29 b(names)g(are)g(case)630
+518 y(insensitiv)m(e)42 b(and)e(the)h Ft(SIG)f Fu(pre\014x)f(is)i
+(optional.)73 b(If)40 b Ft(-l)g Fu(is)h(supplied)e(with)i(no)f
+Fr(sigsp)s(ec)630 628 y Fu(argumen)m(ts,)31 b(it)g(prin)m(ts)f(a)g
+(list)h(of)g(v)-5 b(alid)31 b(signal)g(names.)630 754
+y(If)e(a)g Fr(sigsp)s(ec)35 b Fu(is)30 b Ft(0)f Fu(or)g
+Ft(EXIT)p Fu(,)f Fr(action)j Fu(is)e(executed)h(when)f(the)g(shell)g
+(exits.)42 b(If)28 b(a)i Fr(sigsp)s(ec)35 b Fu(is)630
+864 y Ft(DEBUG)p Fu(,)g Fr(action)g Fu(is)g(executed)h(b)s(efore)e(ev)m
+(ery)h(simple)g(command,)h Ft(for)d Fu(command,)j Ft(case)630
+973 y Fu(command,)29 b Ft(select)d Fu(command,)j(\(\()g(arithmetic)h
+(command,)e([[)h(conditional)h(command,)630 1083 y(arithmetic)44
b Ft(for)e Fu(command,)k(and)c(b)s(efore)g(the)h(\014rst)f(command)g
-(executes)i(in)f(a)g(shell)630 990 y(function.)38 b(Refer)22
+(executes)i(in)f(a)g(shell)630 1192 y(function.)38 b(Refer)22
b(to)g(the)g(description)g(of)g(the)g Ft(extdebug)e Fu(shell)i(option)h
-(\(see)f(Section)h(4.3.2)630 1100 y([The)36 b(Shopt)f(Builtin],)k(page)
+(\(see)f(Section)h(4.3.2)630 1302 y([The)36 b(Shopt)f(Builtin],)k(page)
e(78\))g(for)f(details)i(of)e(its)h(e\013ect)g(on)f(the)h
-Ft(DEBUG)e Fu(trap.)58 b(If)36 b(a)630 1209 y Fr(sigsp)s(ec)49
+Ft(DEBUG)e Fu(trap.)58 b(If)36 b(a)630 1412 y Fr(sigsp)s(ec)49
b Fu(is)44 b Ft(RETURN)p Fu(,)h Fr(action)g Fu(is)e(executed)h(eac)m(h)
-h(time)f(a)g(shell)g(function)f(or)g(a)h(script)630 1319
+h(time)f(a)g(shell)g(function)f(or)g(a)h(script)630 1521
y(executed)31 b(with)f(the)h Ft(.)f Fu(or)g Ft(source)f
-Fu(builtins)h(\014nishes)f(executing.)630 1462 y(If)c(a)h
+Fu(builtins)h(\014nishes)f(executing.)630 1648 y(If)c(a)h
Fr(sigsp)s(ec)31 b Fu(is)25 b Ft(ERR)p Fu(,)h Fr(action)g
Fu(is)g(executed)g(whenev)m(er)f(a)h(pip)s(eline)f(\(whic)m(h)g(ma)m(y)
-h(consist)g(of)630 1572 y(a)31 b(single)h(simple)f(command\),)h(a)f
+h(consist)g(of)630 1757 y(a)31 b(single)h(simple)f(command\),)h(a)f
(list,)h(or)f(a)h(comp)s(ound)d(command)i(returns)f(a)h(non-zero)630
-1681 y(exit)e(status,)g(sub)5 b(ject)27 b(to)i(the)f(follo)m(wing)h
+1867 y(exit)e(status,)g(sub)5 b(ject)27 b(to)i(the)f(follo)m(wing)h
(conditions.)40 b(The)28 b Ft(ERR)f Fu(trap)g(is)h(not)g(executed)h(if)
-630 1791 y(the)24 b(failed)h(command)e(is)h(part)g(of)g(the)g(command)g
+630 1976 y(the)24 b(failed)h(command)e(is)h(part)g(of)g(the)g(command)g
(list)h(immediately)g(follo)m(wing)h(an)d Ft(until)630
-1901 y Fu(or)f Ft(while)g Fu(reserv)m(ed)g(w)m(ord,)i(part)e(of)h(the)g
+2086 y Fu(or)f Ft(while)g Fu(reserv)m(ed)g(w)m(ord,)i(part)e(of)h(the)g
(test)g(follo)m(wing)h(the)f Ft(if)f Fu(or)g Ft(elif)g
-Fu(reserv)m(ed)g(w)m(ords,)630 2010 y(part)34 b(of)f(a)i(command)e
+Fu(reserv)m(ed)g(w)m(ords,)630 2196 y(part)34 b(of)f(a)i(command)e
(executed)i(in)e(a)h Ft(&&)f Fu(or)h Ft(||)f Fu(list)h(except)h(the)f
-(command)f(follo)m(wing)630 2120 y(the)41 b(\014nal)f
+(command)f(follo)m(wing)630 2305 y(the)41 b(\014nal)f
Ft(&&)f Fu(or)i Ft(||)p Fu(,)h(an)m(y)f(command)f(in)g(a)h(pip)s(eline)
f(but)g(the)g(last,)k(\(sub)5 b(ject)41 b(to)g(the)630
-2229 y(state)31 b(of)f(the)h Ft(pipefail)c Fu(shell)j(option\),)h(or)f
+2415 y(state)31 b(of)f(the)h Ft(pipefail)c Fu(shell)j(option\),)h(or)f
(if)g(the)g(command's)g(return)f(status)h(is)g(b)s(eing)630
-2339 y(in)m(v)m(erted)36 b(using)e Ft(!)p Fu(.)55 b(These)34
+2524 y(in)m(v)m(erted)36 b(using)e Ft(!)p Fu(.)55 b(These)34
b(are)i(the)f(same)g(conditions)h(ob)s(ey)m(ed)f(b)m(y)g(the)g
-Ft(errexit)e Fu(\()p Ft(-e)p Fu(\))630 2449 y(option.)630
-2592 y(When)22 b(the)g(shell)g(is)g(not)g(in)m(teractiv)m(e,)27
+Ft(errexit)e Fu(\()p Ft(-e)p Fu(\))630 2634 y(option.)630
+2760 y(When)22 b(the)g(shell)g(is)g(not)g(in)m(teractiv)m(e,)27
b(signals)22 b(ignored)g(up)s(on)e(en)m(try)i(to)h(a)f(non-in)m
-(teractiv)m(e)630 2701 y(shell)44 b(cannot)g(b)s(e)f(trapp)s(ed)f(or)i
+(teractiv)m(e)630 2870 y(shell)44 b(cannot)g(b)s(e)f(trapp)s(ed)f(or)i
(reset.)81 b(In)m(teractiv)m(e)46 b(shells)d(p)s(ermit)g(trapping)g
-(signals)630 2811 y(ignored)31 b(on)f(en)m(try)-8 b(.)41
+(signals)630 2980 y(ignored)31 b(on)f(en)m(try)-8 b(.)41
b(T)-8 b(rapp)s(ed)29 b(signals)i(that)g(are)g(not)g(b)s(eing)f
-(ignored)g(are)h(reset)g(to)g(their)630 2921 y(original)h(v)-5
+(ignored)g(are)h(reset)g(to)g(their)630 3089 y(original)h(v)-5
b(alues)30 b(in)g(a)h(subshell)f(or)g(subshell)f(en)m(vironmen)m(t)i
-(when)f(one)g(is)h(created.)630 3064 y(The)g(return)g(status)i(is)f
+(when)f(one)g(is)h(created.)630 3216 y(The)g(return)g(status)i(is)f
(zero)g(unless)g(a)g Fr(sigsp)s(ec)38 b Fu(do)s(es)31
b(not)h(sp)s(ecify)g(a)g(v)-5 b(alid)33 b(signal;)g(non-)630
-3173 y(zero)e(otherwise.)150 3351 y Ft(true)870 3494
-y(true)630 3637 y Fu(Do)s(es)g(nothing,)g(returns)e(a)h(0)h(status.)150
-3814 y Ft(umask)870 3957 y(umask)46 b([-p])h([-S])g([)p
-Fj(mode)p Ft(])630 4101 y Fu(Set)30 b(the)f(shell)h(pro)s(cess's)f
+3325 y(zero)e(otherwise.)150 3469 y Ft(true)870 3595
+y(true)630 3721 y Fu(Do)s(es)g(nothing,)g(returns)e(a)h(0)h(status.)150
+3865 y Ft(umask)870 3991 y(umask)46 b([-p])h([-S])g([)p
+Fj(mode)p Ft(])630 4118 y Fu(Set)30 b(the)f(shell)h(pro)s(cess's)f
(\014le)h(creation)g(mask)g(to)g Fr(mo)s(de)p Fu(.)40
b(If)29 b Fr(mo)s(de)34 b Fu(b)s(egins)29 b(with)g(a)h(digit,)630
-4210 y(it)e(is)f(in)m(terpreted)g(as)g(an)g(o)s(ctal)i(n)m(um)m(b)s
+4227 y(it)e(is)f(in)m(terpreted)g(as)g(an)g(o)s(ctal)i(n)m(um)m(b)s
(er;)e(if)g(not,)h(it)g(is)f(in)m(terpreted)g(as)g(a)h(sym)m(b)s(olic)f
-(mo)s(de)630 4320 y(mask)40 b(similar)h(to)g(that)f(accepted)i(b)m(y)e
+(mo)s(de)630 4337 y(mask)40 b(similar)h(to)g(that)f(accepted)i(b)m(y)e
(the)g Ft(chmod)f Fu(command.)70 b(If)40 b Fr(mo)s(de)k
-Fu(is)d(omitted,)630 4430 y Ft(umask)24 b Fu(prin)m(ts)h(the)h(curren)m
+Fu(is)d(omitted,)630 4446 y Ft(umask)24 b Fu(prin)m(ts)h(the)h(curren)m
(t)g(v)-5 b(alue)26 b(of)g(the)f(mask.)40 b(If)25 b(the)h
-Ft(-S)f Fu(option)h(is)g(supplied)e(without)630 4539
+Ft(-S)f Fu(option)h(is)g(supplied)e(without)630 4556
y(a)41 b Fr(mo)s(de)k Fu(argumen)m(t,)f Ft(umask)39 b
Fu(prin)m(ts)h(the)g(mask)h(in)f(a)h(sym)m(b)s(olic)g(format;)46
-b(the)41 b(default)630 4649 y(output)32 b(is)g(an)g(o)s(ctal)i(n)m(um)m
+b(the)41 b(default)630 4666 y(output)32 b(is)g(an)g(o)s(ctal)i(n)m(um)m
(b)s(er.)45 b(If)31 b(the)i Ft(-p)e Fu(option)i(is)f(supplied,)g(and)g
-Fr(mo)s(de)k Fu(is)d(omitted,)630 4758 y(the)e(output)e(is)i(in)f(a)h
+Fr(mo)s(de)k Fu(is)d(omitted,)630 4775 y(the)e(output)e(is)i(in)f(a)h
(form)e(that)i(ma)m(y)g(b)s(e)f(reused)g(as)g(input.)40
-b(The)30 b(return)f(status)i(is)f(zero)630 4868 y(if)38
+b(The)30 b(return)f(status)i(is)f(zero)630 4885 y(if)38
b(the)h(mo)s(de)f(is)g(successfully)h(c)m(hanged)g(or)f(if)h(no)f
Fr(mo)s(de)43 b Fu(argumen)m(t)c(is)f(supplied,)i(and)630
-4977 y(non-zero)31 b(otherwise.)630 5121 y(Note)38 b(that)e(when)g(the)
+4994 y(non-zero)31 b(otherwise.)630 5121 y(Note)38 b(that)e(when)g(the)
g(mo)s(de)g(is)g(in)m(terpreted)h(as)f(an)g(o)s(ctal)i(n)m(um)m(b)s
(er,)e(eac)m(h)i(n)m(um)m(b)s(er)d(of)630 5230 y(the)f(umask)g(is)h
(subtracted)f(from)f Ft(7)p Fu(.)53 b(Th)m(us,)34 b(a)h(umask)e(of)i
(builtin)f(command)h Fr(name)50 b Fu(from)44 b(shared)630
4902 y(ob)5 b(ject)27 b Fr(\014lename)p Fu(,)g(on)e(systems)h(that)g
(supp)s(ort)e(dynamic)i(loading.)40 b(If)25 b Fr(\014lename)31
-b Fu(do)s(es)26 b(not)630 5011 y(con)m(tain)32 b(a)g(slash.)43
-b(Bash)31 b(will)h(use)f(the)g(v)-5 b(alue)32 b(of)f(the)g
-Ft(BASH_LOADABLES_PATH)26 b Fu(v)-5 b(ariable)630 5121
-y(as)41 b(a)g(colon-separated)i(list)e(of)g(directories)h(in)f(whic)m
-(h)f(to)i(searc)m(h)f(for)g Fr(\014lename)p Fu(.)72 b(The)630
-5230 y(default)39 b(for)g Ft(BASH_LOADABLES_PATH)34 b
-Fu(is)40 b(system-dep)s(enden)m(t,)h(and)d(ma)m(y)i(include)f
-Ft(")p Fu(.)p Ft(")630 5340 y Fu(to)d(force)g(a)f(searc)m(h)h(of)g(the)
-f(curren)m(t)g(directory)-8 b(.)57 b(The)34 b Ft(-d)h
-Fu(option)h(will)f(delete)i(a)e(builtin)p eop end
+b Fu(do)s(es)26 b(not)630 5011 y(con)m(tain)34 b(a)e(slash,)h(Bash)f
+(will)h(use)f(the)g(v)-5 b(alue)33 b(of)f(the)g Ft(BASH_LOADABLES_PATH)
+27 b Fu(v)-5 b(ariable)630 5121 y(as)41 b(a)g(colon-separated)i(list)e
+(of)g(directories)h(in)f(whic)m(h)f(to)i(searc)m(h)f(for)g
+Fr(\014lename)p Fu(.)72 b(The)630 5230 y(default)39 b(for)g
+Ft(BASH_LOADABLES_PATH)34 b Fu(is)40 b(system-dep)s(enden)m(t,)h(and)d
+(ma)m(y)i(include)f Ft(")p Fu(.)p Ft(")630 5340 y Fu(to)d(force)g(a)f
+(searc)m(h)h(of)g(the)f(curren)m(t)g(directory)-8 b(.)57
+b(The)34 b Ft(-d)h Fu(option)h(will)f(delete)i(a)e(builtin)p
+eop end
%%Page: 67 73
TeXDict begin 67 72 bop 150 -116 a Fu(Chapter)30 b(4:)41
b(Shell)30 b(Builtin)h(Commands)2069 b(67)630 299 y(loaded)30
b(In)630 408 y(addition)30 b(to)g(the)g(standard)e Ft(printf\(3\))f
Fu(format)j(c)m(haracters)h Ft(cCsSndiouxXeEfFgGaA)p
Fu(,)630 518 y Ft(printf)e Fu(in)m(terprets)h(the)h(follo)m(wing)h
-(additional)f(format)g(sp)s(eci\014ers:)630 666 y Ft(\045b)384
+(additional)f(format)g(sp)s(eci\014ers:)630 690 y Ft(\045b)384
b Fu(Causes)38 b Ft(printf)f Fu(to)j(expand)e(bac)m(kslash)h(escap)s(e)
-g(sequences)g(in)f(the)h(cor-)1110 776 y(resp)s(onding)31
+g(sequences)g(in)f(the)h(cor-)1110 800 y(resp)s(onding)31
b Fr(argumen)m(t)j Fu(in)e(the)h(same)f(w)m(a)m(y)h(as)g
-Ft(echo)c(-e)j Fu(\(see)h(Section)g(4.2)1110 886 y([Bash)e(Builtins],)g
-(page)g(61\).)630 1034 y Ft(\045q)384 b Fu(Causes)32
+Ft(echo)c(-e)j Fu(\(see)h(Section)g(4.2)1110 909 y([Bash)e(Builtins],)g
+(page)g(61\).)630 1082 y Ft(\045q)384 b Fu(Causes)32
b Ft(printf)e Fu(to)i(output)g(the)g(corresp)s(onding)f
-Fr(argumen)m(t)j Fu(in)d(a)i(format)1110 1143 y(that)42
+Fr(argumen)m(t)j Fu(in)d(a)i(format)1110 1191 y(that)42
b(can)f(b)s(e)g(reused)g(as)g(shell)h(input.)72 b Ft(\045q)41
b Fu(and)f Ft(\045Q)p Fu(P)h(use)g(the)g(ANSI-C)1110
-1253 y(quoting)29 b(st)m(yle)h(\(see)g(Section)g(3.1.2.4)h([ANSI-C)e
-(Quoting],)h(page)f(6\))h(if)f(an)m(y)1110 1363 y(c)m(haracters)g(in)e
+1301 y(quoting)29 b(st)m(yle)h(\(see)g(Section)g(3.1.2.4)h([ANSI-C)e
+(Quoting],)h(page)f(6\))h(if)f(an)m(y)1110 1410 y(c)m(haracters)g(in)e
(the)h(argumen)m(t)g(string)f(require)h(it,)g(and)f(bac)m(kslash)h
-(quoting)1110 1472 y(otherwise.)79 b(If)43 b(the)g(format)g(string)g
+(quoting)1110 1520 y(otherwise.)79 b(If)43 b(the)g(format)g(string)g
(uses)g(the)g Ft(printf)e Fl(alternate)46 b(form)p Fu(,)1110
-1582 y(these)31 b(t)m(w)m(o)h(formats)e(quote)h(the)g(argumen)m(t)f
-(string)h(using)f(single)h(quotes.)630 1730 y Ft(\045Q)384
+1630 y(these)31 b(t)m(w)m(o)h(formats)e(quote)h(the)g(argumen)m(t)f
+(string)h(using)f(single)h(quotes.)630 1802 y Ft(\045Q)384
b Fu(lik)m(e)34 b Ft(\045q)p Fu(,)f(but)f(applies)g(an)m(y)h(supplied)e
(precision)i(to)h(the)e Fr(argumen)m(t)j Fu(b)s(efore)1110
-1840 y(quoting)c(it.)630 1988 y Ft(\045\()p Fj(datefmt)p
-Ft(\)T)1110 2097 y Fu(Causes)e Ft(printf)e Fu(to)j(output)f(the)g
-(date-time)i(string)e(resulting)h(from)e(using)1110 2207
+1911 y(quoting)c(it.)630 2084 y Ft(\045\()p Fj(datefmt)p
+Ft(\)T)1110 2193 y Fu(Causes)e Ft(printf)e Fu(to)j(output)f(the)g
+(date-time)i(string)e(resulting)h(from)e(using)1110 2303
y Fr(datefm)m(t)i Fu(as)d(a)h(format)f(string)h(for)e
Ft(strftime)p Fu(\(3\).)39 b(The)27 b(corresp)s(onding)f
-Fr(ar-)1110 2317 y(gumen)m(t)34 b Fu(is)d(an)h(in)m(teger)g(represen)m
+Fr(ar-)1110 2412 y(gumen)m(t)34 b Fu(is)d(an)h(in)m(teger)g(represen)m
(ting)g(the)g(n)m(um)m(b)s(er)e(of)i(seconds)f(since)h(the)1110
-2426 y(ep)s(o)s(c)m(h.)43 b(This)30 b(format)i(sp)s(eci\014er)e
+2522 y(ep)s(o)s(c)m(h.)43 b(This)30 b(format)i(sp)s(eci\014er)e
(recognizes)j(Tw)m(o)f(sp)s(ecial)f(argumen)m(t)h(v)-5
-b(al-)1110 2536 y(ues:)42 b(-1)31 b(represen)m(ts)g(the)g(curren)m(t)g
+b(al-)1110 2632 y(ues:)42 b(-1)31 b(represen)m(ts)g(the)g(curren)m(t)g
(time,)h(and)e(-2)i(represen)m(ts)f(the)g(time)h(the)1110
-2645 y(shell)i(w)m(as)f(in)m(v)m(ok)m(ed.)51 b(If)33
+2741 y(shell)i(w)m(as)f(in)m(v)m(ok)m(ed.)51 b(If)33
b(no)g(argumen)m(t)h(is)f(sp)s(eci\014ed,)h(con)m(v)m(ersion)g(b)s(eha)
-m(v)m(es)1110 2755 y(as)25 b(if)g(-1)g(had)f(b)s(een)g(supplied.)37
+m(v)m(es)1110 2851 y(as)25 b(if)g(-1)g(had)f(b)s(een)g(supplied.)37
b(This)24 b(is)h(an)f(exception)i(to)g(the)e(usual)h
-Ft(printf)1110 2865 y Fu(b)s(eha)m(vior.)630 3013 y(The)39
+Ft(printf)1110 2960 y Fu(b)s(eha)m(vior.)630 3133 y(The)39
b(\045b,)i(\045q,)g(and)e(\045T)f(format)i(sp)s(eci\014ers)e(all)i(use)
-f(the)h(\014eld)f(width)f(and)h(precision)630 3122 y(argumen)m(ts)e
+f(the)h(\014eld)f(width)f(and)h(precision)630 3242 y(argumen)m(ts)e
(from)f(the)h(format)g(sp)s(eci\014cation)g(and)f(write)h(that)h(man)m
-(y)e(b)m(ytes)h(from)g(\(or)630 3232 y(use)29 b(that)h(wide)f(a)g
+(y)e(b)m(ytes)h(from)g(\(or)630 3352 y(use)29 b(that)h(wide)f(a)g
(\014eld)g(for\))g(the)h(expanded)e(argumen)m(t,)i(whic)m(h)f(usually)g
-(con)m(tains)i(more)630 3342 y(c)m(haracters)h(than)e(the)h(original.)
-630 3471 y(The)e(\045n)f(format)h(sp)s(eci\014er)g(accepts)h(a)g
+(con)m(tains)i(more)630 3461 y(c)m(haracters)h(than)e(the)h(original.)
+630 3602 y(The)e(\045n)f(format)h(sp)s(eci\014er)g(accepts)h(a)g
(corresp)s(onding)e(argumen)m(t)h(that)h(is)f(treated)h(as)g(a)630
-3580 y(shell)h(v)-5 b(ariable)31 b(name.)630 3709 y(The)26
+3712 y(shell)h(v)-5 b(ariable)31 b(name.)630 3853 y(The)26
b(\045s)g(and)h(\045c)f(format)h(sp)s(eci\014ers)f(accept)i(an)f(l)g
(\(long\))h(mo)s(di\014er,)e(whic)m(h)h(forces)g(them)630
-3819 y(to)21 b(con)m(v)m(ert)i(the)e(argumen)m(t)g(string)g(to)g(a)g
+3962 y(to)21 b(con)m(v)m(ert)i(the)e(argumen)m(t)g(string)g(to)g(a)g
(wide-c)m(haracter)i(string)e(and)f(apply)g(an)m(y)h(supplied)630
-3928 y(\014eld)36 b(width)g(and)f(precision)i(in)f(terms)g(of)h(c)m
+4072 y(\014eld)36 b(width)g(and)f(precision)i(in)f(terms)g(of)h(c)m
(haracters,)i(not)e(b)m(ytes.)59 b(The)36 b(\045S)g(and)g(\045C)630
-4038 y(format)31 b(sp)s(eci\014ers)e(are)i(equiv)-5 b(alen)m(t)32
+4181 y(format)31 b(sp)s(eci\014ers)e(are)i(equiv)-5 b(alen)m(t)32
b(to)f(\045ls)f(and)g(\045lc,)h(resp)s(ectiv)m(ely)-8
-b(.)630 4167 y(Argumen)m(ts)28 b(to)h(non-string)e(format)i(sp)s
+b(.)630 4322 y(Argumen)m(ts)28 b(to)h(non-string)e(format)i(sp)s
(eci\014ers)e(are)h(treated)h(as)g(C)e(language)j(constan)m(ts,)630
-4276 y(except)e(that)g(a)f(leading)h(plus)f(or)g(min)m(us)f(sign)h(is)g
+4432 y(except)e(that)g(a)f(leading)h(plus)f(or)g(min)m(us)f(sign)h(is)g
(allo)m(w)m(ed,)j(and)d(if)g(the)g(leading)h(c)m(haracter)630
-4386 y(is)43 b(a)h(single)g(or)g(double)f(quote,)k(the)d(v)-5
+4542 y(is)43 b(a)h(single)g(or)g(double)f(quote,)k(the)d(v)-5
b(alue)44 b(is)f(the)h(n)m(umeric)f(v)-5 b(alue)44 b(of)g(the)f(follo)m
-(wing)630 4495 y(c)m(haracter,)32 b(using)e(the)h(curren)m(t)f(lo)s
-(cale.)630 4624 y(The)h Fr(format)i Fu(is)f(reused)e(as)i(necessary)f
-(to)i(consume)e(all)h(of)f(the)h Fr(argumen)m(ts)p Fu(.)44
-b(If)30 b(the)i Fr(for-)630 4734 y(mat)c Fu(requires)e(more)g
-Fr(argumen)m(ts)k Fu(than)25 b(are)i(supplied,)e(the)h(extra)h(format)f
-(sp)s(eci\014cations)630 4844 y(b)s(eha)m(v)m(e)j(as)g(if)f(a)h(zero)g
-(v)-5 b(alue)29 b(or)g(n)m(ull)f(string,)h(as)g(appropriate,)g(had)f(b)
-s(een)g(supplied.)38 b(The)630 4953 y(return)e(v)-5 b(alue)38
-b(is)g(zero)g(on)f(success,)j(non-zero)e(if)f(an)h(in)m(v)-5
-b(alid)38 b(option)g(is)f(supplied)f(or)i(a)630 5063
-y(write)31 b(or)f(assignmen)m(t)h(error)f(o)s(ccurs.)150
-5211 y Ft(read)870 5340 y(read)47 b([-Eers])e([-a)i Fj(aname)p
-Ft(])f([-d)h Fj(delim)p Ft(])f([-i)h Fj(text)p Ft(])g([-n)g
-Fj(nchars)p Ft(])p eop end
+(wing)630 4651 y(c)m(haracter,)32 b(using)e(the)h(curren)m(t)f(lo)s
+(cale.)630 4792 y(F)-8 b(ormat)30 b(sp)s(eci\014ers)e(ma)m(y)i(apply)e
+(to)i(the)f Fr(n)p Fu(th)f(argumen)m(t)i(rather)e(than)h(the)g(next)g
+(sequen-)630 4902 y(tial)38 b(argumen)m(t.)62 b(In)36
+b(this)h(case,)j(the)e(`)p Ft(\045)p Fu(')f(in)g(the)g(format)g(sp)s
+(eci\014er)g(is)g(replaced)h(b)m(y)f(the)630 5011 y(sequence)25
+b(`)p Ft(\045)p Fj(n)p Ft($)p Fu(',)g(where)f Fr(n)g
+Fu(is)g(a)h(decimal)g(in)m(teger)h(greater)f(than)g(0,)h(giving)f(the)f
+(argumen)m(t)630 5121 y(n)m(um)m(b)s(er)36 b(to)j(use)f(as)g(the)g(op)s
+(erand.)62 b(The)37 b(format)h(string)g(should)f(not)h(mix)f(n)m(um)m
+(b)s(ered)630 5230 y(and)31 b(unn)m(um)m(b)s(ered)e(argumen)m(t)j(sp)s
+(eci\014ers,)f(though)h(this)f(is)h(allo)m(w)m(ed.)46
+b(Unn)m(um)m(b)s(ered)30 b(ar-)630 5340 y(gumen)m(t)25
+b(sp)s(eci\014ers)f(alw)m(a)m(ys)i(refer)f(to)g(the)g(next)g(argumen)m
+(t)g(follo)m(wing)h(the)f(last)g(argumen)m(t)p eop end
%%Page: 70 76
TeXDict begin 70 75 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(70)1061 299 y
-Ft([-N)47 b Fj(nchars)p Ft(])f([-p)h Fj(prompt)p Ft(])e([-t)i
-Fj(timeout)p Ft(])f([-u)h Fj(fd)p Ft(])g([)p Fj(name)f
-Ft(...)o(])630 427 y Fu(Read)33 b(one)g(line)h(from)e(the)h(standard)f
-(input,)h(or)g(from)g(the)g(\014le)g(descriptor)f Fr(fd)k
-Fu(supplied)630 536 y(as)44 b(an)f(argumen)m(t)h(to)h(the)e
+b(Shell)30 b(Builtin)h(Commands)2069 b(70)630 299 y(consumed)34
+b(b)m(y)g(an)h(unn)m(um)m(b)s(ered)d(sp)s(eci\014er;)37
+b(n)m(um)m(b)s(ered)c(argumen)m(t)i(sp)s(eci\014ers)f(refer)g(to)630
+408 y(absolute)d(p)s(ositions)f(in)g(the)h(argumen)m(t)g(list.)630
+544 y(The)g Fr(format)i Fu(is)f(reused)e(as)i(necessary)f(to)i(consume)
+e(all)h(of)f(the)h Fr(argumen)m(ts)p Fu(.)44 b(If)30
+b(the)i Fr(for-)630 653 y(mat)c Fu(requires)e(more)g
+Fr(argumen)m(ts)k Fu(than)25 b(are)i(supplied,)e(the)h(extra)h(format)f
+(sp)s(eci\014cations)630 763 y(b)s(eha)m(v)m(e)35 b(as)g(if)g(a)g(zero)
+h(v)-5 b(alue)35 b(or)f(n)m(ull)h(string,)h(as)f(appropriate,)h(had)e
+(b)s(een)g(supplied.)52 b(If)630 873 y Fr(format)37 b
+Fu(is)e(reused,)g(a)g(n)m(um)m(b)s(ered)f(argumen)m(t)h(sp)s(eci\014er)
+f(`)p Ft(\045)p Fj(n)p Ft($)p Fu(')h(refers)f(to)i(the)f
+Fr(n)p Fu(th)f(argu-)630 982 y(men)m(t)e(follo)m(wing)i(the)e(highest)g
+(n)m(um)m(b)s(ered)f(argumen)m(t)h(consumed)g(b)m(y)g(the)g(previous)f
+(use)630 1092 y(of)g Fr(format)p Fu(.)630 1227 y(The)e(return)g(v)-5
+b(alue)30 b(is)f(zero)i(on)e(success,)h(non-zero)h(if)e(an)h(in)m(v)-5
+b(alid)30 b(option)g(is)g(supplied)e(or)630 1337 y(a)j(write)f(or)h
+(assignmen)m(t)g(error)f(o)s(ccurs.)150 1498 y Ft(read)870
+1633 y(read)47 b([-Eers])e([-a)i Fj(aname)p Ft(])f([-d)h
+Fj(delim)p Ft(])f([-i)h Fj(text)p Ft(])g([-n)g Fj(nchars)p
+Ft(])1061 1743 y([-N)g Fj(nchars)p Ft(])f([-p)h Fj(prompt)p
+Ft(])e([-t)i Fj(timeout)p Ft(])f([-u)h Fj(fd)p Ft(])g([)p
+Fj(name)f Ft(...)o(])630 1878 y Fu(Read)33 b(one)g(line)h(from)e(the)h
+(standard)f(input,)h(or)g(from)g(the)g(\014le)g(descriptor)f
+Fr(fd)k Fu(supplied)630 1988 y(as)44 b(an)f(argumen)m(t)h(to)h(the)e
Ft(-u)g Fu(option,)48 b(split)c(it)g(in)m(to)g(w)m(ords)f(as)h(describ)
-s(ed)e(ab)s(o)m(v)m(e)j(in)630 646 y(Section)38 b(3.5.7)h([W)-8
+s(ed)e(ab)s(o)m(v)m(e)j(in)630 2097 y(Section)38 b(3.5.7)h([W)-8
b(ord)37 b(Splitting],)j(page)d(38,)j(and)c(assign)i(the)f(\014rst)f(w)
-m(ord)h(to)h(the)f(\014rst)630 756 y Fr(name)p Fu(,)29
+m(ord)h(to)h(the)f(\014rst)630 2207 y Fr(name)p Fu(,)29
b(the)f(second)g(w)m(ord)f(to)i(the)f(second)g Fr(name)p
Fu(,)g(and)g(so)g(on.)40 b(If)27 b(there)h(are)g(more)g(w)m(ords)630
-865 y(than)i(names,)g(the)g(remaining)g(w)m(ords)f(and)g(their)h(in)m
-(terv)m(ening)h(delimiters)f(are)h(assigned)630 975 y(to)39
-b(the)g(last)h Fr(name)p Fu(.)65 b(If)38 b(there)h(are)g(few)m(er)g(w)m
-(ords)f(read)h(from)f(the)h(input)e(stream)i(than)630
-1084 y(names,)31 b(the)h(remaining)f(names)g(are)h(assigned)f(empt)m(y)
+2317 y(than)i(names,)g(the)g(remaining)g(w)m(ords)f(and)g(their)h(in)m
+(terv)m(ening)h(delimiters)f(are)h(assigned)630 2426
+y(to)39 b(the)g(last)h Fr(name)p Fu(.)65 b(If)38 b(there)h(are)g(few)m
+(er)g(w)m(ords)f(read)h(from)f(the)h(input)e(stream)i(than)630
+2536 y(names,)31 b(the)h(remaining)f(names)g(are)h(assigned)f(empt)m(y)
g(v)-5 b(alues.)44 b(The)30 b(c)m(haracters)j(in)e(the)630
-1194 y(v)-5 b(alue)22 b(of)f(the)h Ft(IFS)e Fu(v)-5 b(ariable)22
+2645 y(v)-5 b(alue)22 b(of)f(the)h Ft(IFS)e Fu(v)-5 b(ariable)22
b(are)g(used)e(to)i(split)g(the)f(line)h(in)m(to)g(w)m(ords)f(using)f
-(the)i(same)f(rules)630 1303 y(the)30 b(shell)h(uses)f(for)f(expansion)
+(the)i(same)f(rules)630 2755 y(the)30 b(shell)h(uses)f(for)f(expansion)
i(\(describ)s(ed)e(ab)s(o)m(v)m(e)i(in)f(Section)h(3.5.7)h([W)-8
-b(ord)31 b(Splitting],)630 1413 y(page)c(38\).)40 b(The)26
+b(ord)31 b(Splitting],)630 2865 y(page)c(38\).)40 b(The)26
b(bac)m(kslash)g(c)m(haracter)i(`)p Ft(\\)p Fu(')e(remo)m(v)m(es)i(an)m
-(y)e(sp)s(ecial)h(meaning)f(for)g(the)g(next)630 1523
+(y)e(sp)s(ecial)h(meaning)f(for)g(the)g(next)630 2974
y(c)m(haracter)32 b(read)e(and)g(is)g(used)g(for)g(line)h(con)m(tin)m
-(uation.)630 1650 y(Options,)f(if)h(supplied,)e(ha)m(v)m(e)i(the)g
-(follo)m(wing)h(meanings:)630 1797 y Ft(-a)e Fj(aname)114
+(uation.)630 3110 y(Options,)f(if)h(supplied,)e(ha)m(v)m(e)i(the)g
+(follo)m(wing)h(meanings:)630 3271 y Ft(-a)e Fj(aname)114
b Fu(The)34 b(w)m(ords)f(are)i(assigned)f(to)h(sequen)m(tial)h(indices)
-e(of)g(the)g(arra)m(y)h(v)-5 b(ariable)1110 1906 y Fr(aname)p
+e(of)g(the)g(arra)m(y)h(v)-5 b(ariable)1110 3380 y Fr(aname)p
Fu(,)29 b(starting)h(at)f(0.)40 b(All)29 b(elemen)m(ts)h(are)e(remo)m
-(v)m(ed)i(from)d Fr(aname)34 b Fu(b)s(efore)1110 2016
+(v)m(ed)i(from)d Fr(aname)34 b Fu(b)s(efore)1110 3490
y(the)d(assignmen)m(t.)41 b(Other)30 b Fr(name)36 b Fu(argumen)m(ts)30
-b(are)h(ignored.)630 2162 y Ft(-d)f Fj(delim)114 b Fu(The)31
+b(are)h(ignored.)630 3651 y Ft(-d)f Fj(delim)114 b Fu(The)31
b(\014rst)h(c)m(haracter)h(of)f Fr(delim)g Fu(terminates)h(the)f(input)
-f(line,)i(rather)f(than)1110 2271 y(newline.)64 b(If)38
+f(line,)i(rather)f(than)1110 3761 y(newline.)64 b(If)38
b Fr(delim)g Fu(is)h(the)f(empt)m(y)h(string,)h Ft(read)d
-Fu(will)i(terminate)g(a)g(line)1110 2381 y(when)29 b(it)i(reads)f(a)h
-(NUL)g(c)m(haracter.)630 2527 y Ft(-e)384 b Fu(If)33
+Fu(will)i(terminate)g(a)g(line)1110 3870 y(when)29 b(it)i(reads)f(a)h
+(NUL)g(c)m(haracter.)630 4031 y Ft(-e)384 b Fu(If)33
b(the)h(standard)f(input)g(is)h(coming)h(from)e(a)h(terminal,)h
-Ft(read)e Fu(uses)g(Read-)1110 2637 y(line)h(\(see)h(Chapter)e(8)i
+Ft(read)e Fu(uses)g(Read-)1110 4141 y(line)h(\(see)h(Chapter)e(8)i
([Command)e(Line)g(Editing],)j(page)e(130\))i(to)e(obtain)1110
-2746 y(the)h(line.)53 b(Readline)36 b(uses)e(the)h(curren)m(t)f(\(or)h
-(default,)h(if)e(line)h(editing)h(w)m(as)1110 2856 y(not)c(previously)g
+4251 y(the)h(line.)53 b(Readline)36 b(uses)e(the)h(curren)m(t)f(\(or)h
+(default,)h(if)e(line)h(editing)h(w)m(as)1110 4360 y(not)c(previously)g
(activ)m(e\))i(editing)e(settings,)i(but)d(uses)g(Readline's)i(default)
-1110 2966 y(\014lename)e(completion.)630 3112 y Ft(-E)384
+1110 4470 y(\014lename)e(completion.)630 4631 y Ft(-E)384
b Fu(If)23 b(the)h(standard)f(input)g(is)g(coming)i(from)e(a)h
-(terminal,)i Ft(read)c Fu(uses)h(Readline)1110 3221 y(\(see)36
+(terminal,)i Ft(read)c Fu(uses)h(Readline)1110 4740 y(\(see)36
b(Chapter)f(8)h([Command)e(Line)i(Editing],)h(page)f(130\))h(to)f
-(obtain)g(the)1110 3331 y(line.)53 b(Readline)34 b(uses)g(the)g(curren)
+(obtain)g(the)1110 4850 y(line.)53 b(Readline)34 b(uses)g(the)g(curren)
m(t)g(\(or)h(default,)h(if)e(line)g(editing)h(w)m(as)g(not)1110
-3440 y(previously)28 b(activ)m(e\))j(editing)e(settings,)h(but)d(uses)h
-(Bash's)g(default)h(comple-)1110 3550 y(tion,)i(including)f
-(programmable)h(completion.)630 3696 y Ft(-i)f Fj(text)162
+4960 y(previously)28 b(activ)m(e\))j(editing)e(settings,)h(but)d(uses)h
+(Bash's)g(default)h(comple-)1110 5069 y(tion,)i(including)f
+(programmable)h(completion.)630 5230 y Ft(-i)f Fj(text)162
b Fu(If)28 b(Readline)h(is)f(b)s(eing)f(used)h(to)h(read)f(the)g(line,)
h Ft(read)e Fu(places)i Fr(text)j Fu(in)m(to)d(the)1110
-3806 y(editing)i(bu\013er)e(b)s(efore)h(editing)h(b)s(egins.)630
-3952 y Ft(-n)f Fj(nchars)66 b Ft(read)21 b Fu(returns)h(after)g
-(reading)h Fr(nc)m(hars)j Fu(c)m(haracters)e(rather)e(than)g(w)m
-(aiting)i(for)1110 4061 y(a)36 b(complete)h(line)f(of)f(input,)h
-(unless)f(it)h(encoun)m(ters)g(EOF)g(or)f Ft(read)f Fu(times)1110
-4171 y(out,)29 b(but)f(honors)g(a)g(delimiter)h(if)g(it)g(reads)f(few)m
-(er)g(than)h Fr(nc)m(hars)i Fu(c)m(haracters)1110 4281
-y(b)s(efore)f(the)h(delimiter.)630 4427 y Ft(-N)f Fj(nchars)66
-b Ft(read)39 b Fu(returns)f(after)j(reading)e(exactly)j
-Fr(nc)m(hars)h Fu(c)m(haracters)f(rather)d(than)1110
-4536 y(w)m(aiting)e(for)f(a)g(complete)h(line)g(of)f(input,)g(unless)g
-(it)g(encoun)m(ters)g(EOF)g(or)1110 4646 y Ft(read)d
-Fu(times)h(out.)51 b(Delimiter)36 b(c)m(haracters)f(in)f(the)g(input)f
-(are)h(not)g(treated)1110 4756 y(sp)s(ecially)f(and)f(do)g(not)h(cause)
-f Ft(read)g Fu(to)h(return)e(un)m(til)h(it)h(has)f(read)g
-Fr(nc)m(hars)1110 4865 y Fu(c)m(haracters.)71 b(The)39
-b(result)h(is)g(not)g(split)h(on)e(the)i(c)m(haracters)g(in)f
-Ft(IFS)p Fu(;)k(the)1110 4975 y(in)m(ten)m(t)38 b(is)f(that)h(the)f(v)
--5 b(ariable)38 b(is)f(assigned)g(exactly)h(the)g(c)m(haracters)g(read)
-1110 5084 y(\(with)30 b(the)h(exception)h(of)e(bac)m(kslash;)h(see)g
-(the)g Ft(-r)f Fu(option)h(b)s(elo)m(w\).)630 5230 y
-Ft(-p)f Fj(prompt)66 b Fu(Displa)m(y)38 b Fr(prompt)p
-Fu(,)g(without)e(a)h(trailing)h(newline,)h(b)s(efore)d(attempting)i(to)
-1110 5340 y(read)30 b(an)m(y)h(input,)f(but)f(only)i(if)f(input)g(is)g
-(coming)h(from)f(a)h(terminal.)p eop end
+5340 y(editing)i(bu\013er)e(b)s(efore)h(editing)h(b)s(egins.)p
+eop end
%%Page: 71 77
TeXDict begin 71 76 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(71)630 299 y Ft(-r)384
-b Fu(If)21 b(this)h(option)g(is)f(giv)m(en,)k(bac)m(kslash)d(do)s(es)f
+b(Shell)30 b(Builtin)h(Commands)2069 b(71)630 299 y Ft(-n)30
+b Fj(nchars)66 b Ft(read)21 b Fu(returns)h(after)g(reading)h
+Fr(nc)m(hars)j Fu(c)m(haracters)e(rather)e(than)g(w)m(aiting)i(for)1110
+408 y(a)36 b(complete)h(line)f(of)f(input,)h(unless)f(it)h(encoun)m
+(ters)g(EOF)g(or)f Ft(read)f Fu(times)1110 518 y(out,)29
+b(but)f(honors)g(a)g(delimiter)h(if)g(it)g(reads)f(few)m(er)g(than)h
+Fr(nc)m(hars)i Fu(c)m(haracters)1110 628 y(b)s(efore)f(the)h
+(delimiter.)630 798 y Ft(-N)f Fj(nchars)66 b Ft(read)39
+b Fu(returns)f(after)j(reading)e(exactly)j Fr(nc)m(hars)h
+Fu(c)m(haracters)f(rather)d(than)1110 908 y(w)m(aiting)e(for)f(a)g
+(complete)h(line)g(of)f(input,)g(unless)g(it)g(encoun)m(ters)g(EOF)g
+(or)1110 1017 y Ft(read)d Fu(times)h(out.)51 b(Delimiter)36
+b(c)m(haracters)f(in)f(the)g(input)f(are)h(not)g(treated)1110
+1127 y(sp)s(ecially)f(and)f(do)g(not)h(cause)f Ft(read)g
+Fu(to)h(return)e(un)m(til)h(it)h(has)f(read)g Fr(nc)m(hars)1110
+1236 y Fu(c)m(haracters.)71 b(The)39 b(result)h(is)g(not)g(split)h(on)e
+(the)i(c)m(haracters)g(in)f Ft(IFS)p Fu(;)k(the)1110
+1346 y(in)m(ten)m(t)38 b(is)f(that)h(the)f(v)-5 b(ariable)38
+b(is)f(assigned)g(exactly)h(the)g(c)m(haracters)g(read)1110
+1456 y(\(with)30 b(the)h(exception)h(of)e(bac)m(kslash;)h(see)g(the)g
+Ft(-r)f Fu(option)h(b)s(elo)m(w\).)630 1626 y Ft(-p)f
+Fj(prompt)66 b Fu(Displa)m(y)38 b Fr(prompt)p Fu(,)g(without)e(a)h
+(trailing)h(newline,)h(b)s(efore)d(attempting)i(to)1110
+1736 y(read)30 b(an)m(y)h(input,)f(but)f(only)i(if)f(input)g(is)g
+(coming)h(from)f(a)h(terminal.)630 1906 y Ft(-r)384 b
+Fu(If)21 b(this)h(option)g(is)f(giv)m(en,)k(bac)m(kslash)d(do)s(es)f
(not)h(act)h(as)f(an)f(escap)s(e)h(c)m(haracter.)1110
-408 y(The)30 b(bac)m(kslash)i(is)f(considered)g(to)h(b)s(e)e(part)h(of)
-g(the)g(line.)43 b(In)30 b(particular,)i(a)1110 518 y(bac)m
-(kslash-newline)26 b(pair)e(ma)m(y)h(not)g(then)g(b)s(e)f(used)g(as)h
-(a)g(line)g(con)m(tin)m(uation.)630 675 y Ft(-s)384 b
-Fu(Silen)m(t)28 b(mo)s(de.)40 b(If)27 b(input)f(is)i(coming)g(from)f(a)
-h(terminal,)h(c)m(haracters)g(are)f(not)1110 785 y(ec)m(ho)s(ed.)630
-942 y Ft(-t)i Fj(timeout)1110 1052 y Fu(Cause)25 b Ft(read)f
-Fu(to)h(time)h(out)f(and)g(return)e(failure)j(if)e(it)i(do)s(es)f(not)g
-(read)g(a)g(com-)1110 1161 y(plete)f(line)f(of)g(input)f(\(or)h(a)h(sp)
-s(eci\014ed)e(n)m(um)m(b)s(er)g(of)h(c)m(haracters\))i(within)d
-Fr(time-)1110 1271 y(out)37 b Fu(seconds.)53 b Fr(timeout)38
-b Fu(ma)m(y)d(b)s(e)f(a)h(decimal)h(n)m(um)m(b)s(er)d(with)h(a)h
-(fractional)1110 1380 y(p)s(ortion)29 b(follo)m(wing)h(the)f(decimal)h
-(p)s(oin)m(t.)40 b(This)29 b(option)g(is)g(only)g(e\013ectiv)m(e)j(if)
-1110 1490 y Ft(read)27 b Fu(is)i(reading)g(input)e(from)h(a)h
-(terminal,)h(pip)s(e,)e(or)h(other)g(sp)s(ecial)g(\014le;)g(it)1110
-1600 y(has)i(no)f(e\013ect)j(when)d(reading)h(from)f(regular)h
+2016 y(The)30 b(bac)m(kslash)i(is)f(considered)g(to)h(b)s(e)e(part)h
+(of)g(the)g(line.)43 b(In)30 b(particular,)i(a)1110 2125
+y(bac)m(kslash-newline)26 b(pair)e(ma)m(y)h(not)g(then)g(b)s(e)f(used)g
+(as)h(a)g(line)g(con)m(tin)m(uation.)630 2296 y Ft(-s)384
+b Fu(Silen)m(t)28 b(mo)s(de.)40 b(If)27 b(input)f(is)i(coming)g(from)f
+(a)h(terminal,)h(c)m(haracters)g(are)f(not)1110 2405
+y(ec)m(ho)s(ed.)630 2576 y Ft(-t)i Fj(timeout)1110 2685
+y Fu(Cause)25 b Ft(read)f Fu(to)h(time)h(out)f(and)g(return)e(failure)j
+(if)e(it)i(do)s(es)f(not)g(read)g(a)g(com-)1110 2795
+y(plete)f(line)f(of)g(input)f(\(or)h(a)h(sp)s(eci\014ed)e(n)m(um)m(b)s
+(er)g(of)h(c)m(haracters\))i(within)d Fr(time-)1110 2905
+y(out)37 b Fu(seconds.)53 b Fr(timeout)38 b Fu(ma)m(y)d(b)s(e)f(a)h
+(decimal)h(n)m(um)m(b)s(er)d(with)h(a)h(fractional)1110
+3014 y(p)s(ortion)29 b(follo)m(wing)h(the)f(decimal)h(p)s(oin)m(t.)40
+b(This)29 b(option)g(is)g(only)g(e\013ectiv)m(e)j(if)1110
+3124 y Ft(read)27 b Fu(is)i(reading)g(input)e(from)h(a)h(terminal,)h
+(pip)s(e,)e(or)h(other)g(sp)s(ecial)g(\014le;)g(it)1110
+3233 y(has)i(no)f(e\013ect)j(when)d(reading)h(from)f(regular)h
(\014les.)42 b(If)31 b Ft(read)e Fu(times)j(out,)f(it)1110
-1709 y(sa)m(v)m(es)k(an)m(y)g(partial)f(input)f(read)h(in)m(to)h(the)f
+3343 y(sa)m(v)m(es)k(an)m(y)g(partial)f(input)f(read)h(in)m(to)h(the)f
(sp)s(eci\014ed)g(v)-5 b(ariable)34 b Fr(name)p Fu(,)i(and)1110
-1819 y(returns)j(a)i(status)f(greater)h(than)f(128.)72
+3453 y(returns)j(a)i(status)f(greater)h(than)f(128.)72
b(If)39 b Fr(timeout)44 b Fu(is)c(0,)j Ft(read)c Fu(returns)1110
-1928 y(immediately)-8 b(,)29 b(without)c(trying)h(to)h(read)e(an)m(y)i
-(data.)39 b(In)25 b(this)h(case,)i(the)e(exit)1110 2038
+3562 y(immediately)-8 b(,)29 b(without)c(trying)h(to)h(read)e(an)m(y)i
+(data.)39 b(In)25 b(this)h(case,)i(the)e(exit)1110 3672
y(status)38 b(is)f(0)h(if)f(input)g(is)g(a)m(v)-5 b(ailable)40
b(on)d(the)h(sp)s(eci\014ed)e(\014le)i(descriptor,)h(or)1110
-2148 y(the)31 b(read)f(will)h(return)e(EOF,)h(non-zero)h(otherwise.)630
-2305 y Ft(-u)f Fj(fd)258 b Fu(Read)31 b(input)e(from)h(\014le)g
+3781 y(the)31 b(read)f(will)h(return)e(EOF,)h(non-zero)h(otherwise.)630
+3952 y Ft(-u)f Fj(fd)258 b Fu(Read)31 b(input)e(from)h(\014le)g
(descriptor)h Fr(fd)i Fu(instead)d(of)h(the)g(standard)e(input.)630
-2462 y(Other)36 b(than)g(the)h(case)h(where)e Fr(delim)g
+4122 y(Other)36 b(than)g(the)h(case)h(where)e Fr(delim)g
Fu(is)h(the)f(empt)m(y)h(string,)i Ft(read)c Fu(ignores)i(an)m(y)g(NUL)
-630 2572 y(c)m(haracters)32 b(in)e(the)g(input.)630 2705
+630 4232 y(c)m(haracters)32 b(in)e(the)g(input.)630 4372
y(If)d(no)h Fr(name)5 b Fu(s)28 b(are)g(supplied,)f Ft(read)f
Fu(assigns)i(the)g(line)g(read,)h(without)e(the)h(ending)g(delim-)630
-2815 y(iter)j(but)f(otherwise)g(unmo)s(di\014ed,)f(to)i(the)g(v)-5
-b(ariable)31 b Ft(REPLY)p Fu(.)630 2948 y(The)40 b(exit)h(status)g(is)f
+4482 y(iter)j(but)f(otherwise)g(unmo)s(di\014ed,)f(to)i(the)g(v)-5
+b(ariable)31 b Ft(REPLY)p Fu(.)630 4622 y(The)40 b(exit)h(status)g(is)f
(zero,)k(unless)c(end-of-\014le)g(is)h(encoun)m(tered,)i
-Ft(read)c Fu(times)i(out)g(\(in)630 3058 y(whic)m(h)28
+Ft(read)c Fu(times)i(out)g(\(in)630 4731 y(whic)m(h)28
b(case)h(the)g(status)f(is)h(greater)g(than)f(128\),)j(a)d(v)-5
b(ariable)29 b(assignmen)m(t)h(error)d(\(suc)m(h)i(as)630
-3167 y(assigning)f(to)g(a)g(readonly)g(v)-5 b(ariable\))29
+4841 y(assigning)f(to)g(a)g(readonly)g(v)-5 b(ariable\))29
b(o)s(ccurs,)f(or)f(an)h(in)m(v)-5 b(alid)28 b(\014le)f(descriptor)h
-(is)f(supplied)630 3277 y(as)k(the)f(argumen)m(t)h(to)g
-Ft(-u)p Fu(.)150 3434 y Ft(readarray)870 3544 y(readarray)45
+(is)f(supplied)630 4950 y(as)k(the)f(argumen)m(t)h(to)g
+Ft(-u)p Fu(.)150 5121 y Ft(readarray)870 5230 y(readarray)45
b([-d)i Fj(delim)p Ft(])f([-n)h Fj(count)p Ft(])f([-O)h
-Fj(origin)p Ft(])f([-s)h Fj(count)p Ft(])1061 3653 y([-t])g([-u)f
+Fj(origin)p Ft(])f([-s)h Fj(count)p Ft(])1061 5340 y([-t])g([-u)f
Fj(fd)p Ft(])h([-C)g Fj(callback)p Ft(])f([-c)g Fj(quantum)p
-Ft(])g([)p Fj(array)p Ft(])630 3787 y Fu(Read)38 b(lines)f(from)g(the)h
-(standard)e(input)g(in)m(to)j(the)e(indexed)g(arra)m(y)h(v)-5
-b(ariable)38 b Fr(arra)m(y)p Fu(,)i(or)630 3896 y(from)30
-b(\014le)g(descriptor)h Fr(fd)i Fu(if)d(the)h Ft(-u)e
-Fu(option)i(is)g(supplied.)630 4030 y(A)f(synon)m(ym)g(for)g
-Ft(mapfile)p Fu(.)150 4187 y Ft(source)870 4320 y(source)46
+Ft(])g([)p Fj(array)p Ft(])p eop end
+%%Page: 72 78
+TeXDict begin 72 77 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(72)630 299 y(Read)38
+b(lines)f(from)g(the)h(standard)e(input)g(in)m(to)j(the)e(indexed)g
+(arra)m(y)h(v)-5 b(ariable)38 b Fr(arra)m(y)p Fu(,)i(or)630
+408 y(from)30 b(\014le)g(descriptor)h Fr(fd)i Fu(if)d(the)h
+Ft(-u)e Fu(option)i(is)g(supplied.)630 542 y(A)f(synon)m(ym)g(for)g
+Ft(mapfile)p Fu(.)150 698 y Ft(source)870 831 y(source)46
b([-p)h Fj(path)p Ft(])f Fj(filename)g Ft([)p Fj(arguments)p
-Ft(])630 4454 y Fu(A)30 b(synon)m(ym)g(for)g Ft(.)g Fu(\(see)i(Section)
-f(4.1)g([Bourne)g(Shell)f(Builtins],)h(page)g(52\).)150
-4611 y Ft(type)870 4744 y(type)47 b([-afptP])e([)p Fj(name)i
-Ft(...)o(])630 4878 y Fu(Indicate)31 b(ho)m(w)f(eac)m(h)i
+Ft(])630 964 y Fu(A)30 b(synon)m(ym)g(for)g Ft(.)g Fu(\(see)i(Section)f
+(4.1)g([Bourne)g(Shell)f(Builtins],)h(page)g(52\).)150
+1121 y Ft(type)870 1254 y(type)47 b([-afptP])e([)p Fj(name)i
+Ft(...)o(])630 1387 y Fu(Indicate)31 b(ho)m(w)f(eac)m(h)i
Fr(name)j Fu(w)m(ould)c(b)s(e)e(in)m(terpreted)i(if)f(used)g(as)h(a)f
-(command)g(name.)630 5011 y(If)41 b(the)g Ft(-t)g Fu(option)h(is)f
+(command)g(name.)630 1520 y(If)41 b(the)g Ft(-t)g Fu(option)h(is)f
(used,)j Ft(type)c Fu(prin)m(ts)h(a)h(single)g(w)m(ord)f(whic)m(h)g(is)
-g(one)h(of)g(`)p Ft(alias)p Fu(',)630 5121 y(`)p Ft(keyword)p
+g(one)h(of)g(`)p Ft(alias)p Fu(',)630 1630 y(`)p Ft(keyword)p
Fu(',)32 b(`)p Ft(function)p Fu(',)g(`)p Ft(builtin)p
Fu(',)g(or)h(`)p Ft(file)p Fu(',)g(if)g Fr(name)38 b
-Fu(is)33 b(an)g(alias,)i(shell)e(reserv)m(ed)630 5230
+Fu(is)33 b(an)g(alias,)i(shell)e(reserv)m(ed)630 1739
y(w)m(ord,)h(shell)f(function,)g(shell)h(builtin,)f(or)g(executable)i
(\014le,)f(resp)s(ectiv)m(ely)-8 b(.)50 b(If)33 b(the)g
-Fr(name)630 5340 y Fu(is)d(not)h(found,)e Ft(type)h Fu(prin)m(ts)f
-(nothing)i(and)f(returns)f(a)h(failure)h(status.)p eop
-end
-%%Page: 72 78
-TeXDict begin 72 77 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(72)630 299 y(If)25
-b(the)h Ft(-p)f Fu(option)g(is)h(used,)g Ft(type)e Fu(either)i(returns)
-e(the)i(name)f(of)h(the)g(executable)h(\014le)e(that)630
-408 y(w)m(ould)j(b)s(e)f(found)g(b)m(y)h(searc)m(hing)h
-Ft($PATH)e Fu(for)h Ft(name)p Fu(,)g(or)g(nothing)g(if)g
-Ft(-t)g Fu(w)m(ould)g(not)g(return)630 518 y(`)p Ft(file)p
-Fu('.)630 651 y(The)i Ft(-P)g Fu(option)h(forces)g(a)g(path)f(searc)m
+Fr(name)630 1849 y Fu(is)d(not)h(found,)e Ft(type)h Fu(prin)m(ts)f
+(nothing)i(and)f(returns)f(a)h(failure)h(status.)630
+1982 y(If)25 b(the)h Ft(-p)f Fu(option)g(is)h(used,)g
+Ft(type)e Fu(either)i(returns)e(the)i(name)f(of)h(the)g(executable)h
+(\014le)e(that)630 2091 y(w)m(ould)j(b)s(e)f(found)g(b)m(y)h(searc)m
+(hing)h Ft($PATH)e Fu(for)h Ft(name)p Fu(,)g(or)g(nothing)g(if)g
+Ft(-t)g Fu(w)m(ould)g(not)g(return)630 2201 y(`)p Ft(file)p
+Fu('.)630 2334 y(The)i Ft(-P)g Fu(option)h(forces)g(a)g(path)f(searc)m
(h)h(for)g(eac)m(h)g Fr(name)p Fu(,)g(ev)m(en)g(if)g
-Ft(-t)f Fu(w)m(ould)g(not)h(return)630 761 y(`)p Ft(file)p
-Fu('.)630 894 y(If)e(a)h Fr(name)k Fu(is)29 b(presen)m(t)h(in)f(the)g
+Ft(-t)f Fu(w)m(ould)g(not)h(return)630 2444 y(`)p Ft(file)p
+Fu('.)630 2577 y(If)e(a)h Fr(name)k Fu(is)29 b(presen)m(t)h(in)f(the)g
(table)h(of)g(hashed)e(commands,)i(options)f Ft(-p)g
-Fu(and)g Ft(-P)f Fu(prin)m(t)630 1004 y(the)j(hashed)e(v)-5
+Fu(and)g Ft(-P)f Fu(prin)m(t)630 2686 y(the)j(hashed)e(v)-5
b(alue,)31 b(whic)m(h)f(is)h(not)f(necessarily)i(the)e(\014le)h(that)g
-(app)s(ears)e(\014rst)h(in)g Ft($PATH)p Fu(.)630 1137
+(app)s(ears)e(\014rst)h(in)g Ft($PATH)p Fu(.)630 2819
y(If)e(the)h Ft(-a)f Fu(option)h(is)f(used,)h Ft(type)e
Fu(returns)g(all)j(of)e(the)h(places)g(that)g(con)m(tain)h(a)f(command)
-630 1247 y(named)c Fr(name)p Fu(.)39 b(This)25 b(includes)g(aliases,)j
+630 2929 y(named)c Fr(name)p Fu(.)39 b(This)25 b(includes)g(aliases,)j
(reserv)m(ed)e(w)m(ords,)g(functions,)h(and)d(builtins,)j(but)630
-1356 y(the)34 b(path)f(searc)m(h)i(options)f(\()p Ft(-p)f
+3039 y(the)34 b(path)f(searc)m(h)i(options)f(\()p Ft(-p)f
Fu(and)h Ft(-P)p Fu(\))f(can)h(b)s(e)f(supplied)g(to)h(restrict)h(the)f
-(output)f(to)630 1466 y(executable)k(\014les.)55 b(If)34
+(output)f(to)630 3148 y(executable)k(\014les.)55 b(If)34
b Ft(-a)h Fu(is)g(supplied)f(with)h Ft(-p)p Fu(,)h Ft(type)e
Fu(do)s(es)g(not)i(lo)s(ok)g(in)e(the)i(table)g(of)630
-1575 y(hashed)30 b(commands,)g(and)g(only)g(p)s(erforms)f(a)i
-Ft(PATH)e Fu(searc)m(h)i(for)f Fr(name)p Fu(.)630 1709
+3258 y(hashed)30 b(commands,)g(and)g(only)g(p)s(erforms)f(a)i
+Ft(PATH)e Fu(searc)m(h)i(for)f Fr(name)p Fu(.)630 3391
y(If)g(the)g Ft(-f)g Fu(option)g(is)h(used,)e Ft(type)g
Fu(do)s(es)h(not)h(attempt)g(to)g(\014nd)d(shell)j(functions,)f(as)g
-(with)630 1818 y(the)h Ft(command)d Fu(builtin.)630 1952
+(with)630 3500 y(the)h Ft(command)d Fu(builtin.)630 3634
y(The)j(return)e(status)j(is)f(zero)h(if)f(all)g(of)h(the)f
Fr(name)5 b Fu(s)31 b(are)g(found,)f(non-zero)i(if)f(an)m(y)g(are)h
-(not)630 2061 y(found.)150 2218 y Ft(typeset)870 2351
+(not)630 3743 y(found.)150 3900 y Ft(typeset)870 4033
y(typeset)46 b([-afFgrxilnrtux])d([-p])k([)p Fj(name)p
-Ft([=)p Fj(value)p Ft(])d(...)o(])630 2485 y Fu(The)31
+Ft([=)p Fj(value)p Ft(])d(...)o(])630 4166 y Fu(The)31
b Ft(typeset)e Fu(command)i(is)g(supplied)f(for)h(compatibilit)m(y)i
-(with)e(the)g(Korn)f(shell.)44 b(It)31 b(is)630 2594
+(with)e(the)g(Korn)f(shell.)44 b(It)31 b(is)630 4275
y(a)g(synon)m(ym)f(for)g(the)g Ft(declare)f Fu(builtin)h(command.)150
-2751 y Ft(ulimit)870 2885 y(ulimit)46 b([-HS])g(-a)870
-2994 y(ulimit)g([-HS])g([-bcdefiklmnpqrstuvxPRT])c([)p
-Fj(limit)p Ft(])630 3127 y(ulimit)37 b Fu(pro)m(vides)h(con)m(trol)i(o)
+4432 y Ft(ulimit)870 4565 y(ulimit)46 b([-HS])g(-a)870
+4675 y(ulimit)g([-HS])g([-bcdefiklmnpqrstuvxPRT])c([)p
+Fj(limit)p Ft(])630 4808 y(ulimit)37 b Fu(pro)m(vides)h(con)m(trol)i(o)
m(v)m(er)g(the)f(resources)f(a)m(v)-5 b(ailable)41 b(to)f(the)e(shell)h
-(and)f(to)h(pro-)630 3237 y(cesses)34 b(it)f(starts,)h(on)f(systems)g
+(and)f(to)h(pro-)630 4917 y(cesses)34 b(it)f(starts,)h(on)f(systems)g
(that)g(allo)m(w)h(suc)m(h)f(con)m(trol.)49 b(If)33 b(an)g(option)g(is)
-g(giv)m(en,)i(it)e(is)630 3347 y(in)m(terpreted)e(as)f(follo)m(ws:)630
-3504 y Ft(-S)384 b Fu(Change)30 b(and)g(rep)s(ort)g(the)g(soft)h(limit)
-g(asso)s(ciated)h(with)e(a)h(resource.)630 3661 y Ft(-H)384
+g(giv)m(en,)i(it)e(is)630 5027 y(in)m(terpreted)e(as)f(follo)m(ws:)630
+5183 y Ft(-S)384 b Fu(Change)30 b(and)g(rep)s(ort)g(the)g(soft)h(limit)
+g(asso)s(ciated)h(with)e(a)h(resource.)630 5340 y Ft(-H)384
b Fu(Change)30 b(and)g(rep)s(ort)g(the)g(hard)g(limit)h(asso)s(ciated)h
-(with)e(a)h(resource.)630 3818 y Ft(-a)384 b Fu(Rep)s(ort)30
-b(all)h(curren)m(t)f(limits;)i(no)e(limits)h(are)g(set.)630
-3975 y Ft(-b)384 b Fu(The)30 b(maxim)m(um)g(so)s(c)m(k)m(et)i(bu\013er)
-e(size.)630 4132 y Ft(-c)384 b Fu(The)30 b(maxim)m(um)g(size)h(of)g
-(core)g(\014les)f(created.)630 4289 y Ft(-d)384 b Fu(The)30
-b(maxim)m(um)g(size)h(of)g(a)g(pro)s(cess's)f(data)h(segmen)m(t.)630
-4445 y Ft(-e)384 b Fu(The)30 b(maxim)m(um)g(sc)m(heduling)h(priorit)m
-(y)f(\()p Ft(")p Fu(nice)p Ft(")p Fu(\).)630 4602 y Ft(-f)384
-b Fu(The)30 b(maxim)m(um)g(size)h(of)g(\014les)f(written)h(b)m(y)f(the)
-g(shell)h(and)f(its)h(c)m(hildren.)630 4759 y Ft(-i)384
-b Fu(The)30 b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i(p)s(ending)e
-(signals.)630 4916 y Ft(-k)384 b Fu(The)30 b(maxim)m(um)g(n)m(um)m(b)s
-(er)f(of)i(kqueues)f(that)h(ma)m(y)g(b)s(e)e(allo)s(cated.)630
-5073 y Ft(-l)384 b Fu(The)30 b(maxim)m(um)g(size)h(that)g(ma)m(y)g(b)s
-(e)f(lo)s(c)m(k)m(ed)i(in)m(to)f(memory)-8 b(.)630 5230
-y Ft(-m)384 b Fu(The)36 b(maxim)m(um)g(residen)m(t)h(set)g(size)g
-(\(man)m(y)g(systems)f(do)h(not)f(honor)g(this)1110 5340
-y(limit\).)p eop end
+(with)e(a)h(resource.)p eop end
%%Page: 73 79
TeXDict begin 73 78 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(73)630 299 y Ft(-n)384
-b Fu(The)38 b(maxim)m(um)h(n)m(um)m(b)s(er)e(of)i(op)s(en)f(\014le)h
-(descriptors)g(\(most)g(systems)g(do)1110 408 y(not)31
-b(allo)m(w)g(this)g(v)-5 b(alue)31 b(to)g(b)s(e)e(set\).)630
-579 y Ft(-p)384 b Fu(The)30 b(pip)s(e)f(bu\013er)h(size.)630
-749 y Ft(-q)384 b Fu(The)30 b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i(b)m
-(ytes)g(in)f Fm(posix)f Fu(message)j(queues.)630 919
+b(Shell)30 b(Builtin)h(Commands)2069 b(73)630 299 y Ft(-a)384
+b Fu(Rep)s(ort)30 b(all)h(curren)m(t)f(limits;)i(no)e(limits)h(are)g
+(set.)630 463 y Ft(-b)384 b Fu(The)30 b(maxim)m(um)g(so)s(c)m(k)m(et)i
+(bu\013er)e(size.)630 628 y Ft(-c)384 b Fu(The)30 b(maxim)m(um)g(size)h
+(of)g(core)g(\014les)f(created.)630 792 y Ft(-d)384 b
+Fu(The)30 b(maxim)m(um)g(size)h(of)g(a)g(pro)s(cess's)f(data)h(segmen)m
+(t.)630 956 y Ft(-e)384 b Fu(The)30 b(maxim)m(um)g(sc)m(heduling)h
+(priorit)m(y)f(\()p Ft(")p Fu(nice)p Ft(")p Fu(\).)630
+1121 y Ft(-f)384 b Fu(The)30 b(maxim)m(um)g(size)h(of)g(\014les)f
+(written)h(b)m(y)f(the)g(shell)h(and)f(its)h(c)m(hildren.)630
+1285 y Ft(-i)384 b Fu(The)30 b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i(p)s
+(ending)e(signals.)630 1450 y Ft(-k)384 b Fu(The)30 b(maxim)m(um)g(n)m
+(um)m(b)s(er)f(of)i(kqueues)f(that)h(ma)m(y)g(b)s(e)e(allo)s(cated.)630
+1614 y Ft(-l)384 b Fu(The)30 b(maxim)m(um)g(size)h(that)g(ma)m(y)g(b)s
+(e)f(lo)s(c)m(k)m(ed)i(in)m(to)f(memory)-8 b(.)630 1778
+y Ft(-m)384 b Fu(The)36 b(maxim)m(um)g(residen)m(t)h(set)g(size)g
+(\(man)m(y)g(systems)f(do)h(not)f(honor)g(this)1110 1888
+y(limit\).)630 2052 y Ft(-n)384 b Fu(The)38 b(maxim)m(um)h(n)m(um)m(b)s
+(er)e(of)i(op)s(en)f(\014le)h(descriptors)g(\(most)g(systems)g(do)1110
+2162 y(not)31 b(allo)m(w)g(this)g(v)-5 b(alue)31 b(to)g(b)s(e)e(set\).)
+630 2326 y Ft(-p)384 b Fu(The)30 b(pip)s(e)f(bu\013er)h(size.)630
+2491 y Ft(-q)384 b Fu(The)30 b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i(b)m
+(ytes)g(in)f Fm(posix)f Fu(message)j(queues.)630 2655
y Ft(-r)384 b Fu(The)30 b(maxim)m(um)g(real-time)i(sc)m(heduling)f
-(priorit)m(y)-8 b(.)630 1090 y Ft(-s)384 b Fu(The)30
-b(maxim)m(um)g(stac)m(k)i(size.)630 1260 y Ft(-t)384
+(priorit)m(y)-8 b(.)630 2819 y Ft(-s)384 b Fu(The)30
+b(maxim)m(um)g(stac)m(k)i(size.)630 2984 y Ft(-t)384
b Fu(The)30 b(maxim)m(um)g(amoun)m(t)h(of)f(cpu)g(time)h(in)f(seconds.)
-630 1430 y Ft(-u)384 b Fu(The)30 b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i
+630 3148 y Ft(-u)384 b Fu(The)30 b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i
(pro)s(cesses)f(a)m(v)-5 b(ailable)33 b(to)e(a)f(single)i(user.)630
-1601 y Ft(-v)384 b Fu(The)41 b(maxim)m(um)h(amoun)m(t)g(of)h(virtual)f
+3313 y Ft(-v)384 b Fu(The)41 b(maxim)m(um)h(amoun)m(t)g(of)h(virtual)f
(memory)g(a)m(v)-5 b(ailable)44 b(to)e(the)g(shell,)1110
-1710 y(and,)30 b(on)g(some)h(systems,)g(to)g(its)g(c)m(hildren.)630
-1881 y Ft(-x)384 b Fu(The)30 b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i
-(\014le)f(lo)s(c)m(ks.)630 2051 y Ft(-P)384 b Fu(The)30
+3422 y(and,)30 b(on)g(some)h(systems,)g(to)g(its)g(c)m(hildren.)630
+3587 y Ft(-x)384 b Fu(The)30 b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i
+(\014le)f(lo)s(c)m(ks.)630 3751 y Ft(-P)384 b Fu(The)30
b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i(pseudoterminals.)630
-2221 y Ft(-R)384 b Fu(The)27 b(maxim)m(um)h(time)h(a)f(real-time)i(pro)
+3915 y Ft(-R)384 b Fu(The)27 b(maxim)m(um)h(time)h(a)f(real-time)i(pro)
s(cess)d(can)i(run)d(b)s(efore)i(blo)s(c)m(king,)h(in)1110
-2331 y(microseconds.)630 2501 y Ft(-T)384 b Fu(The)30
-b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i(threads.)630 2672
+4025 y(microseconds.)630 4189 y Ft(-T)384 b Fu(The)30
+b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i(threads.)630 4354
y(If)e Fr(limit)k Fu(is)c(supplied,)g(and)g(the)h Ft(-a)f
Fu(option)h(is)g(not)g(used,)f Fr(limit)j Fu(is)e(the)g(new)f(v)-5
-b(alue)30 b(of)g(the)630 2781 y(sp)s(eci\014ed)j(resource.)51
+b(alue)30 b(of)g(the)630 4463 y(sp)s(eci\014ed)j(resource.)51
b(The)34 b(sp)s(ecial)g Fr(limit)j Fu(v)-5 b(alues)34
b Ft(hard)p Fu(,)g Ft(soft)p Fu(,)g(and)f Ft(unlimited)e
-Fu(stand)630 2891 y(for)h(the)g(curren)m(t)g(hard)f(limit,)i(the)g
+Fu(stand)630 4573 y(for)h(the)g(curren)m(t)g(hard)f(limit,)i(the)g
(curren)m(t)f(soft)g(limit,)h(and)f(no)g(limit,)h(resp)s(ectiv)m(ely)-8
-b(.)48 b(A)630 3000 y(hard)24 b(limit)i(cannot)g(b)s(e)e(increased)h(b)
+b(.)48 b(A)630 4682 y(hard)24 b(limit)i(cannot)g(b)s(e)e(increased)h(b)
m(y)g(a)h(non-ro)s(ot)f(user)f(once)i(it)g(is)f(set;)j(a)d(soft)g
-(limit)h(ma)m(y)630 3110 y(b)s(e)35 b(increased)h(up)f(to)i(the)f(v)-5
+(limit)h(ma)m(y)630 4792 y(b)s(e)35 b(increased)h(up)f(to)i(the)f(v)-5
b(alue)36 b(of)g(the)g(hard)f(limit.)58 b(Otherwise,)37
-b Ft(ulimit)d Fu(prin)m(ts)i(the)630 3220 y(curren)m(t)29
+b Ft(ulimit)d Fu(prin)m(ts)i(the)630 4902 y(curren)m(t)29
b(v)-5 b(alue)29 b(of)g(the)g(soft)h(limit)f(for)g(the)g(sp)s
(eci\014ed)f(resource,)i(unless)e(the)h Ft(-H)g Fu(option)g(is)630
-3329 y(supplied.)47 b(When)33 b(more)g(than)g(one)g(resource)g(is)g(sp)
-s(eci\014ed,)g(the)g(limit)h(name)f(and)f(unit,)630 3439
+5011 y(supplied.)47 b(When)33 b(more)g(than)g(one)g(resource)g(is)g(sp)
+s(eci\014ed,)g(the)g(limit)h(name)f(and)f(unit,)630 5121
y(if)27 b(appropriate,)h(are)f(prin)m(ted)g(b)s(efore)g(the)g(v)-5
b(alue.)40 b(When)27 b(setting)h(new)e(limits,)j(if)e(neither)630
-3548 y Ft(-H)32 b Fu(nor)h Ft(-S)f Fu(is)h(supplied,)f
+5230 y Ft(-H)32 b Fu(nor)h Ft(-S)f Fu(is)h(supplied,)f
Ft(ulimit)f Fu(sets)j(b)s(oth)e(the)h(hard)f(and)g(soft)h(limits.)49
-b(If)33 b(no)f(option)630 3658 y(is)e(supplied,)g(then)g
-Ft(-f)g Fu(is)g(assumed.)630 3798 y(V)-8 b(alues)24 b(are)f(in)f
-(1024-b)m(yte)k(incremen)m(ts,)f(except)f(for)e Ft(-t)p
-Fu(,)i(whic)m(h)f(is)f(in)h(seconds;)i Ft(-R)p Fu(,)f(whic)m(h)630
-3907 y(is)33 b(in)f(microseconds;)i Ft(-p)p Fu(,)f(whic)m(h)f(is)g(in)g
-(units)g(of)h(512-b)m(yte)i(blo)s(c)m(ks;)f Ft(-P)p Fu(,)f
-Ft(-T)p Fu(,)f Ft(-b)p Fu(,)h Ft(-k)p Fu(,)g Ft(-n)630
-4017 y Fu(and)d Ft(-u)p Fu(,)g(whic)m(h)g(are)g(unscaled)g(v)-5
-b(alues;)31 b(and,)f(when)g(in)g Fm(posix)f Fu(mo)s(de)h(\(see)h
-(Section)g(6.11)630 4127 y([Bash)g(POSIX)e(Mo)s(de],)i(page)g(116\),)i
-Ft(-c)c Fu(and)h Ft(-f)p Fu(,)g(whic)m(h)g(are)h(in)f(512-b)m(yte)j
-(incremen)m(ts.)630 4267 y(The)h(return)g(status)h(is)f(zero)i(unless)e
-(an)g(in)m(v)-5 b(alid)36 b(option)f(or)f(argumen)m(t)i(is)e(supplied,)
-h(or)630 4376 y(an)30 b(error)g(o)s(ccurs)g(while)h(setting)g(a)g(new)f
-(limit.)150 4546 y Ft(unalias)870 4686 y(unalias)46 b([-a])g([)p
-Fj(name)h Ft(...)g(])630 4826 y Fu(Remo)m(v)m(e)30 b(eac)m(h)f
-Fr(name)34 b Fu(from)27 b(the)i(list)g(of)f(aliases.)41
-b(If)28 b Ft(-a)g Fu(is)g(supplied,)f(remo)m(v)m(e)j(all)f(aliases.)630
-4936 y(The)i(return)g(v)-5 b(alue)33 b(is)e(true)h(unless)f(a)i
-(supplied)d Fr(name)37 b Fu(is)32 b(not)g(a)h(de\014ned)d(alias.)47
-b(Aliases)630 5046 y(are)31 b(describ)s(ed)e(in)h(Section)h(6.6)h
-([Aliases],)g(page)f(109.)150 5303 y Fs(4.3)68 b(Mo)t(difying)45
-b(Shell)g(Beha)l(vior)p eop end
+b(If)33 b(no)f(option)630 5340 y(is)e(supplied,)g(then)g
+Ft(-f)g Fu(is)g(assumed.)p eop end
%%Page: 74 80
TeXDict begin 74 79 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(74)150 299 y Fk(4.3.1)63
-b(The)41 b(Set)g(Builtin)150 446 y Fu(This)35 b(builtin)h(is)g(so)g
-(complicated)i(that)f(it)f(deserv)m(es)h(its)f(o)m(wn)g(section.)59
-b Ft(set)35 b Fu(allo)m(ws)j(y)m(ou)e(to)h(c)m(hange)150
-555 y(the)c(v)-5 b(alues)34 b(of)f(shell)g(options)h(and)e(set)i(the)f
-(p)s(ositional)h(parameters,)h(or)e(to)h(displa)m(y)f(the)g(names)h
-(and)150 665 y(v)-5 b(alues)31 b(of)f(shell)h(v)-5 b(ariables.)150
-841 y Ft(set)870 981 y(set)47 b([-abefhkmnptuvxBCEHPT])42
-b([-o)47 b Fj(option-name)p Ft(])d([--])j([-])g([)p Fj(argument)e
-Ft(...)o(])870 1091 y(set)i([+abefhkmnptuvxBCEHPT])42
+b(Shell)30 b(Builtin)h(Commands)2069 b(74)630 299 y(V)-8
+b(alues)24 b(are)f(in)f(1024-b)m(yte)k(incremen)m(ts,)f(except)f(for)e
+Ft(-t)p Fu(,)i(whic)m(h)f(is)f(in)h(seconds;)i Ft(-R)p
+Fu(,)f(whic)m(h)630 408 y(is)33 b(in)f(microseconds;)i
+Ft(-p)p Fu(,)f(whic)m(h)f(is)g(in)g(units)g(of)h(512-b)m(yte)i(blo)s(c)
+m(ks;)f Ft(-P)p Fu(,)f Ft(-T)p Fu(,)f Ft(-b)p Fu(,)h
+Ft(-k)p Fu(,)g Ft(-n)630 518 y Fu(and)d Ft(-u)p Fu(,)g(whic)m(h)g(are)g
+(unscaled)g(v)-5 b(alues;)31 b(and,)f(when)g(in)g Fm(posix)f
+Fu(mo)s(de)h(\(see)h(Section)g(6.11)630 628 y([Bash)g(POSIX)e(Mo)s
+(de],)i(page)g(116\),)i Ft(-c)c Fu(and)h Ft(-f)p Fu(,)g(whic)m(h)g(are)
+h(in)f(512-b)m(yte)j(incremen)m(ts.)630 760 y(The)h(return)g(status)h
+(is)f(zero)i(unless)e(an)g(in)m(v)-5 b(alid)36 b(option)f(or)f(argumen)
+m(t)i(is)e(supplied,)h(or)630 869 y(an)30 b(error)g(o)s(ccurs)g(while)h
+(setting)g(a)g(new)f(limit.)150 1024 y Ft(unalias)870
+1156 y(unalias)46 b([-a])g([)p Fj(name)h Ft(...)g(])630
+1288 y Fu(Remo)m(v)m(e)30 b(eac)m(h)f Fr(name)34 b Fu(from)27
+b(the)i(list)g(of)f(aliases.)41 b(If)28 b Ft(-a)g Fu(is)g(supplied,)f
+(remo)m(v)m(e)j(all)f(aliases.)630 1397 y(The)i(return)g(v)-5
+b(alue)33 b(is)e(true)h(unless)f(a)i(supplied)d Fr(name)37
+b Fu(is)32 b(not)g(a)h(de\014ned)d(alias.)47 b(Aliases)630
+1507 y(are)31 b(describ)s(ed)e(in)h(Section)h(6.6)h([Aliases],)g(page)f
+(109.)150 1743 y Fs(4.3)68 b(Mo)t(difying)45 b(Shell)g(Beha)l(vior)150
+1965 y Fk(4.3.1)63 b(The)41 b(Set)g(Builtin)150 2112
+y Fu(This)35 b(builtin)h(is)g(so)g(complicated)i(that)f(it)f(deserv)m
+(es)h(its)f(o)m(wn)g(section.)59 b Ft(set)35 b Fu(allo)m(ws)j(y)m(ou)e
+(to)h(c)m(hange)150 2221 y(the)c(v)-5 b(alues)34 b(of)f(shell)g
+(options)h(and)e(set)i(the)f(p)s(ositional)h(parameters,)h(or)e(to)h
+(displa)m(y)f(the)g(names)h(and)150 2331 y(v)-5 b(alues)31
+b(of)f(shell)h(v)-5 b(ariables.)150 2485 y Ft(set)870
+2617 y(set)47 b([-abefhkmnptuvxBCEHPT])42 b([-o)47 b
+Fj(option-name)p Ft(])d([--])j([-])g([)p Fj(argument)e
+Ft(...)o(])870 2727 y(set)i([+abefhkmnptuvxBCEHPT])42
b([+o)47 b Fj(option-name)p Ft(])d([--])j([-])g([)p Fj(argument)e
-Ft(...)o(])870 1200 y(set)i(-o)870 1310 y(set)g(+o)630
-1450 y Fu(If)22 b(no)h(options)g(or)g(argumen)m(ts)g(are)g(supplied,)g
+Ft(...)o(])870 2836 y(set)i(-o)870 2946 y(set)g(+o)630
+3078 y Fu(If)22 b(no)h(options)g(or)g(argumen)m(ts)g(are)g(supplied,)g
Ft(set)f Fu(displa)m(ys)g(the)h(names)g(and)f(v)-5 b(alues)23
-b(of)g(all)630 1559 y(shell)j(v)-5 b(ariables)27 b(and)e(functions,)h
+b(of)g(all)630 3188 y(shell)j(v)-5 b(ariables)27 b(and)e(functions,)h
(sorted)g(according)h(to)g(the)f(curren)m(t)f(lo)s(cale,)k(in)c(a)i
-(format)630 1669 y(that)i(ma)m(y)h(b)s(e)e(reused)g(as)h(input)f(for)h
+(format)630 3297 y(that)i(ma)m(y)h(b)s(e)e(reused)g(as)h(input)f(for)h
(setting)h(or)e(resetting)i(the)f(curren)m(tly-set)h(v)-5
-b(ariables.)630 1779 y(Read-only)37 b(v)-5 b(ariables)37
+b(ariables.)630 3407 y(Read-only)37 b(v)-5 b(ariables)37
b(cannot)h(b)s(e)e(reset.)59 b(In)36 b Fm(posix)g Fu(mo)s(de,)i(only)f
-(shell)f(v)-5 b(ariables)38 b(are)630 1888 y(listed.)630
-2028 y(When)32 b(options)h(are)g(supplied,)f(they)h(set)g(or)g(unset)f
+(shell)f(v)-5 b(ariables)38 b(are)630 3516 y(listed.)630
+3649 y(When)32 b(options)h(are)g(supplied,)f(they)h(set)g(or)g(unset)f
(shell)h(attributes.)48 b(An)m(y)33 b(argumen)m(ts)630
-2138 y(remaining)d(after)h(option)g(pro)s(cessing)f(replace)i(the)e(p)s
-(ositional)h(parameters.)630 2278 y(Options,)f(if)h(sp)s(eci\014ed,)e
-(ha)m(v)m(e)j(the)f(follo)m(wing)g(meanings:)630 2448
+3758 y(remaining)d(after)h(option)g(pro)s(cessing)f(replace)i(the)e(p)s
+(ositional)h(parameters.)630 3890 y(Options,)f(if)h(sp)s(eci\014ed,)e
+(ha)m(v)m(e)j(the)f(follo)m(wing)g(meanings:)630 4045
y Ft(-a)384 b Fu(Eac)m(h)37 b(v)-5 b(ariable)36 b(or)g(function)g(that)
g(is)g(created)h(or)f(mo)s(di\014ed)f(is)h(giv)m(en)h(the)1110
-2558 y(exp)s(ort)28 b(attribute)h(and)f(mark)m(ed)g(for)g(exp)s(ort)g
-(to)h(the)g(en)m(vironmen)m(t)f(of)h(sub-)1110 2667 y(sequen)m(t)i
-(commands.)630 2838 y Ft(-b)384 b Fu(Cause)44 b(the)h(status)g(of)f
+4154 y(exp)s(ort)28 b(attribute)h(and)f(mark)m(ed)g(for)g(exp)s(ort)g
+(to)h(the)g(en)m(vironmen)m(t)f(of)h(sub-)1110 4264 y(sequen)m(t)i
+(commands.)630 4418 y Ft(-b)384 b Fu(Cause)44 b(the)h(status)g(of)f
(terminated)h(bac)m(kground)g(jobs)f(to)h(b)s(e)f(rep)s(orted)1110
-2947 y(immediately)-8 b(,)32 b(rather)e(than)g(b)s(efore)g(prin)m(ting)
-g(the)h(next)f(primary)g(prompt)1110 3057 y(or,)j(under)e(some)h
+4528 y(immediately)-8 b(,)32 b(rather)e(than)g(b)s(efore)g(prin)m(ting)
+g(the)h(next)f(primary)g(prompt)1110 4638 y(or,)j(under)e(some)h
(circumstances,)i(when)d(a)i(foreground)e(command)h(exits.)1110
-3167 y(This)e(is)g(e\013ectiv)m(e)j(only)d(when)g(job)g(con)m(trol)i
-(is)e(enabled.)630 3337 y Ft(-e)384 b Fu(Exit)65 b(immediately)g(if)f
+4747 y(This)e(is)g(e\013ectiv)m(e)j(only)d(when)g(job)g(con)m(trol)i
+(is)e(enabled.)630 4902 y Ft(-e)384 b Fu(Exit)65 b(immediately)g(if)f
(a)h(pip)s(eline)e(\(see)i(Section)g(3.2.3)h([Pip)s(elines],)1110
-3447 y(page)51 b(10\),)58 b(whic)m(h)50 b(ma)m(y)h(consist)h(of)e(a)i
-(single)f(simple)g(command)f(\(see)1110 3556 y(Section)30
-b(3.2.2)i([Simple)d(Commands],)g(page)h(9\),)h(a)f(list)g(\(see)h
-(Section)f(3.2.4)1110 3666 y([Lists],)60 b(page)55 b(11\),)60
+5011 y(page)51 b(10\),)58 b(whic)m(h)50 b(ma)m(y)h(consist)h(of)e(a)i
+(single)f(simple)g(command)f(\(see)1110 5121 y(Section)26
+b(3.2.2)g([Simple)f(Commands],)g(page)h(10\),)h(a)e(list)h(\(see)g
+(Section)f(3.2.4)1110 5230 y([Lists],)60 b(page)55 b(11\),)60
b(or)54 b(a)g(comp)s(ound)e(command)h(\(see)i(Section)f(3.2.5)1110
-3775 y([Comp)s(ound)60 b(Commands],)70 b(page)63 b(11\))g(returns)e(a)i
-(non-zero)f(status.)1110 3885 y(The)41 b(shell)g(do)s(es)g(not)g(exit)h
-(if)f(the)h(command)f(that)h(fails)f(is)g(part)g(of)h(the)1110
-3994 y(command)k(list)g(immediately)h(follo)m(wing)g(a)f
-Ft(while)f Fu(or)g Ft(until)g Fu(reserv)m(ed)1110 4104
-y(w)m(ord,)40 b(part)d(of)h(the)g(test)h(in)f(an)f Ft(if)g
-Fu(statemen)m(t,)42 b(part)c(of)g(an)m(y)g(command)1110
-4214 y(executed)31 b(in)f(a)h Ft(&&)e Fu(or)i Ft(||)e
-Fu(list)i(except)h(the)e(command)g(follo)m(wing)i(the)e(\014nal)1110
-4323 y Ft(&&)k Fu(or)h Ft(||)p Fu(,)h(an)m(y)f(command)f(in)h(a)g(pip)s
-(eline)f(but)h(the)g(last)g(\(sub)5 b(ject)35 b(to)h(the)1110
-4433 y(state)43 b(of)g(the)f Ft(pipefail)e Fu(shell)i(option\),)k(or)c
-(if)g(the)g(command's)g(return)1110 4542 y(status)g(is)f(b)s(eing)g(in)
-m(v)m(erted)i(with)e Ft(!)p Fu(.)74 b(If)41 b(a)g(comp)s(ound)f
-(command)i(other)1110 4652 y(than)51 b(a)g(subshell)f(returns)f(a)j
-(non-zero)f(status)g(b)s(ecause)g(a)g(command)1110 4762
-y(failed)35 b(while)f Ft(-e)f Fu(w)m(as)i(b)s(eing)e(ignored,)j(the)e
-(shell)g(do)s(es)g(not)g(exit.)53 b(A)34 b(trap)1110
-4871 y(on)c Ft(ERR)p Fu(,)g(if)g(set,)i(is)e(executed)h(b)s(efore)f
-(the)h(shell)f(exits.)1110 5011 y(This)g(option)h(applies)f(to)h(the)g
-(shell)g(en)m(vironmen)m(t)g(and)f(eac)m(h)h(subshell)f(en-)1110
-5121 y(vironmen)m(t)j(separately)i(\(see)f(Section)g(3.7.3)h([Command)d
-(Execution)i(En-)1110 5230 y(vironmen)m(t],)i(page)f(46\),)i(and)d(ma)m
-(y)h(cause)f(subshells)g(to)h(exit)g(b)s(efore)f(exe-)1110
-5340 y(cuting)d(all)g(the)g(commands)f(in)g(the)g(subshell.)p
-eop end
+5340 y([Comp)s(ound)60 b(Commands],)70 b(page)63 b(11\))g(returns)e(a)i
+(non-zero)f(status.)p eop end
%%Page: 75 81
TeXDict begin 75 80 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(75)1110 299 y(If)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(75)1110 299 y(The)41
+b(shell)g(do)s(es)g(not)g(exit)h(if)f(the)h(command)f(that)h(fails)f
+(is)g(part)g(of)h(the)1110 408 y(command)k(list)g(immediately)h(follo)m
+(wing)g(a)f Ft(while)f Fu(or)g Ft(until)g Fu(reserv)m(ed)1110
+518 y(w)m(ord,)40 b(part)d(of)h(the)g(test)h(in)f(an)f
+Ft(if)g Fu(statemen)m(t,)42 b(part)c(of)g(an)m(y)g(command)1110
+628 y(executed)31 b(in)f(a)h Ft(&&)e Fu(or)i Ft(||)e
+Fu(list)i(except)h(the)e(command)g(follo)m(wing)i(the)e(\014nal)1110
+737 y Ft(&&)k Fu(or)h Ft(||)p Fu(,)h(an)m(y)f(command)f(in)h(a)g(pip)s
+(eline)f(but)h(the)g(last)g(\(sub)5 b(ject)35 b(to)h(the)1110
+847 y(state)43 b(of)g(the)f Ft(pipefail)e Fu(shell)i(option\),)k(or)c
+(if)g(the)g(command's)g(return)1110 956 y(status)g(is)f(b)s(eing)g(in)m
+(v)m(erted)i(with)e Ft(!)p Fu(.)74 b(If)41 b(a)g(comp)s(ound)f(command)
+i(other)1110 1066 y(than)51 b(a)g(subshell)f(returns)f(a)j(non-zero)f
+(status)g(b)s(ecause)g(a)g(command)1110 1176 y(failed)35
+b(while)f Ft(-e)f Fu(w)m(as)i(b)s(eing)e(ignored,)j(the)e(shell)g(do)s
+(es)g(not)g(exit.)53 b(A)34 b(trap)1110 1285 y(on)c Ft(ERR)p
+Fu(,)g(if)g(set,)i(is)e(executed)h(b)s(efore)f(the)h(shell)f(exits.)
+1110 1413 y(This)g(option)h(applies)f(to)h(the)g(shell)g(en)m(vironmen)
+m(t)g(and)f(eac)m(h)h(subshell)f(en-)1110 1523 y(vironmen)m(t)j
+(separately)i(\(see)f(Section)g(3.7.3)h([Command)d(Execution)i(En-)1110
+1632 y(vironmen)m(t],)i(page)f(47\),)i(and)d(ma)m(y)h(cause)f
+(subshells)g(to)h(exit)g(b)s(efore)f(exe-)1110 1742 y(cuting)d(all)g
+(the)g(commands)f(in)g(the)g(subshell.)1110 1870 y(If)41
b(a)g(comp)s(ound)e(command)i(or)g(shell)g(function)g(executes)h(in)f
-(a)g(con)m(text)1110 408 y(where)31 b Ft(-e)g Fu(is)g(b)s(eing)g
+(a)g(con)m(text)1110 1979 y(where)31 b Ft(-e)g Fu(is)g(b)s(eing)g
(ignored,)h(none)f(of)h(the)f(commands)g(executed)h(within)1110
-518 y(the)j(comp)s(ound)f(command)h(or)g(function)f(b)s(o)s(dy)g(will)h
-(b)s(e)f(a\013ected)j(b)m(y)e(the)1110 628 y Ft(-e)25
+2089 y(the)j(comp)s(ound)f(command)h(or)g(function)f(b)s(o)s(dy)g(will)
+h(b)s(e)f(a\013ected)j(b)m(y)e(the)1110 2198 y Ft(-e)25
b Fu(setting,)j(ev)m(en)e(if)g Ft(-e)f Fu(is)h(set)g(and)f(a)h(command)
-g(returns)e(a)i(failure)g(status.)1110 737 y(If)32 b(a)i(comp)s(ound)d
+g(returns)e(a)i(failure)g(status.)1110 2308 y(If)32 b(a)i(comp)s(ound)d
(command)i(or)g(shell)g(function)f(sets)i Ft(-e)e Fu(while)h(executing)
-1110 847 y(in)40 b(a)h(con)m(text)i(where)d Ft(-e)g Fu(is)h(ignored,)j
-(that)d(setting)h(will)f(not)g(ha)m(v)m(e)h(an)m(y)1110
-956 y(e\013ect)g(un)m(til)e(the)h(comp)s(ound)e(command)h(or)g(the)g
-(command)g(con)m(taining)1110 1066 y(the)31 b(function)f(call)h
-(completes.)630 1230 y Ft(-f)384 b Fu(Disable)31 b(\014lename)g
-(expansion)f(\(globbing\).)630 1395 y Ft(-h)384 b Fu(Lo)s(cate)33
+1110 2418 y(in)40 b(a)h(con)m(text)i(where)d Ft(-e)g
+Fu(is)h(ignored,)j(that)d(setting)h(will)f(not)g(ha)m(v)m(e)h(an)m(y)
+1110 2527 y(e\013ect)g(un)m(til)e(the)h(comp)s(ound)e(command)h(or)g
+(the)g(command)g(con)m(taining)1110 2637 y(the)31 b(function)f(call)h
+(completes.)630 2783 y Ft(-f)384 b Fu(Disable)31 b(\014lename)g
+(expansion)f(\(globbing\).)630 2929 y Ft(-h)384 b Fu(Lo)s(cate)33
b(and)e(remem)m(b)s(er)h(\(hash\))g(commands)f(as)h(they)g(are)g(lo)s
-(ok)m(ed)h(up)e(for)1110 1504 y(execution.)42 b(This)29
-b(option)i(is)g(enabled)f(b)m(y)g(default.)630 1669 y
+(ok)m(ed)h(up)e(for)1110 3039 y(execution.)42 b(This)29
+b(option)i(is)g(enabled)f(b)m(y)g(default.)630 3185 y
Ft(-k)384 b Fu(All)34 b(argumen)m(ts)g(in)f(the)h(form)f(of)g
(assignmen)m(t)h(statemen)m(ts)i(are)d(placed)h(in)1110
-1778 y(the)k(en)m(vironmen)m(t)g(for)g(a)g(command,)h(not)f(just)f
-(those)i(that)f(precede)g(the)1110 1888 y(command)30
-b(name.)630 2052 y Ft(-m)384 b Fu(Job)28 b(con)m(trol)h(is)f(enabled)g
+3294 y(the)k(en)m(vironmen)m(t)g(for)g(a)g(command,)h(not)f(just)f
+(those)i(that)f(precede)g(the)1110 3404 y(command)30
+b(name.)630 3550 y Ft(-m)384 b Fu(Job)28 b(con)m(trol)h(is)f(enabled)g
(\(see)h(Chapter)f(7)g([Job)g(Con)m(trol],)i(page)f(125\).)41
-b(All)1110 2162 y(pro)s(cesses)27 b(run)f(in)i(a)g(separate)g(pro)s
+b(All)1110 3660 y(pro)s(cesses)27 b(run)f(in)i(a)g(separate)g(pro)s
(cess)f(group.)40 b(When)27 b(a)h(bac)m(kground)f(job)1110
-2271 y(completes,)32 b(the)f(shell)f(prin)m(ts)g(a)h(line)f(con)m
-(taining)i(its)f(exit)g(status.)630 2436 y Ft(-n)384
+3769 y(completes,)32 b(the)f(shell)f(prin)m(ts)g(a)h(line)f(con)m
+(taining)i(its)f(exit)g(status.)630 3915 y Ft(-n)384
b Fu(Read)38 b(commands)f(but)f(do)i(not)f(execute)i(them.)62
-b(This)37 b(ma)m(y)h(b)s(e)f(used)f(to)1110 2545 y(c)m(hec)m(k)d(a)e
+b(This)37 b(ma)m(y)h(b)s(e)f(used)f(to)1110 4025 y(c)m(hec)m(k)d(a)e
(script)g(for)g(syn)m(tax)h(errors.)42 b(This)30 b(option)i(is)f
-(ignored)g(b)m(y)g(in)m(terac-)1110 2655 y(tiv)m(e)h(shells.)630
-2819 y Ft(-o)e Fj(option-name)1110 2929 y Fu(Set)44 b(the)h(option)f
+(ignored)g(b)m(y)g(in)m(terac-)1110 4134 y(tiv)m(e)h(shells.)630
+4281 y Ft(-o)e Fj(option-name)1110 4390 y Fu(Set)44 b(the)h(option)f
(corresp)s(onding)f(to)i Fr(option-name)p Fu(.)83 b(If)44
-b Ft(-o)f Fu(is)h(supplied)1110 3039 y(with)29 b(no)h
+b Ft(-o)f Fu(is)h(supplied)1110 4500 y(with)29 b(no)h
Fr(option-name)p Fu(,)h Ft(set)e Fu(prin)m(ts)g(the)g(curren)m(t)h
-(shell)g(options)g(settings.)1110 3148 y(If)37 b Ft(+o)g
+(shell)g(options)g(settings.)1110 4609 y(If)37 b Ft(+o)g
Fu(is)h(supplied)e(with)h(no)h Fr(option-name)p Fu(,)i
Ft(set)d Fu(prin)m(ts)g(a)h(series)g(of)g Ft(set)1110
-3258 y Fu(commands)31 b(to)i(recreate)g(the)f(curren)m(t)g(option)g
-(settings)h(on)f(the)g(standard)1110 3367 y(output.)40
-b(V)-8 b(alid)32 b(option)f(names)f(are:)1110 3532 y
-Ft(allexport)1590 3641 y Fu(Same)g(as)h Ft(-a)p Fu(.)1110
-3806 y Ft(braceexpand)1590 3915 y Fu(Same)f(as)h Ft(-B)p
-Fu(.)1110 4080 y Ft(emacs)240 b Fu(Use)25 b(an)f Ft(emacs)p
-Fu(-st)m(yle)h(line)f(editing)h(in)m(terface)h(\(see)g(Chapter)e(8)1590
-4189 y([Command)33 b(Line)g(Editing],)h(page)h(130\).)51
-b(This)32 b(also)i(a\013ects)1590 4299 y(the)d(editing)g(in)m(terface)h
-(used)d(for)h Ft(read)f(-e)p Fu(.)1110 4463 y Ft(errexit)144
-b Fu(Same)30 b(as)h Ft(-e)p Fu(.)1110 4628 y Ft(errtrace)96
-b Fu(Same)30 b(as)h Ft(-E)p Fu(.)1110 4792 y Ft(functrace)1590
-4902 y Fu(Same)f(as)h Ft(-T)p Fu(.)1110 5066 y Ft(hashall)144
-b Fu(Same)30 b(as)h Ft(-h)p Fu(.)1110 5230 y Ft(histexpand)1590
-5340 y Fu(Same)f(as)h Ft(-H)p Fu(.)p eop end
+4719 y Fu(commands)31 b(to)i(recreate)g(the)f(curren)m(t)g(option)g
+(settings)h(on)f(the)g(standard)1110 4829 y(output.)40
+b(V)-8 b(alid)32 b(option)f(names)f(are:)1110 4975 y
+Ft(allexport)1590 5084 y Fu(Same)g(as)h Ft(-a)p Fu(.)1110
+5230 y Ft(braceexpand)1590 5340 y Fu(Same)f(as)h Ft(-B)p
+Fu(.)p eop end
%%Page: 76 82
TeXDict begin 76 81 bop 150 -116 a Fu(Chapter)30 b(4:)41
b(Shell)30 b(Builtin)h(Commands)2069 b(76)1110 299 y
-Ft(history)144 b Fu(Enable)39 b(command)g(history)-8
-b(,)42 b(as)d(describ)s(ed)f(in)h(Section)h(9.1)1590
-408 y([Bash)d(History)g(F)-8 b(acilities],)41 b(page)c(168.)60
-b(This)36 b(option)h(is)f(on)1590 518 y(b)m(y)30 b(default)h(in)f(in)m
-(teractiv)m(e)j(shells.)1110 676 y Ft(ignoreeof)1590
-786 y Fu(An)d(in)m(teractiv)m(e)j(shell)e(will)g(not)f(exit)h(up)s(on)e
-(reading)i(EOF.)1110 944 y Ft(keyword)144 b Fu(Same)30
-b(as)h Ft(-k)p Fu(.)1110 1103 y Ft(monitor)144 b Fu(Same)30
-b(as)h Ft(-m)p Fu(.)1110 1261 y Ft(noclobber)1590 1370
-y Fu(Same)f(as)h Ft(-C)p Fu(.)1110 1529 y Ft(noexec)192
-b Fu(Same)30 b(as)h Ft(-n)p Fu(.)1110 1687 y Ft(noglob)192
-b Fu(Same)30 b(as)h Ft(-f)p Fu(.)1110 1845 y Ft(nolog)240
-b Fu(Curren)m(tly)30 b(ignored.)1110 2004 y Ft(notify)192
-b Fu(Same)30 b(as)h Ft(-b)p Fu(.)1110 2162 y Ft(nounset)144
-b Fu(Same)30 b(as)h Ft(-u)p Fu(.)1110 2320 y Ft(onecmd)192
-b Fu(Same)30 b(as)h Ft(-t)p Fu(.)1110 2478 y Ft(physical)96
-b Fu(Same)30 b(as)h Ft(-P)p Fu(.)1110 2637 y Ft(pipefail)96
-b Fu(If)44 b(set,)k(the)d(return)e(v)-5 b(alue)45 b(of)f(a)h(pip)s
-(eline)e(is)i(the)f(v)-5 b(alue)45 b(of)1590 2746 y(the)33
-b(last)h(\(righ)m(tmost\))h(command)e(to)h(exit)g(with)f(a)g(non-zero)
-1590 2856 y(status,)28 b(or)f(zero)g(if)f(all)i(commands)e(in)g(the)h
-(pip)s(eline)f(exit)i(suc-)1590 2966 y(cessfully)-8 b(.)41
-b(This)30 b(option)h(is)f(disabled)g(b)m(y)h(default.)1110
-3124 y Ft(posix)240 b Fu(Enable)21 b Fm(posix)g Fu(mo)s(de;)j(c)m
-(hange)e(the)g(b)s(eha)m(vior)f(of)h(Bash)f(where)1590
-3233 y(the)36 b(default)f(op)s(eration)h(di\013ers)f(from)g(the)h
-Fm(posix)f Fu(standard)1590 3343 y(to)d(matc)m(h)h(the)e(standard)g
-(\(see)i(Section)f(6.11)h([Bash)f(POSIX)1590 3453 y(Mo)s(de],)j(page)g
+Ft(emacs)240 b Fu(Use)25 b(an)f Ft(emacs)p Fu(-st)m(yle)h(line)f
+(editing)h(in)m(terface)h(\(see)g(Chapter)e(8)1590 408
+y([Command)33 b(Line)g(Editing],)h(page)h(130\).)51 b(This)32
+b(also)i(a\013ects)1590 518 y(the)d(editing)g(in)m(terface)h(used)d
+(for)h Ft(read)f(-e)p Fu(.)1110 675 y Ft(errexit)144
+b Fu(Same)30 b(as)h Ft(-e)p Fu(.)1110 831 y Ft(errtrace)96
+b Fu(Same)30 b(as)h Ft(-E)p Fu(.)1110 988 y Ft(functrace)1590
+1097 y Fu(Same)f(as)h Ft(-T)p Fu(.)1110 1254 y Ft(hashall)144
+b Fu(Same)30 b(as)h Ft(-h)p Fu(.)1110 1410 y Ft(histexpand)1590
+1520 y Fu(Same)f(as)h Ft(-H)p Fu(.)1110 1677 y Ft(history)144
+b Fu(Enable)39 b(command)g(history)-8 b(,)42 b(as)d(describ)s(ed)f(in)h
+(Section)h(9.1)1590 1786 y([Bash)d(History)g(F)-8 b(acilities],)41
+b(page)c(168.)60 b(This)36 b(option)h(is)f(on)1590 1896
+y(b)m(y)30 b(default)h(in)f(in)m(teractiv)m(e)j(shells.)1110
+2052 y Ft(ignoreeof)1590 2162 y Fu(An)d(in)m(teractiv)m(e)j(shell)e
+(will)g(not)f(exit)h(up)s(on)e(reading)i(EOF.)1110 2318
+y Ft(keyword)144 b Fu(Same)30 b(as)h Ft(-k)p Fu(.)1110
+2475 y Ft(monitor)144 b Fu(Same)30 b(as)h Ft(-m)p Fu(.)1110
+2632 y Ft(noclobber)1590 2741 y Fu(Same)f(as)h Ft(-C)p
+Fu(.)1110 2898 y Ft(noexec)192 b Fu(Same)30 b(as)h Ft(-n)p
+Fu(.)1110 3054 y Ft(noglob)192 b Fu(Same)30 b(as)h Ft(-f)p
+Fu(.)1110 3211 y Ft(nolog)240 b Fu(Curren)m(tly)30 b(ignored.)1110
+3367 y Ft(notify)192 b Fu(Same)30 b(as)h Ft(-b)p Fu(.)1110
+3524 y Ft(nounset)144 b Fu(Same)30 b(as)h Ft(-u)p Fu(.)1110
+3680 y Ft(onecmd)192 b Fu(Same)30 b(as)h Ft(-t)p Fu(.)1110
+3837 y Ft(physical)96 b Fu(Same)30 b(as)h Ft(-P)p Fu(.)1110
+3994 y Ft(pipefail)96 b Fu(If)44 b(set,)k(the)d(return)e(v)-5
+b(alue)45 b(of)f(a)h(pip)s(eline)e(is)i(the)f(v)-5 b(alue)45
+b(of)1590 4103 y(the)33 b(last)h(\(righ)m(tmost\))h(command)e(to)h
+(exit)g(with)f(a)g(non-zero)1590 4213 y(status,)28 b(or)f(zero)g(if)f
+(all)i(commands)e(in)g(the)h(pip)s(eline)f(exit)i(suc-)1590
+4322 y(cessfully)-8 b(.)41 b(This)30 b(option)h(is)f(disabled)g(b)m(y)h
+(default.)1110 4479 y Ft(posix)240 b Fu(Enable)21 b Fm(posix)g
+Fu(mo)s(de;)j(c)m(hange)e(the)g(b)s(eha)m(vior)f(of)h(Bash)f(where)1590
+4589 y(the)36 b(default)f(op)s(eration)h(di\013ers)f(from)g(the)h
+Fm(posix)f Fu(standard)1590 4698 y(to)d(matc)m(h)h(the)e(standard)g
+(\(see)i(Section)f(6.11)h([Bash)f(POSIX)1590 4808 y(Mo)s(de],)j(page)g
(116\).)53 b(This)33 b(is)g(in)m(tended)h(to)h(mak)m(e)f(Bash)g(b)s(e-)
-1590 3562 y(ha)m(v)m(e)e(as)e(a)h(strict)g(sup)s(erset)e(of)i(that)g
-(standard.)1110 3720 y Ft(privileged)1590 3830 y Fu(Same)f(as)h
-Ft(-p)p Fu(.)1110 3988 y Ft(verbose)144 b Fu(Same)30
-b(as)h Ft(-v)p Fu(.)1110 4147 y Ft(vi)384 b Fu(Use)36
-b(a)g Ft(vi)p Fu(-st)m(yle)g(line)g(editing)g(in)m(terface.)58
-b(This)35 b(also)h(a\013ects)1590 4256 y(the)31 b(editing)g(in)m
-(terface)h(used)d(for)h Ft(read)f(-e)p Fu(.)1110 4415
-y Ft(xtrace)192 b Fu(Same)30 b(as)h Ft(-x)p Fu(.)630
-4573 y Ft(-p)384 b Fu(T)-8 b(urn)33 b(on)h(privileged)h(mo)s(de.)51
-b(In)34 b(this)g(mo)s(de,)h(the)f Ft($BASH_ENV)e Fu(and)h
-Ft($ENV)1110 4682 y Fu(\014les)23 b(are)h(not)f(pro)s(cessed,)h(shell)g
-(functions)e(are)i(not)f(inherited)g(from)f(the)i(en-)1110
-4792 y(vironmen)m(t,)h(and)e(the)g Ft(SHELLOPTS)p Fu(,)f
+1590 4917 y(ha)m(v)m(e)e(as)e(a)h(strict)g(sup)s(erset)e(of)i(that)g
+(standard.)1110 5074 y Ft(privileged)1590 5183 y Fu(Same)f(as)h
+Ft(-p)p Fu(.)1110 5340 y Ft(verbose)144 b Fu(Same)30
+b(as)h Ft(-v)p Fu(.)p eop end
+%%Page: 77 83
+TeXDict begin 77 82 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(77)1110 299 y
+Ft(vi)384 b Fu(Use)36 b(a)g Ft(vi)p Fu(-st)m(yle)g(line)g(editing)g(in)
+m(terface.)58 b(This)35 b(also)h(a\013ects)1590 408 y(the)31
+b(editing)g(in)m(terface)h(used)d(for)h Ft(read)f(-e)p
+Fu(.)1110 564 y Ft(xtrace)192 b Fu(Same)30 b(as)h Ft(-x)p
+Fu(.)630 719 y Ft(-p)384 b Fu(T)-8 b(urn)33 b(on)h(privileged)h(mo)s
+(de.)51 b(In)34 b(this)g(mo)s(de,)h(the)f Ft($BASH_ENV)e
+Fu(and)h Ft($ENV)1110 829 y Fu(\014les)23 b(are)h(not)f(pro)s(cessed,)h
+(shell)g(functions)e(are)i(not)f(inherited)g(from)f(the)i(en-)1110
+938 y(vironmen)m(t,)h(and)e(the)g Ft(SHELLOPTS)p Fu(,)f
Ft(BASHOPTS)p Fu(,)h Ft(CDPATH)e Fu(and)i Ft(GLOBIGNORE)1110
-4902 y Fu(v)-5 b(ariables,)23 b(if)e(they)g(app)s(ear)f(in)g(the)h(en)m
+1048 y Fu(v)-5 b(ariables,)23 b(if)e(they)g(app)s(ear)f(in)g(the)h(en)m
(vironmen)m(t,)i(are)e(ignored.)38 b(If)20 b(the)h(shell)1110
-5011 y(is)37 b(started)h(with)f(the)g(e\013ectiv)m(e)j(user)d
+1157 y(is)37 b(started)h(with)f(the)g(e\013ectiv)m(e)j(user)d
(\(group\))g(id)g(not)g(equal)h(to)g(the)f(real)1110
-5121 y(user)h(\(group\))h(id,)i(and)d(the)h Ft(-p)f Fu(option)i(is)e
-(not)i(supplied,)f(these)h(actions)1110 5230 y(are)32
+1267 y(user)h(\(group\))h(id,)i(and)d(the)h Ft(-p)f Fu(option)i(is)e
+(not)i(supplied,)f(these)h(actions)1110 1377 y(are)32
b(tak)m(en)i(and)d(the)h(e\013ectiv)m(e)j(user)c(id)h(is)g(set)h(to)f
-(the)h(real)f(user)g(id.)45 b(If)32 b(the)1110 5340 y
+(the)h(real)f(user)g(id.)45 b(If)32 b(the)1110 1486 y
Ft(-p)i Fu(option)h(is)g(supplied)f(at)h(startup,)h(the)f(e\013ectiv)m
-(e)i(user)d(id)g(is)h(not)g(reset.)p eop end
-%%Page: 77 83
-TeXDict begin 77 82 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(77)1110 299 y(T)-8
-b(urning)35 b(this)i(option)g(o\013)g(causes)g(the)g(e\013ectiv)m(e)i
-(user)d(and)g(group)g(ids)g(to)1110 408 y(b)s(e)30 b(set)h(to)g(the)f
-(real)h(user)f(and)g(group)g(ids.)630 564 y Ft(-r)384
-b Fu(Enable)51 b(restricted)h(shell)g(mo)s(de)f(\(see)h(Section)g(6.10)
-h([The)e(Restricted)1110 673 y(Shell],)42 b(page)e(115\).)69
+(e)i(user)d(id)g(is)h(not)g(reset.)1110 1596 y(T)-8 b(urning)35
+b(this)i(option)g(o\013)g(causes)g(the)g(e\013ectiv)m(e)i(user)d(and)g
+(group)g(ids)g(to)1110 1705 y(b)s(e)30 b(set)h(to)g(the)f(real)h(user)f
+(and)g(group)g(ids.)630 1861 y Ft(-r)384 b Fu(Enable)51
+b(restricted)h(shell)g(mo)s(de)f(\(see)h(Section)g(6.10)h([The)e
+(Restricted)1110 1970 y(Shell],)42 b(page)e(115\).)69
b(This)39 b(option)g(cannot)h(b)s(e)f(unset)g(once)h(it)g(has)f(b)s
-(een)1110 783 y(set.)630 938 y Ft(-t)384 b Fu(Exit)31
+(een)1110 2080 y(set.)630 2235 y Ft(-t)384 b Fu(Exit)31
b(after)g(reading)f(and)g(executing)h(one)g(command.)630
-1093 y Ft(-u)384 b Fu(T)-8 b(reat)25 b(unset)e(v)-5 b(ariables)25
+2390 y Ft(-u)384 b Fu(T)-8 b(reat)25 b(unset)e(v)-5 b(ariables)25
b(and)e(parameters)h(other)h(than)e(the)h(sp)s(ecial)h(param-)1110
-1203 y(eters)32 b(`)p Ft(@)p Fu(')f(or)h(`)p Ft(*)p Fu(',)g(or)f(arra)m
+2500 y(eters)32 b(`)p Ft(@)p Fu(')f(or)h(`)p Ft(*)p Fu(',)g(or)f(arra)m
(y)h(v)-5 b(ariables)32 b(subscripted)e(with)h(`)p Ft(@)p
-Fu(')g(or)h(`)p Ft(*)p Fu(',)f(as)h(an)1110 1313 y(error)24
+Fu(')g(or)h(`)p Ft(*)p Fu(',)f(as)h(an)1110 2609 y(error)24
b(when)g(p)s(erforming)g(parameter)h(expansion.)39 b(An)24
-b(error)h(message)h(will)1110 1422 y(b)s(e)37 b(written)h(to)h(the)f
+b(error)h(message)h(will)1110 2719 y(b)s(e)37 b(written)h(to)h(the)f
(standard)f(error,)i(and)f(a)g(non-in)m(teractiv)m(e)j(shell)d(will)
-1110 1532 y(exit.)630 1687 y Ft(-v)384 b Fu(Prin)m(t)30
+1110 2829 y(exit.)630 2984 y Ft(-v)384 b Fu(Prin)m(t)30
b(shell)h(input)e(lines)i(to)g(standard)f(error)g(as)g(they)h(are)g
-(read.)630 1842 y Ft(-x)384 b Fu(Prin)m(t)21 b(a)h(trace)h(of)f(simple)
+(read.)630 3139 y Ft(-x)384 b Fu(Prin)m(t)21 b(a)h(trace)h(of)f(simple)
f(commands,)i Ft(for)e Fu(commands,)i Ft(case)d Fu(commands,)1110
-1952 y Ft(select)41 b Fu(commands,)46 b(and)c(arithmetic)i
-Ft(for)e Fu(commands)h(and)f(their)h(ar-)1110 2061 y(gumen)m(ts)37
+3249 y Ft(select)41 b Fu(commands,)46 b(and)c(arithmetic)i
+Ft(for)e Fu(commands)h(and)f(their)h(ar-)1110 3358 y(gumen)m(ts)37
b(or)f(asso)s(ciated)i(w)m(ord)f(lists)g(to)g(the)g(standard)e(error)i
-(after)g(they)1110 2171 y(are)h(expanded)e(and)h(b)s(efore)g(they)g
+(after)g(they)1110 3468 y(are)h(expanded)e(and)h(b)s(efore)g(they)g
(are)h(executed.)62 b(The)37 b(shell)g(prin)m(ts)g(the)1110
-2281 y(expanded)j(v)-5 b(alue)42 b(of)f(the)g Ft(PS4)f
+3577 y(expanded)j(v)-5 b(alue)42 b(of)f(the)g Ft(PS4)f
Fu(v)-5 b(ariable)42 b(b)s(efore)f(the)g(command)g(and)g(its)1110
-2390 y(expanded)30 b(argumen)m(ts.)630 2545 y Ft(-B)384
+3687 y(expanded)30 b(argumen)m(ts.)630 3842 y Ft(-B)384
b Fu(The)41 b(shell)g(will)g(p)s(erform)f(brace)h(expansion)g(\(see)h
-(Section)g(3.5.1)g([Brace)1110 2655 y(Expansion],)30
+(Section)g(3.5.1)g([Brace)1110 3952 y(Expansion],)30
b(page)h(25\).)42 b(This)30 b(option)h(is)f(on)g(b)m(y)h(default.)630
-2810 y Ft(-C)384 b Fu(Prev)m(en)m(t)25 b(output)e(redirection)h(using)f
+4107 y Ft(-C)384 b Fu(Prev)m(en)m(t)25 b(output)e(redirection)h(using)f
(`)p Ft(>)p Fu(',)i(`)p Ft(>&)p Fu(',)g(and)e(`)p Ft(<>)p
-Fu(')g(from)h(o)m(v)m(erwriting)1110 2920 y(existing)30
+Fu(')g(from)h(o)m(v)m(erwriting)1110 4217 y(existing)30
b(\014les.)40 b(Using)30 b(the)f(redirection)h(op)s(erator)f(`)p
Ft(>|)p Fu(')h(instead)f(of)g(`)p Ft(>)p Fu(')h(will)1110
-3029 y(o)m(v)m(erride)h(this)g(and)f(force)g(the)h(creation)h(of)e(an)h
-(output)f(\014le.)630 3185 y Ft(-E)384 b Fu(If)39 b(set,)j(an)m(y)e
+4326 y(o)m(v)m(erride)h(this)g(and)f(force)g(the)h(creation)h(of)e(an)h
+(output)f(\014le.)630 4482 y Ft(-E)384 b Fu(If)39 b(set,)j(an)m(y)e
(trap)f(on)g Ft(ERR)g Fu(is)g(inherited)g(b)m(y)g(shell)h(functions,)h
-(command)1110 3294 y(substitutions,)35 b(and)e(commands)g(executed)i
-(in)f(a)g(subshell)f(en)m(vironmen)m(t.)1110 3404 y(The)d
+(command)1110 4591 y(substitutions,)35 b(and)e(commands)g(executed)i
+(in)f(a)g(subshell)f(en)m(vironmen)m(t.)1110 4701 y(The)d
Ft(ERR)f Fu(trap)i(is)f(normally)h(not)f(inherited)g(in)g(suc)m(h)g
-(cases.)630 3559 y Ft(-H)384 b Fu(Enable)38 b(`)p Ft(!)p
+(cases.)630 4856 y Ft(-H)384 b Fu(Enable)38 b(`)p Ft(!)p
Fu(')h(st)m(yle)h(history)e(substitution)g(\(see)h(Section)h(9.3)f
-([History)g(In-)1110 3669 y(teraction],)g(page)d(171\).)57
+([History)g(In-)1110 4966 y(teraction],)g(page)d(171\).)57
b(This)34 b(option)i(is)f(on)g(b)m(y)h(default)f(for)g(in)m(teractiv)m
-(e)1110 3778 y(shells.)630 3934 y Ft(-P)384 b Fu(If)36
+(e)1110 5075 y(shells.)630 5230 y Ft(-P)384 b Fu(If)36
b(set,)j(Bash)d(do)s(es)g(not)h(resolv)m(e)h(sym)m(b)s(olic)f(links)f
-(when)f(executing)j(com-)1110 4043 y(mands)46 b(suc)m(h)h(as)g
+(when)f(executing)j(com-)1110 5340 y(mands)46 b(suc)m(h)h(as)g
Ft(cd)g Fu(whic)m(h)f(c)m(hange)i(the)g(curren)m(t)f(directory)-8
-b(.)91 b(It)47 b(uses)1110 4153 y(the)35 b(ph)m(ysical)f(directory)h
-(structure)f(instead.)53 b(By)35 b(default,)g(Bash)g(follo)m(ws)1110
-4262 y(the)g(logical)i(c)m(hain)e(of)g(directories)h(when)d(p)s
-(erforming)h(commands)g(whic)m(h)1110 4372 y(c)m(hange)e(the)e(curren)m
-(t)g(directory)-8 b(.)1110 4504 y(F)g(or)42 b(example,)i(if)d
-Ft(/usr/sys)e Fu(is)i(a)g(sym)m(b)s(olic)g(link)g(to)h
-Ft(/usr/local/sys)1110 4614 y Fu(then:)1350 4746 y Ft($)47
-b(cd)h(/usr/sys;)d(echo)i($PWD)1350 4856 y(/usr/sys)1350
-4966 y($)g(cd)h(..;)f(pwd)1350 5075 y(/usr)1110 5208
-y Fu(If)30 b Ft(set)f(-P)h Fu(is)h(on,)f(then:)1350 5340
-y Ft($)47 b(cd)h(/usr/sys;)d(echo)i($PWD)p eop end
+b(.)91 b(It)47 b(uses)p eop end
%%Page: 78 84
TeXDict begin 78 83 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(78)1350 299 y
-Ft(/usr/local/sys)1350 408 y($)47 b(cd)h(..;)f(pwd)1350
-518 y(/usr/local)630 672 y(-T)384 b Fu(If)31 b(set,)j(an)m(y)e(traps)g
-(on)f Ft(DEBUG)g Fu(and)g Ft(RETURN)g Fu(are)h(inherited)g(b)m(y)f
-(shell)i(func-)1110 782 y(tions,)40 b(command)d(substitutions,)h(and)f
-(commands)g(executed)h(in)f(a)h(sub-)1110 891 y(shell)33
+b(Shell)30 b(Builtin)h(Commands)2069 b(78)1110 299 y(the)35
+b(ph)m(ysical)f(directory)h(structure)f(instead.)53 b(By)35
+b(default,)g(Bash)g(follo)m(ws)1110 408 y(the)g(logical)i(c)m(hain)e
+(of)g(directories)h(when)d(p)s(erforming)h(commands)g(whic)m(h)1110
+518 y(c)m(hange)e(the)e(curren)m(t)g(directory)-8 b(.)1110
+655 y(F)g(or)42 b(example,)i(if)d Ft(/usr/sys)e Fu(is)i(a)g(sym)m(b)s
+(olic)g(link)g(to)h Ft(/usr/local/sys)1110 765 y Fu(then:)1350
+902 y Ft($)47 b(cd)h(/usr/sys;)d(echo)i($PWD)1350 1011
+y(/usr/sys)1350 1121 y($)g(cd)h(..;)f(pwd)1350 1231 y(/usr)1110
+1368 y Fu(If)30 b Ft(set)f(-P)h Fu(is)h(on,)f(then:)1350
+1505 y Ft($)47 b(cd)h(/usr/sys;)d(echo)i($PWD)1350 1614
+y(/usr/local/sys)1350 1724 y($)g(cd)h(..;)f(pwd)1350
+1834 y(/usr/local)630 1998 y(-T)384 b Fu(If)31 b(set,)j(an)m(y)e(traps)
+g(on)f Ft(DEBUG)g Fu(and)g Ft(RETURN)g Fu(are)h(inherited)g(b)m(y)f
+(shell)i(func-)1110 2108 y(tions,)40 b(command)d(substitutions,)h(and)f
+(commands)g(executed)h(in)f(a)h(sub-)1110 2217 y(shell)33
b(en)m(vironmen)m(t.)49 b(The)32 b Ft(DEBUG)g Fu(and)g
-Ft(RETURN)f Fu(traps)h(are)i(normally)f(not)1110 1001
-y(inherited)d(in)g(suc)m(h)g(cases.)630 1155 y Ft(--)384
+Ft(RETURN)f Fu(traps)h(are)i(normally)f(not)1110 2327
+y(inherited)d(in)g(suc)m(h)g(cases.)630 2492 y Ft(--)384
b Fu(If)24 b(no)h(argumen)m(ts)g(follo)m(w)h(this)e(option,)j(unset)d
-(the)h(p)s(ositional)g(parameters.)1110 1265 y(Otherwise,)f(the)f(p)s
+(the)h(p)s(ositional)g(parameters.)1110 2601 y(Otherwise,)f(the)f(p)s
(ositional)h(parameters)f(are)g(set)g(to)h(the)e Fr(argumen)m(ts)p
-Fu(,)j(ev)m(en)1110 1374 y(if)30 b(some)h(of)g(them)f(b)s(egin)g(with)g
-(a)h(`)p Ft(-)p Fu('.)630 1529 y Ft(-)432 b Fu(Signal)37
+Fu(,)j(ev)m(en)1110 2711 y(if)30 b(some)h(of)g(them)f(b)s(egin)g(with)g
+(a)h(`)p Ft(-)p Fu('.)630 2875 y Ft(-)432 b Fu(Signal)37
b(the)h(end)e(of)h(options,)i(and)e(assign)g(all)h(remaining)f
-Fr(argumen)m(ts)k Fu(to)1110 1638 y(the)35 b(p)s(ositional)h
+Fr(argumen)m(ts)k Fu(to)1110 2985 y(the)35 b(p)s(ositional)h
(parameters.)56 b(The)35 b Ft(-x)f Fu(and)h Ft(-v)f Fu(options)i(are)f
-(turned)f(o\013.)1110 1748 y(If)40 b(there)g(are)h(no)f(argumen)m(ts,)j
+(turned)f(o\013.)1110 3095 y(If)40 b(there)g(are)h(no)f(argumen)m(ts,)j
(the)e(p)s(ositional)g(parameters)g(remain)f(un-)1110
-1857 y(c)m(hanged.)630 2012 y(Using)27 b(`)p Ft(+)p Fu(')h(rather)f
+3204 y(c)m(hanged.)630 3369 y(Using)27 b(`)p Ft(+)p Fu(')h(rather)f
(than)g(`)p Ft(-)p Fu(')g(causes)h(these)f(options)h(to)g(b)s(e)e
-(turned)g(o\013.)40 b(The)27 b(options)h(can)630 2121
+(turned)g(o\013.)40 b(The)27 b(options)h(can)630 3478
y(also)36 b(b)s(e)f(used)f(up)s(on)g(in)m(v)m(o)s(cation)j(of)e(the)g
(shell.)56 b(The)34 b(curren)m(t)h(set)h(of)f(options)h(ma)m(y)g(b)s(e)
-630 2231 y(found)29 b(in)h Ft($-)p Fu(.)630 2363 y(The)43
+630 3588 y(found)29 b(in)h Ft($-)p Fu(.)630 3725 y(The)43
b(remaining)h(N)f Fr(argumen)m(ts)48 b Fu(are)c(p)s(ositional)g
-(parameters)g(and)f(are)h(assigned,)j(in)630 2472 y(order,)30
+(parameters)g(and)f(are)h(assigned,)j(in)630 3835 y(order,)30
b(to)h Ft($1)p Fu(,)f Ft($2)p Fu(,)36 b(.)22 b(.)g(.)42
b Ft($N)p Fu(.)e(The)30 b(sp)s(ecial)h(parameter)g Ft(#)f
-Fu(is)g(set)h(to)g(N.)630 2604 y(The)f(return)f(status)i(is)f(alw)m(a)m
+Fu(is)g(set)h(to)g(N.)630 3972 y(The)f(return)f(status)i(is)f(alw)m(a)m
(ys)i(zero)f(unless)f(an)g(in)m(v)-5 b(alid)31 b(option)g(is)f
-(supplied.)150 2798 y Fk(4.3.2)63 b(The)41 b(Shopt)h(Builtin)150
-2945 y Fu(This)30 b(builtin)g(allo)m(ws)h(y)m(ou)g(to)g(c)m(hange)h
+(supplied.)150 4176 y Fk(4.3.2)63 b(The)41 b(Shopt)h(Builtin)150
+4323 y Fu(This)30 b(builtin)g(allo)m(ws)h(y)m(ou)g(to)g(c)m(hange)h
(additional)f(optional)g(shell)g(b)s(eha)m(vior.)150
-3100 y Ft(shopt)870 3231 y(shopt)46 b([-pqsu])g([-o])h([)p
-Fj(optname)e Ft(...])630 3363 y Fu(T)-8 b(oggle)37 b(the)e(v)-5
+4490 y Ft(shopt)870 4627 y(shopt)46 b([-pqsu])g([-o])h([)p
+Fj(optname)e Ft(...])630 4765 y Fu(T)-8 b(oggle)37 b(the)e(v)-5
b(alues)35 b(of)g(settings)h(con)m(trolling)g(optional)g(shell)f(b)s
-(eha)m(vior.)55 b(The)34 b(settings)630 3473 y(can)24
+(eha)m(vior.)55 b(The)34 b(settings)630 4874 y(can)24
b(b)s(e)g(either)h(those)f(listed)h(b)s(elo)m(w,)h(or,)f(if)g(the)f
Ft(-o)f Fu(option)i(is)f(used,)h(those)g(a)m(v)-5 b(ailable)26
-b(with)630 3583 y(the)k Ft(-o)f Fu(option)i(to)f(the)g
+b(with)630 4984 y(the)k Ft(-o)f Fu(option)i(to)f(the)g
Ft(set)f Fu(builtin)h(command)f(\(see)i(Section)g(4.3.1)g([The)f(Set)g
-(Builtin],)630 3692 y(page)h(74\).)630 3824 y(With)37
+(Builtin],)630 5093 y(page)h(74\).)630 5230 y(With)37
b(no)f(options,)j(or)d(with)g(the)h Ft(-p)f Fu(option,)i(displa)m(y)f
-(a)g(list)g(of)f(all)h(settable)h(options,)630 3934 y(with)30
+(a)g(list)g(of)f(all)h(settable)h(options,)630 5340 y(with)30
b(an)g(indication)h(of)g(whether)e(or)i(not)f(eac)m(h)h(is)g(set;)g(if)
-f(an)m(y)h Fr(optname)5 b Fu(s)30 b(are)h(supplied,)630
-4043 y(the)36 b(output)f(is)g(restricted)h(to)h(those)f(options.)56
+f(an)m(y)h Fr(optname)5 b Fu(s)30 b(are)h(supplied,)p
+eop end
+%%Page: 79 85
+TeXDict begin 79 84 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(79)630 299 y(the)36
+b(output)f(is)g(restricted)h(to)h(those)f(options.)56
b(The)35 b Ft(-p)g Fu(option)h(displa)m(ys)f(output)g(in)h(a)630
-4153 y(form)30 b(that)h(ma)m(y)g(b)s(e)f(reused)f(as)i(input.)630
-4285 y(Other)f(options)h(ha)m(v)m(e)g(the)g(follo)m(wing)h(meanings:)
-630 4439 y Ft(-s)384 b Fu(Enable)30 b(\(set\))i(eac)m(h)f
-Fr(optname)p Fu(.)630 4593 y Ft(-u)384 b Fu(Disable)31
-b(\(unset\))g(eac)m(h)h Fr(optname)p Fu(.)630 4747 y
+408 y(form)30 b(that)h(ma)m(y)g(b)s(e)f(reused)f(as)i(input.)630
+543 y(Other)f(options)h(ha)m(v)m(e)g(the)g(follo)m(wing)h(meanings:)630
+704 y Ft(-s)384 b Fu(Enable)30 b(\(set\))i(eac)m(h)f
+Fr(optname)p Fu(.)630 864 y Ft(-u)384 b Fu(Disable)31
+b(\(unset\))g(eac)m(h)h Fr(optname)p Fu(.)630 1024 y
Ft(-q)384 b Fu(Suppresses)28 b(normal)h(output;)h(the)g(return)e
-(status)i(indicates)h(whether)e(the)1110 4857 y Fr(optname)40
+(status)i(indicates)h(whether)e(the)1110 1133 y Fr(optname)40
b Fu(is)35 b(set)g(or)f(unset.)53 b(If)35 b(m)m(ultiple)g
Fr(optname)40 b Fu(argumen)m(ts)35 b(are)g(sup-)1110
-4967 y(plied)28 b(with)f Ft(-q)p Fu(,)h(the)g(return)e(status)i(is)g
+1243 y(plied)28 b(with)f Ft(-q)p Fu(,)h(the)g(return)e(status)i(is)g
(zero)g(if)g(all)h Fr(optname)5 b Fu(s)28 b(are)g(enabled;)1110
-5076 y(non-zero)j(otherwise.)630 5230 y Ft(-o)384 b Fu(Restricts)22
+1353 y(non-zero)j(otherwise.)630 1513 y Ft(-o)384 b Fu(Restricts)22
b(the)f(v)-5 b(alues)22 b(of)f Fr(optname)27 b Fu(to)22
b(b)s(e)e(those)i(de\014ned)e(for)h(the)g Ft(-o)f Fu(option)1110
-5340 y(to)31 b(the)g Ft(set)e Fu(builtin)h(\(see)h(Section)h(4.3.1)g
-([The)e(Set)g(Builtin],)i(page)f(74\).)p eop end
-%%Page: 79 85
-TeXDict begin 79 84 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(79)630 299 y(If)29
-b(either)i Ft(-s)e Fu(or)h Ft(-u)f Fu(is)h(used)f(with)g(no)h
-Fr(optname)35 b Fu(argumen)m(ts,)c Ft(shopt)d Fu(sho)m(ws)h(only)h
-(those)630 408 y(options)h(whic)m(h)f(are)h(set)f(or)h(unset,)f(resp)s
-(ectiv)m(ely)-8 b(.)630 539 y(Unless)30 b(otherwise)h(noted,)g(the)g
+1622 y(to)31 b(the)g Ft(set)e Fu(builtin)h(\(see)h(Section)h(4.3.1)g
+([The)e(Set)g(Builtin],)i(page)f(74\).)630 1783 y(If)e(either)i
+Ft(-s)e Fu(or)h Ft(-u)f Fu(is)h(used)f(with)g(no)h Fr(optname)35
+b Fu(argumen)m(ts,)c Ft(shopt)d Fu(sho)m(ws)h(only)h(those)630
+1892 y(options)h(whic)m(h)f(are)h(set)f(or)h(unset,)f(resp)s(ectiv)m
+(ely)-8 b(.)630 2027 y(Unless)30 b(otherwise)h(noted,)g(the)g
Ft(shopt)d Fu(options)j(are)g(disabled)f(\(o\013)7 b(\))32
-b(b)m(y)e(default.)630 669 y(The)d(return)f(status)i(when)e(listing)j
+b(b)m(y)e(default.)630 2162 y(The)d(return)f(status)i(when)e(listing)j
(options)e(is)h(zero)g(if)f(all)i Fr(optname)5 b Fu(s)27
-b(are)h(enabled,)g(non-)630 779 y(zero)40 b(otherwise.)66
+b(are)h(enabled,)g(non-)630 2271 y(zero)40 b(otherwise.)66
b(When)39 b(setting)h(or)f(unsetting)g(options,)i(the)e(return)f
-(status)h(is)g(zero)630 889 y(unless)30 b(an)g Fr(optname)36
+(status)h(is)g(zero)630 2381 y(unless)30 b(an)g Fr(optname)36
b Fu(is)30 b(not)h(a)g(v)-5 b(alid)30 b(shell)h(option.)630
-1019 y(The)f(list)h(of)f Ft(shopt)f Fu(options)i(is:)630
-1170 y Ft(array_expand_once)1110 1280 y Fu(If)39 b(set,)j(the)d(shell)g
+2516 y(The)f(list)h(of)f Ft(shopt)f Fu(options)i(is:)630
+2676 y Ft(array_expand_once)1110 2786 y Fu(If)39 b(set,)j(the)d(shell)g
(suppresses)e(m)m(ultiple)j(ev)-5 b(aluation)41 b(of)e(asso)s(ciativ)m
-(e)j(and)1110 1390 y(indexed)37 b(arra)m(y)h(subscripts)e(during)g
-(arithmetic)j(expression)e(ev)-5 b(aluation,)1110 1499
+(e)j(and)1110 2895 y(indexed)37 b(arra)m(y)h(subscripts)e(during)g
+(arithmetic)j(expression)e(ev)-5 b(aluation,)1110 3005
y(while)23 b(executing)h(builtins)f(that)g(can)h(p)s(erform)d(v)-5
-b(ariable)24 b(assignmen)m(ts,)i(and)1110 1609 y(while)k(executing)i
+b(ariable)24 b(assignmen)m(ts,)i(and)1110 3114 y(while)k(executing)i
(builtins)e(that)h(p)s(erform)e(arra)m(y)i(dereferencing.)630
-1760 y Ft(assoc_expand_once)1110 1870 y Fu(Deprecated;)h(a)f(synon)m
-(ym)f(for)g Ft(array_expand_once)p Fu(.)630 2021 y Ft(autocd)192
+3275 y Ft(assoc_expand_once)1110 3384 y Fu(Deprecated;)h(a)f(synon)m
+(ym)f(for)g Ft(array_expand_once)p Fu(.)630 3544 y Ft(autocd)192
b Fu(If)27 b(set,)h(a)g(command)f(name)g(that)h(is)f(the)g(name)g(of)h
-(a)f(directory)h(is)f(executed)1110 2131 y(as)j(if)f(it)h(w)m(ere)f
+(a)f(directory)h(is)f(executed)1110 3654 y(as)j(if)f(it)h(w)m(ere)f
(the)h(argumen)m(t)g(to)g(the)f Ft(cd)g Fu(command.)40
-b(This)29 b(option)g(is)h(only)1110 2240 y(used)g(b)m(y)g(in)m
-(teractiv)m(e)j(shells.)630 2392 y Ft(bash_source_fullpath)1110
-2501 y Fu(If)d(set,)h(\014lenames)f(added)g(to)h(the)f
+b(This)29 b(option)g(is)h(only)1110 3764 y(used)g(b)m(y)g(in)m
+(teractiv)m(e)j(shells.)630 3924 y Ft(bash_source_fullpath)1110
+4033 y Fu(If)d(set,)h(\014lenames)f(added)g(to)h(the)f
Ft(BASH_SOURCE)e Fu(arra)m(y)j(v)-5 b(ariable)31 b(are)f(con-)1110
-2611 y(v)m(erted)23 b(to)h(full)e(pathnames)g(\(see)i(Section)f(5.2)h
-([Bash)f(V)-8 b(ariables],)26 b(page)d(87\).)630 2762
-y Ft(cdable_vars)1110 2872 y Fu(If)34 b(this)h(is)g(set,)i(an)e
+4143 y(v)m(erted)23 b(to)h(full)e(pathnames)g(\(see)i(Section)f(5.2)h
+([Bash)f(V)-8 b(ariables],)26 b(page)d(87\).)630 4303
+y Ft(cdable_vars)1110 4413 y Fu(If)34 b(this)h(is)g(set,)i(an)e
(argumen)m(t)g(to)h(the)f Ft(cd)f Fu(builtin)h(command)f(that)i(is)f
-(not)1110 2981 y(a)c(directory)g(is)g(assumed)f(to)h(b)s(e)f(the)h
+(not)1110 4522 y(a)c(directory)g(is)g(assumed)f(to)h(b)s(e)f(the)h
(name)f(of)h(a)g(v)-5 b(ariable)31 b(whose)g(v)-5 b(alue)31
-b(is)1110 3091 y(the)g(directory)f(to)i(c)m(hange)f(to.)630
-3242 y Ft(cdspell)144 b Fu(If)42 b(set,)k(the)c Ft(cd)f
+b(is)1110 4632 y(the)g(directory)f(to)i(c)m(hange)f(to.)630
+4792 y Ft(cdspell)144 b Fu(If)42 b(set,)k(the)c Ft(cd)f
Fu(command)h(attempts)h(to)g(correct)h(minor)d(errors)h(in)g(the)1110
-3352 y(sp)s(elling)27 b(of)f(a)h(directory)g(comp)s(onen)m(t.)40
-b(Minor)27 b(errors)f(include)g(transp)s(osed)1110 3461
+4902 y(sp)s(elling)27 b(of)f(a)h(directory)g(comp)s(onen)m(t.)40
+b(Minor)27 b(errors)f(include)g(transp)s(osed)1110 5011
y(c)m(haracters,)50 b(a)45 b(missing)f(c)m(haracter,)50
b(and)44 b(one)h(extra)g(c)m(haracter.)85 b(If)44 b Ft(cd)1110
-3571 y Fu(corrects)37 b(the)g(directory)g(name,)h(it)f(prin)m(ts)e(the)
-i(corrected)g(\014lename,)i(and)1110 3680 y(the)j(command)g(pro)s
+5121 y Fu(corrects)37 b(the)g(directory)g(name,)h(it)f(prin)m(ts)e(the)
+i(corrected)g(\014lename,)i(and)1110 5230 y(the)j(command)g(pro)s
(ceeds.)76 b(This)41 b(option)i(is)f(only)h(used)e(b)m(y)h(in)m
-(teractiv)m(e)1110 3790 y(shells.)630 3941 y Ft(checkhash)1110
-4051 y Fu(If)29 b(this)h(is)g(set,)g(Bash)g(c)m(hec)m(ks)h(that)g(a)f
-(command)f(found)g(in)g(the)h(hash)f(table)1110 4161
-y(exists)k(b)s(efore)f(trying)h(to)h(execute)g(it.)48
-b(If)32 b(a)h(hashed)e(command)i(no)f(longer)1110 4270
-y(exists,)f(Bash)g(p)s(erforms)e(a)h(normal)h(path)f(searc)m(h.)630
-4422 y Ft(checkjobs)1110 4531 y Fu(If)e(set,)i(Bash)e(lists)h(the)g
-(status)g(of)f(an)m(y)h(stopp)s(ed)f(and)g(running)e(jobs)i(b)s(efore)
-1110 4641 y(exiting)39 b(an)g(in)m(teractiv)m(e)i(shell.)65
-b(If)38 b(an)m(y)g(jobs)g(are)h(running,)g(Bash)f(defers)1110
-4750 y(the)j(exit)h(un)m(til)f(a)g(second)f(exit)i(is)f(attempted)h
-(without)e(an)h(in)m(terv)m(ening)1110 4860 y(command)22
-b(\(see)i(Chapter)e(7)h([Job)g(Con)m(trol],)i(page)f(125\).)39
-b(The)23 b(shell)f(alw)m(a)m(ys)1110 4969 y(p)s(ostp)s(ones)29
-b(exiting)j(if)e(an)m(y)h(jobs)f(are)g(stopp)s(ed.)630
-5121 y Ft(checkwinsize)1110 5230 y Fu(If)23 b(set,)j(Bash)e(c)m(hec)m
-(ks)h(the)f(windo)m(w)f(size)h(after)h(eac)m(h)f(external)h
-(\(non-builtin\))1110 5340 y(command)55 b(and,)60 b(if)55
-b(necessary)-8 b(,)62 b(up)s(dates)54 b(the)h(v)-5 b(alues)55
-b(of)g Ft(LINES)f Fu(and)p eop end
+(teractiv)m(e)1110 5340 y(shells.)p eop end
%%Page: 80 86
TeXDict begin 80 85 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(80)1110 299 y
-Ft(COLUMNS)p Fu(,)36 b(using)g(the)h(\014le)g(descriptor)f(asso)s
-(ciated)i(with)f(stderr)e(if)i(it)g(is)g(a)1110 408 y(terminal.)k(This)
-30 b(option)h(is)f(enabled)g(b)m(y)h(default.)630 612
-y Ft(cmdhist)144 b Fu(If)33 b(set,)j(Bash)e(attempts)h(to)g(sa)m(v)m(e)
-g(all)g(lines)f(of)g(a)h(m)m(ultiple-line)g(command)1110
-722 y(in)c(the)g(same)g(history)g(en)m(try)-8 b(.)42
+b(Shell)30 b(Builtin)h(Commands)2069 b(80)630 299 y Ft(checkhash)1110
+408 y Fu(If)29 b(this)h(is)g(set,)g(Bash)g(c)m(hec)m(ks)h(that)g(a)f
+(command)f(found)g(in)g(the)h(hash)f(table)1110 518 y(exists)k(b)s
+(efore)f(trying)h(to)h(execute)g(it.)48 b(If)32 b(a)h(hashed)e(command)
+i(no)f(longer)1110 628 y(exists,)f(Bash)g(p)s(erforms)e(a)h(normal)h
+(path)f(searc)m(h.)630 774 y Ft(checkjobs)1110 883 y
+Fu(If)e(set,)i(Bash)e(lists)h(the)g(status)g(of)f(an)m(y)h(stopp)s(ed)f
+(and)g(running)e(jobs)i(b)s(efore)1110 993 y(exiting)39
+b(an)g(in)m(teractiv)m(e)i(shell.)65 b(If)38 b(an)m(y)g(jobs)g(are)h
+(running,)g(Bash)f(defers)1110 1103 y(the)j(exit)h(un)m(til)f(a)g
+(second)f(exit)i(is)f(attempted)h(without)e(an)h(in)m(terv)m(ening)1110
+1212 y(command)22 b(\(see)i(Chapter)e(7)h([Job)g(Con)m(trol],)i(page)f
+(125\).)39 b(The)23 b(shell)f(alw)m(a)m(ys)1110 1322
+y(p)s(ostp)s(ones)29 b(exiting)j(if)e(an)m(y)h(jobs)f(are)g(stopp)s
+(ed.)630 1468 y Ft(checkwinsize)1110 1577 y Fu(If)23
+b(set,)j(Bash)e(c)m(hec)m(ks)h(the)f(windo)m(w)f(size)h(after)h(eac)m
+(h)f(external)h(\(non-builtin\))1110 1687 y(command)55
+b(and,)60 b(if)55 b(necessary)-8 b(,)62 b(up)s(dates)54
+b(the)h(v)-5 b(alues)55 b(of)g Ft(LINES)f Fu(and)1110
+1797 y Ft(COLUMNS)p Fu(,)36 b(using)g(the)h(\014le)g(descriptor)f(asso)
+s(ciated)i(with)f(stderr)e(if)i(it)g(is)g(a)1110 1906
+y(terminal.)k(This)30 b(option)h(is)f(enabled)g(b)m(y)h(default.)630
+2052 y Ft(cmdhist)144 b Fu(If)33 b(set,)j(Bash)e(attempts)h(to)g(sa)m
+(v)m(e)g(all)g(lines)f(of)g(a)h(m)m(ultiple-line)g(command)1110
+2162 y(in)c(the)g(same)g(history)g(en)m(try)-8 b(.)42
b(This)30 b(allo)m(ws)i(easy)g(re-editing)g(of)f(m)m(ulti-line)1110
-831 y(commands.)79 b(This)43 b(option)g(is)h(enabled)f(b)m(y)g
-(default,)k(but)c(only)g(has)g(an)1110 941 y(e\013ect)30
+2271 y(commands.)79 b(This)43 b(option)g(is)h(enabled)f(b)m(y)g
+(default,)k(but)c(only)g(has)g(an)1110 2381 y(e\013ect)30
b(if)e(command)g(history)g(is)h(enabled)f(\(see)h(Section)g(9.1)h
-([Bash)e(History)1110 1050 y(F)-8 b(acilities],)34 b(page)d(168\).)630
-1254 y Ft(compat31)630 1363 y(compat32)630 1473 y(compat40)630
-1583 y(compat41)630 1692 y(compat42)630 1802 y(compat43)630
-1911 y(compat44)96 b Fu(These)39 b(con)m(trol)i(asp)s(ects)f(of)f(the)h
+([Bash)e(History)1110 2491 y(F)-8 b(acilities],)34 b(page)d(168\).)630
+2637 y Ft(compat31)630 2746 y(compat32)630 2856 y(compat40)630
+2966 y(compat41)630 3075 y(compat42)630 3185 y(compat43)630
+3294 y(compat44)96 b Fu(These)39 b(con)m(trol)i(asp)s(ects)f(of)f(the)h
(shell's)g(compatibilit)m(y)h(mo)s(de)e(\(see)h(Sec-)1110
-2021 y(tion)31 b(6.12)h([Shell)e(Compatibilit)m(y)i(Mo)s(de],)f(page)g
-(121\).)630 2225 y Ft(complete_fullquote)1110 2334 y
+3404 y(tion)31 b(6.12)h([Shell)e(Compatibilit)m(y)i(Mo)s(de],)f(page)g
+(122\).)630 3550 y Ft(complete_fullquote)1110 3660 y
Fu(If)g(set,)g(Bash)h(quotes)f(all)h(shell)f(metac)m(haracters)i(in)e
-(\014lenames)g(and)g(direc-)1110 2444 y(tory)g(names)f(when)g(p)s
+(\014lenames)g(and)g(direc-)1110 3769 y(tory)g(names)f(when)g(p)s
(erforming)f(completion.)43 b(If)30 b(not)h(set,)g(Bash)g(remo)m(v)m
-(es)1110 2553 y(metac)m(haracters)40 b(suc)m(h)d(as)h(the)g(dollar)g
-(sign)g(from)f(the)h(set)g(of)f(c)m(haracters)1110 2663
+(es)1110 3879 y(metac)m(haracters)40 b(suc)m(h)d(as)h(the)g(dollar)g
+(sign)g(from)f(the)h(set)g(of)f(c)m(haracters)1110 3988
y(that)f(will)g(b)s(e)f(quoted)g(in)g(completed)i(\014lenames)e(when)f
-(these)i(metac)m(har-)1110 2772 y(acters)29 b(app)s(ear)e(in)g(shell)h
+(these)i(metac)m(har-)1110 4098 y(acters)29 b(app)s(ear)e(in)g(shell)h
(v)-5 b(ariable)28 b(references)g(in)f(w)m(ords)g(to)i(b)s(e)e
-(completed.)1110 2882 y(This)k(means)i(that)g(dollar)f(signs)g(in)g(v)
+(completed.)1110 4208 y(This)k(means)i(that)g(dollar)f(signs)g(in)g(v)
-5 b(ariable)33 b(names)g(that)f(expand)g(to)h(di-)1110
-2992 y(rectories)28 b(will)g(not)f(b)s(e)f(quoted;)j(ho)m(w)m(ev)m(er,)
-g(an)m(y)e(dollar)h(signs)f(app)s(earing)f(in)1110 3101
+4317 y(rectories)28 b(will)g(not)f(b)s(e)f(quoted;)j(ho)m(w)m(ev)m(er,)
+g(an)m(y)e(dollar)h(signs)f(app)s(earing)f(in)1110 4427
y(\014lenames)i(will)g(not)g(b)s(e)g(quoted,)g(either.)41
b(This)27 b(is)h(activ)m(e)i(only)e(when)f(Bash)1110
-3211 y(is)39 b(using)f(bac)m(kslashes)i(to)g(quote)g(completed)f
-(\014lenames.)67 b(This)38 b(v)-5 b(ariable)1110 3320
+4536 y(is)39 b(using)f(bac)m(kslashes)i(to)g(quote)g(completed)f
+(\014lenames.)67 b(This)38 b(v)-5 b(ariable)1110 4646
y(is)41 b(set)g(b)m(y)g(default,)j(whic)m(h)c(is)h(the)g(default)g
-(Bash)g(b)s(eha)m(vior)g(in)g(v)m(ersions)1110 3430 y(through)30
-b(4.2.)630 3634 y Ft(direxpand)1110 3743 y Fu(If)k(set,)i(Bash)f
+(Bash)g(b)s(eha)m(vior)g(in)g(v)m(ersions)1110 4756 y(through)30
+b(4.2.)630 4902 y Ft(direxpand)1110 5011 y Fu(If)k(set,)i(Bash)f
(replaces)g(directory)g(names)g(with)f(the)g(results)h(of)f(w)m(ord)g
-(ex-)1110 3853 y(pansion)k(when)g(p)s(erforming)f(\014lename)i
-(completion.)67 b(This)38 b(c)m(hanges)i(the)1110 3962
+(ex-)1110 5121 y(pansion)k(when)g(p)s(erforming)f(\014lename)i
+(completion.)67 b(This)38 b(c)m(hanges)i(the)1110 5230
y(con)m(ten)m(ts)c(of)e(the)h(Readline)f(editing)h(bu\013er.)52
-b(If)33 b(not)i(set,)h(Bash)e(attempts)1110 4072 y(to)d(preserv)m(e)g
-(what)f(the)g(user)g(t)m(yp)s(ed.)630 4275 y Ft(dirspell)96
+b(If)33 b(not)i(set,)h(Bash)e(attempts)1110 5340 y(to)d(preserv)m(e)g
+(what)f(the)g(user)g(t)m(yp)s(ed.)p eop end
+%%Page: 81 87
+TeXDict begin 81 86 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(81)630 299 y Ft(dirspell)96
b Fu(If)26 b(set,)i(Bash)f(attempts)g(sp)s(elling)g(correction)g(on)g
-(directory)g(names)f(during)1110 4385 y(w)m(ord)36 b(completion)h(if)f
+(directory)g(names)f(during)1110 408 y(w)m(ord)36 b(completion)h(if)f
(the)g(directory)g(name)g(initially)h(supplied)e(do)s(es)h(not)1110
-4495 y(exist.)630 4698 y Ft(dotglob)144 b Fu(If)35 b(set,)k(Bash)d
+518 y(exist.)630 682 y Ft(dotglob)144 b Fu(If)35 b(set,)k(Bash)d
(includes)f(\014lenames)h(b)s(eginning)f(with)h(a)g(`)p
-Ft(.)p Fu(')g(in)g(the)g(results)1110 4808 y(of)43 b(\014lename)g
+Ft(.)p Fu(')g(in)g(the)g(results)1110 792 y(of)43 b(\014lename)g
(expansion.)78 b(The)42 b(\014lenames)h Ft(.)f Fu(and)g
-Ft(..)h Fu(m)m(ust)f(alw)m(a)m(ys)j(b)s(e)1110 4917 y(matc)m(hed)31
+Ft(..)h Fu(m)m(ust)f(alw)m(a)m(ys)j(b)s(e)1110 902 y(matc)m(hed)31
b(explicitly)-8 b(,)33 b(ev)m(en)e(if)f Ft(dotglob)f
-Fu(is)h(set.)630 5121 y Ft(execfail)96 b Fu(If)24 b(this)h(is)f(set,)j
+Fu(is)h(set.)630 1066 y Ft(execfail)96 b Fu(If)24 b(this)h(is)f(set,)j
(a)e(non-in)m(teractiv)m(e)i(shell)e(will)f(not)h(exit)h(if)e(it)h
-(cannot)h(execute)1110 5230 y(the)f(\014le)g(sp)s(eci\014ed)f(as)h(an)g
+(cannot)h(execute)1110 1176 y(the)f(\014le)g(sp)s(eci\014ed)f(as)h(an)g
(argumen)m(t)g(to)h(the)f Ft(exec)e Fu(builtin.)39 b(An)24
-b(in)m(teractiv)m(e)1110 5340 y(shell)31 b(do)s(es)f(not)g(exit)i(if)e
-Ft(exec)f Fu(fails.)p eop end
-%%Page: 81 87
-TeXDict begin 81 86 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(81)630 299 y Ft(expand_aliases)
-1110 408 y Fu(If)32 b(set,)h(aliases)g(are)g(expanded)e(as)h(describ)s
-(ed)f(b)s(elo)m(w)h(under)f(Aliases,)i(Sec-)1110 518
-y(tion)i(6.6)h([Aliases],)h(page)e(109.)55 b(This)33
-b(option)i(is)g(enabled)f(b)m(y)h(default)f(for)1110
-628 y(in)m(teractiv)m(e)f(shells.)630 786 y Ft(extdebug)96
-b Fu(If)35 b(set)i(at)f(shell)g(in)m(v)m(o)s(cation,)k(or)c(in)f(a)h
-(shell)h(startup)e(\014le,)i(arrange)g(to)f(ex-)1110
-896 y(ecute)h(the)f(debugger)g(pro\014le)g(b)s(efore)g(the)g(shell)h
-(starts,)h(iden)m(tical)g(to)f(the)1110 1005 y Ft(--debugger)32
-b Fu(option.)56 b(If)35 b(set)h(after)g(in)m(v)m(o)s(cation,)j(b)s(eha)
-m(vior)c(in)m(tended)g(for)1110 1115 y(use)30 b(b)m(y)g(debuggers)g(is)
-h(enabled:)1159 1249 y(1.)61 b(The)37 b Ft(-F)g Fu(option)h(to)g(the)g
-Ft(declare)d Fu(builtin)i(\(see)i(Section)f(4.2)h([Bash)1290
-1358 y(Builtins],)29 b(page)g(61\))g(displa)m(ys)f(the)g(source)h
-(\014le)f(name)g(and)f(line)h(n)m(um-)1290 1468 y(b)s(er)h(corresp)s
-(onding)g(to)i(eac)m(h)g(function)f(name)g(supplied)f(as)i(an)f(argu-)
-1290 1577 y(men)m(t.)1159 1711 y(2.)61 b(If)20 b(the)h(command)g(run)e
-(b)m(y)i(the)f Ft(DEBUG)g Fu(trap)g(returns)g(a)h(non-zero)g(v)-5
-b(alue,)1290 1821 y(the)31 b(next)f(command)g(is)h(skipp)s(ed)e(and)g
-(not)i(executed.)1159 1955 y(3.)61 b(If)37 b(the)g(command)g(run)f(b)m
+b(in)m(teractiv)m(e)1110 1285 y(shell)31 b(do)s(es)f(not)g(exit)i(if)e
+Ft(exec)f Fu(fails.)630 1450 y Ft(expand_aliases)1110
+1559 y Fu(If)j(set,)h(aliases)g(are)g(expanded)e(as)h(describ)s(ed)f(b)
+s(elo)m(w)h(under)f(Aliases,)i(Sec-)1110 1669 y(tion)i(6.6)h
+([Aliases],)h(page)e(109.)55 b(This)33 b(option)i(is)g(enabled)f(b)m(y)
+h(default)f(for)1110 1778 y(in)m(teractiv)m(e)f(shells.)630
+1943 y Ft(extdebug)96 b Fu(If)35 b(set)i(at)f(shell)g(in)m(v)m(o)s
+(cation,)k(or)c(in)f(a)h(shell)h(startup)e(\014le,)i(arrange)g(to)f
+(ex-)1110 2052 y(ecute)h(the)f(debugger)g(pro\014le)g(b)s(efore)g(the)g
+(shell)h(starts,)h(iden)m(tical)g(to)f(the)1110 2162
+y Ft(--debugger)32 b Fu(option.)56 b(If)35 b(set)h(after)g(in)m(v)m(o)s
+(cation,)j(b)s(eha)m(vior)c(in)m(tended)g(for)1110 2271
+y(use)30 b(b)m(y)g(debuggers)g(is)h(enabled:)1159 2408
+y(1.)61 b(The)37 b Ft(-F)g Fu(option)h(to)g(the)g Ft(declare)d
+Fu(builtin)i(\(see)i(Section)f(4.2)h([Bash)1290 2518
+y(Builtins],)29 b(page)g(61\))g(displa)m(ys)f(the)g(source)h(\014le)f
+(name)g(and)f(line)h(n)m(um-)1290 2628 y(b)s(er)h(corresp)s(onding)g
+(to)i(eac)m(h)g(function)f(name)g(supplied)f(as)i(an)f(argu-)1290
+2737 y(men)m(t.)1159 2874 y(2.)61 b(If)20 b(the)h(command)g(run)e(b)m
+(y)i(the)f Ft(DEBUG)g Fu(trap)g(returns)g(a)h(non-zero)g(v)-5
+b(alue,)1290 2984 y(the)31 b(next)f(command)g(is)h(skipp)s(ed)e(and)g
+(not)i(executed.)1159 3121 y(3.)61 b(If)37 b(the)g(command)g(run)f(b)m
(y)i(the)f Ft(DEBUG)f Fu(trap)h(returns)f(a)i(v)-5 b(alue)38
-b(of)f(2,)1290 2064 y(and)c(the)g(shell)h(is)f(executing)i(in)e(a)h
-(subroutine)e(\(a)i(shell)g(function)f(or)1290 2174 y(a)h(shell)g
+b(of)f(2,)1290 3230 y(and)c(the)g(shell)h(is)f(executing)i(in)e(a)h
+(subroutine)e(\(a)i(shell)g(function)f(or)1290 3340 y(a)h(shell)g
(script)f(executed)h(b)m(y)g(the)f Ft(.)h Fu(or)f Ft(source)f
-Fu(builtins\),)i(the)g(shell)1290 2284 y(sim)m(ulates)d(a)g(call)h(to)f
-Ft(return)p Fu(.)1159 2418 y(4.)61 b Ft(BASH_ARGC)34
+Fu(builtins\),)i(the)g(shell)1290 3450 y(sim)m(ulates)d(a)g(call)h(to)f
+Ft(return)p Fu(.)1159 3587 y(4.)61 b Ft(BASH_ARGC)34
b Fu(and)i Ft(BASH_ARGV)e Fu(are)j(up)s(dated)e(as)h(describ)s(ed)g(in)
-g(their)1290 2527 y(descriptions)30 b(\(see)i(Section)f(5.2)g([Bash)g
-(V)-8 b(ariables],)32 b(page)f(87\).)1159 2661 y(5.)61
+g(their)1290 3696 y(descriptions)30 b(\(see)i(Section)f(5.2)g([Bash)g
+(V)-8 b(ariables],)32 b(page)f(87\).)1159 3833 y(5.)61
b(F)-8 b(unction)57 b(tracing)g(is)g(enabled:)93 b(command)56
-b(substitution,)63 b(shell)1290 2771 y(functions,)32
+b(substitution,)63 b(shell)1290 3943 y(functions,)32
b(and)e(subshells)h(in)m(v)m(ok)m(ed)i(with)e Ft(\()f
-Fj(command)e Ft(\))j Fu(inherit)h(the)1290 2880 y Ft(DEBUG)d
-Fu(and)h Ft(RETURN)e Fu(traps.)1159 3014 y(6.)61 b(Error)41
+Fj(command)e Ft(\))j Fu(inherit)h(the)1290 4052 y Ft(DEBUG)d
+Fu(and)h Ft(RETURN)e Fu(traps.)1159 4189 y(6.)61 b(Error)41
b(tracing)i(is)f(enabled:)63 b(command)42 b(substitution,)i(shell)f
-(func-)1290 3124 y(tions,)32 b(and)e(subshells)g(in)m(v)m(ok)m(ed)i
+(func-)1290 4299 y(tions,)32 b(and)e(subshells)g(in)m(v)m(ok)m(ed)i
(with)e Ft(\()g Fj(command)f Ft(\))h Fu(inherit)h(the)g
-Ft(ERR)1290 3233 y Fu(trap.)630 3392 y Ft(extglob)144
+Ft(ERR)1290 4408 y Fu(trap.)630 4573 y Ft(extglob)144
b Fu(If)45 b(set,)50 b(enable)45 b(the)h(extended)f(pattern)g(matc)m
-(hing)i(features)e(describ)s(ed)1110 3501 y(ab)s(o)m(v)m(e)32
+(hing)i(features)e(describ)s(ed)1110 4682 y(ab)s(o)m(v)m(e)32
b(\(see)f(Section)g(3.5.8.1)i([P)m(attern)f(Matc)m(hing],)g(page)f
-(39\).)630 3660 y Ft(extquote)96 b Fu(If)51 b(set,)58
+(39\).)630 4847 y Ft(extquote)96 b Fu(If)51 b(set,)58
b Ft($')p Fj(string)p Ft(')49 b Fu(and)i Ft($")p Fj(string)p
-Ft(")e Fu(quoting)k(is)e(p)s(erformed)f(within)1110 3769
+Ft(")e Fu(quoting)k(is)e(p)s(erformed)f(within)1110 4956
y Ft(${)p Fj(parameter)p Ft(})31 b Fu(expansions)k(enclosed)g(in)g
-(double)f(quotes.)55 b(This)33 b(option)1110 3879 y(is)d(enabled)h(b)m
-(y)f(default.)630 4037 y Ft(failglob)96 b Fu(If)36 b(set,)j(patterns)d
+(double)f(quotes.)55 b(This)33 b(option)1110 5066 y(is)d(enabled)h(b)m
+(y)f(default.)630 5230 y Ft(failglob)96 b Fu(If)36 b(set,)j(patterns)d
(whic)m(h)g(fail)h(to)h(matc)m(h)f(\014lenames)f(during)g(\014lename)g
-(ex-)1110 4147 y(pansion)30 b(result)g(in)g(an)g(expansion)h(error.)630
-4305 y Ft(force_fignore)1110 4415 y Fu(If)43 b(set,)k(the)d(su\016xes)f
-(sp)s(eci\014ed)f(b)m(y)i(the)f Ft(FIGNORE)f Fu(shell)h(v)-5
-b(ariable)44 b(cause)1110 4524 y(w)m(ords)31 b(to)h(b)s(e)f(ignored)h
-(when)f(p)s(erforming)f(w)m(ord)h(completion)i(ev)m(en)f(if)g(the)1110
-4634 y(ignored)37 b(w)m(ords)g(are)g(the)h(only)f(p)s(ossible)g
-(completions.)62 b(See)37 b(Section)h(5.2)1110 4743 y([Bash)24
-b(V)-8 b(ariables],)27 b(page)e(87,)h(for)d(a)h(description)g(of)g
-Ft(FIGNORE)p Fu(.)37 b(This)22 b(option)1110 4853 y(is)30
-b(enabled)h(b)m(y)f(default.)630 5011 y Ft(globasciiranges)1110
-5121 y Fu(If)j(set,)h(range)f(expressions)g(used)f(in)h(pattern)g(matc)
-m(hing)h(brac)m(k)m(et)h(expres-)1110 5230 y(sions)i(\(see)h(Section)g
-(3.5.8.1)i([P)m(attern)e(Matc)m(hing],)j(page)d(39\))h(b)s(eha)m(v)m(e)
-f(as)1110 5340 y(if)c(in)g(the)g(traditional)i(C)e(lo)s(cale)i(when)d
-(p)s(erforming)g(comparisons.)52 b(That)p eop end
+(ex-)1110 5340 y(pansion)30 b(result)g(in)g(an)g(expansion)h(error.)p
+eop end
%%Page: 82 88
TeXDict begin 82 87 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(82)1110 299 y(is,)29
+b(Shell)30 b(Builtin)h(Commands)2069 b(82)630 299 y Ft(force_fignore)
+1110 408 y Fu(If)43 b(set,)k(the)d(su\016xes)f(sp)s(eci\014ed)f(b)m(y)i
+(the)f Ft(FIGNORE)f Fu(shell)h(v)-5 b(ariable)44 b(cause)1110
+518 y(w)m(ords)31 b(to)h(b)s(e)f(ignored)h(when)f(p)s(erforming)f(w)m
+(ord)h(completion)i(ev)m(en)f(if)g(the)1110 628 y(ignored)37
+b(w)m(ords)g(are)g(the)h(only)f(p)s(ossible)g(completions.)62
+b(See)37 b(Section)h(5.2)1110 737 y([Bash)24 b(V)-8 b(ariables],)27
+b(page)e(87,)h(for)d(a)h(description)g(of)g Ft(FIGNORE)p
+Fu(.)37 b(This)22 b(option)1110 847 y(is)30 b(enabled)h(b)m(y)f
+(default.)630 993 y Ft(globasciiranges)1110 1103 y Fu(If)j(set,)h
+(range)f(expressions)g(used)f(in)h(pattern)g(matc)m(hing)h(brac)m(k)m
+(et)h(expres-)1110 1212 y(sions)i(\(see)h(Section)g(3.5.8.1)i([P)m
+(attern)e(Matc)m(hing],)j(page)d(39\))h(b)s(eha)m(v)m(e)f(as)1110
+1322 y(if)c(in)g(the)g(traditional)i(C)e(lo)s(cale)i(when)d(p)s
+(erforming)g(comparisons.)52 b(That)1110 1431 y(is,)29
b(pattern)f(matc)m(hing)h(do)s(es)e(not)h(tak)m(e)i(the)e(curren)m(t)g
-(lo)s(cale's)h(collating)h(se-)1110 408 y(quence)e(in)m(to)i(accoun)m
+(lo)s(cale's)h(collating)h(se-)1110 1541 y(quence)e(in)m(to)i(accoun)m
(t,)g(so)f(`)p Ft(b)p Fu(')f(will)h(not)f(collate)j(b)s(et)m(w)m(een)e
(`)p Ft(A)p Fu(')g(and)e(`)p Ft(B)p Fu(',)j(and)1110
-518 y(upp)s(er-case)g(and)g(lo)m(w)m(er-case)j(ASCI)s(I)28
-b(c)m(haracters)k(will)f(collate)i(together.)630 682
-y Ft(globskipdots)1110 792 y Fu(If)c(set,)h(\014lename)f(expansion)g
+1650 y(upp)s(er-case)g(and)g(lo)m(w)m(er-case)j(ASCI)s(I)28
+b(c)m(haracters)k(will)f(collate)i(together.)630 1797
+y Ft(globskipdots)1110 1906 y Fu(If)c(set,)h(\014lename)f(expansion)g
(will)g(nev)m(er)g(matc)m(h)h(the)f(\014lenames)g Ft(.)g
-Fu(and)f Ft(..)p Fu(,)1110 902 y(ev)m(en)40 b(if)g(the)g(pattern)g(b)s
+Fu(and)f Ft(..)p Fu(,)1110 2016 y(ev)m(en)40 b(if)g(the)g(pattern)g(b)s
(egins)f(with)g(a)i(`)p Ft(.)p Fu('.)68 b(This)39 b(option)i(is)e
-(enabled)h(b)m(y)1110 1011 y(default.)630 1176 y Ft(globstar)96
+(enabled)h(b)m(y)1110 2125 y(default.)630 2271 y Ft(globstar)96
b Fu(If)38 b(set,)j(the)e(pattern)f(`)p Ft(**)p Fu(')h(used)e(in)i(a)f
-(\014lename)h(expansion)f(con)m(text)j(will)1110 1285
+(\014lename)h(expansion)f(con)m(text)j(will)1110 2381
y(matc)m(h)36 b(all)g(\014les)f(and)f(zero)i(or)f(more)g(directories)h
-(and)e(sub)s(directories.)54 b(If)1110 1395 y(the)30
+(and)e(sub)s(directories.)54 b(If)1110 2491 y(the)30
b(pattern)g(is)g(follo)m(w)m(ed)i(b)m(y)d(a)i(`)p Ft(/)p
Fu(',)f(only)g(directories)h(and)f(sub)s(directories)1110
-1504 y(matc)m(h.)630 1669 y Ft(gnu_errfmt)1110 1778 y
+2600 y(matc)m(h.)630 2746 y Ft(gnu_errfmt)1110 2856 y
Fu(If)35 b(set,)j(shell)e(error)g(messages)g(are)h(written)e(in)h(the)g
-(standard)f Fm(gnu)g Fu(error)1110 1888 y(message)c(format.)630
-2052 y Ft(histappend)1110 2162 y Fu(If)c(set,)j(the)e(history)g(list)g
+(standard)f Fm(gnu)g Fu(error)1110 2966 y(message)c(format.)630
+3112 y Ft(histappend)1110 3221 y Fu(If)c(set,)j(the)e(history)g(list)g
(is)g(app)s(ended)e(to)j(the)f(\014le)g(named)f(b)m(y)h(the)g(v)-5
-b(alue)29 b(of)1110 2271 y(the)d Ft(HISTFILE)d Fu(v)-5
+b(alue)29 b(of)1110 3331 y(the)d Ft(HISTFILE)d Fu(v)-5
b(ariable)26 b(when)e(the)h(shell)h(exits,)h(rather)e(than)h(o)m(v)m
-(erwriting)1110 2381 y(the)31 b(\014le.)630 2545 y Ft(histreedit)1110
-2655 y Fu(If)26 b(set,)i(and)e(Readline)h(is)f(b)s(eing)g(used,)h(the)f
+(erwriting)1110 3440 y(the)31 b(\014le.)630 3587 y Ft(histreedit)1110
+3696 y Fu(If)26 b(set,)i(and)e(Readline)h(is)f(b)s(eing)g(used,)h(the)f
(user)g(is)h(giv)m(en)g(the)g(opp)s(ortunit)m(y)1110
-2765 y(to)k(re-edit)g(a)g(failed)g(history)f(substitution.)630
-2929 y Ft(histverify)1110 3039 y Fu(If)35 b(set,)i(and)e(Readline)h(is)
+3806 y(to)k(re-edit)g(a)g(failed)g(history)f(substitution.)630
+3952 y Ft(histverify)1110 4061 y Fu(If)35 b(set,)i(and)e(Readline)h(is)
f(b)s(eing)g(used,)h(the)f(results)g(of)g(history)h(substitu-)1110
-3148 y(tion)h(are)g(not)g(immediately)h(passed)e(to)h(the)g(shell)g
-(parser.)59 b(Instead,)38 b(the)1110 3258 y(resulting)i(line)f(is)h
+4171 y(tion)h(are)g(not)g(immediately)h(passed)e(to)h(the)g(shell)g
+(parser.)59 b(Instead,)38 b(the)1110 4281 y(resulting)i(line)f(is)h
(loaded)g(in)m(to)g(the)g(Readline)g(editing)g(bu\013er,)h(allo)m(wing)
-1110 3367 y(further)29 b(mo)s(di\014cation.)630 3532
-y Ft(hostcomplete)1110 3641 y Fu(If)38 b(set,)j(and)c(Readline)i(is)f
+1110 4390 y(further)29 b(mo)s(di\014cation.)630 4536
+y Ft(hostcomplete)1110 4646 y Fu(If)38 b(set,)j(and)c(Readline)i(is)f
(b)s(eing)g(used,)h(Bash)g(will)f(attempt)h(to)g(p)s(erform)1110
-3751 y(hostname)d(completion)h(when)e(a)h(w)m(ord)f(con)m(taining)i(a)f
-(`)p Ft(@)p Fu(')g(is)g(b)s(eing)f(com-)1110 3861 y(pleted)g(\(see)h
+4756 y(hostname)d(completion)h(when)e(a)h(w)m(ord)f(con)m(taining)i(a)f
+(`)p Ft(@)p Fu(')g(is)g(b)s(eing)f(com-)1110 4865 y(pleted)g(\(see)h
(Section)f(8.4.6)i([Commands)d(F)-8 b(or)36 b(Completion],)g(page)g
-(153\).)1110 3970 y(This)30 b(option)g(is)h(enabled)f(b)m(y)g(default.)
-630 4134 y Ft(huponexit)1110 4244 y Fu(If)i(set,)i(Bash)f(will)h(send)d
+(153\).)1110 4975 y(This)30 b(option)g(is)h(enabled)f(b)m(y)g(default.)
+630 5121 y Ft(huponexit)1110 5230 y Fu(If)i(set,)i(Bash)f(will)h(send)d
Ft(SIGHUP)h Fu(to)h(all)h(jobs)e(when)g(an)g(in)m(teractiv)m(e)k(login)
-1110 4354 y(shell)31 b(exits)g(\(see)g(Section)g(3.7.6)h([Signals],)g
-(page)f(49\).)630 4518 y Ft(inherit_errexit)1110 4628
-y Fu(If)e(set,)h(command)g(substitution)f(inherits)g(the)g(v)-5
-b(alue)30 b(of)g(the)f Ft(errexit)f Fu(op-)1110 4737
-y(tion,)33 b(instead)g(of)f(unsetting)g(it)h(in)f(the)g(subshell)f(en)m
-(vironmen)m(t.)46 b(This)32 b(op-)1110 4847 y(tion)f(is)f(enabled)h
-(when)e Fm(posix)h Fu(mo)s(de)g(is)g(enabled.)630 5011
-y Ft(interactive_comments)1110 5121 y Fu(In)f(an)h(in)m(teractiv)m(e)j
-(shell,)e(a)f(w)m(ord)g(b)s(eginning)f(with)h(`)p Ft(#)p
-Fu(')g(causes)h(that)f(w)m(ord)1110 5230 y(and)41 b(all)i(remaining)e
-(c)m(haracters)i(on)f(that)g(line)g(to)h(b)s(e)e(ignored,)j(as)e(in)g
-(a)1110 5340 y(non-in)m(teractiv)m(e)33 b(shell.)41 b(This)29
-b(option)i(is)g(enabled)f(b)m(y)g(default.)p eop end
+1110 5340 y(shell)31 b(exits)g(\(see)g(Section)g(3.7.6)h([Signals],)g
+(page)f(49\).)p eop end
%%Page: 83 89
TeXDict begin 83 88 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(83)630 299 y Ft(lastpipe)96
-b Fu(If)24 b(set,)i(and)e(job)g(con)m(trol)i(is)f(not)f(activ)m(e,)k
-(the)d(shell)f(runs)f(the)i(last)g(command)1110 408 y(of)37
-b(a)h(pip)s(eline)e(not)h(executed)h(in)f(the)g(bac)m(kground)g(in)g
-(the)g(curren)m(t)g(shell)1110 518 y(en)m(vironmen)m(t.)630
-693 y Ft(lithist)144 b Fu(If)22 b(enabled,)i(and)d(the)h
+b(Shell)30 b(Builtin)h(Commands)2069 b(83)630 299 y Ft(inherit_errexit)
+1110 408 y Fu(If)29 b(set,)h(command)g(substitution)f(inherits)g(the)g
+(v)-5 b(alue)30 b(of)g(the)f Ft(errexit)f Fu(op-)1110
+518 y(tion,)33 b(instead)g(of)f(unsetting)g(it)h(in)f(the)g(subshell)f
+(en)m(vironmen)m(t.)46 b(This)32 b(op-)1110 628 y(tion)f(is)f(enabled)h
+(when)e Fm(posix)h Fu(mo)s(de)g(is)g(enabled.)630 792
+y Ft(interactive_comments)1110 902 y Fu(In)f(an)h(in)m(teractiv)m(e)j
+(shell,)e(a)f(w)m(ord)g(b)s(eginning)f(with)h(`)p Ft(#)p
+Fu(')g(causes)h(that)f(w)m(ord)1110 1011 y(and)41 b(all)i(remaining)e
+(c)m(haracters)i(on)f(that)g(line)g(to)h(b)s(e)e(ignored,)j(as)e(in)g
+(a)1110 1121 y(non-in)m(teractiv)m(e)33 b(shell.)41 b(This)29
+b(option)i(is)g(enabled)f(b)m(y)g(default.)630 1285 y
+Ft(lastpipe)96 b Fu(If)24 b(set,)i(and)e(job)g(con)m(trol)i(is)f(not)f
+(activ)m(e,)k(the)d(shell)f(runs)f(the)i(last)g(command)1110
+1395 y(of)37 b(a)h(pip)s(eline)e(not)h(executed)h(in)f(the)g(bac)m
+(kground)g(in)g(the)g(curren)m(t)g(shell)1110 1504 y(en)m(vironmen)m
+(t.)630 1669 y Ft(lithist)144 b Fu(If)22 b(enabled,)i(and)d(the)h
Ft(cmdhist)e Fu(option)j(is)f(enabled,)i(m)m(ulti-line)f(commands)1110
-803 y(are)28 b(sa)m(v)m(ed)h(to)g(the)f(history)g(with)f(em)m(b)s
-(edded)g(newlines)h(rather)g(than)f(using)1110 913 y(semicolon)32
-b(separators)f(where)e(p)s(ossible.)630 1088 y Ft(localvar_inherit)1110
-1198 y Fu(If)j(set,)h(lo)s(cal)g(v)-5 b(ariables)33 b(inherit)f(the)g
+1778 y(are)28 b(sa)m(v)m(ed)h(to)g(the)f(history)g(with)f(em)m(b)s
+(edded)g(newlines)h(rather)g(than)f(using)1110 1888 y(semicolon)32
+b(separators)f(where)e(p)s(ossible.)630 2052 y Ft(localvar_inherit)1110
+2162 y Fu(If)j(set,)h(lo)s(cal)g(v)-5 b(ariables)33 b(inherit)f(the)g
(v)-5 b(alue)32 b(and)g(attributes)h(of)f(a)g(v)-5 b(ariable)1110
-1307 y(of)36 b(the)g(same)g(name)g(that)h(exists)f(at)h(a)f(previous)g
-(scop)s(e)g(b)s(efore)f(an)m(y)h(new)1110 1417 y(v)-5
+2271 y(of)36 b(the)g(same)g(name)g(that)h(exists)f(at)h(a)f(previous)g
+(scop)s(e)g(b)s(efore)f(an)m(y)h(new)1110 2381 y(v)-5
b(alue)31 b(is)f(assigned.)41 b(The)30 b Ft(nameref)e
-Fu(attribute)k(is)e(not)h(inherited.)630 1592 y Ft(localvar_unset)1110
-1702 y Fu(If)i(set,)i(calling)g Ft(unset)d Fu(on)i(lo)s(cal)g(v)-5
+Fu(attribute)k(is)e(not)h(inherited.)630 2545 y Ft(localvar_unset)1110
+2655 y Fu(If)i(set,)i(calling)g Ft(unset)d Fu(on)i(lo)s(cal)g(v)-5
b(ariables)35 b(in)e(previous)g(function)g(scop)s(es)1110
-1811 y(marks)26 b(them)g(so)g(subsequen)m(t)g(lo)s(okups)f(\014nd)g
-(them)h(unset)f(un)m(til)i(that)g(func-)1110 1921 y(tion)40
+2765 y(marks)26 b(them)g(so)g(subsequen)m(t)g(lo)s(okups)f(\014nd)g
+(them)h(unset)f(un)m(til)i(that)g(func-)1110 2874 y(tion)40
b(returns.)68 b(This)39 b(is)g(iden)m(tical)j(to)e(the)g(b)s(eha)m
-(vior)g(of)g(unsetting)g(lo)s(cal)1110 2030 y(v)-5 b(ariables)31
-b(at)g(the)g(curren)m(t)f(function)g(scop)s(e.)630 2206
-y Ft(login_shell)1110 2315 y Fu(The)35 b(shell)h(sets)g(this)f(option)h
+(vior)g(of)g(unsetting)g(lo)s(cal)1110 2984 y(v)-5 b(ariables)31
+b(at)g(the)g(curren)m(t)f(function)g(scop)s(e.)630 3148
+y Ft(login_shell)1110 3258 y Fu(The)35 b(shell)h(sets)g(this)f(option)h
(if)g(it)g(is)f(started)h(as)g(a)g(login)g(shell)g(\(see)g(Sec-)1110
-2425 y(tion)24 b(6.1)h([In)m(v)m(oking)g(Bash],)h(page)f(100\).)40
+3367 y(tion)24 b(6.1)h([In)m(v)m(oking)g(Bash],)h(page)f(100\).)40
b(The)23 b(v)-5 b(alue)24 b(ma)m(y)h(not)f(b)s(e)f(c)m(hanged.)630
-2600 y Ft(mailwarn)96 b Fu(If)34 b(set,)i(and)e(a)h(\014le)g(that)g
+3532 y Ft(mailwarn)96 b Fu(If)34 b(set,)i(and)e(a)h(\014le)g(that)g
(Bash)f(is)h(c)m(hec)m(king)h(for)f(mail)g(has)f(b)s(een)g(accessed)
-1110 2710 y(since)c(the)f(last)i(time)f(it)g(w)m(as)f(c)m(hec)m(k)m
+1110 3641 y(since)c(the)f(last)i(time)f(it)g(w)m(as)f(c)m(hec)m(k)m
(ed,)j(Bash)e(displa)m(ys)f(the)h(message)g Ft("The)1110
-2819 y(mail)f(in)h Fj(mailfile)e Ft(has)i(been)f(read")p
-Fu(.)630 2995 y Ft(no_empty_cmd_completion)1110 3104
+3751 y(mail)f(in)h Fj(mailfile)e Ft(has)i(been)f(read")p
+Fu(.)630 3915 y Ft(no_empty_cmd_completion)1110 4025
y Fu(If)k(set,)j(and)d(Readline)i(is)f(b)s(eing)f(used,)i(Bash)f(do)s
-(es)f(not)h(searc)m(h)h(the)f Ft(PATH)1110 3214 y Fu(for)22
+(es)f(not)h(searc)m(h)h(the)f Ft(PATH)1110 4134 y Fu(for)22
b(p)s(ossible)g(completions)h(when)e(completion)i(is)f(attempted)i(on)e
-(an)g(empt)m(y)1110 3324 y(line.)630 3499 y Ft(nocaseglob)1110
-3608 y Fu(If)38 b(set,)k(Bash)d(matc)m(hes)g(\014lenames)g(in)f(a)h
-(case-insensitiv)m(e)j(fashion)c(when)1110 3718 y(p)s(erforming)29
-b(\014lename)i(expansion.)630 3893 y Ft(nocasematch)1110
-4003 y Fu(If)42 b(set,)k(Bash)d(matc)m(hes)g(patterns)g(in)f(a)h
-(case-insensitiv)m(e)i(fashion)d(when)1110 4113 y(p)s(erforming)31
+(an)g(empt)m(y)1110 4244 y(line.)630 4408 y Ft(nocaseglob)1110
+4518 y Fu(If)38 b(set,)k(Bash)d(matc)m(hes)g(\014lenames)g(in)f(a)h
+(case-insensitiv)m(e)j(fashion)c(when)1110 4628 y(p)s(erforming)29
+b(\014lename)i(expansion.)630 4792 y Ft(nocasematch)1110
+4902 y Fu(If)42 b(set,)k(Bash)d(matc)m(hes)g(patterns)g(in)f(a)h
+(case-insensitiv)m(e)i(fashion)d(when)1110 5011 y(p)s(erforming)31
b(matc)m(hing)i(while)f(executing)i Ft(case)d Fu(or)h
-Ft([[)g Fu(conditional)h(com-)1110 4222 y(mands)25 b(\(see)i(Section)f
-(3.2.5.2)j([Conditional)e(Constructs],)f(page)h(12,)h(when)1110
-4332 y(p)s(erforming)e(pattern)i(substitution)f(w)m(ord)g(expansions,)h
-(or)f(when)g(\014ltering)1110 4441 y(p)s(ossible)j(completions)h(as)g
-(part)f(of)h(programmable)f(completion.)630 4617 y Ft
-(noexpand_translation)1110 4726 y Fu(If)25 b(set,)i(Bash)e(encloses)i
+Ft([[)g Fu(conditional)h(com-)1110 5121 y(mands)20 b(\(see)i(Section)h
+(3.2.5.2)g([Conditional)f(Constructs],)h(page)f(13\),)j(when)1110
+5230 y(p)s(erforming)h(pattern)i(substitution)f(w)m(ord)g(expansions,)h
+(or)f(when)g(\014ltering)1110 5340 y(p)s(ossible)j(completions)h(as)g
+(part)f(of)h(programmable)f(completion.)p eop end
+%%Page: 84 90
+TeXDict begin 84 89 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(84)630 299 y Ft
+(noexpand_translation)1110 408 y Fu(If)25 b(set,)i(Bash)e(encloses)i
(the)e(translated)h(results)f(of)h($)p Ft(")6 b Fu(.)22
-b(.)g(.)11 b Ft(")25 b Fu(quoting)h(in)f(sin-)1110 4836
+b(.)g(.)11 b Ft(")25 b Fu(quoting)h(in)f(sin-)1110 518
y(gle)31 b(quotes)g(instead)f(of)h(double)e(quotes.)41
b(If)30 b(the)g(string)g(is)h(not)f(translated,)1110
-4945 y(this)g(has)g(no)h(e\013ect.)630 5121 y Ft(nullglob)96
+628 y(this)g(has)g(no)h(e\013ect.)630 774 y Ft(nullglob)96
b Fu(If)35 b(set,)j(\014lename)e(expansion)f(patterns)h(whic)m(h)f
-(matc)m(h)i(no)e(\014les)h(\(see)g(Sec-)1110 5230 y(tion)g(3.5.8)i
+(matc)m(h)i(no)e(\014les)h(\(see)g(Sec-)1110 883 y(tion)g(3.5.8)i
([Filename)f(Expansion],)f(page)h(39\))g(expand)e(to)h(nothing)g(and)
-1110 5340 y(are)31 b(remo)m(v)m(ed,)g(rather)g(than)f(expanding)g(to)h
-(themselv)m(es.)p eop end
-%%Page: 84 90
-TeXDict begin 84 89 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(84)630 299 y Ft
-(patsub_replacement)1110 408 y Fu(If)38 b(set,)k(Bash)d(expands)e(o)s
-(ccurrences)i(of)g(`)p Ft(&)p Fu(')g(in)f(the)h(replacemen)m(t)h
-(string)1110 518 y(of)47 b(pattern)g(substitution)g(to)h(the)f(text)h
-(matc)m(hed)g(b)m(y)f(the)g(pattern,)52 b(as)1110 628
-y(describ)s(ed)45 b(ab)s(o)m(v)m(e)i(\(see)f(Section)h(3.5.3)g([Shell)f
-(P)m(arameter)h(Expansion],)1110 737 y(page)31 b(27\).)42
-b(This)30 b(option)g(is)h(enabled)f(b)m(y)g(default.)630
-940 y Ft(progcomp)96 b Fu(If)81 b(set,)94 b(enable)82
-b(the)f(programmable)g(completion)i(facilities)g(\(see)1110
-1049 y(Section)31 b(8.6)f([Programmable)h(Completion],)g(page)f(158\).)
-43 b(This)29 b(option)h(is)1110 1159 y(enabled)g(b)m(y)h(default.)630
-1362 y Ft(progcomp_alias)1110 1471 y Fu(If)23 b(set,)j(and)d
+1110 993 y(are)31 b(remo)m(v)m(ed,)g(rather)g(than)f(expanding)g(to)h
+(themselv)m(es.)630 1139 y Ft(patsub_replacement)1110
+1249 y Fu(If)38 b(set,)k(Bash)d(expands)e(o)s(ccurrences)i(of)g(`)p
+Ft(&)p Fu(')g(in)f(the)h(replacemen)m(t)h(string)1110
+1358 y(of)47 b(pattern)g(substitution)g(to)h(the)f(text)h(matc)m(hed)g
+(b)m(y)f(the)g(pattern,)52 b(as)1110 1468 y(describ)s(ed)45
+b(ab)s(o)m(v)m(e)i(\(see)f(Section)h(3.5.3)g([Shell)f(P)m(arameter)h
+(Expansion],)1110 1577 y(page)31 b(27\).)42 b(This)30
+b(option)g(is)h(enabled)f(b)m(y)g(default.)630 1724 y
+Ft(progcomp)96 b Fu(If)81 b(set,)94 b(enable)82 b(the)f(programmable)g
+(completion)i(facilities)g(\(see)1110 1833 y(Section)31
+b(8.6)f([Programmable)h(Completion],)g(page)f(158\).)43
+b(This)29 b(option)h(is)1110 1943 y(enabled)g(b)m(y)h(default.)630
+2089 y Ft(progcomp_alias)1110 2198 y Fu(If)23 b(set,)j(and)d
(programmable)h(completion)h(is)f(enabled,)h(Bash)f(treats)h(a)f(com-)
-1110 1581 y(mand)34 b(name)h(that)g(do)s(esn't)f(ha)m(v)m(e)i(an)m(y)g
-(completions)f(as)g(a)g(p)s(ossible)g(alias)1110 1690
+1110 2308 y(mand)34 b(name)h(that)g(do)s(esn't)f(ha)m(v)m(e)i(an)m(y)g
+(completions)f(as)g(a)g(p)s(ossible)g(alias)1110 2418
y(and)40 b(attempts)i(alias)h(expansion.)72 b(If)41 b(it)g(has)g(an)g
-(alias,)k(Bash)c(attempts)1110 1800 y(programmable)28
+(alias,)k(Bash)c(attempts)1110 2527 y(programmable)28
b(completion)h(using)e(the)h(command)f(w)m(ord)h(resulting)f(from)1110
-1910 y(the)k(expanded)e(alias.)630 2112 y Ft(promptvars)1110
-2222 y Fu(If)50 b(set,)56 b(prompt)49 b(strings)h(undergo)g(parameter)h
-(expansion,)k(command)1110 2331 y(substitution,)35 b(arithmetic)g
+2637 y(the)k(expanded)e(alias.)630 2783 y Ft(promptvars)1110
+2892 y Fu(If)50 b(set,)56 b(prompt)49 b(strings)h(undergo)g(parameter)h
+(expansion,)k(command)1110 3002 y(substitution,)35 b(arithmetic)g
(expansion,)g(and)e(quote)i(remo)m(v)-5 b(al)35 b(after)f(b)s(eing)1110
-2441 y(expanded)53 b(as)h(describ)s(ed)e(b)s(elo)m(w)i(\(see)h(Section)
-f(6.9)h([Con)m(trolling)g(the)1110 2551 y(Prompt],)30
+3112 y(expanded)53 b(as)h(describ)s(ed)e(b)s(elo)m(w)i(\(see)h(Section)
+f(6.9)h([Con)m(trolling)g(the)1110 3221 y(Prompt],)30
b(page)h(114\).)43 b(This)29 b(option)i(is)g(enabled)f(b)m(y)g
-(default.)630 2753 y Ft(restricted_shell)1110 2863 y
+(default.)630 3367 y Ft(restricted_shell)1110 3477 y
Fu(The)40 b(shell)h(sets)g(this)g(option)g(if)g(it)h(is)e(started)i(in)
-e(restricted)i(mo)s(de)e(\(see)1110 2972 y(Section)32
+e(restricted)i(mo)s(de)e(\(see)1110 3587 y(Section)32
b(6.10)h([The)d(Restricted)j(Shell],)e(page)h(115\).)45
-b(The)30 b(v)-5 b(alue)32 b(ma)m(y)g(not)1110 3082 y(b)s(e)g(c)m
+b(The)30 b(v)-5 b(alue)32 b(ma)m(y)g(not)1110 3696 y(b)s(e)g(c)m
(hanged.)49 b(This)32 b(is)h(not)h(reset)f(when)f(the)h(startup)g
-(\014les)f(are)i(executed,)1110 3192 y(allo)m(wing)k(the)e(startup)f
+(\014les)f(are)i(executed,)1110 3806 y(allo)m(wing)k(the)e(startup)f
(\014les)h(to)g(disco)m(v)m(er)h(whether)f(or)f(not)i(a)f(shell)g(is)g
-(re-)1110 3301 y(stricted.)630 3504 y Ft(shift_verbose)1110
-3613 y Fu(If)g(this)g(is)g(set,)j(the)d Ft(shift)f Fu(builtin)h(prin)m
-(ts)f(an)h(error)g(message)i(when)d(the)1110 3723 y(shift)30
+(re-)1110 3915 y(stricted.)630 4061 y Ft(shift_verbose)1110
+4171 y Fu(If)g(this)g(is)g(set,)j(the)d Ft(shift)f Fu(builtin)h(prin)m
+(ts)f(an)h(error)g(message)i(when)d(the)1110 4281 y(shift)30
b(coun)m(t)h(exceeds)g(the)g(n)m(um)m(b)s(er)e(of)h(p)s(ositional)i
-(parameters.)630 3926 y Ft(sourcepath)1110 4035 y Fu(If)40
+(parameters.)630 4427 y Ft(sourcepath)1110 4536 y Fu(If)40
b(set,)45 b(the)c Ft(.)f Fu(\()p Ft(source)p Fu(\))g(builtin)g(uses)h
(the)g(v)-5 b(alue)41 b(of)g Ft(PATH)f Fu(to)h(\014nd)f(the)1110
-4145 y(directory)32 b(con)m(taining)i(the)e(\014le)g(supplied)e(as)j
-(an)e(argumen)m(t)i(when)d(the)j Ft(-p)1110 4254 y Fu(option)e(is)f
+4646 y(directory)32 b(con)m(taining)i(the)e(\014le)g(supplied)e(as)j
+(an)e(argumen)m(t)i(when)d(the)j Ft(-p)1110 4756 y Fu(option)e(is)f
(not)h(supplied.)39 b(This)30 b(option)h(is)f(enabled)g(b)m(y)h
-(default.)630 4457 y Ft(varredir_close)1110 4567 y Fu(If)h(set,)h(the)f
+(default.)630 4902 y Ft(varredir_close)1110 5011 y Fu(If)h(set,)h(the)f
(shell)h(automatically)i(closes)e(\014le)f(descriptors)g(assigned)g
-(using)1110 4676 y(the)40 b Ft({varname})c Fu(redirection)k(syn)m(tax)g
-(\(see)h(Section)f(3.6)g([Redirections],)1110 4786 y(page)h(41\))f
+(using)1110 5121 y(the)40 b Ft({varname})c Fu(redirection)k(syn)m(tax)g
+(\(see)h(Section)f(3.6)g([Redirections],)1110 5230 y(page)h(41\))f
(instead)h(of)e(lea)m(ving)j(them)e(op)s(en)f(when)g(the)h(command)f
-(com-)1110 4895 y(pletes.)630 5098 y Ft(xpg_echo)96 b
-Fu(If)31 b(set,)h(the)g Ft(echo)e Fu(builtin)h(expands)f(bac)m
-(kslash-escap)s(e)j(sequences)f(b)m(y)f(de-)1110 5208
-y(fault.)40 b(If)27 b(the)h Ft(posix)e Fu(shell)h(option)h(\(see)h
-(Section)f(4.3.1)h([The)e(Set)h(Builtin],)1110 5317 y(page)j(74\))h(is)
-e(also)h(enabled,)g Ft(echo)e Fu(do)s(es)h(not)h(in)m(terpret)g(an)m(y)
-f(options.)p eop end
+(com-)1110 5340 y(pletes.)p eop end
%%Page: 85 91
TeXDict begin 85 90 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(85)150 299 y Fs(4.4)68
-b(Sp)t(ecial)45 b(Builtins)150 458 y Fu(F)-8 b(or)35
-b(historical)h(reasons,)g(the)e Fm(posix)g Fu(standard)f(has)i
-(classi\014ed)f(sev)m(eral)i(builtin)e(commands)g(as)h
-Fl(sp)-5 b(e-)150 568 y(cial)p Fu(.)47 b(When)33 b(Bash)f(is)h
-(executing)g(in)f Fm(posix)g Fu(mo)s(de,)h(the)g(sp)s(ecial)g(builtins)
-e(di\013er)i(from)f(other)g(builtin)150 677 y(commands)e(in)g(three)h
-(resp)s(ects:)199 812 y(1.)61 b(Sp)s(ecial)31 b(builtins)e(are)i(found)
-e(b)s(efore)h(shell)h(functions)f(during)f(command)h(lo)s(okup.)199
-946 y(2.)61 b(If)30 b(a)h(sp)s(ecial)g(builtin)f(returns)f(an)h(error)g
-(status,)h(a)g(non-in)m(teractiv)m(e)i(shell)d(exits.)199
-1081 y(3.)61 b(Assignmen)m(t)30 b(statemen)m(ts)h(preceding)f(the)f
-(command)g(sta)m(y)i(in)e(e\013ect)i(in)e(the)h(shell)f(en)m(vironmen)m
-(t)330 1191 y(after)i(the)f(command)h(completes.)275
-1350 y(When)36 b(Bash)g(is)h(not)f(executing)i(in)e Fm(posix)f
-Fu(mo)s(de,)j(these)f(builtins)f(b)s(eha)m(v)m(e)h(no)f(di\013eren)m
-(tly)h(than)150 1460 y(the)31 b(rest)f(of)h(the)f(Bash)h(builtin)e
-(commands.)41 b(The)30 b(Bash)g Fm(posix)g Fu(mo)s(de)g(is)g(describ)s
-(ed)f(in)h(Section)h(6.11)150 1569 y([Bash)g(POSIX)e(Mo)s(de],)i(page)g
-(116.)275 1704 y(These)f(are)g(the)h Fm(posix)f Fu(sp)s(ecial)h
-(builtins:)390 1838 y Ft(break)46 b(:)i(.)f(source)f(continue)g(eval)h
-(exec)f(exit)h(export)f(readonly)f(return)i(set)390 1948
-y(shift)f(times)h(trap)f(unset)p eop end
+b(Shell)30 b(Builtin)h(Commands)2069 b(85)630 299 y Ft(xpg_echo)96
+b Fu(If)31 b(set,)h(the)g Ft(echo)e Fu(builtin)h(expands)f(bac)m
+(kslash-escap)s(e)j(sequences)f(b)m(y)f(de-)1110 408
+y(fault.)40 b(If)27 b(the)h Ft(posix)e Fu(shell)h(option)h(\(see)h
+(Section)f(4.3.1)h([The)e(Set)h(Builtin],)1110 518 y(page)j(74\))h(is)e
+(also)h(enabled,)g Ft(echo)e Fu(do)s(es)h(not)h(in)m(terpret)g(an)m(y)f
+(options.)150 759 y Fs(4.4)68 b(Sp)t(ecial)45 b(Builtins)150
+918 y Fu(F)-8 b(or)35 b(historical)h(reasons,)g(the)e
+Fm(posix)g Fu(standard)f(has)i(classi\014ed)f(sev)m(eral)i(builtin)e
+(commands)g(as)h Fl(sp)-5 b(e-)150 1028 y(cial)p Fu(.)47
+b(When)33 b(Bash)f(is)h(executing)g(in)f Fm(posix)g Fu(mo)s(de,)h(the)g
+(sp)s(ecial)g(builtins)e(di\013er)i(from)f(other)g(builtin)150
+1137 y(commands)e(in)g(three)h(resp)s(ects:)199 1272
+y(1.)61 b(Sp)s(ecial)31 b(builtins)e(are)i(found)e(b)s(efore)h(shell)h
+(functions)f(during)f(command)h(lo)s(okup.)199 1406 y(2.)61
+b(If)30 b(a)h(sp)s(ecial)g(builtin)f(returns)f(an)h(error)g(status,)h
+(a)g(non-in)m(teractiv)m(e)i(shell)d(exits.)199 1541
+y(3.)61 b(Assignmen)m(t)30 b(statemen)m(ts)h(preceding)f(the)f(command)
+g(sta)m(y)i(in)e(e\013ect)i(in)e(the)h(shell)f(en)m(vironmen)m(t)330
+1650 y(after)i(the)f(command)h(completes.)275 1810 y(When)36
+b(Bash)g(is)h(not)f(executing)i(in)e Fm(posix)f Fu(mo)s(de,)j(these)f
+(builtins)f(b)s(eha)m(v)m(e)h(no)f(di\013eren)m(tly)h(than)150
+1919 y(the)31 b(rest)f(of)h(the)f(Bash)h(builtin)e(commands.)41
+b(The)30 b(Bash)g Fm(posix)g Fu(mo)s(de)g(is)g(describ)s(ed)f(in)h
+(Section)h(6.11)150 2029 y([Bash)g(POSIX)e(Mo)s(de],)i(page)g(116.)275
+2164 y(These)f(are)g(the)h Fm(posix)f Fu(sp)s(ecial)h(builtins:)390
+2298 y Ft(break)46 b(:)i(.)f(source)f(continue)g(eval)h(exec)f(exit)h
+(export)f(readonly)f(return)i(set)390 2408 y(shift)f(times)h(trap)f
+(unset)p eop end
%%Page: 86 92
TeXDict begin 86 91 bop 3659 -116 a Fu(86)150 299 y Fp(5)80
b(Shell)53 b(V)-13 b(ariables)150 632 y Fu(This)21 b(c)m(hapter)i
1548 y Fu(When)h(referenced,)g(this)g(v)-5 b(ariable)32
b(expands)e(to)h(the)h(name)f(of)g(the)g(shell)g(or)g(shell)g(script)
630 1658 y(\(iden)m(tical)42 b(to)e Ft($0)p Fu(;)j(See)d(Section)g
-(3.4.2)i([Sp)s(ecial)e(P)m(arameters],)j(page)d(23,)j(for)c(the)h(de-)
+(3.4.2)i([Sp)s(ecial)e(P)m(arameters],)j(page)d(24,)j(for)c(the)h(de-)
630 1767 y(scription)33 b(of)h(sp)s(ecial)f(parameter)h(0\).)50
b(Assigning)33 b(a)g(v)-5 b(alue)34 b(to)g Ft(BASH_ARGV0)c
Fu(sets)k Ft($0)e Fu(to)630 1877 y(the)d(same)g(v)-5
(it)h(is)g(subsequen)m(tly)e(reset.)150 3543 y Ft(BASH_COMPAT)630
3652 y Fu(The)j(v)-5 b(alue)33 b(is)g(used)f(to)h(set)g(the)g(shell's)g
(compatibilit)m(y)i(lev)m(el.)49 b(See)33 b(Section)h(6.12)g([Shell)630
-3762 y(Compatibilit)m(y)j(Mo)s(de],)h(page)e(121,)i(for)e(a)g
+3762 y(Compatibilit)m(y)j(Mo)s(de],)h(page)e(122,)i(for)e(a)g
(description)g(of)f(the)h(v)-5 b(arious)36 b(compatibilit)m(y)630
3871 y(lev)m(els)g(and)f(their)g(e\013ects.)55 b(The)34
b(v)-5 b(alue)36 b(ma)m(y)f(b)s(e)f(a)i(decimal)f(n)m(um)m(b)s(er)f
42 b(A)30 b(subset)g(of)h(the)g(v)-5 b(alid)630 4529
y(v)g(alues)31 b(corresp)s(ond)d(to)j(the)g(compatibilit)m(y)h(lev)m
(els)g(describ)s(ed)d(b)s(elo)m(w)h(\(see)h(Section)g(6.12)630
-4639 y([Shell)25 b(Compatibilit)m(y)h(Mo)s(de],)h(page)e(121\).)41
+4639 y([Shell)25 b(Compatibilit)m(y)h(Mo)s(de],)h(page)e(122\).)41
b(F)-8 b(or)25 b(example,)i(4.2)f(and)e(42)h(are)h(v)-5
b(alid)25 b(v)-5 b(alues)630 4748 y(that)33 b(corresp)s(ond)e(to)i(the)
f Ft(compat42)e(shopt)h Fu(option)i(and)f(set)g(the)h(compatibilit)m(y)
f(are)h(assigned)g(b)m(y)f(the)h(`)p Ft(=~)p Fu(')g(binary)f(op)s
(erator)630 2576 y(to)37 b(the)f Ft([[)g Fu(conditional)i(command)e
(\(see)h(Section)g(3.2.5.2)i([Conditional)e(Constructs],)630
-2685 y(page)e(12\).)52 b(The)33 b(elemen)m(t)j(with)d(index)g(0)i(is)f
+2685 y(page)e(13\).)52 b(The)33 b(elemen)m(t)j(with)d(index)g(0)i(is)f
(the)g(p)s(ortion)f(of)h(the)g(string)g(matc)m(hing)h(the)630
2795 y(en)m(tire)29 b(regular)f(expression.)40 b(The)27
b(elemen)m(t)j(with)d(index)h Fr(n)f Fu(is)h(the)g(p)s(ortion)g(of)g
(its)630 408 y(v)-5 b(alue)27 b(is)f(`)p Ft(t)p Fu(',)h(Bash)f(assumes)
g(that)g(the)h(shell)f(is)g(running)e(in)i(an)g(Emacs)g(shell)h
(bu\013er)e(and)630 518 y(disables)30 b(line)h(editing.)150
-666 y Ft(ENV)336 b Fu(Expanded)33 b(and)h(executed)i(similarly)f(to)g
+679 y Ft(ENV)336 b Fu(Expanded)33 b(and)h(executed)i(similarly)f(to)g
Ft(BASH_ENV)d Fu(\(see)k(Section)f(6.2)h([Bash)f(Startup)630
-776 y(Files],)h(page)e(102\))h(when)d(an)h(in)m(teractiv)m(e)k(shell)c
+789 y(Files],)h(page)e(102\))h(when)d(an)h(in)m(teractiv)m(e)k(shell)c
(is)h(in)m(v)m(ok)m(ed)g(in)f Fm(posix)g Fu(mo)s(de)g(\(see)h(Sec-)630
-886 y(tion)d(6.11)h([Bash)f(POSIX)e(Mo)s(de],)i(page)g(116\).)150
-1034 y Ft(EPOCHREALTIME)630 1143 y Fu(Eac)m(h)38 b(time)f(this)g
+898 y(tion)d(6.11)h([Bash)f(POSIX)e(Mo)s(de],)i(page)g(116\).)150
+1060 y Ft(EPOCHREALTIME)630 1169 y Fu(Eac)m(h)38 b(time)f(this)g
(parameter)h(is)f(referenced,)i(it)f(expands)e(to)i(the)f(n)m(um)m(b)s
-(er)f(of)h(seconds)630 1253 y(since)g(the)f(Unix)g(Ep)s(o)s(c)m(h)f(as)
+(er)f(of)h(seconds)630 1279 y(since)g(the)f(Unix)g(Ep)s(o)s(c)m(h)f(as)
i(a)f(\015oating-p)s(oin)m(t)i(v)-5 b(alue)37 b(with)f(micro-second)h
-(gran)m(ularit)m(y)630 1363 y(\(see)k(the)g(do)s(cumen)m(tation)h(for)e
+(gran)m(ularit)m(y)630 1388 y(\(see)k(the)g(do)s(cumen)m(tation)h(for)e
(the)h(C)f(library)g(function)g Ft(time)g Fu(for)g(the)h(de\014nition)f
-(of)630 1472 y(Ep)s(o)s(c)m(h\).)82 b(Assignmen)m(ts)44
+(of)630 1498 y(Ep)s(o)s(c)m(h\).)82 b(Assignmen)m(ts)44
b(to)h Ft(EPOCHREALTIME)c Fu(are)j(ignored.)83 b(If)43
-b Ft(EPOCHREALTIME)e Fu(is)630 1582 y(unset,)30 b(it)h(loses)g(its)g
+b Ft(EPOCHREALTIME)e Fu(is)630 1608 y(unset,)30 b(it)h(loses)g(its)g
(sp)s(ecial)g(prop)s(erties,)f(ev)m(en)h(if)f(it)h(is)g(subsequen)m
-(tly)f(reset.)150 1730 y Ft(EPOCHSECONDS)630 1840 y Fu(Eac)m(h)38
+(tly)f(reset.)150 1769 y Ft(EPOCHSECONDS)630 1878 y Fu(Eac)m(h)38
b(time)f(this)g(parameter)h(is)f(referenced,)i(it)f(expands)e(to)i(the)
-f(n)m(um)m(b)s(er)f(of)h(seconds)630 1949 y(since)d(the)g(Unix)g(Ep)s
+f(n)m(um)m(b)s(er)f(of)h(seconds)630 1988 y(since)d(the)g(Unix)g(Ep)s
(o)s(c)m(h)f(\(see)i(the)f(do)s(cumen)m(tation)h(for)e(the)i(C)e
-(library)h(function)f Ft(time)630 2059 y Fu(for)41 b(the)g
+(library)h(function)f Ft(time)630 2097 y Fu(for)41 b(the)g
(de\014nition)g(of)h(Ep)s(o)s(c)m(h\).)73 b(Assignmen)m(ts)41
b(to)h Ft(EPOCHSECONDS)c Fu(are)k(ignored.)73 b(If)630
-2168 y Ft(EPOCHSECONDS)27 b Fu(is)j(unset,)g(it)g(loses)h(its)g(sp)s
+2207 y Ft(EPOCHSECONDS)27 b Fu(is)j(unset,)g(it)g(loses)h(its)g(sp)s
(ecial)f(prop)s(erties,)g(ev)m(en)h(if)f(it)g(is)g(subsequen)m(tly)630
-2278 y(reset.)150 2426 y Ft(EUID)288 b Fu(The)30 b(n)m(umeric)g
+2317 y(reset.)150 2478 y Ft(EUID)288 b Fu(The)30 b(n)m(umeric)g
(e\013ectiv)m(e)j(user)d(id)g(of)g(the)h(curren)m(t)f(user.)40
b(This)30 b(v)-5 b(ariable)31 b(is)f(readonly)-8 b(.)150
-2574 y Ft(EXECIGNORE)630 2684 y Fu(A)29 b(colon-separated)h(list)f(of)g
+2639 y Ft(EXECIGNORE)630 2749 y Fu(A)29 b(colon-separated)h(list)f(of)g
(shell)g(patterns)f(\(see)i(Section)f(3.5.8.1)i([P)m(attern)f(Matc)m
-(hing],)630 2794 y(page)j(39\))h(de\014ning)e(the)h(set)g(of)g
+(hing],)630 2858 y(page)j(39\))h(de\014ning)e(the)h(set)g(of)g
(\014lenames)f(to)i(b)s(e)e(ignored)g(b)m(y)h(command)f(searc)m(h)h
-(using)630 2903 y Ft(PATH)p Fu(.)j(Files)22 b(whose)f(full)g(pathnames)
+(using)630 2968 y Ft(PATH)p Fu(.)j(Files)22 b(whose)f(full)g(pathnames)
g(matc)m(h)h(one)f(of)g(these)h(patterns)e(are)i(not)f(considered)630
-3013 y(executable)j(\014les)e(for)g(the)h(purp)s(oses)d(of)j
+3077 y(executable)j(\014les)e(for)g(the)h(purp)s(oses)d(of)j
(completion)h(and)d(command)i(execution)g(via)g Ft(PATH)630
-3122 y Fu(lo)s(okup.)56 b(This)35 b(do)s(es)g(not)h(a\013ect)i(the)d(b)
+3187 y Fu(lo)s(okup.)56 b(This)35 b(do)s(es)g(not)h(a\013ect)i(the)d(b)
s(eha)m(vior)h(of)g(the)g Ft([)p Fu(,)h Ft(test)p Fu(,)f(and)f
-Ft([[)g Fu(commands.)630 3232 y(F)-8 b(ull)42 b(pathnames)e(in)h(the)g
+Ft([[)g Fu(commands.)630 3296 y(F)-8 b(ull)42 b(pathnames)e(in)h(the)g
(command)g(hash)f(table)i(are)g(not)f(sub)5 b(ject)41
-b(to)g Ft(EXECIGNORE)p Fu(.)630 3342 y(Use)30 b(this)f(v)-5
+b(to)g Ft(EXECIGNORE)p Fu(.)630 3406 y(Use)30 b(this)f(v)-5
b(ariable)30 b(to)g(ignore)g(shared)f(library)g(\014les)g(that)h(ha)m
-(v)m(e)h(the)f(executable)h(bit)e(set,)630 3451 y(but)36
+(v)m(e)h(the)f(executable)h(bit)e(set,)630 3516 y(but)36
b(are)h(not)g(executable)i(\014les.)60 b(The)36 b(pattern)h(matc)m
-(hing)h(honors)e(the)h(setting)h(of)f(the)630 3561 y
-Ft(extglob)28 b Fu(shell)j(option.)150 3709 y Ft(FCEDIT)192
+(hing)h(honors)e(the)h(setting)h(of)f(the)630 3625 y
+Ft(extglob)28 b Fu(shell)j(option.)150 3786 y Ft(FCEDIT)192
b Fu(The)30 b(editor)h(used)e(as)i(a)g(default)f(b)m(y)h(the)f
-Ft(fc)g Fu(builtin)g(command.)150 3857 y Ft(FIGNORE)144
+Ft(fc)g Fu(builtin)g(command.)150 3948 y Ft(FIGNORE)144
b Fu(A)35 b(colon-separated)i(list)f(of)g(su\016xes)e(to)i(ignore)g
-(when)e(p)s(erforming)g(\014lename)i(comple-)630 3967
+(when)e(p)s(erforming)g(\014lename)i(comple-)630 4057
y(tion.)k(A)27 b(\014lename)g(whose)f(su\016x)g(matc)m(hes)i(one)f(of)g
(the)g(en)m(tries)g(in)g Ft(FIGNORE)d Fu(is)j(excluded)630
-4076 y(from)j(the)g(list)h(of)g(matc)m(hed)g(\014lenames.)41
-b(A)30 b(sample)h(v)-5 b(alue)31 b(is)f(`)p Ft(.o:~)p
-Fu(')150 4225 y Ft(FUNCNAME)96 b Fu(An)35 b(arra)m(y)i(v)-5
+4167 y(from)36 b(the)g(list)h(of)f(matc)m(hed)h(\014lenames.)58
+b(A)37 b(sample)f(v)-5 b(alue)37 b(is)f(`)p Ft(.o:~)p
+Fu('.)57 b(Since)36 b(tilde)h(ex-)630 4276 y(pansion)44
+b(tak)m(es)i(place)f(after)g(`)p Ft(:)p Fu(')g(in)f(assignmen)m(t)i
+(statemen)m(ts,)k(mak)m(e)45 b(sure)f(to)h(quote)630
+4386 y(assignmen)m(ts)31 b(appropriately)g(to)g(a)m(v)m(oid)h(it)f(as)f
+(appropriate.)150 4547 y Ft(FUNCNAME)96 b Fu(An)35 b(arra)m(y)i(v)-5
b(ariable)36 b(con)m(taining)h(the)f(names)g(of)g(all)g(shell)g
-(functions)g(curren)m(tly)f(in)h(the)630 4334 y(execution)g(call)h
+(functions)g(curren)m(tly)f(in)h(the)630 4657 y(execution)g(call)h
(stac)m(k.)57 b(The)34 b(elemen)m(t)j(with)e(index)g(0)h(is)f(the)g
-(name)h(of)f(an)m(y)h(curren)m(tly-)630 4444 y(executing)f(shell)f
+(name)h(of)f(an)m(y)h(curren)m(tly-)630 4766 y(executing)f(shell)f
(function.)51 b(The)34 b(b)s(ottom-most)h(elemen)m(t)g(\(the)g(one)f
-(with)g(the)g(highest)630 4554 y(index\))e(is)h Ft("main")p
+(with)g(the)g(highest)630 4876 y(index\))e(is)h Ft("main")p
Fu(.)44 b(This)32 b(v)-5 b(ariable)33 b(exists)g(only)g(when)e(a)i
-(shell)f(function)g(is)g(executing.)630 4663 y(Assignmen)m(ts)23
+(shell)f(function)g(is)g(executing.)630 4985 y(Assignmen)m(ts)23
b(to)f Ft(FUNCNAME)e Fu(ha)m(v)m(e)k(no)e(e\013ect.)39
b(If)22 b Ft(FUNCNAME)e Fu(is)i(unset,)h(it)g(loses)g(its)f(sp)s(ecial)
-630 4773 y(prop)s(erties,)30 b(ev)m(en)h(if)f(it)h(is)g(subsequen)m
-(tly)f(reset.)630 4902 y(This)h(v)-5 b(ariable)32 b(can)f(b)s(e)g(used)
+630 5095 y(prop)s(erties,)30 b(ev)m(en)h(if)f(it)h(is)g(subsequen)m
+(tly)f(reset.)630 5230 y(This)h(v)-5 b(ariable)32 b(can)f(b)s(e)g(used)
g(with)g Ft(BASH_LINENO)d Fu(and)j Ft(BASH_SOURCE)p Fu(.)40
-b(Eac)m(h)32 b(elemen)m(t)630 5011 y(of)g Ft(FUNCNAME)d
+b(Eac)m(h)32 b(elemen)m(t)630 5340 y(of)g Ft(FUNCNAME)d
Fu(has)j(corresp)s(onding)e(elemen)m(ts)j(in)f Ft(BASH_LINENO)c
-Fu(and)k Ft(BASH_SOURCE)c Fu(to)630 5121 y(describ)s(e)39
+Fu(and)k Ft(BASH_SOURCE)c Fu(to)p eop end
+%%Page: 93 99
+TeXDict begin 93 98 bop 150 -116 a Fu(Chapter)30 b(5:)41
+b(Shell)30 b(V)-8 b(ariables)2459 b(93)630 299 y(describ)s(e)39
b(the)h(call)h(stac)m(k.)70 b(F)-8 b(or)41 b(instance,)i
Ft(${FUNCNAME[$i]})35 b Fu(w)m(as)41 b(called)f(from)g(the)630
-5230 y(\014le)27 b Ft(${BASH_SOURCE[$i+1]})21 b Fu(at)27
+408 y(\014le)27 b Ft(${BASH_SOURCE[$i+1]})21 b Fu(at)27
b(line)h(n)m(um)m(b)s(er)d Ft(${BASH_LINENO[$i]})p Fu(.)34
-b(The)27 b Ft(caller)630 5340 y Fu(builtin)j(displa)m(ys)g(the)h
-(curren)m(t)f(call)i(stac)m(k)g(using)d(this)i(information.)p
-eop end
-%%Page: 93 99
-TeXDict begin 93 98 bop 150 -116 a Fu(Chapter)30 b(5:)41
-b(Shell)30 b(V)-8 b(ariables)2459 b(93)150 299 y Ft(FUNCNEST)96
-b Fu(A)23 b(n)m(umeric)f(v)-5 b(alue)23 b(greater)g(than)f(0)h
-(de\014nes)f(a)h(maxim)m(um)f(function)g(nesting)h(lev)m(el.)40
-b(F)-8 b(unc-)630 408 y(tion)36 b(in)m(v)m(o)s(cations)i(that)f(exceed)
-g(this)f(nesting)g(lev)m(el)i(cause)e(the)h(curren)m(t)e(command)h(to)
-630 518 y(ab)s(ort.)150 675 y Ft(GLOBIGNORE)630 784 y
-Fu(A)f(colon-separated)i(list)f(of)f(patterns)g(de\014ning)f(the)i(set)
-f(of)g(\014le)h(names)f(to)g(b)s(e)g(ignored)630 894
-y(b)m(y)28 b(\014lename)h(expansion.)40 b(If)28 b(a)h(\014le)g(name)g
-(matc)m(hed)g(b)m(y)g(a)g(\014lename)f(expansion)h(pattern)630
-1003 y(also)k(matc)m(hes)g(one)f(of)g(the)g(patterns)g(in)f
-Ft(GLOBIGNORE)p Fu(,)f(it)i(is)g(remo)m(v)m(ed)h(from)e(the)h(list)h
-(of)630 1113 y(matc)m(hes.)41 b(The)27 b(pattern)g(matc)m(hing)h
+b(The)27 b Ft(caller)630 518 y Fu(builtin)j(displa)m(ys)g(the)h(curren)
+m(t)f(call)i(stac)m(k)g(using)d(this)i(information.)150
+669 y Ft(FUNCNEST)96 b Fu(A)23 b(n)m(umeric)f(v)-5 b(alue)23
+b(greater)g(than)f(0)h(de\014nes)f(a)h(maxim)m(um)f(function)g(nesting)
+h(lev)m(el.)40 b(F)-8 b(unc-)630 778 y(tion)36 b(in)m(v)m(o)s(cations)i
+(that)f(exceed)g(this)f(nesting)g(lev)m(el)i(cause)e(the)h(curren)m(t)e
+(command)h(to)630 888 y(ab)s(ort.)150 1039 y Ft(GLOBIGNORE)630
+1148 y Fu(A)f(colon-separated)i(list)f(of)f(patterns)g(de\014ning)f
+(the)i(set)f(of)g(\014le)h(names)f(to)g(b)s(e)g(ignored)630
+1258 y(b)m(y)28 b(\014lename)h(expansion.)40 b(If)28
+b(a)h(\014le)g(name)g(matc)m(hed)g(b)m(y)g(a)g(\014lename)f(expansion)h
+(pattern)630 1367 y(also)k(matc)m(hes)g(one)f(of)g(the)g(patterns)g(in)
+f Ft(GLOBIGNORE)p Fu(,)f(it)i(is)g(remo)m(v)m(ed)h(from)e(the)h(list)h
+(of)630 1477 y(matc)m(hes.)41 b(The)27 b(pattern)g(matc)m(hing)h
(honors)f(the)g(setting)i(of)e(the)h Ft(extglob)d Fu(shell)i(option.)
-150 1270 y Ft(GLOBSORT)96 b Fu(Con)m(trols)38 b(ho)m(w)g(the)f(results)
+150 1628 y Ft(GLOBSORT)96 b Fu(Con)m(trols)38 b(ho)m(w)g(the)f(results)
h(of)g(\014lename)f(expansion)h(are)g(sorted.)62 b(The)37
-b(v)-5 b(alue)38 b(of)g(this)630 1379 y(v)-5 b(ariable)45
+b(v)-5 b(alue)38 b(of)g(this)630 1737 y(v)-5 b(ariable)45
b(sp)s(eci\014es)e(the)h(sort)g(criteria)h(and)e(sort)h(order)f(for)g
-(the)h(results)g(of)g(\014lename)630 1489 y(expansion.)c(If)29
+(the)h(results)g(of)g(\014lename)630 1847 y(expansion.)c(If)29
b(this)g(v)-5 b(ariable)30 b(is)f(unset)f(or)h(set)h(to)g(the)f(n)m
-(ull)g(string,)h(\014lename)f(expansion)630 1598 y(uses)23
+(ull)g(string,)h(\014lename)f(expansion)630 1956 y(uses)23
b(the)h(historical)h(b)s(eha)m(vior)e(of)h(sorting)g(b)m(y)g(name,)h
-(in)e(ascending)h(lexicographic)h(order)630 1708 y(as)31
+(in)e(ascending)h(lexicographic)h(order)630 2066 y(as)31
b(determined)f(b)m(y)g(the)g Ft(LC_COLLATE)e Fu(shell)j(v)-5
-b(ariable.)630 1841 y(If)31 b(set,)h(a)g(v)-5 b(alid)32
+b(ariable.)630 2196 y(If)31 b(set,)h(a)g(v)-5 b(alid)32
b(v)-5 b(alue)31 b(b)s(egins)g(with)g(an)g(optional)i(`)p
Ft(+)p Fu(',)f(whic)m(h)f(is)g(ignored,)h(or)f(`)p Ft(-)p
-Fu(',)h(whic)m(h)630 1951 y(rev)m(erses)22 b(the)g(sort)f(order)g(from)
+Fu(',)h(whic)m(h)630 2306 y(rev)m(erses)22 b(the)g(sort)f(order)g(from)
g(ascending)h(to)g(descending,)h(follo)m(w)m(ed)g(b)m(y)f(a)g(sort)f
-(sp)s(eci\014er.)630 2060 y(The)k(v)-5 b(alid)25 b(sort)h(sp)s
+(sp)s(eci\014er.)630 2415 y(The)k(v)-5 b(alid)25 b(sort)h(sp)s
(eci\014ers)e(are)i(`)p Ft(name)p Fu(',)g(`)p Ft(numeric)p
Fu(',)f(`)p Ft(size)p Fu(',)g(`)p Ft(mtime)p Fu(',)h(`)p
-Ft(atime)p Fu(',)g(`)p Ft(ctime)p Fu(',)630 2170 y(and)45
+Ft(atime)p Fu(',)g(`)p Ft(ctime)p Fu(',)630 2525 y(and)45
b(`)p Ft(blocks)p Fu(',)j(whic)m(h)e(sort)f(the)h(\014les)g(on)f(name,)
-50 b(names)45 b(in)g(n)m(umeric)h(rather)f(than)630 2279
+50 b(names)45 b(in)g(n)m(umeric)h(rather)f(than)630 2634
y(lexicographic)28 b(order,)f(\014le)f(size,)i(mo)s(di\014cation)f
(time,)h(access)f(time,)h(ino)s(de)e(c)m(hange)h(time,)630
-2389 y(and)37 b(n)m(um)m(b)s(er)e(of)j(blo)s(c)m(ks,)h(resp)s(ectiv)m
+2744 y(and)37 b(n)m(um)m(b)s(er)e(of)j(blo)s(c)m(ks,)h(resp)s(ectiv)m
(ely)-8 b(.)63 b(If)37 b(an)m(y)g(of)h(the)f(non-name)g(k)m(eys)h
-(compare)g(as)630 2498 y(equal)29 b(\(e.g.,)i(if)d(t)m(w)m(o)i(\014les)
+(compare)g(as)630 2854 y(equal)29 b(\(e.g.,)i(if)d(t)m(w)m(o)i(\014les)
e(are)h(the)f(same)h(size\),)i(sorting)d(uses)g(the)h(name)f(as)h(a)g
-(secondary)630 2608 y(sort)i(k)m(ey)-8 b(.)630 2741 y(F)g(or)33
+(secondary)630 2963 y(sort)i(k)m(ey)-8 b(.)630 3093 y(F)g(or)33
b(example,)g(a)f(v)-5 b(alue)33 b(of)f Ft(-mtime)e Fu(sorts)i(the)g
(results)g(in)f(descending)h(order)f(b)m(y)h(mo)s(di-)630
-2851 y(\014cation)f(time)g(\(new)m(est)h(\014rst\).)630
-2984 y(The)c(`)p Ft(numeric)p Fu(')g(sp)s(eci\014er)g(treats)i(names)e
+3203 y(\014cation)f(time)g(\(new)m(est)h(\014rst\).)630
+3333 y(The)c(`)p Ft(numeric)p Fu(')g(sp)s(eci\014er)g(treats)i(names)e
(consisting)i(solely)g(of)f(digits)g(as)g(n)m(um)m(b)s(ers)f(and)630
-3093 y(sorts)36 b(them)f(using)h(their)f(n)m(umeric)h(v)-5
+3443 y(sorts)36 b(them)f(using)h(their)f(n)m(umeric)h(v)-5
b(alue)36 b(\(so)g(\\2")h(sorts)f(b)s(efore)f(\\10",)k(for)d
-(example\).)630 3203 y(When)e(using)h(`)p Ft(numeric)p
+(example\).)630 3552 y(When)e(using)h(`)p Ft(numeric)p
Fu(',)f(names)g(con)m(taining)j(non-digits)e(sort)f(after)i(all)f(the)g
-(all-digit)630 3313 y(names)30 b(and)g(are)h(sorted)f(b)m(y)h(name)f
-(using)g(the)g(traditional)i(b)s(eha)m(vior.)630 3446
+(all-digit)630 3662 y(names)30 b(and)g(are)h(sorted)f(b)m(y)h(name)f
+(using)g(the)g(traditional)i(b)s(eha)m(vior.)630 3792
y(A)24 b(sort)h(sp)s(eci\014er)f(of)g(`)p Ft(nosort)p
Fu(')f(disables)h(sorting)h(completely;)j(Bash)d(returns)e(the)h
-(results)630 3555 y(in)30 b(the)h(order)f(they)g(are)h(read)f(from)g
+(results)630 3902 y(in)30 b(the)h(order)f(they)g(are)h(read)f(from)g
(the)h(\014le)f(system,)h(ignoring)g(an)m(y)f(leading)h(`)p
-Ft(-)p Fu('.)630 3688 y(If)26 b(the)h(sort)f(sp)s(eci\014er)g(is)h
+Ft(-)p Fu('.)630 4032 y(If)26 b(the)h(sort)f(sp)s(eci\014er)g(is)h
(missing,)g(it)g(defaults)g(to)g Fr(name)p Fu(,)g(so)g(a)g(v)-5
b(alue)27 b(of)f(`)p Ft(+)p Fu(')h(is)f(equiv)-5 b(alen)m(t)630
-3798 y(to)31 b(the)g(n)m(ull)f(string,)h(and)e(a)i(v)-5
+4141 y(to)31 b(the)g(n)m(ull)f(string,)h(and)e(a)i(v)-5
b(alue)31 b(of)f(`)p Ft(-)p Fu(')h(sorts)f(b)m(y)h(name)f(in)g
-(descending)g(order.)630 3931 y(An)m(y)g(in)m(v)-5 b(alid)31
+(descending)g(order.)630 4271 y(An)m(y)g(in)m(v)-5 b(alid)31
b(v)-5 b(alue)31 b(restores)g(the)g(historical)g(sorting)g(b)s(eha)m
-(vior.)150 4088 y Ft(GROUPS)192 b Fu(An)36 b(arra)m(y)g(v)-5
+(vior.)150 4422 y Ft(GROUPS)192 b Fu(An)36 b(arra)m(y)g(v)-5
b(ariable)37 b(con)m(taining)g(the)f(list)h(of)f(groups)g(of)g(whic)m
-(h)f(the)i(curren)m(t)e(user)h(is)g(a)630 4197 y(mem)m(b)s(er.)41
+(h)f(the)i(curren)m(t)e(user)h(is)g(a)630 4532 y(mem)m(b)s(er.)41
b(Assignmen)m(ts)30 b(to)i Ft(GROUPS)d Fu(ha)m(v)m(e)i(no)g(e\013ect.)
42 b(If)30 b Ft(GROUPS)f Fu(is)i(unset,)f(it)h(loses)h(its)630
-4307 y(sp)s(ecial)f(prop)s(erties,)f(ev)m(en)h(if)f(it)h(is)g
-(subsequen)m(tly)f(reset.)150 4463 y Ft(histchars)630
-4573 y Fu(The)37 b(t)m(w)m(o)i(or)f(three)g(c)m(haracters)h(whic)m(h)f
+4641 y(sp)s(ecial)f(prop)s(erties,)f(ev)m(en)h(if)f(it)h(is)g
+(subsequen)m(tly)f(reset.)150 4792 y Ft(histchars)630
+4902 y Fu(The)37 b(t)m(w)m(o)i(or)f(three)g(c)m(haracters)h(whic)m(h)f
(con)m(trol)h(history)f(expansion,)h(quic)m(k)g(substitu-)630
-4682 y(tion,)i(and)d(tok)m(enization)j(\(see)e(Section)g(9.3)g
+5011 y(tion,)i(and)d(tok)m(enization)j(\(see)e(Section)g(9.3)g
([History)g(In)m(teraction],)j(page)d(171\).)66 b(The)630
-4792 y(\014rst)37 b(c)m(haracter)i(is)e(the)h Fr(history)f(expansion)h
+5121 y(\014rst)37 b(c)m(haracter)i(is)e(the)h Fr(history)f(expansion)h
Fu(c)m(haracter,)j(the)c(c)m(haracter)i(whic)m(h)e(b)s(egins)630
-4902 y(a)j(history)f(expansion,)i(normally)e(`)p Ft(!)p
+5230 y(a)j(history)f(expansion,)i(normally)e(`)p Ft(!)p
Fu('.)68 b(The)38 b(second)h(c)m(haracter)i(is)e(the)h
-Fr(quic)m(k)f(substi-)630 5011 y(tution)d Fu(c)m(haracter,)k(normally)c
+Fr(quic)m(k)f(substi-)630 5340 y(tution)d Fu(c)m(haracter,)k(normally)c
(`)p Ft(^)p Fu('.)58 b(When)36 b(it)h(app)s(ears)e(as)h(the)h(\014rst)e
-(c)m(haracter)j(on)e(the)630 5121 y(line,)i(history)e(substitution)f
-(rep)s(eats)h(the)g(previous)g(command,)h(replacing)g(one)f(string)630
-5230 y(with)d(another.)51 b(The)33 b(optional)i(third)e(c)m(haracter)i
-(is)f(the)g Fr(history)f(commen)m(t)k Fu(c)m(haracter,)630
-5340 y(normally)28 b(`)p Ft(#)p Fu(',)g(whic)m(h)g(indicates)g(that)g
-(the)g(remainder)f(of)h(the)g(line)g(is)f(a)h(commen)m(t)h(when)p
-eop end
+(c)m(haracter)j(on)e(the)p eop end
%%Page: 94 100
TeXDict begin 94 99 bop 150 -116 a Fu(Chapter)30 b(5:)41
-b(Shell)30 b(V)-8 b(ariables)2459 b(94)630 299 y(it)42
-b(app)s(ears)e(as)h(the)g(\014rst)f(c)m(haracter)j(of)e(a)h(w)m(ord.)72
-b(The)40 b(history)h(commen)m(t)h(c)m(haracter)630 408
-y(disables)35 b(history)g(substitution)f(for)h(the)g(remaining)g(w)m
-(ords)f(on)h(the)g(line.)54 b(It)35 b(do)s(es)g(not)630
-518 y(necessarily)c(cause)g(the)g(shell)f(parser)g(to)h(treat)h(the)e
-(rest)h(of)f(the)h(line)g(as)f(a)h(commen)m(t.)150 671
+b(Shell)30 b(V)-8 b(ariables)2459 b(94)630 299 y(line,)38
+b(history)e(substitution)f(rep)s(eats)h(the)g(previous)g(command,)h
+(replacing)g(one)f(string)630 408 y(with)d(another.)51
+b(The)33 b(optional)i(third)e(c)m(haracter)i(is)f(the)g
+Fr(history)f(commen)m(t)k Fu(c)m(haracter,)630 518 y(normally)28
+b(`)p Ft(#)p Fu(',)g(whic)m(h)g(indicates)g(that)g(the)g(remainder)f
+(of)h(the)g(line)g(is)f(a)h(commen)m(t)h(when)630 628
+y(it)42 b(app)s(ears)e(as)h(the)g(\014rst)f(c)m(haracter)j(of)e(a)h(w)m
+(ord.)72 b(The)40 b(history)h(commen)m(t)h(c)m(haracter)630
+737 y(disables)35 b(history)g(substitution)f(for)h(the)g(remaining)g(w)
+m(ords)f(on)h(the)g(line.)54 b(It)35 b(do)s(es)g(not)630
+847 y(necessarily)c(cause)g(the)g(shell)f(parser)g(to)h(treat)h(the)e
+(rest)h(of)f(the)h(line)g(as)f(a)h(commen)m(t.)150 1000
y Ft(HISTCMD)144 b Fu(The)44 b(history)h(n)m(um)m(b)s(er,)j(or)d(index)
g(in)f(the)h(history)g(list,)50 b(of)45 b(the)g(curren)m(t)g(command.)
-630 781 y(Assignmen)m(ts)30 b(to)h Ft(HISTCMD)d Fu(ha)m(v)m(e)j(no)f
+630 1110 y(Assignmen)m(ts)30 b(to)h Ft(HISTCMD)d Fu(ha)m(v)m(e)j(no)f
(e\013ect.)42 b(If)30 b Ft(HISTCMD)e Fu(is)i(unset,)g(it)g(loses)h(its)
-f(sp)s(ecial)630 891 y(prop)s(erties,)g(ev)m(en)h(if)f(it)h(is)g
-(subsequen)m(tly)f(reset.)150 1044 y Ft(HISTCONTROL)630
-1154 y Fu(A)40 b(colon-separated)i(list)f(of)f(v)-5 b(alues)40
+f(sp)s(ecial)630 1219 y(prop)s(erties,)g(ev)m(en)h(if)f(it)h(is)g
+(subsequen)m(tly)f(reset.)150 1373 y Ft(HISTCONTROL)630
+1482 y Fu(A)40 b(colon-separated)i(list)f(of)f(v)-5 b(alues)40
b(con)m(trolling)i(ho)m(w)e(commands)g(are)h(sa)m(v)m(ed)g(on)f(the)630
-1263 y(history)29 b(list.)41 b(If)28 b(the)h(list)h(of)f(v)-5
+1592 y(history)29 b(list.)41 b(If)28 b(the)h(list)h(of)f(v)-5
b(alues)29 b(includes)f(`)p Ft(ignorespace)p Fu(',)f(lines)i(whic)m(h)g
-(b)s(egin)f(with)630 1373 y(a)39 b(space)g(c)m(haracter)i(are)e(not)g
+(b)s(egin)f(with)630 1702 y(a)39 b(space)g(c)m(haracter)i(are)e(not)g
(sa)m(v)m(ed)g(in)g(the)g(history)f(list.)66 b(A)39 b(v)-5
-b(alue)39 b(of)g(`)p Ft(ignoredups)p Fu(')630 1482 y(causes)34
+b(alue)39 b(of)g(`)p Ft(ignoredups)p Fu(')630 1811 y(causes)34
b(lines)h(whic)m(h)f(matc)m(h)h(the)f(previous)f(history)h(en)m(try)h
(not)f(to)h(b)s(e)e(sa)m(v)m(ed.)53 b(A)34 b(v)-5 b(alue)630
-1592 y(of)32 b(`)p Ft(ignoreboth)p Fu(')d(is)j(shorthand)e(for)i(`)p
+1921 y(of)32 b(`)p Ft(ignoreboth)p Fu(')d(is)j(shorthand)e(for)i(`)p
Ft(ignorespace)p Fu(')d(and)i(`)p Ft(ignoredups)p Fu('.)42
-b(A)32 b(v)-5 b(alue)32 b(of)630 1702 y(`)p Ft(erasedups)p
+b(A)32 b(v)-5 b(alue)32 b(of)630 2030 y(`)p Ft(erasedups)p
Fu(')f(causes)i(all)h(previous)f(lines)g(matc)m(hing)h(the)f(curren)m
-(t)g(line)g(to)h(b)s(e)e(remo)m(v)m(ed)630 1811 y(from)g(the)i(history)
+(t)g(line)g(to)h(b)s(e)e(remo)m(v)m(ed)630 2140 y(from)g(the)i(history)
e(list)i(b)s(efore)f(that)g(line)g(is)g(sa)m(v)m(ed.)50
b(An)m(y)33 b(v)-5 b(alue)33 b(not)g(in)g(the)g(ab)s(o)m(v)m(e)h(list)
-630 1921 y(is)k(ignored.)64 b(If)38 b Ft(HISTCONTROL)d
+630 2250 y(is)k(ignored.)64 b(If)38 b Ft(HISTCONTROL)d
Fu(is)k(unset,)g(or)g(do)s(es)e(not)i(include)f(a)g(v)-5
-b(alid)39 b(v)-5 b(alue,)41 b(Bash)630 2030 y(sa)m(v)m(es)34
+b(alid)39 b(v)-5 b(alue,)41 b(Bash)630 2359 y(sa)m(v)m(es)34
b(all)g(lines)e(read)h(b)m(y)f(the)h(shell)g(parser)f(on)g(the)h
(history)g(list,)h(sub)5 b(ject)32 b(to)i(the)e(v)-5
-b(alue)630 2140 y(of)31 b Ft(HISTIGNORE)p Fu(.)39 b(If)30
+b(alue)630 2469 y(of)31 b Ft(HISTIGNORE)p Fu(.)39 b(If)30
b(the)h(\014rst)f(line)h(of)g(a)g(m)m(ulti-line)h(comp)s(ound)d
-(command)i(w)m(as)g(sa)m(v)m(ed,)630 2250 y(the)36 b(second)g(and)f
+(command)i(w)m(as)g(sa)m(v)m(ed,)630 2578 y(the)36 b(second)g(and)f
(subsequen)m(t)h(lines)g(are)g(not)g(tested,)i(and)e(are)g(added)f(to)i
-(the)f(history)630 2359 y(regardless)42 b(of)g(the)f(v)-5
+(the)f(history)630 2688 y(regardless)42 b(of)g(the)f(v)-5
b(alue)42 b(of)g Ft(HISTCONTROL)p Fu(.)71 b(If)41 b(the)h(\014rst)f
-(line)g(w)m(as)h(not)g(sa)m(v)m(ed,)k(the)630 2469 y(second)30
+(line)g(w)m(as)h(not)g(sa)m(v)m(ed,)k(the)630 2798 y(second)30
b(and)g(subsequen)m(t)g(lines)g(of)h(the)g(command)f(are)g(not)h(sa)m
-(v)m(ed)h(either.)150 2622 y Ft(HISTFILE)96 b Fu(The)35
+(v)m(ed)h(either.)150 2951 y Ft(HISTFILE)96 b Fu(The)35
b(name)h(of)g(the)g(\014le)g(to)h(whic)m(h)e(the)h(command)g(history)g
-(is)f(sa)m(v)m(ed.)59 b(Bash)36 b(assigns)g(a)630 2732
+(is)f(sa)m(v)m(ed.)59 b(Bash)36 b(assigns)g(a)630 3061
y(default)31 b(v)-5 b(alue)31 b(of)f Ft(~/.bash_history)p
Fu(.)37 b(If)31 b Ft(HISTFILE)d Fu(is)i(unset)h(or)f(n)m(ull,)h(the)g
-(shell)f(do)s(es)630 2841 y(not)h(sa)m(v)m(e)h(the)e(command)g(history)
-h(when)e(it)i(exits.)150 2995 y Ft(HISTFILESIZE)630 3104
+(shell)f(do)s(es)630 3170 y(not)h(sa)m(v)m(e)h(the)e(command)g(history)
+h(when)e(it)i(exits.)150 3324 y Ft(HISTFILESIZE)630 3433
y Fu(The)26 b(maxim)m(um)f(n)m(um)m(b)s(er)g(of)h(lines)h(con)m(tained)
g(in)f(the)g(history)g(\014le.)39 b(When)26 b(this)g(v)-5
-b(ariable)630 3214 y(is)25 b(assigned)h(a)g(v)-5 b(alue,)27
+b(ariable)630 3543 y(is)25 b(assigned)h(a)g(v)-5 b(alue,)27
b(the)f(history)f(\014le)h(is)f(truncated,)i(if)e(necessary)-8
-b(,)28 b(to)e(con)m(tain)g(no)g(more)630 3324 y(than)f(the)h(n)m(um)m
+b(,)28 b(to)e(con)m(tain)g(no)g(more)630 3652 y(than)f(the)h(n)m(um)m
(b)s(er)e(of)h(history)h(en)m(tries)g(that)g(total)h(no)e(more)h(than)f
-(that)h(n)m(um)m(b)s(er)e(of)i(lines)630 3433 y(b)m(y)f(remo)m(ving)g
+(that)h(n)m(um)m(b)s(er)e(of)i(lines)630 3762 y(b)m(y)f(remo)m(ving)g
(the)g(oldest)g(en)m(tries.)40 b(If)24 b(the)h(history)g(list)g(con)m
-(tains)h(m)m(ulti-line)g(en)m(tries,)h(the)630 3543 y(history)i(\014le)
+(tains)h(m)m(ulti-line)g(en)m(tries,)h(the)630 3871 y(history)i(\014le)
f(ma)m(y)h(con)m(tain)h(more)f(lines)g(than)f(this)h(maxim)m(um)f(to)i
-(a)m(v)m(oid)g(lea)m(ving)g(partial)630 3652 y(history)38
+(a)m(v)m(oid)g(lea)m(ving)g(partial)630 3981 y(history)38
b(en)m(tries.)63 b(The)37 b(history)h(\014le)g(is)g(also)g(truncated)g
-(to)g(this)g(size)g(after)h(writing)e(it)630 3762 y(when)26
+(to)g(this)g(size)g(after)h(writing)e(it)630 4091 y(when)26
b(a)i(shell)g(exits)g(or)f(b)m(y)h(the)f Ft(history)f
Fu(builtin.)39 b(If)27 b(the)h(v)-5 b(alue)27 b(is)h(0,)g(the)g
-(history)f(\014le)h(is)630 3871 y(truncated)34 b(to)h(zero)g(size.)52
+(history)f(\014le)h(is)630 4200 y(truncated)34 b(to)h(zero)g(size.)52
b(Non-n)m(umeric)35 b(v)-5 b(alues)34 b(and)g(n)m(umeric)g(v)-5
-b(alues)34 b(less)g(than)g(zero)630 3981 y(inhibit)i(truncation.)61
+b(alues)34 b(less)g(than)g(zero)630 4310 y(inhibit)i(truncation.)61
b(The)36 b(shell)h(sets)g(the)g(default)g(v)-5 b(alue)37
-b(to)h(the)f(v)-5 b(alue)37 b(of)g Ft(HISTSIZE)630 4091
+b(to)h(the)f(v)-5 b(alue)37 b(of)g Ft(HISTSIZE)630 4419
y Fu(after)31 b(reading)f(an)m(y)h(startup)f(\014les.)150
-4244 y Ft(HISTIGNORE)630 4354 y Fu(A)j(colon-separated)h(list)f(of)g
+4573 y Ft(HISTIGNORE)630 4682 y Fu(A)j(colon-separated)h(list)f(of)g
(patterns)f(used)g(to)h(decide)g(whic)m(h)f(command)g(lines)h(should)
-630 4463 y(b)s(e)d(sa)m(v)m(ed)i(on)f(the)g(history)g(list.)43
+630 4792 y(b)s(e)d(sa)m(v)m(ed)i(on)f(the)g(history)g(list.)43
b(If)30 b(a)h(command)g(line)g(matc)m(hes)h(one)f(of)g(the)g(patterns)g
-(in)630 4573 y(the)38 b(v)-5 b(alue)38 b(of)f Ft(HISTIGNORE)p
+(in)630 4902 y(the)38 b(v)-5 b(alue)38 b(of)f Ft(HISTIGNORE)p
Fu(,)g(it)h(is)g(not)f(sa)m(v)m(ed)i(on)e(the)h(history)f(list.)63
-b(Eac)m(h)38 b(pattern)g(is)630 4682 y(anc)m(hored)30
+b(Eac)m(h)38 b(pattern)g(is)630 5011 y(anc)m(hored)30
b(at)h(the)f(b)s(eginning)g(of)g(the)g(line)h(and)e(m)m(ust)h(matc)m(h)
-h(the)f(complete)i(line)e(\(Bash)630 4792 y(do)s(es)h(not)h(implicitly)
+h(the)f(complete)i(line)e(\(Bash)630 5121 y(do)s(es)h(not)h(implicitly)
g(app)s(end)e(a)i(`)p Ft(*)p Fu('\).)44 b(Eac)m(h)32
b(pattern)g(is)f(tested)h(against)h(the)f(line)f(after)630
-4902 y(the)39 b(c)m(hec)m(ks)h(sp)s(eci\014ed)f(b)m(y)g
+5230 y(the)39 b(c)m(hec)m(ks)h(sp)s(eci\014ed)f(b)m(y)g
Ft(HISTCONTROL)c Fu(are)40 b(applied.)66 b(In)38 b(addition)h(to)h(the)
-f(normal)630 5011 y(shell)k(pattern)g(matc)m(hing)h(c)m(haracters,)k(`)
+f(normal)630 5340 y(shell)k(pattern)g(matc)m(hing)h(c)m(haracters,)k(`)
p Ft(&)p Fu(')43 b(matc)m(hes)h(the)g(previous)e(history)h(line.)79
-b(A)630 5121 y(bac)m(kslash)29 b(escap)s(es)g(the)g(`)p
-Ft(&)p Fu(';)g(the)g(bac)m(kslash)g(is)g(remo)m(v)m(ed)g(b)s(efore)f
-(attempting)i(a)f(matc)m(h.)630 5230 y(If)j(the)g(\014rst)g(line)g(of)h
-(a)f(m)m(ulti-line)i(comp)s(ound)c(command)i(w)m(as)h(sa)m(v)m(ed,)h
-(the)e(second)h(and)630 5340 y(subsequen)m(t)e(lines)h(are)g(not)g
-(tested,)i(and)d(are)h(added)f(to)i(the)f(history)g(regardless)g(of)g
-(the)p eop end
+b(A)p eop end
%%Page: 95 101
TeXDict begin 95 100 bop 150 -116 a Fu(Chapter)30 b(5:)41
-b(Shell)30 b(V)-8 b(ariables)2459 b(95)630 299 y(v)-5
+b(Shell)30 b(V)-8 b(ariables)2459 b(95)630 299 y(bac)m(kslash)29
+b(escap)s(es)g(the)g(`)p Ft(&)p Fu(';)g(the)g(bac)m(kslash)g(is)g(remo)
+m(v)m(ed)g(b)s(efore)f(attempting)i(a)f(matc)m(h.)630
+408 y(If)j(the)g(\014rst)g(line)g(of)h(a)f(m)m(ulti-line)i(comp)s(ound)
+c(command)i(w)m(as)h(sa)m(v)m(ed,)h(the)e(second)h(and)630
+518 y(subsequen)m(t)e(lines)h(are)g(not)g(tested,)i(and)d(are)h(added)f
+(to)i(the)f(history)g(regardless)g(of)g(the)630 628 y(v)-5
b(alue)28 b(of)f Ft(HISTIGNORE)p Fu(.)37 b(If)27 b(the)g(\014rst)g
(line)h(w)m(as)f(not)h(sa)m(v)m(ed,)h(the)f(second)f(and)g(subsequen)m
-(t)630 408 y(lines)35 b(of)g(the)f(command)h(are)g(not)g(sa)m(v)m(ed)g
+(t)630 737 y(lines)35 b(of)g(the)f(command)h(are)g(not)g(sa)m(v)m(ed)g
(either.)54 b(The)34 b(pattern)h(matc)m(hing)h(honors)e(the)630
-518 y(setting)d(of)g(the)g Ft(extglob)d Fu(shell)j(option.)630
-651 y Ft(HISTIGNORE)g Fu(subsumes)h(some)i(of)g(the)g(function)g(of)g
+847 y(setting)d(of)g(the)g Ft(extglob)d Fu(shell)j(option.)630
+976 y Ft(HISTIGNORE)g Fu(subsumes)h(some)i(of)g(the)g(function)g(of)g
Ft(HISTCONTROL)p Fu(.)48 b(A)34 b(pattern)g(of)g(`)p
-Ft(&)p Fu(')630 760 y(is)28 b(iden)m(tical)h(to)f Ft(ignoredups)p
+Ft(&)p Fu(')630 1085 y(is)28 b(iden)m(tical)h(to)f Ft(ignoredups)p
Fu(,)d(and)i(a)h(pattern)g(of)f(`)p Ft([)k(]*)p Fu(')c(is)g(iden)m
-(tical)j(to)e Ft(ignorespace)p Fu(.)630 870 y(Com)m(bining)c(these)h(t)
-m(w)m(o)g(patterns,)h(separating)f(them)f(with)g(a)h(colon,)i(pro)m
-(vides)d(the)h(func-)630 979 y(tionalit)m(y)33 b(of)d
-Ft(ignoreboth)p Fu(.)150 1135 y Ft(HISTSIZE)96 b Fu(The)37
+(tical)j(to)e Ft(ignorespace)p Fu(.)630 1195 y(Com)m(bining)c(these)h
+(t)m(w)m(o)g(patterns,)h(separating)f(them)f(with)g(a)h(colon,)i(pro)m
+(vides)d(the)h(func-)630 1305 y(tionalit)m(y)33 b(of)d
+Ft(ignoreboth)p Fu(.)150 1453 y Ft(HISTSIZE)96 b Fu(The)37
b(maxim)m(um)g(n)m(um)m(b)s(er)e(of)j(commands)f(to)g(remem)m(b)s(er)g
-(on)g(the)g(history)g(list.)62 b(If)37 b(the)630 1245
+(on)g(the)g(history)g(list.)62 b(If)37 b(the)630 1562
y(v)-5 b(alue)26 b(is)g(0,)i(commands)d(are)h(not)h(sa)m(v)m(ed)g(in)e
(the)h(history)g(list.)40 b(Numeric)26 b(v)-5 b(alues)26
-b(less)g(than)630 1354 y(zero)i(result)e(in)h(ev)m(ery)g(command)g(b)s
+b(less)g(than)630 1672 y(zero)i(result)e(in)h(ev)m(ery)g(command)g(b)s
(eing)f(sa)m(v)m(ed)i(on)f(the)g(history)f(list)i(\(there)f(is)g(no)g
-(limit\).)630 1464 y(The)j(shell)g(sets)h(the)g(default)f(v)-5
+(limit\).)630 1782 y(The)j(shell)g(sets)h(the)g(default)f(v)-5
b(alue)31 b(to)g(500)h(after)f(reading)f(an)m(y)h(startup)f(\014les.)
-150 1620 y Ft(HISTTIMEFORMAT)630 1729 y Fu(If)44 b(this)g(v)-5
+150 1930 y Ft(HISTTIMEFORMAT)630 2039 y Fu(If)44 b(this)g(v)-5
b(ariable)45 b(is)f(set)g(and)g(not)g(n)m(ull,)k(its)d(v)-5
b(alue)44 b(is)g(used)g(as)g(a)h(format)f(string)g(for)630
-1839 y Ft(strftime)p Fu(\(3\))37 b(to)i(prin)m(t)g(the)f(time)h(stamp)f
+2149 y Ft(strftime)p Fu(\(3\))37 b(to)i(prin)m(t)g(the)f(time)h(stamp)f
(asso)s(ciated)i(with)e(eac)m(h)i(history)e(en)m(try)h(dis-)630
-1948 y(pla)m(y)m(ed)k(b)m(y)f(the)h Ft(history)d Fu(builtin.)76
+2259 y(pla)m(y)m(ed)k(b)m(y)f(the)h Ft(history)d Fu(builtin.)76
b(If)42 b(this)g(v)-5 b(ariable)43 b(is)g(set,)j(the)c(shell)h(writes)f
-(time)630 2058 y(stamps)32 b(to)g(the)h(history)e(\014le)i(so)f(they)g
+(time)630 2368 y(stamps)32 b(to)g(the)h(history)e(\014le)i(so)f(they)g
(ma)m(y)g(b)s(e)g(preserv)m(ed)f(across)i(shell)f(sessions.)46
-b(This)630 2168 y(uses)32 b(the)h(history)g(commen)m(t)h(c)m(haracter)g
+b(This)630 2478 y(uses)32 b(the)h(history)g(commen)m(t)h(c)m(haracter)g
(to)g(distinguish)e(timestamps)h(from)f(other)h(his-)630
-2277 y(tory)e(lines.)150 2433 y Ft(HOSTFILE)96 b Fu(Con)m(tains)33
+2587 y(tory)e(lines.)150 2736 y Ft(HOSTFILE)96 b Fu(Con)m(tains)33
b(the)g(name)f(of)h(a)g(\014le)f(in)g(the)h(same)g(format)g(as)f
-Ft(/etc/hosts)e Fu(that)j(should)f(b)s(e)630 2543 y(read)21
+Ft(/etc/hosts)e Fu(that)j(should)f(b)s(e)630 2845 y(read)21
b(when)g(the)g(shell)h(needs)f(to)h(complete)h(a)e(hostname.)38
-b(The)21 b(list)h(of)g(p)s(ossible)f(hostname)630 2652
+b(The)21 b(list)h(of)g(p)s(ossible)f(hostname)630 2955
y(completions)27 b(ma)m(y)f(b)s(e)f(c)m(hanged)h(while)f(the)h(shell)g
-(is)f(running;)h(the)g(next)f(time)i(hostname)630 2762
+(is)f(running;)h(the)g(next)f(time)i(hostname)630 3064
y(completion)33 b(is)g(attempted)g(after)g(the)f(v)-5
b(alue)33 b(is)f(c)m(hanged,)i(Bash)e(adds)f(the)i(con)m(ten)m(ts)h(of)
-630 2871 y(the)h(new)f(\014le)g(to)h(the)g(existing)h(list.)53
+630 3174 y(the)h(new)f(\014le)g(to)h(the)g(existing)h(list.)53
b(If)34 b Ft(HOSTFILE)e Fu(is)j(set,)h(but)e(has)g(no)h(v)-5
-b(alue,)36 b(or)e(do)s(es)630 2981 y(not)d(name)f(a)h(readable)g
+b(alue,)36 b(or)e(do)s(es)630 3284 y(not)d(name)f(a)h(readable)g
(\014le,)g(Bash)f(attempts)i(to)f(read)f Ft(/etc/hosts)e
-Fu(to)j(obtain)g(the)f(list)630 3091 y(of)38 b(p)s(ossible)f(hostname)g
+Fu(to)j(obtain)g(the)f(list)630 3393 y(of)38 b(p)s(ossible)f(hostname)g
(completions.)63 b(When)37 b Ft(HOSTFILE)e Fu(is)j(unset,)h(Bash)e
-(clears)i(the)630 3200 y(hostname)31 b(list.)150 3356
+(clears)i(the)630 3503 y(hostname)31 b(list.)150 3651
y Ft(HOSTNAME)96 b Fu(The)30 b(name)g(of)h(the)f(curren)m(t)h(host.)150
-3512 y Ft(HOSTTYPE)96 b Fu(A)30 b(string)h(describing)f(the)g(mac)m
-(hine)h(Bash)g(is)f(running)f(on.)150 3667 y Ft(IGNOREEOF)630
-3777 y Fu(Con)m(trols)e(the)h(action)g(of)f(the)g(shell)g(on)g(receipt)
+3799 y Ft(HOSTTYPE)96 b Fu(A)30 b(string)h(describing)f(the)g(mac)m
+(hine)h(Bash)g(is)f(running)f(on.)150 3948 y Ft(IGNOREEOF)630
+4057 y Fu(Con)m(trols)e(the)h(action)g(of)f(the)g(shell)g(on)g(receipt)
h(of)f(an)g Ft(EOF)f Fu(c)m(haracter)i(as)g(the)f(sole)h(input.)630
-3886 y(If)33 b(set,)i(the)e(v)-5 b(alue)34 b(is)f(the)h(n)m(um)m(b)s
+4167 y(If)33 b(set,)i(the)e(v)-5 b(alue)34 b(is)f(the)h(n)m(um)m(b)s
(er)e(of)h(consecutiv)m(e)j Ft(EOF)c Fu(c)m(haracters)j(that)f(can)f(b)
-s(e)g(read)630 3996 y(as)h(the)g(\014rst)f(c)m(haracter)j(on)d(an)h
+s(e)g(read)630 4276 y(as)h(the)g(\014rst)f(c)m(haracter)j(on)d(an)h
(input)f(line)h(b)s(efore)g(Bash)g(exits.)51 b(If)34
-b(the)g(v)-5 b(ariable)35 b(is)e(set)630 4106 y(but)e(do)s(es)g(not)h
+b(the)g(v)-5 b(ariable)35 b(is)e(set)630 4386 y(but)e(do)s(es)g(not)h
(ha)m(v)m(e)h(a)f(n)m(umeric)f(v)-5 b(alue,)33 b(or)e(the)h(v)-5
b(alue)32 b(is)f(n)m(ull,)i(then)e(the)h(default)f(is)h(10.)630
-4215 y(If)e(the)g(v)-5 b(ariable)31 b(is)g(unset,)f(then)g
+4495 y(If)e(the)g(v)-5 b(ariable)31 b(is)g(unset,)f(then)g
Ft(EOF)f Fu(signi\014es)h(the)h(end)e(of)i(input)e(to)i(the)g(shell.)40
-b(This)30 b(is)630 4325 y(only)g(in)h(e\013ect)g(for)g(in)m(teractiv)m
-(e)i(shells.)150 4481 y Ft(INPUTRC)144 b Fu(The)68 b(name)h(of)f(the)h
+b(This)30 b(is)630 4605 y(only)g(in)h(e\013ect)g(for)g(in)m(teractiv)m
+(e)i(shells.)150 4753 y Ft(INPUTRC)144 b Fu(The)68 b(name)h(of)f(the)h
(Readline)g(initialization)j(\014le,)78 b(o)m(v)m(erriding)69
-b(the)g(default)g(of)630 4590 y Ft(~/.inputrc)p Fu(.)150
-4746 y Ft(INSIDE_EMACS)630 4855 y Fu(If)29 b(Bash)h(\014nds)e(this)h(v)
+b(the)g(default)g(of)630 4863 y Ft(~/.inputrc)p Fu(.)150
+5011 y Ft(INSIDE_EMACS)630 5121 y Fu(If)29 b(Bash)h(\014nds)e(this)h(v)
-5 b(ariable)31 b(in)e(the)h(en)m(vironmen)m(t)g(when)e(the)i(shell)g
-(starts,)g(it)g(assumes)630 4965 y(that)i(the)g(shell)g(is)f(running)f
+(starts,)g(it)g(assumes)630 5230 y(that)i(the)g(shell)g(is)f(running)f
(in)i(an)f(Emacs)h(shell)g(bu\013er)e(and)h(ma)m(y)i(disable)e(line)h
-(editing)630 5075 y(dep)s(ending)d(on)h(the)h(v)-5 b(alue)31
-b(of)f Ft(TERM)p Fu(.)150 5230 y Ft(LANG)288 b Fu(Used)28
-b(to)h(determine)f(the)g(lo)s(cale)h(category)h(for)e(an)m(y)h
-(category)h(not)e(sp)s(eci\014cally)g(selected)630 5340
-y(with)i(a)h(v)-5 b(ariable)31 b(starting)g(with)f Ft(LC_)p
-Fu(.)p eop end
+(editing)630 5340 y(dep)s(ending)d(on)h(the)h(v)-5 b(alue)31
+b(of)f Ft(TERM)p Fu(.)p eop end
%%Page: 96 102
TeXDict begin 96 101 bop 150 -116 a Fu(Chapter)30 b(5:)41
-b(Shell)30 b(V)-8 b(ariables)2459 b(96)150 299 y Ft(LC_ALL)192
-b Fu(This)28 b(v)-5 b(ariable)29 b(o)m(v)m(errides)h(the)f(v)-5
-b(alue)29 b(of)g Ft(LANG)f Fu(and)g(an)m(y)h(other)g
-Ft(LC_)f Fu(v)-5 b(ariable)29 b(sp)s(ecifying)630 408
-y(a)i(lo)s(cale)h(category)-8 b(.)150 565 y Ft(LC_COLLATE)630
-675 y Fu(This)37 b(v)-5 b(ariable)38 b(determines)g(the)g(collation)i
-(order)d(used)g(when)f(sorting)i(the)g(results)g(of)630
-784 y(\014lename)e(expansion,)i(and)e(determines)g(the)h(b)s(eha)m
-(vior)f(of)g(range)h(expressions,)h(equiv-)630 894 y(alence)e(classes,)
-h(and)e(collating)i(sequences)e(within)f(\014lename)h(expansion)g(and)f
-(pattern)630 1003 y(matc)m(hing)d(\(see)h(Section)f(3.5.8)h([Filename)g
-(Expansion],)e(page)h(39\).)150 1160 y Ft(LC_CTYPE)96
-b Fu(This)36 b(v)-5 b(ariable)37 b(determines)f(the)h(in)m
-(terpretation)h(of)f(c)m(haracters)h(and)e(the)g(b)s(eha)m(vior)h(of)
-630 1270 y(c)m(haracter)46 b(classes)g(within)e(\014lename)h(expansion)
-g(and)f(pattern)h(matc)m(hing)h(\(see)f(Sec-)630 1379
-y(tion)31 b(3.5.8)h([Filename)g(Expansion],)e(page)h(39\).)150
-1536 y Ft(LC_MESSAGES)630 1645 y Fu(This)25 b(v)-5 b(ariable)27
+b(Shell)30 b(V)-8 b(ariables)2459 b(96)150 299 y Ft(LANG)288
+b Fu(Used)28 b(to)h(determine)f(the)g(lo)s(cale)h(category)h(for)e(an)m
+(y)h(category)h(not)e(sp)s(eci\014cally)g(selected)630
+408 y(with)i(a)h(v)-5 b(ariable)31 b(starting)g(with)f
+Ft(LC_)p Fu(.)150 573 y Ft(LC_ALL)192 b Fu(This)28 b(v)-5
+b(ariable)29 b(o)m(v)m(errides)h(the)f(v)-5 b(alue)29
+b(of)g Ft(LANG)f Fu(and)g(an)m(y)h(other)g Ft(LC_)f Fu(v)-5
+b(ariable)29 b(sp)s(ecifying)630 682 y(a)i(lo)s(cale)h(category)-8
+b(.)150 847 y Ft(LC_COLLATE)630 956 y Fu(This)37 b(v)-5
+b(ariable)38 b(determines)g(the)g(collation)i(order)d(used)g(when)f
+(sorting)i(the)g(results)g(of)630 1066 y(\014lename)e(expansion,)i(and)
+e(determines)g(the)h(b)s(eha)m(vior)f(of)g(range)h(expressions,)h
+(equiv-)630 1176 y(alence)e(classes,)h(and)e(collating)i(sequences)e
+(within)f(\014lename)h(expansion)g(and)f(pattern)630
+1285 y(matc)m(hing)d(\(see)h(Section)f(3.5.8)h([Filename)g(Expansion],)
+e(page)h(39\).)150 1450 y Ft(LC_CTYPE)96 b Fu(This)36
+b(v)-5 b(ariable)37 b(determines)f(the)h(in)m(terpretation)h(of)f(c)m
+(haracters)h(and)e(the)g(b)s(eha)m(vior)h(of)630 1559
+y(c)m(haracter)46 b(classes)g(within)e(\014lename)h(expansion)g(and)f
+(pattern)h(matc)m(hing)h(\(see)f(Sec-)630 1669 y(tion)31
+b(3.5.8)h([Filename)g(Expansion],)e(page)h(39\).)150
+1833 y Ft(LC_MESSAGES)630 1943 y Fu(This)25 b(v)-5 b(ariable)27
b(determines)f(the)g(lo)s(cale)i(used)d(to)i(translate)g(double-quoted)
-f(strings)g(pre-)630 1755 y(ceded)31 b(b)m(y)f(a)h(`)p
+f(strings)g(pre-)630 2052 y(ceded)31 b(b)m(y)f(a)h(`)p
Ft($)p Fu(')f(\(see)h(Section)h(3.1.2.5)g([Lo)s(cale)g(T)-8
-b(ranslation],)32 b(page)f(7\).)150 1911 y Ft(LC_NUMERIC)630
-2021 y Fu(This)f(v)-5 b(ariable)31 b(determines)f(the)h(lo)s(cale)h
+b(ranslation],)32 b(page)f(7\).)150 2217 y Ft(LC_NUMERIC)630
+2326 y Fu(This)f(v)-5 b(ariable)31 b(determines)f(the)h(lo)s(cale)h
(category)g(used)e(for)g(n)m(um)m(b)s(er)f(formatting.)150
-2178 y Ft(LC_TIME)144 b Fu(This)25 b(v)-5 b(ariable)26
+2491 y Ft(LC_TIME)144 b Fu(This)25 b(v)-5 b(ariable)26
b(determines)g(the)g(lo)s(cale)h(category)h(used)d(for)g(data)h(and)f
-(time)i(formatting.)150 2334 y Ft(LINENO)192 b Fu(The)30
+(time)i(formatting.)150 2655 y Ft(LINENO)192 b Fu(The)30
b(line)h(n)m(um)m(b)s(er)e(in)h(the)g(script)h(or)f(shell)h(function)f
(curren)m(tly)g(executing.)42 b(Line)30 b(n)m(um-)630
-2444 y(b)s(ers)c(start)h(with)g(1.)40 b(When)27 b(not)g(in)g(a)g
+2765 y(b)s(ers)c(start)h(with)g(1.)40 b(When)27 b(not)g(in)g(a)g
(script)g(or)g(function,)h(the)f(v)-5 b(alue)28 b(is)f(not)g(guaran)m
-(teed)630 2553 y(to)k(b)s(e)e(meaningful.)40 b(If)30
+(teed)630 2874 y(to)k(b)s(e)e(meaningful.)40 b(If)30
b Ft(LINENO)e Fu(is)i(unset,)g(it)g(loses)h(its)f(sp)s(ecial)g(prop)s
-(erties,)g(ev)m(en)h(if)e(it)i(is)630 2663 y(subsequen)m(tly)f(reset.)
-150 2819 y Ft(LINES)240 b Fu(Used)43 b(b)m(y)g(the)g
+(erties,)g(ev)m(en)h(if)e(it)i(is)630 2984 y(subsequen)m(tly)f(reset.)
+150 3148 y Ft(LINES)240 b Fu(Used)43 b(b)m(y)g(the)g
Ft(select)e Fu(command)i(to)g(determine)g(the)g(column)g(length)g(for)g
-(prin)m(ting)630 2929 y(selection)c(lists.)63 b(Automatically)41
+(prin)m(ting)630 3258 y(selection)c(lists.)63 b(Automatically)41
b(set)d(if)f(the)h Ft(checkwinsize)d Fu(option)j(is)f(enabled)h(\(see)
-630 3039 y(Section)44 b(4.3.2)h([The)e(Shopt)g(Builtin],)k(page)d
+630 3367 y(Section)44 b(4.3.2)h([The)e(Shopt)g(Builtin],)k(page)d
(78\),)k(or)43 b(in)g(an)g(in)m(teractiv)m(e)j(shell)e(up)s(on)630
-3148 y(receipt)31 b(of)g(a)g Ft(SIGWINCH)p Fu(.)150 3305
+3477 y(receipt)31 b(of)g(a)g Ft(SIGWINCH)p Fu(.)150 3641
y Ft(MACHTYPE)96 b Fu(A)26 b(string)g(that)h(fully)f(describ)s(es)f
(the)h(system)g(t)m(yp)s(e)h(on)f(whic)m(h)f(Bash)i(is)f(executing,)i
-(in)e(the)630 3414 y(standard)k Fm(gnu)g Fr(cpu-compan)m(y-system)h
-Fu(format.)150 3571 y Ft(MAILCHECK)630 3680 y Fu(Ho)m(w)d(often)g(\(in)
+(in)e(the)630 3751 y(standard)k Fm(gnu)g Fr(cpu-compan)m(y-system)h
+Fu(format.)150 3915 y Ft(MAILCHECK)630 4025 y Fu(Ho)m(w)d(often)g(\(in)
g(seconds\))g(that)g(the)f(shell)h(should)f(c)m(hec)m(k)i(for)e(mail)h
-(in)f(the)h(\014les)g(sp)s(eci\014ed)630 3790 y(in)i(the)h
+(in)f(the)h(\014les)g(sp)s(eci\014ed)630 4134 y(in)i(the)h
Ft(MAILPATH)e Fu(or)i Ft(MAIL)e Fu(v)-5 b(ariables.)43
b(The)30 b(default)h(is)f(60)i(seconds.)42 b(When)30
-b(it)h(is)g(time)630 3900 y(to)37 b(c)m(hec)m(k)h(for)e(mail,)j(the)e
+b(it)h(is)g(time)630 4244 y(to)37 b(c)m(hec)m(k)h(for)e(mail,)j(the)e
(shell)f(do)s(es)g(so)h(b)s(efore)f(displa)m(ying)h(the)f(primary)g
-(prompt.)57 b(If)630 4009 y(this)37 b(v)-5 b(ariable)38
+(prompt.)57 b(If)630 4354 y(this)37 b(v)-5 b(ariable)38
b(is)f(unset,)h(or)f(set)h(to)g(a)f(v)-5 b(alue)38 b(that)f(is)g(not)h
-(a)f(n)m(um)m(b)s(er)f(greater)i(than)f(or)630 4119 y(equal)31
+(a)f(n)m(um)m(b)s(er)f(greater)i(than)f(or)630 4463 y(equal)31
b(to)g(zero,)g(the)g(shell)g(disables)f(mail)h(c)m(hec)m(king.)150
-4275 y Ft(MAPFILE)144 b Fu(An)35 b(arra)m(y)h(v)-5 b(ariable)36
+4628 y Ft(MAPFILE)144 b Fu(An)35 b(arra)m(y)h(v)-5 b(ariable)36
b(created)g(to)h(hold)e(the)g(text)i(read)e(b)m(y)g(the)h
-Ft(mapfile)d Fu(builtin)i(when)630 4385 y(no)30 b(v)-5
-b(ariable)31 b(name)g(is)f(supplied.)150 4542 y Ft(OLDPWD)192
+Ft(mapfile)d Fu(builtin)i(when)630 4737 y(no)30 b(v)-5
+b(ariable)31 b(name)g(is)f(supplied.)150 4902 y Ft(OLDPWD)192
b Fu(The)30 b(previous)g(w)m(orking)g(directory)h(as)g(set)g(b)m(y)f
-(the)h Ft(cd)e Fu(builtin.)150 4698 y Ft(OPTERR)192 b
+(the)h Ft(cd)e Fu(builtin.)150 5066 y Ft(OPTERR)192 b
Fu(If)35 b(set)i(to)f(the)h(v)-5 b(alue)36 b(1,)i(Bash)e(displa)m(ys)g
(error)f(messages)i(generated)g(b)m(y)f(the)g Ft(getopts)630
-4808 y Fu(builtin)30 b(command.)40 b Ft(OPTERR)29 b Fu(is)i
+5176 y Fu(builtin)30 b(command.)40 b Ft(OPTERR)29 b Fu(is)i
(initialized)h(to)f(1)g(eac)m(h)g(time)g(the)g(shell)f(is)h(in)m(v)m
-(ok)m(ed.)150 4964 y Ft(OSTYPE)192 b Fu(A)30 b(string)h(describing)f
-(the)g(op)s(erating)h(system)g(Bash)f(is)h(running)d(on.)150
-5121 y Ft(PIPESTATUS)630 5230 y Fu(An)33 b(arra)m(y)g(v)-5
-b(ariable)34 b(\(see)g(Section)g(6.7)g([Arra)m(ys],)h(page)f(110\))h
-(con)m(taining)f(a)g(list)g(of)f(exit)630 5340 y(status)47
-b(v)-5 b(alues)46 b(from)g(the)g(commands)g(in)g(the)g(most-recen)m
-(tly-executed)k(foreground)p eop end
+(ok)m(ed.)150 5340 y Ft(OSTYPE)192 b Fu(A)30 b(string)h(describing)f
+(the)g(op)s(erating)h(system)g(Bash)f(is)h(running)d(on.)p
+eop end
%%Page: 97 103
TeXDict begin 97 102 bop 150 -116 a Fu(Chapter)30 b(5:)41
-b(Shell)30 b(V)-8 b(ariables)2459 b(97)630 299 y(pip)s(eline,)36
+b(Shell)30 b(V)-8 b(ariables)2459 b(97)150 299 y Ft(PIPESTATUS)630
+408 y Fu(An)33 b(arra)m(y)g(v)-5 b(ariable)34 b(\(see)g(Section)g(6.7)g
+([Arra)m(ys],)h(page)f(110\))h(con)m(taining)f(a)g(list)g(of)f(exit)630
+518 y(status)47 b(v)-5 b(alues)46 b(from)g(the)g(commands)g(in)g(the)g
+(most-recen)m(tly-executed)k(foreground)630 628 y(pip)s(eline,)36
b(whic)m(h)f(ma)m(y)g(consist)h(of)f(only)h(a)f(simple)g(command)g
-(\(see)h(Section)g(3.2)g([Shell)630 408 y(Commands],)49
+(\(see)h(Section)g(3.2)g([Shell)630 737 y(Commands],)49
b(page)d(9\).)88 b(Bash)46 b(sets)g Ft(PIPESTATUS)c Fu(after)47
-b(executing)g(m)m(ulti-elemen)m(t)630 518 y(pip)s(elines,)g(timed)c
+b(executing)g(m)m(ulti-elemen)m(t)630 847 y(pip)s(elines,)g(timed)c
(and)h(negated)g(pip)s(elines,)j(simple)c(commands,)k(subshells)c
-(created)630 628 y(with)f(the)h(`)p Ft(\()p Fu(')f(op)s(erator,)k(the)c
+(created)630 956 y(with)f(the)h(`)p Ft(\()p Fu(')f(op)s(erator,)k(the)c
Ft([[)g Fu(and)g Ft(\(\()g Fu(comp)s(ound)f(commands,)k(and)c(after)i
-(error)630 737 y(conditions)31 b(that)g(result)f(in)g(the)h(shell)f(ab)
-s(orting)h(command)f(execution.)150 907 y Ft(POSIXLY_CORRECT)630
-1016 y Fu(If)i(this)g(v)-5 b(ariable)34 b(is)e(in)g(the)h(en)m
+(error)630 1066 y(conditions)31 b(that)g(result)f(in)g(the)h(shell)f
+(ab)s(orting)h(command)f(execution.)150 1241 y Ft(POSIXLY_CORRECT)630
+1351 y Fu(If)i(this)g(v)-5 b(ariable)34 b(is)e(in)g(the)h(en)m
(vironmen)m(t)g(when)e(Bash)i(starts,)g(the)g(shell)g(en)m(ters)g
-Fm(posix)630 1126 y Fu(mo)s(de)46 b(\(see)h(Section)g(6.11)g([Bash)g
+Fm(posix)630 1461 y Fu(mo)s(de)46 b(\(see)h(Section)g(6.11)g([Bash)g
(POSIX)e(Mo)s(de],)50 b(page)d(116\))h(b)s(efore)e(reading)g(the)630
-1235 y(startup)38 b(\014les,)j(as)e(if)g(the)g Ft(--posix)d
+1570 y(startup)38 b(\014les,)j(as)e(if)g(the)g Ft(--posix)d
Fu(in)m(v)m(o)s(cation)41 b(option)e(had)f(b)s(een)g(supplied.)64
-b(If)39 b(it)g(is)630 1345 y(set)31 b(while)f(the)h(shell)f(is)h
+b(If)39 b(it)g(is)630 1680 y(set)31 b(while)f(the)h(shell)f(is)h
(running,)e(Bash)h(enables)h Fm(posix)f Fu(mo)s(de,)g(as)g(if)h(the)f
-(command)870 1484 y Ft(set)47 b(-o)g(posix)630 1624 y
+(command)870 1822 y Ft(set)47 b(-o)g(posix)630 1965 y
Fu(had)33 b(b)s(een)g(executed.)51 b(When)33 b(the)h(shell)f(en)m(ters)
h Fm(posix)f Fu(mo)s(de,)h(it)g(sets)g(this)g(v)-5 b(ariable)34
-b(if)630 1733 y(it)d(w)m(as)g(not)f(already)h(set.)150
-1903 y Ft(PPID)288 b Fu(The)30 b(pro)s(cess)g Fm(id)g
+b(if)630 2074 y(it)d(w)m(as)g(not)f(already)h(set.)150
+2250 y Ft(PPID)288 b Fu(The)30 b(pro)s(cess)g Fm(id)g
Fu(of)h(the)f(shell's)h(paren)m(t)g(pro)s(cess.)40 b(This)30
-b(v)-5 b(ariable)31 b(is)f(readonly)-8 b(.)150 2072 y
-Ft(PROMPT_COMMAND)630 2182 y Fu(If)23 b(this)h(v)-5 b(ariable)24
+b(v)-5 b(ariable)31 b(is)f(readonly)-8 b(.)150 2425 y
+Ft(PROMPT_COMMAND)630 2534 y Fu(If)23 b(this)h(v)-5 b(ariable)24
b(is)g(set,)i(and)d(is)h(an)f(arra)m(y)-8 b(,)27 b(the)d(v)-5
b(alue)24 b(of)g(eac)m(h)g(set)h(elemen)m(t)g(is)f(in)m(terpreted)630
-2291 y(as)29 b(a)g(command)f(to)i(execute)g(b)s(efore)e(prin)m(ting)h
+2644 y(as)29 b(a)g(command)f(to)i(execute)g(b)s(efore)e(prin)m(ting)h
(the)g(primary)f(prompt)f(\()p Ft($PS1)p Fu(\).)40 b(If)28
-b(this)h(is)630 2401 y(set)c(but)f(not)g(an)h(arra)m(y)g(v)-5
+b(this)h(is)630 2754 y(set)c(but)f(not)g(an)h(arra)m(y)g(v)-5
b(ariable,)26 b(its)f(v)-5 b(alue)25 b(is)f(used)g(as)h(a)f(command)g
-(to)i(execute)f(instead.)150 2570 y Ft(PROMPT_DIRTRIM)630
-2680 y Fu(If)i(set)g(to)h(a)g(n)m(um)m(b)s(er)e(greater)i(than)f(zero,)
+(to)i(execute)f(instead.)150 2929 y Ft(PROMPT_DIRTRIM)630
+3039 y Fu(If)i(set)g(to)h(a)g(n)m(um)m(b)s(er)e(greater)i(than)f(zero,)
i(the)e(v)-5 b(alue)28 b(is)f(used)g(as)g(the)h(n)m(um)m(b)s(er)e(of)h
-(trailing)630 2790 y(directory)c(comp)s(onen)m(ts)h(to)f(retain)h(when)
+(trailing)630 3148 y(directory)c(comp)s(onen)m(ts)h(to)f(retain)h(when)
e(expanding)g(the)h Ft(\\w)g Fu(and)f Ft(\\W)g Fu(prompt)h(string)f
-(es-)630 2899 y(cap)s(es)i(\(see)h(Section)g(6.9)g([Con)m(trolling)g
+(es-)630 3258 y(cap)s(es)i(\(see)h(Section)g(6.9)g([Con)m(trolling)g
(the)f(Prompt],)i(page)e(114\).)41 b(Characters)24 b(remo)m(v)m(ed)630
-3009 y(are)31 b(replaced)g(with)f(an)g(ellipsis.)150
-3178 y Ft(PS0)336 b Fu(The)32 b(v)-5 b(alue)33 b(of)g(this)g(parameter)
+3367 y(are)31 b(replaced)g(with)f(an)g(ellipsis.)150
+3543 y Ft(PS0)336 b Fu(The)32 b(v)-5 b(alue)33 b(of)g(this)g(parameter)
g(is)g(expanded)e(lik)m(e)j Ft(PS1)e Fu(and)g(displa)m(y)m(ed)i(b)m(y)e
-(in)m(teractiv)m(e)630 3288 y(shells)e(after)h(reading)g(a)g(command)f
+(in)m(teractiv)m(e)630 3652 y(shells)e(after)h(reading)g(a)g(command)f
(and)f(b)s(efore)h(the)h(command)f(is)h(executed.)150
-3457 y Ft(PS3)336 b Fu(The)34 b(v)-5 b(alue)35 b(of)f(this)g(v)-5
+3828 y Ft(PS3)336 b Fu(The)34 b(v)-5 b(alue)35 b(of)f(this)g(v)-5
b(ariable)35 b(is)g(used)e(as)i(the)f(prompt)g(for)g(the)g
-Ft(select)f Fu(command.)52 b(If)630 3567 y(this)30 b(v)-5
+Ft(select)f Fu(command.)52 b(If)630 3937 y(this)30 b(v)-5
b(ariable)31 b(is)g(not)f(set,)i(the)e Ft(select)f Fu(command)h
-(prompts)f(with)h(`)p Ft(#?)g Fu(')150 3736 y Ft(PS4)336
+(prompts)f(with)h(`)p Ft(#?)g Fu(')150 4113 y Ft(PS4)336
b Fu(The)38 b(v)-5 b(alue)39 b(of)g(this)g(parameter)g(is)g(expanded)f
(lik)m(e)i Ft(PS1)e Fu(and)g(the)h(expanded)f(v)-5 b(alue)39
-b(is)630 3846 y(the)c(prompt)f(prin)m(ted)g(b)s(efore)g(the)h(command)f
+b(is)630 4222 y(the)c(prompt)f(prin)m(ted)g(b)s(efore)g(the)h(command)f
(line)h(is)g(ec)m(ho)s(ed)g(when)f(the)h Ft(-x)f Fu(option)h(is)630
-3955 y(set)k(\(see)h(Section)g(4.3.1)g([The)f(Set)g(Builtin],)j(page)e
+4332 y(set)k(\(see)h(Section)g(4.3.1)g([The)f(Set)g(Builtin],)j(page)e
(74\).)67 b(The)38 b(\014rst)g(c)m(haracter)j(of)e(the)630
-4065 y(expanded)33 b(v)-5 b(alue)33 b(is)h(replicated)g(m)m(ultiple)g
+4441 y(expanded)33 b(v)-5 b(alue)33 b(is)h(replicated)g(m)m(ultiple)g
(times,)h(as)f(necessary)-8 b(,)35 b(to)f(indicate)g(m)m(ultiple)630
-4174 y(lev)m(els)e(of)e(indirection.)42 b(The)29 b(default)i(is)f(`)p
-Ft(+)h Fu('.)150 4344 y Ft(PWD)336 b Fu(The)30 b(curren)m(t)g(w)m
+4551 y(lev)m(els)e(of)e(indirection.)42 b(The)29 b(default)i(is)f(`)p
+Ft(+)h Fu('.)150 4726 y Ft(PWD)336 b Fu(The)30 b(curren)m(t)g(w)m
(orking)h(directory)g(as)f(set)h(b)m(y)f(the)h Ft(cd)f
-Fu(builtin.)150 4513 y Ft(RANDOM)192 b Fu(Eac)m(h)26
+Fu(builtin.)150 4902 y Ft(RANDOM)192 b Fu(Eac)m(h)26
b(time)g(this)f(parameter)h(is)g(referenced,)g(it)g(expands)f(to)h(a)g
-(random)e(in)m(teger)j(b)s(et)m(w)m(een)630 4623 y(0)39
+(random)e(in)m(teger)j(b)s(et)m(w)m(een)630 5011 y(0)39
b(and)e(32767.)66 b(Assigning)39 b(a)f(v)-5 b(alue)39
b(to)f Ft(RANDOM)f Fu(initializes)j(\(seeds\))f(the)f(sequence)h(of)630
-4732 y(random)c(n)m(um)m(b)s(ers.)56 b(Seeding)36 b(the)g(random)f(n)m
+5121 y(random)c(n)m(um)m(b)s(ers.)56 b(Seeding)36 b(the)g(random)f(n)m
(um)m(b)s(er)g(generator)i(with)f(the)g(same)g(con-)630
-4842 y(stan)m(t)f(v)-5 b(alue)35 b(pro)s(duces)e(the)i(same)g(sequence)
+5230 y(stan)m(t)f(v)-5 b(alue)35 b(pro)s(duces)e(the)i(same)g(sequence)
f(of)h(v)-5 b(alues.)53 b(If)34 b Ft(RANDOM)f Fu(is)h(unset,)h(it)g
-(loses)630 4951 y(its)c(sp)s(ecial)g(prop)s(erties,)f(ev)m(en)h(if)f
-(it)h(is)f(subsequen)m(tly)g(reset.)150 5121 y Ft(READLINE_ARGUMENT)630
-5230 y Fu(An)m(y)37 b(n)m(umeric)f(argumen)m(t)h(giv)m(en)g(to)g(a)g
-(Readline)g(command)f(that)h(w)m(as)g(de\014ned)e(using)630
-5340 y(`)p Ft(bind)29 b(-x)p Fu(')h(\(see)i(Section)f(4.2)g([Bash)g
-(Builtins],)g(page)h(61,)f(when)e(it)i(w)m(as)g(in)m(v)m(ok)m(ed.)p
-eop end
+(loses)630 5340 y(its)c(sp)s(ecial)g(prop)s(erties,)f(ev)m(en)h(if)f
+(it)h(is)f(subsequen)m(tly)g(reset.)p eop end
%%Page: 98 104
TeXDict begin 98 103 bop 150 -116 a Fu(Chapter)30 b(5:)41
-b(Shell)30 b(V)-8 b(ariables)2459 b(98)150 299 y Ft(READLINE_LINE)630
-408 y Fu(The)27 b(con)m(ten)m(ts)i(of)f(the)g(Readline)g(line)g
-(bu\013er,)f(for)h(use)f(with)g(`)p Ft(bind)j(-x)p Fu(')d(\(see)h
-(Section)h(4.2)630 518 y([Bash)i(Builtins],)g(page)g(61\).)150
-676 y Ft(READLINE_MARK)630 786 y Fu(The)26 b(p)s(osition)h(of)g(the)g
-Fr(mark)32 b Fu(\(sa)m(v)m(ed)c(insertion)f(p)s(oin)m(t\))g(in)g(the)g
-(Readline)g(line)g(bu\013er,)g(for)630 896 y(use)36 b(with)f(`)p
+b(Shell)30 b(V)-8 b(ariables)2459 b(98)150 299 y Ft(READLINE_ARGUMENT)
+630 408 y Fu(An)m(y)37 b(n)m(umeric)f(argumen)m(t)h(giv)m(en)g(to)g(a)g
+(Readline)g(command)f(that)h(w)m(as)g(de\014ned)e(using)630
+518 y(`)p Ft(bind)29 b(-x)p Fu(')h(\(see)i(Section)f(4.2)g([Bash)g
+(Builtins],)g(page)h(61\))f(when)e(it)i(w)m(as)g(in)m(v)m(ok)m(ed.)150
+671 y Ft(READLINE_LINE)630 781 y Fu(The)c(con)m(ten)m(ts)i(of)f(the)g
+(Readline)g(line)g(bu\013er,)f(for)h(use)f(with)g(`)p
+Ft(bind)j(-x)p Fu(')d(\(see)h(Section)h(4.2)630 891 y([Bash)i
+(Builtins],)g(page)g(61\).)150 1044 y Ft(READLINE_MARK)630
+1154 y Fu(The)26 b(p)s(osition)h(of)g(the)g Fr(mark)32
+b Fu(\(sa)m(v)m(ed)c(insertion)f(p)s(oin)m(t\))g(in)g(the)g(Readline)g
+(line)g(bu\013er,)g(for)630 1263 y(use)36 b(with)f(`)p
Ft(bind)30 b(-x)p Fu(')35 b(\(see)i(Section)g(4.2)g([Bash)f(Builtins],)
-i(page)f(61\).)58 b(The)35 b(c)m(haracters)630 1005 y(b)s(et)m(w)m(een)
+i(page)f(61\).)58 b(The)35 b(c)m(haracters)630 1373 y(b)s(et)m(w)m(een)
c(the)g(insertion)f(p)s(oin)m(t)g(and)g(the)h(mark)f(are)h(often)f
-(called)i(the)f Fr(region)p Fu(.)150 1163 y Ft(READLINE_POINT)630
-1273 y Fu(The)23 b(p)s(osition)g(of)g(the)h(insertion)f(p)s(oin)m(t)g
+(called)i(the)f Fr(region)p Fu(.)150 1526 y Ft(READLINE_POINT)630
+1636 y Fu(The)23 b(p)s(osition)g(of)g(the)h(insertion)f(p)s(oin)m(t)g
(in)g(the)g(Readline)h(line)f(bu\013er,)h(for)f(use)g(with)g(`)p
-Ft(bind)630 1383 y(-x)p Fu(')30 b(\(see)h(Section)h(4.2)f([Bash)g
-(Builtins],)g(page)g(61\).)150 1541 y Ft(REPLY)240 b
+Ft(bind)630 1745 y(-x)p Fu(')30 b(\(see)h(Section)h(4.2)f([Bash)g
+(Builtins],)g(page)g(61\).)150 1899 y Ft(REPLY)240 b
Fu(The)29 b(default)h(v)-5 b(ariable)30 b(for)f(the)h
Ft(read)e Fu(builtin;)i(set)g(to)g(the)f(line)h(read)f(when)g
-Ft(read)f Fu(is)i(not)630 1650 y(supplied)f(a)i(v)-5
-b(ariable)31 b(name)f(argumen)m(t.)150 1809 y Ft(SECONDS)144
+Ft(read)f Fu(is)i(not)630 2008 y(supplied)f(a)i(v)-5
+b(ariable)31 b(name)f(argumen)m(t.)150 2162 y Ft(SECONDS)144
b Fu(This)40 b(v)-5 b(ariable)41 b(expands)f(to)h(the)g(n)m(um)m(b)s
(er)e(of)i(seconds)g(since)g(the)f(shell)h(w)m(as)g(started.)630
-1918 y(Assignmen)m(t)i(to)g(this)g(v)-5 b(ariable)43
+2271 y(Assignmen)m(t)i(to)g(this)g(v)-5 b(ariable)43
b(resets)g(the)g(coun)m(t)g(to)g(the)g(v)-5 b(alue)43
-b(assigned,)j(and)c(the)630 2028 y(expanded)35 b(v)-5
+b(assigned,)j(and)c(the)630 2381 y(expanded)35 b(v)-5
b(alue)36 b(b)s(ecomes)h(the)f(v)-5 b(alue)36 b(assigned)g(plus)f(the)h
-(n)m(um)m(b)s(er)f(of)h(seconds)g(since)630 2138 y(the)24
+(n)m(um)m(b)s(er)f(of)h(seconds)g(since)630 2491 y(the)24
b(assignmen)m(t.)39 b(The)23 b(n)m(um)m(b)s(er)g(of)h(seconds)f(at)i
(shell)f(in)m(v)m(o)s(cation)i(and)d(the)h(curren)m(t)f(time)630
-2247 y(are)h(alw)m(a)m(ys)h(determined)e(b)m(y)g(querying)g(the)g
+2600 y(are)h(alw)m(a)m(ys)h(determined)e(b)m(y)g(querying)g(the)g
(system)h(clo)s(c)m(k)g(at)g(one-second)g(resolution.)39
-b(If)630 2357 y Ft(SECONDS)28 b Fu(is)h(unset,)h(it)g(loses)h(its)f(sp)
+b(If)630 2710 y Ft(SECONDS)28 b Fu(is)h(unset,)h(it)g(loses)h(its)f(sp)
s(ecial)g(prop)s(erties,)g(ev)m(en)g(if)g(it)g(is)g(subsequen)m(tly)f
-(reset.)150 2515 y Ft(SHELL)240 b Fu(This)24 b(en)m(vironmen)m(t)i(v)-5
+(reset.)150 2863 y Ft(SHELL)240 b Fu(This)24 b(en)m(vironmen)m(t)i(v)-5
b(ariable)26 b(expands)e(to)i(the)g(full)f(pathname)g(to)h(the)f
-(shell.)39 b(If)25 b(it)g(is)h(not)630 2625 y(set)36
+(shell.)39 b(If)25 b(it)g(is)h(not)630 2973 y(set)36
b(when)f(the)h(shell)g(starts,)i(Bash)e(assigns)h(to)f(it)h(the)f(full)
-f(pathname)h(of)g(the)g(curren)m(t)630 2734 y(user's)30
-b(login)h(shell.)150 2892 y Ft(SHELLOPTS)630 3002 y Fu(A)g
+f(pathname)h(of)g(the)g(curren)m(t)630 3082 y(user's)30
+b(login)h(shell.)150 3236 y Ft(SHELLOPTS)630 3345 y Fu(A)g
(colon-separated)h(list)f(of)g(enabled)f(shell)h(options.)41
b(Eac)m(h)31 b(w)m(ord)f(in)g(the)h(list)g(is)g(a)g(v)-5
-b(alid)630 3112 y(argumen)m(t)28 b(for)f(the)h Ft(-o)e
+b(alid)630 3455 y(argumen)m(t)28 b(for)f(the)h Ft(-o)e
Fu(option)i(to)g(the)g Ft(set)e Fu(builtin)h(command)g(\(see)i(Section)
-f(4.3.1)h([The)630 3221 y(Set)g(Builtin],)h(page)f(74\).)42
+f(4.3.1)h([The)630 3565 y(Set)g(Builtin],)h(page)f(74\).)42
b(The)28 b(options)h(app)s(earing)f(in)g Ft(SHELLOPTS)e
-Fu(are)j(those)h(rep)s(orted)630 3331 y(as)40 b(`)p Ft(on)p
+Fu(are)j(those)h(rep)s(orted)630 3674 y(as)40 b(`)p Ft(on)p
Fu(')g(b)m(y)h(`)p Ft(set)29 b(-o)p Fu('.)70 b(If)40
b(this)g(v)-5 b(ariable)41 b(is)f(in)g(the)g(en)m(vironmen)m(t)h(when)e
-(Bash)i(starts)630 3440 y(up,)31 b(the)g(shell)g(enables)h(eac)m(h)g
+(Bash)i(starts)630 3784 y(up,)31 b(the)g(shell)g(enables)h(eac)m(h)g
(option)g(in)f(the)g(list)h(b)s(efore)f(reading)g(an)m(y)h(startup)e
-(\014les.)43 b(If)630 3550 y(this)35 b(v)-5 b(ariable)36
+(\014les.)43 b(If)630 3893 y(this)35 b(v)-5 b(ariable)36
b(is)f(exp)s(orted,)i(c)m(hild)e(shells)g(will)h(enable)g(eac)m(h)g
-(option)g(in)f(the)g(list.)56 b(This)630 3660 y(v)-5
-b(ariable)31 b(is)g(readonly)-8 b(.)150 3818 y Ft(SHLVL)240
+(option)g(in)f(the)g(list.)56 b(This)630 4003 y(v)-5
+b(ariable)31 b(is)g(readonly)-8 b(.)150 4156 y Ft(SHLVL)240
b Fu(Incremen)m(ted)21 b(b)m(y)g(one)g(eac)m(h)h(time)f(a)h(new)e
(instance)h(of)g(Bash)g(is)g(started.)38 b(This)20 b(is)h(in)m(tended)
-630 3927 y(to)31 b(b)s(e)f(a)h(coun)m(t)g(of)f(ho)m(w)h(deeply)f(y)m
-(our)g(Bash)h(shells)f(are)h(nested.)150 4086 y Ft(SRANDOM)144
+630 4266 y(to)31 b(b)s(e)f(a)h(coun)m(t)g(of)f(ho)m(w)h(deeply)f(y)m
+(our)g(Bash)h(shells)f(are)h(nested.)150 4419 y Ft(SRANDOM)144
b Fu(This)36 b(v)-5 b(ariable)37 b(expands)f(to)h(a)g(32-bit)h
(pseudo-random)d(n)m(um)m(b)s(er)g(eac)m(h)j(time)f(it)g(is)g(ref-)630
-4195 y(erenced.)47 b(The)32 b(random)g(n)m(um)m(b)s(er)f(generator)j
+4529 y(erenced.)47 b(The)32 b(random)g(n)m(um)m(b)s(er)f(generator)j
(is)e(not)h(linear)g(on)f(systems)h(that)g(supp)s(ort)630
-4305 y Ft(/dev/urandom)26 b Fu(or)k Ft(arc4random)p Fu(,)d(so)j(eac)m
+4639 y Ft(/dev/urandom)26 b Fu(or)k Ft(arc4random)p Fu(,)d(so)j(eac)m
(h)g(returned)f(n)m(um)m(b)s(er)f(has)h(no)g(relationship)h(to)630
-4415 y(the)39 b(n)m(um)m(b)s(ers)e(preceding)i(it.)66
+4748 y(the)39 b(n)m(um)m(b)s(ers)e(preceding)i(it.)66
b(The)38 b(random)g(n)m(um)m(b)s(er)f(generator)j(cannot)g(b)s(e)e
-(seeded,)630 4524 y(so)c(assignmen)m(ts)g(to)g(this)f(v)-5
+(seeded,)630 4858 y(so)c(assignmen)m(ts)g(to)g(this)f(v)-5
b(ariable)34 b(ha)m(v)m(e)h(no)e(e\013ect.)51 b(If)33
b Ft(SRANDOM)e Fu(is)j(unset,)g(it)f(loses)i(its)630
-4634 y(sp)s(ecial)c(prop)s(erties,)f(ev)m(en)h(if)f(it)h(is)g
-(subsequen)m(tly)f(reset.)150 4792 y Ft(TIMEFORMAT)630
-4902 y Fu(The)g(v)-5 b(alue)32 b(of)f(this)g(parameter)g(is)g(used)f
+4967 y(sp)s(ecial)c(prop)s(erties,)f(ev)m(en)h(if)f(it)h(is)g
+(subsequen)m(tly)f(reset.)150 5121 y Ft(TIMEFORMAT)630
+5230 y Fu(The)g(v)-5 b(alue)32 b(of)f(this)g(parameter)g(is)g(used)f
(as)h(a)g(format)h(string)f(sp)s(ecifying)f(ho)m(w)h(the)g(tim-)630
-5011 y(ing)37 b(information)f(for)h(pip)s(elines)f(pre\014xed)f(with)h
-(the)h Ft(time)e Fu(reserv)m(ed)i(w)m(ord)f(should)g(b)s(e)630
-5121 y(displa)m(y)m(ed.)k(The)27 b(`)p Ft(\045)p Fu(')h(c)m(haracter)h
-(in)m(tro)s(duces)e(an)h(escap)s(e)g(sequence)g(that)g(is)f(expanded)g
-(to)630 5230 y(a)37 b(time)g(v)-5 b(alue)36 b(or)h(other)f
-(information.)59 b(The)36 b(escap)s(e)g(sequences)h(and)e(their)i
-(meanings)630 5340 y(are)31 b(as)f(follo)m(ws;)i(the)f(brac)m(k)m(ets)h
-(denote)e(optional)i(p)s(ortions.)p eop end
+5340 y(ing)37 b(information)f(for)h(pip)s(elines)f(pre\014xed)f(with)h
+(the)h Ft(time)e Fu(reserv)m(ed)i(w)m(ord)f(should)g(b)s(e)p
+eop end
%%Page: 99 105
TeXDict begin 99 104 bop 150 -116 a Fu(Chapter)30 b(5:)41
-b(Shell)30 b(V)-8 b(ariables)2459 b(99)630 299 y Ft(\045\045)384
-b Fu(A)30 b(literal)i(`)p Ft(\045)p Fu('.)630 458 y Ft(\045[)p
+b(Shell)30 b(V)-8 b(ariables)2459 b(99)630 299 y(displa)m(y)m(ed.)40
+b(The)27 b(`)p Ft(\045)p Fu(')h(c)m(haracter)h(in)m(tro)s(duces)e(an)h
+(escap)s(e)g(sequence)g(that)g(is)f(expanded)g(to)630
+408 y(a)37 b(time)g(v)-5 b(alue)36 b(or)h(other)f(information.)59
+b(The)36 b(escap)s(e)g(sequences)h(and)e(their)i(meanings)630
+518 y(are)31 b(as)f(follo)m(ws;)i(the)f(brac)m(k)m(ets)h(denote)e
+(optional)i(p)s(ortions.)630 677 y Ft(\045\045)384 b
+Fu(A)30 b(literal)i(`)p Ft(\045)p Fu('.)630 837 y Ft(\045[)p
Fj(p)p Ft(][l]R)96 b Fu(The)30 b(elapsed)h(time)g(in)f(seconds.)630
-618 y Ft(\045[)p Fj(p)p Ft(][l]U)96 b Fu(The)30 b(n)m(um)m(b)s(er)f(of)
+996 y Ft(\045[)p Fj(p)p Ft(][l]U)96 b Fu(The)30 b(n)m(um)m(b)s(er)f(of)
h(CPU)g(seconds)h(sp)s(en)m(t)f(in)g(user)f(mo)s(de.)630
-777 y Ft(\045[)p Fj(p)p Ft(][l]S)96 b Fu(The)30 b(n)m(um)m(b)s(er)f(of)
-h(CPU)g(seconds)h(sp)s(en)m(t)f(in)g(system)g(mo)s(de.)630
-936 y Ft(\045P)384 b Fu(The)30 b(CPU)g(p)s(ercen)m(tage,)i(computed)e
-(as)h(\(\045U)f Ft(+)g Fu(\045S\))g(/)h(\045R.)630 1096
+1156 y Ft(\045[)p Fj(p)p Ft(][l]S)96 b Fu(The)30 b(n)m(um)m(b)s(er)f
+(of)h(CPU)g(seconds)h(sp)s(en)m(t)f(in)g(system)g(mo)s(de.)630
+1315 y Ft(\045P)384 b Fu(The)30 b(CPU)g(p)s(ercen)m(tage,)i(computed)e
+(as)h(\(\045U)f Ft(+)g Fu(\045S\))g(/)h(\045R.)630 1474
y(The)23 b(optional)j Fr(p)g Fu(is)e(a)g(digit)h(sp)s(ecifying)e(the)h
(precision,)i(the)e(n)m(um)m(b)s(er)f(of)h(fractional)h(digits)630
-1205 y(after)36 b(a)f(decimal)i(p)s(oin)m(t.)55 b(A)35
+1584 y(after)36 b(a)f(decimal)i(p)s(oin)m(t.)55 b(A)35
b(v)-5 b(alue)36 b(of)f(0)h(causes)g(no)f(decimal)h(p)s(oin)m(t)f(or)h
-(fraction)g(to)g(b)s(e)630 1315 y(output.)77 b Ft(time)41
+(fraction)g(to)g(b)s(e)630 1694 y(output.)77 b Ft(time)41
b Fu(prin)m(ts)h(at)h(most)g(six)g(digits)g(after)g(the)g(decimal)g(p)s
-(oin)m(t;)49 b(v)-5 b(alues)43 b(of)g Fr(p)630 1425 y
+(oin)m(t;)49 b(v)-5 b(alues)43 b(of)g Fr(p)630 1803 y
Fu(greater)34 b(than)f(6)h(are)f(c)m(hanged)h(to)g(6.)49
b(If)32 b Fr(p)k Fu(is)d(not)g(sp)s(eci\014ed,)h Ft(time)d
-Fu(prin)m(ts)i(three)g(digits)630 1534 y(after)e(the)f(decimal)i(p)s
-(oin)m(t.)630 1669 y(The)54 b(optional)h Ft(l)f Fu(sp)s(eci\014es)g(a)h
+Fu(prin)m(ts)i(three)g(digits)630 1913 y(after)e(the)f(decimal)i(p)s
+(oin)m(t.)630 2047 y(The)54 b(optional)h Ft(l)f Fu(sp)s(eci\014es)g(a)h
(longer)f(format,)61 b(including)54 b(min)m(utes,)61
-b(of)54 b(the)g(form)630 1778 y Fr(MM)10 b Fu(m)p Fr(SS)p
+b(of)54 b(the)g(form)630 2157 y Fr(MM)10 b Fu(m)p Fr(SS)p
Fu(.)p Fr(FF)d Fu(s.)103 b(The)50 b(v)-5 b(alue)52 b(of)f
Fr(p)j Fu(determines)d(whether)f(or)h(not)h(the)f(fraction)h(is)630
-1888 y(included.)630 2022 y(If)30 b(this)g(v)-5 b(ariable)31
+2267 y(included.)630 2401 y(If)30 b(this)g(v)-5 b(ariable)31
b(is)g(not)f(set,)i(Bash)e(acts)h(as)g(if)f(it)h(had)f(the)h(v)-5
-b(alue)870 2157 y Ft($'\\nreal\\t\0453lR\\nuser\\t\0453)o(lU\\n)o
-(sys\\)o(t\0453)o(lS')630 2291 y Fu(If)34 b(the)h(v)-5
+b(alue)870 2535 y Ft($'\\nreal\\t\0453lR\\nuser\\t\0453)o(lU\\n)o
+(sys\\)o(t\0453)o(lS')630 2670 y Fu(If)34 b(the)h(v)-5
b(alue)35 b(is)g(n)m(ull,)h(Bash)f(do)s(es)f(not)h(displa)m(y)g(an)m(y)
-g(timing)g(information.)54 b(A)35 b(trailing)630 2401
+g(timing)g(information.)54 b(A)35 b(trailing)630 2780
y(newline)30 b(is)h(added)e(when)h(the)g(format)h(string)f(is)h(displa)
-m(y)m(ed.)150 2560 y Ft(TMOUT)240 b Fu(If)27 b(set)i(to)f(a)g(v)-5
+m(y)m(ed.)150 2939 y Ft(TMOUT)240 b Fu(If)27 b(set)i(to)f(a)g(v)-5
b(alue)28 b(greater)h(than)f(zero,)h(the)f Ft(read)f
Fu(builtin)g(uses)g(the)h(v)-5 b(alue)29 b(as)f(its)g(default)630
-2670 y(timeout)33 b(\(see)f(Section)h(4.2)f([Bash)g(Builtins],)h(page)f
+3049 y(timeout)33 b(\(see)f(Section)h(4.2)f([Bash)g(Builtins],)h(page)f
(61\).)46 b(The)31 b Ft(select)f Fu(command)h(\(see)630
-2780 y(Section)g(3.2.5.2)i([Conditional)f(Constructs],)e(page)h(12\))h
-(terminates)f(if)g(input)f(do)s(es)g(not)630 2889 y(arriv)m(e)h(after)g
+3158 y(Section)g(3.2.5.2)i([Conditional)f(Constructs],)e(page)h(13\))h
+(terminates)f(if)g(input)f(do)s(es)g(not)630 3268 y(arriv)m(e)h(after)g
Ft(TMOUT)e Fu(seconds)h(when)g(input)f(is)h(coming)i(from)d(a)i
-(terminal.)630 3024 y(In)40 b(an)h(in)m(teractiv)m(e)i(shell,)h(the)d
+(terminal.)630 3402 y(In)40 b(an)h(in)m(teractiv)m(e)i(shell,)h(the)d
(v)-5 b(alue)41 b(is)g(in)m(terpreted)g(as)f(the)h(n)m(um)m(b)s(er)f
-(of)h(seconds)f(to)630 3133 y(w)m(ait)28 b(for)e(a)g(line)h(of)g(input)
+(of)h(seconds)f(to)630 3512 y(w)m(ait)28 b(for)e(a)g(line)h(of)g(input)
e(after)i(issuing)f(the)h(primary)e(prompt.)39 b(Bash)26
-b(terminates)h(after)630 3243 y(w)m(aiting)32 b(for)e(that)h(n)m(um)m
+b(terminates)h(after)630 3621 y(w)m(aiting)32 b(for)e(that)h(n)m(um)m
(b)s(er)e(of)h(seconds)h(if)f(a)h(complete)h(line)e(of)h(input)e(do)s
-(es)h(not)h(arriv)m(e.)150 3402 y Ft(TMPDIR)192 b Fu(If)39
+(es)h(not)h(arriv)m(e.)150 3781 y Ft(TMPDIR)192 b Fu(If)39
b(set,)j(Bash)e(uses)f(its)h(v)-5 b(alue)40 b(as)f(the)h(name)f(of)h(a)
-g(directory)g(in)f(whic)m(h)g(Bash)h(creates)630 3512
+g(directory)g(in)f(whic)m(h)g(Bash)h(creates)630 3890
y(temp)s(orary)30 b(\014les)g(for)g(the)h(shell's)g(use.)150
-3671 y Ft(UID)336 b Fu(The)30 b(n)m(umeric)g(real)h(user)f(id)g(of)g
+4050 y Ft(UID)336 b Fu(The)30 b(n)m(umeric)g(real)h(user)f(id)g(of)g
(the)h(curren)m(t)f(user.)40 b(This)30 b(v)-5 b(ariable)31
b(is)f(readonly)-8 b(.)p eop end
%%Page: 100 106
Fs(6.4)68 b(Bash)45 b(Conditional)h(Expressions)150 4307
y Fu(Conditional)25 b(expressions)f(are)g(used)g(b)m(y)g(the)g
Ft([[)g Fu(comp)s(ound)e(command)i(\(see)h(Section)g(3.2.5.2)i([Condi-)
-150 4417 y(tional)h(Constructs],)g(page)f(12\))h(and)e(the)h
+150 4417 y(tional)h(Constructs],)g(page)f(13\))h(and)e(the)h
Ft(test)f Fu(and)g Ft([)h Fu(builtin)f(commands)h(\(see)g(Section)h
(4.1)g([Bourne)150 4527 y(Shell)37 b(Builtins],)j(page)e(52\).)63
b(The)36 b Ft(test)g Fu(and)h Ft([)g Fu(commands)g(determine)g(their)h
(are)g(equal.)82 b(When)44 b(used)f(with)g(the)h Ft([[)g
Fu(command,)j(this)d(p)s(er-)630 2572 y(forms)d(pattern)g(matc)m(hing)i
(as)f(describ)s(ed)e(ab)s(o)m(v)m(e)j(\(see)f(Section)g(3.2.5.2)i
-([Conditional)630 2681 y(Constructs],)30 b(page)h(12\).)630
+([Conditional)630 2681 y(Constructs],)30 b(page)h(13\).)630
2821 y(`)p Ft(=)p Fu(')g(should)e(b)s(e)h(used)f(with)h(the)h
Ft(test)e Fu(command)h(for)g Fm(posix)g Fu(conformance.)150
2991 y Fj(string1)e Ft(!=)i Fj(string2)630 3100 y Fu(T)-8
Fu(')g(is)g(assigned)150 4987 y(a)33 b(v)-5 b(alue.)49
b(A)33 b(n)m(ull)g(v)-5 b(alue)34 b(ev)-5 b(aluates)34
b(to)g(0.)49 b(A)33 b(shell)g(v)-5 b(ariable)34 b(need)e(not)i(ha)m(v)m
-(e)g(its)f Ft(integer)e Fu(attribute)150 5096 y(turned)e(on)h(to)i(b)s
-(e)d(used)h(in)g(an)g(expression.)275 5230 y(In)m(teger)41
+(e)g(its)f Ft(integer)e Fu(attribute)150 5096 y(enabled)f(to)h(b)s(e)f
+(used)g(in)g(an)g(expression.)275 5230 y(In)m(teger)41
b(constan)m(ts)g(follo)m(w)h(the)e(C)g(language)i(de\014nition,)g
(without)f(su\016xes)e(or)h(c)m(haracter)i(con-)150 5340
y(stan)m(ts.)f(Constan)m(ts)31 b(with)f(a)g(leading)h(0)f(are)h(in)m
(ything)g(but)g Fr(string)p Fu(.)275 4656 y(Eac)m(h)36
b Fr(v)-5 b(alue)41 b Fu(in)35 b(the)h(list)h(undergo)s(es)d(the)i
(shell)g(expansions)f(describ)s(ed)g(ab)s(o)m(v)m(e)i(\(see)f(Section)h
-(3.5)150 4766 y([Shell)e(Expansions],)g(page)g(24\),)i(but)d
+(3.5)150 4766 y([Shell)e(Expansions],)g(page)g(25\),)i(but)d
Fr(v)-5 b(alue)5 b Fu(s)35 b(that)g(are)g(v)-5 b(alid)35
b(v)-5 b(ariable)35 b(assignmen)m(ts)h(including)e(the)150
4875 y(brac)m(k)m(ets)22 b(and)e(subscript)f(do)h(not)h(undergo)f
b(When)30 b(using)g(k)m(ey/v)-5 b(alue)32 b(pairs,)e(the)g(k)m(eys)h
(ma)m(y)g(not)f(b)s(e)g(missing)150 956 y(or)g(empt)m(y;)h(a)g(\014nal)
f(missing)g(v)-5 b(alue)31 b(is)g(treated)g(lik)m(e)h(the)e(empt)m(y)h
-(string.)275 1088 y(This)f(syn)m(tax)j(is)e(also)i(accepted)g(b)m(y)f
+(string.)275 1099 y(This)f(syn)m(tax)j(is)e(also)i(accepted)g(b)m(y)f
(the)f Ft(declare)f Fu(builtin.)44 b(Individual)31 b(arra)m(y)h(elemen)
-m(ts)h(ma)m(y)g(b)s(e)150 1198 y(assigned)e(to)g(using)f(the)g
+m(ts)h(ma)m(y)g(b)s(e)150 1208 y(assigned)e(to)g(using)f(the)g
Fj(name)p Ft([)p Fj(subscript)p Ft(]=)p Fj(value)25 b
Fu(syn)m(tax)31 b(in)m(tro)s(duced)e(ab)s(o)m(v)m(e.)275
-1329 y(When)h(assigning)h(to)h(an)e(indexed)g(arra)m(y)-8
+1351 y(When)h(assigning)h(to)h(an)e(indexed)g(arra)m(y)-8
b(,)32 b(if)f Fr(name)36 b Fu(is)31 b(subscripted)e(b)m(y)i(a)g
-(negativ)m(e)i(n)m(um)m(b)s(er,)c(that)150 1439 y(n)m(um)m(b)s(er)43
+(negativ)m(e)i(n)m(um)m(b)s(er,)c(that)150 1461 y(n)m(um)m(b)s(er)43
b(is)h(in)m(terpreted)h(as)f(relativ)m(e)j(to)e(one)f(greater)i(than)e
(the)g(maxim)m(um)g(index)g(of)h Fr(name)p Fu(,)j(so)150
-1548 y(negativ)m(e)30 b(indices)d(coun)m(t)h(bac)m(k)g(from)f(the)g
+1570 y(negativ)m(e)30 b(indices)d(coun)m(t)h(bac)m(k)g(from)f(the)g
(end)g(of)g(the)h(arra)m(y)-8 b(,)29 b(and)e(an)g(index)g(of)g(-1)h
-(references)g(the)f(last)150 1658 y(elemen)m(t.)275 1789
+(references)g(the)f(last)150 1680 y(elemen)m(t.)275 1822
y(The)41 b(`)p Ft(+=)p Fu(')h(op)s(erator)g(app)s(ends)e(to)j(an)f
(arra)m(y)g(v)-5 b(ariable)43 b(when)e(assigning)i(using)e(the)h(comp)s
-(ound)150 1899 y(assignmen)m(t)31 b(syn)m(tax;)g(see)g(Section)g(3.4)h
+(ound)150 1932 y(assignmen)m(t)31 b(syn)m(tax;)g(see)g(Section)g(3.4)h
([Shell)e(P)m(arameters],)i(page)g(22,)f(ab)s(o)m(v)m(e.)275
-2030 y(An)f(arra)m(y)i(elemen)m(t)h(is)e(referenced)h(using)e
+2074 y(If)g(one)g(of)h(the)g(w)m(ord)f(expansions)g(in)h(a)g(comp)s
+(ound)e(arra)m(y)i(assignmen)m(t)g(unsets)f(the)h(v)-5
+b(ariable,)33 b(the)150 2184 y(results)d(are)h(unsp)s(eci\014ed.)275
+2326 y(An)f(arra)m(y)i(elemen)m(t)h(is)e(referenced)h(using)e
Ft(${)p Fj(name)p Ft([)p Fj(subscript)p Ft(]})p Fu(.)39
-b(The)31 b(braces)g(are)h(required)e(to)150 2140 y(a)m(v)m(oid)25
+b(The)31 b(braces)g(are)h(required)e(to)150 2436 y(a)m(v)m(oid)25
b(con\015icts)f(with)g(the)f(shell's)h(\014lename)g(expansion)g(op)s
(erators.)38 b(If)23 b(the)h Fr(subscript)g Fu(is)g(`)p
-Ft(@)p Fu(')g(or)f(`)p Ft(*)p Fu(',)j(the)150 2250 y(w)m(ord)31
+Ft(@)p Fu(')g(or)f(`)p Ft(*)p Fu(',)j(the)150 2545 y(w)m(ord)31
b(expands)f(to)i(all)g(mem)m(b)s(ers)f(of)g(the)h(arra)m(y)f
Fr(name)p Fu(,)h(unless)f(otherwise)g(noted)h(in)e(the)i(description)
-150 2359 y(of)f(a)g(builtin)f(or)g(w)m(ord)g(expansion.)41
+150 2655 y(of)f(a)g(builtin)f(or)g(w)m(ord)g(expansion.)41
b(These)30 b(subscripts)g(di\013er)g(only)g(when)g(the)h(w)m(ord)f(app)
-s(ears)f(within)150 2469 y(double)37 b(quotes.)61 b(If)37
+s(ears)f(within)150 2765 y(double)37 b(quotes.)61 b(If)37
b(the)g(w)m(ord)g(is)g(double-quoted,)i Ft(${)p Fj(name)p
Ft([*]})34 b Fu(expands)i(to)i(a)g(single)g(w)m(ord)e(with)150
-2578 y(the)g(v)-5 b(alue)37 b(of)g(eac)m(h)g(arra)m(y)g(mem)m(b)s(er)f
+2874 y(the)g(v)-5 b(alue)37 b(of)g(eac)m(h)g(arra)m(y)g(mem)m(b)s(er)f
(separated)g(b)m(y)h(the)f(\014rst)g(c)m(haracter)h(of)g(the)f
-Ft(IFS)g Fu(v)-5 b(ariable,)39 b(and)150 2688 y Ft(${)p
+Ft(IFS)g Fu(v)-5 b(ariable,)39 b(and)150 2984 y Ft(${)p
Fj(name)p Ft([@]})31 b Fu(expands)j(eac)m(h)h(elemen)m(t)g(of)g
Fr(name)k Fu(to)c(a)f(separate)h(w)m(ord.)52 b(When)34
-b(there)g(are)g(no)g(arra)m(y)150 2798 y(mem)m(b)s(ers,)28
+b(there)g(are)g(no)g(arra)m(y)150 3093 y(mem)m(b)s(ers,)28
b Ft(${)p Fj(name)p Ft([@]})e Fu(expands)h(to)i(nothing.)40
b(If)28 b(the)g(double-quoted)h(expansion)f(o)s(ccurs)g(within)g(a)150
-2907 y(w)m(ord,)d(the)e(expansion)h(of)f(the)h(\014rst)e(parameter)i
+3203 y(w)m(ord,)d(the)e(expansion)h(of)f(the)h(\014rst)e(parameter)i
(is)g(joined)f(with)g(the)h(b)s(eginning)f(part)g(of)g(the)h(expansion)
-150 3017 y(of)35 b(the)g(original)h(w)m(ord,)g(and)f(the)g(expansion)f
+150 3313 y(of)35 b(the)g(original)h(w)m(ord,)g(and)f(the)g(expansion)f
(of)i(the)f(last)g(parameter)h(is)f(joined)g(with)f(the)h(last)h(part)
-150 3126 y(of)i(the)h(expansion)f(of)g(the)h(original)g(w)m(ord.)64
+150 3422 y(of)i(the)h(expansion)f(of)g(the)h(original)g(w)m(ord.)64
b(This)38 b(is)g(analogous)i(to)f(the)f(expansion)g(of)h(the)f(sp)s
-(ecial)150 3236 y(parameters)31 b(`)p Ft(@)p Fu(')f(and)g(`)p
-Ft(*)p Fu('.)275 3367 y Ft(${#)p Fj(name)p Ft([)p Fj(subscript)p
+(ecial)150 3532 y(parameters)31 b(`)p Ft(@)p Fu(')f(and)g(`)p
+Ft(*)p Fu('.)275 3674 y Ft(${#)p Fj(name)p Ft([)p Fj(subscript)p
Ft(]})h Fu(expands)36 b(to)h(the)g(length)g(of)g Ft(${)p
Fj(name)p Ft([)p Fj(subscript)p Ft(]})p Fu(.)54 b(If)36
-b Fr(subscript)i Fu(is)150 3477 y(`)p Ft(@)p Fu(')31
+b Fr(subscript)i Fu(is)150 3784 y(`)p Ft(@)p Fu(')31
b(or)f(`)p Ft(*)p Fu(',)h(the)f(expansion)g(is)h(the)f(n)m(um)m(b)s(er)
-g(of)g(elemen)m(ts)i(in)e(the)g(arra)m(y)-8 b(.)275 3608
+g(of)g(elemen)m(ts)i(in)e(the)g(arra)m(y)-8 b(.)275 3926
y(If)29 b(the)h Fr(subscript)g Fu(used)f(to)i(reference)f(an)f(elemen)m
(t)j(of)d(an)h(indexed)f(arra)m(y)h(ev)-5 b(aluates)32
-b(to)e(a)g(n)m(um)m(b)s(er)150 3718 y(less)35 b(than)f(zero,)i(it)f(is)
+b(to)e(a)g(n)m(um)m(b)s(er)150 4036 y(less)35 b(than)f(zero,)i(it)f(is)
f(in)m(terpreted)h(as)f(relativ)m(e)j(to)e(one)f(greater)i(than)e(the)g
-(maxim)m(um)g(index)g(of)h(the)150 3828 y(arra)m(y)-8
+(maxim)m(um)g(index)g(of)h(the)150 4145 y(arra)m(y)-8
b(,)30 b(so)f(negativ)m(e)i(indices)e(coun)m(t)g(bac)m(k)h(from)e(the)h
(end)f(of)h(the)g(arra)m(y)-8 b(,)30 b(and)e(an)g(index)h(of)g(-1)g
-(refers)f(to)150 3937 y(the)j(last)g(elemen)m(t.)275
-4069 y(Referencing)41 b(an)f(arra)m(y)h(v)-5 b(ariable)42
+(refers)f(to)150 4255 y(the)j(last)g(elemen)m(t.)275
+4398 y(Referencing)41 b(an)f(arra)m(y)h(v)-5 b(ariable)42
b(without)e(a)h(subscript)e(is)i(equiv)-5 b(alen)m(t)42
-b(to)f(referencing)g(with)g(a)150 4178 y(subscript)29
+b(to)f(referencing)g(with)g(a)150 4507 y(subscript)29
b(of)i(0.)42 b(An)m(y)31 b(reference)g(to)g(a)g(v)-5
b(ariable)32 b(using)e(a)h(v)-5 b(alid)31 b(subscript)e(is)i(v)-5
-b(alid;)31 b(Bash)g(creates)h(an)150 4288 y(arra)m(y)f(if)f(necessary)
--8 b(.)275 4419 y(An)35 b(arra)m(y)i(v)-5 b(ariable)37
+b(alid;)31 b(Bash)g(creates)h(an)150 4617 y(arra)m(y)f(if)f(necessary)
+-8 b(.)275 4759 y(An)35 b(arra)m(y)i(v)-5 b(ariable)37
b(is)g(considered)f(set)h(if)f(a)h(subscript)e(has)h(b)s(een)g
(assigned)g(a)h(v)-5 b(alue.)59 b(The)36 b(n)m(ull)150
-4529 y(string)30 b(is)h(a)g(v)-5 b(alid)30 b(v)-5 b(alue.)275
-4661 y(It)29 b(is)h(p)s(ossible)f(to)h(obtain)g(the)f(k)m(eys)i
+4869 y(string)30 b(is)h(a)g(v)-5 b(alid)30 b(v)-5 b(alue.)275
+5011 y(It)29 b(is)h(p)s(ossible)f(to)h(obtain)g(the)f(k)m(eys)i
(\(indices\))f(of)f(an)h(arra)m(y)g(as)f(w)m(ell)i(as)f(the)f(v)-5
b(alues.)41 b($)p Fi({)p Fu(!)p Fr(name)5 b Fu([@])p
-Fi(})150 4770 y Fu(and)39 b($)p Fi({)p Fu(!)p Fr(name)5
+Fi(})150 5121 y Fu(and)39 b($)p Fi({)p Fu(!)p Fr(name)5
b Fu([*])p Fi(})43 b Fu(expand)c(to)i(the)f(indices)h(assigned)f(in)g
(arra)m(y)g(v)-5 b(ariable)41 b Fr(name)p Fu(.)70 b(The)39
-b(treatmen)m(t)150 4880 y(when)i(in)g(double)g(quotes)h(is)f(similar)h
+b(treatmen)m(t)150 5230 y(when)i(in)g(double)g(quotes)h(is)f(similar)h
(to)h(the)e(expansion)h(of)f(the)h(sp)s(ecial)g(parameters)g(`)p
-Ft(@)p Fu(')g(and)f(`)p Ft(*)p Fu(')150 4989 y(within)30
-b(double)g(quotes.)275 5121 y(The)i Ft(unset)f Fu(builtin)h(is)h(used)f
-(to)h(destro)m(y)h(arra)m(ys.)48 b Ft(unset)29 b Fj(name)p
-Ft([)p Fj(subscript)p Ft(])f Fu(unsets)33 b(the)f(arra)m(y)150
-5230 y(elemen)m(t)40 b(at)e(index)g Fr(subscript)p Fu(.)62
-b(Negativ)m(e)41 b(subscripts)c(to)i(indexed)e(arra)m(ys)i(are)f(in)m
-(terpreted)h(as)f(de-)150 5340 y(scrib)s(ed)30 b(ab)s(o)m(v)m(e.)42
-b(Unsetting)31 b(the)g(last)g(elemen)m(t)h(of)f(an)g(arra)m(y)g(v)-5
-b(ariable)31 b(do)s(es)f(not)h(unset)f(the)h(v)-5 b(ariable.)p
-eop end
+Ft(@)p Fu(')g(and)f(`)p Ft(*)p Fu(')150 5340 y(within)30
+b(double)g(quotes.)p eop end
%%Page: 112 118
TeXDict begin 112 117 bop 150 -116 a Fu(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2439 b(112)150 299 y Ft(unset)29
-b Fj(name)p Fu(,)39 b(where)e Fr(name)43 b Fu(is)37 b(an)h(arra)m(y)-8
-b(,)41 b(remo)m(v)m(es)e(the)f(en)m(tire)g(arra)m(y)-8
-b(.)64 b Ft(unset)29 b Fj(name)p Ft([)p Fj(subscript)p
-Ft(])150 408 y Fu(b)s(eha)m(v)m(es)g(di\013eren)m(tly)g(dep)s(ending)d
-(on)i(the)h(arra)m(y)f(t)m(yp)s(e)h(when)e Fr(subscript)i
-Fu(is)f(`)p Ft(*)p Fu(')g(or)g(`)p Ft(@)p Fu('.)41 b(When)28
-b Fr(name)33 b Fu(is)150 518 y(an)27 b(asso)s(ciativ)m(e)i(arra)m(y)-8
-b(,)29 b(it)e(remo)m(v)m(es)h(the)g(elemen)m(t)g(with)e(k)m(ey)i(`)p
-Ft(*)p Fu(')f(or)g(`)p Ft(@)p Fu('.)39 b(If)27 b Fr(name)32
-b Fu(is)27 b(an)f(indexed)h(arra)m(y)-8 b(,)150 628 y
-Ft(unset)29 b Fu(remo)m(v)m(es)j(all)f(of)f(the)h(elemen)m(ts,)h(but)e
-(do)s(es)g(not)g(remo)m(v)m(e)i(the)f(arra)m(y)g(itself.)275
-765 y(When)k(using)g(a)i(v)-5 b(ariable)36 b(name)g(with)g(a)g
-(subscript)e(as)i(an)g(argumen)m(t)g(to)h(a)f(command,)h(suc)m(h)f(as)
-150 875 y(with)i Ft(unset)p Fu(,)g(without)h(using)e(the)h(w)m(ord)g
-(expansion)g(syn)m(tax)g(describ)s(ed)f(ab)s(o)m(v)m(e)j(\(e.g.,)h
-(unset)d(a[4]\),)150 984 y(the)28 b(argumen)m(t)f(is)h(sub)5
-b(ject)27 b(to)h(the)g(shell's)f(\014lename)h(expansion.)40
-b(Quote)27 b(the)h(argumen)m(t)g(if)f(pathname)150 1094
-y(expansion)j(is)h(not)f(desired)g(\(e.g.,)i(unset)e('a[4]'\).)275
-1231 y(The)20 b Ft(declare)p Fu(,)h Ft(local)p Fu(,)h(and)e
-Ft(readonly)f Fu(builtins)h(eac)m(h)i(accept)g(a)g Ft(-a)e
-Fu(option)h(to)h(sp)s(ecify)f(an)f(indexed)150 1341 y(arra)m(y)28
-b(and)f(a)h Ft(-A)e Fu(option)i(to)g(sp)s(ecify)f(an)h(asso)s(ciativ)m
-(e)i(arra)m(y)-8 b(.)40 b(If)27 b(b)s(oth)g(options)h(are)g(supplied,)f
-Ft(-A)f Fu(tak)m(es)150 1450 y(precedence.)55 b(The)35
-b Ft(read)f Fu(builtin)h(accepts)h(a)g Ft(-a)e Fu(option)i(to)g(assign)
-f(a)g(list)h(of)f(w)m(ords)g(read)g(from)g(the)150 1560
-y(standard)h(input)g(to)i(an)f(arra)m(y)-8 b(,)40 b(and)c(can)h(read)g
-(v)-5 b(alues)38 b(from)e(the)h(standard)g(input)f(in)m(to)i
-(individual)150 1669 y(arra)m(y)22 b(elemen)m(ts.)39
-b(The)21 b Ft(set)f Fu(and)h Ft(declare)f Fu(builtins)h(displa)m(y)g
-(arra)m(y)h(v)-5 b(alues)22 b(in)f(a)h(w)m(a)m(y)g(that)g(allo)m(ws)h
-(them)150 1779 y(to)29 b(b)s(e)f(reused)g(as)h(input.)39
-b(Other)28 b(builtins)g(accept)i(arra)m(y)f(name)g(argumen)m(ts)g(as)g
-(w)m(ell)g(\(e.g.,)i Ft(mapfile)p Fu(\);)150 1889 y(see)c(the)g
-(descriptions)f(of)g(individual)g(builtins)g(for)g(details.)40
-b(The)26 b(shell)h(pro)m(vides)f(a)h(n)m(um)m(b)s(er)e(of)h(builtin)150
-1998 y(arra)m(y)31 b(v)-5 b(ariables.)150 2243 y Fs(6.8)68
-b(The)45 b(Directory)g(Stac)l(k)150 2403 y Fu(The)21
+b(Bash)30 b(F)-8 b(eatures)2439 b(112)275 299 y(The)32
+b Ft(unset)f Fu(builtin)h(is)h(used)f(to)h(destro)m(y)h(arra)m(ys.)48
+b Ft(unset)29 b Fj(name)p Ft([)p Fj(subscript)p Ft(])f
+Fu(unsets)33 b(the)f(arra)m(y)150 408 y(elemen)m(t)40
+b(at)e(index)g Fr(subscript)p Fu(.)62 b(Negativ)m(e)41
+b(subscripts)c(to)i(indexed)e(arra)m(ys)i(are)f(in)m(terpreted)h(as)f
+(de-)150 518 y(scrib)s(ed)30 b(ab)s(o)m(v)m(e.)42 b(Unsetting)31
+b(the)g(last)g(elemen)m(t)h(of)f(an)g(arra)m(y)g(v)-5
+b(ariable)31 b(do)s(es)f(not)h(unset)f(the)h(v)-5 b(ariable.)150
+628 y Ft(unset)29 b Fj(name)p Fu(,)39 b(where)e Fr(name)43
+b Fu(is)37 b(an)h(arra)m(y)-8 b(,)41 b(remo)m(v)m(es)e(the)f(en)m(tire)
+g(arra)m(y)-8 b(.)64 b Ft(unset)29 b Fj(name)p Ft([)p
+Fj(subscript)p Ft(])150 737 y Fu(b)s(eha)m(v)m(es)g(di\013eren)m(tly)g
+(dep)s(ending)d(on)i(the)h(arra)m(y)f(t)m(yp)s(e)h(when)e
+Fr(subscript)i Fu(is)f(`)p Ft(*)p Fu(')g(or)g(`)p Ft(@)p
+Fu('.)41 b(When)28 b Fr(name)33 b Fu(is)150 847 y(an)27
+b(asso)s(ciativ)m(e)i(arra)m(y)-8 b(,)29 b(it)e(remo)m(v)m(es)h(the)g
+(elemen)m(t)g(with)e(k)m(ey)i(`)p Ft(*)p Fu(')f(or)g(`)p
+Ft(@)p Fu('.)39 b(If)27 b Fr(name)32 b Fu(is)27 b(an)f(indexed)h(arra)m
+(y)-8 b(,)150 956 y Ft(unset)29 b Fu(remo)m(v)m(es)j(all)f(of)f(the)h
+(elemen)m(ts,)h(but)e(do)s(es)g(not)g(remo)m(v)m(e)i(the)f(arra)m(y)g
+(itself.)275 1090 y(When)k(using)g(a)i(v)-5 b(ariable)36
+b(name)g(with)g(a)g(subscript)e(as)i(an)g(argumen)m(t)g(to)h(a)f
+(command,)h(suc)m(h)f(as)150 1199 y(with)i Ft(unset)p
+Fu(,)g(without)h(using)e(the)h(w)m(ord)g(expansion)g(syn)m(tax)g
+(describ)s(ed)f(ab)s(o)m(v)m(e)j(\(e.g.,)h(unset)d(a[4]\),)150
+1309 y(the)28 b(argumen)m(t)f(is)h(sub)5 b(ject)27 b(to)h(the)g
+(shell's)f(\014lename)h(expansion.)40 b(Quote)27 b(the)h(argumen)m(t)g
+(if)f(pathname)150 1418 y(expansion)j(is)h(not)f(desired)g(\(e.g.,)i
+(unset)e('a[4]'\).)275 1552 y(The)20 b Ft(declare)p Fu(,)h
+Ft(local)p Fu(,)h(and)e Ft(readonly)f Fu(builtins)h(eac)m(h)i(accept)g
+(a)g Ft(-a)e Fu(option)h(to)h(sp)s(ecify)f(an)f(indexed)150
+1661 y(arra)m(y)28 b(and)f(a)h Ft(-A)e Fu(option)i(to)g(sp)s(ecify)f
+(an)h(asso)s(ciativ)m(e)i(arra)m(y)-8 b(.)40 b(If)27
+b(b)s(oth)g(options)h(are)g(supplied,)f Ft(-A)f Fu(tak)m(es)150
+1771 y(precedence.)55 b(The)35 b Ft(read)f Fu(builtin)h(accepts)h(a)g
+Ft(-a)e Fu(option)i(to)g(assign)f(a)g(list)h(of)f(w)m(ords)g(read)g
+(from)g(the)150 1880 y(standard)h(input)g(to)i(an)f(arra)m(y)-8
+b(,)40 b(and)c(can)h(read)g(v)-5 b(alues)38 b(from)e(the)h(standard)g
+(input)f(in)m(to)i(individual)150 1990 y(arra)m(y)22
+b(elemen)m(ts.)39 b(The)21 b Ft(set)f Fu(and)h Ft(declare)f
+Fu(builtins)h(displa)m(y)g(arra)m(y)h(v)-5 b(alues)22
+b(in)f(a)h(w)m(a)m(y)g(that)g(allo)m(ws)h(them)150 2100
+y(to)29 b(b)s(e)f(reused)g(as)h(input.)39 b(Other)28
+b(builtins)g(accept)i(arra)m(y)f(name)g(argumen)m(ts)g(as)g(w)m(ell)g
+(\(e.g.,)i Ft(mapfile)p Fu(\);)150 2209 y(see)c(the)g(descriptions)f
+(of)g(individual)g(builtins)g(for)g(details.)40 b(The)26
+b(shell)h(pro)m(vides)f(a)h(n)m(um)m(b)s(er)e(of)h(builtin)150
+2319 y(arra)m(y)31 b(v)-5 b(ariables.)150 2557 y Fs(6.8)68
+b(The)45 b(Directory)g(Stac)l(k)150 2716 y Fu(The)21
b(directory)h(stac)m(k)h(is)e(a)h(list)g(of)f(recen)m(tly-visited)j
(directories.)39 b(The)20 b Ft(pushd)g Fu(builtin)h(adds)g(directories)
-150 2512 y(to)42 b(the)f(stac)m(k)i(as)e(it)h(c)m(hanges)g(the)f
+150 2826 y(to)42 b(the)f(stac)m(k)i(as)e(it)h(c)m(hanges)g(the)f
(curren)m(t)g(directory)-8 b(,)45 b(and)40 b(the)i Ft(popd)e
-Fu(builtin)g(remo)m(v)m(es)j(sp)s(eci\014ed)150 2622
+Fu(builtin)g(remo)m(v)m(es)j(sp)s(eci\014ed)150 2936
y(directories)29 b(from)f(the)h(stac)m(k)h(and)d(c)m(hanges)j(the)e
(curren)m(t)g(directory)h(to)g(the)g(directory)f(remo)m(v)m(ed.)41
-b(The)150 2731 y Ft(dirs)34 b Fu(builtin)g(displa)m(ys)h(the)g(con)m
+b(The)150 3045 y Ft(dirs)34 b Fu(builtin)g(displa)m(ys)h(the)g(con)m
(ten)m(ts)i(of)e(the)g(directory)h(stac)m(k.)56 b(The)34
-b(curren)m(t)h(directory)g(is)g(alw)m(a)m(ys)150 2841
+b(curren)m(t)h(directory)g(is)g(alw)m(a)m(ys)150 3155
y(the)c Ft(")p Fu(top)p Ft(")f Fu(of)g(the)h(directory)g(stac)m(k.)275
-2978 y(The)k(con)m(ten)m(ts)i(of)f(the)h(directory)f(stac)m(k)h(are)f
+3288 y(The)k(con)m(ten)m(ts)i(of)f(the)h(directory)f(stac)m(k)h(are)f
(also)h(visible)g(as)f(the)g(v)-5 b(alue)36 b(of)g(the)g
-Ft(DIRSTACK)e Fu(shell)150 3088 y(v)-5 b(ariable.)150
-3290 y Fk(6.8.1)63 b(Directory)40 b(Stac)m(k)g(Builtins)150
-3463 y Ft(dirs)870 3599 y(dirs)47 b([-clpv])e([+)p Fj(N)i
-Ft(|)h(-)p Fj(N)p Ft(])630 3735 y Fu(Without)29 b(options,)h(displa)m
+Ft(DIRSTACK)e Fu(shell)150 3398 y(v)-5 b(ariable.)150
+3594 y Fk(6.8.1)63 b(Directory)40 b(Stac)m(k)g(Builtins)150
+3765 y Ft(dirs)870 3898 y(dirs)47 b([-clpv])e([+)p Fj(N)i
+Ft(|)h(-)p Fj(N)p Ft(])630 4031 y Fu(Without)29 b(options,)h(displa)m
(y)f(the)g(list)g(of)g(curren)m(tly)g(remem)m(b)s(ered)f(directories.)
-41 b(Directo-)630 3845 y(ries)25 b(are)h(added)e(to)i(the)f(list)h
+41 b(Directo-)630 4141 y(ries)25 b(are)h(added)e(to)i(the)f(list)h
(with)f(the)g Ft(pushd)f Fu(command;)j(the)e Ft(popd)f
-Fu(command)h(remo)m(v)m(es)630 3954 y(directories)34
+Fu(command)h(remo)m(v)m(es)630 4251 y(directories)34
b(from)f(the)h(list.)50 b(The)33 b(curren)m(t)g(directory)h(is)f(alw)m
-(a)m(ys)i(the)f(\014rst)e(directory)i(in)630 4064 y(the)d(stac)m(k.)630
-4200 y(Options,)f(if)h(supplied,)e(ha)m(v)m(e)i(the)g(follo)m(wing)h
-(meanings:)630 4362 y Ft(-c)384 b Fu(Clears)31 b(the)f(directory)h
+(a)m(ys)i(the)f(\014rst)e(directory)i(in)630 4360 y(the)d(stac)m(k.)630
+4493 y(Options,)f(if)h(supplied,)e(ha)m(v)m(e)i(the)g(follo)m(wing)h
+(meanings:)630 4650 y Ft(-c)384 b Fu(Clears)31 b(the)f(directory)h
(stac)m(k)h(b)m(y)e(deleting)h(all)h(of)e(the)h(elemen)m(ts.)630
-4524 y Ft(-l)384 b Fu(Pro)s(duces)31 b(a)h(listing)h(using)e(full)h
-(pathnames;)h(the)f(default)g(listing)h(format)1110 4634
+4807 y Ft(-l)384 b Fu(Pro)s(duces)31 b(a)h(listing)h(using)e(full)h
+(pathnames;)h(the)f(default)g(listing)h(format)1110 4917
y(uses)d(a)h(tilde)g(to)g(denote)g(the)f(home)h(directory)-8
-b(.)630 4796 y Ft(-p)384 b Fu(Causes)30 b Ft(dirs)f Fu(to)i(prin)m(t)f
+b(.)630 5074 y Ft(-p)384 b Fu(Causes)30 b Ft(dirs)f Fu(to)i(prin)m(t)f
(the)h(directory)g(stac)m(k)h(with)e(one)g(en)m(try)h(p)s(er)e(line.)
-630 4959 y Ft(-v)384 b Fu(Causes)36 b Ft(dirs)f Fu(to)i(prin)m(t)f(the)
+630 5230 y Ft(-v)384 b Fu(Causes)36 b Ft(dirs)f Fu(to)i(prin)m(t)f(the)
g(directory)h(stac)m(k)h(with)e(one)h(en)m(try)f(p)s(er)f(line,)1110
-5068 y(pre\014xing)30 b(eac)m(h)h(en)m(try)g(with)f(its)h(index)e(in)i
-(the)f(stac)m(k.)630 5230 y Ft(+)p Fj(N)384 b Fu(Displa)m(ys)23
-b(the)f Fr(N)10 b Fu(th)21 b(directory)h(\(coun)m(ting)h(from)e(the)h
-(left)g(of)g(the)g(list)g(prin)m(ted)1110 5340 y(b)m(y)30
-b Ft(dirs)f Fu(when)h(in)m(v)m(ok)m(ed)i(without)e(options\),)h
-(starting)g(with)g(zero.)p eop end
+5340 y(pre\014xing)30 b(eac)m(h)h(en)m(try)g(with)f(its)h(index)e(in)i
+(the)f(stac)m(k.)p eop end
%%Page: 113 119
TeXDict begin 113 118 bop 150 -116 a Fu(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2439 b(113)630 299 y Ft(-)p
-Fj(N)384 b Fu(Displa)m(ys)47 b(the)g Fr(N)10 b Fu(th)46
-b(directory)h(\(coun)m(ting)g(from)f(the)g(righ)m(t)h(of)g(the)f(list)
-1110 408 y(prin)m(ted)25 b(b)m(y)g Ft(dirs)g Fu(when)f(in)m(v)m(ok)m
-(ed)j(without)f(options\),)h(starting)g(with)e(zero.)150
-575 y Ft(popd)870 712 y(popd)47 b([-n])f([+)p Fj(N)h
-Ft(|)h(-)p Fj(N)p Ft(])630 850 y Fu(Remo)m(v)m(e)31 b(elemen)m(ts)f
-(from)f(the)g(directory)h(stac)m(k.)42 b(The)28 b(elemen)m(ts)j(are)e
-(n)m(um)m(b)s(ered)f(from)h(0)630 960 y(starting)f(at)h(the)f(\014rst)e
-(directory)j(listed)f(b)m(y)f Ft(dirs)p Fu(;)h(that)g(is,)h
-Ft(popd)d Fu(is)i(equiv)-5 b(alen)m(t)29 b(to)f Ft(popd)630
-1070 y(+0)p Fu(.)630 1207 y(When)k(no)g(argumen)m(ts)h(are)g(giv)m(en,)
-h Ft(popd)d Fu(remo)m(v)m(es)j(the)f(top)f(directory)h(from)f(the)g
-(stac)m(k)630 1317 y(and)e(c)m(hanges)h(to)g(the)g(new)f(top)g
-(directory)-8 b(.)630 1455 y(Argumen)m(ts,)31 b(if)f(supplied,)f(ha)m
-(v)m(e)j(the)e(follo)m(wing)i(meanings:)630 1621 y Ft(-n)384
-b Fu(Suppress)23 b(the)j(normal)g(c)m(hange)h(of)f(directory)g(when)e
-(remo)m(ving)j(directories)1110 1731 y(from)j(the)g(stac)m(k,)j(only)d
-(manipulate)h(the)f(stac)m(k.)630 1897 y Ft(+)p Fj(N)384
-b Fu(Remo)m(v)m(e)25 b(the)f Fr(N)10 b Fu(th)24 b(directory)g(\(coun)m
-(ting)g(from)g(the)f(left)i(of)e(the)h(list)g(prin)m(ted)1110
-2006 y(b)m(y)30 b Ft(dirs)p Fu(\),)g(starting)h(with)f(zero,)i(from)e
-(the)g(stac)m(k.)630 2172 y Ft(-)p Fj(N)384 b Fu(Remo)m(v)m(e)50
-b(the)f Fr(N)10 b Fu(th)48 b(directory)h(\(coun)m(ting)h(from)e(the)g
-(righ)m(t)h(of)g(the)f(list)1110 2282 y(prin)m(ted)30
-b(b)m(y)g Ft(dirs)p Fu(\),)g(starting)h(with)f(zero,)i(from)e(the)g
-(stac)m(k.)630 2448 y(If)d(the)h(top)g(elemen)m(t)h(of)f(the)g
-(directory)g(stac)m(k)h(is)e(mo)s(di\014ed,)h(and)f(the)h
-Ft(-n)f Fu(option)h(w)m(as)g(not)630 2558 y(supplied,)j
-Ft(popd)g Fu(uses)g(the)h Ft(cd)f Fu(builtin)g(to)i(c)m(hange)g(to)f
-(the)g(directory)g(at)h(the)f(top)g(of)g(the)630 2667
-y(stac)m(k.)42 b(If)30 b(the)h Ft(cd)e Fu(fails,)j Ft(popd)d
-Fu(returns)g(a)i(non-zero)g(v)-5 b(alue.)630 2805 y(Otherwise,)29
-b Ft(popd)e Fu(returns)h(an)h(unsuccessful)e(status)i(if)g(an)f(in)m(v)
--5 b(alid)29 b(option)h(is)e(sp)s(eci\014ed,)630 2915
-y(the)e(directory)h(stac)m(k)g(is)f(empt)m(y)-8 b(,)28
-b(or)e Fr(N)36 b Fu(sp)s(eci\014es)26 b(a)h(non-existen)m(t)g
-(directory)f(stac)m(k)i(en)m(try)-8 b(.)630 3053 y(If)32
-b(the)h Ft(popd)f Fu(command)h(is)g(successful,)g(Bash)g(runs)f
-Ft(dirs)f Fu(to)j(sho)m(w)f(the)g(\014nal)f(con)m(ten)m(ts)630
-3162 y(of)f(the)f(directory)h(stac)m(k,)h(and)e(the)g(return)g(status)g
-(is)h(0.)150 3328 y Ft(pushd)870 3466 y(pushd)46 b([-n])h([+)p
-Fj(N)g Ft(|)g Fj(-N)h Ft(|)f Fj(dir)p Ft(])630 3604 y
-Fu(Add)32 b(a)i(directory)f(to)h(the)f(top)h(of)f(the)g(directory)h
-(stac)m(k,)h(or)e(rotate)i(the)e(stac)m(k,)j(making)630
-3714 y(the)h(new)g(top)g(of)g(the)g(stac)m(k)i(the)e(curren)m(t)f(w)m
+b(Bash)30 b(F)-8 b(eatures)2439 b(113)630 299 y Ft(+)p
+Fj(N)384 b Fu(Displa)m(ys)23 b(the)f Fr(N)10 b Fu(th)21
+b(directory)h(\(coun)m(ting)h(from)e(the)h(left)g(of)g(the)g(list)g
+(prin)m(ted)1110 408 y(b)m(y)30 b Ft(dirs)f Fu(when)h(in)m(v)m(ok)m(ed)
+i(without)e(options\),)h(starting)g(with)g(zero.)630
+582 y Ft(-)p Fj(N)384 b Fu(Displa)m(ys)47 b(the)g Fr(N)10
+b Fu(th)46 b(directory)h(\(coun)m(ting)g(from)f(the)g(righ)m(t)h(of)g
+(the)f(list)1110 691 y(prin)m(ted)25 b(b)m(y)g Ft(dirs)g
+Fu(when)f(in)m(v)m(ok)m(ed)j(without)f(options\),)h(starting)g(with)e
+(zero.)150 865 y Ft(popd)870 1006 y(popd)47 b([-n])f([+)p
+Fj(N)h Ft(|)h(-)p Fj(N)p Ft(])630 1147 y Fu(Remo)m(v)m(e)31
+b(elemen)m(ts)f(from)f(the)g(directory)h(stac)m(k.)42
+b(The)28 b(elemen)m(ts)j(are)e(n)m(um)m(b)s(ered)f(from)h(0)630
+1257 y(starting)f(at)h(the)f(\014rst)e(directory)j(listed)f(b)m(y)f
+Ft(dirs)p Fu(;)h(that)g(is,)h Ft(popd)d Fu(is)i(equiv)-5
+b(alen)m(t)29 b(to)f Ft(popd)630 1366 y(+0)p Fu(.)630
+1508 y(When)k(no)g(argumen)m(ts)h(are)g(giv)m(en,)h Ft(popd)d
+Fu(remo)m(v)m(es)j(the)f(top)f(directory)h(from)f(the)g(stac)m(k)630
+1617 y(and)e(c)m(hanges)h(to)g(the)g(new)f(top)g(directory)-8
+b(.)630 1759 y(Argumen)m(ts,)31 b(if)f(supplied,)f(ha)m(v)m(e)j(the)e
+(follo)m(wing)i(meanings:)630 1932 y Ft(-n)384 b Fu(Suppress)23
+b(the)j(normal)g(c)m(hange)h(of)f(directory)g(when)e(remo)m(ving)j
+(directories)1110 2042 y(from)j(the)g(stac)m(k,)j(only)d(manipulate)h
+(the)f(stac)m(k.)630 2215 y Ft(+)p Fj(N)384 b Fu(Remo)m(v)m(e)25
+b(the)f Fr(N)10 b Fu(th)24 b(directory)g(\(coun)m(ting)g(from)g(the)f
+(left)i(of)e(the)h(list)g(prin)m(ted)1110 2325 y(b)m(y)30
+b Ft(dirs)p Fu(\),)g(starting)h(with)f(zero,)i(from)e(the)g(stac)m(k.)
+630 2498 y Ft(-)p Fj(N)384 b Fu(Remo)m(v)m(e)50 b(the)f
+Fr(N)10 b Fu(th)48 b(directory)h(\(coun)m(ting)h(from)e(the)g(righ)m(t)
+h(of)g(the)f(list)1110 2607 y(prin)m(ted)30 b(b)m(y)g
+Ft(dirs)p Fu(\),)g(starting)h(with)f(zero,)i(from)e(the)g(stac)m(k.)630
+2781 y(If)d(the)h(top)g(elemen)m(t)h(of)f(the)g(directory)g(stac)m(k)h
+(is)e(mo)s(di\014ed,)h(and)f(the)h Ft(-n)f Fu(option)h(w)m(as)g(not)630
+2890 y(supplied,)j Ft(popd)g Fu(uses)g(the)h Ft(cd)f
+Fu(builtin)g(to)i(c)m(hange)g(to)f(the)g(directory)g(at)h(the)f(top)g
+(of)g(the)630 3000 y(stac)m(k.)42 b(If)30 b(the)h Ft(cd)e
+Fu(fails,)j Ft(popd)d Fu(returns)g(a)i(non-zero)g(v)-5
+b(alue.)630 3141 y(Otherwise,)29 b Ft(popd)e Fu(returns)h(an)h
+(unsuccessful)e(status)i(if)g(an)f(in)m(v)-5 b(alid)29
+b(option)h(is)e(sp)s(eci\014ed,)630 3251 y(the)e(directory)h(stac)m(k)g
+(is)f(empt)m(y)-8 b(,)28 b(or)e Fr(N)36 b Fu(sp)s(eci\014es)26
+b(a)h(non-existen)m(t)g(directory)f(stac)m(k)i(en)m(try)-8
+b(.)630 3392 y(If)32 b(the)h Ft(popd)f Fu(command)h(is)g(successful,)g
+(Bash)g(runs)f Ft(dirs)f Fu(to)j(sho)m(w)f(the)g(\014nal)f(con)m(ten)m
+(ts)630 3502 y(of)f(the)f(directory)h(stac)m(k,)h(and)e(the)g(return)g
+(status)g(is)h(0.)150 3675 y Ft(pushd)870 3816 y(pushd)46
+b([-n])h([+)p Fj(N)g Ft(|)g Fj(-N)h Ft(|)f Fj(dir)p Ft(])630
+3958 y Fu(Add)32 b(a)i(directory)f(to)h(the)f(top)h(of)f(the)g
+(directory)h(stac)m(k,)h(or)e(rotate)i(the)e(stac)m(k,)j(making)630
+4067 y(the)h(new)g(top)g(of)g(the)g(stac)m(k)i(the)e(curren)m(t)f(w)m
(orking)i(directory)-8 b(.)61 b(With)38 b(no)e(argumen)m(ts,)630
-3823 y Ft(pushd)29 b Fu(exc)m(hanges)j(the)e(top)h(t)m(w)m(o)h(elemen)m
-(ts)f(of)g(the)f(directory)h(stac)m(k.)630 3961 y(Argumen)m(ts,)g(if)f
+4177 y Ft(pushd)29 b Fu(exc)m(hanges)j(the)e(top)h(t)m(w)m(o)h(elemen)m
+(ts)f(of)g(the)f(directory)h(stac)m(k.)630 4318 y(Argumen)m(ts,)g(if)f
(supplied,)f(ha)m(v)m(e)j(the)e(follo)m(wing)i(meanings:)630
-4127 y Ft(-n)384 b Fu(Suppress)32 b(the)j(normal)g(c)m(hange)h(of)f
-(directory)g(when)f(rotating)i(or)e(adding)1110 4237
+4492 y Ft(-n)384 b Fu(Suppress)32 b(the)j(normal)g(c)m(hange)h(of)f
+(directory)g(when)f(rotating)i(or)e(adding)1110 4601
y(directories)d(to)h(the)e(stac)m(k,)i(only)f(manipulate)f(the)h(stac)m
-(k.)630 4403 y Ft(+)p Fj(N)384 b Fu(Rotate)32 b(the)f(stac)m(k)g(so)g
+(k.)630 4774 y Ft(+)p Fj(N)384 b Fu(Rotate)32 b(the)f(stac)m(k)g(so)g
(that)f(the)h Fr(N)10 b Fu(th)30 b(directory)h(\(coun)m(ting)g(from)f
-(the)g(left)1110 4513 y(of)h(the)f(list)h(prin)m(ted)f(b)m(y)g
+(the)g(left)1110 4884 y(of)h(the)f(list)h(prin)m(ted)f(b)m(y)g
Ft(dirs)p Fu(,)g(starting)h(with)f(zero\))h(is)g(at)g(the)g(top.)630
-4679 y Ft(-)p Fj(N)384 b Fu(Rotate)27 b(the)d(stac)m(k)j(so)e(that)g
+5057 y Ft(-)p Fj(N)384 b Fu(Rotate)27 b(the)d(stac)m(k)j(so)e(that)g
(the)g Fr(N)10 b Fu(th)24 b(directory)h(\(coun)m(ting)h(from)e(the)h
-(righ)m(t)1110 4788 y(of)31 b(the)f(list)h(prin)m(ted)f(b)m(y)g
+(righ)m(t)1110 5167 y(of)31 b(the)f(list)h(prin)m(ted)f(b)m(y)g
Ft(dirs)p Fu(,)g(starting)h(with)f(zero\))h(is)g(at)g(the)g(top.)630
-4955 y Fj(dir)336 b Fu(Mak)m(e)32 b Fr(dir)k Fu(b)s(e)30
-b(the)g(top)h(of)g(the)f(stac)m(k.)630 5121 y(After)39
+5340 y Fj(dir)336 b Fu(Mak)m(e)32 b Fr(dir)k Fu(b)s(e)30
+b(the)g(top)h(of)g(the)f(stac)m(k.)p eop end
+%%Page: 114 120
+TeXDict begin 114 119 bop 150 -116 a Fu(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2439 b(114)630 299 y(After)39
b(the)g(stac)m(k)h(has)e(b)s(een)g(mo)s(di\014ed,)i(if)f(the)g
Ft(-n)f Fu(option)h(w)m(as)g(not)g(supplied,)g Ft(pushd)630
-5230 y Fu(uses)29 b(the)h Ft(cd)f Fu(builtin)g(to)h(c)m(hange)g(to)h
+408 y Fu(uses)29 b(the)h Ft(cd)f Fu(builtin)g(to)h(c)m(hange)g(to)h
(the)e(directory)h(at)g(the)g(top)g(of)f(the)h(stac)m(k.)42
-b(If)29 b(the)h Ft(cd)630 5340 y Fu(fails,)h Ft(pushd)e
-Fu(returns)g(a)i(non-zero)g(v)-5 b(alue.)p eop end
-%%Page: 114 120
-TeXDict begin 114 119 bop 150 -116 a Fu(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2439 b(114)630 299 y(Otherwise,)24
+b(If)29 b(the)h Ft(cd)630 518 y Fu(fails,)h Ft(pushd)e
+Fu(returns)g(a)i(non-zero)g(v)-5 b(alue.)630 652 y(Otherwise,)24
b(if)f(no)g(argumen)m(ts)g(are)g(supplied,)g Ft(pushd)e
-Fu(returns)h(zero)h(unless)f(the)h(directory)630 408
+Fu(returns)h(zero)h(unless)f(the)h(directory)630 762
y(stac)m(k)g(is)f(empt)m(y)-8 b(.)39 b(When)21 b(rotating)j(the)e
(directory)g(stac)m(k,)j Ft(pushd)20 b Fu(returns)h(zero)i(unless)e
-(the)630 518 y(directory)31 b(stac)m(k)h(is)e(empt)m(y)h(or)f
+(the)630 871 y(directory)31 b(stac)m(k)h(is)e(empt)m(y)h(or)f
Fr(N)41 b Fu(sp)s(eci\014es)30 b(a)g(non-existen)m(t)i(directory)f
-(stac)m(k)h(elemen)m(t.)630 653 y(If)d(the)g Ft(pushd)f
+(stac)m(k)h(elemen)m(t.)630 1005 y(If)d(the)g Ft(pushd)f
Fu(command)h(is)g(successful,)h(Bash)f(runs)f Ft(dirs)g
Fu(to)i(sho)m(w)f(the)g(\014nal)g(con)m(ten)m(ts)630
-762 y(of)i(the)f(directory)h(stac)m(k.)150 1004 y Fs(6.9)68
-b(Con)l(trolling)47 b(the)e(Prompt)150 1163 y Fu(In)37
+1115 y(of)i(the)f(directory)h(stac)m(k.)150 1355 y Fs(6.9)68
+b(Con)l(trolling)47 b(the)e(Prompt)150 1514 y Fu(In)37
b(addition,)k(the)d(follo)m(wing)i(table)f(describ)s(es)e(the)h(sp)s
(ecial)h(c)m(haracters)g(whic)m(h)f(can)h(app)s(ear)e(in)h(the)150
-1273 y(prompt)29 b(v)-5 b(ariables)32 b Ft(PS0)p Fu(,)d
+1624 y(prompt)29 b(v)-5 b(ariables)32 b Ft(PS0)p Fu(,)d
Ft(PS1)p Fu(,)h Ft(PS2)p Fu(,)g(and)f Ft(PS4)p Fu(:)150
-1433 y Ft(\\a)384 b Fu(A)30 b(b)s(ell)h(c)m(haracter.)150
-1593 y Ft(\\d)384 b Fu(The)30 b(date,)h(in)f Ft(")p Fu(W)-8
+1782 y Ft(\\a)384 b Fu(A)30 b(b)s(ell)h(c)m(haracter.)150
+1940 y Ft(\\d)384 b Fu(The)30 b(date,)h(in)f Ft(")p Fu(W)-8
b(eekda)m(y)32 b(Mon)m(th)f(Date)p Ft(")h Fu(format)f(\(e.g.,)h
Ft(")p Fu(T)-8 b(ue)30 b(Ma)m(y)h(26)p Ft(")p Fu(\).)150
-1753 y Ft(\\D{)p Fj(format)p Ft(})630 1863 y Fu(The)c
+2099 y Ft(\\D{)p Fj(format)p Ft(})630 2208 y Fu(The)c
Fr(format)i Fu(is)f(passed)e(to)i Ft(strftime)p Fu(\(3\))f(and)f(the)i
(result)f(is)g(inserted)g(in)m(to)h(the)g(prompt)630
-1972 y(string;)42 b(an)d(empt)m(y)f Fr(format)j Fu(results)d(in)g(a)h
+2318 y(string;)42 b(an)d(empt)m(y)f Fr(format)j Fu(results)d(in)g(a)h
(lo)s(cale-sp)s(eci\014c)h(time)f(represen)m(tation.)65
-b(The)630 2082 y(braces)31 b(are)f(required.)150 2242
+b(The)630 2428 y(braces)31 b(are)f(required.)150 2586
y Ft(\\e)384 b Fu(An)30 b(escap)s(e)h(c)m(haracter.)150
-2402 y Ft(\\h)384 b Fu(The)30 b(hostname,)h(up)e(to)i(the)g(\014rst)e
-(`)p Ft(.)p Fu('.)150 2562 y Ft(\\H)384 b Fu(The)30 b(hostname.)150
-2722 y Ft(\\j)384 b Fu(The)30 b(n)m(um)m(b)s(er)f(of)h(jobs)g(curren)m
-(tly)h(managed)g(b)m(y)f(the)g(shell.)150 2882 y Ft(\\l)384
+2744 y Ft(\\h)384 b Fu(The)30 b(hostname,)h(up)e(to)i(the)g(\014rst)e
+(`)p Ft(.)p Fu('.)150 2903 y Ft(\\H)384 b Fu(The)30 b(hostname.)150
+3061 y Ft(\\j)384 b Fu(The)30 b(n)m(um)m(b)s(er)f(of)h(jobs)g(curren)m
+(tly)h(managed)g(b)m(y)f(the)g(shell.)150 3220 y Ft(\\l)384
b Fu(The)30 b(basename)h(of)f(the)h(shell's)f(terminal)h(device)g(name)
-g(\(e.g.,)h Ft(")p Fu(tt)m(ys0)p Ft(")p Fu(\).)150 3042
-y Ft(\\n)384 b Fu(A)30 b(newline.)150 3201 y Ft(\\r)384
-b Fu(A)30 b(carriage)i(return.)150 3361 y Ft(\\s)384
+g(\(e.g.,)h Ft(")p Fu(tt)m(ys0)p Ft(")p Fu(\).)150 3378
+y Ft(\\n)384 b Fu(A)30 b(newline.)150 3537 y Ft(\\r)384
+b Fu(A)30 b(carriage)i(return.)150 3695 y Ft(\\s)384
b Fu(The)41 b(name)h(of)h(the)f(shell:)64 b(the)42 b(basename)g(of)g
Ft($0)g Fu(\(the)g(p)s(ortion)g(follo)m(wing)h(the)f(\014nal)630
-3471 y(slash\).)150 3631 y Ft(\\t)384 b Fu(The)30 b(time,)h(in)f
-(24-hour)h(HH:MM:SS)g(format.)150 3791 y Ft(\\T)384 b
+3805 y(slash\).)150 3963 y Ft(\\t)384 b Fu(The)30 b(time,)h(in)f
+(24-hour)h(HH:MM:SS)g(format.)150 4121 y Ft(\\T)384 b
Fu(The)30 b(time,)h(in)f(12-hour)h(HH:MM:SS)g(format.)150
-3951 y Ft(\\@)384 b Fu(The)30 b(time,)h(in)f(12-hour)h(am/pm)f(format.)
-150 4111 y Ft(\\A)384 b Fu(The)30 b(time,)h(in)f(24-hour)h(HH:MM)g
-(format.)150 4271 y Ft(\\u)384 b Fu(The)30 b(username)g(of)g(the)h
-(curren)m(t)f(user.)150 4431 y Ft(\\v)384 b Fu(The)30
-b(Bash)g(v)m(ersion)h(\(e.g.,)h(2.00\).)150 4591 y Ft(\\V)384
+4280 y Ft(\\@)384 b Fu(The)30 b(time,)h(in)f(12-hour)h(am/pm)f(format.)
+150 4438 y Ft(\\A)384 b Fu(The)30 b(time,)h(in)f(24-hour)h(HH:MM)g
+(format.)150 4597 y Ft(\\u)384 b Fu(The)30 b(username)g(of)g(the)h
+(curren)m(t)f(user.)150 4755 y Ft(\\v)384 b Fu(The)30
+b(Bash)g(v)m(ersion)h(\(e.g.,)h(2.00\).)150 4914 y Ft(\\V)384
b Fu(The)30 b(Bash)g(release,)i(v)m(ersion)f Ft(+)f Fu(patc)m(hlev)m
-(el)j(\(e.g.,)f(2.00.0\).)150 4751 y Ft(\\w)384 b Fu(The)27
+(el)j(\(e.g.,)f(2.00.0\).)150 5072 y Ft(\\w)384 b Fu(The)27
b(v)-5 b(alue)28 b(of)g(the)g Ft(PWD)f Fu(shell)h(v)-5
b(ariable)28 b(\()p Ft($PWD)p Fu(\),)g(with)g Ft($HOME)e
-Fu(abbreviated)i(with)f(a)h(tilde)630 4860 y(\(uses)i(the)h
-Ft($PROMPT_DIRTRIM)26 b Fu(v)-5 b(ariable\).)150 5020
+Fu(abbreviated)i(with)f(a)h(tilde)630 5182 y(\(uses)i(the)h
+Ft($PROMPT_DIRTRIM)26 b Fu(v)-5 b(ariable\).)150 5340
y Ft(\\W)384 b Fu(The)30 b(basename)h(of)f Ft($PWD)p
-Fu(,)g(with)g Ft($HOME)f Fu(abbreviated)h(with)g(a)h(tilde.)150
-5180 y Ft(\\!)384 b Fu(The)30 b(history)g(n)m(um)m(b)s(er)f(of)i(this)f
-(command.)150 5340 y Ft(\\#)384 b Fu(The)30 b(command)g(n)m(um)m(b)s
-(er)f(of)i(this)f(command.)p eop end
+Fu(,)g(with)g Ft($HOME)f Fu(abbreviated)h(with)g(a)h(tilde.)p
+eop end
%%Page: 115 121
TeXDict begin 115 120 bop 150 -116 a Fu(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2439 b(115)150 299 y Ft(\\$)384
-b Fu(If)30 b(the)g(e\013ectiv)m(e)j(uid)d(is)g(0,)h Ft(#)p
-Fu(,)g(otherwise)g Ft($)p Fu(.)150 461 y Ft(\\)p Fj(nnn)288
-b Fu(The)30 b(c)m(haracter)i(whose)e(ASCI)s(I)f(co)s(de)h(is)h(the)f(o)
-s(ctal)i(v)-5 b(alue)31 b Fr(nnn)p Fu(.)150 624 y Ft(\\\\)384
-b Fu(A)30 b(bac)m(kslash.)150 786 y Ft(\\[)384 b Fu(Begin)35
-b(a)g(sequence)g(of)f(non-prin)m(ting)g(c)m(haracters.)54
-b(Thiss)33 b(could)i(b)s(e)e(used)h(to)h(em)m(b)s(ed)f(a)630
-896 y(terminal)d(con)m(trol)h(sequence)e(in)m(to)i(the)e(prompt.)150
-1058 y Ft(\\])384 b Fu(End)29 b(a)i(sequence)g(of)f(non-prin)m(ting)g
-(c)m(haracters.)275 1222 y(The)25 b(command)h(n)m(um)m(b)s(er)f(and)h
-(the)g(history)g(n)m(um)m(b)s(er)f(are)i(usually)f(di\013eren)m(t:)39
-b(the)26 b(history)g(n)m(um)m(b)s(er)150 1332 y(of)h(a)f(command)h(is)f
-(its)h(p)s(osition)f(in)g(the)h(history)f(list,)i(whic)m(h)f(ma)m(y)g
-(include)f(commands)g(restored)g(from)150 1441 y(the)39
-b(history)h(\014le)f(\(see)h(Section)g(9.1)h([Bash)e(History)h(F)-8
-b(acilities],)45 b(page)40 b(168\),)j(while)d(the)f(command)150
-1551 y(n)m(um)m(b)s(er)j(is)h(the)h(p)s(osition)f(in)g(the)g(sequence)h
-(of)f(commands)g(executed)h(during)e(the)i(curren)m(t)f(shell)150
-1660 y(session.)275 1798 y(After)28 b(the)g(string)g(is)g(deco)s(ded,)g
-(it)g(is)g(expanded)f(via)i(parameter)f(expansion,)h(command)f
-(substitu-)150 1907 y(tion,)g(arithmetic)f(expansion,)g(and)e(quote)i
-(remo)m(v)-5 b(al,)29 b(sub)5 b(ject)25 b(to)i(the)f(v)-5
-b(alue)27 b(of)f(the)g Ft(promptvars)e Fu(shell)150 2017
+b(Bash)30 b(F)-8 b(eatures)2439 b(115)150 299 y Ft(\\!)384
+b Fu(The)30 b(history)g(n)m(um)m(b)s(er)f(of)i(this)f(command.)150
+458 y Ft(\\#)384 b Fu(The)30 b(command)g(n)m(um)m(b)s(er)f(of)i(this)f
+(command.)150 617 y Ft(\\$)384 b Fu(If)30 b(the)g(e\013ectiv)m(e)j(uid)
+d(is)g(0,)h Ft(#)p Fu(,)g(otherwise)g Ft($)p Fu(.)150
+777 y Ft(\\)p Fj(nnn)288 b Fu(The)30 b(c)m(haracter)i(whose)e(ASCI)s(I)
+f(co)s(de)h(is)h(the)f(o)s(ctal)i(v)-5 b(alue)31 b Fr(nnn)p
+Fu(.)150 936 y Ft(\\\\)384 b Fu(A)30 b(bac)m(kslash.)150
+1095 y Ft(\\[)384 b Fu(Begin)38 b(a)f(sequence)g(of)g(non-prin)m(ting)g
+(c)m(haracters.)61 b(This)36 b(could)h(b)s(e)g(used)f(to)h(em)m(b)s(ed)
+g(a)630 1205 y(terminal)31 b(con)m(trol)h(sequence)e(in)m(to)i(the)e
+(prompt.)150 1364 y Ft(\\])384 b Fu(End)29 b(a)i(sequence)g(of)f
+(non-prin)m(ting)g(c)m(haracters.)275 1524 y(The)25 b(command)h(n)m(um)
+m(b)s(er)f(and)h(the)g(history)g(n)m(um)m(b)s(er)f(are)i(usually)f
+(di\013eren)m(t:)39 b(the)26 b(history)g(n)m(um)m(b)s(er)150
+1633 y(of)h(a)f(command)h(is)f(its)h(p)s(osition)f(in)g(the)h(history)f
+(list,)i(whic)m(h)f(ma)m(y)g(include)f(commands)g(restored)g(from)150
+1743 y(the)39 b(history)h(\014le)f(\(see)h(Section)g(9.1)h([Bash)e
+(History)h(F)-8 b(acilities],)45 b(page)40 b(168\),)j(while)d(the)f
+(command)150 1852 y(n)m(um)m(b)s(er)j(is)h(the)h(p)s(osition)f(in)g
+(the)g(sequence)h(of)f(commands)g(executed)h(during)e(the)i(curren)m(t)
+f(shell)150 1962 y(session.)275 2096 y(After)28 b(the)g(string)g(is)g
+(deco)s(ded,)g(it)g(is)g(expanded)f(via)i(parameter)f(expansion,)h
+(command)f(substitu-)150 2206 y(tion,)g(arithmetic)f(expansion,)g(and)e
+(quote)i(remo)m(v)-5 b(al,)29 b(sub)5 b(ject)25 b(to)i(the)f(v)-5
+b(alue)27 b(of)f(the)g Ft(promptvars)e Fu(shell)150 2315
y(option)i(\(see)h(Section)g(4.3.2)g([The)f(Shopt)f(Builtin],)j(page)e
(78\).)41 b(This)25 b(can)h(ha)m(v)m(e)h(un)m(w)m(an)m(ted)f(side)g
-(e\013ects)150 2127 y(if)i(escap)s(ed)f(p)s(ortions)g(of)h(the)g
+(e\013ects)150 2425 y(if)i(escap)s(ed)f(p)s(ortions)g(of)h(the)g
(string)f(app)s(ear)g(within)g(command)h(substitution)f(or)h(con)m
-(tain)g(c)m(haracters)150 2236 y(sp)s(ecial)j(to)g(w)m(ord)f
-(expansion.)150 2482 y Fs(6.10)68 b(The)45 b(Restricted)h(Shell)150
-2641 y Fu(If)34 b(Bash)g(is)g(started)g(with)g(the)g(name)h
+(tain)g(c)m(haracters)150 2535 y(sp)s(ecial)j(to)g(w)m(ord)f
+(expansion.)150 2775 y Fs(6.10)68 b(The)45 b(Restricted)h(Shell)150
+2935 y Fu(If)34 b(Bash)g(is)g(started)g(with)g(the)g(name)h
Ft(rbash)p Fu(,)e(or)h(the)h Ft(--restricted)30 b Fu(or)k
-Ft(-r)g Fu(option)g(is)g(supplied)f(at)150 2751 y(in)m(v)m(o)s(cation,)
+Ft(-r)g Fu(option)g(is)g(supplied)f(at)150 3044 y(in)m(v)m(o)s(cation,)
d(the)d(shell)g(b)s(ecomes)h Fr(restricted)p Fu(.)40
b(A)27 b(restricted)h(shell)f(is)g(used)f(to)i(set)f(up)f(an)h(en)m
-(vironmen)m(t)150 2860 y(more)g(con)m(trolled)i(than)e(the)g(standard)g
+(vironmen)m(t)150 3154 y(more)g(con)m(trolled)i(than)e(the)g(standard)g
(shell.)40 b(A)27 b(restricted)h(shell)f(b)s(eha)m(v)m(es)h(iden)m
-(tically)h(to)f Ft(bash)e Fu(with)150 2970 y(the)31 b(exception)g(that)
+(tically)h(to)f Ft(bash)e Fu(with)150 3263 y(the)31 b(exception)g(that)
g(the)g(follo)m(wing)h(are)e(disallo)m(w)m(ed)i(or)e(not)h(p)s
-(erformed:)225 3107 y Fq(\017)60 b Fu(Changing)30 b(directories)h(with)
-g(the)f Ft(cd)g Fu(builtin.)225 3243 y Fq(\017)60 b Fu(Setting)33
+(erformed:)225 3398 y Fq(\017)60 b Fu(Changing)30 b(directories)h(with)
+g(the)f Ft(cd)g Fu(builtin.)225 3532 y Fq(\017)60 b Fu(Setting)33
b(or)g(unsetting)f(the)h(v)-5 b(alues)33 b(of)f(the)h
Ft(SHELL)p Fu(,)f Ft(PATH)p Fu(,)g Ft(HISTFILE)p Fu(,)f
Ft(ENV)p Fu(,)h(or)g Ft(BASH_ENV)e Fu(v)-5 b(ari-)330
-3353 y(ables.)225 3489 y Fq(\017)60 b Fu(Sp)s(ecifying)30
-b(command)g(names)g(con)m(taining)i(slashes.)225 3625
+3642 y(ables.)225 3776 y Fq(\017)60 b Fu(Sp)s(ecifying)30
+b(command)g(names)g(con)m(taining)i(slashes.)225 3911
y Fq(\017)60 b Fu(Sp)s(ecifying)30 b(a)h(\014lename)f(con)m(taining)i
(a)f(slash)f(as)h(an)f(argumen)m(t)h(to)g(the)f Ft(.)h
-Fu(builtin)e(command.)225 3761 y Fq(\017)60 b Fu(Using)31
+Fu(builtin)e(command.)225 4045 y Fq(\017)60 b Fu(Using)31
b(the)f Ft(-p)g Fu(option)h(to)g(the)f Ft(.)g Fu(builtin)g(command)g
-(to)i(sp)s(ecify)e(a)g(searc)m(h)h(path.)225 3897 y Fq(\017)60
+(to)i(sp)s(ecify)e(a)g(searc)m(h)h(path.)225 4180 y Fq(\017)60
b Fu(Sp)s(ecifying)33 b(a)i(\014lename)f(con)m(taining)h(a)g(slash)e
(as)i(an)e(argumen)m(t)i(to)g(the)f Ft(history)e Fu(builtin)h(com-)330
-4006 y(mand.)225 4142 y Fq(\017)60 b Fu(Sp)s(ecifying)32
+4289 y(mand.)225 4424 y Fq(\017)60 b Fu(Sp)s(ecifying)32
b(a)g(\014lename)h(con)m(taining)h(a)e(slash)g(as)h(an)f(argumen)m(t)h
(to)g(the)f Ft(-p)g Fu(option)h(to)g(the)f Ft(hash)330
-4252 y Fu(builtin)e(command.)225 4388 y Fq(\017)60 b
+4533 y Fu(builtin)e(command.)225 4668 y Fq(\017)60 b
Fu(Imp)s(orting)30 b(function)g(de\014nitions)g(from)f(the)i(shell)g
-(en)m(vironmen)m(t)g(at)g(startup.)225 4524 y Fq(\017)60
+(en)m(vironmen)m(t)g(at)g(startup.)225 4802 y Fq(\017)60
b Fu(P)m(arsing)31 b(the)f(v)-5 b(alue)31 b(of)g Ft(SHELLOPTS)d
Fu(from)h(the)i(shell)g(en)m(vironmen)m(t)g(at)g(startup.)225
-4660 y Fq(\017)60 b Fu(Redirecting)31 b(output)f(using)g(the)h(`)p
+4937 y Fq(\017)60 b Fu(Redirecting)31 b(output)f(using)g(the)h(`)p
Ft(>)p Fu(',)g(`)p Ft(>|)p Fu(',)f(`)p Ft(<>)p Fu(',)h(`)p
Ft(>&)p Fu(',)f(`)p Ft(&>)p Fu(',)h(and)e(`)p Ft(>>)p
-Fu(')i(redirection)g(op)s(erators.)225 4796 y Fq(\017)60
+Fu(')i(redirection)g(op)s(erators.)225 5071 y Fq(\017)60
b Fu(Using)31 b(the)f Ft(exec)f Fu(builtin)h(to)h(replace)h(the)e
-(shell)h(with)f(another)h(command.)225 4932 y Fq(\017)60
+(shell)h(with)f(another)h(command.)225 5206 y Fq(\017)60
b Fu(Adding)24 b(or)g(deleting)i(builtin)e(commands)g(with)h(the)f
Ft(-f)g Fu(and)g Ft(-d)g Fu(options)h(to)h(the)e Ft(enable)f
-Fu(builtin.)225 5068 y Fq(\017)60 b Fu(Using)31 b(the)f
+Fu(builtin.)225 5340 y Fq(\017)60 b Fu(Using)31 b(the)f
Ft(enable)f Fu(builtin)h(command)g(to)h(enable)g(disabled)f(shell)g
-(builtins.)225 5204 y Fq(\017)60 b Fu(Sp)s(ecifying)30
-b(the)g Ft(-p)g Fu(option)h(to)g(the)g Ft(command)d Fu(builtin.)225
-5340 y Fq(\017)60 b Fu(T)-8 b(urning)29 b(o\013)i(restricted)g(mo)s(de)
-f(with)g(`)p Ft(set)g(+r)p Fu(')g(or)g(`)p Ft(shopt)f(-u)h
-(restricted_shell)p Fu('.)p eop end
+(builtins.)p eop end
%%Page: 116 122
TeXDict begin 116 121 bop 150 -116 a Fu(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2439 b(116)275 299 y(These)30
-b(restrictions)h(are)g(enforced)f(after)h(an)m(y)g(startup)f(\014les)g
-(are)h(read.)275 430 y(When)j(a)i(command)e(that)i(is)f(found)f(to)h(b)
-s(e)g(a)g(shell)g(script)g(is)g(executed)h(\(see)g(Section)g(3.8)g
-([Shell)150 540 y(Scripts],)25 b(page)e(50\),)j Ft(rbash)c
-Fu(turns)g(o\013)i(an)m(y)f(restrictions)h(in)f(the)g(shell)h(spa)m
-(wned)e(to)i(execute)g(the)g(script.)275 671 y(The)32
+b(Bash)30 b(F)-8 b(eatures)2439 b(116)225 299 y Fq(\017)60
+b Fu(Sp)s(ecifying)30 b(the)g Ft(-p)g Fu(option)h(to)g(the)g
+Ft(command)d Fu(builtin.)225 426 y Fq(\017)60 b Fu(T)-8
+b(urning)29 b(o\013)i(restricted)g(mo)s(de)f(with)g(`)p
+Ft(set)g(+r)p Fu(')g(or)g(`)p Ft(shopt)f(-u)h(restricted_shell)p
+Fu('.)275 571 y(These)g(restrictions)h(are)g(enforced)f(after)h(an)m(y)
+g(startup)f(\014les)g(are)h(read.)275 698 y(When)j(a)i(command)e(that)i
+(is)f(found)f(to)h(b)s(e)g(a)g(shell)g(script)g(is)g(executed)h(\(see)g
+(Section)g(3.8)g([Shell)150 808 y(Scripts],)25 b(page)e(50\),)j
+Ft(rbash)c Fu(turns)g(o\013)i(an)m(y)f(restrictions)h(in)f(the)g(shell)
+h(spa)m(wned)e(to)i(execute)g(the)g(script.)275 935 y(The)32
b(restricted)h(shell)g(mo)s(de)g(is)g(only)g(one)g(comp)s(onen)m(t)g
(of)g(a)g(useful)f(restricted)i(en)m(vironmen)m(t.)49
-b(It)150 781 y(should)22 b(b)s(e)f(accompanied)j(b)m(y)e(setting)i
+b(It)150 1045 y(should)22 b(b)s(e)f(accompanied)j(b)m(y)e(setting)i
Ft(PATH)d Fu(to)j(a)f(v)-5 b(alue)23 b(that)g(allo)m(ws)h(execution)f
-(of)g(only)g(a)g(few)f(v)m(eri\014ed)150 891 y(commands)35
+(of)g(only)g(a)g(few)f(v)m(eri\014ed)150 1154 y(commands)35
b(\(commands)g(that)h(allo)m(w)g(shell)f(escap)s(es)h(are)f
(particularly)h(vulnerable\),)h(c)m(hanging)f(the)150
-1000 y(curren)m(t)28 b(directory)g(to)h(a)f(non-writable)g(directory)g
-(other)g(than)g Ft($HOME)e Fu(after)j(login,)g(not)f(allo)m(wing)i(the)
-150 1110 y(restricted)25 b(shell)g(to)h(execute)g(shell)f(scripts,)h
-(and)e(cleaning)i(the)f(en)m(vironmen)m(t)h(of)f(v)-5
-b(ariables)25 b(that)g(cause)150 1219 y(some)31 b(commands)f(to)h(mo)s
-(dify)e(their)i(b)s(eha)m(vior)f(\(e.g.,)j Ft(VISUAL)28
-b Fu(or)j Ft(PAGER)p Fu(\).)275 1351 y(Mo)s(dern)e(systems)g(pro)m
-(vide)h(more)g(secure)g(w)m(a)m(ys)g(to)h(implemen)m(t)f(a)g
-(restricted)h(en)m(vironmen)m(t,)f(suc)m(h)150 1460 y(as)h
-Ft(jails)p Fu(,)e Ft(zones)p Fu(,)g(or)h Ft(containers)p
-Fu(.)150 1695 y Fs(6.11)68 b(Bash)45 b(and)g(POSIX)150
-1916 y Fk(6.11.1)63 b(What)40 b(is)i(POSIX?)150 2063
-y Fm(posix)22 b Fu(is)g(the)g(name)h(for)f(a)g(family)h(of)g(standards)
-e(based)h(on)g(Unix.)38 b(A)22 b(n)m(um)m(b)s(er)f(of)i(Unix)f
-(services,)j(to)s(ols,)150 2173 y(and)33 b(functions)g(are)h(part)f(of)
-h(the)f(standard,)h(ranging)g(from)f(the)g(basic)h(system)g(calls)g
-(and)f(C)g(library)150 2282 y(functions)d(to)h(common)g(applications)g
-(and)f(to)s(ols)h(to)g(system)g(administration)g(and)e(managemen)m(t.)
-275 2414 y(The)22 b Fm(posix)g Fu(Shell)g(and)g(Utilities)j(standard)c
-(w)m(as)i(originally)h(dev)m(elop)s(ed)f(b)m(y)g(IEEE)f(W)-8
-b(orking)24 b(Group)150 2523 y(1003.2)46 b(\(POSIX.2\).)80
-b(The)43 b(\014rst)f(edition)i(of)g(the)f(1003.2)j(standard)c(w)m(as)i
-(published)e(in)h(1992.)81 b(It)150 2633 y(w)m(as)31
-b(merged)g(with)g(the)g(original)h(IEEE)e(1003.1)k(W)-8
-b(orking)32 b(Group)e(and)g(is)h(curren)m(tly)g(main)m(tained)h(b)m(y)
-150 2742 y(the)41 b(Austin)g(Group)g(\(a)h(join)m(t)g(w)m(orking)g
+1264 y(curren)m(t)k(directory)h(to)h(a)e(non-writable)h(directory)g
+(other)g(than)f Ft($HOME)f Fu(after)i(login,)j(not)d(allo)m(wing)150
+1374 y(the)32 b(restricted)g(shell)g(to)g(execute)h(shell)e(scripts,)h
+(and)f(cleaning)i(the)e(en)m(vironmen)m(t)i(of)e(v)-5
+b(ariables)32 b(that)150 1483 y(cause)g(some)g(commands)e(to)j(mo)s
+(dify)d(their)h(b)s(eha)m(vior)h(\(e.g.,)h Ft(VISUAL)d
+Fu(or)h Ft(PAGER)p Fu(\).)42 b(When)32 b(setting)g(up)150
+1593 y(a)37 b(restricted)g(en)m(vironmen)m(t)g(lik)m(e)g(this,)i(it's)e
+(imp)s(ortan)m(t)f(not)h(to)g(install)g(or)f(allo)m(w)i(sym)m(b)s(olic)
+f(links)f(in)150 1702 y(the)e(new)f(curren)m(t)h(directory)-8
+b(,)36 b(since)e(those)g(could)g(b)s(e)f(used)g(to)h(circum)m(v)m(en)m
+(t)i(restrictions)e(on)g(writing)150 1812 y(to)d(\014les.)275
+1939 y(Mo)s(dern)e(systems)g(pro)m(vide)h(more)g(secure)g(w)m(a)m(ys)g
+(to)h(implemen)m(t)f(a)g(restricted)h(en)m(vironmen)m(t,)f(suc)m(h)150
+2049 y(as)h Ft(jails)p Fu(,)e Ft(zones)p Fu(,)g(or)h
+Ft(containers)p Fu(.)150 2275 y Fs(6.11)68 b(Bash)45
+b(and)g(POSIX)150 2492 y Fk(6.11.1)63 b(What)40 b(is)i(POSIX?)150
+2639 y Fm(posix)22 b Fu(is)g(the)g(name)h(for)f(a)g(family)h(of)g
+(standards)e(based)h(on)g(Unix.)38 b(A)22 b(n)m(um)m(b)s(er)f(of)i
+(Unix)f(services,)j(to)s(ols,)150 2749 y(and)33 b(functions)g(are)h
+(part)f(of)h(the)f(standard,)h(ranging)g(from)f(the)g(basic)h(system)g
+(calls)g(and)f(C)g(library)150 2858 y(functions)d(to)h(common)g
+(applications)g(and)f(to)s(ols)h(to)g(system)g(administration)g(and)e
+(managemen)m(t.)275 2986 y(The)22 b Fm(posix)g Fu(Shell)g(and)g
+(Utilities)j(standard)c(w)m(as)i(originally)h(dev)m(elop)s(ed)f(b)m(y)g
+(IEEE)f(W)-8 b(orking)24 b(Group)150 3095 y(1003.2)46
+b(\(POSIX.2\).)80 b(The)43 b(\014rst)f(edition)i(of)g(the)f(1003.2)j
+(standard)c(w)m(as)i(published)e(in)h(1992.)81 b(It)150
+3205 y(w)m(as)31 b(merged)g(with)g(the)g(original)h(IEEE)e(1003.1)k(W)
+-8 b(orking)32 b(Group)e(and)g(is)h(curren)m(tly)g(main)m(tained)h(b)m
+(y)150 3314 y(the)41 b(Austin)g(Group)g(\(a)h(join)m(t)g(w)m(orking)g
(group)e(of)i(the)f(IEEE,)g(The)g(Op)s(en)f(Group)g(and)h(ISO/IEC)150
-2852 y(SC22/W)m(G15\).)i(T)-8 b(o)s(da)m(y)28 b(the)g(Shell)g(and)f
+3424 y(SC22/W)m(G15\).)i(T)-8 b(o)s(da)m(y)28 b(the)g(Shell)g(and)f
(Utilities)j(are)e(a)g(v)m(olume)h(within)e(the)h(set)h(of)f(do)s
-(cumen)m(ts)f(that)150 2962 y(mak)m(e)34 b(up)e(IEEE)g(Std)g
+(cumen)m(ts)f(that)150 3533 y(mak)m(e)34 b(up)e(IEEE)g(Std)g
(1003.1-2024,)38 b(and)32 b(th)m(us)h(the)g(former)f(POSIX.2)h(\(from)f
-(1992\))j(is)e(no)m(w)g(part)g(of)150 3071 y(the)e(curren)m(t)f
-(uni\014ed)f Fm(posix)g Fu(standard.)275 3203 y(The)k(Shell)h(and)g
+(1992\))j(is)e(no)m(w)g(part)g(of)150 3643 y(the)e(curren)m(t)f
+(uni\014ed)f Fm(posix)g Fu(standard.)275 3770 y(The)k(Shell)h(and)g
(Utilities)i(v)m(olume)f(concen)m(trates)h(on)e(the)g(command)g(in)m
-(terpreter)h(in)m(terface)h(and)150 3312 y(utilit)m(y)i(programs)f
+(terpreter)h(in)m(terface)h(and)150 3880 y(utilit)m(y)i(programs)f
(commonly)g(executed)g(from)g(the)g(command)f(line)h(or)g(b)m(y)g
-(other)g(programs.)59 b(The)150 3422 y(standard)37 b(is)g(freely)h(a)m
+(other)g(programs.)59 b(The)150 3990 y(standard)37 b(is)g(freely)h(a)m
(v)-5 b(ailable)40 b(on)d(the)h(w)m(eb)g(at)g Ft(https:)6
b(/)g(/)g(pubs)g(.)g(opengrou)o(p)g(.)g(o)o(rg)g(/)f(onl)o(inep)o(ubs)g
-(/)150 3531 y(9799919799/utilities/con)o(tent)o(s.ht)o(ml)p
-Fu(.)275 3663 y(Bash)25 b(is)g(concerned)h(with)f(the)g(asp)s(ects)h
+(/)150 4099 y(9799919799/utilities/con)o(tent)o(s.ht)o(ml)p
+Fu(.)275 4226 y(Bash)25 b(is)g(concerned)h(with)f(the)g(asp)s(ects)h
(of)f(the)h(shell's)g(b)s(eha)m(vior)f(de\014ned)f(b)m(y)h(the)h
-Fm(posix)e Fu(Shell)i(and)150 3773 y(Utilities)35 b(v)m(olume.)49
+Fm(posix)e Fu(Shell)i(and)150 4336 y(Utilities)35 b(v)m(olume.)49
b(The)33 b(shell)g(command)f(language)j(has)d(of)i(course)f(b)s(een)f
-(standardized,)h(including)150 3882 y(the)42 b(basic)g(\015o)m(w)g(con)
+(standardized,)h(including)150 4446 y(the)42 b(basic)g(\015o)m(w)g(con)
m(trol)i(and)d(program)g(execution)i(constructs,)j(I/O)41
-b(redirection)i(and)e(pip)s(elines,)150 3992 y(argumen)m(t)31
+b(redirection)i(and)e(pip)s(elines,)150 4555 y(argumen)m(t)31
b(handling,)f(v)-5 b(ariable)31 b(expansion,)f(and)g(quoting.)275
-4123 y(The)40 b Fl(sp)-5 b(e)g(cial)52 b Fu(builtins,)44
+4682 y(The)40 b Fl(sp)-5 b(e)g(cial)52 b Fu(builtins,)44
b(whic)m(h)d(m)m(ust)g(b)s(e)g(implemen)m(ted)h(as)f(part)g(of)h(the)f
-(shell)g(to)h(pro)m(vide)g(the)150 4233 y(desired)25
+(shell)g(to)h(pro)m(vide)g(the)150 4792 y(desired)25
b(functionalit)m(y)-8 b(,)28 b(are)e(sp)s(eci\014ed)f(as)g(b)s(eing)g
(part)h(of)f(the)h(shell;)h(examples)f(of)g(these)g(are)f
-Ft(eval)g Fu(and)150 4342 y Ft(export)p Fu(.)44 b(Other)32
+Ft(eval)g Fu(and)150 4902 y Ft(export)p Fu(.)44 b(Other)32
b(utilities)h(app)s(ear)f(in)g(the)g(sections)h(of)f
Fm(posix)g Fu(not)g(dev)m(oted)h(to)g(the)f(shell)h(whic)m(h)f(are)150
-4452 y(commonly)24 b(\(and)f(in)g(some)h(cases)g(m)m(ust)f(b)s(e\))g
+5011 y(commonly)24 b(\(and)f(in)g(some)h(cases)g(m)m(ust)f(b)s(e\))g
(implemen)m(ted)h(as)f(builtin)g(commands,)i(suc)m(h)e(as)g
-Ft(read)g Fu(and)150 4562 y Ft(test)p Fu(.)46 b Fm(posix)32
+Ft(read)g Fu(and)150 5121 y Ft(test)p Fu(.)46 b Fm(posix)32
b Fu(also)i(sp)s(eci\014es)e(asp)s(ects)h(of)g(the)g(shell's)g(in)m
(teractiv)m(e)i(b)s(eha)m(vior,)f(including)e(job)g(con)m(trol)150
-4671 y(and)k(command)g(line)h(editing.)59 b(Only)36 b(vi-st)m(yle)i
+5230 y(and)k(command)g(line)h(editing.)59 b(Only)36 b(vi-st)m(yle)i
(line)f(editing)g(commands)f(ha)m(v)m(e)h(b)s(een)f(standardized;)150
-4781 y(emacs)31 b(editing)g(commands)f(w)m(ere)h(left)g(out)g(due)e(to)
-j(ob)5 b(jections.)150 4974 y Fk(6.11.2)63 b(Bash)41
-b(POSIX)g(Mo)s(de)150 5121 y Fu(Although)29 b(Bash)g(is)g(an)g
-(implemen)m(tation)h(of)f(the)g Fm(posix)f Fu(shell)h(sp)s
-(eci\014cation,)i(there)e(are)g(areas)g(where)150 5230
-y(the)g(Bash)g(default)g(b)s(eha)m(vior)g(di\013ers)f(from)g(the)h(sp)s
-(eci\014cation.)41 b(The)28 b(Bash)h Fr(p)s(osix)g(mo)s(de)k
-Fu(c)m(hanges)d(the)150 5340 y(Bash)h(b)s(eha)m(vior)f(in)g(these)h
-(areas)g(so)g(that)g(it)f(conforms)h(more)f(strictly)h(to)h(the)e
-(standard.)p eop end
+5340 y(emacs)31 b(editing)g(commands)f(w)m(ere)h(left)g(out)g(due)e(to)
+j(ob)5 b(jections.)p eop end
%%Page: 117 123
TeXDict begin 117 122 bop 150 -116 a Fu(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2439 b(117)275 299 y(Starting)26
-b(Bash)g(with)f(the)h Ft(--posix)e Fu(command-line)j(option)f(or)g
-(executing)h(`)p Ft(set)j(-o)f(posix)p Fu(')c(while)150
-408 y(Bash)h(is)g(running)e(will)j(cause)f(Bash)g(to)h(conform)f(more)g
-(closely)h(to)g(the)f Fm(posix)f Fu(standard)g(b)m(y)h(c)m(hanging)150
-518 y(the)31 b(b)s(eha)m(vior)f(to)h(matc)m(h)g(that)g(sp)s(eci\014ed)f
-(b)m(y)g Fm(posix)g Fu(in)g(areas)h(where)f(the)h(Bash)f(default)h
-(di\013ers.)275 652 y(When)f(in)m(v)m(ok)m(ed)h(as)g
+b(Bash)30 b(F)-8 b(eatures)2439 b(117)150 299 y Fk(6.11.2)63
+b(Bash)41 b(POSIX)g(Mo)s(de)150 446 y Fu(Although)29
+b(Bash)g(is)g(an)g(implemen)m(tation)h(of)f(the)g Fm(posix)f
+Fu(shell)h(sp)s(eci\014cation,)i(there)e(are)g(areas)g(where)150
+555 y(the)g(Bash)g(default)g(b)s(eha)m(vior)g(di\013ers)f(from)g(the)h
+(sp)s(eci\014cation.)41 b(The)28 b(Bash)h Fr(p)s(osix)g(mo)s(de)k
+Fu(c)m(hanges)d(the)150 665 y(Bash)h(b)s(eha)m(vior)f(in)g(these)h
+(areas)g(so)g(that)g(it)f(conforms)h(more)f(strictly)h(to)h(the)e
+(standard.)275 805 y(Starting)f(Bash)f(with)h(the)f Ft(--posix)f
+Fu(or)h Ft(-o)i(posix)d Fu(command-line)i(option)g(or)g(executing)h(`)p
+Ft(set)g(-o)150 915 y(posix)p Fu(')23 b(while)h(Bash)h(is)f(running)f
+(will)i(cause)f(Bash)h(to)g(conform)f(more)h(closely)h(to)f(the)f
+Fm(posix)g Fu(standard)150 1024 y(b)m(y)k(c)m(hanging)h(the)f(b)s(eha)m
+(vior)g(to)h(matc)m(h)g(that)f(sp)s(eci\014ed)f(b)m(y)h
+Fm(posix)g Fu(in)f(areas)i(where)e(the)i(Bash)f(default)150
+1134 y(di\013ers.)275 1274 y(When)i(in)m(v)m(ok)m(ed)h(as)g
Ft(sh)p Fu(,)f(Bash)h(en)m(ters)g Fm(posix)e Fu(mo)s(de)h(after)h
-(reading)g(the)f(startup)g(\014les.)275 786 y(The)f(follo)m(wing)j
+(reading)g(the)f(startup)g(\014les.)275 1414 y(The)f(follo)m(wing)j
(list)f(is)g(what's)f(c)m(hanged)h(when)e Fm(posix)h
-Fu(mo)s(de)g(is)g(in)h(e\013ect:)199 920 y(1.)61 b(Bash)31
+Fu(mo)s(de)g(is)g(in)h(e\013ect:)199 1554 y(1.)61 b(Bash)31
b(ensures)e(that)i(the)f Ft(POSIXLY_CORRECT)d Fu(v)-5
-b(ariable)31 b(is)f(set.)199 1054 y(2.)61 b(Bash)35 b(reads)f(and)h
+b(ariable)31 b(is)f(set.)199 1692 y(2.)61 b(Bash)35 b(reads)f(and)h
(executes)h(the)f Fm(posix)f Fu(startup)g(\014les)h(\()p
Ft($ENV)p Fu(\))f(rather)h(than)f(the)h(normal)g(Bash)330
-1163 y(\014les)30 b(\(see)i(Section)f(6.2)g([Bash)g(Startup)f(Files],)i
-(page)f(102.)199 1297 y(3.)61 b(Alias)31 b(expansion)g(is)f(alw)m(a)m
+1801 y(\014les)30 b(\(see)i(Section)f(6.2)g([Bash)g(Startup)f(Files],)i
+(page)f(102\).)199 1939 y(3.)61 b(Alias)31 b(expansion)g(is)f(alw)m(a)m
(ys)i(enabled,)e(ev)m(en)i(in)e(non-in)m(teractiv)m(e)j(shells.)199
-1431 y(4.)61 b(Reserv)m(ed)40 b(w)m(ords)g(app)s(earing)f(in)h(a)g(con)
+2076 y(4.)61 b(Reserv)m(ed)40 b(w)m(ords)g(app)s(earing)f(in)h(a)g(con)
m(text)i(where)d(reserv)m(ed)h(w)m(ords)f(are)i(recognized)g(do)f(not)
-330 1541 y(undergo)30 b(alias)h(expansion.)199 1675 y(5.)61
+330 2186 y(undergo)30 b(alias)h(expansion.)199 2323 y(5.)61
b(Alias)45 b(expansion)e(is)h(p)s(erformed)f(when)f(initially)k
-(parsing)d(a)h(command)g(substitution.)80 b(The)330 1784
+(parsing)d(a)h(command)g(substitution.)80 b(The)330 2432
y(default)37 b(\(non-p)s(osix\))f(mo)s(de)h(generally)h(defers)e(it,)j
(when)c(enabled,)k(un)m(til)e(the)f(command)h(sub-)330
-1894 y(stitution)d(is)g(executed.)51 b(This)33 b(means)h(that)g
+2542 y(stitution)d(is)g(executed.)51 b(This)33 b(means)h(that)g
(command)f(substitution)h(will)g(not)g(expand)e(aliases)330
-2004 y(that)k(are)f(de\014ned)f(after)h(the)g(command)g(substitution)g
+2652 y(that)k(are)f(de\014ned)f(after)h(the)g(command)g(substitution)g
(is)g(initially)h(parsed)e(\(e.g.,)k(as)e(part)e(of)i(a)330
-2113 y(function)30 b(de\014nition\).)199 2247 y(6.)61
+2761 y(function)30 b(de\014nition\).)199 2899 y(6.)61
b(The)35 b Ft(time)g Fu(reserv)m(ed)g(w)m(ord)h(ma)m(y)g(b)s(e)f(used)g
(b)m(y)g(itself)h(as)g(a)g(simple)g(command.)56 b(When)35
-b(used)g(in)330 2357 y(this)41 b(w)m(a)m(y)-8 b(,)45
+b(used)g(in)330 3008 y(this)41 b(w)m(a)m(y)-8 b(,)45
b(it)c(displa)m(ys)g(timing)g(statistics)i(for)d(the)h(shell)g(and)f
-(its)h(completed)h(c)m(hildren.)71 b(The)330 2466 y Ft(TIMEFORMAT)28
+(its)h(completed)h(c)m(hildren.)71 b(The)330 3118 y Ft(TIMEFORMAT)28
b Fu(v)-5 b(ariable)31 b(con)m(trols)g(the)g(format)g(of)f(the)h
-(timing)g(information.)199 2600 y(7.)61 b(The)29 b(parser)g(do)s(es)g
+(timing)g(information.)199 3255 y(7.)61 b(The)29 b(parser)g(do)s(es)g
(not)h(recognize)h Ft(time)d Fu(as)i(a)g(reserv)m(ed)f(w)m(ord)g(if)h
-(the)f(next)h(tok)m(en)h(b)s(egins)d(with)i(a)330 2710
-y(`)p Ft(-)p Fu('.)199 2844 y(8.)61 b(When)33 b(parsing)g(and)f
+(the)f(next)h(tok)m(en)h(b)s(egins)d(with)i(a)330 3365
+y(`)p Ft(-)p Fu('.)199 3502 y(8.)61 b(When)33 b(parsing)g(and)f
(expanding)h(a)h($)p Fi({)6 b Fu(.)22 b(.)h(.)11 b Fi(})33
b Fu(expansion)g(that)h(app)s(ears)f(within)f(double)h(quotes,)330
-2953 y(single)42 b(quotes)g(are)g(no)g(longer)g(sp)s(ecial)g(and)f
+3612 y(single)42 b(quotes)g(are)g(no)g(longer)g(sp)s(ecial)g(and)f
(cannot)i(b)s(e)e(used)g(to)h(quote)g(a)g(closing)h(brace)f(or)330
-3063 y(other)31 b(sp)s(ecial)h(c)m(haracter,)i(unless)c(the)i(op)s
+3721 y(other)31 b(sp)s(ecial)h(c)m(haracter,)i(unless)c(the)i(op)s
(erator)f(is)g(one)h(of)f(those)h(de\014ned)e(to)i(p)s(erform)e
-(pattern)330 3173 y(remo)m(v)-5 b(al.)42 b(In)30 b(this)g(case,)i(they)
+(pattern)330 3831 y(remo)m(v)-5 b(al.)42 b(In)30 b(this)g(case,)i(they)
e(do)g(not)h(ha)m(v)m(e)h(to)f(app)s(ear)e(as)i(matc)m(hed)g(pairs.)199
-3306 y(9.)61 b(Redirection)32 b(op)s(erators)f(do)f(not)h(p)s(erform)e
+3968 y(9.)61 b(Redirection)32 b(op)s(erators)f(do)f(not)h(p)s(erform)e
(\014lename)i(expansion)g(on)g(the)f(w)m(ord)h(in)f(a)h(redirection)330
-3416 y(unless)f(the)g(shell)h(is)f(in)m(teractiv)m(e.)154
-3550 y(10.)61 b(Redirection)31 b(op)s(erators)g(do)f(not)h(p)s(erform)e
+4078 y(unless)f(the)g(shell)h(is)f(in)m(teractiv)m(e.)154
+4215 y(10.)61 b(Redirection)31 b(op)s(erators)g(do)f(not)h(p)s(erform)e
(w)m(ord)h(splitting)h(on)f(the)h(w)m(ord)f(in)g(a)g(redirection.)154
-3684 y(11.)61 b(F)-8 b(unction)31 b(names)f(ma)m(y)h(not)g(b)s(e)f(the)
+4352 y(11.)61 b(F)-8 b(unction)31 b(names)f(ma)m(y)h(not)g(b)s(e)f(the)
g(same)h(as)g(one)f(of)h(the)f Fm(posix)g Fu(sp)s(ecial)h(builtins.)154
-3818 y(12.)61 b(Tilde)30 b(expansion)g(is)f(only)h(p)s(erformed)f(on)h
+4490 y(12.)61 b(Tilde)30 b(expansion)g(is)f(only)h(p)s(erformed)f(on)h
(assignmen)m(ts)g(preceding)g(a)g(command)g(name,)g(rather)330
-3927 y(than)g(on)g(all)i(assignmen)m(t)f(statemen)m(ts)h(on)e(the)h
-(line.)154 4061 y(13.)61 b(While)32 b(v)-5 b(ariable)32
+4599 y(than)g(on)g(all)i(assignmen)m(t)f(statemen)m(ts)h(on)e(the)h
+(line.)154 4737 y(13.)61 b(While)32 b(v)-5 b(ariable)32
b(indirection)f(is)g(a)m(v)-5 b(ailable,)34 b(it)d(ma)m(y)h(not)f(b)s
(e)g(applied)g(to)g(the)h(`)p Ft(#)p Fu(')f(and)f(`)p
-Ft(?)p Fu(')h(sp)s(ecial)330 4171 y(parameters.)154 4305
+Ft(?)p Fu(')h(sp)s(ecial)330 4846 y(parameters.)154 4983
y(14.)61 b(Expanding)21 b(the)h(`)p Ft(*)p Fu(')g(sp)s(ecial)h
(parameter)f(in)g(a)g(pattern)h(con)m(text)g(where)f(the)g(expansion)g
-(is)g(double-)330 4415 y(quoted)31 b(do)s(es)f(not)g(treat)i(the)e
+(is)g(double-)330 5093 y(quoted)31 b(do)s(es)f(not)g(treat)i(the)e
Ft($*)g Fu(as)h(if)f(it)h(w)m(ere)g(double-quoted.)154
-4548 y(15.)61 b(A)39 b(double)f(quote)i(c)m(haracter)g(\(`)p
+5230 y(15.)61 b(A)39 b(double)f(quote)i(c)m(haracter)g(\(`)p
Ft(")p Fu('\))g(is)f(treated)g(sp)s(ecially)h(when)e(it)h(app)s(ears)f
-(in)h(a)g(bac)m(kquoted)330 4658 y(command)24 b(substitution)f(in)h
+(in)h(a)g(bac)m(kquoted)330 5340 y(command)24 b(substitution)f(in)h
(the)g(b)s(o)s(dy)e(of)i(a)g(here-do)s(cumen)m(t)g(that)h(undergo)s(es)
-e(expansion.)38 b(That)330 4768 y(means,)29 b(for)f(example,)i(that)f
-(a)g(bac)m(kslash)g(preceding)f(a)h(double)f(quote)h(c)m(haracter)h
-(will)f(escap)s(e)f(it)330 4877 y(and)i(the)g(bac)m(kslash)h(will)g(b)s
-(e)f(remo)m(v)m(ed.)154 5011 y(16.)61 b(Command)25 b(substitutions)g
-(don't)g(set)h(the)g(`)p Ft(?)p Fu(')g(sp)s(ecial)g(parameter.)40
-b(The)25 b(exit)h(status)g(of)g(a)g(simple)330 5121 y(command)i
-(without)g(a)h(command)f(w)m(ord)f(is)i(still)g(the)f(exit)h(status)g
-(of)f(the)g(last)h(command)f(substi-)330 5230 y(tution)f(that)h(o)s
-(ccurred)e(while)h(ev)-5 b(aluating)28 b(the)g(v)-5 b(ariable)27
-b(assignmen)m(ts)h(and)e(redirections)i(in)e(that)330
-5340 y(command,)h(but)f(that)g(do)s(es)g(not)h(happ)s(en)d(un)m(til)j
-(after)g(all)g(of)f(the)h(assignmen)m(ts)g(and)e(redirections.)p
-eop end
+e(expansion.)38 b(That)p eop end
%%Page: 118 124
TeXDict begin 118 123 bop 150 -116 a Fu(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2439 b(118)154 299 y(17.)61
-b(Literal)28 b(tildes)g(that)f(app)s(ear)f(as)i(the)f(\014rst)f(c)m
-(haracter)j(in)d(elemen)m(ts)j(of)e(the)g Ft(PATH)f Fu(v)-5
-b(ariable)27 b(are)h(not)330 408 y(expanded)i(as)g(describ)s(ed)f(ab)s
-(o)m(v)m(e)j(under)d(Section)i(3.5.2)h([Tilde)f(Expansion],)f(page)h
-(26.)154 550 y(18.)61 b(Command)31 b(lo)s(okup)h(\014nds)e
-Fm(posix)h Fu(sp)s(ecial)i(builtins)f(b)s(efore)f(shell)h(functions,)h
-(including)e(output)330 660 y(prin)m(ted)f(b)m(y)g(the)h
-Ft(type)e Fu(and)h Ft(command)e Fu(builtins.)154 802
-y(19.)61 b(Ev)m(en)27 b(if)h(a)f(shell)h(function)f(whose)g(name)g(con)
-m(tains)i(a)f(slash)f(w)m(as)g(de\014ned)g(b)s(efore)f(en)m(tering)j
-Fm(posix)330 911 y Fu(mo)s(de,)h(the)h(shell)f(will)h(not)g(execute)g
-(a)g(function)f(whose)g(name)h(con)m(tains)g(one)g(or)f(more)h
-(slashes.)154 1053 y(20.)61 b(When)28 b(a)i(command)e(in)g(the)h(hash)f
-(table)i(no)e(longer)h(exists,)h(Bash)f(will)g(re-searc)m(h)h
-Ft($PATH)d Fu(to)i(\014nd)330 1163 y(the)i(new)e(lo)s(cation.)43
+b(Bash)30 b(F)-8 b(eatures)2439 b(118)330 299 y(means,)29
+b(for)f(example,)i(that)f(a)g(bac)m(kslash)g(preceding)f(a)h(double)f
+(quote)h(c)m(haracter)h(will)f(escap)s(e)f(it)330 408
+y(and)i(the)g(bac)m(kslash)h(will)g(b)s(e)f(remo)m(v)m(ed.)154
+539 y(16.)61 b(Command)25 b(substitutions)g(don't)g(set)h(the)g(`)p
+Ft(?)p Fu(')g(sp)s(ecial)g(parameter.)40 b(The)25 b(exit)h(status)g(of)
+g(a)g(simple)330 648 y(command)i(without)g(a)h(command)f(w)m(ord)f(is)i
+(still)g(the)f(exit)h(status)g(of)f(the)g(last)h(command)f(substi-)330
+758 y(tution)f(that)h(o)s(ccurred)e(while)h(ev)-5 b(aluating)28
+b(the)g(v)-5 b(ariable)27 b(assignmen)m(ts)h(and)e(redirections)i(in)e
+(that)330 867 y(command,)h(but)f(that)g(do)s(es)g(not)h(happ)s(en)d(un)
+m(til)j(after)g(all)g(of)f(the)h(assignmen)m(ts)g(and)e(redirections.)
+154 998 y(17.)61 b(Literal)28 b(tildes)g(that)f(app)s(ear)f(as)i(the)f
+(\014rst)f(c)m(haracter)j(in)d(elemen)m(ts)j(of)e(the)g
+Ft(PATH)f Fu(v)-5 b(ariable)27 b(are)h(not)330 1107 y(expanded)i(as)g
+(describ)s(ed)f(ab)s(o)m(v)m(e)j(under)d(Section)i(3.5.2)h([Tilde)f
+(Expansion],)f(page)h(26.)154 1237 y(18.)61 b(Command)31
+b(lo)s(okup)h(\014nds)e Fm(posix)h Fu(sp)s(ecial)i(builtins)f(b)s
+(efore)f(shell)h(functions,)h(including)e(output)330
+1347 y(prin)m(ted)f(b)m(y)g(the)h Ft(type)e Fu(and)h
+Ft(command)e Fu(builtins.)154 1477 y(19.)61 b(Ev)m(en)27
+b(if)h(a)f(shell)h(function)f(whose)g(name)g(con)m(tains)i(a)f(slash)f
+(w)m(as)g(de\014ned)g(b)s(efore)f(en)m(tering)j Fm(posix)330
+1587 y Fu(mo)s(de,)h(the)h(shell)f(will)h(not)g(execute)g(a)g(function)
+f(whose)g(name)h(con)m(tains)g(one)g(or)f(more)h(slashes.)154
+1717 y(20.)61 b(When)28 b(a)i(command)e(in)g(the)h(hash)f(table)i(no)e
+(longer)h(exists,)h(Bash)f(will)g(re-searc)m(h)h Ft($PATH)d
+Fu(to)i(\014nd)330 1826 y(the)i(new)e(lo)s(cation.)43
b(This)29 b(is)i(also)g(a)m(v)-5 b(ailable)33 b(with)d(`)p
-Ft(shopt)f(-s)h(checkhash)p Fu('.)154 1305 y(21.)61 b(Bash)36
+Ft(shopt)f(-s)h(checkhash)p Fu('.)154 1956 y(21.)61 b(Bash)36
b(will)g(not)g(insert)g(a)g(command)f(without)h(the)g(execute)h(bit)f
-(set)g(in)m(to)h(the)f(command)g(hash)330 1414 y(table,)c(ev)m(en)f(if)
+(set)g(in)m(to)h(the)f(command)g(hash)330 2066 y(table,)c(ev)m(en)f(if)
f(it)h(returns)e(it)i(as)g(a)f(\(last-ditc)m(h\))j(result)d(from)g(a)h
-Ft($PATH)e Fu(searc)m(h.)154 1556 y(22.)61 b(The)42 b(message)h(prin)m
-(ted)e(b)m(y)h(the)g(job)g(con)m(trol)i(co)s(de)e(and)f(builtins)h
-(when)f(a)h(job)g(exits)h(with)f(a)330 1666 y(non-zero)31
-b(status)g(is)f(`Done\(status\)'.)154 1807 y(23.)61 b(The)40
-b(message)h(prin)m(ted)f(b)m(y)g(the)h(job)f(con)m(trol)h(co)s(de)g
-(and)f(builtins)f(when)h(a)g(job)g(is)h(stopp)s(ed)e(is)330
-1917 y(`Stopp)s(ed\()p Fr(signame)5 b Fu(\)',)31 b(where)f
-Fr(signame)36 b Fu(is,)31 b(for)f(example,)h Ft(SIGTSTP)p
-Fu(.)154 2059 y(24.)61 b(If)35 b(the)h(shell)g(is)g(in)m(teractiv)m(e,)
-41 b(Bash)36 b(do)s(es)f(not)h(p)s(erform)f(job)g(noti\014cations)i(b)s
-(et)m(w)m(een)g(executing)330 2168 y(commands)44 b(in)h(lists)g
-(separated)h(b)m(y)e(`)p Ft(;)p Fu(')h(or)g(newline.)84
-b(Non-in)m(teractiv)m(e)48 b(shells)d(prin)m(t)g(status)330
-2278 y(messages)31 b(after)g(a)g(foreground)f(job)g(in)g(a)g(list)h
-(completes.)154 2420 y(25.)61 b(If)32 b(the)g(shell)g(is)h(in)m
-(teractiv)m(e,)i(Bash)e(w)m(aits)g(un)m(til)f(the)h(next)f(prompt)f(b)s
-(efore)h(prin)m(ting)g(the)h(status)330 2529 y(of)f(a)g(bac)m(kground)f
-(job)h(that)g(c)m(hanges)h(status)f(or)g(a)g(foreground)f(job)g(that)h
-(terminates)h(due)e(to)i(a)330 2639 y(signal.)41 b(Non-in)m(teractiv)m
-(e)34 b(shells)d(prin)m(t)f(status)g(messages)i(after)e(a)h(foreground)
-f(job)g(completes.)154 2781 y(26.)61 b(Bash)38 b(p)s(ermanen)m(tly)g
-(remo)m(v)m(es)i(jobs)d(from)h(the)h(jobs)e(table)i(after)g(notifying)g
-(the)f(user)g(of)g(their)330 2890 y(termination)c(via)g(the)f
-Ft(wait)f Fu(or)h Ft(jobs)f Fu(builtins.)49 b(It)33 b(remo)m(v)m(es)i
-(the)e(job)g(from)g(the)g(jobs)g(list)g(after)330 3000
-y(notifying)g(the)f(user)g(of)g(its)g(termination,)i(but)e(the)g
-(status)h(is)f(still)h(a)m(v)-5 b(ailable)34 b(via)f
-Ft(wait)p Fu(,)f(as)g(long)330 3110 y(as)f Ft(wait)e
-Fu(is)h(supplied)f(a)i Fm(pid)f Fu(argumen)m(t.)154 3251
-y(27.)61 b(The)33 b Ft(vi)f Fu(editing)i(mo)s(de)f(will)g(in)m(v)m(ok)m
-(e)i(the)e Ft(vi)g Fu(editor)h(directly)f(when)f(the)i(`)p
-Ft(v)p Fu(')f(command)g(is)g(run,)330 3361 y(instead)e(of)f(c)m(hec)m
-(king)i Ft($VISUAL)d Fu(and)g Ft($EDITOR)p Fu(.)154 3503
-y(28.)61 b(Prompt)43 b(expansion)g(enables)g(the)h Fm(posix)e
+Ft($PATH)e Fu(searc)m(h.)154 2196 y(22.)61 b(Normally)-8
+b(,)37 b(when)c(job)h(con)m(trol)h(is)g(not)f(enabled,)i(the)e(shell)g
+(implicitly)i(redirects)e(the)h(standard)330 2306 y(input)24
+b(of)g(async)m(hronous)g(commands)g(from)g Ft(/dev/null)p
+Fu(.)37 b(A)24 b(redirection)h(to)h(the)e(standard)g(input)330
+2415 y(in)33 b(this)h(command)g(inhibits)f(this)g(implicit)i
+(redirection.)51 b(In)33 b Fm(posix)g Fu(mo)s(de,)i(a)f(redirection)g
+(that)330 2525 y(redirects)42 b(\014le)f(descriptor)h(0)g(to)g(itself)g
+(\(e.g.,)47 b(`)p Ft(<&0)p Fu('\))41 b(do)s(es)g(not)h(coun)m(t)g(as)g
+(a)g(redirection)g(that)330 2634 y(o)m(v)m(errides)31
+b(the)g(implicit)g(redirection)g(from)f Ft(/dev/null)p
+Fu(.)154 2765 y(23.)61 b(The)42 b(message)h(prin)m(ted)e(b)m(y)h(the)g
+(job)g(con)m(trol)i(co)s(de)e(and)f(builtins)h(when)f(a)h(job)g(exits)h
+(with)f(a)330 2874 y(non-zero)31 b(status)g(is)f(\\Done\(status\)".)154
+3004 y(24.)61 b(The)40 b(message)h(prin)m(ted)f(b)m(y)g(the)h(job)f
+(con)m(trol)h(co)s(de)g(and)f(builtins)f(when)h(a)g(job)g(is)h(stopp)s
+(ed)e(is)330 3114 y(\\Stopp)s(ed\()p Fr(signame)5 b Fu(\)",)32
+b(where)e Fr(signame)36 b Fu(is,)30 b(for)g(example,)i
+Ft(SIGTSTP)p Fu(.)154 3244 y(25.)61 b(If)35 b(the)h(shell)g(is)g(in)m
+(teractiv)m(e,)41 b(Bash)36 b(do)s(es)f(not)h(p)s(erform)f(job)g
+(noti\014cations)i(b)s(et)m(w)m(een)g(executing)330 3354
+y(commands)44 b(in)h(lists)g(separated)h(b)m(y)e(`)p
+Ft(;)p Fu(')h(or)g(newline.)84 b(Non-in)m(teractiv)m(e)48
+b(shells)d(prin)m(t)g(status)330 3463 y(messages)31 b(after)g(a)g
+(foreground)f(job)g(in)g(a)g(list)h(completes.)154 3593
+y(26.)61 b(If)32 b(the)g(shell)g(is)h(in)m(teractiv)m(e,)i(Bash)e(w)m
+(aits)g(un)m(til)f(the)h(next)f(prompt)f(b)s(efore)h(prin)m(ting)g(the)
+h(status)330 3703 y(of)f(a)g(bac)m(kground)f(job)h(that)g(c)m(hanges)h
+(status)f(or)g(a)g(foreground)f(job)g(that)h(terminates)h(due)e(to)i(a)
+330 3813 y(signal.)41 b(Non-in)m(teractiv)m(e)34 b(shells)d(prin)m(t)f
+(status)g(messages)i(after)e(a)h(foreground)f(job)g(completes.)154
+3943 y(27.)61 b(Bash)38 b(p)s(ermanen)m(tly)g(remo)m(v)m(es)i(jobs)d
+(from)h(the)h(jobs)e(table)i(after)g(notifying)g(the)f(user)g(of)g
+(their)330 4052 y(termination)c(via)g(the)f Ft(wait)f
+Fu(or)h Ft(jobs)f Fu(builtins.)49 b(It)33 b(remo)m(v)m(es)i(the)e(job)g
+(from)g(the)g(jobs)g(list)g(after)330 4162 y(notifying)g(the)f(user)g
+(of)g(its)g(termination,)i(but)e(the)g(status)h(is)f(still)h(a)m(v)-5
+b(ailable)34 b(via)f Ft(wait)p Fu(,)f(as)g(long)330 4271
+y(as)f Ft(wait)e Fu(is)h(supplied)f(a)i Fm(pid)f Fu(argumen)m(t.)154
+4402 y(28.)61 b(The)33 b Ft(vi)f Fu(editing)i(mo)s(de)f(will)g(in)m(v)m
+(ok)m(e)i(the)e Ft(vi)g Fu(editor)h(directly)f(when)f(the)i(`)p
+Ft(v)p Fu(')f(command)g(is)g(run,)330 4511 y(instead)e(of)f(c)m(hec)m
+(king)i Ft($VISUAL)d Fu(and)g Ft($EDITOR)p Fu(.)154 4641
+y(29.)61 b(Prompt)43 b(expansion)g(enables)g(the)h Fm(posix)e
Ft(PS1)g Fu(and)h Ft(PS2)f Fu(expansions)h(of)g(`)p Ft(!)p
-Fu(')h(to)g(the)f(history)330 3612 y(n)m(um)m(b)s(er)31
+Fu(')h(to)g(the)f(history)330 4751 y(n)m(um)m(b)s(er)31
b(and)h(`)p Ft(!!)p Fu(')h(to)g(`)p Ft(!)p Fu(',)g(and)f(Bash)h(p)s
(erforms)e(parameter)i(expansion)f(on)h(the)f(v)-5 b(alues)33
-b(of)g Ft(PS1)330 3722 y Fu(and)d Ft(PS2)f Fu(regardless)i(of)f(the)h
+b(of)g Ft(PS1)330 4861 y Fu(and)d Ft(PS2)f Fu(regardless)i(of)f(the)h
(setting)h(of)e(the)h Ft(promptvars)c Fu(option.)154
-3864 y(29.)61 b(The)29 b(default)g(history)g(\014le)g(is)g
+4991 y(30.)61 b(The)29 b(default)g(history)g(\014le)g(is)g
Ft(~/.sh_history)d Fu(\(this)j(is)g(the)g(default)h(v)-5
-b(alue)29 b(the)h(shell)f(assigns)g(to)330 3973 y Ft($HISTFILE)p
-Fu(\).)154 4115 y(30.)61 b(The)30 b(`)p Ft(!)p Fu(')h(c)m(haracter)h
+b(alue)29 b(the)h(shell)f(assigns)g(to)330 5100 y Ft($HISTFILE)p
+Fu(\).)154 5230 y(31.)61 b(The)30 b(`)p Ft(!)p Fu(')h(c)m(haracter)h
(do)s(es)e(not)h(in)m(tro)s(duce)g(history)f(expansion)h(within)f(a)h
-(double-quoted)g(string,)330 4225 y(ev)m(en)g(if)f(the)h
-Ft(histexpand)d Fu(option)i(is)h(enabled.)154 4367 y(31.)61
+(double-quoted)g(string,)330 5340 y(ev)m(en)g(if)f(the)h
+Ft(histexpand)d Fu(option)i(is)h(enabled.)p eop end
+%%Page: 119 125
+TeXDict begin 119 124 bop 150 -116 a Fu(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2439 b(119)154 299 y(32.)61
b(When)48 b(prin)m(ting)g(shell)h(function)f(de\014nitions)g(\(e.g.,)55
b(b)m(y)48 b Ft(type)p Fu(\),)k(Bash)d(do)s(es)f(not)h(prin)m(t)f(the)
-330 4476 y Ft(function)28 b Fu(reserv)m(ed)j(w)m(ord)f(unless)f
-(necessary)-8 b(.)154 4618 y(32.)61 b(Non-in)m(teractiv)m(e)41
+330 408 y Ft(function)28 b Fu(reserv)m(ed)j(w)m(ord)f(unless)f
+(necessary)-8 b(.)154 547 y(33.)61 b(Non-in)m(teractiv)m(e)41
b(shells)d(exit)h(if)f(a)g(syn)m(tax)g(error)g(in)f(an)h(arithmetic)h
-(expansion)f(results)f(in)h(an)330 4728 y(in)m(v)-5 b(alid)31
-b(expression.)154 4869 y(33.)61 b(Non-in)m(teractiv)m(e)34
+(expansion)f(results)f(in)h(an)330 657 y(in)m(v)-5 b(alid)31
+b(expression.)154 796 y(34.)61 b(Non-in)m(teractiv)m(e)34
b(shells)c(exit)h(if)g(a)f(parameter)h(expansion)g(error)f(o)s(ccurs.)
-154 5011 y(34.)61 b(If)24 b(a)g Fm(posix)g Fu(sp)s(ecial)h(builtin)f
+154 934 y(35.)61 b(If)24 b(a)g Fm(posix)g Fu(sp)s(ecial)h(builtin)f
(returns)f(an)h(error)g(status,)i(a)e(non-in)m(teractiv)m(e)j(shell)e
-(exits.)39 b(The)24 b(fatal)330 5121 y(errors)30 b(are)h(those)f
+(exits.)39 b(The)24 b(fatal)330 1044 y(errors)30 b(are)h(those)f
(listed)h(in)f(the)h Fm(posix)e Fu(standard,)h(and)g(include)g(things)g
-(lik)m(e)i(passing)e(incorrect)330 5230 y(options,)43
+(lik)m(e)i(passing)e(incorrect)330 1154 y(options,)43
b(redirection)d(errors,)i(v)-5 b(ariable)41 b(assignmen)m(t)g(errors)e
-(for)g(assignmen)m(ts)i(preceding)f(the)330 5340 y(command)30
-b(name,)h(and)f(so)g(on.)p eop end
-%%Page: 119 125
-TeXDict begin 119 124 bop 150 -116 a Fu(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2439 b(119)154 299 y(35.)61
-b(A)31 b(non-in)m(teractiv)m(e)j(shell)d(exits)h(with)e(an)h(error)g
-(status)g(if)g(a)g(v)-5 b(ariable)32 b(assignmen)m(t)g(error)e(o)s
-(ccurs)330 408 y(when)38 b(no)h(command)g(name)g(follo)m(ws)i(the)e
-(assignmen)m(t)h(statemen)m(ts.)69 b(A)39 b(v)-5 b(ariable)40
-b(assignmen)m(t)330 518 y(error)30 b(o)s(ccurs,)g(for)g(example,)i
-(when)d(trying)i(to)g(assign)f(a)h(v)-5 b(alue)31 b(to)g(a)g(readonly)f
-(v)-5 b(ariable.)154 650 y(36.)61 b(A)31 b(non-in)m(teractiv)m(e)j
-(shell)d(exits)h(with)e(an)h(error)g(status)g(if)g(a)g(v)-5
+(for)g(assignmen)m(ts)i(preceding)f(the)330 1263 y(command)30
+b(name,)h(and)f(so)g(on.)154 1402 y(36.)61 b(A)31 b(non-in)m(teractiv)m
+(e)j(shell)d(exits)h(with)e(an)h(error)g(status)g(if)g(a)g(v)-5
b(ariable)32 b(assignmen)m(t)g(error)e(o)s(ccurs)330
-759 y(in)g(an)g(assignmen)m(t)i(statemen)m(t)g(preceding)e(a)h(sp)s
-(ecial)g(builtin,)f(but)g(not)g(with)h(an)m(y)f(other)h(simple)330
-869 y(command.)38 b(F)-8 b(or)23 b(an)m(y)g(other)g(simple)g(command,)h
-(the)f(shell)g(ab)s(orts)f(execution)i(of)f(that)g(command,)330
-978 y(and)44 b(execution)i(con)m(tin)m(ues)g(at)g(the)f(top)g(lev)m(el)
-h(\()p Ft(")p Fu(the)f(shell)h(shall)f(not)g(p)s(erform)e(an)m(y)i
-(further)330 1088 y(pro)s(cessing)30 b(of)h(the)f(command)g(in)g(whic)m
-(h)h(the)f(error)g(o)s(ccurred)p Ft(")p Fu(\).)154 1219
-y(37.)61 b(A)43 b(non-in)m(teractiv)m(e)i(shell)e(exits)h(with)f(an)f
-(error)h(status)g(if)g(the)g(iteration)h(v)-5 b(ariable)44
-b(in)f(a)g Ft(for)330 1329 y Fu(statemen)m(t)30 b(or)f(the)g(selection)
-h(v)-5 b(ariable)30 b(in)e(a)h Ft(select)e Fu(statemen)m(t)k(is)d(a)h
-(readonly)g(v)-5 b(ariable)30 b(or)e(has)330 1439 y(an)i(in)m(v)-5
-b(alid)31 b(name.)154 1570 y(38.)61 b(Non-in)m(teractiv)m(e)34
+1512 y(when)38 b(no)h(command)g(name)g(follo)m(ws)i(the)e(assignmen)m
+(t)h(statemen)m(ts.)69 b(A)39 b(v)-5 b(ariable)40 b(assignmen)m(t)330
+1621 y(error)30 b(o)s(ccurs,)g(for)g(example,)i(when)d(trying)i(to)g
+(assign)f(a)h(v)-5 b(alue)31 b(to)g(a)g(readonly)f(v)-5
+b(ariable.)154 1760 y(37.)61 b(A)31 b(non-in)m(teractiv)m(e)j(shell)d
+(exits)h(with)e(an)h(error)g(status)g(if)g(a)g(v)-5 b(ariable)32
+b(assignmen)m(t)g(error)e(o)s(ccurs)330 1870 y(in)g(an)g(assignmen)m(t)
+i(statemen)m(t)g(preceding)e(a)h(sp)s(ecial)g(builtin,)f(but)g(not)g
+(with)h(an)m(y)f(other)h(simple)330 1979 y(command.)38
+b(F)-8 b(or)23 b(an)m(y)g(other)g(simple)g(command,)h(the)f(shell)g(ab)
+s(orts)f(execution)i(of)f(that)g(command,)330 2089 y(and)44
+b(execution)i(con)m(tin)m(ues)g(at)g(the)f(top)g(lev)m(el)h(\()p
+Ft(")p Fu(the)f(shell)h(shall)f(not)g(p)s(erform)e(an)m(y)i(further)330
+2198 y(pro)s(cessing)30 b(of)h(the)f(command)g(in)g(whic)m(h)h(the)f
+(error)g(o)s(ccurred)p Ft(")p Fu(\).)154 2337 y(38.)61
+b(A)43 b(non-in)m(teractiv)m(e)i(shell)e(exits)h(with)f(an)f(error)h
+(status)g(if)g(the)g(iteration)h(v)-5 b(ariable)44 b(in)f(a)g
+Ft(for)330 2447 y Fu(statemen)m(t)30 b(or)f(the)g(selection)h(v)-5
+b(ariable)30 b(in)e(a)h Ft(select)e Fu(statemen)m(t)k(is)d(a)h
+(readonly)g(v)-5 b(ariable)30 b(or)e(has)330 2556 y(an)i(in)m(v)-5
+b(alid)31 b(name.)154 2695 y(39.)61 b(Non-in)m(teractiv)m(e)34
b(shells)c(exit)h(if)g Fr(\014lename)k Fu(in)30 b Ft(.)g
-Fr(\014lename)36 b Fu(is)31 b(not)f(found.)154 1702 y(39.)61
+Fr(\014lename)36 b Fu(is)31 b(not)f(found.)154 2834 y(40.)61
b(Non-in)m(teractiv)m(e)27 b(shells)c(exit)i(if)e(there)h(is)f(a)h(syn)
m(tax)g(error)f(in)g(a)h(script)f(read)g(with)h(the)f
-Ft(.)g Fu(or)h Ft(source)330 1811 y Fu(builtins,)30 b(or)g(in)g(a)h
+Ft(.)g Fu(or)h Ft(source)330 2944 y Fu(builtins,)30 b(or)g(in)g(a)h
(string)g(pro)s(cessed)e(b)m(y)i(the)f Ft(eval)f Fu(builtin.)154
-1943 y(40.)61 b(Non-in)m(teractiv)m(e)33 b(shells)d(exit)g(if)g(the)f
+3082 y(41.)61 b(Non-in)m(teractiv)m(e)33 b(shells)d(exit)g(if)g(the)f
Ft(export)p Fu(,)g Ft(readonly)e Fu(or)j Ft(unset)e Fu(builtin)h
-(commands)g(get)i(an)330 2052 y(argumen)m(t)j(that)f(is)g(not)h(a)f(v)
+(commands)g(get)i(an)330 3192 y(argumen)m(t)j(that)f(is)g(not)h(a)f(v)
-5 b(alid)34 b(iden)m(ti\014er,)g(and)e(they)i(are)f(not)g(op)s
-(erating)h(on)f(shell)g(functions.)330 2162 y(These)d(errors)g(force)h
+(erating)h(on)f(shell)g(functions.)330 3302 y(These)d(errors)g(force)h
(an)f(exit)h(b)s(ecause)g(these)g(are)f(sp)s(ecial)h(builtins.)154
-2293 y(41.)61 b(Assignmen)m(t)23 b(statemen)m(ts)h(preceding)e
+3440 y(42.)61 b(Assignmen)m(t)23 b(statemen)m(ts)h(preceding)e
Fm(posix)f Fu(sp)s(ecial)i(builtins)f(p)s(ersist)g(in)f(the)i(shell)f
-(en)m(vironmen)m(t)330 2403 y(after)31 b(the)f(builtin)g(completes.)154
-2534 y(42.)61 b(The)31 b Ft(command)e Fu(builtin)i(do)s(es)g(not)h
+(en)m(vironmen)m(t)330 3550 y(after)31 b(the)f(builtin)g(completes.)154
+3689 y(43.)61 b(The)31 b Ft(command)e Fu(builtin)i(do)s(es)g(not)h
(prev)m(en)m(t)f(builtins)g(that)h(tak)m(e)h(assignmen)m(t)f(statemen)m
-(ts)h(as)f(ar-)330 2644 y(gumen)m(ts)40 b(from)e(expanding)h(them)g(as)
+(ts)h(as)f(ar-)330 3798 y(gumen)m(ts)40 b(from)e(expanding)h(them)g(as)
h(assignmen)m(t)g(statemen)m(ts;)46 b(when)38 b(not)i(in)f
-Fm(posix)f Fu(mo)s(de,)330 2754 y(declaration)29 b(commands)d(lose)i
+Fm(posix)f Fu(mo)s(de,)330 3908 y(declaration)29 b(commands)d(lose)i
(their)g(assignmen)m(t)g(statemen)m(t)h(expansion)e(prop)s(erties)f
-(when)g(pre-)330 2863 y(ceded)31 b(b)m(y)f Ft(command)p
-Fu(.)154 2995 y(43.)61 b(Enabling)21 b Fm(posix)g Fu(mo)s(de)g(has)g
+(when)g(pre-)330 4018 y(ceded)31 b(b)m(y)f Ft(command)p
+Fu(.)154 4156 y(44.)61 b(Enabling)21 b Fm(posix)g Fu(mo)s(de)g(has)g
(the)g(e\013ect)i(of)e(setting)i(the)e Ft(inherit_errexit)d
-Fu(option,)23 b(so)f(subshells)330 3104 y(spa)m(wned)27
+Fu(option,)23 b(so)f(subshells)330 4266 y(spa)m(wned)27
b(to)i(execute)g(command)e(substitutions)h(inherit)f(the)h(v)-5
b(alue)28 b(of)g(the)g Ft(-e)f Fu(option)h(from)g(the)330
-3214 y(paren)m(t)37 b(shell.)62 b(When)37 b(the)g Ft(inherit_errexit)c
+4376 y(paren)m(t)37 b(shell.)62 b(When)37 b(the)g Ft(inherit_errexit)c
Fu(option)38 b(is)f(not)h(enabled,)h(Bash)e(clears)h(the)g
-Ft(-e)330 3324 y Fu(option)31 b(in)f(suc)m(h)g(subshells.)154
-3455 y(44.)61 b(Enabling)32 b Fm(posix)f Fu(mo)s(de)h(has)g(the)h
+Ft(-e)330 4485 y Fu(option)31 b(in)f(suc)m(h)g(subshells.)154
+4624 y(45.)61 b(Enabling)32 b Fm(posix)f Fu(mo)s(de)h(has)g(the)h
(e\013ect)g(of)g(setting)g(the)g Ft(shift_verbose)28
-b Fu(option,)34 b(so)e(n)m(umeric)330 3565 y(argumen)m(ts)f(to)g
+b Fu(option,)34 b(so)e(n)m(umeric)330 4734 y(argumen)m(ts)f(to)g
Ft(shift)f Fu(that)h(exceed)h(the)e(n)m(um)m(b)s(er)g(of)h(p)s
(ositional)g(parameters)g(will)g(result)g(in)f(an)330
-3674 y(error)g(message.)154 3806 y(45.)61 b(Enabling)29
+4843 y(error)g(message.)154 4982 y(46.)61 b(Enabling)29
b Fm(posix)g Fu(mo)s(de)g(has)g(the)h(e\013ect)h(of)e(setting)i(the)e
Ft(interactive_comments)24 b Fu(option)30 b(\(see)330
-3915 y(Section)h(3.1.3)h([Commen)m(ts],)g(page)f(9\).)154
-4047 y(46.)61 b(The)21 b Ft(.)h Fu(and)f Ft(source)f
+5092 y(Section)h(3.1.3)h([Commen)m(ts],)g(page)f(9\).)154
+5230 y(47.)61 b(The)21 b Ft(.)h Fu(and)f Ft(source)f
Fu(builtins)h(do)g(not)h(searc)m(h)h(the)f(curren)m(t)f(directory)h
-(for)g(the)g(\014lename)f(argumen)m(t)330 4156 y(if)30
+(for)g(the)g(\014lename)f(argumen)m(t)330 5340 y(if)30
b(it)h(is)g(not)f(found)f(b)m(y)i(searc)m(hing)g Ft(PATH)p
-Fu(.)154 4288 y(47.)61 b(When)43 b(the)g Ft(alias)f Fu(builtin)g
-(displa)m(ys)i(alias)g(de\014nitions,)i(it)d(do)s(es)g(not)g(displa)m
-(y)h(them)f(with)g(a)330 4398 y(leading)31 b(`)p Ft(alias)e
-Fu(')i(unless)f(the)g Ft(-p)g Fu(option)h(is)f(supplied.)154
-4529 y(48.)61 b(The)27 b Ft(bg)g Fu(builtin)g(uses)g(the)h(required)f
-(format)h(to)g(describ)s(e)f(eac)m(h)i(job)e(placed)h(in)f(the)h(bac)m
-(kground,)330 4639 y(whic)m(h)h(do)s(es)g(not)g(include)g(an)g
-(indication)h(of)f(whether)f(the)h(job)g(is)g(the)h(curren)m(t)e(or)h
-(previous)g(job.)154 4770 y(49.)61 b(When)35 b(the)h
-Ft(cd)e Fu(builtin)h(is)h(in)m(v)m(ok)m(ed)g(in)f(logical)j(mo)s(de,)e
-(and)f(the)h(pathname)f(constructed)g(from)330 4880 y
-Ft($PWD)i Fu(and)h(the)h(directory)f(name)h(supplied)e(as)i(an)f
-(argumen)m(t)h(do)s(es)f(not)g(refer)h(to)g(an)f(existing)330
-4989 y(directory)-8 b(,)32 b Ft(cd)d Fu(will)i(fail)g(instead)g(of)f
+Fu(.)p eop end
+%%Page: 120 126
+TeXDict begin 120 125 bop 150 -116 a Fu(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2439 b(120)154 299 y(48.)61
+b(When)43 b(the)g Ft(alias)f Fu(builtin)g(displa)m(ys)i(alias)g
+(de\014nitions,)i(it)d(do)s(es)g(not)g(displa)m(y)h(them)f(with)g(a)330
+408 y(leading)31 b(`)p Ft(alias)e Fu(')i(unless)f(the)g
+Ft(-p)g Fu(option)h(is)f(supplied.)154 548 y(49.)61 b(The)27
+b Ft(bg)g Fu(builtin)g(uses)g(the)h(required)f(format)h(to)g(describ)s
+(e)f(eac)m(h)i(job)e(placed)h(in)f(the)h(bac)m(kground,)330
+658 y(whic)m(h)h(do)s(es)g(not)g(include)g(an)g(indication)h(of)f
+(whether)f(the)h(job)g(is)g(the)h(curren)m(t)e(or)h(previous)g(job.)154
+798 y(50.)61 b(When)35 b(the)h Ft(cd)e Fu(builtin)h(is)h(in)m(v)m(ok)m
+(ed)g(in)f(logical)j(mo)s(de,)e(and)f(the)h(pathname)f(constructed)g
+(from)330 908 y Ft($PWD)i Fu(and)h(the)h(directory)f(name)h(supplied)e
+(as)i(an)f(argumen)m(t)h(do)s(es)f(not)g(refer)h(to)g(an)f(existing)330
+1017 y(directory)-8 b(,)32 b Ft(cd)d Fu(will)i(fail)g(instead)g(of)f
(falling)h(bac)m(k)h(to)f(ph)m(ysical)g(mo)s(de.)154
-5121 y(50.)61 b(When)37 b(the)h Ft(cd)f Fu(builtin)g(cannot)h(c)m
+1157 y(51.)61 b(When)37 b(the)h Ft(cd)f Fu(builtin)g(cannot)h(c)m
(hange)h(a)f(directory)g(b)s(ecause)g(the)g(length)g(of)f(the)h
-(pathname)330 5230 y(constructed)27 b(from)g Ft($PWD)f
+(pathname)330 1267 y(constructed)27 b(from)g Ft($PWD)f
Fu(and)h(the)g(directory)h(name)f(supplied)f(as)i(an)f(argumen)m(t)g
-(exceeds)h Ft(PATH_)330 5340 y(MAX)h Fu(when)h(canonicalized,)j
+(exceeds)h Ft(PATH_)330 1377 y(MAX)h Fu(when)h(canonicalized,)j
Ft(cd)c Fu(will)i(attempt)h(to)f(use)f(the)g(supplied)f(directory)i
-(name.)p eop end
-%%Page: 120 126
-TeXDict begin 120 125 bop 150 -116 a Fu(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2439 b(120)154 299 y(51.)61
-b(When)41 b(the)g Ft(xpg_echo)e Fu(option)i(is)g(enabled,)j(Bash)d(do)s
-(es)g(not)g(attempt)h(to)g(in)m(terpret)f(an)m(y)h(ar-)330
-408 y(gumen)m(ts)i(to)g Ft(echo)e Fu(as)i(options.)81
-b Ft(echo)42 b Fu(displa)m(ys)h(eac)m(h)i(argumen)m(t)f(after)g(con)m
-(v)m(erting)h(escap)s(e)330 518 y(sequences.)154 658
-y(52.)61 b(The)38 b Ft(export)f Fu(and)g Ft(readonly)f
-Fu(builtin)i(commands)g(displa)m(y)h(their)f(output)g(in)g(the)h
-(format)g(re-)330 768 y(quired)30 b(b)m(y)g Fm(posix)p
-Fu(.)154 908 y(53.)61 b(When)35 b(listing)g(the)g(history)-8
-b(,)36 b(the)f Ft(fc)g Fu(builtin)f(do)s(es)g(not)h(include)g(an)f
-(indication)i(of)f(whether)f(or)330 1017 y(not)d(a)f(history)h(en)m
-(try)f(has)g(b)s(een)g(mo)s(di\014ed.)154 1157 y(54.)61
-b(The)30 b(default)g(editor)h(used)f(b)m(y)g Ft(fc)g
-Fu(is)g Ft(ed)p Fu(.)154 1297 y(55.)61 b Ft(fc)30 b Fu(treats)h(extra)g
-(argumen)m(ts)g(as)f(an)h(error)f(instead)g(of)h(ignoring)g(them.)154
-1437 y(56.)61 b(If)38 b(there)h(are)g(to)s(o)g(man)m(y)g(argumen)m(ts)g
-(supplied)e(to)i Ft(fc)30 b(-s)p Fu(,)40 b Ft(fc)e Fu(prin)m(ts)g(an)h
-(error)f(message)i(and)330 1547 y(returns)29 b(failure.)154
-1687 y(57.)61 b(The)23 b(output)f(of)i(`)p Ft(kill)29
-b(-l)p Fu(')23 b(prin)m(ts)f(all)i(the)g(signal)f(names)g(on)g(a)h
-(single)g(line,)h(separated)e(b)m(y)g(spaces,)330 1797
-y(without)30 b(the)h(`)p Ft(SIG)p Fu(')f(pre\014x.)154
-1937 y(58.)61 b(The)30 b Ft(kill)f Fu(builtin)h(do)s(es)g(not)h(accept)
-h(signal)f(names)f(with)g(a)h(`)p Ft(SIG)p Fu(')f(pre\014x.)154
-2077 y(59.)61 b(The)29 b Ft(kill)f Fu(builtin)h(returns)g(a)g(failure)h
+(name.)154 1517 y(52.)61 b(When)41 b(the)g Ft(xpg_echo)e
+Fu(option)i(is)g(enabled,)j(Bash)d(do)s(es)g(not)g(attempt)h(to)g(in)m
+(terpret)f(an)m(y)h(ar-)330 1626 y(gumen)m(ts)i(to)g
+Ft(echo)e Fu(as)i(options.)81 b Ft(echo)42 b Fu(displa)m(ys)h(eac)m(h)i
+(argumen)m(t)f(after)g(con)m(v)m(erting)h(escap)s(e)330
+1736 y(sequences.)154 1876 y(53.)61 b(The)38 b Ft(export)f
+Fu(and)g Ft(readonly)f Fu(builtin)i(commands)g(displa)m(y)h(their)f
+(output)g(in)g(the)h(format)g(re-)330 1985 y(quired)30
+b(b)m(y)g Fm(posix)p Fu(.)154 2125 y(54.)61 b(When)35
+b(listing)g(the)g(history)-8 b(,)36 b(the)f Ft(fc)g Fu(builtin)f(do)s
+(es)g(not)h(include)g(an)f(indication)i(of)f(whether)f(or)330
+2235 y(not)d(a)f(history)h(en)m(try)f(has)g(b)s(een)g(mo)s(di\014ed.)
+154 2375 y(55.)61 b(The)30 b(default)g(editor)h(used)f(b)m(y)g
+Ft(fc)g Fu(is)g Ft(ed)p Fu(.)154 2515 y(56.)61 b Ft(fc)30
+b Fu(treats)h(extra)g(argumen)m(ts)g(as)f(an)h(error)f(instead)g(of)h
+(ignoring)g(them.)154 2655 y(57.)61 b(If)38 b(there)h(are)g(to)s(o)g
+(man)m(y)g(argumen)m(ts)g(supplied)e(to)i Ft(fc)30 b(-s)p
+Fu(,)40 b Ft(fc)e Fu(prin)m(ts)g(an)h(error)f(message)i(and)330
+2765 y(returns)29 b(failure.)154 2905 y(58.)61 b(The)23
+b(output)f(of)i(`)p Ft(kill)29 b(-l)p Fu(')23 b(prin)m(ts)f(all)i(the)g
+(signal)f(names)g(on)g(a)h(single)g(line,)h(separated)e(b)m(y)g
+(spaces,)330 3014 y(without)30 b(the)h(`)p Ft(SIG)p Fu(')f(pre\014x.)
+154 3154 y(59.)61 b(The)30 b Ft(kill)f Fu(builtin)h(do)s(es)g(not)h
+(accept)h(signal)f(names)f(with)g(a)h(`)p Ft(SIG)p Fu(')f(pre\014x.)154
+3294 y(60.)61 b(The)29 b Ft(kill)f Fu(builtin)h(returns)g(a)g(failure)h
(status)g(if)f(an)m(y)h(of)g(the)f(pid)g(or)h(job)f(argumen)m(ts)h(are)
-f(in)m(v)-5 b(alid)330 2186 y(or)35 b(if)g(sending)f(the)h(sp)s
+f(in)m(v)-5 b(alid)330 3404 y(or)35 b(if)g(sending)f(the)h(sp)s
(eci\014ed)f(signal)i(to)f(an)m(y)g(of)g(them)g(fails.)55
b(In)34 b(default)h(mo)s(de,)g Ft(kill)f Fu(returns)330
-2296 y(success)d(if)f(the)g(signal)i(w)m(as)e(successfully)h(sen)m(t)g
+3513 y(success)d(if)f(the)g(signal)i(w)m(as)e(successfully)h(sen)m(t)g
(to)g(an)m(y)f(of)h(the)g(sp)s(eci\014ed)e(pro)s(cesses.)154
-2436 y(60.)61 b(The)33 b Ft(printf)f Fu(builtin)i(uses)f
+3654 y(61.)61 b(The)33 b Ft(printf)f Fu(builtin)i(uses)f
Ft(double)f Fu(\(via)j Ft(strtod)p Fu(\))d(to)j(con)m(v)m(ert)g
-(argumen)m(ts)f(corresp)s(onding)f(to)330 2545 y(\015oating)40
+(argumen)m(ts)f(corresp)s(onding)f(to)330 3763 y(\015oating)40
b(p)s(oin)m(t)f(con)m(v)m(ersion)h(sp)s(eci\014ers,)h(instead)e(of)g
Ft(long)29 b(double)38 b Fu(if)h(it's)g(a)m(v)-5 b(ailable.)69
-b(The)39 b(`)p Ft(L)p Fu(')330 2655 y(length)31 b(mo)s(di\014er)e
+b(The)39 b(`)p Ft(L)p Fu(')330 3873 y(length)31 b(mo)s(di\014er)e
(forces)i Ft(printf)e Fu(to)i(use)f Ft(long)f(double)g
-Fu(if)h(it's)h(a)m(v)-5 b(ailable.)154 2795 y(61.)61
+Fu(if)h(it's)h(a)m(v)-5 b(ailable.)154 4013 y(62.)61
b(The)36 b Ft(pwd)f Fu(builtin)h(v)m(eri\014es)h(that)g(the)f(v)-5
b(alue)37 b(it)g(prin)m(ts)e(is)i(the)f(same)h(as)f(the)h(curren)m(t)f
-(directory)-8 b(,)330 2905 y(ev)m(en)31 b(if)f(it)h(is)g(not)f(ask)m
+(directory)-8 b(,)330 4122 y(ev)m(en)31 b(if)f(it)h(is)g(not)f(ask)m
(ed)h(to)g(c)m(hec)m(k)h(the)f(\014le)f(system)h(with)f(the)h
-Ft(-P)e Fu(option.)154 3045 y(62.)61 b(The)27 b Ft(read)f
+Ft(-P)e Fu(option.)154 4262 y(63.)61 b(The)27 b Ft(read)f
Fu(builtin)g(ma)m(y)i(b)s(e)e(in)m(terrupted)h(b)m(y)g(a)h(signal)f
(for)g(whic)m(h)g(a)h(trap)f(has)g(b)s(een)f(set.)40
-b(If)27 b(Bash)330 3154 y(receiv)m(es)41 b(a)f(trapp)s(ed)e(signal)i
+b(If)27 b(Bash)330 4372 y(receiv)m(es)41 b(a)f(trapp)s(ed)e(signal)i
(while)f(executing)h Ft(read)p Fu(,)h(the)e(trap)h(handler)e(executes)i
-(and)f Ft(read)330 3264 y Fu(returns)29 b(an)h(exit)i(status)e(greater)
-i(than)e(128.)154 3404 y(63.)61 b(When)40 b(the)g Ft(set)f
+(and)f Ft(read)330 4482 y Fu(returns)29 b(an)h(exit)i(status)e(greater)
+i(than)e(128.)154 4622 y(64.)61 b(When)40 b(the)g Ft(set)f
Fu(builtin)h(is)g(in)m(v)m(ok)m(ed)h(without)f(options,)j(it)e(do)s(es)
-f(not)g(displa)m(y)g(shell)g(function)330 3513 y(names)30
-b(and)g(de\014nitions.)154 3654 y(64.)61 b(When)36 b(the)g
+f(not)g(displa)m(y)g(shell)g(function)330 4731 y(names)30
+b(and)g(de\014nitions.)154 4871 y(65.)61 b(When)36 b(the)g
Ft(set)g Fu(builtin)g(is)g(in)m(v)m(ok)m(ed)i(without)e(options,)i(it)f
(displa)m(ys)f(v)-5 b(ariable)37 b(v)-5 b(alues)37 b(without)330
-3763 y(quotes,)26 b(unless)d(they)i(con)m(tain)g(shell)f(metac)m
+4981 y(quotes,)26 b(unless)d(they)i(con)m(tain)g(shell)f(metac)m
(haracters,)k(ev)m(en)d(if)f(the)g(result)g(con)m(tains)i(nonprin)m
-(ting)330 3873 y(c)m(haracters.)154 4013 y(65.)61 b(The)26
+(ting)330 5090 y(c)m(haracters.)154 5230 y(66.)61 b(The)26
b Ft(test)g Fu(builtin)g(compares)h(strings)g(using)f(the)h(curren)m(t)
g(lo)s(cale)h(when)e(ev)-5 b(aluating)29 b(the)e(`)p
-Ft(<)p Fu(')g(and)330 4122 y(`)p Ft(>)p Fu(')k(binary)e(op)s(erators.)
-154 4262 y(66.)61 b(The)27 b Ft(test)f Fu(builtin's)g
-Ft(-t)h Fu(unary)f(primary)g(requires)h(an)g(argumen)m(t.)40
-b(Historical)29 b(v)m(ersions)f(of)f Ft(test)330 4372
-y Fu(made)c(the)h(argumen)m(t)g(optional)h(in)e(certain)h(cases,)i(and)
-d(Bash)h(attempts)g(to)g(accommo)s(date)h(those)330 4482
-y(for)30 b(bac)m(kw)m(ards)h(compatibilit)m(y)-8 b(.)154
-4622 y(67.)61 b(The)30 b Ft(trap)f Fu(builtin)h(displa)m(ys)g(signal)i
-(names)e(without)g(the)h(leading)g Ft(SIG)p Fu(.)154
-4762 y(68.)61 b(The)39 b Ft(trap)e Fu(builtin)i(do)s(esn't)g(c)m(hec)m
-(k)h(the)g(\014rst)e(argumen)m(t)i(for)e(a)i(p)s(ossible)e(signal)i(sp)
-s(eci\014cation)330 4871 y(and)30 b(rev)m(ert)i(the)e(signal)i
-(handling)e(to)h(the)g(original)h(disp)s(osition)e(if)h(it)g(is,)g
-(unless)f(that)h(argumen)m(t)330 4981 y(consists)e(solely)g(of)g
+Ft(<)p Fu(')g(and)330 5340 y(`)p Ft(>)p Fu(')k(binary)e(op)s(erators.)p
+eop end
+%%Page: 121 127
+TeXDict begin 121 126 bop 150 -116 a Fu(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2439 b(121)154 299 y(67.)61
+b(The)27 b Ft(test)f Fu(builtin's)g Ft(-t)h Fu(unary)f(primary)g
+(requires)h(an)g(argumen)m(t.)40 b(Historical)29 b(v)m(ersions)f(of)f
+Ft(test)330 408 y Fu(made)c(the)h(argumen)m(t)g(optional)h(in)e
+(certain)h(cases,)i(and)d(Bash)h(attempts)g(to)g(accommo)s(date)h
+(those)330 518 y(for)30 b(bac)m(kw)m(ards)h(compatibilit)m(y)-8
+b(.)154 660 y(68.)61 b(The)30 b Ft(trap)f Fu(builtin)h(displa)m(ys)g
+(signal)i(names)e(without)g(the)h(leading)g Ft(SIG)p
+Fu(.)154 803 y(69.)61 b(The)39 b Ft(trap)e Fu(builtin)i(do)s(esn't)g(c)
+m(hec)m(k)h(the)g(\014rst)e(argumen)m(t)i(for)e(a)i(p)s(ossible)e
+(signal)i(sp)s(eci\014cation)330 912 y(and)30 b(rev)m(ert)i(the)e
+(signal)i(handling)e(to)h(the)g(original)h(disp)s(osition)e(if)h(it)g
+(is,)g(unless)f(that)h(argumen)m(t)330 1022 y(consists)e(solely)g(of)g
(digits)g(and)f(is)g(a)h(v)-5 b(alid)29 b(signal)g(n)m(um)m(b)s(er.)38
b(If)28 b(users)g(w)m(an)m(t)h(to)g(reset)g(the)g(handler)330
-5090 y(for)h(a)g(giv)m(en)h(signal)g(to)f(the)h(original)g(disp)s
+1132 y(for)h(a)g(giv)m(en)h(signal)g(to)f(the)h(original)g(disp)s
(osition,)f(they)g(should)f(use)h(`)p Ft(-)p Fu(')g(as)g(the)g(\014rst)
-f(argumen)m(t.)154 5230 y(69.)61 b Ft(trap)29 b(-p)24
+f(argumen)m(t.)154 1274 y(70.)61 b Ft(trap)29 b(-p)24
b Fu(without)g(argumen)m(ts)g(displa)m(ys)g(signals)g(whose)g(disp)s
-(ositions)g(are)g(set)h(to)f(SIG)p 3360 5230 28 4 v 40
-w(DFL)h(and)330 5340 y(those)31 b(that)g(w)m(ere)g(ignored)f(when)g
-(the)g(shell)h(started,)g(not)f(just)g(trapp)s(ed)f(signals.)p
-eop end
-%%Page: 121 127
-TeXDict begin 121 126 bop 150 -116 a Fu(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2439 b(121)154 299 y(70.)61
-b(The)37 b Ft(type)g Fu(and)g Ft(command)f Fu(builtins)i(will)g(not)g
-(rep)s(ort)f(a)i(non-executable)g(\014le)f(as)g(ha)m(ving)h(b)s(een)330
-408 y(found,)26 b(though)h(the)g(shell)g(will)g(attempt)h(to)g(execute)
-g(suc)m(h)f(a)g(\014le)g(if)g(it)g(is)g(the)g(only)g(so-named)g(\014le)
-330 518 y(found)i(in)h Ft($PATH)p Fu(.)154 648 y(71.)61
-b(The)30 b Ft(ulimit)f Fu(builtin)g(uses)h(a)h(blo)s(c)m(k)g(size)g(of)
-g(512)g(b)m(ytes)g(for)f(the)h Ft(-c)f Fu(and)g Ft(-f)f
-Fu(options.)154 778 y(72.)61 b(The)35 b Ft(unset)e Fu(builtin)i(with)g
-(the)g Ft(-v)f Fu(option)i(sp)s(eci\014ed)e(returns)g(a)i(fatal)g
-(error)f(if)g(it)g(attempts)h(to)330 888 y(unset)29 b(a)g
-Ft(readonly)e Fu(or)i Ft(non-unsettable)c Fu(v)-5 b(ariable,)30
-b(whic)m(h)f(causes)h(a)f(non-in)m(teractiv)m(e)j(shell)d(to)330
-997 y(exit.)154 1127 y(73.)61 b(When)39 b(ask)m(ed)g(to)g(unset)g(a)g
-(v)-5 b(ariable)39 b(that)h(app)s(ears)e(in)g(an)h(assignmen)m(t)g
-(statemen)m(t)i(preceding)330 1237 y(the)30 b(command,)f(the)h
-Ft(unset)e Fu(builtin)h(attempts)i(to)f(unset)f(a)h(v)-5
-b(ariable)31 b(of)e(the)h(same)g(name)g(in)f(the)330
-1347 y(curren)m(t)24 b(or)g(previous)g(scop)s(e)g(as)g(w)m(ell.)40
-b(This)23 b(implemen)m(ts)i(the)f(required)f Ft(")p Fu(if)h(an)g
-(assigned)g(v)-5 b(ariable)330 1456 y(is)34 b(further)e(mo)s(di\014ed)g
-(b)m(y)i(the)g(utilit)m(y)-8 b(,)36 b(the)e(mo)s(di\014cations)g(made)g
-(b)m(y)f(the)h(utilit)m(y)h(shall)f(p)s(ersist)p Ft(")330
-1566 y Fu(b)s(eha)m(vior.)154 1696 y(74.)61 b(The)39
-b(arriv)-5 b(al)41 b(of)f Ft(SIGCHLD)e Fu(when)h(a)h(trap)g(is)g(set)h
-(on)f Ft(SIGCHLD)e Fu(do)s(es)h(not)h(in)m(terrupt)g(the)g
-Ft(wait)330 1805 y Fu(builtin)c(and)h(cause)g(it)h(to)f(return)f
-(immediately)-8 b(.)62 b(The)37 b(trap)f(command)h(is)g(run)e(once)j
-(for)f(eac)m(h)330 1915 y(c)m(hild)31 b(that)g(exits.)154
-2045 y(75.)61 b(Bash)27 b(remo)m(v)m(es)h(an)e(exited)i(bac)m(kground)e
-(pro)s(cess's)h(status)g(from)f(the)h(list)g(of)g(suc)m(h)f(statuses)h
-(after)330 2155 y(the)k Ft(wait)e Fu(builtin)h(returns)f(it.)275
-2305 y(There)e(is)i(additional)g Fm(posix)f Fu(b)s(eha)m(vior)g(that)h
+(ositions)g(are)g(set)h(to)f(SIG)p 3360 1274 28 4 v 40
+w(DFL)h(and)330 1383 y(those)31 b(that)g(w)m(ere)g(ignored)f(when)g
+(the)g(shell)h(started,)g(not)f(just)g(trapp)s(ed)f(signals.)154
+1526 y(71.)61 b(The)37 b Ft(type)g Fu(and)g Ft(command)f
+Fu(builtins)i(will)g(not)g(rep)s(ort)f(a)i(non-executable)g(\014le)f
+(as)g(ha)m(ving)h(b)s(een)330 1635 y(found,)26 b(though)h(the)g(shell)g
+(will)g(attempt)h(to)g(execute)g(suc)m(h)f(a)g(\014le)g(if)g(it)g(is)g
+(the)g(only)g(so-named)g(\014le)330 1745 y(found)i(in)h
+Ft($PATH)p Fu(.)154 1887 y(72.)61 b(The)30 b Ft(ulimit)f
+Fu(builtin)g(uses)h(a)h(blo)s(c)m(k)g(size)g(of)g(512)g(b)m(ytes)g(for)
+f(the)h Ft(-c)f Fu(and)g Ft(-f)f Fu(options.)154 2030
+y(73.)61 b(The)35 b Ft(unset)e Fu(builtin)i(with)g(the)g
+Ft(-v)f Fu(option)i(sp)s(eci\014ed)e(returns)g(a)i(fatal)g(error)f(if)g
+(it)g(attempts)h(to)330 2139 y(unset)29 b(a)g Ft(readonly)e
+Fu(or)i Ft(non-unsettable)c Fu(v)-5 b(ariable,)30 b(whic)m(h)f(causes)h
+(a)f(non-in)m(teractiv)m(e)j(shell)d(to)330 2249 y(exit.)154
+2391 y(74.)61 b(When)39 b(ask)m(ed)g(to)g(unset)g(a)g(v)-5
+b(ariable)39 b(that)h(app)s(ears)e(in)g(an)h(assignmen)m(t)g(statemen)m
+(t)i(preceding)330 2501 y(the)30 b(command,)f(the)h Ft(unset)e
+Fu(builtin)h(attempts)i(to)f(unset)f(a)h(v)-5 b(ariable)31
+b(of)e(the)h(same)g(name)g(in)f(the)330 2610 y(curren)m(t)24
+b(or)g(previous)g(scop)s(e)g(as)g(w)m(ell.)40 b(This)23
+b(implemen)m(ts)i(the)f(required)f Ft(")p Fu(if)h(an)g(assigned)g(v)-5
+b(ariable)330 2720 y(is)34 b(further)e(mo)s(di\014ed)g(b)m(y)i(the)g
+(utilit)m(y)-8 b(,)36 b(the)e(mo)s(di\014cations)g(made)g(b)m(y)f(the)h
+(utilit)m(y)h(shall)f(p)s(ersist)p Ft(")330 2830 y Fu(b)s(eha)m(vior.)
+154 2972 y(75.)61 b(The)39 b(arriv)-5 b(al)41 b(of)f
+Ft(SIGCHLD)e Fu(when)h(a)h(trap)g(is)g(set)h(on)f Ft(SIGCHLD)e
+Fu(do)s(es)h(not)h(in)m(terrupt)g(the)g Ft(wait)330 3082
+y Fu(builtin)c(and)h(cause)g(it)h(to)f(return)f(immediately)-8
+b(.)62 b(The)37 b(trap)f(command)h(is)g(run)e(once)j(for)f(eac)m(h)330
+3191 y(c)m(hild)31 b(that)g(exits.)154 3334 y(76.)61
+b(Bash)27 b(remo)m(v)m(es)h(an)e(exited)i(bac)m(kground)e(pro)s(cess's)
+h(status)g(from)f(the)h(list)g(of)g(suc)m(h)f(statuses)h(after)330
+3443 y(the)k Ft(wait)e Fu(builtin)h(returns)f(it.)275
+3626 y(There)e(is)i(additional)g Fm(posix)f Fu(b)s(eha)m(vior)g(that)h
(Bash)g(do)s(es)f(not)g(implemen)m(t)h(b)m(y)f(default)h(ev)m(en)g
-(when)150 2415 y(in)h Fm(posix)g Fu(mo)s(de.)40 b(Sp)s(eci\014cally:)
-199 2545 y(1.)61 b Fm(posix)30 b Fu(requires)g(that)i(w)m(ord)e
+(when)150 3736 y(in)h Fm(posix)g Fu(mo)s(de.)40 b(Sp)s(eci\014cally:)
+199 3886 y(1.)61 b Fm(posix)30 b Fu(requires)g(that)i(w)m(ord)e
(splitting)i(b)s(e)e(b)m(yte-orien)m(ted.)44 b(That)30
b(is,)i(eac)m(h)g Fl(byte)37 b Fu(in)31 b(the)g(v)-5
-b(alue)31 b(of)330 2654 y Ft(IFS)23 b Fu(p)s(oten)m(tially)j(splits)f
+b(alue)31 b(of)330 3996 y Ft(IFS)23 b Fu(p)s(oten)m(tially)j(splits)f
(a)g(w)m(ord,)g(ev)m(en)g(if)f(that)h(b)m(yte)g(is)g(part)f(of)g(a)h(m)
m(ultib)m(yte)h(c)m(haracter)f(in)f Ft(IFS)g Fu(or)330
-2764 y(part)29 b(of)f(m)m(ultib)m(yte)i(c)m(haracter)g(in)f(the)g(w)m
+4105 y(part)29 b(of)f(m)m(ultib)m(yte)i(c)m(haracter)g(in)f(the)g(w)m
(ord.)39 b(Bash)29 b(allo)m(ws)h(m)m(ultib)m(yte)g(c)m(haracters)g(in)f
-(the)f(v)-5 b(alue)330 2874 y(of)35 b Ft(IFS)p Fu(,)f(treating)i(a)f(v)
+(the)f(v)-5 b(alue)330 4215 y(of)35 b Ft(IFS)p Fu(,)f(treating)i(a)f(v)
-5 b(alid)34 b(m)m(ultib)m(yte)i(c)m(haracter)g(as)f(a)f(single)i
-(delimiter,)g(and)e(will)g(not)h(split)g(a)330 2983 y(v)-5
+(delimiter,)g(and)e(will)g(not)h(split)g(a)330 4324 y(v)-5
b(alid)29 b(m)m(ultib)m(yte)i(c)m(haracter)f(ev)m(en)g(if)f(one)g(of)h
(the)f(b)m(ytes)g(comp)s(osing)h(that)f(c)m(haracter)i(app)s(ears)d(in)
-330 3093 y Ft(IFS)p Fu(.)40 b(This)29 b(is)i Fm(posix)e
+330 4434 y Ft(IFS)p Fu(.)40 b(This)29 b(is)i Fm(posix)e
Fu(in)m(terpretation)j(1560,)h(further)c(mo)s(di\014ed)g(b)m(y)h(issue)
-g(1924.)199 3223 y(2.)61 b(The)30 b Ft(fc)f Fu(builtin)h(c)m(hec)m(ks)i
+g(1924.)199 4576 y(2.)61 b(The)30 b Ft(fc)f Fu(builtin)h(c)m(hec)m(ks)i
Ft($EDITOR)c Fu(as)j(a)f(program)g(to)h(edit)g(history)f(en)m(tries)h
-(if)f Ft(FCEDIT)f Fu(is)h(unset,)330 3333 y(rather)g(than)g(defaulting)
+(if)f Ft(FCEDIT)f Fu(is)h(unset,)330 4686 y(rather)g(than)g(defaulting)
h(directly)g(to)g Ft(ed)p Fu(.)40 b Ft(fc)30 b Fu(uses)g
-Ft(ed)g Fu(if)g Ft(EDITOR)f Fu(is)h(unset.)199 3463 y(3.)61
+Ft(ed)g Fu(if)g Ft(EDITOR)f Fu(is)h(unset.)199 4828 y(3.)61
b(As)29 b(noted)g(ab)s(o)m(v)m(e,)i(Bash)e(requires)g(the)g
Ft(xpg_echo)e Fu(option)j(to)g(b)s(e)e(enabled)h(for)g(the)g
-Ft(echo)f Fu(builtin)330 3572 y(to)j(b)s(e)f(fully)g(conforman)m(t.)275
-3723 y(Bash)c(can)g(b)s(e)f(con\014gured)h(to)g(b)s(e)g
+Ft(echo)f Fu(builtin)330 4938 y(to)j(b)s(e)f(fully)g(conforman)m(t.)275
+5121 y(Bash)c(can)g(b)s(e)f(con\014gured)h(to)g(b)s(e)g
Fm(posix)p Fu(-conforman)m(t)g(b)m(y)g(default,)h(b)m(y)f(sp)s
-(ecifying)g(the)g Ft(--enable-)150 3832 y(strict-posix-default)c
+(ecifying)g(the)g Ft(--enable-)150 5230 y(strict-posix-default)c
Fu(to)27 b Ft(configure)e Fu(when)h(building)h(\(see)h(Section)g(10.8)g
-([Optional)g(F)-8 b(eatures],)150 3942 y(page)31 b(178\).)150
-4174 y Fs(6.12)68 b(Shell)46 b(Compatibilit)l(y)h(Mo)t(de)150
-4333 y Fu(Bash-4.0)33 b(in)m(tro)s(duced)f(the)f(concept)i(of)f(a)g
-Fr(shell)g(compatibilit)m(y)i(lev)m(el)p Fu(,)g(sp)s(eci\014ed)d(as)h
-(a)g(set)h(of)f(options)150 4443 y(to)f(the)f(shopt)g(builtin)g(\()p
-Ft(compat31)p Fu(,)e Ft(compat32)p Fu(,)h Ft(compat40)p
-Fu(,)f Ft(compat41)p Fu(,)g(and)i(so)g(on\).)41 b(There)30
-b(is)g(only)150 4552 y(one)f(curren)m(t)f(compatibilit)m(y)j(lev)m(el)f
-({)f(eac)m(h)h(option)f(is)g(m)m(utually)g(exclusiv)m(e.)41
-b(The)28 b(compatibilit)m(y)j(lev)m(el)150 4662 y(is)39
-b(in)m(tended)g(to)h(allo)m(w)g(users)e(to)i(select)h(b)s(eha)m(vior)e
-(from)f(previous)h(v)m(ersions)g(that)h(is)f(incompatible)150
-4772 y(with)d(new)m(er)g(v)m(ersions)g(while)g(they)g(migrate)h
-(scripts)f(to)h(use)f(curren)m(t)f(features)i(and)e(b)s(eha)m(vior.)58
-b(It's)150 4881 y(in)m(tended)30 b(to)h(b)s(e)f(a)h(temp)s(orary)f
-(solution.)275 5011 y(This)k(section)j(do)s(es)e(not)h(men)m(tion)g(b)s
-(eha)m(vior)g(that)g(is)f(standard)g(for)g(a)h(particular)g(v)m(ersion)
-g(\(e.g.,)150 5121 y(setting)d Ft(compat32)c Fu(means)i(that)h(quoting)
-g(the)g(righ)m(t)g(hand)e(side)h(of)h(the)f(regexp)h(matc)m(hing)h(op)s
-(erator)150 5230 y(quotes)42 b(sp)s(ecial)f(regexp)h(c)m(haracters)g
-(in)f(the)g(w)m(ord,)j(whic)m(h)c(is)i(default)f(b)s(eha)m(vior)g(in)g
-(bash-3.2)h(and)150 5340 y(subsequen)m(t)30 b(v)m(ersions\).)p
+([Optional)g(F)-8 b(eatures],)150 5340 y(page)31 b(178\).)p
eop end
%%Page: 122 128
TeXDict begin 122 127 bop 150 -116 a Fu(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2439 b(122)275 299 y(If)29
-b(a)h(user)f(enables,)h(sa)m(y)-8 b(,)31 b Ft(compat32)p
+b(Bash)30 b(F)-8 b(eatures)2439 b(122)150 299 y Fs(6.12)68
+b(Shell)46 b(Compatibilit)l(y)h(Mo)t(de)150 458 y Fu(Bash-4.0)33
+b(in)m(tro)s(duced)f(the)f(concept)i(of)f(a)g Fr(shell)g(compatibilit)m
+(y)i(lev)m(el)p Fu(,)g(sp)s(eci\014ed)d(as)h(a)g(set)h(of)f(options)150
+568 y(to)f(the)f(shopt)g(builtin)g(\()p Ft(compat31)p
+Fu(,)e Ft(compat32)p Fu(,)h Ft(compat40)p Fu(,)f Ft(compat41)p
+Fu(,)g(and)i(so)g(on\).)41 b(There)30 b(is)g(only)150
+677 y(one)f(curren)m(t)f(compatibilit)m(y)j(lev)m(el)f({)f(eac)m(h)h
+(option)f(is)g(m)m(utually)g(exclusiv)m(e.)41 b(The)28
+b(compatibilit)m(y)j(lev)m(el)150 787 y(is)39 b(in)m(tended)g(to)h
+(allo)m(w)g(users)e(to)i(select)h(b)s(eha)m(vior)e(from)f(previous)h(v)
+m(ersions)g(that)h(is)f(incompatible)150 897 y(with)d(new)m(er)g(v)m
+(ersions)g(while)g(they)g(migrate)h(scripts)f(to)h(use)f(curren)m(t)f
+(features)i(and)e(b)s(eha)m(vior.)58 b(It's)150 1006
+y(in)m(tended)30 b(to)h(b)s(e)f(a)h(temp)s(orary)f(solution.)275
+1134 y(This)k(section)j(do)s(es)e(not)h(men)m(tion)g(b)s(eha)m(vior)g
+(that)g(is)f(standard)g(for)g(a)h(particular)g(v)m(ersion)g(\(e.g.,)150
+1244 y(setting)d Ft(compat32)c Fu(means)i(that)h(quoting)g(the)g(righ)m
+(t)g(hand)e(side)h(of)h(the)f(regexp)h(matc)m(hing)h(op)s(erator)150
+1354 y(quotes)42 b(sp)s(ecial)f(regexp)h(c)m(haracters)g(in)f(the)g(w)m
+(ord,)j(whic)m(h)c(is)i(default)f(b)s(eha)m(vior)g(in)g(bash-3.2)h(and)
+150 1463 y(subsequen)m(t)30 b(v)m(ersions\).)275 1591
+y(If)f(a)h(user)f(enables,)h(sa)m(y)-8 b(,)31 b Ft(compat32)p
Fu(,)d(it)i(ma)m(y)g(a\013ect)h(the)f(b)s(eha)m(vior)g(of)g(other)g
-(compatibilit)m(y)h(lev)m(els)150 408 y(up)23 b(to)h(and)f(including)h
+(compatibilit)m(y)h(lev)m(els)150 1701 y(up)23 b(to)h(and)f(including)h
(the)g(curren)m(t)f(compatibilit)m(y)j(lev)m(el.)41 b(The)23
b(idea)h(is)g(that)g(eac)m(h)h(compatibilit)m(y)h(lev)m(el)150
-518 y(con)m(trols)35 b(b)s(eha)m(vior)f(that)g(c)m(hanged)g(in)f(that)h
-(v)m(ersion)g(of)g(Bash,)h(but)e(that)h(b)s(eha)m(vior)g(ma)m(y)g(ha)m
-(v)m(e)h(b)s(een)150 628 y(presen)m(t)f(in)g(earlier)g(v)m(ersions.)52
+1811 y(con)m(trols)35 b(b)s(eha)m(vior)f(that)g(c)m(hanged)g(in)f(that)
+h(v)m(ersion)g(of)g(Bash,)h(but)e(that)h(b)s(eha)m(vior)g(ma)m(y)g(ha)m
+(v)m(e)h(b)s(een)150 1920 y(presen)m(t)f(in)g(earlier)g(v)m(ersions.)52
b(F)-8 b(or)35 b(instance,)g(the)f(c)m(hange)h(to)g(use)f(lo)s
-(cale-based)h(comparisons)f(with)150 737 y(the)e Ft([[)f
+(cale-based)h(comparisons)f(with)150 2030 y(the)e Ft([[)f
Fu(command)g(came)h(in)g(bash-4.1,)h(and)d(earlier)j(v)m(ersions)f
-(used)f(ASCI)s(I-based)f(comparisons,)i(so)150 847 y(enabling)27
+(used)f(ASCI)s(I-based)f(comparisons,)i(so)150 2139 y(enabling)27
b Ft(compat32)e Fu(will)i(enable)g(ASCI)s(I-based)e(comparisons)i(as)g
(w)m(ell.)41 b(That)26 b(gran)m(ularit)m(y)i(ma)m(y)g(not)150
-956 y(b)s(e)i(su\016cien)m(t)i(for)f(all)g(uses,)g(and)g(as)g(a)g
+2249 y(b)s(e)i(su\016cien)m(t)i(for)f(all)g(uses,)g(and)g(as)g(a)g
(result)g(users)f(should)g(emplo)m(y)i(compatibilit)m(y)h(lev)m(els)g
-(carefully)-8 b(.)150 1066 y(Read)31 b(the)f(do)s(cumen)m(tation)h(for)
+(carefully)-8 b(.)150 2358 y(Read)31 b(the)f(do)s(cumen)m(tation)h(for)
g(a)f(particular)h(feature)g(to)g(\014nd)e(out)h(the)h(curren)m(t)f(b)s
-(eha)m(vior.)275 1200 y(Bash-4.3)44 b(in)m(tro)s(duced)e(a)h(new)f
+(eha)m(vior.)275 2487 y(Bash-4.3)44 b(in)m(tro)s(duced)e(a)h(new)f
(shell)h(v)-5 b(ariable:)65 b Ft(BASH_COMPAT)p Fu(.)75
b(The)42 b(v)-5 b(alue)43 b(assigned)g(to)g(this)150
-1310 y(v)-5 b(ariable)32 b(\(a)g(decimal)h(v)m(ersion)e(n)m(um)m(b)s
+2596 y(v)-5 b(ariable)32 b(\(a)g(decimal)h(v)m(ersion)e(n)m(um)m(b)s
(er)f(lik)m(e)j(4.2,)g(or)e(an)h(in)m(teger)g(corresp)s(onding)f(to)h
-(the)f Ft(compat)p Fr(NN)150 1419 y Fu(option,)g(lik)m(e)h(42\))f
+(the)f Ft(compat)p Fr(NN)150 2706 y Fu(option,)g(lik)m(e)h(42\))f
(determines)g(the)f(compatibilit)m(y)j(lev)m(el.)275
-1553 y(Starting)h(with)g(bash-4.4,)i(Bash)f(b)s(egan)f(deprecating)h
+2834 y(Starting)h(with)g(bash-4.4,)i(Bash)f(b)s(egan)f(deprecating)h
(older)f(compatibilit)m(y)j(lev)m(els.)54 b(Ev)m(en)m(tually)-8
-b(,)150 1663 y(the)31 b(options)f(will)h(b)s(e)f(remo)m(v)m(ed)h(in)f
-(fa)m(v)m(or)i(of)e Ft(BASH_COMPAT)p Fu(.)275 1797 y(Bash-5.0)39
+b(,)150 2944 y(the)31 b(options)f(will)h(b)s(e)f(remo)m(v)m(ed)h(in)f
+(fa)m(v)m(or)i(of)e Ft(BASH_COMPAT)p Fu(.)275 3072 y(Bash-5.0)39
b(w)m(as)f(the)g(\014nal)g(v)m(ersion)g(for)g(whic)m(h)f(there)h(w)m
(as)g(an)g(individual)f(shopt)h(option)g(for)g(the)150
-1906 y(previous)31 b(v)m(ersion.)43 b Ft(BASH_COMPAT)29
+3181 y(previous)31 b(v)m(ersion.)43 b Ft(BASH_COMPAT)29
b Fu(is)i(the)g(only)g(mec)m(hanism)h(to)g(con)m(trol)h(the)e
-(compatibilit)m(y)i(lev)m(el)g(in)150 2016 y(v)m(ersions)e(new)m(er)f
-(than)g(bash-5.0.)275 2150 y(The)24 b(follo)m(wing)i(table)g(describ)s
+(compatibilit)m(y)i(lev)m(el)g(in)150 3291 y(v)m(ersions)e(new)m(er)f
+(than)g(bash-5.0.)275 3419 y(The)24 b(follo)m(wing)i(table)g(describ)s
(es)e(the)i(b)s(eha)m(vior)f(c)m(hanges)h(con)m(trolled)g(b)m(y)f(eac)m
-(h)h(compatibilit)m(y)h(lev)m(el)150 2259 y(setting.)43
+(h)h(compatibilit)m(y)h(lev)m(el)150 3529 y(setting.)43
b(The)30 b Ft(compat)p Fr(NN)39 b Fu(tag)32 b(is)f(used)f(as)h
(shorthand)e(for)h(setting)i(the)f(compatibilit)m(y)i(lev)m(el)f(to)g
-Fr(NN)150 2369 y Fu(using)37 b(one)h(of)g(the)g(follo)m(wing)h(mec)m
+Fr(NN)150 3638 y Fu(using)37 b(one)h(of)g(the)g(follo)m(wing)h(mec)m
(hanisms.)63 b(F)-8 b(or)39 b(v)m(ersions)f(prior)f(to)h(bash-5.0,)j
-(the)d(compatibilit)m(y)150 2478 y(lev)m(el)d(ma)m(y)f(b)s(e)e(set)i
+(the)d(compatibilit)m(y)150 3748 y(lev)m(el)d(ma)m(y)f(b)s(e)e(set)i
(using)e(the)i(corresp)s(onding)e Ft(compat)p Fr(NN)41
b Fu(shopt)33 b(option.)50 b(F)-8 b(or)34 b(bash-4.3)f(and)g(later)150
-2588 y(v)m(ersions,)40 b(the)e Ft(BASH_COMPAT)d Fu(v)-5
+3858 y(v)m(ersions,)40 b(the)e Ft(BASH_COMPAT)d Fu(v)-5
b(ariable)39 b(is)e(preferred,)i(and)e(it)i(is)f(required)f(for)g
-(bash-5.1)i(and)e(later)150 2698 y(v)m(ersions.)150 2856
-y Ft(compat31)705 2990 y Fq(\017)60 b Fu(Quoting)32 b(the)f(rhs)g(of)g
+(bash-5.1)i(and)e(later)150 3967 y(v)m(ersions.)150 4114
+y Ft(compat31)705 4242 y Fq(\017)60 b Fu(Quoting)32 b(the)f(rhs)g(of)g
(the)h Ft([[)e Fu(command's)i(regexp)f(matc)m(hing)i(op)s(erator)f(\(=)
-p Ft(~)p Fu(\))f(has)810 3099 y(no)f(sp)s(ecial)h(e\013ect)150
-3258 y Ft(compat40)705 3392 y Fq(\017)60 b Fu(The)32
+p Ft(~)p Fu(\))f(has)810 4352 y(no)f(sp)s(ecial)h(e\013ect)150
+4498 y Ft(compat40)705 4627 y Fq(\017)60 b Fu(The)32
b(`)p Ft(<)p Fu(')g(and)g(`)p Ft(>)p Fu(')g(op)s(erators)h(to)g(the)f
Ft([[)g Fu(command)g(do)g(not)g(consider)h(the)f(curren)m(t)810
-3501 y(lo)s(cale)41 b(when)d(comparing)i(strings;)k(they)c(use)f(ASCI)s
-(I)f(ordering.)67 b(Bash)40 b(v)m(ersions)810 3611 y(prior)f(to)i
+4736 y(lo)s(cale)41 b(when)d(comparing)i(strings;)k(they)c(use)f(ASCI)s
+(I)f(ordering.)67 b(Bash)40 b(v)m(ersions)810 4846 y(prior)f(to)i
(bash-4.1)f(use)g(ASCI)s(I)e(collation)k(and)d(strcmp\(3\);)45
-b(bash-4.1)c(and)e(later)810 3720 y(use)30 b(the)h(curren)m(t)f(lo)s
+b(bash-4.1)c(and)e(later)810 4955 y(use)30 b(the)h(curren)m(t)f(lo)s
(cale's)i(collation)h(sequence)d(and)g(strcoll\(3\).)150
-3879 y Ft(compat41)705 4013 y Fq(\017)60 b Fu(In)35 b
+5102 y Ft(compat41)705 5230 y Fq(\017)60 b Fu(In)35 b
Fm(posix)f Fu(mo)s(de,)j Ft(time)d Fu(ma)m(y)i(b)s(e)f(follo)m(w)m(ed)i
(b)m(y)f(options)g(and)e(still)j(b)s(e)e(recognized)810
-4122 y(as)c(a)f(reserv)m(ed)h(w)m(ord)f(\(this)h(is)f
-Fm(posix)g Fu(in)m(terpretation)h(267\).)705 4256 y Fq(\017)60
+5340 y(as)c(a)f(reserv)m(ed)h(w)m(ord)f(\(this)h(is)f
+Fm(posix)g Fu(in)m(terpretation)h(267\).)p eop end
+%%Page: 123 129
+TeXDict begin 123 128 bop 150 -116 a Fu(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2439 b(123)705 299 y Fq(\017)60
b Fu(In)33 b Fm(posix)h Fu(mo)s(de,)h(the)f(parser)g(requires)g(that)g
(an)g(ev)m(en)h(n)m(um)m(b)s(er)e(of)i(single)f(quotes)810
-4366 y(o)s(ccur)28 b(in)g(the)h Fr(w)m(ord)i Fu(p)s(ortion)d(of)h(a)g
+408 y(o)s(ccur)28 b(in)g(the)h Fr(w)m(ord)i Fu(p)s(ortion)d(of)h(a)g
(double-quoted)f($)p Fi({)6 b Fu(.)23 b(.)f(.)11 b Fi(})29
-b Fu(parameter)g(expansion)810 4475 y(and)34 b(treats)h(them)f(sp)s
+b Fu(parameter)g(expansion)810 518 y(and)34 b(treats)h(them)f(sp)s
(ecially)-8 b(,)37 b(so)e(that)g(c)m(haracters)g(within)f(the)h(single)
-g(quotes)g(are)810 4585 y(considered)30 b(quoted)h(\(this)f(is)h
-Fm(posix)e Fu(in)m(terpretation)j(221\).)150 4743 y Ft(compat42)705
-4877 y Fq(\017)60 b Fu(The)45 b(replacemen)m(t)i(string)f(in)f
+g(quotes)g(are)810 628 y(considered)30 b(quoted)h(\(this)f(is)h
+Fm(posix)e Fu(in)m(terpretation)j(221\).)150 774 y Ft(compat42)705
+902 y Fq(\017)60 b Fu(The)45 b(replacemen)m(t)i(string)f(in)f
(double-quoted)h(pattern)f(substitution)g(do)s(es)h(not)810
-4987 y(undergo)30 b(quote)h(remo)m(v)-5 b(al,)32 b(as)e(it)h(do)s(es)f
-(in)g(v)m(ersions)h(after)g(bash-4.2.)705 5121 y Fq(\017)60
+1011 y(undergo)30 b(quote)h(remo)m(v)-5 b(al,)32 b(as)e(it)h(do)s(es)f
+(in)g(v)m(ersions)h(after)g(bash-4.2.)705 1139 y Fq(\017)60
b Fu(In)36 b Fm(posix)f Fu(mo)s(de,)j(single)e(quotes)h(are)g
(considered)f(sp)s(ecial)h(when)e(expanding)h(the)810
-5230 y Fr(w)m(ord)g Fu(p)s(ortion)c(of)g(a)h(double-quoted)g($)p
+1249 y Fr(w)m(ord)g Fu(p)s(ortion)c(of)g(a)h(double-quoted)g($)p
Fi({)6 b Fu(.)22 b(.)h(.)11 b Fi(})33 b Fu(parameter)g(expansion)f(and)
-g(can)h(b)s(e)810 5340 y(used)40 b(to)i(quote)g(a)f(closing)h(brace)f
-(or)g(other)h(sp)s(ecial)f(c)m(haracter)i(\(this)e(is)g(part)g(of)p
-eop end
-%%Page: 123 129
-TeXDict begin 123 128 bop 150 -116 a Fu(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2439 b(123)810 299 y Fm(posix)36
-b Fu(in)m(terpretation)h(221\);)42 b(in)36 b(later)h(v)m(ersions,)h
-(single)f(quotes)g(are)g(not)f(sp)s(ecial)810 408 y(within)30
-b(double-quoted)g(w)m(ord)g(expansions.)150 579 y Ft(compat43)705
-719 y Fq(\017)60 b Fu(W)-8 b(ord)32 b(expansion)g(errors)g(are)g
-(considered)g(non-fatal)h(errors)e(that)i(cause)f(the)g(cur-)810
-829 y(ren)m(t)26 b(command)g(to)h(fail,)h(ev)m(en)f(in)f
-Fm(posix)f Fu(mo)s(de)h(\(the)g(default)h(b)s(eha)m(vior)f(is)g(to)h
-(mak)m(e)810 938 y(them)j(fatal)i(errors)e(that)h(cause)g(the)f(shell)h
-(to)g(exit\).)705 1078 y Fq(\017)60 b Fu(When)36 b(executing)h(a)f
-(shell)g(function,)h(the)f(lo)s(op)g(state)h(\(while/un)m(til/etc.\))61
-b(is)36 b(not)810 1188 y(reset,)e(so)g Ft(break)d Fu(or)i
-Ft(continue)e Fu(in)h(that)i(function)f(will)g(break)g(or)g(con)m(tin)m
-(ue)h(lo)s(ops)810 1297 y(in)h(the)g(calling)h(con)m(text.)57
-b(Bash-4.4)37 b(and)d(later)i(reset)g(the)f(lo)s(op)g(state)i(to)e
-(prev)m(en)m(t)810 1407 y(this.)150 1577 y Ft(compat44)705
-1717 y Fq(\017)60 b Fu(The)38 b(shell)g(sets)g(up)g(the)g(v)-5
-b(alues)38 b(used)g(b)m(y)g Ft(BASH_ARGV)d Fu(and)j Ft(BASH_ARGC)d
-Fu(so)k(they)810 1827 y(can)26 b(expand)f(to)h(the)g(shell's)g(p)s
-(ositional)g(parameters)g(ev)m(en)h(if)e(extended)h(debugging)810
-1937 y(mo)s(de)k(is)g(not)h(enabled.)705 2077 y Fq(\017)60
-b Fu(A)38 b(subshell)f(inherits)g(lo)s(ops)h(from)f(its)h(paren)m(t)g
-(con)m(text,)k(so)c Ft(break)e Fu(or)i Ft(continue)810
-2186 y Fu(will)d(cause)g(the)f(subshell)f(to)i(exit.)54
+g(can)h(b)s(e)810 1358 y(used)40 b(to)i(quote)g(a)f(closing)h(brace)f
+(or)g(other)h(sp)s(ecial)f(c)m(haracter)i(\(this)e(is)g(part)g(of)810
+1468 y Fm(posix)36 b Fu(in)m(terpretation)h(221\);)42
+b(in)36 b(later)h(v)m(ersions,)h(single)f(quotes)g(are)g(not)f(sp)s
+(ecial)810 1577 y(within)30 b(double-quoted)g(w)m(ord)g(expansions.)150
+1724 y Ft(compat43)705 1851 y Fq(\017)60 b Fu(W)-8 b(ord)32
+b(expansion)g(errors)g(are)g(considered)g(non-fatal)h(errors)e(that)i
+(cause)f(the)g(cur-)810 1961 y(ren)m(t)26 b(command)g(to)h(fail,)h(ev)m
+(en)f(in)f Fm(posix)f Fu(mo)s(de)h(\(the)g(default)h(b)s(eha)m(vior)f
+(is)g(to)h(mak)m(e)810 2071 y(them)j(fatal)i(errors)e(that)h(cause)g
+(the)f(shell)h(to)g(exit\).)705 2198 y Fq(\017)60 b Fu(When)36
+b(executing)h(a)f(shell)g(function,)h(the)f(lo)s(op)g(state)h
+(\(while/un)m(til/etc.\))61 b(is)36 b(not)810 2308 y(reset,)e(so)g
+Ft(break)d Fu(or)i Ft(continue)e Fu(in)h(that)i(function)f(will)g
+(break)g(or)g(con)m(tin)m(ue)h(lo)s(ops)810 2418 y(in)h(the)g(calling)h
+(con)m(text.)57 b(Bash-4.4)37 b(and)d(later)i(reset)g(the)f(lo)s(op)g
+(state)i(to)e(prev)m(en)m(t)810 2527 y(this.)150 2673
+y Ft(compat44)705 2801 y Fq(\017)60 b Fu(The)38 b(shell)g(sets)g(up)g
+(the)g(v)-5 b(alues)38 b(used)g(b)m(y)g Ft(BASH_ARGV)d
+Fu(and)j Ft(BASH_ARGC)d Fu(so)k(they)810 2911 y(can)26
+b(expand)f(to)h(the)g(shell's)g(p)s(ositional)g(parameters)g(ev)m(en)h
+(if)e(extended)h(debugging)810 3020 y(mo)s(de)k(is)g(not)h(enabled.)705
+3148 y Fq(\017)60 b Fu(A)38 b(subshell)f(inherits)g(lo)s(ops)h(from)f
+(its)h(paren)m(t)g(con)m(text,)k(so)c Ft(break)e Fu(or)i
+Ft(continue)810 3258 y Fu(will)d(cause)g(the)f(subshell)f(to)i(exit.)54
b(Bash-5.0)36 b(and)d(later)j(reset)f(the)f(lo)s(op)h(state)g(to)810
-2296 y(prev)m(en)m(t)c(the)g(exit.)705 2436 y Fq(\017)60
+3367 y(prev)m(en)m(t)c(the)g(exit.)705 3495 y Fq(\017)60
b Fu(V)-8 b(ariable)27 b(assignmen)m(ts)g(preceding)e(builtins)g(lik)m
(e)i Ft(export)d Fu(and)i Ft(readonly)d Fu(that)j(set)810
-2545 y(attributes)37 b(con)m(tin)m(ue)h(to)g(a\013ect)g(v)-5
+3605 y(attributes)37 b(con)m(tin)m(ue)h(to)g(a\013ect)g(v)-5
b(ariables)37 b(with)g(the)f(same)h(name)g(in)g(the)f(calling)810
-2655 y(en)m(vironmen)m(t)31 b(ev)m(en)g(if)f(the)h(shell)g(is)f(not)h
-(in)f Fm(posix)f Fu(mo)s(de.)150 2826 y Ft(compat50)f(\(set)h(using)g
-(BASH_COMPAT\))705 2935 y Fq(\017)60 b Fu(Bash-5.1)29
+3714 y(en)m(vironmen)m(t)31 b(ev)m(en)g(if)f(the)h(shell)g(is)f(not)h
+(in)f Fm(posix)f Fu(mo)s(de.)150 3861 y Ft(compat50)f(\(set)h(using)g
+(BASH_COMPAT\))705 3970 y Fq(\017)60 b Fu(Bash-5.1)29
b(c)m(hanged)g(the)f(w)m(a)m(y)g Ft($RANDOM)e Fu(is)i(generated)h(to)f
-(in)m(tro)s(duce)g(sligh)m(tly)h(more)810 3045 y(randomness.)39
+(in)m(tro)s(duce)g(sligh)m(tly)h(more)810 4080 y(randomness.)39
b(If)30 b(the)f(shell)h(compatibilit)m(y)i(lev)m(el)f(is)f(set)g(to)h
-(50)f(or)g(lo)m(w)m(er,)h(it)f(rev)m(erts)810 3154 y(to)e(the)g(metho)s
+(50)f(or)g(lo)m(w)m(er,)h(it)f(rev)m(erts)810 4189 y(to)e(the)g(metho)s
(d)f(from)g(bash-5.0)h(and)f(previous)g(v)m(ersions,)i(so)e(seeding)h
-(the)g(random)810 3264 y(n)m(um)m(b)s(er)36 b(generator)j(b)m(y)e
+(the)g(random)810 4299 y(n)m(um)m(b)s(er)36 b(generator)j(b)m(y)e
(assigning)h(a)g(v)-5 b(alue)38 b(to)g Ft(RANDOM)e Fu(will)i(pro)s
-(duce)e(the)i(same)810 3373 y(sequence)31 b(as)f(in)g(bash-5.0.)705
-3513 y Fq(\017)60 b Fu(If)22 b(the)g(command)g(hash)f(table)i(is)f
+(duce)e(the)i(same)810 4408 y(sequence)31 b(as)f(in)g(bash-5.0.)705
+4536 y Fq(\017)60 b Fu(If)22 b(the)g(command)g(hash)f(table)i(is)f
(empt)m(y)-8 b(,)25 b(Bash)d(v)m(ersions)g(prior)g(to)h(bash-5.1)f
-(prin)m(ted)810 3623 y(an)29 b(informational)i(message)g(to)f(that)g
+(prin)m(ted)810 4646 y(an)29 b(informational)i(message)g(to)f(that)g
(e\013ect,)h(ev)m(en)g(when)d(pro)s(ducing)g(output)h(that)810
-3733 y(can)40 b(b)s(e)g(reused)f(as)h(input.)69 b(Bash-5.1)42
+4756 y(can)40 b(b)s(e)g(reused)f(as)h(input.)69 b(Bash-5.1)42
b(suppresses)c(that)j(message)g(when)e(the)i Ft(-l)810
-3842 y Fu(option)31 b(is)f(supplied.)150 4013 y Ft(compat51)e(\(set)h
-(using)g(BASH_COMPAT\))705 4122 y Fq(\017)60 b Fu(The)38
+4865 y Fu(option)31 b(is)f(supplied.)150 5011 y Ft(compat51)e(\(set)h
+(using)g(BASH_COMPAT\))705 5121 y Fq(\017)60 b Fu(The)38
b Ft(unset)g Fu(builtin)g(will)h(unset)f(the)h(arra)m(y)g
Ft(a)g Fu(giv)m(en)g(an)g(argumen)m(t)g(lik)m(e)h(`)p
-Ft(a[@])p Fu('.)810 4232 y(Bash-5.2)32 b(will)f(unset)f(an)g(elemen)m
+Ft(a[@])p Fu('.)810 5230 y(Bash-5.2)32 b(will)f(unset)f(an)g(elemen)m
(t)i(with)e(k)m(ey)i(`)p Ft(@)p Fu(')e(\(asso)s(ciativ)m(e)k(arra)m
-(ys\))d(or)f(remo)m(v)m(e)810 4341 y(all)h(the)g(elemen)m(ts)h(without)
-e(unsetting)g(the)h(arra)m(y)g(\(indexed)f(arra)m(ys\).)705
-4482 y Fq(\017)60 b Fu(Arithmetic)31 b(commands)f(\()h(\(\()6
-b(.)23 b(.)f(.)11 b(\)\))31 b(\))g(and)f(the)g(expressions)g(in)g(an)h
-(arithmetic)g(for)810 4591 y(statemen)m(t)h(can)f(b)s(e)f(expanded)f
-(more)i(than)f(once.)705 4731 y Fq(\017)60 b Fu(Expressions)20
-b(used)f(as)i(argumen)m(ts)g(to)g(arithmetic)h(op)s(erators)f(in)f(the)
-h Ft([[)f Fu(conditional)810 4841 y(command)30 b(can)h(b)s(e)f
-(expanded)f(more)i(than)f(once.)705 4981 y Fq(\017)60
-b Fu(The)31 b(expressions)g(in)h(substring)e(parameter)i(brace)g
-(expansion)g(can)g(b)s(e)f(expanded)810 5090 y(more)g(than)f(once.)705
-5230 y Fq(\017)60 b Fu(The)35 b(expressions)g(in)g(the)h($\(\()42
-b(.)22 b(.)g(.)47 b(\)\))36 b(w)m(ord)f(expansion)h(can)f(b)s(e)g
-(expanded)g(more)810 5340 y(than)30 b(once.)p eop end
+(ys\))d(or)f(remo)m(v)m(e)810 5340 y(all)h(the)g(elemen)m(ts)h(without)
+e(unsetting)g(the)h(arra)m(y)g(\(indexed)f(arra)m(ys\).)p
+eop end
%%Page: 124 130
TeXDict begin 124 129 bop 150 -116 a Fu(Chapter)30 b(6:)41
b(Bash)30 b(F)-8 b(eatures)2439 b(124)705 299 y Fq(\017)60
-b Fu(Arithmetic)33 b(expressions)f(used)g(as)h(indexed)e(arra)m(y)i
-(subscripts)e(can)i(b)s(e)f(expanded)810 408 y(more)f(than)f(once.)705
-543 y Fq(\017)60 b Ft(test)29 b(-v)p Fu(,)35 b(when)f(giv)m(en)h(an)g
+b Fu(Arithmetic)31 b(commands)f(\()h(\(\()6 b(.)23 b(.)f(.)11
+b(\)\))31 b(\))g(and)f(the)g(expressions)g(in)g(an)h(arithmetic)g(for)
+810 408 y(statemen)m(t)h(can)f(b)s(e)f(expanded)f(more)i(than)f(once.)
+705 543 y Fq(\017)60 b Fu(Expressions)20 b(used)f(as)i(argumen)m(ts)g
+(to)g(arithmetic)h(op)s(erators)f(in)f(the)h Ft([[)f
+Fu(conditional)810 653 y(command)30 b(can)h(b)s(e)f(expanded)f(more)i
+(than)f(once.)705 787 y Fq(\017)60 b Fu(The)31 b(expressions)g(in)h
+(substring)e(parameter)i(brace)g(expansion)g(can)g(b)s(e)f(expanded)810
+897 y(more)g(than)f(once.)705 1031 y Fq(\017)60 b Fu(The)35
+b(expressions)g(in)g(the)h($\(\()42 b(.)22 b(.)g(.)47
+b(\)\))36 b(w)m(ord)f(expansion)h(can)f(b)s(e)g(expanded)g(more)810
+1141 y(than)30 b(once.)705 1275 y Fq(\017)60 b Fu(Arithmetic)33
+b(expressions)f(used)g(as)h(indexed)e(arra)m(y)i(subscripts)e(can)i(b)s
+(e)f(expanded)810 1385 y(more)f(than)f(once.)705 1519
+y Fq(\017)60 b Ft(test)29 b(-v)p Fu(,)35 b(when)f(giv)m(en)h(an)g
(argumen)m(t)g(of)f(`)p Ft(A[@])p Fu(',)h(where)f Fr(A)h
-Fu(is)f(an)h(existing)g(asso-)810 653 y(ciativ)m(e)h(arra)m(y)-8
+Fu(is)f(an)h(existing)g(asso-)810 1629 y(ciativ)m(e)h(arra)m(y)-8
b(,)37 b(will)d(return)f(true)g(if)h(the)h(arra)m(y)f(has)g(an)m(y)g
-(set)g(elemen)m(ts.)53 b(Bash-5.2)810 762 y(will)31 b(lo)s(ok)g(for)f
-(and)g(rep)s(ort)f(on)i(a)f(k)m(ey)i(named)d(`)p Ft(@)p
-Fu('.)705 897 y Fq(\017)60 b Fu(the)40 b($)p Fi({)p Fr(parameter)7
-b Fu([:]=)p Fr(v)-5 b(alue)5 b Fi(})42 b Fu(w)m(ord)e(expansion)f(will)
-i(return)d Fr(v)-5 b(alue)p Fu(,)43 b(b)s(efore)d(an)m(y)810
-1006 y(v)-5 b(ariable-sp)s(eci\014c)34 b(transformations)f(ha)m(v)m(e)h
-(b)s(een)e(p)s(erformed)f(\(e.g.,)36 b(con)m(v)m(erting)e(to)810
-1116 y(lo)m(w)m(ercase\).)43 b(Bash-5.2)32 b(will)f(return)e(the)i
+(set)g(elemen)m(ts.)53 b(Bash-5.2)810 1738 y(will)31
+b(lo)s(ok)g(for)f(and)g(rep)s(ort)f(on)i(a)f(k)m(ey)i(named)d(`)p
+Ft(@)p Fu('.)705 1873 y Fq(\017)60 b Fu(the)40 b($)p
+Fi({)p Fr(parameter)7 b Fu([:]=)p Fr(v)-5 b(alue)5 b
+Fi(})42 b Fu(w)m(ord)e(expansion)f(will)i(return)d Fr(v)-5
+b(alue)p Fu(,)43 b(b)s(efore)d(an)m(y)810 1983 y(v)-5
+b(ariable-sp)s(eci\014c)34 b(transformations)f(ha)m(v)m(e)h(b)s(een)e
+(p)s(erformed)f(\(e.g.,)36 b(con)m(v)m(erting)e(to)810
+2092 y(lo)m(w)m(ercase\).)43 b(Bash-5.2)32 b(will)f(return)e(the)i
(\014nal)f(v)-5 b(alue)31 b(assigned)f(to)i(the)e(v)-5
-b(ariable.)705 1250 y Fq(\017)60 b Fu(P)m(arsing)40 b(command)f
+b(ariable.)705 2227 y Fq(\017)60 b Fu(P)m(arsing)40 b(command)f
(substitutions)f(will)i(b)s(eha)m(v)m(e)g(as)f(if)g(extended)g
-(globbing)h(\(see)810 1360 y(Section)e(4.3.2)g([The)f(Shopt)f
+(globbing)h(\(see)810 2336 y(Section)e(4.3.2)g([The)f(Shopt)f
(Builtin],)j(page)f(78\))g(is)f(enabled,)i(so)e(that)g(parsing)g(a)810
-1469 y(command)24 b(substitution)g(con)m(taining)h(an)f(extglob)i
+2446 y(command)24 b(substitution)g(con)m(taining)h(an)f(extglob)i
(pattern)e(\(sa)m(y)-8 b(,)27 b(as)d(part)g(of)g(a)h(shell)810
-1579 y(function\))30 b(will)h(not)g(fail.)41 b(This)30
+2555 y(function\))30 b(will)h(not)g(fail.)41 b(This)30
b(assumes)g(the)h(in)m(ten)m(t)g(is)g(to)g(enable)g(extglob)g(b)s
-(efore)810 1689 y(the)i(command)f(is)g(executed)h(and)f(w)m(ord)g
+(efore)810 2665 y(the)i(command)f(is)g(executed)h(and)f(w)m(ord)g
(expansions)g(are)h(p)s(erformed.)45 b(It)33 b(will)f(fail)810
-1798 y(at)42 b(w)m(ord)f(expansion)h(time)g(if)f(extglob)i(hasn't)e(b)s
-(een)g(enabled)h(b)m(y)f(the)h(time)g(the)810 1908 y(command)30
-b(is)h(executed.)150 2067 y Ft(compat52)d(\(set)h(using)g
-(BASH_COMPAT\))705 2177 y Fq(\017)60 b Fu(The)23 b Ft(test)g
+2775 y(at)42 b(w)m(ord)f(expansion)h(time)g(if)f(extglob)i(hasn't)e(b)s
+(een)g(enabled)h(b)m(y)f(the)h(time)g(the)810 2884 y(command)30
+b(is)h(executed.)150 3044 y Ft(compat52)d(\(set)h(using)g
+(BASH_COMPAT\))705 3153 y Fq(\017)60 b Fu(The)23 b Ft(test)g
Fu(builtin)g(uses)h(its)g(historical)h(algorithm)g(to)f(parse)g(paren)m
-(thesized)g(sub)s(ex-)810 2286 y(pressions)30 b(when)f(giv)m(en)i
-(\014v)m(e)g(or)f(more)h(argumen)m(ts.)705 2421 y Fq(\017)60
+(thesized)g(sub)s(ex-)810 3263 y(pressions)30 b(when)f(giv)m(en)i
+(\014v)m(e)g(or)f(more)h(argumen)m(ts.)705 3397 y Fq(\017)60
b Fu(If)25 b(the)h Ft(-p)f Fu(or)h Ft(-P)f Fu(option)h(is)g(supplied)e
(to)j(the)f Ft(bind)e Fu(builtin,)i Ft(bind)f Fu(treats)i(an)m(y)f
-(argu-)810 2531 y(men)m(ts)h(remaining)g(after)h(option)f(pro)s
+(argu-)810 3507 y(men)m(ts)h(remaining)g(after)h(option)f(pro)s
(cessing)g(as)g(bindable)f(command)h(names,)h(and)810
-2640 y(displa)m(ys)k(an)m(y)f(k)m(ey)i(sequences)f(b)s(ound)d(to)j
-(those)g(commands,)g(instead)g(of)g(treating)810 2750
+3616 y(displa)m(ys)k(an)m(y)f(k)m(ey)i(sequences)f(b)s(ound)d(to)j
+(those)g(commands,)g(instead)g(of)g(treating)810 3726
y(the)f(argumen)m(ts)f(as)h(k)m(ey)g(sequences)g(to)g(bind.)705
-2884 y Fq(\017)60 b Fu(In)m(teractiv)m(e)41 b(shells)d(will)h(notify)g
+3861 y Fq(\017)60 b Fu(In)m(teractiv)m(e)41 b(shells)d(will)h(notify)g
(the)f(user)g(of)h(completed)g(jobs)f(while)g(sourcing)h(a)810
-2994 y(script.)i(New)m(er)31 b(v)m(ersions)f(defer)g(noti\014cation)i
+3970 y(script.)i(New)m(er)31 b(v)m(ersions)f(defer)g(noti\014cation)i
(un)m(til)f(script)f(execution)i(completes.)p eop end
%%Page: 125 131
TeXDict begin 125 130 bop 3614 -116 a Fu(125)150 299
%%Page: 128 134
TeXDict begin 128 133 bop 150 -116 a Fu(Chapter)30 b(7:)41
b(Job)30 b(Con)m(trol)2526 b(128)150 299 y Ft(wait)870
-427 y(wait)47 b([-fn])f([-p)h Fj(varname)p Ft(])e([)p
-Fj(id)i Ft(...])630 555 y Fu(W)-8 b(ait)28 b(un)m(til)e(the)g(c)m(hild)
+433 y(wait)47 b([-fn])f([-p)h Fj(varname)p Ft(])e([)p
+Fj(id)i Ft(...])630 567 y Fu(W)-8 b(ait)28 b(un)m(til)e(the)g(c)m(hild)
h(pro)s(cess)e(sp)s(eci\014ed)g(b)m(y)h(eac)m(h)h Fr(id)j
-Fu(exits)c(and)g(return)f(the)h(exit)h(status)630 664
+Fu(exits)c(and)g(return)f(the)h(exit)h(status)630 676
y(of)33 b(the)f(last)i Fr(id)p Fu(.)47 b(Eac)m(h)33 b
Fr(id)j Fu(ma)m(y)d(b)s(e)f(a)h(pro)s(cess)f Fm(id)g
Fr(pid)k Fu(or)c(a)h(job)f(sp)s(eci\014cation)i Fr(jobsp)s(ec)6
-b Fu(;)630 774 y(if)30 b(a)h(jobsp)s(ec)f(is)g(supplied,)g
+b Fu(;)630 786 y(if)30 b(a)h(jobsp)s(ec)f(is)g(supplied,)g
Ft(wait)f Fu(w)m(aits)i(for)f(all)i(pro)s(cesses)e(in)g(the)g(job.)630
-902 y(If)36 b(no)g(options)h(or)g Fr(id)t Fu(s)e(are)i(supplied,)g
+920 y(If)36 b(no)g(options)h(or)g Fr(id)t Fu(s)e(are)i(supplied,)g
Ft(wait)e Fu(w)m(aits)j(for)e(all)h(running)e(bac)m(kground)h(jobs)630
-1011 y(and)f(the)h(last-executed)i(pro)s(cess)e(substitution,)h(if)f
+1029 y(and)f(the)h(last-executed)i(pro)s(cess)e(substitution,)h(if)f
(its)g(pro)s(cess)g(id)f(is)h(the)h(same)f(as)g Fr($!)p
-Fu(,)630 1121 y(and)30 b(the)g(return)g(status)g(is)h(zero.)630
-1249 y(If)41 b(the)g Ft(-n)f Fu(option)i(is)f(supplied,)i
+Fu(,)630 1139 y(and)30 b(the)g(return)g(status)g(is)h(zero.)630
+1273 y(If)41 b(the)g Ft(-n)f Fu(option)i(is)f(supplied,)i
Ft(wait)d Fu(w)m(aits)i(for)e(an)m(y)i(one)f(of)g(the)h
-Fr(id)t Fu(s)e(or,)k(if)d(no)g Fr(id)t Fu(s)630 1358
+Fr(id)t Fu(s)e(or,)k(if)d(no)g Fr(id)t Fu(s)630 1383
y(are)34 b(supplied,)f(an)m(y)g(job)g(or)h(pro)s(cess)f(substitution,)h
-(to)g(complete)g(and)f(returns)f(its)i(exit)630 1468
+(to)g(complete)g(and)f(returns)f(its)i(exit)630 1492
y(status.)41 b(If)28 b(none)h(of)g(the)g(supplied)f Fr(id)t
Fu(s)g(is)h(a)h(c)m(hild)f(of)g(the)h(shell,)f(or)g(if)g(no)g(argumen)m
-(ts)h(are)630 1577 y(supplied)f(and)h(the)g(shell)h(has)f(no)g(un)m(w)m
+(ts)h(are)630 1602 y(supplied)f(and)h(the)g(shell)h(has)f(no)g(un)m(w)m
(aited-for)h(c)m(hildren,)g(the)f(exit)i(status)e(is)h(127.)630
-1705 y(If)38 b(the)g Ft(-p)g Fu(option)h(is)f(supplied,)h
+1736 y(If)38 b(the)g Ft(-p)g Fu(option)h(is)f(supplied,)h
Ft(wait)e Fu(assigns)i(the)f(pro)s(cess)g(or)g(job)g(iden)m(ti\014er)g
-(of)h(the)630 1815 y(job)h(for)h(whic)m(h)f(the)h(exit)g(status)g(is)f
+(of)h(the)630 1845 y(job)h(for)h(whic)m(h)f(the)h(exit)g(status)g(is)f
(returned)g(to)h(the)g(v)-5 b(ariable)41 b Fr(v)-5 b(arname)46
-b Fu(named)40 b(b)m(y)630 1924 y(the)e(option)h(argumen)m(t.)65
+b Fu(named)40 b(b)m(y)630 1955 y(the)e(option)h(argumen)m(t.)65
b(The)38 b(v)-5 b(ariable,)41 b(whic)m(h)d(cannot)h(b)s(e)e(readonly)-8
-b(,)41 b(will)e(b)s(e)e(unset)630 2034 y(initially)-8
+b(,)41 b(will)e(b)s(e)e(unset)630 2064 y(initially)-8
b(,)46 b(b)s(efore)41 b(an)m(y)h(assignmen)m(t.)74 b(This)40
b(is)i(useful)e(only)h(when)g(used)f(with)h(the)h Ft(-n)630
-2144 y Fu(option.)630 2271 y(Supplying)33 b(the)i Ft(-f)f
+2174 y Fu(option.)630 2308 y(Supplying)33 b(the)i Ft(-f)f
Fu(option,)j(when)d(job)g(con)m(trol)i(is)f(enabled,)h(forces)f
-Ft(wait)f Fu(to)h(w)m(ait)h(for)630 2381 y(eac)m(h)h
+Ft(wait)f Fu(to)h(w)m(ait)h(for)630 2418 y(eac)m(h)h
Fr(id)j Fu(to)d(terminate)g(b)s(efore)f(returning)g(its)g(status,)j
-(instead)d(of)h(returning)e(when)g(it)630 2491 y(c)m(hanges)c(status.)
-630 2619 y(If)d(none)h(of)g(the)g Fr(id)t Fu(s)f(sp)s(ecify)h(one)g(of)
-g(the)g(shell's)g(an)g(activ)m(e)i(c)m(hild)f(pro)s(cesses,)f(the)g
-(return)630 2728 y(status)44 b(is)g(127.)82 b(If)43 b
-Ft(wait)g Fu(is)g(in)m(terrupted)g(b)m(y)h(a)g(signal,)k(an)m(y)c
-Fr(v)-5 b(arname)49 b Fu(will)44 b(remain)630 2838 y(unset,)34
-b(and)f(the)g(return)f(status)i(will)g(b)s(e)e(greater)j(than)e(128,)j
-(as)d(describ)s(ed)f(ab)s(o)m(v)m(e)j(\(see)630 2947
-y(Section)29 b(3.7.6)g([Signals],)g(page)g(49\).)41 b(Otherwise,)28
-b(the)g(return)f(status)h(is)g(the)g(exit)h(status)630
-3057 y(of)i(the)f(last)h Fr(id)p Fu(.)150 3203 y Ft(disown)870
-3331 y(disown)46 b([-ar])g([-h])h([)p Fj(id)g Ft(...)o(])630
-3459 y Fu(Without)29 b(options,)g(remo)m(v)m(e)g(eac)m(h)g
-Fr(id)j Fu(from)27 b(the)h(table)h(of)f(activ)m(e)j(jobs.)39
-b(Eac)m(h)29 b Fr(id)i Fu(ma)m(y)e(b)s(e)630 3568 y(a)34
+(instead)d(of)h(returning)e(when)g(it)630 2527 y(c)m(hanges)f(status.)
+51 b(If)32 b(there)i(are)g(no)f Fr(id)k Fu(argumen)m(ts,)e
+Ft(wait)d Fu(w)m(aits)i(un)m(til)g(all)g(bac)m(kground)630
+2637 y(pro)s(cesses)c(ha)m(v)m(e)i(terminated.)630 2771
+y(If)c(none)h(of)g(the)g Fr(id)t Fu(s)f(sp)s(ecify)h(one)g(of)g(the)g
+(shell's)g(an)g(activ)m(e)i(c)m(hild)f(pro)s(cesses,)f(the)g(return)630
+2880 y(status)44 b(is)g(127.)82 b(If)43 b Ft(wait)g Fu(is)g(in)m
+(terrupted)g(b)m(y)h(a)g(signal,)k(an)m(y)c Fr(v)-5 b(arname)49
+b Fu(will)44 b(remain)630 2990 y(unset,)34 b(and)f(the)g(return)f
+(status)i(will)g(b)s(e)e(greater)j(than)e(128,)j(as)d(describ)s(ed)f
+(ab)s(o)m(v)m(e)j(\(see)630 3099 y(Section)29 b(3.7.6)g([Signals],)g
+(page)g(49\).)41 b(Otherwise,)28 b(the)g(return)f(status)h(is)g(the)g
+(exit)h(status)630 3209 y(of)i(the)f(last)h Fr(id)p Fu(.)150
+3367 y Ft(disown)870 3501 y(disown)46 b([-ar])g([-h])h([)p
+Fj(id)g Ft(...)o(])630 3635 y Fu(Without)29 b(options,)g(remo)m(v)m(e)g
+(eac)m(h)g Fr(id)j Fu(from)27 b(the)h(table)h(of)f(activ)m(e)j(jobs.)39
+b(Eac)m(h)29 b Fr(id)i Fu(ma)m(y)e(b)s(e)630 3745 y(a)34
b(job)g(sp)s(eci\014cation)h Fr(jobsp)s(ec)k Fu(or)34
b(a)g(pro)s(cess)g Fm(id)g Fr(pid)t Fu(;)h(if)f Fr(id)j
Fu(is)d(a)g Fr(pid)p Fu(,)h Ft(disown)d Fu(uses)i(the)630
-3678 y(job)c(con)m(taining)i Fr(pid)h Fu(as)e Fr(jobsp)s(ec)p
-Fu(.)630 3806 y(If)e(the)g Ft(-h)f Fu(option)i(is)f(supplied,)f
+3854 y(job)c(con)m(taining)i Fr(pid)h Fu(as)e Fr(jobsp)s(ec)p
+Fu(.)630 3988 y(If)e(the)g Ft(-h)f Fu(option)i(is)f(supplied,)f
Ft(disown)f Fu(do)s(es)i(not)g(remo)m(v)m(e)i(the)e(jobs)f(corresp)s
-(onding)g(to)630 3915 y(eac)m(h)k Ft(id)f Fu(from)g(the)g(jobs)g
+(onding)g(to)630 4098 y(eac)m(h)k Ft(id)f Fu(from)g(the)g(jobs)g
(table,)h(but)f(rather)g(marks)g(them)g(so)h(the)f(shell)g(do)s(es)g
-(not)h(send)630 4025 y Ft(SIGHUP)d Fu(to)i(the)f(job)g(if)h(the)f
-(shell)h(receiv)m(es)h(a)f Ft(SIGHUP)p Fu(.)630 4153
+(not)h(send)630 4208 y Ft(SIGHUP)d Fu(to)i(the)f(job)g(if)h(the)f
+(shell)h(receiv)m(es)h(a)f Ft(SIGHUP)p Fu(.)630 4341
y(If)37 b(no)g Fr(id)j Fu(is)d(supplied,)h(the)f Ft(-a)f
Fu(option)i(means)f(to)h(remo)m(v)m(e)g(or)f(mark)g(all)h(jobs;)i(the)e
-Ft(-r)630 4262 y Fu(option)43 b(without)f(an)g Fr(id)j
+Ft(-r)630 4451 y Fu(option)43 b(without)f(an)g Fr(id)j
Fu(argumen)m(t)d(remo)m(v)m(es)i(or)e(marks)f(running)g(jobs.)75
-b(If)42 b(no)g Fr(id)j Fu(is)630 4372 y(supplied,)31
+b(If)42 b(no)g Fr(id)j Fu(is)630 4561 y(supplied,)31
b(and)h(neither)g(the)g Ft(-a)f Fu(nor)g(the)h Ft(-r)g
Fu(option)g(is)g(supplied,)f Ft(disown)g Fu(remo)m(v)m(es)i(or)630
-4482 y(marks)d(the)h(curren)m(t)f(job.)630 4609 y(The)g(return)f(v)-5
+4670 y(marks)d(the)h(curren)m(t)f(job.)630 4804 y(The)g(return)f(v)-5
b(alue)31 b(is)f(0)h(unless)f(an)g Fr(id)k Fu(do)s(es)c(not)g(sp)s
-(ecify)g(a)h(v)-5 b(alid)31 b(job.)150 4756 y Ft(suspend)870
-4883 y(suspend)46 b([-f])630 5011 y Fu(Susp)s(end)31
+(ecify)g(a)h(v)-5 b(alid)31 b(job.)150 4963 y Ft(suspend)870
+5096 y(suspend)46 b([-f])630 5230 y Fu(Susp)s(end)31
b(the)i(execution)h(of)g(this)f(shell)g(un)m(til)h(it)g(receiv)m(es)h
-(a)e Ft(SIGCONT)f Fu(signal.)50 b(A)33 b(login)630 5121
+(a)e Ft(SIGCONT)f Fu(signal.)50 b(A)33 b(login)630 5340
y(shell,)25 b(or)f(a)g(shell)f(without)h(job)f(con)m(trol)i(enabled,)g
-(cannot)f(b)s(e)f(susp)s(ended;)h(the)g Ft(-f)e Fu(option)630
-5230 y(will)36 b(o)m(v)m(erride)i(this)e(and)f(force)i(the)f(susp)s
-(ension.)56 b(The)36 b(return)f(status)i(is)f(0)g(unless)g(the)630
-5340 y(shell)31 b(is)f(a)h(login)g(shell)g(or)f(job)g(con)m(trol)i(is)e
-(not)h(enabled)f(and)g Ft(-f)g Fu(is)g(not)h(supplied.)p
+(cannot)f(b)s(e)f(susp)s(ended;)h(the)g Ft(-f)e Fu(option)p
eop end
%%Page: 129 135
TeXDict begin 129 134 bop 150 -116 a Fu(Chapter)30 b(7:)41
-b(Job)30 b(Con)m(trol)2526 b(129)275 299 y(When)30 b(job)f(con)m(trol)j
-(is)e(not)h(activ)m(e,)i(the)d Ft(kill)f Fu(and)h Ft(wait)f
-Fu(builtins)g(do)h(not)h(accept)h Fr(jobsp)s(ec)j Fu(argu-)150
-408 y(men)m(ts.)41 b(They)30 b(m)m(ust)g(b)s(e)g(supplied)f(pro)s(cess)
-h Fm(id)p Fu(s.)150 649 y Fs(7.3)68 b(Job)45 b(Con)l(trol)h(V)-11
-b(ariables)150 834 y Ft(auto_resume)630 943 y Fu(This)39
-b(v)-5 b(ariable)41 b(con)m(trols)g(ho)m(w)g(the)f(shell)g(in)m
-(teracts)i(with)d(the)i(user)e(and)h(job)f(con)m(trol.)630
-1053 y(If)34 b(this)g(v)-5 b(ariable)35 b(exists)g(then)f(simple)g
+b(Job)30 b(Con)m(trol)2526 b(129)630 299 y(will)36 b(o)m(v)m(erride)i
+(this)e(and)f(force)i(the)f(susp)s(ension.)56 b(The)36
+b(return)f(status)i(is)f(0)g(unless)g(the)630 408 y(shell)31
+b(is)f(a)h(login)g(shell)g(or)f(job)g(con)m(trol)i(is)e(not)h(enabled)f
+(and)g Ft(-f)g Fu(is)g(not)h(supplied.)275 568 y(When)f(job)f(con)m
+(trol)j(is)e(not)h(activ)m(e,)i(the)d Ft(kill)f Fu(and)h
+Ft(wait)f Fu(builtins)g(do)h(not)h(accept)h Fr(jobsp)s(ec)j
+Fu(argu-)150 677 y(men)m(ts.)41 b(They)30 b(m)m(ust)g(b)s(e)g(supplied)
+f(pro)s(cess)h Fm(id)p Fu(s.)150 918 y Fs(7.3)68 b(Job)45
+b(Con)l(trol)h(V)-11 b(ariables)150 1103 y Ft(auto_resume)630
+1212 y Fu(This)39 b(v)-5 b(ariable)41 b(con)m(trols)g(ho)m(w)g(the)f
+(shell)g(in)m(teracts)i(with)d(the)i(user)e(and)h(job)f(con)m(trol.)630
+1322 y(If)34 b(this)g(v)-5 b(ariable)35 b(exists)g(then)f(simple)g
(commands)g(consisting)h(of)g(only)f(a)h(single)g(w)m(ord,)630
-1162 y(without)k(redirections,)j(are)d(treated)h(as)f(candidates)h(for)
-f(resumption)f(of)h(an)g(existing)630 1272 y(job.)64
+1431 y(without)k(redirections,)j(are)d(treated)h(as)f(candidates)h(for)
+f(resumption)f(of)h(an)g(existing)630 1541 y(job.)64
b(There)37 b(is)i(no)f(am)m(biguit)m(y)h(allo)m(w)m(ed;)44
b(if)39 b(there)f(is)g(more)g(than)g(one)h(job)f(b)s(eginning)630
-1381 y(with)c(or)h(con)m(taining)h(the)f(w)m(ord,)h(then)e(this)h
+1650 y(with)c(or)h(con)m(taining)h(the)f(w)m(ord,)h(then)e(this)h
(selects)h(the)f(most)g(recen)m(tly)h(accessed)g(job.)630
-1491 y(The)24 b(name)g(of)g(a)h(stopp)s(ed)e(job,)i(in)f(this)g(con)m
+1760 y(The)24 b(name)g(of)g(a)h(stopp)s(ed)e(job,)i(in)f(this)g(con)m
(text,)j(is)e(the)f(command)g(line)g(used)g(to)g(start)h(it,)630
-1601 y(as)j(displa)m(y)m(ed)g(b)m(y)g Ft(jobs)p Fu(.)38
+1870 y(as)j(displa)m(y)m(ed)g(b)m(y)g Ft(jobs)p Fu(.)38
b(If)28 b(this)f(v)-5 b(ariable)29 b(is)f(set)g(to)g(the)g(v)-5
b(alue)28 b(`)p Ft(exact)p Fu(',)g(the)g(w)m(ord)f(m)m(ust)630
-1710 y(matc)m(h)h(the)g(name)g(of)f(a)h(stopp)s(ed)f(job)g(exactly;)j
+1979 y(matc)m(h)h(the)g(name)g(of)f(a)h(stopp)s(ed)f(job)g(exactly;)j
(if)e(set)g(to)g(`)p Ft(substring)p Fu(',)e(the)i(w)m(ord)f(needs)630
-1820 y(to)41 b(matc)m(h)g(a)g(substring)e(of)h(the)h(name)f(of)g(a)h
+2089 y(to)41 b(matc)m(h)g(a)g(substring)e(of)h(the)h(name)f(of)g(a)h
(stopp)s(ed)e(job.)70 b(The)40 b(`)p Ft(substring)p Fu(')e(v)-5
-b(alue)630 1929 y(pro)m(vides)30 b(functionalit)m(y)h(analogous)g(to)g
+b(alue)630 2198 y(pro)m(vides)30 b(functionalit)m(y)h(analogous)g(to)g
(the)f(`)p Ft(\045?string)p Fu(')e(job)i Fm(id)g Fu(\(see)g(Section)h
-(7.1)g([Job)630 2039 y(Con)m(trol)h(Basics],)i(page)e(125\).)45
+(7.1)g([Job)630 2308 y(Con)m(trol)h(Basics],)i(page)e(125\).)45
b(If)31 b(set)h(to)g(an)m(y)g(other)g(v)-5 b(alue)32
b(\(e.g.,)i(`)p Ft(prefix)p Fu('\),)d(the)g(w)m(ord)630
-2149 y(m)m(ust)d(b)s(e)g(a)h(pre\014x)e(of)i(a)g(stopp)s(ed)e(job's)i
+2418 y(m)m(ust)d(b)s(e)g(a)h(pre\014x)e(of)i(a)g(stopp)s(ed)e(job's)i
(name;)g(this)f(pro)m(vides)h(functionalit)m(y)h(analogous)630
-2258 y(to)h(the)g(`)p Ft(\045string)p Fu(')e(job)h Fm(id)p
+2527 y(to)h(the)g(`)p Ft(\045string)p Fu(')e(job)h Fm(id)p
Fu(.)p eop end
%%Page: 130 136
TeXDict begin 130 135 bop 3614 -116 a Fu(130)150 299
1639 y Fs(8.1)68 b(In)l(tro)t(duction)45 b(to)g(Line)h(Editing)150
1798 y Fu(The)j(follo)m(wing)j(paragraphs)d(use)h(Emacs)g(st)m(yle)h
(to)g(describ)s(e)f(the)g(notation)h(used)e(to)i(represen)m(t)150
-1908 y(k)m(eystrok)m(es.)275 2041 y(The)35 b(text)i Fj(C-k)f
-Fu(is)g(read)g(as)h(`Con)m(trol-K')g(and)f(describ)s(es)f(the)h(c)m
-(haracter)i(pro)s(duced)d(when)g(the)h Ft(k)150 2150
-y Fu(k)m(ey)31 b(is)g(pressed)e(while)h(the)h(Con)m(trol)g(k)m(ey)g(is)
-g(depressed.)275 2283 y(The)g(text)i Fj(M-k)e Fu(is)h(read)f(as)i
-(`Meta-K')g(and)f(describ)s(es)f(the)h(c)m(haracter)h(pro)s(duced)e
-(when)f(the)i(Meta)150 2393 y(k)m(ey)h(\(if)f(y)m(ou)g(ha)m(v)m(e)h
+1908 y(k)m(eystrok)m(es.)275 2041 y(The)32 b(text)j Fj(C-k)d
+Fu(is)h(read)h(as)f(\\Con)m(trol-K")i(and)e(describ)s(es)f(the)i(c)m
+(haracter)h(pro)s(duced)c(when)i(the)g Ft(k)150 2150
+y Fu(k)m(ey)e(is)g(pressed)e(while)h(the)h(Con)m(trol)g(k)m(ey)g(is)g
+(depressed.)275 2283 y(The)d(text)i Fj(M-k)e Fu(is)h(read)g(as)g
+(\\Meta-K")j(and)c(describ)s(es)g(the)h(c)m(haracter)i(pro)s(duced)c
+(when)h(the)h(Meta)150 2393 y(k)m(ey)k(\(if)f(y)m(ou)g(ha)m(v)m(e)h
(one\))g(is)f(depressed,)f(and)g(the)i Ft(k)e Fu(k)m(ey)i(is)f(pressed)
f(\(a)h Fr(meta)h(c)m(haracter)7 b Fu(\),)34 b(then)e(b)s(oth)150
2502 y(are)k(released.)56 b(The)35 b(Meta)i(k)m(ey)f(is)f(lab)s(eled)h
(ecify)f(\(see)i Ft(Key)29 b(Bindings)37 b Fu(in)i(Section)i(8.3.1)g
([Readline)f(Init)g(File)g(Syn)m(tax],)150 4130 y(page)31
b(133\))h(do)e(the)h(same)g(thing)f(b)m(y)g(setting)i(the)e
-Ft(force-meta-prefix)c Fu(v)-5 b(ariable.)275 4262 y(The)39
-b(text)j Fj(M-C-k)d Fu(is)h(read)g(as)h(`Meta-Con)m(trol-k')j(and)39
-b(describ)s(es)h(the)g(c)m(haracter)i(pro)s(duced)d(b)m(y)150
-4372 y(metafying)31 b Fj(C-k)p Fu(.)275 4505 y(In)k(addition,)j(sev)m
+Ft(force-meta-prefix)c Fu(v)-5 b(ariable.)275 4262 y(The)36
+b(text)i Fj(M-C-k)e Fu(is)h(read)f(as)i(\\Meta-Con)m(trol-k")i(and)d
+(describ)s(es)f(the)h(c)m(haracter)i(pro)s(duced)c(b)m(y)150
+4372 y(metafying)c Fj(C-k)p Fu(.)275 4505 y(In)k(addition,)j(sev)m
(eral)f(k)m(eys)g(ha)m(v)m(e)g(their)f(o)m(wn)g(names.)58
b(Sp)s(eci\014cally)-8 b(,)38 b Ft(DEL)p Fu(,)f Ft(ESC)p
Fu(,)g Ft(LFD)p Fu(,)g Ft(SPC)p Fu(,)g Ft(RET)p Fu(,)150
Fj(C-b)d Fu(to)j(mo)m(v)m(e)g(the)f(cursor)g(to)g(the)g(left,)i(and)150
1769 y(then)f(correct)i(y)m(our)e(mistak)m(e.)42 b(Afterw)m(ards,)31
b(y)m(ou)f(can)h(mo)m(v)m(e)h(the)e(cursor)g(to)h(the)g(righ)m(t)g
-(with)f Fj(C-f)p Fu(.)275 1905 y(When)i(y)m(ou)h(add)f(text)h(in)f(the)
-h(middle)f(of)h(a)g(line,)h(y)m(ou)e(will)h(notice)h(that)f(c)m
-(haracters)h(to)g(the)e(righ)m(t)150 2014 y(of)d(the)g(cursor)f(are)h
-(`pushed)e(o)m(v)m(er')j(to)g(mak)m(e)f(ro)s(om)g(for)f(the)h(text)h
-(that)f(y)m(ou)g(ha)m(v)m(e)h(inserted.)40 b(Lik)m(ewise,)150
-2124 y(when)d(y)m(ou)g(delete)i(text)g(b)s(ehind)c(the)j(cursor,)h(c)m
-(haracters)g(to)f(the)g(righ)m(t)g(of)g(the)g(cursor)e(are)i(`pulled)
-150 2234 y(bac)m(k')k(to)f(\014ll)g(in)f(the)h(blank)f(space)i(created)
-g(b)m(y)e(the)h(remo)m(v)-5 b(al)42 b(of)f(the)g(text.)73
-b(These)40 b(are)h(the)g(bare)150 2343 y(essen)m(tials)32
-b(for)e(editing)h(the)g(text)g(of)g(an)f(input)f(line:)150
-2505 y Fj(C-b)336 b Fu(Mo)m(v)m(e)32 b(bac)m(k)g(one)e(c)m(haracter.)
-150 2666 y Fj(C-f)336 b Fu(Mo)m(v)m(e)32 b(forw)m(ard)e(one)h(c)m
-(haracter.)150 2827 y Ft(DEL)e Fu(or)i Ft(Backspace)630
+(with)f Fj(C-f)p Fu(.)275 1905 y(When)c(y)m(ou)h(add)f(text)i(in)e(the)
+h(middle)f(of)h(a)g(line,)h(y)m(ou)f(will)g(notice)h(that)f(c)m
+(haracters)h(to)g(the)f(righ)m(t)g(of)150 2014 y(the)33
+b(cursor)f(are)h(\\pushed)e(o)m(v)m(er")j(to)f(mak)m(e)h(ro)s(om)e(for)
+h(the)f(text)i(that)f(y)m(ou)g(ha)m(v)m(e)h(inserted.)47
+b(Lik)m(ewise,)150 2124 y(when)35 b(y)m(ou)i(delete)g(text)g(b)s(ehind)
+e(the)h(cursor,)h(c)m(haracters)h(to)f(the)f(righ)m(t)h(of)g(the)f
+(cursor)g(are)g(\\pulled)150 2234 y(bac)m(k")41 b(to)f(\014ll)g(in)f
+(the)h(blank)f(space)h(created)h(b)m(y)f(the)g(remo)m(v)-5
+b(al)41 b(of)e(the)h(text.)70 b(These)39 b(are)h(the)g(bare)150
+2343 y(essen)m(tials)32 b(for)e(editing)h(the)g(text)g(of)g(an)f(input)
+f(line:)150 2505 y Fj(C-b)336 b Fu(Mo)m(v)m(e)32 b(bac)m(k)g(one)e(c)m
+(haracter.)150 2666 y Fj(C-f)336 b Fu(Mo)m(v)m(e)32 b(forw)m(ard)e(one)
+h(c)m(haracter.)150 2827 y Ft(DEL)e Fu(or)i Ft(Backspace)630
2936 y Fu(Delete)i(the)d(c)m(haracter)i(to)f(the)g(left)g(of)f(the)h
(cursor.)150 3097 y Fj(C-d)336 b Fu(Delete)33 b(the)d(c)m(haracter)i
(underneath)d(the)i(cursor.)150 3258 y(Prin)m(ting)g(c)m(haracters)630
679 y(w)m(ords.)150 879 y Fk(8.2.3)63 b(Readline)40 b(Killing)i
(Commands)150 1026 y Fr(Killing)35 b Fu(text)28 b(means)e(to)h(delete)h
(the)f(text)g(from)g(the)f(line,)i(but)e(to)h(sa)m(v)m(e)h(it)g(a)m(w)m
-(a)m(y)g(for)e(later)i(use,)f(usually)150 1136 y(b)m(y)g
-Fr(y)m(anking)35 b Fu(\(re-inserting\))28 b(it)g(bac)m(k)f(in)m(to)h
-(the)f(line.)40 b(\(`Cut')27 b(and)g(`paste')h(are)f(more)g(recen)m(t)h
-(jargon)f(for)150 1245 y(`kill')32 b(and)d(`y)m(ank'.\))275
-1381 y(If)g(the)i(description)f(for)g(a)h(command)f(sa)m(ys)g(that)h
-(it)g(`kills')g(text,)h(then)e(y)m(ou)g(can)h(b)s(e)e(sure)h(that)h(y)m
-(ou)150 1490 y(can)g(get)g(the)g(text)g(bac)m(k)g(in)f(a)h(di\013eren)m
-(t)g(\(or)g(the)f(same\))h(place)h(later.)275 1626 y(When)23
+(a)m(y)g(for)e(later)i(use,)f(usually)150 1136 y(b)m(y)k
+Fr(y)m(anking)39 b Fu(\(re-inserting\))32 b(it)g(bac)m(k)f(in)m(to)h
+(the)f(line.)43 b(\(\\Cut")32 b(and)e(\\paste")i(are)g(more)f(recen)m
+(t)h(jargon)150 1245 y(for)e(\\kill")i(and)e(\\y)m(ank".\))275
+1381 y(If)d(the)h(description)g(for)f(a)i(command)e(sa)m(ys)h(that)h
+(it)f(\\kills")h(text,)h(then)e(y)m(ou)g(can)g(b)s(e)f(sure)g(that)i(y)
+m(ou)150 1490 y(can)i(get)g(the)g(text)g(bac)m(k)g(in)f(a)h(di\013eren)
+m(t)g(\(or)g(the)f(same\))h(place)h(later.)275 1626 y(When)23
b(y)m(ou)g(use)g(a)h(kill)g(command,)g(the)g(text)g(is)f(sa)m(v)m(ed)i
(in)e(a)g Fr(kill-ring)p Fu(.)39 b(An)m(y)24 b(n)m(um)m(b)s(er)e(of)h
(consecutiv)m(e)150 1735 y(kills)31 b(sa)m(v)m(e)i(all)f(of)f(the)g
(bac)m(kw)m(ard)f(direction.)57 b(F)-8 b(or)36 b(example,)h(to)f(kill)g
(text)g(bac)m(k)g(to)g(the)g(start)g(of)150 4657 y(the)31
b(line,)g(y)m(ou)f(migh)m(t)h(t)m(yp)s(e)g(`)p Ft(M--)f(C-k)p
-Fu('.)275 4792 y(The)d(general)i(w)m(a)m(y)h(to)e(pass)g(n)m(umeric)g
-(argumen)m(ts)h(to)g(a)f(command)g(is)g(to)h(t)m(yp)s(e)f(meta)i
-(digits)e(b)s(efore)150 4902 y(the)j(command.)42 b(If)30
-b(the)h(\014rst)f(`digit')i(t)m(yp)s(ed)f(is)g(a)g(min)m(us)f(sign)h
-(\(`)p Ft(-)p Fu('\),)h(then)f(the)g(sign)f(of)h(the)g(argumen)m(t)150
-5011 y(will)39 b(b)s(e)e(negativ)m(e.)66 b(Once)38 b(y)m(ou)h(ha)m(v)m
-(e)g(t)m(yp)s(ed)f(one)h(meta)g(digit)g(to)f(get)i(the)e(argumen)m(t)h
-(started,)i(y)m(ou)150 5121 y(can)29 b(t)m(yp)s(e)g(the)g(remainder)f
-(of)h(the)g(digits,)h(and)f(then)f(the)h(command.)40
-b(F)-8 b(or)30 b(example,)g(to)f(giv)m(e)i(the)e Fj(C-d)150
-5230 y Fu(command)37 b(an)g(argumen)m(t)h(of)g(10,)i(y)m(ou)e(could)f
-(t)m(yp)s(e)h(`)p Ft(M-1)29 b(0)h(C-d)p Fu(',)39 b(whic)m(h)e(will)h
-(delete)h(the)e(next)h(ten)150 5340 y(c)m(haracters)32
-b(on)e(the)h(input)e(line.)p eop end
+Fu('.)275 4792 y(The)40 b(general)i(w)m(a)m(y)g(to)g(pass)e(n)m(umeric)
+h(argumen)m(ts)h(to)f(a)h(command)e(is)i(to)f(t)m(yp)s(e)g(the)h(Meta)g
+(k)m(ey)150 4902 y(and)33 b(then)g(digits)i(\(\\meta)g(digits"\))g(b)s
+(efore)f(the)g(command.)50 b(If)33 b(the)h(\014rst)f(\\digit")i(t)m(yp)
+s(ed)f(is)g(a)g(min)m(us)150 5011 y(sign)f(\(`)p Ft(-)p
+Fu('\),)i(then)e(the)g(sign)g(of)g(the)g(argumen)m(t)h(will)f(b)s(e)f
+(negativ)m(e.)51 b(Once)33 b(y)m(ou)h(ha)m(v)m(e)g(t)m(yp)s(ed)f(one)g
+(meta)150 5121 y(digit)h(to)h(get)g(the)f(argumen)m(t)g(started,)h(y)m
+(ou)f(can)g(t)m(yp)s(e)g(the)g(remainder)f(of)h(the)g(digits,)h(and)e
+(then)h(the)150 5230 y(command.)40 b(F)-8 b(or)31 b(example,)g(to)g
+(giv)m(e)g(the)f Fj(C-d)f Fu(command)h(an)g(argumen)m(t)g(of)g(10,)h(y)
+m(ou)g(could)e(t)m(yp)s(e)i(`)p Ft(M-1)150 5340 y(0)f(C-d)p
+Fu(',)g(whic)m(h)g(will)h(delete)g(the)g(next)g(ten)f(c)m(haracters)i
+(on)e(the)h(input)e(line.)p eop end
%%Page: 133 139
TeXDict begin 133 138 bop 150 -116 a Fu(Chapter)30 b(8:)41
b(Command)29 b(Line)i(Editing)2062 b(133)150 299 y Fk(8.2.5)63
737 y(bindings)h(describ)s(ed)g(here.)51 b(T)m(yp)s(e)34
b(`)p Ft(stty)29 b(-a)p Fu(')34 b(at)h(a)f(Bash)g(prompt)g(to)g(see)
1110 847 y(y)m(our)h(curren)m(t)g(terminal)h(settings,)i(including)d
-(the)h(sp)s(ecial)f(con)m(trol)i(c)m(har-)1110 956 y(acters)31
-b(\(usually)g Ft(cchars)p Fu(\).)630 1121 y Ft(blink-matching-paren)
-1110 1230 y Fu(If)36 b(set)g(to)h(`)p Ft(on)p Fu(',)h(Readline)f
-(attempts)g(to)g(brie\015y)e(mo)m(v)m(e)j(the)f(cursor)e(to)i(an)1110
-1340 y(op)s(ening)k(paren)m(thesis)h(when)f(a)h(closing)h(paren)m
-(thesis)e(is)h(inserted.)74 b(The)1110 1450 y(default)31
-b(is)f(`)p Ft(off)p Fu('.)630 1614 y Ft(colored-completion-prefi)o(x)
-1110 1724 y Fu(If)f(set)h(to)g(`)p Ft(on)p Fu(',)g(when)e(listing)i
+(the)h(sp)s(ecial)f(con)m(trol)i(c)m(har-)1110 956 y(acters)g
+(\(usually)e Ft(cchars)p Fu(\).)56 b(This)35 b(binding)f(tak)m(es)j
+(place)g(on)e(eac)m(h)i(call)g(to)1110 1066 y Ft(readline\(\))p
+Fu(,)28 b(so)i(c)m(hanges)i(made)e(b)m(y)g(`)p Ft(stty)p
+Fu(')g(can)h(tak)m(e)h(e\013ect.)630 1217 y Ft(blink-matching-paren)
+1110 1326 y Fu(If)k(set)g(to)h(`)p Ft(on)p Fu(',)h(Readline)f(attempts)
+g(to)g(brie\015y)e(mo)m(v)m(e)j(the)f(cursor)e(to)i(an)1110
+1436 y(op)s(ening)k(paren)m(thesis)h(when)f(a)h(closing)h(paren)m
+(thesis)e(is)h(inserted.)74 b(The)1110 1545 y(default)31
+b(is)f(`)p Ft(off)p Fu('.)630 1696 y Ft(colored-completion-prefi)o(x)
+1110 1806 y Fu(If)f(set)h(to)g(`)p Ft(on)p Fu(',)g(when)e(listing)i
(completions,)h(Readline)f(displa)m(ys)g(the)f(com-)1110
-1833 y(mon)c(pre\014x)f(of)i(the)f(set)h(of)g(p)s(ossible)f
+1915 y(mon)c(pre\014x)f(of)i(the)f(set)h(of)g(p)s(ossible)f
(completions)h(using)f(a)h(di\013eren)m(t)g(color.)1110
-1943 y(The)f(color)h(de\014nitions)f(are)h(tak)m(en)g(from)f(the)g(v)-5
-b(alue)26 b(of)g(the)f Ft(LS_COLORS)e Fu(en-)1110 2052
+2025 y(The)f(color)h(de\014nitions)f(are)h(tak)m(en)g(from)f(the)g(v)-5
+b(alue)26 b(of)g(the)f Ft(LS_COLORS)e Fu(en-)1110 2134
y(vironmen)m(t)34 b(v)-5 b(ariable.)50 b(If)33 b(there)h(is)g(a)f
(color)i(de\014nition)e(in)g Ft(LS_COLORS)e Fu(for)1110
-2162 y(the)22 b(custom)g(su\016x)f(`)p Ft(readline-colored-complet)o
-(ion)o(-pre)o(fix)p Fu(',)c(Read-)1110 2271 y(line)24
+2244 y(the)22 b(custom)g(su\016x)f(`)p Ft(readline-colored-complet)o
+(ion)o(-pre)o(fix)p Fu(',)c(Read-)1110 2354 y(line)24
b(uses)e(this)i(color)g(for)f(the)h(common)f(pre\014x)f(instead)i(of)f
-(its)h(default.)38 b(The)1110 2381 y(default)31 b(is)f(`)p
-Ft(off)p Fu('.)630 2545 y Ft(colored-stats)1110 2655
+(its)h(default.)38 b(The)1110 2463 y(default)31 b(is)f(`)p
+Ft(off)p Fu('.)630 2614 y Ft(colored-stats)1110 2724
y Fu(If)c(set)h(to)g(`)p Ft(on)p Fu(',)h(Readline)f(displa)m(ys)g(p)s
(ossible)f(completions)h(using)f(di\013eren)m(t)1110
-2765 y(colors)40 b(to)g(indicate)g(their)f(\014le)h(t)m(yp)s(e.)67
+2833 y(colors)40 b(to)g(indicate)g(their)f(\014le)h(t)m(yp)s(e.)67
b(The)38 b(color)j(de\014nitions)d(are)i(tak)m(en)1110
-2874 y(from)24 b(the)h(v)-5 b(alue)25 b(of)g(the)g Ft(LS_COLORS)d
+2943 y(from)24 b(the)h(v)-5 b(alue)25 b(of)g(the)g Ft(LS_COLORS)d
Fu(en)m(vironmen)m(t)j(v)-5 b(ariable.)40 b(The)24 b(default)1110
-2984 y(is)30 b(`)p Ft(off)p Fu('.)630 3148 y Ft(comment-begin)1110
-3258 y Fu(The)72 b(string)g(to)h(insert)f(at)i(the)e(b)s(eginning)g(of)
-g(the)h(line)g(b)m(y)f(the)1110 3367 y Ft(insert-comment)26
+3052 y(is)30 b(`)p Ft(off)p Fu('.)630 3203 y Ft(comment-begin)1110
+3313 y Fu(The)72 b(string)g(to)h(insert)f(at)i(the)e(b)s(eginning)g(of)
+g(the)h(line)g(b)m(y)f(the)1110 3422 y Ft(insert-comment)26
b Fu(command.)41 b(The)30 b(default)g(v)-5 b(alue)31
-b(is)g Ft("#")p Fu(.)630 3532 y Ft(completion-display-width)1110
-3641 y Fu(The)41 b(n)m(um)m(b)s(er)f(of)i(screen)g(columns)f(used)g(to)
-h(displa)m(y)g(p)s(ossible)f(matc)m(hes)1110 3751 y(when)28
+b(is)g Ft("#")p Fu(.)630 3573 y Ft(completion-display-width)1110
+3682 y Fu(The)41 b(n)m(um)m(b)s(er)f(of)i(screen)g(columns)f(used)g(to)
+h(displa)m(y)g(p)s(ossible)f(matc)m(hes)1110 3792 y(when)28
b(p)s(erforming)g(completion.)41 b(The)29 b(v)-5 b(alue)29
-b(is)g(ignored)g(if)g(it)h(is)f(less)g(than)1110 3861
+b(is)g(ignored)g(if)g(it)h(is)f(less)g(than)1110 3902
y(0)37 b(or)f(greater)i(than)e(the)g(terminal)h(screen)g(width.)58
-b(A)36 b(v)-5 b(alue)37 b(of)g(0)g(causes)1110 3970 y(matc)m(hes)32
+b(A)36 b(v)-5 b(alue)37 b(of)g(0)g(causes)1110 4011 y(matc)m(hes)32
b(to)f(b)s(e)e(displa)m(y)m(ed)i(one)g(p)s(er)e(line.)41
-b(The)30 b(default)h(v)-5 b(alue)31 b(is)f(-1.)630 4134
-y Ft(completion-ignore-case)1110 4244 y Fu(If)d(set)h(to)g(`)p
+b(The)30 b(default)h(v)-5 b(alue)31 b(is)f(-1.)630 4162
+y Ft(completion-ignore-case)1110 4271 y Fu(If)d(set)h(to)g(`)p
Ft(on)p Fu(',)g(Readline)g(p)s(erforms)e(\014lename)h(matc)m(hing)i
-(and)e(completion)1110 4354 y(in)j(a)h(case-insensitiv)m(e)i(fashion.)
+(and)e(completion)1110 4381 y(in)j(a)h(case-insensitiv)m(e)i(fashion.)
40 b(The)30 b(default)h(v)-5 b(alue)30 b(is)h(`)p Ft(off)p
-Fu('.)630 4518 y Ft(completion-map-case)1110 4628 y Fu(If)22
+Fu('.)630 4532 y Ft(completion-map-case)1110 4641 y Fu(If)22
b(set)g(to)h(`)p Ft(on)p Fu(',)h(and)e Fr(completion-ignore-case)31
-b Fu(is)22 b(enabled,)i(Readline)f(treats)1110 4737 y(h)m(yphens)29
+b Fu(is)22 b(enabled,)i(Readline)f(treats)1110 4751 y(h)m(yphens)29
b(\(`)p Ft(-)p Fu('\))j(and)e(underscores)g(\(`)p Ft(_)p
Fu('\))i(as)f(equiv)-5 b(alen)m(t)32 b(when)e(p)s(erforming)1110
-4847 y(case-insensitiv)m(e)47 b(\014lename)e(matc)m(hing)g(and)f
-(completion.)85 b(The)44 b(default)1110 4956 y(v)-5 b(alue)31
+4861 y(case-insensitiv)m(e)47 b(\014lename)e(matc)m(hing)g(and)f
+(completion.)85 b(The)44 b(default)1110 4970 y(v)-5 b(alue)31
b(is)f(`)p Ft(off)p Fu('.)630 5121 y Ft(completion-prefix-displa)o
(y-le)o(ngth)1110 5230 y Fu(The)24 b(maxim)m(um)g(length)h(in)f(c)m
(haracters)i(of)f(the)f(common)h(pre\014x)e(of)i(a)g(list)g(of)1110
b(this)h(line)g(is)g(a)g(mo)s(di\014ed)e(history)i(line,)g(then)f
(restore)i(the)f(history)f(line)h(to)630 3425 y(its)g(original)g
(state.)150 3611 y Ft(previous-history)26 b(\(C-p\))630
-3720 y Fu(Mo)m(v)m(e)h(`bac)m(k')f(through)f(the)g(history)g(list,)i
-(fetc)m(hing)f(the)f(previous)f(command.)39 b(This)24
-b(ma)m(y)630 3830 y(also)31 b(b)s(e)f(b)s(ound)e(to)j(the)g(up)e(arro)m
-(w)i(k)m(ey)g(on)f(some)h(k)m(eyb)s(oards.)150 4016 y
-Ft(next-history)c(\(C-n\))630 4125 y Fu(Mo)m(v)m(e)k(`forw)m(ard')d
-(through)g(the)h(history)f(list,)i(fetc)m(hing)f(the)g(next)g(command.)
-40 b(This)27 b(ma)m(y)630 4235 y(also)k(b)s(e)f(b)s(ound)e(to)j(the)g
+3720 y Fu(Mo)m(v)m(e)41 b(\\bac)m(k")f(through)e(the)h(history)g(list,)
+i(fetc)m(hing)f(the)f(previous)f(command.)66 b(This)630
+3830 y(ma)m(y)31 b(also)g(b)s(e)f(b)s(ound)e(to)j(the)g(up)e(arro)m(w)i
+(k)m(ey)g(on)f(some)h(k)m(eyb)s(oards.)150 4016 y Ft(next-history)c
+(\(C-n\))630 4125 y Fu(Mo)m(v)m(e)g(\\forw)m(ard")d(through)g(the)h
+(history)f(list,)j(fetc)m(hing)f(the)e(next)h(command.)39
+b(This)23 b(ma)m(y)630 4235 y(also)31 b(b)s(e)f(b)s(ound)e(to)j(the)g
(do)m(wn)f(arro)m(w)g(k)m(ey)i(on)e(some)h(k)m(eyb)s(oards.)150
4421 y Ft(beginning-of-history)25 b(\(M-<\))630 4530
y Fu(Mo)m(v)m(e)32 b(to)g(the)e(\014rst)g(line)g(in)h(the)f(history)-8
y Fu(Mo)m(v)m(e)32 b(to)g(the)e(end)g(of)g(the)h(input)e(history)-8
b(,)31 b(i.e.,)h(the)f(line)f(curren)m(tly)h(b)s(eing)f(en)m(tered.)150
5011 y Ft(reverse-search-history)24 b(\(C-r\))630 5121
-y Fu(Searc)m(h)31 b(bac)m(kw)m(ard)h(starting)g(at)g(the)f(curren)m(t)g
-(line)g(and)g(mo)m(ving)h(`up')e(through)h(the)g(his-)630
-5230 y(tory)26 b(as)h(necessary)-8 b(.)40 b(This)25 b(is)i(an)f
-(incremen)m(tal)h(searc)m(h.)40 b(This)25 b(command)h(sets)h(the)f
-(region)630 5340 y(to)31 b(the)g(matc)m(hed)g(text)g(and)f(activ)-5
+y Fu(Searc)m(h)43 b(bac)m(kw)m(ard)h(starting)g(at)g(the)f(curren)m(t)g
+(line)h(and)e(mo)m(ving)i(\\up")f(through)g(the)630 5230
+y(history)38 b(as)g(necessary)-8 b(.)65 b(This)38 b(is)g(an)g(incremen)
+m(tal)h(searc)m(h.)65 b(This)37 b(command)h(sets)h(the)630
+5340 y(region)31 b(to)g(the)g(matc)m(hed)g(text)g(and)f(activ)-5
b(ates)33 b(the)d(region.)p eop end
%%Page: 149 155
TeXDict begin 149 154 bop 150 -116 a Fu(Chapter)30 b(8:)41
b(Command)29 b(Line)i(Editing)2062 b(149)150 299 y Ft
-(forward-search-history)24 b(\(C-s\))630 408 y Fu(Searc)m(h)44
-b(forw)m(ard)f(starting)h(at)h(the)e(curren)m(t)h(line)g(and)f(mo)m
-(ving)h(`do)m(wn')g(through)f(the)630 518 y(history)38
-b(as)g(necessary)-8 b(.)65 b(This)38 b(is)g(an)g(incremen)m(tal)h
-(searc)m(h.)65 b(This)37 b(command)h(sets)h(the)630 628
-y(region)31 b(to)g(the)g(matc)m(hed)g(text)g(and)f(activ)-5
-b(ates)33 b(the)d(region.)150 792 y Ft(non-incremental-reverse-)o(sear)
-o(ch-h)o(ist)o(ory)24 b(\(M-p\))630 902 y Fu(Searc)m(h)31
-b(bac)m(kw)m(ard)h(starting)g(at)g(the)f(curren)m(t)g(line)g(and)g(mo)m
-(ving)h(`up')e(through)h(the)g(his-)630 1011 y(tory)36
-b(as)g(necessary)h(using)e(a)i(non-incremen)m(tal)g(searc)m(h)f(for)g
-(a)g(string)g(supplied)f(b)m(y)h(the)630 1121 y(user.)k(The)30
-b(searc)m(h)h(string)f(ma)m(y)h(matc)m(h)g(an)m(ywhere)g(in)f(a)h
-(history)f(line.)150 1285 y Ft(non-incremental-forward-)o(sear)o(ch-h)o
-(ist)o(ory)24 b(\(M-n\))630 1395 y Fu(Searc)m(h)44 b(forw)m(ard)f
-(starting)h(at)h(the)e(curren)m(t)h(line)g(and)f(mo)m(ving)h(`do)m(wn')
-g(through)f(the)630 1504 y(history)27 b(as)f(necessary)i(using)e(a)h
-(non-incremen)m(tal)g(searc)m(h)h(for)e(a)h(string)g(supplied)e(b)m(y)i
-(the)630 1614 y(user.)40 b(The)30 b(searc)m(h)h(string)f(ma)m(y)h(matc)
-m(h)g(an)m(ywhere)g(in)f(a)h(history)f(line.)150 1778
-y Ft(history-search-backward)24 b(\(\))630 1888 y Fu(Searc)m(h)35
-b(bac)m(kw)m(ard)g(through)f(the)h(history)g(for)g(the)f(string)h(of)g
-(c)m(haracters)h(b)s(et)m(w)m(een)g(the)630 1998 y(start)g(of)h(the)f
-(curren)m(t)f(line)i(and)e(the)h(p)s(oin)m(t.)58 b(The)35
-b(searc)m(h)i(string)e(m)m(ust)h(matc)m(h)h(at)g(the)630
-2107 y(b)s(eginning)44 b(of)g(a)h(history)g(line.)83
+(forward-search-history)24 b(\(C-s\))630 408 y Fu(Searc)m(h)40
+b(forw)m(ard)g(starting)g(at)h(the)f(curren)m(t)g(line)g(and)f(mo)m
+(ving)i(\\do)m(wn")f(through)g(the)630 518 y(history)e(as)g(necessary)
+-8 b(.)65 b(This)38 b(is)g(an)g(incremen)m(tal)h(searc)m(h.)65
+b(This)37 b(command)h(sets)h(the)630 628 y(region)31
+b(to)g(the)g(matc)m(hed)g(text)g(and)f(activ)-5 b(ates)33
+b(the)d(region.)150 789 y Ft(non-incremental-reverse-)o(sear)o(ch-h)o
+(ist)o(ory)24 b(\(M-p\))630 898 y Fu(Searc)m(h)31 b(bac)m(kw)m(ard)f
+(starting)i(at)f(the)f(curren)m(t)g(line)h(and)f(mo)m(ving)h(\\up")630
+1034 y(through)39 b(the)g(history)g(as)g(necessary)h(using)f(a)g
+(non-incremen)m(tal)i(searc)m(h)e(for)g(a)h(string)630
+1143 y(supplied)29 b(b)m(y)h(the)g(user.)40 b(The)30
+b(searc)m(h)h(string)f(ma)m(y)h(matc)m(h)g(an)m(ywhere)f(in)g(a)g
+(history)g(line.)150 1305 y Ft(non-incremental-forward-)o(sear)o(ch-h)o
+(ist)o(ory)24 b(\(M-n\))630 1414 y Fu(Searc)m(h)40 b(forw)m(ard)g
+(starting)g(at)h(the)f(curren)m(t)g(line)g(and)f(mo)m(ving)i(\\do)m
+(wn")f(through)g(the)630 1524 y(history)27 b(as)f(necessary)i(using)e
+(a)h(non-incremen)m(tal)g(searc)m(h)h(for)e(a)h(string)g(supplied)e(b)m
+(y)i(the)630 1633 y(user.)40 b(The)30 b(searc)m(h)h(string)f(ma)m(y)h
+(matc)m(h)g(an)m(ywhere)g(in)f(a)h(history)f(line.)150
+1794 y Ft(history-search-backward)24 b(\(\))630 1904
+y Fu(Searc)m(h)35 b(bac)m(kw)m(ard)g(through)f(the)h(history)g(for)g
+(the)f(string)h(of)g(c)m(haracters)h(b)s(et)m(w)m(een)g(the)630
+2014 y(start)g(of)h(the)f(curren)m(t)f(line)i(and)e(the)h(p)s(oin)m(t.)
+58 b(The)35 b(searc)m(h)i(string)e(m)m(ust)h(matc)m(h)h(at)g(the)630
+2123 y(b)s(eginning)44 b(of)g(a)h(history)g(line.)83
b(This)44 b(is)g(a)h(non-incremen)m(tal)h(searc)m(h.)84
-b(By)44 b(default,)630 2217 y(this)32 b(command)h(is)f(un)m(b)s(ound,)f
+b(By)44 b(default,)630 2233 y(this)32 b(command)h(is)f(un)m(b)s(ound,)f
(but)h(ma)m(y)h(b)s(e)f(b)s(ound)e(to)j(the)g(P)m(age)h(Do)m(wn)f(k)m
-(ey)g(on)g(some)630 2326 y(k)m(eyb)s(oards.)150 2491
-y Ft(history-search-forward)24 b(\(\))630 2600 y Fu(Searc)m(h)f(forw)m
+(ey)g(on)g(some)630 2342 y(k)m(eyb)s(oards.)150 2504
+y Ft(history-search-forward)24 b(\(\))630 2613 y Fu(Searc)m(h)f(forw)m
(ard)e(through)h(the)h(history)f(for)g(the)g(string)h(of)f(c)m
-(haracters)i(b)s(et)m(w)m(een)f(the)f(start)630 2710
+(haracters)i(b)s(et)m(w)m(een)f(the)f(start)630 2723
y(of)g(the)h(curren)m(t)f(line)g(and)g(the)g(p)s(oin)m(t.)38
b(The)22 b(searc)m(h)g(string)g(m)m(ust)g(matc)m(h)h(at)g(the)g(b)s
-(eginning)630 2819 y(of)33 b(a)g(history)f(line.)48 b(This)32
+(eginning)630 2832 y(of)33 b(a)g(history)f(line.)48 b(This)32
b(is)h(a)g(non-incremen)m(tal)h(searc)m(h.)48 b(By)33
-b(default,)h(this)e(command)630 2929 y(is)e(un)m(b)s(ound,)e(but)i(ma)m
+b(default,)h(this)e(command)630 2942 y(is)e(un)m(b)s(ound,)e(but)i(ma)m
(y)h(b)s(e)f(b)s(ound)e(to)j(the)g(P)m(age)h(Up)e(k)m(ey)h(on)f(some)h
-(k)m(eyb)s(oards.)150 3093 y Ft(history-substring-search)o(-bac)o(kwar)
-o(d)24 b(\(\))630 3203 y Fu(Searc)m(h)35 b(bac)m(kw)m(ard)g(through)f
+(k)m(eyb)s(oards.)150 3103 y Ft(history-substring-search)o(-bac)o(kwar)
+o(d)24 b(\(\))630 3213 y Fu(Searc)m(h)35 b(bac)m(kw)m(ard)g(through)f
(the)h(history)g(for)g(the)f(string)h(of)g(c)m(haracters)h(b)s(et)m(w)m
-(een)g(the)630 3313 y(start)29 b(of)g(the)g(curren)m(t)g(line)g(and)f
+(een)g(the)630 3322 y(start)29 b(of)g(the)g(curren)m(t)g(line)g(and)f
(the)h(p)s(oin)m(t.)40 b(The)29 b(searc)m(h)g(string)g(ma)m(y)g(matc)m
-(h)h(an)m(ywhere)630 3422 y(in)i(a)h(history)g(line.)47
+(h)h(an)m(ywhere)630 3432 y(in)i(a)h(history)g(line.)47
b(This)32 b(is)g(a)h(non-incremen)m(tal)h(searc)m(h.)47
-b(By)33 b(default,)h(this)e(command)630 3532 y(is)e(un)m(b)s(ound.)150
-3696 y Ft(history-substring-search)o(-for)o(ward)24 b(\(\))630
-3806 y Fu(Searc)m(h)42 b(forw)m(ard)f(through)f(the)i(history)f(for)g
+b(By)33 b(default,)h(this)e(command)630 3541 y(is)e(un)m(b)s(ound.)150
+3703 y Ft(history-substring-search)o(-for)o(ward)24 b(\(\))630
+3812 y Fu(Searc)m(h)42 b(forw)m(ard)f(through)f(the)i(history)f(for)g
(the)h(string)f(of)h(c)m(haracters)h(b)s(et)m(w)m(een)f(the)630
-3915 y(start)29 b(of)g(the)g(curren)m(t)g(line)g(and)f(the)h(p)s(oin)m
+3922 y(start)29 b(of)g(the)g(curren)m(t)g(line)g(and)f(the)h(p)s(oin)m
(t.)40 b(The)29 b(searc)m(h)g(string)g(ma)m(y)g(matc)m(h)h(an)m(ywhere)
-630 4025 y(in)i(a)h(history)g(line.)47 b(This)32 b(is)g(a)h
+630 4031 y(in)i(a)h(history)g(line.)47 b(This)32 b(is)g(a)h
(non-incremen)m(tal)h(searc)m(h.)47 b(By)33 b(default,)h(this)e
-(command)630 4134 y(is)e(un)m(b)s(ound.)150 4299 y Ft(yank-nth-arg)d
-(\(M-C-y\))630 4408 y Fu(Insert)e(the)i(\014rst)e(argumen)m(t)h(to)h
+(command)630 4141 y(is)e(un)m(b)s(ound.)150 4302 y Ft(yank-nth-arg)d
+(\(M-C-y\))630 4412 y Fu(Insert)e(the)i(\014rst)e(argumen)m(t)h(to)h
(the)f(previous)g(command)f(\(usually)h(the)g(second)g(w)m(ord)g(on)630
-4518 y(the)k(previous)g(line\))g(at)h(p)s(oin)m(t.)40
+4521 y(the)k(previous)g(line\))g(at)h(p)s(oin)m(t.)40
b(With)31 b(an)f(argumen)m(t)g Fr(n)p Fu(,)g(insert)f(the)i
-Fr(n)p Fu(th)e(w)m(ord)g(from)h(the)630 4628 y(previous)c(command)h
+Fr(n)p Fu(th)e(w)m(ord)g(from)h(the)630 4631 y(previous)c(command)h
(\(the)h(w)m(ords)e(in)h(the)g(previous)f(command)h(b)s(egin)f(with)h
-(w)m(ord)g(0\).)40 b(A)630 4737 y(negativ)m(e)28 b(argumen)m(t)e
+(w)m(ord)g(0\).)40 b(A)630 4740 y(negativ)m(e)28 b(argumen)m(t)e
(inserts)f(the)h Fr(n)p Fu(th)f(w)m(ord)g(from)g(the)h(end)f(of)h(the)g
-(previous)f(command.)630 4847 y(Once)32 b(the)f(argumen)m(t)h
+(previous)f(command.)630 4850 y(Once)32 b(the)f(argumen)m(t)h
Fr(n)f Fu(is)h(computed,)g(this)f(uses)h(the)f(history)h(expansion)f
-(facilities)j(to)630 4956 y(extract)e(the)e Fr(n)p Fu(th)g(w)m(ord,)g
+(facilities)j(to)630 4960 y(extract)e(the)e Fr(n)p Fu(th)g(w)m(ord,)g
(as)h(if)f(the)h(`)p Ft(!)p Fj(n)p Fu(')f(history)g(expansion)h(had)e
(b)s(een)h(sp)s(eci\014ed.)150 5121 y Ft(yank-last-arg)d(\(M-.)i(or)h
(M-_\))630 5230 y Fu(Insert)k(last)i(argumen)m(t)g(to)g(the)f(previous)
(output)f(is)h(formatted)g(in)f(suc)m(h)h(a)g(w)m(a)m(y)g(that)630
628 y(it)f(can)g(b)s(e)e(made)i(part)f(of)g(an)h Fr(inputrc)k
Fu(\014le.)41 b(This)29 b(command)h(is)h(un)m(b)s(ound)c(b)m(y)k
-(default.)150 798 y Ft(dump-variables)26 b(\(\))630 908
+(default.)150 774 y Ft(dump-variables)26 b(\(\))630 883
y Fu(Prin)m(t)21 b(all)h(of)g(the)f(settable)i(v)-5 b(ariables)22
b(and)f(their)g(v)-5 b(alues)22 b(to)g(the)f(Readline)h(output)f
-(stream.)630 1017 y(If)31 b(a)h(n)m(umeric)g(argumen)m(t)g(is)g
+(stream.)630 993 y(If)31 b(a)h(n)m(umeric)g(argumen)m(t)g(is)g
(supplied,)f(the)h(output)f(is)h(formatted)g(in)f(suc)m(h)h(a)g(w)m(a)m
-(y)g(that)630 1127 y(it)f(can)g(b)s(e)e(made)i(part)f(of)g(an)h
+(y)g(that)630 1103 y(it)f(can)g(b)s(e)e(made)i(part)f(of)g(an)h
Fr(inputrc)k Fu(\014le.)41 b(This)29 b(command)h(is)h(un)m(b)s(ound)c
-(b)m(y)k(default.)150 1297 y Ft(dump-macros)c(\(\))630
-1407 y Fu(Prin)m(t)34 b(all)g(of)g(the)g(Readline)g(k)m(ey)h(sequences)
+(b)m(y)k(default.)150 1249 y Ft(dump-macros)c(\(\))630
+1358 y Fu(Prin)m(t)34 b(all)g(of)g(the)g(Readline)g(k)m(ey)h(sequences)
f(b)s(ound)e(to)i(macros)g(and)f(the)h(strings)g(they)630
-1517 y(output)e(to)h(the)f(Readline)h(output)f(stream.)46
+1468 y(output)e(to)h(the)f(Readline)h(output)f(stream.)46
b(If)32 b(a)g(n)m(umeric)g(argumen)m(t)h(is)f(supplied,)g(the)630
-1626 y(output)g(is)f(formatted)i(in)f(suc)m(h)f(a)h(w)m(a)m(y)h(that)g
+1577 y(output)g(is)f(formatted)i(in)f(suc)m(h)f(a)h(w)m(a)m(y)h(that)g
(it)f(can)g(b)s(e)g(made)g(part)f(of)h(an)g Fr(inputrc)37
-b Fu(\014le.)630 1736 y(This)30 b(command)g(is)g(un)m(b)s(ound)e(b)m(y)
-i(default.)150 1906 y Ft(execute-named-command)25 b(\(M-x\))630
-2016 y Fu(Read)g(a)h(bindable)f(Readline)g(command)g(name)h(from)e(the)
-i(input)e(and)h(execute)h(the)g(func-)630 2125 y(tion)g(to)h(whic)m(h)f
+b Fu(\014le.)630 1687 y(This)30 b(command)g(is)g(un)m(b)s(ound)e(b)m(y)
+i(default.)150 1833 y Ft(execute-named-command)25 b(\(M-x\))630
+1943 y Fu(Read)g(a)h(bindable)f(Readline)g(command)g(name)h(from)e(the)
+i(input)e(and)h(execute)h(the)g(func-)630 2052 y(tion)g(to)h(whic)m(h)f
(it's)g(b)s(ound,)f(as)h(if)g(the)g(k)m(ey)h(sequence)f(to)h(whic)m(h)e
-(it)i(w)m(as)f(b)s(ound)e(app)s(eared)630 2235 y(in)37
+(it)i(w)m(as)f(b)s(ound)e(app)s(eared)630 2162 y(in)37
b(the)h(input.)61 b(If)37 b(this)h(function)f(is)g(supplied)g(with)g(a)
-h(n)m(umeric)f(argumen)m(t,)j(it)e(passes)630 2345 y(that)31
+h(n)m(umeric)f(argumen)m(t,)j(it)e(passes)630 2271 y(that)31
b(argumen)m(t)g(to)g(the)f(function)h(it)f(executes.)150
-2515 y Ft(spell-correct-word)25 b(\(C-x)30 b(s\))630
-2625 y Fu(P)m(erform)36 b(sp)s(elling)h(correction)h(on)e(the)h(curren)
+2418 y Ft(spell-correct-word)25 b(\(C-x)30 b(s\))630
+2527 y Fu(P)m(erform)36 b(sp)s(elling)h(correction)h(on)e(the)h(curren)
m(t)f(w)m(ord,)i(treating)f(it)g(as)g(a)g(directory)g(or)630
-2734 y(\014lename,)g(in)e(the)h(same)f(w)m(a)m(y)i(as)e(the)h
+2637 y(\014lename,)g(in)e(the)h(same)f(w)m(a)m(y)i(as)e(the)h
Ft(cdspell)d Fu(shell)j(option.)56 b(W)-8 b(ord)36 b(b)s(oundaries)e
-(are)630 2844 y(the)d(same)f(as)h(those)g(used)e(b)m(y)i
-Ft(shell-forward-word)p Fu(.)150 3014 y Ft(glob-complete-word)25
-b(\(M-g\))630 3124 y Fu(T)-8 b(reat)44 b(the)g(w)m(ord)e(b)s(efore)h(p)
+(are)630 2746 y(the)d(same)f(as)h(those)g(used)e(b)m(y)i
+Ft(shell-forward-word)p Fu(.)150 2892 y Ft(glob-complete-word)25
+b(\(M-g\))630 3002 y Fu(T)-8 b(reat)44 b(the)g(w)m(ord)e(b)s(efore)h(p)
s(oin)m(t)h(as)f(a)h(pattern)f(for)g(pathname)g(expansion,)k(with)c(an)
-630 3233 y(asterisk)25 b(implicitly)g(app)s(ended,)f(then)g(use)g(the)h
+630 3112 y(asterisk)25 b(implicitly)g(app)s(ended,)f(then)g(use)g(the)h
(pattern)f(to)h(generate)h(a)f(list)f(of)h(matc)m(hing)630
-3343 y(\014le)30 b(names)h(for)f(p)s(ossible)g(completions.)150
-3513 y Ft(glob-expand-word)c(\(C-x)j(*\))630 3623 y Fu(T)-8
+3221 y(\014le)30 b(names)h(for)f(p)s(ossible)g(completions.)150
+3367 y Ft(glob-expand-word)c(\(C-x)j(*\))630 3477 y Fu(T)-8
b(reat)36 b(the)g(w)m(ord)f(b)s(efore)g(p)s(oin)m(t)g(as)h(a)g(pattern)
-f(for)g(pathname)g(expansion,)i(and)e(insert)630 3733
+f(for)g(pathname)g(expansion,)i(and)e(insert)630 3587
y(the)g(list)h(of)g(matc)m(hing)g(\014le)f(names,)i(replacing)f(the)g
(w)m(ord.)55 b(If)34 b(a)i(n)m(umeric)f(argumen)m(t)h(is)630
-3842 y(supplied,)29 b(app)s(end)g(a)i(`)p Ft(*)p Fu(')f(b)s(efore)g
-(pathname)h(expansion.)150 4013 y Ft(glob-list-expansions)25
-b(\(C-x)k(g\))630 4122 y Fu(Displa)m(y)24 b(the)g(list)g(of)f
+3696 y(supplied,)29 b(app)s(end)g(a)i(`)p Ft(*)p Fu(')f(b)s(efore)g
+(pathname)h(expansion.)150 3842 y Ft(glob-list-expansions)25
+b(\(C-x)k(g\))630 3952 y Fu(Displa)m(y)24 b(the)g(list)g(of)f
(expansions)h(that)f(w)m(ould)h(ha)m(v)m(e)g(b)s(een)f(generated)h(b)m
-(y)f Ft(glob-expand-)630 4232 y(word)p Fu(,)34 b(and)g(redispla)m(y)g
+(y)f Ft(glob-expand-)630 4061 y(word)p Fu(,)34 b(and)g(redispla)m(y)g
(the)g(line.)53 b(If)33 b(a)i(n)m(umeric)f(argumen)m(t)h(is)f
-(supplied,)g(app)s(end)e(a)j(`)p Ft(*)p Fu(')630 4341
-y(b)s(efore)30 b(pathname)g(expansion.)150 4512 y Ft(shell-expand-line)
-c(\(M-C-e\))630 4622 y Fu(Expand)j(the)h(line)g(b)m(y)g(p)s(erforming)f
-(shell)h(w)m(ord)g(expansions.)40 b(This)29 b(p)s(erforms)f(alias)k
-(and)630 4731 y(history)f(expansion,)g($')p Fr(string)8
-b Fu(')32 b(and)e($)p Ft(")p Fr(string)8 b Ft(")31 b
-Fu(quoting,)h(tilde)f(expansion,)g(parameter)630 4841
-y(and)41 b(v)-5 b(ariable)43 b(expansion,)h(arithmetic)f(expansion,)i
-(command)c(and)g(pro)s(cess)g(substi-)630 4950 y(tution,)j(w)m(ord)d
-(splitting,)k(and)c(quote)g(remo)m(v)-5 b(al.)75 b(An)41
-b(explicit)h(argumen)m(t)g(suppresses)630 5060 y(command)30
-b(and)g(pro)s(cess)g(substitution.)150 5230 y Ft(history-expand-line)25
-b(\(M-^\))630 5340 y Fu(P)m(erform)30 b(history)h(expansion)f(on)g(the)
-h(curren)m(t)f(line.)p eop end
+(supplied,)g(app)s(end)e(a)j(`)p Ft(*)p Fu(')630 4171
+y(b)s(efore)30 b(pathname)g(expansion.)150 4317 y Ft(shell-expand-line)
+c(\(M-C-e\))630 4427 y Fu(Expand)39 b(the)h(line)g(b)m(y)g(p)s
+(erforming)f(shell)h(w)m(ord)g(expansions,)i(treating)g(the)e(line)g
+(as)h(a)630 4536 y(single)k(shell)f(w)m(ord.)80 b(This)43
+b(p)s(erforms)g(alias)i(and)e(history)h(expansion,)j($')p
+Fr(string)8 b Fu(')45 b(and)630 4646 y($)p Ft(")p Fr(string)8
+b Ft(")39 b Fu(quoting,)k(tilde)d(expansion,)i(parameter)e(and)e(v)-5
+b(ariable)41 b(expansion,)h(arith-)630 4756 y(metic)29
+b(expansion,)g(command)e(and)h(pro)s(cess)f(substitution,)i(w)m(ord)e
+(splitting,)j(and)d(quote)630 4865 y(remo)m(v)-5 b(al.)55
+b(An)35 b(explicit)h(argumen)m(t)f(suppresses)e(command)i(and)f(pro)s
+(cess)g(substitution)630 4975 y(and)c(treats)h(the)g(line)f(as)h(if)f
+(it)h(w)m(ere)g(quoted)g(as)f(part)g(of)h(a)g(here-do)s(cumen)m(t.)150
+5121 y Ft(shell-expand-and-requote)o(-lin)o(e)24 b(\(\))630
+5230 y Fu(Expand)39 b(the)h(line)g(b)m(y)f(p)s(erforming)g(shell)h(w)m
+(ord)f(expansions,)j(splitting)f(the)f(line)g(in)m(to)630
+5340 y(shell)c(w)m(ords)f(in)g(the)h(same)g(w)m(a)m(y)g(as)g(for)f
+(programmable)h(completion.)58 b(This)35 b(p)s(erforms)p
+eop end
%%Page: 158 164
TeXDict begin 158 163 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(158)150 299 y Ft(magic-space)27
-b(\(\))630 408 y Fu(P)m(erform)c(history)g(expansion)g(on)g(the)g
-(curren)m(t)g(line)g(and)g(insert)g(a)g(space)h(\(see)g(Section)g(9.3)
-630 518 y([History)31 b(In)m(teraction],)i(page)e(171\).)150
-682 y Ft(alias-expand-line)26 b(\(\))630 792 y Fu(P)m(erform)e(alias)i
-(expansion)e(on)h(the)g(curren)m(t)f(line)h(\(see)g(Section)h(6.6)f
-([Aliases],)j(page)d(109\).)150 956 y Ft(history-and-alias-expand)o
-(-lin)o(e)f(\(\))630 1065 y Fu(P)m(erform)30 b(history)h(and)e(alias)j
-(expansion)e(on)g(the)h(curren)m(t)f(line.)150 1230 y
-Ft(insert-last-argument)25 b(\(M-.)k(or)h(M-_\))630 1339
-y Fu(A)g(synon)m(ym)g(for)g Ft(yank-last-arg)p Fu(.)150
-1503 y Ft(edit-and-execute-command)24 b(\(C-x)29 b(C-e\))630
-1613 y Fu(In)m(v)m(ok)m(e)34 b(an)f(editor)g(on)g(the)g(curren)m(t)f
-(command)h(line,)h(and)e(execute)i(the)f(result)g(as)g(shell)630
-1722 y(commands.)81 b(Bash)44 b(attempts)h(to)g(in)m(v)m(ok)m(e)h
-Ft($VISUAL)p Fu(,)f Ft($EDITOR)p Fu(,)h(and)d Ft(emacs)g
-Fu(as)h(the)630 1832 y(editor,)31 b(in)f(that)h(order.)150
-1996 y Ft(display-shell-version)25 b(\(C-x)k(C-v\))630
-2106 y Fu(Displa)m(y)j(v)m(ersion)e(information)h(ab)s(out)f(the)h
-(curren)m(t)f(instance)h(of)f(Bash.)150 2354 y Fs(8.5)68
-b(Readline)47 b(vi)e(Mo)t(de)150 2513 y Fu(While)32 b(the)g(Readline)g
+b(Command)29 b(Line)i(Editing)2062 b(158)630 299 y(alias)37
+b(and)f(history)g(expansion,)i($')p Fr(string)8 b Fu(')37
+b(and)f($)p Ft(")p Fr(string)8 b Ft(")36 b Fu(quoting,)i(tilde)f
+(expansion,)630 408 y(parameter)25 b(and)f(v)-5 b(ariable)25
+b(expansion,)h(arithmetic)g(expansion,)f(command)g(and)e(pro)s(cess)630
+518 y(substitution,)32 b(w)m(ord)f(splitting,)i(and)e(quote)h(remo)m(v)
+-5 b(al)33 b(on)e(eac)m(h)i(w)m(ord,)e(then)h(quotes)g(the)630
+628 y(resulting)25 b(w)m(ords)g(if)g(necessary)h(to)g(prev)m(en)m(t)f
+(further)f(expansion.)39 b(An)25 b(explicit)h(argumen)m(t)630
+737 y(suppresses)i(command)i(and)f(pro)s(cess)g(substitution)h(and)f
+(quotes)h(eac)m(h)i(resultan)m(t)e(w)m(ord.)630 847 y(As)43
+b(usual,)k(double-quoting)d(a)g(w)m(ord)f(will)h(suppress)d(w)m(ord)i
+(splitting.)81 b(This)43 b(can)h(b)s(e)630 956 y(useful)27
+b(when)g(com)m(bined)g(with)h(suppressing)e(command)h(substitution,)h
+(for)g(instance,)h(so)630 1066 y(the)i(w)m(ords)e(in)h(the)h(command)f
+(substitution)g(aren't)h(quoted)g(individually)-8 b(.)150
+1235 y Ft(history-expand-line)25 b(\(M-^\))630 1345 y
+Fu(P)m(erform)30 b(history)h(expansion)f(on)g(the)h(curren)m(t)f(line.)
+150 1514 y Ft(magic-space)d(\(\))630 1623 y Fu(P)m(erform)c(history)g
+(expansion)g(on)g(the)g(curren)m(t)g(line)g(and)g(insert)g(a)g(space)h
+(\(see)g(Section)g(9.3)630 1733 y([History)31 b(In)m(teraction],)i
+(page)e(171\).)150 1902 y Ft(alias-expand-line)26 b(\(\))630
+2012 y Fu(P)m(erform)e(alias)i(expansion)e(on)h(the)g(curren)m(t)f
+(line)h(\(see)g(Section)h(6.6)f([Aliases],)j(page)d(109\).)150
+2181 y Ft(history-and-alias-expand)o(-lin)o(e)f(\(\))630
+2290 y Fu(P)m(erform)30 b(history)h(and)e(alias)j(expansion)e(on)g(the)
+h(curren)m(t)f(line.)150 2459 y Ft(insert-last-argument)25
+b(\(M-.)k(or)h(M-_\))630 2569 y Fu(A)g(synon)m(ym)g(for)g
+Ft(yank-last-arg)p Fu(.)150 2738 y Ft(edit-and-execute-command)24
+b(\(C-x)29 b(C-e\))630 2848 y Fu(In)m(v)m(ok)m(e)34 b(an)f(editor)g(on)
+g(the)g(curren)m(t)f(command)h(line,)h(and)e(execute)i(the)f(result)g
+(as)g(shell)630 2957 y(commands.)81 b(Bash)44 b(attempts)h(to)g(in)m(v)
+m(ok)m(e)h Ft($VISUAL)p Fu(,)f Ft($EDITOR)p Fu(,)h(and)d
+Ft(emacs)g Fu(as)h(the)630 3067 y(editor,)31 b(in)f(that)h(order.)150
+3236 y Ft(display-shell-version)25 b(\(C-x)k(C-v\))630
+3346 y Fu(Displa)m(y)j(v)m(ersion)e(information)h(ab)s(out)f(the)h
+(curren)m(t)f(instance)h(of)f(Bash.)150 3601 y Fs(8.5)68
+b(Readline)47 b(vi)e(Mo)t(de)150 3760 y Fu(While)32 b(the)g(Readline)g
(library)f(do)s(es)g(not)h(ha)m(v)m(e)h(a)f(full)f(set)h(of)g
Ft(vi)f Fu(editing)h(functions,)f(it)h(do)s(es)g(con)m(tain)150
-2623 y(enough)i(to)h(allo)m(w)g(simple)f(editing)h(of)f(the)g(line.)52
+3870 y(enough)i(to)h(allo)m(w)g(simple)f(editing)h(of)f(the)g(line.)52
b(The)34 b(Readline)g Ft(vi)g Fu(mo)s(de)f(b)s(eha)m(v)m(es)i(as)f(sp)s
-(eci\014ed)f(in)150 2732 y(the)e Ft(sh)e Fu(description)i(in)f(the)g
-Fm(posix)g Fu(standard.)275 2871 y(Y)-8 b(ou)33 b(can)g(use)g(the)g(`)p
+(eci\014ed)f(in)150 3979 y(the)e Ft(sh)e Fu(description)i(in)f(the)g
+Fm(posix)g Fu(standard.)275 4124 y(Y)-8 b(ou)33 b(can)g(use)g(the)g(`)p
Ft(set)d(-o)g(emacs)p Fu(')h(and)i(`)p Ft(set)d(-o)f(vi)p
Fu(')k(commands)g(\(see)g(Section)h(4.3.1)h([The)e(Set)150
-2981 y(Builtin],)25 b(page)e(74\))g(to)h(switc)m(h)e(in)m(teractiv)m
+4233 y(Builtin],)25 b(page)e(74\))g(to)h(switc)m(h)e(in)m(teractiv)m
(ely)k(b)s(et)m(w)m(een)d Ft(emacs)d Fu(and)i Ft(vi)g
-Fu(editing)h(mo)s(des,)g(The)f(Readline)150 3090 y(default)31
-b(is)f Ft(emacs)f Fu(mo)s(de.)275 3230 y(When)g(y)m(ou)i(en)m(ter)f(a)h
-(line)f(in)g Ft(vi)f Fu(mo)s(de,)h(y)m(ou)h(are)f(already)h(placed)f
-(in)g(`insertion')g(mo)s(de,)g(as)h(if)f(y)m(ou)150 3339
-y(had)f(t)m(yp)s(ed)g(an)g(`)p Ft(i)p Fu('.)41 b(Pressing)29
-b Ft(ESC)f Fu(switc)m(hes)i(y)m(ou)g(in)m(to)h(`command')e(mo)s(de,)h
-(where)e(y)m(ou)i(can)g(edit)g(the)150 3449 y(text)35
+Fu(editing)h(mo)s(des,)g(The)f(Readline)150 4343 y(default)31
+b(is)f Ft(emacs)f Fu(mo)s(de.)275 4487 y(When)e(y)m(ou)h(en)m(ter)g(a)g
+(line)g(in)f Ft(vi)g Fu(mo)s(de,)h(y)m(ou)g(are)g(already)g(placed)g
+(in)g(\\insertion")g(mo)s(de,)g(as)g(if)g(y)m(ou)150
+4597 y(had)e(t)m(yp)s(ed)g(an)h(`)p Ft(i)p Fu('.)39 b(Pressing)26
+b Ft(ESC)g Fu(switc)m(hes)h(y)m(ou)g(in)m(to)h(\\command")f(mo)s(de,)g
+(where)f(y)m(ou)h(can)g(edit)g(the)150 4706 y(text)35
b(of)f(the)g(line)g(with)f(the)h(standard)f Ft(vi)g Fu(mo)m(v)m(emen)m
(t)j(k)m(eys,)g(mo)m(v)m(e)f(to)f(previous)g(history)f(lines)h(with)150
-3558 y(`)p Ft(k)p Fu(')d(and)e(subsequen)m(t)h(lines)h(with)f(`)p
-Ft(j)p Fu(',)g(and)g(so)h(forth.)150 3806 y Fs(8.6)68
-b(Programmable)47 b(Completion)150 3966 y Fu(When)35
+4816 y(`)p Ft(k)p Fu(')d(and)e(subsequen)m(t)h(lines)h(with)f(`)p
+Ft(j)p Fu(',)g(and)g(so)h(forth.)150 5071 y Fs(8.6)68
+b(Programmable)47 b(Completion)150 5230 y Fu(When)35
b(the)g(user)g(attempts)h(w)m(ord)f(completion)h(for)f(a)h(command)f
-(or)g(an)g(argumen)m(t)h(to)g(a)f(command)150 4075 y(for)k(whic)m(h)h
+(or)g(an)g(argumen)m(t)h(to)g(a)f(command)150 5340 y(for)k(whic)m(h)h
(a)g(completion)h(sp)s(eci\014cation)f(\(a)h Fr(compsp)s(ec)6
b Fu(\))39 b(has)h(b)s(een)f(de\014ned)f(using)h(the)h
-Ft(complete)150 4185 y Fu(builtin)34 b(\(see)h(Section)f(8.7)i
-([Programmable)e(Completion)h(Builtins],)h(page)f(161\),)h(Readline)f
-(in)m(v)m(ok)m(es)150 4294 y(the)c(programmable)f(completion)i
-(facilities.)275 4434 y(First,)47 b(Bash)c(iden)m(ti\014es)h(the)f
-(command)g(name.)80 b(If)43 b(a)h(compsp)s(ec)f(has)g(b)s(een)f
-(de\014ned)g(for)h(that)150 4543 y(command,)35 b(the)e(compsp)s(ec)h
-(is)g(used)f(to)h(generate)h(the)f(list)h(of)f(p)s(ossible)f
-(completions)i(for)e(the)h(w)m(ord.)150 4653 y(If)j(the)i(command)e(w)m
-(ord)h(is)g(the)g(empt)m(y)g(string)g(\(completion)i(attempted)f(at)g
-(the)f(b)s(eginning)f(of)h(an)150 4762 y(empt)m(y)j(line\),)i(Bash)e
-(uses)e(an)m(y)i(compsp)s(ec)f(de\014ned)f(with)h(the)g
-Ft(-E)g Fu(option)h(to)g Ft(complete)p Fu(.)68 b(The)40
-b Ft(-I)150 4872 y Fu(option)32 b(to)h Ft(complete)d
-Fu(indicates)j(that)f(the)g(command)g(w)m(ord)g(is)g(the)g(\014rst)f
-(non-assignmen)m(t)h(w)m(ord)g(on)150 4982 y(the)h(line,)h(or)f(after)h
-(a)f(command)g(delimiter)g(suc)m(h)g(as)g(`)p Ft(;)p
-Fu(')g(or)g(`)p Ft(|)p Fu('.)49 b(This)32 b(usually)g(indicates)i
-(command)150 5091 y(name)c(completion.)275 5230 y(If)41
-b(the)i(command)f(w)m(ord)g(is)g(a)h(full)f(pathname,)k(Bash)c(searc)m
-(hes)i(for)e(a)g(compsp)s(ec)h(for)f(the)g(full)150 5340
-y(pathname)d(\014rst.)65 b(If)38 b(there)h(is)g(no)g(compsp)s(ec)g(for)
-f(the)h(full)g(pathname,)i(Bash)e(attempts)h(to)f(\014nd)f(a)p
-eop end
+Ft(complete)p eop end
%%Page: 159 165
TeXDict begin 159 164 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(159)150 299 y(compsp)s(ec)42
-b(for)f(the)h(p)s(ortion)g(follo)m(wing)h(the)g(\014nal)e(slash.)75
-b(If)42 b(those)g(searc)m(hes)h(do)f(not)g(result)g(in)g(a)150
-408 y(compsp)s(ec,)j(or)e(if)f(there)g(is)h(no)f(compsp)s(ec)g(for)g
-(the)g(command)g(w)m(ord,)j(Bash)e(uses)f(an)m(y)g(compsp)s(ec)150
-518 y(de\014ned)37 b(with)g(the)h Ft(-D)g Fu(option)g(to)h
+b(Command)29 b(Line)i(Editing)2062 b(159)150 299 y(builtin)34
+b(\(see)h(Section)f(8.7)i([Programmable)e(Completion)h(Builtins],)h
+(page)f(161\),)h(Readline)f(in)m(v)m(ok)m(es)150 408
+y(the)c(programmable)f(completion)i(facilities.)275 549
+y(First,)47 b(Bash)c(iden)m(ti\014es)h(the)f(command)g(name.)80
+b(If)43 b(a)h(compsp)s(ec)f(has)g(b)s(een)f(de\014ned)g(for)h(that)150
+659 y(command,)35 b(the)e(compsp)s(ec)h(is)g(used)f(to)h(generate)h
+(the)f(list)h(of)f(p)s(ossible)f(completions)i(for)e(the)h(w)m(ord.)150
+769 y(If)j(the)i(command)e(w)m(ord)h(is)g(the)g(empt)m(y)g(string)g
+(\(completion)i(attempted)f(at)g(the)f(b)s(eginning)f(of)h(an)150
+878 y(empt)m(y)j(line\),)i(Bash)e(uses)e(an)m(y)i(compsp)s(ec)f
+(de\014ned)f(with)h(the)g Ft(-E)g Fu(option)h(to)g Ft(complete)p
+Fu(.)68 b(The)40 b Ft(-I)150 988 y Fu(option)32 b(to)h
+Ft(complete)d Fu(indicates)j(that)f(the)g(command)g(w)m(ord)g(is)g(the)
+g(\014rst)f(non-assignmen)m(t)h(w)m(ord)g(on)150 1097
+y(the)h(line,)h(or)f(after)h(a)f(command)g(delimiter)g(suc)m(h)g(as)g
+(`)p Ft(;)p Fu(')g(or)g(`)p Ft(|)p Fu('.)49 b(This)32
+b(usually)g(indicates)i(command)150 1207 y(name)c(completion.)275
+1348 y(If)41 b(the)i(command)f(w)m(ord)g(is)g(a)h(full)f(pathname,)k
+(Bash)c(searc)m(hes)i(for)e(a)g(compsp)s(ec)h(for)f(the)g(full)150
+1457 y(pathname)d(\014rst.)65 b(If)38 b(there)h(is)g(no)g(compsp)s(ec)g
+(for)f(the)h(full)g(pathname,)i(Bash)e(attempts)h(to)f(\014nd)f(a)150
+1567 y(compsp)s(ec)k(for)f(the)h(p)s(ortion)g(follo)m(wing)h(the)g
+(\014nal)e(slash.)75 b(If)42 b(those)g(searc)m(hes)h(do)f(not)g(result)
+g(in)g(a)150 1677 y(compsp)s(ec,)j(or)e(if)f(there)g(is)h(no)f(compsp)s
+(ec)g(for)g(the)g(command)g(w)m(ord,)j(Bash)e(uses)f(an)m(y)g(compsp)s
+(ec)150 1786 y(de\014ned)37 b(with)g(the)h Ft(-D)g Fu(option)g(to)h
Ft(complete)d Fu(as)i(the)g(default.)63 b(If)38 b(there)g(is)g(no)g
-(default)g(compsp)s(ec,)150 628 y(Bash)27 b(p)s(erforms)e(alias)j
+(default)g(compsp)s(ec,)150 1896 y(Bash)27 b(p)s(erforms)e(alias)j
(expansion)e(on)h(the)g(command)f(w)m(ord)g(as)h(a)g(\014nal)g(resort,)
-g(and)f(attempts)i(to)f(\014nd)150 737 y(a)k(compsp)s(ec)f(for)g(the)h
+g(and)f(attempts)i(to)f(\014nd)150 2005 y(a)k(compsp)s(ec)f(for)g(the)h
(command)f(w)m(ord)g(resulting)g(from)g(an)m(y)h(successful)f
-(expansion.)275 894 y(If)j(a)h(compsp)s(ec)g(is)g(not)h(found,)e(Bash)i
-(p)s(erforms)d(its)i(default)h(completion)g(describ)s(ed)e(ab)s(o)m(v)m
-(e)i(\(see)150 1003 y(Section)41 b(8.4.6)g([Commands)f(F)-8
+(expansion.)275 2146 y(If)j(a)h(compsp)s(ec)g(is)g(not)h(found,)e(Bash)
+i(p)s(erforms)d(its)i(default)h(completion)g(describ)s(ed)e(ab)s(o)m(v)
+m(e)i(\(see)150 2256 y(Section)41 b(8.4.6)g([Commands)f(F)-8
b(or)40 b(Completion],)k(page)c(153\).)71 b(Otherwise,)43
-b(once)d(a)h(compsp)s(ec)e(has)150 1113 y(b)s(een)30
+b(once)d(a)h(compsp)s(ec)e(has)150 2365 y(b)s(een)30
b(found,)f(Bash)h(uses)g(it)h(to)g(generate)h(the)f(list)g(of)f(matc)m
-(hing)i(w)m(ords.)275 1270 y(First,)g(Bash)f(p)s(erforms)f(the)i
+(hing)i(w)m(ords.)275 2506 y(First,)g(Bash)f(p)s(erforms)f(the)i
Fr(actions)k Fu(sp)s(eci\014ed)30 b(b)m(y)i(the)f(compsp)s(ec.)44
-b(This)30 b(only)i(returns)e(matc)m(hes)150 1379 y(whic)m(h)40
+b(This)30 b(only)i(returns)e(matc)m(hes)150 2616 y(whic)m(h)40
b(are)h(pre\014xes)f(of)g(the)h(w)m(ord)f(b)s(eing)g(completed.)72
b(When)40 b(the)h Ft(-f)f Fu(or)g Ft(-d)g Fu(option)h(is)f(used)g(for)
-150 1489 y(\014lename)c(or)f(directory)h(name)f(completion,)k(Bash)c
+150 2725 y(\014lename)c(or)f(directory)h(name)f(completion,)k(Bash)c
(uses)g(shell)h(the)f(v)-5 b(ariable)37 b Ft(FIGNORE)c
-Fu(to)j(\014lter)g(the)150 1598 y(matc)m(hes.)42 b(See)30
+Fu(to)j(\014lter)g(the)150 2835 y(matc)m(hes.)42 b(See)30
b(Section)i(5.2)f([Bash)g(V)-8 b(ariables],)32 b(page)f(87,)h(for)e(a)h
-(description)f(of)h Ft(FIGNORE)p Fu(.)275 1755 y(Next,)j(programmable)g
+(description)f(of)h Ft(FIGNORE)p Fu(.)275 2976 y(Next,)j(programmable)g
(completion)g(generates)h(matc)m(hes)f(sp)s(eci\014ed)e(b)m(y)i(a)f
-(pathname)g(expansion)150 1864 y(pattern)38 b(supplied)f(as)h(an)g
+(pathname)g(expansion)150 3086 y(pattern)38 b(supplied)f(as)h(an)g
(argumen)m(t)h(to)g(the)f Ft(-G)f Fu(option.)64 b(The)38
-b(w)m(ords)g(generated)h(b)m(y)f(the)g(pattern)150 1974
+b(w)m(ords)g(generated)h(b)m(y)f(the)g(pattern)150 3195
y(need)g(not)g(matc)m(h)g(the)g(w)m(ord)g(b)s(eing)f(completed.)64
b(Bash)38 b(uses)f(the)h Ft(FIGNORE)e Fu(v)-5 b(ariable)38
-b(to)h(\014lter)f(the)150 2084 y(matc)m(hes,)32 b(but)d(do)s(es)h(not)h
+b(to)h(\014lter)f(the)150 3305 y(matc)m(hes,)32 b(but)d(do)s(es)h(not)h
(use)f(the)h Ft(GLOBIGNORE)c Fu(shell)k(v)-5 b(ariable.)275
-2240 y(Next,)35 b(completion)g(considers)e(the)h(string)f(sp)s
+3446 y(Next,)35 b(completion)g(considers)e(the)h(string)f(sp)s
(eci\014ed)g(as)h(the)g(argumen)m(t)g(to)g(the)g Ft(-W)f
-Fu(option.)50 b(The)150 2350 y(string)25 b(is)g(\014rst)f(split)h
+Fu(option.)50 b(The)150 3555 y(string)25 b(is)g(\014rst)f(split)h
(using)f(the)i(c)m(haracters)g(in)f(the)g Ft(IFS)f Fu(sp)s(ecial)h(v)-5
b(ariable)26 b(as)f(delimiters.)40 b(This)24 b(honors)150
-2459 y(shell)d(quoting)h(within)e(the)h(string,)i(in)e(order)f(to)i
+3665 y(shell)d(quoting)h(within)e(the)h(string,)i(in)e(order)f(to)i
(pro)m(vide)f(a)g(mec)m(hanism)g(for)g(the)g(w)m(ords)g(to)g(con)m
-(tain)i(shell)150 2569 y(metac)m(haracters)33 b(or)e(c)m(haracters)i
+(tain)i(shell)150 3774 y(metac)m(haracters)33 b(or)e(c)m(haracters)i
(in)e(the)g(v)-5 b(alue)31 b(of)g Ft(IFS)p Fu(.)42 b(Eac)m(h)32
b(w)m(ord)e(is)h(then)g(expanded)f(using)h(brace)150
-2679 y(expansion,)g(tilde)h(expansion,)f(parameter)g(and)g(v)-5
+3884 y(expansion,)g(tilde)h(expansion,)f(parameter)g(and)g(v)-5
b(ariable)32 b(expansion,)f(command)f(substitution,)i(and)150
-2788 y(arithmetic)c(expansion,)f(as)g(describ)s(ed)e(ab)s(o)m(v)m(e)i
-(\(see)h(Section)f(3.5)g([Shell)g(Expansions],)g(page)g(24\).)40
-b(The)150 2898 y(results)23 b(are)h(split)g(using)f(the)h(rules)f
+3994 y(arithmetic)c(expansion,)f(as)g(describ)s(ed)e(ab)s(o)m(v)m(e)i
+(\(see)h(Section)f(3.5)g([Shell)g(Expansions],)g(page)g(25\).)40
+b(The)150 4103 y(results)23 b(are)h(split)g(using)f(the)h(rules)f
(describ)s(ed)f(ab)s(o)m(v)m(e)j(\(see)g(Section)f(3.5.7)h([W)-8
-b(ord)24 b(Splitting],)i(page)e(38\).)150 3007 y(The)j(results)h(of)f
+b(ord)24 b(Splitting],)i(page)e(38\).)150 4213 y(The)j(results)h(of)f
(the)h(expansion)g(are)g(pre\014x-matc)m(hed)g(against)h(the)f(w)m(ord)
-f(b)s(eing)g(completed,)j(and)d(the)150 3117 y(matc)m(hing)k(w)m(ords)f
-(b)s(ecome)h(p)s(ossible)f(completions.)275 3273 y(After)e(these)g
+f(b)s(eing)g(completed,)j(and)d(the)150 4322 y(matc)m(hing)k(w)m(ords)f
+(b)s(ecome)h(p)s(ossible)f(completions.)275 4463 y(After)e(these)g
(matc)m(hes)h(ha)m(v)m(e)g(b)s(een)e(generated,)j(Bash)e(executes)h(an)
-m(y)g(shell)f(function)f(or)h(command)150 3383 y(sp)s(eci\014ed)38
+m(y)g(shell)f(function)f(or)h(command)150 4573 y(sp)s(eci\014ed)38
b(with)h(the)g Ft(-F)g Fu(and)f Ft(-C)g Fu(options.)67
b(When)39 b(the)g(command)g(or)g(function)g(is)g(in)m(v)m(ok)m(ed,)k
-(Bash)150 3493 y(assigns)35 b(v)-5 b(alues)36 b(to)f(the)h
+(Bash)150 4682 y(assigns)35 b(v)-5 b(alues)36 b(to)f(the)h
Ft(COMP_LINE)p Fu(,)e Ft(COMP_POINT)p Fu(,)f Ft(COMP_KEY)p
Fu(,)i(and)f Ft(COMP_TYPE)f Fu(v)-5 b(ariables)35 b(as)h(de-)150
-3602 y(scrib)s(ed)22 b(ab)s(o)m(v)m(e)h(\(see)h(Section)f(5.2)h([Bash)f
+4792 y(scrib)s(ed)22 b(ab)s(o)m(v)m(e)h(\(see)h(Section)f(5.2)h([Bash)f
(V)-8 b(ariables],)26 b(page)e(87\).)39 b(If)22 b(a)h(shell)g(function)
-f(is)h(b)s(eing)f(in)m(v)m(ok)m(ed,)150 3712 y(Bash)29
+f(is)h(b)s(eing)f(in)m(v)m(ok)m(ed,)150 4902 y(Bash)29
b(also)g(sets)g(the)g Ft(COMP_WORDS)d Fu(and)i Ft(COMP_CWORD)d
Fu(v)-5 b(ariables.)41 b(When)29 b(the)f(function)h(or)f(command)150
-3821 y(is)g(in)m(v)m(ok)m(ed,)j(the)d(\014rst)f(argumen)m(t)i(\($1\))h
+5011 y(is)g(in)m(v)m(ok)m(ed,)j(the)d(\014rst)f(argumen)m(t)i(\($1\))h
(is)e(the)g(name)h(of)f(the)g(command)g(whose)g(argumen)m(ts)h(are)f(b)
-s(eing)150 3931 y(completed,)i(the)f(second)f(argumen)m(t)h(\($2\))h
+s(eing)150 5121 y(completed,)i(the)f(second)f(argumen)m(t)h(\($2\))h
(is)f(the)g(w)m(ord)f(b)s(eing)g(completed,)i(and)e(the)h(third)e
-(argumen)m(t)150 4041 y(\($3\))f(is)f(the)g(w)m(ord)g(preceding)g(the)g
+(argumen)m(t)150 5230 y(\($3\))f(is)f(the)g(w)m(ord)g(preceding)g(the)g
(w)m(ord)f(b)s(eing)h(completed)g(on)g(the)g(curren)m(t)g(command)f
-(line.)40 b(There)24 b(is)150 4150 y(no)k(\014ltering)g(of)g(the)f
+(line.)40 b(There)24 b(is)150 5340 y(no)k(\014ltering)g(of)g(the)f
(generated)i(completions)g(against)g(the)f(w)m(ord)f(b)s(eing)h
-(completed;)i(the)e(function)f(or)150 4260 y(command)j(has)g(complete)i
-(freedom)e(in)f(generating)j(the)e(matc)m(hes)i(and)d(they)i(do)f(not)g
-(need)g(to)h(matc)m(h)150 4369 y(a)g(pre\014x)e(of)i(the)f(w)m(ord.)275
-4526 y(An)m(y)k(function)h(sp)s(eci\014ed)f(with)g Ft(-F)g
-Fu(is)h(in)m(v)m(ok)m(ed)h(\014rst.)53 b(The)35 b(function)f(ma)m(y)h
-(use)g(an)m(y)g(of)g(the)g(shell)150 4635 y(facilities,)50
-b(including)44 b(the)h Ft(compgen)d Fu(and)i Ft(compopt)e
-Fu(builtins)i(describ)s(ed)f(b)s(elo)m(w)h(\(see)i(Section)f(8.7)150
-4745 y([Programmable)31 b(Completion)h(Builtins],)f(page)h(161\),)g(to)
-g(generate)g(the)f(matc)m(hes.)42 b(It)31 b(m)m(ust)g(put)f(the)150
-4855 y(p)s(ossible)g(completions)h(in)f(the)h Ft(COMPREPLY)d
-Fu(arra)m(y)j(v)-5 b(ariable,)31 b(one)g(p)s(er)e(arra)m(y)i(elemen)m
-(t.)275 5011 y(Next,)26 b(an)m(y)f(command)f(sp)s(eci\014ed)g(with)g
-(the)h Ft(-C)f Fu(option)h(is)f(in)m(v)m(ok)m(ed)i(in)e(an)g(en)m
-(vironmen)m(t)h(equiv)-5 b(alen)m(t)150 5121 y(to)26
-b(command)e(substitution.)39 b(It)25 b(should)f(prin)m(t)h(a)g(list)h
-(of)f(completions,)i(one)e(p)s(er)f(line,)j(to)f(the)f(standard)150
-5230 y(output.)39 b(Bac)m(kslash)27 b(will)g(escap)s(e)f(a)g(newline,)h
-(if)f(necessary)-8 b(.)40 b(These)26 b(are)g(added)f(to)i(the)f(set)g
-(of)g(p)s(ossible)150 5340 y(completions.)p eop end
+(completed;)i(the)e(function)f(or)p eop end
%%Page: 160 166
TeXDict begin 160 165 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(160)275 299 y(After)36
-b(generating)i(all)g(of)f(the)f(p)s(ossible)h(completions,)i(Bash)e
-(applies)g(an)m(y)g(\014lter)f(sp)s(eci\014ed)g(with)150
-408 y(the)e Ft(-X)g Fu(option)g(to)h(the)f(completions)h(in)f(the)g
-(list.)53 b(The)33 b(\014lter)h(is)g(a)h(pattern)f(as)g(used)f(for)h
-(pathname)150 518 y(expansion;)k(a)e(`)p Ft(&)p Fu(')f(in)g(the)g
-(pattern)h(is)f(replaced)h(with)f(the)g(text)i(of)e(the)h(w)m(ord)f(b)s
-(eing)f(completed.)57 b(A)150 628 y(literal)40 b(`)p
-Ft(&)p Fu(')f(ma)m(y)g(b)s(e)f(escap)s(ed)h(with)f(a)h(bac)m(kslash;)44
-b(the)39 b(bac)m(kslash)g(is)g(remo)m(v)m(ed)g(b)s(efore)g(attempting)
-150 737 y(a)f(matc)m(h.)64 b(An)m(y)38 b(completion)h(that)f(matc)m
-(hes)h(the)f(pattern)g(is)g(remo)m(v)m(ed)g(from)g(the)g(list.)63
-b(A)38 b(leading)150 847 y(`)p Ft(!)p Fu(')j(negates)h(the)f(pattern;)
-46 b(in)40 b(this)g(case)i(Bash)f(remo)m(v)m(es)h(an)m(y)f(completion)h
-(that)f(do)s(es)f(not)h(matc)m(h)150 956 y(the)d(pattern.)62
-b(If)37 b(the)h Ft(nocasematch)c Fu(shell)k(option)g(is)f(enabled)h
-(\(see)g(the)g(description)g(of)f Ft(shopt)f Fu(in)150
-1066 y(Section)27 b(4.3.2)h([The)e(Shopt)f(Builtin],)j(page)f(78\),)h
-(Bash)e(p)s(erforms)f(the)h(matc)m(h)h(without)f(regard)g(to)h(the)150
-1176 y(case)k(of)g(alphab)s(etic)g(c)m(haracters.)275
-1348 y(Finally)-8 b(,)34 b(programmable)e(completion)i(adds)d(an)m(y)i
-(pre\014x)e(and)h(su\016x)f(sp)s(eci\014ed)h(with)f(the)i
-Ft(-P)f Fu(and)150 1457 y Ft(-S)g Fu(options,)i(resp)s(ectiv)m(ely)-8
-b(,)35 b(to)f(eac)m(h)g(completion,)g(and)f(returns)e(the)i(result)g
-(to)g(Readline)g(as)g(the)g(list)150 1567 y(of)e(p)s(ossible)e
-(completions.)275 1739 y(If)41 b(the)g(previously-applied)h(actions)g
+b(Command)29 b(Line)i(Editing)2062 b(160)150 299 y(command)30
+b(has)g(complete)i(freedom)e(in)f(generating)j(the)e(matc)m(hes)i(and)d
+(they)i(do)f(not)g(need)g(to)h(matc)m(h)150 408 y(a)g(pre\014x)e(of)i
+(the)f(w)m(ord.)275 545 y(An)m(y)k(function)h(sp)s(eci\014ed)f(with)g
+Ft(-F)g Fu(is)h(in)m(v)m(ok)m(ed)h(\014rst.)53 b(The)35
+b(function)f(ma)m(y)h(use)g(an)m(y)g(of)g(the)g(shell)150
+655 y(facilities,)50 b(including)44 b(the)h Ft(compgen)d
+Fu(and)i Ft(compopt)e Fu(builtins)i(describ)s(ed)f(b)s(elo)m(w)h(\(see)
+i(Section)f(8.7)150 765 y([Programmable)31 b(Completion)h(Builtins],)f
+(page)h(161\),)g(to)g(generate)g(the)f(matc)m(hes.)42
+b(It)31 b(m)m(ust)g(put)f(the)150 874 y(p)s(ossible)g(completions)h(in)
+f(the)h Ft(COMPREPLY)d Fu(arra)m(y)j(v)-5 b(ariable,)31
+b(one)g(p)s(er)e(arra)m(y)i(elemen)m(t.)275 1011 y(Next,)26
+b(an)m(y)f(command)f(sp)s(eci\014ed)g(with)g(the)h Ft(-C)f
+Fu(option)h(is)f(in)m(v)m(ok)m(ed)i(in)e(an)g(en)m(vironmen)m(t)h
+(equiv)-5 b(alen)m(t)150 1121 y(to)26 b(command)e(substitution.)39
+b(It)25 b(should)f(prin)m(t)h(a)g(list)h(of)f(completions,)i(one)e(p)s
+(er)f(line,)j(to)f(the)f(standard)150 1230 y(output.)39
+b(Bac)m(kslash)27 b(will)g(escap)s(e)f(a)g(newline,)h(if)f(necessary)-8
+b(.)40 b(These)26 b(are)g(added)f(to)i(the)f(set)g(of)g(p)s(ossible)150
+1340 y(completions.)275 1477 y(External)36 b(commands)h(that)g(are)g
+(in)m(v)m(ok)m(ed)h(to)f(generate)h(completions)f(\()p
+Ft(")p Fu(external)h(completers)p Ft(")p Fu(\))150 1587
+y(receiv)m(e)33 b(the)e(w)m(ord)g(preceding)g(the)g(completion)i(w)m
+(ord)d(as)i(an)e(argumen)m(t,)i(as)g(describ)s(ed)e(ab)s(o)m(v)m(e.)44
+b(This)150 1696 y(pro)m(vides)33 b(con)m(text)h(that)g(is)f(sometimes)h
+(useful,)f(but)f(ma)m(y)h(include)g(information)g(that)g(is)g
+(considered)150 1806 y(sensitiv)m(e)28 b(or)f(part)f(of)h(a)g(w)m(ord)f
+(expansion)h(that)g(will)g(not)g(app)s(ear)f(in)g(the)h(command)g(line)
+g(after)g(expan-)150 1915 y(sion.)42 b(That)31 b(w)m(ord)g(ma)m(y)g(b)s
+(e)g(visible)g(in)g(pro)s(cess)f(listings)i(or)f(in)f(audit)h(logs.)43
+b(This)31 b(ma)m(y)g(b)s(e)f(a)i(concern)150 2025 y(to)i(users)e(and)g
+(completion)i(sp)s(eci\014cation)g(authors)e(if)h(there)g(is)g
+(sensitiv)m(e)h(information)f(on)g(the)g(com-)150 2134
+y(mand)38 b(line)g(b)s(efore)g(expansion,)j(since)e(completion)g(tak)m
+(es)h(place)g(b)s(efore)e(w)m(ords)g(are)g(expanded.)64
+b(If)150 2244 y(this)28 b(is)h(an)f(issue,)h(completion)h(authors)e
+(should)f(use)h(functions)g(as)h(wrapp)s(ers)d(around)i(external)h
+(com-)150 2354 y(mands)g(and)g(pass)g(con)m(text)j(information)e(to)h
+(the)f(external)g(command)g(in)f(a)h(di\013eren)m(t)h(w)m(a)m(y)-8
+b(.)42 b(External)150 2463 y(completers)27 b(can)g(infer)f(con)m(text)i
+(from)e(the)g Fr(COMP)p 1940 2463 28 4 v 40 w(LINE)31
+b Fu(and)26 b Fr(COMP)p 2686 2463 V 39 w(POINT)33 b Fu(en)m(vironmen)m
+(t)26 b(v)-5 b(ari-)150 2573 y(ables,)32 b(but)e(they)h(need)g(to)g
+(ensure)g(they)g(break)f(w)m(ords)h(in)f(the)i(same)f(w)m(a)m(y)h
+(Readline)f(do)s(es,)g(using)g(the)150 2682 y Fr(COMP)p
+438 2682 V 40 w(W)m(ORDBREAKS)36 b Fu(v)-5 b(ariable.)275
+2819 y(After)36 b(generating)i(all)g(of)f(the)f(p)s(ossible)h
+(completions,)i(Bash)e(applies)g(an)m(y)g(\014lter)f(sp)s(eci\014ed)g
+(with)150 2929 y(the)e Ft(-X)g Fu(option)g(to)h(the)f(completions)h(in)
+f(the)g(list.)53 b(The)33 b(\014lter)h(is)g(a)h(pattern)f(as)g(used)f
+(for)h(pathname)150 3039 y(expansion;)k(a)e(`)p Ft(&)p
+Fu(')f(in)g(the)g(pattern)h(is)f(replaced)h(with)f(the)g(text)i(of)e
+(the)h(w)m(ord)f(b)s(eing)f(completed.)57 b(A)150 3148
+y(literal)40 b(`)p Ft(&)p Fu(')f(ma)m(y)g(b)s(e)f(escap)s(ed)h(with)f
+(a)h(bac)m(kslash;)44 b(the)39 b(bac)m(kslash)g(is)g(remo)m(v)m(ed)g(b)
+s(efore)g(attempting)150 3258 y(a)f(matc)m(h.)64 b(An)m(y)38
+b(completion)h(that)f(matc)m(hes)h(the)f(pattern)g(is)g(remo)m(v)m(ed)g
+(from)g(the)g(list.)63 b(A)38 b(leading)150 3367 y(`)p
+Ft(!)p Fu(')j(negates)h(the)f(pattern;)46 b(in)40 b(this)g(case)i(Bash)
+f(remo)m(v)m(es)h(an)m(y)f(completion)h(that)f(do)s(es)f(not)h(matc)m
+(h)150 3477 y(the)d(pattern.)62 b(If)37 b(the)h Ft(nocasematch)c
+Fu(shell)k(option)g(is)f(enabled)h(\(see)g(the)g(description)g(of)f
+Ft(shopt)f Fu(in)150 3587 y(Section)27 b(4.3.2)h([The)e(Shopt)f
+(Builtin],)j(page)f(78\),)h(Bash)e(p)s(erforms)f(the)h(matc)m(h)h
+(without)f(regard)g(to)h(the)150 3696 y(case)k(of)g(alphab)s(etic)g(c)m
+(haracters.)275 3833 y(Finally)-8 b(,)34 b(programmable)e(completion)i
+(adds)d(an)m(y)i(pre\014x)e(and)h(su\016x)f(sp)s(eci\014ed)h(with)f
+(the)i Ft(-P)f Fu(and)150 3943 y Ft(-S)g Fu(options,)i(resp)s(ectiv)m
+(ely)-8 b(,)35 b(to)f(eac)m(h)g(completion,)g(and)f(returns)e(the)i
+(result)g(to)g(Readline)g(as)g(the)g(list)150 4052 y(of)e(p)s(ossible)e
+(completions.)275 4189 y(If)41 b(the)g(previously-applied)h(actions)g
(do)g(not)f(generate)i(an)m(y)f(matc)m(hes,)k(and)41
-b(the)g Ft(-o)30 b(dirnames)150 1849 y Fu(option)f(w)m(as)f(supplied)f
+b(the)g Ft(-o)30 b(dirnames)150 4299 y Fu(option)f(w)m(as)f(supplied)f
(to)i Ft(complete)d Fu(when)h(the)h(compsp)s(ec)g(w)m(as)g(de\014ned,)g
-(Bash)g(attempts)h(directory)150 1958 y(name)h(completion.)275
-2131 y(If)35 b(the)g Ft(-o)30 b(plusdirs)j Fu(option)j(w)m(as)g
+(Bash)g(attempts)h(directory)150 4408 y(name)h(completion.)275
+4545 y(If)35 b(the)g Ft(-o)30 b(plusdirs)j Fu(option)j(w)m(as)g
(supplied)e(to)i Ft(complete)e Fu(when)g(the)i(compsp)s(ec)f(w)m(as)h
-(de\014ned,)150 2240 y(Bash)43 b(attempts)g(directory)g(name)g
+(de\014ned,)150 4655 y(Bash)43 b(attempts)g(directory)g(name)g
(completion)h(and)d(adds)h(an)m(y)h(matc)m(hes)h(to)f(the)g(set)g(of)f
-(p)s(ossible)150 2350 y(completions.)275 2522 y(By)31
+(p)s(ossible)150 4765 y(completions.)275 4902 y(By)31
b(default,)i(if)e(a)h(compsp)s(ec)f(is)h(found,)f(whatev)m(er)h(it)g
(generates)h(is)e(returned)g(to)h(the)g(completion)150
-2632 y(co)s(de)26 b(as)h(the)f(full)g(set)g(of)g(p)s(ossible)g
+5011 y(co)s(de)26 b(as)h(the)f(full)g(set)g(of)g(p)s(ossible)g
(completions.)40 b(The)26 b(default)g(Bash)g(completions)i(and)d(the)h
-(Readline)150 2741 y(default)39 b(of)g(\014lename)g(completion)i(are)e
+(Readline)150 5121 y(default)39 b(of)g(\014lename)g(completion)i(are)e
(disabled.)66 b(If)39 b(the)g Ft(-o)30 b(bashdefault)35
-b Fu(option)40 b(w)m(as)f(supplied)150 2851 y(to)k Ft(complete)c
+b Fu(option)40 b(w)m(as)f(supplied)150 5230 y(to)k Ft(complete)c
Fu(when)i(the)h(compsp)s(ec)f(w)m(as)h(de\014ned,)i(and)d(the)h(compsp)
-s(ec)g(generates)h(no)f(matc)m(hes,)150 2960 y(Bash)27
+s(ec)g(generates)h(no)f(matc)m(hes,)150 5340 y(Bash)27
b(attempts)g(its)g(default)f(completions.)41 b(If)26
-b(the)h(compsp)s(ec)f(and,)h(if)f(attempted,)j(the)d(default)h(Bash)150
-3070 y(completions)40 b(generate)h(no)e(matc)m(hes,)k(and)c(the)g
-Ft(-o)30 b(default)37 b Fu(option)j(w)m(as)f(supplied)f(to)i
-Ft(complete)150 3180 y Fu(when)j(the)h(compsp)s(ec)f(w)m(as)h
-(de\014ned,)i(programmable)e(completion)h(p)s(erforms)d(Readline's)j
-(default)150 3289 y(completion.)275 3461 y(The)40 b(options)h(supplied)
-e(to)j Ft(complete)c Fu(and)j Ft(compopt)d Fu(can)k(con)m(trol)g(ho)m
-(w)f(Readline)g(treats)h(the)150 3571 y(completions.)62
-b(F)-8 b(or)38 b(instance,)i(the)d Ft(-o)30 b(fullquote)35
-b Fu(option)j(tells)g(Readline)g(to)g(quote)f(the)h(matc)m(hes)150
-3680 y(as)31 b(if)g(they)g(w)m(ere)g(\014lenames.)42
-b(See)31 b(the)g(description)g(of)g Ft(complete)e Fu(\(see)j(Section)f
-(8.7)h([Programmable)150 3790 y(Completion)f(Builtins],)g(page)g(161\))
-h(for)e(details.)275 3962 y(When)25 b(a)h(compsp)s(ec)g(indicates)g
-(that)h(it)f(w)m(an)m(ts)h(directory)f(name)g(completion,)i(the)e
-(programmable)150 4072 y(completion)31 b(functions)e(force)i(Readline)f
-(to)h(app)s(end)d(a)i(slash)g(to)g(completed)h(names)e(whic)m(h)h(are)g
-(sym-)150 4181 y(b)s(olic)40 b(links)g(to)h(directories,)j(sub)5
+b(the)h(compsp)s(ec)f(and,)h(if)f(attempted,)j(the)d(default)h(Bash)p
+eop end
+%%Page: 161 167
+TeXDict begin 161 166 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(161)150 299 y(completions)40
+b(generate)h(no)e(matc)m(hes,)k(and)c(the)g Ft(-o)30
+b(default)37 b Fu(option)j(w)m(as)f(supplied)f(to)i Ft(complete)150
+408 y Fu(when)j(the)h(compsp)s(ec)f(w)m(as)h(de\014ned,)i(programmable)
+e(completion)h(p)s(erforms)d(Readline's)j(default)150
+518 y(completion.)275 650 y(The)40 b(options)h(supplied)e(to)j
+Ft(complete)c Fu(and)j Ft(compopt)d Fu(can)k(con)m(trol)g(ho)m(w)f
+(Readline)g(treats)h(the)150 759 y(completions.)62 b(F)-8
+b(or)38 b(instance,)i(the)d Ft(-o)30 b(fullquote)35 b
+Fu(option)j(tells)g(Readline)g(to)g(quote)f(the)h(matc)m(hes)150
+869 y(as)31 b(if)g(they)g(w)m(ere)g(\014lenames.)42 b(See)31
+b(the)g(description)g(of)g Ft(complete)e Fu(\(see)j(Section)f(8.7)h
+([Programmable)150 978 y(Completion)f(Builtins],)g(page)g(161\))h(for)e
+(details.)275 1110 y(When)25 b(a)h(compsp)s(ec)g(indicates)g(that)h(it)
+f(w)m(an)m(ts)h(directory)f(name)g(completion,)i(the)e(programmable)150
+1219 y(completion)31 b(functions)e(force)i(Readline)f(to)h(app)s(end)d
+(a)i(slash)g(to)g(completed)h(names)e(whic)m(h)h(are)g(sym-)150
+1329 y(b)s(olic)40 b(links)g(to)h(directories,)j(sub)5
b(ject)40 b(to)h(the)f(v)-5 b(alue)41 b(of)f(the)g Fr(mark-directories)
-45 b Fu(Readline)c(v)-5 b(ariable,)150 4291 y(regardless)31
+45 b Fu(Readline)c(v)-5 b(ariable,)150 1439 y(regardless)31
b(of)f(the)h(setting)g(of)g(the)f Fr(mark-symlink)m(ed-directories)36
-b Fu(Readline)31 b(v)-5 b(ariable.)275 4463 y(There)25
+b Fu(Readline)31 b(v)-5 b(ariable.)275 1570 y(There)25
b(is)i(some)g(supp)s(ort)e(for)h(dynamically)h(mo)s(difying)f
(completions.)40 b(This)26 b(is)g(most)h(useful)f(when)150
-4573 y(used)40 b(in)h(com)m(bination)i(with)e(a)g(default)h(completion)
+1680 y(used)40 b(in)h(com)m(bination)i(with)e(a)g(default)h(completion)
g(sp)s(eci\014ed)f(with)g Ft(-D)p Fu(.)72 b(It's)42 b(p)s(ossible)f
-(for)g(shell)150 4682 y(functions)25 b(executed)i(as)f(completion)h
+(for)g(shell)150 1789 y(functions)25 b(executed)i(as)f(completion)h
(functions)f(to)g(indicate)h(that)g(completion)g(should)e(b)s(e)g
-(retried)h(b)m(y)150 4792 y(returning)31 b(an)i(exit)g(status)f(of)h
+(retried)h(b)m(y)150 1899 y(returning)31 b(an)i(exit)g(status)f(of)h
(124.)48 b(If)31 b(a)i(shell)f(function)g(returns)f(124,)k(and)c(c)m
-(hanges)j(the)e(compsp)s(ec)150 4902 y(asso)s(ciated)43
+(hanges)j(the)e(compsp)s(ec)150 2009 y(asso)s(ciated)43
b(with)e(the)g(command)g(on)g(whic)m(h)g(completion)i(is)e(b)s(eing)g
-(attempted)h(\(supplied)e(as)i(the)150 5011 y(\014rst)29
+(attempted)h(\(supplied)e(as)i(the)150 2118 y(\014rst)29
b(argumen)m(t)h(when)e(the)i(function)f(is)g(executed\),)j
(programmable)d(completion)i(restarts)f(from)f(the)150
-5121 y(b)s(eginning,)k(with)g(an)g(attempt)h(to)g(\014nd)e(a)h(new)g
+2228 y(b)s(eginning,)k(with)g(an)g(attempt)h(to)g(\014nd)e(a)h(new)g
(compsp)s(ec)g(for)g(that)h(command.)48 b(This)33 b(can)g(b)s(e)g(used)
-150 5230 y(to)g(build)d(a)j(set)f(of)g(completions)h(dynamically)f(as)g
+150 2337 y(to)g(build)d(a)j(set)f(of)g(completions)h(dynamically)f(as)g
(completion)i(is)d(attempted,)j(rather)e(than)f(loading)150
-5340 y(them)f(all)i(at)f(once.)p eop end
-%%Page: 161 167
-TeXDict begin 161 166 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(161)275 299 y(F)-8
-b(or)38 b(instance,)h(assuming)e(that)h(there)f(is)h(a)f(library)g(of)g
-(compsp)s(ecs,)i(eac)m(h)g(k)m(ept)e(in)g(a)h(\014le)f(corre-)150
-408 y(sp)s(onding)g(to)j(the)f(name)f(of)h(the)g(command,)i(the)e
+2447 y(them)f(all)i(at)f(once.)275 2578 y(F)-8 b(or)38
+b(instance,)h(assuming)e(that)h(there)f(is)h(a)f(library)g(of)g(compsp)
+s(ecs,)i(eac)m(h)g(k)m(ept)e(in)g(a)h(\014le)f(corre-)150
+2688 y(sp)s(onding)g(to)j(the)f(name)f(of)h(the)g(command,)i(the)e
(follo)m(wing)h(default)f(completion)h(function)e(w)m(ould)150
-518 y(load)31 b(completions)g(dynamically:)390 652 y
-Ft(_completion_loader\(\))390 762 y({)581 871 y(.)47
+2798 y(load)31 b(completions)g(dynamically:)390 2929
+y Ft(_completion_loader\(\))390 3039 y({)581 3148 y(.)47
b("/etc/bash_completion.d/$1)o(.sh)o(")42 b(>/dev/null)j(2>&1)i(&&)g
-(return)f(124)390 981 y(})390 1091 y(complete)g(-D)h(-F)g
+(return)f(124)390 3258 y(})390 3367 y(complete)g(-D)h(-F)g
(_completion_loader)c(-o)k(bashdefault)e(-o)i(default)150
-1331 y Fs(8.7)68 b(Programmable)47 b(Completion)f(Builtins)150
-1490 y Fu(Three)21 b(builtin)g(commands)f(are)i(a)m(v)-5
+3602 y Fs(8.7)68 b(Programmable)47 b(Completion)f(Builtins)150
+3762 y Fu(Three)21 b(builtin)g(commands)f(are)i(a)m(v)-5
b(ailable)24 b(to)e(manipulate)f(the)h(programmable)f(completion)h
-(facilities:)150 1599 y(one)34 b(to)g(sp)s(ecify)f(ho)m(w)h(the)f
+(facilities:)150 3871 y(one)34 b(to)g(sp)s(ecify)f(ho)m(w)h(the)f
(argumen)m(ts)h(to)g(a)g(particular)g(command)f(are)h(to)g(b)s(e)f
-(completed,)j(and)d(t)m(w)m(o)150 1709 y(to)e(mo)s(dify)f(the)g
-(completion)i(as)e(it)h(is)g(happ)s(ening.)150 1868 y
-Ft(compgen)870 2002 y(compgen)46 b([-V)h Fj(varname)p
+(completed,)j(and)d(t)m(w)m(o)150 3981 y(to)e(mo)s(dify)f(the)g
+(completion)i(as)e(it)h(is)g(happ)s(ening.)150 4134 y
+Ft(compgen)870 4266 y(compgen)46 b([-V)h Fj(varname)p
Ft(])e([)p Fj(option)p Ft(])h([)p Fj(word)p Ft(])630
-2136 y Fu(Generate)27 b(p)s(ossible)e(completion)i(matc)m(hes)g(for)e
+4397 y Fu(Generate)27 b(p)s(ossible)e(completion)i(matc)m(hes)g(for)e
Fr(w)m(ord)k Fu(according)e(to)f(the)g Fr(option)p Fu(s,)h(whic)m(h)630
-2246 y(ma)m(y)g(b)s(e)f(an)m(y)i(option)f(accepted)h(b)m(y)e(the)h
+4507 y(ma)m(y)g(b)s(e)f(an)m(y)i(option)f(accepted)h(b)m(y)e(the)h
Ft(complete)e Fu(builtin)h(with)h(the)g(exceptions)g(of)g
-Ft(-p)p Fu(,)630 2355 y Ft(-r)p Fu(,)j Ft(-D)p Fu(,)g
+Ft(-p)p Fu(,)630 4617 y Ft(-r)p Fu(,)j Ft(-D)p Fu(,)g
Ft(-E)p Fu(,)g(and)g Ft(-I)p Fu(,)g(and)g(write)g(the)h(matc)m(hes)g
-(to)g(the)g(standard)e(output.)630 2489 y(If)f(the)i
+(to)g(the)g(standard)e(output.)630 4748 y(If)f(the)i
Ft(-V)e Fu(option)h(is)g(supplied,)f Ft(compgen)f Fu(stores)j(the)f
-(generated)h(completions)g(in)m(to)g(the)630 2599 y(indexed)24
+(generated)h(completions)g(in)m(to)g(the)630 4858 y(indexed)24
b(arra)m(y)g(v)-5 b(ariable)25 b Fr(v)-5 b(arname)29
b Fu(instead)24 b(of)h(writing)f(them)g(to)h(the)f(standard)f(output.)
-630 2733 y(When)38 b(using)g(the)h Ft(-F)e Fu(or)i Ft(-C)f
+630 4989 y(When)38 b(using)g(the)h Ft(-F)e Fu(or)i Ft(-C)f
Fu(options,)j(the)d(v)-5 b(arious)39 b(shell)f(v)-5 b(ariables)39
-b(set)g(b)m(y)g(the)f(pro-)630 2842 y(grammable)31 b(completion)h
+b(set)g(b)m(y)g(the)f(pro-)630 5099 y(grammable)31 b(completion)h
(facilities,)g(while)f(a)m(v)-5 b(ailable,)33 b(will)d(not)h(ha)m(v)m
-(e)h(useful)d(v)-5 b(alues.)630 2977 y(The)34 b(matc)m(hes)h(will)g(b)s
+(e)h(useful)d(v)-5 b(alues.)630 5230 y(The)34 b(matc)m(hes)h(will)g(b)s
(e)f(generated)h(in)f(the)h(same)g(w)m(a)m(y)g(as)g(if)f(the)h
-(programmable)f(com-)630 3086 y(pletion)d(co)s(de)g(had)f(generated)i
-(them)e(directly)i(from)e(a)h(completion)h(sp)s(eci\014cation)f(with)
-630 3196 y(the)e(same)h(\015ags.)40 b(If)29 b Fr(w)m(ord)j
-Fu(is)d(sp)s(eci\014ed,)g(only)g(those)h(completions)g(matc)m(hing)g
-Fr(w)m(ord)j Fu(will)630 3305 y(b)s(e)d(displa)m(y)m(ed)h(or)f(stored.)
-630 3439 y(The)24 b(return)g(v)-5 b(alue)25 b(is)g(true)f(unless)g(an)h
-(in)m(v)-5 b(alid)25 b(option)g(is)g(supplied,)f(or)h(no)g(matc)m(hes)g
-(w)m(ere)630 3549 y(generated.)150 3708 y Ft(complete)870
-3842 y(complete)46 b([-abcdefgjksuv])d([-o)k Fj(comp-option)p
-Ft(])e([-DEI])h([-A)h Fj(action)p Ft(])870 3951 y([-G)g
+(programmable)f(com-)630 5340 y(pletion)d(co)s(de)g(had)f(generated)i
+(them)e(directly)i(from)e(a)h(completion)h(sp)s(eci\014cation)f(with)p
+eop end
+%%Page: 162 168
+TeXDict begin 162 167 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(162)630 299 y(the)29
+b(same)h(\015ags.)40 b(If)29 b Fr(w)m(ord)j Fu(is)d(sp)s(eci\014ed,)g
+(only)g(those)h(completions)g(matc)m(hing)g Fr(w)m(ord)j
+Fu(will)630 408 y(b)s(e)d(displa)m(y)m(ed)h(or)f(stored.)630
+550 y(The)24 b(return)g(v)-5 b(alue)25 b(is)g(true)f(unless)g(an)h(in)m
+(v)-5 b(alid)25 b(option)g(is)g(supplied,)f(or)h(no)g(matc)m(hes)g(w)m
+(ere)630 660 y(generated.)150 834 y Ft(complete)870 976
+y(complete)46 b([-abcdefgjksuv])d([-o)k Fj(comp-option)p
+Ft(])e([-DEI])h([-A)h Fj(action)p Ft(])870 1085 y([-G)g
Fj(globpat)p Ft(])e([-W)i Fj(wordlist)p Ft(])f([-F)h
-Fj(function)p Ft(])e([-C)i Fj(command)p Ft(])870 4061
+Fj(function)p Ft(])e([-C)i Fj(command)p Ft(])870 1195
y([-X)g Fj(filterpat)p Ft(])e([-P)i Fj(prefix)p Ft(])f([-S)h
Fj(suffix)p Ft(])e Fj(name)i Ft([)p Fj(name)f Ft(...])870
-4171 y(complete)g(-pr)g([-DEI])h([)p Fj(name)f Ft(...)o(])630
-4305 y Fu(Sp)s(ecify)30 b(ho)m(w)g(argumen)m(ts)h(to)g(eac)m(h)g
-Fr(name)36 b Fu(should)29 b(b)s(e)h(completed.)630 4439
+1305 y(complete)g(-pr)g([-DEI])h([)p Fj(name)f Ft(...)o(])630
+1446 y Fu(Sp)s(ecify)30 b(ho)m(w)g(argumen)m(ts)h(to)g(eac)m(h)g
+Fr(name)36 b Fu(should)29 b(b)s(e)h(completed.)630 1588
y(If)22 b(the)h Ft(-p)f Fu(option)h(is)g(supplied,)g(or)f(if)h(no)f
(options)h(or)g Fr(name)5 b Fu(s)23 b(are)g(supplied,)g(prin)m(t)f
-(existing)630 4548 y(completion)29 b(sp)s(eci\014cations)g(in)f(a)g(w)m
+(existing)630 1698 y(completion)29 b(sp)s(eci\014cations)g(in)f(a)g(w)m
(a)m(y)h(that)g(allo)m(ws)g(them)f(to)h(b)s(e)e(reused)g(as)h(input.)39
-b(The)630 4658 y Ft(-r)25 b Fu(option)i(remo)m(v)m(es)g(a)f(completion)
+b(The)630 1807 y Ft(-r)25 b Fu(option)i(remo)m(v)m(es)g(a)f(completion)
h(sp)s(eci\014cation)g(for)f(eac)m(h)h Fr(name)p Fu(,)g(or,)g(if)f(no)g
-Fr(name)5 b Fu(s)26 b(are)630 4768 y(supplied,)j(all)j(completion)f(sp)
-s(eci\014cations.)630 4902 y(The)42 b Ft(-D)g Fu(option)h(indicates)g
+Fr(name)5 b Fu(s)26 b(are)630 1917 y(supplied,)j(all)j(completion)f(sp)
+s(eci\014cations.)630 2059 y(The)42 b Ft(-D)g Fu(option)h(indicates)g
(that)g(other)g(supplied)e(options)i(and)f(actions)h(should)f(ap-)630
-5011 y(ply)31 b(to)h(the)f(\\default")h(command)f(completion;)i(that)f
-(is,)f(completion)h(attempted)h(on)e(a)630 5121 y(command)e(for)g(whic)
+2168 y(ply)31 b(to)h(the)f(\\default")h(command)f(completion;)i(that)f
+(is,)f(completion)h(attempted)h(on)e(a)630 2278 y(command)e(for)g(whic)
m(h)h(no)f(completion)i(has)e(previously)g(b)s(een)g(de\014ned.)39
-b(The)29 b Ft(-E)f Fu(option)630 5230 y(indicates)d(that)g(other)g
+b(The)29 b Ft(-E)f Fu(option)630 2388 y(indicates)d(that)g(other)g
(supplied)e(options)h(and)g(actions)h(should)f(apply)f(to)i(\\empt)m
-(y")h(com-)630 5340 y(mand)e(completion;)j(that)f(is,)f(completion)h
+(y")h(com-)630 2497 y(mand)e(completion;)j(that)f(is,)f(completion)h
(attempted)g(on)e(a)h(blank)f(line.)39 b(The)24 b Ft(-I)f
-Fu(option)p eop end
-%%Page: 162 168
-TeXDict begin 162 167 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(162)630 299 y(indicates)25
-b(that)g(other)g(supplied)e(options)h(and)g(actions)h(should)f(apply)f
-(to)i(completion)h(on)630 408 y(the)j(initial)g(non-assignmen)m(t)g(w)m
-(ord)f(on)g(the)h(line,)g(or)f(after)h(a)g(command)f(delimiter)h(suc)m
-(h)630 518 y(as)35 b(`)p Ft(;)p Fu(')g(or)f(`)p Ft(|)p
-Fu(',)i(whic)m(h)f(is)f(usually)h(command)f(name)h(completion.)54
-b(If)34 b(m)m(ultiple)i(options)630 628 y(are)28 b(supplied,)e(the)i
-Ft(-D)e Fu(option)i(tak)m(es)g(precedence)g(o)m(v)m(er)g
-Ft(-E)p Fu(,)g(and)e(b)s(oth)h(tak)m(e)h(precedence)630
-737 y(o)m(v)m(er)37 b Ft(-I)p Fu(.)58 b(If)35 b(an)m(y)i(of)f
+Fu(option)630 2607 y(indicates)i(that)g(other)g(supplied)e(options)h
+(and)g(actions)h(should)f(apply)f(to)i(completion)h(on)630
+2716 y(the)j(initial)g(non-assignmen)m(t)g(w)m(ord)f(on)g(the)h(line,)g
+(or)f(after)h(a)g(command)f(delimiter)h(suc)m(h)630 2826
+y(as)35 b(`)p Ft(;)p Fu(')g(or)f(`)p Ft(|)p Fu(',)i(whic)m(h)f(is)f
+(usually)h(command)f(name)h(completion.)54 b(If)34 b(m)m(ultiple)i
+(options)630 2935 y(are)28 b(supplied,)e(the)i Ft(-D)e
+Fu(option)i(tak)m(es)g(precedence)g(o)m(v)m(er)g Ft(-E)p
+Fu(,)g(and)e(b)s(oth)h(tak)m(e)h(precedence)630 3045
+y(o)m(v)m(er)37 b Ft(-I)p Fu(.)58 b(If)35 b(an)m(y)i(of)f
Ft(-D)p Fu(,)h Ft(-E)p Fu(,)g(or)g Ft(-I)e Fu(are)i(supplied,)f(an)m(y)
-h(other)f Fr(name)41 b Fu(argumen)m(ts)c(are)630 847
+h(other)f Fr(name)41 b Fu(argumen)m(ts)c(are)630 3155
y(ignored;)31 b(these)g(completions)g(only)g(apply)f(to)h(the)f(case)i
-(sp)s(eci\014ed)d(b)m(y)i(the)f(option.)630 981 y(The)f(pro)s(cess)g
+(sp)s(eci\014ed)d(b)m(y)i(the)f(option.)630 3296 y(The)f(pro)s(cess)g
(of)h(applying)g(these)g(completion)g(sp)s(eci\014cations)h(when)d(w)m
-(ord)i(completion)630 1091 y(is)35 b(attempted)h(is)f(describ)s(ed)f
+(ord)i(completion)630 3406 y(is)35 b(attempted)h(is)f(describ)s(ed)f
(ab)s(o)m(v)m(e)j(\(see)f(Section)g(8.6)g([Programmable)g(Completion],)
-630 1200 y(page)31 b(158\).)630 1335 y(Other)d(options,)i(if)f(sp)s
+630 3516 y(page)31 b(158\).)630 3657 y(Other)d(options,)i(if)f(sp)s
(eci\014ed,)g(ha)m(v)m(e)h(the)f(follo)m(wing)i(meanings.)40
-b(The)29 b(argumen)m(ts)g(to)h(the)630 1445 y Ft(-G)p
+b(The)29 b(argumen)m(ts)g(to)h(the)630 3767 y Ft(-G)p
Fu(,)41 b Ft(-W)p Fu(,)h(and)c Ft(-X)h Fu(options)h(\(and,)h(if)f
(necessary)-8 b(,)42 b(the)e Ft(-P)f Fu(and)f Ft(-S)h
-Fu(options\))h(should)f(b)s(e)630 1554 y(quoted)28 b(to)h(protect)g
+Fu(options\))h(should)f(b)s(e)630 3877 y(quoted)28 b(to)h(protect)g
(them)f(from)f(expansion)h(b)s(efore)g(the)g Ft(complete)e
-Fu(builtin)h(is)h(in)m(v)m(ok)m(ed.)630 1714 y Ft(-o)i
-Fj(comp-option)1110 1823 y Fu(The)c Fr(comp-option)i
+Fu(builtin)h(is)h(in)m(v)m(ok)m(ed.)630 4051 y Ft(-o)i
+Fj(comp-option)1110 4160 y Fu(The)c Fr(comp-option)i
Fu(con)m(trols)g(sev)m(eral)h(asp)s(ects)e(of)g(the)g(compsp)s(ec's)g
-(b)s(eha)m(v-)1110 1933 y(ior)g(b)s(ey)m(ond)f(the)g(simple)h
+(b)s(eha)m(v-)1110 4270 y(ior)g(b)s(ey)m(ond)f(the)g(simple)h
(generation)h(of)e(completions.)41 b Fr(comp-option)27
-b Fu(ma)m(y)1110 2042 y(b)s(e)j(one)g(of:)1110 2202 y
-Ft(bashdefault)1590 2311 y Fu(P)m(erform)d(the)h(rest)f(of)h(the)g
-(default)f(Bash)h(completions)g(if)g(the)1590 2421 y(compsp)s(ec)i
-(generates)i(no)e(matc)m(hes.)1110 2580 y Ft(default)144
+b Fu(ma)m(y)1110 4379 y(b)s(e)j(one)g(of:)1110 4554 y
+Ft(bashdefault)1590 4663 y Fu(P)m(erform)d(the)h(rest)f(of)h(the)g
+(default)f(Bash)h(completions)g(if)g(the)1590 4773 y(compsp)s(ec)i
+(generates)i(no)e(matc)m(hes.)1110 4947 y Ft(default)144
b Fu(Use)22 b(Readline's)g(default)g(\014lename)g(completion)g(if)g
-(the)g(comp-)1590 2690 y(sp)s(ec)30 b(generates)i(no)e(matc)m(hes.)1110
-2849 y Ft(dirnames)96 b Fu(P)m(erform)46 b(directory)g(name)h
-(completion)g(if)f(the)g(compsp)s(ec)1590 2959 y(generates)32
-b(no)e(matc)m(hes.)1110 3118 y Ft(filenames)1590 3228
-y Fu(T)-8 b(ell)40 b(Readline)f(that)h(the)f(compsp)s(ec)f(generates)j
-(\014lenames,)1590 3337 y(so)24 b(it)g(can)g(p)s(erform)e(an)m(y)i
-(\014lename-sp)s(eci\014c)g(pro)s(cessing)f(\(suc)m(h)1590
-3447 y(as)37 b(adding)g(a)g(slash)f(to)i(directory)f(names,)i(quoting)e
-(sp)s(ecial)1590 3557 y(c)m(haracters,)28 b(or)e(suppressing)e
-(trailing)j(spaces\).)40 b(This)24 b(option)1590 3666
-y(is)44 b(in)m(tended)h(to)g(b)s(e)e(used)h(with)g(shell)h(functions)f
-(sp)s(eci\014ed)1590 3776 y(with)30 b Ft(-F)p Fu(.)1110
-3935 y Ft(fullquote)1590 4045 y Fu(T)-8 b(ell)32 b(Readline)g(to)g
-(quote)f(all)h(the)g(completed)g(w)m(ords)e(ev)m(en)i(if)1590
-4154 y(they)f(are)f(not)h(\014lenames.)1110 4314 y Ft(noquote)144
-b Fu(T)-8 b(ell)28 b(Readline)g(not)g(to)g(quote)g(the)g(completed)g(w)
-m(ords)f(if)h(they)1590 4423 y(are)j(\014lenames)f(\(quoting)h
-(\014lenames)g(is)f(the)h(default\).)1110 4583 y Ft(nosort)192
-b Fu(T)-8 b(ell)23 b(Readline)g(not)f(to)h(sort)g(the)f(list)h(of)f(p)s
-(ossible)g(completions)1590 4692 y(alphab)s(etically)-8
-b(.)1110 4852 y Ft(nospace)144 b Fu(T)-8 b(ell)40 b(Readline)g(not)g
-(to)g(app)s(end)d(a)j(space)g(\(the)f(default\))h(to)1590
-4961 y(w)m(ords)30 b(completed)h(at)g(the)g(end)f(of)g(the)h(line.)1110
-5121 y Ft(plusdirs)96 b Fu(After)47 b(generating)h(an)m(y)g(matc)m(hes)
-g(de\014ned)e(b)m(y)g(the)i(comp-)1590 5230 y(sp)s(ec,)30
-b(attempt)h(directory)g(name)f(completion)h(and)e(add)h(an)m(y)1590
-5340 y(matc)m(hes)i(to)f(the)f(results)g(of)h(the)f(other)h(actions.)p
-eop end
+(the)g(comp-)1590 5056 y(sp)s(ec)30 b(generates)i(no)e(matc)m(hes.)1110
+5230 y Ft(dirnames)96 b Fu(P)m(erform)46 b(directory)g(name)h
+(completion)g(if)f(the)g(compsp)s(ec)1590 5340 y(generates)32
+b(no)e(matc)m(hes.)p eop end
%%Page: 163 169
TeXDict begin 163 168 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(163)630 299 y Ft(-A)30
-b Fj(action)66 b Fu(The)25 b Fr(action)h Fu(ma)m(y)g(b)s(e)e(one)h(of)h
-(the)f(follo)m(wing)i(to)e(generate)i(a)e(list)h(of)f(p)s(ossible)1110
-408 y(completions:)1110 566 y Ft(alias)240 b Fu(Alias)31
-b(names.)41 b(Ma)m(y)31 b(also)h(b)s(e)e(sp)s(eci\014ed)f(as)i
-Ft(-a)p Fu(.)1110 723 y Ft(arrayvar)96 b Fu(Arra)m(y)31
-b(v)-5 b(ariable)31 b(names.)1110 880 y Ft(binding)144
-b Fu(Readline)30 b(k)m(ey)f(binding)f(names)h(\(see)h(Section)f(8.4)h
-([Bindable)1590 990 y(Readline)h(Commands],)f(page)h(147\).)1110
-1147 y Ft(builtin)144 b Fu(Names)21 b(of)g(shell)f(builtin)h(commands.)
-37 b(Ma)m(y)21 b(also)h(b)s(e)e(sp)s(eci\014ed)1590 1257
-y(as)31 b Ft(-b)p Fu(.)1110 1414 y Ft(command)144 b Fu(Command)29
+b(Command)29 b(Line)i(Editing)2062 b(163)1110 299 y Ft(filenames)1590
+408 y Fu(T)-8 b(ell)40 b(Readline)f(that)h(the)f(compsp)s(ec)f
+(generates)j(\014lenames,)1590 518 y(so)24 b(it)g(can)g(p)s(erform)e
+(an)m(y)i(\014lename-sp)s(eci\014c)g(pro)s(cessing)f(\(suc)m(h)1590
+628 y(as)37 b(adding)g(a)g(slash)f(to)i(directory)f(names,)i(quoting)e
+(sp)s(ecial)1590 737 y(c)m(haracters,)28 b(or)e(suppressing)e(trailing)
+j(spaces\).)40 b(This)24 b(option)1590 847 y(is)44 b(in)m(tended)h(to)g
+(b)s(e)e(used)h(with)g(shell)h(functions)f(sp)s(eci\014ed)1590
+956 y(with)30 b Ft(-F)p Fu(.)1110 1121 y Ft(fullquote)1590
+1230 y Fu(T)-8 b(ell)32 b(Readline)g(to)g(quote)f(all)h(the)g
+(completed)g(w)m(ords)e(ev)m(en)i(if)1590 1340 y(they)f(are)f(not)h
+(\014lenames.)1110 1504 y Ft(noquote)144 b Fu(T)-8 b(ell)28
+b(Readline)g(not)g(to)g(quote)g(the)g(completed)g(w)m(ords)f(if)h(they)
+1590 1614 y(are)j(\014lenames)f(\(quoting)h(\014lenames)g(is)f(the)h
+(default\).)1110 1778 y Ft(nosort)192 b Fu(T)-8 b(ell)23
+b(Readline)g(not)f(to)h(sort)g(the)f(list)h(of)f(p)s(ossible)g
+(completions)1590 1888 y(alphab)s(etically)-8 b(.)1110
+2052 y Ft(nospace)144 b Fu(T)-8 b(ell)40 b(Readline)g(not)g(to)g(app)s
+(end)d(a)j(space)g(\(the)f(default\))h(to)1590 2162 y(w)m(ords)30
+b(completed)h(at)g(the)g(end)f(of)g(the)h(line.)1110
+2326 y Ft(plusdirs)96 b Fu(After)47 b(generating)h(an)m(y)g(matc)m(hes)
+g(de\014ned)e(b)m(y)g(the)i(comp-)1590 2436 y(sp)s(ec,)30
+b(attempt)h(directory)g(name)f(completion)h(and)e(add)h(an)m(y)1590
+2545 y(matc)m(hes)i(to)f(the)f(results)g(of)h(the)f(other)h(actions.)
+630 2710 y Ft(-A)f Fj(action)66 b Fu(The)25 b Fr(action)h
+Fu(ma)m(y)g(b)s(e)e(one)h(of)h(the)f(follo)m(wing)i(to)e(generate)i(a)e
+(list)h(of)f(p)s(ossible)1110 2819 y(completions:)1110
+2984 y Ft(alias)240 b Fu(Alias)31 b(names.)41 b(Ma)m(y)31
+b(also)h(b)s(e)e(sp)s(eci\014ed)f(as)i Ft(-a)p Fu(.)1110
+3148 y Ft(arrayvar)96 b Fu(Arra)m(y)31 b(v)-5 b(ariable)31
+b(names.)1110 3313 y Ft(binding)144 b Fu(Readline)30
+b(k)m(ey)f(binding)f(names)h(\(see)h(Section)f(8.4)h([Bindable)1590
+3422 y(Readline)h(Commands],)f(page)h(147\).)1110 3587
+y Ft(builtin)144 b Fu(Names)21 b(of)g(shell)f(builtin)h(commands.)37
+b(Ma)m(y)21 b(also)h(b)s(e)e(sp)s(eci\014ed)1590 3696
+y(as)31 b Ft(-b)p Fu(.)1110 3861 y Ft(command)144 b Fu(Command)29
b(names.)41 b(Ma)m(y)32 b(also)f(b)s(e)f(sp)s(eci\014ed)f(as)i
-Ft(-c)p Fu(.)1110 1571 y Ft(directory)1590 1681 y Fu(Directory)h
+Ft(-c)p Fu(.)1110 4025 y Ft(directory)1590 4134 y Fu(Directory)h
(names.)40 b(Ma)m(y)32 b(also)f(b)s(e)f(sp)s(eci\014ed)g(as)g
-Ft(-d)p Fu(.)1110 1838 y Ft(disabled)96 b Fu(Names)31
-b(of)g(disabled)f(shell)g(builtins.)1110 1995 y Ft(enabled)144
+Ft(-d)p Fu(.)1110 4299 y Ft(disabled)96 b Fu(Names)31
+b(of)g(disabled)f(shell)g(builtins.)1110 4463 y Ft(enabled)144
b Fu(Names)31 b(of)g(enabled)f(shell)g(builtins.)1110
-2152 y Ft(export)192 b Fu(Names)34 b(of)f(exp)s(orted)f(shell)h(v)-5
+4628 y Ft(export)192 b Fu(Names)34 b(of)f(exp)s(orted)f(shell)h(v)-5
b(ariables.)49 b(Ma)m(y)35 b(also)e(b)s(e)g(sp)s(eci-)1590
-2262 y(\014ed)d(as)g Ft(-e)p Fu(.)1110 2419 y Ft(file)288
+4737 y(\014ed)d(as)g Ft(-e)p Fu(.)1110 4902 y Ft(file)288
b Fu(File)22 b(and)f(directory)h(names,)h(similar)f(to)g(Readline's)g
-(\014lename)1590 2529 y(completion.)42 b(Ma)m(y)32 b(also)f(b)s(e)f(sp)
-s(eci\014ed)f(as)i Ft(-f)p Fu(.)1110 2686 y Ft(function)96
-b Fu(Names)31 b(of)g(shell)f(functions.)1110 2843 y Ft(group)240
+(\014lename)1590 5011 y(completion.)42 b(Ma)m(y)32 b(also)f(b)s(e)f(sp)
+s(eci\014ed)f(as)i Ft(-f)p Fu(.)1110 5176 y Ft(function)96
+b Fu(Names)31 b(of)g(shell)f(functions.)1110 5340 y Ft(group)240
b Fu(Group)30 b(names.)40 b(Ma)m(y)32 b(also)f(b)s(e)f(sp)s(eci\014ed)g
-(as)g Ft(-g)p Fu(.)1110 3000 y Ft(helptopic)1590 3110
-y Fu(Help)37 b(topics)g(as)g(accepted)h(b)m(y)e(the)h
-Ft(help)f Fu(builtin)g(\(see)h(Sec-)1590 3220 y(tion)31
-b(4.2)g([Bash)g(Builtins],)g(page)g(61\).)1110 3377 y
+(as)g Ft(-g)p Fu(.)p eop end
+%%Page: 164 170
+TeXDict begin 164 169 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(164)1110 299 y Ft(helptopic)1590
+408 y Fu(Help)37 b(topics)g(as)g(accepted)h(b)m(y)e(the)h
+Ft(help)f Fu(builtin)g(\(see)h(Sec-)1590 518 y(tion)31
+b(4.2)g([Bash)g(Builtins],)g(page)g(61\).)1110 669 y
Ft(hostname)96 b Fu(Hostnames,)89 b(as)76 b(tak)m(en)h(from)f(the)g
-(\014le)h(sp)s(eci\014ed)e(b)m(y)1590 3486 y(the)55 b
+(\014le)h(sp)s(eci\014ed)e(b)m(y)1590 778 y(the)55 b
Ft(HOSTFILE)e Fu(shell)j(v)-5 b(ariable)56 b(\(see)g(Section)g(5.2)h
-([Bash)1590 3596 y(V)-8 b(ariables],)32 b(page)f(87\).)1110
-3753 y Ft(job)336 b Fu(Job)31 b(names,)h(if)g(job)f(con)m(trol)i(is)f
+([Bash)1590 888 y(V)-8 b(ariables],)32 b(page)f(87\).)1110
+1039 y Ft(job)336 b Fu(Job)31 b(names,)h(if)g(job)f(con)m(trol)i(is)f
(activ)m(e.)46 b(Ma)m(y)33 b(also)g(b)s(e)e(sp)s(eci-)1590
-3863 y(\014ed)f(as)g Ft(-j)p Fu(.)1110 4020 y Ft(keyword)144
+1148 y(\014ed)f(as)g Ft(-j)p Fu(.)1110 1299 y Ft(keyword)144
b Fu(Shell)30 b(reserv)m(ed)h(w)m(ords.)40 b(Ma)m(y)32
b(also)f(b)s(e)f(sp)s(eci\014ed)f(as)i Ft(-k)p Fu(.)1110
-4177 y Ft(running)144 b Fu(Names)31 b(of)g(running)d(jobs,)i(if)h(job)f
-(con)m(trol)h(is)g(activ)m(e.)1110 4335 y Ft(service)144
+1450 y Ft(running)144 b Fu(Names)31 b(of)g(running)d(jobs,)i(if)h(job)f
+(con)m(trol)h(is)g(activ)m(e.)1110 1600 y Ft(service)144
b Fu(Service)31 b(names.)41 b(Ma)m(y)31 b(also)g(b)s(e)f(sp)s
-(eci\014ed)g(as)g Ft(-s)p Fu(.)1110 4492 y Ft(setopt)192
+(eci\014ed)g(as)g Ft(-s)p Fu(.)1110 1751 y Ft(setopt)192
b Fu(V)-8 b(alid)39 b(argumen)m(ts)g(for)f(the)h Ft(-o)e
-Fu(option)i(to)g(the)g Ft(set)e Fu(builtin)1590 4601
+Fu(option)i(to)g(the)g Ft(set)e Fu(builtin)1590 1861
y(\(see)31 b(Section)h(4.3.1)g([The)e(Set)g(Builtin],)i(page)f(74\).)
-1110 4759 y Ft(shopt)240 b Fu(Shell)40 b(option)g(names)g(as)g
+1110 2011 y Ft(shopt)240 b Fu(Shell)40 b(option)g(names)g(as)g
(accepted)i(b)m(y)e(the)g Ft(shopt)e Fu(builtin)1590
-4868 y(\(see)31 b(Section)h(4.2)f([Bash)g(Builtins],)g(page)g(61\).)
-1110 5026 y Ft(signal)192 b Fu(Signal)31 b(names.)1110
-5183 y Ft(stopped)144 b Fu(Names)31 b(of)g(stopp)s(ed)e(jobs,)h(if)g
-(job)g(con)m(trol)i(is)f(activ)m(e.)1110 5340 y Ft(user)288
+2121 y(\(see)31 b(Section)h(4.2)f([Bash)g(Builtins],)g(page)g(61\).)
+1110 2271 y Ft(signal)192 b Fu(Signal)31 b(names.)1110
+2422 y Ft(stopped)144 b Fu(Names)31 b(of)g(stopp)s(ed)e(jobs,)h(if)g
+(job)g(con)m(trol)i(is)f(activ)m(e.)1110 2573 y Ft(user)288
b Fu(User)30 b(names.)41 b(Ma)m(y)32 b(also)f(b)s(e)f(sp)s(eci\014ed)f
-(as)i Ft(-u)p Fu(.)p eop end
-%%Page: 164 170
-TeXDict begin 164 169 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(164)1110 299 y Ft(variable)96
-b Fu(Names)36 b(of)g(all)g(shell)g(v)-5 b(ariables.)56
-b(Ma)m(y)37 b(also)f(b)s(e)f(sp)s(eci\014ed)g(as)1590
-408 y Ft(-v)p Fu(.)630 576 y Ft(-C)30 b Fj(command)1110
-685 y Fr(command)35 b Fu(is)e(executed)g(in)e(a)i(subshell)e(en)m
-(vironmen)m(t,)i(and)f(its)g(output)g(is)1110 795 y(used)38
-b(as)h(the)g(p)s(ossible)f(completions.)67 b(Argumen)m(ts)39
-b(are)g(passed)f(as)h(with)1110 905 y(the)31 b Ft(-F)e
-Fu(option.)630 1072 y Ft(-F)h Fj(function)1110 1181 y
-Fu(The)39 b(shell)g(function)g Fr(function)g Fu(is)g(executed)h(in)f
-(the)g(curren)m(t)g(shell)g(en)m(vi-)1110 1291 y(ronmen)m(t.)h(When)30
-b(it)g(is)f(executed,)i(the)f(\014rst)f(argumen)m(t)h(\($1\))h(is)e
-(the)h(name)1110 1401 y(of)41 b(the)g(command)f(whose)h(argumen)m(ts)f
-(are)i(b)s(eing)e(completed,)k(the)d(sec-)1110 1510 y(ond)k(argumen)m
-(t)h(\($2\))h(is)f(the)g(w)m(ord)f(b)s(eing)g(completed,)51
-b(and)45 b(the)h(third)1110 1620 y(argumen)m(t)c(\($3\))i(is)e(the)g(w)
-m(ord)f(preceding)h(the)g(w)m(ord)f(b)s(eing)h(completed,)1110
-1729 y(as)f(describ)s(ed)f(ab)s(o)m(v)m(e)i(\(see)g(Section)f(8.6)h
-([Programmable)g(Completion],)1110 1839 y(page)31 b(158\).)42
-b(When)29 b Ft(function)f Fu(\014nishes,)h(programmable)h(completion)h
-(re-)1110 1948 y(triev)m(es)38 b(the)f(p)s(ossible)f(completions)i
-(from)e(the)h(v)-5 b(alue)37 b(of)g(the)f Ft(COMPREPLY)1110
-2058 y Fu(arra)m(y)31 b(v)-5 b(ariable.)630 2225 y Ft(-G)30
-b Fj(globpat)1110 2335 y Fu(Expand)43 b(the)h(\014lename)h(expansion)f
-(pattern)g Fr(globpat)j Fu(to)e(generate)h(the)1110 2445
-y(p)s(ossible)30 b(completions.)630 2612 y Ft(-P)g Fj(prefix)66
+(as)i Ft(-u)p Fu(.)1110 2724 y Ft(variable)96 b Fu(Names)36
+b(of)g(all)g(shell)g(v)-5 b(ariables.)56 b(Ma)m(y)37
+b(also)f(b)s(e)f(sp)s(eci\014ed)g(as)1590 2833 y Ft(-v)p
+Fu(.)630 2984 y Ft(-C)30 b Fj(command)1110 3093 y Fr(command)35
+b Fu(is)e(executed)g(in)e(a)i(subshell)e(en)m(vironmen)m(t,)i(and)f
+(its)g(output)g(is)1110 3203 y(used)38 b(as)h(the)g(p)s(ossible)f
+(completions.)67 b(Argumen)m(ts)39 b(are)g(passed)f(as)h(with)1110
+3313 y(the)31 b Ft(-F)e Fu(option.)630 3463 y Ft(-F)h
+Fj(function)1110 3573 y Fu(The)39 b(shell)g(function)g
+Fr(function)g Fu(is)g(executed)h(in)f(the)g(curren)m(t)g(shell)g(en)m
+(vi-)1110 3682 y(ronmen)m(t.)h(When)30 b(it)g(is)f(executed,)i(the)f
+(\014rst)f(argumen)m(t)h(\($1\))h(is)e(the)h(name)1110
+3792 y(of)41 b(the)g(command)f(whose)h(argumen)m(ts)f(are)i(b)s(eing)e
+(completed,)k(the)d(sec-)1110 3902 y(ond)k(argumen)m(t)h(\($2\))h(is)f
+(the)g(w)m(ord)f(b)s(eing)g(completed,)51 b(and)45 b(the)h(third)1110
+4011 y(argumen)m(t)c(\($3\))i(is)e(the)g(w)m(ord)f(preceding)h(the)g(w)
+m(ord)f(b)s(eing)h(completed,)1110 4121 y(as)f(describ)s(ed)f(ab)s(o)m
+(v)m(e)i(\(see)g(Section)f(8.6)h([Programmable)g(Completion],)1110
+4230 y(page)31 b(158\).)42 b(When)29 b Ft(function)f
+Fu(\014nishes,)h(programmable)h(completion)h(re-)1110
+4340 y(triev)m(es)38 b(the)f(p)s(ossible)f(completions)i(from)e(the)h
+(v)-5 b(alue)37 b(of)g(the)f Ft(COMPREPLY)1110 4450 y
+Fu(arra)m(y)31 b(v)-5 b(ariable.)630 4600 y Ft(-G)30
+b Fj(globpat)1110 4710 y Fu(Expand)43 b(the)h(\014lename)h(expansion)f
+(pattern)g Fr(globpat)j Fu(to)e(generate)h(the)1110 4819
+y(p)s(ossible)30 b(completions.)630 4970 y Ft(-P)g Fj(prefix)66
b Fu(Add)36 b Fr(pre\014x)43 b Fu(to)38 b(the)f(b)s(eginning)g(of)g
(eac)m(h)i(p)s(ossible)e(completion)h(after)g(all)1110
-2721 y(other)31 b(options)f(ha)m(v)m(e)i(b)s(een)e(applied.)630
-2889 y Ft(-S)g Fj(suffix)66 b Fu(App)s(end)35 b Fr(su\016x)43
+5080 y(other)31 b(options)f(ha)m(v)m(e)i(b)s(een)e(applied.)630
+5230 y Ft(-S)g Fj(suffix)66 b Fu(App)s(end)35 b Fr(su\016x)43
b Fu(to)37 b(eac)m(h)i(p)s(ossible)d(completion)j(after)e(all)h(other)g
-(options)1110 2998 y(ha)m(v)m(e)32 b(b)s(een)d(applied.)630
-3165 y Ft(-W)h Fj(wordlist)1110 3275 y Fu(Split)35 b(the)g
-Fr(w)m(ordlist)j Fu(using)c(the)i(c)m(haracters)g(in)f(the)g
-Ft(IFS)f Fu(sp)s(ecial)i(v)-5 b(ariable)1110 3385 y(as)43
-b(delimiters,)j(and)c(expand)g(eac)m(h)i(resulting)f(w)m(ord.)76
-b(Shell)43 b(quoting)g(is)1110 3494 y(honored)37 b(within)g
-Fr(w)m(ordlist)j Fu(in)d(order)g(to)i(pro)m(vide)e(a)h(mec)m(hanism)g
-(for)g(the)1110 3604 y(w)m(ords)29 b(to)i(con)m(tain)g(shell)f(metac)m
-(haracters)j(or)c(c)m(haracters)j(in)d(the)h(v)-5 b(alue)31
-b(of)1110 3713 y Ft(IFS)p Fu(.)66 b(The)39 b(p)s(ossible)g(completions)
-h(are)g(the)f(mem)m(b)s(ers)f(of)i(the)f(resultan)m(t)1110
-3823 y(list)31 b(whic)m(h)f(matc)m(h)h(a)g(pre\014x)e(of)i(the)g(w)m
-(ord)f(b)s(eing)f(completed.)630 3990 y Ft(-X)h Fj(filterpat)1110
-4100 y Fr(\014lterpat)d Fu(is)e(a)g(pattern)g(as)f(used)g(for)h
+(options)1110 5340 y(ha)m(v)m(e)32 b(b)s(een)d(applied.)p
+eop end
+%%Page: 165 171
+TeXDict begin 165 170 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(165)630 299 y Ft(-W)30
+b Fj(wordlist)1110 408 y Fu(Split)35 b(the)g Fr(w)m(ordlist)j
+Fu(using)c(the)i(c)m(haracters)g(in)f(the)g Ft(IFS)f
+Fu(sp)s(ecial)i(v)-5 b(ariable)1110 518 y(as)43 b(delimiters,)j(and)c
+(expand)g(eac)m(h)i(resulting)f(w)m(ord.)76 b(Shell)43
+b(quoting)g(is)1110 628 y(honored)37 b(within)g Fr(w)m(ordlist)j
+Fu(in)d(order)g(to)i(pro)m(vide)e(a)h(mec)m(hanism)g(for)g(the)1110
+737 y(w)m(ords)29 b(to)i(con)m(tain)g(shell)f(metac)m(haracters)j(or)c
+(c)m(haracters)j(in)d(the)h(v)-5 b(alue)31 b(of)1110
+847 y Ft(IFS)p Fu(.)66 b(The)39 b(p)s(ossible)g(completions)h(are)g
+(the)f(mem)m(b)s(ers)f(of)i(the)f(resultan)m(t)1110 956
+y(list)31 b(whic)m(h)f(matc)m(h)h(a)g(pre\014x)e(of)i(the)g(w)m(ord)f
+(b)s(eing)f(completed.)630 1124 y Ft(-X)h Fj(filterpat)1110
+1234 y Fr(\014lterpat)d Fu(is)e(a)g(pattern)g(as)f(used)g(for)h
(\014lename)g(expansion.)38 b(It)25 b(is)g(applied)f(to)1110
-4209 y(the)30 b(list)f(of)h(p)s(ossible)f(completions)h(generated)h(b)m
-(y)e(the)g(preceding)h(options)1110 4319 y(and)d(argumen)m(ts,)i(and)e
+1344 y(the)30 b(list)f(of)h(p)s(ossible)f(completions)h(generated)h(b)m
+(y)e(the)g(preceding)h(options)1110 1453 y(and)d(argumen)m(ts,)i(and)e
(eac)m(h)i(completion)g(matc)m(hing)g Fr(\014lterpat)h
-Fu(is)e(remo)m(v)m(ed)1110 4429 y(from)i(the)h(list.)42
+Fu(is)e(remo)m(v)m(ed)1110 1563 y(from)i(the)h(list.)42
b(A)30 b(leading)i(`)p Ft(!)p Fu(')e(in)g Fr(\014lterpat)j
-Fu(negates)f(the)f(pattern;)g(in)f(this)1110 4538 y(case,)i(an)m(y)e
+Fu(negates)f(the)f(pattern;)g(in)f(this)1110 1672 y(case,)i(an)m(y)e
(completion)i(not)f(matc)m(hing)g Fr(\014lterpat)i Fu(is)d(remo)m(v)m
-(ed.)630 4706 y(The)35 b(return)g(v)-5 b(alue)37 b(is)f(true)f(unless)h
+(ed.)630 1840 y(The)35 b(return)g(v)-5 b(alue)37 b(is)f(true)f(unless)h
(an)f(in)m(v)-5 b(alid)37 b(option)f(is)g(supplied,)g(an)g(option)h
-(other)630 4815 y(than)29 b Ft(-p)p Fu(,)g Ft(-r)p Fu(,)h
+(other)630 1950 y(than)29 b Ft(-p)p Fu(,)g Ft(-r)p Fu(,)h
Ft(-D)p Fu(,)f Ft(-E)p Fu(,)g(or)h Ft(-I)e Fu(is)i(supplied)e(without)h
(a)h Fr(name)35 b Fu(argumen)m(t,)30 b(an)f(attempt)i(is)630
-4925 y(made)24 b(to)g(remo)m(v)m(e)i(a)e(completion)h(sp)s
+2059 y(made)24 b(to)g(remo)m(v)m(e)i(a)e(completion)h(sp)s
(eci\014cation)g(for)e(a)h Fr(name)29 b Fu(for)24 b(whic)m(h)f(no)h(sp)
-s(eci\014cation)630 5034 y(exists,)31 b(or)g(an)f(error)g(o)s(ccurs)g
-(adding)g(a)h(completion)g(sp)s(eci\014cation.)150 5202
-y Ft(compopt)870 5340 y(compopt)46 b([-o)h Fj(option)p
+s(eci\014cation)630 2169 y(exists,)31 b(or)g(an)f(error)g(o)s(ccurs)g
+(adding)g(a)h(completion)g(sp)s(eci\014cation.)150 2337
+y Ft(compopt)870 2476 y(compopt)46 b([-o)h Fj(option)p
Ft(])f([-DEI])g([+o)h Fj(option)p Ft(])e([)p Fj(name)p
-Ft(])p eop end
-%%Page: 165 171
-TeXDict begin 165 170 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(165)630 299 y(Mo)s(dify)33
-b(completion)h(options)g(for)f(eac)m(h)h Fr(name)39 b
-Fu(according)34 b(to)g(the)f Fr(option)p Fu(s,)i(or)e(for)g(the)630
-408 y(curren)m(tly-executing)46 b(completion)f(if)f(no)f
-Fr(name)5 b Fu(s)44 b(are)h(supplied.)80 b(If)43 b(no)h
-Fr(option)p Fu(s)h(are)630 518 y(giv)m(en,)30 b(displa)m(y)e(the)g
-(completion)h(options)g(for)e(eac)m(h)i Fr(name)34 b
-Fu(or)27 b(the)i(curren)m(t)e(completion.)630 628 y(The)f(p)s(ossible)g
-(v)-5 b(alues)27 b(of)f Fr(option)h Fu(are)g(those)g(v)-5
-b(alid)26 b(for)g(the)h Ft(complete)d Fu(builtin)i(describ)s(ed)630
-737 y(ab)s(o)m(v)m(e.)630 869 y(The)35 b Ft(-D)g Fu(option)g(indicates)
-i(that)f(other)f(supplied)g(options)g(should)g(apply)g(to)h(the)f
-(\\de-)630 978 y(fault")24 b(command)f(completion;)k(the)c
-Ft(-E)f Fu(option)i(indicates)g(that)g(other)f(supplied)f(options)630
-1088 y(should)f(apply)g(to)i(\\empt)m(y")g(command)f(completion;)k(and)
-c(the)g Ft(-I)f Fu(option)h(indicates)h(that)630 1198
+Ft(])630 2614 y Fu(Mo)s(dify)33 b(completion)h(options)g(for)f(eac)m(h)
+h Fr(name)39 b Fu(according)34 b(to)g(the)f Fr(option)p
+Fu(s,)i(or)e(for)g(the)630 2724 y(curren)m(tly-executing)46
+b(completion)f(if)f(no)f Fr(name)5 b Fu(s)44 b(are)h(supplied.)80
+b(If)43 b(no)h Fr(option)p Fu(s)h(are)630 2834 y(giv)m(en,)30
+b(displa)m(y)e(the)g(completion)h(options)g(for)e(eac)m(h)i
+Fr(name)34 b Fu(or)27 b(the)i(curren)m(t)e(completion.)630
+2943 y(The)f(p)s(ossible)g(v)-5 b(alues)27 b(of)f Fr(option)h
+Fu(are)g(those)g(v)-5 b(alid)26 b(for)g(the)h Ft(complete)d
+Fu(builtin)i(describ)s(ed)630 3053 y(ab)s(o)m(v)m(e.)630
+3191 y(The)35 b Ft(-D)g Fu(option)g(indicates)i(that)f(other)f
+(supplied)g(options)g(should)g(apply)g(to)h(the)f(\\de-)630
+3301 y(fault")24 b(command)f(completion;)k(the)c Ft(-E)f
+Fu(option)i(indicates)g(that)g(other)f(supplied)f(options)630
+3411 y(should)f(apply)g(to)i(\\empt)m(y")g(command)f(completion;)k(and)
+c(the)g Ft(-I)f Fu(option)h(indicates)h(that)630 3520
y(other)36 b(supplied)f(options)h(should)f(apply)h(to)h(completion)g
-(on)f(the)g(initial)h(w)m(ord)f(on)g(the)630 1307 y(line.)41
+(on)f(the)g(initial)h(w)m(ord)f(on)g(the)630 3630 y(line.)41
b(These)30 b(are)h(determined)f(in)g(the)h(same)f(w)m(a)m(y)i(as)e(the)
-h Ft(complete)d Fu(builtin.)630 1439 y(If)35 b(m)m(ultiple)i(options)f
+h Ft(complete)d Fu(builtin.)630 3769 y(If)35 b(m)m(ultiple)i(options)f
(are)g(supplied,)g(the)g Ft(-D)g Fu(option)g(tak)m(es)h(precedence)g(o)
-m(v)m(er)g Ft(-E)p Fu(,)g(and)630 1548 y(b)s(oth)30 b(tak)m(e)i
-(precedence)e(o)m(v)m(er)i Ft(-I)630 1680 y Fu(The)23
+m(v)m(er)g Ft(-E)p Fu(,)g(and)630 3878 y(b)s(oth)30 b(tak)m(e)i
+(precedence)e(o)m(v)m(er)i Ft(-I)630 4017 y Fu(The)23
b(return)g(v)-5 b(alue)25 b(is)f(true)g(unless)f(an)h(in)m(v)-5
b(alid)24 b(option)h(is)f(supplied,)g(an)g(attempt)h(is)f(made)630
-1789 y(to)32 b(mo)s(dify)f(the)g(options)h(for)f(a)h
+4127 y(to)32 b(mo)s(dify)f(the)g(options)h(for)f(a)h
Fr(name)k Fu(for)31 b(whic)m(h)g(no)g(completion)i(sp)s(eci\014cation)f
-(exists,)630 1899 y(or)e(an)h(output)f(error)g(o)s(ccurs.)150
-2134 y Fs(8.8)68 b(A)44 b(Programmable)j(Completion)f(Example)150
-2293 y Fu(The)37 b(most)g(common)g(w)m(a)m(y)i(to)e(obtain)h
+(exists,)630 4236 y(or)e(an)h(output)f(error)g(o)s(ccurs.)150
+4490 y Fs(8.8)68 b(A)44 b(Programmable)j(Completion)f(Example)150
+4649 y Fu(The)37 b(most)g(common)g(w)m(a)m(y)i(to)e(obtain)h
(additional)g(completion)g(functionalit)m(y)h(b)s(ey)m(ond)d(the)i
-(default)150 2403 y(actions)29 b Ft(complete)d Fu(and)i
+(default)150 4759 y(actions)29 b Ft(complete)d Fu(and)i
Ft(compgen)e Fu(pro)m(vide)i(is)h(to)f(use)g(a)h(shell)f(function)g
-(and)g(bind)e(it)j(to)g(a)g(particular)150 2512 y(command)h(using)g
-Ft(complete)e(-F)p Fu(.)275 2644 y(The)j(follo)m(wing)j(function)e(pro)
+(and)g(bind)e(it)j(to)g(a)g(particular)150 4868 y(command)h(using)g
+Ft(complete)e(-F)p Fu(.)275 5011 y(The)j(follo)m(wing)j(function)e(pro)
m(vides)g(completions)i(for)e(the)g Ft(cd)g Fu(builtin.)46
-b(It)32 b(is)h(a)f(reasonably)h(go)s(o)s(d)150 2754 y(example)41
+b(It)32 b(is)h(a)f(reasonably)h(go)s(o)s(d)150 5121 y(example)41
b(of)g(what)f(shell)h(functions)f(m)m(ust)g(do)h(when)e(used)h(for)g
-(completion.)73 b(This)39 b(function)h(uses)150 2863
+(completion.)73 b(This)39 b(function)h(uses)150 5230
y(the)32 b(w)m(ord)f(passed)g(as)h Ft($2)f Fu(to)h(determine)g(the)f
(directory)h(name)g(to)g(complete.)46 b(Y)-8 b(ou)32
-b(can)g(also)g(use)g(the)150 2973 y Ft(COMP_WORDS)c Fu(arra)m(y)i(v)-5
+b(can)g(also)g(use)g(the)150 5340 y Ft(COMP_WORDS)c Fu(arra)m(y)i(v)-5
b(ariable;)32 b(the)e(curren)m(t)h(w)m(ord)f(is)g(indexed)g(b)m(y)g
-(the)h Ft(COMP_CWORD)c Fu(v)-5 b(ariable.)275 3104 y(The)42
+(the)h Ft(COMP_CWORD)c Fu(v)-5 b(ariable.)p eop end
+%%Page: 166 172
+TeXDict begin 166 171 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(166)275 299 y(The)42
b(function)h(relies)h(on)e(the)i Ft(complete)c Fu(and)j
Ft(compgen)e Fu(builtins)h(to)i(do)f(m)m(uc)m(h)g(of)g(the)h(w)m(ork,)
-150 3214 y(adding)25 b(only)h(the)g(things)g(that)g(the)g(Bash)g
+150 408 y(adding)25 b(only)h(the)g(things)g(that)g(the)g(Bash)g
Ft(cd)f Fu(do)s(es)g(b)s(ey)m(ond)g(accepting)j(basic)e(directory)g
-(names:)38 b(tilde)150 3323 y(expansion)22 b(\(see)h(Section)g(3.5.2)g
+(names:)38 b(tilde)150 518 y(expansion)22 b(\(see)h(Section)g(3.5.2)g
([Tilde)g(Expansion],)g(page)g(26\),)i(searc)m(hing)e(directories)g(in)
-e Fr($CDP)-8 b(A)g(TH)p Fu(,)150 3433 y(whic)m(h)21 b(is)h(describ)s
-(ed)e(ab)s(o)m(v)m(e)j(\(see)f(Section)h(4.1)f([Bourne)g(Shell)f
+e Fr($CDP)-8 b(A)g(TH)p Fu(,)150 628 y(whic)m(h)21 b(is)h(describ)s(ed)
+e(ab)s(o)m(v)m(e)j(\(see)f(Section)h(4.1)f([Bourne)g(Shell)f
(Builtins],)j(page)e(52\),)j(and)c(basic)h(supp)s(ort)150
-3543 y(for)31 b(the)h Ft(cdable_vars)d Fu(shell)i(option)h(\(see)h
+737 y(for)31 b(the)h Ft(cdable_vars)d Fu(shell)i(option)h(\(see)h
(Section)f(4.3.2)i([The)d(Shopt)g(Builtin],)i(page)f(78\).)46
-b Ft(_comp_)150 3652 y(cd)30 b Fu(mo)s(di\014es)g(the)h(v)-5
+b Ft(_comp_)150 847 y(cd)30 b Fu(mo)s(di\014es)g(the)h(v)-5
b(alue)31 b(of)g Fr(IFS)36 b Fu(so)31 b(that)g(it)g(con)m(tains)h(only)
f(a)g(newline)g(to)h(accommo)s(date)g(\014le)f(names)150
-3762 y(con)m(taining)i(spaces)g(and)e(tabs)h({)g Ft(compgen)e
+956 y(con)m(taining)i(spaces)g(and)e(tabs)h({)g Ft(compgen)e
Fu(prin)m(ts)h(the)h(p)s(ossible)f(completions)i(it)g(generates)g(one)f
-(p)s(er)150 3871 y(line.)275 4003 y(P)m(ossible)24 b(completions)h(go)g
+(p)s(er)150 1066 y(line.)275 1230 y(P)m(ossible)24 b(completions)h(go)g
(in)m(to)g(the)f Fr(COMPREPL)-8 b(Y)36 b Fu(arra)m(y)24
b(v)-5 b(ariable,)26 b(one)e(completion)i(p)s(er)c(arra)m(y)150
-4113 y(elemen)m(t.)42 b(The)30 b(programmable)g(completion)i(system)e
+1340 y(elemen)m(t.)42 b(The)30 b(programmable)g(completion)i(system)e
(retriev)m(es)h(the)g(completions)g(from)f(there)g(when)150
-4222 y(the)h(function)f(returns.)390 4354 y Ft(#)47 b(A)h(completion)d
-(function)g(for)i(the)g(cd)g(builtin)390 4463 y(#)g(based)g(on)g(the)g
+1450 y(the)h(function)f(returns.)390 1614 y Ft(#)47 b(A)h(completion)d
+(function)g(for)i(the)g(cd)g(builtin)390 1724 y(#)g(based)g(on)g(the)g
(cd)g(completion)e(function)h(from)g(the)h(bash_completion)d(package)
-390 4573 y(_comp_cd\(\))390 4682 y({)581 4792 y(local)i(IFS=$')g
-(\\t\\n')190 b(#)47 b(normalize)f(IFS)581 4902 y(local)g(cur)h
-(_skipdot)f(_cdpath)581 5011 y(local)g(i)i(j)f(k)581
-5230 y(#)g(Tilde)g(expansion,)e(which)h(also)h(expands)f(tilde)g(to)h
-(full)g(pathname)581 5340 y(case)g("$2")f(in)p eop end
-%%Page: 166 172
-TeXDict begin 166 171 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(166)581 299 y Ft(\\~*\))190
-b(eval)46 b(cur="$2")g(;;)581 408 y(*\))286 b(cur=$2)46
-b(;;)581 518 y(esac)581 737 y(#)h(no)h(cdpath)e(or)h(absolute)e
-(pathname)h(--)h(straight)f(directory)f(completion)581
-847 y(if)i([[)g(-z)g("${CDPATH:-}")e(]])i(||)g([[)g("$cur")f(==)h
-(@\(./*|../*|/*\))d(]];)j(then)772 956 y(#)g(compgen)f(prints)g(paths)h
-(one)f(per)h(line;)g(could)f(also)h(use)g(while)f(loop)772
-1066 y(IFS=$'\\n')772 1176 y(COMPREPLY=\()f($\(compgen)g(-d)i(--)g
-("$cur"\))f(\))772 1285 y(IFS=$')g(\\t\\n')581 1395 y(#)h
+390 1833 y(_comp_cd\(\))390 1943 y({)581 2052 y(local)i(IFS=$')g
+(\\t\\n')190 b(#)47 b(normalize)f(IFS)581 2162 y(local)g(cur)h
+(_skipdot)f(_cdpath)581 2271 y(local)g(i)i(j)f(k)581
+2491 y(#)g(Tilde)g(expansion,)e(which)h(also)h(expands)f(tilde)g(to)h
+(full)g(pathname)581 2600 y(case)g("$2")f(in)581 2710
+y(\\~*\))190 b(eval)46 b(cur="$2")g(;;)581 2819 y(*\))286
+b(cur=$2)46 b(;;)581 2929 y(esac)581 3148 y(#)h(no)h(cdpath)e(or)h
+(absolute)e(pathname)h(--)h(straight)f(directory)f(completion)581
+3258 y(if)i([[)g(-z)g("${CDPATH:-}")e(]])i(||)g([[)g("$cur")f(==)h
+(@\(./*|../*|/*\))d(]];)j(then)772 3367 y(#)g(compgen)f(prints)g(paths)
+h(one)f(per)h(line;)g(could)f(also)h(use)g(while)f(loop)772
+3477 y(IFS=$'\\n')772 3587 y(COMPREPLY=\()f($\(compgen)g(-d)i(--)g
+("$cur"\))f(\))772 3696 y(IFS=$')g(\\t\\n')581 3806 y(#)h
(CDPATH+directories)c(in)k(the)g(current)f(directory)f(if)j(not)e(in)i
-(CDPATH)581 1504 y(else)772 1614 y(IFS=$'\\n')772 1724
-y(_skipdot=false)772 1833 y(#)f(preprocess)e(CDPATH)h(to)i(convert)d
-(null)i(directory)e(names)i(to)g(.)772 1943 y(_cdpath=${CDPATH/#:/.:})
-772 2052 y(_cdpath=${_cdpath//::/:.)o(:})772 2162 y
-(_cdpath=${_cdpath/\045:/:.})772 2271 y(for)g(i)g(in)g
-(${_cdpath//:/$'\\n'};)c(do)963 2381 y(if)k([[)g($i)g(-ef)g(.)h(]];)f
-(then)f(_skipdot=true;)e(fi)963 2491 y(k="${#COMPREPLY[@]}")963
-2600 y(for)j(j)g(in)g($\()g(compgen)f(-d)h(--)h("$i/$cur")d(\);)i(do)
-1154 2710 y(COMPREPLY[k++]=${j#$i/})375 b(#)48 b(cut)f(off)f(directory)
-963 2819 y(done)772 2929 y(done)772 3039 y($_skipdot)f(||)i
-(COMPREPLY+=\()e($\(compgen)g(-d)i(--)g("$cur"\))f(\))772
-3148 y(IFS=$')g(\\t\\n')581 3258 y(fi)581 3477 y(#)h(variable)f(names)g
+(CDPATH)581 3915 y(else)772 4025 y(IFS=$'\\n')772 4134
+y(_skipdot=false)772 4244 y(#)f(preprocess)e(CDPATH)h(to)i(convert)d
+(null)i(directory)e(names)i(to)g(.)772 4354 y(_cdpath=${CDPATH/#:/.:})
+772 4463 y(_cdpath=${_cdpath//::/:.)o(:})772 4573 y
+(_cdpath=${_cdpath/\045:/:.})772 4682 y(for)g(i)g(in)g
+(${_cdpath//:/$'\\n'};)c(do)963 4792 y(if)k([[)g($i)g(-ef)g(.)h(]];)f
+(then)f(_skipdot=true;)e(fi)963 4902 y(k="${#COMPREPLY[@]}")963
+5011 y(for)j(j)g(in)g($\()g(compgen)f(-d)h(--)h("$i/$cur")d(\);)i(do)
+1154 5121 y(COMPREPLY[k++]=${j#$i/})375 b(#)48 b(cut)f(off)f(directory)
+963 5230 y(done)772 5340 y(done)p eop end
+%%Page: 167 173
+TeXDict begin 167 172 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(167)772 299 y Ft($_skipdot)45
+b(||)i(COMPREPLY+=\()e($\(compgen)g(-d)i(--)g("$cur"\))f(\))772
+408 y(IFS=$')g(\\t\\n')581 518 y(fi)581 737 y(#)h(variable)f(names)g
(if)h(appropriate)e(shell)i(option)f(set)h(and)f(no)i(completions)581
-3587 y(if)f(shopt)f(-q)i(cdable_vars)c(&&)k([[)f(${#COMPREPLY[@]})c
-(-eq)k(0)g(]];)g(then)772 3696 y(COMPREPLY=\()e($\(compgen)g(-v)i(--)g
-("$cur"\))f(\))581 3806 y(fi)581 4025 y(return)g(0)390
-4134 y(})275 4281 y Fu(W)-8 b(e)31 b(install)g(the)g(completion)h
+847 y(if)f(shopt)f(-q)i(cdable_vars)c(&&)k([[)f(${#COMPREPLY[@]})c(-eq)
+k(0)g(]];)g(then)772 956 y(COMPREPLY=\()e($\(compgen)g(-v)i(--)g
+("$cur"\))f(\))581 1066 y(fi)581 1285 y(return)g(0)390
+1395 y(})275 1529 y Fu(W)-8 b(e)31 b(install)g(the)g(completion)h
(function)e(using)f(the)i Ft(-F)f Fu(option)h(to)g Ft(complete)p
-Fu(:)390 4427 y Ft(#)47 b(Tell)g(readline)f(to)h(quote)f(appropriate)f
-(and)i(append)f(slashes)g(to)h(directories;)390 4536
+Fu(:)390 1664 y Ft(#)47 b(Tell)g(readline)f(to)h(quote)f(appropriate)f
+(and)i(append)f(slashes)g(to)h(directories;)390 1773
y(#)g(use)g(the)g(bash)g(default)f(completion)f(for)i(other)f
-(arguments)390 4646 y(complete)g(-o)h(filenames)e(-o)i(nospace)f(-o)h
-(bashdefault)e(-F)i(_comp_cd)f(cd)150 4792 y Fu(Since)33
+(arguments)390 1883 y(complete)g(-o)h(filenames)e(-o)i(nospace)f(-o)h
+(bashdefault)e(-F)i(_comp_cd)f(cd)150 2017 y Fu(Since)33
b(w)m(e'd)g(lik)m(e)i(Bash)e(and)f(Readline)i(to)g(tak)m(e)g(care)g(of)
f(some)h(of)f(the)g(other)h(details)g(for)e(us,)i(w)m(e)f(use)150
-4902 y(sev)m(eral)43 b(other)g(options)f(to)h(tell)g(Bash)f(and)f
+2127 y(sev)m(eral)43 b(other)g(options)f(to)h(tell)g(Bash)f(and)f
(Readline)i(what)f(to)g(do.)76 b(The)41 b Ft(-o)30 b(filenames)39
-b Fu(option)150 5011 y(tells)j(Readline)g(that)g(the)f(p)s(ossible)g
+b Fu(option)150 2237 y(tells)j(Readline)g(that)g(the)f(p)s(ossible)g
(completions)h(should)f(b)s(e)f(treated)i(as)g(\014lenames,)i(and)d
-(quoted)150 5121 y(appropriately)-8 b(.)53 b(That)34
+(quoted)150 2346 y(appropriately)-8 b(.)53 b(That)34
b(option)h(will)g(also)g(cause)g(Readline)g(to)g(app)s(end)e(a)h(slash)
-g(to)h(\014lenames)g(it)g(can)150 5230 y(determine)i(are)g(directories)
+g(to)h(\014lenames)g(it)g(can)150 2456 y(determine)i(are)g(directories)
h(\(whic)m(h)g(is)f(wh)m(y)f(w)m(e)i(migh)m(t)f(w)m(an)m(t)h(to)g
-(extend)f Ft(_comp_cd)e Fu(to)i(app)s(end)f(a)150 5340
+(extend)f Ft(_comp_cd)e Fu(to)i(app)s(end)f(a)150 2565
y(slash)22 b(if)g(w)m(e're)h(using)f(directories)h(found)e(via)i
Fr(CDP)-8 b(A)g(TH)10 b Fu(:)37 b(Readline)23 b(can't)g(tell)g(those)g
-(completions)h(are)p eop end
-%%Page: 167 173
-TeXDict begin 167 172 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(167)150 299 y(directories\).)45
-b(The)31 b Ft(-o)f(nospace)f Fu(option)j(tells)g(Readline)g(to)h(not)e
-(app)s(end)f(a)i(space)g(c)m(haracter)h(to)f(the)150
-408 y(directory)c(name,)h(in)f(case)h(w)m(e)f(w)m(an)m(t)h(to)f(app)s
-(end)f(to)h(it.)41 b(The)27 b Ft(-o)j(bashdefault)25
-b Fu(option)j(brings)f(in)h(the)150 518 y(rest)e(of)h(the)f(\\Bash)h
-(default")g(completions)g({)g(p)s(ossible)e(completions)j(that)f(Bash)f
-(adds)f(to)i(the)g(default)150 628 y(Readline)h(set.)40
-b(These)28 b(include)f(things)g(lik)m(e)i(command)e(name)h(completion,)
-h(v)-5 b(ariable)28 b(completion)h(for)150 737 y(w)m(ords)e(b)s
-(eginning)h(with)f(`)p Ft($)p Fu(')h(or)g(`)p Ft(${)p
-Fu(',)h(completions)g(con)m(taining)g(pathname)f(expansion)g(patterns)g
-(\(see)150 847 y(Section)j(3.5.8)h([Filename)g(Expansion],)e(page)i
-(39\),)f(and)f(so)h(on.)275 981 y(Once)39 b(installed)i(using)e
-Ft(complete)p Fu(,)h Ft(_comp_cd)d Fu(will)j(b)s(e)g(called)g(ev)m(ery)
-h(time)f(w)m(e)g(attempt)h(w)m(ord)150 1091 y(completion)32
-b(for)e(a)h Ft(cd)e Fu(command.)275 1225 y(Man)m(y)34
-b(more)g(examples)g({)g(an)g(extensiv)m(e)h(collection)i(of)c
-(completions)i(for)f(most)g(of)g(the)g(common)150 1335
-y(GNU,)g(Unix,)h(and)d(Lin)m(ux)h(commands)g({)h(are)g(a)m(v)-5
-b(ailable)36 b(as)e(part)f(of)h(the)f(bash)p 2943 1335
-28 4 v 39 w(completion)i(pro)5 b(ject.)150 1445 y(This)33
-b(is)h(installed)h(b)m(y)f(default)g(on)g(man)m(y)h(GNU/Lin)m(ux)f
-(distributions.)51 b(Originally)35 b(written)f(b)m(y)g(Ian)150
-1554 y(Macdonald,)48 b(the)c(pro)5 b(ject)44 b(no)m(w)g(liv)m(es)h(at)f
-Ft(https:)11 b(/)g(/)g(github)g(.)g(com)g(/)g(sc)o(op)g(/)f(bash)o(-co)
-o(mple)o(tion)g(/)h Fu(.)150 1664 y(There)30 b(are)h(p)s(orts)e(for)h
-(other)h(systems)f(suc)m(h)g(as)h(Solaris)g(and)f(Mac)h(OS)f(X.)275
-1798 y(An)54 b(older)h(v)m(ersion)h(of)f(the)g(bash)p
-1532 1798 V 40 w(completion)h(pac)m(k)-5 b(age)57 b(is)e(distributed)f
-(with)h(bash)f(in)h(the)150 1908 y Ft(examples/complete)26
-b Fu(sub)s(directory)-8 b(.)p eop end
+(completions)h(are)150 2675 y(directories\).)45 b(The)31
+b Ft(-o)f(nospace)f Fu(option)j(tells)g(Readline)g(to)h(not)e(app)s
+(end)f(a)i(space)g(c)m(haracter)h(to)f(the)150 2785 y(directory)c
+(name,)h(in)f(case)h(w)m(e)f(w)m(an)m(t)h(to)f(app)s(end)f(to)h(it.)41
+b(The)27 b Ft(-o)j(bashdefault)25 b Fu(option)j(brings)f(in)h(the)150
+2894 y(rest)e(of)h(the)f(\\Bash)h(default")g(completions)g({)g(p)s
+(ossible)e(completions)j(that)f(Bash)f(adds)f(to)i(the)g(default)150
+3004 y(Readline)h(set.)40 b(These)28 b(include)f(things)g(lik)m(e)i
+(command)e(name)h(completion,)h(v)-5 b(ariable)28 b(completion)h(for)
+150 3113 y(w)m(ords)e(b)s(eginning)h(with)f(`)p Ft($)p
+Fu(')h(or)g(`)p Ft(${)p Fu(',)h(completions)g(con)m(taining)g(pathname)
+f(expansion)g(patterns)g(\(see)150 3223 y(Section)j(3.5.8)h([Filename)g
+(Expansion],)e(page)i(39\),)f(and)f(so)h(on.)275 3357
+y(Once)39 b(installed)i(using)e Ft(complete)p Fu(,)h
+Ft(_comp_cd)d Fu(will)j(b)s(e)g(called)g(ev)m(ery)h(time)f(w)m(e)g
+(attempt)h(w)m(ord)150 3467 y(completion)32 b(for)e(a)h
+Ft(cd)e Fu(command.)275 3601 y(Man)m(y)34 b(more)g(examples)g({)g(an)g
+(extensiv)m(e)h(collection)i(of)c(completions)i(for)f(most)g(of)g(the)g
+(common)150 3711 y(GNU,)g(Unix,)h(and)d(Lin)m(ux)h(commands)g({)h(are)g
+(a)m(v)-5 b(ailable)36 b(as)e(part)f(of)h(the)f(bash)p
+2943 3711 28 4 v 39 w(completion)i(pro)5 b(ject.)150
+3821 y(This)33 b(is)h(installed)h(b)m(y)f(default)g(on)g(man)m(y)h
+(GNU/Lin)m(ux)f(distributions.)51 b(Originally)35 b(written)f(b)m(y)g
+(Ian)150 3930 y(Macdonald,)48 b(the)c(pro)5 b(ject)44
+b(no)m(w)g(liv)m(es)h(at)f Ft(https:)11 b(/)g(/)g(github)g(.)g(com)g(/)
+g(sc)o(op)g(/)f(bash)o(-co)o(mple)o(tion)g(/)h Fu(.)150
+4040 y(There)30 b(are)h(p)s(orts)e(for)h(other)h(systems)f(suc)m(h)g
+(as)h(Solaris)g(and)f(Mac)h(OS)f(X.)275 4174 y(An)54
+b(older)h(v)m(ersion)h(of)f(the)g(bash)p 1532 4174 V
+40 w(completion)h(pac)m(k)-5 b(age)57 b(is)e(distributed)f(with)h(bash)
+f(in)h(the)150 4284 y Ft(examples/complete)26 b Fu(sub)s(directory)-8
+b(.)p eop end
%%Page: 168 174
TeXDict begin 168 173 bop 3614 -116 a Fu(168)150 299
y Fp(9)80 b(Using)53 b(History)g(In)l(teractiv)l(ely)150
b(The)30 b Ft(shopt)g Fu(builtin)h(is)g(used)f(to)i(set)150
518 y(these)f(options.)41 b(See)30 b(Section)i(4.3.2)g([The)e(Shopt)g
(Builtin],)h(page)g(78,)g(for)g(a)f(description)h(of)f
-Ft(shopt)p Fu(.)150 747 y Fs(9.2)68 b(Bash)45 b(History)h(Builtins)150
-907 y Fu(Bash)31 b(pro)m(vides)f(t)m(w)m(o)i(builtin)e(commands)g(whic)
+Ft(shopt)p Fu(.)150 756 y Fs(9.2)68 b(Bash)45 b(History)h(Builtins)150
+916 y Fu(Bash)31 b(pro)m(vides)f(t)m(w)m(o)i(builtin)e(commands)g(whic)
m(h)g(manipulate)g(the)h(history)f(list)h(and)f(history)g(\014le.)150
-1055 y Ft(fc)870 1184 y(fc)47 b([-e)g Fj(ename)p Ft(])f([-lnr])g([)p
-Fj(first)p Ft(])g([)p Fj(last)p Ft(])870 1293 y(fc)h(-s)g([)p
+1073 y Ft(fc)870 1206 y(fc)47 b([-e)g Fj(ename)p Ft(])f([-D])h([-lnr])f
+([)p Fj(first)p Ft(])g([)p Fj(last)p Ft(])870 1315 y(fc)h(-s)g([)p
Fj(pat)p Ft(=)p Fj(rep)p Ft(])f([)p Fj(command)p Ft(])630
-1422 y Fu(The)32 b(\014rst)g(form)g(selects)j(a)e(range)g(of)f
+1449 y Fu(The)32 b(\014rst)g(form)g(selects)j(a)e(range)g(of)f
(commands)h(from)f Fr(\014rst)i Fu(to)f Fr(last)j Fu(from)c(the)h
-(history)630 1532 y(list)41 b(and)f(displa)m(ys)g(or)g(edits)h(and)e
+(history)630 1558 y(list)41 b(and)f(displa)m(ys)g(or)g(edits)h(and)e
(re-executes)j(them.)71 b(Both)40 b Fr(\014rst)i Fu(and)e
-Fr(last)j Fu(ma)m(y)e(b)s(e)630 1641 y(sp)s(eci\014ed)33
+Fr(last)j Fu(ma)m(y)e(b)s(e)630 1668 y(sp)s(eci\014ed)33
b(as)h(a)g(string)g(\(to)h(lo)s(cate)h(the)e(most)g(recen)m(t)h
-(command)f(b)s(eginning)f(with)g(that)630 1751 y(string\))28
+(command)f(b)s(eginning)f(with)g(that)630 1777 y(string\))28
b(or)g(as)h(a)f(n)m(um)m(b)s(er)f(\(an)h(index)g(in)m(to)h(the)f
(history)g(list,)h(where)f(a)g(negativ)m(e)i(n)m(um)m(b)s(er)630
-1860 y(is)g(used)g(as)h(an)f(o\013set)h(from)f(the)h(curren)m(t)f
-(command)g(n)m(um)m(b)s(er\).)630 1989 y(When)j(listing,)h(a)f
+1887 y(is)g(used)g(as)h(an)f(o\013set)h(from)f(the)h(curren)m(t)f
+(command)g(n)m(um)m(b)s(er\).)630 2020 y(When)j(listing,)h(a)f
Fr(\014rst)h Fu(or)f Fr(last)j Fu(of)d(0)g(is)g(equiv)-5
b(alen)m(t)34 b(to)g(-1)f(and)g(-0)g(is)g(equiv)-5 b(alen)m(t)34
-b(to)g(the)630 2099 y(curren)m(t)k(command)h(\(usually)g(the)g
+b(to)g(the)630 2130 y(curren)m(t)k(command)h(\(usually)g(the)g
Ft(fc)f Fu(command\);)43 b(otherwise)c(0)g(is)g(equiv)-5
-b(alen)m(t)40 b(to)f(-1)630 2208 y(and)30 b(-0)h(is)f(in)m(v)-5
-b(alid.)630 2337 y(If)32 b Fr(last)j Fu(is)d(not)g(sp)s(eci\014ed,)g
+b(alen)m(t)40 b(to)f(-1)630 2239 y(and)30 b(-0)h(is)f(in)m(v)-5
+b(alid.)630 2373 y(If)32 b Fr(last)j Fu(is)d(not)g(sp)s(eci\014ed,)g
(it)h(is)f(set)h(to)f(the)h(curren)m(t)f(command)g(for)f(listing)i(and)
-f(to)h Fr(\014rst)630 2447 y Fu(otherwise.)41 b(If)27
+f(to)h Fr(\014rst)630 2482 y Fu(otherwise.)41 b(If)27
b Fr(\014rst)j Fu(is)f(not)f(sp)s(eci\014ed,)h(it)g(is)f(set)h(to)g
-(the)g(previous)f(command)g(for)g(editing)630 2556 y(and)i
-Fq(\000)p Fu(16)h(for)f(listing.)630 2685 y(If)e(the)h
+(the)g(previous)f(command)g(for)g(editing)630 2592 y(and)i
+Fq(\000)p Fu(16)h(for)f(listing.)630 2725 y(If)e(the)h
Ft(-l)f Fu(\015ag)h(is)f(supplied,)g(the)h(commands)f(are)h(listed)g
-(on)g(standard)f(output.)39 b(The)29 b Ft(-n)630 2795
+(on)g(standard)f(output.)39 b(The)29 b Ft(-n)630 2834
y Fu(\015ag)36 b(suppresses)f(the)h(command)f(n)m(um)m(b)s(ers)g(when)g
(listing.)58 b(The)36 b Ft(-r)f Fu(\015ag)h(rev)m(erses)h(the)630
-2904 y(order)30 b(of)g(the)h(listing.)630 3033 y(Otherwise,)40
+2944 y(order)30 b(of)g(the)h(listing.)630 3077 y(Otherwise,)40
b Ft(fc)e Fu(in)m(v)m(ok)m(es)i(the)f(editor)g(named)f(b)m(y)g
Fr(ename)44 b Fu(on)38 b(a)h(\014le)f(con)m(taining)i(those)630
-3143 y(commands.)f(If)26 b Fr(ename)32 b Fu(is)27 b(not)g(supplied,)f
+3187 y(commands.)f(If)26 b Fr(ename)32 b Fu(is)27 b(not)g(supplied,)f
Ft(fc)g Fu(uses)g(the)h(v)-5 b(alue)27 b(of)f(the)h(follo)m(wing)h(v)-5
-b(ariable)630 3252 y(expansion:)67 b Ft(${FCEDIT:-${EDITOR:-vi}})p
+b(ariable)630 3296 y(expansion:)67 b Ft(${FCEDIT:-${EDITOR:-vi}})p
Fu(.)75 b(This)43 b(sa)m(ys)h(to)h(use)e(the)h(v)-5 b(alue)45
-b(of)f(the)630 3362 y Ft(FCEDIT)26 b Fu(v)-5 b(ariable)29
+b(of)f(the)630 3406 y Ft(FCEDIT)26 b Fu(v)-5 b(ariable)29
b(if)f(set,)i(or)e(the)g(v)-5 b(alue)29 b(of)f(the)g
Ft(EDITOR)e Fu(v)-5 b(ariable)29 b(if)f(that)h(is)f(set,)h(or)g
-Ft(vi)e Fu(if)630 3471 y(neither)k(is)g(set.)44 b(When)31
+Ft(vi)e Fu(if)630 3516 y(neither)k(is)g(set.)44 b(When)31
b(editing)g(is)h(complete,)h Ft(fc)d Fu(reads)h(the)g(\014le)h(of)f
-(edited)g(commands)630 3581 y(and)f(ec)m(ho)s(es)h(and)f(executes)h
-(them.)630 3710 y(In)36 b(the)g(second)h(form,)h Ft(fc)e
-Fu(re-executes)i Fr(command)i Fu(after)d(replacing)g(eac)m(h)h
-(instance)f(of)630 3819 y Fr(pat)j Fu(in)d(the)g(selected)i(command)f
+(edited)g(commands)630 3625 y(and)c(ec)m(ho)s(es)i(and)e(executes)i
+(them.)40 b(The)27 b Ft(-D)g Fu(option,)i(if)f(supplied,)g(causes)g
+Ft(fc)f Fu(to)h(remo)m(v)m(e)630 3735 y(the)k(selected)h(commands)f
+(from)f(the)h(history)f(list)i(b)s(efore)e(executing)i(the)f(\014le)g
+(of)g(edited)630 3844 y(commands.)66 b Ft(-D)38 b Fu(is)h(only)g
+(e\013ectiv)m(e)i(when)d Ft(fc)g Fu(is)h(in)m(v)m(ok)m(ed)h(in)f(this)f
+(w)m(a)m(y)-8 b(.)68 b(It)39 b(could)g(b)s(e)630 3954
+y(used)28 b(if)h(y)m(ou)g(mak)m(e)h(a)f(t)m(yp)s(o)g(in)g(a)g(command)g
+(and)f(w)m(an)m(t)i(to)g(\014x)e(it)h(using)g(an)g(editor)g(while)630
+4064 y(remo)m(ving)i(the)g(erroneous)f(command)g(from)g(the)g(history)h
+(to)g(a)m(v)m(oid)h(clutter.)630 4197 y(In)k(the)g(second)h(form,)h
+Ft(fc)e Fu(re-executes)i Fr(command)i Fu(after)d(replacing)g(eac)m(h)h
+(instance)f(of)630 4306 y Fr(pat)j Fu(in)d(the)g(selected)i(command)f
(with)f Fr(rep)p Fu(.)61 b Fr(command)41 b Fu(is)c(in)m(terpreted)h
-(the)g(same)g(as)630 3929 y Fr(\014rst)32 b Fu(ab)s(o)m(v)m(e.)630
-4058 y(A)f(useful)f(alias)i(to)g(use)e(with)h(the)g Ft(fc)f
+(the)g(same)g(as)630 4416 y Fr(\014rst)32 b Fu(ab)s(o)m(v)m(e.)630
+4549 y(A)f(useful)f(alias)i(to)g(use)e(with)h(the)g Ft(fc)f
Fu(command)h(is)g Ft(r='fc)e(-s')p Fu(,)h(so)h(that)h(t)m(yping)f(`)p
-Ft(r)f(cc)p Fu(')630 4167 y(runs)35 b(the)h(last)h(command)f(b)s
+Ft(r)f(cc)p Fu(')630 4659 y(runs)35 b(the)h(last)h(command)f(b)s
(eginning)g(with)g Ft(cc)f Fu(and)h(t)m(yping)g(`)p Ft(r)p
-Fu(')h(re-executes)h(the)e(last)630 4277 y(command)30
+Fu(')h(re-executes)h(the)e(last)630 4768 y(command)30
b(\(see)h(Section)h(6.6)f([Aliases],)h(page)g(109\).)630
-4406 y(If)40 b(the)i(\014rst)e(form)g(is)h(used,)i(the)e(return)f(v)-5
+4902 y(If)40 b(the)i(\014rst)e(form)g(is)h(used,)i(the)e(return)f(v)-5
b(alue)41 b(is)g(zero)h(unless)e(an)h(in)m(v)-5 b(alid)42
-b(option)f(is)630 4515 y(encoun)m(tered)f(or)f Fr(\014rst)i
+b(option)f(is)630 5011 y(encoun)m(tered)f(or)f Fr(\014rst)i
Fu(or)e Fr(last)j Fu(sp)s(ecify)d(history)g(lines)g(out)h(of)f(range.)
-68 b(When)39 b(editing)630 4625 y(and)c(re-executing)i(a)f(\014le)g(of)
+68 b(When)39 b(editing)630 5121 y(and)c(re-executing)i(a)f(\014le)g(of)
g(commands,)g(the)g(return)f(v)-5 b(alue)36 b(is)g(the)f(v)-5
-b(alue)36 b(of)g(the)g(last)630 4734 y(command)31 b(executed)i(or)e
+b(alue)36 b(of)g(the)g(last)630 5230 y(command)31 b(executed)i(or)e
(failure)h(if)f(an)h(error)f(o)s(ccurs)g(with)g(the)h(temp)s(orary)f
-(\014le.)44 b(If)31 b(the)630 4844 y(second)42 b(form)g(is)g(used,)i
+(\014le.)44 b(If)31 b(the)630 5340 y(second)42 b(form)g(is)g(used,)i
(the)f(return)e(status)h(is)g(that)h(of)f(the)h(re-executed)g(command,)
-630 4954 y(unless)25 b Fr(command)k Fu(do)s(es)d(not)g(sp)s(ecify)f(a)h
-(v)-5 b(alid)26 b(history)g(en)m(try)-8 b(,)27 b(in)f(whic)m(h)f(case)i
-Ft(fc)e Fu(returns)630 5063 y(a)31 b(non-zero)g(status.)150
-5211 y Ft(history)870 5340 y(history)46 b([)p Fj(n)p
-Ft(])p eop end
+p eop end
%%Page: 170 176
TeXDict begin 170 175 bop 150 -116 a Fu(Chapter)30 b(9:)41
-b(Using)30 b(History)h(In)m(teractiv)m(ely)1925 b(170)870
-299 y Ft(history)46 b(-c)870 408 y(history)g(-d)h Fj(offset)870
-518 y Ft(history)f(-d)h Fj(start)p Ft(-)p Fj(end)870
-628 y Ft(history)f([-anrw])g([)p Fj(filename)p Ft(])870
-737 y(history)g(-ps)h Fj(arg)630 871 y Fu(With)34 b(no)g(options,)h
-(displa)m(y)g(the)f(history)f(list)i(with)f(n)m(um)m(b)s(ers.)49
-b(En)m(tries)35 b(pre\014xed)d(with)630 980 y(a)39 b(`)p
-Ft(*)p Fu(')g(ha)m(v)m(e)h(b)s(een)e(mo)s(di\014ed.)65
-b(An)39 b(argumen)m(t)g(of)g Fr(n)f Fu(lists)i(only)f(the)g(last)g
-Fr(n)g Fu(en)m(tries.)66 b(If)630 1090 y(the)37 b(shell)h(v)-5
-b(ariable)38 b Ft(HISTTIMEFORMAT)33 b Fu(is)k(set)h(and)f(not)g(n)m
-(ull,)i(it)f(is)f(used)g(as)g(a)h(format)630 1199 y(string)24
-b(for)f Ft(strftime)p Fu(\(3\))g(to)h(displa)m(y)g(the)g(time)g(stamp)g
-(asso)s(ciated)h(with)e(eac)m(h)i(displa)m(y)m(ed)630
-1309 y(history)e(en)m(try)-8 b(.)39 b(If)22 b Ft(history)f
-Fu(uses)i Ft(HISTTIMEFORMAT)p Fu(,)e(it)i(do)s(es)g(not)g(prin)m(t)g
-(an)g(in)m(terv)m(ening)630 1419 y(space)31 b(b)s(et)m(w)m(een)g(the)g
-(formatted)f(time)i(stamp)e(and)g(the)g(history)g(en)m(try)-8
-b(.)630 1552 y(Options,)30 b(if)h(supplied,)e(ha)m(v)m(e)i(the)g(follo)
-m(wing)h(meanings:)630 1709 y Ft(-c)384 b Fu(Clear)23
-b(the)g(history)g(list.)39 b(This)22 b(ma)m(y)i(b)s(e)e(com)m(bined)h
-(with)f(the)h(other)h(options)1110 1819 y(to)31 b(replace)g(the)g
-(history)f(list.)630 1976 y Ft(-d)g Fj(offset)66 b Fu(Delete)38
-b(the)f(history)f(en)m(try)h(at)f(p)s(osition)h Fr(o\013set)p
-Fu(.)59 b(If)36 b Fr(o\013set)j Fu(is)d(p)s(ositiv)m(e,)j(it)1110
-2086 y(should)32 b(b)s(e)h(sp)s(eci\014ed)f(as)i(it)g(app)s(ears)e
-(when)g(the)i(history)f(is)g(displa)m(y)m(ed.)50 b(If)1110
-2195 y Fr(o\013set)26 b Fu(is)d(negativ)m(e,)k(it)c(is)g(in)m
-(terpreted)h(as)f(relativ)m(e)i(to)f(one)f(greater)h(than)f(the)1110
-2305 y(last)36 b(history)f(p)s(osition,)h(so)f(negativ)m(e)i(indices)e
-(coun)m(t)h(bac)m(k)f(from)g(the)g(end)1110 2414 y(of)h(the)g(history)
--8 b(,)37 b(and)e(an)h(index)f(of)h(`)p Ft(-1)p Fu(')f(refers)g(to)i
-(the)f(curren)m(t)f Ft(history)1110 2524 y(-d)30 b Fu(command.)630
-2681 y Ft(-d)g Fj(start)p Ft(-)p Fj(end)1110 2791 y Fu(Delete)e(the)e
-(range)h(of)f(history)g(en)m(tries)h(b)s(et)m(w)m(een)f(p)s(ositions)g
-Fr(start)j Fu(and)c Fr(end)p Fu(,)1110 2900 y(inclusiv)m(e.)44
-b(P)m(ositiv)m(e)33 b(and)e(negativ)m(e)i(v)-5 b(alues)31
-b(for)g Fr(start)j Fu(and)d Fr(end)j Fu(are)d(in)m(ter-)1110
-3010 y(preted)f(as)h(describ)s(ed)e(ab)s(o)m(v)m(e.)630
-3167 y Ft(-a)384 b Fu(App)s(end)18 b(the)j Ft(")p Fu(new)p
+b(Using)30 b(History)h(In)m(teractiv)m(ely)1925 b(170)630
+299 y(unless)25 b Fr(command)k Fu(do)s(es)d(not)g(sp)s(ecify)f(a)h(v)-5
+b(alid)26 b(history)g(en)m(try)-8 b(,)27 b(in)f(whic)m(h)f(case)i
+Ft(fc)e Fu(returns)630 408 y(a)31 b(non-zero)g(status.)150
+560 y Ft(history)870 690 y(history)46 b([-H])g([)p Fj(range)p
+Ft(])870 800 y(history)g(-c)870 909 y(history)g(-d)h
+Fj(range)870 1019 y Ft(history)f([-anrw])g([)p Fj(filename)p
+Ft(])870 1129 y(history)g(-ps)h Fj(arg)g Ft([)p Fj(arg)p
+Ft(...)n(])630 1259 y Fu(With)36 b(no)g(options,)i(or)e(with)g(the)g
+Ft(-H)g Fu(option,)i(displa)m(y)e(the)g(p)s(ortion)g(of)g(the)g
+(command)630 1369 y(history)j(list)i(sp)s(eci\014ed)d(b)m(y)i
+Fr(range)p Fu(,)i(as)e(describ)s(ed)f(b)s(elo)m(w.)68
+b(If)39 b Fr(range)45 b Fu(is)40 b(not)f(sp)s(eci\014ed,)630
+1478 y(displa)m(y)44 b(the)g(en)m(tire)h(history)f(list.)83
+b(Without)44 b Ft(-H)p Fu(,)j(displa)m(y)e(the)f(list)g(with)g(command)
+630 1588 y(n)m(um)m(b)s(ers,)29 b(pre\014xing)h(en)m(tries)h(that)g(ha)
+m(v)m(e)g(b)s(een)f(mo)s(di\014ed)f(with)h(a)h(`)p Ft(*)p
+Fu('.)630 1718 y(A)h Fr(range)37 b Fu(argumen)m(t)32
+b(is)g(sp)s(eci\014ed)e(in)i(the)g(form)f(of)h(a)g(n)m(um)m(b)s(er)e
+Fr(o\013set)k Fu(or)e(a)g(range)g Fr(start)r Fu(-)630
+1828 y Fr(end)p Fu(.)39 b(If)27 b Fr(o\013set)k Fu(is)c(supplied,)g(it)
+h(references)g(the)g(history)f(en)m(try)h(at)g(p)s(osition)g
+Fr(o\013set)j Fu(in)c(the)630 1937 y(history)33 b(list;)i(when)d
+(listing)i(this)f(displa)m(ys)g(the)g(last)h Fr(o\013set)h
+Fu(en)m(tries.)50 b(A)33 b(negativ)m(e)i Fr(o\013set)630
+2047 y Fu(coun)m(ts)i(bac)m(k)g(from)f(the)h(end)f(of)g(the)h(history)f
+(list,)j(relativ)m(e)g(to)e(one)g(greater)h(than)e(the)630
+2157 y(last)31 b(history)g(p)s(osition.)41 b(When)30
+b(listing,)h(negativ)m(e)i(and)d(p)s(ositiv)m(e)h Fr(o\013set)r
+Fu(s)g(ha)m(v)m(e)h(iden)m(tical)630 2266 y(results.)79
+b Fr(start)46 b Fu(and)d Fr(end)p Fu(,)j(if)d(supplied,)i(reference)f
+(the)f(p)s(ortion)g(of)h(the)f(history)g(list)630 2376
+y(b)s(eginning)32 b(at)g(p)s(osition)h Fr(start)i Fu(through)c(p)s
+(osition)h Fr(end)p Fu(.)46 b(If)32 b Fr(start)i Fu(or)f
+Fr(end)i Fu(are)d(negativ)m(e,)630 2485 y(they)25 b(coun)m(t)g(bac)m(k)
+h(from)e(the)h(end)f(of)h(the)g(history)f(list.)40 b(When)24
+b(listing,)j(if)e Fr(start)i Fu(is)e(greater)630 2595
+y(than)30 b Fr(end)p Fu(,)g(the)h(history)f(en)m(tries)h(are)g(displa)m
+(y)m(ed)g(in)f(rev)m(erse)h(order)f(from)g Fr(end)j Fu(to)e
+Fr(start)p Fu(.)630 2725 y(If)f(the)h(shell)g(v)-5 b(ariable)32
+b Ft(HISTTIMEFORMAT)27 b Fu(is)k(set)g(and)f(not)h(n)m(ull,)g(it)h(is)e
+(used)g(as)h(a)h(format)630 2835 y(string)24 b(for)f
+Ft(strftime)p Fu(\(3\))g(to)h(displa)m(y)g(the)g(time)g(stamp)g(asso)s
+(ciated)h(with)e(eac)m(h)i(displa)m(y)m(ed)630 2945 y(history)e(en)m
+(try)-8 b(.)39 b(If)22 b Ft(history)f Fu(uses)i Ft(HISTTIMEFORMAT)p
+Fu(,)e(it)i(do)s(es)g(not)g(prin)m(t)g(an)g(in)m(terv)m(ening)630
+3054 y(space)31 b(b)s(et)m(w)m(een)g(the)g(formatted)f(time)i(stamp)e
+(and)g(the)g(history)g(en)m(try)-8 b(.)630 3185 y(Options,)30
+b(if)h(supplied,)e(ha)m(v)m(e)i(the)g(follo)m(wing)h(meanings:)630
+3336 y Ft(-c)384 b Fu(Clear)23 b(the)g(history)g(list.)39
+b(This)22 b(ma)m(y)i(b)s(e)e(com)m(bined)h(with)f(the)h(other)h
+(options)1110 3446 y(to)31 b(replace)g(the)g(history)f(list.)630
+3597 y Ft(-d)g Fj(range)114 b Fu(Delete)40 b(the)f(history)f(en)m
+(tries)h(sp)s(eci\014ed)e(b)m(y)h Fr(range)p Fu(,)j(as)d(describ)s(ed)f
+(ab)s(o)m(v)m(e.)1110 3707 y(An)30 b(o\013set)h(of)g(`)p
+Ft(-1)p Fu(')f(refers)g(to)h(the)g(curren)m(t)f Ft(history)e(-d)i
+Fu(command.)630 3858 y Ft(-H)384 b Fu(Displa)m(y)42 b(the)f(selected)i
+(history)e(en)m(tries)g(in)g(the)g(format)g(that)h(w)m(ould)f(b)s(e)
+1110 3968 y(written)26 b(to)h(the)f(history)f(\014le,)j(including)d(an)
+m(y)h(time)h(stamp)f(information)g(as)1110 4077 y(describ)s(ed)j(b)s
+(elo)m(w,)h(without)g(pre\014xing)f(the)h(en)m(try)g(with)f(an)m(y)h
+(line)g(n)m(um)m(b)s(er)1110 4187 y(or)g(`)p Ft(*)p Fu('.)630
+4338 y Ft(-a)384 b Fu(App)s(end)18 b(the)j Ft(")p Fu(new)p
Ft(")e Fu(history)i(lines)f(to)i(the)e(history)h(\014le.)37
-b(These)20 b(are)h(history)1110 3277 y(lines)36 b(en)m(tered)g(since)f
+b(These)20 b(are)h(history)1110 4448 y(lines)36 b(en)m(tered)g(since)f
(the)h(b)s(eginning)f(of)g(the)h(curren)m(t)f(Bash)h(session,)h(but)
-1110 3386 y(not)31 b(already)g(app)s(ended)d(to)j(the)g(history)f
-(\014le.)630 3544 y Ft(-n)384 b Fu(Read)38 b(the)g(history)f(lines)h
+1110 4557 y(not)31 b(already)g(app)s(ended)d(to)j(the)g(history)f
+(\014le.)630 4709 y Ft(-n)384 b Fu(Read)38 b(the)g(history)f(lines)h
(not)g(already)g(read)g(from)f(the)h(history)g(\014le)g(and)1110
-3653 y(add)33 b(them)g(to)h(the)g(curren)m(t)f(history)g(list.)50
-b(These)33 b(are)h(lines)g(app)s(ended)d(to)1110 3763
+4818 y(add)33 b(them)g(to)h(the)g(curren)m(t)f(history)g(list.)50
+b(These)33 b(are)h(lines)g(app)s(ended)d(to)1110 4928
y(the)g(history)f(\014le)g(since)h(the)g(b)s(eginning)e(of)i(the)f
-(curren)m(t)h(Bash)f(session.)630 3920 y Ft(-r)384 b
+(curren)m(t)h(Bash)f(session.)630 5079 y Ft(-r)384 b
Fu(Read)31 b(the)f(history)g(\014le)h(and)f(app)s(end)e(its)j(con)m
-(ten)m(ts)h(to)f(the)g(history)f(list.)630 4077 y Ft(-w)384
+(ten)m(ts)h(to)f(the)g(history)f(list.)630 5230 y Ft(-w)384
b Fu(W)-8 b(rite)42 b(the)f(curren)m(t)g(history)f(list)i(to)f(the)g
-(history)g(\014le,)j(o)m(v)m(erwriting)e(the)1110 4187
-y(history)30 b(\014le.)630 4344 y Ft(-p)384 b Fu(P)m(erform)31
-b(history)f(substitution)h(on)f(the)h Fr(arg)8 b Fu(s)31
-b(and)f(displa)m(y)h(the)f(result)h(on)1110 4454 y(the)d(standard)f
-(output,)i(without)f(storing)g(the)g(results)g(in)g(the)g(history)g
-(list.)630 4611 y Ft(-s)384 b Fu(Add)33 b(the)i Fr(arg)8
-b Fu(s)34 b(to)h(the)g(end)f(of)g(the)h(history)f(list)h(as)f(a)h
-(single)g(en)m(try)-8 b(.)53 b(The)1110 4721 y(last)27
-b(command)g(in)f(the)g(history)h(list)g(is)f(remo)m(v)m(ed)i(b)s(efore)
-e(adding)g(the)h Fr(arg)8 b Fu(s.)630 4878 y(If)36 b(a)g
-Fr(\014lename)41 b Fu(argumen)m(t)c(is)f(supplied)f(with)h(an)m(y)g(of)
-g(the)g Ft(-w)p Fu(,)i Ft(-r)p Fu(,)f Ft(-a)p Fu(,)g(or)f
-Ft(-n)f Fu(options,)630 4987 y(Bash)29 b(uses)g Fr(\014lename)35
-b Fu(as)30 b(the)f(history)h(\014le.)40 b(If)29 b(not,)h(it)g(uses)f
-(the)g(v)-5 b(alue)30 b(of)g(the)f Ft(HISTFILE)630 5097
-y Fu(v)-5 b(ariable.)42 b(If)29 b Ft(HISTFILE)g Fu(is)h(unset)g(or)g(n)
-m(ull,)h(these)g(options)f(ha)m(v)m(e)i(no)e(e\013ect.)630
-5230 y(If)38 b(the)g Ft(HISTTIMEFORMAT)d Fu(v)-5 b(ariable)39
-b(is)f(set,)k Ft(history)36 b Fu(writes)i(the)h(time)g(stamp)f(infor-)
-630 5340 y(mation)33 b(asso)s(ciated)g(with)f(eac)m(h)h(history)f(en)m
-(try)h(to)g(the)f(history)g(\014le,)h(mark)m(ed)f(with)g(the)p
-eop end
+(history)g(\014le,)j(o)m(v)m(erwriting)e(the)1110 5340
+y(history)30 b(\014le.)p eop end
%%Page: 171 177
TeXDict begin 171 176 bop 150 -116 a Fu(Chapter)30 b(9:)41
b(Using)30 b(History)h(In)m(teractiv)m(ely)1925 b(171)630
-299 y(history)35 b(commen)m(t)g(c)m(haracter)h(as)f(describ)s(ed)f(ab)s
-(o)m(v)m(e.)55 b(When)34 b(the)h(history)f(\014le)h(is)g(read,)630
-408 y(lines)30 b(b)s(eginning)g(with)f(the)i(history)f(commen)m(t)h(c)m
-(haracter)g(follo)m(w)m(ed)h(immediately)g(b)m(y)e(a)630
-518 y(digit)h(are)g(in)m(terpreted)g(as)f(timestamps)h(for)f(the)h
-(follo)m(wing)h(history)e(en)m(try)-8 b(.)630 660 y(The)34
+299 y Ft(-p)384 b Fu(P)m(erform)31 b(history)f(substitution)h(on)f(the)
+h Fr(arg)8 b Fu(s)31 b(and)f(displa)m(y)h(the)f(result)h(on)1110
+408 y(the)d(standard)f(output,)i(without)f(storing)g(the)g(results)g
+(in)g(the)g(history)g(list.)630 574 y Ft(-s)384 b Fu(Add)33
+b(the)i Fr(arg)8 b Fu(s)34 b(to)h(the)g(end)f(of)g(the)h(history)f
+(list)h(as)f(a)h(single)g(en)m(try)-8 b(.)53 b(The)1110
+684 y(last)27 b(command)g(in)f(the)g(history)h(list)g(is)f(remo)m(v)m
+(ed)i(b)s(efore)e(adding)g(the)h Fr(arg)8 b Fu(s.)630
+850 y(If)36 b(a)g Fr(\014lename)41 b Fu(argumen)m(t)c(is)f(supplied)f
+(with)h(an)m(y)g(of)g(the)g Ft(-w)p Fu(,)i Ft(-r)p Fu(,)f
+Ft(-a)p Fu(,)g(or)f Ft(-n)f Fu(options,)630 959 y(Bash)29
+b(uses)g Fr(\014lename)35 b Fu(as)30 b(the)f(history)h(\014le.)40
+b(If)29 b(not,)h(it)g(uses)f(the)g(v)-5 b(alue)30 b(of)g(the)f
+Ft(HISTFILE)630 1069 y Fu(v)-5 b(ariable.)42 b(If)29
+b Ft(HISTFILE)g Fu(is)h(unset)g(or)g(n)m(ull,)h(these)g(options)f(ha)m
+(v)m(e)i(no)e(e\013ect.)630 1207 y(If)38 b(the)g Ft(HISTTIMEFORMAT)d
+Fu(v)-5 b(ariable)39 b(is)f(set,)k Ft(history)36 b Fu(writes)i(the)h
+(time)g(stamp)f(infor-)630 1316 y(mation)33 b(asso)s(ciated)g(with)f
+(eac)m(h)h(history)f(en)m(try)h(to)g(the)f(history)g(\014le,)h(mark)m
+(ed)f(with)g(the)630 1426 y(history)j(commen)m(t)g(c)m(haracter)h(as)f
+(describ)s(ed)f(ab)s(o)m(v)m(e.)55 b(When)34 b(the)h(history)f(\014le)h
+(is)g(read,)630 1536 y(lines)30 b(b)s(eginning)g(with)f(the)i(history)f
+(commen)m(t)h(c)m(haracter)g(follo)m(w)m(ed)h(immediately)g(b)m(y)e(a)
+630 1645 y(digit)h(are)g(in)m(terpreted)g(as)f(timestamps)h(for)f(the)h
+(follo)m(wing)h(history)e(en)m(try)-8 b(.)630 1783 y(The)34
b(return)g(v)-5 b(alue)35 b(is)g(0)g(unless)f(an)h(in)m(v)-5
b(alid)35 b(option)g(is)g(encoun)m(tered,)h(an)f(error)f(o)s(ccurs)630
-769 y(while)h(reading)g(or)g(writing)f(the)h(history)g(\014le,)h(an)f
+1892 y(while)h(reading)g(or)g(writing)f(the)h(history)g(\014le,)h(an)f
(in)m(v)-5 b(alid)36 b Fr(o\013set)h Fu(or)e(range)g(is)g(supplied)630
-879 y(as)c(an)g(argumen)m(t)g(to)h Ft(-d)p Fu(,)e(or)h(the)g(history)g
+2002 y(as)c(an)g(argumen)m(t)g(to)h Ft(-d)p Fu(,)e(or)h(the)g(history)g
(expansion)f(supplied)g(as)h(an)g(argumen)m(t)g(to)h
-Ft(-p)630 988 y Fu(fails.)150 1251 y Fs(9.3)68 b(History)46
-b(Expansion)150 1410 y Fu(The)e(shell)h(pro)m(vides)f(a)h(history)f
+Ft(-p)630 2112 y Fu(fails.)150 2362 y Fs(9.3)68 b(History)46
+b(Expansion)150 2521 y Fu(The)e(shell)h(pro)m(vides)f(a)h(history)f
(expansion)h(feature)f(that)i(is)e(similar)h(to)g(the)g(history)f
-(expansion)150 1520 y(pro)m(vided)32 b(b)m(y)h Ft(csh)f
+(expansion)150 2631 y(pro)m(vided)32 b(b)m(y)h Ft(csh)f
Fu(\(also)i(referred)d(to)j(as)f(history)f(substitution)h(where)f
-(appropriate\).)48 b(This)32 b(section)150 1629 y(describ)s(es)e(the)g
+(appropriate\).)48 b(This)32 b(section)150 2741 y(describ)s(es)e(the)g
(syn)m(tax)h(used)f(to)h(manipulate)g(the)f(history)g(information.)275
-1778 y(History)g(expansion)f(is)h(enabled)f(b)m(y)g(default)h(for)f(in)
+2882 y(History)g(expansion)f(is)h(enabled)f(b)m(y)g(default)h(for)f(in)
m(teractiv)m(e)k(shells,)d(and)f(can)g(b)s(e)g(disabled)g(using)150
-1888 y(the)36 b Ft(+H)f Fu(option)h(to)g(the)g Ft(set)f
+2991 y(the)36 b Ft(+H)f Fu(option)h(to)g(the)g Ft(set)f
Fu(builtin)g(command)g(\(see)i(Section)f(4.3.1)h([The)f(Set)f
-(Builtin],)j(page)e(74\).)150 1997 y(Non-in)m(teractiv)m(e)h(shells)d
+(Builtin],)j(page)e(74\).)150 3101 y(Non-in)m(teractiv)m(e)h(shells)d
(do)g(not)g(p)s(erform)e(history)i(expansion)g(b)m(y)g(default,)h(but)e
-(it)i(can)f(b)s(e)f(enabled)150 2107 y(with)d Ft(set)g(-H)p
-Fu(.)275 2256 y(History)h(expansions)f(in)m(tro)s(duce)g(w)m(ords)g
+(it)i(can)f(b)s(e)f(enabled)150 3210 y(with)d Ft(set)g(-H)p
+Fu(.)275 3351 y(History)h(expansions)f(in)m(tro)s(duce)g(w)m(ords)g
(from)g(the)h(history)f(list)h(in)m(to)g(the)g(input)f(stream,)h
-(making)150 2365 y(it)g(easy)g(to)g(rep)s(eat)g(commands,)f(insert)g
+(making)150 3461 y(it)g(easy)g(to)g(rep)s(eat)g(commands,)f(insert)g
(the)h(argumen)m(ts)f(to)h(a)g(previous)f(command)g(in)m(to)i(the)e
-(curren)m(t)150 2475 y(input)f(line,)i(or)g(\014x)f(errors)f(in)h
-(previous)g(commands)g(quic)m(kly)-8 b(.)275 2623 y(History)24
+(curren)m(t)150 3571 y(input)f(line,)i(or)g(\014x)f(errors)f(in)h
+(previous)g(commands)g(quic)m(kly)-8 b(.)275 3712 y(History)24
b(expansion)f(is)h(p)s(erformed)e(immediately)j(after)f(a)g(complete)h
-(line)f(is)g(read,)h(b)s(efore)e(the)h(shell)150 2733
+(line)f(is)g(read,)h(b)s(efore)e(the)h(shell)150 3821
y(breaks)32 b(it)i(in)m(to)f(w)m(ords,)g(and)f(is)h(p)s(erformed)e(on)h
(eac)m(h)i(line)f(individually)-8 b(.)48 b(Bash)33 b(attempts)g(to)h
-(inform)150 2843 y(the)d(history)f(expansion)g(functions)g(ab)s(out)g
+(inform)150 3931 y(the)d(history)f(expansion)g(functions)g(ab)s(out)g
(quoting)h(still)g(in)f(e\013ect)i(from)e(previous)g(lines.)275
-2991 y(History)j(expansion)f(tak)m(es)i(place)f(in)g(t)m(w)m(o)g
+4072 y(History)j(expansion)f(tak)m(es)i(place)f(in)g(t)m(w)m(o)g
(parts.)47 b(The)32 b(\014rst)g(is)h(to)g(determine)f(whic)m(h)h(en)m
-(try)f(from)150 3101 y(the)d(history)g(list)g(should)f(b)s(e)g(used)g
+(try)f(from)150 4181 y(the)d(history)g(list)g(should)f(b)s(e)g(used)g
(during)g(substitution.)40 b(The)28 b(second)h(is)g(to)h(select)g(p)s
-(ortions)e(of)h(that)150 3211 y(en)m(try)i(to)g(include)f(in)m(to)h
-(the)g(curren)m(t)f(one.)275 3359 y(The)k(en)m(try)h(selected)h(from)e
+(ortions)e(of)h(that)150 4291 y(en)m(try)i(to)g(include)f(in)m(to)h
+(the)g(curren)m(t)f(one.)275 4432 y(The)k(en)m(try)h(selected)h(from)e
(the)h(history)g(is)f(called)i(the)f Fr(ev)m(en)m(t)p
Fu(,)j(and)c(the)g(p)s(ortions)h(of)f(that)i(en)m(try)150
-3469 y(that)d(are)g(acted)g(up)s(on)e(are)i Fr(w)m(ords)p
+4541 y(that)d(are)g(acted)g(up)s(on)e(are)i Fr(w)m(ords)p
Fu(.)46 b(V)-8 b(arious)33 b Fr(mo)s(di\014ers)i Fu(are)d(a)m(v)-5
-b(ailable)35 b(to)e(manipulate)g(the)f(selected)150 3579
+b(ailable)35 b(to)e(manipulate)g(the)f(selected)150 4651
y(w)m(ords.)38 b(The)24 b(en)m(try)h(is)g(split)g(in)m(to)g(w)m(ords)f
(in)h(the)g(same)g(fashion)f(that)h(Bash)g(do)s(es)f(when)g(reading)h
-(input,)150 3688 y(so)k(that)h(sev)m(eral)g(w)m(ords)f(surrounded)d(b)m
+(input,)150 4761 y(so)k(that)h(sev)m(eral)g(w)m(ords)f(surrounded)d(b)m
(y)j(quotes)h(are)f(considered)g(one)g(w)m(ord.)40 b(The)29
-b Fr(ev)m(en)m(t)h(designator)150 3798 y Fu(selects)37
+b Fr(ev)m(en)m(t)h(designator)150 4870 y Fu(selects)37
b(the)f(ev)m(en)m(t,)j(the)d(optional)h Fr(w)m(ord)f(designator)43
b Fu(selects)37 b(w)m(ords)e(from)h(the)g(ev)m(en)m(t,)j(and)c(v)-5
-b(arious)150 3907 y(optional)32 b Fr(mo)s(di\014ers)g
+b(arious)150 4980 y(optional)32 b Fr(mo)s(di\014ers)g
Fu(are)f(a)m(v)-5 b(ailable)33 b(to)e(manipulate)g(the)f(selected)i(w)m
-(ords.)275 4056 y(History)26 b(expansions)f(are)h(in)m(tro)s(duced)f(b)
+(ords.)275 5121 y(History)26 b(expansions)f(are)h(in)m(tro)s(duced)f(b)
m(y)g(the)g(app)s(earance)h(of)g(the)f(history)h(expansion)f(c)m
-(haracter,)150 4166 y(whic)m(h)31 b(is)g(`)p Ft(!)p Fu(')h(b)m(y)f
+(haracter,)150 5230 y(whic)m(h)31 b(is)g(`)p Ft(!)p Fu(')h(b)m(y)f
(default.)43 b(History)32 b(expansions)f(ma)m(y)g(app)s(ear)g(an)m
-(ywhere)g(in)g(the)g(input,)g(but)g(do)g(not)150 4275
-y(nest.)275 4424 y(History)26 b(expansion)g(implemen)m(ts)h(shell-lik)m
-(e)h(quoting)f(con)m(v)m(en)m(tions:)40 b(a)27 b(bac)m(kslash)g(can)f
-(b)s(e)g(used)f(to)150 4534 y(remo)m(v)m(e)h(the)e(sp)s(ecial)g
-(handling)g(for)g(the)g(next)g(c)m(haracter;)k(single)d(quotes)g
-(enclose)g(v)m(erbatim)g(sequences)150 4643 y(of)k(c)m(haracters,)i
-(and)e(can)g(b)s(e)g(used)f(to)i(inhibit)f(history)g(expansion;)g(and)g
-(c)m(haracters)i(enclosed)e(within)150 4753 y(double)h(quotes)i(ma)m(y)
-f(b)s(e)f(sub)5 b(ject)31 b(to)h(history)f(expansion,)g(since)g(bac)m
-(kslash)g(can)h(escap)s(e)f(the)g(history)150 4862 y(expansion)e(c)m
-(haracter,)j(but)d(single)h(quotes)g(ma)m(y)h(not,)f(since)g(they)g
-(are)g(not)f(treated)i(sp)s(ecially)f(within)150 4972
-y(double)g(quotes.)275 5121 y(When)41 b(using)g(the)h(shell,)i(only)e
-(`)p Ft(\\)p Fu(')g(and)e(`)p Ft(')p Fu(')i(ma)m(y)g(b)s(e)f(used)g(to)
-h(escap)s(e)g(the)g(history)f(expansion)150 5230 y(c)m(haracter,)e(but)
-34 b(the)i(history)g(expansion)f(c)m(haracter)i(is)f(also)g(treated)h
-(as)e(quoted)h(if)g(it)g(immediately)150 5340 y(precedes)30
-b(the)h(closing)g(double)f(quote)h(in)f(a)h(double-quoted)g(string.)p
-eop end
+(ywhere)g(in)g(the)g(input,)g(but)g(do)g(not)150 5340
+y(nest.)p eop end
%%Page: 172 178
TeXDict begin 172 177 bop 150 -116 a Fu(Chapter)30 b(9:)41
b(Using)30 b(History)h(In)m(teractiv)m(ely)1925 b(172)275
-299 y(Sev)m(eral)34 b(c)m(haracters)i(inhibit)d(history)h(expansion)g
-(if)g(found)e(immediately)k(follo)m(wing)f(the)f(history)150
-408 y(expansion)i(c)m(haracter,)j(ev)m(en)e(if)f(it)h(is)f(unquoted:)52
-b(space,)38 b(tab,)g(newline,)g(carriage)g(return,)f(`)p
-Ft(=)p Fu(',)h(and)150 518 y(the)31 b(other)f(shell)h(metac)m
-(haracters.)275 664 y(There)25 b(is)h(a)h(sp)s(ecial)f(abbreviation)h
+299 y(History)26 b(expansion)g(implemen)m(ts)h(shell-lik)m(e)h(quoting)
+f(con)m(v)m(en)m(tions:)40 b(a)27 b(bac)m(kslash)g(can)f(b)s(e)g(used)f
+(to)150 408 y(remo)m(v)m(e)h(the)e(sp)s(ecial)g(handling)g(for)g(the)g
+(next)g(c)m(haracter;)k(single)d(quotes)g(enclose)g(v)m(erbatim)g
+(sequences)150 518 y(of)k(c)m(haracters,)i(and)e(can)g(b)s(e)g(used)f
+(to)i(inhibit)f(history)g(expansion;)g(and)g(c)m(haracters)i(enclosed)e
+(within)150 628 y(double)h(quotes)i(ma)m(y)f(b)s(e)f(sub)5
+b(ject)31 b(to)h(history)f(expansion,)g(since)g(bac)m(kslash)g(can)h
+(escap)s(e)f(the)g(history)150 737 y(expansion)e(c)m(haracter,)j(but)d
+(single)h(quotes)g(ma)m(y)h(not,)f(since)g(they)g(are)g(not)f(treated)i
+(sp)s(ecially)f(within)150 847 y(double)g(quotes.)275
+979 y(When)41 b(using)g(the)h(shell,)i(only)e(`)p Ft(\\)p
+Fu(')g(and)e(`)p Ft(')p Fu(')i(ma)m(y)g(b)s(e)f(used)g(to)h(escap)s(e)g
+(the)g(history)f(expansion)150 1089 y(c)m(haracter,)e(but)34
+b(the)i(history)g(expansion)f(c)m(haracter)i(is)f(also)g(treated)h(as)e
+(quoted)h(if)g(it)g(immediately)150 1198 y(precedes)30
+b(the)h(closing)g(double)f(quote)h(in)f(a)h(double-quoted)g(string.)275
+1330 y(Sev)m(eral)j(c)m(haracters)i(inhibit)d(history)h(expansion)g(if)
+g(found)e(immediately)k(follo)m(wing)f(the)f(history)150
+1440 y(expansion)i(c)m(haracter,)j(ev)m(en)e(if)f(it)h(is)f(unquoted:)
+52 b(space,)38 b(tab,)g(newline,)g(carriage)g(return,)f(`)p
+Ft(=)p Fu(',)h(and)150 1550 y(the)31 b(other)f(shell)h(metac)m
+(haracters.)275 1682 y(There)25 b(is)h(a)h(sp)s(ecial)f(abbreviation)h
(for)f(substitution,)g(activ)m(e)j(when)c(the)h Fr(quic)m(k)h
-(substitution)e Fu(c)m(har-)150 774 y(acter)37 b(\(describ)s(ed)f(ab)s
+(substitution)e Fu(c)m(har-)150 1791 y(acter)37 b(\(describ)s(ed)f(ab)s
(o)m(v)m(e)h(under)e Ft(histchars)p Fu(\))f(is)i(the)h(\014rst)e(c)m
(haracter)j(on)e(the)g(line.)59 b(It)36 b(selects)i(the)150
-883 y(previous)31 b(history)g(list)h(en)m(try)-8 b(,)32
+1901 y(previous)31 b(history)g(list)h(en)m(try)-8 b(,)32
b(using)f(an)g(ev)m(en)m(t)i(designator)f(equiv)-5 b(alen)m(t)33
-b(to)f Ft(!!)p Fu(,)f(and)g(substitutes)g(one)150 993
+b(to)f Ft(!!)p Fu(,)f(and)g(substitutes)g(one)150 2010
y(string)25 b(for)g(another)h(in)f(that)g(en)m(try)-8
b(.)40 b(It)25 b(is)h(describ)s(ed)e(b)s(elo)m(w)h(\(see)h(Section)g
-(9.3.1)h([Ev)m(en)m(t)g(Designators],)150 1102 y(page)d(172\).)40
+(9.3.1)h([Ev)m(en)m(t)g(Designators],)150 2120 y(page)d(172\).)40
b(This)22 b(is)h(the)h(only)f(history)g(expansion)g(that)h(do)s(es)f
(not)g(b)s(egin)g(with)g(the)g(history)g(expansion)150
-1212 y(c)m(haracter.)275 1358 y(Sev)m(eral)48 b(shell)g(options)h
+2230 y(c)m(haracter.)275 2362 y(Sev)m(eral)48 b(shell)g(options)h
(settable)g(with)e(the)h Ft(shopt)f Fu(builtin)g(\(see)i(Section)f
-(4.3.2)i([The)e(Shopt)150 1468 y(Builtin],)g(page)c(78\))h(mo)s(dify)e
+(4.3.2)i([The)e(Shopt)150 2471 y(Builtin],)g(page)c(78\))h(mo)s(dify)e
(history)g(expansion)h(b)s(eha)m(vior)f(If)g(the)h Ft(histverify)d
-Fu(shell)j(option)g(is)150 1577 y(enabled,)38 b(and)d(Readline)i(is)f
+Fu(shell)j(option)g(is)150 2581 y(enabled,)38 b(and)d(Readline)i(is)f
(b)s(eing)g(used,)h(history)f(substitutions)f(are)i(not)f(immediately)i
-(passed)d(to)150 1687 y(the)c(shell)f(parser.)41 b(Instead,)30
+(passed)d(to)150 2691 y(the)c(shell)f(parser.)41 b(Instead,)30
b(the)h(expanded)f(line)h(is)f(reloaded)h(in)m(to)h(the)e(Readline)i
-(editing)f(bu\013er)e(for)150 1796 y(further)c(mo)s(di\014cation.)40
+(editing)f(bu\013er)e(for)150 2800 y(further)c(mo)s(di\014cation.)40
b(If)25 b(Readline)i(is)g(b)s(eing)e(used,)i(and)e(the)i
Ft(histreedit)c Fu(shell)k(option)f(is)h(enabled,)150
-1906 y(a)k(failed)g(history)f(expansion)g(is)h(reloaded)g(in)m(to)g
+2910 y(a)k(failed)g(history)f(expansion)g(is)h(reloaded)g(in)m(to)g
(the)f(Readline)h(editing)g(bu\013er)f(for)g(correction.)275
-2052 y(The)e Ft(-p)g Fu(option)i(to)g(the)f Ft(history)e
+3042 y(The)e Ft(-p)g Fu(option)i(to)g(the)f Ft(history)e
Fu(builtin)h(command)h(sho)m(ws)g(what)g(a)g(history)g(expansion)g
-(will)g(do)150 2161 y(b)s(efore)35 b(using)g(it.)58 b(The)35
+(will)g(do)150 3151 y(b)s(efore)35 b(using)g(it.)58 b(The)35
b Ft(-s)g Fu(option)h(to)g(the)g Ft(history)e Fu(builtin)h(ma)m(y)h(b)s
-(e)g(used)e(to)j(add)e(commands)g(to)150 2271 y(the)f(end)g(of)g(the)g
+(e)g(used)e(to)j(add)e(commands)g(to)150 3261 y(the)f(end)g(of)g(the)g
(history)g(list)h(without)f(actually)i(executing)f(them,)h(so)e(that)h
-(they)f(are)h(a)m(v)-5 b(ailable)36 b(for)150 2381 y(subsequen)m(t)30
+(they)f(are)h(a)m(v)-5 b(ailable)36 b(for)150 3371 y(subsequen)m(t)30
b(recall.)42 b(This)29 b(is)i(most)f(useful)g(in)g(conjunction)g(with)h
-(Readline.)275 2527 y(The)i(shell)h(allo)m(ws)h(con)m(trol)h(of)e(the)g
+(Readline.)275 3503 y(The)i(shell)h(allo)m(ws)h(con)m(trol)h(of)e(the)g
(v)-5 b(arious)34 b(c)m(haracters)h(used)f(b)m(y)f(the)h(history)g
-(expansion)g(mec)m(h-)150 2636 y(anism)h(with)g(the)g
+(expansion)g(mec)m(h-)150 3612 y(anism)h(with)g(the)g
Ft(histchars)d Fu(v)-5 b(ariable,)38 b(as)d(explained)g(ab)s(o)m(v)m(e)
i(\(see)f(Section)f(5.2)i([Bash)e(V)-8 b(ariables],)150
-2746 y(page)32 b(87\).)44 b(The)31 b(shell)g(uses)g(the)g(history)g
+3722 y(page)32 b(87\).)44 b(The)31 b(shell)g(uses)g(the)g(history)g
(commen)m(t)i(c)m(haracter)f(to)g(mark)f(history)g(timestamps)h(when)
-150 2855 y(writing)e(the)h(history)f(\014le.)150 3066
-y Fk(9.3.1)63 b(Ev)m(en)m(t)39 b(Designators)150 3213
+150 3832 y(writing)e(the)h(history)f(\014le.)150 4026
+y Fk(9.3.1)63 b(Ev)m(en)m(t)39 b(Designators)150 4173
y Fu(An)g(ev)m(en)m(t)i(designator)f(is)g(a)g(reference)f(to)i(an)e(en)
m(try)h(in)f(the)g(history)h(list.)68 b(The)39 b(ev)m(en)m(t)i
-(designator)150 3323 y(consists)f(of)g(the)f(p)s(ortion)h(of)f(the)h(w)
+(designator)150 4283 y(consists)f(of)g(the)f(p)s(ortion)h(of)f(the)h(w)
m(ord)f(b)s(eginning)g(with)g(the)h(history)f(expansion)h(c)m
-(haracter,)k(and)150 3432 y(ending)e(with)g(the)h(w)m(ord)f(designator)
+(haracter,)k(and)150 4392 y(ending)e(with)g(the)h(w)m(ord)f(designator)
i(if)e(one)h(is)g(presen)m(t,)j(or)c(the)h(end)f(of)h(the)f(w)m(ord.)77
-b(Unless)43 b(the)150 3542 y(reference)31 b(is)f(absolute,)i(ev)m(en)m
+b(Unless)43 b(the)150 4502 y(reference)31 b(is)f(absolute,)i(ev)m(en)m
(ts)f(are)g(relativ)m(e)i(to)e(the)f(curren)m(t)g(p)s(osition)h(in)f
-(the)h(history)f(list.)150 3718 y Ft(!)432 b Fu(Start)34
+(the)h(history)f(list.)150 4657 y Ft(!)432 b Fu(Start)34
b(a)f(history)h(substitution,)g(except)g(when)f(follo)m(w)m(ed)i(b)m(y)
-e(a)h(space,)h(tab,)f(the)g(end)f(of)630 3828 y(the)24
+e(a)h(space,)h(tab,)f(the)g(end)f(of)630 4766 y(the)24
b(line,)j(`)p Ft(=)p Fu(',)f(or)e(the)g(rest)h(of)f(the)h(shell)f
(metac)m(haracters)j(de\014ned)c(ab)s(o)m(v)m(e)j(\(see)f(Chapter)f(2)
-630 3938 y([De\014nitions],)32 b(page)f(3\).)150 4109
+630 4876 y([De\014nitions],)32 b(page)f(3\).)150 5031
y Ft(!)p Fj(n)384 b Fu(Refer)30 b(to)i(history)e(list)h(en)m(try)f
-Fr(n)p Fu(.)150 4279 y Ft(!-)p Fj(n)336 b Fu(Refer)30
+Fr(n)p Fu(.)150 5185 y Ft(!-)p Fj(n)336 b Fu(Refer)30
b(to)i(the)e(history)g(en)m(try)h(min)m(us)f Fr(n)p Fu(.)150
-4450 y Ft(!!)384 b Fu(Refer)30 b(to)i(the)e(previous)g(en)m(try)-8
+5340 y Ft(!!)384 b Fu(Refer)30 b(to)i(the)e(previous)g(en)m(try)-8
b(.)41 b(This)30 b(is)g(a)h(synon)m(ym)f(for)g(`)p Ft(!-1)p
-Fu('.)150 4621 y Ft(!)p Fj(string)144 b Fu(Refer)25 b(to)h(the)f(most)h
-(recen)m(t)g(command)f(preceding)g(the)g(curren)m(t)g(p)s(osition)g(in)
-g(the)g(history)630 4731 y(list)31 b(starting)g(with)f
-Fr(string)p Fu(.)150 4902 y Ft(!?)p Fj(string)p Ft([?])630
-5011 y Fu(Refer)25 b(to)h(the)f(most)h(recen)m(t)g(command)f(preceding)
-g(the)g(curren)m(t)g(p)s(osition)g(in)g(the)g(history)630
-5121 y(list)32 b(con)m(taining)i Fr(string)p Fu(.)45
-b(The)31 b(trailing)i(`)p Ft(?)p Fu(')f(ma)m(y)g(b)s(e)f(omitted)i(if)f
-(the)g Fr(string)39 b Fu(is)32 b(follo)m(w)m(ed)630 5230
-y(immediately)39 b(b)m(y)f(a)g(newline.)63 b(If)37 b
-Fr(string)45 b Fu(is)38 b(missing,)i(this)e(uses)f(the)h(string)f(from)
-h(the)630 5340 y(most)31 b(recen)m(t)g(searc)m(h;)g(it)g(is)g(an)f
-(error)g(if)g(there)h(is)f(no)h(previous)e(searc)m(h)i(string.)p
-eop end
+Fu('.)p eop end
%%Page: 173 179
TeXDict begin 173 178 bop 150 -116 a Fu(Chapter)30 b(9:)41
b(Using)30 b(History)h(In)m(teractiv)m(ely)1925 b(173)150
-299 y Ft(^)p Fj(string1)p Ft(^)p Fj(string2)p Ft(^)630
-408 y Fu(Quic)m(k)32 b(Substitution.)44 b(Rep)s(eat)32
+299 y Ft(!)p Fj(string)144 b Fu(Refer)25 b(to)h(the)f(most)h(recen)m(t)
+g(command)f(preceding)g(the)g(curren)m(t)g(p)s(osition)g(in)g(the)g
+(history)630 408 y(list)31 b(starting)g(with)f Fr(string)p
+Fu(.)150 579 y Ft(!?)p Fj(string)p Ft([?])630 689 y Fu(Refer)25
+b(to)h(the)f(most)h(recen)m(t)g(command)f(preceding)g(the)g(curren)m(t)
+g(p)s(osition)g(in)g(the)g(history)630 798 y(list)32
+b(con)m(taining)i Fr(string)p Fu(.)45 b(The)31 b(trailing)i(`)p
+Ft(?)p Fu(')f(ma)m(y)g(b)s(e)f(omitted)i(if)f(the)g Fr(string)39
+b Fu(is)32 b(follo)m(w)m(ed)630 908 y(immediately)39
+b(b)m(y)f(a)g(newline.)63 b(If)37 b Fr(string)45 b Fu(is)38
+b(missing,)i(this)e(uses)f(the)h(string)f(from)h(the)630
+1018 y(most)31 b(recen)m(t)g(searc)m(h;)g(it)g(is)g(an)f(error)g(if)g
+(there)h(is)f(no)h(previous)e(searc)m(h)i(string.)150
+1188 y Ft(^)p Fj(string1)p Ft(^)p Fj(string2)p Ft(^)630
+1298 y Fu(Quic)m(k)h(Substitution.)44 b(Rep)s(eat)32
b(the)g(last)h(command,)f(replacing)g Fr(string1)40 b
-Fu(with)31 b Fr(string2)p Fu(.)630 518 y(Equiv)-5 b(alen)m(t)31
+Fu(with)31 b Fr(string2)p Fu(.)630 1407 y(Equiv)-5 b(alen)m(t)31
b(to)g Ft(!!:s^)p Fj(string1)p Ft(^)p Fj(string2)p Ft(^)p
-Fu(.)150 676 y Ft(!#)384 b Fu(The)30 b(en)m(tire)h(command)f(line)h(t)m
-(yp)s(ed)f(so)h(far.)150 874 y Fk(9.3.2)63 b(W)-10 b(ord)41
-b(Designators)150 1021 y Fu(W)-8 b(ord)28 b(designators)h(are)f(used)f
-(to)i(select)h(desired)d(w)m(ords)h(from)f(the)h(ev)m(en)m(t.)42
-b(They)27 b(are)i(optional;)h(if)e(the)150 1131 y(w)m(ord)h(designator)
-i(isn't)e(supplied,)g(the)h(history)g(expansion)f(uses)g(the)h(en)m
-(tire)h(ev)m(en)m(t.)42 b(A)29 b(`)p Ft(:)p Fu(')h(separates)150
-1240 y(the)f(ev)m(en)m(t)i(sp)s(eci\014cation)e(from)g(the)g(w)m(ord)g
-(designator.)41 b(It)29 b(ma)m(y)g(b)s(e)g(omitted)h(if)e(the)i(w)m
-(ord)e(designator)150 1350 y(b)s(egins)33 b(with)h(a)h(`)p
-Ft(^)p Fu(',)g(`)p Ft($)p Fu(',)g(`)p Ft(*)p Fu(',)h(`)p
-Ft(-)p Fu(',)f(or)f(`)p Ft(\045)p Fu('.)52 b(W)-8 b(ords)35
-b(are)f(n)m(um)m(b)s(ered)f(from)g(the)i(b)s(eginning)e(of)h(the)g
-(line,)150 1459 y(with)39 b(the)h(\014rst)e(w)m(ord)h(b)s(eing)g
-(denoted)g(b)m(y)h(0)f(\(zero\).)69 b(That)40 b(\014rst)e(w)m(ord)h(is)
-h(usually)f(the)g(command)150 1569 y(w)m(ord,)31 b(and)f(the)h(argumen)
-m(ts)g(b)s(egin)f(with)g(the)h(second)g(w)m(ord.)41 b(W)-8
-b(ords)31 b(are)g(inserted)g(in)m(to)g(the)g(curren)m(t)150
-1678 y(line)g(separated)g(b)m(y)f(single)h(spaces.)275
-1812 y(F)-8 b(or)31 b(example,)150 1970 y Ft(!!)384 b
-Fu(designates)37 b(the)f(preceding)g(command.)57 b(When)35
-b(y)m(ou)i(t)m(yp)s(e)f(this,)h(the)f(preceding)g(com-)630
-2080 y(mand)30 b(is)g(rep)s(eated)g(in)g(toto.)150 2238
+Fu(.)150 1578 y Ft(!#)384 b Fu(The)30 b(en)m(tire)h(command)f(line)h(t)
+m(yp)s(ed)f(so)h(far.)150 1789 y Fk(9.3.2)63 b(W)-10
+b(ord)41 b(Designators)150 1936 y Fu(W)-8 b(ord)28 b(designators)h(are)
+f(used)f(to)i(select)h(desired)d(w)m(ords)h(from)f(the)h(ev)m(en)m(t.)
+42 b(They)27 b(are)i(optional;)h(if)e(the)150 2045 y(w)m(ord)h
+(designator)i(isn't)e(supplied,)g(the)h(history)g(expansion)f(uses)g
+(the)h(en)m(tire)h(ev)m(en)m(t.)42 b(A)29 b(`)p Ft(:)p
+Fu(')h(separates)150 2155 y(the)f(ev)m(en)m(t)i(sp)s(eci\014cation)e
+(from)g(the)g(w)m(ord)g(designator.)41 b(It)29 b(ma)m(y)g(b)s(e)g
+(omitted)h(if)e(the)i(w)m(ord)e(designator)150 2264 y(b)s(egins)33
+b(with)h(a)h(`)p Ft(^)p Fu(',)g(`)p Ft($)p Fu(',)g(`)p
+Ft(*)p Fu(',)h(`)p Ft(-)p Fu(',)f(or)f(`)p Ft(\045)p
+Fu('.)52 b(W)-8 b(ords)35 b(are)f(n)m(um)m(b)s(ered)f(from)g(the)i(b)s
+(eginning)e(of)h(the)g(line,)150 2374 y(with)39 b(the)h(\014rst)e(w)m
+(ord)h(b)s(eing)g(denoted)g(b)m(y)h(0)f(\(zero\).)69
+b(That)40 b(\014rst)e(w)m(ord)h(is)h(usually)f(the)g(command)150
+2484 y(w)m(ord,)31 b(and)f(the)h(argumen)m(ts)g(b)s(egin)f(with)g(the)h
+(second)g(w)m(ord.)41 b(W)-8 b(ords)31 b(are)g(inserted)g(in)m(to)g
+(the)g(curren)m(t)150 2593 y(line)g(separated)g(b)m(y)f(single)h
+(spaces.)275 2739 y(F)-8 b(or)31 b(example,)150 2915
+y Ft(!!)384 b Fu(designates)37 b(the)f(preceding)g(command.)57
+b(When)35 b(y)m(ou)i(t)m(yp)s(e)f(this,)h(the)f(preceding)g(com-)630
+3025 y(mand)30 b(is)g(rep)s(eated)g(in)g(toto.)150 3196
y Ft(!!:$)288 b Fu(designates)30 b(the)g(last)g(w)m(ord)f(of)g(the)h
(preceding)f(command.)40 b(This)29 b(ma)m(y)h(b)s(e)e(shortened)h(to)
-630 2348 y Ft(!$)p Fu(.)150 2506 y Ft(!fi:2)240 b Fu(designates)30
+630 3305 y Ft(!$)p Fu(.)150 3476 y Ft(!fi:2)240 b Fu(designates)30
b(the)g(second)f(argumen)m(t)h(of)f(the)h(most)f(recen)m(t)i(command)e
-(starting)h(with)f(the)630 2615 y(letters)j Ft(fi)p Fu(.)275
-2773 y(Here)e(are)h(the)g(w)m(ord)f(designators:)150
-2931 y Ft(0)g(\(zero\))114 b Fu(The)24 b Ft(0)p Fu(th)g(w)m(ord.)38
+(starting)h(with)f(the)630 3586 y(letters)j Ft(fi)p Fu(.)275
+3762 y(Here)e(are)h(the)g(w)m(ord)f(designators:)150
+3938 y Ft(0)g(\(zero\))114 b Fu(The)24 b Ft(0)p Fu(th)g(w)m(ord.)38
b(F)-8 b(or)25 b(the)g(shell,)h(and)d(man)m(y)i(other,)h(applications,)
-h(this)d(is)h(the)f(command)630 3041 y(w)m(ord.)150 3199
+h(this)d(is)h(the)f(command)630 4048 y(w)m(ord.)150 4219
y Fj(n)432 b Fu(The)30 b Fr(n)p Fu(th)g(w)m(ord.)150
-3357 y Ft(^)432 b Fu(The)30 b(\014rst)f(argumen)m(t:)42
-b(w)m(ord)30 b(1.)150 3515 y Ft($)432 b Fu(The)36 b(last)i(w)m(ord.)59
+4389 y Ft(^)432 b Fu(The)30 b(\014rst)f(argumen)m(t:)42
+b(w)m(ord)30 b(1.)150 4560 y Ft($)432 b Fu(The)36 b(last)i(w)m(ord.)59
b(This)36 b(is)h(usually)f(the)h(last)g(argumen)m(t,)i(but)d(expands)g
-(to)h(the)g(zeroth)630 3625 y(w)m(ord)30 b(if)g(there)h(is)f(only)h
-(one)f(w)m(ord)g(in)h(the)f(line.)150 3783 y Ft(\045)432
+(to)h(the)g(zeroth)630 4670 y(w)m(ord)30 b(if)g(there)h(is)f(only)h
+(one)f(w)m(ord)g(in)h(the)f(line.)150 4840 y Ft(\045)432
b Fu(The)40 b(\014rst)h(w)m(ord)f(matc)m(hed)i(b)m(y)f(the)g(most)g
(recen)m(t)h(`)p Ft(?)p Fj(string)p Ft(?)p Fu(')d(searc)m(h,)44
-b(if)d(the)g(searc)m(h)630 3892 y(string)25 b(b)s(egins)g(with)g(a)h(c)
+b(if)d(the)g(searc)m(h)630 4950 y(string)25 b(b)s(egins)g(with)g(a)h(c)
m(haracter)h(that)f(is)g(part)f(of)h(a)g(w)m(ord.)38
-b(By)26 b(default,)h(searc)m(hes)f(b)s(egin)630 4002
+b(By)26 b(default,)h(searc)m(hes)f(b)s(egin)630 5060
y(at)j(the)e(end)h(of)g(eac)m(h)h(line)f(and)f(pro)s(ceed)g(to)i(the)f
(b)s(eginning,)g(so)g(the)g(\014rst)f(w)m(ord)g(matc)m(hed)630
-4111 y(is)j(the)h(one)g(closest)h(to)f(the)f(end)g(of)g(the)h(line.)150
-4269 y Fj(x)p Ft(-)p Fj(y)336 b Fu(A)30 b(range)h(of)g(w)m(ords;)f(`)p
+5169 y(is)j(the)h(one)g(closest)h(to)f(the)f(end)g(of)g(the)h(line.)150
+5340 y Fj(x)p Ft(-)p Fj(y)336 b Fu(A)30 b(range)h(of)g(w)m(ords;)f(`)p
Ft(-)p Fj(y)p Fu(')g(abbreviates)h(`)p Ft(0-)p Fj(y)p
-Fu('.)150 4427 y Ft(*)432 b Fu(All)28 b(of)g(the)g(w)m(ords,)g(except)h
-(the)e Ft(0)p Fu(th.)40 b(This)27 b(is)g(a)h(synon)m(ym)f(for)h(`)p
+Fu('.)p eop end
+%%Page: 174 180
+TeXDict begin 174 179 bop 150 -116 a Fu(Chapter)30 b(9:)41
+b(Using)30 b(History)h(In)m(teractiv)m(ely)1925 b(174)150
+299 y Ft(*)432 b Fu(All)28 b(of)g(the)g(w)m(ords,)g(except)h(the)e
+Ft(0)p Fu(th.)40 b(This)27 b(is)g(a)h(synon)m(ym)f(for)h(`)p
Ft(1-$)p Fu('.)39 b(It)28 b(is)g(not)g(an)f(error)630
-4537 y(to)k(use)f(`)p Ft(*)p Fu(')h(if)f(there)h(is)f(just)g(one)h(w)m
+408 y(to)k(use)f(`)p Ft(*)p Fu(')h(if)f(there)h(is)f(just)g(one)h(w)m
(ord)f(in)g(the)h(ev)m(en)m(t;)h(it)f(expands)e(to)j(the)e(empt)m(y)h
-(string)630 4647 y(in)f(that)h(case.)150 4805 y Fj(x)p
+(string)630 518 y(in)f(that)h(case.)150 677 y Fj(x)p
Ft(*)384 b Fu(Abbreviates)31 b(`)p Fj(x)p Ft(-$)p Fu('.)150
-4963 y Fj(x)p Ft(-)384 b Fu(Abbreviates)27 b(`)p Fj(x)p
+837 y Fj(x)p Ft(-)384 b Fu(Abbreviates)27 b(`)p Fj(x)p
Ft(-$)p Fu(')g(lik)m(e)h(`)p Fj(x)p Ft(*)p Fu(',)g(but)e(omits)i(the)f
(last)h(w)m(ord.)39 b(If)27 b(`)p Ft(x)p Fu(')g(is)g(missing,)g(it)h
-(defaults)630 5072 y(to)j(0.)275 5230 y(If)i(a)h(w)m(ord)g(designator)g
+(defaults)630 946 y(to)j(0.)275 1106 y(If)i(a)h(w)m(ord)g(designator)g
(is)g(supplied)f(without)h(an)g(ev)m(en)m(t)h(sp)s(eci\014cation,)h
-(the)e(previous)f(command)150 5340 y(is)d(used)g(as)h(the)f(ev)m(en)m
-(t,)i(equiv)-5 b(alen)m(t)32 b(to)f Ft(!!)p Fu(.)p eop
-end
-%%Page: 174 180
-TeXDict begin 174 179 bop 150 -116 a Fu(Chapter)30 b(9:)41
-b(Using)30 b(History)h(In)m(teractiv)m(ely)1925 b(174)150
-299 y Fk(9.3.3)63 b(Mo)s(di\014ers)150 446 y Fu(After)29
+(the)e(previous)f(command)150 1215 y(is)d(used)g(as)h(the)f(ev)m(en)m
+(t,)i(equiv)-5 b(alen)m(t)32 b(to)f Ft(!!)p Fu(.)150
+1415 y Fk(9.3.3)63 b(Mo)s(di\014ers)150 1562 y Fu(After)29
b(the)g(optional)g(w)m(ord)g(designator,)g(y)m(ou)g(can)g(add)f(a)h
(sequence)g(of)g(one)g(or)f(more)h(of)g(the)f(follo)m(wing)150
-555 y(mo)s(di\014ers,)33 b(eac)m(h)h(preceded)f(b)m(y)g(a)h(`)p
+1671 y(mo)s(di\014ers,)33 b(eac)m(h)h(preceded)f(b)m(y)g(a)h(`)p
Ft(:)p Fu('.)50 b(These)33 b(mo)s(dify)-8 b(,)33 b(or)h(edit,)g(the)g
-(w)m(ord)f(or)g(w)m(ords)g(selected)h(from)150 665 y(the)d(history)f
-(ev)m(en)m(t.)150 824 y Ft(h)432 b Fu(Remo)m(v)m(e)32
+(w)m(ord)f(or)g(w)m(ords)g(selected)h(from)150 1781 y(the)d(history)f
+(ev)m(en)m(t.)150 1940 y Ft(h)432 b Fu(Remo)m(v)m(e)32
b(a)f(trailing)g(\014lename)g(comp)s(onen)m(t,)g(lea)m(ving)h(only)e
-(the)h(head.)150 984 y Ft(t)432 b Fu(Remo)m(v)m(e)32
+(the)h(head.)150 2100 y Ft(t)432 b Fu(Remo)m(v)m(e)32
b(all)f(leading)h(\014lename)e(comp)s(onen)m(ts,)h(lea)m(ving)h(the)f
-(tail.)150 1143 y Ft(r)432 b Fu(Remo)m(v)m(e)32 b(a)f(trailing)g
+(tail.)150 2259 y Ft(r)432 b Fu(Remo)m(v)m(e)32 b(a)f(trailing)g
(su\016x)f(of)g(the)h(form)f(`)p Ft(.)p Fj(suffix)p Fu(',)f(lea)m(ving)
-j(the)f(basename.)150 1303 y Ft(e)432 b Fu(Remo)m(v)m(e)32
-b(all)f(but)f(the)h(trailing)g(su\016x.)150 1462 y Ft(p)432
+j(the)f(basename.)150 2418 y Ft(e)432 b Fu(Remo)m(v)m(e)32
+b(all)f(but)f(the)h(trailing)g(su\016x.)150 2578 y Ft(p)432
b Fu(Prin)m(t)30 b(the)h(new)f(command)g(but)g(do)g(not)g(execute)i
-(it.)150 1621 y Ft(q)432 b Fu(Quote)31 b(the)f(substituted)g(w)m(ords,)
-g(escaping)h(further)e(substitutions.)150 1781 y Ft(x)432
+(it.)150 2737 y Ft(q)432 b Fu(Quote)31 b(the)f(substituted)g(w)m(ords,)
+g(escaping)h(further)e(substitutions.)150 2897 y Ft(x)432
b Fu(Quote)32 b(the)f(substituted)g(w)m(ords)f(as)i(with)f(`)p
Ft(q)p Fu(',)h(but)e(break)h(in)m(to)i(w)m(ords)d(at)i(spaces,)h(tabs,)
-630 1890 y(and)d(newlines.)41 b(The)30 b(`)p Ft(q)p Fu(')h(and)f(`)p
+630 3006 y(and)d(newlines.)41 b(The)30 b(`)p Ft(q)p Fu(')h(and)f(`)p
Ft(x)p Fu(')h(mo)s(di\014ers)e(are)i(m)m(utually)g(exclusiv)m(e;)i
-(expansion)d(uses)630 2000 y(the)h(last)g(one)f(supplied.)150
-2159 y Ft(s/)p Fj(old)p Ft(/)p Fj(new)p Ft(/)630 2269
+(expansion)d(uses)630 3116 y(the)h(last)g(one)f(supplied.)150
+3275 y Ft(s/)p Fj(old)p Ft(/)p Fj(new)p Ft(/)630 3385
y Fu(Substitute)h Fr(new)39 b Fu(for)32 b(the)g(\014rst)f(o)s
(ccurrence)h(of)f Fr(old)36 b Fu(in)31 b(the)h(ev)m(en)m(t)h(line.)46
-b(An)m(y)31 b(c)m(haracter)630 2379 y(ma)m(y)k(b)s(e)e(used)h(as)g(the)
+b(An)m(y)31 b(c)m(haracter)630 3494 y(ma)m(y)k(b)s(e)e(used)h(as)g(the)
h(delimiter)g(in)f(place)h(of)f(`)p Ft(/)p Fu('.)53 b(The)33
-b(delimiter)i(ma)m(y)g(b)s(e)f(quoted)g(in)630 2488 y
+b(delimiter)i(ma)m(y)g(b)s(e)f(quoted)g(in)630 3604 y
Fr(old)i Fu(and)31 b Fr(new)39 b Fu(with)31 b(a)i(single)f(bac)m
(kslash.)46 b(If)31 b(`)p Ft(&)p Fu(')h(app)s(ears)f(in)h
-Fr(new)p Fu(,)g(it)g(is)g(replaced)g(with)630 2598 y
+Fr(new)p Fu(,)g(it)g(is)g(replaced)g(with)630 3714 y
Fr(old)p Fu(.)41 b(A)30 b(single)h(bac)m(kslash)g(quotes)g(the)f(`)p
Ft(&)p Fu(')h(in)f Fr(old)k Fu(and)29 b Fr(new)p Fu(.)41
b(If)29 b Fr(old)34 b Fu(is)d(n)m(ull,)f(it)h(is)f(set)h(to)630
-2707 y(the)f(last)g Fr(old)j Fu(substituted,)c(or,)h(if)f(no)g
+3823 y(the)f(last)g Fr(old)j Fu(substituted,)c(or,)h(if)f(no)g
(previous)g(history)g(substitutions)g(to)s(ok)h(place,)h(the)630
-2817 y(last)e Fr(string)36 b Fu(in)28 b(a)h(!?)p Fr(string)8
+3933 y(last)e Fr(string)36 b Fu(in)28 b(a)h(!?)p Fr(string)8
b Ft([?])28 b Fu(searc)m(h.)40 b(If)28 b Fr(new)36 b
Fu(is)28 b(n)m(ull,)h(eac)m(h)h(matc)m(hing)f Fr(old)j
-Fu(is)d(deleted.)630 2927 y(The)h(\014nal)g(delimiter)h(is)f(optional)i
+Fu(is)d(deleted.)630 4042 y(The)h(\014nal)g(delimiter)h(is)f(optional)i
(if)e(it)h(is)g(the)f(last)h(c)m(haracter)h(on)f(the)f(input)g(line.)
-150 3086 y Ft(&)432 b Fu(Rep)s(eat)31 b(the)f(previous)g(substitution.)
-150 3245 y Ft(g)150 3355 y(a)432 b Fu(Cause)27 b(c)m(hanges)i(to)f(b)s
+150 4202 y Ft(&)432 b Fu(Rep)s(eat)31 b(the)f(previous)g(substitution.)
+150 4361 y Ft(g)150 4471 y(a)432 b Fu(Cause)27 b(c)m(hanges)i(to)f(b)s
(e)f(applied)g(o)m(v)m(er)h(the)g(en)m(tire)g(ev)m(en)m(t)h(line.)40
-b(This)27 b(is)g(used)g(in)g(conjunc-)630 3465 y(tion)k(with)f(`)p
+b(This)27 b(is)g(used)g(in)g(conjunc-)630 4580 y(tion)k(with)f(`)p
Ft(s)p Fu(',)h(as)f(in)g Ft(gs/)p Fj(old)p Ft(/)p Fj(new)p
-Ft(/)p Fu(,)e(or)i(with)g(`)p Ft(&)p Fu('.)150 3624 y
+Ft(/)p Fu(,)e(or)i(with)g(`)p Ft(&)p Fu('.)150 4740 y
Ft(G)432 b Fu(Apply)30 b(the)g(follo)m(wing)i(`)p Ft(s)p
Fu(')f(or)f(`)p Ft(&)p Fu(')h(mo)s(di\014er)e(once)i(to)g(eac)m(h)h(w)m
(ord)e(in)g(the)g(ev)m(en)m(t.)p eop end
b(Installing)31 b(Bash)2356 b(178)150 299 y Fs(10.7)68
b(Op)t(eration)46 b(Con)l(trols)150 458 y Ft(configure)28
b Fu(recognizes)k(the)e(follo)m(wing)i(options)f(to)g(con)m(trol)h(ho)m
-(w)e(it)h(op)s(erates.)150 619 y Ft(--cache-file=)p Fj(file)630
-729 y Fu(Use)d(and)g(sa)m(v)m(e)h(the)f(results)g(of)g(the)h(tests)f
+(w)e(it)h(op)s(erates.)150 625 y Ft(--cache-file=)p Fj(file)630
+735 y Fu(Use)d(and)g(sa)m(v)m(e)h(the)f(results)g(of)g(the)h(tests)f
(in)g Fr(\014le)33 b Fu(instead)28 b(of)h Ft(./config.cache)p
-Fu(.)36 b(Set)28 b Fr(\014le)630 838 y Fu(to)j Ft(/dev/null)d
+Fu(.)36 b(Set)28 b Fr(\014le)630 844 y Fu(to)j Ft(/dev/null)d
Fu(to)j(disable)g(cac)m(hing,)h(for)e(debugging)g Ft(configure)p
-Fu(.)150 999 y Ft(--help)192 b Fu(Prin)m(t)30 b(a)h(summary)e(of)i(the)
-f(options)h(to)g Ft(configure)p Fu(,)d(and)i(exit.)150
-1159 y Ft(--quiet)150 1269 y(--silent)150 1378 y(-q)384
+Fu(.)150 1008 y Ft(--help)192 b Fu(Prin)m(t)30 b(a)h(summary)e(of)i
+(the)f(options)h(to)g Ft(configure)p Fu(,)d(and)i(exit.)150
+1173 y Ft(--quiet)150 1282 y(--silent)150 1392 y(-q)384
b Fu(Do)31 b(not)g(prin)m(t)f(messages)h(sa)m(ying)g(whic)m(h)g(c)m
-(hec)m(ks)g(are)g(b)s(eing)f(made.)150 1539 y Ft(--srcdir=)p
-Fj(dir)630 1648 y Fu(Lo)s(ok)i(for)g(the)g(Bash)g(source)h(co)s(de)f
+(hec)m(ks)g(are)g(b)s(eing)f(made.)150 1556 y Ft(--srcdir=)p
+Fj(dir)630 1666 y Fu(Lo)s(ok)i(for)g(the)g(Bash)g(source)h(co)s(de)f
(in)g(directory)g Fr(dir)p Fu(.)45 b(Usually)33 b Ft(configure)c
-Fu(can)j(deter-)630 1758 y(mine)e(that)h(directory)g(automatically)-8
-b(.)150 1918 y Ft(--version)630 2028 y Fu(Prin)m(t)29
+Fu(can)j(deter-)630 1775 y(mine)e(that)h(directory)g(automatically)-8
+b(.)150 1940 y Ft(--version)630 2049 y Fu(Prin)m(t)29
b(the)h(v)m(ersion)g(of)g(Auto)s(conf)f(used)g(to)h(generate)h(the)f
-Ft(configure)d Fu(script,)j(and)f(exit.)275 2188 y Ft(configure)34
+Ft(configure)d Fu(script,)j(and)f(exit.)275 2216 y Ft(configure)34
b Fu(also)k(accepts)g(some)g(other,)h(not)e(widely)g(used,)h(b)s
-(oilerplate)g(options.)61 b(`)p Ft(configure)150 2298
+(oilerplate)g(options.)61 b(`)p Ft(configure)150 2325
y(--help)p Fu(')29 b(prin)m(ts)h(the)g(complete)i(list.)150
-2540 y Fs(10.8)68 b(Optional)46 b(F)-11 b(eatures)150
-2700 y Fu(The)29 b(Bash)h Ft(configure)d Fu(has)j(a)g(n)m(um)m(b)s(er)f
+2573 y Fs(10.8)68 b(Optional)46 b(F)-11 b(eatures)150
+2733 y Fu(The)29 b(Bash)h Ft(configure)d Fu(has)j(a)g(n)m(um)m(b)s(er)f
(of)h Ft(--enable-)p Fj(feature)25 b Fu(options,)30 b(where)g
-Fr(feature)35 b Fu(indicates)150 2809 y(an)e(optional)i(part)e(of)h
+Fr(feature)35 b Fu(indicates)150 2842 y(an)e(optional)i(part)e(of)h
(Bash.)50 b(There)33 b(are)g(also)i(sev)m(eral)g Ft(--with-)p
Fj(package)29 b Fu(options,)35 b(where)e Fr(pac)m(k)-5
-b(age)150 2919 y Fu(is)41 b(something)g(lik)m(e)h(`)p
+b(age)150 2952 y Fu(is)41 b(something)g(lik)m(e)h(`)p
Ft(bash-malloc)p Fu(')c(or)i(`)p Ft(afs)p Fu('.)71 b(T)-8
b(o)42 b(turn)d(o\013)i(the)g(default)g(use)f(of)h(a)g(pac)m(k)-5
-b(age,)45 b(use)150 3028 y Ft(--without-)p Fj(package)p
+b(age,)45 b(use)150 3062 y Ft(--without-)p Fj(package)p
Fu(.)h(T)-8 b(o)34 b(con\014gure)g(Bash)g(without)f(a)i(feature)f(that)
-g(is)g(enabled)g(b)m(y)f(default,)i(use)150 3138 y Ft(--disable-)p
-Fj(feature)p Fu(.)275 3273 y(Here)28 b(is)g(a)h(complete)g(list)g(of)f
+g(is)g(enabled)g(b)m(y)f(default,)i(use)150 3171 y Ft(--disable-)p
+Fj(feature)p Fu(.)275 3311 y(Here)28 b(is)g(a)h(complete)g(list)g(of)f
(the)h Ft(--enable-)c Fu(and)j Ft(--with-)e Fu(options)i(that)h(the)f
-(Bash)g Ft(configure)150 3383 y Fu(recognizes.)150 3544
-y Ft(--with-afs)630 3653 y Fu(De\014ne)j(if)f(y)m(ou)h(are)f(using)g
+(Bash)g Ft(configure)150 3420 y Fu(recognizes.)150 3587
+y Ft(--with-afs)630 3696 y Fu(De\014ne)j(if)f(y)m(ou)h(are)f(using)g
(the)h(Andrew)e(File)j(System)e(from)g(T)-8 b(ransarc.)150
-3814 y Ft(--with-bash-malloc)630 3923 y Fu(Use)34 b(the)g(Bash)h(v)m
+3861 y Ft(--with-bash-malloc)630 3970 y Fu(Use)34 b(the)g(Bash)h(v)m
(ersion)f(of)g Ft(malloc)e Fu(in)i(the)g(directory)h
Ft(lib/malloc)p Fu(.)48 b(This)34 b(is)g(not)g(the)630
-4033 y(same)29 b Ft(malloc)e Fu(that)j(app)s(ears)e(in)g
+4080 y(same)29 b Ft(malloc)e Fu(that)j(app)s(ears)e(in)g
Fm(gnu)h Fu(lib)s(c,)g(but)f(a)h(custom)g(v)m(ersion)h(originally)g
-(deriv)m(ed)630 4143 y(from)i(the)h(4.2)g Fm(bsd)f Ft(malloc)p
+(deriv)m(ed)630 4189 y(from)i(the)h(4.2)g Fm(bsd)f Ft(malloc)p
Fu(.)45 b(This)31 b Ft(malloc)g Fu(is)i(v)m(ery)f(fast,)i(but)e(w)m
-(astes)h(some)g(space)g(on)630 4252 y(eac)m(h)g(allo)s(cation,)i
+(astes)h(some)g(space)g(on)630 4299 y(eac)m(h)g(allo)s(cation,)i
(though)c(it)h(uses)g(sev)m(eral)h(tec)m(hniques)f(to)h(minimize)f(the)
-g(w)m(aste.)46 b(This)630 4362 y(option)27 b(is)g(enabled)f(b)m(y)g
+g(w)m(aste.)46 b(This)630 4409 y(option)27 b(is)g(enabled)f(b)m(y)g
(default.)40 b(The)26 b Ft(NOTES)f Fu(\014le)i(con)m(tains)h(a)e(list)i
-(of)e(systems)h(for)f(whic)m(h)630 4471 y(this)h(should)f(b)s(e)h
+(of)e(systems)h(for)f(whic)m(h)630 4518 y(this)h(should)f(b)s(e)h
(turned)f(o\013,)i(and)f Ft(configure)d Fu(disables)j(this)h(option)f
-(automatically)j(for)630 4581 y(a)h(n)m(um)m(b)s(er)e(of)h(systems.)150
-4741 y Ft(--with-curses)630 4851 y Fu(Use)22 b(the)f(curses)g(library)g
-(instead)h(of)g(the)f(termcap)h(library)-8 b(.)38 b Ft(configure)19
-b Fu(usually)i(c)m(ho)s(oses)630 4960 y(this)42 b(automatically)-8
-b(,)49 b(since)42 b(most)h(systems)f(include)g(the)g(termcap)h
-(functions)f(in)g(the)630 5070 y(curses)30 b(library)-8
-b(.)150 5230 y Ft(--with-gnu-malloc)630 5340 y Fu(A)30
-b(synon)m(ym)g(for)g Ft(--with-bash-malloc)p Fu(.)p eop
-end
+(automatically)j(for)630 4628 y(a)h(n)m(um)m(b)s(er)e(of)h(systems.)150
+4792 y Ft(--with-curses[=)p Fj(LIBNAME)p Ft(])630 4902
+y Fu(Use)48 b(the)f(curses)g(library)g(instead)h(of)f(the)h(termcap)f
+(library)g(as)h(the)f(library)g(where)630 5011 y(the)f(link)m(er)g(can)
+g(\014nd)e(the)h(termcap)h(functions.)86 b Ft(configure)43
+b Fu(usually)j(c)m(ho)s(oses)g(this)630 5121 y(automatically)-8
+b(,)74 b(since)63 b(most)g(systems)g(include)f(the)h(termcap)g
+(functions)f(in)h(the)630 5230 y(curses)53 b(library)-8
+b(.)108 b(If)53 b Fr(LIBNAME)59 b Fu(is)53 b(supplied,)58
+b Ft(configure)50 b Fu(do)s(es)j(not)g(searc)m(h)h(for)630
+5340 y(an)59 b(appropriate)g(library)g(and)g(uses)f Fr(LIBNAME)65
+b Fu(instead.)128 b Fr(LIBNAME)65 b Fu(should)p eop end
%%Page: 179 185
TeXDict begin 179 184 bop 150 -116 a Fu(Chapter)30 b(10:)41
-b(Installing)31 b(Bash)2356 b(179)150 299 y Ft
-(--with-installed-readlin)o(e[=)p Fj(P)o(REFI)o(X)p Ft(])630
-408 y Fu(De\014ne)26 b(this)f(to)h(mak)m(e)h(Bash)f(link)f(with)g(a)h
-(lo)s(cally-installed)i(v)m(ersion)e(of)g(Readline)g(rather)630
-518 y(than)f(the)h(v)m(ersion)g(in)f Ft(lib/readline)p
-Fu(.)36 b(This)25 b(w)m(orks)g(only)h(with)f(Readline)h(5.0)h(and)e
-(later)630 628 y(v)m(ersions.)46 b(If)32 b Fr(PREFIX)41
-b Fu(is)32 b Ft(yes)f Fu(or)i(not)f(supplied,)f Ft(configure)f
-Fu(uses)i(the)g(v)-5 b(alues)32 b(of)h(the)630 737 y(mak)m(e)28
-b(v)-5 b(ariables)29 b Ft(includedir)24 b Fu(and)j Ft(libdir)p
-Fu(,)g(whic)m(h)g(are)h(sub)s(directories)f(of)g Ft(prefix)f
-Fu(b)m(y)630 847 y(default,)44 b(to)d(\014nd)f(the)h(installed)g(v)m
-(ersion)h(of)f(Readline)g(if)g(it)g(is)g(not)g(in)g(the)g(standard)630
-956 y(system)35 b(include)f(and)g(library)g(directories.)54
-b(If)34 b Fr(PREFIX)43 b Fu(is)35 b Ft(no)p Fu(,)g(Bash)f(links)h(with)
-f(the)630 1066 y(v)m(ersion)42 b(in)e Ft(lib/readline)p
-Fu(.)70 b(If)40 b Fr(PREFIX)51 b Fu(is)41 b(set)g(to)h(an)m(y)g(other)f
-(v)-5 b(alue,)44 b Ft(configure)630 1176 y Fu(treats)27
-b(it)g(as)f(a)h(directory)g(pathname)f(and)f(lo)s(oks)i(for)f(the)g
-(installed)h(v)m(ersion)g(of)f(Readline)630 1285 y(in)34
-b(sub)s(directories)f(of)h(that)h(directory)g(\(include)f(\014les)g(in)
-g Fr(PREFIX)9 b Fu(/)p Ft(include)32 b Fu(and)i(the)630
-1395 y(library)26 b(in)h Fr(PREFIX)9 b Fu(/)p Ft(lib)p
-Fu(\).)39 b(The)26 b(Bash)h(default)g(is)f(to)i(link)e(with)h(a)g
-(static)h(library)e(built)630 1504 y(in)k(the)h Ft(lib/readline)c
-Fu(sub)s(directory)i(of)h(the)h(build)e(directory)-8
-b(.)150 1680 y Ft(--with-libintl-prefix[=)p Fj(P)o(REFI)o(X)p
-Ft(])630 1789 y Fu(De\014ne)45 b(this)f(to)h(mak)m(e)g(Bash)g(link)f
+b(Installing)31 b(Bash)2356 b(179)630 299 y(b)s(e)45
+b(either)i(an)f(argumen)m(t)g(for)g(the)g(link)m(er)h(\(e.g.,)52
+b Ft(-l)p Fj(libname)p Fu(\))43 b(or)j(a)h(\014lename)f(\(e.g.,)630
+408 y Ft(/opt/local/lib/libncurse)o(sw.s)o(o)p Fu(\).)150
+582 y Ft(--with-gnu-malloc)630 692 y Fu(A)30 b(synon)m(ym)g(for)g
+Ft(--with-bash-malloc)p Fu(.)150 866 y Ft(--with-installed-readlin)o
+(e[=)p Fj(P)o(REFI)o(X)p Ft(])630 975 y Fu(De\014ne)c(this)f(to)h(mak)m
+(e)h(Bash)f(link)f(with)g(a)h(lo)s(cally-installed)i(v)m(ersion)e(of)g
+(Readline)g(rather)630 1085 y(than)f(the)h(v)m(ersion)g(in)f
+Ft(lib/readline)p Fu(.)36 b(This)25 b(w)m(orks)g(only)h(with)f
+(Readline)h(5.0)h(and)e(later)630 1195 y(v)m(ersions.)46
+b(If)32 b Fr(PREFIX)41 b Fu(is)32 b Ft(yes)f Fu(or)i(not)f(supplied,)f
+Ft(configure)f Fu(uses)i(the)g(v)-5 b(alues)32 b(of)h(the)630
+1304 y(mak)m(e)28 b(v)-5 b(ariables)29 b Ft(includedir)24
+b Fu(and)j Ft(libdir)p Fu(,)g(whic)m(h)g(are)h(sub)s(directories)f(of)g
+Ft(prefix)f Fu(b)m(y)630 1414 y(default,)44 b(to)d(\014nd)f(the)h
+(installed)g(v)m(ersion)h(of)f(Readline)g(if)g(it)g(is)g(not)g(in)g
+(the)g(standard)630 1523 y(system)35 b(include)f(and)g(library)g
+(directories.)54 b(If)34 b Fr(PREFIX)43 b Fu(is)35 b
+Ft(no)p Fu(,)g(Bash)f(links)h(with)f(the)630 1633 y(v)m(ersion)42
+b(in)e Ft(lib/readline)p Fu(.)70 b(If)40 b Fr(PREFIX)51
+b Fu(is)41 b(set)g(to)h(an)m(y)g(other)f(v)-5 b(alue,)44
+b Ft(configure)630 1743 y Fu(treats)27 b(it)g(as)f(a)h(directory)g
+(pathname)f(and)f(lo)s(oks)i(for)f(the)g(installed)h(v)m(ersion)g(of)f
+(Readline)630 1852 y(in)34 b(sub)s(directories)f(of)h(that)h(directory)
+g(\(include)f(\014les)g(in)g Fr(PREFIX)9 b Fu(/)p Ft(include)32
+b Fu(and)i(the)630 1962 y(library)26 b(in)h Fr(PREFIX)9
+b Fu(/)p Ft(lib)p Fu(\).)39 b(The)26 b(Bash)h(default)g(is)f(to)i(link)
+e(with)h(a)g(static)h(library)e(built)630 2071 y(in)k(the)h
+Ft(lib/readline)c Fu(sub)s(directory)i(of)h(the)h(build)e(directory)-8
+b(.)150 2245 y Ft(--with-libintl-prefix[=)p Fj(P)o(REFI)o(X)p
+Ft(])630 2355 y Fu(De\014ne)45 b(this)f(to)h(mak)m(e)g(Bash)g(link)f
(with)g(a)h(lo)s(cally-installed)i(v)m(ersion)e(of)g(the)f(libin)m(tl)
-630 1899 y(library)30 b(instead)h(of)f(the)h(v)m(ersion)g(in)f
-Ft(lib/intl)p Fu(.)150 2074 y Ft(--with-libiconv-prefix[=)o
-Fj(PREF)o(IX)p Ft(])630 2184 y Fu(De\014ne)g(this)g(to)g(mak)m(e)h
+630 2464 y(library)30 b(instead)h(of)f(the)h(v)m(ersion)g(in)f
+Ft(lib/intl)p Fu(.)150 2638 y Ft(--with-libiconv-prefix[=)o
+Fj(PREF)o(IX)p Ft(])630 2748 y Fu(De\014ne)g(this)g(to)g(mak)m(e)h
(Bash)f(lo)s(ok)g(for)g(libicon)m(v)h(in)e Fr(PREFIX)39
-b Fu(instead)30 b(of)g(the)g(standard)630 2294 y(system)h(lo)s
+b Fu(instead)30 b(of)g(the)g(standard)630 2857 y(system)h(lo)s
(cations.)42 b(The)30 b(Bash)g(distribution)g(do)s(es)g(not)g(include)h
-(this)f(library)-8 b(.)150 2469 y Ft(--enable-minimal-config)630
-2579 y Fu(This)40 b(pro)s(duces)f(a)j(shell)f(with)f(minimal)h
+(this)f(library)-8 b(.)150 3031 y Ft(--enable-minimal-config)630
+3141 y Fu(This)40 b(pro)s(duces)f(a)j(shell)f(with)f(minimal)h
(features,)j(closer)e(to)f(the)g(historical)h(Bourne)630
-2688 y(shell.)275 2872 y(There)35 b(are)i(sev)m(eral)h
+3251 y(shell.)275 3432 y(There)35 b(are)i(sev)m(eral)h
Ft(--enable-)c Fu(options)j(that)g(alter)g(ho)m(w)g(Bash)f(is)h
-(compiled,)i(link)m(ed,)f(and)e(in-)150 2981 y(stalled,)c(rather)e
-(than)g(c)m(hanging)h(run-time)f(features.)150 3165 y
-Ft(--enable-largefile)630 3274 y Fu(Enable)36 b(supp)s(ort)f(for)g
+(compiled,)i(link)m(ed,)f(and)e(in-)150 3541 y(stalled,)c(rather)e
+(than)g(c)m(hanging)h(run-time)f(features.)150 3722 y
+Ft(--enable-largefile)630 3832 y Fu(Enable)36 b(supp)s(ort)f(for)g
(large)j(\014les)e(\()p Ft(http:)5 b(/)g(/)g(www)g(.)g(unix)g(.)g(org)t
-(/)g(v)o(ersi)o(on2)t(/)g(w)o(hats)o(new)t(/)630 3384
+(/)g(v)o(ersi)o(on2)t(/)g(w)o(hats)o(new)t(/)630 3942
y(lfs20mar)h(.)g(html)p Fu(\))35 b(if)j(the)g(op)s(erating)g(system)g
(requires)f(sp)s(ecial)i(compiler)f(options)g(to)630
-3493 y(build)33 b(programs)g(whic)m(h)h(can)g(access)h(large)g
+4051 y(build)33 b(programs)g(whic)m(h)h(can)g(access)h(large)g
(\014les.)51 b(This)33 b(is)h(enabled)g(b)m(y)g(default,)h(if)f(the)630
-3603 y(op)s(erating)d(system)f(pro)m(vides)h(large)g(\014le)g(supp)s
-(ort.)150 3778 y Ft(--enable-profiling)630 3888 y Fu(This)g(builds)f(a)
+4161 y(op)s(erating)d(system)f(pro)m(vides)h(large)g(\014le)g(supp)s
+(ort.)150 4335 y Ft(--enable-profiling)630 4444 y Fu(This)g(builds)f(a)
i(Bash)g(binary)f(that)h(pro)s(duces)e(pro\014ling)h(information)h(to)h
-(b)s(e)d(pro)s(cessed)630 3998 y(b)m(y)g Ft(gprof)f Fu(eac)m(h)j(time)f
-(it)g(is)f(executed.)150 4173 y Ft(--enable-separate-helpfi)o(les)630
-4283 y Fu(Use)i(external)h(\014les)f(for)g(the)g(do)s(cumen)m(tation)h
+(b)s(e)d(pro)s(cessed)630 4554 y(b)m(y)g Ft(gprof)f Fu(eac)m(h)j(time)f
+(it)g(is)f(executed.)150 4728 y Ft(--enable-separate-helpfi)o(les)630
+4837 y Fu(Use)i(external)h(\014les)f(for)g(the)g(do)s(cumen)m(tation)h
(displa)m(y)m(ed)f(b)m(y)g(the)g Ft(help)f Fu(builtin)h(instead)630
-4392 y(of)f(storing)f(the)h(text)g(in)m(ternally)-8 b(.)150
-4568 y Ft(--enable-static-link)630 4677 y Fu(This)37
+4947 y(of)f(storing)f(the)h(text)g(in)m(ternally)-8 b(.)150
+5121 y Ft(--enable-static-link)630 5230 y Fu(This)37
b(causes)h(Bash)f(to)h(b)s(e)f(link)m(ed)h(statically)-8
b(,)43 b(if)37 b Ft(gcc)g Fu(is)g(b)s(eing)g(used.)61
-b(This)37 b(could)h(b)s(e)630 4787 y(used)30 b(to)h(build)e(a)i(v)m
-(ersion)g(to)g(use)f(as)g(ro)s(ot's)h(shell.)275 4970
-y(The)f(`)p Ft(minimal-config)p Fu(')d(option)k(can)g(b)s(e)f(used)f
-(to)j(disable)e(all)i(of)f(the)f(follo)m(wing)i(options,)g(but)d(it)150
-5080 y(is)h(pro)s(cessed)g(\014rst,)g(so)h(individual)f(options)g(ma)m
-(y)h(b)s(e)f(enabled)g(using)g(`)p Ft(enable-)p Fj(feature)p
-Fu('.)275 5230 y(All)133 b(of)g(the)g(follo)m(wing)i(options)e(except)h
-(for)f(`)p Ft(alt-array-implementation)o Fu(',)150 5340
-y(`)p Ft(disabled-builtins)p Fu(',)212 b(`)p Ft(direxpand-default)p
-Fu(',)h(`)p Ft(strict-posix-default)p Fu(',)f(and)p eop
-end
+b(This)37 b(could)h(b)s(e)630 5340 y(used)30 b(to)h(build)e(a)i(v)m
+(ersion)g(to)g(use)f(as)g(ro)s(ot's)h(shell.)p eop end
%%Page: 180 186
TeXDict begin 180 185 bop 150 -116 a Fu(Chapter)30 b(10:)41
-b(Installing)31 b(Bash)2356 b(180)150 299 y(`)p Ft(xpg-echo-default)p
-Fu(')28 b(are)33 b(enabled)f(b)m(y)g(default,)h(unless)e(the)i(op)s
-(erating)f(system)h(do)s(es)e(not)i(pro)m(vide)150 408
-y(the)e(necessary)f(supp)s(ort.)150 555 y Ft(--enable-alias)630
-664 y Fu(Allo)m(w)41 b(alias)g(expansion)f(and)f(include)g(the)h
-Ft(alias)f Fu(and)g Ft(unalias)e Fu(builtins)j(\(see)g(Sec-)630
-774 y(tion)31 b(6.6)g([Aliases],)i(page)e(109\).)150
-920 y Ft(--enable-alt-array-imple)o(ment)o(atio)o(n)630
-1029 y Fu(This)h(builds)g(Bash)h(using)f(an)g(alternate)j(implemen)m
-(tation)f(of)f(arra)m(ys)h(\(see)f(Section)h(6.7)630
-1139 y([Arra)m(ys],)43 b(page)d(110\))h(that)f(pro)m(vides)g(faster)g
+b(Installing)31 b(Bash)2356 b(180)275 299 y(The)30 b(`)p
+Ft(minimal-config)p Fu(')d(option)k(can)g(b)s(e)f(used)f(to)j(disable)e
+(all)i(of)f(the)f(follo)m(wing)i(options,)g(but)d(it)150
+408 y(is)h(pro)s(cessed)g(\014rst,)g(so)h(individual)f(options)g(ma)m
+(y)h(b)s(e)f(enabled)g(using)g(`)p Ft(enable-)p Fj(feature)p
+Fu('.)275 537 y(All)133 b(of)g(the)g(follo)m(wing)i(options)e(except)h
+(for)f(`)p Ft(alt-array-implementation)o Fu(',)150 647
+y(`)p Ft(disabled-builtins)p Fu(',)212 b(`)p Ft(direxpand-default)p
+Fu(',)h(`)p Ft(strict-posix-default)p Fu(',)f(and)150
+756 y(`)p Ft(xpg-echo-default)p Fu(')28 b(are)33 b(enabled)f(b)m(y)g
+(default,)h(unless)e(the)i(op)s(erating)f(system)h(do)s(es)e(not)i(pro)
+m(vide)150 866 y(the)e(necessary)f(supp)s(ort.)150 1014
+y Ft(--enable-alias)630 1123 y Fu(Allo)m(w)41 b(alias)g(expansion)f
+(and)f(include)g(the)h Ft(alias)f Fu(and)g Ft(unalias)e
+Fu(builtins)j(\(see)g(Sec-)630 1233 y(tion)31 b(6.6)g([Aliases],)i
+(page)e(109\).)150 1380 y Ft(--enable-alt-array-imple)o(ment)o(atio)o
+(n)630 1490 y Fu(This)h(builds)g(Bash)h(using)f(an)g(alternate)j
+(implemen)m(tation)f(of)f(arra)m(ys)h(\(see)f(Section)h(6.7)630
+1600 y([Arra)m(ys],)43 b(page)d(110\))h(that)f(pro)m(vides)g(faster)g
(access)h(at)f(the)g(exp)s(ense)f(of)h(using)f(more)630
-1249 y(memory)30 b(\(sometimes)i(man)m(y)e(times)h(more,)g(dep)s
+1709 y(memory)30 b(\(sometimes)i(man)m(y)e(times)h(more,)g(dep)s
(ending)e(on)h(ho)m(w)h(sparse)f(an)g(arra)m(y)h(is\).)150
-1395 y Ft(--enable-arith-for-comma)o(nd)630 1504 y Fu(Include)21
+1857 y Ft(--enable-arith-for-comma)o(nd)630 1967 y Fu(Include)21
b(supp)s(ort)g(for)g(the)i(alternate)g(form)f(of)g(the)g
Ft(for)f Fu(command)h(that)h(b)s(eha)m(v)m(es)f(lik)m(e)i(the)630
-1614 y(C)30 b(language)i Ft(for)d Fu(statemen)m(t)j(\(see)g(Section)f
+2076 y(C)30 b(language)i Ft(for)d Fu(statemen)m(t)j(\(see)g(Section)f
(3.2.5.1)i([Lo)s(oping)d(Constructs],)h(page)g(12\).)150
-1760 y Ft(--enable-array-variables)630 1870 y Fu(Include)h(supp)s(ort)g
+2224 y Ft(--enable-array-variables)630 2333 y Fu(Include)h(supp)s(ort)g
(for)h(one-dimensional)h(arra)m(y)f(shell)h(v)-5 b(ariables)33
-b(\(see)h(Section)g(6.7)h([Ar-)630 1979 y(ra)m(ys],)c(page)g(110\).)150
-2125 y Ft(--enable-bang-history)630 2235 y Fu(Include)36
+b(\(see)h(Section)g(6.7)h([Ar-)630 2443 y(ra)m(ys],)c(page)g(110\).)150
+2591 y Ft(--enable-bang-history)630 2700 y Fu(Include)36
b(supp)s(ort)f(for)h Ft(csh)p Fu(-lik)m(e)h(history)g(substitution)f
-(\(see)h(Section)g(9.3)h([History)f(In-)630 2345 y(teraction],)c(page)e
-(171\).)150 2491 y Ft(--enable-bash-source-ful)o(lpat)o(h-de)o(fau)o
-(lt)630 2600 y Fu(Set)21 b(the)f(default)h(v)-5 b(alue)21
+(\(see)h(Section)g(9.3)h([History)f(In-)630 2810 y(teraction],)c(page)e
+(171\).)150 2958 y Ft(--enable-bash-source-ful)o(lpat)o(h-de)o(fau)o
+(lt)630 3067 y Fu(Set)21 b(the)f(default)h(v)-5 b(alue)21
b(of)g(the)g Ft(bash_source_fullpath)15 b Fu(shell)20
-b(option)h(describ)s(ed)f(ab)s(o)m(v)m(e)630 2710 y(under)30
+b(option)h(describ)s(ed)f(ab)s(o)m(v)m(e)630 3177 y(under)30
b(Section)i(4.3.2)h([The)e(Shopt)g(Builtin],)h(page)g(78,)h(to)f(b)s(e)
-f(enabled.)43 b(This)31 b(con)m(trols)630 2819 y(ho)m(w)f(\014lenames)h
+f(enabled.)43 b(This)31 b(con)m(trols)630 3286 y(ho)m(w)f(\014lenames)h
(are)g(assigned)f(to)h(the)g Ft(BASH_SOURCE)c Fu(arra)m(y)k(v)-5
-b(ariable.)150 2966 y Ft(--enable-brace-expansion)630
-3075 y Fu(Include)40 b Ft(csh)p Fu(-lik)m(e)h(brace)f(expansion)g(\()h
+b(ariable.)150 3434 y Ft(--enable-brace-expansion)630
+3544 y Fu(Include)40 b Ft(csh)p Fu(-lik)m(e)h(brace)f(expansion)g(\()h
Ft(b{a,b}c)d Fq(7!)i Ft(bac)30 b(bbc)39 b Fu(\).)71 b(See)40
-b(Section)h(3.5.1)630 3185 y([Brace)32 b(Expansion],)e(page)h(25,)h
-(for)e(a)g(complete)i(description.)150 3331 y Ft
-(--enable-casemod-attribu)o(tes)630 3440 y Fu(Include)37
+b(Section)h(3.5.1)630 3653 y([Brace)32 b(Expansion],)e(page)h(25,)h
+(for)e(a)g(complete)i(description.)150 3801 y Ft
+(--enable-casemod-attribu)o(tes)630 3911 y Fu(Include)37
b(supp)s(ort)g(for)g(case-mo)s(difying)i(attributes)g(in)e(the)h
-Ft(declare)e Fu(builtin)i(and)f(as-)630 3550 y(signmen)m(t)43
+Ft(declare)e Fu(builtin)i(and)f(as-)630 4020 y(signmen)m(t)43
b(statemen)m(ts.)78 b(V)-8 b(ariables)44 b(with)e(the)g
Ft(uppercase)e Fu(attribute,)46 b(for)c(example,)630
-3660 y(will)31 b(ha)m(v)m(e)g(their)g(v)-5 b(alues)30
+4130 y(will)31 b(ha)m(v)m(e)g(their)g(v)-5 b(alues)30
b(con)m(v)m(erted)i(to)f(upp)s(ercase)f(up)s(on)f(assignmen)m(t.)150
-3806 y Ft(--enable-casemod-expansi)o(on)630 3915 y Fu(Include)h(supp)s
+4277 y Ft(--enable-casemod-expansi)o(on)630 4387 y Fu(Include)h(supp)s
(ort)e(for)i(case-mo)s(difying)i(w)m(ord)e(expansions.)150
-4061 y Ft(--enable-command-timing)630 4171 y Fu(Include)43
+4535 y Ft(--enable-command-timing)630 4644 y Fu(Include)43
b(supp)s(ort)f(for)h(recognizing)i Ft(time)e Fu(as)g(a)h(reserv)m(ed)g
-(w)m(ord)f(and)g(for)h(displa)m(ying)630 4281 y(timing)37
+(w)m(ord)f(and)g(for)h(displa)m(ying)630 4754 y(timing)37
b(statistics)h(for)e(the)g(pip)s(eline)g(follo)m(wing)i
Ft(time)d Fu(\(see)i(Section)g(3.2.3)h([Pip)s(elines],)630
-4390 y(page)52 b(10\).)107 b(This)50 b(allo)m(ws)k(timing)e(pip)s
+4864 y(page)52 b(10\).)107 b(This)50 b(allo)m(ws)k(timing)e(pip)s
(elines,)57 b(shell)51 b(comp)s(ound)g(commands,)57 b(shell)630
-4500 y(builtins,)30 b(and)g(shell)g(functions,)h(whic)m(h)f(an)g
+4973 y(builtins,)30 b(and)g(shell)g(functions,)h(whic)m(h)f(an)g
(external)h(command)f(cannot)h(do)g(easily)-8 b(.)150
-4646 y Ft(--enable-cond-command)630 4756 y Fu(Include)33
+5121 y Ft(--enable-cond-command)630 5230 y Fu(Include)33
b(supp)s(ort)f(for)i(the)g Ft([[)f Fu(conditional)i(command.)51
-b(\(see)34 b(Section)h(3.2.5.2)h([Condi-)630 4865 y(tional)c
-(Constructs],)e(page)h(12\).)150 5011 y Ft(--enable-cond-regexp)630
-5121 y Fu(Include)k(supp)s(ort)f(for)i(matc)m(hing)h
-Fm(posix)e Fu(regular)h(expressions)g(using)f(the)h(`)p
-Ft(=~)p Fu(')g(binary)630 5230 y(op)s(erator)25 b(in)f(the)h
-Ft([[)f Fu(conditional)h(command.)39 b(\(see)25 b(Section)h(3.2.5.2)h
-([Conditional)e(Con-)630 5340 y(structs],)31 b(page)g(12\).)p
-eop end
+b(\(see)34 b(Section)h(3.2.5.2)h([Condi-)630 5340 y(tional)c
+(Constructs],)e(page)h(13\).)p eop end
%%Page: 181 187
TeXDict begin 181 186 bop 150 -116 a Fu(Chapter)30 b(10:)41
-b(Installing)31 b(Bash)2356 b(181)150 299 y Ft(--enable-coprocesses)630
-408 y Fu(Include)23 b(supp)s(ort)f(for)i(copro)s(cesses)g(and)f(the)h
-Ft(coproc)e Fu(reserv)m(ed)i(w)m(ord)g(\(see)h(Section)f(3.2.3)630
-518 y([Pip)s(elines],)31 b(page)g(10\).)150 664 y Ft(--enable-debugger)
-630 774 y Fu(Include)f(supp)s(ort)e(for)i(the)h(Bash)g(debugger)f
-(\(distributed)f(separately\).)150 920 y Ft(--enable-dev-fd-stat-bro)o
-(ken)630 1029 y Fu(If)d(calling)j Ft(stat)d Fu(on)g(/dev/fd/)p
-Fr(N)38 b Fu(returns)25 b(di\013eren)m(t)j(results)f(than)f(calling)j
-Ft(fstat)c Fu(on)i(\014le)630 1139 y(descriptor)g Fr(N)p
-Fu(,)i(supply)c(this)j(option)g(to)g(enable)f(a)h(w)m(ork)-5
-b(around.)39 b(This)27 b(has)g(implications)630 1249
-y(for)j(conditional)i(commands)e(that)h(test)g(\014le)g(attributes.)150
-1395 y Ft(--enable-direxpand-defau)o(lt)630 1504 y Fu(Cause)53
-b(the)g Ft(direxpand)d Fu(shell)j(option)h(\(see)g(Section)f(4.3.2)i
-([The)e(Shopt)f(Builtin],)630 1614 y(page)29 b(78\))g(to)f(b)s(e)f
-(enabled)h(b)m(y)g(default)g(when)e(the)i(shell)g(starts.)41
-b(It)27 b(is)h(normally)g(disabled)630 1724 y(b)m(y)i(default.)150
-1870 y Ft(--enable-directory-stack)630 1979 y Fu(Include)j(supp)s(ort)g
-(for)h(a)g Ft(csh)p Fu(-lik)m(e)h(directory)f(stac)m(k)i(and)d(the)i
-Ft(pushd)p Fu(,)f Ft(popd)p Fu(,)g(and)f Ft(dirs)630
-2089 y Fu(builtins)d(\(see)h(Section)g(6.8)h([The)e(Directory)i(Stac)m
-(k],)g(page)f(112\).)150 2235 y Ft(--enable-disabled-builti)o(ns)630
-2345 y Fu(Allo)m(w)40 b(builtin)e(commands)g(to)h(b)s(e)f(in)m(v)m(ok)m
-(ed)i(via)f(`)p Ft(builtin)29 b(xxx)p Fu(')37 b(ev)m(en)j(after)f
-Ft(xxx)e Fu(has)630 2454 y(b)s(een)31 b(disabled)g(using)g(`)p
+b(Installing)31 b(Bash)2356 b(181)150 299 y Ft(--enable-cond-regexp)630
+408 y Fu(Include)35 b(supp)s(ort)f(for)i(matc)m(hing)h
+Fm(posix)e Fu(regular)h(expressions)g(using)f(the)h(`)p
+Ft(=~)p Fu(')g(binary)630 518 y(op)s(erator)25 b(in)f(the)h
+Ft([[)f Fu(conditional)h(command.)39 b(\(see)25 b(Section)h(3.2.5.2)h
+([Conditional)e(Con-)630 628 y(structs],)31 b(page)g(13\).)150
+797 y Ft(--enable-coprocesses)630 907 y Fu(Include)23
+b(supp)s(ort)f(for)i(copro)s(cesses)g(and)f(the)h Ft(coproc)e
+Fu(reserv)m(ed)i(w)m(ord)g(\(see)h(Section)f(3.2.3)630
+1016 y([Pip)s(elines],)31 b(page)g(10\).)150 1186 y Ft
+(--enable-debugger)630 1295 y Fu(Include)f(supp)s(ort)e(for)i(the)h
+(Bash)g(debugger)f(\(distributed)f(separately\).)150
+1465 y Ft(--enable-dev-fd-stat-bro)o(ken)630 1574 y Fu(If)d(calling)j
+Ft(stat)d Fu(on)g(/dev/fd/)p Fr(N)38 b Fu(returns)25
+b(di\013eren)m(t)j(results)f(than)f(calling)j Ft(fstat)c
+Fu(on)i(\014le)630 1684 y(descriptor)g Fr(N)p Fu(,)i(supply)c(this)j
+(option)g(to)g(enable)f(a)h(w)m(ork)-5 b(around.)39 b(This)27
+b(has)g(implications)630 1793 y(for)j(conditional)i(commands)e(that)h
+(test)g(\014le)g(attributes.)150 1963 y Ft(--enable-direxpand-defau)o
+(lt)630 2072 y Fu(Cause)53 b(the)g Ft(direxpand)d Fu(shell)j(option)h
+(\(see)g(Section)f(4.3.2)i([The)e(Shopt)f(Builtin],)630
+2182 y(page)29 b(78\))g(to)f(b)s(e)f(enabled)h(b)m(y)g(default)g(when)e
+(the)i(shell)g(starts.)41 b(It)27 b(is)h(normally)g(disabled)630
+2291 y(b)m(y)i(default.)150 2461 y Ft(--enable-directory-stack)630
+2570 y Fu(Include)j(supp)s(ort)g(for)h(a)g Ft(csh)p Fu(-lik)m(e)h
+(directory)f(stac)m(k)i(and)d(the)i Ft(pushd)p Fu(,)f
+Ft(popd)p Fu(,)g(and)f Ft(dirs)630 2680 y Fu(builtins)d(\(see)h
+(Section)g(6.8)h([The)e(Directory)i(Stac)m(k],)g(page)f(112\).)150
+2849 y Ft(--enable-disabled-builti)o(ns)630 2959 y Fu(Allo)m(w)40
+b(builtin)e(commands)g(to)h(b)s(e)f(in)m(v)m(ok)m(ed)i(via)f(`)p
+Ft(builtin)29 b(xxx)p Fu(')37 b(ev)m(en)j(after)f Ft(xxx)e
+Fu(has)630 3068 y(b)s(een)31 b(disabled)g(using)g(`)p
Ft(enable)d(-n)i(xxx)p Fu('.)43 b(See)32 b(Section)g(4.2)h([Bash)e
-(Builtins],)i(page)f(61,)630 2564 y(for)e(details)i(of)e(the)h
+(Builtins],)i(page)f(61,)630 3178 y(for)e(details)i(of)e(the)h
Ft(builtin)d Fu(and)i Ft(enable)e Fu(builtin)i(commands.)150
-2710 y Ft(--enable-dparen-arithmet)o(ic)630 2819 y Fu(Include)42
+3347 y Ft(--enable-dparen-arithmet)o(ic)630 3457 y Fu(Include)42
b(supp)s(ort)f(for)h(the)h Ft(\(\(...)o(\)\))f Fu(command)g(\(see)i
-(Section)f(3.2.5.2)i([Conditional)630 2929 y(Constructs],)30
-b(page)h(12\).)150 3075 y Ft(--enable-extended-glob)630
-3185 y Fu(Include)40 b(supp)s(ort)e(for)i(the)h(extended)f(pattern)h
+(Section)f(3.2.5.2)i([Conditional)630 3567 y(Constructs],)30
+b(page)h(13\).)150 3736 y Ft(--enable-extended-glob)630
+3846 y Fu(Include)40 b(supp)s(ort)e(for)i(the)h(extended)f(pattern)h
(matc)m(hing)g(features)g(describ)s(ed)e(ab)s(o)m(v)m(e)630
-3294 y(under)29 b(Section)i(3.5.8.1)i([P)m(attern)e(Matc)m(hing],)i
-(page)e(39.)150 3440 y Ft(--enable-extended-glob-d)o(efau)o(lt)630
-3550 y Fu(Set)37 b(the)f(default)h(v)-5 b(alue)37 b(of)f(the)h
+3955 y(under)29 b(Section)i(3.5.8.1)i([P)m(attern)e(Matc)m(hing],)i
+(page)e(39.)150 4125 y Ft(--enable-extended-glob-d)o(efau)o(lt)630
+4234 y Fu(Set)37 b(the)f(default)h(v)-5 b(alue)37 b(of)f(the)h
Ft(extglob)d Fu(shell)j(option)g(describ)s(ed)e(ab)s(o)m(v)m(e)j(under)
-c(Sec-)630 3660 y(tion)d(4.3.2)h([The)e(Shopt)g(Builtin],)h(page)g(78,)
-h(to)f(b)s(e)f(enabled.)150 3806 y Ft(--enable-function-import)630
-3915 y Fu(Include)23 b(supp)s(ort)g(for)g(imp)s(orting)h(function)g
+c(Sec-)630 4344 y(tion)d(4.3.2)h([The)e(Shopt)g(Builtin],)h(page)g(78,)
+h(to)f(b)s(e)f(enabled.)150 4513 y Ft(--enable-function-import)630
+4623 y Fu(Include)23 b(supp)s(ort)g(for)g(imp)s(orting)h(function)g
(de\014nitions)f(exp)s(orted)h(b)m(y)g(another)g(instance)630
-4025 y(of)31 b(the)f(shell)h(from)f(the)g(en)m(vironmen)m(t.)41
+4732 y(of)31 b(the)f(shell)h(from)f(the)g(en)m(vironmen)m(t.)41
b(This)30 b(option)h(is)f(enabled)h(b)m(y)f(default.)150
-4171 y Ft(--enable-glob-asciirange)o(s-de)o(faul)o(t)630
-4281 y Fu(Set)f(the)f(default)h(v)-5 b(alue)29 b(of)f(the)h
+4902 y Ft(--enable-glob-asciirange)o(s-de)o(faul)o(t)630
+5011 y Fu(Set)f(the)f(default)h(v)-5 b(alue)29 b(of)f(the)h
Ft(globasciiranges)24 b Fu(shell)29 b(option)g(describ)s(ed)e(ab)s(o)m
-(v)m(e)j(un-)630 4390 y(der)c(Section)i(4.3.2)h([The)d(Shopt)g
+(v)m(e)j(un-)630 5121 y(der)c(Section)i(4.3.2)h([The)d(Shopt)g
(Builtin],)j(page)f(78,)g(to)g(b)s(e)e(enabled.)40 b(This)26
-b(con)m(trols)i(the)630 4500 y(b)s(eha)m(vior)40 b(of)f(c)m(haracter)i
+b(con)m(trols)i(the)630 5230 y(b)s(eha)m(vior)40 b(of)f(c)m(haracter)i
(ranges)f(when)f(used)f(in)i(pattern)f(matc)m(hing)i(brac)m(k)m(et)g
-(expres-)630 4609 y(sions.)150 4756 y Ft(--enable-help-builtin)630
-4865 y Fu(Include)24 b(the)h Ft(help)f Fu(builtin,)h(whic)m(h)g(displa)
-m(ys)f(help)h(on)f(shell)h(builtins)f(and)h(v)-5 b(ariables)25
-b(\(see)630 4975 y(Section)31 b(4.2)h([Bash)e(Builtins],)i(page)f
-(61\).)150 5121 y Ft(--enable-history)630 5230 y Fu(Include)e(command)g
-(history)h(and)f(the)h Ft(fc)f Fu(and)g Ft(history)e
-Fu(builtin)j(commands)f(\(see)h(Sec-)630 5340 y(tion)h(9.1)g([Bash)g
-(History)g(F)-8 b(acilities],)34 b(page)d(168\).)p eop
-end
+(expres-)630 5340 y(sions.)p eop end
%%Page: 182 188
TeXDict begin 182 187 bop 150 -116 a Fu(Chapter)30 b(10:)41
-b(Installing)31 b(Bash)2356 b(182)150 299 y Ft(--enable-job-control)630
-408 y Fu(This)32 b(enables)i(the)f(job)g(con)m(trol)i(features)e(\(see)
-i(Chapter)d(7)i([Job)f(Con)m(trol],)i(page)f(125\),)630
-518 y(if)c(the)h(op)s(erating)g(system)f(supp)s(orts)f(them.)150
-673 y Ft(--enable-multibyte)630 783 y Fu(This)g(enables)i(supp)s(ort)d
-(for)i(m)m(ultib)m(yte)h(c)m(haracters)g(if)f(the)g(op)s(erating)h
-(system)f(pro)m(vides)630 892 y(the)h(necessary)f(supp)s(ort.)150
-1048 y Ft(--enable-net-redirection)o(s)630 1157 y Fu(This)23
+b(Installing)31 b(Bash)2356 b(182)150 299 y Ft(--enable-help-builtin)
+630 408 y Fu(Include)24 b(the)h Ft(help)f Fu(builtin,)h(whic)m(h)g
+(displa)m(ys)f(help)h(on)f(shell)h(builtins)f(and)h(v)-5
+b(ariables)25 b(\(see)630 518 y(Section)31 b(4.2)h([Bash)e(Builtins],)i
+(page)f(61\).)150 664 y Ft(--enable-history)630 774 y
+Fu(Include)e(command)g(history)h(and)f(the)h Ft(fc)f
+Fu(and)g Ft(history)e Fu(builtin)j(commands)f(\(see)h(Sec-)630
+883 y(tion)h(9.1)g([Bash)g(History)g(F)-8 b(acilities],)34
+b(page)d(168\).)150 1029 y Ft(--enable-job-control)630
+1139 y Fu(This)h(enables)i(the)f(job)g(con)m(trol)i(features)e(\(see)i
+(Chapter)d(7)i([Job)f(Con)m(trol],)i(page)f(125\),)630
+1249 y(if)c(the)h(op)s(erating)g(system)f(supp)s(orts)f(them.)150
+1395 y Ft(--enable-multibyte)630 1504 y Fu(This)g(enables)i(supp)s(ort)
+d(for)i(m)m(ultib)m(yte)h(c)m(haracters)g(if)f(the)g(op)s(erating)h
+(system)f(pro)m(vides)630 1614 y(the)h(necessary)f(supp)s(ort.)150
+1760 y Ft(--enable-net-redirection)o(s)630 1870 y Fu(This)23
b(enables)h(the)g(sp)s(ecial)h(handling)e(of)h(\014lenames)g(of)g(the)g
-(form)g Ft(/dev/tcp/)p Fj(host)p Ft(/)p Fj(port)630 1267
+(form)g Ft(/dev/tcp/)p Fj(host)p Ft(/)p Fj(port)630 1979
y Fu(and)31 b Ft(/dev/udp/)p Fj(host)p Ft(/)p Fj(port)26
b Fu(when)31 b(used)g(in)g(redirections)h(\(see)g(Section)g(3.6)h
-([Redirec-)630 1377 y(tions],)e(page)g(41\).)150 1532
-y Ft(--enable-process-substit)o(utio)o(n)630 1641 y Fu(This)49
+([Redirec-)630 2089 y(tions],)e(page)g(41\).)150 2235
+y Ft(--enable-process-substit)o(utio)o(n)630 2345 y Fu(This)49
b(enables)i(pro)s(cess)f(substitution)g(\(see)h(Section)g(3.5.6)h([Pro)
-s(cess)e(Substitution],)630 1751 y(page)31 b(37\))h(if)e(the)h(op)s
+s(cess)e(Substitution],)630 2454 y(page)31 b(38\))h(if)e(the)h(op)s
(erating)f(system)h(pro)m(vides)f(the)h(necessary)g(supp)s(ort.)150
-1906 y Ft(--enable-progcomp)630 2016 y Fu(Enable)d(the)g(programmable)g
+2600 y Ft(--enable-progcomp)630 2710 y Fu(Enable)d(the)g(programmable)g
(completion)i(facilities)g(\(see)f(Section)g(8.6)g([Programmable)630
-2125 y(Completion],)i(page)h(158\).)42 b(If)30 b(Readline)h(is)f(not)h
+2819 y(Completion],)i(page)h(158\).)42 b(If)30 b(Readline)h(is)f(not)h
(enabled,)f(this)h(option)g(has)f(no)g(e\013ect.)150
-2281 y Ft(--enable-prompt-string-d)o(ecod)o(ing)630 2390
+2966 y Ft(--enable-prompt-string-d)o(ecod)o(ing)630 3075
y Fu(T)-8 b(urn)30 b(on)i(the)f(in)m(terpretation)i(of)f(a)g(n)m(um)m
(b)s(er)e(of)i(bac)m(kslash-escap)s(ed)g(c)m(haracters)i(in)d(the)630
-2500 y Ft($PS0)p Fu(,)36 b Ft($PS1)p Fu(,)g Ft($PS2)p
+3185 y Ft($PS0)p Fu(,)36 b Ft($PS1)p Fu(,)g Ft($PS2)p
Fu(,)h(and)e Ft($PS4)f Fu(prompt)h(strings.)57 b(See)36
-b(Section)h(6.9)g([Con)m(trolling)g(the)630 2609 y(Prompt],)30
+b(Section)h(6.9)g([Con)m(trolling)g(the)630 3294 y(Prompt],)30
b(page)h(114,)h(for)f(a)f(complete)i(list)f(of)g(prompt)e(string)i
-(escap)s(e)f(sequences.)150 2765 y Ft(--enable-readline)630
-2874 y Fu(Include)e(supp)s(ort)f(for)h(command-line)h(editing)g(and)f
-(history)g(with)g(the)h(Bash)g(v)m(ersion)g(of)630 2984
+(escap)s(e)f(sequences.)150 3440 y Ft(--enable-readline)630
+3550 y Fu(Include)e(supp)s(ort)f(for)h(command-line)h(editing)g(and)f
+(history)g(with)g(the)h(Bash)g(v)m(ersion)g(of)630 3660
y(the)i(Readline)g(library)f(\(see)h(Chapter)f(8)g([Command)g(Line)g
-(Editing],)h(page)g(130\).)150 3139 y Ft(--enable-restricted)630
-3249 y Fu(Include)25 b(supp)s(ort)e(for)i(a)h Fr(restricted)g(shell)p
+(Editing],)h(page)g(130\).)150 3806 y Ft(--enable-restricted)630
+3915 y Fu(Include)25 b(supp)s(ort)e(for)i(a)h Fr(restricted)g(shell)p
Fu(.)39 b(If)25 b(this)g(is)h(enabled,)g(Bash)g(en)m(ters)g(a)f
-(restricted)630 3358 y(mo)s(de)30 b(when)f(called)i(as)g
+(restricted)630 4025 y(mo)s(de)30 b(when)f(called)i(as)g
Ft(rbash)p Fu(.)39 b(See)30 b(Section)h(6.10)h([The)e(Restricted)h
-(Shell],)f(page)h(115,)630 3468 y(for)f(a)h(description)f(of)h
-(restricted)g(mo)s(de.)150 3623 y Ft(--enable-select)630
-3733 y Fu(Include)42 b(the)h Ft(select)d Fu(comp)s(ound)i(command,)j
+(Shell],)f(page)h(115,)630 4134 y(for)f(a)h(description)f(of)h
+(restricted)g(mo)s(de.)150 4281 y Ft(--enable-select)630
+4390 y Fu(Include)42 b(the)h Ft(select)d Fu(comp)s(ound)i(command,)j
(whic)m(h)d(allo)m(ws)i(generation)g(of)f(simple)630
-3842 y(men)m(us)30 b(\(see)h(Section)g(3.2.5.2)i([Conditional)e
-(Constructs],)g(page)g(12\).)150 3998 y Ft(--enable-single-help-str)o
-(ings)630 4107 y Fu(Store)40 b(the)g(text)h(displa)m(y)m(ed)g(b)m(y)e
+4500 y(men)m(us)30 b(\(see)h(Section)g(3.2.5.2)i([Conditional)e
+(Constructs],)g(page)g(13\).)150 4646 y Ft(--enable-single-help-str)o
+(ings)630 4756 y Fu(Store)40 b(the)g(text)h(displa)m(y)m(ed)g(b)m(y)e
(the)i Ft(help)d Fu(builtin)i(as)g(a)g(single)h(string)f(for)f(eac)m(h)
-i(help)630 4217 y(topic.)54 b(This)33 b(aids)i(in)f(translating)h(the)g
+i(help)630 4865 y(topic.)54 b(This)33 b(aids)i(in)f(translating)h(the)g
(text)g(to)g(di\013eren)m(t)g(languages.)54 b(Y)-8 b(ou)35
-b(ma)m(y)g(need)630 4326 y(to)c(disable)g(this)f(if)g(y)m(our)h
+b(ma)m(y)g(need)630 4975 y(to)c(disable)g(this)f(if)g(y)m(our)h
(compiler)g(cannot)f(handle)g(v)m(ery)h(long)g(string)f(literals.)150
-4482 y Ft(--enable-strict-posix-de)o(faul)o(t)630 4591
+5121 y Ft(--enable-strict-posix-de)o(faul)o(t)630 5230
y Fu(Mak)m(e)c(Bash)f Fm(posix)p Fu(-conforman)m(t)g(b)m(y)f(default)h
(\(see)g(Section)h(6.11)g([Bash)f(POSIX)e(Mo)s(de],)630
-4701 y(page)31 b(116\).)150 4856 y Ft(--enable-translatable-st)o(ring)o
-(s)630 4966 y Fu(Enable)h(supp)s(ort)e(for)i Ft($")p
-Fj(string)p Ft(")e Fu(translatable)j(strings)f(\(see)h(Section)g
-(3.1.2.5)h([Lo)s(cale)630 5075 y(T)-8 b(ranslation],)32
-b(page)f(7\).)150 5230 y Ft(--enable-usg-echo-defaul)o(t)630
-5340 y Fu(A)f(synon)m(ym)g(for)g Ft(--enable-xpg-echo-default)p
-Fu(.)p eop end
+5340 y(page)31 b(116\).)p eop end
%%Page: 183 189
TeXDict begin 183 188 bop 150 -116 a Fu(Chapter)30 b(10:)41
b(Installing)31 b(Bash)2356 b(183)150 299 y Ft
-(--enable-xpg-echo-defaul)o(t)630 408 y Fu(Mak)m(e)26
-b(the)f Ft(echo)e Fu(builtin)i(expand)f(bac)m(kslash-escap)s(ed)h(c)m
-(haracters)h(b)m(y)f(default,)h(without)630 518 y(requiring)d(the)h
+(--enable-translatable-st)o(ring)o(s)630 408 y Fu(Enable)32
+b(supp)s(ort)e(for)i Ft($")p Fj(string)p Ft(")e Fu(translatable)j
+(strings)f(\(see)h(Section)g(3.1.2.5)h([Lo)s(cale)630
+518 y(T)-8 b(ranslation],)32 b(page)f(7\).)150 677 y
+Ft(--enable-usg-echo-defaul)o(t)630 787 y Fu(A)f(synon)m(ym)g(for)g
+Ft(--enable-xpg-echo-default)p Fu(.)150 946 y Ft
+(--enable-xpg-echo-defaul)o(t)630 1056 y Fu(Mak)m(e)c(the)f
+Ft(echo)e Fu(builtin)i(expand)f(bac)m(kslash-escap)s(ed)h(c)m
+(haracters)h(b)m(y)f(default,)h(without)630 1166 y(requiring)d(the)h
Ft(-e)f Fu(option.)39 b(This)23 b(sets)h(the)g(default)g(v)-5
b(alue)24 b(of)g(the)g Ft(xpg_echo)e Fu(shell)h(option)630
-628 y(to)28 b Ft(on)p Fu(,)g(whic)m(h)f(mak)m(es)h(the)g(Bash)f
+1275 y(to)28 b Ft(on)p Fu(,)g(whic)m(h)f(mak)m(es)h(the)g(Bash)f
Ft(echo)f Fu(b)s(eha)m(v)m(e)i(more)g(lik)m(e)h(the)e(v)m(ersion)h(sp)s
-(eci\014ed)f(in)g(the)630 737 y(Single)35 b(Unix)f(Sp)s(eci\014cation,)
-i(v)m(ersion)e(3.)53 b(See)35 b(Section)g(4.2)g([Bash)g(Builtins],)h
-(page)f(61,)630 847 y(for)30 b(a)h(description)f(of)h(the)f(escap)s(e)h
-(sequences)g(that)g Ft(echo)e Fu(recognizes.)275 1006
-y(The)f(\014le)i Ft(config-top.h)c Fu(con)m(tains)31
+(eci\014ed)f(in)g(the)630 1385 y(Single)35 b(Unix)f(Sp)s
+(eci\014cation,)i(v)m(ersion)e(3.)53 b(See)35 b(Section)g(4.2)g([Bash)g
+(Builtins],)h(page)f(61,)630 1494 y(for)30 b(a)h(description)f(of)h
+(the)f(escap)s(e)h(sequences)g(that)g Ft(echo)e Fu(recognizes.)275
+1654 y(The)f(\014le)i Ft(config-top.h)c Fu(con)m(tains)31
b(C)d(Prepro)s(cessor)h(`)p Ft(#define)p Fu(')f(statemen)m(ts)j(for)f
-(options)f(whic)m(h)150 1116 y(are)35 b(not)g(settable)i(from)d
+(options)f(whic)m(h)150 1763 y(are)35 b(not)g(settable)i(from)d
Ft(configure)p Fu(.)51 b(Some)35 b(of)g(these)g(are)h(not)f(mean)m(t)g
-(to)h(b)s(e)e(c)m(hanged;)k(b)s(ew)m(are)d(of)150 1225
+(to)h(b)s(e)e(c)m(hanged;)k(b)s(ew)m(are)d(of)150 1873
y(the)h(consequences)g(if)f(y)m(ou)h(do.)55 b(Read)36
b(the)g(commen)m(ts)g(asso)s(ciated)h(with)e(eac)m(h)i(de\014nition)e
-(for)g(more)150 1335 y(information)c(ab)s(out)f(its)h(e\013ect.)p
+(for)g(more)150 1983 y(information)c(ab)s(out)f(its)h(e\013ect.)p
eop end
%%Page: 184 190
TeXDict begin 184 189 bop 3614 -116 a Fu(184)150 299
(https://savannah.gnu.org/)150 1215 y(projects/bash/)p
Fu(\).)35 b(If)24 b(y)m(ou)h(ha)m(v)m(e)h(a)f(\014x,)g(y)m(ou)g(are)g
(encouraged)g(to)g(submit)f(that)h(as)g(w)m(ell!)39 b(Suggestions)150
-1325 y(and)33 b(`philosophical')i(bug)e(rep)s(orts)g(ma)m(y)h(b)s(e)f
-(mailed)h(to)g Ft(bug-bash@gnu)s(.)s(org)29 b Fu(or)k
-Ft(help-bash@gnu)s(.)150 1435 y(org)p Fu(.)275 1569 y(All)e(bug)e(rep)s
-(orts)h(should)f(include:)225 1704 y Fq(\017)60 b Fu(The)30
-b(v)m(ersion)h(n)m(um)m(b)s(er)e(of)h(Bash.)225 1838
-y Fq(\017)60 b Fu(The)30 b(hardw)m(are)g(and)g(op)s(erating)g(system.)
-225 1973 y Fq(\017)60 b Fu(The)30 b(compiler)h(used)e(to)i(compile)h
-(Bash.)225 2107 y Fq(\017)60 b Fu(A)30 b(description)h(of)f(the)h(bug)f
-(b)s(eha)m(vior.)225 2242 y Fq(\017)60 b Fu(A)30 b(short)h(script)f(or)
-g(`recip)s(e')h(whic)m(h)f(exercises)i(the)e(bug)g(and)g(ma)m(y)h(b)s
-(e)f(used)f(to)i(repro)s(duce)e(it.)150 2401 y Ft(bashbug)d
-Fu(inserts)i(the)h(\014rst)f(three)g(items)h(automatically)i(in)m(to)f
-(the)e(template)i(it)f(pro)m(vides)f(for)g(\014ling)h(a)150
-2511 y(bug)h(rep)s(ort.)275 2645 y(Please)h(send)f(all)h(rep)s(orts)f
-(concerning)g(this)h(man)m(ual)f(to)h Ft(bug-bash@gnu.org)p
-Fu(.)p eop end
+1325 y(and)30 b(\\philosophical")i(bug)d(rep)s(orts)h(ma)m(y)h(b)s(e)f
+(mailed)g(to)i Ft(bug-bash@gnu.org)25 b Fu(or)31 b Ft(help-bash@gnu.)
+150 1435 y(org)p Fu(.)275 1569 y(All)g(bug)e(rep)s(orts)h(should)f
+(include:)225 1704 y Fq(\017)60 b Fu(The)30 b(v)m(ersion)h(n)m(um)m(b)s
+(er)e(of)h(Bash.)225 1838 y Fq(\017)60 b Fu(The)30 b(hardw)m(are)g(and)
+g(op)s(erating)g(system.)225 1973 y Fq(\017)60 b Fu(The)30
+b(compiler)h(used)e(to)i(compile)h(Bash.)225 2107 y Fq(\017)60
+b Fu(A)30 b(description)h(of)f(the)h(bug)f(b)s(eha)m(vior.)225
+2242 y Fq(\017)60 b Fu(A)30 b(short)h(script)f(or)g(\\recip)s(e")i
+(whic)m(h)e(exercises)h(the)g(bug)e(and)h(ma)m(y)h(b)s(e)f(used)f(to)j
+(repro)s(duce)d(it.)150 2401 y Ft(bashbug)d Fu(inserts)i(the)h(\014rst)
+f(three)g(items)h(automatically)i(in)m(to)f(the)e(template)i(it)f(pro)m
+(vides)f(for)g(\014ling)h(a)150 2511 y(bug)h(rep)s(ort.)275
+2645 y(Please)h(send)f(all)h(rep)s(orts)f(concerning)g(this)h(man)m
+(ual)f(to)h Ft(bug-bash@gnu.org)p Fu(.)p eop end
%%Page: 185 191
TeXDict begin 185 190 bop 3614 -116 a Fu(185)150 141
y Fp(App)t(endix)58 b(B)81 b(Ma)9 b(jor)54 b(Di\013erences)d(F)-13
b Fu(Bash)31 b(includes)f(the)g Ft(select)f Fu(comp)s(ound)g(command,)i
(whic)m(h)f(allo)m(ws)i(the)f(generation)g(of)g(simple)330
1477 y(men)m(us)f(\(see)h(Section)g(3.2.5.2)i([Conditional)e
-(Constructs],)g(page)g(12\).)225 1607 y Fq(\017)60 b
+(Constructs],)g(page)g(13\).)225 1607 y Fq(\017)60 b
Fu(Bash)40 b(includes)g(the)g Ft([[)g Fu(comp)s(ound)e(command,)43
b(whic)m(h)c(mak)m(es)i(conditional)h(testing)f(part)f(of)330
1717 y(the)f(shell)g(grammar)g(\(see)h(Section)f(3.2.5.2)j
-([Conditional)d(Constructs],)i(page)f(12\),)i(including)330
+([Conditional)d(Constructs],)i(page)f(13\),)i(including)330
1826 y(optional)32 b(regular)e(expression)g(matc)m(hing.)225
1956 y Fq(\017)60 b Fu(Bash)35 b(pro)m(vides)f(optional)h
(case-insensitiv)m(e)i(matc)m(hing)f(for)e(the)h Ft(case)e
Fu(and)h Ft([[)f Fu(constructs)i(\(see)330 2066 y(Section)c(3.2.5.2)i
-([Conditional)e(Constructs],)g(page)g(12\).)225 2196
+([Conditional)e(Constructs],)g(page)g(13\).)225 2196
y Fq(\017)60 b Fu(Bash)37 b(pro)m(vides)g(additional)h
Ft(case)e Fu(statemen)m(t)j(action)g(list)f(terminators:)55
b(`)p Ft(;&)p Fu(')37 b(and)f(`)p Ft(;;&)p Fu(')h(\(see)330
2306 y(Section)31 b(3.2.5.2)i([Conditional)e(Constructs],)g(page)g
-(12\).)225 2436 y Fq(\017)60 b Fu(Bash)25 b(pro)m(vides)g(shell)g
+(13\).)225 2436 y Fq(\017)60 b Fu(Bash)25 b(pro)m(vides)g(shell)g
(arithmetic,)j(the)d Ft(\(\()f Fu(comp)s(ound)g(command)h(\(see)h
(Section)g(3.2.5.2)h([Condi-)330 2545 y(tional)h(Constructs],)f(page)g
-(12\),)h(the)f Ft(let)e Fu(builtin,)i(and)f(arithmetic)h(expansion)f
+(13\),)h(the)f Ft(let)e Fu(builtin,)i(and)f(arithmetic)h(expansion)f
(\(see)i(Section)f(6.5)330 2655 y([Shell)j(Arithmetic],)i(page)f
(107\).)225 2785 y Fq(\017)60 b Fu(Bash)29 b(has)h(one-dimensional)g
(arra)m(y)f(v)-5 b(ariables)30 b(\(see)h(Section)f(6.7)g([Arra)m(ys],)h
b Fu(V)-8 b(ariables)31 b(presen)m(t)e(in)g(the)g(shell's)h(initial)g
(en)m(vironmen)m(t)g(are)g(automatically)i(exp)s(orted)d(to)h(c)m(hild)
330 3354 y(pro)s(cesses)24 b(\(see)h(Section)g(3.7.3)h([Command)e
-(Execution)h(En)m(vironmen)m(t],)h(page)f(46\).)39 b(The)24
+(Execution)h(En)m(vironmen)m(t],)h(page)f(47\).)39 b(The)24
b(Bourne)330 3463 y(shell)40 b(do)s(es)g(not)g(normally)g(do)g(this)g
(unless)f(the)i(v)-5 b(ariables)40 b(are)h(explicitly)g(mark)m(ed)f
(using)g(the)330 3573 y Ft(export)29 b Fu(command.)225
Ft(;})g Fu(or)j Ft(${|)p Fj(command)p Ft(;})c Fu(\(see)k(Sec-)330
1950 y(tion)e(3.5.4)h([Command)e(Substitution],)g(page)h(36\).)225
2089 y Fq(\017)60 b Fu(Bash)31 b(has)f(pro)s(cess)g(substitution)g
-(\(see)h(Section)g(3.5.6)h([Pro)s(cess)f(Substitution],)f(page)h(37\).)
+(\(see)h(Section)g(3.5.6)h([Pro)s(cess)f(Substitution],)f(page)h(38\).)
225 2228 y Fq(\017)60 b Fu(Bash)55 b(automatically)j(assigns)e(v)-5
b(ariables)55 b(that)h(pro)m(vide)f(information)h(ab)s(out)f(the)g
(curren)m(t)330 2337 y(user)40 b(\()p Ft(UID)p Fu(,)i
Ft(noclobber)p Fu(.)225 2600 y Fq(\017)60 b Fu(V)-8 b(ariable)25
b(assignmen)m(ts)g(preceding)e(commands)h(a\013ect)h(only)f(that)g
(command,)h(ev)m(en)f(builtins)g(and)330 2710 y(functions)36
-b(\(see)h(Section)g(3.7.4)h([En)m(vironmen)m(t],)h(page)e(47\).)60
+b(\(see)h(Section)g(3.7.4)h([En)m(vironmen)m(t],)h(page)e(48\).)60
b(In)35 b Ft(sh)p Fu(,)j(all)f(v)-5 b(ariable)37 b(assignmen)m(ts)330
2819 y(preceding)30 b(commands)g(are)h(global)h(unless)d(the)i(command)
f(is)h(executed)g(from)f(the)g(\014le)h(system.)225 2956
b(unctions],)32 b(page)f(19\).)225 1277 y Fq(\017)60
b Fu(The)48 b(Bash)g Ft(export)f Fu(and)h Ft(readonly)e
Fu(builtins)i(\(see)h(Section)g(4.1)h([Bourne)e(Shell)g(Builtins],)330
-1386 y(page)28 b(52,)h(can)f(tak)m(e)h(a)e Ft(-f)g Fu(option)h(to)g
-(act)g(on)f(shell)h(functions,)g(a)f Ft(-p)g Fu(option)h(to)g(displa)m
-(y)f(v)-5 b(ariables)330 1496 y(with)23 b(v)-5 b(arious)24
+1386 y(page)27 b(52\))h(can)f(tak)m(e)i(a)e Ft(-f)f Fu(option)h(to)h
+(act)g(on)e(shell)h(functions,)g(a)h Ft(-p)e Fu(option)h(to)g(displa)m
+(y)g(v)-5 b(ariables)330 1496 y(with)23 b(v)-5 b(arious)24
b(attributes)g(set)g(in)f(a)h(format)g(that)g(can)g(b)s(e)f(used)g(as)h
(shell)f(input,)i(a)e Ft(-n)g Fu(option)h(to)h(re-)330
1606 y(mo)m(v)m(e)f(v)-5 b(arious)23 b(v)-5 b(ariable)24
(:)h(:)f(:)g(:)33 b Fb(161)150 3290 y Fe(complete)16
b Fc(:)f(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)31 b Fb(161)150 3378 y Fe(compopt)18 b Fc(:)d(:)e(:)g(:)h(:)
+(:)g(:)g(:)31 b Fb(162)150 3378 y Fe(compopt)18 b Fc(:)d(:)e(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)33
-b Fb(164)150 3465 y Fe(continue)18 b Fc(:)d(:)e(:)g(:)g(:)g(:)h(:)f(:)g
+b Fb(165)150 3465 y Fe(continue)18 b Fc(:)d(:)e(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)32 b
Fb(54)146 3699 y Fs(D)150 3816 y Fe(declare)22 b Fc(:)13
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)26 b
Fb(67)2025 1544 y Fe(history)18 b Fc(:)d(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)33 b Fb(169)2021
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)33 b Fb(170)2021
1806 y Fs(J)2025 1924 y Fe(jobs)9 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)24
b Fb(56)2021 4133 y Fs(R)2025 4251 y Fe(read)11 b Fc(:)j(:)f(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)26 b Fb(69)2025 4339 y Fe(readarray)15 b
+g(:)g(:)g(:)26 b Fb(70)2025 4339 y Fe(readarray)15 b
Fc(:)g(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)30 b Fb(71)2025 4427 y Fe(readonly)18 b Fc(:)d(:)e(:)g(:)g(:)g
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)23 b Fb(78)2025 5148
y Fe(source)6 b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(71)2025
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(72)2025
5235 y Fe(suspend)d Fc(:)d(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)33 b Fb(128)p eop end
b Fb(60)150 758 y Fe(type)11 b Fc(:)j(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)25
-b Fb(71)150 846 y Fe(typeset)d Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+b Fb(72)150 846 y Fe(typeset)d Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)35
b Fb(72)146 1090 y Fs(U)150 1206 y Fe(ulimit)6 b Fc(:)15
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)23 b Fb(60)150 1380 y
Fe(unalias)f Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)35 b Fb(73)150 1467 y
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)35 b Fb(74)150 1467 y
Fe(unset)9 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)23 b Fb(61)2021
3056 y Fs([)150 3172 y Fe([[)16 b Fc(:)e(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)31 b Fb(14)146 3414 y Fs(])150 3530 y Fe(]])16 b
+g(:)31 b Fb(15)146 3414 y Fs(])150 3530 y Fe(]])16 b
Fc(:)e(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)31 b Fb(14)146
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)31 b Fb(15)146
3770 y Fa({)150 3886 y Fe({)19 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
b Fb(12)146 5261 y Fs(E)150 5377 y Fe(elif)11 b Fc(:)j(:)f(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)h(:)25 b Fb(12)150 5465 y Fe(else)11 b Fc(:)j(:)f(:)g(:)h(:)f(:)
+(:)g(:)h(:)25 b Fb(13)150 5465 y Fe(else)11 b Fc(:)j(:)f(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)h(:)25 b Fb(12)150 5552 y Fe(esac)11 b Fc(:)j(:)f(:)g(:)h(:)f(:)g
+g(:)h(:)25 b Fb(13)150 5552 y Fe(esac)11 b Fc(:)j(:)f(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)h(:)25 b Fb(13)2021 2703 y Fs(F)2025 2836 y Fe(fi)16
b Fc(:)e(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)31 b Fb(12)2025
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)31 b Fb(13)2025
2928 y Fe(for)14 b Fc(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)28
Fb(19)2021 3359 y Fs(I)2025 3491 y Fe(if)16 b Fc(:)e(:)f(:)g(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)31 b Fb(12)2025 3578 y Fe(in)16 b Fc(:)e(:)f(:)g(:)g(:)
+g(:)g(:)g(:)g(:)31 b Fb(13)2025 3578 y Fe(in)16 b Fc(:)e(:)f(:)g(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)31 b Fb(13)2021 3921 y Fs(S)2025
Fb(14)2021 4392 y Fs(T)2025 4524 y Fe(then)11 b Fc(:)j(:)f(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)26 b Fb(12)2025 4611 y Fe(time)11 b Fc(:)j(:)f(:)g(:)g(:)g
+(:)g(:)g(:)26 b Fb(13)2025 4611 y Fe(time)11 b Fc(:)j(:)f(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)26 b Fb(10)2021 4954 y Fs(U)2025 5081 y Fe(until)9
1601 y Fs(L)2025 1727 y Fe(LANG)20 b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)35
-b Fb(8,)26 b(95)2025 1817 y Fe(LC_ALL)6 b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g
+b Fb(8,)26 b(96)2025 1817 y Fe(LC_ALL)6 b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)21
b Fb(96)2025 1907 y Fe(LC_COLLATE)13 b Fc(:)i(:)e(:)g(:)g(:)h(:)f(:)g
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)25
b Fb(86)150 584 y Fe(PIPESTATUS)13 b Fc(:)i(:)e(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)27 b Fb(96)150
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)27 b Fb(97)150
671 y Fe(POSIXLY_CORRECT)17 b Fc(:)g(:)c(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)32 b Fb(97)150 758 y Fe(PPID)11 b Fc(:)j(:)f(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)20 b Fb(97)150 1892 y Fe(READLINE_ARGUMENT)12
b Fc(:)17 b(:)c(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)26 b Fb(97)150
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)26 b Fb(98)150
1979 y Fe(READLINE_LINE)f Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)37 b Fb(98)150 2066 y Fe(READLINE_MARK)25
(history-and-alias-expand-line)32 b(\(\))13 b Fc(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)28 b Fb(158)2025 513 y Fe(history-expand-line)i
(\(M-^\))13 b Fc(:)h(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)h(:)28 b Fb(157)2025 604 y Fe(history-search-backward)j
+g(:)g(:)g(:)h(:)28 b Fb(158)2025 604 y Fe(history-search-backward)j
(\(\))11 b Fc(:)i(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)26 b Fb(149)2025 695 y Fe(history-search-forward)k(\(\))13
b Fc(:)h(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
586 y Fe(possible-filename-completions)32 b(\(C-x)27
b(/\))7 b Fc(:)13 b(:)g(:)g(:)g(:)22 b Fb(154)150 674
y Fe(possible-hostname-completions)32 b(\(C-x)27 b(@\))7
-b Fc(:)13 b(:)g(:)g(:)g(:)22 b Fb(155)150 762 y Fe
+b Fc(:)13 b(:)g(:)g(:)g(:)22 b Fb(155)150 761 y Fe
(possible-username-completions)32 b(\(C-x)27 b(~\))7
b Fc(:)13 b(:)g(:)g(:)g(:)22 b Fb(154)150 849 y Fe
(possible-variable-completions)32 b(\(C-x)27 b($\))7
-b Fc(:)13 b(:)g(:)g(:)g(:)22 b Fb(154)150 937 y Fe(prefix-meta)28
+b Fc(:)13 b(:)g(:)g(:)g(:)22 b Fb(154)150 936 y Fe(prefix-meta)28
b(\(ESC\))17 b Fc(:)d(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)32
-b Fb(156)150 1025 y Fe(previous-history)d(\(C-p\))23
+b Fb(156)150 1024 y Fe(previous-history)d(\(C-p\))23
b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)36 b Fb(148)150 1112 y Fe(previous-screen-line)30
b(\(\))19 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)33 b Fb(148)150 1200 y Fe
+(:)g(:)g(:)g(:)g(:)h(:)f(:)33 b Fb(148)150 1199 y Fe
(print-last-kbd-macro)d(\(\))19 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)33 b Fb(155)146
-1454 y Fs(Q)150 1571 y Fe(quoted-insert)c(\(C-q)d(or)g(C-v\))8
+1452 y Fs(Q)150 1569 y Fe(quoted-insert)c(\(C-q)d(or)g(C-v\))8
b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)22 b Fb(150)146 1825 y Fs(R)150 1943 y Fe(re-read-init-file)29
+(:)g(:)22 b Fb(150)146 1822 y Fs(R)150 1939 y Fe(re-read-init-file)29
b(\(C-x)e(C-r\))15 b Fc(:)f(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)30 b Fb(155)150 2030 y Fe(redraw-current-line)g(\(\))22
+(:)g(:)g(:)g(:)30 b Fb(155)150 2026 y Fe(redraw-current-line)g(\(\))22
b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)36 b Fb(148)150 2118 y Fe(reverse-search-history)31
+(:)f(:)g(:)g(:)g(:)36 b Fb(148)150 2114 y Fe(reverse-search-history)31
b(\(C-r\))24 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)38 b Fb(148)150 2205 y Fe(revert-line)28 b(\(M-r\))17
+g(:)38 b Fb(148)150 2201 y Fe(revert-line)28 b(\(M-r\))17
b Fc(:)d(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)32 b Fb(156)146
-2449 y Fs(S)150 2567 y Fe(self-insert)c(\(a,)e(b,)g(A,)g(1,)h(!,)f
+2444 y Fs(S)150 2561 y Fe(self-insert)c(\(a,)e(b,)g(A,)g(1,)h(!,)f
(...\))13 b Fc(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)27
-b Fb(150)150 2654 y Fe(set-mark)g(\(C-@\))7 b Fc(:)15
+b Fb(150)150 2649 y Fe(set-mark)g(\(C-@\))7 b Fc(:)15
b(:)e(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)22
-b Fb(156)150 2742 y Fe(shell-backward-kill-word)31 b(\(\))8
+b Fb(156)150 2736 y Fe(shell-backward-kill-word)31 b(\(\))8
b Fc(:)14 b(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-23 b Fb(152)150 2830 y Fe(shell-backward-word)30 b(\(M-C-b\))8
+23 b Fb(152)150 2824 y Fe(shell-backward-word)30 b(\(M-C-b\))8
b Fc(:)15 b(:)e(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-23 b Fb(147)150 2917 y Fe(shell-expand-line)29 b(\(M-C-e\))13
+23 b Fb(147)150 2911 y Fe(shell-expand-and-requote-line)32
+b(\(\))13 b Fc(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)27
+b Fb(157)150 2999 y Fe(shell-expand-line)i(\(M-C-e\))13
b Fc(:)j(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)28 b Fb(157)150 3005 y Fe(shell-forward-word)i(\(M-C-f\))11
+g(:)28 b Fb(157)150 3086 y Fe(shell-forward-word)i(\(M-C-f\))11
b Fc(:)j(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-26 b Fb(147)150 3093 y Fe(shell-kill-word)j(\(M-C-d\))20
+26 b Fb(147)150 3174 y Fe(shell-kill-word)j(\(M-C-d\))20
b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)33 b Fb(152)150 3180 y Fe(shell-transpose-words)d
-(\(M-C-t\))22 b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)35 b Fb(151)2025 264 y Fe(skip-csi-sequence)29 b(\(\))9
+(:)g(:)h(:)f(:)33 b Fb(152)2025 264 y Fe(shell-transpose-words)d
+(\(M-C-t\))22 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)35 b Fb(151)2025 359 y Fe(skip-csi-sequence)29 b(\(\))9
b Fc(:)14 b(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)24 b Fb(156)2025 361 y
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)24 b Fb(156)2025 455 y
Fe(spell-correct-word)29 b(\(C-x)e(s\))18 b Fc(:)13 b(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)33 b Fb(157)2025
-448 y Fe(start-kbd-macro)c(\(C-x)d(\(\))8 b Fc(:)14 b(:)f(:)g(:)h(:)f
+543 y Fe(start-kbd-macro)c(\(C-x)d(\(\))8 b Fc(:)14 b(:)f(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)23
-b Fb(155)2021 891 y Fs(T)2025 1038 y Fe(tilde-expand)28
+b Fb(155)2021 959 y Fs(T)2025 1102 y Fe(tilde-expand)28
b(\(M-&\))14 b Fc(:)h(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)29
-b Fb(156)2025 1135 y Fe(transpose-chars)g(\(C-t\))7 b
+b Fb(156)2025 1198 y Fe(transpose-chars)g(\(C-t\))7 b
Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(151)2025 1222 y Fe(transpose-words)
+(:)f(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(151)2025 1285 y Fe(transpose-words)
29 b(\(M-t\))7 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(151)2021
-1676 y Fs(U)2025 1823 y Fe(undo)k(\(C-_)h(or)f(C-x)g(C-u\))10
+1712 y Fs(U)2025 1855 y Fe(undo)k(\(C-_)h(or)f(C-x)g(C-u\))10
b Fc(:)k(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)25 b Fb(156)2025 1920 y Fe
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)25 b Fb(156)2025 1951 y Fe
(universal-argument)k(\(\))7 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)22
-b Fb(153)2025 2017 y Fe(unix-filename-rubout)30 b(\(\))19
+b Fb(153)2025 2046 y Fe(unix-filename-rubout)30 b(\(\))19
b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)34 b Fb(152)2025 2114 y Fe(unix-line-discard)29
+(:)g(:)g(:)g(:)34 b Fb(152)2025 2142 y Fe(unix-line-discard)29
b(\(C-u\))20 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)g(:)34 b Fb(152)2025 2211 y Fe
+f(:)g(:)g(:)g(:)g(:)g(:)g(:)34 b Fb(152)2025 2238 y Fe
(unix-word-rubout)29 b(\(C-w\))22 b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)36
-b Fb(152)2025 2298 y Fe(upcase-word)28 b(\(M-u\))17 b
+b Fb(152)2025 2325 y Fe(upcase-word)28 b(\(M-u\))17 b
Fc(:)d(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)32 b Fb(151)2021
-2752 y Fs(Y)2025 2899 y Fe(yank)26 b(\(C-y\))18 b Fc(:)c(:)f(:)g(:)h(:)
+2752 y Fs(Y)2025 2895 y Fe(yank)26 b(\(C-y\))18 b Fc(:)c(:)f(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)33
-b Fb(152)2025 2996 y Fe(yank-last-arg)28 b(\(M-.)f(or)f(M-_\))8
+b Fb(152)2025 2991 y Fe(yank-last-arg)28 b(\(M-.)f(or)f(M-_\))8
b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)h(:)22 b Fb(149)2025 3093 y Fe(yank-nth-arg)28 b(\(M-C-y\))9
+(:)h(:)22 b Fb(149)2025 3087 y Fe(yank-nth-arg)28 b(\(M-C-y\))9
b Fc(:)15 b(:)e(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)24 b Fb(149)2025 3180
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)24 b Fb(149)2025 3174
y Fe(yank-pop)j(\(M-y\))7 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)22 b Fb(153)150 3929 y Fs(D.5)68 b(Concept)45
-b(Index)146 4523 y(A)150 4645 y Fb(alias)27 b(expansion)22
+g(:)g(:)h(:)f(:)22 b Fb(153)150 3923 y Fs(D.5)68 b(Concept)45
+b(Index)146 4516 y(A)150 4639 y Fb(alias)27 b(expansion)22
b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37
-b Fb(109)150 4735 y(arithmetic)26 b(ev)l(aluation)21
+b Fb(109)150 4729 y(arithmetic)26 b(ev)l(aluation)21
b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)35 b Fb(107)150 4824
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)35 b Fb(107)150 4818
y(arithmetic)26 b(expansion)11 b Fc(:)j(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-26 b Fb(37)150 4914 y(arithmetic)g(op)r(erators)18 b
+26 b Fb(37)150 4908 y(arithmetic)g(op)r(erators)18 b
Fc(:)d(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)32 b Fb(108)150 5003
+(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)32 b Fb(108)150 4997
y(arithmetic,)27 b(shell)21 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)36 b Fb(107)150 5090 y(arra)n(ys)19 b Fc(:)13
+g(:)g(:)g(:)36 b Fb(107)150 5084 y(arra)n(ys)19 b Fc(:)13
b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)g(:)34 b Fb(110)2021 4523 y Fs(B)2025 4641
+g(:)g(:)g(:)g(:)34 b Fb(110)2021 4516 y Fs(B)2025 4635
y Fb(bac)n(kground)13 b Fc(:)f(:)h(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)28 b Fb(125)2025 4729 y(Bash)e(con\014guration)
+f(:)g(:)g(:)g(:)g(:)g(:)28 b Fb(125)2025 4723 y(Bash)e(con\014guration)
11 b Fc(:)j(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)26 b Fb(175)2025
-4817 y(Bash)g(installation)9 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)
+4811 y(Bash)g(installation)9 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)24 b Fb(175)2025 4905 y(binary)h(arithmetic)h(op)r
+(:)g(:)g(:)g(:)24 b Fb(175)2025 4899 y(binary)h(arithmetic)h(op)r
(erators)16 b Fc(:)f(:)e(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)g(:)h(:)31 b Fb(108)2025 4993 y(bit)n(wise)26
+g(:)g(:)g(:)g(:)h(:)31 b Fb(108)2025 4987 y(bit)n(wise)26
b(arithmetic)h(op)r(erators)8 b Fc(:)14 b(:)f(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)23 b Fb(108)2025
-5081 y(Bourne)j(shell)20 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+5075 y(Bourne)j(shell)20 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)35 b Fb(5)2025 5169
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)35 b Fb(5)2025 5163
y(brace)26 b(expansion)9 b Fc(:)k(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)24 b Fb(25)2025 5256 y(builtin)15 b Fc(:)e(:)g(:)g(:)g
+g(:)g(:)g(:)g(:)24 b Fb(25)2025 5250 y(builtin)15 b Fc(:)e(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)30 b Fb(3)p eop end
(:)g(:)g(:)g(:)g(:)g(:)g(:)37 b Fb(11)150 1114 y(commands,)26
b(conditional)10 b Fc(:)15 b(:)e(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)25
-b Fb(12)150 1202 y(commands,)h(grouping)15 b Fc(:)f(:)f(:)g(:)g(:)g(:)g
+b Fb(13)150 1202 y(commands,)h(grouping)15 b Fc(:)f(:)f(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)29 b Fb(18)150 1290 y(commands,)d(lists)10
b Fc(:)15 b(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
b Fb(10)150 1554 y(commands,)c(shell)c Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)36 b Fb(9)150 1642 y(commands,)26
-b(simple)e Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)38
-b Fb(9)150 1729 y(commen)n(ts,)26 b(shell)13 b Fc(:)i(:)e(:)g(:)g(:)g
+b(simple)c Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)35
+b Fb(10)150 1729 y(commen)n(ts,)26 b(shell)13 b Fc(:)i(:)e(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)28 b Fb(9)150
1817 y(Compatibilit)n(y)f(Lev)n(el)10 b Fc(:)j(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)25 b Fb(121)150 1905 y(Compatibilit)n(y)i(Mo)r(de)22
+g(:)g(:)25 b Fb(122)150 1905 y(Compatibilit)n(y)i(Mo)r(de)22
b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)36 b Fb(121)150
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)36 b Fb(122)150
1993 y(completion)27 b(builtins)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
g(:)g(:)36 b Fb(161)150 2081 y(conditional)27 b(arithmetic)f(op)r
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)32
b Fb(131)150 3267 y(en)n(vironmen)n(t)18 b Fc(:)12 b(:)h(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)32 b Fb(47)150
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)32 b Fb(48)150
3355 y(ev)l(aluation,)26 b(arithmetic)9 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)24 b Fb(107)150 3443 y(ev)n(en)n(t)h(designators)c
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)34
b Fb(172)150 3531 y(execution)26 b(en)n(vironmen)n(t)17
b Fc(:)12 b(:)h(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)31 b Fb(46)150 3618
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)31 b Fb(47)150 3618
y(exit)25 b(status)7 b Fc(:)14 b(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(3,)k(48)150 3706 y(expansion)9
b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)24 b Fb(24)150 3794 y(expansion,)i(arithmetic)18
+g(:)g(:)g(:)g(:)24 b Fb(25)150 3794 y(expansion,)i(arithmetic)18
b Fc(:)c(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)32 b Fb(37)150 3882
y(expansion,)26 b(brace)16 b Fc(:)d(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
f(:)g(:)21 b Fb(23)150 1563 y(parameters,)27 b(sp)r(ecial)7
b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)21
-b Fb(23)150 1650 y(pathname)k(expansion)18 b Fc(:)c(:)f(:)g(:)g(:)g(:)g
+b Fb(24)150 1650 y(pathname)k(expansion)18 b Fc(:)c(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)32 b Fb(39)150 1738 y(pattern)25 b(matc)n(hing)c
Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)25 b Fb(116)150 2086 y(POSIX)g(Mo)r(de)14
b Fc(:)g(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)29
-b Fb(116)150 2174 y(pro)r(cess)e(group)15 b Fc(:)e(:)h(:)f(:)g(:)g(:)g
+b Fb(117)150 2174 y(pro)r(cess)e(group)15 b Fc(:)e(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)30 b Fb(3)150
2261 y(pro)r(cess)d(group)e(ID)11 b Fc(:)i(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)g(:)26 b Fb(3)150 2348 y(pro)r(cess)h(substitution)
11 b Fc(:)h(:)i(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)25 b Fb(37)150
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)25 b Fb(38)150
2435 y(programmable)i(completion)8 b Fc(:)14 b(:)g(:)f(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)23
b Fb(158)150 2522 y(prompting)15 b Fc(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g
#endif
static char *bash_special_tilde_expansions (char *);
-static int unquoted_tilde_word (const char *);
+static int unquoted_tilde_word (const char *, int);
static void initialize_group_array (void);
/* A standard error message to use when getcwd() returns NULL. */
#define TILDE_END(c) ((c) == '\0' || (c) == '/' || (c) == ':')
static int
-unquoted_tilde_word (const char *s)
+unquoted_tilde_word (const char *s, int flags)
{
const char *r;
}
/* Tilde-expand S by running it through the tilde expansion library.
- ASSIGN_P is 1 if this is a variable assignment, so the alternate
- tilde prefixes should be enabled (`=~' and `:~', see above). If
- ASSIGN_P is 2, we are expanding the rhs of an assignment statement,
- so `=~' is not valid. */
+ ASSIGN_P is 1 if this is a variable assignment, or a word for which
+ tilde expansion is being forced, so the alternate tilde prefixes should
+ be enabled (`=~' and `:~', see above). If ASSIGN_P is 2, we are expanding
+ the rhs of an assignment statement, so `=~' is not valid.
+ ASSIGN_P is 0 for all other words. */
char *
bash_tilde_expand (const char *s, int assign_p)
{
if (assign_p == 2)
tilde_additional_suffixes = bash_tilde_suffixes2;
- r = (*s == '~') ? unquoted_tilde_word (s) : 1;
+ /*TAG:bash-5.4 posix mode possibly */
+ /* XXX - in posix mode, if assign_p is 0 (an ordinary word, not an
+ assignment), we shouldn't tilde expand a tilde followed by a colon.
+ To do this, we need to assign tilde_additional_suffixes = (char **)NULL,
+ and change unquoted_tilde_word to pay attention to assign_p (if it's
+ 0 && posixly_correct, don't accept `:' as the end of a tilde prefix).
+ Behavior varies widely, but many posix shells don't perform tilde
+ expansion in `echo ~:'. */
+ /* If we don't do this, remove the sentence from the Tilde Expansion section
+ of the man page and texinfo manual saying we do. */
+ r = (*s == '~') ? unquoted_tilde_word (s, assign_p) : 1;
ret = r ? tilde_expand (s) : savestring (s);
QUIT;
type = *p;
- /* POSIX allows a right bracket to appear in a collating symbol. */
- while (*++p != L('\0') && SLASH_PATHNAME (*p) == 0 && (type != L('.') && *p == L(']')) == 0)
+ /* POSIX allows a right bracket to appear in a collating symbol. If we
+ want to allow it to appear in an equivalence class, uncomment the test
+ of TYPE against '=' below. */
+ while (*++p != L('\0') && SLASH_PATHNAME (*p) == 0 &&
+ (type != L('.') /*&& type != L('=')*/ && *p == L(']')) == 0)
if (*p == type && p[1] == L(']'))
return p;
return NULL;
--- /dev/null
+# Translation of bash to Arabic
+# Copyright (C) 2026 Free Software Foundation, Inc.
+# This file is distributed under the same license as the bash package.
+# Zayed Al-Saidi <zayed.alsaidi@gmail.com>, 2026.
+msgid ""
+msgstr ""
+"Project-Id-Version: bash 5.3-rc2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2025-04-22 09:37-0400\n"
+"PO-Revision-Date: 2026-02-01 10:59+0400\n"
+"Last-Translator: Zayed Al-Saidi <zayed.alsaidi@gmail.com>\n"
+"Language-Team: Arabic <(nothing)>\n"
+"Language: ar\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
+"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100 >= 3 && n%100<=10 ? 3 : n%100 >= 11 && n%100<=99 ? 4 : 5;\n"
+"X-Generator: Lokalize 23.08.5\n"
+
+#: arrayfunc.c:63
+msgid "bad array subscript"
+msgstr "دليل مصفوفة سيء"
+
+#: arrayfunc.c:466 builtins/declare.def:748 variables.c:2196 variables.c:2225
+#: variables.c:3099
+#, c-format
+msgid "%s: removing nameref attribute"
+msgstr "%s: إزالة صفة مرجع الاسم"
+
+#: arrayfunc.c:493 builtins/declare.def:920
+#, c-format
+msgid "%s: cannot convert indexed to associative array"
+msgstr "%s: لا يمكن تحويل مصفوفة مفهرسة إلى مصفوفة ترابطية"
+
+#: arrayfunc.c:789
+#, c-format
+msgid "%s: cannot assign to non-numeric index"
+msgstr "%s: لا يمكن التعيين لفهرس غير رقمي"
+
+#: arrayfunc.c:841
+#, c-format
+msgid "%s: %s: must use subscript when assigning associative array"
+msgstr "%s: %s: يجب استخدام دليل عند تعيين مصفوفة ترابطية"
+
+#: bashhist.c:464
+msgid "cannot create"
+msgstr "لا يمكن إنشاء"
+
+#: bashline.c:4642
+msgid "bash_execute_unix_command: cannot find keymap for command"
+msgstr "bash_execute_unix_command: لا يمكن العثور على خريطة مفاتيح للأمر"
+
+#: bashline.c:4813
+#, c-format
+msgid "%s: first non-whitespace character is not `\"'"
+msgstr "%s: أول محرف غير فراغي ليس `\"'"
+
+#: bashline.c:4842
+#, c-format
+msgid "no closing `%c' in %s"
+msgstr "لا يوجد إغلاق لـ `%c' في %s"
+
+#: bashline.c:4873
+#, c-format
+msgid "%s: missing separator"
+msgstr "%s: فاصل مفقود"
+
+#: bashline.c:4920
+#, c-format
+msgid "`%s': cannot unbind in command keymap"
+msgstr "`%s': لا يمكن فك الربط في خريطة مفاتيح الأوامر"
+
+#: braces.c:340
+#, c-format
+msgid "brace expansion: cannot allocate memory for %s"
+msgstr "توسيع الأقواس: لا يمكن تخصيص ذاكرة لـ %s"
+
+#: braces.c:403
+#, c-format
+msgid "brace expansion: failed to allocate memory for %s elements"
+msgstr "توسيع الأقواس: فشل تخصيص ذاكرة لـ %s عناصر"
+
+#: braces.c:462
+#, c-format
+msgid "brace expansion: failed to allocate memory for `%s'"
+msgstr "توسيع الأقواس: فشل تخصيص ذاكرة لـ `%s'"
+
+#: builtins/alias.def:131 variables.c:1789
+#, c-format
+msgid "`%s': invalid alias name"
+msgstr "`%s': اسم مستعار غير صالح"
+
+#: builtins/bind.def:123
+msgid "line editing not enabled"
+msgstr "تحرير السطر غير مفعّل"
+
+#: builtins/bind.def:208
+#, c-format
+msgid "`%s': invalid keymap name"
+msgstr "`%s': اسم خريطة مفاتيح غير صالح"
+
+#: builtins/bind.def:277
+msgid "cannot read"
+msgstr "لا يمكن قراءة"
+
+#: builtins/bind.def:353 builtins/bind.def:382
+#, c-format
+msgid "`%s': unknown function name"
+msgstr "`%s': اسم دالة غير معروف"
+
+#: builtins/bind.def:361
+#, c-format
+msgid "%s is not bound to any keys.\n"
+msgstr "%s ليس مربوطاً بأي مفاتيح.\n"
+
+#: builtins/bind.def:365
+#, c-format
+msgid "%s can be invoked via "
+msgstr "%s يمكن استدعاؤه عبر "
+
+#: builtins/bind.def:401 builtins/bind.def:418
+#, c-format
+msgid "`%s': cannot unbind"
+msgstr "`%s': لا يمكن فك الربط"
+
+#: builtins/break.def:80 builtins/break.def:125
+msgid "loop count"
+msgstr "عدد الحلقات"
+
+#: builtins/break.def:145
+msgid "only meaningful in a `for', `while', or `until' loop"
+msgstr "لا يكون ذا معنى إلا في حلقة `for' أو `while' أو `until'"
+
+#: builtins/caller.def:135
+msgid ""
+"Returns the context of the current subroutine call.\n"
+" \n"
+" Without EXPR, returns \"$line $filename\". With EXPR, returns\n"
+" \"$line $subroutine $filename\"; this extra information can be used to\n"
+" provide a stack trace.\n"
+" \n"
+" The value of EXPR indicates how many call frames to go back before the\n"
+" current one; the top frame is frame 0.\n"
+" \n"
+" Exit Status:\n"
+" Returns 0 unless the shell is not executing a shell function or EXPR\n"
+" is invalid."
+msgstr ""
+"يعيد سياق استدعاء الروتين الفرعي الحالي لـ المستدعَي.\n"
+" \n"
+" بدون EXPR، يعيد \"$line $filename\". مع EXPR، يعيد\n"
+" \"$line $subroutine $filename\"؛ يمكن استخدام هذه المعلومات الإضافية\n"
+" لتوفير تتبع للمكدس.\n"
+" \n"
+" تشير قيمة EXPR إلى عدد إطارات الاستدعاء المطلوب الرجوع إليها قبل\n"
+" الإطار الحالي؛ الإطار العلوي هو الإطار 0.\n"
+" \n"
+" حالة الخروج:\n"
+" يعيد 0 إلا إذا كانت الصدفة لا تنفذ دالة صدفة أو كان EXPR\n"
+" غير صالح."
+
+#: builtins/cd.def:321
+msgid "HOME not set"
+msgstr "HOME غير محدد"
+
+#: builtins/cd.def:329 builtins/common.c:143 builtins/fc.def:293 test.c:946
+msgid "too many arguments"
+msgstr "وسائط كثيرة جداً"
+
+#: builtins/cd.def:335
+msgid "null directory"
+msgstr "مجلد فارغ"
+
+#: builtins/cd.def:345
+msgid "OLDPWD not set"
+msgstr "OLDPWD غير محدد"
+
+#: builtins/common.c:91
+#, c-format
+msgid "line %d: "
+msgstr "السطر %d: "
+
+#: builtins/common.c:117 error.c:227
+#, c-format
+msgid "warning: "
+msgstr "تحذير: "
+
+#: builtins/common.c:131
+#, c-format
+msgid "%s: usage: "
+msgstr "%s: الاستخدام: "
+
+#: builtins/common.c:178 shell.c:524 shell.c:865
+#, c-format
+msgid "%s: option requires an argument"
+msgstr "%s: الخيار يتطلب وسيطاً"
+
+#: builtins/common.c:184
+#, c-format
+msgid "%s: numeric argument required"
+msgstr "%s: يتطلب وسيطاً رقمياً"
+
+#: builtins/common.c:190
+#, c-format
+msgid "%s: not found"
+msgstr "%s: غير موجود"
+
+#: builtins/common.c:198 shell.c:878
+#, c-format
+msgid "%s: invalid option"
+msgstr "%s: خيار غير صالح"
+
+#: builtins/common.c:204
+#, c-format
+msgid "%s: invalid option name"
+msgstr "%s: اسم خيار غير صالح"
+
+#: builtins/common.c:210 error.c:461
+#, c-format
+msgid "`%s': not a valid identifier"
+msgstr "`%s': ليس معرفاً صالحاً"
+
+#: builtins/common.c:219
+msgid "invalid octal number"
+msgstr "رقم ثماني غير صالح"
+
+#: builtins/common.c:221
+msgid "invalid hex number"
+msgstr "رقم ست عشري غير صالح"
+
+#: builtins/common.c:223 expr.c:1577 expr.c:1591
+msgid "invalid number"
+msgstr "رقم غير صالح"
+
+#: builtins/common.c:230
+#, c-format
+msgid "%s: invalid signal specification"
+msgstr "%s: مواصفة إشارة غير صالحة"
+
+#: builtins/common.c:236
+#, c-format
+msgid "`%s': not a pid or valid job spec"
+msgstr "`%s': ليس معرف عملية (pid) أو مواصفة وظيفة صالحة"
+
+#: builtins/common.c:242 error.c:455
+#, c-format
+msgid "%s: readonly variable"
+msgstr "%s: متغير للقراءة فقط"
+
+#: builtins/common.c:248
+#, c-format
+msgid "%s: cannot assign"
+msgstr "%s: لا يمكن التعيين"
+
+#: builtins/common.c:255
+#, c-format
+msgid "%s: %s out of range"
+msgstr "%s: %s خارج النطاق"
+
+#: builtins/common.c:255 builtins/common.c:257
+msgid "argument"
+msgstr "وسيط"
+
+#: builtins/common.c:257
+#, c-format
+msgid "%s out of range"
+msgstr "%s خارج النطاق"
+
+#: builtins/common.c:264
+#, c-format
+msgid "%s: no such job"
+msgstr "%s: لا توجد وظيفة كهذه"
+
+#: builtins/common.c:271
+#, c-format
+msgid "%s: no job control"
+msgstr "%s: لا يوجد تحكم في الوظائف"
+
+#: builtins/common.c:273
+msgid "no job control"
+msgstr "لا يوجد تحكم في الوظائف"
+
+#: builtins/common.c:279
+#, c-format
+msgid "%s: invalid job specification"
+msgstr "%s: تخصيص وظيفة غير صالح"
+
+#: builtins/common.c:289
+#, c-format
+msgid "%s: restricted"
+msgstr "%s: مقيد"
+
+#: builtins/common.c:291
+msgid "restricted"
+msgstr "مقيد"
+
+#: builtins/common.c:298
+#, c-format
+msgid "%s: not a shell builtin"
+msgstr "%s: ليس أمراً داخلياً في الغلاف"
+
+#: builtins/common.c:307
+msgid "write error"
+msgstr "خطأ في الكتابة"
+
+#: builtins/common.c:314
+msgid "error setting terminal attributes"
+msgstr "خطأ أثناء ضبط سمات الطرفية"
+
+#: builtins/common.c:316
+msgid "error getting terminal attributes"
+msgstr "خطأ أثناء جلب سمات الطرفية"
+
+#: builtins/common.c:611
+msgid "error retrieving current directory"
+msgstr "خطأ أثناء استعادة الدليل الحالي"
+
+#: builtins/common.c:675 builtins/common.c:677
+#, c-format
+msgid "%s: ambiguous job spec"
+msgstr "%s: تخصيص وظيفة غامض"
+
+#: builtins/common.c:709
+#, c-format
+msgid "%s: job specification requires leading `%%'"
+msgstr "%s: يتطلب تخصيص الوظيفة بادئة `%%'"
+
+#: builtins/common.c:937
+msgid "help not available in this version"
+msgstr "المساعدة غير متوفرة في هذا الإصدار"
+
+#: builtins/common.c:1005
+#, c-format
+msgid "%s: not an indexed array"
+msgstr "%s: ليست مصفوفة مفهرسة"
+
+#: builtins/common.c:1028 builtins/set.def:964 variables.c:3868
+#, c-format
+msgid "%s: cannot unset: readonly %s"
+msgstr "%s: يتعذر إلغاء التعيين: %s للقراءة فقط"
+
+#: builtins/common.c:1033 builtins/set.def:930 variables.c:3873
+#, c-format
+msgid "%s: cannot unset"
+msgstr "%s: يتعذر إلغاء التعيين"
+
+#: builtins/complete.def:285
+#, c-format
+msgid "%s: invalid action name"
+msgstr "%s: اسم إجراء غير صالح"
+
+#: builtins/complete.def:501 builtins/complete.def:644
+#: builtins/complete.def:899
+#, c-format
+msgid "%s: no completion specification"
+msgstr "%s: لا يوجد تخصيص للإكمال"
+
+#: builtins/complete.def:703
+msgid "warning: -F option may not work as you expect"
+msgstr "تحذير: قد لا يعمل الخيار -F كما تتوقع"
+
+#: builtins/complete.def:705
+msgid "warning: -C option may not work as you expect"
+msgstr "تحذير: قد لا يعمل الخيار -C كما تتوقع"
+
+#: builtins/complete.def:872
+msgid "not currently executing completion function"
+msgstr "لا يجري تنفيذ دالة الإكمال حالياً"
+
+#: builtins/declare.def:139
+msgid "can only be used in a function"
+msgstr "يمكن استخدامه داخل دالة فقط"
+
+#: builtins/declare.def:471
+msgid "cannot use `-f' to make functions"
+msgstr "يتعذر استخدام `-f' لإنشاء دوال"
+
+#: builtins/declare.def:499 execute_cmd.c:6320
+#, c-format
+msgid "%s: readonly function"
+msgstr "%s: دالة للقراءة فقط"
+
+#: builtins/declare.def:556 builtins/declare.def:843
+#, c-format
+msgid "%s: reference variable cannot be an array"
+msgstr "%s: لا يمكن لمتغير المرجع أن يكون مصفوفة"
+
+#: builtins/declare.def:567 variables.c:3346
+#, c-format
+msgid "%s: nameref variable self references not allowed"
+msgstr "%s: الإشارة الذاتية لمتغير nameref غير مسموح بها"
+
+#: builtins/declare.def:572 variables.c:2035 variables.c:3343
+#, c-format
+msgid "%s: circular name reference"
+msgstr "%s: مرجع اسم دائري"
+
+#: builtins/declare.def:576 builtins/declare.def:850 builtins/declare.def:859
+#, c-format
+msgid "`%s': invalid variable name for name reference"
+msgstr "`%s': اسم متغير غير صالح لمرجع الاسم"
+
+#: builtins/declare.def:908
+#, c-format
+msgid "%s: cannot destroy array variables in this way"
+msgstr "%s: يتعذر تدمير متغيرات المصفوفة بهذه الطريقة"
+
+#: builtins/declare.def:914
+#, c-format
+msgid "%s: cannot convert associative to indexed array"
+msgstr "%s: يتعذر تحويل مصفوفة ترابطية إلى مصفوفة مفهرسة"
+
+#: builtins/declare.def:943
+#, c-format
+msgid "%s: quoted compound array assignment deprecated"
+msgstr "%s: تعيين المصفوفة المركبة المقتبسة مهجور"
+
+#: builtins/enable.def:149 builtins/enable.def:157
+msgid "dynamic loading not available"
+msgstr "التحميل الآلي غير متوفر"
+
+#: builtins/enable.def:389
+#, c-format
+msgid "cannot open shared object %s: %s"
+msgstr "يتعذر فتح الكائن المشترك %s: %s"
+
+#: builtins/enable.def:408
+#, c-format
+msgid "%s: builtin names may not contain slashes"
+msgstr "%s: لا يجوز أن تحتوي الأسماء الداخلية على مائلات"
+
+#: builtins/enable.def:423
+#, c-format
+msgid "cannot find %s in shared object %s: %s"
+msgstr "يتعذر العثور على %s في الكائن المشترك %s: %s"
+
+#: builtins/enable.def:440
+#, c-format
+msgid "%s: dynamic builtin already loaded"
+msgstr "%s: الأمر الداخلي الآلي محمل بالفعل"
+
+#: builtins/enable.def:444
+#, c-format
+msgid "load function for %s returns failure (%d): not loaded"
+msgstr "دالة التحميل لـ %s تعيد فشلاً (%d): لم تُحمل"
+
+#: builtins/enable.def:565
+#, c-format
+msgid "%s: not dynamically loaded"
+msgstr "%s: لم يُحمل آلياً"
+
+#: builtins/enable.def:591
+#, c-format
+msgid "%s: cannot delete: %s"
+msgstr "%s: يتعذر الحذف: %s"
+
+#: builtins/evalfile.c:137 builtins/hash.def:190 execute_cmd.c:6140
+#, c-format
+msgid "%s: is a directory"
+msgstr "%s: دليل"
+
+#: builtins/evalfile.c:143
+#, c-format
+msgid "%s: not a regular file"
+msgstr "%s: ليس ملفاً عادياً"
+
+#: builtins/evalfile.c:152
+#, c-format
+msgid "%s: file is too large"
+msgstr "%s: الملف كبير جداً"
+
+#: builtins/evalfile.c:189 builtins/evalfile.c:207 execute_cmd.c:6222
+#: shell.c:1687
+msgid "cannot execute binary file"
+msgstr "يتعذر تنفيذ ملف ثنائي"
+
+#: builtins/evalstring.c:478
+#, c-format
+msgid "%s: ignoring function definition attempt"
+msgstr "%s: تجاهل محاولة تعريف دالة"
+
+#: builtins/exec.def:158 builtins/exec.def:160 builtins/exec.def:249
+msgid "cannot execute"
+msgstr "يتعذر التنفيذ"
+
+#: builtins/exit.def:61
+#, c-format
+msgid "logout\n"
+msgstr "خروج\n"
+
+#: builtins/exit.def:85
+msgid "not login shell: use `exit'"
+msgstr "ليس غلاف تسجيل دخول: استخدم `exit'"
+
+#: builtins/exit.def:116
+#, c-format
+msgid "There are stopped jobs.\n"
+msgstr "توجد وظائف متوقفة.\n"
+
+#: builtins/exit.def:118
+#, c-format
+msgid "There are running jobs.\n"
+msgstr "توجد وظائف قيد التشغيل.\n"
+
+#: builtins/fc.def:284 builtins/fc.def:391 builtins/fc.def:435
+msgid "no command found"
+msgstr "لم يُعثر على أي أمر"
+
+#: builtins/fc.def:381 builtins/fc.def:386 builtins/fc.def:425
+#: builtins/fc.def:430
+msgid "history specification"
+msgstr "تخصيص السجل"
+
+#: builtins/fc.def:462
+msgid "cannot open temp file"
+msgstr "يتعذر فتح الملف المؤقت"
+
+#: builtins/fg_bg.def:150 builtins/jobs.def:293
+msgid "current"
+msgstr "الحالي"
+
+#: builtins/fg_bg.def:159
+#, c-format
+msgid "job %d started without job control"
+msgstr "بدأت المهمة %d دون التحكم بالمهام"
+
+#: builtins/getopt.c:110
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: خيار غير قانوني -- %c\n"
+
+#: builtins/getopt.c:111
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: يتطلب الخيار وسيطاً -- %c\n"
+
+#: builtins/hash.def:88
+msgid "hashing disabled"
+msgstr "التعمية معطلة"
+
+#: builtins/hash.def:144
+#, c-format
+msgid "%s: hash table empty\n"
+msgstr "%s: جدول التعمية فارغ\n"
+
+#: builtins/hash.def:267
+#, c-format
+msgid "hits\tcommand\n"
+msgstr "الإصابات\tالأمر\n"
+
+#: builtins/help.def:133
+msgid "Shell commands matching keyword `"
+msgid_plural "Shell commands matching keywords `"
+msgstr[0] "أوامر الغلاف المطابقة للكلمة المفتاحية `"
+msgstr[1] "أوامر الغلاف المطابقة للكلمة المفتاحية `"
+msgstr[2] "أوامر الغلاف المطابقة للكلمتين المفتاحيتين `"
+msgstr[3] "أوامر الغلاف المطابقة للكلمات المفتاحية `"
+msgstr[4] "أوامر الغلاف المطابقة للكلمات المفتاحية `"
+msgstr[5] "أوامر الغلاف المطابقة للكلمات المفتاحية `"
+
+#: builtins/help.def:135
+msgid ""
+"'\n"
+"\n"
+msgstr ""
+"'\n"
+"\n"
+
+#: builtins/help.def:185
+#, c-format
+msgid "no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'."
+msgstr "لا توجد مواضيع دليل تطابق `%s'. جرب `help help' أو `man -k %s' أو `info %s'."
+
+#: builtins/help.def:214
+msgid "cannot open"
+msgstr "يتعذر الفتح"
+
+#: builtins/help.def:264 builtins/help.def:306 builtins/history.def:306
+#: builtins/history.def:325 builtins/read.def:909
+msgid "read error"
+msgstr "خطأ في القراءة"
+
+#: builtins/help.def:517
+#, c-format
+msgid ""
+"These shell commands are defined internally. Type `help' to see this list.\n"
+"Type `help name' to find out more about the function `name'.\n"
+"Use `info bash' to find out more about the shell in general.\n"
+"Use `man -k' or `info' to find out more about commands not in this list.\n"
+"\n"
+"A star (*) next to a name means that the command is disabled.\n"
+"\n"
+msgstr ""
+"أوامر الغلاف هذه محددة داخلياً. اكتب `help' لرؤية القائمة.\n"
+"اكتب `help name' لمعرفة المزيد عن الوظيفة `name'.\n"
+"استخدم `info bash' لمعرفة المزيد عن الغلاف بشكل عام.\n"
+"استخدم `man -k' أو `info' لمعرفة المزيد عن الأوامر غير الموجودة في القائمة.\n"
+"\n"
+"وجود نجمة (*) بجانب الاسم يعني أن الأمر معطل.\n"
+"\n"
+
+#: builtins/history.def:164
+msgid "cannot use more than one of -anrw"
+msgstr "يتعذر استخدام أكثر من واحد من -anrw"
+
+#: builtins/history.def:197 builtins/history.def:209 builtins/history.def:220
+#: builtins/history.def:245 builtins/history.def:252
+msgid "history position"
+msgstr "موضع السجل"
+
+#: builtins/history.def:280
+msgid "empty filename"
+msgstr "اسم ملف فارغ"
+
+#: builtins/history.def:282 subst.c:8226
+#, c-format
+msgid "%s: parameter null or not set"
+msgstr "%s: المعلمة فارغة أو غير مضبوطة"
+
+#: builtins/history.def:362
+#, c-format
+msgid "%s: invalid timestamp"
+msgstr "%s: طابع زمني غير صالح"
+
+#: builtins/history.def:470
+#, c-format
+msgid "%s: history expansion failed"
+msgstr "%s: فشل توسيع السجل"
+
+#: builtins/jobs.def:109
+msgid "no other options allowed with `-x'"
+msgstr "لا يسمح بخيارات أخرى مع `-x'"
+
+#: builtins/kill.def:214
+#, c-format
+msgid "%s: arguments must be process or job IDs"
+msgstr "%s: يجب أن تكون الوسائط معرفات عمليات أو مهام"
+
+#: builtins/kill.def:280
+msgid "Unknown error"
+msgstr "خطأ غير معروف"
+
+#: builtins/let.def:96 builtins/let.def:120 expr.c:647 expr.c:665
+msgid "expression expected"
+msgstr "توقع وجود تعبير"
+
+#: builtins/mapfile.def:249 builtins/read.def:373
+#, c-format
+msgid "%s: invalid file descriptor specification"
+msgstr "%s: مواصفة واصف ملف غير صالحة"
+
+#: builtins/mapfile.def:257 builtins/read.def:380
+msgid "invalid file descriptor"
+msgstr "واصف ملف غير صالح"
+
+#: builtins/mapfile.def:266 builtins/mapfile.def:304
+#, c-format
+msgid "%s: invalid line count"
+msgstr "%s: عدد أسطر غير صالح"
+
+#: builtins/mapfile.def:277
+#, c-format
+msgid "%s: invalid array origin"
+msgstr "%s: أصل مصفوفة غير صالح"
+
+#: builtins/mapfile.def:294
+#, c-format
+msgid "%s: invalid callback quantum"
+msgstr "%s: كمية استدعاء رجعي غير صالحة"
+
+#: builtins/mapfile.def:327
+msgid "empty array variable name"
+msgstr "اسم متغير مصفوفة فارغ"
+
+#: builtins/mapfile.def:347
+msgid "array variable support required"
+msgstr "دعم متغيرات المصفوفة مطلوب"
+
+#: builtins/printf.def:483
+#, c-format
+msgid "`%s': missing format character"
+msgstr "`%s': محرف تنسيق مفقود"
+
+#: builtins/printf.def:609
+#, c-format
+msgid "`%c': invalid time format specification"
+msgstr "`%c': مواصفة تنسيق وقت غير صالحة"
+
+#: builtins/printf.def:711
+msgid "string length"
+msgstr "طول السلسلة"
+
+#: builtins/printf.def:811
+#, c-format
+msgid "`%c': invalid format character"
+msgstr "`%c': محرف تنسيق غير صالح"
+
+#: builtins/printf.def:928
+#, c-format
+msgid "format parsing problem: %s"
+msgstr "مشكلة في تحليل التنسيق: %s"
+
+#: builtins/printf.def:1113
+msgid "missing hex digit for \\x"
+msgstr "رقم ست عشري مفقود لـ \\x"
+
+#: builtins/printf.def:1128
+#, c-format
+msgid "missing unicode digit for \\%c"
+msgstr "رقم يونيكود مفقود لـ \\%c"
+
+#: builtins/pushd.def:198
+msgid "no other directory"
+msgstr "لا يوجد دليل آخر"
+
+#: builtins/pushd.def:358 builtins/pushd.def:383
+#, c-format
+msgid "%s: invalid argument"
+msgstr "%s: وسيط غير صالح"
+
+#: builtins/pushd.def:501
+msgid "<no current directory>"
+msgstr "<لا يوجد دليل حالي>"
+
+#: builtins/pushd.def:543
+msgid "directory stack empty"
+msgstr "مكدس الأدلة فارغ"
+
+#: builtins/pushd.def:545
+msgid "directory stack index"
+msgstr "فهرس مكدس الأدلة"
+
+#: builtins/pushd.def:708
+msgid ""
+"Display the list of currently remembered directories. Directories\n"
+" find their way onto the list with the `pushd' command; you can get\n"
+" back up through the list with the `popd' command.\n"
+" \n"
+" Options:\n"
+" -c\tclear the directory stack by deleting all of the elements\n"
+" -l\tdo not print tilde-prefixed versions of directories relative\n"
+" \tto your home directory\n"
+" -p\tprint the directory stack with one entry per line\n"
+" -v\tprint the directory stack with one entry per line prefixed\n"
+" \twith its position in the stack\n"
+" \n"
+" Arguments:\n"
+" +N\tDisplays the Nth entry counting from the left of the list shown by\n"
+" \tdirs when invoked without options, starting with zero.\n"
+" \n"
+" -N\tDisplays the Nth entry counting from the right of the list shown by\n"
+"\tdirs when invoked without options, starting with zero."
+msgstr ""
+"يعرض قائمة بالأدلة المحفوظة حالياً. تجد الأدلة طريقها إلى القائمة\n"
+" بواسطة الأمر `pushd`؛ ويمكنك العودة عبر القائمة بواسطة الأمر `popd`.\n"
+" \n"
+" الخيارات:\n"
+" -c\tمسح مكدس الأدلة بحذف جميع العناصر\n"
+" -l\tعدم طباعة نسخ الأدلة المسبوقة بعلامة المدة (~) بالنسبة\n"
+" \tإلى دليلك المنزلي\n"
+" -p\tطباعة مكدس الأدلة مع إدخال واحد في كل سطر\n"
+" -v\tطباعة مكدس الأدلة مع إدخال واحد في كل سطر مسبوقاً\n"
+" \tبموقعه في المكدس\n"
+" \n"
+" الوسائط:\n"
+" +N\tيعرض الإدخال رقم N بالعد من يسار القائمة التي تظهر بواسطة\n"
+" \t`dirs` عند استدعائه بدون خيارات، بدءاً من الصفر.\n"
+" \n"
+" -N\tيعرض الإدخال رقم N بالعد من يمين القائمة التي تظهر بواسطة\n"
+"\t`dirs` عند استدعائه بدون خيارات، بدءاً من الصفر."
+
+#: builtins/pushd.def:730
+msgid ""
+"Adds a directory to the top of the directory stack, or rotates\n"
+" the stack, making the new top of the stack the current working\n"
+" directory. With no arguments, exchanges the top two directories.\n"
+" \n"
+" Options:\n"
+" -n\tSuppresses the normal change of directory when adding\n"
+" \tdirectories to the stack, so only the stack is manipulated.\n"
+" \n"
+" Arguments:\n"
+" +N\tRotates the stack so that the Nth directory (counting\n"
+" \tfrom the left of the list shown by `dirs', starting with\n"
+" \tzero) is at the top.\n"
+" \n"
+" -N\tRotates the stack so that the Nth directory (counting\n"
+" \tfrom the right of the list shown by `dirs', starting with\n"
+" \tzero) is at the top.\n"
+" \n"
+" dir\tAdds DIR to the directory stack at the top, making it the\n"
+" \tnew current working directory.\n"
+" \n"
+" The `dirs' builtin displays the directory stack."
+msgstr ""
+"يضيف دليلاً إلى أعلى مكدس الأدلة، أو يقوم بتدوير المكدس،\n"
+" مما يجعل الجزء العلوي الجديد من المكدس هو دليل العمل الحالي.\n"
+" بدون وسائط، يتبادل الدليلين العلويين.\n"
+" \n"
+" الخيارات:\n"
+" -n\tيمنع تغيير الدليل المعتاد عند إضافة أدلة إلى المكدس،\n"
+" \tبحيث يقتصر التعامل على المكدس فقط.\n"
+" \n"
+" الوسائط:\n"
+" +N\tيدير المكدس بحيث يكون الدليل رقم N (بالعد من يسار\n"
+" \tالقائمة التي تظهر بواسطة `dirs` وبدءاً من الصفر) في الأعلى.\n"
+" \n"
+" -N\tيدير المكدس بحيث يكون الدليل رقم N (بالعد من يمين\n"
+" \tالقائمة التي تظهر بواسطة `dirs` وبدءاً من الصفر) في الأعلى.\n"
+" \n"
+" dir\tيضيف DIR إلى مكدس الأدلة في الأعلى، ويجعله\n"
+" \tدليل العمل الحالي الجديد.\n"
+" \n"
+" الأمر الداخلي `dirs` يعرض مكدس الأدلة."
+
+#: builtins/pushd.def:755
+msgid ""
+"Removes entries from the directory stack. With no arguments, removes\n"
+" the top directory from the stack, and changes to the new top directory.\n"
+" \n"
+" Options:\n"
+" -n\tSuppresses the normal change of directory when removing\n"
+" \tdirectories from the stack, so only the stack is manipulated.\n"
+" \n"
+" Arguments:\n"
+" +N\tRemoves the Nth entry counting from the left of the list\n"
+" \tshown by `dirs', starting with zero. For example: `popd +0'\n"
+" \tremoves the first directory, `popd +1' the second.\n"
+" \n"
+" -N\tRemoves the Nth entry counting from the right of the list\n"
+" \tshown by `dirs', starting with zero. For example: `popd -0'\n"
+" \tremoves the last directory, `popd -1' the next to last.\n"
+" \n"
+" The `dirs' builtin displays the directory stack."
+msgstr ""
+"يزيل إدخالات من مكدس الأدلة. بدون وسائط، يزيل الدليل\n"
+" العلوي من المكدس، وينتقل إلى الدليل العلوي الجديد.\n"
+" \n"
+" الخيارات:\n"
+" -n\tيمنع تغيير الدليل المعتاد عند إزالة أدلة من المكدس،\n"
+" \tبحيث يقتصر التعامل على المكدس فقط.\n"
+" \n"
+" الوسائط:\n"
+" +N\tيزيل الإدخال رقم N بالعد من يسار القائمة التي تظهر\n"
+" \tبواسطة `dirs` وبدءاً من الصفر. مثلاً: `popd +0` يزيل الدليل الأول،\n"
+" \tو`popd +1` يزيل الثاني.\n"
+" \n"
+" -N\tيزيل الإدخال رقم N بالعد من يمين القائمة التي تظهر\n"
+" \tبواسطة `dirs` وبدءاً من الصفر. مثلاً: `popd -0` يزيل الدليل الأخير،\n"
+" \tو`popd -1` يزيل ما قبل الأخير.\n"
+" \n"
+" الأمر الداخلي `dirs` يعرض مكدس الأدلة."
+
+#: builtins/read.def:346
+#, c-format
+msgid "%s: invalid timeout specification"
+msgstr "%s: مواصفة مهلة زمنية غير صالحة"
+
+#: builtins/return.def:73
+msgid "can only `return' from a function or sourced script"
+msgstr "يمكن فقط استخدام `return` من داخل وظيفة أو نص برمجي مستورد"
+
+#: builtins/set.def:863
+msgid "cannot simultaneously unset a function and a variable"
+msgstr "يتعذر إلغاء ضبط وظيفة ومتغير في آن واحد"
+
+#: builtins/set.def:981
+#, c-format
+msgid "%s: not an array variable"
+msgstr "%s: ليس متغير مصفوفة"
+
+#: builtins/setattr.def:187
+#, c-format
+msgid "%s: not a function"
+msgstr "%s: ليست دالة"
+
+#: builtins/setattr.def:192
+#, c-format
+msgid "%s: cannot export"
+msgstr "%s: يتعذر التصدير"
+
+#: builtins/shift.def:74 builtins/shift.def:86
+msgid "shift count"
+msgstr "عدد الإزاحة"
+
+#: builtins/shopt.def:332
+msgid "cannot set and unset shell options simultaneously"
+msgstr "يتعذر ضبط وإلغاء خيارات الغلاف في آن واحد"
+
+#: builtins/shopt.def:457
+#, c-format
+msgid "%s: invalid shell option name"
+msgstr "%s: اسم خيار غلاف غير صالح"
+
+#: builtins/source.def:143
+msgid "filename argument required"
+msgstr "يتطلب معطى اسم ملف"
+
+#: builtins/source.def:179
+#, c-format
+msgid "%s: file not found"
+msgstr "%s: الملف غير موجود"
+
+#: builtins/suspend.def:105
+msgid "cannot suspend"
+msgstr "يتعذر التعليق"
+
+#: builtins/suspend.def:111
+msgid "cannot suspend a login shell"
+msgstr "يتعذر تعليق غلاف تسجيل دخول"
+
+#: builtins/test.def:146 test.c:926
+msgid "missing `]'"
+msgstr "رمز ']' مفقود"
+
+#: builtins/type.def:231
+#, c-format
+msgid "%s is aliased to `%s'\n"
+msgstr "%s مستعار لـ '%s'\n"
+
+#: builtins/type.def:252
+#, c-format
+msgid "%s is a shell keyword\n"
+msgstr "%s كلمة مفتاحية للغلاف\n"
+
+#: builtins/type.def:270 builtins/type.def:314
+#, c-format
+msgid "%s is a special shell builtin\n"
+msgstr "%s أمر داخلي خاص بالغلاف\n"
+
+#: builtins/type.def:289
+#, c-format
+msgid "%s is a function\n"
+msgstr "%s دالة\n"
+
+#: builtins/type.def:316
+#, c-format
+msgid "%s is a shell builtin\n"
+msgstr "%s أمر داخلي للغلاف\n"
+
+#: builtins/type.def:338 builtins/type.def:425
+#, c-format
+msgid "%s is %s\n"
+msgstr "%s هو %s\n"
+
+#: builtins/type.def:358
+#, c-format
+msgid "%s is hashed (%s)\n"
+msgstr "%s مخزن في جدول العناوين المنفصلة (%s)\n"
+
+#: builtins/ulimit.def:403
+#, c-format
+msgid "%s: invalid limit argument"
+msgstr "%s: معطى حد غير صالح"
+
+#: builtins/ulimit.def:429
+#, c-format
+msgid "`%c': bad command"
+msgstr "'%c': أمر سيء"
+
+#: builtins/ulimit.def:465 builtins/ulimit.def:748
+msgid "cannot get limit"
+msgstr "يتعذر جلب الحد"
+
+#: builtins/ulimit.def:498
+msgid "limit"
+msgstr "الحد"
+
+#: builtins/ulimit.def:511 builtins/ulimit.def:812
+msgid "cannot modify limit"
+msgstr "يتعذر تعديل الحد"
+
+#: builtins/umask.def:114
+msgid "octal number"
+msgstr "رقم ثماني"
+
+#: builtins/umask.def:256
+#, c-format
+msgid "`%c': invalid symbolic mode operator"
+msgstr "'%c': عامل وضع رمزي غير صالح"
+
+#: builtins/umask.def:345
+#, c-format
+msgid "`%c': invalid symbolic mode character"
+msgstr "'%c': محرف وضع رمزي غير صالح"
+
+#: error.c:83 error.c:311 error.c:313 error.c:315
+msgid " line "
+msgstr " سطر "
+
+#: error.c:151
+#, c-format
+msgid "last command: %s\n"
+msgstr "الأمر الأخير: %s\n"
+
+#: error.c:159
+#, c-format
+msgid "Aborting..."
+msgstr "يجري الإجهاض..."
+
+#. TRANSLATORS: this is a prefix for informational messages.
+#: error.c:244
+#, c-format
+msgid "INFORM: "
+msgstr "إعلام: "
+
+#: error.c:261
+#, c-format
+msgid "DEBUG warning: "
+msgstr "تحذير تنقيح: "
+
+#: error.c:413
+msgid "unknown command error"
+msgstr "خطأ أمر مجهول"
+
+#: error.c:414
+msgid "bad command type"
+msgstr "نوع أمر سيء"
+
+#: error.c:415
+msgid "bad connector"
+msgstr "رابط سيء"
+
+#: error.c:416
+msgid "bad jump"
+msgstr "قفزة سيئة"
+
+#: error.c:449
+#, c-format
+msgid "%s: unbound variable"
+msgstr "%s: متغير غير مقيد"
+
+#: eval.c:260
+msgid "\atimed out waiting for input: auto-logout\n"
+msgstr "\aانتهت المهلة بانتظار المدخلات: تسجيل خروج آلي\n"
+
+#: execute_cmd.c:606
+msgid "cannot redirect standard input from /dev/null"
+msgstr "يتعذر إعادة توجيه المدخلات القياسية من /dev/null"
+
+#: execute_cmd.c:1412
+#, c-format
+msgid "TIMEFORMAT: `%c': invalid format character"
+msgstr "TIMEFORMAT: '%c': محرف تنسيق غير صالح"
+
+#: execute_cmd.c:2493
+#, c-format
+msgid "execute_coproc: coproc [%d:%s] still exists"
+msgstr "execute_coproc: العملية المشتركة [%d:%s] لا تزال موجودة"
+
+#: execute_cmd.c:2647
+msgid "pipe error"
+msgstr "خطأ في الأنبوب"
+
+#: execute_cmd.c:4100
+#, c-format
+msgid "invalid regular expression `%s': %s"
+msgstr "تعبير نمطي غير صالح '%s': %s"
+
+#: execute_cmd.c:4102
+#, c-format
+msgid "invalid regular expression `%s'"
+msgstr "تعبير نمطي غير صالح '%s'"
+
+#: execute_cmd.c:5056
+#, c-format
+msgid "eval: maximum eval nesting level exceeded (%d)"
+msgstr "eval: تجاوز الحد الأقصى لمستوى تداخل التقييم (%d)"
+
+#: execute_cmd.c:5069
+#, c-format
+msgid "%s: maximum source nesting level exceeded (%d)"
+msgstr "%s: تجاوز الحد الأقصى لمستوى تداخل المصدر (%d)"
+
+#: execute_cmd.c:5198
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr "%s: تجاوز الحد الأقصى لمستوى تداخل الدوال (%d)"
+
+#: execute_cmd.c:5754
+msgid "command not found"
+msgstr "الأمر غير موجود"
+
+#: execute_cmd.c:5783
+#, c-format
+msgid "%s: restricted: cannot specify `/' in command names"
+msgstr "%s: مقيد: لا يمكن تحديد '/' في أسماء الأوامر"
+
+#: execute_cmd.c:6176
+msgid "bad interpreter"
+msgstr "مفسر سيء"
+
+#: execute_cmd.c:6185
+#, c-format
+msgid "%s: cannot execute: required file not found"
+msgstr "%s: يتعذر التنفيذ: الملف المطلوب غير موجود"
+
+#: execute_cmd.c:6361
+#, c-format
+msgid "cannot duplicate fd %d to fd %d"
+msgstr "تعذر تكرار واصف الملف %d إلى الواصف %d"
+
+#: expr.c:272
+msgid "expression recursion level exceeded"
+msgstr "تخطى التعبير مستوى التكرار المسموح به"
+
+#: expr.c:300
+msgid "recursion stack underflow"
+msgstr "نقص في مكدس التكرار"
+
+#: expr.c:485
+msgid "arithmetic syntax error in expression"
+msgstr "خطأ في صياغة الحساب في التعبير"
+
+#: expr.c:529
+msgid "attempted assignment to non-variable"
+msgstr "محاولة إسناد لقيمة ليست متغيراً"
+
+#: expr.c:538
+msgid "arithmetic syntax error in variable assignment"
+msgstr "خطأ في صياغة الحساب عند إسناد المتغير"
+
+#: expr.c:552 expr.c:917
+msgid "division by 0"
+msgstr "القسمة على 0"
+
+#: expr.c:600
+msgid "bug: bad expassign token"
+msgstr "خطأ برمجي: علامة إسناد تعبير سيئة"
+
+#: expr.c:654
+msgid "`:' expected for conditional expression"
+msgstr "يتوقع وجود `:' للتعبير الشرطي"
+
+#: expr.c:979
+msgid "exponent less than 0"
+msgstr "الأس أصغر من 0"
+
+#: expr.c:1040
+msgid "identifier expected after pre-increment or pre-decrement"
+msgstr "يتوقع وجود معرف بعد الزيادة القبلية أو النقصان القبلي"
+
+#: expr.c:1067
+msgid "missing `)'"
+msgstr "فقدان `)'"
+
+#: expr.c:1120 expr.c:1507
+msgid "arithmetic syntax error: operand expected"
+msgstr "خطأ في صياغة الحساب: يتوقع وجود معامل"
+
+#: expr.c:1468 expr.c:1489
+msgid "--: assignment requires lvalue"
+msgstr "--: الإسناد يتطلب قيمة يسارية (lvalue)"
+
+#: expr.c:1470 expr.c:1491
+msgid "++: assignment requires lvalue"
+msgstr "++: الإسناد يتطلب قيمة يسارية (lvalue)"
+
+#: expr.c:1509
+msgid "arithmetic syntax error: invalid arithmetic operator"
+msgstr "خطأ في صياغة الحساب: معامل حسابي غير صالح"
+
+#: expr.c:1532
+#, c-format
+msgid "%s%s%s: %s (error token is \"%s\")"
+msgstr "%s%s%s: %s (علامة الخطأ هي \"%s\")"
+
+#: expr.c:1595
+msgid "invalid arithmetic base"
+msgstr "أساس حسابي غير صالح"
+
+#: expr.c:1604
+msgid "invalid integer constant"
+msgstr "ثابت عدد صحيح غير صالح"
+
+#: expr.c:1620
+msgid "value too great for base"
+msgstr "القيمة كبيرة جداً بالنسبة للأساس"
+
+#: expr.c:1671
+#, c-format
+msgid "%s: expression error\n"
+msgstr "%s: خطأ في التعبير\n"
+
+#: general.c:70
+msgid "getcwd: cannot access parent directories"
+msgstr "getcwd: تعذر الوصول إلى الأدلة الأب"
+
+#: general.c:459
+#, c-format
+msgid "`%s': is a special builtin"
+msgstr "`%s': بناء داخلي خاص"
+
+#: input.c:98 subst.c:6542
+#, c-format
+msgid "cannot reset nodelay mode for fd %d"
+msgstr "تعذر إعادة ضبط وضع عدم التأخير لواصف الملف %d"
+
+#: input.c:254
+#, c-format
+msgid "cannot allocate new file descriptor for bash input from fd %d"
+msgstr "تعذر تخصيص واصف ملف جديد لمدخلات bash من الواصف %d"
+
+#: input.c:262
+#, c-format
+msgid "save_bash_input: buffer already exists for new fd %d"
+msgstr "save_bash_input: الذاكرة الوسيطة موجودة بالفعل لواصف الملف الجديد %d"
+
+#: jobs.c:549
+msgid "start_pipeline: pgrp pipe"
+msgstr "start_pipeline: أنبوب pgrp"
+
+#: jobs.c:910
+#, c-format
+msgid "bgp_delete: LOOP: psi (%d) == storage[psi].bucket_next"
+msgstr "bgp_delete: تكرار: psi (%d) == storage[psi].bucket_next"
+
+#: jobs.c:962
+#, c-format
+msgid "bgp_search: LOOP: psi (%d) == storage[psi].bucket_next"
+msgstr "bgp_search: تكرار: psi (%d) == storage[psi].bucket_next"
+
+#: jobs.c:1380
+#, c-format
+msgid "forked pid %d appears in running job %d"
+msgstr "المعرف pid المتشعب %d يظهر في المهمة الجارية %d"
+
+#: jobs.c:1496
+#, c-format
+msgid "deleting stopped job %d with process group %ld"
+msgstr "حذف المهمة المتوقفة %d مع مجموعة العمليات %ld"
+
+#: jobs.c:1620
+#, c-format
+msgid "add_process: pid %5ld (%s) marked as still alive"
+msgstr "add_process: المعرف pid %5ld (%s) وُسِم على أنه لا يزال حياً"
+
+#: jobs.c:1949
+#, c-format
+msgid "describe_pid: %ld: no such pid"
+msgstr "describe_pid: %ld: لا يوجد pid بهذا الرقم"
+
+#: jobs.c:1963
+#, c-format
+msgid "Signal %d"
+msgstr "إشارة %d"
+
+#: jobs.c:1974 jobs.c:2000
+msgid "Done"
+msgstr "انتهى"
+
+#: jobs.c:1979 siglist.c:123
+msgid "Stopped"
+msgstr "متوقف"
+
+#: jobs.c:1983
+#, c-format
+msgid "Stopped(%s)"
+msgstr "متوقف(%s)"
+
+#: jobs.c:1987
+msgid "Running"
+msgstr "قيد التشغيل"
+
+#: jobs.c:2004
+#, c-format
+msgid "Done(%d)"
+msgstr "انتهى(%d)"
+
+#: jobs.c:2006
+#, c-format
+msgid "Exit %d"
+msgstr "خروج %d"
+
+#: jobs.c:2009
+msgid "Unknown status"
+msgstr "حالة غير معروفة"
+
+#: jobs.c:2105
+#, c-format
+msgid "(core dumped) "
+msgstr "(أُفرغت الذاكرة) "
+
+#: jobs.c:2124
+#, c-format
+msgid " (wd: %s)"
+msgstr " (دليل العمل: %s)"
+
+#: jobs.c:2391
+#, c-format
+msgid "child setpgid (%ld to %ld)"
+msgstr "ضبط setpgid للابن (من %ld إلى %ld)"
+
+#: jobs.c:2754 nojobs.c:640
+#, c-format
+msgid "wait: pid %ld is not a child of this shell"
+msgstr "انتظار: pid %ld ليس ابناً لهذا الغلاف"
+
+#: jobs.c:3052
+#, c-format
+msgid "wait_for: No record of process %ld"
+msgstr "wait_for: لا يوجد سجل للعملية %ld"
+
+#: jobs.c:3410
+#, c-format
+msgid "wait_for_job: job %d is stopped"
+msgstr "wait_for_job: المهمة %d متوقفة"
+
+#: jobs.c:3838
+#, c-format
+msgid "%s: no current jobs"
+msgstr "%s: لا يوجد مهام حالية"
+
+#: jobs.c:3845
+#, c-format
+msgid "%s: job has terminated"
+msgstr "%s: انتهت المهمة"
+
+#: jobs.c:3854
+#, c-format
+msgid "%s: job %d already in background"
+msgstr "%s: المهمة %d موجودة بالفعل في الخلفية"
+
+#: jobs.c:4092
+msgid "waitchld: turning on WNOHANG to avoid indefinite block"
+msgstr "waitchld: تشغيل WNOHANG لتفادي الحظر غير المحدود"
+
+#: jobs.c:4641
+#, c-format
+msgid "%s: line %d: "
+msgstr "%s: السطر %d: "
+
+#: jobs.c:4657 nojobs.c:895
+#, c-format
+msgid " (core dumped)"
+msgstr " (أُفرغت الذاكرة)"
+
+#: jobs.c:4677 jobs.c:4697
+#, c-format
+msgid "(wd now: %s)\n"
+msgstr "(دليل العمل الحالي: %s)\n"
+
+#: jobs.c:4741
+msgid "initialize_job_control: getpgrp failed"
+msgstr "initialize_job_control: فشل getpgrp"
+
+#: jobs.c:4797
+msgid "initialize_job_control: no job control in background"
+msgstr "initialize_job_control: لا تحكم في المهام في الخلفية"
+
+#: jobs.c:4813
+msgid "initialize_job_control: line discipline"
+msgstr "initialize_job_control: تهذيب السطر"
+
+#: jobs.c:4823
+msgid "initialize_job_control: setpgid"
+msgstr "initialize_job_control: setpgid"
+
+#: jobs.c:4844 jobs.c:4853
+#, c-format
+msgid "cannot set terminal process group (%d)"
+msgstr "يتعذر ضبط مجموعة عمليات الطرفية (%d)"
+
+#: jobs.c:4858
+msgid "no job control in this shell"
+msgstr "لا يوجد تحكم في المهام في هذه القشرة"
+
+#: lib/malloc/malloc.c:364
+#, c-format
+msgid "malloc: failed assertion: %s\n"
+msgstr "malloc: فشل التحقق: %s\n"
+
+#: lib/malloc/malloc.c:375
+#, c-format
+msgid ""
+"\r\n"
+"malloc: %s:%d: assertion botched\r\n"
+msgstr ""
+"\r\n"
+"malloc: %s:%d: أُفسد التحقق\r\n"
+
+#: lib/malloc/malloc.c:376 lib/malloc/malloc.c:925
+msgid "unknown"
+msgstr "غير معروف"
+
+#: lib/malloc/malloc.c:876
+msgid "malloc: block on free list clobbered"
+msgstr "malloc: تضرر قسم في قائمة الأقسام الحرة"
+
+#: lib/malloc/malloc.c:961
+msgid "free: called with already freed block argument"
+msgstr "free: استدعاء مع معطى لقسم حرر مسبقاً"
+
+#: lib/malloc/malloc.c:964
+msgid "free: called with unallocated block argument"
+msgstr "free: استدعاء مع معطى لقسم غير مخصص"
+
+#: lib/malloc/malloc.c:982
+msgid "free: underflow detected; mh_nbytes out of range"
+msgstr "free: رُصد تدفق سفلي؛ mh_nbytes خارج النطاق"
+
+#: lib/malloc/malloc.c:988
+msgid "free: underflow detected; magic8 corrupted"
+msgstr "free: رُصد تدفق سفلي؛ magic8 تالف"
+
+#: lib/malloc/malloc.c:995
+msgid "free: start and end chunk sizes differ"
+msgstr "free: تختلف أحجام كتل البداية والنهاية"
+
+#: lib/malloc/malloc.c:1155
+msgid "realloc: called with unallocated block argument"
+msgstr "realloc: استدعاء مع معطى لقسم غير مخصص"
+
+#: lib/malloc/malloc.c:1170
+msgid "realloc: underflow detected; mh_nbytes out of range"
+msgstr "realloc: رُصد تدفق سفلي؛ mh_nbytes خارج النطاق"
+
+#: lib/malloc/malloc.c:1176
+msgid "realloc: underflow detected; magic8 corrupted"
+msgstr "realloc: رُصد تدفق سفلي؛ magic8 تالف"
+
+#: lib/malloc/malloc.c:1184
+msgid "realloc: start and end chunk sizes differ"
+msgstr "realloc: تختلف أحجام كتل البداية والنهاية"
+
+#: lib/malloc/table.c:179
+#, c-format
+msgid "register_alloc: alloc table is full with FIND_ALLOC?\n"
+msgstr "register_alloc: جدول التخصيص ممتلئ بـ FIND_ALLOC؟\n"
+
+#: lib/malloc/table.c:188
+#, c-format
+msgid "register_alloc: %p already in table as allocated?\n"
+msgstr "register_alloc: %p موجود مسبقاً في الجدول كمخصص؟\n"
+
+#: lib/malloc/table.c:237
+#, c-format
+msgid "register_free: %p already in table as free?\n"
+msgstr "register_free: %p موجود مسبقاً في الجدول كحر؟\n"
+
+#: lib/sh/fmtulong.c:90
+msgid "invalid base"
+msgstr "أساس غير صالح"
+
+#: lib/sh/netopen.c:161
+#, c-format
+msgid "%s: host unknown"
+msgstr "%s: المضيف غير معروف"
+
+#: lib/sh/netopen.c:168
+#, c-format
+msgid "%s: invalid service"
+msgstr "%s: خدمة غير صالحة"
+
+#: lib/sh/netopen.c:294
+#, c-format
+msgid "%s: bad network path specification"
+msgstr "%s: توصيف مسار شبكة سيء"
+
+#: lib/sh/netopen.c:332
+msgid "network operations not supported"
+msgstr "عمليات الشبكة غير مدعومة"
+
+#: locale.c:226 locale.c:228 locale.c:301 locale.c:303
+msgid "cannot change locale"
+msgstr "يتعذر تغيير الإعدادات المحلية"
+
+#: mailcheck.c:435
+msgid "You have mail in $_"
+msgstr "لديك بريد في $_"
+
+#: mailcheck.c:460
+msgid "You have new mail in $_"
+msgstr "لديك بريد جديد في $_"
+
+#: mailcheck.c:476
+#, c-format
+msgid "The mail in %s has been read\n"
+msgstr "قُرئ البريد في %s\n"
+
+#: make_cmd.c:286
+msgid "syntax error: arithmetic expression required"
+msgstr "خطأ في بناء الجملة: مطلوب تعبير حسابي"
+
+#: make_cmd.c:288
+msgid "syntax error: `;' unexpected"
+msgstr "خطأ في بناء الجملة: `;' غير متوقع"
+
+#: make_cmd.c:289
+#, c-format
+msgid "syntax error: `((%s))'"
+msgstr "خطأ في بناء الجملة: `((%s))'"
+
+#: make_cmd.c:523
+#, c-format
+msgid "make_here_document: bad instruction type %d"
+msgstr "make_here_document: نوع تعليمات سيء %d"
+
+#: make_cmd.c:627
+#, c-format
+msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
+msgstr "المستند المضمن عند السطر %d محدد بنهاية الملف (المطلوب `%s')"
+
+#: make_cmd.c:722
+#, c-format
+msgid "make_redirection: redirection instruction `%d' out of range"
+msgstr "make_redirection: تعليمات إعادة التوجيه `%d' خارج النطاق"
+
+#: parse.y:2572
+#, c-format
+msgid "shell_getc: shell_input_line_size (%zu) exceeds SIZE_MAX (%lu): line truncated"
+msgstr "shell_getc: حجم سطر مدخلات القشرة (%zu) يتجاوز الحد الأقصى (%lu): السطر قُطع"
+
+#: parse.y:2864
+msgid "script file read error"
+msgstr "خطأ في قراءة ملف السكريبت"
+
+#: parse.y:3101
+msgid "maximum here-document count exceeded"
+msgstr "تجاوز الحد الأقصى لعدد المستندات المضمنة"
+
+#: parse.y:3901 parse.y:4799 parse.y:6859
+#, c-format
+msgid "unexpected EOF while looking for matching `%c'"
+msgstr "نهاية ملف غير متوقعة أثناء البحث عن المطابق لـ `%c'"
+
+#: parse.y:5006
+msgid "unexpected EOF while looking for `]]'"
+msgstr "نهاية ملف غير متوقعة أثناء البحث عن `]]'"
+
+#: parse.y:5011
+#, c-format
+msgid "syntax error in conditional expression: unexpected token `%s'"
+msgstr "خطأ في بناء الجملة في التعبير الشرطي: رمز غير متوقع `%s'"
+
+#: parse.y:5015
+msgid "syntax error in conditional expression"
+msgstr "خطأ في بناء الجملة في التعبير الشرطي"
+
+#: parse.y:5093
+#, c-format
+msgid "unexpected token `%s', expected `)'"
+msgstr "رمز غير متوقع `%s'، المتوقع `)'"
+
+#: parse.y:5097
+msgid "expected `)'"
+msgstr "المتوقع `)'"
+
+#: parse.y:5127
+#, c-format
+msgid "unexpected argument `%s' to conditional unary operator"
+msgstr "معطى غير متوقع `%s' للمعامل الشرطي الأحادي"
+
+#: parse.y:5131
+msgid "unexpected argument to conditional unary operator"
+msgstr "معطى غير متوقع للمعامل الشرطي الأحادي"
+
+#: parse.y:5178
+#, c-format
+msgid "unexpected token `%s', conditional binary operator expected"
+msgstr "رمز غير متوقع `%s'، كان من المتوقع وجود معامل شرطي ثنائي"
+
+#: parse.y:5182
+msgid "conditional binary operator expected"
+msgstr "يتوقع وجود معامل شرطي ثنائي"
+
+#: parse.y:5211
+#, c-format
+msgid "unexpected argument `%s' to conditional binary operator"
+msgstr "معطى غير متوقع `%s' للمعامل الشرطي الثنائي"
+
+#: parse.y:5215
+msgid "unexpected argument to conditional binary operator"
+msgstr "معطى غير متوقع للمعامل الشرطي الثنائي"
+
+#: parse.y:5226
+#, c-format
+msgid "unexpected token `%c' in conditional command"
+msgstr "رمز غير متوقع `%c' في الأمر الشرطي"
+
+#: parse.y:5229
+#, c-format
+msgid "unexpected token `%s' in conditional command"
+msgstr "رمز غير متوقع `%s' في الأمر الشرطي"
+
+#: parse.y:5233
+#, c-format
+msgid "unexpected token %d in conditional command"
+msgstr "رمز غير متوقع %d في الأمر الشرطي"
+
+#: parse.y:6827
+#, c-format
+msgid "syntax error near unexpected token `%s' while looking for matching `%c'"
+msgstr "خطأ في بناء الجملة بالقرب من الرمز غير المتوقع `%s' أثناء البحث عن المطابق لـ `%c'"
+
+#: parse.y:6829
+#, c-format
+msgid "syntax error near unexpected token `%s'"
+msgstr "خطأ في بناء الجملة بالقرب من الرمز غير المتوقع `%s'"
+
+#: parse.y:6848
+#, c-format
+msgid "syntax error near `%s'"
+msgstr "خطأ في بناء الجملة بالقرب من `%s'"
+
+#: parse.y:6867
+#, c-format
+msgid "syntax error: unexpected end of file from `%s' command on line %d"
+msgstr "خطأ في بناء الجملة: نهاية غير متوقعة للملف من الأمر `%s' في السطر %d"
+
+#: parse.y:6869
+#, c-format
+msgid "syntax error: unexpected end of file from command on line %d"
+msgstr "خطأ في بناء الجملة: نهاية غير متوقعة للملف من الأمر في السطر %d"
+
+#: parse.y:6873
+msgid "syntax error: unexpected end of file"
+msgstr "خطأ في بناء الجملة: نهاية غير متوقعة للملف"
+
+#: parse.y:6873
+msgid "syntax error"
+msgstr "خطأ في بناء الجملة"
+
+#: parse.y:6922
+#, c-format
+msgid "Use \"%s\" to leave the shell.\n"
+msgstr "استخدم \"%s\" لمغادرة الصدفة (shell).\n"
+
+#: parse.y:7120
+msgid "unexpected EOF while looking for matching `)'"
+msgstr "نهاية ملف غير متوقعة أثناء البحث عن المطابق لـ `)'"
+
+#: pathexp.c:897
+msgid "invalid glob sort type"
+msgstr "نوع فرز glob غير صالح"
+
+#: pcomplete.c:1070
+#, c-format
+msgid "completion: function `%s' not found"
+msgstr "الإكمال: الدالة `%s' غير موجودة"
+
+#: pcomplete.c:1654
+#, c-format
+msgid "programmable_completion: %s: possible retry loop"
+msgstr "الإكمال_القابل_للبرمجة: %s: حلقة تكرار محتملة"
+
+#: pcomplib.c:176
+#, c-format
+msgid "progcomp_insert: %s: NULL COMPSPEC"
+msgstr "progcomp_insert: %s: مواصفات إكمال (COMPSPEC) فارغة"
+
+#: print_cmd.c:324
+#, c-format
+msgid "print_command: bad connector `%d'"
+msgstr "print_command: موصل سيء `%d'"
+
+#: print_cmd.c:399
+#, c-format
+msgid "xtrace_set: %d: invalid file descriptor"
+msgstr "xtrace_set: %d: واصف ملف غير صالح"
+
+#: print_cmd.c:404
+msgid "xtrace_set: NULL file pointer"
+msgstr "xtrace_set: مؤشر ملف فارغ"
+
+#: print_cmd.c:408
+#, c-format
+msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
+msgstr "xtrace fd (%d) != fileno xtrace fp (%d)"
+
+#: print_cmd.c:1597
+#, c-format
+msgid "cprintf: `%c': invalid format character"
+msgstr "cprintf: `%c': محرف تنسيق غير صالح"
+
+#: redir.c:146 redir.c:194
+msgid "file descriptor out of range"
+msgstr "واصف الملف خارج النطاق"
+
+#: redir.c:201
+msgid "ambiguous redirect"
+msgstr "إعادة توجيه غامضة"
+
+#: redir.c:205
+msgid "cannot overwrite existing file"
+msgstr "لا يمكن الكتابة فوق ملف موجود"
+
+#: redir.c:210
+msgid "restricted: cannot redirect output"
+msgstr "مقيد: لا يمكن إعادة توجيه المخرجات"
+
+#: redir.c:215
+msgid "cannot create temp file for here-document"
+msgstr "لا يمكن إنشاء ملف مؤقت لـ here-document"
+
+#: redir.c:219
+msgid "cannot assign fd to variable"
+msgstr "لا يمكن تعيين واصف الملف لمتغير"
+
+#: redir.c:639
+msgid "/dev/(tcp|udp)/host/port not supported without networking"
+msgstr "/dev/(tcp|udp)/host/port غير مدعوم بدون شبكة"
+
+#: redir.c:945 redir.c:1062 redir.c:1124 redir.c:1291
+msgid "redirection error: cannot duplicate fd"
+msgstr "خطأ إعادة توجيه: لا يمكن تكرار واصف الملف"
+
+#: shell.c:359
+msgid "could not find /tmp, please create!"
+msgstr "لم يعثر على /tmp، يرجى إنشاؤه!"
+
+#: shell.c:363
+msgid "/tmp must be a valid directory name"
+msgstr "يجب أن يكون /tmp اسماً لدليل صالح"
+
+#: shell.c:827
+msgid "pretty-printing mode ignored in interactive shells"
+msgstr "تجاهل وضع الطباعة التجميلية في الصدفات التفاعلية"
+
+#: shell.c:969
+#, c-format
+msgid "%c%c: invalid option"
+msgstr "%c%c: خيار غير صالح"
+
+#: shell.c:1354
+#, c-format
+msgid "cannot set uid to %d: effective uid %d"
+msgstr "لا يمكن ضبط معرف المستخدم (uid) إلى %d: المعرف الفعلي %d"
+
+#: shell.c:1370
+#, c-format
+msgid "cannot set gid to %d: effective gid %d"
+msgstr "لا يمكن ضبط معرف المجموعة (gid) إلى %d: المعرف الفعلي %d"
+
+#: shell.c:1559
+msgid "cannot start debugger; debugging mode disabled"
+msgstr "لا يمكن بدء المنقح؛ وضع تنقيح الأخطاء معطل"
+
+#: shell.c:1672
+#, c-format
+msgid "%s: Is a directory"
+msgstr "%s: هو دليل"
+
+#: shell.c:1748 shell.c:1750
+msgid "error creating buffered stream"
+msgstr "خطأ في إنشاء دفق مخزن مؤقتاً"
+
+#: shell.c:1899
+msgid "I have no name!"
+msgstr "ليس لدي اسم!"
+
+#: shell.c:2063
+#, c-format
+msgid "GNU bash, version %s-(%s)\n"
+msgstr "جي إن يو باش (GNU bash)، الإصدار %s-(%s)\n"
+
+#: shell.c:2064
+#, c-format
+msgid ""
+"Usage:\t%s [GNU long option] [option] ...\n"
+"\t%s [GNU long option] [option] script-file ...\n"
+msgstr ""
+"الاستخدام:\t%s [خيار GNU طويل] [خيار] ...\n"
+"\t%s [خيار GNU طويل] [خيار] ملف-سكربت ...\n"
+
+#: shell.c:2066
+msgid "GNU long options:\n"
+msgstr "خيارات GNU الطويلة:\n"
+
+#: shell.c:2070
+msgid "Shell options:\n"
+msgstr "خيارات الصدفة (Shell):\n"
+
+#: shell.c:2071
+msgid "\t-ilrsD or -c command or -O shopt_option\t\t(invocation only)\n"
+msgstr "\t-ilrsD أو -c أمر أو -O shopt_option\t\t(عند الاستدعاء فقط)\n"
+
+#: shell.c:2090
+#, c-format
+msgid "\t-%s or -o option\n"
+msgstr "\tالخيار -%s أو -o\n"
+
+#: shell.c:2096
+#, c-format
+msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
+msgstr "اكتب `%s -c \"help set\"' لمزيد من المعلومات حول خيارات الصدفة.\n"
+
+#: shell.c:2097
+#, c-format
+msgid "Type `%s -c help' for more information about shell builtin commands.\n"
+msgstr "اكتب `%s -c help' لمزيد من المعلومات حول أوامر الصدفة المدمجة.\n"
+
+#: shell.c:2098
+#, c-format
+msgid "Use the `bashbug' command to report bugs.\n"
+msgstr "استخدم أمر `bashbug' للإبلاغ عن العيوب.\n"
+
+#: shell.c:2100
+#, c-format
+msgid "bash home page: <http://www.gnu.org/software/bash>\n"
+msgstr "صفحة bash الرئيسية: <http://www.gnu.org/software/bash>\n"
+
+#: shell.c:2101
+#, c-format
+msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
+msgstr "مساعدة عامة في استخدام برمجيات غنو: <http://www.gnu.org/gethelp/>\n"
+
+#: sig.c:809
+#, c-format
+msgid "sigprocmask: %d: invalid operation"
+msgstr "sigprocmask: %d: عملية غير صالحة"
+
+#: siglist.c:48
+msgid "Bogus signal"
+msgstr "إشارة زائفة"
+
+#: siglist.c:51
+msgid "Hangup"
+msgstr "إنهاء الاتصال"
+
+#: siglist.c:55
+msgid "Interrupt"
+msgstr "مقاطعة"
+
+#: siglist.c:59
+msgid "Quit"
+msgstr "إنهاء"
+
+#: siglist.c:63
+msgid "Illegal instruction"
+msgstr "تعليمات غير قانونية"
+
+#: siglist.c:67
+msgid "BPT trace/trap"
+msgstr "تتبع/فخ BPT"
+
+#: siglist.c:75
+msgid "ABORT instruction"
+msgstr "تعليمات الإجهاض"
+
+#: siglist.c:79
+msgid "EMT instruction"
+msgstr "تعليمات EMT"
+
+#: siglist.c:83
+msgid "Floating point exception"
+msgstr "استثناء نقطة عائمة"
+
+#: siglist.c:87
+msgid "Killed"
+msgstr "قُتل"
+
+#: siglist.c:91
+msgid "Bus error"
+msgstr "خطأ في المسرى"
+
+#: siglist.c:95
+msgid "Segmentation fault"
+msgstr "خطأ في التجزئة"
+
+#: siglist.c:99
+msgid "Bad system call"
+msgstr "نداء نظام سيئ"
+
+#: siglist.c:103
+msgid "Broken pipe"
+msgstr "أنبوب مكسور"
+
+#: siglist.c:107
+msgid "Alarm clock"
+msgstr "منبه"
+
+#: siglist.c:111
+msgid "Terminated"
+msgstr "أُنهي"
+
+#: siglist.c:115
+msgid "Urgent IO condition"
+msgstr "حالة إدخال/إخراج عاجلة"
+
+#: siglist.c:119
+msgid "Stopped (signal)"
+msgstr "أُوقف (إشارة)"
+
+#: siglist.c:127
+msgid "Continue"
+msgstr "استمرار"
+
+#: siglist.c:135
+msgid "Child death or stop"
+msgstr "توقف أو وفاة عملية فرعية"
+
+#: siglist.c:139
+msgid "Stopped (tty input)"
+msgstr "أُوقف (إدخال tty)"
+
+#: siglist.c:143
+msgid "Stopped (tty output)"
+msgstr "أُوقف (إخراج tty)"
+
+#: siglist.c:147
+msgid "I/O ready"
+msgstr "الإدخال/الإخراج جاهز"
+
+#: siglist.c:151
+msgid "CPU limit"
+msgstr "حد وحدة المعالجة المركزية"
+
+#: siglist.c:155
+msgid "File limit"
+msgstr "حد الملف"
+
+#: siglist.c:159
+msgid "Alarm (virtual)"
+msgstr "منبه (افتراضي)"
+
+#: siglist.c:163
+msgid "Alarm (profile)"
+msgstr "منبه (تشكيلة)"
+
+#: siglist.c:167
+msgid "Window changed"
+msgstr "تغيرت النافذة"
+
+#: siglist.c:171
+msgid "Record lock"
+msgstr "قفل السجل"
+
+#: siglist.c:175
+msgid "User signal 1"
+msgstr "إشارة المستخدم 1"
+
+#: siglist.c:179
+msgid "User signal 2"
+msgstr "إشارة المستخدم 2"
+
+#: siglist.c:183
+msgid "HFT input data pending"
+msgstr "بيانات إدخال HFT معلقة"
+
+#: siglist.c:187
+msgid "power failure imminent"
+msgstr "فشل طاقة وشيك"
+
+#: siglist.c:191
+msgid "system crash imminent"
+msgstr "انهيار نظام وشيك"
+
+#: siglist.c:195
+msgid "migrate process to another CPU"
+msgstr "ترحيل العملية إلى وحدة معالجة مركزية أخرى"
+
+#: siglist.c:199
+msgid "programming error"
+msgstr "خطأ برمجي"
+
+#: siglist.c:203
+msgid "HFT monitor mode granted"
+msgstr "مُنح وضع مراقبة HFT"
+
+#: siglist.c:207
+msgid "HFT monitor mode retracted"
+msgstr "سُحب وضع مراقبة HFT"
+
+#: siglist.c:211
+msgid "HFT sound sequence has completed"
+msgstr "اكتمل تسلسل صوت HFT"
+
+#: siglist.c:215
+msgid "Information request"
+msgstr "طلب معلومات"
+
+#: siglist.c:223 siglist.c:225
+#, c-format
+msgid "Unknown Signal #%d"
+msgstr "إشارة غير معروفة رقم %d"
+
+#: subst.c:1503 subst.c:1795 subst.c:2001
+#, c-format
+msgid "bad substitution: no closing `%s' in %s"
+msgstr "إبدال سيئ: لا يوجد إغلاق لـ `%s' في %s"
+
+#: subst.c:3601
+#, c-format
+msgid "%s: cannot assign list to array member"
+msgstr "%s: تعذر تعيين قائمة لعضو مصفوفة"
+
+#: subst.c:6381 subst.c:6397
+msgid "cannot make pipe for process substitution"
+msgstr "يتعذر إنشاء أنبوب لاستبدال العملية"
+
+#: subst.c:6457
+msgid "cannot make child for process substitution"
+msgstr "يتعذر إنشاء عملية ابنة لاستبدال العملية"
+
+#: subst.c:6532
+#, c-format
+msgid "cannot open named pipe %s for reading"
+msgstr "يتعذر فتح الأنبوب المسمى %s للقراءة"
+
+#: subst.c:6534
+#, c-format
+msgid "cannot open named pipe %s for writing"
+msgstr "يتعذر فتح الأنبوب المسمى %s للكتابة"
+
+#: subst.c:6557
+#, c-format
+msgid "cannot duplicate named pipe %s as fd %d"
+msgstr "يتعذر تكرار الأنبوب المسمى %s كواصف ملف %d"
+
+#: subst.c:6723
+msgid "command substitution: ignored null byte in input"
+msgstr "استبدال الأمر: أُهملت بايت فارغة (null) في المدخلات"
+
+#: subst.c:6962
+msgid "function_substitute: cannot open anonymous file for output"
+msgstr "function_substitute: يتعذر فتح ملف مجهول للمخرجات"
+
+#: subst.c:7036
+msgid "function_substitute: cannot duplicate anonymous file as standard output"
+msgstr "function_substitute: يتعذر تكرار ملف مجهول كمخرج قياسي"
+
+#: subst.c:7210 subst.c:7231
+msgid "cannot make pipe for command substitution"
+msgstr "يتعذر إنشاء أنبوب لاستبدال الأمر"
+
+#: subst.c:7282
+msgid "cannot make child for command substitution"
+msgstr "يتعذر إنشاء عملية ابنة لاستبدال الأمر"
+
+#: subst.c:7315
+msgid "command_substitute: cannot duplicate pipe as fd 1"
+msgstr "command_substitute: يتعذر تكرار الأنبوب كواصف ملف 1"
+
+#: subst.c:7813 subst.c:10989
+#, c-format
+msgid "%s: invalid variable name for name reference"
+msgstr "%s: اسم متغير غير صالح لمرجع الاسم"
+
+#: subst.c:7906 subst.c:7924 subst.c:8100
+#, c-format
+msgid "%s: invalid indirect expansion"
+msgstr "%s: توسيع غير مباشر غير صالح"
+
+#: subst.c:7940 subst.c:8108
+#, c-format
+msgid "%s: invalid variable name"
+msgstr "%s: اسم متغير غير صالح"
+
+#: subst.c:8125 subst.c:10271 subst.c:10298
+#, c-format
+msgid "%s: bad substitution"
+msgstr "%s: استبدال رديء"
+
+#: subst.c:8224
+#, c-format
+msgid "%s: parameter not set"
+msgstr "%s: الوسيط غير مضبوط"
+
+#: subst.c:8480 subst.c:8495
+#, c-format
+msgid "%s: substring expression < 0"
+msgstr "%s: تعبير السلسلة الفرعية أصغر من 0"
+
+#: subst.c:10397
+#, c-format
+msgid "$%s: cannot assign in this way"
+msgstr "$%s: يتعذر التعيين بهذه الطريقة"
+
+#: subst.c:10855
+msgid "future versions of the shell will force evaluation as an arithmetic substitution"
+msgstr "الإصدارات المستقبلية من الصدفة ستفرض التقييم كاستبدال حسابي"
+
+#: subst.c:11563
+#, c-format
+msgid "bad substitution: no closing \"`\" in %s"
+msgstr "استبدال رديء: لا توجد علامة إغلاق \"`\" في %s"
+
+#: subst.c:12636
+#, c-format
+msgid "no match: %s"
+msgstr "لا يوجد تطابق: %s"
+
+#: test.c:156
+msgid "argument expected"
+msgstr "يتوقع وجود معطى"
+
+#: test.c:164
+#, c-format
+msgid "%s: integer expected"
+msgstr "%s: يتوقع وجود عدد صحيح"
+
+#: test.c:292
+msgid "`)' expected"
+msgstr "يتوقع وجود `)'"
+
+#: test.c:294
+#, c-format
+msgid "`)' expected, found %s"
+msgstr "يتوقع وجود `)'، وُجد %s"
+
+#: test.c:488 test.c:831
+#, c-format
+msgid "%s: binary operator expected"
+msgstr "%s: يتوقع وجود عامل ثنائي"
+
+#: test.c:792 test.c:795
+#, c-format
+msgid "%s: unary operator expected"
+msgstr "%s: يتوقع وجود عامل أحادي"
+
+#: test.c:944
+#, c-format
+msgid "syntax error: `%s' unexpected"
+msgstr "خطأ في بناء الجملة: `%s' غير متوقع"
+
+#: trap.c:225
+msgid "invalid signal number"
+msgstr "رقم إشارة غير صالح"
+
+#: trap.c:358
+#, c-format
+msgid "trap handler: maximum trap handler level exceeded (%d)"
+msgstr "مُعالج المصيدة: تخطى الحد الأقصى لمستوى معالج المصيدة (%d)"
+
+#: trap.c:455
+#, c-format
+msgid "run_pending_traps: bad value in trap_list[%d]: %p"
+msgstr "run_pending_traps: قيمة رديئة في trap_list[%d]: %p"
+
+#: trap.c:459
+#, c-format
+msgid "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
+msgstr "run_pending_traps: معالج الإشارة هو SIG_DFL (مبدئي)، يُعاد إرسال %d (%s) لنفسي"
+
+#: trap.c:592
+#, c-format
+msgid "trap_handler: bad signal %d"
+msgstr "trap_handler: إشارة رديئة %d"
+
+#: unwind_prot.c:246 unwind_prot.c:292
+msgid "frame not found"
+msgstr "الإطار غير موجود"
+
+#: variables.c:441
+#, c-format
+msgid "error importing function definition for `%s'"
+msgstr "خطأ عند استيراد تعريف الدالة لـ `%s'"
+
+#: variables.c:864
+#, c-format
+msgid "shell level (%d) too high, resetting to 1"
+msgstr "مستوى الصدفة (%d) عالٍ جدًا، تجري إعادة الضبط إلى 1"
+
+#: variables.c:2191 variables.c:2220 variables.c:2278 variables.c:2297
+#: variables.c:2315 variables.c:2350 variables.c:2378 variables.c:2405
+#: variables.c:2431 variables.c:3274 variables.c:3282 variables.c:3797
+#: variables.c:3841
+#, c-format
+msgid "%s: maximum nameref depth (%d) exceeded"
+msgstr "%s: تخطى الحد الأقصى لعمق مرجع الاسم (%d)"
+
+#: variables.c:2641
+msgid "make_local_variable: no function context at current scope"
+msgstr "make_local_variable: لا يوجد سياق دالة في النطاق الحالي"
+
+#: variables.c:2660
+#, c-format
+msgid "%s: variable may not be assigned value"
+msgstr "%s: قد لا يُسند للمتغير قيمة"
+
+#: variables.c:2831 variables.c:2884
+#, c-format
+msgid "%s: cannot inherit value from incompatible type"
+msgstr "%s: يتعذر وراثة قيمة من نوع غير متوافق"
+
+#: variables.c:3437
+#, c-format
+msgid "%s: assigning integer to name reference"
+msgstr "%s: يسند عدد صحيح لمرجع اسم"
+
+#: variables.c:4387
+msgid "all_local_variables: no function context at current scope"
+msgstr "all_local_variables: لا يوجد سياق دالة في النطاق الحالي"
+
+#: variables.c:4816
+#, c-format
+msgid "%s has null exportstr"
+msgstr "%s يمتلك سلسلة تصدير فارغة"
+
+#: variables.c:4821 variables.c:4830
+#, c-format
+msgid "invalid character %d in exportstr for %s"
+msgstr "محرف غير صالح %d في سلسلة تصدير %s"
+
+#: variables.c:4836
+#, c-format
+msgid "no `=' in exportstr for %s"
+msgstr "لا يوجد `=' في سلسلة تصدير %s"
+
+#: variables.c:5354
+msgid "pop_var_context: head of shell_variables not a function context"
+msgstr "pop_var_context: رأس متغيرات الصدفة ليس سياق دالة"
+
+#: variables.c:5367
+msgid "pop_var_context: no global_variables context"
+msgstr "pop_var_context: لا يوجد سياق للمتغيرات العامة"
+
+#: variables.c:5457
+msgid "pop_scope: head of shell_variables not a temporary environment scope"
+msgstr "pop_scope: رأس متغيرات الصدفة ليس نطاق بيئة مؤقت"
+
+#: variables.c:6448
+#, c-format
+msgid "%s: %s: cannot open as FILE"
+msgstr "%s: %s: يتعذر الفتح كملف FILE"
+
+#: variables.c:6453
+#, c-format
+msgid "%s: %s: invalid value for trace file descriptor"
+msgstr "%s: %s: قيمة غير صالحة لواصف ملف التنقيح"
+
+#: variables.c:6497
+#, c-format
+msgid "%s: %s: compatibility value out of range"
+msgstr "%s: %s: قيمة التوافق خارج النطاق"
+
+#: version.c:50
+msgid "Copyright (C) 2025 Free Software Foundation, Inc."
+msgstr "حقوق النشر (C) 2025 لمؤسسة البرمجيات الحرة (Free Software Foundation, Inc.)"
+
+#: version.c:51
+msgid "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
+msgstr "الرخصة GPLv3+: جنو جي بي إل الإصدار 3 أو أحدث <http://gnu.org/licenses/gpl.html>\n"
+
+#: version.c:90
+#, c-format
+msgid "GNU bash, version %s (%s)\n"
+msgstr "جنو باش، الإصدار %s (%s)\n"
+
+#: version.c:95
+msgid "This is free software; you are free to change and redistribute it."
+msgstr "هذا برنامج حر؛ تملك الحرية في تغييره وإعادة توزيعه."
+
+#: version.c:96
+msgid "There is NO WARRANTY, to the extent permitted by law."
+msgstr "لا يوجد أي ضمان، إلى الحد الذي يسمح به القانون."
+
+#: xmalloc.c:84
+#, c-format
+msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)"
+msgstr "%s: يتعذر تخصيص %lu بايت (%lu بايت مخصصة)"
+
+#: xmalloc.c:86
+#, c-format
+msgid "%s: cannot allocate %lu bytes"
+msgstr "%s: يتعذر تخصيص %lu بايت"
+
+#: xmalloc.c:164
+#, c-format
+msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)"
+msgstr "%s: %s:%d: يتعذر تخصيص %lu بايت (%lu بايت مخصصة)"
+
+#: xmalloc.c:166
+#, c-format
+msgid "%s: %s:%d: cannot allocate %lu bytes"
+msgstr "%s: %s:%d: يتعذر تخصيص %lu بايت"
+
+#: builtins.c:45
+msgid "alias [-p] [name[=value] ... ]"
+msgstr "alias [-p] [الاسم[=القيمة] ... ]"
+
+#: builtins.c:49
+msgid "unalias [-a] name [name ...]"
+msgstr "unalias [-a] اسم [اسم ...]"
+
+#: builtins.c:53
+msgid "bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:shell-command] [keyseq:readline-function or readline-command]"
+msgstr "bind [-lpsvPSVX] [-m خريطة_مفاتيح] [-f اسم_الملف] [-q اسم] [-u اسم] [-r تسلسل_مفاتيح] [-x تسلسل_مفاتيح:أمر_القشرة] [تسلسل_مفاتيح:دالة_ريدلاين أو أمر_ريدلاين]"
+
+#: builtins.c:56
+msgid "break [n]"
+msgstr "break [n]"
+
+#: builtins.c:58
+msgid "continue [n]"
+msgstr "continue [n]"
+
+#: builtins.c:60
+msgid "builtin [shell-builtin [arg ...]]"
+msgstr "builtin [أمر_قشرة_داخلي [وسيط ...]]"
+
+#: builtins.c:63
+msgid "caller [expr]"
+msgstr "المستدعَي [expr]"
+
+#: builtins.c:66
+msgid "cd [-L|[-P [-e]]] [-@] [dir]"
+msgstr "cd [-L|[-P [-e]]] [-@] [دليل]"
+
+#: builtins.c:68
+msgid "pwd [-LP]"
+msgstr "pwd [-LP]"
+
+#: builtins.c:76
+msgid "command [-pVv] command [arg ...]"
+msgstr "command [-pVv] أمر [وسيط ...]"
+
+#: builtins.c:78
+msgid "declare [-aAfFgiIlnrtux] [name[=value] ...] or declare -p [-aAfFilnrtux] [name ...]"
+msgstr "declare [-aAfFgiIlnrtux] [الاسم[=القيمة] ...] أو declare -p [-aAfFilnrtux] [اسم ...]"
+
+#: builtins.c:80
+msgid "typeset [-aAfFgiIlnrtux] name[=value] ... or typeset -p [-aAfFilnrtux] [name ...]"
+msgstr "typeset [-aAfFgiIlnrtux] اسم[=قيمة] ... أو typeset -p [-aAfFilnrtux] [اسم ...]"
+
+#: builtins.c:82
+msgid "local [option] name[=value] ..."
+msgstr "local [خيار] اسم[=قيمة] ..."
+
+#: builtins.c:85
+msgid "echo [-neE] [arg ...]"
+msgstr "echo [-neE] [وسيط ...]"
+
+#: builtins.c:89
+msgid "echo [-n] [arg ...]"
+msgstr "echo [-n] [وسيط ...]"
+
+#: builtins.c:92
+msgid "enable [-a] [-dnps] [-f filename] [name ...]"
+msgstr "enable [-a] [-dnps] [-f اسم_الملف] [اسم ...]"
+
+#: builtins.c:94
+msgid "eval [arg ...]"
+msgstr "eval [وسيط ...]"
+
+#: builtins.c:96
+msgid "getopts optstring name [arg ...]"
+msgstr "getopts سلسلة_خيارات اسم [وسيط ...]"
+
+#: builtins.c:98
+msgid "exec [-cl] [-a name] [command [argument ...]] [redirection ...]"
+msgstr "exec [-cl] [-a اسم] [أمر [وسيط ...]] [إعادة_توجيه ...]"
+
+#: builtins.c:100
+msgid "exit [n]"
+msgstr "exit [n]"
+
+#: builtins.c:102
+msgid "logout [n]"
+msgstr "logout [n]"
+
+#: builtins.c:105
+msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]"
+msgstr "fc [-e اسم_المحرر] [-lnr] [الأول] [الأخير] أو fc -s [نمط=استبدال] [أمر]"
+
+#: builtins.c:109
+msgid "fg [job_spec]"
+msgstr "fg [مواصفة_المهمة]"
+
+#: builtins.c:113
+msgid "bg [job_spec ...]"
+msgstr "bg [مواصفة_المهمة ...]"
+
+#: builtins.c:116
+msgid "hash [-lr] [-p pathname] [-dt] [name ...]"
+msgstr "hash [-lr] [-p مسار] [-dt] [اسم ...]"
+
+#: builtins.c:119
+msgid "help [-dms] [pattern ...]"
+msgstr "help [-dms] [نمط ...]"
+
+#: builtins.c:123
+msgid "history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]"
+msgstr "history [-c] [-d إزاحة] [n] أو history -anrw [اسم_الملف] أو history -ps وسيط [وسيط...]"
+
+#: builtins.c:127
+msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]"
+msgstr "jobs [-lnprs] [مواصفة_مهمة ...] أو jobs -x أمر [وسطاء]"
+
+#: builtins.c:131
+msgid "disown [-h] [-ar] [jobspec ... | pid ...]"
+msgstr "disown [-h] [-ar] [مواصفة_مهمة ... | معرف_عملية ...]"
+
+#: builtins.c:134
+msgid "kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]"
+msgstr "kill [-s مواصفة_إشارة | -n رقم_إشارة | -مواصفة_إشارة] معرف_عملية | مواصفة_مهمة ... أو kill -l [مواصفة_إشارة]"
+
+#: builtins.c:136
+msgid "let arg [arg ...]"
+msgstr "let وسيط [وسيط ...]"
+
+#: builtins.c:138
+msgid "read [-Eers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]"
+msgstr "read [-Eers] [-a مصفوفة] [-d فاصل] [-i نص] [-n عدد_حروف] [-N عدد_حروف] [-p تنبيه] [-t مهلة] [-u واصف_ملف] [اسم ...]"
+
+#: builtins.c:140
+msgid "return [n]"
+msgstr "return [n]"
+
+#: builtins.c:142
+msgid "set [-abefhkmnptuvxBCEHPT] [-o option-name] [--] [-] [arg ...]"
+msgstr "set [-abefhkmnptuvxBCEHPT] [-o اسم_الخيار] [--] [-] [وسيط ...]"
+
+#: builtins.c:144
+msgid "unset [-f] [-v] [-n] [name ...]"
+msgstr "unset [-f] [-v] [-n] [اسم ...]"
+
+#: builtins.c:146
+msgid "export [-fn] [name[=value] ...] or export -p [-f]"
+msgstr "export [-fn] [الاسم[=القيمة] ...] أو export -p [-f]"
+
+#: builtins.c:148
+msgid "readonly [-aAf] [name[=value] ...] or readonly -p"
+msgstr "readonly [-aAf] [الاسم[=القيمة] ...] أو readonly -p"
+
+#: builtins.c:150
+msgid "shift [n]"
+msgstr "shift [n]"
+
+#: builtins.c:152
+msgid "source [-p path] filename [arguments]"
+msgstr "source [-p مسار] اسم_الملف [وسطاء]"
+
+#: builtins.c:154
+msgid ". [-p path] filename [arguments]"
+msgstr ". [-p مسار] اسم_الملف [وسطاء]"
+
+#: builtins.c:157
+msgid "suspend [-f]"
+msgstr "suspend [-f]"
+
+#: builtins.c:160
+msgid "test [expr]"
+msgstr "test [تعبير]"
+
+#: builtins.c:162
+msgid "[ arg... ]"
+msgstr "[ معطى... ]"
+
+#: builtins.c:166
+msgid "trap [-Plp] [[action] signal_spec ...]"
+msgstr "trap [-Plp] [[إجراء] مواصفات_الإشارة ...]"
+
+#: builtins.c:168
+msgid "type [-afptP] name [name ...]"
+msgstr "type [-afptP] اسم [اسم ...]"
+
+#: builtins.c:171
+msgid "ulimit [-SHabcdefiklmnpqrstuvxPRT] [limit]"
+msgstr "ulimit [-SHabcdefiklmnpqrstuvxPRT] [حد]"
+
+#: builtins.c:174
+msgid "umask [-p] [-S] [mode]"
+msgstr "umask [-p] [-S] [الوضع]"
+
+#: builtins.c:177
+msgid "wait [-fn] [-p var] [id ...]"
+msgstr "wait [-fn] [-p متغير] [معرف ...]"
+
+#: builtins.c:181
+msgid "wait [pid ...]"
+msgstr "wait [معرف_العملية ...]"
+
+#: builtins.c:184
+msgid "! PIPELINE"
+msgstr "! أنبوب"
+
+#: builtins.c:186
+msgid "for NAME [in WORDS ... ] ; do COMMANDS; done"
+msgstr "for اسم [in كلمات ... ] ; do أوامر; done"
+
+#: builtins.c:188
+msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done"
+msgstr "for (( تعبير1; تعبير2; تعبير3 )); do أوامر; done"
+
+#: builtins.c:190
+msgid "select NAME [in WORDS ... ;] do COMMANDS; done"
+msgstr "select اسم [in كلمات ... ;] do أوامر; done"
+
+#: builtins.c:192
+msgid "time [-p] pipeline"
+msgstr "time [-p] أنبوب"
+
+#: builtins.c:194
+msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac"
+msgstr "case كلمة in [نمط [| نمط]...) أوامر ;;]... esac"
+
+#: builtins.c:196
+msgid "if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi"
+msgstr "if أوامر; then أوامر; [ elif أوامر; then أوامر; ]... [ else أوامر; ] fi"
+
+#: builtins.c:198
+msgid "while COMMANDS; do COMMANDS-2; done"
+msgstr "while أوامر; do أوامر-2; done"
+
+#: builtins.c:200
+msgid "until COMMANDS; do COMMANDS-2; done"
+msgstr "until أوامر; do أوامر-2; done"
+
+#: builtins.c:202
+msgid "coproc [NAME] command [redirections]"
+msgstr "coproc [اسم] أمر [تحويلات]"
+
+#: builtins.c:204
+msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
+msgstr "function اسم { أوامر ; } أو اسم () { أوامر ; }"
+
+#: builtins.c:206
+msgid "{ COMMANDS ; }"
+msgstr "{ أوامر ; }"
+
+#: builtins.c:208
+msgid "job_spec [&]"
+msgstr "job_spec [&]"
+
+#: builtins.c:210
+msgid "(( expression ))"
+msgstr "(( تعبير ))"
+
+#: builtins.c:212
+msgid "[[ expression ]]"
+msgstr "[[ تعبير ]]"
+
+#: builtins.c:214
+msgid "variables - Names and meanings of some shell variables"
+msgstr "المتغيرات - أسماء ومعاني بعض متغيرات الغلاف"
+
+#: builtins.c:217
+msgid "pushd [-n] [+N | -N | dir]"
+msgstr "pushd [-n] [+N | -N | دليل]"
+
+#: builtins.c:221
+msgid "popd [-n] [+N | -N]"
+msgstr "popd [-n] [+N | -N]"
+
+#: builtins.c:225
+msgid "dirs [-clpv] [+N] [-N]"
+msgstr "dirs [-clpv] [+N] [-N]"
+
+#: builtins.c:228
+msgid "shopt [-pqsu] [-o] [optname ...]"
+msgstr "shopt [-pqsu] [-o] [اسم_الخيار ...]"
+
+#: builtins.c:230
+msgid "printf [-v var] format [arguments]"
+msgstr "printf [-v متغير] تنسيق [معطيات]"
+
+#: builtins.c:233
+msgid "complete [-abcdefgjksuv] [-pr] [-DEI] [-o option] [-A action] [-G globpat] [-W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...]"
+msgstr "complete [-abcdefgjksuv] [-pr] [-DEI] [-o خيار] [-A إجراء] [-G نمط_كروي] [-W قائمة_كلمات] [-F دالة] [-C أمر] [-X نمط_ترشيح] [-P بادئة] [-S لاحقة] [اسم ...]"
+
+#: builtins.c:237
+msgid "compgen [-V varname] [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
+msgstr "compgen [-V اسم_المتغير] [-abcdefgjksuv] [-o خيار] [-A إجراء] [-G نمط_كروي] [-W قائمة_كلمات] [-F دالة] [-C أمر] [-X نمط_ترشيح] [-P بادئة] [-S لاحقة] [كلمة]"
+
+#: builtins.c:241
+msgid "compopt [-o|+o option] [-DEI] [name ...]"
+msgstr "compopt [-o|+o خيار] [-DEI] [اسم ...]"
+
+#: builtins.c:244
+msgid "mapfile [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
+msgstr "mapfile [-d محدد] [-n عد] [-O أصل] [-s عد] [-t] [-u واصف_ملف] [-C استدعاء_راجع] [-c كم] [مصفوفة]"
+
+#: builtins.c:246
+msgid "readarray [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
+msgstr "readarray [-d محدد] [-n عد] [-O أصل] [-s عد] [-t] [-u واصف_ملف] [-C استدعاء_راجع] [-c كم] [مصفوفة]"
+
+#: builtins.c:258
+msgid ""
+"Define or display aliases.\n"
+" \n"
+" Without arguments, `alias' prints the list of aliases in the reusable\n"
+" form `alias NAME=VALUE' on standard output.\n"
+" \n"
+" Otherwise, an alias is defined for each NAME whose VALUE is given.\n"
+" A trailing space in VALUE causes the next word to be checked for\n"
+" alias substitution when the alias is expanded.\n"
+" \n"
+" Options:\n"
+" -p\tprint all defined aliases in a reusable format\n"
+" \n"
+" Exit Status:\n"
+" alias returns true unless a NAME is supplied for which no alias has been\n"
+" defined."
+msgstr ""
+"تعريف أو عرض الأسماء المستعارة.\n"
+" \n"
+" بدون معطيات، يطبع `alias' قائمة الأسماء المستعارة بشكل قابل لإعادة الاستخدام\n"
+" بصيغة `alias NAME=VALUE' على المخرج القياسي.\n"
+" \n"
+" خلاف ذلك، يُعرّف اسم مستعار لكل اسم (NAME) تُعطى قيمته (VALUE).\n"
+" المسافة اللاحقة في القيمة (VALUE) تؤدي لفحص الكلمة التالية بحثاً عن\n"
+" استبدال الاسم المستعار عند توسيعه.\n"
+" \n"
+" الخيارات:\n"
+" -p\tطباعة كافة الأسماء المستعارة المعرفة بتنسيق قابل لإعادة الاستخدام\n"
+" \n"
+" حالة الخروج:\n"
+" يرجع alias القيمة صحيح ما لم يُزود باسم لم يسبق تعريفه."
+
+#: builtins.c:280
+msgid ""
+"Remove each NAME from the list of defined aliases.\n"
+" \n"
+" Options:\n"
+" -a\tremove all alias definitions\n"
+" \n"
+" Return success unless a NAME is not an existing alias."
+msgstr ""
+"إزالة كل اسم (NAME) من قائمة الأسماء المستعارة المعرفة.\n"
+" \n"
+" الخيارات:\n"
+" -a\tإزالة كافة تعريفات الأسماء المستعارة\n"
+" \n"
+" يرجع النجاح ما لم يكن الاسم (NAME) ليس اسماً مستعاراً موجوداً."
+
+#: builtins.c:293
+msgid ""
+"Set Readline key bindings and variables.\n"
+" \n"
+" Bind a key sequence to a Readline function or a macro, or set a\n"
+" Readline variable. The non-option argument syntax is equivalent to\n"
+" that found in ~/.inputrc, but must be passed as a single argument:\n"
+" e.g., bind '\"\\C-x\\C-r\": re-read-init-file'.\n"
+" \n"
+" Options:\n"
+" -m keymap Use KEYMAP as the keymap for the duration of this\n"
+" command. Acceptable keymap names are emacs,\n"
+" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,\n"
+" vi-command, and vi-insert.\n"
+" -l List names of functions.\n"
+" -P List function names and bindings.\n"
+" -p List functions and bindings in a form that can be\n"
+" reused as input.\n"
+" -S List key sequences that invoke macros and their values\n"
+" -s List key sequences that invoke macros and their values\n"
+" in a form that can be reused as input.\n"
+" -V List variable names and values\n"
+" -v List variable names and values in a form that can\n"
+" be reused as input.\n"
+" -q function-name Query about which keys invoke the named function.\n"
+" -u function-name Unbind all keys which are bound to the named function.\n"
+" -r keyseq Remove the binding for KEYSEQ.\n"
+" -f filename Read key bindings from FILENAME.\n"
+" -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
+" \t\t\t\tKEYSEQ is entered.\n"
+" -X List key sequences bound with -x and associated commands\n"
+" in a form that can be reused as input.\n"
+" \n"
+" If arguments remain after option processing, the -p and -P options treat\n"
+" them as readline command names and restrict output to those names.\n"
+" \n"
+" Exit Status:\n"
+" bind returns 0 unless an unrecognized option is given or an error occurs."
+msgstr ""
+"ضبط ارتباطات مفاتيح Readline ومتغيراتها.\n"
+" \n"
+" ربط تسلسل مفاتيح بدالة Readline أو ماكرو، أو ضبط متغير Readline.\n"
+" صيغة المعطيات غير الخيارية مطابقة لتلك الموجودة في ~/.inputrc،\n"
+" لكن يجب تمريرها كمعطى واحد:\n"
+" مثلاً، bind '\"\\C-x\\C-r\": re-read-init-file'.\n"
+" \n"
+" الخيارات:\n"
+" -m خارطة_المفاتيح استخدام KEYMAP كخارطة مفاتيح طوال مدة هذا الأمر.\n"
+" الأسماء المقبولة هي emacs و emacs-standard و emacs-meta\n"
+" و emacs-ctlx و vi و vi-move و vi-command و vi-insert.\n"
+" -l سرد أسماء الدوال.\n"
+" -P سرد أسماء الدوال وارتباطاتها.\n"
+" -p سرد الدوال والارتباطات بصيغة يمكن إعادة استخدامها كمدخل.\n"
+" -S سرد تسلسلات المفاتيح التي تستدعي الماكرو وقيمها.\n"
+" -s سرد تسلسلات المفاتيح التي تستدعي الماكرو وقيمها بصيغة\n"
+" يمكن إعادة استخدامها كمدخل.\n"
+" -V سرد أسماء المتغيرات وقيمها.\n"
+" -v سرد أسماء المتغيرات وقيمها بصيغة يمكن إعادة استخدامها.\n"
+" -q اسم_الدالة استعلام عن المفاتيح التي تستدعي الدالة المذكورة.\n"
+" -u اسم_الدالة فك ارتباط كافة المفاتيح المرتبطة بالدالة المذكورة.\n"
+" -r تسلسل_مفاتيح إزالة الارتباط لتسلسل المفاتيح (KEYSEQ).\n"
+" -f اسم_الملف قراءة ارتباطات المفاتيح من FILENAME.\n"
+" -x تسلسل:أمر_غلاف تنفيذ أمر الغلاف عند إدخال تسلسل المفاتيح.\n"
+" -X سرد تسلسلات المفاتيح المرتبطة بـ -x والأوامر المصاحبة\n"
+" بصيغة يمكن إعادة استخدامها كمدخل.\n"
+" \n"
+" إذا بقيت معطيات بعد معالجة الخيارات، يعامل خيارا -p و -P هذه المعطيات\n"
+" كأسماء أوامر readline ويقصران المخرج عليها.\n"
+" \n"
+" حالة الخروج:\n"
+" يرجع bind القيمة 0 ما لم يُعطَ خيار غير معروف أو يقع خطأ."
+
+#: builtins.c:335
+msgid ""
+"Exit for, while, or until loops.\n"
+" \n"
+" Exit a FOR, WHILE or UNTIL loop. If N is specified, break N enclosing\n"
+" loops.\n"
+" \n"
+" Exit Status:\n"
+" The exit status is 0 unless N is not greater than or equal to 1."
+msgstr ""
+"الخروج من حلقات for أو while أو until.\n"
+" \n"
+" الخروج من حلقة FOR أو WHILE أو UNTIL. إذا حُددت N، يتم كسر N من\n"
+" الحلقات المحيطة.\n"
+" \n"
+" حالة الخروج:\n"
+" حالة الخروج هي 0 ما لم تكن N ليست أكبر من أو تساوي 1."
+
+#: builtins.c:347
+msgid ""
+"Resume for, while, or until loops.\n"
+" \n"
+" Resumes the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n"
+" If N is specified, resumes the Nth enclosing loop.\n"
+" \n"
+" Exit Status:\n"
+" The exit status is 0 unless N is not greater than or equal to 1."
+msgstr ""
+"استئناف حلقات for أو while أو until.\n"
+" \n"
+" يستأنف التكرار التالي للحلقة المحيطة FOR أو WHILE أو UNTIL.\n"
+" إذا حُددت N، يستأنف الحلقة المحيطة رقم N.\n"
+" \n"
+" حالة الخروج:\n"
+" حالة الخروج هي 0 ما لم تكن N ليست أكبر من أو تساوي 1."
+
+#: builtins.c:359
+msgid ""
+"Execute shell builtins.\n"
+" \n"
+" Execute SHELL-BUILTIN with arguments ARGs without performing command\n"
+" lookup. This is useful when you wish to reimplement a shell builtin\n"
+" as a shell function, but need to execute the builtin within the function.\n"
+" \n"
+" Exit Status:\n"
+" Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n"
+" not a shell builtin."
+msgstr ""
+"تنفيذ أوامر الغلاف المضمنة.\n"
+" \n"
+" تنفيذ SHELL-BUILTIN مع المعطيات ARGs دون إجراء بحث عن الأمر.\n"
+" هذا مفيد عند الرغبة في إعادة تنفيذ أمر مضمن كدالة غلاف،\n"
+" لكن مع الحاجة لتنفيذ الأمر المضمن الأصلي داخل الدالة.\n"
+" \n"
+" حالة الخروج:\n"
+" يرجع حالة خروج SHELL-BUILTIN، أو خطأ إذا لم يكن SHELL-BUILTIN\n"
+" أمراً مضمناً."
+
+#: builtins.c:374
+msgid ""
+"Return the context of the current subroutine call.\n"
+" \n"
+" Without EXPR, returns \"$line $filename\". With EXPR, returns\n"
+" \"$line $subroutine $filename\"; this extra information can be used to\n"
+" provide a stack trace.\n"
+" \n"
+" The value of EXPR indicates how many call frames to go back before the\n"
+" current one; the top frame is frame 0.\n"
+" \n"
+" Exit Status:\n"
+" Returns 0 unless the shell is not executing a shell function or EXPR\n"
+" is invalid."
+msgstr ""
+"إرجاع سياق استدعاء الروتين الفرعي الحالي.\n"
+" \n"
+" بدون EXPR، يرجع \"$line $filename\". مع EXPR، يرجع\n"
+" \"$line $subroutine $filename\"؛ يمكن استخدام هذه المعلومات الإضافية\n"
+" لتوفير تتبع المكدس.\n"
+" \n"
+" تشير قيمة EXPR إلى عدد إطارات الاستدعاء المطلوب العودة إليها قبل الإطار\n"
+" الحالي؛ الإطار العلوي هو الإطار 0.\n"
+" \n"
+" حالة الخروج:\n"
+" يرجع 0 ما لم يكن الغلاف لا ينفذ دالة غلاف أو كان EXPR غير صالح."
+
+#: builtins.c:392
+msgid ""
+"Change the shell working directory.\n"
+" \n"
+" Change the current directory to DIR. The default DIR is the value of the\n"
+" HOME shell variable. If DIR is \"-\", it is converted to $OLDPWD.\n"
+" \n"
+" The variable CDPATH defines the search path for the directory containing\n"
+" DIR. Alternative directory names in CDPATH are separated by a colon (:).\n"
+" A null directory name is the same as the current directory. If DIR begins\n"
+" with a slash (/), then CDPATH is not used.\n"
+" \n"
+" If the directory is not found, and the shell option `cdable_vars' is set,\n"
+" the word is assumed to be a variable name. If that variable has a value,\n"
+" its value is used for DIR.\n"
+" \n"
+" Options:\n"
+" -L\tforce symbolic links to be followed: resolve symbolic\n"
+" \t\tlinks in DIR after processing instances of `..'\n"
+" -P\tuse the physical directory structure without following\n"
+" \t\tsymbolic links: resolve symbolic links in DIR before\n"
+" \t\tprocessing instances of `..'\n"
+" -e\tif the -P option is supplied, and the current working\n"
+" \t\tdirectory cannot be determined successfully, exit with\n"
+" \t\ta non-zero status\n"
+" -@\ton systems that support it, present a file with extended\n"
+" \t\tattributes as a directory containing the file attributes\n"
+" \n"
+" The default is to follow symbolic links, as if `-L' were specified.\n"
+" `..' is processed by removing the immediately previous pathname component\n"
+" back to a slash or the beginning of DIR.\n"
+" \n"
+" Exit Status:\n"
+" Returns 0 if the directory is changed, and if $PWD is set successfully when\n"
+" -P is used; non-zero otherwise."
+msgstr ""
+"تغيير دليل عمل الغلاف.\n"
+" \n"
+" تغيير الدليل الحالي إلى DIR. الدليل المبدئي DIR هو قيمة متغير الغلاف\n"
+" HOME. إذا كان DIR هو \"-\"، يتم تحويله إلى $OLDPWD.\n"
+" \n"
+" يحدد المتغير CDPATH مسار البحث عن الدليل الذي يحتوي على DIR.\n"
+" تُفصل أسماء الأدلة البديلة في CDPATH بنقطتين رأسيين (:).\n"
+" اسم الدليل الفارغ يعني الدليل الحالي. إذا بدأ DIR بشرطة مائلة (/)،\n"
+" فلا يتم استخدام CDPATH.\n"
+" \n"
+" إذا لم يُعثر على الدليل، وكان خيار الغلاف `cdable_vars' مضبوطاً،\n"
+" يُفترض أن الكلمة هي اسم متغير. إذا كان لهذا المتغير قيمة، تُستخدم قيمته كـ DIR.\n"
+" \n"
+" الخيارات:\n"
+" -L\tفرض تتبع الروابط الرمزية: حل الروابط الرمزية في DIR بعد معالجة `..'\n"
+" -P\tاستخدام هيكل الدليل الفعلي دون تتبع الروابط الرمزية: حل الروابط الرمزية\n"
+" \t\tفي DIR قبل معالجة `..'\n"
+" -e\tإذا وُجد الخيار -P، وتعذر تحديد دليل العمل الحالي بنجاح،\n"
+" \t\tيتم الخروج بحالة غير صفرية\n"
+" -@\tفي الأنظمة التي تدعم ذلك، عرض ملف ذي سمات ممتدة كدليل يحتوي\n"
+" \t\tعلى سمات الملف\n"
+" \n"
+" المبدئي هو تتبع الروابط الرمزية، كما لو حُدد `-L'.\n"
+" تتم معالجة `..' بإزالة مكون مسار الملف السابق مباشرة حتى الشرطة المائلة\n"
+" أو بداية DIR.\n"
+" \n"
+" حالة الخروج:\n"
+" يرجع 0 عند تغيير الدليل، وعند ضبط $PWD بنجاح عند استخدام -P؛ وغير ذلك يرجع قيمة غير صفرية."
+
+#: builtins.c:430
+msgid ""
+"Print the name of the current working directory.\n"
+" \n"
+" Options:\n"
+" -L\tprint the value of $PWD if it names the current working\n"
+" \t\tdirectory\n"
+" -P\tprint the physical directory, without any symbolic links\n"
+" \n"
+" By default, `pwd' behaves as if `-L' were specified.\n"
+" \n"
+" Exit Status:\n"
+" Returns 0 unless an invalid option is given or the current directory\n"
+" cannot be read."
+msgstr ""
+"طبع اسم دليل العمل الحالي.\n"
+" \n"
+" الخيارات:\n"
+" -L\tطبع قيمة $PWD إذا كانت تشير إلى دليل العمل الحالي\n"
+" -P\tطبع الدليل المادي، دون أي روابط رمزية\n"
+" \n"
+" بشكل مبدئي، يتصرف `pwd' كما لو حُدد الخيار `-L'.\n"
+" \n"
+" حالة الخروج:\n"
+" يرجع 0 ما لم يُعطَ خيار غير صالح أو تعذرت قراءة الدليل الحالي."
+
+#: builtins.c:447
+msgid ""
+"Null command.\n"
+" \n"
+" No effect; the command does nothing.\n"
+" \n"
+" Exit Status:\n"
+" Always succeeds."
+msgstr ""
+"أمر فارغ.\n"
+" \n"
+" لا تأثير؛ الأمر لا يفعل شيئاً.\n"
+" \n"
+" حالة الخروج:\n"
+" ينجح دائماً."
+
+#: builtins.c:458
+msgid ""
+"Return a successful result.\n"
+" \n"
+" Exit Status:\n"
+" Always succeeds."
+msgstr ""
+"إرجاع نتيجة ناجحة.\n"
+" \n"
+" حالة الخروج:\n"
+" ينجح دائماً."
+
+#: builtins.c:467
+msgid ""
+"Return an unsuccessful result.\n"
+" \n"
+" Exit Status:\n"
+" Always fails."
+msgstr ""
+"إرجاع نتيجة غير ناجحة.\n"
+" \n"
+" حالة الخروج:\n"
+" يفشل دائماً."
+
+#: builtins.c:476
+msgid ""
+"Execute a simple command or display information about commands.\n"
+" \n"
+" Runs COMMAND with ARGS suppressing shell function lookup, or display\n"
+" information about the specified COMMANDs. Can be used to invoke commands\n"
+" on disk when a function with the same name exists.\n"
+" \n"
+" Options:\n"
+" -p use a default value for PATH that is guaranteed to find all of\n"
+" the standard utilities\n"
+" -v print a single word indicating the command or filename that\n"
+" invokes COMMAND\n"
+" -V print a more verbose description of each COMMAND\n"
+" \n"
+" Exit Status:\n"
+" Returns exit status of COMMAND, or failure if COMMAND is not found."
+msgstr ""
+"تنفيذ أمر بسيط أو عرض معلومات عن الأوامر.\n"
+" \n"
+" يشغل COMMAND مع ARGS مع تعطيل البحث عن دوال الغلاف، أو يعرض معلومات\n"
+" عن الأوامر المحددة. يمكن استخدامه لاستدعاء الأوامر من القرص عند وجود دالة\n"
+" بنفس الاسم.\n"
+" \n"
+" الخيارات:\n"
+" -p استخدام قيمة مبدئية لـ PATH تضمن العثور على كافة الأدوات القياسية\n"
+" -v طبع كلمة واحدة تشير إلى الأمر أو اسم الملف الذي يستدعي COMMAND\n"
+" -V طبع وصف أكثر تفصيلاً لكل COMMAND\n"
+" \n"
+" حالة الخروج:\n"
+" يرجع حالة خروج COMMAND، أو الفشل إذا لم يُعثر عليه."
+
+#: builtins.c:496
+msgid ""
+"Set variable values and attributes.\n"
+" \n"
+" Declare variables and give them attributes. If no NAMEs are given,\n"
+" display the attributes and values of all variables.\n"
+" \n"
+" Options:\n"
+" -f\trestrict action or display to function names and definitions\n"
+" -F\trestrict display to function names only (plus line number and\n"
+" \t\tsource file when debugging)\n"
+" -g\tcreate global variables when used in a shell function; otherwise\n"
+" \t\tignored\n"
+" -I\tif creating a local variable, inherit the attributes and value\n"
+" \t\tof a variable with the same name at a previous scope\n"
+" -p\tdisplay the attributes and value of each NAME\n"
+" \n"
+" Options which set attributes:\n"
+" -a\tto make NAMEs indexed arrays (if supported)\n"
+" -A\tto make NAMEs associative arrays (if supported)\n"
+" -i\tto make NAMEs have the `integer' attribute\n"
+" -l\tto convert the value of each NAME to lower case on assignment\n"
+" -n\tmake NAME a reference to the variable named by its value\n"
+" -r\tto make NAMEs readonly\n"
+" -t\tto make NAMEs have the `trace' attribute\n"
+" -u\tto convert the value of each NAME to upper case on assignment\n"
+" -x\tto make NAMEs export\n"
+" \n"
+" Using `+' instead of `-' turns off the given attribute, except for a,\n"
+" A, and r.\n"
+" \n"
+" Variables with the integer attribute have arithmetic evaluation (see\n"
+" the `let' command) performed when the variable is assigned a value.\n"
+" \n"
+" When used in a function, `declare' makes NAMEs local, as with the `local'\n"
+" command. The `-g' option suppresses this behavior.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option is supplied or a variable\n"
+" assignment error occurs."
+msgstr ""
+"ضبط قيم المتغيرات وسماتها.\n"
+" \n"
+" التصريح عن المتغيرات ومنحها سمات. إذا لم تُعطَ أسماء (NAMEs)،\n"
+" يتم عرض سمات وقيم كافة المتغيرات.\n"
+" \n"
+" الخيارات:\n"
+" -f\tقصر الإجراء أو العرض على أسماء الدوال وتعاريفها\n"
+" -F\tقصر العرض على أسماء الدوال فقط (بالإضافة لرقم السطر وملف المصدر عند التنقيح)\n"
+" -g\tإنشاء متغيرات عامة عند استخدامها في دالة غلاف؛ وإلا يتم تجاهلها\n"
+" -I\tعند إنشاء متغير محلي، وراثة السمات والقيمة من متغير بنفس الاسم في نطاق سابق\n"
+" -p\tعرض سمات وقيمة كل اسم (NAME)\n"
+" \n"
+" الخيارات التي تضبط السمات:\n"
+" -a\tلجعل الأسماء مصفوفات مفهرسة (إذا كانت مدعومة)\n"
+" -A\tلجعل الأسماء مصفوفات ترابطية (إذا كانت مدعومة)\n"
+" -i\tلجعل الأسماء تمتلك سمة 'integer' (عدد صحيح)\n"
+" -l\tلتحويل قيمة كل اسم إلى أحرف صغيرة عند التعيين\n"
+" -n\tجعل الاسم مرجعاً للمتغير المسمى بقيمته\n"
+" -r\tلجعل الأسماء للقراءة فقط\n"
+" -t\tلجعل الأسماء تمتلك سمة 'trace' (تتبع)\n"
+" -u\tلتحويل قيمة كل اسم إلى أحرف كبيرة عند التعيين\n"
+" -x\tلجعل الأسماء للتصدير\n"
+" \n"
+" استخدام `+' بدلاً من `-' يوقف عمل السمة المعطاة، باستثناء a و A و r.\n"
+" \n"
+" المتغيرات ذات سمة العدد الصحيح يُجرى لها تقييم حسابي (انظر أمر `let')\n"
+" عند تعيين قيمة للمتغير.\n"
+" \n"
+" عند استخدام `declare' داخل دالة، فإنه يجعل الأسماء محلية، كما يفعل أمر `local'.\n"
+" الخيار `-g' يعطل هذا السلوك.\n"
+" \n"
+" حالة الخروج:\n"
+" يرجع النجاح ما لم يُزود بخيار غير صالح أو يقع خطأ في تعيين المتغير."
+
+#: builtins.c:539
+msgid ""
+"Set variable values and attributes.\n"
+" \n"
+" A synonym for `declare'. See `help declare'."
+msgstr ""
+"ضبط قيم المتغيرات وسماتها.\n"
+" \n"
+" مرادف لـ `declare'. انظر `help declare'."
+
+#: builtins.c:547
+msgid ""
+"Define local variables.\n"
+" \n"
+" Create a local variable called NAME, and give it VALUE. OPTION can\n"
+" be any option accepted by `declare'.\n"
+" \n"
+" If any NAME is \"-\", local saves the set of shell options and restores\n"
+" them when the function returns.\n"
+" \n"
+" Local variables can only be used within a function; they are visible\n"
+" only to the function where they are defined and its children.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option is supplied, a variable\n"
+" assignment error occurs, or the shell is not executing a function."
+msgstr ""
+"تعريف متغيرات محلية.\n"
+" \n"
+" أنشئ متغيراً محلياً يسمى NAME، وأعطه القيمة VALUE. يمكن لـ OPTION أن\n"
+" يكون أي خيار يقبله `declare'.\n"
+" \n"
+" إذا كان أي NAME هو \"-\"، يحفظ local مجموعة خيارات الصدفة ويستعيدها\n"
+" عندما تعود الدالة.\n"
+" \n"
+" لا يمكن استخدام المتغيرات المحلية إلا داخل دالة؛ وتكون مرئية\n"
+" فقط للدالة التي عُرفت فيها ولأبنائها.\n"
+" \n"
+" حالة الخروج:\n"
+" يعيد النجاح ما لم يُزود بخيار غير صالح، أو يحدث خطأ في تعيين متغير،\n"
+" أو لم تكن الصدفة تنفذ دالة."
+
+#: builtins.c:567
+msgid ""
+"Write arguments to the standard output.\n"
+" \n"
+" Display the ARGs, separated by a single space character and followed by a\n"
+" newline, on the standard output.\n"
+" \n"
+" Options:\n"
+" -n\tdo not append a newline\n"
+" -e\tenable interpretation of the following backslash escapes\n"
+" -E\texplicitly suppress interpretation of backslash escapes\n"
+" \n"
+" `echo' interprets the following backslash-escaped characters:\n"
+" \\a\talert (bell)\n"
+" \\b\tbackspace\n"
+" \\c\tsuppress further output\n"
+" \\e\tescape character\n"
+" \\E\tescape character\n"
+" \\f\tform feed\n"
+" \\n\tnew line\n"
+" \\r\tcarriage return\n"
+" \\t\thorizontal tab\n"
+" \\v\tvertical tab\n"
+" \\\\\tbackslash\n"
+" \\0nnn\tthe character whose ASCII code is NNN (octal). NNN can be\n"
+" \t\t0 to 3 octal digits\n"
+" \\xHH\tthe eight-bit character whose value is HH (hexadecimal). HH\n"
+" \t\tcan be one or two hex digits\n"
+" \\uHHHH\tthe Unicode character whose value is the hexadecimal value HHHH.\n"
+" \t\tHHHH can be one to four hex digits.\n"
+" \\UHHHHHHHH the Unicode character whose value is the hexadecimal value\n"
+" \t\tHHHHHHHH. HHHHHHHH can be one to eight hex digits.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless a write error occurs."
+msgstr ""
+"كتابة المحاجج إلى المخرج القياسي.\n"
+" \n"
+" اعرض ARGs، مفصولة بمسافة واحدة ومتبوعة بسطر جديد، على المخرج القياسي.\n"
+" \n"
+" الخيارات:\n"
+" -n\tلا تضف سطراً جديداً\n"
+" -e\tفعل تفسير هروب المائل العكسي التالي\n"
+" -E\tاقمع تفسير هروب المائل العكسي صراحة\n"
+" \n"
+" يفسر `echo' محارف هروب المائل العكسي التالية:\n"
+" \\a\tتنبيه (جرس)\n"
+" \\b\tمسافة للخلف\n"
+" \\c\tاقمع المزيد من المخرجات\n"
+" \\e\tمحرف الهروب\n"
+" \\E\tمحرف الهروب\n"
+" \\f\tتغذية الصفحة\n"
+" \\n\tسطر جديد\n"
+" \\r\tعودة بكرسي الشحن\n"
+" \\t\tألسنة أفقية\n"
+" \\v\tألسنة رأسية\n"
+" \\\\\tمائل عكسي\n"
+" \\0nnn\tالمحرف الذي رمز ASCII الخاص به هو NNN (ثماني). يمكن أن يكون NNN\n"
+" \t\tمن 0 إلى 3 أرقام ثمانية\n"
+" \\xHH\tالمحرف المكون من ثماني بتات وقيمته HH (ست عشري). يمكن لـ HH\n"
+" \t\tأن يكون رقماً أو رقمين ست عشريين\n"
+" \\uHHHH\tمحرف يونيكود وقيمته هي القيمة الست عشرية HHHH.\n"
+" \t\tيمكن لـ HHHH أن يكون من رقم إلى 4 أرقام ست عشرية.\n"
+" \\UHHHHHHHH محرف يونيكود وقيمته هي القيمة الست عشرية\n"
+" \t\tHHHHHHHH. يمكن لـ HHHHHHHH أن يكون من رقم إلى 8 أرقام ست عشرية.\n"
+" \n"
+" حالة الخروج:\n"
+" يعيد النجاح ما لم يحدث خطأ كتابة."
+
+#: builtins.c:607
+msgid ""
+"Write arguments to the standard output.\n"
+" \n"
+" Display the ARGs on the standard output followed by a newline.\n"
+" \n"
+" Options:\n"
+" -n\tdo not append a newline\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless a write error occurs."
+msgstr ""
+"كتابة المحاجج إلى المخرج القياسي.\n"
+" \n"
+" اعرض ARGs على المخرج القياسي متبوعة بسطر جديد.\n"
+" \n"
+" الخيارات:\n"
+" -n\tلا تضف سطراً جديداً\n"
+" \n"
+" حالة الخروج:\n"
+" يعيد النجاح ما لم يحدث خطأ كتابة."
+
+#: builtins.c:622
+msgid ""
+"Enable and disable shell builtins.\n"
+" \n"
+" Enables and disables builtin shell commands. Disabling allows you to\n"
+" execute a disk command which has the same name as a shell builtin\n"
+" without using a full pathname.\n"
+" \n"
+" Options:\n"
+" -a\tprint a list of builtins showing whether or not each is enabled\n"
+" -n\tdisable each NAME or display a list of disabled builtins\n"
+" -p\tprint the list of builtins in a reusable format\n"
+" -s\tprint only the names of Posix `special' builtins\n"
+" \n"
+" Options controlling dynamic loading:\n"
+" -f\tLoad builtin NAME from shared object FILENAME\n"
+" -d\tRemove a builtin loaded with -f\n"
+" \n"
+" Without options, each NAME is enabled.\n"
+" \n"
+" On systems with dynamic loading, the shell variable BASH_LOADABLES_PATH\n"
+" defines a search path for the directory containing FILENAMEs that do\n"
+" not contain a slash. It may include \".\" to force a search of the current\n"
+" directory.\n"
+" \n"
+" To use the `test' found in $PATH instead of the shell builtin\n"
+" version, type `enable -n test'.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless NAME is not a shell builtin or an error occurs."
+msgstr ""
+"تفعيل وتعطيل مدمجات الصدفة.\n"
+" \n"
+" يفعل ويعطل أوامر الصدفة المدمجة. يسمح لك التعطيل\n"
+" بتنفيذ أمر قرص له نفس اسم مدمج صدفة\n"
+" دون استخدام مسار كامل.\n"
+" \n"
+" الخيارات:\n"
+" -a\tاطبع قائمة بالمدمجات توضح ما إذا كان كل منها مفعلاً أم لا\n"
+" -n\tعطل كل NAME أو اعرض قائمة بالمدمجات المعطلة\n"
+" -p\tاطبع قائمة المدمجات بتنسيق قابل لإعادة الاستخدام\n"
+" -s\tاطبع فقط أسماء مدمجات Posix 'الخاصة'\n"
+" \n"
+" خيارات التحكم في التحميل الديناميكي:\n"
+" -f\tحمل المدمج NAME من الكائن المشترك FILENAME\n"
+" -d\tأزل مدمجاً حُمّل بـ -f\n"
+" \n"
+" بدون خيارات، يكون كل NAME مفعلاً.\n"
+" \n"
+" في الأنظمة ذات التحميل الديناميكي، يحدد متغير الصدفة BASH_LOADABLES_PATH\n"
+" مسار بحث للمجلد الذي يحتوي على FILENAMEs التي لا\n"
+" تحتوي على مائل. وقد يتضمن \".\" لفرض بحث في المجلد\n"
+" الحالي.\n"
+" \n"
+" لاستخدام `test' الموجود في $PATH بدلاً من نسخة مدمج\n"
+" الصدفة، اكتب `enable -n test'.\n"
+" \n"
+" حالة الخروج:\n"
+" يعيد النجاح ما لم يكن NAME مدمج صدفة أو يحدث خطأ."
+
+#: builtins.c:655
+msgid ""
+"Execute arguments as a shell command.\n"
+" \n"
+" Combine ARGs into a single string, use the result as input to the shell,\n"
+" and execute the resulting commands.\n"
+" \n"
+" Exit Status:\n"
+" Returns exit status of command or success if command is null."
+msgstr ""
+"نفذ المحاجج كأمر صدفة.\n"
+" \n"
+" اجمع ARGs في سلسلة واحدة، واستخدم النتيجة كمدخل للصدفة،\n"
+" ونفذ الأوامر الناتجة.\n"
+" \n"
+" حالة الخروج:\n"
+" يعيد حالة خروج الأمر أو النجاح إذا كان الأمر فارغاً."
+
+#: builtins.c:667
+msgid ""
+"Parse option arguments.\n"
+" \n"
+" Getopts is used by shell procedures to parse positional parameters\n"
+" as options.\n"
+" \n"
+" OPTSTRING contains the option letters to be recognized; if a letter\n"
+" is followed by a colon, the option is expected to have an argument,\n"
+" which should be separated from it by white space.\n"
+" \n"
+" Each time it is invoked, getopts will place the next option in the\n"
+" shell variable $name, initializing name if it does not exist, and\n"
+" the index of the next argument to be processed into the shell\n"
+" variable OPTIND. OPTIND is initialized to 1 each time the shell or\n"
+" a shell script is invoked. When an option requires an argument,\n"
+" getopts places that argument into the shell variable OPTARG.\n"
+" \n"
+" getopts reports errors in one of two ways. If the first character\n"
+" of OPTSTRING is a colon, getopts uses silent error reporting. In\n"
+" this mode, no error messages are printed. If an invalid option is\n"
+" seen, getopts places the option character found into OPTARG. If a\n"
+" required argument is not found, getopts places a ':' into NAME and\n"
+" sets OPTARG to the option character found. If getopts is not in\n"
+" silent mode, and an invalid option is seen, getopts places '?' into\n"
+" NAME and unsets OPTARG. If a required argument is not found, a '?'\n"
+" is placed in NAME, OPTARG is unset, and a diagnostic message is\n"
+" printed.\n"
+" \n"
+" If the shell variable OPTERR has the value 0, getopts disables the\n"
+" printing of error messages, even if the first character of\n"
+" OPTSTRING is not a colon. OPTERR has the value 1 by default.\n"
+" \n"
+" Getopts normally parses the positional parameters, but if arguments\n"
+" are supplied as ARG values, they are parsed instead.\n"
+" \n"
+" Exit Status:\n"
+" Returns success if an option is found; fails if the end of options is\n"
+" encountered or an error occurs."
+msgstr ""
+"حلل محاجج الخيارات.\n"
+" \n"
+" تستخدم إجراءات الصدفة Getopts لتحليل المعلمات الموضعية\n"
+" كخيارات.\n"
+" \n"
+" يحتوي OPTSTRING على أحرف الخيارات التي سيُتعرف عليها؛ إذا كان الحرف\n"
+" متبوعاً بنقطتين، فمن المتوقع أن يكون للخيار محاجج،\n"
+" والذي يجب فصله عنه بمسافة بيضاء.\n"
+" \n"
+" في كل مرة يُستدعى فيها، سيضع getopts الخيار التالي في\n"
+" متغير الصدفة $name، مع تهيئة الاسم إذا لم يكن موجوداً، و\n"
+" فهرس المحاجج التالي ليُعالج في متغير الصدفة\n"
+" OPTIND. يُهيأ OPTIND إلى 1 في كل مرة تُستدعى فيها الصدفة أو\n"
+" سكربت صدفة. عندما يتطلب خيار محاججاً،\n"
+" يضع getopts ذلك المحاجج في متغير الصدفة OPTARG.\n"
+" \n"
+" يبلغ getopts عن الأخطاء بإحدى طريقتين. إذا كان المحرف الأول\n"
+" من OPTSTRING هو نقطتين، يستخدم getopts الإبلاغ الصامت عن الأخطاء. في\n"
+" هذا الوضع، لا تُطبع رسائل خطأ. إذا شوهد خيار غير صالح،\n"
+" يضع getopts محرف الخيار الموجود في OPTARG. إذا لم يُعثر\n"
+" على محاجج مطلوب، يضع getopts ':' في NAME و\n"
+" يضبط OPTARG على محرف الخيار الموجود. إذا لم يكن getopts في\n"
+" الوضع الصامت، وشوهد خيار غير صالح، يضع getopts '?' في\n"
+" NAME ويلغي ضبط OPTARG. إذا لم يُعثر على محاجج مطلوب، يوضع\n"
+" '?' في NAME، ويُلغى ضبط OPTARG، وتُطبع رسالة\n"
+" تشخيصية.\n"
+" \n"
+" إذا كان لمتغير الصدفة OPTERR القيمة 0، يعطل getopts طباعة\n"
+" رسائل الخطأ، حتى لو لم يكن المحرف الأول من\n"
+" OPTSTRING نقطتين. يحمل OPTERR القيمة 1 بشكل مبدئي.\n"
+" \n"
+" يحلل Getopts عادة المعلمات الموضعية، ولكن إذا زُودت محاجج\n"
+" كقيم ARG، فإنها تُحلل بدلاً من ذلك.\n"
+" \n"
+" حالة الخروج:\n"
+" يعيد النجاح إذا عُثر على خيار؛ يفشل إذا وُوجهت نهاية الخيارات\n"
+" أو حدث خطأ."
+
+#: builtins.c:709
+msgid ""
+"Replace the shell with the given command.\n"
+" \n"
+" Execute COMMAND, replacing this shell with the specified program.\n"
+" ARGUMENTS become the arguments to COMMAND. If COMMAND is not specified,\n"
+" any redirections take effect in the current shell.\n"
+" \n"
+" Options:\n"
+" -a name\tpass NAME as the zeroth argument to COMMAND\n"
+" -c\texecute COMMAND with an empty environment\n"
+" -l\tplace a dash in the zeroth argument to COMMAND\n"
+" \n"
+" If the command cannot be executed, a non-interactive shell exits, unless\n"
+" the shell option `execfail' is set.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless COMMAND is not found or a redirection error occurs."
+msgstr ""
+"استبدل الصدفة بالأمر المعطى.\n"
+" \n"
+" نفذ COMMAND، مستبدلاً هذه الصدفة بالبرنامج المحدد.\n"
+" تصبح ARGUMENTS هي محاجج COMMAND. إذا لم يُحدد COMMAND،\n"
+" تنفذ أي عمليات إعادة توجيه في الصدفة الحالية.\n"
+" \n"
+" الخيارات:\n"
+" -a name\tمرر NAME كمحاجج رقم صفر إلى COMMAND\n"
+" -c\tنفذ COMMAND ببيئة فارغة\n"
+" -l\tضع شرطة في المحاجج رقم صفر لـ COMMAND\n"
+" \n"
+" إذا تعذر تنفيذ الأمر، تخرج صدفة غير تفاعلية، ما لم\n"
+" يُضبط خيار الصدفة `execfail'.\n"
+" \n"
+" حالة الخروج:\n"
+" يعيد النجاح ما لم يُعثر على COMMAND أو يحدث خطأ إعادة توجيه."
+
+#: builtins.c:730
+msgid ""
+"Exit the shell.\n"
+" \n"
+" Exits the shell with a status of N. If N is omitted, the exit status\n"
+" is that of the last command executed."
+msgstr ""
+"اخرج من الصدفة.\n"
+" \n"
+" يخرج من الصدفة بحالة N. إذا حُذف N، تكون حالة الخروج\n"
+" هي حالة آخر أمر نُفذ."
+
+#: builtins.c:739
+msgid ""
+"Exit a login shell.\n"
+" \n"
+" Exits a login shell with exit status N. Returns an error if not executed\n"
+" in a login shell."
+msgstr ""
+"اخرج من صدفة تسجيل دخول.\n"
+" \n"
+" يخرج من صدفة تسجيل دخول بحالة الخروج N. يعيد خطأ إذا لم يُنفذ\n"
+" في صدفة تسجيل دخول."
+
+#: builtins.c:749
+msgid ""
+"Display or execute commands from the history list.\n"
+" \n"
+" fc is used to list or edit and re-execute commands from the history list.\n"
+" FIRST and LAST can be numbers specifying the range, or FIRST can be a\n"
+" string, which means the most recent command beginning with that\n"
+" string.\n"
+" \n"
+" Options:\n"
+" -e ENAME\tselect which editor to use. Default is FCEDIT, then EDITOR,\n"
+" \t\tthen vi\n"
+" -l \tlist lines instead of editing\n"
+" -n\tomit line numbers when listing\n"
+" -r\treverse the order of the lines (newest listed first)\n"
+" \n"
+" With the `fc -s [pat=rep ...] [command]' format, COMMAND is\n"
+" re-executed after the substitution OLD=NEW is performed.\n"
+" \n"
+" A useful alias to use with this is r='fc -s', so that typing `r cc'\n"
+" runs the last command beginning with `cc' and typing `r' re-executes\n"
+" the last command.\n"
+" \n"
+" The history builtin also operates on the history list.\n"
+" \n"
+" Exit Status:\n"
+" Returns success or status of executed command; non-zero if an error occurs."
+msgstr ""
+"اعرض أو نفذ أوامر من قائمة التاريخ.\n"
+" \n"
+" يُستخدم fc لسرد أو تحرير وإعادة تنفيذ الأوامر من قائمة التاريخ.\n"
+" يمكن لـ FIRST و LAST أن يكونا أرقاماً تحدد النطاق، أو يمكن لـ FIRST أن يكون\n"
+" سلسلة، مما يعني أحدث أمر يبدأ بتلك\n"
+" السلسلة.\n"
+" \n"
+" الخيارات:\n"
+" -e ENAME\tاختر المحرر المراد استخدامه. المبدئي هو FCEDIT، ثم EDITOR،\n"
+" \t\tثم vi\n"
+" -l \tاسرد الأسطر بدلاً من تحريرها\n"
+" -n\tاحذف أرقام الأسطر عند السرد\n"
+" -r\tاعكس ترتيب الأسطر (الأحدث يُسرد أولاً)\n"
+" \n"
+" بتنسيق `fc -s [pat=rep ...] [command]'، يُعاد تنفيذ COMMAND\n"
+" بعد إجراء الاستبدال OLD=NEW.\n"
+" \n"
+" اسم مستعار مفيد للاستخدام مع هذا هو r='fc -s'، بحيث يؤدي كتابة `r cc'\n"
+" إلى تشغيل آخر أمر يبدأ بـ `cc' وتؤدي كتابة `r' إلى إعادة تنفيذ\n"
+" آخر أمر.\n"
+" \n"
+" يعمل مدمج التاريخ (history) أيضاً على قائمة التاريخ.\n"
+" \n"
+" حالة الخروج:\n"
+" يعيد النجاح أو حالة الأمر المنفذ؛ قيمة غير صفرية إذا حدث خطأ."
+
+#: builtins.c:781
+msgid ""
+"Move job to the foreground.\n"
+" \n"
+" Place the job identified by JOB_SPEC in the foreground, making it the\n"
+" current job. If JOB_SPEC is not present, the shell's notion of the\n"
+" current job is used.\n"
+" \n"
+" Exit Status:\n"
+" Status of command placed in foreground, or failure if an error occurs."
+msgstr ""
+"نقل المهمة إلى الواجهة.\n"
+" \n"
+" ضع المهمة المحددة بواسطة JOB_SPEC في الواجهة، لتصبح المهمة\n"
+" الحالية. إذا لم يتوفر JOB_SPEC، يُستخدم تصور الصدفة للمهمة\n"
+" الحالية.\n"
+" \n"
+" حالة الخروج:\n"
+" حالة الأمر الموضوع في الواجهة، أو الفشل في حال وقوع خطأ."
+
+#: builtins.c:796
+msgid ""
+"Move jobs to the background.\n"
+" \n"
+" Place the jobs identified by each JOB_SPEC in the background, as if they\n"
+" had been started with `&'. If JOB_SPEC is not present, the shell's notion\n"
+" of the current job is used.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless job control is not enabled or an error occurs."
+msgstr ""
+"نقل المهام إلى الخلفية.\n"
+" \n"
+" ضع المهام المحددة بواسطة كل JOB_SPEC في الخلفية، كما لو أنها\n"
+" بدأت باستخدام `&'. إذا لم يتوفر JOB_SPEC، يُستخدم تصور الصدفة\n"
+" للمهمة الحالية.\n"
+" \n"
+" حالة الخروج:\n"
+" يعيد النجاح ما لم يكن التحكم في المهام غير مفعل أو وقع خطأ."
+
+#: builtins.c:810
+msgid ""
+"Remember or display program locations.\n"
+" \n"
+" Determine and remember the full pathname of each command NAME. If\n"
+" no arguments are given, information about remembered commands is displayed.\n"
+" \n"
+" Options:\n"
+" -d\tforget the remembered location of each NAME\n"
+" -l\tdisplay in a format that may be reused as input\n"
+" -p pathname\tuse PATHNAME as the full pathname of NAME\n"
+" -r\tforget all remembered locations\n"
+" -t\tprint the remembered location of each NAME, preceding\n"
+" \t\teach location with the corresponding NAME if multiple\n"
+" \t\tNAMEs are given\n"
+" Arguments:\n"
+" NAME\tEach NAME is searched for in $PATH and added to the list\n"
+" \t\tof remembered commands.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless NAME is not found or an invalid option is given."
+msgstr ""
+"تذكر أو عرض مواقع البرامج.\n"
+" \n"
+" تحديد وتذكر مسار الاسم الكامل لكل أمر NAME. إذا\n"
+" لم تعطَ أي وسائط، تُعرض معلومات عن الأوامر المتذكرة.\n"
+" \n"
+" الخيارات:\n"
+" -d\tنسيان الموقع المتذكر لكل NAME\n"
+" -l\tالعرض بتنسيق يمكن إعادة استخدامه كمدخل\n"
+" -p pathname\tاستخدام PATHNAME كمسار الاسم الكامل لـ NAME\n"
+" -r\tنسيان كل المواقع المتذكرة\n"
+" -t\tطباعة الموقع المتذكر لكل NAME، مسبوقاً\n"
+" \t\tبكل موقع مع NAME المقابل إذا أُعطيت أسماء\n"
+" \t\tمتعددة\n"
+" الوسائط:\n"
+" NAME\tيُبحث عن كل NAME في $PATH ويضاف إلى قائمة\n"
+" \t\tالأوامر المتذكرة.\n"
+" \n"
+" حالة الخروج:\n"
+" يعيد النجاح ما لم يُعثر على NAME أو أُعطي خيار غير صالح."
+
+#: builtins.c:835
+msgid ""
+"Display information about builtin commands.\n"
+" \n"
+" Displays brief summaries of builtin commands. If PATTERN is\n"
+" specified, gives detailed help on all commands matching PATTERN,\n"
+" otherwise the list of help topics is printed.\n"
+" \n"
+" Options:\n"
+" -d\toutput short description for each topic\n"
+" -m\tdisplay usage in pseudo-manpage format\n"
+" -s\toutput only a short usage synopsis for each topic matching\n"
+" \t\tPATTERN\n"
+" \n"
+" Arguments:\n"
+" PATTERN\tPattern specifying a help topic\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless PATTERN is not found or an invalid option is given."
+msgstr ""
+"عرض معلومات عن الأوامر المضمنة.\n"
+" \n"
+" يعرض ملخصات وجيزة للأوامر المضمنة. إذا حُدد PATTERN،\n"
+" يعطي مساعدة مفصلة عن كل الأوامر التي تطابق PATTERN،\n"
+" وإلا تُطبع قائمة بمواضيع المساعدة.\n"
+" \n"
+" الخيارات:\n"
+" -d\tإخراج وصف قصير لكل موضوع\n"
+" -m\tعرض الاستخدام بتنسيق شبيه بصفحات man\n"
+" -s\tإخراج ملخص استخدام قصير فقط لكل موضوع يطابق\n"
+" \t\tPATTERN\n"
+" \n"
+" الوسائط:\n"
+" PATTERN\tنمط يحدد موضوع المساعدة\n"
+" \n"
+" حالة الخروج:\n"
+" يعيد النجاح ما لم يُعثر على PATTERN أو أُعطي خيار غير صالح."
+
+#: builtins.c:859
+msgid ""
+"Display or manipulate the history list.\n"
+" \n"
+" Display the history list with line numbers, prefixing each modified\n"
+" entry with a `*'. An argument of N lists only the last N entries.\n"
+" \n"
+" Options:\n"
+" -c\tclear the history list by deleting all of the entries\n"
+" -d offset\tdelete the history entry at position OFFSET. Negative\n"
+" \t\toffsets count back from the end of the history list\n"
+" -d start-end\tdelete the history entries beginning at position START\n"
+" \t\tthrough position END.\n"
+" \n"
+" -a\tappend history lines from this session to the history file\n"
+" -n\tread all history lines not already read from the history file\n"
+" \t\tand append them to the history list\n"
+" -r\tread the history file and append the contents to the history\n"
+" \t\tlist\n"
+" -w\twrite the current history to the history file\n"
+" \n"
+" -p\tperform history expansion on each ARG and display the result\n"
+" \t\twithout storing it in the history list\n"
+" -s\tappend the ARGs to the history list as a single entry\n"
+" \n"
+" If FILENAME is given, it is used as the history file. Otherwise,\n"
+" if HISTFILE has a value, that is used. If FILENAME is not supplied\n"
+" and HISTFILE is unset or null, the -a, -n, -r, and -w options have\n"
+" no effect and return success.\n"
+" \n"
+" The fc builtin also operates on the history list.\n"
+" \n"
+" If the HISTTIMEFORMAT variable is set and not null, its value is used\n"
+" as a format string for strftime(3) to print the time stamp associated\n"
+" with each displayed history entry. No time stamps are printed otherwise.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option is given or an error occurs."
+msgstr ""
+"عرض أو معالجة قائمة التاريخ.\n"
+" \n"
+" عرض قائمة التاريخ مع أرقام الأسطر، مع بادئة `*' لكل مدخلة\n"
+" معدلة. وسيط N يسرد آخر N مدخلات فقط.\n"
+" \n"
+" الخيارات:\n"
+" -c\tتفريغ قائمة التاريخ بحذف كل المدخلات\n"
+" -d offset\tحذف مدخلة التاريخ عند الموضع OFFSET. الإزاحات السالبة\n"
+" \t\tتحسب عكسياً من نهاية قائمة التاريخ\n"
+" -d start-end\tحذف مدخلات التاريخ بدءاً من الموضع START\n"
+" \t\tإلى الموضع END.\n"
+" \n"
+" -a\tإلحاق أسطر التاريخ من هذه الجلسة بملف التاريخ\n"
+" -n\tقراءة كل أسطر التاريخ التي لم تُقرأ بعد من ملف التاريخ\n"
+" \t\tوإلحاقها بقائمة التاريخ\n"
+" -r\tقراءة ملف التاريخ وإلحاق المحتويات بقائمة\n"
+" \t\tالتاريخ\n"
+" -w\tكتابة التاريخ الحالي في ملف التاريخ\n"
+" \n"
+" -p\tإجراء توسيع التاريخ على كل ARG وعرض النتيجة\n"
+" \t\tبدون تخزينها في قائمة التاريخ\n"
+" -s\tإلحاق ARG بقائمة التاريخ كمدخلة واحدة\n"
+" \n"
+" إذا أُعطي FILENAME، يُستخدم كملف التاريخ. وإلا،\n"
+" إذا كان لـ HISTFILE قيمة، تُستخدم. إذا لم يُزود FILENAME\n"
+" وكان HISTFILE غير معين أو فارغاً، فإن الخيارات -a و -n و -r و -w\n"
+" لا أثر لها وتُعيد النجاح.\n"
+" \n"
+" الأمر المضمن fc يعمل أيضاً على قائمة التاريخ.\n"
+" \n"
+" إذا كان متغير HISTTIMEFORMAT معيناً وليس فارغاً، تُستخدم قيمته\n"
+" كسلسلة تنسيق لـ strftime(3) لطباعة الختم الزمني المرتبط\n"
+" بكل مدخلة تاريخ معروضة. وإلا لن تُطبع أي أختام زمنية.\n"
+" \n"
+" حالة الخروج:\n"
+" يعيد النجاح ما لم يُعط خيار غير صالح أو وقع خطأ."
+
+#: builtins.c:902
+msgid ""
+"Display status of jobs.\n"
+" \n"
+" Lists the active jobs. JOBSPEC restricts output to that job.\n"
+" Without options, the status of all active jobs is displayed.\n"
+" \n"
+" Options:\n"
+" -l\tlists process IDs in addition to the normal information\n"
+" -n\tlists only processes that have changed status since the last\n"
+" \t\tnotification\n"
+" -p\tlists process IDs only\n"
+" -r\trestrict output to running jobs\n"
+" -s\trestrict output to stopped jobs\n"
+" \n"
+" If -x is supplied, COMMAND is run after all job specifications that\n"
+" appear in ARGS have been replaced with the process ID of that job's\n"
+" process group leader.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option is given or an error occurs.\n"
+" If -x is used, returns the exit status of COMMAND."
+msgstr ""
+"عرض حالة المهام.\n"
+" \n"
+" يسرد المهام النشطة. يقيد JOBSPEC المخرجات لتلك المهمة.\n"
+" بدون خيارات، تُعرض حالة جميع المهام النشطة.\n"
+" \n"
+" الخيارات:\n"
+" -l\tيسرد معرفات العمليات بالإضافة إلى المعلومات العادية\n"
+" -n\tيسرد العمليات التي تغيرت حالتها فقط منذ آخر\n"
+" \t\tإخطار\n"
+" -p\tيسرد معرفات العمليات فقط\n"
+" -r\tقصر المخرجات على المهام التي تعمل\n"
+" -s\tقصر المخرجات على المهام المتوقفة\n"
+" \n"
+" إذا أُعطي -x، يُنفذ COMMAND بعد استبدال جميع مواصفات المهام التي\n"
+" تظهر في ARGS بمعرف العملية لقائد مجموعة عمليات تلك المهمة.\n"
+" \n"
+" حالة الخروج:\n"
+" يعيد النجاح ما لم يُعط خيار غير صالح أو وقع خطأ.\n"
+" إذا استُخدم -x، يعيد حالة خروج COMMAND."
+
+#: builtins.c:929
+msgid ""
+"Remove jobs from current shell.\n"
+" \n"
+" Removes each JOBSPEC argument from the table of active jobs. Without\n"
+" any JOBSPECs, the shell uses its notion of the current job.\n"
+" \n"
+" Options:\n"
+" -a\tremove all jobs if JOBSPEC is not supplied\n"
+" -h\tmark each JOBSPEC so that SIGHUP is not sent to the job if the\n"
+" \t\tshell receives a SIGHUP\n"
+" -r\tremove only running jobs\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option or JOBSPEC is given."
+msgstr ""
+"إزالة المهام من الغلاف الحالي.\n"
+" \n"
+" يزيل كل وسيط JOBSPEC من جدول المهام النشطة. في حال عدم\n"
+" تزويد JOBSPECs، يستخدم الغلاف مفهومه عن المهمة الحالية.\n"
+" \n"
+" الخيارات:\n"
+" -a\tإزالة كافة المهام إذا لم يزود JOBSPEC\n"
+" -h\tوضع علامة على كل JOBSPEC حتى لا ترسل إشارة SIGHUP للمهمة في حال\n"
+" \t\tتلقى الغلاف إشارة SIGHUP\n"
+" -r\tإزالة المهام قيد التشغيل فقط\n"
+" \n"
+" حالة الخروج:\n"
+" يعيد النجاح إلا إذا أعطي خيار غير صالح أو JOBSPEC غير صالح."
+
+#: builtins.c:948
+msgid ""
+"Send a signal to a job.\n"
+" \n"
+" Send the processes identified by PID or JOBSPEC the signal named by\n"
+" SIGSPEC or SIGNUM. If neither SIGSPEC nor SIGNUM is present, then\n"
+" SIGTERM is assumed.\n"
+" \n"
+" Options:\n"
+" -s sig\tSIG is a signal name\n"
+" -n sig\tSIG is a signal number\n"
+" -l\tlist the signal names; if arguments follow `-l' they are\n"
+" \t\tassumed to be signal numbers for which names should be listed\n"
+" -L\tsynonym for -l\n"
+" \n"
+" Kill is a shell builtin for two reasons: it allows job IDs to be used\n"
+" instead of process IDs, and allows processes to be killed if the limit\n"
+" on processes that you can create is reached.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option is given or an error occurs."
+msgstr ""
+"إرسال إشارة إلى مهمة.\n"
+" \n"
+" إرسال الإشارة المسماة SIGSPEC أو SIGNUM إلى العمليات المحددة بواسطة PID أو JOBSPEC.\n"
+" في حال غياب SIGSPEC و SIGNUM، يفترض استخدام SIGTERM.\n"
+" \n"
+" الخيارات:\n"
+" -s sig\tتعبر SIG عن اسم الإشارة\n"
+" -n sig\tتعبر SIG عن رقم الإشارة\n"
+" -l\tسرد أسماء الإشارات؛ إذا تبعت وسائط `-l' فيفترض\n"
+" \t\tأنها أرقام إشارات يجب سرد أسمائها\n"
+" -L\tمرادف للخيار -l\n"
+" \n"
+" أمر Kill هو أمر داخلي في الغلاف لسببين: يسمح باستخدام معرفات المهام\n"
+" بدلاً من معرفات العمليات، ويسمح بإنهاء العمليات في حال الوصول للحد الأقصى\n"
+" للعمليات التي يمكنك إنشاؤها.\n"
+" \n"
+" حالة الخروج:\n"
+" يعيد النجاح إلا إذا أعطي خيار غير صالح أو حدث خطأ."
+
+#: builtins.c:972
+msgid ""
+"Evaluate arithmetic expressions.\n"
+" \n"
+" Evaluate each ARG as an arithmetic expression. Evaluation is done in\n"
+" fixed-width integers with no check for overflow, though division by 0\n"
+" is trapped and flagged as an error. The following list of operators is\n"
+" grouped into levels of equal-precedence operators. The levels are listed\n"
+" in order of decreasing precedence.\n"
+" \n"
+" \tid++, id--\tvariable post-increment, post-decrement\n"
+" \t++id, --id\tvariable pre-increment, pre-decrement\n"
+" \t-, +\t\tunary minus, plus\n"
+" \t!, ~\t\tlogical and bitwise negation\n"
+" \t**\t\texponentiation\n"
+" \t*, /, %\t\tmultiplication, division, remainder\n"
+" \t+, -\t\taddition, subtraction\n"
+" \t<<, >>\t\tleft and right bitwise shifts\n"
+" \t<=, >=, <, >\tcomparison\n"
+" \t==, !=\t\tequality, inequality\n"
+" \t&\t\tbitwise AND\n"
+" \t^\t\tbitwise XOR\n"
+" \t|\t\tbitwise OR\n"
+" \t&&\t\tlogical AND\n"
+" \t||\t\tlogical OR\n"
+" \texpr ? expr : expr\n"
+" \t\t\tconditional operator\n"
+" \t=, *=, /=, %=,\n"
+" \t+=, -=, <<=, >>=,\n"
+" \t&=, ^=, |=\tassignment\n"
+" \n"
+" Shell variables are allowed as operands. The name of the variable\n"
+" is replaced by its value (coerced to a fixed-width integer) within\n"
+" an expression. The variable need not have its integer attribute\n"
+" turned on to be used in an expression.\n"
+" \n"
+" Operators are evaluated in order of precedence. Sub-expressions in\n"
+" parentheses are evaluated first and may override the precedence\n"
+" rules above.\n"
+" \n"
+" Exit Status:\n"
+" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise."
+msgstr ""
+"تقييم التعبيرات الحسابية.\n"
+" \n"
+" تقييم كل ARG كتعبير حسابي. يتم التقييم باستخدام أعداد صحيحة\n"
+" ثابتة العرض دون التحقق من تجاوز السعة، رغم أن القسمة على 0\n"
+" تعتبر خطأ. قائمة العمليات التالية مجمعة في مستويات متساوية الأسبقية.\n"
+" تسرد المستويات بترتيب تناقص الأسبقية.\n"
+" \n"
+" \tid++, id--\tزيادة لاحقة، ونقصان لاحق للمتغير\n"
+" \t++id, --id\tزيادة سابقة، ونقصان سابق للمتغير\n"
+" \t-, +\t\tسالب وموجب أحادي\n"
+" \t!, ~\t\tنفي منطقي ونفي بتات\n"
+" \t**\t\tالرفع لأس\n"
+" \t*, /, %\t\tضرب، قسمة، باقي القسمة\n"
+" \t+, -\t\tجمع، طرح\n"
+" \t<<, >>\t\tإزاحة بتات لليسار ولليمين\n"
+" \t<=, >=, <, >\tمقارنة\n"
+" \t==, !=\t\tتساوي، عدم تساوي\n"
+" \t&\t\tAND للبتات\n"
+" \t^\t\tXOR للبتات\n"
+" \t|\t\tOR للبتات\n"
+" \t&&\t\tAND منطقي\n"
+" \t||\t\tOR منطقي\n"
+" \texpr ? expr : expr\n"
+" \t\t\tعملية شرطية\n"
+" \t=, *=, /=, %=,\n"
+" \t+=, -=, <<=, >>=,\n"
+" \t&=, ^=, |=\tإسناد\n"
+" \n"
+" يسمح باستخدام متغيرات الغلاف كمعاملات. يستبدل اسم المتغير\n"
+" بقيمته (محولة إلى عدد صحيح ثابت العرض) داخل التعبير. لا يشترط\n"
+" تفعيل سمة العدد الصحيح للمتغير لاستخدامه في تعبير.\n"
+" \n"
+" تقيم العمليات حسب ترتيب الأسبقية. التعبيرات الفرعية بين\n"
+" أقواس تقيم أولاً وقد تتجاوز قواعد الأسبقية أعلاه.\n"
+" \n"
+" حالة الخروج:\n"
+" إذا كانت نتيجة تقييم ARG الأخير هي 0، يعيد let القيمة 1؛ خلاف ذلك يعيد 0."
+
+#: builtins.c:1017
+msgid ""
+"Read a line from the standard input and split it into fields.\n"
+" \n"
+" Reads a single line from the standard input, or from file descriptor FD\n"
+" if the -u option is supplied. The line is split into fields as with word\n"
+" splitting, and the first word is assigned to the first NAME, the second\n"
+" word to the second NAME, and so on, with any leftover words assigned to\n"
+" the last NAME. Only the characters found in $IFS are recognized as word\n"
+" delimiters. By default, the backslash character escapes delimiter characters\n"
+" and newline.\n"
+" \n"
+" If no NAMEs are supplied, the line read is stored in the REPLY variable.\n"
+" \n"
+" Options:\n"
+" -a array\tassign the words read to sequential indices of the array\n"
+" \t\tvariable ARRAY, starting at zero\n"
+" -d delim\tcontinue until the first character of DELIM is read, rather\n"
+" \t\tthan newline\n"
+" -e\tuse Readline to obtain the line\n"
+" -E\tuse Readline to obtain the line and use the bash default\n"
+" \t\tcompletion instead of Readline's default completion\n"
+" -i text\tuse TEXT as the initial text for Readline\n"
+" -n nchars\treturn after reading NCHARS characters rather than waiting\n"
+" \t\tfor a newline, but honor a delimiter if fewer than\n"
+" \t\tNCHARS characters are read before the delimiter\n"
+" -N nchars\treturn only after reading exactly NCHARS characters, unless\n"
+" \t\tEOF is encountered or read times out, ignoring any\n"
+" \t\tdelimiter\n"
+" -p prompt\toutput the string PROMPT without a trailing newline before\n"
+" \t\tattempting to read\n"
+" -r\tdo not allow backslashes to escape any characters\n"
+" -s\tdo not echo input coming from a terminal\n"
+" -t timeout\ttime out and return failure if a complete line of\n"
+" \t\tinput is not read within TIMEOUT seconds. The value of the\n"
+" \t\tTMOUT variable is the default timeout. TIMEOUT may be a\n"
+" \t\tfractional number. If TIMEOUT is 0, read returns\n"
+" \t\timmediately, without trying to read any data, returning\n"
+" \t\tsuccess only if input is available on the specified\n"
+" \t\tfile descriptor. The exit status is greater than 128\n"
+" \t\tif the timeout is exceeded\n"
+" -u fd\tread from file descriptor FD instead of the standard input\n"
+" \n"
+" Exit Status:\n"
+" The return code is zero, unless end-of-file is encountered, read times out\n"
+" (in which case it's greater than 128), a variable assignment error occurs,\n"
+" or an invalid file descriptor is supplied as the argument to -u."
+msgstr ""
+"قراءة سطر من الإدخال القياسي وتقسيمه إلى حقول.\n"
+" \n"
+" يقرأ سطراً واحداً من الإدخال القياسي، أو من واصف الملف FD إذا زود\n"
+" الخيار -u. يقسم السطر إلى حقول كما في تقسيم الكلمات، وتسند الكلمة\n"
+" الأولى إلى NAME الأول، والكلمة الثانية إلى NAME الثاني، وهكذا، مع\n"
+" إسناد أي كلمات متبقية إلى NAME الأخير. تعرف الحروف الموجودة في $IFS\n"
+" فقط كفواصل كلمات. مبدئيا، تقوم الشرطة المائلة الخلفية بهرب حروف الفواصل\n"
+" والسطر الجديد.\n"
+" \n"
+" إذا لم تزوّد NAMEs، تخزن القراءة في متغير REPLY.\n"
+" \n"
+" الخيارات:\n"
+" -a array\tإسناد الكلمات المقروءة إلى فهارس تسلسل لمتغير المصفوفة\n"
+" \t\tARRAY، بدءاً من الصفر\n"
+" -d delim\tالاستمرار حتى قراءة أول حرف من DELIM، بدلاً من السطر الجديد\n"
+" -e\tاستخدام Readline للحصول على السطر\n"
+" -E\tاستخدام Readline للحصول على السطر واستخدام إكمال bash المبدئي\n"
+" \t\tبدلاً من إكمال Readline المبدئي\n"
+" -i text\tاستخدام TEXT كنص ابتدائي لـ Readline\n"
+" -n nchars\tالعودة بعد قراءة NCHARS من الحروف بدلاً من انتظار سطر جديد،\n"
+" \t\tلكن مع احترام الفاصل إذا قرئت حروف أقل من NCHARS قبل الفاصل\n"
+" -N nchars\tالعودة فقط بعد قراءة NCHARS حرفاً بالضبط، ما لم يصادف\n"
+" \t\tنهاية الملف أو تنتهي المهلة، مع تجاهل أي فاصل\n"
+" -p prompt\tإخراج السلسلة PROMPT بدون سطر جديد لاحق قبل محاولة القراءة\n"
+" -r\tعدم السماح للشرطات المائلة الخلفية بهرب أي حروف\n"
+" -s\tعدم صدى الإدخال القادم من الطرفية\n"
+" -t timeout\tانتهاء المهلة والعودة بالفشل إذا لم يقرأ سطر كامل من\n"
+" \t\tالإدخال خلال ثواني TIMEOUT. قيمة متغير TMOUT هي مهلة مبدئي.\n"
+" \t\tيمكن أن يكون TIMEOUT رقماً كسرياً. إذا كان TIMEOUT يساوي 0، تعود القراءة\n"
+" \t\tفوراً، دون محاولة قراءة أي بيانات، مع العودة بنجاح فقط في حال\n"
+" \t\tتوفر إدخال على واصف الملف المحدد. حالة الخروج أكبر من 128\n"
+" \t\tإذا تم تجاوز المهلة\n"
+" -u fd\tالقراءة من واصف الملف FD بدلاً من الإدخال القياسي\n"
+" \n"
+" حالة الخروج:\n"
+" رمز العودة هو صفر، ما لم يصادف نهاية الملف، أو تنتهي مهلة القراءة\n"
+" (وفي هذه الحالة يكون أكبر من 128)، أو يحدث خطأ في إسناد المتغير،\n"
+" أو يزود واصف ملف غير صالح كوسيط للخيار -u."
+
+#: builtins.c:1067
+msgid ""
+"Return from a shell function.\n"
+" \n"
+" Causes a function or sourced script to exit with the return value\n"
+" specified by N. If N is omitted, the return status is that of the\n"
+" last command executed within the function or script.\n"
+" \n"
+" Exit Status:\n"
+" Returns N, or failure if the shell is not executing a function or script."
+msgstr ""
+"العودة من دالة غلاف.\n"
+" \n"
+" تؤدي إلى إنهاء دالة أو نص برمجي مستدعى بقيمة العودة\n"
+" المحددة بواسطة N. إذا حُذفت N، تكون حالة العودة هي حالة\n"
+" آخر أمر نُفذ داخل الدالة أو النص البرمجي.\n"
+" \n"
+" حالة الخروج:\n"
+" يعيد N، أو الفشل إذا لم يكن الغلاف ينفذ دالة أو نصاً برمجياً."
+
+#: builtins.c:1080
+msgid ""
+"Set or unset values of shell options and positional parameters.\n"
+" \n"
+" Change the value of shell attributes and positional parameters, or\n"
+" display the names and values of shell variables.\n"
+" \n"
+" Options:\n"
+" -a Mark variables which are modified or created for export.\n"
+" -b Notify of job termination immediately.\n"
+" -e Exit immediately if a command exits with a non-zero status.\n"
+" -f Disable file name generation (globbing).\n"
+" -h Remember the location of commands as they are looked up.\n"
+" -k All assignment arguments are placed in the environment for a\n"
+" command, not just those that precede the command name.\n"
+" -m Job control is enabled.\n"
+" -n Read commands but do not execute them.\n"
+" -o option-name\n"
+" Set the variable corresponding to option-name:\n"
+" allexport same as -a\n"
+" braceexpand same as -B\n"
+" emacs use an emacs-style line editing interface\n"
+" errexit same as -e\n"
+" errtrace same as -E\n"
+" functrace same as -T\n"
+" hashall same as -h\n"
+" histexpand same as -H\n"
+" history enable command history\n"
+" ignoreeof the shell will not exit upon reading EOF\n"
+" interactive-comments\n"
+" allow comments to appear in interactive commands\n"
+" keyword same as -k\n"
+" monitor same as -m\n"
+" noclobber same as -C\n"
+" noexec same as -n\n"
+" noglob same as -f\n"
+" nolog currently accepted but ignored\n"
+" notify same as -b\n"
+" nounset same as -u\n"
+" onecmd same as -t\n"
+" physical same as -P\n"
+" pipefail the return value of a pipeline is the status of\n"
+" the last command to exit with a non-zero status,\n"
+" or zero if no command exited with a non-zero status\n"
+" posix change the behavior of bash where the default\n"
+" operation differs from the Posix standard to\n"
+" match the standard\n"
+" privileged same as -p\n"
+" verbose same as -v\n"
+" vi use a vi-style line editing interface\n"
+" xtrace same as -x\n"
+" -p Turned on whenever the real and effective user ids do not match.\n"
+" Disables processing of the $ENV file and importing of shell\n"
+" functions. Turning this option off causes the effective uid and\n"
+" gid to be set to the real uid and gid.\n"
+" -t Exit after reading and executing one command.\n"
+" -u Treat unset variables as an error when substituting.\n"
+" -v Print shell input lines as they are read.\n"
+" -x Print commands and their arguments as they are executed.\n"
+" -B the shell will perform brace expansion\n"
+" -C If set, disallow existing regular files to be overwritten\n"
+" by redirection of output.\n"
+" -E If set, the ERR trap is inherited by shell functions.\n"
+" -H Enable ! style history substitution. This flag is on\n"
+" by default when the shell is interactive.\n"
+" -P If set, do not resolve symbolic links when executing commands\n"
+" such as cd which change the current directory.\n"
+" -T If set, the DEBUG and RETURN traps are inherited by shell functions.\n"
+" -- Assign any remaining arguments to the positional parameters.\n"
+" If there are no remaining arguments, the positional parameters\n"
+" are unset.\n"
+" - Assign any remaining arguments to the positional parameters.\n"
+" The -x and -v options are turned off.\n"
+" \n"
+" If -o is supplied with no option-name, set prints the current shell\n"
+" option settings. If +o is supplied with no option-name, set prints a\n"
+" series of set commands to recreate the current option settings.\n"
+" \n"
+" Using + rather than - causes these flags to be turned off. The\n"
+" flags can also be used upon invocation of the shell. The current\n"
+" set of flags may be found in $-. The remaining n ARGs are positional\n"
+" parameters and are assigned, in order, to $1, $2, .. $n. If no\n"
+" ARGs are given, all shell variables are printed.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option is given."
+msgstr ""
+"ضبط أو إلغاء ضبط قيم خيارات الغلاف والمعاملات الموضعية.\n"
+" \n"
+" تغيير قيمة سمات الغلاف والمعاملات الموضعية، أو\n"
+" عرض أسماء وقيم متغيرات الغلاف.\n"
+" \n"
+" الخيارات:\n"
+" -a وضع وسم على المتغيرات المعدلة أو المنشأة للتصدير.\n"
+" -b الإخطار بإنهاء المهمة فوراً.\n"
+" -e الخروج فوراً إذا خرج أمر بحالة غير صفرية.\n"
+" -f تعطيل توليد أسماء الملفات (globbing).\n"
+" -h تذكر موقع الأوامر أثناء البحث عنها.\n"
+" -k توضع جميع وسائط التعيين في البيئة لأمر ما،\n"
+" وليس فقط تلك التي تسبق اسم الأمر.\n"
+" -m تمكين التحكم في المهام.\n"
+" -n قراءة الأوامر دون تنفيذها.\n"
+" -o option-name\n"
+" ضبط المتغير المقابل لاسم الخيار (option-name):\n"
+" allexport مثل -a\n"
+" braceexpand مثل -B\n"
+" emacs استخدام واجهة تحرير سطر بنمط emacs\n"
+" errexit مثل -e\n"
+" errtrace مثل -E\n"
+" functrace مثل -T\n"
+" hashall مثل -h\n"
+" histexpand مثل -H\n"
+" history تمكين سجل الأوامر\n"
+" ignoreeof لن يخرج الغلاف عند قراءة نهاية الملف (EOF)\n"
+" interactive-comments\n"
+" السماح بظهور التعليقات في الأوامر التفاعلية\n"
+" keyword مثل -k\n"
+" monitor مثل -m\n"
+" noclobber مثل -C\n"
+" noexec مثل -n\n"
+" noglob مثل -f\n"
+" nolog مقبول حالياً ولكن يتم تجاهله\n"
+" notify مثل -b\n"
+" nounset مثل -u\n"
+" onecmd مثل -t\n"
+" physical مثل -P\n"
+" pipefail تكون قيمة العودة للأنبوب هي حالة آخر أمر\n"
+" خرج بوضع غير صفري، أو صفر إذا لم يخرج\n"
+" أي أمر بوضع غير صفري\n"
+" posix تغيير سلوك bash حيث يختلف التشغيل المبدئي\n"
+" عن معيار Posix ليطابق المعيار\n"
+" privileged مثل -p\n"
+" verbose مثل -v\n"
+" vi استخدام واجهة تحرير سطر بنمط vi\n"
+" xtrace مثل -x\n"
+" -p يعمل كلما لم يتطابق معرف المستخدم الحقيقي والفعلي.\n"
+" يعطل معالجة ملف $ENV واستيراد دوال الغلاف.\n"
+" إيقاف هذا الخيار يؤدي لضبط الـ uid والـ gid الفعليين\n"
+" ليكونا نفس الـ uid والـ gid الحقيقيين.\n"
+" -t الخروج بعد قراءة وتنفيذ أمر واحد.\n"
+" -u اعتبار المتغيرات غير المضبوطة خطأ عند الاستبدال.\n"
+" -v طباعة أسطر إدخال الغلاف أثناء قراءتها.\n"
+" -x طباعة الأوامر ووسائطها أثناء تنفيذها.\n"
+" -B سيقوم الغلاف بتوسيع الأقواس\n"
+" -C في حال ضبطه، يمنع الكتابة فوق الملفات العادية الموجودة\n"
+" بواسطة إعادة توجيه المخرجات.\n"
+" -E في حال ضبطه، تورث دالة الغلاف فخ ERR.\n"
+" -H تمكين استبدال السجل بنمط !. يكون هذا العلم مفعلًا\n"
+" بشكل مبدئي عندما يكون الغلاف تفاعلياً.\n"
+" -P في حال ضبطه، لا يتم حل الروابط الرمزية عند تنفيذ أوامر\n"
+" مثل cd التي تغير الدليل الحالي.\n"
+" -T في حال ضبطه، تورث دالة الغلاف فخي RETURN و تنقيح.\n"
+" -- تعيين أي وسائط متبقية للمعاملات الموضعية.\n"
+" إذا لم تكن هناك وسائط متبقية، تلغى المعاملات الموضعية.\n"
+" - تعيين أي وسائط متبقية للمعاملات الموضعية.\n"
+" يتم إيقاف خياري -x و -v.\n"
+" \n"
+" إذا تم توفير -o بدون اسم خيار، يطبع set إعدادات خيارات الغلاف الحالية.\n"
+" إذا تم توفير +o بدون اسم خيار، يطبع set سلسلة من أوامر set\n"
+" لإعادة إنشاء إعدادات الخيارات الحالية.\n"
+" \n"
+" استخدام + بدلاً من - يؤدي لإيقاف هذه الأعلام. يمكن أيضاً استخدام\n"
+" الأعلام عند استدعاء الغلاف. يمكن العثور على مجموعة الأعلام الحالية في $-.\n"
+" تعتبر وسائط n المتبقية معاملات موضعية ويتم تعيينها بالترتيب لـ $1، $2، .. $n.\n"
+" إذا لم تُعطَ أي وسائط، تُطبع جميع متغيرات الغلاف.\n"
+" \n"
+" حالة الخروج:\n"
+" يعيد النجاح ما لم يتم إعطاء خيار غير صالح."
+
+#: builtins.c:1169
+msgid ""
+"Unset values and attributes of shell variables and functions.\n"
+" \n"
+" For each NAME, remove the corresponding variable or function.\n"
+" \n"
+" Options:\n"
+" -f\ttreat each NAME as a shell function\n"
+" -v\ttreat each NAME as a shell variable\n"
+" -n\ttreat each NAME as a name reference and unset the variable itself\n"
+" \t\trather than the variable it references\n"
+" \n"
+" Without options, unset first tries to unset a variable, and if that fails,\n"
+" tries to unset a function.\n"
+" \n"
+" Some variables cannot be unset; also see `readonly'.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option is given or a NAME is read-only."
+msgstr ""
+"إلغاء ضبط قيم وسمات متغيرات ودوال الغلاف.\n"
+" \n"
+" لكل اسم (NAME)، قم بإزالة المتغير أو الدالة المقابلة.\n"
+" \n"
+" الخيارات:\n"
+" -f\tمعاملة كل اسم كدالة غلاف\n"
+" -v\tمعاملة كل اسم كمتغير غلاف\n"
+" -n\tمعاملة كل اسم كمرجع اسم وإلغاء ضبط المتغير نفسه\n"
+" \t\tبدلاً من المتغير الذي يشير إليه\n"
+" \n"
+" بدون خيارات، يحاول unset أولاً إلغاء ضبط متغير، وإذا فشل،\n"
+" يحاول إلغاء ضبط دالة.\n"
+" \n"
+" بعض المتغيرات لا يمكن إلغاء ضبطها؛ انظر أيضاً `readonly'.\n"
+" \n"
+" حالة الخروج:\n"
+" يعيد النجاح ما لم يتم إعطاء خيار غير صالح أو كان الاسم للقراءة فقط."
+
+#: builtins.c:1191
+msgid ""
+"Set export attribute for shell variables.\n"
+" \n"
+" Marks each NAME for automatic export to the environment of subsequently\n"
+" executed commands. If VALUE is supplied, assign VALUE before exporting.\n"
+" \n"
+" Options:\n"
+" -f\trefer to shell functions\n"
+" -n\tremove the export property from each NAME\n"
+" -p\tdisplay a list of all exported variables or functions\n"
+" \n"
+" An argument of `--' disables further option processing.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option is given or NAME is invalid."
+msgstr ""
+"ضبط سمة التصدير لمتغيرات الغلاف.\n"
+" \n"
+" يضع وسمًا على كل اسم للتصدير الآلي إلى بيئة الأوامر المنفذة\n"
+" لاحقاً. إذا تم توفير قيمة (VALUE)، يتم تعيينها قبل التصدير.\n"
+" \n"
+" الخيارات:\n"
+" -f\tالإشارة إلى دوال الغلاف\n"
+" -n\tإزالة خاصية التصدير من كل اسم\n"
+" -p\tعرض قائمة بجميع المتغيرات أو الدوال المصدرة\n"
+" \n"
+" الوسيط `--` يعطل معالجة الخيارات الإضافية.\n"
+" \n"
+" حالة الخروج:\n"
+" يعيد النجاح ما لم يتم إعطاء خيار غير صالح أو كان الاسم غير صالح."
+
+#: builtins.c:1210
+msgid ""
+"Mark shell variables as unchangeable.\n"
+" \n"
+" Mark each NAME as read-only; the values of these NAMEs may not be\n"
+" changed by subsequent assignment. If VALUE is supplied, assign VALUE\n"
+" before marking as read-only.\n"
+" \n"
+" Options:\n"
+" -a\trefer to indexed array variables\n"
+" -A\trefer to associative array variables\n"
+" -f\trefer to shell functions\n"
+" -p\tdisplay a list of all readonly variables or functions,\n"
+" \t\tdepending on whether or not the -f option is given\n"
+" \n"
+" An argument of `--' disables further option processing.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option is given or NAME is invalid."
+msgstr ""
+"وسم متغيرات الصدفة كغير قابلة للتغيير.\n"
+" \n"
+" وسم كل NAME كقراءة فقط؛ لا يجوز تغيير قيم هذه الأسماء\n"
+" بواسطة تعيين لاحق. إذا زُود بـ VALUE، عين VALUE\n"
+" قبل الوسم كقراءة فقط.\n"
+" \n"
+" الخيارات:\n"
+" -a\tأشر إلى متغيرات المصفوفة المفهرسة\n"
+" -A\tأشر إلى متغيرات المصفوفة الترابطية\n"
+" -f\tأشر إلى دوال الصدفة\n"
+" -p\tاعرض قائمة بجميع المتغيرات أو الدوال التي للقراءة فقط،\n"
+" \t\tاعتماداً على ما إذا كان خيار -f قد أُعطي أم لا\n"
+" \n"
+" محاجج `--' يعطل معالجة المزيد من الخيارات.\n"
+" \n"
+" حالة الخروج:\n"
+" يعيد النجاح ما لم يُعط خيار غير صالح أو كان NAME غير صالح."
+
+#: builtins.c:1232
+msgid ""
+"Shift positional parameters.\n"
+" \n"
+" Rename the positional parameters $N+1,$N+2 ... to $1,$2 ... If N is\n"
+" not given, it is assumed to be 1.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless N is negative or greater than $#."
+msgstr ""
+"أزح المعلمات الموضعية.\n"
+" \n"
+" أعد تسمية المعلمات الموضعية $N+1,$N+2 ... لتصبح $1,$2 ... إذا لم\n"
+" يُعط N، يُفترض أنه 1.\n"
+" \n"
+" حالة الخروج:\n"
+" يعيد النجاح ما لم يكن N سالباً أو أكبر من $#."
+
+#: builtins.c:1244 builtins.c:1260
+msgid ""
+"Execute commands from a file in the current shell.\n"
+" \n"
+" Read and execute commands from FILENAME in the current shell. If the\n"
+" -p option is supplied, the PATH argument is treated as a colon-\n"
+" separated list of directories to search for FILENAME. If -p is not\n"
+" supplied, $PATH is searched to find FILENAME. If any ARGUMENTS are\n"
+" supplied, they become the positional parameters when FILENAME is executed.\n"
+" \n"
+" Exit Status:\n"
+" Returns the status of the last command executed in FILENAME; fails if\n"
+" FILENAME cannot be read."
+msgstr ""
+"تنفيذ الأوامر من ملف في الغلاف الحالي.\n"
+" \n"
+" قراءة وتنفيذ الأوامر من اسم ملف (FILENAME) في الغلاف الحالي. إذا تم\n"
+" توفير خيار -p، يتم التعامل مع وسيط PATH كقائمة أدلة مفصولة\n"
+" بنقطتين للبحث عن FILENAME. إذا لم يتوفر -p، يتم البحث في $PATH\n"
+" عن FILENAME. إذا تم توفير أي وسائط، تصبح هي المعاملات\n"
+" الموضعية عند تنفيذ FILENAME.\n"
+" \n"
+" حالة الخروج:\n"
+" يعيد حالة آخر أمر نُفذ في FILENAME؛ ويفشل إذا تعذرت قراءة FILENAME."
+
+#: builtins.c:1277
+msgid ""
+"Suspend shell execution.\n"
+" \n"
+" Suspend the execution of this shell until it receives a SIGCONT signal.\n"
+" Unless forced, login shells and shells without job control cannot be\n"
+" suspended.\n"
+" \n"
+" Options:\n"
+" -f\tforce the suspend, even if the shell is a login shell or job\n"
+" \t\tcontrol is not enabled.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless job control is not enabled or an error occurs."
+msgstr ""
+"تعليق تنفيذ الغلاف.\n"
+" \n"
+" تعليق تنفيذ هذا الغلاف حتى يتلقى إشارة SIGCONT.\n"
+" ما لم يتم الإجبار، لا يمكن تعليق أغلفة تسجيل الدخول والأغلفة\n"
+" التي لا تدعم التحكم في المهام.\n"
+" \n"
+" الخيارات:\n"
+" -f\tإجبار التعليق، حتى لو كان الغلاف غلاف تسجيل دخول أو لم يكن\n"
+" \t\tالتحكم في المهام مفعلاً.\n"
+" \n"
+" حالة الخروج:\n"
+" يعيد النجاح ما لم يكن التحكم في المهام غير مفعل أو حدث خطأ."
+
+#: builtins.c:1295
+msgid ""
+"Evaluate conditional expression.\n"
+" \n"
+" Exits with a status of 0 (true) or 1 (false) depending on\n"
+" the evaluation of EXPR. Expressions may be unary or binary. Unary\n"
+" expressions are often used to examine the status of a file. There\n"
+" are string operators and numeric comparison operators as well.\n"
+" \n"
+" The behavior of test depends on the number of arguments. Read the\n"
+" bash manual page for the complete specification.\n"
+" \n"
+" File operators:\n"
+" \n"
+" -a FILE True if file exists.\n"
+" -b FILE True if file is block special.\n"
+" -c FILE True if file is character special.\n"
+" -d FILE True if file is a directory.\n"
+" -e FILE True if file exists.\n"
+" -f FILE True if file exists and is a regular file.\n"
+" -g FILE True if file is set-group-id.\n"
+" -h FILE True if file is a symbolic link.\n"
+" -L FILE True if file is a symbolic link.\n"
+" -k FILE True if file has its `sticky' bit set.\n"
+" -p FILE True if file is a named pipe.\n"
+" -r FILE True if file is readable by you.\n"
+" -s FILE True if file exists and is not empty.\n"
+" -S FILE True if file is a socket.\n"
+" -t FD True if FD is opened on a terminal.\n"
+" -u FILE True if the file is set-user-id.\n"
+" -w FILE True if the file is writable by you.\n"
+" -x FILE True if the file is executable by you.\n"
+" -O FILE True if the file is effectively owned by you.\n"
+" -G FILE True if the file is effectively owned by your group.\n"
+" -N FILE True if the file has been modified since it was last read.\n"
+" \n"
+" FILE1 -nt FILE2 True if file1 is newer than file2 (according to\n"
+" modification date).\n"
+" \n"
+" FILE1 -ot FILE2 True if file1 is older than file2.\n"
+" \n"
+" FILE1 -ef FILE2 True if file1 is a hard link to file2.\n"
+" \n"
+" String operators:\n"
+" \n"
+" -z STRING True if string is empty.\n"
+" \n"
+" -n STRING\n"
+" STRING True if string is not empty.\n"
+" \n"
+" STRING1 = STRING2\n"
+" True if the strings are equal.\n"
+" STRING1 != STRING2\n"
+" True if the strings are not equal.\n"
+" STRING1 < STRING2\n"
+" True if STRING1 sorts before STRING2 lexicographically.\n"
+" STRING1 > STRING2\n"
+" True if STRING1 sorts after STRING2 lexicographically.\n"
+" \n"
+" Other operators:\n"
+" \n"
+" -o OPTION True if the shell option OPTION is enabled.\n"
+" -v VAR True if the shell variable VAR is set.\n"
+" -R VAR True if the shell variable VAR is set and is a name\n"
+" reference.\n"
+" ! EXPR True if expr is false.\n"
+" EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n"
+" EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n"
+" \n"
+" arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne,\n"
+" -lt, -le, -gt, or -ge.\n"
+" \n"
+" Arithmetic binary operators return true if ARG1 is equal, not-equal,\n"
+" less-than, less-than-or-equal, greater-than, or greater-than-or-equal\n"
+" than ARG2.\n"
+" \n"
+" Exit Status:\n"
+" Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n"
+" false or an invalid argument is given."
+msgstr ""
+"تقييم تعبير شرطي.\n"
+" \n"
+" يخرج بحالة 0 (صواب) أو 1 (خطأ) بناءً على\n"
+" تقييم التعبير (EXPR). قد تكون التعبيرات أحادية أو ثنائية. تُستخدم التعبيرات\n"
+" الأحادية غالباً لفحص حالة ملف ما. كما توجد\n"
+" عوامل تشغيل للنصوص وعوامل مقارنة عددية أيضاً.\n"
+" \n"
+" يعتمد سلوك الاختبار (test) على عدد المعاملات. اقرأ صفحة دليل\n"
+" bash للحصول على التوصيف الكامل.\n"
+" \n"
+" عوامل تشغيل الملفات:\n"
+" \n"
+" -a FILE صواب إذا كان الملف موجوداً.\n"
+" -b FILE صواب إذا كان الملف ملفاً كتلويًا خاصاً.\n"
+" -c FILE صواب إذا كان الملف ملفاً محرفيًا خاصاً.\n"
+" -d FILE صواب إذا كان الملف دليلاً.\n"
+" -e FILE صواب إذا كان الملف موجوداً.\n"
+" -f FILE صواب إذا كان الملف موجوداً وكان ملفاً عادياً.\n"
+" -g FILE صواب إذا كان الملف يحمل معرّف مجموعة (set-group-id).\n"
+" -h FILE صواب إذا كان الملف وصلة رمزية.\n"
+" -L FILE صواب إذا كان الملف وصلة رمزية.\n"
+" -k FILE صواب إذا كان الملف يحمل بت 'sticky'.\n"
+" -p FILE صواب إذا كان الملف أنبوباً مسمى.\n"
+" -r FILE صواب إذا كان الملف قابلاً للقراءة من قبلك.\n"
+" -s FILE صواب إذا كان الملف موجوداً وغير فارغ.\n"
+" -S FILE صواب إذا كان الملف مقبساً (socket).\n"
+" -t FD صواب إذا كان واصف الملف (FD) مفتوحاً على طرفية.\n"
+" -u FILE صواب إذا كان الملف يحمل معرّف مستخدم (set-user-id).\n"
+" -w FILE صواب إذا كان الملف قابلاً للكتابة من قبلك.\n"
+" -x FILE صواب إذا كان الملف قابلاً للتنفيذ من قبلك.\n"
+" -O FILE صواب إذا كنت تملك الملف فعلياً.\n"
+" -G FILE صواب إذا كانت مجموعتك تملك الملف فعلياً.\n"
+" -N FILE صواب إذا عُدّل الملف منذ آخر قراءة له.\n"
+" \n"
+" FILE1 -nt FILE2 صواب إذا كان file1 أحدث من file2 (وفقاً\n"
+" لتاريخ التعديل).\n"
+" \n"
+" FILE1 -ot FILE2 صواب إذا كان file1 أقدم من file2.\n"
+" \n"
+" FILE1 -ef FILE2 صواب إذا كان file1 وصلة صلبة لـ file2.\n"
+" \n"
+" عوامل تشغيل النصوص:\n"
+" \n"
+" -z STRING صواب إذا كان النص فارغاً.\n"
+" \n"
+" -n STRING\n"
+" STRING صواب إذا لم يكن النص فارغاً.\n"
+" \n"
+" STRING1 = STRING2\n"
+" صواب إذا تساوى النصان.\n"
+" STRING1 != STRING2\n"
+" صواب إذا لم يتساو النصان.\n"
+" STRING1 < STRING2\n"
+" صواب إذا كان STRING1 يسبق STRING2 أبجدياً.\n"
+" STRING1 > STRING2\n"
+" صواب إذا كان STRING1 يلي STRING2 أبجدياً.\n"
+" \n"
+" عوامل تشغيل أخرى:\n"
+" \n"
+" -o OPTION صواب إذا كان خيار الصدفة (OPTION) مفعلاً.\n"
+" -v VAR صواب إذا كان متغير الصدفة (VAR) مضبوطاً.\n"
+" -R VAR صواب إذا كان متغير الصدفة (VAR) مضبوطاً وكان مرجع\n"
+" اسم.\n"
+" ! EXPR صواب إذا كان التعبير خطأ.\n"
+" EXPR1 -a EXPR2 صواب إذا كان كلا التعبيرين (expr1 و expr2) صواباً.\n"
+" EXPR1 -o EXPR2 صواب إذا كان أحد التعبيرين صواباً.\n"
+" \n"
+" arg1 OP arg2 اختبارات حسابية. OP هو أحد القيم -eq، -ne،\n"
+" -lt، -le، -gt، أو -ge.\n"
+" \n"
+" تعيد عوامل التشغيل الحسابية الثنائية صواباً إذا كان ARG1 يساوي، لا يساوي،\n"
+" أقل من، أقل من أو يساوي، أكبر من، أو أكبر من أو يساوي\n"
+" للقيمة ARG2.\n"
+" \n"
+" حالة الخروج:\n"
+" تعيد نجاحاً إذا قيم التعبير كصواب؛ وتفشل إذا قيم كخطأ\n"
+" أو إذا مُرر معامل غير صالح."
+
+#: builtins.c:1377
+msgid ""
+"Evaluate conditional expression.\n"
+" \n"
+" This is a synonym for the \"test\" builtin, but the last argument must\n"
+" be a literal `]', to match the opening `['."
+msgstr ""
+"تقييم تعبير شرطي.\n"
+" \n"
+" هذا مرادف للأمر المدمج \"test\"، لكن يجب أن يكون المعامل الأخير\n"
+" هو الرمز `]` حصرياً، ليطابق الرمز الافتتاحي `[`."
+
+#: builtins.c:1386
+msgid ""
+"Display process times.\n"
+" \n"
+" Prints the accumulated user and system times for the shell and all of its\n"
+" child processes.\n"
+" \n"
+" Exit Status:\n"
+" Always succeeds."
+msgstr ""
+"عرض أوقات العمليات.\n"
+" \n"
+" يطبع أوقات المستخدم والنظام المتراكمة للصدفة وجميع عملياتها\n"
+" التابعة.\n"
+" \n"
+" حالة الخروج:\n"
+" ينجح دائماً."
+
+#: builtins.c:1398
+msgid ""
+"Trap signals and other events.\n"
+" \n"
+" Defines and activates handlers to be run when the shell receives signals\n"
+" or other conditions.\n"
+" \n"
+" ACTION is a command to be read and executed when the shell receives the\n"
+" signal(s) SIGNAL_SPEC. If ACTION is absent (and a single SIGNAL_SPEC\n"
+" is supplied) or `-', each specified signal is reset to its original\n"
+" value. If ACTION is the null string each SIGNAL_SPEC is ignored by the\n"
+" shell and by the commands it invokes.\n"
+" \n"
+" If a SIGNAL_SPEC is EXIT (0) ACTION is executed on exit from the shell.\n"
+" If a SIGNAL_SPEC is DEBUG, ACTION is executed before every simple command\n"
+" and selected other commands. If a SIGNAL_SPEC is RETURN, ACTION is\n"
+" executed each time a shell function or a script run by the . or source\n"
+" builtins finishes executing. A SIGNAL_SPEC of ERR means to execute ACTION\n"
+" each time a command's failure would cause the shell to exit when the -e\n"
+" option is enabled.\n"
+" \n"
+" If no arguments are supplied, trap prints the list of commands associated\n"
+" with each trapped signal in a form that may be reused as shell input to\n"
+" restore the same signal dispositions.\n"
+" \n"
+" Options:\n"
+" -l\tprint a list of signal names and their corresponding numbers\n"
+" -p\tdisplay the trap commands associated with each SIGNAL_SPEC in a\n"
+" \t\tform that may be reused as shell input; or for all trapped\n"
+" \t\tsignals if no arguments are supplied\n"
+" -P\tdisplay the trap commands associated with each SIGNAL_SPEC. At least\n"
+" \t\tone SIGNAL_SPEC must be supplied. -P and -p cannot be used\n"
+" \t\ttogether.\n"
+" \n"
+" Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal number.\n"
+" Signal names are case insensitive and the SIG prefix is optional. A\n"
+" signal may be sent to the shell with \"kill -signal $$\".\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless a SIGSPEC is invalid or an invalid option is given."
+msgstr ""
+"اعتراض الإشارات والأحداث الأخرى.\n"
+" \n"
+" يعرّف ويفعّل معالجات للتشغيل عندما تستقبل الصدفة إشارات\n"
+" أو حالات أخرى.\n"
+" \n"
+" ACTION هو أمر للقراءة والتنفيذ عندما تستقبل الصدفة\n"
+" الإشارة (أو الإشارات) المحددة في SIGNAL_SPEC. إذا غاب ACTION (ومُرر SIGNAL_SPEC\n"
+" واحد فقط) أو كان `-` ، تعاد كل إشارة محددة إلى قيمتها\n"
+" الأصلية. إذا كان ACTION نصاً فارغاً، تتجاهل الصدفة والأوامر التي تستدعيها\n"
+" كل SIGNAL_SPEC.\n"
+" \n"
+" إذا كان SIGNAL_SPEC هو EXIT (0)، يُنفذ ACTION عند الخروج من الصدفة.\n"
+" إذا كان SIGNAL_SPEC هو DEBUG، يُنفذ ACTION قبل كل أمر بسيط\n"
+" وأوامر أخرى مختارة. للقيام بعملية تنقيح (debug). إذا كان SIGNAL_SPEC هو RETURN، يُنفذ\n"
+" ACTION في كل مرة ينتهي فيها تنفيذ دالة صدفة أو سكربت يتم تشغيله بواسطة الأوامر المدمجة . أو source.\n"
+" SIGNAL_SPEC بقيمة ERR يعني تنفيذ ACTION في كل مرة يسبب فيها فشل أمر خروج الصدفة\n"
+" عندما يكون خيار -e مفعلاً.\n"
+" \n"
+" إذا لم تُمرر أي معاملات، يطبع trap قائمة الأوامر المرتبطة\n"
+" بكل إشارة معترضة بصيغة يمكن إعادة استخدامها كدخل للصدفة لاستعادة\n"
+" نفس ترتيبات الإشارات.\n"
+" \n"
+" الخيارات:\n"
+" -l\tطباعة قائمة بأسماء الإشارات والأرقام المقابلة لها\n"
+" -p\tعرض أوامر الاعتراض (trap) المرتبطة بكل SIGNAL_SPEC بصيغة\n"
+" \t\tيمكن إعادة استخدامها كدخل للصدفة؛ أو لكل الإشارات المعترضة\n"
+" \t\tإذا لم تُمرر معاملات\n"
+" -P\tعرض أوامر الاعتراض المرتبطة بكل SIGNAL_SPEC. يجب تقديم\n"
+" \t\tSIGNAL_SPEC واحد على الأقل. لا يمكن استخدام -P و -p معاً.\n"
+" \n"
+" كل SIGNAL_SPEC هو إما اسم إشارة في <signal.h> أو رقم إشارة.\n"
+" أسماء الإشارات غير حساسة لحالة الأحرف والبادئة SIG اختيارية.\n"
+" يمكن إرسال إشارة للصدفة باستخدام \"kill -signal $$\".\n"
+" \n"
+" حالة الخروج:\n"
+" يعيد نجاحاً ما لم يكن SIGSPEC غير صالح أو مُرر خيار غير صالح."
+
+#: builtins.c:1441
+msgid ""
+"Display information about command type.\n"
+" \n"
+" For each NAME, indicate how it would be interpreted if used as a\n"
+" command name.\n"
+" \n"
+" Options:\n"
+" -a\tdisplay all locations containing an executable named NAME;\n"
+" \t\tincludes aliases, builtins, and functions, if and only if\n"
+" \t\tthe `-p' option is not also used\n"
+" -f\tsuppress shell function lookup\n"
+" -P\tforce a PATH search for each NAME, even if it is an alias,\n"
+" \t\tbuiltin, or function, and returns the name of the disk file\n"
+" \t\tthat would be executed\n"
+" -p\treturns either the name of the disk file that would be executed,\n"
+" \t\tor nothing if `type -t NAME' would not return `file'\n"
+" -t\toutput a single word which is one of `alias', `keyword',\n"
+" \t\t`function', `builtin', `file' or `', if NAME is an alias,\n"
+" \t\tshell reserved word, shell function, shell builtin, disk file,\n"
+" \t\tor not found, respectively\n"
+" \n"
+" Arguments:\n"
+" NAME\tCommand name to be interpreted.\n"
+" \n"
+" Exit Status:\n"
+" Returns success if all of the NAMEs are found; fails if any are not found."
+msgstr ""
+"عرض معلومات حول نوع الأمر.\n"
+" \n"
+" لكل NAME، وضح كيف سيتم تفسيره إذا استُخدم\n"
+" كاسم أمر.\n"
+" \n"
+" الخيارات:\n"
+" -a\tعرض كافة المواقع التي تحتوي على ملف تنفيذي باسم NAME؛\n"
+" \t\tيتضمن الأسماء المستعارة، الأوامر المدمجة، والدوال، فقط وحصرياً إذا\n"
+" \t\tلم يُستخدم خيار `-p' أيضاً\n"
+" -f\tمنع البحث عن دوال الصدفة\n"
+" -P\tفرض البحث في PATH عن كل NAME، حتى لو كان اسماً مستعاراً أو\n"
+" \t\tأمراً مدمجاً أو دالة، ويعيد اسم ملف القرص\n"
+" \t\tالذي كان سيُنفذ\n"
+" -p\tيعيد إما اسم ملف القرص الذي كان سيُنفذ،\n"
+" \t\tأو لا شيء إذا كان `type -t NAME' لن يعيد `file'\n"
+" -t\tإخراج كلمة واحدة تكون إما `alias' أو `keyword' أو\n"
+" \t\t`function' أو `builtin' أو `file' أو ` '، إذا كان NAME اسماً مستعاراً،\n"
+" \t\tأو كلمة محجوزة للصدفة، أو دالة صدفة، أو أمراً مدمجاً، أو ملف قرص،\n"
+" \t\tأو غير موجود، على التوالي\n"
+" \n"
+" المعاملات:\n"
+" NAME\tاسم الأمر المراد تفسيره.\n"
+" \n"
+" حالة الخروج:\n"
+" يعيد نجاحاً إذا عُثر على جميع الأسماء (NAMEs)؛ ويفشل إذا لم يُعثر على أي منها."
+
+#: builtins.c:1472
+msgid ""
+"Modify shell resource limits.\n"
+" \n"
+" Provides control over the resources available to the shell and processes\n"
+" it creates, on systems that allow such control.\n"
+" \n"
+" Options:\n"
+" -S\tuse the `soft' resource limit\n"
+" -H\tuse the `hard' resource limit\n"
+" -a\tall current limits are reported\n"
+" -b\tthe socket buffer size\n"
+" -c\tthe maximum size of core files created\n"
+" -d\tthe maximum size of a process's data segment\n"
+" -e\tthe maximum scheduling priority (`nice')\n"
+" -f\tthe maximum size of files written by the shell and its children\n"
+" -i\tthe maximum number of pending signals\n"
+" -k\tthe maximum number of kqueues allocated for this process\n"
+" -l\tthe maximum size a process may lock into memory\n"
+" -m\tthe maximum resident set size\n"
+" -n\tthe maximum number of open file descriptors\n"
+" -p\tthe pipe buffer size\n"
+" -q\tthe maximum number of bytes in POSIX message queues\n"
+" -r\tthe maximum real-time scheduling priority\n"
+" -s\tthe maximum stack size\n"
+" -t\tthe maximum amount of cpu time in seconds\n"
+" -u\tthe maximum number of user processes\n"
+" -v\tthe size of virtual memory\n"
+" -x\tthe maximum number of file locks\n"
+" -P\tthe maximum number of pseudoterminals\n"
+" -R\tthe maximum time a real-time process can run before blocking\n"
+" -T\tthe maximum number of threads\n"
+" \n"
+" Not all options are available on all platforms.\n"
+" \n"
+" If LIMIT is given, it is the new value of the specified resource; the\n"
+" special LIMIT values `soft', `hard', and `unlimited' stand for the\n"
+" current soft limit, the current hard limit, and no limit, respectively.\n"
+" Otherwise, the current value of the specified resource is printed. If\n"
+" no option is given, then -f is assumed.\n"
+" \n"
+" Values are in 1024-byte increments, except for -t, which is in seconds;\n"
+" -p, which is in increments of 512 bytes; -R, which is in microseconds;\n"
+" -b, which is in bytes; and -e, -i, -k, -n, -q, -r, -u, -x, and -P,\n"
+" which accept unscaled values.\n"
+" \n"
+" When in posix mode, values supplied with -c and -f are in 512-byte\n"
+" increments.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option is supplied or an error occurs."
+msgstr ""
+"تعديل حدود موارد الصدفة.\n"
+" \n"
+" يوفر تحكمًا في الموارد المتاحة للصدفة والعمليات التي\n"
+" تنشئها، على الأنظمة التي تسمح بهذا التحكم.\n"
+" \n"
+" الخيارات:\n"
+" -S\tاستخدام حد المورد 'المرن'\n"
+" -H\tاستخدام حد المورد 'الصارم'\n"
+" -a\tالإبلاغ عن كافة الحدود الحالية\n"
+" -b\tحجم مخزن المقبس (socket buffer)\n"
+" -c\tالحد الأقصى لحجم ملفات اللب (core files) المنشأة\n"
+" -d\tالحد الأقصى لحجم قطاع بيانات العملية\n"
+" -e\tأقصى أولوية لجدولة المهام (`nice')\n"
+" -f\tالحد الأقصى لحجم الملفات المكتوبة بواسطة الصدفة وتوابعها\n"
+" -i\tالحد الأقصى لعدد الإشارات المعلقة\n"
+" -k\tالحد الأقصى لعدد طوابير kqueues المخصصة لهذه العملية\n"
+" -l\tأقصى حجم يمكن للعملية قفله في الذاكرة\n"
+" -m\tأقصى حجم لمجموعة العمليات المقيمة في الذاكرة (resident set)\n"
+" -n\tالحد الأقصى لعدد واصفات الملفات المفتوحة\n"
+" -p\tحجم مخزن الأنبوب (pipe buffer)\n"
+" -q\tالحد الأقصى لعدد البايتات في طوابير رسائل POSIX\n"
+" -r\tأقصى أولوية لجدولة المهام في الوقت الحقيقي\n"
+" -s\tأقصى حجم للمكدس (stack)\n"
+" -t\tأقصى قدر من وقت المعالج بالثواني\n"
+" -u\tأقصى عدد لعمليات المستخدم\n"
+" -v\tحجم الذاكرة الافتراضية\n"
+" -x\tالحد الأقصى لعدد أقفال الملفات\n"
+" -P\tأقصى عدد لمحطات الطرفية الوهمية\n"
+" -R\tأقصى وقت يمكن لعملية الوقت الحقيقي تشغيله قبل التوقف\n"
+" -T\tأقصى عدد للخيوط (threads)\n"
+" \n"
+" ليست كل الخيارات متاحة على جميع المنصات.\n"
+" \n"
+" إذا أعطي 'الحد'، فإنه يمثل القيمة الجديدة للمورد المحدد؛ قيم 'الحد'\n"
+" الخاصة 'soft' و 'hard' و 'unlimited' تعني الحد المرن الحالي، والحد\n"
+" الصارم الحالي، وعدم وجود حد، على التوالي.\n"
+" خلاف ذلك، تُطبع القيمة الحالية للمورد المحدد. إذا لم يُعط خيار،\n"
+" يفترض استخدام -f.\n"
+" \n"
+" تكون القيم بزيادات قدرها 1024 بايت، باستثناء -t التي تكون بالثواني؛\n"
+" و -p التي تكون بزيادات قدرها 512 بايت؛ و -R التي تكون بالميكروثانية؛\n"
+" و -b التي تكون بالبايت؛ و -e و -i و -k و -n و -q و -r و -u و -x و -P،\n"
+" التي تقبل قيمًا غير مقاسة.\n"
+" \n"
+" عند التواجد في وضع posix، تكون القيم المزودة مع -c و -f بزيادات قدرها 512 بايت.\n"
+" \n"
+" حالة الخروج:\n"
+" يعيد حالة النجاح إلا إذا زود بخيار غير صالح أو حدث خطأ."
+
+#: builtins.c:1527
+msgid ""
+"Display or set file mode mask.\n"
+" \n"
+" Sets the user file-creation mask to MODE. If MODE is omitted, prints\n"
+" the current value of the mask.\n"
+" \n"
+" If MODE begins with a digit, it is interpreted as an octal number;\n"
+" otherwise it is a symbolic mode string like that accepted by chmod(1).\n"
+" \n"
+" Options:\n"
+" -p\tif MODE is omitted, output in a form that may be reused as input\n"
+" -S\tmakes the output symbolic; otherwise an octal number is output\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless MODE is invalid or an invalid option is given."
+msgstr ""
+"عرض أو ضبط قناع نمط الملف.\n"
+" \n"
+" يضبط قناع إنشاء ملف المستخدم على 'النمط'. إذا حُذف 'النمط'، يطبع\n"
+" القيمة الحالية للقناع.\n"
+" \n"
+" إذا بدأ 'النمط' برقم، يفسر كرقم ثماني؛\n"
+" وإلا فإنه سلسلة نمط رمزية مثل تلك التي يقبلها chmod(1).\n"
+" \n"
+" الخيارات:\n"
+" -p\tإذا حُذف 'النمط'، يكون المخرج في شكل يمكن إعادة استخدامه كمدخل\n"
+" -S\tيجعل المخرج رمزيًا؛ وخلاف ذلك يخرج رقم ثماني\n"
+" \n"
+" حالة الخروج:\n"
+" يعيد حالة النجاح إلا إذا كان 'النمط' غير صالح أو أعطي خيار غير صالح."
+
+#: builtins.c:1547
+msgid ""
+"Wait for job completion and return exit status.\n"
+" \n"
+" Waits for each process identified by an ID, which may be a process ID or a\n"
+" job specification, and reports its termination status. If ID is not\n"
+" given, waits for all currently active child processes, and the return\n"
+" status is zero. If ID is a job specification, waits for all processes\n"
+" in that job's pipeline.\n"
+" \n"
+" If the -n option is supplied, waits for a single job from the list of IDs,\n"
+" or, if no IDs are supplied, for the next job to complete and returns its\n"
+" exit status.\n"
+" \n"
+" If the -p option is supplied, the process or job identifier of the job\n"
+" for which the exit status is returned is assigned to the variable VAR\n"
+" named by the option argument. The variable will be unset initially, before\n"
+" any assignment. This is useful only when the -n option is supplied.\n"
+" \n"
+" If the -f option is supplied, and job control is enabled, waits for the\n"
+" specified ID to terminate, instead of waiting for it to change status.\n"
+" \n"
+" Exit Status:\n"
+" Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+" option is given, or if -n is supplied and the shell has no unwaited-for\n"
+" children."
+msgstr ""
+"انتظار اكتمال المهمة وإرجاع حالة الخروج.\n"
+" \n"
+" ينتظر كل عملية يحددها المعرف، والذي قد يكون معرف عملية أو مواصفة مهمة،\n"
+" ويبلغ عن حالة إنهائها. إذا لم يعط المعرف، ينتظر كافة العمليات التابعة النشطة حاليًا،\n"
+" وتكون حالة العودة صفرًا. إذا كان المعرف مواصفة مهمة، ينتظر كافة العمليات\n"
+" في تسلسل أنابيب تلك المهمة.\n"
+" \n"
+" إذا زود الخيار -n، ينتظر مهمة واحدة من قائمة المعرفات،\n"
+" أو إذا لم تذكر معرفات، ينتظر المهمة التالية لتكتمل ويعيد حالة خروجها.\n"
+" \n"
+" إذا زود الخيار -p، يسند معرف العملية أو المهمة التي أعيدت حالة خروجها\n"
+" إلى المتغير VAR المسمى في وسيط الخيار. يلغى تعيين المتغير في البداية، قبل\n"
+" أي إسناد. هذا مفيد فقط عند تزويد الخيار -n.\n"
+" \n"
+" إذا زود الخيار -f، وفُعّل التحكم في المهام، ينتظر انتهاء المعرف المحدد،\n"
+" بدلاً من انتظار تغير حالته.\n"
+" \n"
+" حالة الخروج:\n"
+" يعيد حالة آخر معرف؛ يفشل إذا كان المعرف غير صالح أو أعطي خيار غير صالح،\n"
+" أو إذا زود -n ولم يكن لدى الصدفة أي توابع لم يتم انتظارهم."
+
+#: builtins.c:1578
+msgid ""
+"Wait for process completion and return exit status.\n"
+" \n"
+" Waits for each process specified by a PID and reports its termination status.\n"
+" If PID is not given, waits for all currently active child processes,\n"
+" and the return status is zero. PID must be a process ID.\n"
+" \n"
+" Exit Status:\n"
+" Returns the status of the last PID; fails if PID is invalid or an invalid\n"
+" option is given."
+msgstr ""
+"انتظار اكتمال العملية وإرجاع حالة الخروج.\n"
+" \n"
+" ينتظر كل عملية محددة بواسطة PID ويبلغ عن حالة إنهائها.\n"
+" إذا لم يعط PID، ينتظر كافة العمليات التابعة النشطة حاليًا،\n"
+" وتكون حالة العودة صفرًا. يجب أن يكون PID معرف عملية.\n"
+" \n"
+" حالة الخروج:\n"
+" يعيد حالة آخر PID؛ يفشل إذا كان PID غير صالح أو أعطي خيار غير صالح."
+
+#: builtins.c:1593
+msgid ""
+"Execute PIPELINE, which can be a simple command, and negate PIPELINE's\n"
+" return status.\n"
+" \n"
+" Exit Status:\n"
+" The logical negation of PIPELINE's return status."
+msgstr ""
+"تنفيذ تسلسل الأنابيب، والذي يمكن أن يكون أمرًا بسيطًا، وعكس حالة عودة\n"
+" تسلسل الأنابيب.\n"
+" \n"
+" حالة الخروج:\n"
+" النفي المنطقي لحالة عودة تسلسل الأنابيب."
+
+#: builtins.c:1603
+msgid ""
+"Execute commands for each member in a list.\n"
+" \n"
+" The `for' loop executes a sequence of commands for each member in a\n"
+" list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is\n"
+" assumed. For each element in WORDS, NAME is set to that element, and\n"
+" the COMMANDS are executed.\n"
+" \n"
+" Exit Status:\n"
+" Returns the status of the last command executed."
+msgstr ""
+"نفذ أوامر لكل عضو في قائمة.\n"
+" \n"
+" تنفذ حلقة `for' تسلسلاً من الأوامر لكل عضو في\n"
+" قائمة من العناصر. إذا لم يتواجد `in WORDS ...;'، فإنه يُفترض\n"
+" `in \"$@\"'. لكل عنصر في WORDS، يُضبط NAME على ذلك العنصر، و\n"
+" تُنفذ الأوامر COMMANDS.\n"
+" \n"
+" حالة الخروج:\n"
+" يعيد حالة آخر أمر نُفذ."
+
+#: builtins.c:1617
+msgid ""
+"Arithmetic for loop.\n"
+" \n"
+" Equivalent to\n"
+" \t(( EXP1 ))\n"
+" \twhile (( EXP2 )); do\n"
+" \t\tCOMMANDS\n"
+" \t\t(( EXP3 ))\n"
+" \tdone\n"
+" EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is\n"
+" omitted, it behaves as if it evaluates to 1.\n"
+" \n"
+" Exit Status:\n"
+" Returns the status of the last command executed."
+msgstr ""
+"حلقة تكرار حسابية (for).\n"
+" \n"
+" تكافئ\n"
+" \t(( EXP1 ))\n"
+" \twhile (( EXP2 )); do\n"
+" \t\tالأوامر\n"
+" \t\t(( EXP3 ))\n"
+" \tdone\n"
+" EXP1 و EXP2 و EXP3 تعبيرات حسابية. إذا حُذف أي تعبير،\n"
+" يتصرف وكأنه يساوي 1.\n"
+" \n"
+" حالة الخروج:\n"
+" يعيد حالة آخر أمر نُفذ."
+
+#: builtins.c:1635
+msgid ""
+"Select words from a list and execute commands.\n"
+" \n"
+" The WORDS are expanded, generating a list of words. The\n"
+" set of expanded words is printed on the standard error, each\n"
+" preceded by a number. If `in WORDS' is not present, `in \"$@\"'\n"
+" is assumed. The PS3 prompt is then displayed and a line read\n"
+" from the standard input. If the line consists of the number\n"
+" corresponding to one of the displayed words, then NAME is set\n"
+" to that word. If the line is empty, WORDS and the prompt are\n"
+" redisplayed. If EOF is read, the command completes. Any other\n"
+" value read causes NAME to be set to null. The line read is saved\n"
+" in the variable REPLY. COMMANDS are executed after each selection\n"
+" until a break command is executed.\n"
+" \n"
+" Exit Status:\n"
+" Returns the status of the last command executed."
+msgstr ""
+"اختيار كلمات من قائمة وتنفيذ الأوامر.\n"
+" \n"
+" تُوسّع الكلمات، مما يولد قائمة كلمات. تُطبع مجموعة الكلمات\n"
+" الموسعة على الخطأ القياسي، كل منها مسبوق برقم. إذا لم يوجد\n"
+" `in WORDS` فإنه يُفترض وجود `in \"$@\"`. ثم يُعرض محث PS3\n"
+" ويُقرأ سطر من المدخل القياسي. إذا تألف السطر من الرقم\n"
+" المقابل لإحدى الكلمات المعروضة، يُضبط NAME على تلك الكلمة.\n"
+" إذا كان السطر فارغًا، يُعاد عرض الكلمات والمحث. إذا قُرئ\n"
+" EOF، يكتمل الأمر. أي قيمة أخرى مقروءة تتسبب في ضبط NAME\n"
+" على قيمة فارغة. يُحفظ السطر المقروء في المتغير REPLY.\n"
+" تُنفذ الأوامر بعد كل اختيار حتى يُنفذ أمر break.\n"
+" \n"
+" حالة الخروج:\n"
+" يعيد حالة آخر أمر نُفذ."
+
+#: builtins.c:1656
+msgid ""
+"Report time consumed by pipeline's execution.\n"
+" \n"
+" Execute PIPELINE and print a summary of the real time, user CPU time,\n"
+" and system CPU time spent executing PIPELINE when it terminates.\n"
+" \n"
+" Options:\n"
+" -p\tprint the timing summary in the portable Posix format\n"
+" \n"
+" The value of the TIMEFORMAT variable is used as the output format.\n"
+" \n"
+" Exit Status:\n"
+" The return status is the return status of PIPELINE."
+msgstr ""
+"الإبلاغ عن الوقت المستهلك في تنفيذ تسلسل الأنابيب.\n"
+" \n"
+" تنفيذ تسلسل الأنابيب وطباعة ملخص للوقت الحقيقي، ووقت معالج المستخدم،\n"
+" ووقت معالج النظام المستغرق في تنفيذ تسلسل الأنابيب عند انتهائه.\n"
+" \n"
+" الخيارات:\n"
+" -p\tطباعة ملخص التوقيت بتنسيق Posix المنقول\n"
+" \n"
+" تستخدم قيمة المتغير TIMEFORMAT كتنسيق للمخرج.\n"
+" \n"
+" حالة الخروج:\n"
+" حالة العودة هي حالة عودة تسلسل الأنابيب."
+
+#: builtins.c:1673
+msgid ""
+"Execute commands based on pattern matching.\n"
+" \n"
+" Selectively execute COMMANDS based upon WORD matching PATTERN. The\n"
+" `|' is used to separate multiple patterns.\n"
+" \n"
+" Exit Status:\n"
+" Returns the status of the last command executed."
+msgstr ""
+"نفذ الأوامر بناءً على مطابقة الأنماط.\n"
+" \n"
+" نفذ COMMANDS اختيارياً بناءً على مطابقة WORD لـ PATTERN. يُستخدم\n"
+" `|' للفصل بين أنماط متعددة.\n"
+" \n"
+" حالة الخروج:\n"
+" يعيد حالة آخر أمر نُفذ."
+
+#: builtins.c:1685
+msgid ""
+"Execute commands based on conditional.\n"
+" \n"
+" The `if COMMANDS' list is executed. If its exit status is zero, then the\n"
+" `then COMMANDS' list is executed. Otherwise, each `elif COMMANDS' list is\n"
+" executed in turn, and if its exit status is zero, the corresponding\n"
+" `then COMMANDS' list is executed and the if command completes. Otherwise,\n"
+" the `else COMMANDS' list is executed, if present. The exit status of the\n"
+" entire construct is the exit status of the last command executed, or zero\n"
+" if no condition tested true.\n"
+" \n"
+" Exit Status:\n"
+" Returns the status of the last command executed."
+msgstr ""
+"نفذ الأوامر بناءً على شرط.\n"
+" \n"
+" تُنفذ قائمة `if COMMANDS'. إذا كانت حالة خروجها صفراً، فإنه\n"
+" تُنفذ قائمة `then COMMANDS'. بخلاف ذلك، تُنفذ كل قائمة `elif COMMANDS'\n"
+" بالدور، وإذا كانت حالة خروجها صفراً، تُنفذ قائمة `then COMMANDS'\n"
+" المقابلة ويكتمل أمر if. بخلاف ذلك، تُنفذ قائمة `else COMMANDS'،\n"
+" إذا وجدت. حالة خروج البنية بأكملها هي حالة خروج آخر أمر نُفذ،\n"
+" أو صفر إذا لم يُختبر أي شرط كصحيح.\n"
+" \n"
+" حالة الخروج:\n"
+" يعيد حالة آخر أمر نُفذ."
+
+#: builtins.c:1702
+msgid ""
+"Execute commands as long as a test succeeds.\n"
+" \n"
+" Expand and execute COMMANDS-2 as long as the final command in COMMANDS has\n"
+" an exit status of zero.\n"
+" \n"
+" Exit Status:\n"
+" Returns the status of the last command executed."
+msgstr ""
+"تنفيذ الأوامر ما دام الاختبار ناجحًا.\n"
+" \n"
+" توسيع وتنفيذ COMMANDS-2 ما دام الأمر الأخير في COMMANDS له حالة خروج صفر.\n"
+" \n"
+" حالة الخروج:\n"
+" يعيد حالة آخر أمر نُفذ."
+
+#: builtins.c:1714
+msgid ""
+"Execute commands as long as a test does not succeed.\n"
+" \n"
+" Expand and execute COMMANDS-2 as long as the final command in COMMANDS has\n"
+" an exit status which is not zero.\n"
+" \n"
+" Exit Status:\n"
+" Returns the status of the last command executed."
+msgstr ""
+"تنفيذ الأوامر ما دام الاختبار غير ناجح.\n"
+" \n"
+" توسيع وتنفيذ COMMANDS-2 ما دام الأمر الأخير في COMMANDS له حالة خروج غير صفرية.\n"
+" \n"
+" حالة الخروج:\n"
+" يعيد حالة آخر أمر نُفذ."
+
+#: builtins.c:1726
+msgid ""
+"Create a coprocess named NAME.\n"
+" \n"
+" Execute COMMAND asynchronously, with the standard output and standard\n"
+" input of the command connected via a pipe to file descriptors assigned\n"
+" to indices 0 and 1 of an array variable NAME in the executing shell.\n"
+" The default NAME is \"COPROC\".\n"
+" \n"
+" Exit Status:\n"
+" The coproc command returns an exit status of 0."
+msgstr ""
+"إنشاء عملية مصاحبة (coprocess) باسم NAME.\n"
+" \n"
+" تنفيذ COMMAND بشكل غير متزامن، مع ربط المخرجات القياسية والمدخلات\n"
+" القياسية للأمر عبر أنبوب بواصفات ملفات (file descriptors) مسندة\n"
+" إلى الفهرسين 0 و 1 في متغير المصفوفة NAME في غلاف التنفيذ.\n"
+" الاسم المبدئي هو \"COPROC\".\n"
+" \n"
+" حالة الخروج:\n"
+" يُرجع الأمر coproc حالة الخروج 0."
+
+#: builtins.c:1740
+msgid ""
+"Define shell function.\n"
+" \n"
+" Create a shell function named NAME. When invoked as a simple command,\n"
+" NAME runs COMMANDs in the calling shell's context. When NAME is invoked,\n"
+" the arguments are passed to the function as $1...$n, and the function's\n"
+" name is in $FUNCNAME.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless NAME is readonly."
+msgstr ""
+"عرف دالة صدفة.\n"
+" \n"
+" أنشئ دالة صدفة تسمى NAME. عند استدعائها كأمر بسيط،\n"
+" يشغل NAME أوامر COMMANDs في سياق الصدفة المستدعِية. عندما يُستدعى NAME،\n"
+" تُمرر المحاجج إلى الدالة كـ $1...$n، ويكون اسم الدالة\n"
+" في $FUNCNAME.\n"
+" \n"
+" حالة الخروج:\n"
+" يعيد النجاح ما لم يكن NAME للقراءة فقط."
+
+#: builtins.c:1754
+msgid ""
+"Group commands as a unit.\n"
+" \n"
+" Run a set of commands in a group. This is one way to redirect an\n"
+" entire set of commands.\n"
+" \n"
+" Exit Status:\n"
+" Returns the status of the last command executed."
+msgstr ""
+"اجمع الأوامر كوحدة واحدة.\n"
+" \n"
+" شغل مجموعة من الأوامر في زمرة. هذه إحدى الطرق لإعادة توجيه\n"
+" مجموعة كاملة من الأوامر.\n"
+" \n"
+" حالة الخروج:\n"
+" يعيد حالة آخر أمر نُفذ."
+
+#: builtins.c:1766
+msgid ""
+"Resume job in foreground.\n"
+" \n"
+" Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n"
+" stopped or background job. JOB_SPEC can specify either a job name\n"
+" or a job number. Following JOB_SPEC with a `&' places the job in\n"
+" the background, as if the job specification had been supplied as an\n"
+" argument to `bg'.\n"
+" \n"
+" Exit Status:\n"
+" Returns the status of the resumed job."
+msgstr ""
+"استئناف المهمة في الواجهة.\n"
+" \n"
+" يكافئ معامل JOB_SPEC للأمر `fg'. يستأنف مهمة\n"
+" متوقفة أو في الخلفية. يمكن أن يحدد JOB_SPEC إما اسم مهمة\n"
+" أو رقم مهمة. إلحاق JOB_SPEC بـ `&' يضع المهمة في\n"
+" الخلفية، كما لو كانت مواصفات المهمة قد قُدمت كمعامل\n"
+" للأمر `bg'.\n"
+" \n"
+" حالة الخروج:\n"
+" يُرجع حالة المهمة المستأنفة."
+
+#: builtins.c:1781
+msgid ""
+"Evaluate arithmetic expression.\n"
+" \n"
+" The EXPRESSION is evaluated according to the rules for arithmetic\n"
+" evaluation. Equivalent to `let \"EXPRESSION\"'.\n"
+" \n"
+" Exit Status:\n"
+" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
+msgstr ""
+"تقييم التعبير الحسابي.\n"
+" \n"
+" يتم تقييم EXPRESSION وفقاً لقواعد التقييم\n"
+" الحسابي. ويُكافئ `let \"EXPRESSION\"'.\n"
+" \n"
+" حالة الخروج:\n"
+" يُرجع 1 إذا كانت قيمة EXPRESSION هي 0؛ ويُرجع 0 في الحالات الأخرى."
+
+#: builtins.c:1793
+msgid ""
+"Execute conditional command.\n"
+" \n"
+" Returns a status of 0 or 1 depending on the evaluation of the conditional\n"
+" expression EXPRESSION. Expressions are composed of the same primaries used\n"
+" by the `test' builtin, and may be combined using the following operators:\n"
+" \n"
+" ( EXPRESSION )\tReturns the value of EXPRESSION\n"
+" ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n"
+" EXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false\n"
+" EXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false\n"
+" \n"
+" When the `==' and `!=' operators are used, the string to the right of\n"
+" the operator is used as a pattern and pattern matching is performed.\n"
+" When the `=~' operator is used, the string to the right of the operator\n"
+" is matched as a regular expression.\n"
+" \n"
+" The && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n"
+" determine the expression's value.\n"
+" \n"
+" Exit Status:\n"
+" 0 or 1 depending on value of EXPRESSION."
+msgstr ""
+"تنفيذ أمر شرطي.\n"
+" \n"
+" يُرجع الحالة 0 أو 1 بناءً على تقييم التعبير الشرطي\n"
+" (EXPRESSION). تتكون التعبيرات من نفس العناصر الأساسية المستخدمة\n"
+" في الأمر المدمج `test` ، ويمكن دمجها باستخدام العوامل التالية:\n"
+" \n"
+" ( EXPRESSION )\tيُرجع قيمة التعبير\n"
+" ! EXPRESSION\t\tصحيح إذا كان التعبير خاطئاً؛ وإلا فخاطئ\n"
+" EXPR1 && EXPR2\tصحيح إذا كان كل من EXPR1 و EXPR2 صحيحين؛ وإلا فخاطئ\n"
+" EXPR1 || EXPR2\tصحيح إذا كان أي من EXPR1 أو EXPR2 صحيحاً؛ وإلا فخاطئ\n"
+" \n"
+" عند استخدام عاملي `==` و `!=` ، يتم استخدام السلسلة النصية التي على يمين\n"
+" العامل كنمط ويتم إجراء مطابقة الأنماط.\n"
+" عند استخدام عامل `=~` ، يتم مطابقة السلسلة النصية التي على يمين العامل\n"
+" كتعبير نمطي.\n"
+" \n"
+" لا يقوم عاملا && و || بتقييم EXPR2 إذا كان EXPR1 كافياً\n"
+" لتحديد قيمة التعبير.\n"
+" \n"
+" حالة الخروج:\n"
+" 0 أو 1 بناءً على قيمة EXPRESSION."
+
+#: builtins.c:1819
+msgid ""
+"Common shell variable names and usage.\n"
+" \n"
+" BASH_VERSION\tVersion information for this Bash.\n"
+" CDPATH\tA colon-separated list of directories to search\n"
+" \t\tfor directories given as arguments to `cd'.\n"
+" GLOBIGNORE\tA colon-separated list of patterns describing filenames to\n"
+" \t\tbe ignored by pathname expansion.\n"
+" HISTFILE\tThe name of the file where your command history is stored.\n"
+" HISTFILESIZE\tThe maximum number of lines this file can contain.\n"
+" HISTSIZE\tThe maximum number of history lines that a running\n"
+" \t\tshell can access.\n"
+" HOME\tThe complete pathname to your login directory.\n"
+" HOSTNAME\tThe name of the current host.\n"
+" HOSTTYPE\tThe type of CPU this version of Bash is running under.\n"
+" IGNOREEOF\tControls the action of the shell on receipt of an EOF\n"
+" \t\tcharacter as the sole input. If set, then the value\n"
+" \t\tof it is the number of EOF characters that can be seen\n"
+" \t\tin a row on an empty line before the shell will exit\n"
+" \t\t(default 10). When unset, EOF signifies the end of input.\n"
+" MACHTYPE\tA string describing the current system Bash is running on.\n"
+" MAILCHECK\tHow often, in seconds, Bash checks for new mail.\n"
+" MAILPATH\tA colon-separated list of filenames which Bash checks\n"
+" \t\tfor new mail.\n"
+" OSTYPE\tThe version of Unix this version of Bash is running on.\n"
+" PATH\tA colon-separated list of directories to search when\n"
+" \t\tlooking for commands.\n"
+" PROMPT_COMMAND\tA command to be executed before the printing of each\n"
+" \t\tprimary prompt.\n"
+" PS1\t\tThe primary prompt string.\n"
+" PS2\t\tThe secondary prompt string.\n"
+" PWD\t\tThe full pathname of the current directory.\n"
+" SHELLOPTS\tA colon-separated list of enabled shell options.\n"
+" TERM\tThe name of the current terminal type.\n"
+" TIMEFORMAT\tThe output format for timing statistics displayed by the\n"
+" \t\t`time' reserved word.\n"
+" auto_resume\tNon-null means a command word appearing on a line by\n"
+" \t\titself is first looked for in the list of currently\n"
+" \t\tstopped jobs. If found there, that job is foregrounded.\n"
+" \t\tA value of `exact' means that the command word must\n"
+" \t\texactly match a command in the list of stopped jobs. A\n"
+" \t\tvalue of `substring' means that the command word must\n"
+" \t\tmatch a substring of the job. Any other value means that\n"
+" \t\tthe command must be a prefix of a stopped job.\n"
+" histchars\tCharacters controlling history expansion and quick\n"
+" \t\tsubstitution. The first character is the history\n"
+" \t\tsubstitution character, usually `!'. The second is\n"
+" \t\tthe `quick substitution' character, usually `^'. The\n"
+" \t\tthird is the `history comment' character, usually `#'.\n"
+" HISTIGNORE\tA colon-separated list of patterns used to decide which\n"
+" \t\tcommands should be saved on the history list.\n"
+msgstr ""
+"أسماء متغيرات الصدفة الشائعة واستخداماتها.\n"
+" \n"
+" BASH_VERSION\tمعلومات الإصدار لنسخة باش (Bash) هذه.\n"
+" CDPATH\tقائمة مسارات مفصولة بنقطتين للبحث عن\n"
+" \t\tالمجلدات المعطاة كمعاملات للأمر `cd`.\n"
+" GLOBIGNORE\tقائمة أنماط مفصولة بنقطتين تصف أسماء الملفات التي\n"
+" \t\tيهملها توسيع مسار الملف.\n"
+" HISTFILE\tاسم الملف الذي تُخزن فيه محفوظات الأوامر.\n"
+" HISTFILESIZE\tأقصى عدد من الأسطر يمكن أن يحتويها هذا الملف.\n"
+" HISTSIZE\tأقصى عدد من أسطر المحفوظات التي يمكن للصدفة\n"
+" \t\tالجارية الوصول إليها.\n"
+" HOME\tالمسار الكامل لمجلد تسجيل الدخول الخاص بك.\n"
+" HOSTNAME\tاسم المضيف الحالي.\n"
+" HOSTTYPE\tنوع المعالج الذي تعمل عليه نسخة باش هذه.\n"
+" IGNOREEOF\tتتحكم في تصرف الصدفة عند استلام محرف EOF\n"
+" \t\tكمدخل وحيد. إذا ضُبطت، فإن قيمتها\n"
+" \t\tتمثل عدد محارف EOF المتتالية المسموح بها\n"
+" \t\tعلى سطر فارغ قبل خروج الصدفة\n"
+" \t\t(المبدئي 10). عند عدم ضبطها، تعني EOF نهاية المدخلات.\n"
+" MACHTYPE\tسلسلة تصف النظام الحالي الذي يعمل عليه باش.\n"
+" MAILCHECK\tمعدل فحص باش للبريد الجديد بالثواني.\n"
+" MAILPATH\tقائمة أسماء ملفات مفصولة بنقطتين يفحصها باش\n"
+" \t\tبحثاً عن بريد جديد.\n"
+" OSTYPE\tإصدار يونكس الذي تعمل عليه نسخة باش هذه.\n"
+" PATH\tقائمة مسارات مفصولة بنقطتين للبحث فيها عند\n"
+" \t\tالبحث عن الأوامر.\n"
+" PROMPT_COMMAND\tأمر يُنفذ قبل طباعة كل محث أساسي.\n"
+" PS1\t\tسلسلة المحث الأساسي.\n"
+" PS2\t\tسلسلة المحث الثانوي.\n"
+" PWD\t\tالمسار الكامل للمجلد الحالي.\n"
+" SHELLOPTS\tقائمة خيارات الصدفة المفعلة مفصولة بنقطتين.\n"
+" TERM\tاسم نوع الطرفية الحالية.\n"
+" TIMEFORMAT\tتنسيق المخرجات لإحصائيات التوقيت المعروضة بواسطة\n"
+" \t\tالكلمة المحجوزة `time`.\n"
+" auto_resume\tالقيمة غير الفارغة تعني أن كلمة الأمر التي تظهر في سطر\n"
+" \t\tبمفردها يُبحث عنها أولاً في قائمة المهام المتوقفة\n"
+" \t\tحالياً. إذا وُجدت، تُنقل تلك المهمة للواجهة.\n"
+" \t\tالقيمة `exact` تعني وجوب مطابقة كلمة الأمر تماماً\n"
+" \t\tلأمر في قائمة المهام المتوقفة. القيمة\n"
+" \t\t`substring` تعني وجوب مطابقة كلمة الأمر لسلسلة فرعية\n"
+" \t\tمن المهمة. أي قيمة أخرى تعني وجوب كون\n"
+" \t\tالأمر بادئة لمهمة متوقفة.\n"
+" histchars\tمحارف تتحكم في توسيع المحفوظات والاستبدال السريع.\n"
+" \t\tالمحرف الأول هو محرف استبدال المحفوظات، وغالباً ما يكون `!`.\n"
+" \t\tالثاني هو محرف 'الاستبدال السريع' وغالباً ما يكون `^`.\n"
+" \t\tالثالث هو محرف 'تعليق المحفوظات' وغالباً ما يكون `#`.\n"
+" HISTIGNORE\tقائمة أنماط مفصولة بنقطتين تُستخدم لتحديد الأوامر\n"
+" \t\tالتي يجب حفظها في قائمة المحفوظات.\n"
+
+#: builtins.c:1876
+msgid ""
+"Add directories to stack.\n"
+" \n"
+" Adds a directory to the top of the directory stack, or rotates\n"
+" the stack, making the new top of the stack the current working\n"
+" directory. With no arguments, exchanges the top two directories.\n"
+" \n"
+" Options:\n"
+" -n\tSuppresses the normal change of directory when adding\n"
+" \t\tdirectories to the stack, so only the stack is manipulated.\n"
+" \n"
+" Arguments:\n"
+" +N\tRotates the stack so that the Nth directory (counting\n"
+" \t\tfrom the left of the list shown by `dirs', starting with\n"
+" \t\tzero) is at the top.\n"
+" \n"
+" -N\tRotates the stack so that the Nth directory (counting\n"
+" \t\tfrom the right of the list shown by `dirs', starting with\n"
+" \t\tzero) is at the top.\n"
+" \n"
+" dir\tAdds DIR to the directory stack at the top, making it the\n"
+" \t\tnew current working directory.\n"
+" \n"
+" The `dirs' builtin displays the directory stack.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid argument is supplied or the directory\n"
+" change fails."
+msgstr ""
+"إضافة مجلدات إلى المكدس.\n"
+" \n"
+" يضيف مجلداً إلى أعلى مكدس المجلدات، أو يقوم بتدوير\n"
+" المكدس، ليجعل أعلى المكدس الجديد هو مجلد العمل الحالي.\n"
+" عند عدم وجود معاملات، يبدل بين أول مجلدين في الأعلى.\n"
+" \n"
+" الخيارات:\n"
+" -n\tيمنع التغيير العادي للمجلد عند إضافة مجلدات\n"
+" \t\tإلى المكدس، بحيث يتم التلاعب بالمكدس فقط.\n"
+" \n"
+" المعاملات:\n"
+" +N\tيدور المكدس بحيث يصبح المجلد ذو الترتيب N (بالعد\n"
+" \t\tمن يسار القائمة التي يظهرها الأمر `dirs` ، بدءاً من\n"
+" \t\tالصفر) في الأعلى.\n"
+" \n"
+" -N\tيدور المكدس بحيث يصبح المجلد ذو الترتيب N (بالعد\n"
+" \t\tمن يمين القائمة التي يظهرها الأمر `dirs` ، بدءاً من\n"
+" \t\tالصفر) في الأعلى.\n"
+" \n"
+" dir\tيضيف DIR إلى مكدس المجلدات في الأعلى، ويجعله\n"
+" \t\tmجلد العمل الحالي الجديد.\n"
+" \n"
+" يعرض الأمر المدمج `dirs` مكدس المجلدات.\n"
+" \n"
+" حالة الخروج:\n"
+" يُرجع نجاحاً ما لم يتم توفير معامل غير صالح أو يفشل\n"
+" تغيير المجلد."
+
+#: builtins.c:1910
+msgid ""
+"Remove directories from stack.\n"
+" \n"
+" Removes entries from the directory stack. With no arguments, removes\n"
+" the top directory from the stack, and changes to the new top directory.\n"
+" \n"
+" Options:\n"
+" -n\tSuppresses the normal change of directory when removing\n"
+" \t\tdirectories from the stack, so only the stack is manipulated.\n"
+" \n"
+" Arguments:\n"
+" +N\tRemoves the Nth entry counting from the left of the list\n"
+" \t\tshown by `dirs', starting with zero. For example: `popd +0'\n"
+" \t\tremoves the first directory, `popd +1' the second.\n"
+" \n"
+" -N\tRemoves the Nth entry counting from the right of the list\n"
+" \t\tshown by `dirs', starting with zero. For example: `popd -0'\n"
+" \t\tremoves the last directory, `popd -1' the next to last.\n"
+" \n"
+" The `dirs' builtin displays the directory stack.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid argument is supplied or the directory\n"
+" change fails."
+msgstr ""
+"إزالة مجلدات من المكدس.\n"
+" \n"
+" يزيل مدخلات من مكدس المجلدات. عند عدم وجود معاملات، يزيل\n"
+" المجلد العلوي من المكدس، وينتقل إلى المجلد العلوي الجديد.\n"
+" \n"
+" الخيارات:\n"
+" -n\tيمنع التغيير العادي للمجلد عند إزالة مجلدات\n"
+" \t\tمن المكدس، بحيث يتم التلاعب بالمكدس فقط.\n"
+" \n"
+" المعاملات:\n"
+" +N\tيزيل المدخل رقم N بالعد من يسار القائمة\n"
+" \t\tالتي يظهرها الأمر `dirs` ، بدءاً من الصفر. مثلاً: `popd +0` \n"
+" \t\tيزيل المجلد الأول، و `popd +1` الثاني.\n"
+" \n"
+" -N\tيزيل المدخل رقم N بالعد من يمين القائمة\n"
+" \t\tالتي يظهرها الأمر `dirs` ، بدءاً من الصفر. مثلاً: `popd -0` \n"
+" \t\tيزيل المجلد الأخير، و `popd -1` قبل الأخير.\n"
+" \n"
+" يعرض الأمر المدمج `dirs` مكدس المجلدات.\n"
+" \n"
+" حالة الخروج:\n"
+" يُرجع نجاحاً ما لم يتم توفير معامل غير صالح أو يفشل\n"
+" تغيير المجلد."
+
+#: builtins.c:1940
+msgid ""
+"Display directory stack.\n"
+" \n"
+" Display the list of currently remembered directories. Directories\n"
+" find their way onto the list with the `pushd' command; you can get\n"
+" back up through the list with the `popd' command.\n"
+" \n"
+" Options:\n"
+" -c\tclear the directory stack by deleting all of the elements\n"
+" -l\tdo not print tilde-prefixed versions of directories relative\n"
+" \t\tto your home directory\n"
+" -p\tprint the directory stack with one entry per line\n"
+" -v\tprint the directory stack with one entry per line prefixed\n"
+" \t\twith its position in the stack\n"
+" \n"
+" Arguments:\n"
+" +N\tDisplays the Nth entry counting from the left of the list\n"
+" \t\tshown by dirs when invoked without options, starting with\n"
+" \t\tzero.\n"
+" \n"
+" -N\tDisplays the Nth entry counting from the right of the list\n"
+" \t\tshown by dirs when invoked without options, starting with\n"
+" \t\tzero.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option is supplied or an error occurs."
+msgstr ""
+"عرض مكدس المجلدات.\n"
+" \n"
+" يعرض قائمة المجلدات المحفوظة حالياً. تجد المجلدات\n"
+" طريقها إلى القائمة عبر الأمر `pushd` ؛ ويمكنك العودة\n"
+" إلى الوراء عبر القائمة باستخدام الأمر `popd` .\n"
+" \n"
+" الخيارات:\n"
+" -c\tتفريغ مكدس المجلدات عبر حذف كافة العناصر\n"
+" -l\tعدم طباعة نسخ المجلدات المسبوقة بعلامة المدا (~) والمنسوبة\n"
+" \t\tلمجلد المنزل الخاص بك\n"
+" -p\tطباعة مكدس المجلدات بوضع مدخل واحد في كل سطر\n"
+" -v\tطباعة مكدس المجلدات بوضع مدخل واحد في كل سطر مسبوقاً\n"
+" \t\tبموقعه في المكدس\n"
+" \n"
+" المعاملات:\n"
+" +N\tيعرض المدخل رقم N بالعد من يسار القائمة\n"
+" \t\tالتي يظهرها dirs عند استدعائه بدون خيارات، بدءاً من\n"
+" \t\tالصفر.\n"
+" \n"
+" -N\tيعرض المدخل رقم N بالعد من يمين القائمة\n"
+" \t\tالتي يظهرها dirs عند استدعائه بدون خيارات، بدءاً من\n"
+" \t\tالصفر.\n"
+" \n"
+" حالة الخروج:\n"
+" يُرجع نجاحاً ما لم يتم توفير خيار غير صالح أو يحدث خطأ."
+
+#: builtins.c:1971
+msgid ""
+"Set and unset shell options.\n"
+" \n"
+" Change the setting of each shell option OPTNAME. Without any option\n"
+" arguments, list each supplied OPTNAME, or all shell options if no\n"
+" OPTNAMEs are given, with an indication of whether or not each is set.\n"
+" \n"
+" Options:\n"
+" -o\trestrict OPTNAMEs to those defined for use with `set -o'\n"
+" -p\tprint each shell option with an indication of its status\n"
+" -q\tsuppress output\n"
+" -s\tenable (set) each OPTNAME\n"
+" -u\tdisable (unset) each OPTNAME\n"
+" \n"
+" Exit Status:\n"
+" Returns success if OPTNAME is enabled; fails if an invalid option is\n"
+" given or OPTNAME is disabled."
+msgstr ""
+"ضبط وإلغاء ضبط خيارات الغلاف.\n"
+" \n"
+" تغيير إعداد كل خيار غلاف OPTNAME. بدون أي معاملات خيارات،\n"
+" يسرد كل OPTNAME معطى، أو كل خيارات الغلاف إذا لم يُعطَ\n"
+" أي OPTNAME، مع إشارة إلى ما إذا كان كل منها مضبوطاً أم لا.\n"
+" \n"
+" الخيارات:\n"
+" -o\tقصر OPTNAMEs على تلك المعرفة للاستخدام مع `set -o'\n"
+" -p\tطباعة كل خيار غلاف مع إشارة إلى حالته\n"
+" -q\tكتم المخرجات\n"
+" -s\tتفعيل (ضبط) كل OPTNAME\n"
+" -u\tتعطيل (إلغاء ضبط) كل OPTNAME\n"
+" \n"
+" حالة الخروج:\n"
+" يُرجع نجاحاً إذا كان OPTNAME مفعلاً؛ ويفشل إذا أُعطي خيار غير صالح\n"
+" أو كان OPTNAME معطلاً."
+
+#: builtins.c:1992
+msgid ""
+"Formats and prints ARGUMENTS under control of the FORMAT.\n"
+" \n"
+" Options:\n"
+" -v var\tassign the output to shell variable VAR rather than\n"
+" \t\tdisplay it on the standard output\n"
+" \n"
+" FORMAT is a character string which contains three types of objects: plain\n"
+" characters, which are simply copied to standard output; character escape\n"
+" sequences, which are converted and copied to the standard output; and\n"
+" format specifications, each of which causes printing of the next successive\n"
+" argument.\n"
+" \n"
+" In addition to the standard format characters csndiouxXeEfFgGaA described\n"
+" in printf(3), printf interprets:\n"
+" \n"
+" %b\texpand backslash escape sequences in the corresponding argument\n"
+" %q\tquote the argument in a way that can be reused as shell input\n"
+" %Q\tlike %q, but apply any precision to the unquoted argument before\n"
+" \t\tquoting\n"
+" %(fmt)T\toutput the date-time string resulting from using FMT as a format\n"
+" \t string for strftime(3)\n"
+" \n"
+" The format is re-used as necessary to consume all of the arguments. If\n"
+" there are fewer arguments than the format requires, extra format\n"
+" specifications behave as if a zero value or null string, as appropriate,\n"
+" had been supplied.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option is given or a write or assignment\n"
+" error occurs."
+msgstr ""
+"تنسيق وطباعة ARGUMENTS تحت تحكم FORMAT.\n"
+" \n"
+" الخيارات:\n"
+" -v var\tإسناد المخرجات إلى متغير الغلاف VAR بدلاً من\n"
+" \t\tعرضها على المخرجات القياسية\n"
+" \n"
+" FORMAT عبارة عن سلسلة محارف تحتوي على ثلاثة أنواع من الكائنات: محارف\n"
+" عادية، تُنسخ ببساطة إلى المخرجات القياسية؛ وتسلسلات (sequences) محارف\n"
+" الهروب، التي تُحول وتُنسخ إلى المخرجات القياسية؛ ومواصفات التنسيق،\n"
+" حيث تؤدي كل منها إلى طباعة المعامل التالي بالتوالي.\n"
+" \n"
+" بالإضافة إلى محارف التنسيق القياسية csndiouxXeEfFgGaA الموصوفة\n"
+" في printf(3)، يفسر printf ما يلي:\n"
+" \n"
+" %b\tتمديد تسلسلات (sequences) هروب الخط المائل العكسي في المعامل المقابل\n"
+" %q\tاقتباس المعامل بطريقة تسمح بإعادة استخدامه كمدخلات للغلاف\n"
+" %Q\tمثل %q، ولكن مع تطبيق أي دقة على المعامل غير المقتبس قبل\n"
+" \t\tالاقتباس\n"
+" %(fmt)T\tإخراج سلسلة التاريخ والوقت الناتجة عن استخدام FMT كسلسلة تنسيق\n"
+" \t لدالة strftime(3)\n"
+" \n"
+" يُعاد استخدام التنسيق حسب الضرورة لاستهلاك كافة المعاملات. إذا كان عدد\n"
+" المعاملات أقل مما يتطلبه التنسيق، فإن مواصفات التنسيق الإضافية تتصرف\n"
+" كما لو كانت قيمة صفرية أو سلسلة فارغة، حسب الاقتضاء.\n"
+" \n"
+" حالة الخروج:\n"
+" يُرجع نجاحاً ما لم يُعطَ خيار غير صالح أو يحدث خطأ في الكتابة أو الإسناد."
+
+#: builtins.c:2028
+msgid ""
+"Specify how arguments are to be completed by Readline.\n"
+" \n"
+" For each NAME, specify how arguments are to be completed. If no options\n"
+" or NAMEs are supplied, display existing completion specifications in a way\n"
+" that allows them to be reused as input.\n"
+" \n"
+" Options:\n"
+" -p\tprint existing completion specifications in a reusable format\n"
+" -r\tremove a completion specification for each NAME, or, if no\n"
+" \t\tNAMEs are supplied, all completion specifications\n"
+" -D\tapply the completions and actions as the default for commands\n"
+" \t\twithout any specific completion defined\n"
+" -E\tapply the completions and actions to \"empty\" commands --\n"
+" \t\tcompletion attempted on a blank line\n"
+" -I\tapply the completions and actions to the initial (usually the\n"
+" \t\tcommand) word\n"
+" \n"
+" When completion is attempted, the actions are applied in the order the\n"
+" uppercase-letter options are listed above. If multiple options are supplied,\n"
+" the -D option takes precedence over -E, and both take precedence over -I.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option is supplied or an error occurs."
+msgstr ""
+"تحديد كيفية إكمال المعاملات بواسطة Readline.\n"
+" \n"
+" لكل NAME، حدد كيفية إكمال المعاملات. إذا لم يتم توفير خيارات\n"
+" أو أسماء NAMEs، فسيتم عرض مواصفات الإكمال الحالية بطريقة\n"
+" تسمح بإعادة استخدامها كمدخلات.\n"
+" \n"
+" الخيارات:\n"
+" -p\tطباعة مواصفات الإكمال الحالية بتنسيق قابل لإعادة الاستخدام\n"
+" -r\tإزالة مواصفة إكمال لكل NAME، أو كل مواصفات الإكمال إذا لم\n"
+" \t\tيتم توفير NAMEs\n"
+" -D\tتطبيق الإكمالات والإجراءات كإعداد مبدئي للأوامر\n"
+" \t\tالتي ليس لها إكمال محدد\n"
+" -E\tتطبيق الإكمالات والإجراءات على الأوامر \"الفارغة\" --\n"
+" \t\tمحاولة الإكمال على سطر فارغ\n"
+" -I\tتطبيق الإكمالات والإجراءات على الكلمة الأولية (عادةً الأمر)\n"
+" \n"
+" عند محاولة الإكمال، تُطبق الإجراءات بالترتيب الذي سُردت به خيارات الحروف\n"
+" الكبيرة أعلاه. إذا تم توفير خيارات متعددة، فإن الخيار -D له الأسبقية على -E،\n"
+" وكلاهما لهما الأسبقية على -I.\n"
+" \n"
+" حالة الخروج:\n"
+" يُرجع نجاحاً ما لم يتم توفير خيار غير صالح أو يحدث خطأ."
+
+#: builtins.c:2058
+msgid ""
+"Display possible completions depending on the options.\n"
+" \n"
+" Intended to be used from within a shell function generating possible\n"
+" completions. If the optional WORD argument is present, generate matches\n"
+" against WORD.\n"
+" \n"
+" If the -V option is supplied, store the possible completions in the indexed\n"
+" array VARNAME instead of printing them to the standard output.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option is supplied or an error occurs."
+msgstr ""
+"عرض الإكمالات الممكنة بناءً على الخيارات.\n"
+" \n"
+" مخصص للاستخدام من داخل دالة غلاف تولد إكمالات ممكنة.\n"
+" إذا كان معامل WORD الاختياري موجوداً، فسيتم توليد مطابقات\n"
+" مقابل WORD.\n"
+" \n"
+" إذا تم توفير الخيار -V، فسيتم تخزين الإكمالات الممكنة في المصفوفة\n"
+" المفهرسة VARNAME بدلاً من طباعتها على المخرجات القياسية.\n"
+" \n"
+" حالة الخروج:\n"
+" يُرجع نجاحاً ما لم يتم توفير خيار غير صالح أو يحدث خطأ."
+
+#: builtins.c:2076
+msgid ""
+"Modify or display completion options.\n"
+" \n"
+" Modify the completion options for each NAME, or, if no NAMEs are supplied,\n"
+" the completion currently being executed. If no OPTIONs are given, print\n"
+" the completion options for each NAME or the current completion specification.\n"
+" \n"
+" Options:\n"
+" \t-o option\tSet completion option OPTION for each NAME\n"
+" \t-D\t\tChange options for the \"default\" command completion\n"
+" \t-E\t\tChange options for the \"empty\" command completion\n"
+" \t-I\t\tChange options for completion on the initial word\n"
+" \n"
+" Using `+o' instead of `-o' turns off the specified option.\n"
+" \n"
+" Arguments:\n"
+" \n"
+" Each NAME refers to a command for which a completion specification must\n"
+" have previously been defined using the `complete' builtin. If no NAMEs\n"
+" are supplied, compopt must be called by a function currently generating\n"
+" completions, and the options for that currently-executing completion\n"
+" generator are modified.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option is supplied or NAME does not\n"
+" have a completion specification defined."
+msgstr ""
+"تعديل أو عرض خيارات الإكمال.\n"
+" \n"
+" تعديل خيارات الإكمال لكل NAME، أو للإكمال الذي يجري تنفيذه حالياً إذا لم\n"
+" يتم توفير NAMEs. إذا لم يتم إعطاء أي OPTIONs، فسيتم طباعة خيارات\n"
+" الإكمال لكل NAME أو مواصفات الإكمال الحالية.\n"
+" \n"
+" الخيارات:\n"
+" \t-o option\tضبط خيار الإكمال OPTION لكل NAME\n"
+" \t-D\t\tتغيير الخيارات لإكمال الأمر المبدئي (\"default\")\n"
+" \t-E\t\tتغيير الخيارات لإكمال الأمر \"الفارغ\"\n"
+" \t-I\t\tتغيير الخيارات للإكمال عند الكلمة الأولية\n"
+" \n"
+" استخدام `+o' بدلاً من `-o' يؤدي إلى إيقاف تشغيل الخيار المحدد.\n"
+" \n"
+" المعاملات:\n"
+" \n"
+" يشير كل NAME إلى أمر يجب أن تكون مواصفات الإكمال الخاصة به قد\n"
+" عُرفت مسبقاً باستخدام الأمر المدمج `complete'. إذا لم يتم توفير NAMEs،\n"
+" فيجب استدعاء compopt بواسطة دالة تولد إكمالات حالياً، ويتم تعديل\n"
+" خيارات مولد الإكمال الذي يجري تنفيذه حالياً.\n"
+" \n"
+" حالة الخروج:\n"
+" يُرجع نجاحاً ما لم يتم توفير خيار غير صالح أو لم يكن لـ NAME مواصفة\n"
+" إكمال معرفة."
+
+#: builtins.c:2107
+msgid ""
+"Read lines from the standard input into an indexed array variable.\n"
+" \n"
+" Read lines from the standard input into the indexed array variable ARRAY, or\n"
+" from file descriptor FD if the -u option is supplied. The variable MAPFILE\n"
+" is the default ARRAY.\n"
+" \n"
+" Options:\n"
+" -d delim\tUse DELIM to terminate lines, instead of newline\n"
+" -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are copied\n"
+" -O origin\tBegin assigning to ARRAY at index ORIGIN. The default index is 0\n"
+" -s count\tDiscard the first COUNT lines read\n"
+" -t\tRemove a trailing DELIM from each line read (default newline)\n"
+" -u fd\tRead lines from file descriptor FD instead of the standard input\n"
+" -C callback\tEvaluate CALLBACK each time QUANTUM lines are read\n"
+" -c quantum\tSpecify the number of lines read between each call to\n"
+" \t\t\tCALLBACK\n"
+" \n"
+" Arguments:\n"
+" ARRAY\tArray variable name to use for file data\n"
+" \n"
+" If -C is supplied without -c, the default quantum is 5000. When\n"
+" CALLBACK is evaluated, it is supplied the index of the next array\n"
+" element to be assigned and the line to be assigned to that element\n"
+" as additional arguments.\n"
+" \n"
+" If not supplied with an explicit origin, mapfile will clear ARRAY before\n"
+" assigning to it.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option is given or ARRAY is readonly or\n"
+" not an indexed array."
+msgstr ""
+"قراءة الأسطر من المدخلات القياسية إلى متغير مصفوفة مفهرسة.\n"
+" \n"
+" قراءة الأسطر من المدخلات القياسية إلى متغير المصفوفة المفهرسة ARRAY، أو\n"
+" من واصف الملف FD إذا تم توفير الخيار -u. المتغير MAPFILE\n"
+" هو المصفوفة ARRAY المبدئية.\n"
+" \n"
+" الخيارات:\n"
+" -d delim\tاستخدام DELIM لإنهاء الأسطر، بدلاً من سطر جديد\n"
+" -n count\tنسخ COUNT من الأسطر كحد أقصى. إذا كان COUNT هو 0، يتم نسخ كافة الأسطر\n"
+" -O origin\tبدء الإسناد إلى ARRAY عند الفهرس ORIGIN. الفهرس المبدئي هو 0\n"
+" -s count\tتجاهل أول COUNT من الأسطر المقروءة\n"
+" -t\tإزالة DELIM اللاحق من كل سطر مقروء (المبدئي هو سطر جديد)\n"
+" -u fd\tقراءة الأسطر من واصف الملف FD بدلاً من المدخلات القياسية\n"
+" -C callback\tتقييم CALLBACK في كل مرة يتم فيها قراءة QUANTUM من الأسطر\n"
+" -c quantum\tتحديد عدد الأسطر المقروءة بين كل استدعاء لـ\n"
+" \t\t\tCALLBACK\n"
+" \n"
+" المعاملات:\n"
+" ARRAY\tاسم متغير المصفوفة لاستخدامه لبيانات الملف\n"
+" \n"
+" إذا تم توفير -C بدون -c، فإن الكمية (quantum) المبدئية هي 5000. عند\n"
+" تقييم CALLBACK، يتم تزويده بفهرس عنصر المصفوفة التالي الذي سيتم\n"
+" إسناده والسطر الذي سيتم إسناده إلى ذلك العنصر كمعاملات إضافية.\n"
+" \n"
+" إذا لم يتم تزويده بأصل (origin) صريح، فسيقوم mapfile بمسح ARRAY قبل\n"
+" الإسناد إليه.\n"
+" \n"
+" حالة الخروج:\n"
+" يُرجع نجاحاً ما لم يتم إعطاء خيار غير صالح أو كان ARRAY للقراءة فقط أو\n"
+" ليس مصفوفة مفهرسة."
+
+#: builtins.c:2143
+msgid ""
+"Read lines from a file into an array variable.\n"
+" \n"
+" A synonym for `mapfile'."
+msgstr ""
+"قراءة الأسطر من ملف إلى متغير مصفوفة.\n"
+" \n"
+" مرادف لـ `mapfile'."
# Zi-You Dai <ioppooster@gmail.com>, 2008.
# Mingye Wang (Arthur2e5) <arthur200126@hotmail.com>, 2015.
# Wei-Lun Chao <bluebat@member.fsf.org>, 2015.
-# Yi-Jyun Pan <pan93412@gmail.com>, 2018, 2019, 2020, 2021.
+# Yi-Jyun Pan <pan93412@gmail.com>, 2018, 2019, 2020, 2021, 2026.
+# Cheng-Chia Tseng <zerngjia@gmail.com>, 2026.
msgid ""
msgstr ""
-"Project-Id-Version: bash 5.2-rc1\n"
+"Project-Id-Version: bash 5.3-rc2\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-22 09:37-0400\n"
-"PO-Revision-Date: 2023-02-09 00:40+0800\n"
+"PO-Revision-Date: 2026-02-09 00:06+0800\n"
"Last-Translator: Yi-Jyun Pan <pan93412@gmail.com>\n"
-"Language-Team: Chinese (traditional) <zh-l10n@lists.linux.org.tw>\n"
+"Language-Team: Chinese (traditional) <zh-l10n@lists.slat.org>\n"
"Language: zh_TW\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
-"X-Generator: Poedit 3.2.2\n"
+"X-Generator: Poedit 3.8\n"
#: arrayfunc.c:63
msgid "bad array subscript"
msgstr "%s: %s: 指派為關聯陣列時必須使用下標"
#: bashhist.c:464
-#, fuzzy
msgid "cannot create"
-msgstr "%s: 無法建立: %s"
+msgstr "無法建立"
#: bashline.c:4642
msgid "bash_execute_unix_command: cannot find keymap for command"
msgstr "%2$s 中沒有閉合的「%1$c」"
#: bashline.c:4873
-#, fuzzy, c-format
+#, c-format
msgid "%s: missing separator"
-msgstr "%s: 缺少冒號分隔符"
+msgstr "%s:缺少分隔符號"
#: bashline.c:4920
#, c-format
msgstr "大括號展開:無法為 %s 分配記憶體"
#: braces.c:403
-#, fuzzy, c-format
+#, c-format
msgid "brace expansion: failed to allocate memory for %s elements"
-msgstr "大æ\8b¬è\99\9få±\95é\96\8bï¼\9aç\82º %u å\80\8bå\85\83ç´ å\88\86é\85\8dè¨\98æ\86¶é«\94失æ\95\97"
+msgstr "大æ\8b¬è\99\9få±\95é\96\8bï¼\9aç\84¡æ³\95å\88\86é\85\8dè¨\98æ\86¶é«\94給 %s å\80\8bå\85\83ç´ "
#: braces.c:462
#, c-format
msgstr "「%s」: 無效的按鍵映射名"
#: builtins/bind.def:277
-#, fuzzy
msgid "cannot read"
-msgstr "%s:不能讀取:%s"
+msgstr "無法讀取"
#: builtins/bind.def:353 builtins/bind.def:382
#, c-format
msgstr "僅在「for」,「while」, 或者「until」迴圈中有意義"
#: builtins/caller.def:135
-#, fuzzy
msgid ""
"Returns the context of the current subroutine call.\n"
" \n"
" Returns 0 unless the shell is not executing a shell function or EXPR\n"
" is invalid."
msgstr ""
-"å\9b\9eå\82³ç\9b®å\89\8då\90å\91¼å\8f«ç\9a\84èª\9eå¢\83。\n"
+"å\82³å\9b\9eç\9b®å\89\8då\89¯ç¨\8bå¼\8få\91¼å\8f«ç\9a\84ä¸\8aä¸\8bæ\96\87。\n"
" \n"
-" 不帶有 EXPR 時,回傳「$line $filename」。帶有 EXPR 時,回傳\n"
-" 「$line $subroutine $filename」;這個額外的資訊可以被用於提供\n"
+" 如果沒有指定 EXPR,則傳回「$line $filename」。如果指定了 EXPR,\n"
+" 則傳回「$line $subroutine $filename」;這些延伸資訊可以用來提供\n"
" 堆疊追蹤。\n"
" \n"
-" EXPR 的值顯示了到目前呼叫框格需要回去多少個呼叫框格;頂部框格\n"
-" 是第 0 框格。\n"
+" EXPR 的值表示在目前呼叫之前,要回溯多少個呼叫層級;最上層的\n"
+" 呼叫層級是層級 0。\n"
" \n"
" 結束狀態:\n"
-" 除非 shell 不在執行一個 shell 函數或者 EXPR 無效,否則回傳結\n"
-" 果為 0。"
+" 除非 shell 沒有執行 shell 函數,或 EXPR 無效,否則傳回 0。"
#: builtins/cd.def:321
msgid "HOME not set"
msgstr "沒有工作控制"
#: builtins/common.c:279
-#, fuzzy, c-format
+#, c-format
msgid "%s: invalid job specification"
-msgstr "%s: 無效的逾時規格"
+msgstr "%s:無效的工作規格"
#: builtins/common.c:289
#, c-format
msgstr "%s:不是一個內建 shell"
#: builtins/common.c:307
-#, fuzzy
msgid "write error"
-msgstr "寫入時發生錯誤:%s"
+msgstr "寫入時發生錯誤"
#: builtins/common.c:314
-#, fuzzy
msgid "error setting terminal attributes"
-msgstr "設定終端屬性時發生錯誤: %s"
+msgstr "設定終端機屬性時發生錯誤"
#: builtins/common.c:316
-#, fuzzy
msgid "error getting terminal attributes"
-msgstr "取得終端屬性時發生錯誤: %s"
+msgstr "取得終端機屬性時發生錯誤"
#: builtins/common.c:611
-#, fuzzy
msgid "error retrieving current directory"
-msgstr "%s:檢索目前目錄時發生錯誤:%s:%s\n"
+msgstr "取回目前目錄時發生錯誤"
#: builtins/common.c:675 builtins/common.c:677
#, c-format
msgstr "%s:模稜兩可的工作規格"
#: builtins/common.c:709
-#, fuzzy, c-format
+#, c-format
msgid "%s: job specification requires leading `%%'"
-msgstr "%s:選項需要一個參數"
+msgstr "%s:工作規格需要一個前置的「%%」"
#: builtins/common.c:937
msgid "help not available in this version"
#: builtins/enable.def:408
#, c-format
msgid "%s: builtin names may not contain slashes"
-msgstr ""
+msgstr "%s:內建命令名稱不能有斜線"
#: builtins/enable.def:423
#, c-format
#: builtins/evalfile.c:189 builtins/evalfile.c:207 execute_cmd.c:6222
#: shell.c:1687
-#, fuzzy
msgid "cannot execute binary file"
-msgstr "%s: 無法執行二進位檔案"
+msgstr "無法執行二進位檔案"
#: builtins/evalstring.c:478
-#, fuzzy, c-format
+#, c-format
msgid "%s: ignoring function definition attempt"
-msgstr "錯誤,輸入的函數定義為「%s」"
+msgstr "%s:忽略函式定義嘗試"
#: builtins/exec.def:158 builtins/exec.def:160 builtins/exec.def:249
-#, fuzzy
msgid "cannot execute"
-msgstr "%s: 無法執行: %s"
+msgstr "無法執行"
#: builtins/exit.def:61
#, c-format
msgstr "歷史記錄規格"
#: builtins/fc.def:462
-#, fuzzy
msgid "cannot open temp file"
-msgstr "%s: 無法開啟暫存檔案: %s"
+msgstr "無法開啟暫存檔案"
#: builtins/fg_bg.def:150 builtins/jobs.def:293
msgid "current"
#: builtins/help.def:185
#, c-format
-msgid ""
-"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'."
-msgstr ""
-"沒有與「%s」符合的說明主題。嘗試「help help」或「man -k %s」或「info %s」。"
+msgid "no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'."
+msgstr "沒有與「%s」符合的說明主題。嘗試「help help」或「man -k %s」或「info %s」。"
#: builtins/help.def:214
-#, fuzzy
msgid "cannot open"
-msgstr "無法暫停"
+msgstr "無法開啟"
#: builtins/help.def:264 builtins/help.def:306 builtins/history.def:306
#: builtins/history.def:325 builtins/read.def:909
-#, fuzzy
msgid "read error"
-msgstr "讀取錯誤: %d: %s"
+msgstr "讀取時發生錯誤"
#: builtins/help.def:517
#, c-format
msgstr "歷史記錄位置"
#: builtins/history.def:280
-#, fuzzy
msgid "empty filename"
-msgstr "空陣列變數名"
+msgstr "空白檔名"
#: builtins/history.def:282 subst.c:8226
#, c-format
msgstr "%s: 無效的檔案描述符規格"
#: builtins/mapfile.def:257 builtins/read.def:380
-#, fuzzy
msgid "invalid file descriptor"
-msgstr "%d: 無效的檔案描述符: %s"
+msgstr "無效的檔案描述元"
#: builtins/mapfile.def:266 builtins/mapfile.def:304
#, c-format
#: builtins/printf.def:711
msgid "string length"
-msgstr ""
+msgstr "字串長度"
#: builtins/printf.def:811
#, c-format
" \twith its position in the stack\n"
" \n"
" Arguments:\n"
-" +N\tDisplays the Nth entry counting from the left of the list shown "
-"by\n"
+" +N\tDisplays the Nth entry counting from the left of the list shown by\n"
" \tdirs when invoked without options, starting with zero.\n"
" \n"
-" -N\tDisplays the Nth entry counting from the right of the list shown "
-"by\n"
+" -N\tDisplays the Nth entry counting from the right of the list shown by\n"
"\tdirs when invoked without options, starting with zero."
msgstr ""
"顯示目前記住的目錄列表。 目錄\n"
msgstr "「%c」:不當的指令"
#: builtins/ulimit.def:465 builtins/ulimit.def:748
-#, fuzzy
msgid "cannot get limit"
-msgstr "%s:不能得到 limit: %s"
+msgstr "無法取得 limit"
#: builtins/ulimit.def:498
msgid "limit"
msgstr "limit"
#: builtins/ulimit.def:511 builtins/ulimit.def:812
-#, fuzzy
msgid "cannot modify limit"
-msgstr "%s:不能修改 limit: %s"
+msgstr "無法修改 limit"
#: builtins/umask.def:114
msgid "octal number"
msgstr "\a 等待輸入逾時:自動登出\n"
#: execute_cmd.c:606
-#, fuzzy
msgid "cannot redirect standard input from /dev/null"
-msgstr "無法從 /dev/null 重定向標準輸入: %s"
+msgstr "無法從 /dev/null 重定向標準輸入"
#: execute_cmd.c:1412
#, c-format
#: execute_cmd.c:4100
#, c-format
msgid "invalid regular expression `%s': %s"
-msgstr ""
+msgstr "無效的正規表示式「%s」:%s"
#: execute_cmd.c:4102
#, c-format
msgid "invalid regular expression `%s'"
-msgstr ""
+msgstr "無效的正規表示式「%s」"
#: execute_cmd.c:5056
#, c-format
msgstr "%s: 超出最大函數巢狀層數 (%d)"
#: execute_cmd.c:5754
-#, fuzzy
msgid "command not found"
-msgstr "%s:指令找不到"
+msgstr "命令找不到"
#: execute_cmd.c:5783
#, c-format
msgstr "%s: 受限的: 無法在指令名稱中使用「/」"
#: execute_cmd.c:6176
-#, fuzzy
msgid "bad interpreter"
-msgstr "%s: %s: 不當的直譯器"
+msgstr "直譯器無效"
#: execute_cmd.c:6185
#, c-format
msgstr "遞迴堆疊下限溢位"
#: expr.c:485
-#, fuzzy
msgid "arithmetic syntax error in expression"
-msgstr "表示式語法錯誤"
+msgstr "表示式中出現算術語法錯誤"
#: expr.c:529
msgid "attempted assignment to non-variable"
msgstr "嘗試指派給非變數"
#: expr.c:538
-#, fuzzy
msgid "arithmetic syntax error in variable assignment"
-msgstr "變數定義語法錯誤"
+msgstr "變數指派中出現算術語法錯誤"
#: expr.c:552 expr.c:917
msgid "division by 0"
msgstr "缺少「)」"
#: expr.c:1120 expr.c:1507
-#, fuzzy
msgid "arithmetic syntax error: operand expected"
-msgstr "語法錯誤: 需要運算元"
+msgstr "算術語法錯誤:缺少運算元"
#: expr.c:1468 expr.c:1489
msgid "--: assignment requires lvalue"
-msgstr ""
+msgstr "--:指派式需要左值 (lvalue)"
#: expr.c:1470 expr.c:1491
msgid "++: assignment requires lvalue"
-msgstr ""
+msgstr "++:指派式需要左值 (lvalue)"
#: expr.c:1509
-#, fuzzy
msgid "arithmetic syntax error: invalid arithmetic operator"
-msgstr "語法錯誤: 無效的算術運算子"
+msgstr "算術語法錯誤:無效的算術運算子"
#: expr.c:1532
#, c-format
msgstr "不支援網路操作"
#: locale.c:226 locale.c:228 locale.c:301 locale.c:303
-#, fuzzy
msgid "cannot change locale"
-msgstr "setlocale: %s: 無法變更語區選項 (%s)"
+msgstr "無法變更語區"
#: mailcheck.c:435
msgid "You have mail in $_"
#: make_cmd.c:627
#, c-format
msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
-msgstr "立即檔案在第 %d 列被檔案結束符分隔 (需要「%s」)"
+msgstr "here 檔案在第 %d 列被檔案結尾符號分隔(需要「%s」)"
#: make_cmd.c:722
#, c-format
#: parse.y:2572
#, c-format
-msgid ""
-"shell_getc: shell_input_line_size (%zu) exceeds SIZE_MAX (%lu): line "
-"truncated"
+msgid "shell_getc: shell_input_line_size (%zu) exceeds SIZE_MAX (%lu): line truncated"
msgstr "shell_getc: shell_input_line_size (%zu) 超過 SIZE_MAX (%lu):列被截斷"
#: parse.y:2864
-#, fuzzy
msgid "script file read error"
-msgstr "寫入時發生錯誤:%s"
+msgstr "指令稿檔案讀取時發生錯誤"
#: parse.y:3101
msgid "maximum here-document count exceeded"
-msgstr "超過此處檔案上限最大值"
+msgstr "超過 here 文件的數量上限"
#: parse.y:3901 parse.y:4799 parse.y:6859
#, c-format
msgstr "條件指令中有未預期的字組 %d"
#: parse.y:6827
-#, fuzzy, c-format
+#, c-format
msgid "syntax error near unexpected token `%s' while looking for matching `%c'"
-msgstr "å°\8bæ\89¾ç¬¦å\90\88ç\9a\84ã\80\8c%cã\80\8dæ\99\82é\81\87å\88°äº\86æ\9cªé \90æ\9c\9fç\9a\84æª\94æ¡\88çµ\90æ\9d\9f符"
+msgstr "å\9c¨å°\8bæ\89¾ç\9b¸ç¬¦ç\9a\84ã\80\8c%2$cã\80\8dæ\99\82ï¼\8cèª\9eæ³\95é\8c¯èª¤ç\99¼ç\94\9få\9c¨é\9d\9eé \90æ\9c\9fç\9a\84èª\9eæ³\95符è\99\9fã\80\8c%1$sã\80\8dé\99\84è¿\91ã\80\82"
#: parse.y:6829
#, c-format
msgstr "「%s」附近有語法錯誤"
#: parse.y:6867
-#, fuzzy, c-format
+#, c-format
msgid "syntax error: unexpected end of file from `%s' command on line %d"
-msgstr "語法錯誤: 未預期的檔案結尾"
+msgstr "語法錯誤:在第 %2$d 列執行「%1$s」命令時,遇到非預期的檔案結尾"
#: parse.y:6869
-#, fuzzy, c-format
+#, c-format
msgid "syntax error: unexpected end of file from command on line %d"
-msgstr "語法錯誤: 未預期的檔案結尾"
+msgstr "語法錯誤:在第 %d 列執行命令時,遇到非預期的檔案結尾"
#: parse.y:6873
msgid "syntax error: unexpected end of file"
msgstr "尋找符合的「)」時遇到了未預期的檔案結束符"
#: pathexp.c:897
-#, fuzzy
msgid "invalid glob sort type"
-msgstr "無效的基底"
+msgstr "無效的 glob 排序類型"
#: pcomplete.c:1070
#, c-format
msgstr "檔案描述符超出範圍"
#: redir.c:201
-#, fuzzy
msgid "ambiguous redirect"
-msgstr "%s: 模稜兩可的重定向"
+msgstr "不明確的重新導向"
#: redir.c:205
-#, fuzzy
msgid "cannot overwrite existing file"
-msgstr "%s: 無法覆寫已存在的檔案"
+msgstr "無法覆寫已存在的檔案"
#: redir.c:210
-#, fuzzy
msgid "restricted: cannot redirect output"
-msgstr "%s: 受限的: 無法重定向輸出"
+msgstr "受限制:無法重新導向輸出"
#: redir.c:215
-#, fuzzy
msgid "cannot create temp file for here-document"
-msgstr "無法為立即檔案建立暫存檔案: %s"
+msgstr "無法建立用於 here 文件的暫存檔案"
#: redir.c:219
-#, fuzzy
msgid "cannot assign fd to variable"
-msgstr "%s: 無法將檔案描述符指派給變數"
+msgstr "無法將檔案描述元指派給變數"
#: redir.c:639
msgid "/dev/(tcp|udp)/host/port not supported without networking"
#: shell.c:359
msgid "could not find /tmp, please create!"
-msgstr "無法找到 /tmp,請建立"
+msgstr "無法找到 /tmp,請建立!"
#: shell.c:363
msgid "/tmp must be a valid directory name"
#: shell.c:1748 shell.c:1750
msgid "error creating buffered stream"
-msgstr ""
+msgstr "建立有緩衝區的串流時發生錯誤"
#: shell.c:1899
msgid "I have no name!"
#: subst.c:6962
msgid "function_substitute: cannot open anonymous file for output"
-msgstr ""
+msgstr "function_substitute:無法開啟匿名檔案來進行輸出"
#: subst.c:7036
-#, fuzzy
msgid "function_substitute: cannot duplicate anonymous file as standard output"
-msgstr "command_substitute: 無法將管道複製為檔案描述符 1"
+msgstr "function_substitute:無法將匿名檔案再製到標準輸出"
#: subst.c:7210 subst.c:7231
msgid "cannot make pipe for command substitution"
msgstr "$%s: 無法如此指派"
#: subst.c:10855
-msgid ""
-"future versions of the shell will force evaluation as an arithmetic "
-"substitution"
+msgid "future versions of the shell will force evaluation as an arithmetic substitution"
msgstr "未來版本的 shell 會強制以算術取代求值"
#: subst.c:11563
msgstr "需要參數"
#: test.c:164
-#, fuzzy, c-format
+#, c-format
msgid "%s: integer expected"
-msgstr "%s: 需要整數表示式"
+msgstr "%s:預期是整數"
#: test.c:292
msgid "`)' expected"
#: trap.c:459
#, c-format
-msgid ""
-"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
+msgid "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
msgstr "run_pending_traps:訊號處理是 SIG_DFL,resending %d (%s) to myself"
#: trap.c:592
msgstr "trap_handler:不當的訊號 %d"
#: unwind_prot.c:246 unwind_prot.c:292
-#, fuzzy
msgid "frame not found"
-msgstr "%s: 檔案未找到"
+msgstr "找不到堆疊框"
#: variables.c:441
#, c-format
#: variables.c:2315 variables.c:2350 variables.c:2378 variables.c:2405
#: variables.c:2431 variables.c:3274 variables.c:3282 variables.c:3797
#: variables.c:3841
-#, fuzzy, c-format
+#, c-format
msgid "%s: maximum nameref depth (%d) exceeded"
-msgstr "超過此處檔案上限最大值"
+msgstr "%s:超過 nameref 深度上限 (%d)"
#: variables.c:2641
msgid "make_local_variable: no function context at current scope"
msgstr "%s: %s: 相容版本數值超出範圍"
#: version.c:50
-#, fuzzy
msgid "Copyright (C) 2025 Free Software Foundation, Inc."
-msgstr "著作權所有 (C) 2022 自由軟體基金會"
+msgstr "著作權所有 (C) 2025 自由軟體基金會"
#: version.c:51
-msgid ""
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
-"html>\n"
-msgstr ""
-"授權條款 GPLv3+: GNU GPL 授權條款第三版或者更新版本 <http://gnu.org/licenses/"
-"gpl.html>\n"
+msgid "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
+msgstr "授權條款 GPLv3+: GNU GPL 授權條款第三版或者更新版本 <http://gnu.org/licenses/gpl.html>\n"
#: version.c:90
#, c-format
msgstr "unalias [-a] 名稱 [名稱 …]"
#: builtins.c:53
-msgid ""
-"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
-"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
-msgstr ""
-"bind [-lpvsPSVX] [-m 按鍵映射] [-f 檔名] [-q 名稱] [-u 名稱] [-r 按鍵序列] [-"
-"x 按鍵序列:shell-指令] [按鍵序列:readline-函數 或 readline-指令]"
+msgid "bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:shell-command] [keyseq:readline-function or readline-command]"
+msgstr "bind [-lpvsPSVX] [-m 按鍵映射] [-f 檔名] [-q 名稱] [-u 名稱] [-r 按鍵序列] [-x 按鍵序列:shell-指令] [按鍵序列:readline-函數 或 readline-指令]"
#: builtins.c:56
msgid "break [n]"
msgstr "caller [表示式]"
#: builtins.c:66
-#, fuzzy
msgid "cd [-L|[-P [-e]]] [-@] [dir]"
-msgstr "cd [-L|[-P [-e]] [-@]] [目錄]"
+msgstr "cd [-L|[-P [-e]]] [-@] [目錄]"
#: builtins.c:68
msgid "pwd [-LP]"
msgstr "command [-pVv] 指令 [參數 …]"
#: builtins.c:78
-msgid ""
-"declare [-aAfFgiIlnrtux] [name[=value] ...] or declare -p [-aAfFilnrtux] "
-"[name ...]"
-msgstr ""
-"declare [-aAfFgiIlnrtux] [name[=value] ...] 或 declare -p [-aAfFilnrtux] "
-"[name ...]"
+msgid "declare [-aAfFgiIlnrtux] [name[=value] ...] or declare -p [-aAfFilnrtux] [name ...]"
+msgstr "declare [-aAfFgiIlnrtux] [name[=value] ...] 或 declare -p [-aAfFilnrtux] [name ...]"
#: builtins.c:80
-msgid ""
-"typeset [-aAfFgiIlnrtux] name[=value] ... or typeset -p [-aAfFilnrtux] "
-"[name ...]"
-msgstr ""
-"typeset [-aAfFgiIlnrtux] name[=value] ... 或 typeset -p [-aAfFilnrtux] "
-"[name ...]"
+msgid "typeset [-aAfFgiIlnrtux] name[=value] ... or typeset -p [-aAfFilnrtux] [name ...]"
+msgstr "typeset [-aAfFgiIlnrtux] name[=value] ... 或 typeset -p [-aAfFilnrtux] [name ...]"
#: builtins.c:82
msgid "local [option] name[=value] ..."
msgstr "help [-dms] [模式 …]"
#: builtins.c:123
-msgid ""
-"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg "
-"[arg...]"
-msgstr ""
-"history [-c] [-d 偏移量] [n] 或 history -anrw [檔名] 或 history -ps 參數 [參"
-"數…]"
+msgid "history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]"
+msgstr "history [-c] [-d 偏移量] [n] 或 history -anrw [檔名] 或 history -ps 參數 [參數…]"
#: builtins.c:127
msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]"
msgstr "disown [-h] [-ar] [jobspec ... | pid ...]"
#: builtins.c:134
-msgid ""
-"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l "
-"[sigspec]"
-msgstr ""
-"kill [-s 訊號規格 | -n 訊號編號 | -訊號規格] 行程識別碼 | 工作規格 … 或 kill "
-"-l [訊號規格]"
+msgid "kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]"
+msgstr "kill [-s 訊號規格 | -n 訊號編號 | -訊號規格] 行程識別碼 | 工作規格 … 或 kill -l [訊號規格]"
#: builtins.c:136
msgid "let arg [arg ...]"
msgstr "let 參數 [參數 …]"
#: builtins.c:138
-#, fuzzy
-msgid ""
-"read [-Eers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p "
-"prompt] [-t timeout] [-u fd] [name ...]"
-msgstr ""
-"read [-ers] [-a 陣列] [-d 分隔符] [-i 緩衝區文字] [-n 讀取字元數] [-N 讀取字"
-"元數] [-p 提示符] [-t 逾時] [-u 檔案描述符] [名稱 …]"
+msgid "read [-Eers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]"
+msgstr "read [-Eers] [-a 陣列] [-d 分隔符] [-i 緩衝區文字] [-n 讀取字元數] [-N 讀取字元數] [-p 提示符] [-t 逾時] [-u 檔案描述符] [名稱 ...]"
#: builtins.c:140
msgid "return [n]"
msgstr "unset [-f] [-v] [-n] [名稱 …]"
#: builtins.c:146
-#, fuzzy
msgid "export [-fn] [name[=value] ...] or export -p [-f]"
-msgstr "export [-fn] [名稱[=值] …] 或 export -p"
+msgstr "export [-fn] [名稱[=值] …] 或 export -p [-f]"
#: builtins.c:148
msgid "readonly [-aAf] [name[=value] ...] or readonly -p"
msgstr "shift [n]"
#: builtins.c:152
-#, fuzzy
msgid "source [-p path] filename [arguments]"
-msgstr "source 檔名 [參數]"
+msgstr "source [-p 路徑] 檔名 [參數]"
#: builtins.c:154
-#, fuzzy
msgid ". [-p path] filename [arguments]"
-msgstr ". 檔名 [參數]"
+msgstr ". [-p 路徑] 檔名 [參數]"
#: builtins.c:157
msgid "suspend [-f]"
msgstr "[ 參數… ]"
#: builtins.c:166
-#, fuzzy
msgid "trap [-Plp] [[action] signal_spec ...]"
-msgstr "trap [-lp] [[參數] 訊號規格 …]"
+msgstr "trap [-Plp] [[動作] 訊號規格 …]"
#: builtins.c:168
msgid "type [-afptP] name [name ...]"
#: builtins.c:184
msgid "! PIPELINE"
-msgstr ""
+msgstr "! PIPELINE"
#: builtins.c:186
msgid "for NAME [in WORDS ... ] ; do COMMANDS; done"
msgstr "case 詞 in [模式 [| 模式]…) 指令 ;;]… esac"
#: builtins.c:196
-msgid ""
-"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else "
-"COMMANDS; ] fi"
+msgid "if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi"
msgstr "if 指令 ; then 指令 ; [ elif 指令 ; then 指令 ; ]… [ else 指令 ; ] fi"
#: builtins.c:198
msgstr "printf [-v var] 格式 [參數]"
#: builtins.c:233
-msgid ""
-"complete [-abcdefgjksuv] [-pr] [-DEI] [-o option] [-A action] [-G globpat] [-"
-"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S "
-"suffix] [name ...]"
-msgstr ""
-"complete [-abcdefgjksuv] [-pr] [-DEI] [-o 選項] [-A 動作] [-G 全域模式] [-W "
-"詞語列表] [-F 函數] [-C 指令] [-X 過濾模式] [-P 字首] [-S 字尾] [名稱 …]"
+msgid "complete [-abcdefgjksuv] [-pr] [-DEI] [-o option] [-A action] [-G globpat] [-W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...]"
+msgstr "complete [-abcdefgjksuv] [-pr] [-DEI] [-o 選項] [-A 動作] [-G 全域模式] [-W 詞語列表] [-F 函數] [-C 指令] [-X 過濾模式] [-P 字首] [-S 字尾] [名稱 …]"
#: builtins.c:237
-#, fuzzy
-msgid ""
-"compgen [-V varname] [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-"
-"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S "
-"suffix] [word]"
-msgstr ""
-"compgen [-abcdefgjksuv] [-o 選項] [-A 動作] [-G 全域模式] [-W 詞語列表] [-F "
-"函數] [-C 指令] [-X 過濾模式] [-P 字首] [-S 字尾] [詞語]"
+msgid "compgen [-V varname] [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
+msgstr "compgen [-V 變數名稱] [-abcdefgjksuv] [-o 選項] [-A 動作] [-G 萬用字元模式] [-W 單字清單] [-F 函式] [-C 指令] [-X 篩選模式] [-P 前置字] [-S 後置字] [單字]"
#: builtins.c:241
msgid "compopt [-o|+o option] [-DEI] [name ...]"
msgstr "compopt [-o|+o 選項] [-DEI] [名稱 …]"
#: builtins.c:244
-msgid ""
-"mapfile [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C "
-"callback] [-c quantum] [array]"
-msgstr ""
-"mapfile [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C "
-"callback] [-c quantum] [array]"
+msgid "mapfile [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
+msgstr "mapfile [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
#: builtins.c:246
-msgid ""
-"readarray [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C "
-"callback] [-c quantum] [array]"
-msgstr ""
-"readarray [-d 分割符號] [-n 計數] [-O 起始序號] [-s 計數] [-t] [-u fd] [-C 回"
-"呼] [-c 定量] [陣列]"
+msgid "readarray [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
+msgstr "readarray [-d 分割符號] [-n 計數] [-O 起始序號] [-s 計數] [-t] [-u fd] [-C 回呼] [-c 定量] [陣列]"
#: builtins.c:258
msgid ""
" -p\tprint all defined aliases in a reusable format\n"
" \n"
" Exit Status:\n"
-" alias returns true unless a NAME is supplied for which no alias has "
-"been\n"
+" alias returns true unless a NAME is supplied for which no alias has been\n"
" defined."
msgstr ""
"定義或顯示別名。\n"
" 回傳成功,除非 <名稱> 不是一個已存在的別名。"
#: builtins.c:293
-#, fuzzy
msgid ""
"Set Readline key bindings and variables.\n"
" \n"
" Options:\n"
" -m keymap Use KEYMAP as the keymap for the duration of this\n"
" command. Acceptable keymap names are emacs,\n"
-" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-"
-"move,\n"
+" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,\n"
" vi-command, and vi-insert.\n"
" -l List names of functions.\n"
" -P List function names and bindings.\n"
" -p List functions and bindings in a form that can be\n"
" reused as input.\n"
-" -S List key sequences that invoke macros and their "
-"values\n"
-" -s List key sequences that invoke macros and their "
-"values\n"
+" -S List key sequences that invoke macros and their values\n"
+" -s List key sequences that invoke macros and their values\n"
" in a form that can be reused as input.\n"
" -V List variable names and values\n"
" -v List variable names and values in a form that can\n"
" be reused as input.\n"
" -q function-name Query about which keys invoke the named function.\n"
-" -u function-name Unbind all keys which are bound to the named "
-"function.\n"
+" -u function-name Unbind all keys which are bound to the named function.\n"
" -r keyseq Remove the binding for KEYSEQ.\n"
" -f filename Read key bindings from FILENAME.\n"
" -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
" \t\t\t\tKEYSEQ is entered.\n"
-" -X List key sequences bound with -x and associated "
-"commands\n"
+" -X List key sequences bound with -x and associated commands\n"
" in a form that can be reused as input.\n"
" \n"
-" If arguments remain after option processing, the -p and -P options "
-"treat\n"
+" If arguments remain after option processing, the -p and -P options treat\n"
" them as readline command names and restrict output to those names.\n"
" \n"
" Exit Status:\n"
" bind returns 0 unless an unrecognized option is given or an error occurs."
msgstr ""
-"設定 Readline 按鍵綁定和變數。\n"
+"設定 Readline 的鍵位綁定和變數。\n"
" \n"
-" 綁定一個按鍵序列到一個 Readline 函數或者巨集,或者設定一個\n"
-" Readline 變數。非選項參數的語法和 ~/.inputrc 檔案中的等\n"
-" 同,但是必須做為一個參數被傳遞,\n"
+" 將一組鍵位序列綁定到 Readline 函數或巨集,或設定 Readline 變數。\n"
+" 非選項參數的語法與 ~/.inputrc 中的語法相同,但必須作為單一引數傳遞:\n"
" 例如,bind '\"\\C-x\\C-r\": re-read-init-file'。\n"
" \n"
" 選項:\n"
-" -m 按鍵映射 在此指令執行過程中使用指定的按鍵映射。\n"
-" 可被接受的按鍵映射名字有 emacs、emacs-standard、emacs-"
-"meta、\n"
-" emacs-ctlx、vi、vi-move、vi-command、和 vi-insert。\n"
-" -l 列出函數名稱。\n"
-" -P 列出函數名稱和綁定。\n"
-" -p 以可以重新用作輸入的格式列出函數名稱和綁定。\n"
-" -S 列出可以啟動巨集的按鍵序列以及它們的值\n"
-" -s 以可以重新用作輸入的格式列出可以啟動巨集的鍵以及它們的"
-"值。\n"
-" -V 列出變數名稱和它們的值\n"
-" -v 以可以重新用作輸入的格式列出變數的名稱和它們的值\n"
-" -q 函數名 查詢指定的函數可以由哪些鍵啟動。\n"
-" -u 函數名 反綁定所有綁定至指定函數的鍵。\n"
-" -r 按鍵序列 取消指定按鍵序列的綁定。\n"
-" -f 檔名 從指定檔案中讀取按鍵綁定。\n"
-" -x 按鍵序列:shell 指令\t當指定的按鍵序列被輸入時,執行指定的 shell 指"
-"令。\n"
-" -X 以可被重用的形式列出用 -x 綁定的按鍵序列和指令。\n"
+" -m keymap 在此命令的執行期間,將 KEYMAP 用作鍵盤映射。\n"
+" 可接受的鍵盤映射名稱包括 emacs、emacs-standard、\n"
+" emacs-meta、emacs-ctlx、vi、vi-move、vi-command\n"
+" 和 vi-insert。\n"
+" -l 列出函式的名稱。\n"
+" -P 列出函式的名稱和綁定。\n"
+" -p 以可重複用作輸入的形式,列出函式和綁定。\n"
+" -S 列出觸發巨集的鍵位序列及其值。\n"
+" -s 以可重複用作輸入的形式,列出觸發巨集的鍵位序列及其值。\n"
+" -V 列出變數的名稱和值。\n"
+" -v 以可重複用作輸入的形式,列出變數的名稱和值。\n"
+" -q function-name 查詢哪些鍵位會觸發指定的函數。\n"
+" -u function-name 解除綁定所有綁定到指定函數的鍵位。\n"
+" -r keyseq 移除 KEYSEQ 的綁定。\n"
+" -f filename 從 FILENAME 讀取鍵位綁定。\n"
+" -x keyseq:shell-command\t當輸入 KEYSEQ 時,\n"
+" \t\t\t\t執行 SHELL-COMMAND。\n"
+" -X 以可重複用作輸入的形式,列出使用 -x\n"
+" 綁定的鍵位序列及其關聯的命令。\n"
+" \n"
+" 如果在處理完選項之後還有剩餘的引數,則 -p 和 -P 選項會將它們視為\n"
+" Readline 命令名稱,並將輸出限制為這些名稱。\n"
" \n"
" 結束狀態:\n"
-" 除非使用了無法識別的選項或者錯誤發生,否則回傳 0。"
+" bind 除非提供了未知的選項或發生錯誤,否則回傳 0。"
#: builtins.c:335
msgid ""
" \n"
" Execute SHELL-BUILTIN with arguments ARGs without performing command\n"
" lookup. This is useful when you wish to reimplement a shell builtin\n"
-" as a shell function, but need to execute the builtin within the "
-"function.\n"
+" as a shell function, but need to execute the builtin within the function.\n"
" \n"
" Exit Status:\n"
" Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n"
" 但需要在函數之內執行該 shell 內建命令的情況下有用處。\n"
" \n"
" 結束狀態:\n"
-" 以 <shell 內建命令> 的結束狀態為準,或者如果 <shell 內建命令> 不是一個 "
-"shell 內建命令時\n"
+" 以 <shell 內建命令> 的結束狀態為準,或者如果 <shell 內建命令> 不是一個 shell 內建命令時\n"
" 回傳 false。"
#: builtins.c:374
" 果為 0。"
#: builtins.c:392
-#, fuzzy
msgid ""
"Change the shell working directory.\n"
" \n"
-" Change the current directory to DIR. The default DIR is the value of "
-"the\n"
+" Change the current directory to DIR. The default DIR is the value of the\n"
" HOME shell variable. If DIR is \"-\", it is converted to $OLDPWD.\n"
" \n"
-" The variable CDPATH defines the search path for the directory "
-"containing\n"
-" DIR. Alternative directory names in CDPATH are separated by a colon "
-"(:).\n"
-" A null directory name is the same as the current directory. If DIR "
-"begins\n"
+" The variable CDPATH defines the search path for the directory containing\n"
+" DIR. Alternative directory names in CDPATH are separated by a colon (:).\n"
+" A null directory name is the same as the current directory. If DIR begins\n"
" with a slash (/), then CDPATH is not used.\n"
" \n"
-" If the directory is not found, and the shell option `cdable_vars' is "
-"set,\n"
-" the word is assumed to be a variable name. If that variable has a "
-"value,\n"
+" If the directory is not found, and the shell option `cdable_vars' is set,\n"
+" the word is assumed to be a variable name. If that variable has a value,\n"
" its value is used for DIR.\n"
" \n"
" Options:\n"
" \t\tattributes as a directory containing the file attributes\n"
" \n"
" The default is to follow symbolic links, as if `-L' were specified.\n"
-" `..' is processed by removing the immediately previous pathname "
-"component\n"
+" `..' is processed by removing the immediately previous pathname component\n"
" back to a slash or the beginning of DIR.\n"
" \n"
" Exit Status:\n"
-" Returns 0 if the directory is changed, and if $PWD is set successfully "
-"when\n"
+" Returns 0 if the directory is changed, and if $PWD is set successfully when\n"
" -P is used; non-zero otherwise."
msgstr ""
-"變更 shell 工作目錄。\n"
-" \n"
-" 變更目前目錄至 <目錄>。預設的 <目錄> 是 shell 變數 HOME\n"
-" 的值。\n"
+"變更 shell 的工作目錄。\n"
+"\n"
+" 將目前目錄變更為 DIR。預設的 DIR 為 shell 變數 HOME 的值。\n"
+" 若 DIR 為「-」,則會轉換為 $OLDPWD。\n"
" \n"
-" 變數 CDPATH 定義了含有 <目錄> 的目錄搜尋路徑,其中不同的目錄名稱由冒號 "
-"(:) 分隔。\n"
-" 一個空的目錄名稱表示目前目錄。如果要切換到的 <目錄> 由斜線 (/) 開頭,則 "
-"CDPATH\n"
-" 變數不會被使用。\n"
+" 變數 CDPATH 定義了包含 DIR 的目錄搜尋路徑。CDPATH 中的不同目錄\n"
+" 名稱以冒號 (:) 分隔。空目錄名稱等同於目前目錄。若 DIR 以斜線 (/)\n"
+" 開頭,則不使用 CDPATH。\n"
" \n"
-" 如果路徑找不到,並且 shell 選項「cdable_vars」被設定,則參數詞被假定為一"
-"個\n"
-" 變數名。如果該變數有值,則它的值被當做 <目錄>。\n"
+" 若找不到該目錄,且設定了 shell 選項「cdable_vars」,則該單字會\n"
+" 被視為變數名稱。若該變數有值,則將其值用作 DIR。\n"
" \n"
" 選項:\n"
-" -L\t強制跟隨符號連結: 在處理「..」之後解析 <目錄> 中的符號連結。\n"
-" -P\t使用實體目錄結構而不跟隨符號連結: 在處理「..」之前解析 <目錄> 中"
-"的符號連結。\n"
-" -e\t如果使用了 -P 參數,但不能成功確定目前工作目錄時,回傳非零的回傳"
-"值。\n"
-" -@\t在支援擴充屬性的系統上,將一個有這些屬性的檔案當做有檔案屬性的目"
-"錄。\n"
-" \n"
-" 預設情況下跟隨符號連結,如同指定「-L」。\n"
-" 「..」使用移除向前相鄰目錄名成員直到 <目錄> 開始或一個斜線的方式處理。\n"
+" -L\t強制追蹤符號連結:在處理「..」之後,解析\n"
+" \t\tDIR 中的符號連結。\n"
+" -P\t使用物理目錄結構而不追蹤符號連結:\n"
+" \t\t在處理「..」之前,解析 DIR 中的符號連結。\n"
+" -e\t若提供了 -P 選項,且無法成功確定目前工作\n"
+" \t\t目錄,則以非 0 狀態結束。\n"
+" -@\t在支援的系統上,將具有延伸屬性的檔案呈現\n"
+" \t\t為包含檔案屬性的目錄。\n"
+" \n"
+" 預設為追蹤符號連結,如同指定了「-L」。處理「..」的方式是移除\n"
+" 緊鄰的前一個路徑名稱元件,直到斜線或 DIR 的開頭。\n"
" \n"
" 結束狀態:\n"
-" 如果目錄變更,或在使用 -P 選項時 $PWD 修改成功時回傳 0,否則非零。"
+" 若成功變更目錄,且在使用 -P 時成功設定 $PWD,則傳回 0;\n"
+" 否則傳回非零值。"
#: builtins.c:430
msgid ""
" 一律失敗。"
#: builtins.c:476
-#, fuzzy
msgid ""
"Execute a simple command or display information about commands.\n"
" \n"
" Runs COMMAND with ARGS suppressing shell function lookup, or display\n"
-" information about the specified COMMANDs. Can be used to invoke "
-"commands\n"
+" information about the specified COMMANDs. Can be used to invoke commands\n"
" on disk when a function with the same name exists.\n"
" \n"
" Options:\n"
" Exit Status:\n"
" Returns exit status of COMMAND, or failure if COMMAND is not found."
msgstr ""
-"執行一個簡單指令或者顯示指令的相關資訊。\n"
+"執行簡單的指令或顯示指令相關資訊。\n"
" \n"
-" 帶 ARGS 參數執行 COMMAND 指令且抑制 shell 函數查詢,或顯示\n"
-" 指定的 COMMAND 指令的資訊。可以在存在相同名稱函數定義的\n"
-" 情況下被用於啟動磁碟上的指令。\n"
+" 執行 COMMAND 及其引數 ARGS 並忽略 shell 函式的查詢,或顯示指定\n"
+" COMMAND 的相關資訊。當存在同名的函式時,可用於叫用磁碟上的指令。\n"
" \n"
" 選項:\n"
-" -p\t使用 PATH 變數的一個預設值以確保所有的標準工具都能被找到。\n"
-" -v\t印出 COMMAND 指令的描述,和「type」內建相似\n"
-" -V\t印出每個 COMMAND 指令的詳細描述\n"
+" -p 使用 PATH 的預設值,以確保能找到所有的標準公用程式\n"
+" -v 輸出單一單字,顯示用來叫用 COMMAND 的命令或檔案名稱\n"
+" -V 輸出每個 COMMAND 更詳細的描述\n"
" \n"
" 結束狀態:\n"
-" å\9b\9eå\82³ COMMAND æ\8c\87令ç\9a\84å\9b\9eå\82³ç\8b\80æ\85\8bï¼\8cæ\88\96è\80\85ç\95¶æ\89¾ä¸\8då\88° COMMAND æ\8c\87令æ\99\82失敗。"
+" å\82³å\9b\9e COMMAND ç\9a\84çµ\90æ\9d\9fç\8b\80æ\85\8bï¼\8cè\8b¥æ\89¾ä¸\8då\88° COMMAND å\89\87å\82³å\9b\9e失敗。"
#: builtins.c:496
-#, fuzzy
msgid ""
"Set variable values and attributes.\n"
" \n"
" Variables with the integer attribute have arithmetic evaluation (see\n"
" the `let' command) performed when the variable is assigned a value.\n"
" \n"
-" When used in a function, `declare' makes NAMEs local, as with the "
-"`local'\n"
+" When used in a function, `declare' makes NAMEs local, as with the `local'\n"
" command. The `-g' option suppresses this behavior.\n"
" \n"
" Exit Status:\n"
" Returns success unless an invalid option is supplied or a variable\n"
" assignment error occurs."
msgstr ""
-"設定變數值和屬性。\n"
+"設定變數的數值與屬性。\n"
" \n"
-" 宣告變數並賦予其屬性。若未指定 <名稱>,\n"
-" 則顯示所有變數的屬性和數值。\n"
+" 宣告變數並賦予其屬性。若未指定 NAME 名稱,則顯示所有\n"
+" 變數的屬性與值。\n"
" \n"
" 選項:\n"
-" -f\t限制動作或顯示為只有函數名稱和定義\n"
-" -F\t限制僅顯示函數名稱(偵錯時另包含列號和原始檔名)\n"
-" -g\t用於 shell 函數時建立全域變數 ; 否則忽略\n"
-" -I\t如果建立的是本地變數,則繼承上個作用域中,\n"
-" \t\tå\90\8cå\90\8dè®\8aæ\95¸ç\9a\84屬æ\80§å\8f\8aæ\95¸å\80¼ã\80\82\n"
-" -p\t顯示每個 <名稱> 變數的屬性和值\n"
+" -f\t將動作或顯示限制在函式名稱與定義\n"
+" -F\t只限制顯示函式名稱(除錯時會加上列號與來源檔案)\n"
+" -g\t在 shell 函式中使用時,建立全域變數;否則忽略\n"
+" -I\t若建立區域變數,則繼承前一個作用域中同名變數的\n"
+" \t\t屬æ\80§è\88\87æ\95¸å\80¼\n"
+" -p\t顯示每個 NAME 的屬性與數值\n"
" \n"
" 設定屬性的選項:\n"
-" -a\t使 <名稱> 成為索引陣列 (如果支援)\n"
-" -A\t使 <名稱> 成為關聯陣列 (如果支援)\n"
-" -i\t使 <名稱> 帶有「integer」(整數)屬性\n"
-" -l\tå°\87æ¯\8få\80\8b <å\90\8d稱> ç\9a\84å\80¼å\9c¨æ\8c\87æ´¾æ\99\82è½\89為小寫\n"
-" -n\t使 <名稱> 成為指向一個以其值為名稱的變數引用\n"
-" -r\t將 <名稱> 變為唯讀\n"
-" -t\t使 <名稱> 帶有「trace」(追蹤)屬性\n"
-" -u\tå°\87æ¯\8få\80\8b <å\90\8d稱> ç\9a\84å\80¼å\9c¨æ\8c\87æ´¾æ\99\82è½\89為大寫\n"
-" -x\t將 <名稱> 匯出\n"
+" -a\t將 NAME 設為索引陣列(若支援)\n"
+" -A\t將 NAME 設為關聯陣列(若支援)\n"
+" -i\t為 NAME 賦予「整數 (integer)」屬性\n"
+" -l\tå\9c¨è³¦å\80¼æ\99\82ï¼\8cå°\87æ¯\8få\80\8b NAME ç\9a\84å\80¼è½\89æ\8f\9b為小寫\n"
+" -n\t將 NAME 設為其值所指向之變數的引用\n"
+" -r\t將 NAME 設為唯讀\n"
+" -t\t為 NAME 賦予「追蹤 (trace)」屬性\n"
+" -u\tå\9c¨è³¦å\80¼æ\99\82ï¼\8cå°\87æ¯\8få\80\8b NAME ç\9a\84å\80¼è½\89æ\8f\9b為大寫\n"
+" -x\t將 NAME 匯出為環境變數 (export)\n"
" \n"
-" 用「+」代替「-」會關閉指定屬性。\n"
+" 使用「+」代替「-」可關閉指定的屬性,但 a、A 與 r 除外。\n"
" \n"
-" 帶有整數屬性的變數,會在指派時執行算術求值(見「let」指令)\n"
+" 具有整數屬性的變數,在被賦值時會執行算術運算\n"
+" (參見「let」指令)。\n"
" \n"
-" 在函數中使用時,「declare」使 <名稱> 成為本機變數,和「local」\n"
-" 指令一致。「-g」選項會壓制本行為\n"
+" 在函式中使用時,「declare」會使 NAME 成為區域變數,\n"
+" 如同使用「local」指令。使用「-g」選項可抑制此行為。\n"
" \n"
" 結束狀態:\n"
-" å\9b\9eå\82³æ\88\90å\8a\9fï¼\8cé\99¤é\9d\9e使ç\94¨äº\86ç\84¡æ\95\88é\81¸é \85ï¼\8cæ\88\96è\80\85發生錯誤。"
+" å\82³å\9b\9eæ\88\90å\8a\9fï¼\8cé\99¤é\9d\9eæ\8f\90ä¾\9bäº\86ç\84¡æ\95\88ç\9a\84é\81¸é \85æ\88\96賦å\80¼è®\8aæ\95¸æ\99\82發生錯誤。"
#: builtins.c:539
msgid ""
" 功能相同於「declare」。參見「help declare」。"
#: builtins.c:547
-#, fuzzy
msgid ""
"Define local variables.\n"
" \n"
" Returns success unless an invalid option is supplied, a variable\n"
" assignment error occurs, or the shell is not executing a function."
msgstr ""
-"定義æ\9c¬æ©\9fè®\8aæ\95¸ã\80\82\n"
+"定義å\8d\80å\9f\9fè®\8aæ\95¸ã\80\82\n"
" \n"
-" 建立一個以 <名稱> 為名稱的變數,並且將 VALUE 指派給它。\n"
-" OPTION 選項可以是任何能被「declare」接受的選項。\n"
+" 建立一個名為 NAME 的區域變數,並賦予其 VALUE。OPTION 可以是\n"
+" 「declare」所接受的任何選項。\n"
" \n"
-" 本機變數只能在函數內部被使用,它們只能在定義它們的函數內\n"
-" 部以及子函數中可見。\n"
+" 若任何 NAME 為「-」,則 local 會儲存目前的 shell 選項設定,\n"
+" 並在函式返回時將其還原。\n"
+" \n"
+" 區域變數只能在函式內部使用。它們僅對定義它們的函式及其子程序\n"
+" (children) 可見。\n"
" \n"
" 結束狀態:\n"
-" å\9b\9eå\82³æ\88\90å\8a\9fï¼\8cé\99¤é\9d\9e使ç\94¨äº\86ç\84¡æ\95\88ç\9a\84é\81¸é \85ã\80\81ç\99¼ç\94\9fäº\86æ\8c\87æ´¾é\8c¯èª¤æ\88\96è\80\85 shell ä¸\8då\9c¨å\9f·è¡\8cä¸\80å\80\8bå\87½"
-"數。"
+" å\82³å\9b\9eæ\88\90å\8a\9fï¼\8cé\99¤é\9d\9eæ\8f\90ä¾\9bäº\86ç\84¡æ\95\88ç\9a\84é\81¸é \85ã\80\81ç\99¼ç\94\9fè®\8aæ\95¸è³¦å\80¼é\8c¯èª¤ï¼\8cæ\88\96è\80\85 shell\n"
+" 目前沒有在執行函式。"
#: builtins.c:567
msgid ""
"Write arguments to the standard output.\n"
" \n"
-" Display the ARGs, separated by a single space character and followed by "
-"a\n"
+" Display the ARGs, separated by a single space character and followed by a\n"
" newline, on the standard output.\n"
" \n"
" Options:\n"
" \t\t0 to 3 octal digits\n"
" \\xHH\tthe eight-bit character whose value is HH (hexadecimal). HH\n"
" \t\tcan be one or two hex digits\n"
-" \\uHHHH\tthe Unicode character whose value is the hexadecimal value "
-"HHHH.\n"
+" \\uHHHH\tthe Unicode character whose value is the hexadecimal value HHHH.\n"
" \t\tHHHH can be one to four hex digits.\n"
-" \\UHHHHHHHH the Unicode character whose value is the hexadecimal "
-"value\n"
+" \\UHHHHHHHH the Unicode character whose value is the hexadecimal value\n"
" \t\tHHHHHHHH. HHHHHHHH can be one to eight hex digits.\n"
" \n"
" Exit Status:\n"
" \\t\t橫向製表符\n"
" \\v\t縱向製表符\n"
" \\\\\t反斜線\n"
-" \\0nnn\t以 NNN (八進位)為 ASCII 碼的字元。 NNN 可以是 0 到 3 個八進位數"
-"字\n"
-" \\xHH\t以 HH (十六進位)為值的八進位字元。HH 可以是一個或兩個十六進位數"
-"字\n"
+" \\0nnn\t以 NNN (八進位)為 ASCII 碼的字元。 NNN 可以是 0 到 3 個八進位數字\n"
+" \\xHH\t以 HH (十六進位)為值的八進位字元。HH 可以是一個或兩個十六進位數字\n"
" \\uHHHH\t以十六進位 HHHH 為值的 Unicode 字元。\n"
" \t\tHHHH 可為一個到四個十六進位數字。\n"
" \\UHHHHHHHH 以十六進位 HHHHHHHH 為值的 Unicode 字元。\n"
" 除非寫錯誤發生,否則回傳成功。"
#: builtins.c:622
-#, fuzzy
msgid ""
"Enable and disable shell builtins.\n"
" \n"
" \n"
" On systems with dynamic loading, the shell variable BASH_LOADABLES_PATH\n"
" defines a search path for the directory containing FILENAMEs that do\n"
-" not contain a slash. It may include \".\" to force a search of the "
-"current\n"
+" not contain a slash. It may include \".\" to force a search of the current\n"
" directory.\n"
" \n"
" To use the `test' found in $PATH instead of the shell builtin\n"
" Exit Status:\n"
" Returns success unless NAME is not a shell builtin or an error occurs."
msgstr ""
-"啟用和停用 shell 內建命令。\n"
-" \n"
-" 啟用和停用 shell 的內建指令。停用使您能夠執行一個和內建\n"
-" 指令同名磁碟上的指令,而無須使用完整的路徑名。\n"
+"啟用與停用 shell 內建命令。\n"
" \n"
+" 啟用與停用 shell 內建命令。停用內建命令可讓您在不使用\n"
+" 完整路徑名稱的情況下,執行與 shell 內建命令同名的磁碟命令。\n"
" \n"
" 選項:\n"
-" -a\t印出一個內建的列表,並顯示其中每一個是否啟用\n"
-" -n\t停用每一個 <名稱> 內建或者顯示一個被停用的內建列表\n"
-" -p\t以可重用的格式印出一個內建的列表\n"
-" -s\t僅印出 Posix「special」 內建的名稱\n"
+" -a\t印出內建命令清單,並顯示各個命令是否已經啟用\n"
+" -n\t停用每個 NAME,或顯示已停用的內建命令清單\n"
+" -p\t以可重複使用的格式印出內建命令清單\n"
+" -s\t僅印出 Posix「特有 (special)」內建命令的名稱\n"
" \n"
" 控制動態載入的選項:\n"
-" -f\t從共享物件 <檔名> 檔案中載入 <名稱> 內建\n"
-" -d\t刪除以 -f 選項載入的內建\n"
+" -f\t從共用物件 FILENAME 載入內建命令 NAME\n"
+" -d\t移除以 -f 載入的內建命令\n"
+" \n"
+" 若沒有指定選項,則會啟用每個 NAME。\n"
" \n"
-" 不帶選項時,每一個 <名稱> 內建都被啟用。\n"
+" 在支援動態載入的系統上,shell 變數 BASH_LOADABLES_PATH\n"
+" 定義了搜尋路徑,用於尋找不含斜線的 FILENAME 所處的目錄。\n"
+" 可以包含「.」來強制搜尋目前目錄。\n"
" \n"
-" 如果要使用 $PATH 中找到的「test」而不是 shell 內建命令的版本,\n"
-" 輸入「enable -n test」。\n"
+" 若要使用 $PATH 中的「test」版本而非 shell 內建版本,\n"
+" è«\8b輸å\85¥ã\80\8cenable -n testã\80\8dã\80\82\n"
" \n"
" 結束狀態:\n"
-" å\9b\9eå\82³æ\88\90å\8a\9fï¼\8cé\99¤é\9d\9e <å\90\8d稱> ä¸\8dæ\98¯ä¸\80å\80\8b shell å\85§å»ºå\91½ä»¤æ\88\96è\80\85æ\9c\89é\8c¯èª¤ç\99¼ç\94\9f。"
+" å\82³å\9b\9eæ\88\90å\8a\9fï¼\8cé\99¤é\9d\9e NAME ä¸\8dæ\98¯ shell å\85§å»ºå\91½ä»¤æ\88\96ç\99¼ç\94\9fé\8c¯èª¤。"
#: builtins.c:655
msgid ""
"Execute arguments as a shell command.\n"
" \n"
-" Combine ARGs into a single string, use the result as input to the "
-"shell,\n"
+" Combine ARGs into a single string, use the result as input to the shell,\n"
" and execute the resulting commands.\n"
" \n"
" Exit Status:\n"
"Replace the shell with the given command.\n"
" \n"
" Execute COMMAND, replacing this shell with the specified program.\n"
-" ARGUMENTS become the arguments to COMMAND. If COMMAND is not "
-"specified,\n"
+" ARGUMENTS become the arguments to COMMAND. If COMMAND is not specified,\n"
" any redirections take effect in the current shell.\n"
" \n"
" Options:\n"
" -c\texecute COMMAND with an empty environment\n"
" -l\tplace a dash in the zeroth argument to COMMAND\n"
" \n"
-" If the command cannot be executed, a non-interactive shell exits, "
-"unless\n"
+" If the command cannot be executed, a non-interactive shell exits, unless\n"
" the shell option `execfail' is set.\n"
" \n"
" Exit Status:\n"
-" Returns success unless COMMAND is not found or a redirection error "
-"occurs."
+" Returns success unless COMMAND is not found or a redirection error occurs."
msgstr ""
"使用指定指令取代 shell。\n"
" \n"
msgid ""
"Exit a login shell.\n"
" \n"
-" Exits a login shell with exit status N. Returns an error if not "
-"executed\n"
+" Exits a login shell with exit status N. Returns an error if not executed\n"
" in a login shell."
msgstr ""
"結束一個登入 shell。\n"
" 回傳一個錯誤。"
#: builtins.c:749
-#, fuzzy
msgid ""
"Display or execute commands from the history list.\n"
" \n"
-" fc is used to list or edit and re-execute commands from the history "
-"list.\n"
+" fc is used to list or edit and re-execute commands from the history list.\n"
" FIRST and LAST can be numbers specifying the range, or FIRST can be a\n"
" string, which means the most recent command beginning with that\n"
" string.\n"
" \n"
" Options:\n"
-" -e ENAME\tselect which editor to use. Default is FCEDIT, then "
-"EDITOR,\n"
+" -e ENAME\tselect which editor to use. Default is FCEDIT, then EDITOR,\n"
" \t\tthen vi\n"
" -l \tlist lines instead of editing\n"
" -n\tomit line numbers when listing\n"
" The history builtin also operates on the history list.\n"
" \n"
" Exit Status:\n"
-" Returns success or status of executed command; non-zero if an error "
-"occurs."
+" Returns success or status of executed command; non-zero if an error occurs."
msgstr ""
-"從歷史記錄列表中顯示或者執行指令。\n"
-" \n"
-" fc 被用於從歷史記錄列表中列出或者重新編輯並執行指令。\n"
-" FIRST 和 LAST 變數可以是數字用於指定範圍,或者 FIRST 可以是\n"
-" 字串,意味著以這個字串開頭的最近一個指令。\n"
+"顯示或執行歷史列表中的命令。\n"
" \n"
+" fc 用於列出、編輯並重新執行歷史列表中的命令。\n"
+" FIRST 與 LAST 可以是指定範圍的數字,或者 FIRST\n"
+" 可以是一個字串,代表以此字串開頭的最近一筆命令。\n"
" \n"
" 選項:\n"
-" -e ENAME\t選擇使用哪個編輯器。預設的是 FCEDIT,然後是 EDITOR,\n"
-" \t\t然後是 vi\n"
-" -l \tå\88\97å\87ºå\88\97è\80\8cä¸\8d編輯\n"
-" -n\t列舉時省略列號\n"
-" -r\t反轉列的順序(最新列在前)\n"
+" -e ENAME\t選擇要使用的編輯器。預設為 FCEDIT,其次為\n"
+" \t\tEDITOR,最後是 vi\n"
+" -l \tå\88\97å\87ºå\91½ä»¤å\88\97è\80\8cé\9d\9e編輯\n"
+" -n\t列出時省略列號\n"
+" -r\t反轉排列順序(先列出最新的)\n"
" \n"
-" 用「fc -s [模式=取代 …] [指令]」的格式,COMMAND 指令會在 OLD=NEW\n"
-" å\8f\96代ä¹\8bå¾\8c被é\87\8dæ\96°å\9f·è¡\8c。\n"
+" 使用「fc -s [pat=rep ...] [command]」格式時,會在\n"
+" å\9f·è¡\8c OLD=NEW æ\9b¿æ\8f\9bå¾\8cé\87\8dæ\96°å\9f·è¡\8c COMMAND。\n"
" \n"
-" r=「fc -s」是一個有用的別名,這樣的話輸入「r cc」會執行最後一個以「cc」\n"
-" 開頭的指令,輸入「r」會重新執行最後一個指令。\n"
+" 一個實用的別名設定是 r='fc -s',這樣輸入「r cc」\n"
+" 就會執行最後一筆以「cc」開頭的命令,而輸入「r」則\n"
+" 會重新執行最後一筆命令。\n"
" \n"
+" history 內建命令同樣可以操作歷史列表。\n"
" \n"
" 結束狀態:\n"
-" å\9b\9eå\82³æ\88\90å\8a\9fï¼\8cæ\88\96è\80\85å\9f·è¡\8cæ\8c\87令ç\9a\84ç\8b\80æ\85\8bï¼\9bå¦\82æ\9e\9cé\8c¯èª¤ç\99¼ç\94\9få\89\87å\9b\9eå\82³é\9d\9eé\9b¶。"
+" å\82³å\9b\9eæ\88\90å\8a\9fæ\88\96æ\89\80å\9f·è¡\8cå\91½ä»¤ç\9a\84ç\8b\80æ\85\8bï¼\9bè\8b¥ç\99¼ç\94\9fé\8c¯èª¤å\89\87å\82³å\9b\9eé\9d\9e 0 å\80¼。"
#: builtins.c:781
msgid ""
msgid ""
"Move jobs to the background.\n"
" \n"
-" Place the jobs identified by each JOB_SPEC in the background, as if "
-"they\n"
-" had been started with `&'. If JOB_SPEC is not present, the shell's "
-"notion\n"
+" Place the jobs identified by each JOB_SPEC in the background, as if they\n"
+" had been started with `&'. If JOB_SPEC is not present, the shell's notion\n"
" of the current job is used.\n"
" \n"
" Exit Status:\n"
"Remember or display program locations.\n"
" \n"
" Determine and remember the full pathname of each command NAME. If\n"
-" no arguments are given, information about remembered commands is "
-"displayed.\n"
+" no arguments are given, information about remembered commands is displayed.\n"
" \n"
" Options:\n"
" -d\tforget the remembered location of each NAME\n"
" \t\t<名稱>,則每個位置前面會加上相應的 <名稱> \n"
" \t\t\n"
" 參數:\n"
-" <名稱>\t\t每個 <名稱> 會在 $PATH 路徑變數中被搜尋,並且新增到記住的指"
-"令\n"
+" <名稱>\t\t每個 <名稱> 會在 $PATH 路徑變數中被搜尋,並且新增到記住的指令\n"
" 列表中。\n"
" \n"
" 結束狀態:\n"
" PATTERN\tPattern specifying a help topic\n"
" \n"
" Exit Status:\n"
-" Returns success unless PATTERN is not found or an invalid option is "
-"given."
+" Returns success unless PATTERN is not found or an invalid option is given."
msgstr ""
"顯示內建指令的相關資訊。\n"
" \n"
" 回傳成功,除非 PATTERN 模式沒有找到或者使用了無效選項。"
#: builtins.c:859
-#, fuzzy
msgid ""
"Display or manipulate the history list.\n"
" \n"
" \n"
" If the HISTTIMEFORMAT variable is set and not null, its value is used\n"
" as a format string for strftime(3) to print the time stamp associated\n"
-" with each displayed history entry. No time stamps are printed "
-"otherwise.\n"
+" with each displayed history entry. No time stamps are printed otherwise.\n"
" \n"
" Exit Status:\n"
" Returns success unless an invalid option is given or an error occurs."
msgstr ""
-"顯示或操縱歷史記錄列表。\n"
+"顯示或操作歷史列表。\n"
" \n"
-" 帶列號顯示歷史記錄列表,將每個被修改的條目加上字首「*」。\n"
-" 參數 N 會僅列出最後的 N 個條目。\n"
+" 顯示有列號的歷史列表,並在每個修改過的條目前加上\n"
+" 「*」。若指定引數 N,則僅列出最後 N 筆條目。\n"
" \n"
" 選項:\n"
-" -c\t刪除所有條目從而清空歷史記錄列表。\n"
-" -d 偏移量\t從指定位置刪除歷史記錄列表。負數偏移量會從歷史記錄列表\n"
-" \t\t的尾端數回來。\n"
+" -c\t刪除所有條目以清除歷史列表\n"
+" -d offset\t刪除位於 OFFSET 位置的歷史條目。負數偏移量\n"
+" \t\t表示從歷史列表末尾往回計算\n"
+" -d start-end\t刪除從位置 START 到位置 END 的歷史條目。\n"
" \n"
-" -a\t將目前工作階段的歷史記錄列追加到歷史記錄檔案中\n"
-" -n\t從歷史記錄檔案中讀取所有未被讀取的列\n"
-"\t\t並且將它們追加到歷史列表 -r\t讀取歷史記錄檔案並將內容追加到歷史記錄"
-"列表中\n"
-" -w\t將目前歷史記錄寫入到歷史記錄檔案中,並追加到歷史記錄列表中\n"
+" -a\t將本次工作階段的歷史列附加到歷史檔案中\n"
+" -n\t從歷史檔案中讀取尚未讀取的歷史列,\n"
+" \t\t並將其附加到歷史列表中\n"
+" -r\t讀取歷史檔案並將內容附加到歷史列表中\n"
+" -w\t將目前的歷史記錄寫入歷史檔案\n"
" \n"
-" -p\t對每一個 <參數> 展開歷史記錄並顯示結果,而不儲存到歷史記錄列表中\n"
-" -s\t以單條紀錄追加 <參數> 到歷史記錄列表中\n"
+" -p\t對每個 ARG 執行歷史擴展 (history expansion)\n"
+" \t\t並顯示結果,而不將其儲存在歷史列表中\n"
+" -s\t將所有 ARG 作為單一條目附加到歷史列表中\n"
" \n"
-" 如果指定了 <檔名>,則它將被做為歷史記錄檔案。否則\n"
-" 如果 $HISTFILE 變數有值的話使用之,不然使用 ~/.bash_history 檔案。\n"
+" 若指定了 FILENAME,則將其用作歷史檔案。否則,若 HISTFILE\n"
+" 已經有值,則使用這個值。若未提供 FILENAME 且 HISTFILE\n"
+" 未設定或為空,則 -a、-n、-r 和 -w 選項無效並傳回成功。\n"
" \n"
-" 如果 $HISTTIMEFORMAT 變數被設定並且不為空,它的值會被用於\n"
-" strftime(3) 的格式字串來印出與每一個顯示的歷史記錄條目想關聯的時\n"
-" 間戳,否則不印出時間戳。\n"
+" fc 內建命令同樣可以操作歷史列表。\n"
+" \n"
+" 若 HISTTIMEFORMAT 變數已設定且不為空,其值將作為 strftime(3)\n"
+" 的格式字串,用來輸出與每個顯示的歷史條目相關聯的時間戳記。\n"
+" 否則不印出時間戳記。\n"
" \n"
" 結束狀態:\n"
-" å\9b\9eå\82³æ\88\90å\8a\9fï¼\8cé\99¤é\9d\9e使ç\94¨äº\86ç\84¡æ\95\88ç\9a\84é\81¸é \85æ\88\96è\80\85發生錯誤。"
+" å\82³å\9b\9eæ\88\90å\8a\9fï¼\8cé\99¤é\9d\9eæ\8f\90ä¾\9bäº\86ç\84¡æ\95\88ç\9a\84é\81¸é \85æ\88\96發生錯誤。"
#: builtins.c:902
msgid ""
" -l\t列出訊號名稱;如果參數後跟「-l」則被假設為訊號編號,\n"
" \t而相應的訊號名稱會被列出\n"
" \n"
-" Kill 成為 shell 內建命令有兩個理由:它允許使用工作編號而不是行程識別"
-"碼,\n"
+" Kill 成為 shell 內建命令有兩個理由:它允許使用工作編號而不是行程識別碼,\n"
" 並且在可以建立的行程數上限達到時允許行程被砍除。\n"
" \n"
" 結束狀態:\n"
" Evaluate each ARG as an arithmetic expression. Evaluation is done in\n"
" fixed-width integers with no check for overflow, though division by 0\n"
" is trapped and flagged as an error. The following list of operators is\n"
-" grouped into levels of equal-precedence operators. The levels are "
-"listed\n"
+" grouped into levels of equal-precedence operators. The levels are listed\n"
" in order of decreasing precedence.\n"
" \n"
" \tid++, id--\tvariable post-increment, post-decrement\n"
" Shell 變數允許做為運算元。表示式中的變數名稱會以值取代\n"
" (強制轉換為定寬的整數)。表示式中的變數不需要開啟整數屬性。\n"
" \n"
-" 運算子按照優先順序進行求值。括號中的子表示式將被先求值,並可取代上述表示"
-"式規則。\n"
+" 運算子按照優先順序進行求值。括號中的子表示式將被先求值,並可取代上述表示式規則。\n"
" \n"
" 結束狀態:\n"
" 如果最後一個 <參數> 求值為 0,則 let 回傳 1;否則 let 回傳 0。"
#: builtins.c:1017
#, fuzzy
+#| msgid ""
+#| "Read a line from the standard input and split it into fields.\n"
+#| " \n"
+#| " Reads a single line from the standard input, or from file descriptor FD\n"
+#| " if the -u option is supplied. The line is split into fields as with word\n"
+#| " splitting, and the first word is assigned to the first NAME, the second\n"
+#| " word to the second NAME, and so on, with any leftover words assigned to\n"
+#| " the last NAME. Only the characters found in $IFS are recognized as word\n"
+#| " delimiters. By default, the backslash character escapes delimiter characters\n"
+#| " and newline.\n"
+#| " \n"
+#| " If no NAMEs are supplied, the line read is stored in the REPLY variable.\n"
+#| " \n"
+#| " Options:\n"
+#| " -a array\tassign the words read to sequential indices of the array\n"
+#| " \t\tvariable ARRAY, starting at zero\n"
+#| " -d delim\tcontinue until the first character of DELIM is read, rather\n"
+#| " \t\tthan newline\n"
+#| " -e\tuse Readline to obtain the line\n"
+#| " -i text\tuse TEXT as the initial text for Readline\n"
+#| " -n nchars\treturn after reading NCHARS characters rather than waiting\n"
+#| " \t\tfor a newline, but honor a delimiter if fewer than\n"
+#| " \t\tNCHARS characters are read before the delimiter\n"
+#| " -N nchars\treturn only after reading exactly NCHARS characters, unless\n"
+#| " \t\tEOF is encountered or read times out, ignoring any\n"
+#| " \t\tdelimiter\n"
+#| " -p prompt\toutput the string PROMPT without a trailing newline before\n"
+#| " \t\tattempting to read\n"
+#| " -r\tdo not allow backslashes to escape any characters\n"
+#| " -s\tdo not echo input coming from a terminal\n"
+#| " -t timeout\ttime out and return failure if a complete line of\n"
+#| " \t\tinput is not read within TIMEOUT seconds. The value of the\n"
+#| " \t\tTMOUT variable is the default timeout. TIMEOUT may be a\n"
+#| " \t\tfractional number. If TIMEOUT is 0, read returns\n"
+#| " \t\timmediately, without trying to read any data, returning\n"
+#| " \t\tsuccess only if input is available on the specified\n"
+#| " \t\tfile descriptor. The exit status is greater than 128\n"
+#| " \t\tif the timeout is exceeded\n"
+#| " -u fd\tread from file descriptor FD instead of the standard input\n"
+#| " \n"
+#| " Exit Status:\n"
+#| " The return code is zero, unless end-of-file is encountered, read times out\n"
+#| " (in which case it's greater than 128), a variable assignment error occurs,\n"
+#| " or an invalid file descriptor is supplied as the argument to -u."
msgid ""
"Read a line from the standard input and split it into fields.\n"
" \n"
" Reads a single line from the standard input, or from file descriptor FD\n"
-" if the -u option is supplied. The line is split into fields as with "
-"word\n"
+" if the -u option is supplied. The line is split into fields as with word\n"
" splitting, and the first word is assigned to the first NAME, the second\n"
" word to the second NAME, and so on, with any leftover words assigned to\n"
-" the last NAME. Only the characters found in $IFS are recognized as "
-"word\n"
-" delimiters. By default, the backslash character escapes delimiter "
-"characters\n"
+" the last NAME. Only the characters found in $IFS are recognized as word\n"
+" delimiters. By default, the backslash character escapes delimiter characters\n"
" and newline.\n"
" \n"
-" If no NAMEs are supplied, the line read is stored in the REPLY "
-"variable.\n"
+" If no NAMEs are supplied, the line read is stored in the REPLY variable.\n"
" \n"
" Options:\n"
" -a array\tassign the words read to sequential indices of the array\n"
" -n nchars\treturn after reading NCHARS characters rather than waiting\n"
" \t\tfor a newline, but honor a delimiter if fewer than\n"
" \t\tNCHARS characters are read before the delimiter\n"
-" -N nchars\treturn only after reading exactly NCHARS characters, "
-"unless\n"
+" -N nchars\treturn only after reading exactly NCHARS characters, unless\n"
" \t\tEOF is encountered or read times out, ignoring any\n"
" \t\tdelimiter\n"
" -p prompt\toutput the string PROMPT without a trailing newline before\n"
" -u fd\tread from file descriptor FD instead of the standard input\n"
" \n"
" Exit Status:\n"
-" The return code is zero, unless end-of-file is encountered, read times "
-"out\n"
-" (in which case it's greater than 128), a variable assignment error "
-"occurs,\n"
+" The return code is zero, unless end-of-file is encountered, read times out\n"
+" (in which case it's greater than 128), a variable assignment error occurs,\n"
" or an invalid file descriptor is supplied as the argument to -u."
msgstr ""
"從標準輸入讀取一列,並將其分為不同的區域。\n"
" \n"
-" 從標準輸入讀取單獨的一列,或者如果使用了 -u 選項,從檔案描述元 FD 中讀"
-"取。\n"
-" 該列會分割成區域,如同字詞分割一樣,並且第一個字詞被指派給第一個 NAME 變"
-"數,第二\n"
-" 個字詞被指派給第二個 NAME 變數,如此繼續,直到剩下所有的字詞被指派給最後"
-"一個 <名稱>\n"
-" 變數。只有 $IFS 變數中的字元被認做是字詞分隔符。預設情況下,反斜線字元會"
-"跳脫分割字元和換行。\n"
+" 從標準輸入讀取單獨的一列,或者如果使用了 -u 選項,從檔案描述元 FD 中讀取。\n"
+" 該列會分割成區域,如同字詞分割一樣,並且第一個字詞被指派給第一個 NAME 變數,第二\n"
+" 個字詞被指派給第二個 NAME 變數,如此繼續,直到剩下所有的字詞被指派給最後一個 <名稱>\n"
+" 變數。只有 $IFS 變數中的字元被認做是字詞分隔符。預設情況下,反斜線字元會跳脫分割字元和換行。\n"
" \n"
" 如果沒有提供 NAME 變數,則讀取的列會存放在 REPLY 變數中。\n"
" \n"
" -i text\t使用 TEXT 文字做為 Readline 的初始文字\n"
" -n nchars\t讀取 NCHARS 個字元之後回傳,而不是等到讀取換列符。\n"
" \t\t但如果遇到分隔符之前讀取了不足 NCHARS 個字元,分隔符仍然有效。\n"
-" -N nchars\t在準確讀取了 NCHARS 個字元之後回傳,除非遇到檔案結束符或者讀"
-"取逾時,\n"
+" -N nchars\t在準確讀取了 NCHARS 個字元之後回傳,除非遇到檔案結束符或者讀取逾時,\n"
" \t\t任何的分隔符都被忽略\n"
" -p prompt\t在嘗試讀取之前輸出 PROMPT 提示符並且不帶\n"
" \t\t換列符\n"
" -r\t不允許反斜線逸出任何字元\n"
" -s\t不顯示終端的任何輸入\n"
-" -t timeout\t如果在 TIMEOUT 秒內沒有讀取一個完整的列則逾時並且回傳失"
-"敗。\n"
+" -t timeout\t如果在 TIMEOUT 秒內沒有讀取一個完整的列則逾時並且回傳失敗。\n"
" \t\tTMOUT 變數的值是預設逾時時間。\n"
" \t\tTIMEOUT 可以是小數。如果 TIMEOUT 是 0,則立即回傳而不嘗試\n"
" \t\t讀取任何資料,如果指定的檔案描述符有輸入,則回傳成功\n"
" 回傳 N,或者如果 shell 不在執行一個函數或引用指令稿時,失敗。"
#: builtins.c:1080
-#, fuzzy
msgid ""
"Set or unset values of shell options and positional parameters.\n"
" \n"
" physical same as -P\n"
" pipefail the return value of a pipeline is the status of\n"
" the last command to exit with a non-zero status,\n"
-" or zero if no command exited with a non-zero "
-"status\n"
+" or zero if no command exited with a non-zero status\n"
" posix change the behavior of bash where the default\n"
" operation differs from the Posix standard to\n"
" match the standard\n"
" by default when the shell is interactive.\n"
" -P If set, do not resolve symbolic links when executing commands\n"
" such as cd which change the current directory.\n"
-" -T If set, the DEBUG and RETURN traps are inherited by shell "
-"functions.\n"
+" -T If set, the DEBUG and RETURN traps are inherited by shell functions.\n"
" -- Assign any remaining arguments to the positional parameters.\n"
" If there are no remaining arguments, the positional parameters\n"
" are unset.\n"
" 設定與選項名對應的變數:\n"
" allexport 與 -a 相同\n"
" braceexpand 與 -B 相同\n"
-" emacs 使用 emacs 風格的列編輯介面\n"
+" emacs 使用 emacs 風格的列編輯介面\n"
" errexit 與 -e 相同\n"
" errtrace 與 -E 相同\n"
" functrace 與 -T 相同\n"
" verbose 與 -v 相同\n"
" vi 使用 vi 風格的列編輯介面\n"
" xtrace 與 -x 相同\n"
-" -p 無論何時當真實的有效使用者身分不符合時開啟。\n"
+" -p 無論何時當真實和有效使用者身分不符合時開啟。\n"
" 停用對 $ENV 檔案的處理以及匯入 shell 函數。\n"
" 關閉此選項會導致有效的使用者編號和群組編號設定\n"
" 為真實的使用者編號和群組編號\n"
" -t 讀取並執行一個指令之後結束。\n"
-" -u 取代時將為設定的變數當做錯誤對待。\n"
+" -u 取代時將未設定的變數當做錯誤對待。\n"
" -v 讀取 shell 輸入列時將它們印出。\n"
" -x 執行指令時印出它們以及參數。\n"
-" -B shell å°\87å\9f·è¡\8c大æ\8b¬è\99\9fæ\93´å\85\85å¥\97ä»¶。\n"
+" -B shell å°\87å\9f·è¡\8c大æ\8b¬è\99\9fæ\93´å±\95。\n"
" -C 設定之後禁止以重定向輸出的方式覆蓋常\n"
" 規檔案。\n"
" -E 設定之後 ERR 陷阱會被 shell 函數繼承。\n"
" -n\ttreat each NAME as a name reference and unset the variable itself\n"
" \t\trather than the variable it references\n"
" \n"
-" Without options, unset first tries to unset a variable, and if that "
-"fails,\n"
+" Without options, unset first tries to unset a variable, and if that fails,\n"
" tries to unset a function.\n"
" \n"
" Some variables cannot be unset; also see `readonly'.\n"
" -v\t將每個 <名稱> 視為變數\n"
" -n\t將每個 <名稱> 視為名稱引用,只取消其本身而非其指向的變數\n"
" \n"
-" 不帶選項時,unset 首先嘗試取消設定一個變數,如果失敗,再嘗試取消設定一個"
-"函數。\n"
+" 不帶選項時,unset 首先嘗試取消設定一個變數,如果失敗,再嘗試取消設定一個函數。\n"
" \n"
" 某些變數不可以被取消設定;參見「readonly」。\n"
" \n"
#: builtins.c:1191
#, fuzzy
+#| msgid ""
+#| "Set export attribute for shell variables.\n"
+#| " \n"
+#| " Marks each NAME for automatic export to the environment of subsequently\n"
+#| " executed commands. If VALUE is supplied, assign VALUE before exporting.\n"
+#| " \n"
+#| " Options:\n"
+#| " -f\trefer to shell functions\n"
+#| " -n\tremove the export property from each NAME\n"
+#| " -p\tdisplay a list of all exported variables and functions\n"
+#| " \n"
+#| " An argument of `--' disables further option processing.\n"
+#| " \n"
+#| " Exit Status:\n"
+#| " Returns success unless an invalid option is given or NAME is invalid."
msgid ""
"Set export attribute for shell variables.\n"
" \n"
" Marks each NAME for automatic export to the environment of subsequently\n"
-" executed commands. If VALUE is supplied, assign VALUE before "
-"exporting.\n"
+" executed commands. If VALUE is supplied, assign VALUE before exporting.\n"
" \n"
" Options:\n"
" -f\trefer to shell functions\n"
#: builtins.c:1244 builtins.c:1260
#, fuzzy
+#| msgid ""
+#| "Execute commands from a file in the current shell.\n"
+#| " \n"
+#| " Read and execute commands from FILENAME in the current shell. The\n"
+#| " entries in $PATH are used to find the directory containing FILENAME.\n"
+#| " If any ARGUMENTS are supplied, they become the positional parameters\n"
+#| " when FILENAME is executed.\n"
+#| " \n"
+#| " Exit Status:\n"
+#| " Returns the status of the last command executed in FILENAME; fails if\n"
+#| " FILENAME cannot be read."
msgid ""
"Execute commands from a file in the current shell.\n"
" \n"
" -p option is supplied, the PATH argument is treated as a colon-\n"
" separated list of directories to search for FILENAME. If -p is not\n"
" supplied, $PATH is searched to find FILENAME. If any ARGUMENTS are\n"
-" supplied, they become the positional parameters when FILENAME is "
-"executed.\n"
+" supplied, they become the positional parameters when FILENAME is executed.\n"
" \n"
" Exit Status:\n"
" Returns the status of the last command executed in FILENAME; fails if\n"
#: builtins.c:1277
#, fuzzy
+#| msgid ""
+#| "Suspend shell execution.\n"
+#| " \n"
+#| " Suspend the execution of this shell until it receives a SIGCONT signal.\n"
+#| " Unless forced, login shells cannot be suspended.\n"
+#| " \n"
+#| " Options:\n"
+#| " -f\tforce the suspend, even if the shell is a login shell\n"
+#| " \n"
+#| " Exit Status:\n"
+#| " Returns success unless job control is not enabled or an error occurs."
msgid ""
"Suspend shell execution.\n"
" \n"
" -x FILE True if the file is executable by you.\n"
" -O FILE True if the file is effectively owned by you.\n"
" -G FILE True if the file is effectively owned by your group.\n"
-" -N FILE True if the file has been modified since it was last "
-"read.\n"
+" -N FILE True if the file has been modified since it was last read.\n"
" \n"
" FILE1 -nt FILE2 True if file1 is newer than file2 (according to\n"
" modification date).\n"
" STRING1 != STRING2\n"
" True if the strings are not equal.\n"
" STRING1 < STRING2\n"
-" True if STRING1 sorts before STRING2 "
-"lexicographically.\n"
+" True if STRING1 sorts before STRING2 lexicographically.\n"
" STRING1 > STRING2\n"
" True if STRING1 sorts after STRING2 lexicographically.\n"
" \n"
msgid ""
"Display process times.\n"
" \n"
-" Prints the accumulated user and system times for the shell and all of "
-"its\n"
+" Prints the accumulated user and system times for the shell and all of its\n"
" child processes.\n"
" \n"
" Exit Status:\n"
#: builtins.c:1398
#, fuzzy
+#| msgid ""
+#| "Trap signals and other events.\n"
+#| " \n"
+#| " Defines and activates handlers to be run when the shell receives signals\n"
+#| " or other conditions.\n"
+#| " \n"
+#| " ARG is a command to be read and executed when the shell receives the\n"
+#| " signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC\n"
+#| " is supplied) or `-', each specified signal is reset to its original\n"
+#| " value. If ARG is the null string each SIGNAL_SPEC is ignored by the\n"
+#| " shell and by the commands it invokes.\n"
+#| " \n"
+#| " If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell. If\n"
+#| " a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command. If\n"
+#| " a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or a\n"
+#| " script run by the . or source builtins finishes executing. A SIGNAL_SPEC\n"
+#| " of ERR means to execute ARG each time a command's failure would cause the\n"
+#| " shell to exit when the -e option is enabled.\n"
+#| " \n"
+#| " If no arguments are supplied, trap prints the list of commands associated\n"
+#| " with each signal.\n"
+#| " \n"
+#| " Options:\n"
+#| " -l\tprint a list of signal names and their corresponding numbers\n"
+#| " -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n"
+#| " \n"
+#| " Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal number.\n"
+#| " Signal names are case insensitive and the SIG prefix is optional. A\n"
+#| " signal may be sent to the shell with \"kill -signal $$\".\n"
+#| " \n"
+#| " Exit Status:\n"
+#| " Returns success unless a SIGSPEC is invalid or an invalid option is given."
msgid ""
"Trap signals and other events.\n"
" \n"
-" Defines and activates handlers to be run when the shell receives "
-"signals\n"
+" Defines and activates handlers to be run when the shell receives signals\n"
" or other conditions.\n"
" \n"
" ACTION is a command to be read and executed when the shell receives the\n"
" shell and by the commands it invokes.\n"
" \n"
" If a SIGNAL_SPEC is EXIT (0) ACTION is executed on exit from the shell.\n"
-" If a SIGNAL_SPEC is DEBUG, ACTION is executed before every simple "
-"command\n"
+" If a SIGNAL_SPEC is DEBUG, ACTION is executed before every simple command\n"
" and selected other commands. If a SIGNAL_SPEC is RETURN, ACTION is\n"
" executed each time a shell function or a script run by the . or source\n"
-" builtins finishes executing. A SIGNAL_SPEC of ERR means to execute "
-"ACTION\n"
+" builtins finishes executing. A SIGNAL_SPEC of ERR means to execute ACTION\n"
" each time a command's failure would cause the shell to exit when the -e\n"
" option is enabled.\n"
" \n"
-" If no arguments are supplied, trap prints the list of commands "
-"associated\n"
+" If no arguments are supplied, trap prints the list of commands associated\n"
" with each trapped signal in a form that may be reused as shell input to\n"
" restore the same signal dispositions.\n"
" \n"
" -p\tdisplay the trap commands associated with each SIGNAL_SPEC in a\n"
" \t\tform that may be reused as shell input; or for all trapped\n"
" \t\tsignals if no arguments are supplied\n"
-" -P\tdisplay the trap commands associated with each SIGNAL_SPEC. At "
-"least\n"
+" -P\tdisplay the trap commands associated with each SIGNAL_SPEC. At least\n"
" \t\tone SIGNAL_SPEC must be supplied. -P and -p cannot be used\n"
" \t\ttogether.\n"
" \n"
-" Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal "
-"number.\n"
+" Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal number.\n"
" Signal names are case insensitive and the SIG prefix is optional. A\n"
" signal may be sent to the shell with \"kill -signal $$\".\n"
" \n"
" Exit Status:\n"
-" Returns success unless a SIGSPEC is invalid or an invalid option is "
-"given."
+" Returns success unless a SIGSPEC is invalid or an invalid option is given."
msgstr ""
"對訊號和其他事件設陷阱。\n"
" \n"
" <參數> 是當 shell 接收到 SIGNAL_SPEC 訊號時讀取和執行的指令。\n"
" 如果沒有指定 <參數> (並且只給出一個 SIGNAL_SPEC 訊號) 或者\n"
" <參數> 為\n"
-" 「-」,每一個指定的參數會被重設為原始值。如果 <參數> 是一個空串,則每一"
-"個\n"
+" 「-」,每一個指定的參數會被重設為原始值。如果 <參數> 是一個空串,則每一個\n"
" SIGNAL_SPEC 訊號會被 shell 和它啟動的指令忽略。\n"
" \n"
" 如果一個 SIGNAL_SPEC 訊號是 EXIT (0),則 <參數> 指令會在 shell 結束時被\n"
" NAME\tCommand name to be interpreted.\n"
" \n"
" Exit Status:\n"
-" Returns success if all of the NAMEs are found; fails if any are not "
-"found."
+" Returns success if all of the NAMEs are found; fails if any are not found."
msgstr ""
"顯示指令類型的資訊。\n"
" \n"
#: builtins.c:1472
#, fuzzy
+#| msgid ""
+#| "Modify shell resource limits.\n"
+#| " \n"
+#| " Provides control over the resources available to the shell and processes\n"
+#| " it creates, on systems that allow such control.\n"
+#| " \n"
+#| " Options:\n"
+#| " -S\tuse the `soft' resource limit\n"
+#| " -H\tuse the `hard' resource limit\n"
+#| " -a\tall current limits are reported\n"
+#| " -b\tthe socket buffer size\n"
+#| " -c\tthe maximum size of core files created\n"
+#| " -d\tthe maximum size of a process's data segment\n"
+#| " -e\tthe maximum scheduling priority (`nice')\n"
+#| " -f\tthe maximum size of files written by the shell and its children\n"
+#| " -i\tthe maximum number of pending signals\n"
+#| " -k\tthe maximum number of kqueues allocated for this process\n"
+#| " -l\tthe maximum size a process may lock into memory\n"
+#| " -m\tthe maximum resident set size\n"
+#| " -n\tthe maximum number of open file descriptors\n"
+#| " -p\tthe pipe buffer size\n"
+#| " -q\tthe maximum number of bytes in POSIX message queues\n"
+#| " -r\tthe maximum real-time scheduling priority\n"
+#| " -s\tthe maximum stack size\n"
+#| " -t\tthe maximum amount of cpu time in seconds\n"
+#| " -u\tthe maximum number of user processes\n"
+#| " -v\tthe size of virtual memory\n"
+#| " -x\tthe maximum number of file locks\n"
+#| " -P\tthe maximum number of pseudoterminals\n"
+#| " -R\tthe maximum time a real-time process can run before blocking\n"
+#| " -T\tthe maximum number of threads\n"
+#| " \n"
+#| " Not all options are available on all platforms.\n"
+#| " \n"
+#| " If LIMIT is given, it is the new value of the specified resource; the\n"
+#| " special LIMIT values `soft', `hard', and `unlimited' stand for the\n"
+#| " current soft limit, the current hard limit, and no limit, respectively.\n"
+#| " Otherwise, the current value of the specified resource is printed. If\n"
+#| " no option is given, then -f is assumed.\n"
+#| " \n"
+#| " Values are in 1024-byte increments, except for -t, which is in seconds,\n"
+#| " -p, which is in increments of 512 bytes, and -u, which is an unscaled\n"
+#| " number of processes.\n"
+#| " \n"
+#| " Exit Status:\n"
+#| " Returns success unless an invalid option is supplied or an error occurs."
msgid ""
"Modify shell resource limits.\n"
" \n"
-" Provides control over the resources available to the shell and "
-"processes\n"
+" Provides control over the resources available to the shell and processes\n"
" it creates, on systems that allow such control.\n"
" \n"
" Options:\n"
msgid ""
"Wait for job completion and return exit status.\n"
" \n"
-" Waits for each process identified by an ID, which may be a process ID or "
-"a\n"
+" Waits for each process identified by an ID, which may be a process ID or a\n"
" job specification, and reports its termination status. If ID is not\n"
" given, waits for all currently active child processes, and the return\n"
" status is zero. If ID is a job specification, waits for all processes\n"
" in that job's pipeline.\n"
" \n"
-" If the -n option is supplied, waits for a single job from the list of "
-"IDs,\n"
-" or, if no IDs are supplied, for the next job to complete and returns "
-"its\n"
+" If the -n option is supplied, waits for a single job from the list of IDs,\n"
+" or, if no IDs are supplied, for the next job to complete and returns its\n"
" exit status.\n"
" \n"
" If the -p option is supplied, the process or job identifier of the job\n"
" for which the exit status is returned is assigned to the variable VAR\n"
-" named by the option argument. The variable will be unset initially, "
-"before\n"
+" named by the option argument. The variable will be unset initially, before\n"
" any assignment. This is useful only when the -n option is supplied.\n"
" \n"
" If the -f option is supplied, and job control is enabled, waits for the\n"
msgid ""
"Wait for process completion and return exit status.\n"
" \n"
-" Waits for each process specified by a PID and reports its termination "
-"status.\n"
+" Waits for each process specified by a PID and reports its termination status.\n"
" If PID is not given, waits for all currently active child processes,\n"
" and the return status is zero. PID must be a process ID.\n"
" \n"
" Exit Status:\n"
-" Returns the status of the last PID; fails if PID is invalid or an "
-"invalid\n"
+" Returns the status of the last PID; fails if PID is invalid or an invalid\n"
" option is given."
msgstr ""
"等待行程完成並且回傳結束狀態。\n"
" 子行程都會被等待,並且回傳碼為零。PID 必須為行程識別碼。\n"
" \n"
" 結束狀態:\n"
-" 回傳行程 ID 的狀態;如果 PID 是無效的行程識別碼或者指定了無效的選項則失"
-"敗。"
+" 回傳行程 ID 的狀態;如果 PID 是無效的行程識別碼或者指定了無效的選項則失敗。"
#: builtins.c:1593
msgid ""
" Exit Status:\n"
" The logical negation of PIPELINE's return status."
msgstr ""
+"執行 PIPELINE(可以是簡單的指令),並\n"
+" 反轉 PIPELINE 傳回的狀態值。\n"
+" \n"
+" 結束狀態:\n"
+" 管線傳回狀態值的邏輯非(Logical Negation)值。"
#: builtins.c:1603
msgid ""
msgid ""
"Execute commands based on conditional.\n"
" \n"
-" The `if COMMANDS' list is executed. If its exit status is zero, then "
-"the\n"
-" `then COMMANDS' list is executed. Otherwise, each `elif COMMANDS' list "
-"is\n"
+" The `if COMMANDS' list is executed. If its exit status is zero, then the\n"
+" `then COMMANDS' list is executed. Otherwise, each `elif COMMANDS' list is\n"
" executed in turn, and if its exit status is zero, the corresponding\n"
-" `then COMMANDS' list is executed and the if command completes. "
-"Otherwise,\n"
-" the `else COMMANDS' list is executed, if present. The exit status of "
-"the\n"
-" entire construct is the exit status of the last command executed, or "
-"zero\n"
+" `then COMMANDS' list is executed and the if command completes. Otherwise,\n"
+" the `else COMMANDS' list is executed, if present. The exit status of the\n"
+" entire construct is the exit status of the last command executed, or zero\n"
" if no condition tested true.\n"
" \n"
" Exit Status:\n"
msgid ""
"Execute commands as long as a test succeeds.\n"
" \n"
-" Expand and execute COMMANDS-2 as long as the final command in COMMANDS "
-"has\n"
+" Expand and execute COMMANDS-2 as long as the final command in COMMANDS has\n"
" an exit status of zero.\n"
" \n"
" Exit Status:\n"
msgid ""
"Execute commands as long as a test does not succeed.\n"
" \n"
-" Expand and execute COMMANDS-2 as long as the final command in COMMANDS "
-"has\n"
+" Expand and execute COMMANDS-2 as long as the final command in COMMANDS has\n"
" an exit status which is not zero.\n"
" \n"
" Exit Status:\n"
"Define shell function.\n"
" \n"
" Create a shell function named NAME. When invoked as a simple command,\n"
-" NAME runs COMMANDs in the calling shell's context. When NAME is "
-"invoked,\n"
+" NAME runs COMMANDs in the calling shell's context. When NAME is invoked,\n"
" the arguments are passed to the function as $1...$n, and the function's\n"
" name is in $FUNCNAME.\n"
" \n"
msgid ""
"Execute conditional command.\n"
" \n"
-" Returns a status of 0 or 1 depending on the evaluation of the "
-"conditional\n"
-" expression EXPRESSION. Expressions are composed of the same primaries "
-"used\n"
-" by the `test' builtin, and may be combined using the following "
-"operators:\n"
+" Returns a status of 0 or 1 depending on the evaluation of the conditional\n"
+" expression EXPRESSION. Expressions are composed of the same primaries used\n"
+" by the `test' builtin, and may be combined using the following operators:\n"
" \n"
" ( EXPRESSION )\tReturns the value of EXPRESSION\n"
" ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n"
" ( EXPRESSION )\t回傳 EXPRESSION 表示式的值\n"
" ! EXPRESSION\t\t如果 EXPRESSION 表示式為假則為真,否則為假\n"
" EXPR1 && EXPR2\t如果 EXPR1 和 EXPR2 表示式均為真則為真,否則為假\n"
-" EXPR1 || EXPR2\t如果 EXPR1 和 EXPR2 表示式中有一個為真則為真,否則為"
-"假\n"
+" EXPR1 || EXPR2\t如果 EXPR1 和 EXPR2 表示式中有一個為真則為真,否則為假\n"
" \n"
" 當使用「==」和「!=」運算子時,運算子右邊的字串被用作模式並且執行一個\n"
" 符合。當使用「=~」運算子時,運算子右邊的字串被當做正規表示式來進行\n"
#: builtins.c:1992
#, fuzzy
+#| msgid ""
+#| "Formats and prints ARGUMENTS under control of the FORMAT.\n"
+#| " \n"
+#| " Options:\n"
+#| " -v var\tassign the output to shell variable VAR rather than\n"
+#| " \t\tdisplay it on the standard output\n"
+#| " \n"
+#| " FORMAT is a character string which contains three types of objects: plain\n"
+#| " characters, which are simply copied to standard output; character escape\n"
+#| " sequences, which are converted and copied to the standard output; and\n"
+#| " format specifications, each of which causes printing of the next successive\n"
+#| " argument.\n"
+#| " \n"
+#| " In addition to the standard format specifications described in printf(1),\n"
+#| " printf interprets:\n"
+#| " \n"
+#| " %b\texpand backslash escape sequences in the corresponding argument\n"
+#| " %q\tquote the argument in a way that can be reused as shell input\n"
+#| " %Q\tlike %q, but apply any precision to the unquoted argument before\n"
+#| " \t\tquoting\n"
+#| " %(fmt)T\toutput the date-time string resulting from using FMT as a format\n"
+#| " \t string for strftime(3)\n"
+#| " \n"
+#| " The format is re-used as necessary to consume all of the arguments. If\n"
+#| " there are fewer arguments than the format requires, extra format\n"
+#| " specifications behave as if a zero value or null string, as appropriate,\n"
+#| " had been supplied.\n"
+#| " \n"
+#| " Exit Status:\n"
+#| " Returns success unless an invalid option is given or a write or assignment\n"
+#| " error occurs."
msgid ""
"Formats and prints ARGUMENTS under control of the FORMAT.\n"
" \n"
" -v var\tassign the output to shell variable VAR rather than\n"
" \t\tdisplay it on the standard output\n"
" \n"
-" FORMAT is a character string which contains three types of objects: "
-"plain\n"
-" characters, which are simply copied to standard output; character "
-"escape\n"
+" FORMAT is a character string which contains three types of objects: plain\n"
+" characters, which are simply copied to standard output; character escape\n"
" sequences, which are converted and copied to the standard output; and\n"
-" format specifications, each of which causes printing of the next "
-"successive\n"
+" format specifications, each of which causes printing of the next successive\n"
" argument.\n"
" \n"
-" In addition to the standard format characters csndiouxXeEfFgGaA "
-"described\n"
+" In addition to the standard format characters csndiouxXeEfFgGaA described\n"
" in printf(3), printf interprets:\n"
" \n"
" %b\texpand backslash escape sequences in the corresponding argument\n"
" %q\tquote the argument in a way that can be reused as shell input\n"
" %Q\tlike %q, but apply any precision to the unquoted argument before\n"
" \t\tquoting\n"
-" %(fmt)T\toutput the date-time string resulting from using FMT as a "
-"format\n"
+" %(fmt)T\toutput the date-time string resulting from using FMT as a format\n"
" \t string for strftime(3)\n"
" \n"
" The format is re-used as necessary to consume all of the arguments. If\n"
" there are fewer arguments than the format requires, extra format\n"
-" specifications behave as if a zero value or null string, as "
-"appropriate,\n"
+" specifications behave as if a zero value or null string, as appropriate,\n"
" had been supplied.\n"
" \n"
" Exit Status:\n"
-" Returns success unless an invalid option is given or a write or "
-"assignment\n"
+" Returns success unless an invalid option is given or a write or assignment\n"
" error occurs."
msgstr ""
"在 FORMAT 的控制下格式化並印出 ARGUMENTS。\n"
" -v var\t將輸出指派給 shell 變數 VAR 而非顯示在標準輸出上\n"
" \n"
" FORMAT 是包含三種物件的字元:簡單複製到標準輸出的純字元;\n"
-" 變換後複製到標準輸入的跳脫字元;以及每個都會影響到下個引數的格式化規"
-"格。\n"
+" 變換後複製到標準輸入的跳脫字元;以及每個都會影響到下個引數的格式化規格。\n"
" \n"
" 除了 printf(1) 中描述的標準格式化規格,printf 還會解析:\n"
" \n"
" %Q\t類似 %q,但精度要求會在加引號之前,對未括住的引數生效\n"
" %(fmt)T\t將 FMT 用來當作 strftime(3) 的格式,輸出日期與時間字串\n"
" \n"
-" 必要時會重用格式以消耗掉所有引數。如果引數少於格式所需,其他的格式規範則"
-"會\n"
+" 必要時會重用格式以消耗掉所有引數。如果引數少於格式所需,其他的格式規範則會\n"
" 視為 0 值或空字串(視情況而定)套用。\n"
" \n"
" 結束狀態:\n"
#: builtins.c:2028
#, fuzzy
+#| msgid ""
+#| "Specify how arguments are to be completed by Readline.\n"
+#| " \n"
+#| " For each NAME, specify how arguments are to be completed. If no options\n"
+#| " are supplied, existing completion specifications are printed in a way that\n"
+#| " allows them to be reused as input.\n"
+#| " \n"
+#| " Options:\n"
+#| " -p\tprint existing completion specifications in a reusable format\n"
+#| " -r\tremove a completion specification for each NAME, or, if no\n"
+#| " \t\tNAMEs are supplied, all completion specifications\n"
+#| " -D\tapply the completions and actions as the default for commands\n"
+#| " \t\twithout any specific completion defined\n"
+#| " -E\tapply the completions and actions to \"empty\" commands --\n"
+#| " \t\tcompletion attempted on a blank line\n"
+#| " -I\tapply the completions and actions to the initial (usually the\n"
+#| " \t\tcommand) word\n"
+#| " \n"
+#| " When completion is attempted, the actions are applied in the order the\n"
+#| " uppercase-letter options are listed above. If multiple options are supplied,\n"
+#| " the -D option takes precedence over -E, and both take precedence over -I.\n"
+#| " \n"
+#| " Exit Status:\n"
+#| " Returns success unless an invalid option is supplied or an error occurs."
msgid ""
"Specify how arguments are to be completed by Readline.\n"
" \n"
-" For each NAME, specify how arguments are to be completed. If no "
-"options\n"
-" or NAMEs are supplied, display existing completion specifications in a "
-"way\n"
+" For each NAME, specify how arguments are to be completed. If no options\n"
+" or NAMEs are supplied, display existing completion specifications in a way\n"
" that allows them to be reused as input.\n"
" \n"
" Options:\n"
" \t\tcommand) word\n"
" \n"
" When completion is attempted, the actions are applied in the order the\n"
-" uppercase-letter options are listed above. If multiple options are "
-"supplied,\n"
-" the -D option takes precedence over -E, and both take precedence over -"
-"I.\n"
+" uppercase-letter options are listed above. If multiple options are supplied,\n"
+" the -D option takes precedence over -E, and both take precedence over -I.\n"
" \n"
" Exit Status:\n"
" Returns success unless an invalid option is supplied or an error occurs."
" -E\t對於「empty」指令——嘗試對空白列進行自動完成——套用自動完成和動作。\n"
" -I\t套用自動完成和動作到首個(通常是命令)單字\n"
" \n"
-" 發起自動完成嘗試時,將依上述大寫字母選項的順序進行動作。若傳入了多個選"
-"項,\n"
+" 發起自動完成嘗試時,將依上述大寫字母選項的順序進行動作。若傳入了多個選項,\n"
" -D 選項優先於 -E 選項,而兩者優先於 -I 選項。\n"
" \n"
" 結束狀態:\n"
#: builtins.c:2058
#, fuzzy
+#| msgid ""
+#| "Display possible completions depending on the options.\n"
+#| " \n"
+#| " Intended to be used from within a shell function generating possible\n"
+#| " completions. If the optional WORD argument is supplied, matches against\n"
+#| " WORD are generated.\n"
+#| " \n"
+#| " Exit Status:\n"
+#| " Returns success unless an invalid option is supplied or an error occurs."
msgid ""
"Display possible completions depending on the options.\n"
" \n"
" Intended to be used from within a shell function generating possible\n"
-" completions. If the optional WORD argument is present, generate "
-"matches\n"
+" completions. If the optional WORD argument is present, generate matches\n"
" against WORD.\n"
" \n"
-" If the -V option is supplied, store the possible completions in the "
-"indexed\n"
+" If the -V option is supplied, store the possible completions in the indexed\n"
" array VARNAME instead of printing them to the standard output.\n"
" \n"
" Exit Status:\n"
msgid ""
"Modify or display completion options.\n"
" \n"
-" Modify the completion options for each NAME, or, if no NAMEs are "
-"supplied,\n"
-" the completion currently being executed. If no OPTIONs are given, "
-"print\n"
-" the completion options for each NAME or the current completion "
-"specification.\n"
+" Modify the completion options for each NAME, or, if no NAMEs are supplied,\n"
+" the completion currently being executed. If no OPTIONs are given, print\n"
+" the completion options for each NAME or the current completion specification.\n"
" \n"
" Options:\n"
" \t-o option\tSet completion option OPTION for each NAME\n"
msgstr ""
"修改或顯示自動完成選項。\n"
" \n"
-" 修改每個 <名稱> 的自動完成選項,或如果沒有提供 <名稱>,執行目前的自動完"
-"成。\n"
+" 修改每個 <名稱> 的自動完成選項,或如果沒有提供 <名稱>,執行目前的自動完成。\n"
" 如果不帶選項,印出每個 <名稱> 的自動完成選項或目前的自動完成規格。\n"
" \n"
" 選項:\n"
msgid ""
"Read lines from the standard input into an indexed array variable.\n"
" \n"
-" Read lines from the standard input into the indexed array variable "
-"ARRAY, or\n"
-" from file descriptor FD if the -u option is supplied. The variable "
-"MAPFILE\n"
+" Read lines from the standard input into the indexed array variable ARRAY, or\n"
+" from file descriptor FD if the -u option is supplied. The variable MAPFILE\n"
" is the default ARRAY.\n"
" \n"
" Options:\n"
" -d delim\tUse DELIM to terminate lines, instead of newline\n"
-" -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are "
-"copied\n"
-" -O origin\tBegin assigning to ARRAY at index ORIGIN. The default "
-"index is 0\n"
+" -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are copied\n"
+" -O origin\tBegin assigning to ARRAY at index ORIGIN. The default index is 0\n"
" -s count\tDiscard the first COUNT lines read\n"
" -t\tRemove a trailing DELIM from each line read (default newline)\n"
-" -u fd\tRead lines from file descriptor FD instead of the standard "
-"input\n"
+" -u fd\tRead lines from file descriptor FD instead of the standard input\n"
" -C callback\tEvaluate CALLBACK each time QUANTUM lines are read\n"
" -c quantum\tSpecify the number of lines read between each call to\n"
" \t\t\tCALLBACK\n"
" element to be assigned and the line to be assigned to that element\n"
" as additional arguments.\n"
" \n"
-" If not supplied with an explicit origin, mapfile will clear ARRAY "
-"before\n"
+" If not supplied with an explicit origin, mapfile will clear ARRAY before\n"
" assigning to it.\n"
" \n"
" Exit Status:\n"
-" Returns success unless an invalid option is given or ARRAY is readonly "
-"or\n"
+" Returns success unless an invalid option is given or ARRAY is readonly or\n"
" not an indexed array."
msgstr ""
"從標準輸入讀取列到索引陣列變數中。\n"
" \n"
" 一個「mapfile」的同義詞。"
+#~ msgid ""
+#~ "Returns the context of the current subroutine call.\n"
+#~ " \n"
+#~ " Without EXPR, returns \"$line $filename\". With EXPR, returns\n"
+#~ " \"$line $subroutine $filename\"; this extra information can be used to\n"
+#~ " provide a stack trace.\n"
+#~ " \n"
+#~ " The value of EXPR indicates how many call frames to go back before the\n"
+#~ " current one; the top frame is frame 0."
+#~ msgstr ""
+#~ "回傳目前子呼叫的語境。\n"
+#~ " \n"
+#~ " 不帶有 EXPR 時,回傳「$line $filename」。帶有 EXPR 時,回傳\n"
+#~ " 「$line $subroutine $filename」;提供堆疊追蹤時可以用到這個\n"
+#~ " 延伸資訊。\n"
+#~ " \n"
+#~ " EXPR 的值顯示了到目前呼叫框格需要回去多少個呼叫框格;頂部框格\n"
+#~ " 是第 0 框格。"
+
#, c-format
#~ msgid "%s: cannot open: %s"
#~ msgstr "%s: 無法開啟: %s"
#~ msgid "%s: inlib failed"
#~ msgstr "%s: inlib 失敗"
+#, c-format
+#~ msgid "warning: %s: %s"
+#~ msgstr "警告: %s: %s"
+
#, c-format
#~ msgid "%s: %s"
#~ msgstr "%s: %s"
#~ msgid "setlocale: %s: cannot change locale (%s): %s"
#~ msgstr "setlocale: %s: 無法變更語區選項 (%s): %s"
-#~ msgid ""
-#~ "Returns the context of the current subroutine call.\n"
-#~ " \n"
-#~ " Without EXPR, returns \"$line $filename\". With EXPR, returns\n"
-#~ " \"$line $subroutine $filename\"; this extra information can be used "
-#~ "to\n"
-#~ " provide a stack trace.\n"
-#~ " \n"
-#~ " The value of EXPR indicates how many call frames to go back before "
-#~ "the\n"
-#~ " current one; the top frame is frame 0."
-#~ msgstr ""
-#~ "回傳目前子呼叫的語境。\n"
-#~ " \n"
-#~ " 不帶有 EXPR 時,回傳「$line $filename」。帶有 EXPR 時,回傳\n"
-#~ " 「$line $subroutine $filename」;提供堆疊追蹤時可以用到這個\n"
-#~ " 延伸資訊。\n"
-#~ " \n"
-#~ " EXPR 的值顯示了到目前呼叫框格需要回去多少個呼叫框格;頂部框格\n"
-#~ " 是第 0 框格。"
-
-#, c-format
-#~ msgid "warning: %s: %s"
-#~ msgstr "警告: %s: %s"
-
#~ msgid "%s: invalid associative array key"
#~ msgstr "%s: 無效的關聯陣列鍵值"
goto add_character;
}
+#if 0 /* TAG:bash-5.4 posix mode possibly */
+ if (word->flags & (W_ASSIGNRHS|W_ASSIGNARG))
+#else
if (word->flags & W_ASSIGNRHS)
+#endif
tflag = 2;
else if (word->flags & (W_ASSIGNMENT|W_TILDEEXP))
tflag = 1;
+++ /dev/null
-#! /bin/bash
-#
-# mail-shell -- mail out the shell
-#
-# usage: mail-shell -t tarball recipient
-#
-# Chet Ramey
-# chet@ins.CWRU.Edu
-#
-
-# Copyright (C) 1995-2009 by Chester Ramey
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-
-
-PATH=/usr/ucb:/bin:/usr/bin:/usr/local/bin/gnu:/usr/local/bin:.
-
-trap 'rm -f x?? ${UUFILE}' 0 1 2 3 6 15
-
-prog=`basename $0`
-
-TARFILE=bash.tar
-VERS=2.05b
-
-while getopts t: opt
-do
- case $opt in
- t) TARFILE=$OPTARG ;;
- *) echo usage: $prog [ -t tarfile ] recipient 1>&2
- exit 1
- esac
-done
-
-shift $(( $OPTIND - 1 ))
-
-case "$TARFILE" in
-bash-*.tar) VERS=${TARFILE%%.tar} ; VERS=${VERS#bash-} ;;
-esac
-
-GZFILE=${TARFILE}.gz
-UUFILE=${GZFILE}.uu
-
-if [ $# -ne 1 ] ; then
- echo usage: $0 recipient
- exit 1
-fi
-
-recip=$1
-i=1
-
-if [ ! -f ${TARFILE} ] && [ ! -f ${GZFILE} ]; then
- echo "$prog: no file ${TARFILE}, aborting"
- exit 1
-fi
-
-if [ ! -f ${GZFILE} ] ; then
- echo "$prog: no gzipped tar file ${GZFILE}"
- echo "$prog: gzipping ${TARFILE}"
- gzip ${TARFILE}
-fi
-
-if [ ! -f ${UUFILE} ] ; then
- echo "$prog: no uuencoded tar file ${UUFILE}"
- echo "$prog: uuencoding ${GZFILE}"
- uuencode ${GZFILE} < ${GZFILE} > ${UUFILE}
-fi
-
-files=$(echo x??)
-
-if [ "$files" = 'x??' ] ; then
- echo "$prog: no split of ${UUFILE} exists"
- echo "$prog: splitting ${UUFILE}"
- split ${UUFILE}
-fi
-
-count()
-{
- echo $#
-}
-
-parts=$(count x??)
-
-if [ -x /usr/ucb/mail ]; then
- MAIL=/usr/ucb/mail
-elif [ -x /usr/ucb/Mail ]; then
- MAIL=/usr/ucb/Mail
-elif [ -x /usr/bin/mailx ]; then
- MAIL=/usr/bin/mailx
-elif [ -x /usr/bin/mail ]; then
- MAIL=/usr/bin/mail
-else
- MAIL=/bin/mail
-fi
-
-$MAIL -s "bash-${VERS} shipment coming" $recip <<EOF
-
-Hi. Here is version ${VERS} of bash. Expect $parts messages.
-Each is part of a uuencoded tar file of the bash sources. When
-you get all $parts messages, cat them all together into the file
-${UUFILE}, and run uudecode on this file. You will have a
-gzipped tar file named ${GZFILE}. gunzip it, cd into a source
-directory (the tar archive extracts into its own directory), and
-untar.
-
-Chet
-EOF
-
-for file in x??
-do
- echo mailing part $i to $recip
- /usr/ucb/mail -s "${UUFILE} part $i of $parts" $recip < $file
- i=$(( $i + 1 ))
-done
-
-exit 0
+++ /dev/null
-#
-# A suite of tests for bash word expansions
-#
-# This tests parameter and variable expansion, with an empahsis on
-# proper quoting behavior.
-#
-# Chet Ramey
-
-#
-# If you comment out the body of this function, you can do a diff against
-# `expansion-tests.right' to see if the shell is behaving correctly
-#
-expect()
-{
- echo expect "$@"
-}
-
-# Test the substitution quoting characters (CTLESC and CTLNUL) in different
-# combinations
-
-expect "<^A>"
-recho `echo '\ 1'`
-expect "<^A>"
-recho `echo "\ 1"`
-expect "<^B>"
-recho `echo '\ 2'`
-expect "<^B>"
-recho `echo "\ 2"`
-expect "<^A>"
-recho `echo \ 1`
-expect "<^B>"
-recho `echo \ 2`
-
-# Test null strings without variable expansion
-expect "<abcdefgh>"
-recho abcd""efgh
-expect "<abcdefgh>"
-recho abcd''efgh
-expect "<abcdefgh>"
-recho ""abcdefgh
-expect "<abcdefgh>"
-recho ''abcdefgh
-expect "<abcd>"
-recho abcd""
-expect "<abcd>"
-recho abcd''
-
-# Test the quirky behavior of $@ in ""
-expect nothing
-recho "$@"
-expect "< >"
-recho " $@"
-expect "<-->"
-recho "-${@}-"
-
-# Test null strings with variable expansion that fails
-expect '<>'
-recho $xxx""
-expect '<>'
-recho ""$xxx
-expect '<>'
-recho $xxx''
-expect '<>'
-recho ''$xxx
-expect '<>'
-recho $xxx""$yyy
-expect '<>'
-recho $xxx''$yyy
-
-# Test null strings with variable expansion that succeeds
-xxx=abc
-yyy=def
-
-expect '<abc>'
-recho $xxx""
-expect '<abc>'
-recho ""$xxx
-expect '<abc>'
-recho $xxx''
-expect '<abc>'
-recho ''$xxx
-expect '<abcdef>'
-recho $xxx""$yyy
-expect '<abcdef>'
-recho $xxx''$yyy
-
-unset xxx yyy
-
-# Test the unquoted special quoting characters
-expect "<^A>"
-recho \ 1
-expect "<^B>"
-recho \ 2
-expect "<^A>"
-recho "\ 1"
-expect "<^B>"
-recho "\ 2"
-expect "<^A>"
-recho '\ 1'
-expect "<^B>"
-recho '\ 2'
-
-# Test expansion of a variable that is unset
-expect nothing
-recho $xxx
-expect '<>'
-recho "$xxx"
-
-expect nothing
-recho "$xxx${@}"
-
-# Test empty string expansion
-expect '<>'
-recho ""
-expect '<>'
-recho ''
-
-# Test command substitution with (disabled) history substitution
-expect '<Hello World!>'
-# set +H
-recho "`echo \"Hello world!\"`"
-
-# Test some shell special characters
-expect '<`>'
-recho "\`"
-expect '<">'
-recho "\""
-expect '<\^A>'
-recho "\\ 1"
-
-expect '<\$>'
-recho "\\$"
-
-expect '<\\>'
-recho "\\\\"
-
-# This should give argv[1] = a argv[2] = b
-expect '<a> <b>'
-FOO=`echo 'a b' | tr ' ' '\012'`
-recho $FOO
-
-# This should give argv[1] = ^A argv[2] = ^B
-expect '<^A> <^B>'
-FOO=`echo '\ 1 \ 2' | tr ' ' '\012'`
-recho $FOO
-
-# Test quoted and unquoted globbing characters
-expect '<**>'
-recho "*"*
-
-expect '<\.\./*/>'
-recho "\.\./*/"
-
-# Test patterns that come up when the shell quotes funny character
-# combinations
-expect '<^A^B^A^B>'
-recho '\ 1\ 2\ 1\ 2'
-expect '<^A^A>'
-recho '\ 1\ 1'
-expect '<^A^B>'
-recho '\ 1\ 2'
-expect '<^A^A^B>'
-recho '\ 1\ 1\ 2'
-
-# More tests of "$@"
-set abc def ghi jkl
-expect '< abc> <def> <ghi> <jkl >'
-recho " $@ "
-expect '< abc> <def> <ghi> <jkl >'
-recho "${1+ $@ }"
-
-set abc def ghi jkl
-expect '<--abc> <def> <ghi> <jkl-->'
-recho "--$@--"
-
-set "a b" cd ef gh
-expect '<a b> <cd> <ef> <gh>'
-recho ${1+"$@"}
-expect '<a b> <cd> <ef> <gh>'
-recho ${foo:-"$@"}
-expect '<a b> <cd> <ef> <gh>'
-recho "${@}"
-
-expect '< >'
-recho " "
-expect '< - >'
-recho " - "
-
-# Test combinations of different types of quoting in a fully-quoted string
-# (so the WHOLLY_QUOTED tests fail and it doesn't get set)
-expect '</^root:/{s/^[^:]*:[^:]*:\([^:]*\).*$/\1/>'
-recho "/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*"'$'"/\1/"
-
-# Test the various Posix parameter expansions
-
-expect '<foo bar>'
-recho "${x:-$(echo "foo bar")}"
-expect '<foo> <bar>'
-recho ${x:-$(echo "foo bar")}
-
-unset X
-expect '<abc>'
-recho ${X:=abc}
-expect '<abc>'
-recho $X
-
-set a b c
-expect '<posix>'
-recho ${3:+posix}
-
-POSIX=/usr/posix
-expect '<10>'
-recho ${#POSIX}
-
-# remove shortest trailing match
-x=file.c
-expect '<file.o>'
-recho ${x%.c}.o
-
-# remove longest trailing match
-x=posix/src/std
-expect '<posix>'
-recho ${x%%/*}
-
-# remove shortest leading pattern
-x=$HOME/src/cmd
-expect '</src/cmd>'
-recho ${x#$HOME}
-
-# remove longest leading pattern
-x=/one/two/three
-expect '<three>'
-recho ${x##*/}
-
-# pattern removal of patterns that don't match
-z=abcdef
-
-expect '<abcdef>'
-recho ${z#xyz}
-expect '<abcdef>'
-recho ${z##xyz}
-
-expect '<abcdef>'
-recho ${z%xyz}
-expect '<abcdef>'
-recho ${z%%xyz}
-
-# Command substitution and the quirky differences between `` and $()
-
-expect '<\$x>'
-recho '\$x'
-
-expect '<$x>'
-recho `echo '\$x'`
-
-expect '<\$x>'
-recho $(echo '\$x')
-
-# The difference between $* "$*" and "$@"
-
-set "abc" "def ghi" "jkl"
-
-expect '<abc> <def> <ghi> <jkl>'
-recho $*
-
-expect '<abc def ghi jkl>'
-recho "$*"
-
-OIFS="$IFS"
-IFS=":$IFS"
-
-# The special behavior of "$*", using the first character of $IFS as separator
-expect '<abc:def ghi:jkl>'
-recho "$*"
-
-IFS="$OIFS"
-
-expect '<abc> <def ghi> <jkl>'
-recho "$@"
-
-expect '<xxabc> <def ghi> <jklyy>'
-recho "xx$@yy"
-
-expect '<abc> <def ghi> <jklabc> <def ghi> <jkl>'
-recho "$@$@"
-
-foo=abc
-bar=def
-
-expect '<abcdef>'
-recho "$foo""$bar"
-
-unset foo
-set $foo bar '' xyz "$foo" abc
-
-expect '<bar> <> <xyz> <> <abc>'
-recho "$@"
-
-# More tests of quoting and deferred evaluation
-
-foo=10 x=foo
-y='$'$x
-expect '<$foo>'
-recho $y
-eval y='$'$x
-expect '<10>'
-recho $y
-
-# case statements
-
-NL='
-'
-x='ab
-cd'
-
-expect '<newline expected>'
-case "$x" in
-*$NL*) recho "newline expected" ;;
-esac
-
-expect '<got it>'
-case \? in
-*"?"*) recho "got it" ;;
-esac
-
-expect '<got it>'
-case \? in
-*\?*) recho "got it" ;;
-esac
-
-set one two three four five
-expect '<one> <three> <five>'
-recho $1 $3 ${5} $8 ${9}
-
-# length tests on positional parameters and some special parameters
-
-expect '<5> <5>'
-recho $# ${#}
-expect '<3>'
-recho ${#1}
-expect '<1>'
-recho ${##}
-expect '<1>'
-recho ${#?}
-expect '<5>'
-recho ${#@}
-expect '<5>'
-recho ${#*}
-expect '<5>'
-recho "${#@}"
-expect '<5>'
-recho "${#*}"
-
-expect '<42>'
-recho $((28 + 14))
-expect '<26>'
-recho $[ 13 * 2 ]
-
-expect '<\>'
-recho `echo \\\\`
-
-expect '<~>'
-recho '~'
-
-expect nothing
-recho $!
-expect nothing
-recho ${!}
-
-# test word splitting of assignment statements not preceding a command
-a="a b c d e"
-declare b=$a
-expect '<a> <b> <c> <d> <e>'
-recho $b
-
-a="a?b?c"
-
-echo ${a//\\?/ }
-
-echo ${a//\?/ }