diff options
| author | Chet Ramey <chet.ramey@case.edu> | 2019-12-02 17:23:48 -0500 |
|---|---|---|
| committer | Chet Ramey <chet.ramey@case.edu> | 2019-12-02 17:23:48 -0500 |
| commit | 091c6bc481bd2b405e39b6ad5967eb4fa2aab597 (patch) | |
| tree | 19a16173f58652e2dc4a28f44ee3277fde2ad3bd | |
| parent | fc35c477cde4b759b8387f722c48548389eb2e7b (diff) | |
| download | bash-091c6bc481bd2b405e39b6ad5967eb4fa2aab597.tar.gz | |
commit bash-20191127 snapshot
34 files changed, 5895 insertions, 5582 deletions
diff --git a/CWRU/CWRU.chlog b/CWRU/CWRU.chlog index 458f2ec..0077bbb 100644 --- a/CWRU/CWRU.chlog +++ b/CWRU/CWRU.chlog @@ -6906,3 +6906,45 @@ buitins/wait.def doc/{bash.1,bashref.texi} - wait: document new -p option + + 11/25 + ----- +lib/readline/display.c + - rl_redisplay: auto-set horizontal scrolling if the terminal has + only one line; disable it if we auto-set it if the terminal grows + to more than one line. Fix from Sรถren Tempel + <soeren@soeren-tempel.net> + +lib/readline/doc/{readline.3,rluser.texi},doc/bash.1 + - horizontal-scroll-mode: document auto-setting behavior + +builtins/set.def + - set_posix_mode: make setting posix mode when it's already set, or + unsetting it when it's not set, a no-op. Inspired by a report + from Ulrich Mueller <ulm@gentoo.org> + + 11/26 + ----- +doc/{bash.1,bashref.texi} + - functions: clarify that when in default mode, function names are not + limited to shell identifiers. + Suggested by Reuti <reuti@staff.uni-marburg.de> + + 11/27 + ----- +lib/readline/display.c + - _rl_optimize_redisplay: tell the redisplay routines to not worry + about calculating differences between the lines and just draw the + new one. Right now, it just sets the _rl_quick_redisplay flag + - rl_redisplay: if _rl_quick_redisplay is set, just draw NEW onto + the screen at column 0 with a dumb update and clear the rest of + the line. Intended to be used when the caller knows the new line is + sufficiently different from the old one (e.g., when drawing the + i-search prompt for the first time) that it doesn't pay off to do + the calculations. As a side effect, fixes the bug reported by + ะะปะตะบัะตะน ะจะธะปะธะฝ <rootlexx@mail.ru> + +lib/readline/isearch.c + - rl_display_search: if there isn't a search string, assume this is + the first time this is called and call _rl_optimize_redisplay to + give the redisplay code a hint diff --git a/builtins/set.def b/builtins/set.def index cc94833..16e592f 100644 --- a/builtins/set.def +++ b/builtins/set.def @@ -395,6 +395,11 @@ set_posix_mode (on_or_off, option_name) int on_or_off; char *option_name; { + /* short-circuit on no-op */ + if ((on_or_off == FLAG_ON && posixly_correct) || + (on_or_off == FLAG_OFF && posixly_correct == 0)) + return 0; + posixly_correct = on_or_off == FLAG_ON; if (posixly_correct == 0) unbind_variable_noref ("POSIXLY_CORRECT"); @@ -9,7 +9,7 @@ SSYYNNOOPPSSIISS bbaasshh [options] [command_string | file] CCOOPPYYRRIIGGHHTT - Bash is Copyright (C) 1989-2018 by the Free Software Foundation, Inc. + Bash is Copyright (C) 1989-2019 by the Free Software Foundation, Inc. DDEESSCCRRIIPPTTIIOONN BBaasshh is an sshh-compatible command language interpreter that executes @@ -540,9 +540,9 @@ SSHHEELLLL GGRRAAMMMMAARR executes a compound command with a new set of positional parameters. Shell functions are declared as follows: - _n_a_m_e () _c_o_m_p_o_u_n_d_-_c_o_m_m_a_n_d [_r_e_d_i_r_e_c_t_i_o_n] - ffuunnccttiioonn _n_a_m_e [()] _c_o_m_p_o_u_n_d_-_c_o_m_m_a_n_d [_r_e_d_i_r_e_c_t_i_o_n] - This defines a function named _n_a_m_e. The reserved word ffuunnccttiioonn + _f_n_a_m_e () _c_o_m_p_o_u_n_d_-_c_o_m_m_a_n_d [_r_e_d_i_r_e_c_t_i_o_n] + ffuunnccttiioonn _f_n_a_m_e [()] _c_o_m_p_o_u_n_d_-_c_o_m_m_a_n_d [_r_e_d_i_r_e_c_t_i_o_n] + This defines a function named _f_n_a_m_e. The reserved word ffuunnccttiioonn is optional. If the ffuunnccttiioonn reserved word is supplied, the parentheses are optional. The _b_o_d_y of the function is the com- pound command _c_o_m_p_o_u_n_d_-_c_o_m_m_a_n_d (see CCoommppoouunndd CCoommmmaannddss above). @@ -550,9 +550,11 @@ SSHHEELLLL GGRRAAMMMMAARR may be any command listed under CCoommppoouunndd CCoommmmaannddss above, with one exception: If the ffuunnccttiioonn reserved word is used, but the parentheses are not supplied, the braces are required. _c_o_m_- - _p_o_u_n_d_-_c_o_m_m_a_n_d is executed whenever _n_a_m_e is specified as the name - of a simple command. When in _p_o_s_i_x _m_o_d_e, _n_a_m_e may not be the - name of one of the POSIX _s_p_e_c_i_a_l _b_u_i_l_t_i_n_s. Any redirections + _p_o_u_n_d_-_c_o_m_m_a_n_d is executed whenever _f_n_a_m_e is specified as the + name of a simple command. When in _p_o_s_i_x _m_o_d_e, _f_n_a_m_e must be a + valid shell _n_a_m_e and may not be the name of one of the POSIX + _s_p_e_c_i_a_l _b_u_i_l_t_i_n_s. In default mode, a function name can be any + unquoted shell word that does not contain $$. Any redirections (see RREEDDIIRREECCTTIIOONN 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 @@ -774,6 +776,10 @@ PPAARRAAMMEETTEERRSS the string to be executed, if one is present. Otherwise, it is set to the filename used to invoke bbaasshh, as given by argument zero. + + SShheellll VVaarriiaabblleess + The following variables are set by the shell: + __ At shell startup, set to the absolute pathname used to invoke the shell or shell script being executed as passed in the envi- ronment or argument list. Subsequently, expands to the last ar- @@ -782,10 +788,6 @@ PPAARRAAMMEETTEERRSS invoke each command executed and placed in the environment ex- ported to that command. When checking mail, this parameter holds the name of the mail file currently being checked. - - SShheellll VVaarriiaabblleess - The following variables are set by the shell: - BBAASSHH Expands to the full filename used to invoke this instance of bbaasshh. BBAASSHHOOPPTTSS @@ -3240,165 +3242,166 @@ RREEAADDLLIINNEE When set to OOnn, makes readline 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. + new line. This setting is automatically enabled for terminals + of height 1. iinnppuutt--mmeettaa ((OOffff)) - If set to OOnn, readline will enable eight-bit input (that is, it + If set to OOnn, readline will enable eight-bit input (that is, it will not strip the eighth bit from the characters it reads), re- - gardless of what the terminal claims it can support. The name - mmeettaa--ffllaagg is a synonym for this variable. The default is _O_f_f, - but readline will set it to _O_n if the locale contains eight-bit + gardless of what the terminal claims it can support. The name + mmeettaa--ffllaagg is a synonym for this variable. The default is _O_f_f, + but readline will set it to _O_n if the locale contains eight-bit characters. iisseeaarrcchh--tteerrmmiinnaattoorrss ((````CC--[[CC--JJ'''')) - 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- + 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 _E_S_C and _C_-_J will terminate an incremental search. kkeeyymmaapp ((eemmaaccss)) - Set the current readline keymap. The set of valid keymap names - is _e_m_a_c_s_, _e_m_a_c_s_-_s_t_a_n_d_a_r_d_, _e_m_a_c_s_-_m_e_t_a_, _e_m_a_c_s_-_c_t_l_x_, _v_i_, _v_i_-_c_o_m_- - _m_a_n_d, and _v_i_-_i_n_s_e_r_t. _v_i is equivalent to _v_i_-_c_o_m_m_a_n_d; _e_m_a_c_s is - equivalent to _e_m_a_c_s_-_s_t_a_n_d_a_r_d. The default value is _e_m_a_c_s; the + Set the current readline keymap. The set of valid keymap names + is _e_m_a_c_s_, _e_m_a_c_s_-_s_t_a_n_d_a_r_d_, _e_m_a_c_s_-_m_e_t_a_, _e_m_a_c_s_-_c_t_l_x_, _v_i_, _v_i_-_c_o_m_- + _m_a_n_d, and _v_i_-_i_n_s_e_r_t. _v_i is equivalent to _v_i_-_c_o_m_m_a_n_d; _e_m_a_c_s is + equivalent to _e_m_a_c_s_-_s_t_a_n_d_a_r_d. The default value is _e_m_a_c_s; the value of eeddiittiinngg--mmooddee also affects the default keymap. kkeeyysseeqq--ttiimmeeoouutt ((550000)) - Specifies the duration _r_e_a_d_l_i_n_e will wait for a character when - reading an ambiguous key sequence (one that can form a complete + Specifies the duration _r_e_a_d_l_i_n_e 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 no input is re- - ceived within the timeout, _r_e_a_d_l_i_n_e will use the shorter but - complete key sequence. The value is specified in milliseconds, - so a value of 1000 means that _r_e_a_d_l_i_n_e 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_e_a_d_l_i_n_e will wait - until another key is pressed to decide which key sequence to + input to complete a longer key sequence). If no input is re- + ceived within the timeout, _r_e_a_d_l_i_n_e will use the shorter but + complete key sequence. The value is specified in milliseconds, + so a value of 1000 means that _r_e_a_d_l_i_n_e 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_e_a_d_l_i_n_e will wait + until another key is pressed to decide which key sequence to complete. mmaarrkk--ddiirreeccttoorriieess ((OOnn)) If set to OOnn, completed directory names have a slash appended. mmaarrkk--mmooddiiffiieedd--lliinneess ((OOffff)) - If set to OOnn, history lines that have been modified are dis- + If set to OOnn, history lines that have been modified are dis- played with a preceding asterisk (**). mmaarrkk--ssyymmlliinnkkeedd--ddiirreeccttoorriieess ((OOffff)) If set to OOnn, completed names which are symbolic links to direc- - tories have a slash appended (subject to the value of mmaarrkk--ddii-- + tories have a slash appended (subject to the value of mmaarrkk--ddii-- rreeccttoorriieess). mmaattcchh--hhiiddddeenn--ffiilleess ((OOnn)) - This variable, when set to OOnn, causes readline to match files - whose names begin with a `.' (hidden files) when performing - filename completion. If set to OOffff, the leading `.' must be + This variable, when set to OOnn, causes readline to match files + whose names begin with a `.' (hidden files) when performing + filename completion. If set to OOffff, the leading `.' must be supplied by the user in the filename to be completed. mmeennuu--ccoommpplleettee--ddiissppllaayy--pprreeffiixx ((OOffff)) - If set to OOnn, menu completion displays the common prefix of the + If set to OOnn, menu completion displays the common prefix of the list of possible completions (which may be empty) before cycling through the list. oouuttppuutt--mmeettaa ((OOffff)) - If set to OOnn, readline will display characters with the eighth + If set to OOnn, readline will display characters with the eighth bit set directly rather than as a meta-prefixed escape sequence. The default is _O_f_f, but readline will set it to _O_n if the locale contains eight-bit characters. ppaaggee--ccoommpplleettiioonnss ((OOnn)) - If set to OOnn, readline uses an internal _m_o_r_e-like pager to dis- + If set to OOnn, readline uses an internal _m_o_r_e-like pager to dis- play a screenful of possible completions at a time. pprriinntt--ccoommpplleettiioonnss--hhoorriizzoonnttaallllyy ((OOffff)) - If set to OOnn, readline will display completions with matches - sorted horizontally in alphabetical order, rather than down the + If set to OOnn, readline will display completions with matches + sorted horizontally in alphabetical order, rather than down the screen. rreevveerrtt--aallll--aatt--nneewwlliinnee ((OOffff)) - If set to OOnn, readline will undo all changes to history lines + If set to OOnn, readline will undo all changes to history lines before returning when aacccceepptt--lliinnee is executed. By default, his- - tory lines may be modified and retain individual undo lists + tory lines may be modified and retain individual undo lists across calls to rreeaaddlliinnee. sshhooww--aallll--iiff--aammbbiigguuoouuss ((OOffff)) - This alters the default behavior of the completion functions. + This alters the default behavior of the completion functions. If set to OOnn, words which have more than one possible completion - cause the matches to be listed immediately instead of ringing + cause the matches to be listed immediately instead of ringing the bell. sshhooww--aallll--iiff--uunnmmooddiiffiieedd ((OOffff)) - This alters the default behavior of the completion functions in + This alters the default behavior of the completion functions in a fashion similar to sshhooww--aallll--iiff--aammbbiigguuoouuss. If set to OOnn, 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- + 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. sshhooww--mmooddee--iinn--pprroommpptt ((OOffff)) - If set to OOnn, add a string to the beginning of the prompt indi- - cating the editing mode: emacs, vi command, or vi insertion. + If set to OOnn, 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., _e_m_a_c_s_-_m_o_d_e_-_s_t_r_i_n_g). sskkiipp--ccoommpplleetteedd--tteexxtt ((OOffff)) - If set to OOnn, 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 + If set to OOnn, 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. vvii--ccmmdd--mmooddee--ssttrriinngg ((((ccmmdd)))) - If the _s_h_o_w_-_m_o_d_e_-_i_n_-_p_r_o_m_p_t variable is enabled, this string is + If the _s_h_o_w_-_m_o_d_e_-_i_n_-_p_r_o_m_p_t 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 + 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. - Use the \1 and \2 escapes to begin and end sequences of non- - printing characters, which can be used to embed a terminal con- + control prefixes and backslash escape sequences is available. + Use the \1 and \2 escapes to begin and end sequences of non- + printing characters, which can be used to embed a terminal con- trol sequence into the mode string. vvii--iinnss--mmooddee--ssttrriinngg ((((iinnss)))) - If the _s_h_o_w_-_m_o_d_e_-_i_n_-_p_r_o_m_p_t variable is enabled, this string is + If the _s_h_o_w_-_m_o_d_e_-_i_n_-_p_r_o_m_p_t 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. - Use the \1 and \2 escapes to begin and end sequences of non- - printing characters, which can be used to embed a terminal con- + control prefixes and backslash escape sequences is available. + Use the \1 and \2 escapes to begin and end sequences of non- + printing characters, which can be used to embed a terminal con- trol sequence into the mode string. vviissiibbllee--ssttaattss ((OOffff)) - If set to OOnn, a character denoting a file's type as reported by - _s_t_a_t(2) is appended to the filename when listing possible com- + If set to OOnn, a character denoting a file's type as reported by + _s_t_a_t(2) is appended to the filename when listing possible com- pletions. RReeaaddlliinnee CCoonnddiittiioonnaall CCoonnssttrruuccttss - 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 + 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 used. - $$iiff The $$iiff construct allows bindings to be made based on the edit- - ing mode, the terminal being used, or the application using + $$iiff The $$iiff construct allows bindings to be made based on the edit- + ing 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 + extends to the end of the line; unless otherwise noted, no characters are required to isolate it. - mmooddee The mmooddee== form of the $$iiff directive is used to test - whether readline is in emacs or vi mode. This may be - used in conjunction with the sseett kkeeyymmaapp command, for in- - stance, to set bindings in the _e_m_a_c_s_-_s_t_a_n_d_a_r_d and - _e_m_a_c_s_-_c_t_l_x keymaps only if readline is starting out in + mmooddee The mmooddee== form of the $$iiff directive is used to test + whether readline is in emacs or vi mode. This may be + used in conjunction with the sseett kkeeyymmaapp command, for in- + stance, to set bindings in the _e_m_a_c_s_-_s_t_a_n_d_a_r_d and + _e_m_a_c_s_-_c_t_l_x keymaps only if readline is starting out in emacs mode. - tteerrmm The tteerrmm== form may be used to include terminal-specific + tteerrmm The tteerrmm== 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 ter- - minal and the portion of the terminal name before the - first --. This allows _s_u_n to match both _s_u_n and _s_u_n_-_c_m_d, + minal and the portion of the terminal name before the + first --. This allows _s_u_n to match both _s_u_n and _s_u_n_-_c_m_d, for instance. vveerrssiioonn - The vveerrssiioonn test may be used to perform comparisons - against specific readline versions. The vveerrssiioonn expands - to the current readline version. The set of comparison - operators includes ==, (and ====), !!==, <<==, >>==, <<, and >>. - The version number supplied on the right side of the op- - erator consists of a major version number, an optional + The vveerrssiioonn test may be used to perform comparisons + against specific readline versions. The vveerrssiioonn expands + to the current readline version. The set of comparison + operators includes ==, (and ====), !!==, <<==, >>==, <<, and >>. + 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., 77..11). - If the minor version is omitted, it is assumed to be 00. + If the minor version is omitted, it is assumed to be 00. The operator may be separated from the string vveerrssiioonn and from the version number argument by whitespace. aapppplliiccaattiioonn The aapppplliiccaattiioonn construct is used to include application- - specific settings. Each program using the readline li- - brary sets the _a_p_p_l_i_c_a_t_i_o_n _n_a_m_e, and an initialization + specific settings. Each program using the readline li- + brary sets the _a_p_p_l_i_c_a_t_i_o_n _n_a_m_e, 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 + 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 bbaasshh: $$iiff Bash @@ -3408,12 +3411,12 @@ RREEAADDLLIINNEE _v_a_r_i_a_b_l_e The _v_a_r_i_a_b_l_e construct provides simple equality tests for - readline variables and values. The permitted comparison - operators are _=, _=_=, and _!_=. The variable name must be + 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. Both string and boolean vari- - ables may be tested. Boolean variables must be tested + operator may be separated from the value on the right + hand side by whitespace. Both string and boolean vari- + ables may be tested. Boolean variables must be tested against the values _o_n and _o_f_f. $$eennddiiff This command, as seen in the previous example, terminates an $$iiff @@ -3423,51 +3426,51 @@ RREEAADDLLIINNEE test fails. $$iinncclluuddee - This directive takes a single filename as an argument and reads - commands and bindings from that file. For example, the follow- + This directive takes a single filename as an argument and reads + commands and bindings from that file. For example, the follow- ing directive would read _/_e_t_c_/_i_n_p_u_t_r_c: $$iinncclluuddee _/_e_t_c_/_i_n_p_u_t_r_c SSeeaarrcchhiinngg - Readline provides commands for searching through the command history + Readline provides commands for searching through the command history (see HHIISSTTOORRYY below) for lines containing a specified string. There are two search modes: _i_n_c_r_e_m_e_n_t_a_l and _n_o_n_-_i_n_c_r_e_m_e_n_t_a_l. - Incremental searches begin before the user has finished typing the - search string. As each character of the search string is typed, read- + Incremental searches begin before the user has finished typing the + search string. As each character of the search string is typed, read- line 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. The characters present in - the value of the iisseeaarrcchh--tteerrmmiinnaattoorrss variable are used to terminate an + so far. An incremental search requires only as many characters as + needed to find the desired history entry. The characters present in + the value of the iisseeaarrcchh--tteerrmmiinnaattoorrss variable are used to terminate an incremental search. If that variable has not been assigned a value the - Escape and Control-J characters will terminate an incremental search. - Control-G will abort an incremental search and restore the original - line. When the search is terminated, the history entry containing the + Escape and Control-J characters will terminate an incremental search. + Control-G will abort an incremental search and restore 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 Control-S or - Control-R as appropriate. This will search 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 will terminate the - search and execute that command. For instance, a _n_e_w_l_i_n_e will termi- + To find other matching entries in the history list, type Control-S or + Control-R as appropriate. This will search 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 will terminate the + search and execute that command. For instance, a _n_e_w_l_i_n_e will termi- nate the search and accept the line, thereby executing the command from the history list. Readline remembers the last incremental search string. If two Control- - Rs are typed without any intervening characters defining a new search + Rs are typed without any intervening characters defining a new search string, any remembered search string is used. - Non-incremental searches read the entire search string before starting - to search for matching history lines. The search string may be typed + Non-incremental searches read the entire search string before starting + to search for matching history lines. The search string may be typed by the user or be part of the contents of the current line. RReeaaddlliinnee CCoommmmaanndd NNaammeess - The following is a list of the names of the commands and the default + 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 descrip- - tions, _p_o_i_n_t refers to the current cursor position, and _m_a_r_k refers to - a cursor position saved by the sseett--mmaarrkk command. The text between the + tions, _p_o_i_n_t refers to the current cursor position, and _m_a_r_k refers to + a cursor position saved by the sseett--mmaarrkk command. The text between the point and mark is referred to as the _r_e_g_i_o_n. CCoommmmaannddss ffoorr MMoovviinngg @@ -3483,29 +3486,29 @@ RREEAADDLLIINNEE Move forward to the end of the next word. Words are composed of alphanumeric characters (letters and digits). bbaacckkwwaarrdd--wwoorrdd ((MM--bb)) - Move back to the start of the current or previous word. Words + Move back to the start of the current or previous word. Words are composed of alphanumeric characters (letters and digits). sshheellll--ffoorrwwaarrdd--wwoorrdd - Move forward to the end of the next word. Words are delimited + Move forward to the end of the next word. Words are delimited by non-quoted shell metacharacters. sshheellll--bbaacckkwwaarrdd--wwoorrdd - Move back to the start of the current or previous word. Words + Move back to the start of the current or previous word. Words are delimited by non-quoted shell metacharacters. pprreevviioouuss--ssccrreeeenn--lliinnee - 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 + 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. nneexxtt--ssccrreeeenn--lliinnee - Attempt to move point to the same physical screen column on the + 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 + 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. cclleeaarr--ssccrreeeenn ((CC--ll)) - Clear the screen leaving the current line at the top of the - screen. With an argument, refresh the current line without + Clear the screen leaving the current line at the top of the + screen. With an argument, refresh the current line without clearing the screen. rreeddrraaww--ccuurrrreenntt--lliinnee Refresh the current line. @@ -3513,70 +3516,70 @@ RREEAADDLLIINNEE CCoommmmaannddss ffoorr MMaanniippuullaattiinngg tthhee HHiissttoorryy aacccceepptt--lliinnee ((NNeewwlliinnee,, RReettuurrnn)) 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 HHIISSTTCCOONNTTRROOLL variable. If the line is a modified history + is non-empty, add it to the history list according to the state + of the HHIISSTTCCOONNTTRROOLL variable. If the line is a modified history line, then restore the history line to its original state. pprreevviioouuss--hhiissttoorryy ((CC--pp)) Fetch the previous command from the history list, moving back in the list. nneexxtt--hhiissttoorryy ((CC--nn)) - Fetch the next command from the history list, moving forward in + Fetch the next command from the history list, moving forward in the list. bbeeggiinnnniinngg--ooff--hhiissttoorryy ((MM--<<)) Move to the first line in the history. eenndd--ooff--hhiissttoorryy ((MM-->>)) - Move to the end of the input history, i.e., the line currently + Move to the end of the input history, i.e., the line currently being entered. rreevveerrssee--sseeaarrcchh--hhiissttoorryy ((CC--rr)) - Search backward starting at the current line and moving `up' - through the history as necessary. This is an incremental + Search backward starting at the current line and moving `up' + through the history as necessary. This is an incremental search. ffoorrwwaarrdd--sseeaarrcchh--hhiissttoorryy ((CC--ss)) - Search forward starting at the current line and moving `down' - through the history as necessary. This is an incremental + Search forward starting at the current line and moving `down' + through the history as necessary. This is an incremental search. nnoonn--iinnccrreemmeennttaall--rreevveerrssee--sseeaarrcchh--hhiissttoorryy ((MM--pp)) Search backward through the history starting at the current line - using a non-incremental search for a string supplied by the + using a non-incremental search for a string supplied by the user. nnoonn--iinnccrreemmeennttaall--ffoorrwwaarrdd--sseeaarrcchh--hhiissttoorryy ((MM--nn)) - Search forward through the history using a non-incremental + Search forward through the history using a non-incremental search for a string supplied by the user. hhiissttoorryy--sseeaarrcchh--ffoorrwwaarrdd - Search forward through the history for the string of characters - between the start of the current line and the point. This is a + Search forward through the history for the string of characters + between the start of the current line and the point. This is a non-incremental search. hhiissttoorryy--sseeaarrcchh--bbaacckkwwaarrdd Search backward through the history for the string of characters - between the start of the current line and the point. This is a + between the start of the current line and the point. This is a non-incremental search. hhiissttoorryy--ssuubbssttrriinngg--sseeaarrcchh--bbaacckkwwaarrdd Search backward through the history for the string of characters between the start of the current line and the current cursor po- - sition (the _p_o_i_n_t). The search string may match anywhere in a + sition (the _p_o_i_n_t). The search string may match anywhere in a history line. This is a non-incremental search. hhiissttoorryy--ssuubbssttrriinngg--sseeaarrcchh--ffoorrwwaarrdd - Search forward through the history for the string of characters + 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- + string may match anywhere in a history line. This is a non-in- cremental search. yyaannkk--nntthh--aarrgg ((MM--CC--yy)) - Insert the first argument to the previous command (usually the + 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 in- - serts the _nth word from the end of the previous command. Once - the argument _n is computed, the argument is extracted as if the + insert the _nth word from the previous command (the words in the + previous command begin with word 0). A negative argument in- + serts the _nth word from the end of the previous command. Once + the argument _n is computed, the argument is extracted as if the "!_n" history expansion had been specified. yyaannkk--llaasstt--aarrgg ((MM--..,, MM--__)) - Insert the last argument to the previous command (the last word + Insert the last argument to the previous command (the last word of the previous history entry). With a numeric argument, behave - exactly like yyaannkk--nntthh--aarrgg. Successive calls to yyaannkk--llaasstt--aarrgg - move back through the history list, inserting the last word (or - the word specified by the argument to the first call) of each + exactly like yyaannkk--nntthh--aarrgg. Successive calls to yyaannkk--llaasstt--aarrgg + 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 + calls determines the direction to move through the history. A + negative argument switches the direction through the history (back or forward). The history expansion facilities are used to extract the last word, as if the "!$" history expansion had been specified. @@ -3585,80 +3588,80 @@ RREEAADDLLIINNEE tory expansion as well as all of the shell word expansions. See HHIISSTTOORRYY EEXXPPAANNSSIIOONN below for a description of history expansion. hhiissttoorryy--eexxppaanndd--lliinnee ((MM--^^)) - Perform history expansion on the current line. See HHIISSTTOORRYY EEXX-- + Perform history expansion on the current line. See HHIISSTTOORRYY EEXX-- PPAANNSSIIOONN below for a description of history expansion. mmaaggiicc--ssppaaccee - Perform history expansion on the current line and insert a + Perform history expansion on the current line and insert a space. See HHIISSTTOORRYY EEXXPPAANNSSIIOONN below for a description of history expansion. aalliiaass--eexxppaanndd--lliinnee - Perform alias expansion on the current line. See AALLIIAASSEESS above + Perform alias expansion on the current line. See AALLIIAASSEESS above for a description of alias expansion. hhiissttoorryy--aanndd--aalliiaass--eexxppaanndd--lliinnee Perform history and alias expansion on the current line. iinnsseerrtt--llaasstt--aarrgguummeenntt ((MM--..,, MM--__)) A synonym for yyaannkk--llaasstt--aarrgg. ooppeerraattee--aanndd--ggeett--nneexxtt ((CC--oo)) - Accept the current line for execution 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 + Accept the current line for execution 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. eeddiitt--aanndd--eexxeeccuuttee--ccoommmmaanndd ((CC--xx CC--ee)) - Invoke an editor on the current command line, and execute the + Invoke an editor on the current command line, and execute the result as shell commands. BBaasshh attempts to invoke $$VVIISSUUAALL, $$EEDD-- IITTOORR, and _e_m_a_c_s as the editor, in that order. CCoommmmaannddss ffoorr CChhaannggiinngg TTeexxtt _e_n_d_-_o_f_-_f_i_l_e ((uussuuaallllyy CC--dd)) - The character indicating end-of-file as set, for example, by - ``stty''. If this character is read when there are no charac- - ters on the line, and point is at the beginning of the line, + The character indicating end-of-file as set, for example, by + ``stty''. If this character is read when there are no charac- + ters on the line, and point is at the beginning of the line, Readline interprets it as the end of input and returns EEOOFF. ddeelleettee--cchhaarr ((CC--dd)) Delete the character at point. If this function is bound to the same character as the tty EEOOFF character, as CC--dd commonly is, see above for the effects. bbaacckkwwaarrdd--ddeelleettee--cchhaarr ((RRuubboouutt)) - Delete the character behind the cursor. When given a numeric + Delete the character behind the cursor. When given a numeric argument, save the deleted text on the kill ring. ffoorrwwaarrdd--bbaacckkwwaarrdd--ddeelleettee--cchhaarr - Delete the character under the cursor, unless the cursor is at + 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. qquuootteedd--iinnsseerrtt ((CC--qq,, CC--vv)) - Add the next character typed to the line verbatim. This is how + Add the next character typed to the line verbatim. This is how to insert characters like CC--qq, for example. ttaabb--iinnsseerrtt ((CC--vv TTAABB)) Insert a tab character. sseellff--iinnsseerrtt ((aa,, bb,, AA,, 11,, !!,, ......)) Insert the character typed. ttrraannssppoossee--cchhaarrss ((CC--tt)) - 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. + 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. ttrraannssppoossee--wwoorrddss ((MM--tt)) - Drag the word before point past the word after point, moving - point over that word as well. If point is at the end of the + Drag the word before point past the word after point, moving + point over that word as well. If point is at the end of the line, this transposes the last two words on the line. uuppccaassee--wwoorrdd ((MM--uu)) - Uppercase the current (or following) word. With a negative ar- + Uppercase the current (or following) word. With a negative ar- gument, uppercase the previous word, but do not move point. ddoowwnnccaassee--wwoorrdd ((MM--ll)) - Lowercase the current (or following) word. With a negative ar- + Lowercase the current (or following) word. With a negative ar- gument, lowercase the previous word, but do not move point. ccaappiittaalliizzee--wwoorrdd ((MM--cc)) Capitalize the current (or following) word. With a negative ar- gument, capitalize the previous word, but do not move point. oovveerrwwrriittee--mmooddee - Toggle overwrite mode. With an explicit positive numeric argu- + 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 eemmaaccss mode; vvii mode does overwrite differently. Each call + only eemmaaccss mode; vvii mode does overwrite differently. Each call to _r_e_a_d_l_i_n_e_(_) starts in insert mode. In overwrite mode, charac- - ters bound to sseellff--iinnsseerrtt replace the text at point rather than - pushing the text to the right. Characters bound to bbaacckk-- - wwaarrdd--ddeelleettee--cchhaarr replace the character before point with a + ters bound to sseellff--iinnsseerrtt replace the text at point rather than + pushing the text to the right. Characters bound to bbaacckk-- + wwaarrdd--ddeelleettee--cchhaarr replace the character before point with a space. By default, this command is unbound. KKiilllliinngg aanndd YYaannkkiinngg @@ -3667,31 +3670,31 @@ RREEAADDLLIINNEE bbaacckkwwaarrdd--kkiillll--lliinnee ((CC--xx RRuubboouutt)) Kill backward to the beginning of the line. uunniixx--lliinnee--ddiissccaarrdd ((CC--uu)) - Kill backward from point to the beginning of the line. The + Kill backward from point to the beginning of the line. The killed text is saved on the kill-ring. kkiillll--wwhhoollee--lliinnee - Kill all characters on the current line, no matter where point + Kill all characters on the current line, no matter where point is. kkiillll--wwoorrdd ((MM--dd)) - 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 + 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 ffoorrwwaarrdd--wwoorrdd. bbaacckkwwaarrdd--kkiillll--wwoorrdd ((MM--RRuubboouutt)) - Kill the word behind point. Word boundaries are the same as + Kill the word behind point. Word boundaries are the same as those used by bbaacckkwwaarrdd--wwoorrdd. sshheellll--kkiillll--wwoorrdd - 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 + 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 sshheellll--ffoorrwwaarrdd--wwoorrdd. sshheellll--bbaacckkwwaarrdd--kkiillll--wwoorrdd - Kill the word behind point. Word boundaries are the same as + Kill the word behind point. Word boundaries are the same as those used by sshheellll--bbaacckkwwaarrdd--wwoorrdd. uunniixx--wwoorrdd--rruubboouutt ((CC--ww)) - Kill the word behind point, using white space as a word bound- + Kill the word behind point, using white space as a word bound- ary. The killed text is saved on the kill-ring. uunniixx--ffiilleennaammee--rruubboouutt - Kill the word behind point, using white space and the slash - character as the word boundaries. The killed text is saved on + Kill the word behind point, using white space and the slash + character as the word boundaries. The killed text is saved on the kill-ring. ddeelleettee--hhoorriizzoonnttaall--ssppaaccee ((MM--\\)) Delete all spaces and tabs around point. @@ -3700,64 +3703,64 @@ RREEAADDLLIINNEE ccooppyy--rreeggiioonn--aass--kkiillll Copy the text in the region to the kill buffer. ccooppyy--bbaacckkwwaarrdd--wwoorrdd - Copy the word before point to the kill buffer. The word bound- + Copy the word before point to the kill buffer. The word bound- aries are the same as bbaacckkwwaarrdd--wwoorrdd. ccooppyy--ffoorrwwaarrdd--wwoorrdd - Copy the word following point to the kill buffer. The word + Copy the word following point to the kill buffer. The word boundaries are the same as ffoorrwwaarrdd--wwoorrdd. yyaannkk ((CC--yy)) Yank the top of the kill ring into the buffer at point. yyaannkk--ppoopp ((MM--yy)) - Rotate the kill ring, and yank the new top. Only works follow- + Rotate the kill ring, and yank the new top. Only works follow- ing yyaannkk or yyaannkk--ppoopp. NNuummeerriicc AArrgguummeennttss ddiiggiitt--aarrgguummeenntt ((MM--00,, MM--11,, ......,, MM----)) - Add this digit to the argument already accumulating, or start a + Add this digit to the argument already accumulating, or start a new argument. M-- starts a negative argument. uunniivveerrssaall--aarrgguummeenntt - 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- + 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 uunniivveerrssaall--aarrgguummeenntt 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- + 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. CCoommpplleettiinngg ccoommpplleettee ((TTAABB)) - Attempt to perform completion on the text before point. BBaasshh + Attempt to perform completion on the text before point. BBaasshh attempts completion 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 and + begins with $$), username (if the text begins with ~~), hostname + (if the text begins with @@), or command (including aliases and functions) in turn. If none of these produces a match, filename completion is attempted. ppoossssiibbllee--ccoommpplleettiioonnss ((MM--??)) List the possible completions of the text before point. iinnsseerrtt--ccoommpplleettiioonnss ((MM--**)) - Insert all completions of the text before point that would have + Insert all completions of the text before point that would have been generated by ppoossssiibbllee--ccoommpplleettiioonnss. mmeennuu--ccoommpplleettee - Similar to ccoommpplleettee, but replaces the word to be completed with - a single match from the list of possible completions. Repeated - execution of mmeennuu--ccoommpplleettee steps through the list of possible - completions, inserting each match in turn. At the end of the + Similar to ccoommpplleettee, but replaces the word to be completed with + a single match from the list of possible completions. Repeated + execution of mmeennuu--ccoommpplleettee steps through the list of possible + completions, inserting each match in turn. At the end of the list of completions, the bell is rung (subject to the setting of bbeellll--ssttyyllee) and the original text is restored. An argument of _n moves _n positions forward in the list of matches; a negative ar- gument may be used to move backward through the list. This com- mand is intended to be bound to TTAABB, but is unbound by default. mmeennuu--ccoommpplleettee--bbaacckkwwaarrdd - Identical to mmeennuu--ccoommpplleettee, but moves backward through the list - of possible completions, as if mmeennuu--ccoommpplleettee had been given a + Identical to mmeennuu--ccoommpplleettee, but moves backward through the list + of possible completions, as if mmeennuu--ccoommpplleettee had been given a negative argument. This command is unbound by default. ddeelleettee--cchhaarr--oorr--lliisstt - Deletes the character under the cursor if not at the beginning - or end of the line (like ddeelleettee--cchhaarr). If at the end of the + Deletes the character under the cursor if not at the beginning + or end of the line (like ddeelleettee--cchhaarr). If at the end of the line, behaves identically to ppoossssiibbllee--ccoommpplleettiioonnss. This command is unbound by default. ccoommpplleettee--ffiilleennaammee ((MM--//)) @@ -3766,67 +3769,67 @@ RREEAADDLLIINNEE List the possible completions of the text before point, treating it as a filename. ccoommpplleettee--uusseerrnnaammee ((MM--~~)) - Attempt completion on the text before point, treating it as a + Attempt completion on the text before point, treating it as a username. ppoossssiibbllee--uusseerrnnaammee--ccoommpplleettiioonnss ((CC--xx ~~)) List the possible completions of the text before point, treating it as a username. ccoommpplleettee--vvaarriiaabbllee ((MM--$$)) - Attempt completion on the text before point, treating it as a + Attempt completion on the text before point, treating it as a shell variable. ppoossssiibbllee--vvaarriiaabbllee--ccoommpplleettiioonnss ((CC--xx $$)) List the possible completions of the text before point, treating it as a shell variable. ccoommpplleettee--hhoossttnnaammee ((MM--@@)) - Attempt completion on the text before point, treating it as a + Attempt completion on the text before point, treating it as a hostname. ppoossssiibbllee--hhoossttnnaammee--ccoommpplleettiioonnss ((CC--xx @@)) List the possible completions of the text before point, treating it as a hostname. ccoommpplleettee--ccoommmmaanndd ((MM--!!)) - 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 + 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. ppoossssiibbllee--ccoommmmaanndd--ccoommpplleettiioonnss ((CC--xx !!)) List the possible completions of the text before point, treating it as a command name. ddyynnaammiicc--ccoommpplleettee--hhiissttoorryy ((MM--TTAABB)) - Attempt completion on the text before point, comparing the text - against lines from the history list for possible completion + Attempt completion on the text before point, comparing the text + against lines from the history list for possible completion matches. ddaabbbbrreevv--eexxppaanndd - Attempt menu completion on the text before point, comparing the + Attempt menu completion on the text before point, comparing the text against lines from the history list for possible completion matches. ccoommpplleettee--iinnttoo--bbrraacceess ((MM--{{)) Perform filename completion and insert the list of possible com- - pletions enclosed within braces so the list is available to the + pletions enclosed within braces so the list is available to the shell (see BBrraaccee EExxppaannssiioonn above). KKeeyybbooaarrdd MMaaccrrooss ssttaarrtt--kkbbdd--mmaaccrroo ((CC--xx (()) - Begin saving the characters typed into the current keyboard + Begin saving the characters typed into the current keyboard macro. eenndd--kkbbdd--mmaaccrroo ((CC--xx )))) Stop saving the characters typed into the current keyboard macro and store the definition. ccaallll--llaasstt--kkbbdd--mmaaccrroo ((CC--xx ee)) - Re-execute the last keyboard macro defined, by making the char- + Re-execute the last keyboard macro defined, by making the char- acters in the macro appear as if typed at the keyboard. pprriinntt--llaasstt--kkbbdd--mmaaccrroo (()) - Print the last keyboard macro defined in a format suitable for + Print the last keyboard macro defined in a format suitable for the _i_n_p_u_t_r_c file. MMiisscceellllaanneeoouuss rree--rreeaadd--iinniitt--ffiillee ((CC--xx CC--rr)) - Read in the contents of the _i_n_p_u_t_r_c file, and incorporate any + Read in the contents of the _i_n_p_u_t_r_c file, and incorporate any bindings or variable assignments found there. aabboorrtt ((CC--gg)) - Abort the current editing command and ring the terminal's bell + Abort the current editing command and ring the terminal's bell (subject to the setting of bbeellll--ssttyyllee). ddoo--lloowweerrccaassee--vveerrssiioonn ((MM--AA,, MM--BB,, MM--_x,, ......)) - If the metafied character _x is uppercase, run the command that + If the metafied character _x is uppercase, run the command that is bound to the corresponding metafied lowercase character. The behavior is undefined if _x is already lowercase. pprreeffiixx--mmeettaa ((EESSCC)) @@ -3834,199 +3837,199 @@ RREEAADDLLIINNEE uunnddoo ((CC--__,, CC--xx CC--uu)) Incremental undo, separately remembered for each line. rreevveerrtt--lliinnee ((MM--rr)) - Undo all changes made to this line. This is like executing the - uunnddoo command enough times to return the line to its initial + Undo all changes made to this line. This is like executing the + uunnddoo command enough times to return the line to its initial state. ttiillddee--eexxppaanndd ((MM--&&)) Perform tilde expansion on the current word. sseett--mmaarrkk ((CC--@@,, MM--<<ssppaaccee>>)) - Set the mark to the point. If a numeric argument is supplied, + Set the mark to the point. If a numeric argument is supplied, the mark is set to that position. eexxcchhaannggee--ppooiinntt--aanndd--mmaarrkk ((CC--xx CC--xx)) - Swap the point with the mark. The current cursor position is - set to the saved position, and the old cursor position is saved + Swap the point with the mark. The current cursor position is + set to the saved position, and the old cursor position is saved as the mark. cchhaarraacctteerr--sseeaarrcchh ((CC--]])) A character is read and point is moved to the next occurrence of - that character. A negative count searches for previous occur- + that character. A negative count searches for previous occur- rences. cchhaarraacctteerr--sseeaarrcchh--bbaacckkwwaarrdd ((MM--CC--]])) - A character is read and point is moved to the previous occur- - rence of that character. A negative count searches for subse- + A character is read and point is moved to the previous occur- + rence of that character. A negative count searches for subse- quent occurrences. sskkiipp--ccssii--sseeqquueennccee - Read enough characters to consume a multi-key sequence such as - those defined for keys like Home and End. Such sequences begin + Read enough characters to consume a multi-key sequence such as + those defined for keys like Home and End. Such sequences begin with a Control Sequence Indicator (CSI), usually ESC-[. If this - sequence is bound to "\[", keys producing such sequences will - have no effect unless explicitly bound to a readline command, - instead of inserting stray characters into the editing buffer. + sequence is bound to "\[", keys producing such sequences will + 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-[. iinnsseerrtt--ccoommmmeenntt ((MM--##)) - Without a numeric argument, the value of the readline ccoomm-- - mmeenntt--bbeeggiinn variable is inserted at the beginning of the current + Without a numeric argument, the value of the readline ccoomm-- + mmeenntt--bbeeggiinn variable is inserted 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 ccoommmmeenntt--bbeeggiinn, the value is inserted, other- + toggle: if the characters at the beginning of the line do not + match the value of ccoommmmeenntt--bbeeggiinn, the value is inserted, other- wise the characters in ccoommmmeenntt--bbeeggiinn are deleted from the begin- - ning of the line. In either case, the line is accepted as if a - newline had been typed. The default value of ccoommmmeenntt--bbeeggiinn - causes this command to make the current line a shell comment. - If a numeric argument causes the comment character to be re- + ning of the line. In either case, the line is accepted as if a + newline had been typed. The default value of ccoommmmeenntt--bbeeggiinn + causes this command to make the current line a shell comment. + If a numeric argument causes the comment character to be re- moved, the line will be executed by the shell. gglloobb--ccoommpplleettee--wwoorrdd ((MM--gg)) - The word before point is treated as a pattern for pathname ex- - pansion, with an asterisk implicitly appended. This pattern is - used to generate a list of matching filenames for possible com- + The word before point is treated as a pattern for pathname ex- + pansion, with an asterisk implicitly appended. This pattern is + used to generate a list of matching filenames for possible com- pletions. gglloobb--eexxppaanndd--wwoorrdd ((CC--xx **)) - The word before point is treated as a pattern for pathname ex- + The word before point is treated as a pattern for pathname ex- pansion, and the list of matching filenames is inserted, replac- ing the word. If a numeric argument is supplied, an asterisk is appended before pathname expansion. gglloobb--lliisstt--eexxppaannssiioonnss ((CC--xx gg)) - The list of expansions that would have been generated by - gglloobb--eexxppaanndd--wwoorrdd is displayed, and the line is redrawn. If a - numeric argument is supplied, an asterisk is appended before + The list of expansions that would have been generated by + gglloobb--eexxppaanndd--wwoorrdd is displayed, and the line is redrawn. If a + numeric argument is supplied, an asterisk is appended before pathname expansion. dduummpp--ffuunnccttiioonnss - Print all of the functions and their key bindings to the read- + Print all of the functions and their key bindings to the read- line 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 + put is formatted in such a way that it can be made part of an _i_n_p_u_t_r_c file. dduummpp--vvaarriiaabblleess Print all of the settable readline 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 + 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 _i_n_p_u_t_r_c file. dduummpp--mmaaccrrooss - Print all of the readline key sequences bound to macros and the - strings they output. If a numeric argument is supplied, the + Print all of the readline key sequences bound to macros and the + strings they output. If a numeric argument is supplied, the output is formatted in such a way that it can be made part of an _i_n_p_u_t_r_c file. ddiissppllaayy--sshheellll--vveerrssiioonn ((CC--xx CC--vv)) Display version information about the current instance of bbaasshh. PPrrooggrraammmmaabbllee CCoommpplleettiioonn - When word completion is attempted for an argument to a command for - which a completion specification (a _c_o_m_p_s_p_e_c) has been defined using - the ccoommpplleettee builtin (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below), the program- + When word completion is attempted for an argument to a command for + which a completion specification (a _c_o_m_p_s_p_e_c) has been defined using + the ccoommpplleettee builtin (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below), the program- mable completion facilities are invoked. - First, the command name is identified. If the command word is the - empty string (completion attempted at the beginning of an empty line), - any compspec defined with the --EE option to ccoommpplleettee is used. If a - compspec has been defined for that command, the compspec is used to + First, the command name is identified. If the command word is the + empty string (completion attempted at the beginning of an empty line), + any compspec defined with the --EE option to ccoommpplleettee is used. 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 a full pathname, a compspec for the full pathname is searched - for first. If no compspec is found for the full pathname, an attempt - is made to find a compspec for the portion following the final slash. - If those searches do not result in a compspec, any compspec defined - with the --DD option to ccoommpplleettee is used as the default. If there is no - default compspec, bbaasshh attempts alias expansion on the command word as - a final resort, and attempts to find a compspec for the command word + word is a full pathname, a compspec for the full pathname is searched + for first. If no compspec is found for the full pathname, an attempt + is made to find a compspec for the portion following the final slash. + If those searches do not result in a compspec, any compspec defined + with the --DD option to ccoommpplleettee is used as the default. If there is no + default compspec, bbaasshh attempts alias expansion on the command word as + a final resort, and attempts to find a compspec for the command word from any successful expansion. - Once a compspec has been found, it is used to generate the list of - matching words. If a compspec is not found, the default bbaasshh comple- + Once a compspec has been found, it is used to generate the list of + matching words. If a compspec is not found, the default bbaasshh comple- tion as described above under CCoommpplleettiinngg is performed. - First, the actions specified by the compspec are used. Only matches - which are prefixed by the word being completed are returned. When the - --ff or --dd option is used for filename or directory name completion, the + First, the actions specified by the compspec are used. Only matches + which are prefixed by the word being completed are returned. When the + --ff or --dd option is used for filename or directory name completion, the shell variable FFIIGGNNOORREE is used to filter the matches. Any completions specified by a pathname expansion pattern to the --GG op- - tion are generated next. The words generated by the pattern need not - match the word being completed. The GGLLOOBBIIGGNNOORREE shell variable is not + tion are generated next. The words generated by the pattern need not + match the word being completed. The GGLLOOBBIIGGNNOORREE shell variable is not used to filter the matches, but the FFIIGGNNOORREE variable is used. - Next, the string specified as the argument to the --WW option is consid- - ered. The string is first split using the characters in the IIFFSS spe- - cial variable as delimiters. Shell quoting is honored. Each word is - then expanded using brace expansion, tilde expansion, parameter and - variable expansion, command substitution, and arithmetic expansion, as + Next, the string specified as the argument to the --WW option is consid- + ered. The string is first split using the characters in the IIFFSS spe- + cial variable as delimiters. Shell quoting is honored. Each word is + then expanded using brace expansion, tilde expansion, parameter and + variable expansion, command substitution, and arithmetic expansion, as described above under EEXXPPAANNSSIIOONN. The results are split using the rules described above under WWoorrdd SSpplliittttiinngg. The results of the expansion are prefix-matched against the word being completed, and the matching words become the possible completions. - After these matches have been generated, any shell function or command - specified with the --FF and --CC options is invoked. When the command or + After these matches have been generated, any shell function or command + specified with the --FF and --CC options is invoked. When the command or function is invoked, the CCOOMMPP__LLIINNEE, CCOOMMPP__PPOOIINNTT, CCOOMMPP__KKEEYY, and CCOOMMPP__TTYYPPEE variables are assigned values as described above under SShheellll VVaarriiaabblleess. - If a shell function is being invoked, the CCOOMMPP__WWOORRDDSS and CCOOMMPP__CCWWOORRDD - variables are also set. When the function or command is invoked, the - first argument ($$11) is the name of the command whose arguments are be- - ing completed, the second argument ($$22) is the word being completed, - and the third argument ($$33) is the word preceding the word being com- + If a shell function is being invoked, the CCOOMMPP__WWOORRDDSS and CCOOMMPP__CCWWOORRDD + variables are also set. When the function or command is invoked, the + first argument ($$11) is the name of the command whose arguments are be- + ing completed, the second argument ($$22) is the word being completed, + and the third argument ($$33) is the word preceding the word being com- pleted on the current command line. No filtering of the generated com- pletions against the word being completed is performed; the function or command has complete freedom in generating the matches. - Any function specified with --FF is invoked first. The function may use - any of the shell facilities, including the ccoommppggeenn builtin described - below, to generate the matches. It must put the possible completions + Any function specified with --FF is invoked first. The function may use + any of the shell facilities, including the ccoommppggeenn builtin described + below, to generate the matches. It must put the possible completions in the CCOOMMPPRREEPPLLYY array variable, one per array element. - Next, any command specified with the --CC 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 may be + Next, any command specified with the --CC 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 may be used to escape a newline, if necessary. - After all of the possible completions are generated, any filter speci- - fied with the --XX option is applied to the list. The filter is a pat- - tern 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 will be removed from the list. + After all of the possible completions are generated, any filter speci- + fied with the --XX option is applied to the list. The filter is a pat- + tern 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 will be removed from the list. A leading !! negates the pattern; in this case any completion not match- - ing the pattern will be removed. If the nnooccaasseemmaattcchh shell option is - enabled, the match is performed without regard to the case of alpha- + ing the pattern will be removed. If the nnooccaasseemmaattcchh shell option is + enabled, the match is performed without regard to the case of alpha- betic characters. Finally, any prefix and suffix specified with the --PP and --SS options are added to each member of the completion list, and the result is returned to the readline completion code as the list of possible completions. - If the previously-applied actions do not generate any matches, and the - --oo ddiirrnnaammeess option was supplied to ccoommpplleettee when the compspec was de- + If the previously-applied actions do not generate any matches, and the + --oo ddiirrnnaammeess option was supplied to ccoommpplleettee when the compspec was de- fined, directory name completion is attempted. - If the --oo pplluussddiirrss option was supplied to ccoommpplleettee when the compspec + If the --oo pplluussddiirrss option was supplied to ccoommpplleettee when the compspec was defined, directory name completion is attempted and any matches are added to the results of the other actions. - By default, if a compspec is found, whatever it generates is returned - to the completion code as the full set of possible completions. The + 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 bbaasshh completions are not attempted, and the readline default of filename completion is disabled. If the --oo bbaasshhddeeffaauulltt option was sup- - plied to ccoommpplleettee when the compspec was defined, the bbaasshh default com- + plied to ccoommpplleettee when the compspec was defined, the bbaasshh default com- pletions are attempted if the compspec generates no matches. If the --oo - ddeeffaauulltt option was supplied to ccoommpplleettee when the compspec was defined, - readline's default completion will be performed if the compspec (and, + ddeeffaauulltt option was supplied to ccoommpplleettee when the compspec was defined, + readline's default completion will be performed if the compspec (and, if attempted, the default bbaasshh completions) generate no matches. - When a compspec indicates that directory name completion is desired, - 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 mmaarrkk--ddiirreeccttoorriieess readline variable, regardless of the + When a compspec indicates that directory name completion is desired, + 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 mmaarrkk--ddiirreeccttoorriieess readline variable, regardless of the setting of the mmaarrkk--ssyymmlliinnkkeedd--ddiirreeccttoorriieess readline variable. - There is some support for dynamically modifying completions. This is - most useful when used in combination with a default completion speci- - fied with ccoommpplleettee --DD. It's possible for shell functions executed as - completion handlers to indicate that completion should be retried by - returning an exit status of 124. If a shell function returns 124, and + There is some support for dynamically modifying completions. This is + most useful when used in combination with a default completion speci- + fied with ccoommpplleettee --DD. It's possible for shell functions executed as + completion handlers 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 + 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 allows a set of - completions to be built dynamically as completion is attempted, rather + attempt to find a new compspec for that command. This allows a set of + completions to be built dynamically as completion is attempted, rather than being loaded 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- + 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() @@ -4037,167 +4040,167 @@ RREEAADDLLIINNEE HHIISSTTOORRYY - When the --oo hhiissttoorryy option to the sseett builtin is enabled, the shell + When the --oo hhiissttoorryy option to the sseett builtin is enabled, the shell provides access to the _c_o_m_m_a_n_d _h_i_s_t_o_r_y, the list of commands previously - typed. The value of the HHIISSTTSSIIZZEE variable is used as the number of + typed. The value of the HHIISSTTSSIIZZEE variable is used as the number of commands to save in a history list. The text of the last HHIISSTTSSIIZZEE com- - mands (default 500) is saved. The shell stores each command in the - history list prior to parameter and variable expansion (see EEXXPPAANNSSIIOONN - above) but after history expansion is performed, subject to the values + mands (default 500) is saved. The shell stores each command in the + history list prior to parameter and variable expansion (see EEXXPPAANNSSIIOONN + above) but after history expansion is performed, subject to the values of the shell variables HHIISSTTIIGGNNOORREE and HHIISSTTCCOONNTTRROOLL. On startup, the history is initialized from the file named by the vari- - able HHIISSTTFFIILLEE (default _~_/_._b_a_s_h___h_i_s_t_o_r_y). The file named by the value - of HHIISSTTFFIILLEE is truncated, if necessary, to contain no more than the - number of lines specified by the value of HHIISSTTFFIILLEESSIIZZEE. If HHIISSTTFFIILLEE-- - SSIIZZEE 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 fol- + able HHIISSTTFFIILLEE (default _~_/_._b_a_s_h___h_i_s_t_o_r_y). The file named by the value + of HHIISSTTFFIILLEE is truncated, if necessary, to contain no more than the + number of lines specified by the value of HHIISSTTFFIILLEESSIIZZEE. If HHIISSTTFFIILLEE-- + SSIIZZEE 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 fol- lowed immediately by a digit are interpreted as timestamps for the fol- lowing history line. These timestamps are optionally displayed depend- - ing on the value of the HHIISSTTTTIIMMEEFFOORRMMAATT variable. When a shell with - history enabled exits, the last $$HHIISSTTSSIIZZEE lines are copied from the - history list to $$HHIISSTTFFIILLEE. If the hhiissttaappppeenndd shell option is enabled - (see the description of sshhoopptt under SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below), the - lines are appended to the history file, otherwise the history file is - overwritten. If HHIISSTTFFIILLEE is unset, or if the history file is un- - writable, the history is not saved. If the HHIISSTTTTIIMMEEFFOORRMMAATT variable is - set, time stamps are written to the history file, marked with the his- + ing on the value of the HHIISSTTTTIIMMEEFFOORRMMAATT variable. When a shell with + history enabled exits, the last $$HHIISSTTSSIIZZEE lines are copied from the + history list to $$HHIISSTTFFIILLEE. If the hhiissttaappppeenndd shell option is enabled + (see the description of sshhoopptt under SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below), the + lines are appended to the history file, otherwise the history file is + overwritten. If HHIISSTTFFIILLEE is unset, or if the history file is un- + writable, the history is not saved. If the HHIISSTTTTIIMMEEFFOORRMMAATT variable is + set, time stamps are written to the history file, marked with the his- tory comment character, so they may be preserved across shell sessions. - This uses the history comment character to distinguish timestamps from - other history lines. After saving the history, the history file is - truncated to contain no more than HHIISSTTFFIILLEESSIIZZEE lines. If HHIISSTTFFIILLEESSIIZZEE - is unset, or set to null, a non-numeric value, or a numeric value less + This uses the history comment character to distinguish timestamps from + other history lines. After saving the history, the history file is + truncated to contain no more than HHIISSTTFFIILLEESSIIZZEE lines. If HHIISSTTFFIILLEESSIIZZEE + is unset, or set to null, a non-numeric value, or a numeric value less than zero, the history file is not truncated. - The builtin command ffcc (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below) may be used + The builtin command ffcc (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below) may be used to list or edit and re-execute a portion of the history list. The hhiiss-- - ttoorryy builtin may be used to display or modify the history list and ma- - nipulate the history file. When using command-line editing, search - commands are available in each editing mode that provide access to the + ttoorryy builtin may be used to display or modify the history list and ma- + nipulate 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 + The shell allows control over which commands are saved on the history list. The HHIISSTTCCOONNTTRROOLL and HHIISSTTIIGGNNOORREE variables may be set to cause the shell to save only a subset of the commands entered. The ccmmddhhiisstt shell - option, if enabled, causes the shell to attempt to save each line of a - multi-line command in the same history entry, adding semicolons where - necessary to preserve syntactic correctness. The lliitthhiisstt shell option - causes the shell to save the command with embedded newlines instead of + option, if enabled, causes the shell to attempt to save each line of a + multi-line command in the same history entry, adding semicolons where + necessary to preserve syntactic correctness. The lliitthhiisstt shell option + causes the shell to save the command with embedded newlines instead of semicolons. See the description of the sshhoopptt builtin below under SSHHEELLLL - BBUUIILLTTIINN CCOOMMMMAANNDDSS for information on setting and unsetting shell op- + BBUUIILLTTIINN CCOOMMMMAANNDDSS for information on setting and unsetting shell op- tions. HHIISSTTOORRYY EEXXPPAANNSSIIOONN - The shell supports a history expansion feature that is similar to the - history expansion in ccsshh. This section describes what syntax features - are available. This feature is enabled by default for interactive + The shell supports a history expansion feature that is similar to the + history expansion in ccsshh. This section describes what syntax features + are available. This feature is enabled by default for interactive shells, and can be disabled using the ++HH option to the sseett builtin com- mand (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below). Non-interactive shells do not perform history expansion by default. History expansions introduce words from the history list into the input - stream, making it easy to repeat commands, insert the arguments to a + 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 without taking quoting on previous lines into ac- - count. It takes place in two parts. The first is to determine which - line from the history list to use during substitution. The second is - to select portions of that line for inclusion into the current one. - The line selected from the history is the _e_v_e_n_t, and the portions of - that line that are acted upon are _w_o_r_d_s. Various _m_o_d_i_f_i_e_r_s are avail- - able to manipulate the selected words. The line is broken into words - in the same fashion as when reading input, so that several _m_e_t_a_c_h_a_r_a_c_- + 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 without taking quoting on previous lines into ac- + count. It takes place in two parts. The first is to determine which + line from the history list to use during substitution. The second is + to select portions of that line for inclusion into the current one. + The line selected from the history is the _e_v_e_n_t, and the portions of + that line that are acted upon are _w_o_r_d_s. Various _m_o_d_i_f_i_e_r_s are avail- + able to manipulate the selected words. The line is broken into words + in the same fashion as when reading input, so that several _m_e_t_a_c_h_a_r_a_c_- _t_e_r-separated words surrounded by quotes are considered one word. His- - tory expansions are introduced by the appearance of the history expan- - sion character, which is !! by default. Only backslash (\\) and single - quotes can quote the history expansion character, but the history ex- - pansion character is also treated as quoted if it immediately precedes + tory expansions are introduced by the appearance of the history expan- + sion character, which is !! by default. Only backslash (\\) and single + quotes can quote the history expansion character, but the history ex- + pansion 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, and ==. If the eexxttgglloobb shell option is + Several characters inhibit history expansion if found immediately fol- + lowing the history expansion character, even if it is unquoted: space, + tab, newline, carriage return, and ==. If the eexxttgglloobb shell option is enabled, (( will also inhibit expansion. - Several shell options settable with the sshhoopptt builtin may be used to - tailor the behavior of history expansion. If the hhiissttvveerriiffyy shell op- - tion is enabled (see the description of the sshhoopptt builtin below), and - rreeaaddlliinnee is being used, history substitutions are not immediately - passed to the shell parser. Instead, the expanded line is reloaded + Several shell options settable with the sshhoopptt builtin may be used to + tailor the behavior of history expansion. If the hhiissttvveerriiffyy shell op- + tion is enabled (see the description of the sshhoopptt builtin below), and + rreeaaddlliinnee is being used, history substitutions are not immediately + passed to the shell parser. Instead, the expanded line is reloaded into the rreeaaddlliinnee editing buffer for further modification. If rreeaaddlliinnee - is being used, and the hhiissttrreeeeddiitt shell option is enabled, a failed - history substitution will be reloaded into the rreeaaddlliinnee editing buffer - for correction. The --pp option to the hhiissttoorryy builtin command may be - used to see what a history expansion will do before using it. The --ss + is being used, and the hhiissttrreeeeddiitt shell option is enabled, a failed + history substitution will be reloaded into the rreeaaddlliinnee editing buffer + for correction. The --pp option to the hhiissttoorryy builtin command may be + used to see what a history expansion will do before using it. The --ss option to the hhiissttoorryy builtin may be used to add commands to the end of - the history list without actually executing them, so that they are + the history list without actually executing them, so that they are available for subsequent recall. - The shell allows control of the various characters used by the history + The shell allows control of the various characters used by the history expansion mechanism (see the description of hhiissttcchhaarrss above under SShheellll - VVaarriiaabblleess). The shell uses the history comment character to mark his- + VVaarriiaabblleess). The shell uses the history comment character to mark his- tory timestamps when writing the history file. EEvveenntt DDeessiiggnnaattoorrss - An event designator is a reference to a command line entry in the his- - tory list. Unless the reference is absolute, events are relative to + An event designator is a reference to a command line entry in the his- + tory list. 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 bbllaannkk, - newline, carriage return, = or ( (when the eexxttgglloobb shell option + !! Start a history substitution, except when followed by a bbllaannkk, + newline, carriage return, = or ( (when the eexxttgglloobb shell option is enabled using the sshhoopptt builtin). !!_n Refer to command line _n. !!--_n Refer to the current command minus _n. !!!! Refer to the previous command. This is a synonym for `!-1'. !!_s_t_r_i_n_g - Refer to the most recent command preceding the current position + Refer to the most recent command preceding the current position in the history list starting with _s_t_r_i_n_g. !!??_s_t_r_i_n_g[[??]] - Refer to the most recent command preceding the current position - in the history list containing _s_t_r_i_n_g. The trailing ?? may be - omitted if _s_t_r_i_n_g is followed immediately by a newline. If - _s_t_r_i_n_g is missing, the string from the most recent search is + Refer to the most recent command preceding the current position + in the history list containing _s_t_r_i_n_g. The trailing ?? may be + omitted if _s_t_r_i_n_g is followed immediately by a newline. If + _s_t_r_i_n_g is missing, the string from the most recent search is used; it is an error if there is no previous search string. ^^_s_t_r_i_n_g_1^^_s_t_r_i_n_g_2^^ - Quick substitution. Repeat the previous command, replacing - _s_t_r_i_n_g_1 with _s_t_r_i_n_g_2. Equivalent to ``!!:s^_s_t_r_i_n_g_1^_s_t_r_i_n_g_2^'' + Quick substitution. Repeat the previous command, replacing + _s_t_r_i_n_g_1 with _s_t_r_i_n_g_2. Equivalent to ``!!:s^_s_t_r_i_n_g_1^_s_t_r_i_n_g_2^'' (see MMooddiiffiieerrss below). !!## The entire command line typed so far. WWoorrdd DDeessiiggnnaattoorrss - Word designators are used to select desired words from the 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). Words are inserted into the current line sepa- + Word designators are used to select desired words from the 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). Words are inserted into the current line sepa- rated by single spaces. 00 ((zzeerroo)) The zeroth word. For the shell, this is the command word. _n The _nth word. ^^ The first argument. That is, word 1. - $$ The last word. This is usually the last argument, but will ex- + $$ 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. - %% The first word matched by the most recent `?_s_t_r_i_n_g?' search, if - the search string begins with a character that is part of a + %% The first word matched by the most recent `?_s_t_r_i_n_g?' search, if + the search string begins with a character that is part of a word. _x--_y A range of words; `-_y' abbreviates `0-_y'. - ** All of the words but the zeroth. This is a synonym for `_1_-_$'. - It is not an error to use ** if there is just one word in the + ** All of the words but the zeroth. This is a synonym for `_1_-_$'. + It is not an error to use ** if there is just one word in the event; the empty string is returned in that case. xx** Abbreviates _x_-_$. xx-- Abbreviates _x_-_$ like xx**, but omits the last word. If xx is miss- ing, it defaults to 0. - If a word designator is supplied without an event specification, the + If a word designator is supplied without an event specification, the previous command is used as the event. MMooddiiffiieerrss - After the optional word designator, there may appear a sequence of one + After the optional word designator, there may appear a sequence of one or more of the following modifiers, each preceded by a `:'. These mod- ify, or edit, the word or words selected from the history event. @@ -4207,24 +4210,24 @@ HHIISSTTOORRYY EEXXPPAANNSSIIOONN ee Remove all but the trailing suffix. pp Print the new command but do not execute it. qq Quote the substituted words, escaping further substitutions. - xx Quote the substituted words as with qq, but break into words at - bbllaannkkss and newlines. The qq and xx modifiers are mutually exclu- + xx Quote the substituted words as with qq, but break into words at + bbllaannkkss and newlines. The qq and xx modifiers are mutually exclu- sive; the last one supplied is used. ss//_o_l_d//_n_e_w// - Substitute _n_e_w for the first occurrence of _o_l_d in the event + Substitute _n_e_w for the first occurrence of _o_l_d 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 final delimiter is optional if it is the last character of the event line. The delimiter may be quoted in _o_l_d and _n_e_w with a single backslash. If & appears in _n_e_w, it is replaced by _o_l_d. - A single backslash will quote the &. If _o_l_d is null, it is set - to the last _o_l_d substituted, or, if no previous history substi- - tutions took place, the last _s_t_r_i_n_g in a !!??_s_t_r_i_n_g[[??]] search. + A single backslash will quote the &. If _o_l_d is null, it is set + to the last _o_l_d substituted, or, if no previous history substi- + tutions took place, the last _s_t_r_i_n_g in a !!??_s_t_r_i_n_g[[??]] search. If _n_e_w is null, each matching _o_l_d is deleted. && Repeat the previous substitution. gg Cause changes to be applied over the entire event line. This is - used in conjunction with `::ss' (e.g., `::ggss//_o_l_d//_n_e_w//') or `::&&'. - If used with `::ss', any delimiter can be used in place of /, and - the final delimiter is optional if it is the last character of + used in conjunction with `::ss' (e.g., `::ggss//_o_l_d//_n_e_w//') or `::&&'. + If used with `::ss', 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 aa may be used as a synonym for gg. GG Apply the following `ss' or `&&' modifier once to each word in the event line. @@ -4233,56 +4236,56 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS Unless otherwise noted, each builtin command documented in this section as accepting options preceded by -- accepts ---- to signify the end of the options. The ::, ttrruuee, ffaallssee, and tteesstt/[[ builtins do not accept options - and do not treat ---- specially. The eexxiitt, llooggoouutt, rreettuurrnn, bbrreeaakk, ccoonn-- - ttiinnuuee, lleett, and sshhiifftt 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 interpreta- + and do not treat ---- specially. The eexxiitt, llooggoouutt, rreettuurrnn, bbrreeaakk, ccoonn-- + ttiinnuuee, lleett, and sshhiifftt 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 interpreta- tion. :: [_a_r_g_u_m_e_n_t_s] - No effect; the command does nothing beyond expanding _a_r_g_u_m_e_n_t_s + No effect; the command does nothing beyond expanding _a_r_g_u_m_e_n_t_s and performing any specified redirections. The return status is zero. .. _f_i_l_e_n_a_m_e [_a_r_g_u_m_e_n_t_s] ssoouurrccee _f_i_l_e_n_a_m_e [_a_r_g_u_m_e_n_t_s] Read and execute commands from _f_i_l_e_n_a_m_e in the current shell en- - vironment and return the exit status of the last command exe- - cuted from _f_i_l_e_n_a_m_e. If _f_i_l_e_n_a_m_e does not contain a slash, - filenames in PPAATTHH are used to find the directory containing + vironment and return the exit status of the last command exe- + cuted from _f_i_l_e_n_a_m_e. If _f_i_l_e_n_a_m_e does not contain a slash, + filenames in PPAATTHH are used to find the directory containing _f_i_l_e_n_a_m_e. The file searched for in PPAATTHH need not be executable. - When bbaasshh is not in _p_o_s_i_x _m_o_d_e, the current directory is - searched if no file is found in PPAATTHH. If the ssoouurrcceeppaatthh option - to the sshhoopptt builtin command is turned off, the PPAATTHH is not - searched. If any _a_r_g_u_m_e_n_t_s are supplied, they become the posi- - tional parameters when _f_i_l_e_n_a_m_e is executed. Otherwise the po- + When bbaasshh is not in _p_o_s_i_x _m_o_d_e, the current directory is + searched if no file is found in PPAATTHH. If the ssoouurrcceeppaatthh option + to the sshhoopptt builtin command is turned off, the PPAATTHH is not + searched. If any _a_r_g_u_m_e_n_t_s are supplied, they become the posi- + tional parameters when _f_i_l_e_n_a_m_e is executed. Otherwise the po- sitional parameters are unchanged. If the --TT option is enabled, - ssoouurrccee inherits any trap on DDEEBBUUGG; if it is not, any DDEEBBUUGG trap - string is saved and restored around the call to ssoouurrccee, and - ssoouurrccee unsets the DDEEBBUUGG trap while it executes. If --TT is not - set, and the sourced file changes the DDEEBBUUGG trap, the new value - is retained when ssoouurrccee completes. The return status is the - status of the last command exited within the script (0 if no - commands are executed), and false if _f_i_l_e_n_a_m_e is not found or + ssoouurrccee inherits any trap on DDEEBBUUGG; if it is not, any DDEEBBUUGG trap + string is saved and restored around the call to ssoouurrccee, and + ssoouurrccee unsets the DDEEBBUUGG trap while it executes. If --TT is not + set, and the sourced file changes the DDEEBBUUGG trap, the new value + is retained when ssoouurrccee completes. The return status is the + status of the last command exited within the script (0 if no + commands are executed), and false if _f_i_l_e_n_a_m_e is not found or cannot be read. aalliiaass [--pp] [_n_a_m_e[=_v_a_l_u_e] ...] AAlliiaass with no arguments or with the --pp option prints the list of - aliases in the form aalliiaass _n_a_m_e=_v_a_l_u_e on standard output. When - arguments are supplied, an alias is defined for each _n_a_m_e whose - _v_a_l_u_e is given. A trailing space in _v_a_l_u_e causes the next word + aliases in the form aalliiaass _n_a_m_e=_v_a_l_u_e on standard output. When + arguments are supplied, an alias is defined for each _n_a_m_e whose + _v_a_l_u_e is given. A trailing space in _v_a_l_u_e causes the next word to be checked for alias substitution when the alias is expanded. - For each _n_a_m_e in the argument list for which no _v_a_l_u_e is sup- - plied, the name and value of the alias is printed. AAlliiaass re- - turns true unless a _n_a_m_e is given for which no alias has been + For each _n_a_m_e in the argument list for which no _v_a_l_u_e is sup- + plied, the name and value of the alias is printed. AAlliiaass re- + turns true unless a _n_a_m_e is given for which no alias has been defined. bbgg [_j_o_b_s_p_e_c ...] - Resume each suspended job _j_o_b_s_p_e_c in the background, as if it + Resume each suspended job _j_o_b_s_p_e_c in the background, as if it had been started with &&. If _j_o_b_s_p_e_c is not present, the shell's - notion of the _c_u_r_r_e_n_t _j_o_b is used. bbgg _j_o_b_s_p_e_c returns 0 unless - run when job control is disabled or, when run with job control - enabled, any specified _j_o_b_s_p_e_c was not found or was started + notion of the _c_u_r_r_e_n_t _j_o_b is used. bbgg _j_o_b_s_p_e_c returns 0 unless + run when job control is disabled or, when run with job control + enabled, any specified _j_o_b_s_p_e_c was not found or was started without job control. bbiinndd [--mm _k_e_y_m_a_p] [--llppssvvPPSSVVXX] @@ -4291,29 +4294,29 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS bbiinndd [--mm _k_e_y_m_a_p] --xx _k_e_y_s_e_q:_s_h_e_l_l_-_c_o_m_m_a_n_d bbiinndd [--mm _k_e_y_m_a_p] _k_e_y_s_e_q:_f_u_n_c_t_i_o_n_-_n_a_m_e bbiinndd [--mm _k_e_y_m_a_p] _k_e_y_s_e_q:_r_e_a_d_l_i_n_e_-_c_o_m_m_a_n_d - Display current rreeaaddlliinnee key and function bindings, bind a key - sequence to a rreeaaddlliinnee function or macro, or set a rreeaaddlliinnee + Display current rreeaaddlliinnee key and function bindings, bind a key + sequence to a rreeaaddlliinnee function or macro, or set a rreeaaddlliinnee variable. Each non-option argument is a command as it would ap- - pear in _._i_n_p_u_t_r_c, but each binding or command must be passed as + pear in _._i_n_p_u_t_r_c, but each binding or command must be passed as a separate argument; e.g., '"\C-x\C-r": re-read-init-file'. Op- tions, if supplied, have the following meanings: --mm _k_e_y_m_a_p Use _k_e_y_m_a_p as the keymap to be affected by the subsequent bindings. Acceptable _k_e_y_m_a_p names are _e_m_a_c_s_, _e_m_a_c_s_-_s_t_a_n_- - _d_a_r_d_, _e_m_a_c_s_-_m_e_t_a_, _e_m_a_c_s_-_c_t_l_x_, _v_i_, _v_i_-_m_o_v_e_, _v_i_-_c_o_m_m_a_n_d, - and _v_i_-_i_n_s_e_r_t. _v_i is equivalent to _v_i_-_c_o_m_m_a_n_d (_v_i_-_m_o_v_e - is also a synonym); _e_m_a_c_s is equivalent to _e_m_a_c_s_-_s_t_a_n_- + _d_a_r_d_, _e_m_a_c_s_-_m_e_t_a_, _e_m_a_c_s_-_c_t_l_x_, _v_i_, _v_i_-_m_o_v_e_, _v_i_-_c_o_m_m_a_n_d, + and _v_i_-_i_n_s_e_r_t. _v_i is equivalent to _v_i_-_c_o_m_m_a_n_d (_v_i_-_m_o_v_e + is also a synonym); _e_m_a_c_s is equivalent to _e_m_a_c_s_-_s_t_a_n_- _d_a_r_d. --ll List the names of all rreeaaddlliinnee functions. - --pp Display rreeaaddlliinnee function names and bindings in such a + --pp Display rreeaaddlliinnee function names and bindings in such a way that they can be re-read. --PP List current rreeaaddlliinnee function names and bindings. - --ss Display rreeaaddlliinnee key sequences bound to macros and the - strings they output in such a way that they can be re- + --ss Display rreeaaddlliinnee key sequences bound to macros and the + strings they output in such a way that they can be re- read. - --SS Display rreeaaddlliinnee key sequences bound to macros and the + --SS Display rreeaaddlliinnee key sequences bound to macros and the strings they output. - --vv Display rreeaaddlliinnee variable names and values in such a way + --vv Display rreeaaddlliinnee variable names and values in such a way that they can be re-read. --VV List current rreeaaddlliinnee variable names and values. --ff _f_i_l_e_n_a_m_e @@ -4326,181 +4329,181 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS Remove any current binding for _k_e_y_s_e_q. --xx _k_e_y_s_e_q::_s_h_e_l_l_-_c_o_m_m_a_n_d Cause _s_h_e_l_l_-_c_o_m_m_a_n_d to be executed whenever _k_e_y_s_e_q is en- - tered. When _s_h_e_l_l_-_c_o_m_m_a_n_d is executed, the shell sets - the RREEAADDLLIINNEE__LLIINNEE variable to the contents of the rreeaadd-- - lliinnee line buffer and the RREEAADDLLIINNEE__PPOOIINNTT variable to the + tered. When _s_h_e_l_l_-_c_o_m_m_a_n_d is executed, the shell sets + the RREEAADDLLIINNEE__LLIINNEE variable to the contents of the rreeaadd-- + lliinnee line buffer and the RREEAADDLLIINNEE__PPOOIINNTT variable to the current location of the insertion point. If the executed - command changes the value of RREEAADDLLIINNEE__LLIINNEE or RREEAADD-- - LLIINNEE__PPOOIINNTT, those new values will be reflected in the + command changes the value of RREEAADDLLIINNEE__LLIINNEE or RREEAADD-- + LLIINNEE__PPOOIINNTT, those new values will be reflected in the editing state. - --XX List all key sequences bound to shell commands and the + --XX List all key sequences bound to shell commands and the associated commands in a format that can be reused as in- put. - The return value is 0 unless an unrecognized option is given or + The return value is 0 unless an unrecognized option is given or an error occurred. bbrreeaakk [_n] - Exit from within a ffoorr, wwhhiillee, uunnttiill, or sseelleecctt loop. If _n is - specified, break _n levels. _n must be >= 1. If _n is greater - than the number of enclosing loops, all enclosing loops are ex- - ited. The return value is 0 unless _n is not greater than or + Exit from within a ffoorr, wwhhiillee, uunnttiill, or sseelleecctt loop. If _n is + specified, break _n levels. _n must be >= 1. If _n is greater + than the number of enclosing loops, all enclosing loops are ex- + ited. The return value is 0 unless _n is not greater than or equal to 1. bbuuiillttiinn _s_h_e_l_l_-_b_u_i_l_t_i_n [_a_r_g_u_m_e_n_t_s] - Execute the specified shell builtin, passing it _a_r_g_u_m_e_n_t_s, and + Execute the specified shell builtin, passing it _a_r_g_u_m_e_n_t_s, and return its exit status. This is useful when defining a function - whose name is the same as a shell builtin, retaining the func- + whose name is the same as a shell builtin, retaining the func- tionality of the builtin within the function. The ccdd builtin is - commonly redefined this way. The return status is false if + commonly redefined this way. The return status is false if _s_h_e_l_l_-_b_u_i_l_t_i_n is not a shell builtin command. ccaalllleerr [_e_x_p_r] Returns the context of any active subroutine call (a shell func- tion or a script executed with the .. or ssoouurrccee builtins). With- out _e_x_p_r, ccaalllleerr displays the line number and source filename of - the current subroutine call. If a non-negative integer is sup- + the current subroutine call. If a non-negative integer is sup- plied as _e_x_p_r, ccaalllleerr 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 sub- - routine call or _e_x_p_r does not correspond to a valid position in + 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 sub- + routine call or _e_x_p_r does not correspond to a valid position in the call stack. ccdd [--LL|[--PP [--ee]] [-@]] [_d_i_r] - Change the current directory to _d_i_r. if _d_i_r is not supplied, - the value of the HHOOMMEE shell variable is the default. Any addi- + Change the current directory to _d_i_r. if _d_i_r is not supplied, + the value of the HHOOMMEE shell variable is the default. Any addi- tional arguments following _d_i_r are ignored. The variable CCDDPPAATTHH - defines the search path for the directory containing _d_i_r: each - directory name in CCDDPPAATTHH is searched for _d_i_r. Alternative di- - rectory names in CCDDPPAATTHH are separated by a colon (:). A null - directory name in CCDDPPAATTHH is the same as the current directory, + defines the search path for the directory containing _d_i_r: each + directory name in CCDDPPAATTHH is searched for _d_i_r. Alternative di- + rectory names in CCDDPPAATTHH are separated by a colon (:). A null + directory name in CCDDPPAATTHH is the same as the current directory, i.e., ``..''. If _d_i_r begins with a slash (/), then CCDDPPAATTHH is not - used. The --PP option causes ccdd to use the physical directory - structure by resolving symbolic links while traversing _d_i_r and + used. The --PP option causes ccdd to use the physical directory + structure by resolving symbolic links while traversing _d_i_r and before processing instances of _._. in _d_i_r (see also the --PP option to the sseett builtin command); the --LL option forces symbolic links - to be followed by resolving the link after processing instances + to be followed by resolving the link after processing instances of _._. in _d_i_r. If _._. appears in _d_i_r, it is processed by removing - the immediately previous pathname component from _d_i_r, back to a - slash or the beginning of _d_i_r. If the --ee option is supplied - with --PP, and the current working directory cannot be success- - fully determined after a successful directory change, ccdd will - return an unsuccessful status. On systems that support it, the - --@@ option presents the extended attributes associated with a - file as a directory. An argument of -- is converted to $$OOLLDDPPWWDD + the immediately previous pathname component from _d_i_r, back to a + slash or the beginning of _d_i_r. If the --ee option is supplied + with --PP, and the current working directory cannot be success- + fully determined after a successful directory change, ccdd will + return an unsuccessful status. On systems that support it, the + --@@ option presents the extended attributes associated with a + file as a directory. An argument of -- is converted to $$OOLLDDPPWWDD before the directory change is attempted. If a non-empty direc- - tory name from CCDDPPAATTHH is used, or if -- is the first argument, + tory name from CCDDPPAATTHH is used, or if -- is the first argument, and the directory change is successful, the absolute pathname of - the new working directory is written to the standard output. - The return value is true if the directory was successfully + the new working directory is written to the standard output. + The return value is true if the directory was successfully changed; false otherwise. ccoommmmaanndd [--ppVVvv] _c_o_m_m_a_n_d [_a_r_g ...] - Run _c_o_m_m_a_n_d with _a_r_g_s suppressing the normal shell function + Run _c_o_m_m_a_n_d with _a_r_g_s suppressing the normal shell function lookup. Only builtin commands or commands found in the PPAATTHH are - executed. If the --pp option is given, the search for _c_o_m_m_a_n_d is - performed using a default value for PPAATTHH that is guaranteed to - find all of the standard utilities. If either the --VV or --vv op- - tion is supplied, a description of _c_o_m_m_a_n_d is printed. The --vv - option causes a single word indicating the command or filename + executed. If the --pp option is given, the search for _c_o_m_m_a_n_d is + performed using a default value for PPAATTHH that is guaranteed to + find all of the standard utilities. If either the --VV or --vv op- + tion is supplied, a description of _c_o_m_m_a_n_d is printed. The --vv + option causes a single word indicating the command or filename used to invoke _c_o_m_m_a_n_d to be displayed; the --VV option produces a - more verbose description. If the --VV or --vv option is supplied, - the exit status is 0 if _c_o_m_m_a_n_d was found, and 1 if not. If + more verbose description. If the --VV or --vv option is supplied, + the exit status is 0 if _c_o_m_m_a_n_d was found, and 1 if not. If neither option is supplied and an error occurred or _c_o_m_m_a_n_d can- - not be found, the exit status is 127. Otherwise, the exit sta- + not be found, the exit status is 127. Otherwise, the exit sta- tus of the ccoommmmaanndd builtin is the exit status of _c_o_m_m_a_n_d. ccoommppggeenn [_o_p_t_i_o_n] [_w_o_r_d] - Generate possible completion matches for _w_o_r_d according to the - _o_p_t_i_o_ns, which may be any option accepted by the ccoommpplleettee - builtin with the exception of --pp and --rr, and write the matches - to the standard output. When using the --FF or --CC options, the - various shell variables set by the programmable completion fa- + Generate possible completion matches for _w_o_r_d according to the + _o_p_t_i_o_ns, which may be any option accepted by the ccoommpplleettee + builtin with the exception of --pp and --rr, and write the matches + to the standard output. When using the --FF or --CC options, the + various shell variables set by the programmable completion fa- cilities, 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 _w_o_r_d is specified, + tion specification with the same flags. If _w_o_r_d is specified, only those completions matching _w_o_r_d will be displayed. - The return value is true unless an invalid option is supplied, + The return value is true unless an invalid option is supplied, or no matches were generated. - ccoommpplleettee [--aabbccddeeffggjjkkssuuvv] [--oo _c_o_m_p_-_o_p_t_i_o_n] [--DDEEII] [--AA _a_c_t_i_o_n] [--GG _g_l_o_b_- + ccoommpplleettee [--aabbccddeeffggjjkkssuuvv] [--oo _c_o_m_p_-_o_p_t_i_o_n] [--DDEEII] [--AA _a_c_t_i_o_n] [--GG _g_l_o_b_- _p_a_t] [--WW _w_o_r_d_l_i_s_t] - [--FF _f_u_n_c_t_i_o_n] [--CC _c_o_m_m_a_n_d] [--XX _f_i_l_t_e_r_p_a_t] [--PP _p_r_e_f_i_x] [--SS _s_u_f_- + [--FF _f_u_n_c_t_i_o_n] [--CC _c_o_m_m_a_n_d] [--XX _f_i_l_t_e_r_p_a_t] [--PP _p_r_e_f_i_x] [--SS _s_u_f_- _f_i_x] _n_a_m_e [_n_a_m_e _._._.] ccoommpplleettee --pprr [--DDEEII] [_n_a_m_e ...] - Specify how arguments to each _n_a_m_e should be completed. If the - --pp option is supplied, or if no options are supplied, existing - completion specifications are printed in a way that allows them + Specify how arguments to each _n_a_m_e should be completed. If the + --pp option is supplied, or if no options are supplied, existing + completion specifications are printed in a way that allows them to be reused as input. The --rr option removes a completion spec- - ification for each _n_a_m_e, or, if no _n_a_m_es are supplied, all com- + ification for each _n_a_m_e, or, if no _n_a_m_es are supplied, all com- pletion specifications. The --DD option indicates that other sup- - plied options and actions should apply to the ``default'' com- - mand completion; that is, completion attempted on a command for - which no completion has previously been defined. The --EE option - indicates that other supplied options and actions should apply - to ``empty'' command completion; that is, completion attempted - on a blank line. The --II 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 --DD option takes precedence + plied options and actions should apply to the ``default'' com- + mand completion; that is, completion attempted on a command for + which no completion has previously been defined. The --EE option + indicates that other supplied options and actions should apply + to ``empty'' command completion; that is, completion attempted + on a blank line. The --II 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 --DD option takes precedence over --EE, and both take precedence over --II. If any of --DD, --EE, or - --II are supplied, any other _n_a_m_e arguments are ignored; these + --II are supplied, any other _n_a_m_e 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 under PPrrooggrraamm-- + The process of applying these completion specifications when + word completion is attempted is described above under PPrrooggrraamm-- mmaabbllee CCoommpplleettiioonn. - Other options, if specified, have the following meanings. The - arguments to the --GG, --WW, and --XX options (and, if necessary, the - --PP and --SS options) should be quoted to protect them from expan- + Other options, if specified, have the following meanings. The + arguments to the --GG, --WW, and --XX options (and, if necessary, the + --PP and --SS options) should be quoted to protect them from expan- sion before the ccoommpplleettee builtin is invoked. --oo _c_o_m_p_-_o_p_t_i_o_n - The _c_o_m_p_-_o_p_t_i_o_n controls several aspects of the comp- - spec's behavior beyond the simple generation of comple- + The _c_o_m_p_-_o_p_t_i_o_n controls several aspects of the comp- + spec's behavior beyond the simple generation of comple- tions. _c_o_m_p_-_o_p_t_i_o_n may be one of: bbaasshhddeeffaauulltt Perform the rest of the default bbaasshh completions if the compspec generates no matches. - ddeeffaauulltt Use readline's default filename completion if + ddeeffaauulltt Use readline's default filename completion if the compspec generates no matches. ddiirrnnaammeess - Perform directory name completion if the comp- + Perform directory name completion if the comp- spec generates no matches. ffiilleennaammeess - Tell readline that the compspec generates file- - names, so it can perform any filename-specific - processing (like adding a slash to directory - names, quoting special characters, or suppress- - ing trailing spaces). Intended to be used with + Tell readline that the compspec generates file- + names, so it can perform any filename-specific + processing (like adding a slash to directory + names, quoting special characters, or suppress- + ing trailing spaces). Intended to be used with shell functions. - nnooqquuoottee Tell readline not to quote the completed words - if they are filenames (quoting filenames is the + nnooqquuoottee Tell readline not to quote the completed words + if they are filenames (quoting filenames is the default). - nnoossoorrtt Tell readline not to sort the list of possible + nnoossoorrtt Tell readline not to sort the list of possible completions alphabetically. - nnoossppaaccee Tell readline not to append a space (the de- - fault) to words completed at the end of the + nnoossppaaccee Tell readline not to append a space (the de- + fault) to words completed at the end of the line. pplluussddiirrss - After any matches defined by the compspec are + After any matches defined by the compspec are generated, directory name completion is at- tempted and any matches are added to the results of the other actions. --AA _a_c_t_i_o_n - The _a_c_t_i_o_n may be one of the following to generate a + The _a_c_t_i_o_n may be one of the following to generate a list of possible completions: aalliiaass Alias names. May also be specified as --aa. aarrrraayyvvaarr Array variable names. bbiinnddiinngg RReeaaddlliinnee key binding names. - bbuuiillttiinn Names of shell builtin commands. May also be + bbuuiillttiinn Names of shell builtin commands. May also be specified as --bb. ccoommmmaanndd Command names. May also be specified as --cc. ddiirreeccttoorryy @@ -4508,7 +4511,7 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS ddiissaabblleedd Names of disabled shell builtins. eennaabblleedd Names of enabled shell builtins. - eexxppoorrtt Names of exported shell variables. May also be + eexxppoorrtt Names of exported shell variables. May also be specified as --ee. ffiillee File names. May also be specified as --ff. ffuunnccttiioonn @@ -4517,17 +4520,17 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS hheellppttooppiicc Help topics as accepted by the hheellpp builtin. hhoossttnnaammee - Hostnames, as taken from the file specified by + Hostnames, as taken from the file specified by the HHOOSSTTFFIILLEE shell variable. - jjoobb Job names, if job control is active. May also + jjoobb Job names, if job control is active. May also be specified as --jj. - kkeeyywwoorrdd Shell reserved words. May also be specified as + kkeeyywwoorrdd Shell reserved words. May also be specified as --kk. rruunnnniinngg Names of running jobs, if job control is active. sseerrvviiccee Service names. May also be specified as --ss. - sseettoopptt Valid arguments for the --oo option to the sseett + sseettoopptt Valid arguments for the --oo option to the sseett builtin. - sshhoopptt Shell option names as accepted by the sshhoopptt + sshhoopptt Shell option names as accepted by the sshhoopptt builtin. ssiiggnnaall Signal names. ssttooppppeedd Names of stopped jobs, if job control is active. @@ -4536,193 +4539,193 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS Names of all shell variables. May also be spec- ified as --vv. --CC _c_o_m_m_a_n_d - _c_o_m_m_a_n_d is executed in a subshell environment, and its + _c_o_m_m_a_n_d is executed in a subshell environment, and its output is used as the possible completions. --FF _f_u_n_c_t_i_o_n - The shell function _f_u_n_c_t_i_o_n is executed in the current - shell environment. When the function is executed, the + The shell function _f_u_n_c_t_i_o_n is executed in the current + shell environment. When the function is executed, the first argument ($$11) is the name of the command whose ar- guments are being completed, the second argument ($$22) is the word being completed, and the third argument ($$33) is - the word preceding the word being completed on the cur- - rent command line. When it finishes, the possible com- - pletions are retrieved from the value of the CCOOMMPPRREEPPLLYY + the word preceding the word being completed on the cur- + rent command line. When it finishes, the possible com- + pletions are retrieved from the value of the CCOOMMPPRREEPPLLYY array variable. --GG _g_l_o_b_p_a_t - The pathname expansion pattern _g_l_o_b_p_a_t is expanded to + The pathname expansion pattern _g_l_o_b_p_a_t is expanded to generate the possible completions. --PP _p_r_e_f_i_x - _p_r_e_f_i_x is added at the beginning of each possible com- + _p_r_e_f_i_x is added at the beginning of each possible com- pletion after all other options have been applied. --SS _s_u_f_f_i_x _s_u_f_f_i_x is appended to each possible completion after all other options have been applied. --WW _w_o_r_d_l_i_s_t - The _w_o_r_d_l_i_s_t is split using the characters in the IIFFSS - special variable as delimiters, and each resultant word - is expanded. Shell quoting is honored within _w_o_r_d_l_i_s_t, + The _w_o_r_d_l_i_s_t is split using the characters in the IIFFSS + special variable as delimiters, and each resultant word + is expanded. Shell quoting is honored within _w_o_r_d_l_i_s_t, in order to provide a mechanism for the words to contain - shell metacharacters or characters in the value of IIFFSS. - The possible completions are the members of the resul- + shell metacharacters or characters in the value of IIFFSS. + The possible completions are the members of the resul- tant list which match the word being completed. --XX _f_i_l_t_e_r_p_a_t - _f_i_l_t_e_r_p_a_t is a pattern as used for pathname expansion. + _f_i_l_t_e_r_p_a_t 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 _f_i_l_t_e_r_p_a_t is removed from the list. - A leading !! in _f_i_l_t_e_r_p_a_t negates the pattern; in this + ated by the preceding options and arguments, and each + completion matching _f_i_l_t_e_r_p_a_t is removed from the list. + A leading !! in _f_i_l_t_e_r_p_a_t negates the pattern; in this case, any completion not matching _f_i_l_t_e_r_p_a_t is removed. - The return value is true unless an invalid option is supplied, - an option other than --pp or --rr is supplied without a _n_a_m_e argu- - ment, an attempt is made to remove a completion specification + The return value is true unless an invalid option is supplied, + an option other than --pp or --rr is supplied without a _n_a_m_e argu- + ment, an attempt is made to remove a completion specification for a _n_a_m_e for which no specification exists, or an error occurs adding a completion specification. ccoommppoopptt [--oo _o_p_t_i_o_n] [--DDEEII] [++oo _o_p_t_i_o_n] [_n_a_m_e] - Modify completion options for each _n_a_m_e according to the _o_p_- + Modify completion options for each _n_a_m_e according to the _o_p_- _t_i_o_ns, or for the currently-executing completion if no _n_a_m_es are - supplied. If no _o_p_t_i_o_ns are given, display the completion op- - tions for each _n_a_m_e or the current completion. The possible - values of _o_p_t_i_o_n are those valid for the ccoommpplleettee builtin de- - scribed above. The --DD option indicates that other supplied op- - tions should apply to the ``default'' command completion; that - is, completion attempted on a command for which no completion + supplied. If no _o_p_t_i_o_ns are given, display the completion op- + tions for each _n_a_m_e or the current completion. The possible + values of _o_p_t_i_o_n are those valid for the ccoommpplleettee builtin de- + scribed above. The --DD option indicates that other supplied op- + tions should apply to the ``default'' command completion; that + is, completion attempted on a command for which no completion has previously been defined. The --EE option indicates that other - supplied options should apply to ``empty'' command completion; - that is, completion attempted on a blank line. The --II option + supplied options should apply to ``empty'' command completion; + that is, completion attempted on a blank line. The --II option indicates that other supplied options should apply to completion - on the initial non-assignment word on the line, or after a com- - mand delimiter such as ;; or ||, which is usually command name + on the initial non-assignment word on the line, or after a com- + mand delimiter such as ;; or ||, which is usually command name completion. - The return value is true unless an invalid option is supplied, + The return value is true unless an invalid option is supplied, an attempt is made to modify the options for a _n_a_m_e for which no completion specification exists, or an output error occurs. ccoonnttiinnuuee [_n] Resume the next iteration of the enclosing ffoorr, wwhhiillee, uunnttiill, or - sseelleecctt loop. If _n is specified, resume at the _nth enclosing - loop. _n must be >= 1. If _n is greater than the number of en- - closing loops, the last enclosing loop (the ``top-level'' loop) - is resumed. The return value is 0 unless _n is not greater than + sseelleecctt loop. If _n is specified, resume at the _nth enclosing + loop. _n must be >= 1. If _n is greater than the number of en- + closing loops, the last enclosing loop (the ``top-level'' loop) + is resumed. The return value is 0 unless _n is not greater than or equal to 1. ddeeccllaarree [--aaAAffFFggiillnnrrttuuxx] [--pp] [_n_a_m_e[=_v_a_l_u_e] ...] ttyyppeesseett [--aaAAffFFggiillnnrrttuuxx] [--pp] [_n_a_m_e[=_v_a_l_u_e] ...] - Declare variables and/or give them attributes. If no _n_a_m_es are - given then display the values of variables. The --pp option will + Declare variables and/or give them attributes. If no _n_a_m_es are + given then display the values of variables. The --pp option will display the attributes and values of each _n_a_m_e. When --pp is used - with _n_a_m_e arguments, additional options, other than --ff and --FF, - are ignored. When --pp is supplied without _n_a_m_e arguments, it - will display the attributes and values of all variables having + with _n_a_m_e arguments, additional options, other than --ff and --FF, + are ignored. When --pp is supplied without _n_a_m_e arguments, it + will display the attributes and values of all variables having the attributes specified by the additional options. If no other - options are supplied with --pp, ddeeccllaarree will display the at- - tributes and values of all shell variables. The --ff option will + options are supplied with --pp, ddeeccllaarree will display the at- + tributes and values of all shell variables. The --ff option will restrict the display to shell functions. The --FF option inhibits - the display of function definitions; only the function name and + the display of function definitions; only the function name and attributes are printed. If the eexxttddeebbuugg shell option is enabled - using sshhoopptt, the source file name and line number where each - _n_a_m_e is defined are displayed as well. The --FF option implies + using sshhoopptt, the source file name and line number where each + _n_a_m_e is defined are displayed as well. The --FF option implies --ff. The --gg option forces variables to be created or modified at the global scope, even when ddeeccllaarree is executed in a shell func- - tion. It is ignored in all other cases. The following options - can be used to restrict output to variables with the specified + tion. It is ignored in all other cases. The following options + can be used to restrict output to variables with the specified attribute or to give variables attributes: - --aa Each _n_a_m_e is an indexed array variable (see AArrrraayyss + --aa Each _n_a_m_e is an indexed array variable (see AArrrraayyss above). - --AA Each _n_a_m_e is an associative array variable (see AArrrraayyss + --AA Each _n_a_m_e is an associative array variable (see AArrrraayyss above). --ff Use function names only. --ii The variable is treated as an integer; arithmetic evalua- - tion (see AARRIITTHHMMEETTIICC EEVVAALLUUAATTIIOONN above) is performed when + tion (see AARRIITTHHMMEETTIICC EEVVAALLUUAATTIIOONN above) is performed when the variable is assigned a value. - --ll When the variable is assigned a value, all upper-case - characters are converted to lower-case. The upper-case + --ll When the variable is assigned a value, all upper-case + characters are converted to lower-case. The upper-case attribute is disabled. - --nn Give each _n_a_m_e the _n_a_m_e_r_e_f attribute, making it a name - reference to another variable. That other variable is - defined by the value of _n_a_m_e. All references, assign- - ments, and attribute modifications to _n_a_m_e, except those - using or changing the --nn attribute itself, are performed - on the variable referenced by _n_a_m_e's value. The nameref + --nn Give each _n_a_m_e the _n_a_m_e_r_e_f attribute, making it a name + reference to another variable. That other variable is + defined by the value of _n_a_m_e. All references, assign- + ments, and attribute modifications to _n_a_m_e, except those + using or changing the --nn attribute itself, are performed + on the variable referenced by _n_a_m_e's value. The nameref attribute cannot be applied to array variables. --rr Make _n_a_m_es readonly. These names cannot then be assigned values by subsequent assignment statements or unset. --tt Give each _n_a_m_e the _t_r_a_c_e attribute. Traced functions in- - herit the DDEEBBUUGG and RREETTUURRNN traps from the calling shell. + herit the DDEEBBUUGG and RREETTUURRNN traps from the calling shell. The trace attribute has no special meaning for variables. - --uu When the variable is assigned a value, all lower-case - characters are converted to upper-case. The lower-case + --uu When the variable is assigned a value, all lower-case + characters are converted to upper-case. The lower-case attribute is disabled. - --xx Mark _n_a_m_es for export to subsequent commands via the en- + --xx Mark _n_a_m_es for export to subsequent commands via the en- vironment. - Using `+' instead of `-' turns off the attribute instead, with - the exceptions that ++aa and ++AA may not be used to destroy array - variables and ++rr will not remove the readonly attribute. When + Using `+' instead of `-' turns off the attribute instead, with + the exceptions that ++aa and ++AA may not be used to destroy array + variables and ++rr will not remove the readonly attribute. When used in a function, ddeeccllaarree and ttyyppeesseett make each _n_a_m_e local, as - with the llooccaall command, unless the --gg option is supplied. If a - variable name is followed by =_v_a_l_u_e, the value of the variable - is set to _v_a_l_u_e. When using --aa or --AA and the compound assign- - ment syntax to create array variables, additional attributes do - not take effect until subsequent assignments. The return value + with the llooccaall command, unless the --gg option is supplied. If a + variable name is followed by =_v_a_l_u_e, the value of the variable + is set to _v_a_l_u_e. When using --aa or --AA and the compound assign- + ment 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 attempt is made to as- sign a value to an array variable without using the compound as- - signment syntax (see AArrrraayyss above), one of the _n_a_m_e_s is not a - valid shell variable name, an attempt is made to turn off read- - only status for a readonly variable, an attempt is made to turn + signment syntax (see AArrrraayyss above), one of the _n_a_m_e_s is not a + valid shell variable name, an attempt is made to turn off read- + only 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 --ff. ddiirrss [[--ccllppvv]] [[++_n]] [[--_n]] - Without options, displays the list of currently remembered di- - rectories. The default display is on a single line with direc- - tory names separated by spaces. Directories are added to the - list with the ppuusshhdd command; the ppooppdd command removes entries + Without options, displays the list of currently remembered di- + rectories. The default display is on a single line with direc- + tory names separated by spaces. Directories are added to the + list with the ppuusshhdd command; the ppooppdd command removes entries from the list. The current directory is always the first direc- tory in the stack. - --cc Clears the directory stack by deleting all of the en- + --cc Clears the directory stack by deleting all of the en- tries. - --ll Produces a listing using full pathnames; the default + --ll Produces a listing using full pathnames; the default listing format uses a tilde to denote the home directory. --pp Print the directory stack with one entry per line. - --vv Print the directory stack with one entry per line, pre- + --vv Print the directory stack with one entry per line, pre- fixing each entry with its index in the stack. ++_n Displays the _nth entry counting from the left of the list shown by ddiirrss when invoked without options, starting with zero. - --_n Displays the _nth entry counting from the right of the + --_n Displays the _nth entry counting from the right of the list shown by ddiirrss when invoked without options, starting with zero. - The return value is 0 unless an invalid option is supplied or _n + The return value is 0 unless an invalid option is supplied or _n indexes beyond the end of the directory stack. ddiissoowwnn [--aarr] [--hh] [_j_o_b_s_p_e_c ... | _p_i_d ... ] - Without options, remove each _j_o_b_s_p_e_c from the table of active - jobs. If _j_o_b_s_p_e_c is not present, and neither the --aa nor the --rr - option is supplied, the _c_u_r_r_e_n_t _j_o_b is used. If the --hh option - is given, each _j_o_b_s_p_e_c is not removed from the table, but is - marked so that SSIIGGHHUUPP is not sent to the job if the shell re- + Without options, remove each _j_o_b_s_p_e_c from the table of active + jobs. If _j_o_b_s_p_e_c is not present, and neither the --aa nor the --rr + option is supplied, the _c_u_r_r_e_n_t _j_o_b is used. If the --hh option + is given, each _j_o_b_s_p_e_c is not removed from the table, but is + marked so that SSIIGGHHUUPP is not sent to the job if the shell re- ceives a SSIIGGHHUUPP. If no _j_o_b_s_p_e_c is supplied, the --aa option means - to remove or mark all jobs; the --rr option without a _j_o_b_s_p_e_c ar- + to remove or mark all jobs; the --rr option without a _j_o_b_s_p_e_c ar- gument restricts operation to running jobs. The return value is 0 unless a _j_o_b_s_p_e_c does not specify a valid job. eecchhoo [--nneeEE] [_a_r_g ...] - Output the _a_r_gs, separated by spaces, followed by a newline. - The return status is 0 unless a write error occurs. If --nn is + Output the _a_r_gs, separated by spaces, followed by a newline. + The return status is 0 unless a write error occurs. If --nn is specified, the trailing newline is suppressed. If the --ee option - is given, interpretation of the following backslash-escaped - characters is enabled. The --EE option disables the interpreta- - tion of these escape characters, even on systems where they are - interpreted by default. The xxppgg__eecchhoo shell option may be used - to dynamically determine whether or not eecchhoo expands these es- - cape characters by default. eecchhoo does not interpret ---- to mean - the end of options. eecchhoo interprets the following escape se- + is given, interpretation of the following backslash-escaped + characters is enabled. The --EE option disables the interpreta- + tion of these escape characters, even on systems where they are + interpreted by default. The xxppgg__eecchhoo shell option may be used + to dynamically determine whether or not eecchhoo expands these es- + cape characters by default. eecchhoo does not interpret ---- to mean + the end of options. eecchhoo interprets the following escape se- quences: \\aa alert (bell) \\bb backspace @@ -4735,191 +4738,191 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS \\tt horizontal tab \\vv vertical tab \\\\ backslash - \\00_n_n_n the eight-bit character whose value is the octal value + \\00_n_n_n the eight-bit character whose value is the octal value _n_n_n (zero to three octal digits) - \\xx_H_H the eight-bit character whose value is the hexadecimal + \\xx_H_H the eight-bit character whose value is the hexadecimal value _H_H (one or two hex digits) - \\uu_H_H_H_H the Unicode (ISO/IEC 10646) character whose value is the + \\uu_H_H_H_H the Unicode (ISO/IEC 10646) character whose value is the hexadecimal value _H_H_H_H (one to four hex digits) \\UU_H_H_H_H_H_H_H_H - the Unicode (ISO/IEC 10646) character whose value is the + the Unicode (ISO/IEC 10646) character whose value is the hexadecimal value _H_H_H_H_H_H_H_H (one to eight hex digits) eennaabbllee [--aa] [--ddnnppss] [--ff _f_i_l_e_n_a_m_e] [_n_a_m_e ...] - Enable and disable builtin shell commands. Disabling a builtin + Enable and disable builtin shell commands. Disabling a builtin allows a disk command 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 disk commands. - If --nn is used, each _n_a_m_e is disabled; otherwise, _n_a_m_e_s are en- - abled. For example, to use the tteesstt binary found via the PPAATTHH - instead of the shell builtin version, run ``enable -n test''. - The --ff option means to load the new builtin command _n_a_m_e from + to be executed without specifying a full pathname, even though + the shell normally searches for builtins before disk commands. + If --nn is used, each _n_a_m_e is disabled; otherwise, _n_a_m_e_s are en- + abled. For example, to use the tteesstt binary found via the PPAATTHH + instead of the shell builtin version, run ``enable -n test''. + The --ff option means to load the new builtin command _n_a_m_e from shared object _f_i_l_e_n_a_m_e, on systems that support dynamic loading. - The --dd option will delete a builtin previously loaded with --ff. + The --dd option will delete a builtin previously loaded with --ff. If no _n_a_m_e arguments are given, or if the --pp option is supplied, a list of shell builtins is printed. With no other option argu- - ments, the list consists of all enabled shell builtins. If --nn - is supplied, only disabled builtins are printed. If --aa is sup- - plied, the list printed includes all builtins, with an indica- - tion of whether or not each is enabled. If --ss is supplied, the - output is restricted to the POSIX _s_p_e_c_i_a_l builtins. The return - value is 0 unless a _n_a_m_e is not a shell builtin or there is an + ments, the list consists of all enabled shell builtins. If --nn + is supplied, only disabled builtins are printed. If --aa is sup- + plied, the list printed includes all builtins, with an indica- + tion of whether or not each is enabled. If --ss is supplied, the + output is restricted to the POSIX _s_p_e_c_i_a_l builtins. The return + value is 0 unless a _n_a_m_e is not a shell builtin or there is an error loading a new builtin from a shared object. eevvaall [_a_r_g ...] - The _a_r_gs are read and concatenated together into a single com- - mand. This command is then read and executed by the shell, and - its exit status is returned as the value of eevvaall. If there are + The _a_r_gs are read and concatenated together into a single com- + mand. This command is then read and executed by the shell, and + its exit status is returned as the value of eevvaall. If there are no _a_r_g_s, or only null arguments, eevvaall returns 0. eexxeecc [--ccll] [--aa _n_a_m_e] [_c_o_m_m_a_n_d [_a_r_g_u_m_e_n_t_s]] - If _c_o_m_m_a_n_d is specified, it replaces the shell. No new process - is created. The _a_r_g_u_m_e_n_t_s become the arguments to _c_o_m_m_a_n_d. If + If _c_o_m_m_a_n_d is specified, it replaces the shell. No new process + is created. The _a_r_g_u_m_e_n_t_s become the arguments to _c_o_m_m_a_n_d. If the --ll option is supplied, the shell places a dash at the begin- ning of the zeroth argument passed to _c_o_m_m_a_n_d. This is what _l_o_- - _g_i_n(1) does. The --cc option causes _c_o_m_m_a_n_d to be executed with - an empty environment. If --aa is supplied, the shell passes _n_a_m_e + _g_i_n(1) does. The --cc option causes _c_o_m_m_a_n_d to be executed with + an empty environment. If --aa is supplied, the shell passes _n_a_m_e as the zeroth argument to the executed command. If _c_o_m_m_a_n_d can- - not be executed for some reason, a non-interactive shell exits, - unless the eexxeeccffaaiill shell option is enabled. In that case, it - returns failure. An interactive shell returns failure if the - file cannot be executed. A subshell exits unconditionally if - eexxeecc fails. If _c_o_m_m_a_n_d is not specified, any redirections take - effect in the current shell, and the return status is 0. If + not be executed for some reason, a non-interactive shell exits, + unless the eexxeeccffaaiill shell option is enabled. In that case, it + returns failure. An interactive shell returns failure if the + file cannot be executed. A subshell exits unconditionally if + eexxeecc fails. If _c_o_m_m_a_n_d is not specified, any redirections take + effect in the current shell, and the return status is 0. If there is a redirection error, the return status is 1. eexxiitt [_n] - Cause the shell to exit with a status of _n. If _n is omitted, + Cause the shell to exit with a status of _n. If _n is omitted, the exit status is that of the last command executed. A trap on EEXXIITT is executed before the shell terminates. eexxppoorrtt [--ffnn] [_n_a_m_e[=_w_o_r_d]] ... eexxppoorrtt --pp - The supplied _n_a_m_e_s are marked for automatic export to the envi- - ronment of subsequently executed commands. If the --ff option is - given, the _n_a_m_e_s refer to functions. If no _n_a_m_e_s are given, or - if the --pp option is supplied, a list of names of all exported - variables is printed. The --nn option causes the export property + The supplied _n_a_m_e_s are marked for automatic export to the envi- + ronment of subsequently executed commands. If the --ff option is + given, the _n_a_m_e_s refer to functions. If no _n_a_m_e_s are given, or + if the --pp option is supplied, a list of names of all exported + variables is printed. The --nn option causes the export property to be removed from each _n_a_m_e. If a variable name is followed by =_w_o_r_d, the value of the variable is set to _w_o_r_d. eexxppoorrtt returns an exit status of 0 unless an invalid option is encountered, one - of the _n_a_m_e_s is not a valid shell variable name, or --ff is sup- + of the _n_a_m_e_s is not a valid shell variable name, or --ff is sup- plied with a _n_a_m_e that is not a function. ffcc [--ee _e_n_a_m_e] [--llnnrr] [_f_i_r_s_t] [_l_a_s_t] ffcc --ss [_p_a_t=_r_e_p] [_c_m_d] - The first form selects a range of commands from _f_i_r_s_t to _l_a_s_t - from the history list and displays or edits and re-executes - them. _F_i_r_s_t and _l_a_s_t 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). If _l_a_s_t is not + The first form selects a range of commands from _f_i_r_s_t to _l_a_s_t + from the history list and displays or edits and re-executes + them. _F_i_r_s_t and _l_a_s_t 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). If _l_a_s_t is not specified, it is set to the current command for listing (so that - ``fc -l -10'' prints the last 10 commands) and to _f_i_r_s_t other- + ``fc -l -10'' prints the last 10 commands) and to _f_i_r_s_t other- wise. If _f_i_r_s_t is not specified, it is set to the previous com- mand for editing and -16 for listing. - The --nn option suppresses the command numbers when listing. The - --rr option reverses the order of the commands. If the --ll option - is given, the commands are listed on standard output. Other- - wise, the editor given by _e_n_a_m_e is invoked on a file containing - those commands. If _e_n_a_m_e is not given, the value of the FFCCEEDDIITT - variable is used, and the value of EEDDIITTOORR if FFCCEEDDIITT is not set. - If neither variable is set, _v_i is used. When editing is com- + The --nn option suppresses the command numbers when listing. The + --rr option reverses the order of the commands. If the --ll option + is given, the commands are listed on standard output. Other- + wise, the editor given by _e_n_a_m_e is invoked on a file containing + those commands. If _e_n_a_m_e is not given, the value of the FFCCEEDDIITT + variable is used, and the value of EEDDIITTOORR if FFCCEEDDIITT is not set. + If neither variable is set, _v_i is used. When editing is com- plete, the edited commands are echoed and executed. - In the second form, _c_o_m_m_a_n_d is re-executed after each instance - of _p_a_t is replaced by _r_e_p. _C_o_m_m_a_n_d is interpreted the same as - _f_i_r_s_t above. A useful alias to use with this is ``r="fc -s"'', - so that typing ``r cc'' runs the last command beginning with + In the second form, _c_o_m_m_a_n_d is re-executed after each instance + of _p_a_t is replaced by _r_e_p. _C_o_m_m_a_n_d is interpreted the same as + _f_i_r_s_t above. A useful alias to use with this 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 0 unless an in- - valid option is encountered or _f_i_r_s_t or _l_a_s_t specify history - lines out of range. If the --ee option is supplied, the return + If the first form is used, the return value is 0 unless an in- + valid option is encountered or _f_i_r_s_t or _l_a_s_t specify history + lines out of range. If the --ee option is supplied, the return value is the value of the last command executed or failure if an error occurs with the temporary file of commands. If the second - form is used, the return status is that of the command re-exe- - cuted, unless _c_m_d does not specify a valid history line, in + form is used, the return status is that of the command re-exe- + cuted, unless _c_m_d does not specify a valid history line, in which case ffcc returns failure. ffgg [_j_o_b_s_p_e_c] - Resume _j_o_b_s_p_e_c in the foreground, and make it the current job. + Resume _j_o_b_s_p_e_c in the foreground, and make it the current job. If _j_o_b_s_p_e_c is not present, the shell's notion of the _c_u_r_r_e_n_t _j_o_b - is used. The return value is that of the command placed into - the foreground, or failure if run when job control is disabled + is used. The return value is that of the command placed into + the foreground, or failure if run when job control is disabled or, when run with job control enabled, if _j_o_b_s_p_e_c does not spec- - ify a valid job or _j_o_b_s_p_e_c specifies a job that was started + ify a valid job or _j_o_b_s_p_e_c specifies a job that was started without job control. ggeettooppttss _o_p_t_s_t_r_i_n_g _n_a_m_e [_a_r_g _._._.] - ggeettooppttss is used by shell procedures to parse positional parame- - ters. _o_p_t_s_t_r_i_n_g contains the option characters to be recog- - nized; if a character is followed by a colon, the option is ex- + ggeettooppttss is used by shell procedures to parse positional parame- + ters. _o_p_t_s_t_r_i_n_g contains the option characters to be recog- + nized; if a character is followed by a colon, the option is ex- pected 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, ggeettooppttss - places the next option in the shell variable _n_a_m_e, initializing + white space. The colon and question mark characters may not be + used as option characters. Each time it is invoked, ggeettooppttss + places the next option in the shell variable _n_a_m_e, initializing _n_a_m_e if it does not exist, and the index of the next argument to be processed into the variable OOPPTTIINNDD. OOPPTTIINNDD is initialized to 1 each time the shell or a shell script is invoked. When an op- tion requires an argument, ggeettooppttss places that argument into the variable OOPPTTAARRGG. The shell does not reset OOPPTTIINNDD automatically; - it must be manually reset between multiple calls to ggeettooppttss - within the same shell invocation if a new set of parameters is + it must be manually reset between multiple calls to ggeettooppttss + within the same shell invocation if a new set of parameters is to be used. When the end of options is encountered, ggeettooppttss exits with a re- turn value greater than zero. OOPPTTIINNDD is set to the index of the first non-option argument, and _n_a_m_e is set to ?. - ggeettooppttss normally parses the positional parameters, but if more - arguments are supplied as _a_r_g values, ggeettooppttss parses those in- + ggeettooppttss normally parses the positional parameters, but if more + arguments are supplied as _a_r_g values, ggeettooppttss parses those in- stead. - ggeettooppttss can report errors in two ways. If the first character - of _o_p_t_s_t_r_i_n_g is a colon, _s_i_l_e_n_t error reporting is used. In - normal operation, diagnostic messages are printed when invalid - options or missing option arguments are encountered. If the - variable OOPPTTEERRRR is set to 0, no error messages will be dis- + ggeettooppttss can report errors in two ways. If the first character + of _o_p_t_s_t_r_i_n_g is a colon, _s_i_l_e_n_t error reporting is used. In + normal operation, diagnostic messages are printed when invalid + options or missing option arguments are encountered. If the + variable OOPPTTEERRRR is set to 0, no error messages will be dis- played, even if the first character of _o_p_t_s_t_r_i_n_g is not a colon. If an invalid option is seen, ggeettooppttss places ? into _n_a_m_e and, if - not silent, prints an error message and unsets OOPPTTAARRGG. If - ggeettooppttss is silent, the option character found is placed in OOPP-- + not silent, prints an error message and unsets OOPPTTAARRGG. If + ggeettooppttss is silent, the option character found is placed in OOPP-- TTAARRGG and no diagnostic message is printed. - If a required argument is not found, and ggeettooppttss is not silent, - a question mark (??) is placed in _n_a_m_e, OOPPTTAARRGG is unset, and a - diagnostic message is printed. If ggeettooppttss is silent, then a - colon (::) is placed in _n_a_m_e and OOPPTTAARRGG is set to the option + If a required argument is not found, and ggeettooppttss is not silent, + a question mark (??) is placed in _n_a_m_e, OOPPTTAARRGG is unset, and a + diagnostic message is printed. If ggeettooppttss is silent, then a + colon (::) is placed in _n_a_m_e and OOPPTTAARRGG is set to the option character found. - ggeettooppttss returns true if an option, specified or unspecified, is + ggeettooppttss returns true if an option, specified or unspecified, is found. It returns false if the end of options is encountered or an error occurs. hhaasshh [--llrr] [--pp _f_i_l_e_n_a_m_e] [--ddtt] [_n_a_m_e] Each time hhaasshh is invoked, the full pathname of the command _n_a_m_e - is determined by searching the directories in $$PPAATTHH and remem- + is determined by searching the directories in $$PPAATTHH and remem- bered. Any previously-remembered pathname is discarded. If the --pp option is supplied, no path search is performed, and _f_i_l_e_n_a_m_e - is used as the full filename of the command. The --rr option + is used as the full filename of the command. The --rr option causes the shell to forget all remembered locations. The --dd op- - tion causes the shell to forget the remembered location of each - _n_a_m_e. If the --tt option is supplied, the full pathname to which - each _n_a_m_e corresponds is printed. If multiple _n_a_m_e arguments + tion causes the shell to forget the remembered location of each + _n_a_m_e. If the --tt option is supplied, the full pathname to which + each _n_a_m_e corresponds is printed. If multiple _n_a_m_e arguments are supplied with --tt, the _n_a_m_e is printed before the hashed full pathname. The --ll option causes output to be displayed in a for- - mat that may be reused as input. If no arguments are given, or + mat that may be reused as input. If no arguments are given, or if only --ll is supplied, information about remembered commands is - printed. The return status is true unless a _n_a_m_e is not found + printed. The return status is true unless a _n_a_m_e is not found or an invalid option is supplied. hheellpp [--ddmmss] [_p_a_t_t_e_r_n] - Display helpful information about builtin commands. If _p_a_t_t_e_r_n - is specified, hheellpp gives detailed help on all commands matching - _p_a_t_t_e_r_n; otherwise help for all the builtins and shell control + Display helpful information about builtin commands. If _p_a_t_t_e_r_n + is specified, hheellpp gives detailed help on all commands matching + _p_a_t_t_e_r_n; otherwise help for all the builtins and shell control structures is printed. --dd Display a short description of each _p_a_t_t_e_r_n --mm Display the description of each _p_a_t_t_e_r_n in a manpage-like @@ -4937,53 +4940,53 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS hhiissttoorryy --ss _a_r_g [_a_r_g _._._.] With no options, display the command history list with line num- bers. Lines listed with a ** have been modified. An argument of - _n lists only the last _n lines. If the shell variable HHIISSTTTTIIMMEE-- - FFOORRMMAATT is set and not null, it is used as a format string for - _s_t_r_f_t_i_m_e(3) to display the time stamp associated with each dis- - played history entry. No intervening blank is printed between - the formatted time stamp and the history line. If _f_i_l_e_n_a_m_e is - supplied, it is used as the name of the history file; if not, - the value of HHIISSTTFFIILLEE is used. Options, if supplied, have the + _n lists only the last _n lines. If the shell variable HHIISSTTTTIIMMEE-- + FFOORRMMAATT is set and not null, it is used as a format string for + _s_t_r_f_t_i_m_e(3) to display the time stamp associated with each dis- + played history entry. No intervening blank is printed between + the formatted time stamp and the history line. If _f_i_l_e_n_a_m_e is + supplied, it is used as the name of the history file; if not, + the value of HHIISSTTFFIILLEE is used. Options, if supplied, have the following meanings: --cc Clear the history list by deleting all the entries. --dd _o_f_f_s_e_t - Delete the history entry at position _o_f_f_s_e_t. If _o_f_f_s_e_t + Delete the history entry at position _o_f_f_s_e_t. If _o_f_f_s_e_t 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 + back from the end of the history, and an index of -1 refers to the current hhiissttoorryy --dd command. --dd _s_t_a_r_t-_e_n_d - Delete the history entries between positions _s_t_a_r_t and - _e_n_d, inclusive. Positive and negative values for _s_t_a_r_t + Delete the history entries between positions _s_t_a_r_t and + _e_n_d, inclusive. Positive and negative values for _s_t_a_r_t and _e_n_d are interpreted as described above. - --aa Append the ``new'' history lines to the history file. - These are history lines entered since the beginning of + --aa Append the ``new'' history lines to the history file. + These are history lines entered since the beginning of the current bbaasshh session, but not already appended to the history file. - --nn Read the history lines not already read from the history - file into the current history list. These are lines ap- - pended to the history file since the beginning of the + --nn Read the history lines not already read from the history + file into the current history list. These are lines ap- + pended to the history file since the beginning of the current bbaasshh session. - --rr Read the contents of the history file and append them to + --rr Read the contents of the history file and append them to the current history list. --ww Write the current history list to the history file, over- writing the history file's contents. - --pp Perform history substitution on the following _a_r_g_s and - display the result on the standard output. Does not - store the results in the history list. Each _a_r_g must be + --pp Perform history substitution on the following _a_r_g_s and + display the result on the standard output. Does not + store the results in the history list. Each _a_r_g must be quoted to disable normal history expansion. - --ss Store the _a_r_g_s in the history list as a single entry. - The last command in the history list is removed before + --ss Store the _a_r_g_s in the history list as a single entry. + The last command in the history list is removed before the _a_r_g_s are added. - If the HHIISSTTTTIIMMEEFFOORRMMAATT variable is set, the time stamp informa- - tion associated with each history entry is written to the his- - tory file, marked with the history comment character. When the - history file is read, lines beginning with the history comment - character followed immediately by a digit are interpreted as + If the HHIISSTTTTIIMMEEFFOORRMMAATT variable is set, the time stamp informa- + tion associated with each history entry is written to the his- + tory file, marked with the history comment character. 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 _o_f_f_s_e_t is sup- + reading or writing the history file, an invalid _o_f_f_s_e_t is sup- plied as an argument to --dd, or the history expansion supplied as an argument to --pp fails. @@ -4992,15 +4995,15 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS The first form lists the active jobs. The options have the fol- lowing meanings: --ll List process IDs in addition to the normal information. - --nn Display information only about jobs that have changed + --nn Display information only about jobs that have changed status since the user was last notified of their status. - --pp List only the process ID of the job's process group + --pp List only the process ID of the job's process group leader. --rr Display only running jobs. --ss Display only stopped jobs. - If _j_o_b_s_p_e_c is given, output is restricted to information about - that job. The return status is 0 unless an invalid option is + If _j_o_b_s_p_e_c is given, output is restricted to information about + that job. The return status is 0 unless an invalid option is encountered or an invalid _j_o_b_s_p_e_c is supplied. If the --xx option is supplied, jjoobbss replaces any _j_o_b_s_p_e_c found in @@ -5009,225 +5012,225 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS kkiillll [--ss _s_i_g_s_p_e_c | --nn _s_i_g_n_u_m | --_s_i_g_s_p_e_c] [_p_i_d | _j_o_b_s_p_e_c] ... kkiillll --ll|--LL [_s_i_g_s_p_e_c | _e_x_i_t___s_t_a_t_u_s] - Send the signal named by _s_i_g_s_p_e_c or _s_i_g_n_u_m to the processes - named by _p_i_d or _j_o_b_s_p_e_c. _s_i_g_s_p_e_c is either a case-insensitive - signal name such as SSIIGGKKIILLLL (with or without the SSIIGG prefix) or - a signal number; _s_i_g_n_u_m is a signal number. If _s_i_g_s_p_e_c is not - present, then SSIIGGTTEERRMM is assumed. An argument of --ll lists the - signal names. If any arguments are supplied when --ll is given, - the names of the signals corresponding to the arguments are + Send the signal named by _s_i_g_s_p_e_c or _s_i_g_n_u_m to the processes + named by _p_i_d or _j_o_b_s_p_e_c. _s_i_g_s_p_e_c is either a case-insensitive + signal name such as SSIIGGKKIILLLL (with or without the SSIIGG prefix) or + a signal number; _s_i_g_n_u_m is a signal number. If _s_i_g_s_p_e_c is not + present, then SSIIGGTTEERRMM is assumed. An argument of --ll lists the + signal names. If any arguments are supplied when --ll is given, + the names of the signals corresponding to the arguments are listed, and the return status is 0. The _e_x_i_t___s_t_a_t_u_s argument to - --ll is a number specifying either a signal number or the exit - status of a process terminated by a signal. The --LL option is - equivalent to --ll. kkiillll returns true if at least one signal was + --ll is a number specifying either a signal number or the exit + status of a process terminated by a signal. The --LL option is + equivalent to --ll. kkiillll returns true if at least one signal was successfully sent, or false if an error occurs or an invalid op- tion is encountered. lleett _a_r_g [_a_r_g ...] Each _a_r_g is an arithmetic expression to be evaluated (see AARRIITTHH-- - MMEETTIICC EEVVAALLUUAATTIIOONN above). If the last _a_r_g evaluates to 0, lleett + MMEETTIICC EEVVAALLUUAATTIIOONN above). If the last _a_r_g evaluates to 0, lleett returns 1; 0 is returned otherwise. llooccaall [_o_p_t_i_o_n] [_n_a_m_e[=_v_a_l_u_e] ... | - ] - For each argument, a local variable named _n_a_m_e is created, and - assigned _v_a_l_u_e. The _o_p_t_i_o_n can be any of the options accepted + For each argument, a local variable named _n_a_m_e is created, and + assigned _v_a_l_u_e. The _o_p_t_i_o_n can be any of the options accepted by ddeeccllaarree. When llooccaall is used within a function, it causes the - variable _n_a_m_e to have a visible scope restricted to that func- - tion and its children. If _n_a_m_e is -, the set of shell options - is made local to the function in which llooccaall is invoked: shell - options changed using the sseett builtin inside the function are - restored to their original values when the function returns. - With no operands, llooccaall writes a list of local variables to the - standard output. It is an error to use llooccaall when not within a + variable _n_a_m_e to have a visible scope restricted to that func- + tion and its children. If _n_a_m_e is -, the set of shell options + is made local to the function in which llooccaall is invoked: shell + options changed using the sseett builtin inside the function are + restored to their original values when the function returns. + With no operands, llooccaall writes a list of local variables to the + standard output. It is an error to use llooccaall when not within a function. The return status is 0 unless llooccaall is used outside a - function, an invalid _n_a_m_e is supplied, or _n_a_m_e is a readonly + function, an invalid _n_a_m_e is supplied, or _n_a_m_e is a readonly variable. llooggoouutt Exit a login shell. - mmaappffiillee [--dd _d_e_l_i_m] [--nn _c_o_u_n_t] [--OO _o_r_i_g_i_n] [--ss _c_o_u_n_t] [--tt] [--uu _f_d] [--CC + mmaappffiillee [--dd _d_e_l_i_m] [--nn _c_o_u_n_t] [--OO _o_r_i_g_i_n] [--ss _c_o_u_n_t] [--tt] [--uu _f_d] [--CC _c_a_l_l_b_a_c_k] [--cc _q_u_a_n_t_u_m] [_a_r_r_a_y] rreeaaddaarrrraayy [--dd _d_e_l_i_m] [--nn _c_o_u_n_t] [--OO _o_r_i_g_i_n] [--ss _c_o_u_n_t] [--tt] [--uu _f_d] [--CC _c_a_l_l_b_a_c_k] [--cc _q_u_a_n_t_u_m] [_a_r_r_a_y] - Read lines from the standard input into the indexed array vari- - able _a_r_r_a_y, or from file descriptor _f_d if the --uu option is sup- - plied. The variable MMAAPPFFIILLEE is the default _a_r_r_a_y. Options, if + Read lines from the standard input into the indexed array vari- + able _a_r_r_a_y, or from file descriptor _f_d if the --uu option is sup- + plied. The variable MMAAPPFFIILLEE is the default _a_r_r_a_y. Options, if supplied, have the following meanings: - --dd The first character of _d_e_l_i_m is used to terminate each - input line, rather than newline. If _d_e_l_i_m is the empty + --dd The first character of _d_e_l_i_m is used to terminate each + input line, rather than newline. If _d_e_l_i_m is the empty string, mmaappffiillee will terminate a line when it reads a NUL character. - --nn Copy at most _c_o_u_n_t lines. If _c_o_u_n_t is 0, all lines are + --nn Copy at most _c_o_u_n_t lines. If _c_o_u_n_t is 0, all lines are copied. - --OO Begin assigning to _a_r_r_a_y at index _o_r_i_g_i_n. The default + --OO Begin assigning to _a_r_r_a_y at index _o_r_i_g_i_n. The default index is 0. --ss Discard the first _c_o_u_n_t lines read. - --tt Remove a trailing _d_e_l_i_m (default newline) from each line + --tt Remove a trailing _d_e_l_i_m (default newline) from each line read. - --uu Read lines from file descriptor _f_d instead of the stan- + --uu Read lines from file descriptor _f_d instead of the stan- dard input. - --CC Evaluate _c_a_l_l_b_a_c_k each time _q_u_a_n_t_u_m lines are read. The + --CC Evaluate _c_a_l_l_b_a_c_k each time _q_u_a_n_t_u_m lines are read. The --cc option specifies _q_u_a_n_t_u_m. - --cc Specify the number of lines read between each call to + --cc Specify the number of lines read between each call to _c_a_l_l_b_a_c_k. - If --CC is specified without --cc, the default quantum is 5000. + If --CC is specified without --cc, the default quantum is 5000. When _c_a_l_l_b_a_c_k 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. _c_a_l_l_b_a_c_k is evaluated after + element as additional arguments. _c_a_l_l_b_a_c_k is evaluated after the line is read but before the array element is assigned. - If not supplied with an explicit origin, mmaappffiillee will clear _a_r_- + If not supplied with an explicit origin, mmaappffiillee will clear _a_r_- _r_a_y before assigning to it. - mmaappffiillee returns successfully unless an invalid option or option - argument is supplied, _a_r_r_a_y is invalid or unassignable, or if + mmaappffiillee returns successfully unless an invalid option or option + argument is supplied, _a_r_r_a_y is invalid or unassignable, or if _a_r_r_a_y is not an indexed array. ppooppdd [-nn] [+_n] [-_n] - Removes entries from the directory stack. With no arguments, - removes the top directory from the stack, and performs a ccdd to + Removes entries from the directory stack. With no arguments, + removes the top directory from the stack, and performs a ccdd to the new top directory. Arguments, if supplied, have the follow- ing meanings: - --nn Suppresses the normal change of directory when removing + --nn Suppresses the normal change of directory when removing directories from the stack, so that only the stack is ma- nipulated. - ++_n Removes the _nth entry counting from the left of the list - shown by ddiirrss, starting with zero. For example: ``popd + ++_n Removes the _nth entry counting from the left of the list + shown by ddiirrss, starting with zero. For example: ``popd +0'' removes the first directory, ``popd +1'' the second. --_n Removes the _nth entry counting from the right of the list - shown by ddiirrss, starting with zero. For example: ``popd - -0'' removes the last directory, ``popd -1'' the next to + shown by ddiirrss, starting with zero. For example: ``popd + -0'' removes the last directory, ``popd -1'' the next to last. - If the ppooppdd command is successful, a ddiirrss is performed as well, - and the return status is 0. ppooppdd returns false if an invalid + If the ppooppdd command is successful, a ddiirrss is performed as well, + and the return status is 0. ppooppdd returns false if an invalid option is encountered, the directory stack is empty, a non-exis- tent directory stack entry is specified, or the directory change fails. pprriinnttff [--vv _v_a_r] _f_o_r_m_a_t [_a_r_g_u_m_e_n_t_s] - Write the formatted _a_r_g_u_m_e_n_t_s to the standard output under the - control of the _f_o_r_m_a_t. The --vv option causes the output to be - assigned to the variable _v_a_r rather than being printed to the + Write the formatted _a_r_g_u_m_e_n_t_s to the standard output under the + control of the _f_o_r_m_a_t. The --vv option causes the output to be + assigned to the variable _v_a_r rather than being printed to the standard output. - The _f_o_r_m_a_t 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 _a_r_g_u_m_e_n_t. In + The _f_o_r_m_a_t 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 _a_r_g_u_m_e_n_t. In addition to the standard _p_r_i_n_t_f(1) format specifications, pprriinnttff interprets the following extensions: %%bb causes pprriinnttff to expand backslash escape sequences in the corresponding _a_r_g_u_m_e_n_t in the same way as eecchhoo --ee. - %%qq causes pprriinnttff to output the corresponding _a_r_g_u_m_e_n_t in a + %%qq causes pprriinnttff to output the corresponding _a_r_g_u_m_e_n_t in a format that can be reused as shell input. %%((_d_a_t_e_f_m_t))TT - causes pprriinnttff to output the date-time string resulting - from using _d_a_t_e_f_m_t as a format string for _s_t_r_f_t_i_m_e(3). + causes pprriinnttff to output the date-time string resulting + from using _d_a_t_e_f_m_t as a format string for _s_t_r_f_t_i_m_e(3). The corresponding _a_r_g_u_m_e_n_t is an integer representing the - number of seconds since the epoch. Two special argument - values may be used: -1 represents the current time, and - -2 represents the time the shell was invoked. If no ar- + number of seconds since the epoch. Two special argument + values may be used: -1 represents the current time, and + -2 represents the time the shell was invoked. If no ar- gument is specified, conversion behaves as if -1 had been - given. This is an exception to the usual pprriinnttff behav- + given. This is an exception to the usual pprriinnttff behav- ior. - Arguments to non-string format specifiers are treated as C con- + 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 + if the leading character is a single or double quote, the value is the ASCII value of the following character. - The _f_o_r_m_a_t is reused as necessary to consume all of the _a_r_g_u_- + The _f_o_r_m_a_t is reused as necessary to consume all of the _a_r_g_u_- _m_e_n_t_s. If the _f_o_r_m_a_t requires more _a_r_g_u_m_e_n_t_s than are supplied, - the extra format specifications behave as if a zero value or - null string, as appropriate, had been supplied. The return + 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 on failure. ppuusshhdd [--nn] [+_n] [-_n] ppuusshhdd [--nn] [_d_i_r] - Adds a directory to the top of the directory stack, or rotates - the stack, making the new top of the stack the current working - directory. With no arguments, ppuusshhdd exchanges the top two di- - rectories and returns 0, unless the directory stack is empty. + Adds a directory to the top of the directory stack, or rotates + the stack, making the new top of the stack the current working + directory. With no arguments, ppuusshhdd exchanges the top two di- + rectories and returns 0, unless the directory stack is empty. Arguments, if supplied, have the following meanings: - --nn Suppresses the normal change of directory when rotating - or adding directories to the stack, so that only the + --nn Suppresses the normal change of directory when rotating + or adding directories to the stack, so that only the stack is manipulated. - ++_n Rotates the stack so that the _nth directory (counting - from the left of the list shown by ddiirrss, starting with + ++_n Rotates the stack so that the _nth directory (counting + from the left of the list shown by ddiirrss, starting with zero) is at the top. - --_n Rotates the stack so that the _nth directory (counting - from the right of the list shown by ddiirrss, starting with + --_n Rotates the stack so that the _nth directory (counting + from the right of the list shown by ddiirrss, starting with zero) is at the top. _d_i_r Adds _d_i_r to the directory stack at the top, making it the - new current working directory as if it had been supplied + new current working directory as if it had been supplied as the argument to the ccdd builtin. If the ppuusshhdd command is successful, a ddiirrss is performed as well. - If the first form is used, ppuusshhdd returns 0 unless the cd to _d_i_r - fails. With the second form, ppuusshhdd returns 0 unless the direc- - tory stack is empty, a non-existent directory stack element is - specified, or the directory change to the specified new current + If the first form is used, ppuusshhdd returns 0 unless the cd to _d_i_r + fails. With the second form, ppuusshhdd returns 0 unless the direc- + tory stack is empty, a non-existent directory stack element is + specified, or the directory change to the specified new current directory fails. ppwwdd [--LLPP] - Print the absolute pathname of the current working directory. + Print the absolute pathname of the current working directory. The pathname printed contains no symbolic links if the --PP option is supplied or the --oo pphhyyssiiccaall option to the sseett builtin command - is enabled. If the --LL option is used, the pathname printed may - contain symbolic links. The return status is 0 unless an error + is enabled. If the --LL 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. rreeaadd [--eerrss] [--aa _a_n_a_m_e] [--dd _d_e_l_i_m] [--ii _t_e_x_t] [--nn _n_c_h_a_r_s] [--NN _n_c_h_a_r_s] [--pp _p_r_o_m_p_t] [--tt _t_i_m_e_o_u_t] [--uu _f_d] [_n_a_m_e ...] - One line is read from the standard input, or from the file de- + One line is read from the standard input, or from the file de- scriptor _f_d supplied as an argument to the --uu option, split into - words as described above under WWoorrdd SSpplliittttiinngg, and the first - word is assigned to the first _n_a_m_e, the second word to the sec- - ond _n_a_m_e, and so on. If there are more words than names, the + words as described above under WWoorrdd SSpplliittttiinngg, and the first + word is assigned to the first _n_a_m_e, the second word to the sec- + ond _n_a_m_e, and so on. If there are more words than names, the remaining words and their intervening delimiters are assigned to - the last _n_a_m_e. If there are fewer words read from the input - stream than names, the remaining names are assigned empty val- - ues. The characters in IIFFSS are used to split the line into - words using the same rules the shell uses for expansion (de- - scribed above under WWoorrdd SSpplliittttiinngg). The backslash character + the last _n_a_m_e. If there are fewer words read from the input + stream than names, the remaining names are assigned empty val- + ues. The characters in IIFFSS are used to split the line into + words using the same rules the shell uses for expansion (de- + scribed above under WWoorrdd SSpplliittttiinngg). The backslash character (\\) may be used to remove any special meaning for the next char- - acter read and for line continuation. Options, if supplied, + acter read and for line continuation. Options, if supplied, have the following meanings: --aa _a_n_a_m_e The words are assigned to sequential indices of the array variable _a_n_a_m_e, starting at 0. _a_n_a_m_e is unset before any - new values are assigned. Other _n_a_m_e arguments are ig- + new values are assigned. Other _n_a_m_e arguments are ig- nored. --dd _d_e_l_i_m The first character of _d_e_l_i_m is used to terminate the in- - put line, rather than newline. If _d_e_l_i_m is the empty - string, rreeaadd will terminate a line when it reads a NUL + put line, rather than newline. If _d_e_l_i_m is the empty + string, rreeaadd will terminate a line when it reads a NUL character. --ee If the standard input is coming from a terminal, rreeaaddlliinnee - (see RREEAADDLLIINNEE above) is used to obtain the line. Read- - line uses the current (or default, if line editing was - not previously active) editing settings, but uses Read- + (see RREEAADDLLIINNEE above) is used to obtain the line. Read- + line uses the current (or default, if line editing was + not previously active) editing settings, but uses Read- line's default filename completion. --ii _t_e_x_t - If rreeaaddlliinnee is being used to read the line, _t_e_x_t is + If rreeaaddlliinnee is being used to read the line, _t_e_x_t is placed into the editing buffer before editing begins. --nn _n_c_h_a_r_s - rreeaadd returns after reading _n_c_h_a_r_s characters rather than + rreeaadd returns after reading _n_c_h_a_r_s characters rather than waiting for a complete line of input, but honors a delim- - iter if fewer than _n_c_h_a_r_s characters are read before the + iter if fewer than _n_c_h_a_r_s characters are read before the delimiter. --NN _n_c_h_a_r_s - rreeaadd returns after reading exactly _n_c_h_a_r_s characters - rather than waiting for a complete line of input, unless - EOF is encountered or rreeaadd times out. Delimiter charac- - ters encountered in the input are not treated specially - and do not cause rreeaadd to return until _n_c_h_a_r_s characters - are read. The result is not split on the characters in - IIFFSS; the intent is that the variable is assigned exactly + rreeaadd returns after reading exactly _n_c_h_a_r_s characters + rather than waiting for a complete line of input, unless + EOF is encountered or rreeaadd times out. Delimiter charac- + ters encountered in the input are not treated specially + and do not cause rreeaadd to return until _n_c_h_a_r_s characters + are read. The result is not split on the characters in + IIFFSS; the intent is that the variable is assigned exactly the characters read (with the exception of backslash; see the --rr option below). --pp _p_r_o_m_p_t @@ -5235,131 +5238,131 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS line, before attempting to read any input. The prompt is displayed only if input is coming from a terminal. --rr 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 + 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. --ss Silent mode. If input is coming from a terminal, charac- ters are not echoed. --tt _t_i_m_e_o_u_t - Cause rreeaadd to time out and return failure if a complete - line of input (or a specified number of characters) is - not read within _t_i_m_e_o_u_t seconds. _t_i_m_e_o_u_t may be a deci- - mal number with a fractional portion following the deci- - mal point. This option is only effective if rreeaadd is - reading input from a terminal, pipe, or other special - file; it has no effect when reading from regular files. + Cause rreeaadd to time out and return failure if a complete + line of input (or a specified number of characters) is + not read within _t_i_m_e_o_u_t seconds. _t_i_m_e_o_u_t may be a deci- + mal number with a fractional portion following the deci- + mal point. This option is only effective if rreeaadd is + reading input from a terminal, pipe, or other special + file; it has no effect when reading from regular files. If rreeaadd times out, rreeaadd saves any partial input read into - the specified variable _n_a_m_e. If _t_i_m_e_o_u_t is 0, rreeaadd re- - turns immediately, without trying to read any data. The - exit status is 0 if input is available on the specified - file descriptor, non-zero otherwise. The exit status is + the specified variable _n_a_m_e. If _t_i_m_e_o_u_t is 0, rreeaadd re- + turns immediately, without trying to read any data. The + exit status is 0 if input is available on the specified + file descriptor, non-zero otherwise. The exit status is greater than 128 if the timeout is exceeded. --uu _f_d Read input from file descriptor _f_d. If no _n_a_m_e_s are supplied, the line read is assigned to the vari- - able RREEPPLLYY. The exit status is zero, unless end-of-file is en- - countered, rreeaadd times out (in which case the status is greater - than 128), a variable assignment error (such as assigning to a + able RREEPPLLYY. The exit status is zero, unless end-of-file is en- + countered, rreeaadd 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 sup- plied as the argument to --uu. rreeaaddoonnllyy [--aaAAff] [--pp] [_n_a_m_e[=_w_o_r_d] ...] - The given _n_a_m_e_s are marked readonly; the values of these _n_a_m_e_s - may not be changed by subsequent assignment. If the --ff option - is supplied, the functions corresponding to the _n_a_m_e_s are so - marked. The --aa option restricts the variables to indexed ar- - rays; the --AA option restricts the variables to associative ar- + The given _n_a_m_e_s are marked readonly; the values of these _n_a_m_e_s + may not be changed by subsequent assignment. If the --ff option + is supplied, the functions corresponding to the _n_a_m_e_s are so + marked. The --aa option restricts the variables to indexed ar- + rays; the --AA option restricts the variables to associative ar- rays. If both options are supplied, --AA takes precedence. If no - _n_a_m_e arguments are given, or if the --pp option is supplied, a + _n_a_m_e arguments are given, or if the --pp option is supplied, a list of all readonly names is printed. The other options may be - used to restrict the output to a subset of the set of readonly - names. The --pp option causes output to be displayed in a format - that may be reused as input. If a variable name is followed by - =_w_o_r_d, the value of the variable is set to _w_o_r_d. The return - status is 0 unless an invalid option is encountered, one of the + used to restrict the output to a subset of the set of readonly + names. The --pp option causes output to be displayed in a format + that may be reused as input. If a variable name is followed by + =_w_o_r_d, the value of the variable is set to _w_o_r_d. The return + status is 0 unless an invalid option is encountered, one of the _n_a_m_e_s is not a valid shell variable name, or --ff is supplied with a _n_a_m_e that is not a function. rreettuurrnn [_n] - Causes a function to stop executing and return the value speci- - fied by _n to its caller. If _n is omitted, the return status is - that of the last command executed in the function body. If rree-- + Causes a function to stop executing and return the value speci- + fied by _n to its caller. If _n is omitted, the return status is + that of the last command executed in the function body. If rree-- ttuurrnn is executed by a trap handler, the last command used to de- - termine the status is the last command executed before the trap - handler. If rreettuurrnn is executed during a DDEEBBUUGG trap, the last - command used to determine the status is the last command exe- - cuted by the trap handler before rreettuurrnn was invoked. If rreettuurrnn - is used outside a function, but during execution of a script by - the .. (ssoouurrccee) command, it causes the shell to stop executing - that script and return either _n or the exit status of the last - command executed within the script as the exit status of the + termine the status is the last command executed before the trap + handler. If rreettuurrnn is executed during a DDEEBBUUGG trap, the last + command used to determine the status is the last command exe- + cuted by the trap handler before rreettuurrnn was invoked. If rreettuurrnn + is used outside a function, but during execution of a script by + the .. (ssoouurrccee) command, it causes the shell to stop executing + that script and return 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 signif- - icant 8 bits. The return status is non-zero if rreettuurrnn is sup- - plied a non-numeric argument, or is used outside a function and - not during execution of a script by .. or ssoouurrccee. Any command + icant 8 bits. The return status is non-zero if rreettuurrnn is sup- + plied a non-numeric argument, or is used outside a function and + not during execution of a script by .. or ssoouurrccee. Any command associated with the RREETTUURRNN trap is executed before execution re- sumes after the function or script. sseett [----aabbeeffhhkkmmnnppttuuvvxxBBCCEEHHPPTT] [--oo _o_p_t_i_o_n_-_n_a_m_e] [_a_r_g ...] sseett [++aabbeeffhhkkmmnnppttuuvvxxBBCCEEHHPPTT] [++oo _o_p_t_i_o_n_-_n_a_m_e] [_a_r_g ...] - Without options, the name and value of each shell variable are + Without options, the name and value of each shell variable are displayed in a format that can be reused as input for setting or resetting the currently-set variables. Read-only variables can- - not be reset. In _p_o_s_i_x _m_o_d_e, only shell variables are listed. - The output is sorted according to the current locale. When op- - tions are specified, they set or unset shell attributes. Any - arguments remaining after option processing are treated as val- + not be reset. In _p_o_s_i_x _m_o_d_e, only shell variables are listed. + The output is sorted according to the current locale. When op- + tions are specified, they set or unset shell attributes. Any + arguments remaining after option processing are treated as val- ues for the positional parameters and are assigned, in order, to - $$11, $$22, ...... $$_n. Options, if specified, have the following + $$11, $$22, ...... $$_n. Options, if specified, have the following meanings: --aa Each variable or function that is created or modified is - given the export attribute and marked for export to the + given the export attribute and marked for export to the environment of subsequent commands. - --bb Report the status of terminated background jobs immedi- + --bb Report the status of terminated background jobs immedi- ately, rather than before the next primary prompt. This is effective only when job control is enabled. - --ee Exit immediately if a _p_i_p_e_l_i_n_e (which may consist of a - single _s_i_m_p_l_e _c_o_m_m_a_n_d), a _l_i_s_t, or a _c_o_m_p_o_u_n_d _c_o_m_m_a_n_d + --ee Exit immediately if a _p_i_p_e_l_i_n_e (which may consist of a + single _s_i_m_p_l_e _c_o_m_m_a_n_d), a _l_i_s_t, or a _c_o_m_p_o_u_n_d _c_o_m_m_a_n_d (see SSHHEELLLL GGRRAAMMMMAARR 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 wwhhiillee - or uunnttiill keyword, part of the test following the iiff or - eelliiff reserved words, part of any command executed in a - &&&& or |||| list except the command following the final &&&& + The shell does not exit if the command that fails is + part of the command list immediately following a wwhhiillee + or uunnttiill keyword, part of the test following the iiff or + eelliiff reserved words, part of any command executed in a + &&&& or |||| list except the command following the final &&&& or ||||, any command in a pipeline but the last, or if the - command's return value is being inverted with !!. If a - compound command other than a subshell returns a non- - zero status because a command failed while --ee was being - ignored, the shell does not exit. A trap on EERRRR, if - set, is executed before the shell exits. This option + command's return value is being inverted with !!. If a + compound command other than a subshell returns a non- + zero status because a command failed while --ee was being + ignored, the shell does not exit. A trap on EERRRR, if + set, is executed before the shell exits. This option applies to the shell environment and each subshell envi- - ronment separately (see CCOOMMMMAANNDD EEXXEECCUUTTIIOONN EENNVVIIRROONNMMEENNTT + ronment separately (see CCOOMMMMAANNDD EEXXEECCUUTTIIOONN EENNVVIIRROONNMMEENNTT 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 --ee is being ignored, none of the commands - executed within the compound command or function body - will be affected by the --ee setting, even if --ee is set - and a command returns a failure status. If a compound - command or shell function sets --ee while executing in a - context where --ee is ignored, that setting will not have - any effect until the compound command or the command + If a compound command or shell function executes in a + context where --ee is being ignored, none of the commands + executed within the compound command or function body + will be affected by the --ee setting, even if --ee is set + and a command returns a failure status. If a compound + command or shell function sets --ee while executing in a + context where --ee is ignored, that setting will not have + any effect until the compound command or the command containing the function call completes. --ff Disable pathname expansion. - --hh Remember the location of commands as they are looked up + --hh Remember the location of commands as they are looked up for execution. This is enabled by default. - --kk All arguments in the form of assignment statements are - placed in the environment for a command, not just those + --kk All arguments in the form of assignment statements are + placed in the environment for a command, not just those that precede the command name. - --mm Monitor mode. Job control is enabled. This option is - on by default for interactive shells on systems that - support it (see JJOOBB CCOONNTTRROOLL above). All processes run + --mm Monitor mode. Job control is enabled. This option is + on by default for interactive shells on systems that + support it (see JJOOBB CCOONNTTRROOLL 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. --nn Read commands but do not execute them. This may be used - to check a shell script for syntax errors. This is ig- + to check a shell script for syntax errors. This is ig- nored by interactive shells. --oo _o_p_t_i_o_n_-_n_a_m_e The _o_p_t_i_o_n_-_n_a_m_e can be one of the following: @@ -5367,10 +5370,10 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS Same as --aa. bbrraacceeeexxppaanndd Same as --BB. - eemmaaccss Use an emacs-style command line editing inter- + eemmaaccss 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 ----nnooeeddiittiinngg option. This also affects the + the ----nnooeeddiittiinngg option. This also affects the editing interface used for rreeaadd --ee. eerrrreexxiitt Same as --ee. eerrrrttrraaccee @@ -5384,8 +5387,8 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS HHIISSTTOORRYY. This option is on by default in inter- active shells. iiggnnoorreeeeooff - The effect is as if the shell command ``IG- - NOREEOF=10'' had been executed (see SShheellll VVaarrii-- + The effect is as if the shell command ``IG- + NOREEOF=10'' had been executed (see SShheellll VVaarrii-- aabblleess above). kkeeyywwoorrdd Same as --kk. mmoonniittoorr Same as --mm. @@ -5400,176 +5403,176 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS pphhyyssiiccaall Same as --PP. ppiippeeffaaiill - 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 + 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. - ppoossiixx Change the behavior of bbaasshh where the default - operation differs from the POSIX standard to - match the standard (_p_o_s_i_x _m_o_d_e). See SSEEEE AALLSSOO + ppoossiixx Change the behavior of bbaasshh where the default + operation differs from the POSIX standard to + match the standard (_p_o_s_i_x _m_o_d_e). See SSEEEE AALLSSOO below for a reference to a document that details how posix mode affects bash's behavior. pprriivviilleeggeedd Same as --pp. vveerrbboossee Same as --vv. - vvii Use a vi-style command line editing interface. + vvii Use a vi-style command line editing interface. This also affects the editing interface used for rreeaadd --ee. xxttrraaccee Same as --xx. If --oo is supplied with no _o_p_t_i_o_n_-_n_a_m_e, the values of the - current options are printed. If ++oo is supplied with no - _o_p_t_i_o_n_-_n_a_m_e, a series of sseett commands to recreate the - current option settings is displayed on the standard + current options are printed. If ++oo is supplied with no + _o_p_t_i_o_n_-_n_a_m_e, a series of sseett commands to recreate the + current option settings is displayed on the standard output. - --pp Turn on _p_r_i_v_i_l_e_g_e_d mode. In this mode, the $$EENNVV and - $$BBAASSHH__EENNVV files are not processed, shell functions are - not inherited from the environment, and the SSHHEELLLLOOPPTTSS, - BBAASSHHOOPPTTSS, CCDDPPAATTHH, and GGLLOOBBIIGGNNOORREE variables, if they ap- - pear 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 --pp option is not sup- + --pp Turn on _p_r_i_v_i_l_e_g_e_d mode. In this mode, the $$EENNVV and + $$BBAASSHH__EENNVV files are not processed, shell functions are + not inherited from the environment, and the SSHHEELLLLOOPPTTSS, + BBAASSHHOOPPTTSS, CCDDPPAATTHH, and GGLLOOBBIIGGNNOORREE variables, if they ap- + pear 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 --pp option is not sup- plied, these actions are taken and the effective user id - is set to the real user id. If the --pp option is sup- - plied at startup, the effective user id is not reset. - Turning this option off causes the effective user and + is set to the real user id. If the --pp option is sup- + plied 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. --tt Exit after reading and executing one command. --uu Treat unset variables and parameters other than the spe- - cial parameters "@" and "*" 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 + cial parameters "@" and "*" 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. --vv Print shell input lines as they are read. - --xx After expanding each _s_i_m_p_l_e _c_o_m_m_a_n_d, ffoorr command, ccaassee + --xx After expanding each _s_i_m_p_l_e _c_o_m_m_a_n_d, ffoorr command, ccaassee command, sseelleecctt command, or arithmetic ffoorr command, dis- - play the expanded value of PPSS44, followed by the command + play the expanded value of PPSS44, followed by the command and its expanded arguments or associated word list. - --BB The shell performs brace expansion (see BBrraaccee EExxppaannssiioonn + --BB The shell performs brace expansion (see BBrraaccee EExxppaannssiioonn above). This is on by default. - --CC If set, bbaasshh does not overwrite an existing file with - the >>, >>&&, and <<>> redirection operators. This may be + --CC If set, bbaasshh does not overwrite an existing file with + the >>, >>&&, and <<>> redirection operators. This may be overridden when creating output files by using the redi- rection operator >>|| instead of >>. --EE If set, any trap on EERRRR is inherited by shell functions, - command substitutions, and commands executed in a sub- - shell environment. The EERRRR trap is normally not inher- + command substitutions, and commands executed in a sub- + shell environment. The EERRRR trap is normally not inher- ited in such cases. --HH Enable !! style history substitution. This option is on by default when the shell is interactive. - --PP If set, the shell does not resolve symbolic links when - executing commands such as ccdd that change the current + --PP If set, the shell does not resolve symbolic links when + executing commands such as ccdd that change the current working directory. It uses the physical directory structure instead. By default, bbaasshh follows the logical - chain of directories when performing commands which + chain of directories when performing commands which change the current directory. - --TT If set, any traps on DDEEBBUUGG and RREETTUURRNN are inherited by + --TT If set, any traps on DDEEBBUUGG and RREETTUURRNN are inherited by shell functions, command substitutions, and commands ex- - ecuted in a subshell environment. The DDEEBBUUGG and RREETTUURRNN + ecuted in a subshell environment. The DDEEBBUUGG and RREETTUURRNN traps are normally not inherited in such cases. - ---- If no arguments follow this option, then the positional + ---- If no arguments follow this option, then the positional parameters are unset. Otherwise, the positional parame- - ters are set to the _a_r_gs, even if some of them begin + ters are set to the _a_r_gs, even if some of them begin with a --. - -- Signal the end of options, cause all remaining _a_r_gs to + -- Signal the end of options, cause all remaining _a_r_gs to be assigned to the positional parameters. The --xx and --vv options are turned off. If there are no _a_r_gs, the posi- tional parameters remain unchanged. - The options are off by default unless otherwise noted. Using + - rather than - causes these options to be turned off. The op- + 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 $$--. The re- - turn status is always true unless an invalid option is encoun- + shell. The current set of options may be found in $$--. The re- + turn status is always true unless an invalid option is encoun- tered. sshhiifftt [_n] - The positional parameters from _n+1 ... are renamed to $$11 ........ - Parameters represented by the numbers $$## down to $$##-_n+1 are un- - set. _n must be a non-negative number less than or equal to $$##. - If _n is 0, no parameters are changed. If _n is not given, it is + The positional parameters from _n+1 ... are renamed to $$11 ........ + Parameters represented by the numbers $$## down to $$##-_n+1 are un- + set. _n must be a non-negative number less than or equal to $$##. + If _n is 0, no parameters are changed. If _n is not given, it is assumed to be 1. If _n is greater than $$##, the positional param- - eters are not changed. The return status is greater than zero + eters are not changed. The return status is greater than zero if _n is greater than $$## or less than zero; otherwise 0. sshhoopptt [--ppqqssuu] [--oo] [_o_p_t_n_a_m_e ...] - Toggle the values of settings controlling optional shell behav- - ior. The settings can be either those listed below, or, if the + Toggle the values of settings controlling optional shell behav- + ior. The settings can be either those listed below, or, if the --oo option is used, those available with the --oo option to the sseett builtin command. With no options, or with the --pp option, a list - of all settable options is displayed, with an indication of + of all settable options is displayed, with an indication of whether or not each is set; if _o_p_t_n_a_m_e_s are supplied, the output - is restricted to those options. The --pp option causes output to - be displayed in a form that may be reused as input. Other op- + is restricted to those options. The --pp option causes output to + be displayed in a form that may be reused as input. Other op- tions have the following meanings: --ss Enable (set) each _o_p_t_n_a_m_e. --uu Disable (unset) each _o_p_t_n_a_m_e. - --qq Suppresses normal output (quiet mode); the return status + --qq Suppresses normal output (quiet mode); the return status indicates whether the _o_p_t_n_a_m_e is set or unset. If multi- - ple _o_p_t_n_a_m_e arguments are given with --qq, the return sta- - tus is zero if all _o_p_t_n_a_m_e_s are enabled; non-zero other- + ple _o_p_t_n_a_m_e arguments are given with --qq, the return sta- + tus is zero if all _o_p_t_n_a_m_e_s are enabled; non-zero other- wise. - --oo Restricts the values of _o_p_t_n_a_m_e to be those defined for + --oo Restricts the values of _o_p_t_n_a_m_e to be those defined for the --oo option to the sseett builtin. - If either --ss or --uu is used with no _o_p_t_n_a_m_e arguments, sshhoopptt - shows only those options which are set or unset, respectively. - Unless otherwise noted, the sshhoopptt options are disabled (unset) + If either --ss or --uu is used with no _o_p_t_n_a_m_e arguments, sshhoopptt + shows only those options which are set or unset, respectively. + Unless otherwise noted, the sshhoopptt options are disabled (unset) by default. - The return status when listing options is zero if all _o_p_t_n_a_m_e_s - are enabled, non-zero otherwise. When setting or unsetting op- - tions, the return status is zero unless an _o_p_t_n_a_m_e is not a + The return status when listing options is zero if all _o_p_t_n_a_m_e_s + are enabled, non-zero otherwise. When setting or unsetting op- + tions, the return status is zero unless an _o_p_t_n_a_m_e is not a valid shell option. The list of sshhoopptt options is: aassssoocc__eexxppaanndd__oonnccee - If set, the shell suppresses multiple evaluation of as- - sociative array subscripts during arithmetic expression - evaluation, while executing builtins that can perform - variable assignments, and while executing builtins that + If set, the shell suppresses multiple evaluation of as- + sociative array subscripts during arithmetic expression + evaluation, while executing builtins that can perform + variable assignments, and while executing builtins that perform array dereferencing. - aauuttooccdd If set, a command name that is the name of a directory - is executed as if it were the argument to the ccdd com- + aauuttooccdd If set, a command name that is the name of a directory + is executed as if it were the argument to the ccdd com- mand. This option is only used by interactive shells. ccddaabbllee__vvaarrss - If set, an argument to the ccdd builtin command that is - not a directory is assumed to be the name of a variable + If set, an argument to the ccdd builtin command that is + not a directory is assumed to be the name of a variable whose value is the directory to change to. ccddssppeellll If set, minor errors in the spelling of a directory com- - ponent in a ccdd command will be corrected. The errors + ponent in a ccdd command will be corrected. The errors checked for are transposed characters, a missing charac- - ter, and one character too many. If a correction is - found, the corrected filename is printed, and the com- - mand proceeds. This option is only used by interactive + ter, and one character too many. If a correction is + found, the corrected filename is printed, and the com- + mand proceeds. This option is only used by interactive shells. cchheecckkhhaasshh If set, bbaasshh checks that a command found in the hash ta- - ble exists before trying to execute it. If a hashed - command no longer exists, a normal path search is per- + ble exists before trying to execute it. If a hashed + command no longer exists, a normal path search is per- formed. cchheecckkjjoobbss If set, bbaasshh lists the status of any stopped and running - jobs before exiting an interactive shell. If any jobs + jobs before exiting an interactive shell. If any jobs are running, this causes the exit to be deferred until a - second exit is attempted without an intervening command + second exit is attempted without an intervening command (see JJOOBB CCOONNTTRROOLL above). The shell always postpones ex- iting if any jobs are stopped. cchheecckkwwiinnssiizzee - If set, bbaasshh checks the window size after each external - (non-builtin) command and, if necessary, updates the - values of LLIINNEESS and CCOOLLUUMMNNSS. This option is enabled by + If set, bbaasshh checks the window size after each external + (non-builtin) command and, if necessary, updates the + values of LLIINNEESS and CCOOLLUUMMNNSS. This option is enabled by default. - ccmmddhhiisstt If set, bbaasshh 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 + ccmmddhhiisstt If set, bbaasshh 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 HHIISSTTOORRYY. ccoommppaatt3311 If set, bbaasshh changes its behavior to that of version 3.1 - with respect to quoted arguments to the [[[[ conditional + with respect to quoted arguments to the [[[[ conditional command's ==~~ operator and locale-specific string compar- ison when using the [[[[ conditional command's << and >> op- erators. Bash versions prior to bash-4.1 use ASCII col- @@ -5577,177 +5580,177 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS locale's collation sequence and _s_t_r_c_o_l_l(3). ccoommppaatt3322 If set, bbaasshh changes its behavior to that of version 3.2 - with respect to locale-specific string comparison when - using the [[[[ conditional command's << and >> operators - (see previous item) and the effect of interrupting a - command list. Bash versions 3.2 and earlier continue - with the next command in the list after one terminates + with respect to locale-specific string comparison when + using the [[[[ conditional command's << and >> operators + (see previous item) and the effect of interrupting a + command list. Bash versions 3.2 and earlier continue + with the next command in the list after one terminates due to an interrupt. ccoommppaatt4400 If set, bbaasshh changes its behavior to that of version 4.0 - with respect to locale-specific string comparison when - using the [[[[ conditional command's << and >> operators - (see description of ccoommppaatt3311) and the effect of inter- + with respect to locale-specific string comparison when + using the [[[[ conditional command's << and >> operators + (see description of ccoommppaatt3311) and the effect of inter- rupting a command list. Bash versions 4.0 and later in- terrupt the list as if the shell received the interrupt; - previous versions continue with the next command in the + previous versions continue with the next command in the list. ccoommppaatt4411 - If set, bbaasshh, when in _p_o_s_i_x _m_o_d_e, treats a single quote - in a double-quoted parameter expansion as a special - character. The single quotes must match (an even num- - ber) and the characters between the single quotes are - considered quoted. This is the behavior of posix mode - through version 4.1. The default bash behavior remains + If set, bbaasshh, when in _p_o_s_i_x _m_o_d_e, treats a single quote + in a double-quoted parameter expansion as a special + character. The single quotes must match (an even num- + ber) and the characters between the single quotes are + considered quoted. This is the behavior of <posix mode + through version 4.1. The default bash behavior remains as in previous versions. ccoommppaatt4422 - If set, bbaasshh does not process the replacement string in - the pattern substitution word expansion using quote re- + If set, bbaasshh does not process the replacement string in + the pattern substitution word expansion using quote re- moval. ccoommppaatt4433 - If set, bbaasshh does not print a warning message if an at- - tempt is made to use a quoted compound array assignment - as an argument to ddeeccllaarree, makes word expansion errors - non-fatal errors that cause the current command to fail - (the default behavior is to make them fatal errors that - cause the shell to exit), and does not reset the loop - state when a shell function is executed (this allows + If set, bbaasshh does not print a warning message if an at- + tempt is made to use a quoted compound array assignment + as an argument to ddeeccllaarree, makes word expansion errors + non-fatal errors that cause the current command to fail + (the default behavior is to make them fatal errors that + cause the shell to exit), and does not reset the loop + state when a shell function is executed (this allows bbrreeaakk or ccoonnttiinnuuee in a shell function to affect loops in the caller's context). ccoommppaatt4444 - If set, bbaasshh saves the positional parameters to + If set, bbaasshh saves the positional parameters to BASH_ARGV and BASH_ARGC before they are used, regardless of whether or not extended debugging mode is enabled. ccoommpplleettee__ffuullllqquuoottee - If set, bbaasshh quotes all shell metacharacters in file- - names and directory names when performing completion. + If set, bbaasshh quotes all shell metacharacters in file- + names and directory names when performing completion. If not set, bbaasshh 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 + 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. ddiirreexxppaanndd - If set, bbaasshh replaces directory names with the results - of word expansion when performing filename completion. - This changes the contents of the readline editing buf- - fer. If not set, bbaasshh attempts to preserve what the + If set, bbaasshh replaces directory names with the results + of word expansion when performing filename completion. + This changes the contents of the readline editing buf- + fer. If not set, bbaasshh attempts to preserve what the user typed. ddiirrssppeellll - If set, bbaasshh attempts spelling correction on directory - names during word completion if the directory name ini- + If set, bbaasshh attempts spelling correction on directory + names during word completion if the directory name ini- tially supplied does not exist. - ddoottgglloobb If set, bbaasshh includes filenames beginning with a `.' in - the results of pathname expansion. The filenames ````..'''' - and ````....'''' must always be matched explicitly, even if + ddoottgglloobb If set, bbaasshh includes filenames beginning with a `.' in + the results of pathname expansion. The filenames ````..'''' + and ````....'''' must always be matched explicitly, even if ddoottgglloobb is set. eexxeeccffaaiill If set, a non-interactive shell will not exit if it can- - not execute the file specified as an argument to the - eexxeecc builtin command. An interactive shell does not + not execute the file specified as an argument to the + eexxeecc builtin command. An interactive shell does not exit if eexxeecc fails. eexxppaanndd__aalliiaasseess - If set, aliases are expanded as described above under + If set, aliases are expanded as described above under AALLIIAASSEESS. This option is enabled by default for interac- tive shells. eexxttddeebbuugg - If set at shell invocation, or in a shell startup file, + If set at shell invocation, or in a shell startup file, arrange to execute the debugger profile before the shell - starts, identical to the ----ddeebbuuggggeerr option. If set af- - ter invocation, behavior intended for use by debuggers + starts, identical to the ----ddeebbuuggggeerr option. If set af- + ter invocation, behavior intended for use by debuggers is enabled: 11.. The --FF option to the ddeeccllaarree builtin displays the source file name and line number corresponding to each function name supplied as an argument. - 22.. If the command run by the DDEEBBUUGG trap returns a - non-zero value, the next command is skipped and + 22.. If the command run by the DDEEBBUUGG trap returns a + non-zero value, the next command is skipped and not executed. - 33.. If the command run by the DDEEBBUUGG 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 .. or ssoouurrccee builtins), the shell + 33.. If the command run by the DDEEBBUUGG 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 .. or ssoouurrccee builtins), the shell simulates a call to rreettuurrnn. - 44.. BBAASSHH__AARRGGCC and BBAASSHH__AARRGGVV are updated as described + 44.. BBAASSHH__AARRGGCC and BBAASSHH__AARRGGVV are updated as described in their descriptions above. - 55.. Function tracing is enabled: command substitu- + 55.. Function tracing is enabled: command substitu- tion, shell functions, and subshells invoked with (( _c_o_m_m_a_n_d )) inherit the DDEEBBUUGG and RREETTUURRNN traps. - 66.. Error tracing is enabled: command substitution, - shell functions, and subshells invoked with (( + 66.. Error tracing is enabled: command substitution, + shell functions, and subshells invoked with (( _c_o_m_m_a_n_d )) inherit the EERRRR trap. eexxttgglloobb If set, the extended pattern matching features described above under PPaatthhnnaammee EExxppaannssiioonn are enabled. eexxttqquuoottee - If set, $$'_s_t_r_i_n_g' and $$"_s_t_r_i_n_g" quoting is performed - within $${{_p_a_r_a_m_e_t_e_r}} expansions enclosed in double + If set, $$'_s_t_r_i_n_g' and $$"_s_t_r_i_n_g" quoting is performed + within $${{_p_a_r_a_m_e_t_e_r}} expansions enclosed in double quotes. This option is enabled by default. ffaaiillgglloobb - If set, patterns which fail to match filenames during + If set, patterns which fail to match filenames during pathname expansion result in an expansion error. ffoorrccee__ffiiggnnoorree - If set, the suffixes specified by the FFIIGGNNOORREE shell - variable cause words to be ignored when performing word + If set, the suffixes specified by the FFIIGGNNOORREE shell + variable cause words to be ignored when performing word completion even if the ignored words are the only possi- - ble completions. See SSHHEELLLL VVAARRIIAABBLLEESS above for a de- - scription of FFIIGGNNOORREE. This option is enabled by de- + ble completions. See SSHHEELLLL VVAARRIIAABBLLEESS above for a de- + scription of FFIIGGNNOORREE. This option is enabled by de- fault. gglloobbaasscciiiirraannggeess - If set, range expressions used in pattern matching - bracket expressions (see PPaatttteerrnn MMaattcchhiinngg above) behave - as if in the traditional C locale when performing com- - parisons. That is, the current locale's collating se- - quence is not taken into account, so bb will not collate - between AA and BB, and upper-case and lower-case ASCII + If set, range expressions used in pattern matching + bracket expressions (see PPaatttteerrnn MMaattcchhiinngg above) behave + as if in the traditional C locale when performing com- + parisons. That is, the current locale's collating se- + quence is not taken into account, so bb will not collate + between AA and BB, and upper-case and lower-case ASCII characters will collate together. gglloobbssttaarr If set, the pattern **** 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 //, + text will match all files and zero or more directories + and subdirectories. If the pattern is followed by a //, only directories and subdirectories match. ggnnuu__eerrrrffmmtt If set, shell error messages are written in the standard GNU error message format. hhiissttaappppeenndd - If set, the history list is appended to the file named + If set, the history list is appended to the file named by the value of the HHIISSTTFFIILLEE variable when the shell ex- its, rather than overwriting the file. hhiissttrreeeeddiitt - If set, and rreeaaddlliinnee is being used, a user is given the + If set, and rreeaaddlliinnee is being used, a user is given the opportunity to re-edit a failed history substitution. hhiissttvveerriiffyy - If set, and rreeaaddlliinnee is being used, the results of his- - tory substitution are not immediately passed to the - shell parser. Instead, the resulting line is loaded + If set, and rreeaaddlliinnee 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 rreeaaddlliinnee editing buffer, allowing further modi- fication. hhoossttccoommpplleettee If set, and rreeaaddlliinnee is being used, bbaasshh will attempt to - perform hostname completion when a word containing a @@ - is being completed (see CCoommpplleettiinngg under RREEAADDLLIINNEE + perform hostname completion when a word containing a @@ + is being completed (see CCoommpplleettiinngg under RREEAADDLLIINNEE above). This is enabled by default. hhuuppoonneexxiitt If set, bbaasshh will send SSIIGGHHUUPP to all jobs when an inter- active login shell exits. iinnhheerriitt__eerrrreexxiitt - If set, command substitution inherits the value of the - eerrrreexxiitt option, instead of unsetting it in the subshell - environment. This option is enabled when _p_o_s_i_x _m_o_d_e is + If set, command substitution inherits the value of the + eerrrreexxiitt option, instead of unsetting it in the subshell + environment. This option is enabled when _p_o_s_i_x _m_o_d_e is enabled. iinntteerraaccttiivvee__ccoommmmeennttss If set, allow a word beginning with ## to cause that word - and all remaining characters on that line to be ignored - in an interactive shell (see CCOOMMMMEENNTTSS above). This op- + and all remaining characters on that line to be ignored + in an interactive shell (see CCOOMMMMEENNTTSS above). This op- tion is enabled by default. llaassttppiippee - If set, and job control is not active, the shell runs + 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. - lliitthhiisstt If set, and the ccmmddhhiisstt option is enabled, multi-line + lliitthhiisstt If set, and the ccmmddhhiisstt option is enabled, multi-line commands are saved to the history with embedded newlines rather than using semicolon separators where possible. llooccaallvvaarr__iinnhheerriitt @@ -5756,94 +5759,94 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS scope before any new value is assigned. The nameref at- tribute is not inherited. llooccaallvvaarr__uunnsseett - If set, calling uunnsseett 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 + If set, calling uunnsseett 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. llooggiinn__sshheellll - The shell sets this option if it is started as a login - shell (see IINNVVOOCCAATTIIOONN above). The value may not be + The shell sets this option if it is started as a login + shell (see IINNVVOOCCAATTIIOONN above). The value may not be changed. mmaaiillwwaarrnn - If set, and a file that bbaasshh is checking for mail has - been accessed since the last time it was checked, the - message ``The mail in _m_a_i_l_f_i_l_e has been read'' is dis- + If set, and a file that bbaasshh is checking for mail has + been accessed since the last time it was checked, the + message ``The mail in _m_a_i_l_f_i_l_e has been read'' is dis- played. nnoo__eemmppttyy__ccmmdd__ccoommpplleettiioonn - If set, and rreeaaddlliinnee is being used, bbaasshh will not at- - tempt to search the PPAATTHH for possible completions when + If set, and rreeaaddlliinnee is being used, bbaasshh will not at- + tempt to search the PPAATTHH for possible completions when completion is attempted on an empty line. nnooccaasseegglloobb - If set, bbaasshh matches filenames in a case-insensitive + If set, bbaasshh matches filenames in a case-insensitive fashion when performing pathname expansion (see PPaatthhnnaammee EExxppaannssiioonn above). nnooccaasseemmaattcchh - If set, bbaasshh matches patterns in a case-insensitive + If set, bbaasshh matches patterns in a case-insensitive fashion when performing matching while executing ccaassee or [[[[ conditional commands, when performing pattern substi- - tution word expansions, or when filtering possible com- + tution word expansions, or when filtering possible com- pletions as part of programmable completion. nnuullllgglloobb - If set, bbaasshh allows patterns which match no files (see - PPaatthhnnaammee EExxppaannssiioonn above) to expand to a null string, + If set, bbaasshh allows patterns which match no files (see + PPaatthhnnaammee EExxppaannssiioonn above) to expand to a null string, rather than themselves. pprrooggccoommpp If set, the programmable completion facilities (see PPrroo-- ggrraammmmaabbllee CCoommpplleettiioonn above) are enabled. This option is enabled by default. pprrooggccoommpp__aalliiaass - If set, and programmable completion is enabled, bbaasshh - treats a command name that doesn't have any completions - as a possible alias and attempts alias expansion. If it - has an alias, bbaasshh attempts programmable completion us- + If set, and programmable completion is enabled, bbaasshh + treats a command name that doesn't have any completions + as a possible alias and attempts alias expansion. If it + has an alias, bbaasshh attempts programmable completion us- ing the command word resulting from the expanded alias. pprroommppttvvaarrss If set, prompt strings undergo parameter expansion, com- - mand substitution, arithmetic expansion, and quote re- - moval after being expanded as described in PPRROOMMPPTTIINNGG + mand substitution, arithmetic expansion, and quote re- + moval after being expanded as described in PPRROOMMPPTTIINNGG above. This option is enabled by default. rreessttrriicctteedd__sshheellll - The shell sets this option if it is started in re- - stricted mode (see RREESSTTRRIICCTTEEDD SSHHEELLLL below). The value - may not be changed. This is not reset when the startup - files are executed, allowing the startup files to dis- + The shell sets this option if it is started in re- + stricted mode (see RREESSTTRRIICCTTEEDD SSHHEELLLL 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. sshhiifftt__vveerrbboossee - If set, the sshhiifftt builtin prints an error message when + If set, the sshhiifftt builtin prints an error message when the shift count exceeds the number of positional parame- ters. ssoouurrcceeppaatthh If set, the ssoouurrccee (..) builtin uses the value of PPAATTHH to - find the directory containing the file supplied as an + find the directory containing the file supplied as an argument. This option is enabled by default. xxppgg__eecchhoo - If set, the eecchhoo builtin expands backslash-escape se- + If set, the eecchhoo builtin expands backslash-escape se- quences by default. ssuussppeenndd [--ff] - Suspend the execution of this shell until it receives a SSIIGGCCOONNTT + Suspend the execution of this shell until it receives a SSIIGGCCOONNTT signal. A login shell cannot be suspended; the --ff option can be used to override this and force the suspension. The return sta- - tus is 0 unless the shell is a login shell and --ff is not sup- + tus is 0 unless the shell is a login shell and --ff is not sup- plied, or if job control is not enabled. tteesstt _e_x_p_r [[ _e_x_p_r ]] Return a status of 0 (true) or 1 (false) depending on the evalu- ation of the conditional expression _e_x_p_r. Each operator and op- - erand must be a separate argument. Expressions are composed of - the primaries described above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS. - tteesstt does not accept any options, nor does it accept and ignore + erand must be a separate argument. Expressions are composed of + the primaries described above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS. + tteesstt does not accept any options, nor does it accept and ignore an argument of ---- 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. Operator prece- + 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. Operator prece- dence is used when there are five or more arguments. !! _e_x_p_r True if _e_x_p_r is false. (( _e_x_p_r )) - Returns the value of _e_x_p_r. This may be used to override + Returns the value of _e_x_p_r. This may be used to override the normal precedence of operators. _e_x_p_r_1 -aa _e_x_p_r_2 True if both _e_x_p_r_1 and _e_x_p_r_2 are true. @@ -5860,134 +5863,134 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS null. 2 arguments If the first argument is !!, 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 CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS, the expression is + only if the second argument is null. If the first argu- + ment is one of the unary conditional operators listed + above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS, 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 + If the second argument is one of the binary conditional operators listed above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS, the result of the expression is the result of the binary test - using the first and third arguments as operands. The --aa - and --oo operators are considered binary operators when - there are three arguments. If the first argument is !!, - the value is the negation of the two-argument test using + using the first and third arguments as operands. The --aa + and --oo operators are considered binary operators when + there are three arguments. If the first argument is !!, + the value is the negation of the two-argument test using the second and third arguments. If the first argument is exactly (( and the third argument is exactly )), the result - is the one-argument test of the second argument. Other- + is the one-argument test of the second argument. Other- wise, the expression is false. 4 arguments If the first argument is !!, the result is the negation of - the three-argument expression composed of the remaining + the three-argument expression composed of the remaining arguments. Otherwise, the expression is parsed and eval- - uated according to precedence using the rules listed + uated according to precedence using the rules listed above. 5 or more arguments - The expression is parsed and evaluated according to + The expression is parsed and evaluated according to precedence using the rules listed above. - When used with tteesstt or [[, the << and >> operators sort lexico- + When used with tteesstt or [[, the << and >> operators sort lexico- graphically using ASCII ordering. - ttiimmeess Print the accumulated user and system times for the shell and + ttiimmeess Print the accumulated user and system times for the shell and for processes run from the shell. The return status is 0. ttrraapp [--llpp] [[_a_r_g] _s_i_g_s_p_e_c ...] - The command _a_r_g is to be read and executed when the shell re- + The command _a_r_g is to be read and executed when the shell re- ceives signal(s) _s_i_g_s_p_e_c. If _a_r_g is absent (and there is a sin- - gle _s_i_g_s_p_e_c) or --, each specified signal is reset to its origi- - nal disposition (the value it had upon entrance to the shell). - If _a_r_g is the null string the signal specified by each _s_i_g_s_p_e_c - is ignored by the shell and by the commands it invokes. If _a_r_g - is not present and --pp has been supplied, then the trap commands + gle _s_i_g_s_p_e_c) or --, each specified signal is reset to its origi- + nal disposition (the value it had upon entrance to the shell). + If _a_r_g is the null string the signal specified by each _s_i_g_s_p_e_c + is ignored by the shell and by the commands it invokes. If _a_r_g + is not present and --pp has been supplied, then the trap commands associated with each _s_i_g_s_p_e_c are displayed. If no arguments are - supplied or if only --pp is given, ttrraapp prints the list of com- - mands associated with each signal. The --ll option causes the - shell to print a list of signal names and their corresponding - numbers. Each _s_i_g_s_p_e_c is either a signal name defined in <_s_i_g_- - _n_a_l_._h>, or a signal number. Signal names are case insensitive + supplied or if only --pp is given, ttrraapp prints the list of com- + mands associated with each signal. The --ll option causes the + shell to print a list of signal names and their corresponding + numbers. Each _s_i_g_s_p_e_c is either a signal name defined in <_s_i_g_- + _n_a_l_._h>, or a signal number. Signal names are case insensitive and the SSIIGG prefix is optional. - If a _s_i_g_s_p_e_c is EEXXIITT (0) the command _a_r_g is executed on exit - from the shell. If a _s_i_g_s_p_e_c is DDEEBBUUGG, the command _a_r_g is exe- - cuted before every _s_i_m_p_l_e _c_o_m_m_a_n_d, _f_o_r command, _c_a_s_e command, - _s_e_l_e_c_t command, every arithmetic _f_o_r command, and before the - first command executes in a shell function (see SSHHEELLLL GGRRAAMMMMAARR - above). Refer to the description of the eexxttddeebbuugg option to the + If a _s_i_g_s_p_e_c is EEXXIITT (0) the command _a_r_g is executed on exit + from the shell. If a _s_i_g_s_p_e_c is DDEEBBUUGG, the command _a_r_g is exe- + cuted before every _s_i_m_p_l_e _c_o_m_m_a_n_d, _f_o_r command, _c_a_s_e command, + _s_e_l_e_c_t command, every arithmetic _f_o_r command, and before the + first command executes in a shell function (see SSHHEELLLL GGRRAAMMMMAARR + above). Refer to the description of the eexxttddeebbuugg option to the sshhoopptt builtin for details of its effect on the DDEEBBUUGG trap. If a _s_i_g_s_p_e_c is RREETTUURRNN, the command _a_r_g is executed each time a shell function or a script executed with the .. or ssoouurrccee builtins fin- ishes executing. - If a _s_i_g_s_p_e_c is EERRRR, the command _a_r_g is executed whenever a + If a _s_i_g_s_p_e_c is EERRRR, the command _a_r_g 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 EERRRR trap is not executed if the + the following conditions. The EERRRR trap is not executed if the failed command is part of the command list immediately following - a wwhhiillee or uunnttiill keyword, part of the test in an _i_f statement, + a wwhhiillee or uunnttiill keyword, part of the test in an _i_f statement, part of a command executed in a &&&& or |||| list except the command - following the final &&&& or ||||, any command in a pipeline but the - last, or if the command's return value is being inverted using + following the final &&&& or ||||, any command in a pipeline but the + last, or if the command's return value is being inverted using !!. These are the same conditions obeyed by the eerrrreexxiitt (--ee) op- tion. Signals ignored upon entry to the shell cannot be trapped or re- - set. Trapped signals that are not being ignored are reset to + set. 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 _s_i_g_s_p_e_c is + one is created. The return status is false if any _s_i_g_s_p_e_c is invalid; otherwise ttrraapp returns true. ttyyppee [--aaffttppPP] _n_a_m_e [_n_a_m_e ...] - With no options, indicate how each _n_a_m_e would be interpreted if + With no options, indicate how each _n_a_m_e would be interpreted if used as a command name. If the --tt option is used, ttyyppee prints a - string which is one of _a_l_i_a_s, _k_e_y_w_o_r_d, _f_u_n_c_t_i_o_n, _b_u_i_l_t_i_n, or - _f_i_l_e if _n_a_m_e is an alias, shell reserved word, function, - builtin, or disk file, respectively. If the _n_a_m_e is not found, - then nothing is printed, and an exit status of false is re- - turned. If the --pp option is used, ttyyppee either returns the name - of the disk file that would be executed if _n_a_m_e were specified - as a command name, or nothing if ``type -t name'' would not re- - turn _f_i_l_e. The --PP option forces a PPAATTHH search for each _n_a_m_e, + string which is one of _a_l_i_a_s, _k_e_y_w_o_r_d, _f_u_n_c_t_i_o_n, _b_u_i_l_t_i_n, or + _f_i_l_e if _n_a_m_e is an alias, shell reserved word, function, + builtin, or disk file, respectively. If the _n_a_m_e is not found, + then nothing is printed, and an exit status of false is re- + turned. If the --pp option is used, ttyyppee either returns the name + of the disk file that would be executed if _n_a_m_e were specified + as a command name, or nothing if ``type -t name'' would not re- + turn _f_i_l_e. The --PP option forces a PPAATTHH search for each _n_a_m_e, even if ``type -t name'' would not return _f_i_l_e. If a command is hashed, --pp and --PP print the hashed value, which is not necessar- - ily the file that appears first in PPAATTHH. If the --aa option is - used, ttyyppee prints all of the places that contain an executable + ily the file that appears first in PPAATTHH. If the --aa option is + used, ttyyppee prints all of the places that contain an executable named _n_a_m_e. This includes aliases and functions, if and only if the --pp option is not also used. The table of hashed commands is - not consulted when using --aa. The --ff option suppresses shell + not consulted when using --aa. The --ff option suppresses shell function lookup, as with the ccoommmmaanndd builtin. ttyyppee returns true if all of the arguments are found, false if any are not found. uulliimmiitt [--HHSSaabbccddeeffiikkllmmnnppqqrrssttuuvvxxPPTT [_l_i_m_i_t]] - Provides control over the resources available to the shell and - to processes started by it, on systems that allow such control. + Provides control over the resources available to the shell and + to processes started by it, on systems that allow such control. The --HH and --SS options specify that 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 --HH nor --SS is speci- + 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 --HH nor --SS is speci- fied, both the soft and hard limits are set. The value of _l_i_m_i_t can be a number in the unit specified for the resource or one of the special values hhaarrdd, ssoofftt, or uunnlliimmiitteedd, which stand for the - current hard limit, the current soft limit, and no limit, re- - spectively. If _l_i_m_i_t is omitted, the current value of the soft + current hard limit, the current soft limit, and no limit, re- + spectively. If _l_i_m_i_t is omitted, the current value of the soft limit of the resource is printed, unless the --HH option is given. - When more than one resource is specified, the limit name and - unit are printed before the value. Other options are inter- + When more than one resource is specified, the limit name and + unit are printed before the value. Other options are inter- preted as follows: --aa All current limits are reported --bb The maximum socket buffer size --cc The maximum size of core files created --dd The maximum size of a process's data segment --ee The maximum scheduling priority ("nice") - --ff The maximum size of files written by the shell and its + --ff The maximum size of files written by the shell and its children --ii The maximum number of pending signals --kk The maximum number of kqueues that may be allocated --ll The maximum size that may be locked into memory - --mm The maximum resident set size (many systems do not honor + --mm The maximum resident set size (many systems do not honor this limit) --nn The maximum number of open file descriptors (most systems do not allow this value to be set) @@ -5996,85 +5999,85 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS --rr The maximum real-time scheduling priority --ss The maximum stack size --tt The maximum amount of cpu time in seconds - --uu The maximum number of processes available to a single + --uu The maximum number of processes available to a single user - --vv The maximum amount of virtual memory available to the + --vv The maximum amount of virtual memory available to the shell and, on some systems, to its children --xx The maximum number of file locks --PP The maximum number of pseudoterminals --TT The maximum number of threads - If _l_i_m_i_t is given, and the --aa option is not used, _l_i_m_i_t is the - new value of the specified resource. If no option is given, - then --ff is assumed. Values are in 1024-byte increments, except - for --tt, which is in seconds; --pp, which is in units of 512-byte - blocks; --PP, --TT, --bb, --kk, --nn, and --uu, which are unscaled values; + If _l_i_m_i_t is given, and the --aa option is not used, _l_i_m_i_t is the + new value of the specified resource. If no option is given, + then --ff is assumed. Values are in 1024-byte increments, except + for --tt, which is in seconds; --pp, which is in units of 512-byte + blocks; --PP, --TT, --bb, --kk, --nn, and --uu, which are unscaled values; and, when in posix mode, --cc and --ff, which are in 512-byte incre- ments. The return status is 0 unless an invalid option or argu- ment is supplied, or an error occurs while setting a new limit. uummaasskk [--pp] [--SS] [_m_o_d_e] The user file-creation mask is set to _m_o_d_e. If _m_o_d_e begins with - a digit, it is interpreted as an octal number; otherwise it is - interpreted as a symbolic mode mask similar to that accepted by - _c_h_m_o_d(1). If _m_o_d_e is omitted, the current value of the mask is - printed. The --SS option causes the mask to be printed in sym- - bolic form; the default output is an octal number. If the --pp + a digit, it is interpreted as an octal number; otherwise it is + interpreted as a symbolic mode mask similar to that accepted by + _c_h_m_o_d(1). If _m_o_d_e is omitted, the current value of the mask is + printed. The --SS option causes the mask to be printed in sym- + bolic form; the default output is an octal number. If the --pp option is supplied, and _m_o_d_e is omitted, the output is in a form that may be reused as input. The return status is 0 if the mode - was successfully changed or if no _m_o_d_e argument was supplied, + was successfully changed or if no _m_o_d_e argument was supplied, and false otherwise. uunnaalliiaass [-aa] [_n_a_m_e ...] - Remove each _n_a_m_e from the list of defined aliases. If --aa is - supplied, all alias definitions are removed. The return value + Remove each _n_a_m_e from the list of defined aliases. If --aa is + supplied, all alias definitions are removed. The return value is true unless a supplied _n_a_m_e is not a defined alias. uunnsseett [-ffvv] [-nn] [_n_a_m_e ...] - For each _n_a_m_e, remove the corresponding variable or function. + For each _n_a_m_e, remove the corresponding variable or function. If the --vv option is given, each _n_a_m_e refers to a shell variable, - and that variable is removed. Read-only variables may not be - unset. If --ff is specified, each _n_a_m_e refers to a shell func- - tion, and the function definition is removed. If the --nn option - is supplied, and _n_a_m_e is a variable with the _n_a_m_e_r_e_f attribute, - _n_a_m_e will be unset rather than the variable it references. --nn - has no effect if the --ff option is supplied. If no options are - supplied, each _n_a_m_e refers to a variable; if there is no vari- - able by that name, any function with that name is unset. Each - unset variable or function is removed from the environment - passed to subsequent commands. If any of BBAASSHH__AALLIIAASSEESS, + and that variable is removed. Read-only variables may not be + unset. If --ff is specified, each _n_a_m_e refers to a shell func- + tion, and the function definition is removed. If the --nn option + is supplied, and _n_a_m_e is a variable with the _n_a_m_e_r_e_f attribute, + _n_a_m_e will be unset rather than the variable it references. --nn + has no effect if the --ff option is supplied. If no options are + supplied, each _n_a_m_e refers to a variable; if there is no vari- + able by that name, any function with that name is unset. Each + unset variable or function is removed from the environment + passed to subsequent commands. If any of BBAASSHH__AALLIIAASSEESS, BBAASSHH__AARRGGVV00, BBAASSHH__CCMMDDSS, BBAASSHH__CCOOMMMMAANNDD, BBAASSHH__SSUUBBSSHHEELLLL, BBAASSHHPPIIDD, - CCOOMMPP__WWOORRDDBBRREEAAKKSS, DDIIRRSSTTAACCKK, EEPPOOCCHHRREEAALLTTIIMMEE, EEPPOOCCHHSSEECCOONNDDSS, FFUUNNCC-- - NNAAMMEE, GGRROOUUPPSS, HHIISSTTCCMMDD, LLIINNEENNOO, RRAANNDDOOMM, SSEECCOONNDDSS, or SSRRAANNDDOOMM are + CCOOMMPP__WWOORRDDBBRREEAAKKSS, DDIIRRSSTTAACCKK, EEPPOOCCHHRREEAALLTTIIMMEE, EEPPOOCCHHSSEECCOONNDDSS, FFUUNNCC-- + NNAAMMEE, GGRROOUUPPSS, HHIISSTTCCMMDD, LLIINNEENNOO, RRAANNDDOOMM, SSEECCOONNDDSS, or SSRRAANNDDOOMM are unset, they lose their special properties, even if they are sub- sequently reset. The exit status is true unless a _n_a_m_e is read- only. wwaaiitt [--ffnn] [--pp _v_a_r_n_a_m_e] [_i_d _._._.] Wait for each specified child process and return its termination - status. Each _i_d may be a process ID or a job specification; if - a job spec is given, all processes in that job's pipeline are - waited for. If _i_d is not given, wwaaiitt waits for all running - background jobs and the last-executed process substitution, if + status. Each _i_d may be a process ID or a job specification; if + a job spec is given, all processes in that job's pipeline are + waited for. If _i_d is not given, wwaaiitt 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 --nn option is supplied, wwaaiitt waits for a single job to + If the --nn option is supplied, wwaaiitt waits for a single job to terminate and returns its exit status. If the --pp option is sup- - plied, the process or job identifier of the job for which the - exit status is returned is assigned to the variable _v_a_r_n_a_m_e - named by the option argument. The variable will be unset ini- - tially, before any assignment. This is useful only when the --nn - option is supplied. Supplying the --ff option, when job control - is enabled, forces wwaaiitt to wait for _i_d to terminate before re- + plied, the process or job identifier of the job for which the + exit status is returned is assigned to the variable _v_a_r_n_a_m_e + named by the option argument. The variable will be unset ini- + tially, before any assignment. This is useful only when the --nn + option is supplied. Supplying the --ff option, when job control + is enabled, forces wwaaiitt to wait for _i_d to terminate before re- turning its status, instead of returning when it changes status. If _i_d specifies a non-existent process or job, the return status - is 127. Otherwise, the return status is the exit status of the + is 127. Otherwise, the return status is the exit status of the last process or job waited for. RREESSTTRRIICCTTEEDD SSHHEELLLL If bbaasshh is started with the name rrbbaasshh, or the --rr 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. It - behaves identically to bbaasshh with the exception that the following are + invocation, the shell becomes restricted. A restricted shell is used + to set up an environment more controlled than the standard shell. It + behaves identically to bbaasshh with the exception that the following are disallowed or not performed: +o changing directories with ccdd @@ -6083,16 +6086,16 @@ RREESSTTRRIICCTTEEDD SSHHEELLLL +o specifying command names containing // - +o specifying a filename containing a // as an argument to the .. + +o specifying a filename containing a // as an argument to the .. builtin command - +o specifying a filename containing a slash as an argument to the + +o specifying a filename containing a slash as an argument to the --pp option to the hhaasshh builtin command - +o importing function definitions from the shell environment at + +o importing function definitions from the shell environment at startup - +o parsing the value of SSHHEELLLLOOPPTTSS from the shell environment at + +o parsing the value of SSHHEELLLLOOPPTTSS from the shell environment at startup +o redirecting output using the >, >|, <>, >&, &>, and >> redirect- @@ -6101,10 +6104,10 @@ RREESSTTRRIICCTTEEDD SSHHEELLLL +o using the eexxeecc builtin command to replace the shell with another command - +o adding or deleting builtin commands with the --ff and --dd options + +o adding or deleting builtin commands with the --ff and --dd options to the eennaabbllee builtin command - +o using the eennaabbllee builtin command to enable disabled shell + +o using the eennaabbllee builtin command to enable disabled shell builtins +o specifying the --pp option to the ccoommmmaanndd builtin command @@ -6114,14 +6117,14 @@ RREESSTTRRIICCTTEEDD SSHHEELLLL These restrictions are enforced after any startup files are read. When a command that is found to be a shell script is executed (see CCOOMM-- - MMAANNDD EEXXEECCUUTTIIOONN above), rrbbaasshh turns off any restrictions in the shell + MMAANNDD EEXXEECCUUTTIIOONN above), rrbbaasshh turns off any restrictions in the shell spawned to execute the script. SSEEEE AALLSSOO _B_a_s_h _R_e_f_e_r_e_n_c_e _M_a_n_u_a_l, Brian Fox and Chet Ramey _T_h_e _G_n_u _R_e_a_d_l_i_n_e _L_i_b_r_a_r_y, Brian Fox and Chet Ramey _T_h_e _G_n_u _H_i_s_t_o_r_y _L_i_b_r_a_r_y, Brian Fox and Chet Ramey - _P_o_r_t_a_b_l_e _O_p_e_r_a_t_i_n_g _S_y_s_t_e_m _I_n_t_e_r_f_a_c_e _(_P_O_S_I_X_) _P_a_r_t _2_: _S_h_e_l_l _a_n_d _U_t_i_l_i_- + _P_o_r_t_a_b_l_e _O_p_e_r_a_t_i_n_g _S_y_s_t_e_m _I_n_t_e_r_f_a_c_e _(_P_O_S_I_X_) _P_a_r_t _2_: _S_h_e_l_l _a_n_d _U_t_i_l_i_- _t_i_e_s, IEEE -- http://pubs.opengroup.org/onlinepubs/9699919799/ http://tiswww.case.edu/~chet/bash/POSIX -- a description of posix mode @@ -6139,7 +6142,7 @@ FFIILLEESS _~_/_._b_a_s_h_r_c The individual per-interactive-shell startup file _~_/_._b_a_s_h___l_o_g_o_u_t - The individual login shell cleanup file, executed when a login + The individual login shell cleanup file, executed when a login shell exits _~_/_._i_n_p_u_t_r_c Individual _r_e_a_d_l_i_n_e initialization file @@ -6153,14 +6156,14 @@ AAUUTTHHOORRSS BBUUGG RREEPPOORRTTSS If you find a bug in bbaasshh,, 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 bbaasshh. The latest version is always available from + make sure that it really is a bug, and that it appears in the latest + version of bbaasshh. The latest version is always available from _f_t_p_:_/_/_f_t_p_._g_n_u_._o_r_g_/_p_u_b_/_g_n_u_/_b_a_s_h_/. - Once you have determined that a bug actually exists, use the _b_a_s_h_b_u_g - command to submit a bug report. If you have a fix, you are encouraged - to mail that as well! Suggestions and `philosophical' bug reports may - be mailed to _b_u_g_-_b_a_s_h_@_g_n_u_._o_r_g or posted to the Usenet newsgroup + Once you have determined that a bug actually exists, use the _b_a_s_h_b_u_g + command to submit a bug report. If you have a fix, you are encouraged + to mail that as well! Suggestions and `philosophical' bug reports may + be mailed to _b_u_g_-_b_a_s_h_@_g_n_u_._o_r_g or posted to the Usenet newsgroup ggnnuu..bbaasshh..bbuugg. ALL bug reports should include: @@ -6171,7 +6174,7 @@ BBUUGG RREEPPOORRTTSS A description of the bug behaviour A short script or `recipe' which exercises the bug - _b_a_s_h_b_u_g inserts the first three items automatically into the template + _b_a_s_h_b_u_g 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 @@ -6188,10 +6191,10 @@ BBUUGGSS Shell builtin commands and functions are not stoppable/restartable. Compound commands and command sequences of the form `a ; b ; c' are not - handled gracefully when process suspension is attempted. When a - process is stopped, the shell immediately executes the next command in - the sequence. It suffices to place the sequence of commands between - parentheses to force it into a subshell, which may be stopped as a + handled gracefully when process suspension is attempted. When a + process is stopped, the shell immediately executes the next command in + the sequence. It suffices to place the sequence of commands between + parentheses to force it into a subshell, which may be stopped as a unit. Array variables may not (yet) be exported. @@ -6200,4 +6203,4 @@ BBUUGGSS -GNU Bash 5.0 2019 November 22 BASH(1) +GNU Bash 5.0 2019 November 26 BASH(1) @@ -5,12 +5,12 @@ .\" Case Western Reserve University .\" chet.ramey@case.edu .\" -.\" Last Change: Fri Nov 22 15:26:59 EST 2019 +.\" Last Change: Tue Nov 26 11:15:17 EST 2019 .\" .\" bash_builtins, strip all but Built-Ins section .if \n(zZ=1 .ig zZ .if \n(zY=1 .ig zY -.TH BASH 1 "2019 November 22" "GNU Bash 5.0" +.TH BASH 1 "2019 November 26" "GNU Bash 5.0" .\" .\" There's some problem with having a `@' .\" in a tagged paragraph with the BSD man macros. @@ -50,8 +50,8 @@ bash \- GNU Bourne-Again SHell [options] [command_string | file] .SH COPYRIGHT -.if n Bash is Copyright (C) 1989-2018 by the Free Software Foundation, Inc. -.if t Bash is Copyright \(co 1989-2018 by the Free Software Foundation, Inc. +.if n Bash is Copyright (C) 1989-2019 by the Free Software Foundation, Inc. +.if t Bash is Copyright \(co 1989-2019 by the Free Software Foundation, Inc. .SH DESCRIPTION .B Bash is an \fBsh\fR-compatible command language interpreter that @@ -994,12 +994,12 @@ 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: .TP -\fIname\fP () \fIcompound\-command\fP [\fIredirection\fP] +\fIfname\fP () \fIcompound\-command\fP [\fIredirection\fP] .PD 0 .TP -\fBfunction\fP \fIname\fP [()] \fIcompound\-command\fP [\fIredirection\fP] +\fBfunction\fP \fIfname\fP [()] \fIcompound\-command\fP [\fIredirection\fP] .PD -This defines a function named \fIname\fP. +This defines a function named \fIfname\fP. The reserved word \fBfunction\fP is optional. If the \fBfunction\fP reserved word is supplied, the parentheses are optional. The \fIbody\fP of the function is the compound command @@ -1009,10 +1009,13 @@ That command is usually a \fIlist\fP of commands between { and }, but may be any command listed under \fBCompound Commands\fP above, with one exception: If the \fBfunction\fP reserved word is used, but the parentheses are not supplied, the braces are required. -\fIcompound\-command\fP is executed whenever \fIname\fP is specified as the +\fIcompound\-command\fP is executed whenever \fIfname\fP is specified as the name of a simple command. -When in \fIposix mode\fP, \fIname\fP may not be the name of one of the +When in \fIposix mode\fP, \fIfname\fP must be a valid shell \fIname\fP +and may not be the name of one of the POSIX \fIspecial builtins\fP. +In default mode, a function name can be any unquoted shell word that does +not contain \fB$\fP. Any redirections (see .SM .B REDIRECTION @@ -1437,6 +1440,12 @@ executed, if one is present. Otherwise, it is set to the filename used to invoke .BR bash , as given by argument zero. +.PD +.SS Shell Variables +.PP +The following variables are set by the shell: +.PP +.PD 0 .TP .B _ At shell startup, set to the absolute pathname used to invoke the @@ -1448,12 +1457,6 @@ Also set to the full pathname used to invoke each command executed and placed in the environment exported to that command. When checking mail, this parameter holds the name of the mail file currently being checked. -.PD -.SS Shell Variables -.PP -The following variables are set by the shell: -.PP -.PD 0 .TP .B BASH Expands to the full filename used to invoke this instance of @@ -5842,6 +5845,7 @@ the maximum number of history entries will be set to 500. When set to \fBOn\fP, makes readline 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. .TP .B input\-meta (Off) If set to \fBOn\fP, readline will enable eight-bit input (that is, @@ -9931,7 +9935,7 @@ If set, when in \fIposix mode\fP, treats a single quote in a double-quoted parameter expansion as a special character. The single quotes must match (an even number) and the characters between the single quotes are considered -quoted. This is the behavior of posix mode through version 4.1. +quoted. This is the behavior of <posix mode through version 4.1. The default bash behavior remains as in previous versions. .TP 8 .B compat42 diff --git a/doc/bash.html b/doc/bash.html index 8ebe14a..6db72eb 100644 --- a/doc/bash.html +++ b/doc/bash.html @@ -3,7 +3,7 @@ </HEAD> <BODY><TABLE WIDTH=100%> <TR> -<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2019 November 22<TH ALIGN=RIGHT width=33%>BASH(1) +<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2019 November 26<TH ALIGN=RIGHT width=33%>BASH(1) </TR> </TABLE> <BR><A HREF="#index">Index</A> @@ -54,7 +54,7 @@ bash - GNU Bourne-Again SHell <H3>COPYRIGHT</H3> -Bash is Copyright © 1989-2018 by the Free Software Foundation, Inc. +Bash is Copyright © 1989-2019 by the Free Software Foundation, Inc. <A NAME="lbAE"> </A> <H3>DESCRIPTION</H3> @@ -1273,11 +1273,11 @@ 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: <DL COMPACT> -<DT><I>name</I> () <I>compound-command</I> [<I>redirection</I>]<DD> +<DT><I>fname</I> () <I>compound-command</I> [<I>redirection</I>]<DD> -<DT><B>function</B> <I>name</I> [()] <I>compound-command</I> [<I>redirection</I>]<DD> +<DT><B>function</B> <I>fname</I> [()] <I>compound-command</I> [<I>redirection</I>]<DD> -This defines a function named <I>name</I>. +This defines a function named <I>fname</I>. The reserved word <B>function</B> is optional. If the <B>function</B> reserved word is supplied, the parentheses are optional. The <I>body</I> of the function is the compound command @@ -1288,10 +1288,13 @@ That command is usually a <I>list</I> of commands between { and }, but may be any command listed under <B>Compound Commands</B> above, with one exception: If the <B>function</B> reserved word is used, but the parentheses are not supplied, the braces are required. -<I>compound-command</I> is executed whenever <I>name</I> is specified as the +<I>compound-command</I> is executed whenever <I>fname</I> is specified as the name of a simple command. -When in <I>posix mode</I>, <I>name</I> may not be the name of one of the +When in <I>posix mode</I>, <I>fname</I> must be a valid shell <I>name</I> +and may not be the name of one of the POSIX <I>special builtins</I>. +In default mode, a function name can be any unquoted shell word that does +not contain <B>$</B>. Any redirections (see <FONT SIZE=-1><B>REDIRECTION</B> @@ -1848,18 +1851,6 @@ to the filename used to invoke <B>bash</B>, as given by argument zero. -<DT><B>_</B> - -<DD> -At shell startup, set to the absolute pathname used to invoke the -shell or shell script being executed as passed in the environment -or argument list. -Subsequently, expands to the last argument to the previous simple -command executed in the foreground, after expansion. -Also set to the full pathname used to invoke each command executed -and placed in the environment exported to that command. -When checking mail, this parameter holds the name of the mail file -currently being checked. </DL> <A NAME="lbAW"> </A> @@ -1872,6 +1863,18 @@ The following variables are set by the shell: <DL COMPACT> +<DT><B>_</B> + +<DD> +At shell startup, set to the absolute pathname used to invoke the +shell or shell script being executed as passed in the environment +or argument list. +Subsequently, expands to the last argument to the previous simple +command executed in the foreground, after expansion. +Also set to the full pathname used to invoke each command executed +and placed in the environment exported to that command. +When checking mail, this parameter holds the name of the mail file +currently being checked. <DT><B>BASH</B> <DD> @@ -7482,6 +7485,7 @@ the maximum number of history entries will be set to 500. When set to <B>On</B>, makes readline 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. <DT><B>input-meta (Off)</B> <DD> @@ -12583,7 +12587,7 @@ If set, when in <I>posix mode</I>, treats a single quote in a double-quoted parameter expansion as a special character. The single quotes must match (an even number) and the characters between the single quotes are considered -quoted. This is the behavior of posix mode through version 4.1. +quoted. This is the behavior of <posix mode through version 4.1. The default bash behavior remains as in previous versions. <DT><B>compat42</B> @@ -14040,7 +14044,7 @@ There may be only one active coprocess at a time. <HR> <TABLE WIDTH=100%> <TR> -<TH ALIGN=LEFT width=33%>GNU Bash 5.0<TH ALIGN=CENTER width=33%>2019 November 22<TH ALIGN=RIGHT width=33%>BASH(1) +<TH ALIGN=LEFT width=33%>GNU Bash 5.0<TH ALIGN=CENTER width=33%>2019 November 26<TH ALIGN=RIGHT width=33%>BASH(1) </TR> </TABLE> <HR> @@ -14146,6 +14150,6 @@ There may be only one active coprocess at a time. </DL> <HR> This document was created by man2html from bash.1.<BR> -Time: 22 November 2019 15:53:56 EST +Time: 26 November 2019 11:18:28 EST </BODY> </HTML> diff --git a/doc/bash.info b/doc/bash.info index 8cbaca8..c55464c 100644 --- a/doc/bash.info +++ b/doc/bash.info @@ -2,9 +2,9 @@ This is bash.info, produced by makeinfo version 6.7 from bashref.texi. This text is a brief description of the features that are present in the -Bash shell (version 5.0, 22 November 2019). +Bash shell (version 5.0, 26 November 2019). - This is Edition 5.0, last updated 22 November 2019, of 'The GNU Bash + This is Edition 5.0, last updated 26 November 2019, of 'The GNU Bash Reference Manual', for 'Bash', Version 5.0. Copyright (C) 1988-2018 Free Software Foundation, Inc. @@ -27,10 +27,10 @@ Bash Features ************* This text is a brief description of the features that are present in the -Bash shell (version 5.0, 22 November 2019). The Bash home page is +Bash shell (version 5.0, 26 November 2019). The Bash home page is <http://www.gnu.org/software/bash/>. - This is Edition 5.0, last updated 22 November 2019, of 'The GNU Bash + This is Edition 5.0, last updated 26 November 2019, of 'The GNU Bash Reference Manual', for 'Bash', Version 5.0. Bash contains features that appear in other popular shells, and some @@ -1176,27 +1176,28 @@ executed. Shell functions are executed in the current shell context; no new process is created to interpret them. Functions are declared using this syntax: - NAME () COMPOUND-COMMAND [ REDIRECTIONS ] + FNAME () COMPOUND-COMMAND [ REDIRECTIONS ] or - function NAME [()] COMPOUND-COMMAND [ REDIRECTIONS ] + function FNAME [()] COMPOUND-COMMAND [ REDIRECTIONS ] - This defines a shell function named NAME. The reserved word + 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, with one exception: If the 'function' reserved word is used, but the parentheses are not supplied, the braces are required. -COMPOUND-COMMAND is executed whenever NAME is specified as the name of a -command. When the shell is in POSIX mode (*note Bash POSIX Mode::), -NAME may not be the same as one of the special builtins (*note Special -Builtins::). Any redirections (*note Redirections::) associated with -the shell function are performed when the function is executed. - - A function definition may be deleted using the '-f' option to the -'unset' builtin (*note Bourne Shell Builtins::). +COMPOUND-COMMAND is executed whenever FNAME is specified as the name of +a command. 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::). In default 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. A function +definition may be 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. @@ -1479,16 +1480,6 @@ only be referenced; assignment to them is not allowed. be executed, if one is present. Otherwise, it is set to the filename used to invoke Bash, as given by argument zero. -'_' - ($_, an underscore.) At shell startup, set to the absolute - pathname used to invoke the shell or shell script being executed as - passed in the environment or argument list. Subsequently, expands - to the last argument to the previous simple command executed in the - foreground, after expansion. Also set to the full pathname used to - invoke each command executed and placed in the environment exported - to that command. When checking mail, this parameter holds the name - of the mail file. - File: bash.info, Node: Shell Expansions, Next: Redirections, Prev: Shell Parameters, Up: Basic Shell Features @@ -4859,6 +4850,16 @@ normally treat them specially. variables for controlling the job control facilities (*note Job Control Variables::). +'_' + ($_, an underscore.) At shell startup, set to the absolute + pathname used to invoke the shell or shell script being executed as + passed in the environment or argument list. Subsequently, expands + to the last argument to the previous simple command executed in the + foreground, after expansion. Also set to the full pathname used to + invoke each command executed and placed in the environment exported + to that command. When checking mail, this parameter holds the name + of the mail file. + 'BASH' The full pathname used to execute the current instance of Bash. @@ -7607,7 +7608,9 @@ Variable Settings to 'on' means that the text of the lines being edited will scroll horizontally on a single screen line when they are longer than the width of the screen, instead of wrapping onto - a new screen line. By default, this variable is set to 'off'. + 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 will enable eight-bit input (it will @@ -11197,35 +11200,35 @@ D.3 Parameter and Variable Index * $0: Special Parameters. (line 62) * $?: Special Parameters. (line 43) * $@: Special Parameters. (line 23) -* $_: Special Parameters. (line 71) +* $_: Bash Variables. (line 14) * *: Special Parameters. (line 9) * -: Special Parameters. (line 46) * 0: Special Parameters. (line 61) * ?: Special Parameters. (line 42) * @: Special Parameters. (line 22) -* _: Special Parameters. (line 70) +* _: Bash Variables. (line 13) * auto_resume: Job Control Variables. (line 6) -* BASH: Bash Variables. (line 13) -* BASHOPTS: Bash Variables. (line 16) -* BASHPID: Bash Variables. (line 25) -* BASH_ALIASES: Bash Variables. (line 32) -* BASH_ARGC: Bash Variables. (line 41) -* BASH_ARGV: Bash Variables. (line 54) -* BASH_ARGV0: Bash Variables. (line 66) -* BASH_CMDS: Bash Variables. (line 74) -* BASH_COMMAND: Bash Variables. (line 83) -* BASH_COMPAT: Bash Variables. (line 90) -* BASH_ENV: Bash Variables. (line 105) -* BASH_EXECUTION_STRING: Bash Variables. (line 111) -* BASH_LINENO: Bash Variables. (line 114) -* BASH_LOADABLES_PATH: Bash Variables. (line 122) -* BASH_REMATCH: Bash Variables. (line 126) -* BASH_SOURCE: Bash Variables. (line 134) -* BASH_SUBSHELL: Bash Variables. (line 141) -* BASH_VERSINFO: Bash Variables. (line 147) -* BASH_VERSION: Bash Variables. (line 170) -* BASH_XTRACEFD: Bash Variables. (line 173) +* BASH: Bash Variables. (line 23) +* BASHOPTS: Bash Variables. (line 26) +* BASHPID: Bash Variables. (line 35) +* BASH_ALIASES: Bash Variables. (line 42) +* BASH_ARGC: Bash Variables. (line 51) +* BASH_ARGV: Bash Variables. (line 64) +* BASH_ARGV0: Bash Variables. (line 76) +* BASH_CMDS: Bash Variables. (line 84) +* BASH_COMMAND: Bash Variables. (line 93) +* BASH_COMPAT: Bash Variables. (line 100) +* BASH_ENV: Bash Variables. (line 115) +* BASH_EXECUTION_STRING: Bash Variables. (line 121) +* BASH_LINENO: Bash Variables. (line 124) +* BASH_LOADABLES_PATH: Bash Variables. (line 132) +* BASH_REMATCH: Bash Variables. (line 136) +* BASH_SOURCE: Bash Variables. (line 144) +* BASH_SUBSHELL: Bash Variables. (line 151) +* BASH_VERSINFO: Bash Variables. (line 157) +* BASH_VERSION: Bash Variables. (line 180) +* BASH_XTRACEFD: Bash Variables. (line 183) * bell-style: Readline Init File Syntax. (line 38) * bind-tty-special-chars: Readline Init File Syntax. @@ -11234,12 +11237,12 @@ D.3 Parameter and Variable Index (line 50) * CDPATH: Bourne Shell Variables. (line 9) -* CHILD_MAX: Bash Variables. (line 184) +* CHILD_MAX: Bash Variables. (line 194) * colored-completion-prefix: Readline Init File Syntax. (line 55) * colored-stats: Readline Init File Syntax. (line 62) -* COLUMNS: Bash Variables. (line 191) +* COLUMNS: Bash Variables. (line 201) * comment-begin: Readline Init File Syntax. (line 68) * completion-display-width: Readline Init File Syntax. @@ -11252,158 +11255,158 @@ D.3 Parameter and Variable Index (line 91) * completion-query-items: Readline Init File Syntax. (line 98) -* COMPREPLY: Bash Variables. (line 243) -* COMP_CWORD: Bash Variables. (line 197) -* COMP_KEY: Bash Variables. (line 226) -* COMP_LINE: Bash Variables. (line 203) -* COMP_POINT: Bash Variables. (line 208) -* COMP_TYPE: Bash Variables. (line 216) -* COMP_WORDBREAKS: Bash Variables. (line 230) -* COMP_WORDS: Bash Variables. (line 236) +* COMPREPLY: Bash Variables. (line 253) +* COMP_CWORD: Bash Variables. (line 207) +* COMP_KEY: Bash Variables. (line 236) +* COMP_LINE: Bash Variables. (line 213) +* COMP_POINT: Bash Variables. (line 218) +* COMP_TYPE: Bash Variables. (line 226) +* COMP_WORDBREAKS: Bash Variables. (line 240) +* COMP_WORDS: Bash Variables. (line 246) * convert-meta: Readline Init File Syntax. (line 108) -* COPROC: Bash Variables. (line 249) -* DIRSTACK: Bash Variables. (line 253) +* COPROC: Bash Variables. (line 259) +* DIRSTACK: Bash Variables. (line 263) * disable-completion: Readline Init File Syntax. (line 116) * echo-control-characters: Readline Init File Syntax. (line 121) * editing-mode: Readline Init File Syntax. (line 126) -* EMACS: Bash Variables. (line 263) +* EMACS: Bash Variables. (line 273) * emacs-mode-string: Readline Init File Syntax. (line 132) * enable-bracketed-paste: Readline Init File Syntax. (line 142) * enable-keypad: Readline Init File Syntax. (line 150) -* ENV: Bash Variables. (line 268) -* EPOCHREALTIME: Bash Variables. (line 272) -* EPOCHSECONDS: Bash Variables. (line 280) -* EUID: Bash Variables. (line 287) -* EXECIGNORE: Bash Variables. (line 291) +* ENV: Bash Variables. (line 278) +* EPOCHREALTIME: Bash Variables. (line 282) +* EPOCHSECONDS: Bash Variables. (line 290) +* EUID: Bash Variables. (line 297) +* EXECIGNORE: Bash Variables. (line 301) * expand-tilde: Readline Init File Syntax. (line 161) -* FCEDIT: Bash Variables. (line 304) -* FIGNORE: Bash Variables. (line 308) -* FUNCNAME: Bash Variables. (line 314) -* FUNCNEST: Bash Variables. (line 331) -* GLOBIGNORE: Bash Variables. (line 336) -* GROUPS: Bash Variables. (line 343) -* histchars: Bash Variables. (line 349) -* HISTCMD: Bash Variables. (line 364) -* HISTCONTROL: Bash Variables. (line 369) -* HISTFILE: Bash Variables. (line 385) -* HISTFILESIZE: Bash Variables. (line 389) -* HISTIGNORE: Bash Variables. (line 400) +* FCEDIT: Bash Variables. (line 314) +* FIGNORE: Bash Variables. (line 318) +* FUNCNAME: Bash Variables. (line 324) +* FUNCNEST: Bash Variables. (line 341) +* GLOBIGNORE: Bash Variables. (line 346) +* GROUPS: Bash Variables. (line 353) +* histchars: Bash Variables. (line 359) +* HISTCMD: Bash Variables. (line 374) +* HISTCONTROL: Bash Variables. (line 379) +* HISTFILE: Bash Variables. (line 395) +* HISTFILESIZE: Bash Variables. (line 399) +* HISTIGNORE: Bash Variables. (line 410) * history-preserve-point: Readline Init File Syntax. (line 165) * history-size: Readline Init File Syntax. (line 171) -* HISTSIZE: Bash Variables. (line 420) -* HISTTIMEFORMAT: Bash Variables. (line 427) +* HISTSIZE: Bash Variables. (line 430) +* HISTTIMEFORMAT: Bash Variables. (line 437) * HOME: Bourne Shell Variables. (line 13) * horizontal-scroll-mode: Readline Init File Syntax. (line 180) -* HOSTFILE: Bash Variables. (line 435) -* HOSTNAME: Bash Variables. (line 446) -* HOSTTYPE: Bash Variables. (line 449) +* HOSTFILE: Bash Variables. (line 445) +* HOSTNAME: Bash Variables. (line 456) +* HOSTTYPE: Bash Variables. (line 459) * IFS: Bourne Shell Variables. (line 18) -* IGNOREEOF: Bash Variables. (line 452) +* IGNOREEOF: Bash Variables. (line 462) * input-meta: Readline Init File Syntax. - (line 187) -* INPUTRC: Bash Variables. (line 462) -* INSIDE_EMACS: Bash Variables. (line 466) + (line 189) +* INPUTRC: Bash Variables. (line 472) +* INSIDE_EMACS: Bash Variables. (line 476) * isearch-terminators: Readline Init File Syntax. - (line 195) + (line 197) * keymap: Readline Init File Syntax. - (line 202) -* LANG: Bash Variables. (line 472) -* LC_ALL: Bash Variables. (line 476) -* LC_COLLATE: Bash Variables. (line 480) -* LC_CTYPE: Bash Variables. (line 487) + (line 204) +* LANG: Bash Variables. (line 482) +* LC_ALL: Bash Variables. (line 486) +* LC_COLLATE: Bash Variables. (line 490) +* LC_CTYPE: Bash Variables. (line 497) * LC_MESSAGES: Locale Translation. (line 11) -* LC_MESSAGES <1>: Bash Variables. (line 492) -* LC_NUMERIC: Bash Variables. (line 496) -* LC_TIME: Bash Variables. (line 500) -* LINENO: Bash Variables. (line 504) -* LINES: Bash Variables. (line 509) -* MACHTYPE: Bash Variables. (line 515) +* LC_MESSAGES <1>: Bash Variables. (line 502) +* LC_NUMERIC: Bash Variables. (line 506) +* LC_TIME: Bash Variables. (line 510) +* LINENO: Bash Variables. (line 514) +* LINES: Bash Variables. (line 519) +* MACHTYPE: Bash Variables. (line 525) * MAIL: Bourne Shell Variables. (line 22) -* MAILCHECK: Bash Variables. (line 519) +* MAILCHECK: Bash Variables. (line 529) * MAILPATH: Bourne Shell Variables. (line 27) -* MAPFILE: Bash Variables. (line 527) +* MAPFILE: Bash Variables. (line 537) * mark-modified-lines: Readline Init File Syntax. - (line 232) + (line 234) * mark-symlinked-directories: Readline Init File Syntax. - (line 237) + (line 239) * match-hidden-files: Readline Init File Syntax. - (line 242) + (line 244) * menu-complete-display-prefix: Readline Init File Syntax. - (line 249) + (line 251) * meta-flag: Readline Init File Syntax. - (line 187) -* OLDPWD: Bash Variables. (line 531) + (line 189) +* OLDPWD: Bash Variables. (line 541) * OPTARG: Bourne Shell Variables. (line 34) -* OPTERR: Bash Variables. (line 534) +* OPTERR: Bash Variables. (line 544) * OPTIND: Bourne Shell Variables. (line 38) -* OSTYPE: Bash Variables. (line 538) +* OSTYPE: Bash Variables. (line 548) * output-meta: Readline Init File Syntax. - (line 254) + (line 256) * page-completions: Readline Init File Syntax. - (line 260) + (line 262) * PATH: Bourne Shell Variables. (line 42) -* PIPESTATUS: Bash Variables. (line 541) -* POSIXLY_CORRECT: Bash Variables. (line 546) -* PPID: Bash Variables. (line 556) -* PROMPT_COMMAND: Bash Variables. (line 560) -* PROMPT_DIRTRIM: Bash Variables. (line 564) -* PS0: Bash Variables. (line 570) +* PIPESTATUS: Bash Variables. (line 551) +* POSIXLY_CORRECT: Bash Variables. (line 556) +* PPID: Bash Variables. (line 566) +* PROMPT_COMMAND: Bash Variables. (line 570) +* PROMPT_DIRTRIM: Bash Variables. (line 574) +* PS0: Bash Variables. (line 580) * PS1: Bourne Shell Variables. (line 48) * PS2: Bourne Shell Variables. (line 53) -* PS3: Bash Variables. (line 575) -* PS4: Bash Variables. (line 580) -* PWD: Bash Variables. (line 588) -* RANDOM: Bash Variables. (line 591) -* READLINE_LINE: Bash Variables. (line 597) -* READLINE_POINT: Bash Variables. (line 601) -* REPLY: Bash Variables. (line 605) +* PS3: Bash Variables. (line 585) +* PS4: Bash Variables. (line 590) +* PWD: Bash Variables. (line 598) +* RANDOM: Bash Variables. (line 601) +* READLINE_LINE: Bash Variables. (line 607) +* READLINE_POINT: Bash Variables. (line 611) +* REPLY: Bash Variables. (line 615) * revert-all-at-newline: Readline Init File Syntax. - (line 270) -* SECONDS: Bash Variables. (line 608) -* SHELL: Bash Variables. (line 615) -* SHELLOPTS: Bash Variables. (line 620) -* SHLVL: Bash Variables. (line 629) + (line 272) +* SECONDS: Bash Variables. (line 618) +* SHELL: Bash Variables. (line 625) +* SHELLOPTS: Bash Variables. (line 630) +* SHLVL: Bash Variables. (line 639) * show-all-if-ambiguous: Readline Init File Syntax. - (line 276) + (line 278) * show-all-if-unmodified: Readline Init File Syntax. - (line 282) + (line 284) * show-mode-in-prompt: Readline Init File Syntax. - (line 291) + (line 293) * skip-completed-text: Readline Init File Syntax. - (line 297) -* SRANDOM: Bash Variables. (line 634) + (line 299) +* SRANDOM: Bash Variables. (line 644) * TEXTDOMAIN: Locale Translation. (line 11) * TEXTDOMAINDIR: Locale Translation. (line 11) -* TIMEFORMAT: Bash Variables. (line 643) -* TMOUT: Bash Variables. (line 681) -* TMPDIR: Bash Variables. (line 693) -* UID: Bash Variables. (line 697) +* TIMEFORMAT: Bash Variables. (line 653) +* TMOUT: Bash Variables. (line 691) +* TMPDIR: Bash Variables. (line 703) +* UID: Bash Variables. (line 707) * vi-cmd-mode-string: Readline Init File Syntax. - (line 310) + (line 312) * vi-ins-mode-string: Readline Init File Syntax. - (line 321) + (line 323) * visible-stats: Readline Init File Syntax. - (line 332) + (line 334) File: bash.info, Node: Function Index, Next: Concept Index, Prev: Variable Index, Up: Indexes @@ -11794,109 +11797,109 @@ Node: Command Grouping40662 Node: Coprocesses42141 Node: GNU Parallel44044 Node: Shell Functions48345 -Node: Shell Parameters55428 -Node: Positional Parameters59841 -Node: Special Parameters60741 -Node: Shell Expansions64495 -Node: Brace Expansion66618 -Node: Tilde Expansion69341 -Node: Shell Parameter Expansion71958 -Node: Command Substitution86391 -Node: Arithmetic Expansion87746 -Node: Process Substitution88678 -Node: Word Splitting89798 -Node: Filename Expansion91742 -Node: Pattern Matching94291 -Node: Quote Removal98277 -Node: Redirections98572 -Node: Executing Commands108130 -Node: Simple Command Expansion108800 -Node: Command Search and Execution110754 -Node: Command Execution Environment113130 -Node: Environment116114 -Node: Exit Status117773 -Node: Signals119443 -Node: Shell Scripts121410 -Node: Shell Builtin Commands124422 -Node: Bourne Shell Builtins126460 -Node: Bash Builtins147376 -Node: Modifying Shell Behavior176301 -Node: The Set Builtin176646 -Node: The Shopt Builtin187059 -Node: Special Builtins204729 -Node: Shell Variables205708 -Node: Bourne Shell Variables206145 -Node: Bash Variables208249 -Node: Bash Features239661 -Node: Invoking Bash240560 -Node: Bash Startup Files246573 -Node: Interactive Shells251676 -Node: What is an Interactive Shell?252086 -Node: Is this Shell Interactive?252735 -Node: Interactive Shell Behavior253550 -Node: Bash Conditional Expressions257037 -Node: Shell Arithmetic261614 -Node: Aliases264554 -Node: Arrays267174 -Node: The Directory Stack272539 -Node: Directory Stack Builtins273323 -Node: Controlling the Prompt276291 -Node: The Restricted Shell279212 -Node: Bash POSIX Mode281694 -Node: Job Control292627 -Node: Job Control Basics293087 -Node: Job Control Builtins298051 -Node: Job Control Variables303197 -Node: Command Line Editing304353 -Node: Introduction and Notation306024 -Node: Readline Interaction307647 -Node: Readline Bare Essentials308838 -Node: Readline Movement Commands310621 -Node: Readline Killing Commands311581 -Node: Readline Arguments313499 -Node: Searching314543 -Node: Readline Init File316729 -Node: Readline Init File Syntax317988 -Node: Conditional Init Constructs338427 -Node: Sample Init File342623 -Node: Bindable Readline Commands345740 -Node: Commands For Moving346944 -Node: Commands For History348803 -Node: Commands For Text353098 -Node: Commands For Killing356486 -Node: Numeric Arguments359301 -Node: Commands For Completion360440 -Node: Keyboard Macros364631 -Node: Miscellaneous Commands365318 -Node: Readline vi Mode371271 -Node: Programmable Completion372178 -Node: Programmable Completion Builtins379958 -Node: A Programmable Completion Example390653 -Node: Using History Interactively395900 -Node: Bash History Facilities396584 -Node: Bash History Builtins399589 -Node: History Interaction404120 -Node: Event Designators407740 -Node: Word Designators409094 -Node: Modifiers410854 -Node: Installing Bash412665 -Node: Basic Installation413802 -Node: Compilers and Options417060 -Node: Compiling For Multiple Architectures417801 -Node: Installation Names419494 -Node: Specifying the System Type420312 -Node: Sharing Defaults421028 -Node: Operation Controls421701 -Node: Optional Features422659 -Node: Reporting Bugs433177 -Node: Major Differences From The Bourne Shell434371 -Node: GNU Free Documentation License451223 -Node: Indexes476400 -Node: Builtin Index476854 -Node: Reserved Word Index483681 -Node: Variable Index486129 -Node: Function Index501953 -Node: Concept Index515392 +Node: Shell Parameters55552 +Node: Positional Parameters59965 +Node: Special Parameters60865 +Node: Shell Expansions64089 +Node: Brace Expansion66212 +Node: Tilde Expansion68935 +Node: Shell Parameter Expansion71552 +Node: Command Substitution85985 +Node: Arithmetic Expansion87340 +Node: Process Substitution88272 +Node: Word Splitting89392 +Node: Filename Expansion91336 +Node: Pattern Matching93885 +Node: Quote Removal97871 +Node: Redirections98166 +Node: Executing Commands107724 +Node: Simple Command Expansion108394 +Node: Command Search and Execution110348 +Node: Command Execution Environment112724 +Node: Environment115708 +Node: Exit Status117367 +Node: Signals119037 +Node: Shell Scripts121004 +Node: Shell Builtin Commands124016 +Node: Bourne Shell Builtins126054 +Node: Bash Builtins146970 +Node: Modifying Shell Behavior175895 +Node: The Set Builtin176240 +Node: The Shopt Builtin186653 +Node: Special Builtins204323 +Node: Shell Variables205302 +Node: Bourne Shell Variables205739 +Node: Bash Variables207843 +Node: Bash Features239785 +Node: Invoking Bash240684 +Node: Bash Startup Files246697 +Node: Interactive Shells251800 +Node: What is an Interactive Shell?252210 +Node: Is this Shell Interactive?252859 +Node: Interactive Shell Behavior253674 +Node: Bash Conditional Expressions257161 +Node: Shell Arithmetic261738 +Node: Aliases264678 +Node: Arrays267298 +Node: The Directory Stack272663 +Node: Directory Stack Builtins273447 +Node: Controlling the Prompt276415 +Node: The Restricted Shell279336 +Node: Bash POSIX Mode281818 +Node: Job Control292751 +Node: Job Control Basics293211 +Node: Job Control Builtins298175 +Node: Job Control Variables303321 +Node: Command Line Editing304477 +Node: Introduction and Notation306148 +Node: Readline Interaction307771 +Node: Readline Bare Essentials308962 +Node: Readline Movement Commands310745 +Node: Readline Killing Commands311705 +Node: Readline Arguments313623 +Node: Searching314667 +Node: Readline Init File316853 +Node: Readline Init File Syntax318112 +Node: Conditional Init Constructs338642 +Node: Sample Init File342838 +Node: Bindable Readline Commands345955 +Node: Commands For Moving347159 +Node: Commands For History349018 +Node: Commands For Text353313 +Node: Commands For Killing356701 +Node: Numeric Arguments359516 +Node: Commands For Completion360655 +Node: Keyboard Macros364846 +Node: Miscellaneous Commands365533 +Node: Readline vi Mode371486 +Node: Programmable Completion372393 +Node: Programmable Completion Builtins380173 +Node: A Programmable Completion Example390868 +Node: Using History Interactively396115 +Node: Bash History Facilities396799 +Node: Bash History Builtins399804 +Node: History Interaction404335 +Node: Event Designators407955 +Node: Word Designators409309 +Node: Modifiers411069 +Node: Installing Bash412880 +Node: Basic Installation414017 +Node: Compilers and Options417275 +Node: Compiling For Multiple Architectures418016 +Node: Installation Names419709 +Node: Specifying the System Type420527 +Node: Sharing Defaults421243 +Node: Operation Controls421916 +Node: Optional Features422874 +Node: Reporting Bugs433392 +Node: Major Differences From The Bourne Shell434586 +Node: GNU Free Documentation License451438 +Node: Indexes476615 +Node: Builtin Index477069 +Node: Reserved Word Index483896 +Node: Variable Index486344 +Node: Function Index502168 +Node: Concept Index515607 End Tag Table diff --git a/doc/bash.pdf b/doc/bash.pdf Binary files differindex d3f7449..d98df24 100644 --- a/doc/bash.pdf +++ b/doc/bash.pdf diff --git a/doc/bash.ps b/doc/bash.ps index 43378ee..5a6d9cb 100644 --- a/doc/bash.ps +++ b/doc/bash.ps @@ -1,6 +1,6 @@ %!PS-Adobe-3.0 %%Creator: groff version 1.22.4 -%%CreationDate: Fri Nov 22 15:53:55 2019 +%%CreationDate: Tue Nov 26 11:15:40 2019 %%DocumentNeededResources: font Times-Roman %%+ font Times-Bold %%+ font Times-Italic @@ -245,7 +245,7 @@ BP 108 96 Q(ain SHell)-.05 E F1(SYNOPSIS)72 112.8 Q/F2 10/Times-Bold@0 SF (bash)108 124.8 Q F0([options] [command_string | \214le])2.5 E F1 (COPYRIGHT)72 141.6 Q F0(Bash is Cop)108 153.6 Q -(yright \251 1989-2018 by the Free Softw)-.1 E(are F)-.1 E +(yright \251 1989-2019 by the Free Softw)-.1 E(are F)-.1 E (oundation, Inc.)-.15 E F1(DESCRIPTION)72 170.4 Q F2(Bash)108 182.4 Q F0 .973(is an)3.474 F F2(sh)3.473 E F0 .973 (-compatible command language interpreter that e)B -.15(xe)-.15 G .973 @@ -340,7 +340,7 @@ F .475(xtended deb)-.15 F(ug-)-.2 E (~/.bashr)3.598 E(c)-.37 E F0 1.598(if the)4.408 F(shell is interacti) 144 710.4 Q .3 -.15(ve \()-.25 H(see).15 E F4(INV)2.5 E(OCA)-.405 E (TION)-.855 E F0(belo)2.25 E(w\).)-.25 E(GNU Bash 5.0)72 768 Q(2019 No) -136.385 E -.15(ve)-.15 G(mber 22).15 E(1)190.545 E 0 Cg EP +136.385 E -.15(ve)-.15 G(mber 26).15 E(1)190.545 E 0 Cg EP %%Page: 2 2 %%BeginPageSetup BP @@ -464,7 +464,7 @@ Q F1(bash)5.306 E F0 2.806(is started non-interacti)5.306 F -.15(ve)-.25 G(ly).15 E 5.306(,t)-.65 G 5.306(or)-5.306 G 2.806 (un a shell script, for e)-5.306 F 2.805(xample, it looks for the v)-.15 F(ariable)-.25 E(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G -(mber 22).15 E(2)190.545 E 0 Cg EP +(mber 26).15 E(2)190.545 E 0 Cg EP %%Page: 3 3 %%BeginPageSetup BP @@ -598,7 +598,7 @@ F .389(wed by)-.25 F F2(blank)2.889 E F0 .389(-separated w)B .389 -.15(xe)-.15 G(cuted,).15 E(and is passed as ar)108 722.4 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(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 22) +-2.5 E(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 26) .15 E(3)190.545 E 0 Cg EP %%Page: 4 4 %%BeginPageSetup @@ -717,7 +717,7 @@ or more pipelines separated by the)108 597.6 R F2(&&)2.672 E F0(and) (The return status of AND)5.434 F(and OR lists is the e)108 705.6 Q (xit status of the last command e)-.15 E -.15(xe)-.15 G (cuted in the list.).15 E(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15 -(ve)-.15 G(mber 22).15 E(4)190.545 E 0 Cg EP +(ve)-.15 G(mber 26).15 E(4)190.545 E 0 Cg EP %%Page: 5 5 %%BeginPageSetup BP @@ -850,7 +850,7 @@ F0 1.13(is the portion of the)3.63 F(string matching the)144 679.2 Q F2 (n)2.5 E F0(th parenthesized sube)A(xpression.)-.15 E .786 (Expressions may be combined using the follo)144 697.2 R .785 (wing operators, listed in decreasing order of prece-)-.25 F(dence:)144 -709.2 Q(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 22) +709.2 Q(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 26) .15 E(5)190.545 E 0 Cg EP %%Page: 6 6 %%BeginPageSetup @@ -1003,7 +1003,7 @@ F1(elif)2.977 E F2(list)2.977 E F0 1.087(is e)144 712.8 R -.15(xe)-.15 G 3.74 E F2(list)3.74 E F0 1.239(is e)3.739 F -.15(xe)-.15 G 1.239 (cuted, if present.).15 F 1.239(The e)6.239 F 1.239(xit status is the e) -.15 F(xit)-.15 E(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G -(mber 22).15 E(6)190.545 E 0 Cg EP +(mber 26).15 E(6)190.545 E 0 Cg EP %%Page: 7 7 %%BeginPageSetup BP @@ -1089,15 +1089,15 @@ Q F0 2.697(As)108 465.6 S .198 .198(imple command and e)-2.698 F -.15(xe)-.15 G .198 (cutes a compound command with).15 F 2.5(an)108 477.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 F2(name)108 494.4 +(Shell functions are declared as follo)5 E(ws:)-.25 E F2(fname)108 494.4 Q F0(\(\))2.5 E F2(compound\255command)2.5 E F0([)2.5 E F2 -.37(re)C -(dir).37 E(ection)-.37 E F0(])A F1(function)108 506.4 Q F2(name)2.5 E F0 -([\(\)])2.5 E F2(compound\255command)2.5 E F0([)2.5 E F2 -.37(re)C(dir) -.37 E(ection)-.37 E F0(])A .402(This de\214nes a function named)144 -518.4 R F2(name)2.902 E F0 5.402(.T)C .402(he reserv)-5.402 F .402(ed w) --.15 F(ord)-.1 E F1(function)2.902 E F0 .402(is optional.)2.902 F .402 -(If the)5.402 F F1(function)2.902 E F0(re-)2.902 E(serv)144 530.4 Q .68 -(ed w)-.15 F .68(ord is supplied, the parentheses are optional.)-.1 F +(dir).37 E(ection)-.37 E F0(])A F1(function)108 506.4 Q F2(fname)2.5 E +F0([\(\)])2.5 E F2(compound\255command)2.5 E F0([)2.5 E F2 -.37(re)C +(dir).37 E(ection)-.37 E F0(])A .217(This de\214nes a function named)144 +518.4 R F2(fname)2.717 E F0 5.217(.T)C .217(he reserv)-5.217 F .217 +(ed w)-.15 F(ord)-.1 E F1(function)2.717 E F0 .216(is optional.)2.717 F +.216(If the)5.216 F F1(function)2.716 E F0(re-)2.716 E(serv)144 530.4 Q +.68(ed w)-.15 F .68(ord is supplied, the parentheses are optional.)-.1 F (The)5.68 E F2(body)3.18 E F0 .68(of the function is the compound)3.18 F (command)144 542.4 Q F2(compound\255command)2.784 E F0(\(see)3.354 E F1 .084(Compound Commands)2.584 F F0(abo)2.584 E -.15(ve)-.15 G 2.584 @@ -1107,2168 +1107,2173 @@ Q F0(\(\))2.5 E F2(compound\255command)2.5 E F0([)2.5 E F2 -.37(re)C (Compound Commands)2.544 F F0(abo)144 566.4 Q -.15(ve)-.15 G 2.902(,w) .15 G .402(ith one e)-2.902 F .402(xception: If the)-.15 F F1(function) 2.901 E F0(reserv)2.901 E .401(ed w)-.15 F .401(ord is used, b)-.1 F -.401(ut the parentheses are not sup-)-.2 F .047 +.401(ut the parentheses are not sup-)-.2 F 1.045 (plied, the braces are required.)144 578.4 R F2(compound\255command) -5.047 E F0 .047(is e)2.547 F -.15(xe)-.15 G .047(cuted whene).15 F -.15 -(ve)-.25 G(r).15 E F2(name)2.547 E F0 .047(is speci\214ed as the)2.547 F -1.68(name of a simple command.)144 590.4 R 1.68(When in)6.68 F F2 1.68 -(posix mode)4.18 F F0(,)A F2(name)4.179 E F0 1.679 -(may not be the name of one of the)4.179 F(POSIX)144 602.4 Q F2 .014 -(special b)2.513 F(uiltins)-.2 E F0 5.014(.A)C .314 -.15(ny r)-5.014 H -.014(edirections \(see).15 F F3(REDIRECTION)2.514 E F0(belo)2.264 E .014 -(w\) speci\214ed when a function is)-.25 F 1.12 -(de\214ned are performed when the function is e)144 614.4 R -.15(xe)-.15 -G 3.619(cuted. The).15 F -.15(ex)3.619 G 1.119 -(it status of a function de\214nition is).15 F .217(zero unless a synta\ -x error occurs or a readonly function with the same name already e)144 -626.4 R 2.717(xists. When)-.15 F -.15(exe)144 638.4 S .546(cuted, the e) -.15 F .546(xit status of a function is the e)-.15 F .545 -(xit status of the last command e)-.15 F -.15(xe)-.15 G .545 -(cuted in the body).15 F(.)-.65 E(\(See)144 650.4 Q F3(FUNCTIONS)2.5 E -F0(belo)2.25 E -.65(w.)-.25 G(\)).65 E/F4 10.95/Times-Bold@0 SF -(COMMENTS)72 667.2 Q F0 .982(In a non-interacti)108 679.2 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 F1(interacti)3.482 E -.1(ve)-.1 G -(_comments).1 E F0 .982(option to the)3.482 F F1(shopt)3.482 E F0 -.2 -(bu)108 691.2 S .952(iltin is enabled \(see).2 F F3 .952(SHELL B)3.452 F -(UIL)-.09 E .952(TIN COMMANDS)-.828 F F0(belo)3.202 E .952(w\), a w)-.25 -F .952(ord be)-.1 F .952(ginning with)-.15 F F1(#)3.451 E F0 .951 -(causes that w)3.451 F(ord)-.1 E .604 -(and all remaining characters on that line to be ignored.)108 703.2 R -.605(An interacti)5.605 F .905 -.15(ve s)-.25 H .605(hell without the) -.15 F F1(interacti)3.105 E -.1(ve)-.1 G(_com-).1 E(ments)108 715.2 Q F0 -.34(option enabled does not allo)2.84 F 2.84(wc)-.25 G 2.84 -(omments. The)-2.84 F F1(interacti)2.84 E -.1(ve)-.1 G(_comments).1 E F0 -.34(option is on by def)2.84 F .34(ault in in-)-.1 F(teracti)108 727.2 Q -.3 -.15(ve s)-.25 H(hells.).15 E(GNU Bash 5.0)72 768 Q(2019 No)136.385 E --.15(ve)-.15 G(mber 22).15 E(7)190.545 E 0 Cg EP +6.046 E F0 1.046(is e)3.546 F -.15(xe)-.15 G 1.046(cuted whene).15 F +-.15(ve)-.25 G(r).15 E F2(fname)3.546 E F0 1.046(is speci\214ed as)3.546 +F .366(the name of a simple command.)144 590.4 R .366(When in)5.366 F F2 +.366(posix mode)2.866 F F0(,)A F2(fname)2.866 E F0 .365(must be a v) +2.865 F .365(alid shell)-.25 F F2(name)2.865 E F0 .365(and may)2.865 F +.893(not be the name of one of the POSIX)144 602.4 R F2 .893(special b) +3.393 F(uiltins)-.2 E F0 5.893(.I)C 3.393(nd)-5.893 G(ef)-3.393 E .894 +(ault mode, a function name can be)-.1 F(an)144 614.4 Q 3.65(yu)-.15 G +1.15(nquoted shell w)-3.65 F 1.15(ord that does not contain)-.1 F F1($) +3.65 E F0 6.15(.A)C 1.45 -.15(ny r)-6.15 H 1.149(edirections \(see).15 F +F3(REDIRECTION)3.649 E F0(belo)3.399 E(w\))-.25 E .417(speci\214ed when\ + a function is de\214ned are performed when the function is e)144 626.4 +R -.15(xe)-.15 G 2.917(cuted. The).15 F -.15(ex)2.917 G .417(it status) +.15 F .733(of a function de\214nition is zero unless a syntax error occ\ +urs or a readonly function with the same)144 638.4 R .177 +(name already e)144 650.4 R 2.677(xists. When)-.15 F -.15(exe)2.677 G +.178(cuted, the e).15 F .178(xit status of a function is the e)-.15 F +.178(xit status of the last com-)-.15 F(mand e)144 662.4 Q -.15(xe)-.15 +G(cuted in the body).15 E 5(.\()-.65 G(See)-5 E F3(FUNCTIONS)2.5 E F0 +(belo)2.25 E -.65(w.)-.25 G(\)).65 E/F4 10.95/Times-Bold@0 SF(COMMENTS) +72 679.2 Q F0 .982(In a non-interacti)108 691.2 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 F1(interacti)3.482 E -.1(ve)-.1 G(_comments).1 +E F0 .982(option to the)3.482 F F1(shopt)3.482 E F0 -.2(bu)108 703.2 S +.951(iltin is enabled \(see).2 F F3 .952(SHELL B)3.451 F(UIL)-.09 E .952 +(TIN COMMANDS)-.828 F F0(belo)3.202 E .952(w\), a w)-.25 F .952(ord be) +-.1 F .952(ginning with)-.15 F F1(#)3.452 E F0 .952(causes that w)3.452 +F(ord)-.1 E .605 +(and all remaining characters on that line to be ignored.)108 715.2 R +.604(An interacti)5.605 F .904 -.15(ve s)-.25 H .604(hell without the) +.15 F F1(interacti)3.104 E -.1(ve)-.1 G(_com-).1 E(ments)108 727.2 Q F0 +1.336(option enabled does not allo)3.836 F 3.836(wc)-.25 G 3.836 +(omments. The)-3.836 F F1(interacti)3.836 E -.1(ve)-.1 G(_comments).1 E +F0 1.337(option is on by def)3.837 F 1.337(ault in)-.1 F(GNU Bash 5.0)72 +768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E(7)190.545 E 0 Cg EP %%Page: 8 8 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F -(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10.95 -/Times-Bold@0 SF -.11(QU)72 84 S -.438(OT).11 G(ING).438 E/F2 10 -/Times-Italic@0 SF(Quoting)108 96 Q F0 .477(is used to remo)2.977 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 .478(Quoting can be)5.478 F .185 +(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E(interacti)108 84 Q +.3 -.15(ve s)-.25 H(hells.).15 E/F1 10.95/Times-Bold@0 SF -.11(QU)72 +100.8 S -.438(OT).11 G(ING).438 E/F2 10/Times-Italic@0 SF(Quoting)108 +112.8 Q F0 .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 -108 R -.15(ve)-.25 G .185(nt reserv).15 F .184(ed w)-.15 F .184 -(ords from being recognized as)-.1 F(such, and to pre)108 120 Q -.15(ve) --.25 G(nt parameter e).15 E(xpansion.)-.15 E .288(Each of the)108 136.8 -R F2(metac)2.788 E(har)-.15 E(acter)-.15 E(s)-.1 E F0 .288(listed abo) -2.788 F .588 -.15(ve u)-.15 H(nder).15 E/F3 9/Times-Bold@0 SF -(DEFINITIONS)2.788 E F0 .288 +124.8 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 136.8 Q -.15 +(ve)-.25 G(nt parameter e).15 E(xpansion.)-.15 E .289(Each of the)108 +153.6 R F2(metac)2.789 E(har)-.15 E(acter)-.15 E(s)-.1 E F0 .288 +(listed abo)2.789 F .588 -.15(ve u)-.15 H(nder).15 E/F3 9/Times-Bold@0 +SF(DEFINITIONS)2.788 E F0 .288 (has special meaning to the shell and must be)2.538 F -(quoted if it is to represent itself.)108 148.8 Q 1.345 -(When the command history e)108 165.6 R 1.344(xpansion f)-.15 F 1.344 +(quoted if it is to represent itself.)108 165.6 Q 1.344 +(When the command history e)108 182.4 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 F0(belo)3.594 E 1.344(w\), the) --.25 F F2(history e)108 177.6 Q(xpansion)-.2 E F0(character)2.5 E 2.5 +(YE)-.315 G(XP)-3.594 E(ANSION)-.666 E F0(belo)3.595 E 1.345(w\), the) +-.25 F F2(history e)108 194.4 Q(xpansion)-.2 E F0(character)2.5 E 2.5 (,u)-.4 G(sually)-2.5 E/F4 10/Times-Bold@0 SF(!)2.5 E F0 2.5(,m)C (ust be quoted to pre)-2.5 E -.15(ve)-.25 G(nt history e).15 E -(xpansion.)-.15 E(There are three quoting mechanisms: the)108 194.4 Q F2 +(xpansion.)-.15 E(There are three quoting mechanisms: the)108 211.2 Q F2 (escape c)2.69 E(har)-.15 E(acter)-.15 E F0 2.5(,s).73 G -(ingle quotes, and double quotes.)-2.5 E 2.962(An)108 211.2 S .463 -(on-quoted backslash \()-2.962 F F4(\\)A F0 2.963(\)i)C 2.963(st)-2.963 +(ingle quotes, and double quotes.)-2.5 E 2.963(An)108 228 S .463 +(on-quoted backslash \()-2.963 F F4(\\)A F0 2.963(\)i)C 2.963(st)-2.963 G(he)-2.963 E F2 .463(escape c)3.153 F(har)-.15 E(acter)-.15 E F0 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 223.2 -Q 1.554(ws, with the e)-.25 F 1.553(xception of <ne)-.15 F 4.053 +.463(alue of the ne)-.25 F .463(xt character that)-.15 F(follo)108 240 Q +1.553(ws, with the e)-.25 F 1.553(xception of <ne)-.15 F 4.053 (wline>. If)-.25 F(a)4.053 E F4(\\)4.053 E F0(<ne)A 1.553 -(wline> pair appears, and the backslash is not itself)-.25 F .347 -(quoted, the)108 235.2 R F4(\\)2.847 E F0(<ne)A .347 +(wline> pair appears, and the backslash is not itself)-.25 F .348 +(quoted, the)108 252 R F4(\\)2.848 E F0(<ne)A .347 (wline> is treated as a line continuation \(that is, it is remo)-.25 F --.15(ve)-.15 G 2.848(df).15 G .348(rom the input stream and ef-)-2.848 F -(fecti)108 247.2 Q -.15(ve)-.25 G(ly ignored\).).15 E .295 -(Enclosing characters in single quotes preserv)108 264 R .295 +-.15(ve)-.15 G 2.847(df).15 G .347(rom the input stream and ef-)-2.847 F +(fecti)108 264 Q -.15(ve)-.25 G(ly ignored\).).15 E .295 +(Enclosing characters in single quotes preserv)108 280.8 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 276 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 292.8 R .034 +(gle quote may not occur between single quotes, e)108 292.8 Q -.15(ve) +-.25 G 2.5(nw).15 G(hen preceded by a backslash.)-2.5 E .034 +(Enclosing characters in double quotes preserv)108 309.6 R .034 (es the literal v)-.15 F .034 (alue of all characters within the quotes, with the)-.25 F -.15(ex)108 -304.8 S .108(ception of).15 F F4($)2.608 E F0(,)A F4<92>2.608 E F0(,)A -F4(\\)2.608 E F0 2.608(,a)C .107(nd, when history e)-2.608 F .107 +321.6 S .107(ception of).15 F F4($)2.607 E F0(,)A F4<92>2.607 E F0(,)A +F4(\\)2.607 E F0 2.607(,a)C .107(nd, when history e)-2.607 F .107 (xpansion is enabled,)-.15 F F4(!)2.607 E F0 5.107(.W)C .107 -(hen the shell is in)-5.107 F F2 .107(posix mode)2.607 F F0 2.607(,t)C -(he)-2.607 E F4(!)2.607 E F0 .107(has no)2.607 F .46 -(special meaning within double quotes, e)108 316.8 R -.15(ve)-.25 G 2.96 +(hen the shell is in)-5.107 F F2 .108(posix mode)2.608 F F0 2.608(,t)C +(he)-2.608 E F4(!)2.608 E F0 .108(has no)2.608 F .46 +(special meaning within double quotes, e)108 333.6 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 F4($)2.96 E F0(and)2.96 E F4<92>2.96 E F0(re-) -2.96 E .563(tain their special meaning within double quotes.)108 328.8 R -.562(The backslash retains its special meaning only when fol-)5.563 F -(lo)108 340.8 Q .601(wed by one of the follo)-.25 F .602 +2.96 E .562(tain their special meaning within double quotes.)108 345.6 R +.563(The backslash retains its special meaning only when fol-)5.563 F +(lo)108 357.6 Q .602(wed by one of the follo)-.25 F .602 (wing characters:)-.25 F F4($)3.102 E F0(,)A F4<92>3.102 E F0(,)A F4(") 3.935 E F0(,).833 E F4(\\)3.102 E F0 3.102(,o)C(r)-3.102 E F4(<newline>) -3.102 E F0 5.602(.A)C .602(double quote may be quoted within)-2.5 F .131 -(double quotes by preceding it with a backslash.)108 352.8 R .131 -(If enabled, history e)5.131 F .13(xpansion will be performed unless an) --.15 F F4(!)2.63 E F0 -(appearing in double quotes is escaped using a backslash.)108 364.8 Q +3.102 E F0 5.602(.A)C .601(double quote may be quoted within)-2.5 F .13 +(double quotes by preceding it with a backslash.)108 369.6 R .131 +(If enabled, history e)5.131 F .131 +(xpansion will be performed unless an)-.15 F F4(!)2.631 E F0 +(appearing in double quotes is escaped using a backslash.)108 381.6 Q (The backslash preceding the)5 E F4(!)2.5 E F0(is not remo)5 E -.15(ve) --.15 G(d.).15 E(The special parameters)108 381.6 Q F4(*)2.5 E F0(and)2.5 +-.15 G(d.).15 E(The special parameters)108 398.4 Q F4(*)2.5 E F0(and)2.5 E F4(@)2.5 E F0(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 F0(belo)2.25 E(w\).)-.25 E -.8(Wo)108 398.4 S .211 -(rds of the form).8 F F4($)2.711 E F0<08>A F2(string)A F0 2.711<0861>C -.211(re treated specially)-2.711 F 5.211(.T)-.65 G .211(he w)-5.211 F -.211(ord e)-.1 F .212(xpands to)-.15 F F2(string)2.712 E F0 2.712(,w)C -.212(ith backslash-escaped char)-2.712 F(-)-.2 E .605 -(acters replaced as speci\214ed by the ANSI C standard.)108 410.4 R .604 +(RAMETERS).666 E F0(belo)2.25 E(w\).)-.25 E -.8(Wo)108 415.2 S .212 +(rds of the form).8 F F4($)2.712 E F0<08>A F2(string)A F0 2.712<0861>C +.211(re treated specially)-2.712 F 5.211(.T)-.65 G .211(he w)-5.211 F +.211(ord e)-.1 F .211(xpands to)-.15 F F2(string)2.711 E F0 2.711(,w)C +.211(ith backslash-escaped char)-2.711 F(-)-.2 E .604 +(acters replaced as speci\214ed by the ANSI C standard.)108 427.2 R .605 (Backslash escape sequences, if present, are decoded)5.605 F(as follo) -108 422.4 Q(ws:)-.25 E F4(\\a)144 434.4 Q F0(alert \(bell\))180 434.4 Q -F4(\\b)144 446.4 Q F0(backspace)180 446.4 Q F4(\\e)144 458.4 Q(\\E)144 -470.4 Q F0(an escape character)180 470.4 Q F4(\\f)144 482.4 Q F0 -(form feed)180 482.4 Q F4(\\n)144 494.4 Q F0(ne)180 494.4 Q 2.5(wl)-.25 -G(ine)-2.5 E F4(\\r)144 506.4 Q F0(carriage return)180 506.4 Q F4(\\t) -144 518.4 Q F0(horizontal tab)180 518.4 Q F4(\\v)144 530.4 Q F0 -.15(ve) -180 530.4 S(rtical tab).15 E F4(\\\\)144 542.4 Q F0(backslash)180 542.4 -Q F4<5c08>144 554.4 Q F0(single quote)180 554.4 Q F4(\\")144 566.4 Q F0 -(double quote)180 566.4 Q F4(\\?)144 578.4 Q F0(question mark)180 578.4 -Q F4(\\)144 590.4 Q F2(nnn)A F0(the eight-bit character whose v)180 -590.4 Q(alue is the octal v)-.25 E(alue)-.25 E F2(nnn)2.5 E F0 -(\(one to three octal digits\))2.5 E F4(\\x)144 602.4 Q F2(HH)A F0 -(the eight-bit character whose v)180 602.4 Q(alue is the he)-.25 E +108 439.2 Q(ws:)-.25 E F4(\\a)144 451.2 Q F0(alert \(bell\))180 451.2 Q +F4(\\b)144 463.2 Q F0(backspace)180 463.2 Q F4(\\e)144 475.2 Q(\\E)144 +487.2 Q F0(an escape character)180 487.2 Q F4(\\f)144 499.2 Q F0 +(form feed)180 499.2 Q F4(\\n)144 511.2 Q F0(ne)180 511.2 Q 2.5(wl)-.25 +G(ine)-2.5 E F4(\\r)144 523.2 Q F0(carriage return)180 523.2 Q F4(\\t) +144 535.2 Q F0(horizontal tab)180 535.2 Q F4(\\v)144 547.2 Q F0 -.15(ve) +180 547.2 S(rtical tab).15 E F4(\\\\)144 559.2 Q F0(backslash)180 559.2 +Q F4<5c08>144 571.2 Q F0(single quote)180 571.2 Q F4(\\")144 583.2 Q F0 +(double quote)180 583.2 Q F4(\\?)144 595.2 Q F0(question mark)180 595.2 +Q F4(\\)144 607.2 Q F2(nnn)A F0(the eight-bit character whose v)180 +607.2 Q(alue is the octal v)-.25 E(alue)-.25 E F2(nnn)2.5 E F0 +(\(one to three octal digits\))2.5 E F4(\\x)144 619.2 Q F2(HH)A F0 +(the eight-bit character whose v)180 619.2 Q(alue is the he)-.25 E (xadecimal v)-.15 E(alue)-.25 E F2(HH)2.5 E F0(\(one or tw)2.5 E 2.5(oh) --.1 G .3 -.15(ex d)-2.5 H(igits\)).15 E F4(\\u)144 614.4 Q F2(HHHH)A F0 -1.506(the Unicode \(ISO/IEC 10646\) character whose v)180 626.4 R 1.507 -(alue is the he)-.25 F 1.507(xadecimal v)-.15 F(alue)-.25 E F2(HHHH) -4.007 E F0(\(one to four he)180 638.4 Q 2.5(xd)-.15 G(igits\))-2.5 E F4 -(\\U)144 650.4 Q F2(HHHHHHHH)A F0 .548 -(the Unicode \(ISO/IEC 10646\) character whose v)180 662.4 R .547 -(alue is the he)-.25 F .547(xadecimal v)-.15 F(alue)-.25 E F2(HHHHH-) -3.047 E(HHH)180 674.4 Q F0(\(one to eight he)2.5 E 2.5(xd)-.15 G -(igits\))-2.5 E F4(\\c)144 686.4 Q F2(x)A F0 2.5(ac)180 686.4 S(ontrol-) --2.5 E F2(x)A F0(character)2.5 E(The e)108 703.2 Q(xpanded result is si\ -ngle-quoted, as if the dollar sign had not been present.)-.15 E 2.64(Ad) -108 720 S .14(ouble-quoted string preceded by a dollar sign \()-2.64 F -F4($)A F0(")A F2(string)A F0 .14 -("\) will cause the string to be translated according)B(GNU Bash 5.0)72 -768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 22).15 E(8)190.545 E 0 Cg EP +-.1 G .3 -.15(ex d)-2.5 H(igits\)).15 E F4(\\u)144 631.2 Q F2(HHHH)A F0 +1.507(the Unicode \(ISO/IEC 10646\) character whose v)180 643.2 R 1.506 +(alue is the he)-.25 F 1.506(xadecimal v)-.15 F(alue)-.25 E F2(HHHH) +4.006 E F0(\(one to four he)180 655.2 Q 2.5(xd)-.15 G(igits\))-2.5 E F4 +(\\U)144 667.2 Q F2(HHHHHHHH)A F0 .547 +(the Unicode \(ISO/IEC 10646\) character whose v)180 679.2 R .547 +(alue is the he)-.25 F .548(xadecimal v)-.15 F(alue)-.25 E F2(HHHHH-) +3.048 E(HHH)180 691.2 Q F0(\(one to eight he)2.5 E 2.5(xd)-.15 G +(igits\))-2.5 E F4(\\c)144 703.2 Q F2(x)A F0 2.5(ac)180 703.2 S(ontrol-) +-2.5 E F2(x)A F0(character)2.5 E(The e)108 720 Q(xpanded result is sing\ +le-quoted, as if the dollar sign had not been present.)-.15 E +(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E(8) +190.545 E 0 Cg EP %%Page: 9 9 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F -(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E .496 -(to the current locale.)108 84 R .495(If the current locale is)5.496 F -/F1 10/Times-Bold@0 SF(C)2.995 E F0(or)2.995 E F1(POSIX)2.995 E F0 2.995 -(,t)C .495(he dollar sign is ignored.)-2.995 F .495 -(If the string is trans-)5.495 F -(lated and replaced, the replacement is double-quoted.)108 96 Q/F2 10.95 -/Times-Bold@0 SF -.81(PA)72 112.8 S(RAMETERS).81 E F0(A)108 124.8 Q/F3 -10/Times-Italic@0 SF(par)4.574 E(ameter)-.15 E F0 .824 -(is an entity that stores v)4.054 F 3.324(alues. It)-.25 F .824 -(can be a)3.324 F F3(name)3.685 E F0 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 136.8 R 3.302(wu)-.25 G(nder)-3.302 E F1 -.802(Special P)3.302 F(arameters)-.1 E F0 5.802(.A)C F3(variable)-2.21 E -F0 .802(is a parameter denoted by a)3.482 F F3(name)3.662 E F0 5.801(.A) -.18 G -.25(va)-2.5 G .801(riable has a).25 F F3(value)108 148.8 Q F0 -.368(and zero or more)2.868 F F3(attrib)2.868 E(utes)-.2 E F0 5.369(.A)C -(ttrib)-5.369 E .369(utes are assigned using the)-.2 F F1(declar)2.869 E -(e)-.18 E F0 -.2(bu)2.869 G .369(iltin command \(see).2 F F1(declar) -2.869 E(e)-.18 E F0(belo)108 160.8 Q 2.5(wi)-.25 G(n)-2.5 E/F4 9 -/Times-Bold@0 SF(SHELL B)2.5 E(UIL)-.09 E(TIN COMMANDS)-.828 E/F5 9 -/Times-Roman@0 SF(\).)A F0 2.755(Ap)108 177.6 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 189.6 Q F1(unset)2.5 E F0 -.2(bu)2.5 -G(iltin command \(see).2 E F4(SHELL B)2.5 E(UIL)-.09 E(TIN COMMANDS) --.828 E F0(belo)2.25 E(w\).)-.25 E(A)108 206.4 Q F3(variable)2.79 E F0 -(may be assigned to by a statement of the form)2.68 E F3(name)144 223.2 -Q F0(=[)A F3(value)A F0(])A(If)108 240 Q F3(value)3.022 E F0 .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 F3(values)3.023 -E F0(under)3.003 E .233(go tilde e)-.18 F .233(xpansion, parameter)-.15 -F .515(and v)108 252 R .515(ariable e)-.25 F .515 -(xpansion, command substitution, arithmetic e)-.15 F .515 +(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E 2.64(Ad)108 84 S +.14(ouble-quoted string preceded by a dollar sign \()-2.64 F/F1 10 +/Times-Bold@0 SF($)A F0(")A/F2 10/Times-Italic@0 SF(string)A F0 .14 +("\) will cause the string to be translated according)B .495 +(to the current locale.)108 96 R .495(If the current locale is)5.495 F +F1(C)2.995 E F0(or)2.995 E F1(POSIX)2.995 E F0 2.995(,t)C .495 +(he dollar sign is ignored.)-2.995 F .496(If the string is trans-)5.496 +F(lated and replaced, the replacement is double-quoted.)108 108 Q/F3 +10.95/Times-Bold@0 SF -.81(PA)72 124.8 S(RAMETERS).81 E F0(A)108 136.8 Q +F2(par)4.575 E(ameter)-.15 E F0 .825(is an entity that stores v)4.055 F +3.325(alues. It)-.25 F .825(can be a)3.325 F F2(name)3.684 E F0 3.324 +(,an).18 G(umber)-3.324 E 3.324(,o)-.4 G 3.324(ro)-3.324 G .824 +(ne of the special characters)-3.324 F .801(listed belo)108 148.8 R +3.301(wu)-.25 G(nder)-3.301 E F1 .801(Special P)3.301 F(arameters)-.1 E +F0 5.802(.A)C F2(variable)-2.21 E F0 .802(is a parameter denoted by a) +3.482 F F2(name)3.662 E F0 5.802(.A).18 G -.25(va)-2.5 G .802 +(riable has a).25 F F2(value)108 160.8 Q F0 .369(and zero or more)2.869 +F F2(attrib)2.869 E(utes)-.2 E F0 5.369(.A)C(ttrib)-5.369 E .369 +(utes are assigned using the)-.2 F F1(declar)2.868 E(e)-.18 E F0 -.2(bu) +2.868 G .368(iltin command \(see).2 F F1(declar)2.868 E(e)-.18 E F0 +(belo)108 172.8 Q 2.5(wi)-.25 G(n)-2.5 E/F4 9/Times-Bold@0 SF(SHELL B) +2.5 E(UIL)-.09 E(TIN COMMANDS)-.828 E/F5 9/Times-Roman@0 SF(\).)A F0 +2.754(Ap)108 189.6 S .254(arameter is set if it has been assigned a v) +-2.754 F 2.754(alue. The)-.25 F .254(null string is a v)2.754 F .255 +(alid v)-.25 F 2.755(alue. Once)-.25 F 2.755(av)2.755 G .255 +(ariable is set, it)-3.005 F(may be unset only by using the)108 201.6 Q +F1(unset)2.5 E F0 -.2(bu)2.5 G(iltin command \(see).2 E F4(SHELL B)2.5 E +(UIL)-.09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25 E(A)108 218.4 +Q F2(variable)2.79 E F0(may be assigned to by a statement of the form) +2.68 E F2(name)144 235.2 Q F0(=[)A F2(value)A F0(])A(If)108 252 Q F2 +(value)3.023 E F0 .233(is not gi)2.913 F -.15(ve)-.25 G .233(n, the v) +.15 F .232(ariable is assigned the null string.)-.25 F(All)5.232 E F2 +(values)3.022 E F0(under)3.002 E .232(go tilde e)-.18 F .232 +(xpansion, parameter)-.15 F .515(and v)108 264 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 F4(EXP)3.015 E(ANSION)-.666 E F0(belo)108 264 Q 2.698(w\). If) --.25 F .198(the v)2.698 F .198(ariable has its)-.25 F F1(integer)2.698 E -F0(attrib)2.698 E .198(ute set, then)-.2 F F3(value)2.988 E F0 .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 .902(if the $\(\(...\)\) e) -108 276 R .902(xpansion is not used \(see)-.15 F F1 .901 -(Arithmetic Expansion)3.401 F F0(belo)3.401 E 3.401(w\). W)-.25 F .901 -(ord splitting is not performed,)-.8 F 1.178(with the e)108 288 R 1.178 -(xception of)-.15 F F1("$@")3.678 E F0 1.178(as e)3.678 F 1.179 -(xplained belo)-.15 F 3.679(wu)-.25 G(nder)-3.679 E F1 1.179(Special P) -3.679 F(arameters)-.1 E F0 6.179(.P)C 1.179(athname e)-6.329 F 1.179 -(xpansion is not)-.15 F 3.649(performed. Assignment)108 300 R 1.149 -(statements may also appear as ar)3.649 F 1.148(guments to the)-.18 F F1 -(alias)3.648 E F0(,)A F1(declar)3.648 E(e)-.18 E F0(,)A F1(typeset)3.648 -E F0(,)A F1(export)3.648 E F0(,)A F1 -.18(re)108 312 S(adonly).18 E F0 -3.288(,a)C(nd)-3.288 E F1(local)3.288 E F0 -.2(bu)3.288 G .788 -(iltin commands \().2 F F3(declar)A(ation)-.15 E F0 3.288 -(commands\). When)3.288 F(in)3.289 E F3 .789(posix mode)3.289 F F0 3.289 -(,t)C .789(hese b)-3.289 F .789(uiltins may)-.2 F 1.496 -(appear in a command after one or more instances of the)108 324 R F1 -(command)3.996 E F0 -.2(bu)3.996 G 1.496 -(iltin and retain these assignment).2 F(statement properties.)108 336 Q -.376(In the conte)108 352.8 R .376 +-3.015 E F4(EXP)3.015 E(ANSION)-.666 E F0(belo)108 276 Q 2.699(w\). If) +-.25 F .199(the v)2.699 F .199(ariable has its)-.25 F F1(integer)2.698 E +F0(attrib)2.698 E .198(ute set, then)-.2 F F2(value)2.988 E F0 .198 +(is e)2.878 F -.25(va)-.25 G .198(luated as an arithmetic e).25 F .198 +(xpression e)-.15 F -.15(ve)-.25 G(n).15 E .901(if the $\(\(...\)\) e) +108 288 R .901(xpansion is not used \(see)-.15 F F1 .901 +(Arithmetic Expansion)3.401 F F0(belo)3.401 E 3.402(w\). W)-.25 F .902 +(ord splitting is not performed,)-.8 F 1.179(with the e)108 300 R 1.179 +(xception of)-.15 F F1("$@")3.679 E F0 1.179(as e)3.679 F 1.179 +(xplained belo)-.15 F 3.679(wu)-.25 G(nder)-3.679 E F1 1.178(Special P) +3.678 F(arameters)-.1 E F0 6.178(.P)C 1.178(athname e)-6.328 F 1.178 +(xpansion is not)-.15 F 3.648(performed. Assignment)108 312 R 1.148 +(statements may also appear as ar)3.648 F 1.149(guments to the)-.18 F F1 +(alias)3.649 E F0(,)A F1(declar)3.649 E(e)-.18 E F0(,)A F1(typeset)3.649 +E F0(,)A F1(export)3.649 E F0(,)A F1 -.18(re)108 324 S(adonly).18 E F0 +3.289(,a)C(nd)-3.289 E F1(local)3.289 E F0 -.2(bu)3.289 G .789 +(iltin commands \().2 F F2(declar)A(ation)-.15 E F0 3.288 +(commands\). When)3.289 F(in)3.288 E F2 .788(posix mode)3.288 F F0 3.288 +(,t)C .788(hese b)-3.288 F .788(uiltins may)-.2 F 1.496 +(appear in a command after one or more instances of the)108 336 R F1 +(command)3.996 E F0 -.2(bu)3.996 G 1.497 +(iltin and retain these assignment).2 F(statement properties.)108 348 Q +.377(In the conte)108 364.8 R .377 (xt where an assignment statement is assigning a v)-.15 F .376 -(alue to a shell v)-.25 F .377(ariable or array inde)-.25 F .377 -(x, the +=)-.15 F 1.631 -(operator can be used to append to or add to the v)108 364.8 R(ariable') --.25 E 4.13(sp)-.55 G(re)-4.13 E 1.63(vious v)-.25 F 4.13(alue. This) --.25 F 1.63(includes ar)4.13 F 1.63(guments to)-.18 F -.2(bu)108 376.8 S -.163(iltin commands such as).2 F F1(declar)2.664 E(e)-.18 E F0 .164 -(that accept assignment statements \()2.664 F F3(declar)A(ation)-.15 E -F0 2.664(commands\). When)2.664 F .164(+= is)2.664 F .252 -(applied to a v)108 388.8 R .252(ariable for which the)-.25 F F3(inte) +(alue to a shell v)-.25 F .376(ariable or array inde)-.25 F .376 +(x, the +=)-.15 F 1.63 +(operator can be used to append to or add to the v)108 376.8 R(ariable') +-.25 E 4.131(sp)-.55 G(re)-4.131 E 1.631(vious v)-.25 F 4.131 +(alue. This)-.25 F 1.631(includes ar)4.131 F 1.631(guments to)-.18 F -.2 +(bu)108 388.8 S .164(iltin commands such as).2 F F1(declar)2.664 E(e) +-.18 E F0 .164(that accept assignment statements \()2.664 F F2(declar)A +(ation)-.15 E F0 2.664(commands\). When)2.664 F .163(+= is)2.663 F .251 +(applied to a v)108 400.8 R .251(ariable for which the)-.25 F F2(inte) 2.752 E -.1(ge)-.4 G(r).1 E F0(attrib)2.752 E .252(ute has been set,)-.2 -F F3(value)2.752 E F0 .251(is e)2.751 F -.25(va)-.25 G .251 +F F2(value)2.752 E F0 .252(is e)2.752 F -.25(va)-.25 G .252 (luated as an arithmetic e).25 F(xpres-)-.15 E .05 -(sion and added to the v)108 400.8 R(ariable')-.25 E 2.55(sc)-.55 G .05 +(sion and added to the v)108 412.8 R(ariable')-.25 E 2.55(sc)-.55 G .05 (urrent v)-2.55 F .05(alue, which is also e)-.25 F -.25(va)-.25 G 2.55 (luated. When).25 F .05(+= is applied to an array v)2.55 F(ari-)-.25 E -.459(able using compound assignment \(see)108 412.8 R F1(Arrays)2.959 E +.458(able using compound assignment \(see)108 424.8 R F1(Arrays)2.959 E F0(belo)2.959 E .459(w\), the v)-.25 F(ariable')-.25 E 2.959(sv)-.55 G .459(alue is not unset \(as it is when using)-3.209 F .265(=\), and ne) -108 424.8 R 2.765(wv)-.25 G .265(alues are appended to the array be) +108 436.8 R 2.765(wv)-.25 G .265(alues are appended to the array be) -3.015 F .265(ginning at one greater than the array')-.15 F 2.765(sm) -.55 G .265(aximum inde)-2.765 F 2.765(x\()-.15 G(for)-2.765 E(inde)108 -436.8 Q -.15(xe)-.15 G 3.402(da).15 G .902 -(rrays\) or added as additional k)-3.402 F -.15(ey)-.1 G<ad76>.15 E .901 +448.8 Q -.15(xe)-.15 G 3.401(da).15 G .901 +(rrays\) or added as additional k)-3.401 F -.15(ey)-.1 G<ad76>.15 E .901 (alue pairs in an associati)-.25 F 1.201 -.15(ve a)-.25 H(rray).15 E -5.901(.W)-.65 G .901(hen applied to a string-)-5.901 F -.25(va)108 448.8 -S(lued v).25 E(ariable,)-.25 E F3(value)2.5 E F0(is e)2.5 E +5.901(.W)-.65 G .902(hen applied to a string-)-5.901 F -.25(va)108 460.8 +S(lued v).25 E(ariable,)-.25 E F2(value)2.5 E F0(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 465.6 S .882(ariable can be assigned the) --3.632 F F3(namer)3.382 E(ef)-.37 E F0(attrib)3.382 E .882 +(alue.)-2.75 E 3.383(Av)108 477.6 S .883(ariable can be assigned the) +-3.633 F F2(namer)3.382 E(ef)-.37 E F0(attrib)3.382 E .882 (ute using the)-.2 F F1<ad6e>3.382 E F0 .882(option to the)3.382 F F1 -(declar)3.382 E(e)-.18 E F0(or)3.383 E F1(local)3.383 E F0 -.2(bu)3.383 -G .883(iltin com-).2 F .316(mands \(see the descriptions of)108 477.6 R -F1(declar)2.816 E(e)-.18 E F0(and)2.816 E F1(local)2.816 E F0(belo)2.816 -E .316(w\) to create a)-.25 F F3(namer)2.815 E(ef)-.37 E F0 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 489.6 R(allo)2.918 E .418(ws v)-.25 F .418 +(declar)3.382 E(e)-.18 E F0(or)3.382 E F1(local)3.382 E F0 -.2(bu)3.382 +G .882(iltin com-).2 F .315(mands \(see the descriptions of)108 489.6 R +F1(declar)2.815 E(e)-.18 E F0(and)2.815 E F1(local)2.815 E F0(belo)2.815 +E .316(w\) to create a)-.25 F F2(namer)2.816 E(ef)-.37 E F0 2.816(,o)C +2.816(rar)-2.816 G .316(eference to another v)-2.816 F(ari-)-.25 E 2.919 +(able. This)108 501.6 R(allo)2.919 E .419(ws v)-.25 F .419 (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 501.6 R .132 -(utes modi\214ed \(other than using or changing the)-.2 F F3(namer)2.632 -E(ef)-.37 E F0(attrib)2.632 E .132(ute itself\), the)-.2 F 1.356 -(operation is actually performed on the v)108 513.6 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 525.6 R .971 -(ariable whose name is passed as an ar)-.25 F .971(gument to the)-.18 F -2.5(function. F)108 537.6 R(or instance, if a v)-.15 E +-5.419 E -.15(ve)-.25 G 2.918(rt).15 G .418(he nameref v)-2.918 F .418 +(ariable is referenced, as-)-.25 F .132 +(signed to, unset, or has its attrib)108 513.6 R .132 +(utes modi\214ed \(other than using or changing the)-.2 F F2(namer)2.633 +E(ef)-.37 E F0(attrib)2.633 E .133(ute itself\), the)-.2 F 1.357 +(operation is actually performed on the v)108 525.6 R 1.357 +(ariable speci\214ed by the nameref v)-.25 F(ariable')-.25 E 3.856(sv) +-.55 G 3.856(alue. A)-4.106 F 1.356(nameref is)3.856 F .971 +(commonly used within shell functions to refer to a v)108 537.6 R .972 +(ariable whose name is passed as an ar)-.25 F .972(gument to the)-.18 F +2.5(function. F)108 549.6 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 -n ref=$1)144 555.6 Q -F0 .302(inside the function creates a nameref v)108 573.6 R(ariable)-.25 +(gument, running)-.18 E/F6 10/Courier@0 SF(declare -n ref=$1)144 567.6 Q +F0 .303(inside the function creates a nameref v)108 585.6 R(ariable)-.25 E F1 -.18(re)2.803 G(f).18 E F0 .303(whose v)2.803 F .303(alue is the v) --.25 F .303(ariable name passed as the \214rst ar)-.25 F(gu-)-.18 E -3.592(ment. References)108 585.6 R 1.092(and assignments to)3.592 F F1 +-.25 F .302(ariable name passed as the \214rst ar)-.25 F(gu-)-.18 E +3.592(ment. References)108 597.6 R 1.092(and assignments to)3.592 F F1 -.18(re)3.592 G(f).18 E F0 3.592(,a)C 1.092(nd changes to its attrib) --3.592 F 1.092(utes, are treated as references, assign-)-.2 F .143 -(ments, and attrib)108 597.6 R .144(ute modi\214cations to the v)-.2 F +-3.592 F 1.092(utes, are treated as references, assign-)-.2 F .144 +(ments, and attrib)108 609.6 R .144(ute modi\214cations to the v)-.2 F .144(ariable whose name w)-.25 F .144(as passed as)-.1 F F1($1)2.644 E -F0 5.144(.I)C 2.644(ft)-5.144 G .144(he control v)-2.644 F .144 -(ariable in a)-.25 F F1 -.25(fo)108 609.6 S(r).25 E F0 .868 -(loop has the nameref attrib)3.368 F .868(ute, the list of w)-.2 F .867 -(ords can be a list of shell v)-.1 F .867 +F0 5.144(.I)C 2.644(ft)-5.144 G .144(he control v)-2.644 F .143 +(ariable in a)-.25 F F1 -.25(fo)108 621.6 S(r).25 E F0 .867 +(loop has the nameref attrib)3.367 F .867(ute, the list of w)-.2 F .868 +(ords can be a list of shell v)-.1 F .868 (ariables, and a name reference)-.25 F .509 -(will be established for each w)108 621.6 R .509 +(will be established for each w)108 633.6 R .509 (ord in the list, in turn, when the loop is e)-.1 F -.15(xe)-.15 G 3.009 (cuted. Array).15 F -.25(va)3.009 G .509(riables cannot be).25 F(gi)108 -633.6 Q -.15(ve)-.25 G 3.032(nt).15 G(he)-3.032 E F1(namer)3.032 E(ef) --.18 E F0(attrib)3.032 E 3.032(ute. Ho)-.2 F(we)-.25 E -.15(ve)-.25 G -1.332 -.4(r, n).15 H .532(ameref v).4 F .531 -(ariables can reference array v)-.25 F .531(ariables and subscripted ar) --.25 F(-)-.2 E .533(ray v)108 645.6 R 3.033(ariables. Namerefs)-.25 F -.533(can be unset using the)3.033 F F1<ad6e>3.033 E F0 .533 -(option to the)3.033 F F1(unset)3.033 E F0 -.2(bu)3.034 G 3.034 -(iltin. Otherwise,).2 F(if)3.034 E F1(unset)3.034 E F0 .534(is e)3.034 F --.15(xe)-.15 G(-).15 E .443(cuted with the name of a nameref v)108 657.6 -R .442(ariable as an ar)-.25 F .442(gument, the v)-.18 F .442 +645.6 Q -.15(ve)-.25 G 3.031(nt).15 G(he)-3.031 E F1(namer)3.031 E(ef) +-.18 E F0(attrib)3.031 E 3.031(ute. Ho)-.2 F(we)-.25 E -.15(ve)-.25 G +1.331 -.4(r, n).15 H .531(ameref v).4 F .532 +(ariables can reference array v)-.25 F .532(ariables and subscripted ar) +-.25 F(-)-.2 E .534(ray v)108 657.6 R 3.034(ariables. Namerefs)-.25 F +.534(can be unset using the)3.034 F F1<ad6e>3.033 E F0 .533 +(option to the)3.033 F F1(unset)3.033 E F0 -.2(bu)3.033 G 3.033 +(iltin. Otherwise,).2 F(if)3.033 E F1(unset)3.033 E F0 .533(is e)3.033 F +-.15(xe)-.15 G(-).15 E .442(cuted with the name of a nameref v)108 669.6 +R .442(ariable as an ar)-.25 F .442(gument, the v)-.18 F .443 (ariable referenced by the nameref v)-.25 F(ariable)-.25 E -(will be unset.)108 669.6 Q F1 -.2(Po)87 686.4 S(sitional P).2 E -(arameters)-.1 E F0(A)108 698.4 Q F3 .705(positional par)4.455 F(ameter) +(will be unset.)108 681.6 Q F1 -.2(Po)87 698.4 S(sitional P).2 E +(arameters)-.1 E F0(A)108 710.4 Q F2 .706(positional par)4.456 F(ameter) -.15 E F0 .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 710.4 R 2.944(sa) + the single digit 0.)3.936 F(Posi-)5.705 E .444 +(tional parameters are assigned from the shell')108 722.4 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 722.4 Q F1 -(set)3.333 E F0 -.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(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G -(mber 22).15 E(9)190.545 E 0 Cg EP +(ke).2 G .445(d, and may be reassigned using).1 F(GNU Bash 5.0)72 768 Q +(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E(9)190.545 E 0 Cg EP %%Page: 10 10 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F -(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E(positional parame\ -ters are temporarily replaced when a shell function is e)108 84 Q -.15 -(xe)-.15 G(cuted \(see).15 E/F1 9/Times-Bold@0 SF(FUNCTIONS)2.5 E F0 -(belo)2.25 E(w\).)-.25 E 1.404(When a positional parameter consisting o\ -f more than a single digit is e)108 100.8 R 1.403 -(xpanded, it must be enclosed in)-.15 F(braces \(see)108 112.8 Q F1(EXP) -2.5 E(ANSION)-.666 E F0(belo)2.25 E(w\).)-.25 E/F2 10/Times-Bold@0 SF -(Special P)87 129.6 Q(arameters)-.1 E F0 1.674(The shell treats se)108 -141.6 R -.15(ve)-.25 G 1.674(ral parameters specially).15 F 6.675(.T) --.65 G 1.675(hese parameters may only be referenced; assignment to) --6.675 F(them is not allo)108 153.6 Q(wed.)-.25 E F2(*)108 165.6 Q F0 -.224(Expands to the positional parameters, starting from one.)144 165.6 -R .223(When the e)5.224 F .223(xpansion is not within double)-.15 F .662 -(quotes, each positional parameter e)144 177.6 R .662 +(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E(the)108 84 Q/F1 10 +/Times-Bold@0 SF(set)3.334 E F0 -.2(bu)3.334 G .834(iltin command.).2 F +.833(Positional parameters may not be assigned to with assignment state\ +ments.)5.834 F(The)5.833 E(positional parameters are temporarily replac\ +ed when a shell function is e)108 96 Q -.15(xe)-.15 G(cuted \(see).15 E +/F2 9/Times-Bold@0 SF(FUNCTIONS)2.5 E F0(belo)2.25 E(w\).)-.25 E 1.403(\ +When a positional parameter consisting of more than a single digit is e) +108 112.8 R 1.404(xpanded, it must be enclosed in)-.15 F(braces \(see) +108 124.8 Q F2(EXP)2.5 E(ANSION)-.666 E F0(belo)2.25 E(w\).)-.25 E F1 +(Special P)87 141.6 Q(arameters)-.1 E F0 1.675(The shell treats se)108 +153.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 165.6 Q(wed.)-.25 E F1(*)108 177.6 Q F0 +.223(Expands to the positional parameters, starting from one.)144 177.6 +R .224(When the e)5.224 F .224(xpansion is not within double)-.15 F .663 +(quotes, each positional parameter e)144 189.6 R .662 (xpands to a separate w)-.15 F 3.162(ord. In)-.1 F(conte)3.162 E .662 -(xts where it is performed,)-.15 F 1.082(those w)144 189.6 R 1.082 -(ords are subject to further w)-.1 F 1.081(ord splitting and pathname e) --.1 F 3.581(xpansion. When)-.15 F 1.081(the e)3.581 F(xpansion)-.15 E -.914(occurs within double quotes, it e)144 201.6 R .914 -(xpands to a single w)-.15 F .915(ord with the v)-.1 F .915 -(alue of each parameter sepa-)-.25 F .891 -(rated by the \214rst character of the)144 213.6 R F1(IFS)3.39 E F0 .89 -(special v)3.14 F 3.39(ariable. That)-.25 F .89(is, ")3.39 F F2($*)A F0 -3.39("i)C 3.39(se)-3.39 G(qui)-3.39 E -.25(va)-.25 G .89(lent to ").25 F -F2($1)A/F3 10/Times-Italic@0 SF(c)A F2($2)A F3(c)A F2(...)A F0(",)A -(where)144 225.6 Q F3(c)3.532 E F0 .832 -(is the \214rst character of the v)3.642 F .832(alue of the)-.25 F F1 -(IFS)3.332 E F0 -.25(va)3.082 G 3.332(riable. If).25 F F1(IFS)3.332 E F0 -.833(is unset, the parameters are)3.082 F(separated by spaces.)144 237.6 -Q(If)5 E F1(IFS)2.5 E F0 +(xts where it is performed,)-.15 F 1.081(those w)144 201.6 R 1.081 +(ords are subject to further w)-.1 F 1.082(ord splitting and pathname e) +-.1 F 3.582(xpansion. When)-.15 F 1.082(the e)3.582 F(xpansion)-.15 E +.915(occurs within double quotes, it e)144 213.6 R .914 +(xpands to a single w)-.15 F .914(ord with the v)-.1 F .914 +(alue of each parameter sepa-)-.25 F .89 +(rated by the \214rst character of the)144 225.6 R F2(IFS)3.39 E F0 .89 +(special v)3.14 F 3.39(ariable. That)-.25 F .891(is, ")3.391 F F1($*)A +F0 3.391("i)C 3.391(se)-3.391 G(qui)-3.391 E -.25(va)-.25 G .891 +(lent to ").25 F F1($1)A/F3 10/Times-Italic@0 SF(c)A F1($2)A F3(c)A F1 +(...)A F0(",)A(where)144 237.6 Q F3(c)3.533 E F0 .832 +(is the \214rst character of the v)3.643 F .832(alue of the)-.25 F F2 +(IFS)3.332 E F0 -.25(va)3.082 G 3.332(riable. If).25 F F2(IFS)3.332 E F0 +.832(is unset, the parameters are)3.082 F(separated by spaces.)144 249.6 +Q(If)5 E F2(IFS)2.5 E F0 (is null, the parameters are joined without interv)2.25 E -(ening separators.)-.15 E F2(@)108 249.6 Q F0 .722 -(Expands to the positional parameters, starting from one.)144 249.6 R -.722(In conte)5.722 F .722(xts where w)-.15 F .722(ord splitting is per) --.1 F(-)-.2 E 1.165(formed, this e)144 261.6 R 1.165 +(ening separators.)-.15 E F1(@)108 261.6 Q F0 .722 +(Expands to the positional parameters, starting from one.)144 261.6 R +.722(In conte)5.722 F .722(xts where w)-.15 F .723(ord splitting is per) +-.1 F(-)-.2 E 1.165(formed, this e)144 273.6 R 1.165 (xpands each positional parameter to a separate w)-.15 F 1.165 -(ord; if not within double quotes,)-.1 F .655(these w)144 273.6 R .655 +(ord; if not within double quotes,)-.1 F .654(these w)144 285.6 R .654 (ords are subject to w)-.1 F .655(ord splitting.)-.1 F .655(In conte) -5.655 F .655(xts where w)-.15 F .654 -(ord splitting is not performed, this)-.1 F -.15(ex)144 285.6 S .748 +5.655 F .655(xts where w)-.15 F .655 +(ord splitting is not performed, this)-.1 F -.15(ex)144 297.6 S .748 (pands to a single w).15 F .748 (ord with each positional parameter separated by a space.)-.1 F .748 -(When the e)5.748 F(xpan-)-.15 E 1.091 -(sion occurs within double quotes, each parameter e)144 297.6 R 1.091 -(xpands to a separate w)-.15 F 3.59(ord. That)-.1 F 1.09(is, ")3.59 F F2 -($@)A F0 3.59("i)C(s)-3.59 E(equi)144 309.6 Q -.25(va)-.25 G .412 -(lent to ").25 F F2($1)A F0 2.912("")C F2($2)-2.912 E F0 2.912(".)C -2.912(.. If)-2.912 F .413(the double-quoted e)2.913 F .413 -(xpansion occurs within a w)-.15 F .413(ord, the e)-.1 F .413 -(xpansion of)-.15 F .38(the \214rst parameter is joined with the be)144 -321.6 R .379(ginning part of the original w)-.15 F .379(ord, and the e) --.1 F .379(xpansion of the)-.15 F .771 -(last parameter is joined with the last part of the original w)144 333.6 -R 3.271(ord. When)-.1 F .772(there are no positional pa-)3.271 F -(rameters, ")144 345.6 Q F2($@)A F0 2.5("a)C(nd)-2.5 E F2($@)2.5 E F0 +(When the e)5.748 F(xpan-)-.15 E 1.09 +(sion occurs within double quotes, each parameter e)144 309.6 R 1.091 +(xpands to a separate w)-.15 F 3.591(ord. That)-.1 F 1.091(is, ")3.591 F +F1($@)A F0 3.591("i)C(s)-3.591 E(equi)144 321.6 Q -.25(va)-.25 G .413 +(lent to ").25 F F1($1)A F0 2.913("")C F1($2)-2.913 E F0 2.913(".)C +2.913(.. If)-2.913 F .413(the double-quoted e)2.913 F .413 +(xpansion occurs within a w)-.15 F .412(ord, the e)-.1 F .412 +(xpansion of)-.15 F .379(the \214rst parameter is joined with the be)144 +333.6 R .379(ginning part of the original w)-.15 F .38(ord, and the e) +-.1 F .38(xpansion of the)-.15 F .771 +(last parameter is joined with the last part of the original w)144 345.6 +R 3.271(ord. When)-.1 F .771(there are no positional pa-)3.271 F +(rameters, ")144 357.6 Q F1($@)A F0 2.5("a)C(nd)-2.5 E F1($@)2.5 E F0 -.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 357.6 Q F0 -(Expands to the number of positional parameters in decimal.)144 357.6 Q -F2(?)108 369.6 Q F0(Expands to the e)144 369.6 Q +-2.5 E -.15(ve)-.15 G(d\).).15 E F1(#)108 369.6 Q F0 +(Expands to the number of positional parameters in decimal.)144 369.6 Q +F1(?)108 381.6 Q F0(Expands to the e)144 381.6 Q (xit status of the most recently e)-.15 E -.15(xe)-.15 G(cuted fore).15 -E(ground pipeline.)-.15 E F2<ad>108 381.6 Q F0 .882 -(Expands to the current option \215ags as speci\214ed upon in)144 381.6 -R -.2(vo)-.4 G .881(cation, by the).2 F F2(set)3.381 E F0 -.2(bu)3.381 G -.881(iltin command, or).2 F(those set by the shell itself \(such as the) -144 393.6 Q F2<ad69>2.5 E F0(option\).)2.5 E F2($)108 405.6 Q F0 .214 -(Expands to the process ID of the shell.)144 405.6 R .214 +E(ground pipeline.)-.15 E F1<ad>108 393.6 Q F0 .881 +(Expands to the current option \215ags as speci\214ed upon in)144 393.6 +R -.2(vo)-.4 G .881(cation, by the).2 F F1(set)3.382 E F0 -.2(bu)3.382 G +.882(iltin command, or).2 F(those set by the shell itself \(such as the) +144 405.6 Q F1<ad69>2.5 E F0(option\).)2.5 E F1($)108 417.6 Q F0 .214 +(Expands to the process ID of the shell.)144 417.6 R .214 (In a \(\) subshell, it e)5.214 F .214 (xpands to the process ID of the current)-.15 F -(shell, not the subshell.)144 417.6 Q F2(!)108 429.6 Q F0 .499(Expands \ +(shell, not the subshell.)144 429.6 Q F1(!)108 441.6 Q F0 .499(Expands \ to the process ID of the job most recently placed into the background, \ -whether e)144 429.6 R -.15(xe)-.15 G(cuted).15 E -(as an asynchronous command or using the)144 441.6 Q F2(bg)2.5 E F0 -.2 -(bu)2.5 G(iltin \(see).2 E F1(JOB CONTR)2.5 E(OL)-.27 E F0(belo)2.25 E -(w\).)-.25 E F2(0)108 453.6 Q F0 .886 -(Expands to the name of the shell or shell script.)144 453.6 R .886 -(This is set at shell initialization.)5.886 F(If)5.887 E F2(bash)3.387 E -F0 .887(is in-)3.387 F -.2(vo)144 465.6 S -.1(ke).2 G 2.668(dw).1 G .168 -(ith a \214le of commands,)-2.668 F F2($0)2.668 E F0 .167 -(is set to the name of that \214le.)2.667 F(If)5.167 E F2(bash)2.667 E -F0 .167(is started with the)2.667 F F2<ad63>2.667 E F0(op-)2.667 E .895 -(tion, then)144 477.6 R F2($0)3.395 E F0 .895(is set to the \214rst ar) -3.395 F .895(gument after the string to be e)-.18 F -.15(xe)-.15 G .896 -(cuted, if one is present.).15 F(Other)5.896 E(-)-.2 E -(wise, it is set to the \214lename used to in)144 489.6 Q -.2(vo)-.4 G --.1(ke).2 G F2(bash)2.6 E F0 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(_)108 -501.6 Q F0 .055 -(At shell startup, set to the absolute pathname used to in)144 501.6 R --.2(vo)-.4 G .255 -.1(ke t).2 H .054(he shell or shell script being e).1 -F -.15(xe)-.15 G(cuted).15 E .691(as passed in the en)144 513.6 R .691 +whether e)144 441.6 R -.15(xe)-.15 G(cuted).15 E +(as an asynchronous command or using the)144 453.6 Q F1(bg)2.5 E F0 -.2 +(bu)2.5 G(iltin \(see).2 E F2(JOB CONTR)2.5 E(OL)-.27 E F0(belo)2.25 E +(w\).)-.25 E F1(0)108 465.6 Q F0 .887 +(Expands to the name of the shell or shell script.)144 465.6 R .886 +(This is set at shell initialization.)5.886 F(If)5.886 E F1(bash)3.386 E +F0 .886(is in-)3.386 F -.2(vo)144 477.6 S -.1(ke).2 G 2.667(dw).1 G .167 +(ith a \214le of commands,)-2.667 F F1($0)2.667 E F0 .167 +(is set to the name of that \214le.)2.667 F(If)5.167 E F1(bash)2.667 E +F0 .168(is started with the)2.668 F F1<ad63>2.668 E F0(op-)2.668 E .896 +(tion, then)144 489.6 R F1($0)3.396 E F0 .895(is set to the \214rst ar) +3.396 F .895(gument after the string to be e)-.18 F -.15(xe)-.15 G .895 +(cuted, if one is present.).15 F(Other)5.895 E(-)-.2 E +(wise, it is set to the \214lename used to in)144 501.6 Q -.2(vo)-.4 G +-.1(ke).2 G F1(bash)2.6 E F0 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 F1 +(Shell V)87 518.4 Q(ariables)-.92 E F0(The follo)108 530.4 Q(wing v)-.25 +E(ariables are set by the shell:)-.25 E F1(_)108 547.2 Q F0 .054 +(At shell startup, set to the absolute pathname used to in)144 547.2 R +-.2(vo)-.4 G .255 -.1(ke t).2 H .055(he shell or shell script being e).1 +F -.15(xe)-.15 G(cuted).15 E .692(as passed in the en)144 559.2 R .692 (vironment or ar)-.4 F .691(gument list.)-.18 F(Subsequently)5.691 E -3.191(,e)-.65 G .692(xpands to the last ar)-3.341 F .692(gument to the) --.18 F(pre)144 525.6 Q .752(vious simple command e)-.25 F -.15(xe)-.15 G -.752(cuted in the fore).15 F .751(ground, after e)-.15 F 3.251 -(xpansion. Also)-.15 F .751(set to the full path-)3.251 F .156 -(name used to in)144 537.6 R -.2(vo)-.4 G .356 -.1(ke e).2 H .156 +3.191(,e)-.65 G .691(xpands to the last ar)-3.341 F .691(gument to the) +-.18 F(pre)144 571.2 Q .751(vious simple command e)-.25 F -.15(xe)-.15 G +.751(cuted in the fore).15 F .751(ground, after e)-.15 F 3.252 +(xpansion. Also)-.15 F .752(set to the full path-)3.252 F .157 +(name used to in)144 583.2 R -.2(vo)-.4 G .357 -.1(ke e).2 H .157 (ach command e).1 F -.15(xe)-.15 G .157(cuted and placed in the en).15 F -.157(vironment e)-.4 F .157(xported to that com-)-.15 F 4.937 -(mand. When)144 549.6 R 2.436(checking mail, this parameter holds the n\ -ame of the mail \214le currently being)4.937 F(check)144 561.6 Q(ed.)-.1 -E F2(Shell V)87 578.4 Q(ariables)-.92 E F0(The follo)108 590.4 Q(wing v) --.25 E(ariables are set by the shell:)-.25 E F2 -.3(BA)108 607.2 S(SH).3 -E F0(Expands to the full \214lename used to in)144 607.2 Q -.2(vo)-.4 G -.2 -.1(ke t).2 H(his instance of).1 E F2(bash)2.5 E F0(.)A F2 -.3(BA)108 -619.2 S(SHOPTS).3 E F0 2.548(Ac)144 631.2 S .049 -(olon-separated list of enabled shell options.)-2.548 F .049(Each w) +.156(vironment e)-.4 F .156(xported to that com-)-.15 F 4.936 +(mand. When)144 595.2 R 2.436(checking mail, this parameter holds the n\ +ame of the mail \214le currently being)4.936 F(check)144 607.2 Q(ed.)-.1 +E F1 -.3(BA)108 619.2 S(SH).3 E F0 +(Expands to the full \214lename used to in)144 619.2 Q -.2(vo)-.4 G .2 +-.1(ke t).2 H(his instance of).1 E F1(bash)2.5 E F0(.)A F1 -.3(BA)108 +631.2 S(SHOPTS).3 E F0 2.549(Ac)144 643.2 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.549 E F0 .116(option to the)144 643.2 R -F2(shopt)2.616 E F0 -.2(bu)2.616 G .116(iltin command \(see).2 F F1 .116 +(gument for the)-.18 F F1<ad73>2.548 E F0 .115(option to the)144 655.2 R +F1(shopt)2.616 E F0 -.2(bu)2.616 G .116(iltin command \(see).2 F F2 .116 (SHELL B)2.616 F(UIL)-.09 E .116(TIN COMMANDS)-.828 F F0(belo)2.366 E -2.616(w\). The)-.25 F .115(options ap-)2.615 F 1.066(pearing in)144 -655.2 R F1 -.27(BA)3.566 G(SHOPTS).27 E F0 1.066(are those reported as) -3.316 F F3(on)3.796 E F0(by)3.807 E F2(shopt)3.567 E F0 6.067(.I)C 3.567 -(ft)-6.067 G 1.067(his v)-3.567 F 1.067(ariable is in the en)-.25 F -(vironment)-.4 E(when)144 667.2 Q F2(bash)3.142 E F0 .642(starts up, ea\ -ch shell option in the list will be enabled before reading an)3.142 F -3.141(ys)-.15 G .641(tartup \214les.)-3.141 F(This v)144 679.2 Q -(ariable is read-only)-.25 E(.)-.65 E F2 -.3(BA)108 691.2 S(SHPID).3 E -F0 .187(Expands to the process ID of the current)144 703.2 R F2(bash) -2.687 E F0 2.688(process. This)2.688 F(dif)2.688 E .188(fers from)-.25 F -F2($$)2.688 E F0 .188(under certain circum-)2.688 F .548 -(stances, such as subshells that do not require)144 715.2 R F2(bash) -3.048 E F0 .548(to be re-initialized.)3.048 F .548(Assignments to)5.548 -F F1 -.27(BA)3.048 G(SHPID).27 E F0(ha)144 727.2 Q .3 -.15(ve n)-.2 H -2.5(oe).15 G -.25(ff)-2.5 G 2.5(ect. If).25 F F2 -.3(BA)2.5 G(SHPID).3 E -F0(is unset, it loses its special properties, e)2.5 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(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 22) -.15 E(10)185.545 E 0 Cg EP +2.616(w\). The)-.25 F .116(options ap-)2.616 F 1.067(pearing in)144 +667.2 R F2 -.27(BA)3.567 G(SHOPTS).27 E F0 1.067(are those reported as) +3.317 F F3(on)3.797 E F0(by)3.807 E F1(shopt)3.567 E F0 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 679.2 Q F1(bash)3.141 E F0 .642(starts up, ea\ +ch shell option in the list will be enabled before reading an)3.141 F +3.142(ys)-.15 G .642(tartup \214les.)-3.142 F(This v)144 691.2 Q +(ariable is read-only)-.25 E(.)-.65 E F1 -.3(BA)108 703.2 S(SHPID).3 E +F0 .188(Expands to the process ID of the current)144 715.2 R F1(bash) +2.688 E F0 2.687(process. This)2.687 F(dif)2.687 E .187(fers from)-.25 F +F1($$)2.687 E F0 .187(under certain circum-)2.687 F .548 +(stances, such as subshells that do not require)144 727.2 R F1(bash) +3.048 E F0 .548(to be re-initialized.)3.048 F .549(Assignments to)5.549 +F F2 -.27(BA)3.049 G(SHPID).27 E F0(GNU Bash 5.0)72 768 Q(2019 No) +136.385 E -.15(ve)-.15 G(mber 26).15 E(10)185.545 E 0 Cg EP %%Page: 11 11 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F -(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0 -SF -.3(BA)108 84 S(SH_ALIASES).3 E F0 1.195(An associati)144 96 R 1.495 --.15(ve a)-.25 H 1.195(rray v).15 F 1.195(ariable whose members corresp\ -ond to the internal list of aliases as main-)-.25 F .16(tained by the) -144 108 R F1(alias)2.66 E F0 -.2(bu)2.66 G 2.66(iltin. Elements).2 F .16 +(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E(ha)144 84 Q .3 +-.15(ve n)-.2 H 2.5(oe).15 G -.25(ff)-2.5 G 2.5(ect. If).25 F/F1 10 +/Times-Bold@0 SF -.3(BA)2.5 G(SHPID).3 E F0 +(is unset, it loses its special properties, e)2.5 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 F1 -.3(BA)108 96 S(SH_ALIASES).3 E F0 1.195(An associati)144 108 +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 120 R F1(alias)2.66 E F0 -.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 4.503 -(array elements currently does not cause aliases to be remo)144 120 R +(array elements currently does not cause aliases to be remo)144 132 R -.15(ve)-.15 G 7.003(df).15 G 4.503(rom the alias list.)-7.003 F(If) -9.503 E F1 -.3(BA)144 132 S(SH_ALIASES).3 E F0 +9.502 E F1 -.3(BA)144 144 S(SH_ALIASES).3 E F0 (is unset, it loses its special properties, e)2.5 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 F1 -.3(BA)108 144 S(SH_ARGC).3 E F0 .935(An array v)144 156 R -.935(ariable whose v)-.25 F .934 +-2.5 E F1 -.3(BA)108 156 S(SH_ARGC).3 E F0 .934(An array v)144 168 R +.934(ariable whose v)-.25 F .934 (alues are the number of parameters in each frame of the current)-.25 F -F1(bash)3.434 E F0 -.15(exe)144 168 S .535(cution call stack.).15 F .535 +F1(bash)3.435 E F0 -.15(exe)144 180 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 180 S .142(cuted with).15 F F1(.)2.642 E F0 -(or)2.642 E F1(sour)2.642 E(ce)-.18 E F0 2.642(\)i)C 2.642(sa)-2.642 G -2.642(tt)-2.642 G .142(he top of the stack.)-2.642 F .141 -(When a subroutine is e)5.141 F -.15(xe)-.15 G .141 + script)5.535 F -.15(exe)144 192 S .141(cuted with).15 F F1(.)2.641 E F0 +(or)2.641 E F1(sour)2.641 E(ce)-.18 E F0 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 -192 R/F2 9/Times-Bold@0 SF -.27(BA)3.765 G(SH_ARGC).27 E/F3 9 +204 R/F2 9/Times-Bold@0 SF -.27(BA)3.765 G(SH_ARGC).27 E/F3 9 /Times-Roman@0 SF(.)A F0 1.265(The shell sets)5.765 F F2 -.27(BA)3.765 G -(SH_ARGC).27 E F0 1.265(only when in e)3.515 F(x-)-.15 E .948 -(tended deb)144 204 R .947(ugging mode \(see the description of the)-.2 +(SH_ARGC).27 E F0 1.265(only when in e)3.515 F(x-)-.15 E .947 +(tended deb)144 216 R .947(ugging mode \(see the description of the)-.2 F F1(extdeb)3.447 E(ug)-.2 E F0 .947(option to the)3.447 F F1(shopt) -3.447 E F0 -.2(bu)3.447 G .947(iltin belo).2 F(w\).)-.25 E(Setting)144 -216 Q F1(extdeb)3.362 E(ug)-.2 E F0 .862 -(after the shell has started to e)3.362 F -.15(xe)-.15 G .863 -(cute a script, or referencing this v).15 F .863(ariable when)-.25 F F1 -(extdeb)144 228 Q(ug)-.2 E F0(is not set, may result in inconsistent v) -2.5 E(alues.)-.25 E F1 -.3(BA)108 240 S(SH_ARGV).3 E F0 .207(An array v) -144 252 R .206(ariable containing all of the parameters in the current) --.25 F F1(bash)2.706 E F0 -.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 i\ -s at the top of the stack; the \214rst parameter of the initial)144 264 -R 1.424(call is at the bottom.)144 276 R 1.424(When a subroutine is e) +3.447 E F0 -.2(bu)3.448 G .948(iltin belo).2 F(w\).)-.25 E(Setting)144 +228 Q F1(extdeb)3.363 E(ug)-.2 E F0 .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 F1 +(extdeb)144 240 Q(ug)-.2 E F0(is not set, may result in inconsistent v) +2.5 E(alues.)-.25 E F1 -.3(BA)108 252 S(SH_ARGV).3 E F0 .206(An array v) +144 264 R .206(ariable containing all of the parameters in the current) +-.25 F F1(bash)2.706 E F0 -.15(exe)2.706 G .207(cution call stack.).15 F +.207(The \214-)5.207 F .567(nal parameter of the last subroutine call i\ +s at the top of the stack; the \214rst parameter of the initial)144 276 +R 1.424(call is at the bottom.)144 288 R 1.424(When a subroutine is e) 6.424 F -.15(xe)-.15 G 1.424 -(cuted, the parameters supplied are pushed onto).15 F F2 -.27(BA)144 288 -S(SH_ARGV).27 E F3(.)A F0 .853(The shell sets)5.353 F F2 -.27(BA)3.353 G -(SH_ARGV).27 E F0 .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 300 R F1 -(extdeb)2.976 E(ug)-.2 E F0 .476(option to the)2.976 F F1(shopt)2.975 E +(cuted, the parameters supplied are pushed onto).15 F F2 -.27(BA)144 300 +S(SH_ARGV).27 E F3(.)A F0 .854(The shell sets)5.354 F F2 -.27(BA)3.354 G +(SH_ARGV).27 E F0 .853(only when in e)3.104 F .853(xtended deb)-.15 F +.853(ugging mode \(see the de-)-.2 F .475(scription of the)144 312 R F1 +(extdeb)2.975 E(ug)-.2 E F0 .475(option to the)2.975 F F1(shopt)2.975 E F0 -.2(bu)2.975 G .475(iltin belo).2 F 2.975(w\). Setting)-.25 F F1 -(extdeb)2.975 E(ug)-.2 E F0 .475(after the shell has)2.975 F .45 -(started to e)144 312 R -.15(xe)-.15 G .45 +(extdeb)2.976 E(ug)-.2 E F0 .476(after the shell has)2.976 F .45 +(started to e)144 324 R -.15(xe)-.15 G .45 (cute a script, or referencing this v).15 F .45(ariable when)-.25 F F1 (extdeb)2.95 E(ug)-.2 E F0 .45(is not set, may result in in-)2.95 F -(consistent v)144 324 Q(alues.)-.25 E F1 -.3(BA)108 336 S(SH_ARGV0).3 E -F0 .251(When referenced, this v)144 348 R .251(ariable e)-.25 F .251 +(consistent v)144 336 Q(alues.)-.25 E F1 -.3(BA)108 348 S(SH_ARGV0).3 E +F0 .25(When referenced, this v)144 360 R .25(ariable e)-.25 F .251 (xpands to the name of the shell or shell script \(identical to)-.15 F -F1($0)2.75 E F0 2.75(;s)C(ee)-2.75 E .04 -(the description of special parameter 0 abo)144 360 R -.15(ve)-.15 G +F1($0)2.751 E F0 2.751(;s)C(ee)-2.751 E .041 +(the description of special parameter 0 abo)144 372 R -.15(ve)-.15 G 2.541(\). Assignment).15 F(to)2.541 E F1 -.3(BA)2.541 G(SH_ARGV0).3 E F0 -.041(causes the v)2.541 F .041(alue as-)-.25 F .216 -(signed to also be assigned to)144 372 R F1($0)2.716 E F0 5.216(.I)C(f) +.04(causes the v)2.541 F .04(alue as-)-.25 F .216 +(signed to also be assigned to)144 384 R F1($0)2.716 E F0 5.216(.I)C(f) -5.216 E F1 -.3(BA)2.716 G(SH_ARGV0).3 E F0 .216 (is unset, it loses its special properties, e)2.716 F -.15(ve)-.25 G -2.715(ni).15 G(f)-2.715 E(it is subsequently reset.)144 384 Q F1 -.3(BA) -108 396 S(SH_CMDS).3 E F0 .667(An associati)144 408 R .967 -.15(ve a) --.25 H .667(rray v).15 F .668(ariable whose members correspond to the i\ -nternal hash table of commands)-.25 F .196(as maintained by the)144 420 -R F1(hash)2.696 E F0 -.2(bu)2.696 G 2.696(iltin. Elements).2 F .195 +2.716(ni).15 G(f)-2.716 E(it is subsequently reset.)144 396 Q F1 -.3(BA) +108 408 S(SH_CMDS).3 E F0 .668(An associati)144 420 R .968 -.15(ve a) +-.25 H .668(rray v).15 F .668(ariable whose members correspond to the i\ +nternal hash table of commands)-.25 F .195(as maintained by the)144 432 +R F1(hash)2.695 E F0 -.2(bu)2.695 G 2.695(iltin. Elements).2 F .196 (added to this array appear in the hash table; ho)2.696 F(we)-.25 E -.15 (ve)-.25 G -.4(r,).15 G .852(unsetting array elements currently does no\ -t cause command names to be remo)144 432 R -.15(ve)-.15 G 3.352(df).15 G -.853(rom the hash)-3.352 F 2.5(table. If)144 444 R F1 -.3(BA)2.5 G +t cause command names to be remo)144 444 R -.15(ve)-.15 G 3.352(df).15 G +.852(rom the hash)-3.352 F 2.5(table. If)144 456 R F1 -.3(BA)2.5 G (SH_CMDS).3 E F0(is unset, it loses its special properties, e)2.5 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 F1 -.3(BA)108 456 S(SH_COMMAND).3 E F0 1.243 -(The command currently being e)144 468 R -.15(xe)-.15 G 1.243 -(cuted or about to be e).15 F -.15(xe)-.15 G 1.242 -(cuted, unless the shell is e).15 F -.15(xe)-.15 G 1.242(cuting a).15 F -.262(command as the result of a trap, in which case it is the command e) -144 480 R -.15(xe)-.15 G .263(cuting at the time of the trap.).15 F(If) -144 492 Q F1 -.3(BA)2.5 G(SH_COMMAND).3 E F0 +(ubsequently reset.)-2.5 E F1 -.3(BA)108 468 S(SH_COMMAND).3 E F0 1.242 +(The command currently being e)144 480 R -.15(xe)-.15 G 1.243 +(cuted or about to be e).15 F -.15(xe)-.15 G 1.243 +(cuted, unless the shell is e).15 F -.15(xe)-.15 G 1.243(cuting a).15 F +.263(command as the result of a trap, in which case it is the command e) +144 492 R -.15(xe)-.15 G .262(cuting at the time of the trap.).15 F(If) +144 504 Q F1 -.3(BA)2.5 G(SH_COMMAND).3 E F0 (is unset, it loses its special properties, e)2.5 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 F1 -.3(BA)108 504 S(SH_EXECUTION_STRING).3 E F0(The command ar) -144 516 Q(gument to the)-.18 E F1<ad63>2.5 E F0(in)2.5 E -.2(vo)-.4 G -(cation option.).2 E F1 -.3(BA)108 528 S(SH_LINENO).3 E F0 .693 -(An array v)144 540 R .692(ariable whose members are the line numbers i\ -n source \214les where each corresponding)-.25 F .969(member of)144 552 -R F2(FUNCN)3.469 E(AME)-.18 E F0 -.1(wa)3.219 G 3.469(si).1 G -1.9 -.4 -(nv o)-3.469 H -.1(ke).4 G(d.).1 E F1(${B)5.969 E(ASH_LINENO[)-.3 E/F4 -10/Times-Italic@0 SF($i)A F1(]})A F0 .97 -(is the line number in the source)3.469 F 14.672(\214le \()144 564 R F1 -(${B)A(ASH_SOURCE[)-.3 E F4($i+1)A F1(]})A F0 17.172(\)w)C(here)-17.172 +-2.5 E F1 -.3(BA)108 516 S(SH_EXECUTION_STRING).3 E F0(The command ar) +144 528 Q(gument to the)-.18 E F1<ad63>2.5 E F0(in)2.5 E -.2(vo)-.4 G +(cation option.).2 E F1 -.3(BA)108 540 S(SH_LINENO).3 E F0 .692 +(An array v)144 552 R .692(ariable whose members are the line numbers i\ +n source \214les where each corresponding)-.25 F .97(member of)144 564 R +F2(FUNCN)3.47 E(AME)-.18 E F0 -.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 F1(${B)5.969 E(ASH_LINENO[)-.3 E/F4 10 +/Times-Italic@0 SF($i)A F1(]})A F0 .969 +(is the line number in the source)3.469 F 14.671(\214le \()144 576 R F1 +(${B)A(ASH_SOURCE[)-.3 E F4($i+1)A F1(]})A F0 17.171(\)w)C(here)-17.171 E F1(${FUNCN)17.172 E(AME[)-.2 E F4($i)A F1(]})A F0 -.1(wa)17.172 G -17.171(sc).1 G 14.671(alled \(or)-17.171 F F1(${B)144 576 Q(ASH_LINENO[) +17.172(sc).1 G 14.672(alled \(or)-17.172 F F1(${B)144 588 Q(ASH_LINENO[) -.3 E F4($i-1)A F1(]})A F0 .115 (if referenced within another shell function\).)2.615 F(Use)5.115 E F2 (LINENO)2.615 E F0 .115(to obtain the)2.365 F(current line number)144 -588 Q(.)-.55 E F1 -.3(BA)108 600 S(SH_LO).3 E(AD)-.4 E(ABLES_P)-.35 E --.95(AT)-.74 G(H).95 E F0 4.07(Ac)144 612 S 1.57(olon-separated list of\ +600 Q(.)-.55 E F1 -.3(BA)108 612 S(SH_LO).3 E(AD)-.4 E(ABLES_P)-.35 E +-.95(AT)-.74 G(H).95 E F0 4.07(Ac)144 624 S 1.57(olon-separated list of\ directories in which the shell looks for dynamically loadable b)-4.07 F -(uiltins)-.2 E(speci\214ed by the)144 624 Q F1(enable)2.5 E F0(command.) -2.5 E F1 -.3(BA)108 636 S(SH_REMA).3 E(TCH)-.95 E F0 .005(An array v)144 -648 R .005(ariable whose members are assigned by the)-.25 F F1(=~)2.506 -E F0 .006(binary operator to the)2.506 F F1([[)2.506 E F0 .006 -(conditional com-)2.506 F 2.507(mand. The)144 660 R .007 -(element with inde)2.507 F 2.507(x0i)-.15 G 2.507(st)-2.507 G .007 -(he portion of the string matching the entire re)-2.507 F .006(gular e) --.15 F(xpression.)-.15 E .997(The element with inde)144 672 R(x)-.15 E -F4(n)3.497 E F0 .997(is the portion of the string matching the)3.497 F -F4(n)3.498 E F0 .998(th parenthesized sube)B(xpres-)-.15 E(sion.)144 684 -Q F1 -.3(BA)108 696 S(SH_SOURCE).3 E F0 .126(An array v)144 708 R .125(\ -ariable whose members are the source \214lenames where the correspondin\ -g shell function)-.25 F .78(names in the)144 720 R F2(FUNCN)3.28 E(AME) --.18 E F0 .78(array v)3.03 F .78(ariable are de\214ned.)-.25 F .78 -(The shell function)5.78 F F1(${FUNCN)3.281 E(AME[)-.2 E F4($i)A F1(]})A -F0(is)3.281 E(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G -(mber 22).15 E(11)185.545 E 0 Cg EP +(uiltins)-.2 E(speci\214ed by the)144 636 Q F1(enable)2.5 E F0(command.) +2.5 E F1 -.3(BA)108 648 S(SH_REMA).3 E(TCH)-.95 E F0 .006(An array v)144 +660 R .006(ariable whose members are assigned by the)-.25 F F1(=~)2.506 +E F0 .005(binary operator to the)2.506 F F1([[)2.505 E F0 .005 +(conditional com-)2.505 F 2.506(mand. The)144 672 R .007 +(element with inde)2.506 F 2.507(x0i)-.15 G 2.507(st)-2.507 G .007 +(he portion of the string matching the entire re)-2.507 F .007(gular e) +-.15 F(xpression.)-.15 E .998(The element with inde)144 684 R(x)-.15 E +F4(n)3.498 E F0 .997(is the portion of the string matching the)3.498 F +F4(n)3.497 E F0 .997(th parenthesized sube)B(xpres-)-.15 E(sion.)144 696 +Q(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E +(11)185.545 E 0 Cg EP %%Page: 12 12 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F -(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E -(de\214ned in the \214le)144 84 Q/F1 10/Times-Bold@0 SF(${B)2.5 E -(ASH_SOURCE[)-.3 E/F2 10/Times-Italic@0 SF($i)A F1(]})A F0 -(and called from)2.5 E F1(${B)2.5 E(ASH_SOURCE[)-.3 E F2($i+1)A F1(]})A -F0(.)A F1 -.3(BA)108 96 S(SH_SUBSHELL).3 E F0 .296 -(Incremented by one within each subshell or subshell en)144 108 R .296 -(vironment when the shell be)-.4 F .296(gins e)-.15 F -.15(xe)-.15 G -(cuting).15 E 1.276(in that en)144 120 R 3.776(vironment. The)-.4 F -1.276(initial v)3.776 F 1.277(alue is 0.)-.25 F(If)6.277 E F1 -.3(BA) -3.777 G(SH_SUBSHELL).3 E F0 1.277(is unset, it loses its special)3.777 F -(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 F1 -.3(BA)108 144 S -(SH_VERSINFO).3 E F0 2.645(Ar)144 156 S .145(eadonly array v)-2.645 F +(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0 +SF -.3(BA)108 84 S(SH_SOURCE).3 E F0 .125(An array v)144 96 R .125(aria\ +ble whose members are the source \214lenames where the corresponding sh\ +ell function)-.25 F .781(names in the)144 108 R/F2 9/Times-Bold@0 SF +(FUNCN)3.28 E(AME)-.18 E F0 .78(array v)3.03 F .78 +(ariable are de\214ned.)-.25 F .78(The shell function)5.78 F F1(${FUNCN) +3.28 E(AME[)-.2 E/F3 10/Times-Italic@0 SF($i)A F1(]})A F0(is)3.28 E +(de\214ned in the \214le)144 120 Q F1(${B)2.5 E(ASH_SOURCE[)-.3 E F3($i) +A F1(]})A F0(and called from)2.5 E F1(${B)2.5 E(ASH_SOURCE[)-.3 E F3 +($i+1)A F1(]})A F0(.)A F1 -.3(BA)108 132 S(SH_SUBSHELL).3 E F0 .296 +(Incremented by one within each subshell or subshell en)144 144 R .296 +(vironment when the shell be)-.4 F .297(gins e)-.15 F -.15(xe)-.15 G +(cuting).15 E 1.277(in that en)144 156 R 3.777(vironment. The)-.4 F +1.277(initial v)3.777 F 1.277(alue is 0.)-.25 F(If)6.277 E F1 -.3(BA) +3.777 G(SH_SUBSHELL).3 E F0 1.276(is unset, it loses its special)3.777 F +(properties, e)144 168 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 F1 -.3(BA)108 180 S +(SH_VERSINFO).3 E F0 2.644(Ar)144 192 S .144(eadonly array v)-2.644 F .144(ariable whose members hold v)-.25 F .144 -(ersion information for this instance of)-.15 F F1(bash)2.644 E F0 5.144 -(.T)C(he)-5.144 E -.25(va)144 168 S +(ersion information for this instance of)-.15 F F1(bash)2.645 E F0 5.145 +(.T)C(he)-5.145 E -.25(va)144 204 S (lues assigned to the array members are as follo).25 E(ws:)-.25 E F1 -.3 -(BA)144 186 S(SH_VERSINFO[).3 E F0(0)A F1(])A F0(The major v)264 186 Q -(ersion number \(the)-.15 E F2 -.37(re)2.5 G(lease).37 E F0(\).)A F1 -.3 -(BA)144 198 S(SH_VERSINFO[).3 E F0(1)A F1(])A F0(The minor v)264 198 Q -(ersion number \(the)-.15 E F2(ver)2.5 E(sion)-.1 E F0(\).)A F1 -.3(BA) -144 210 S(SH_VERSINFO[).3 E F0(2)A F1(])A F0(The patch le)264 210 Q -.15 -(ve)-.25 G(l.).15 E F1 -.3(BA)144 222 S(SH_VERSINFO[).3 E F0(3)A F1(])A -F0(The b)264 222 Q(uild v)-.2 E(ersion.)-.15 E F1 -.3(BA)144 234 S -(SH_VERSINFO[).3 E F0(4)A F1(])A F0(The release status \(e.g.,)264 234 Q -F2(beta1)2.5 E F0(\).)A F1 -.3(BA)144 246 S(SH_VERSINFO[).3 E F0(5)A F1 -(])A F0(The v)264 246 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 F1 -.3(BA)108 258 S -(SH_VERSION).3 E F0(Expands to a string describing the v)144 270 Q +(BA)144 222 S(SH_VERSINFO[).3 E F0(0)A F1(])A F0(The major v)264 222 Q +(ersion number \(the)-.15 E F3 -.37(re)2.5 G(lease).37 E F0(\).)A F1 -.3 +(BA)144 234 S(SH_VERSINFO[).3 E F0(1)A F1(])A F0(The minor v)264 234 Q +(ersion number \(the)-.15 E F3(ver)2.5 E(sion)-.1 E F0(\).)A F1 -.3(BA) +144 246 S(SH_VERSINFO[).3 E F0(2)A F1(])A F0(The patch le)264 246 Q -.15 +(ve)-.25 G(l.).15 E F1 -.3(BA)144 258 S(SH_VERSINFO[).3 E F0(3)A F1(])A +F0(The b)264 258 Q(uild v)-.2 E(ersion.)-.15 E F1 -.3(BA)144 270 S +(SH_VERSINFO[).3 E F0(4)A F1(])A F0(The release status \(e.g.,)264 270 Q +F3(beta1)2.5 E F0(\).)A F1 -.3(BA)144 282 S(SH_VERSINFO[).3 E F0(5)A F1 +(])A F0(The v)264 282 Q(alue of)-.25 E F2(MA)2.5 E(CHTYPE)-.495 E/F4 9 +/Times-Roman@0 SF(.)A F1 -.3(BA)108 294 S(SH_VERSION).3 E F0 +(Expands to a string describing the v)144 306 Q (ersion of this instance of)-.15 E F1(bash)2.5 E F0(.)A F1(COMP_CW)108 -282 Q(ORD)-.1 E F0 .396(An inde)144 294 R 2.896(xi)-.15 G(nto)-2.896 E +318 Q(ORD)-.1 E F0 .397(An inde)144 330 R 2.897(xi)-.15 G(nto)-2.897 E F1(${COMP_W)2.896 E(ORDS})-.1 E F0 .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 306 R -.25(va)-.2 G 1.181 +(ord containing the current cursor position.)-.1 F .396(This v)5.396 F +(ari-)-.25 E 1.18(able is a)144 342 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 F1(Pr)144 318 Q(ogrammable Completion)-.18 E -F0(belo)2.5 E(w\).)-.25 E F1(COMP_KEY)108 330 Q F0(The k)144 342 Q .3 +(db).1 G 3.681(yt)-3.681 G 1.181(he programmable completion f)-3.681 F +1.181(acilities \(see)-.1 F F1(Pr)144 354 Q(ogrammable Completion)-.18 E +F0(belo)2.5 E(w\).)-.25 E F1(COMP_KEY)108 366 Q F0(The k)144 378 Q .3 -.15(ey \()-.1 H(or \214nal k).15 E .3 -.15(ey o)-.1 H 2.5(fak).15 G .3 -.15(ey s)-2.6 H(equence\) used to in).15 E -.2(vo)-.4 G .2 -.1(ke t).2 -H(he current completion function.).1 E F1(COMP_LINE)108 354 Q F0 1.207 -(The current command line.)144 366 R 1.208(This v)6.208 F 1.208 +H(he current completion function.).1 E F1(COMP_LINE)108 390 Q F0 1.208 +(The current command line.)144 402 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 378 R -.2(vo)-.4 G -.1(ke).2 G 3.537(db).1 G 3.537 +(ilable only in shell functions and e).25 F 1.207(xternal com-)-.15 F +1.037(mands in)144 414 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 F1(Pr)3.537 E 1.037(ogrammable Completion)-.18 F -F0(be-)3.537 E(lo)144 390 Q(w\).)-.25 E F1(COMP_POINT)108 402 Q F0 .666 -(The inde)144 414 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 +F0(be-)3.537 E(lo)144 426 Q(w\).)-.25 E F1(COMP_POINT)108 438 Q F0 .667 +(The inde)144 450 R 3.167(xo)-.15 G 3.167(ft)-3.167 G .666 +(he current cursor position relati)-3.167 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 +F .666(If the)5.666 F .534 (current cursor position is at the end of the current command, the v)144 -426 R .534(alue of this v)-.25 F .534(ariable is equal to)-.25 F F1 -(${#COMP_LINE})144 438 Q F0 5.704(.T)C .704(his v)-5.704 F .704 +462 R .535(alue of this v)-.25 F .535(ariable is equal to)-.25 F F1 +(${#COMP_LINE})144 474 Q F0 5.705(.T)C .705(his v)-5.705 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 450 S -.1(ke).2 G 2.5(db).1 G 2.5(yt)-2.5 G +(ilable only in shell functions and e).25 F .704(xternal commands in-) +-.15 F -.2(vo)144 486 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 F1(Pr)2.5 E (ogrammable Completion)-.18 E F0(belo)2.5 E(w\).)-.25 E F1(COMP_TYPE)108 -462 Q F0 .042(Set to an inte)144 474 R .042(ger v)-.15 F .041(alue corr\ +498 Q F0 .041(Set to an inte)144 510 R .041(ger v)-.15 F .041(alue corr\ esponding to the type of completion attempted that caused a completion) --.25 F .337(function to be called:)144 486 R F2 -.5(TA)2.837 G(B).5 E F0 -2.837(,f)C .337(or normal completion,)-2.837 F F2(?)2.837 E F0 2.837(,f) -C .337(or listing completions after successi)-2.837 F .638 -.15(ve t) --.25 H(abs,).15 E F2(!)144 498 Q F0 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 F2(@)3.067 E +-.25 F .338(function to be called:)144 522 R F3 -.5(TA)2.837 G(B).5 E F0 +2.837(,f)C .337(or normal completion,)-2.837 F F3(?)2.837 E F0 2.837(,f) +C .337(or listing completions after successi)-2.837 F .637 -.15(ve t) +-.25 H(abs,).15 E F3(!)144 534 Q F0 3.067(,f)C .567 +(or listing alternati)-3.067 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 F3(@)3.067 E F0 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 510 R F2(%)2.917 E F0 -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 +.567(ord is not un-)-.1 F .418(modi\214ed, or)144 546 R F3(%)2.918 E F0 +2.918(,f)C .418(or menu completion.)-2.918 F .417(This v)5.417 F .417 +(ariable is a)-.25 F -.25(va)-.2 G .417 (ilable only in shell functions and e).25 F(xter)-.15 E(-)-.2 E .704 -(nal commands in)144 522 R -.2(vo)-.4 G -.1(ke).2 G 3.204(db).1 G 3.204 +(nal commands in)144 558 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 F1(Pr)3.204 E .704(ogrammable Comple-)-.18 F -(tion)144 534 Q F0(belo)2.5 E(w\).)-.25 E F1(COMP_W)108 546 Q(ORDBREAKS) --.1 E F0 1.335(The set of characters that the)144 558 R F1 -.18(re)3.836 -G(adline).18 E F0 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 570 R F3(COMP_W)3.126 E(ORDBREAKS)-.09 E F0 .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 582 Q F1(COMP_W)108 594 Q(ORDS)-.1 E -F0 .653(An array v)144 606 R .653(ariable \(see)-.25 F F1(Arrays)3.153 E -F0(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 618 R +(tion)144 570 Q F0(belo)2.5 E(w\).)-.25 E F1(COMP_W)108 582 Q(ORDBREAKS) +-.1 E F0 1.336(The set of characters that the)144 594 R F1 -.18(re)3.836 +G(adline).18 E F0 1.336(library treats as w)3.836 F 1.335 +(ord separators when performing w)-.1 F(ord)-.1 E 3.125(completion. If) +144 606 R F2(COMP_W)3.125 E(ORDBREAKS)-.09 E F0 .626 +(is unset, it loses its special properties, e)2.875 F -.15(ve)-.25 G +3.126(ni).15 G 3.126(fi)-3.126 G 3.126(ti)-3.126 G 3.126(ss)-3.126 G +(ubse-)-3.126 E(quently reset.)144 618 Q F1(COMP_W)108 630 Q(ORDS)-.1 E +F0 .654(An array v)144 642 R .654(ariable \(see)-.25 F F1(Arrays)3.154 E +F0(belo)3.154 E .654(w\) consisting of the indi)-.25 F .653(vidual w) +-.25 F .653(ords in the current command)-.1 F 3.191(line. The)144 654 R .692(line is split into w)3.192 F .692(ords as)-.1 F F1 -.18(re)3.192 G -(adline).18 E F0 -.1(wo)3.192 G .692(uld split it, using).1 F F3(COMP_W) -3.192 E(ORDBREAKS)-.09 E F0 .691(as de-)2.942 F 1.557(scribed abo)144 -630 R -.15(ve)-.15 G 6.557(.T).15 G 1.557(his v)-6.557 F 1.557 +(adline).18 E F0 -.1(wo)3.192 G .692(uld split it, using).1 F F2(COMP_W) +3.192 E(ORDBREAKS)-.09 E F0 .692(as de-)2.942 F 1.558(scribed abo)144 +666 R -.15(ve)-.15 G 6.558(.T).15 G 1.558(his v)-6.558 F 1.558 (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 642 Q(acilities \(see)-.1 E F1(Pr)2.5 E(ogrammable Completion)-.18 E -F0(belo)2.5 E(w\).)-.25 E F1(COPR)108 654 Q(OC)-.3 E F0 .169(An array v) -144 666 R .169(ariable \(see)-.25 F F1(Arrays)2.669 E F0(belo)2.669 E +(ilable only in shell functions in).25 F -.2(vo)-.4 G -.1(ke).2 G 4.057 +(db).1 G 4.057(yt)-4.057 G 1.557(he programmable)-4.057 F(completion f) +144 678 Q(acilities \(see)-.1 E F1(Pr)2.5 E(ogrammable Completion)-.18 E +F0(belo)2.5 E(w\).)-.25 E F1(COPR)108 690 Q(OC)-.3 E F0 .168(An array v) +144 702 R .168(ariable \(see)-.25 F F1(Arrays)2.668 E F0(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 678 Q F1(Copr)2.5 E(ocesses) --.18 E F0(abo)2.5 E -.15(ve)-.15 G(\).).15 E F1(DIRST)108 690 Q -.55(AC) --.9 G(K).55 E F0 .789(An array v)144 702 R .789(ariable \(see)-.25 F F1 -(Arrays)3.289 E F0(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 714 R -2.599(ya)-.15 G .099(re displayed by the)-2.599 F F1(dirs)2.599 E F0 -.2 -(bu)2.599 G 2.598(iltin. Assigning).2 F .098(to mem-)2.598 F .84 -(bers of this array v)144 726 R .84 -(ariable may be used to modify directories already in the stack, b)-.25 -F .84(ut the)-.2 F F1(pushd)3.34 E F0(GNU Bash 5.0)72 768 Q(2019 No) -136.385 E -.15(ve)-.15 G(mber 22).15 E(12)185.545 E 0 Cg EP +-.25 F(to an unnamed coprocess \(see)144 714 Q F1(Copr)2.5 E(ocesses) +-.18 E F0(abo)2.5 E -.15(ve)-.15 G(\).).15 E(GNU Bash 5.0)72 768 Q +(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E(12)185.545 E 0 Cg EP %%Page: 13 13 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F -(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E(and)144 84 Q/F1 10 -/Times-Bold@0 SF(popd)3.451 E F0 -.2(bu)3.451 G .951 -(iltins must be used to add and remo).2 F 1.251 -.15(ve d)-.15 H 3.45 -(irectories. Assignment).15 F .95(to this v)3.45 F .95(ariable will)-.25 -F .378(not change the current directory)144 96 R 5.378(.I)-.65 G(f) --5.378 E/F2 9/Times-Bold@0 SF(DIRST)2.878 E -.495(AC)-.81 G(K).495 E F0 -.379(is unset, it loses its special properties, e)2.628 F -.15(ve)-.25 G -2.879(ni).15 G 2.879(fi)-2.879 G 2.879(ti)-2.879 G(s)-2.879 E -(subsequently reset.)144 108 Q F1(EPOCHREAL)108 120 Q(TIME)-.92 E F0 -.338(Each time this parameter is referenced, it e)144 132 R .337 -(xpands to the number of seconds since the Unix Epoch)-.15 F(\(see)144 -144 Q/F3 10/Times-Italic@0 SF(time)2.916 E F0 .416 -(\(3\)\) as a \215oating point v)B .417 -(alue with micro-second granularity)-.25 F 5.417(.A)-.65 G .417 -(ssignments to)-5.417 F F2(EPOCHRE-)2.917 E(AL)144 156 Q(TIME)-.828 E F0 -1.091(are ignored.)3.341 F(If)6.091 E F2(EPOCHREAL)3.59 E(TIME)-.828 E -F0 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 168 Q F1(EPOCHSECONDS)108 180 Q F0 .337 -(Each time this parameter is referenced, it e)144 192 R .338 +(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0 +SF(DIRST)108 84 Q -.55(AC)-.9 G(K).55 E F0 .79(An array v)144 96 R .79 +(ariable \(see)-.25 F F1(Arrays)3.29 E F0(belo)3.289 E .789 +(w\) containing the current contents of the directory stack.)-.25 F(Di-) +5.789 E .099(rectories appear in the stack in the order the)144 108 R +2.599(ya)-.15 G .099(re displayed by the)-2.599 F F1(dirs)2.599 E F0 -.2 +(bu)2.599 G 2.599(iltin. Assigning).2 F .099(to mem-)2.599 F .84 +(bers of this array v)144 120 R .84 +(ariable may be used to modify directories already in the stack, b)-.25 +F .84(ut the)-.2 F F1(pushd)3.34 E F0(and)144 132 Q F1(popd)3.45 E F0 +-.2(bu)3.45 G .951(iltins must be used to add and remo).2 F 1.251 -.15 +(ve d)-.15 H 3.451(irectories. Assignment).15 F .951(to this v)3.451 F +.951(ariable will)-.25 F .379(not change the current directory)144 144 R +5.379(.I)-.65 G(f)-5.379 E/F2 9/Times-Bold@0 SF(DIRST)2.879 E -.495(AC) +-.81 G(K).495 E F0 .378(is unset, it loses its special properties, e) +2.629 F -.15(ve)-.25 G 2.878(ni).15 G 2.878(fi)-2.878 G 2.878(ti)-2.878 +G(s)-2.878 E(subsequently reset.)144 156 Q F1(EPOCHREAL)108 168 Q(TIME) +-.92 E F0 .337(Each time this parameter is referenced, it e)144 180 R +.338(xpands to the number of seconds since the Unix Epoch)-.15 F(\(see) +144 192 Q/F3 10/Times-Italic@0 SF(time)2.917 E F0 .417 +(\(3\)\) as a \215oating point v)B .416 +(alue with micro-second granularity)-.25 F 5.416(.A)-.65 G .416 +(ssignments to)-5.416 F F2(EPOCHRE-)2.916 E(AL)144 204 Q(TIME)-.828 E F0 +1.09(are ignored.)3.34 F(If)6.09 E F2(EPOCHREAL)3.59 E(TIME)-.828 E F0 +1.09(is unset, it loses its special properties, e)3.34 F -.15(ve)-.25 G +3.591(ni).15 G 3.591(fi)-3.591 G 3.591(ti)-3.591 G(s)-3.591 E +(subsequently reset.)144 216 Q F1(EPOCHSECONDS)108 228 Q F0 .338 +(Each time this parameter is referenced, it e)144 240 R .337 (xpands to the number of seconds since the Unix Epoch)-.15 F(\(see)144 -204 Q F3(time)4.042 E F0 4.042(\(3\)\). Assignments)B(to)4.042 E F2 -(EPOCHSECONDS)4.042 E F0 1.542(are ignored.)3.792 F(If)6.542 E F2 -(EPOCHSECONDS)4.041 E F0 1.541(is unset, it)3.791 F -(loses its special properties, e)144 216 Q -.15(ve)-.25 G 2.5(ni).15 G +252 Q F3(time)4.041 E F0 4.041(\(3\)\). Assignments)B(to)4.041 E F2 +(EPOCHSECONDS)4.041 E F0 1.542(are ignored.)3.792 F(If)6.542 E F2 +(EPOCHSECONDS)4.042 E F0 1.542(is unset, it)3.792 F +(loses its special properties, e)144 264 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 F1 -(EUID)108 228 Q F0 1.103(Expands to the ef)144 228 R(fecti)-.25 E 1.403 +(EUID)108 276 Q F0 1.104(Expands to the ef)144 276 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 240 Q(.)-.65 E F1(FUNCN)108 252 Q(AME) --.2 E F0 .479(An array v)144 264 R .479 +1.103(nitialized at shell startup.)-3.603 F 1.103(This v)6.103 F 1.103 +(ariable is)-.25 F(readonly)144 288 Q(.)-.65 E F1(FUNCN)108 300 Q(AME) +-.2 E F0 .478(An array v)144 312 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 276 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 .385 -(element \(the one with the highest inde)144 288 R .384(x\) is)-.15 F/F4 -10/Courier@0 SF("main")2.884 E F0 5.384(.T)C .384(his v)-5.384 F .384 -(ariable e)-.25 F .384(xists only when a shell func-)-.15 F .075 -(tion is e)144 300 R -.15(xe)-.15 G 2.575(cuting. Assignments).15 F(to) -2.575 E F2(FUNCN)2.575 E(AME)-.18 E F0(ha)2.325 E .376 -.15(ve n)-.2 H -2.576(oe).15 G -.25(ff)-2.576 G 2.576(ect. If).25 F F2(FUNCN)2.576 E -(AME)-.18 E F0 .076(is unset, it loses its)2.326 F -(special properties, e)144 312 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 .111(This v)144 -330 R .111(ariable can be used with)-.25 F F1 -.3(BA)2.611 G(SH_LINENO) +-.25 F -.15(xe)-.15 G .479(cution call stack.).15 F .277 +(The element with inde)144 324 R 2.777(x0i)-.15 G 2.777(st)-2.777 G .276 +(he name of an)-2.777 F 2.776(yc)-.15 G(urrently-e)-2.776 E -.15(xe)-.15 +G .276(cuting shell function.).15 F .276(The bottom-most)5.276 F .384 +(element \(the one with the highest inde)144 336 R .384(x\) is)-.15 F/F4 +10/Courier@0 SF("main")2.884 E F0 5.384(.T)C .384(his v)-5.384 F .385 +(ariable e)-.25 F .385(xists only when a shell func-)-.15 F .076 +(tion is e)144 348 R -.15(xe)-.15 G 2.576(cuting. Assignments).15 F(to) +2.576 E F2(FUNCN)2.576 E(AME)-.18 E F0(ha)2.326 E .376 -.15(ve n)-.2 H +2.576(oe).15 G -.25(ff)-2.576 G 2.576(ect. If).25 F F2(FUNCN)2.575 E +(AME)-.18 E F0 .075(is unset, it loses its)2.325 F +(special properties, e)144 360 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 .11(This v)144 +378 R .111(ariable can be used with)-.25 F F1 -.3(BA)2.611 G(SH_LINENO) .3 E F0(and)2.611 E F1 -.3(BA)2.611 G(SH_SOURCE).3 E F0 5.111(.E)C .111 -(ach element of)-5.111 F F1(FUNC-)2.61 E -.2(NA)144 342 S(ME).2 E F0 +(ach element of)-5.111 F F1(FUNC-)2.611 E -.2(NA)144 390 S(ME).2 E F0 1.404(has corresponding elements in)3.904 F F1 -.3(BA)3.904 G(SH_LINENO) .3 E F0(and)3.904 E F1 -.3(BA)3.904 G(SH_SOURCE).3 E F0 1.404 -(to describe the)3.904 F .012(call stack.)144 354 R -.15(Fo)5.012 G +(to describe the)3.904 F .012(call stack.)144 402 R -.15(Fo)5.012 G 2.512(ri).15 G(nstance,)-2.512 E F1(${FUNCN)2.512 E(AME[)-.2 E F3($i)A F1(]})A F0 -.1(wa)2.512 G 2.512(sc).1 G .012(alled from the \214le) --2.512 F F1(${B)2.512 E(ASH_SOURCE[)-.3 E F3($i+1)A F1(]})A F0 1.183 -(at line number)144 366 R F1(${B)3.683 E(ASH_LINENO[)-.3 E F3($i)A F1 -(]})A F0 6.183(.T)C(he)-6.183 E F1(caller)3.683 E F0 -.2(bu)3.683 G -1.184(iltin displays the current call stack using).2 F -(this information.)144 378 Q F1(GR)108 390 Q(OUPS)-.3 E F0 1.229 -(An array v)144 402 R 1.228(ariable containing the list of groups of wh\ -ich the current user is a member)-.25 F 6.228(.A)-.55 G(ssign-)-6.228 E -.571(ments to)144 414 R F2(GR)3.071 E(OUPS)-.27 E F0(ha)2.822 E .872 +-2.512 F F1(${B)2.512 E(ASH_SOURCE[)-.3 E F3($i+1)A F1(]})A F0 1.184 +(at line number)144 414 R F1(${B)3.684 E(ASH_LINENO[)-.3 E F3($i)A F1 +(]})A F0 6.184(.T)C(he)-6.184 E F1(caller)3.683 E F0 -.2(bu)3.683 G +1.183(iltin displays the current call stack using).2 F +(this information.)144 426 Q F1(GR)108 438 Q(OUPS)-.3 E F0 1.228 +(An array v)144 450 R 1.228(ariable containing the list of groups of wh\ +ich the current user is a member)-.25 F 6.229(.A)-.55 G(ssign-)-6.229 E +.572(ments to)144 462 R F2(GR)3.072 E(OUPS)-.27 E F0(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 F2 (GR)3.072 E(OUPS)-.27 E F0 .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 426 Q F1(HISTCMD)108 438 Q F0 .356 -(The history number)144 450 R 2.856(,o)-.4 G 2.856(ri)-2.856 G(nde) --2.856 E 2.856(xi)-.15 G 2.856(nt)-2.856 G .356 +3.072(ni).15 G 3.071(fi)-3.072 G 3.071(ti)-3.071 G(s)-3.071 E +(subsequently reset.)144 474 Q F1(HISTCMD)108 486 Q F0 .355 +(The history number)144 498 R 2.855(,o)-.4 G 2.855(ri)-2.855 G(nde) +-2.855 E 2.856(xi)-.15 G 2.856(nt)-2.856 G .356 (he history list, of the current command.)-2.856 F(If)5.356 E F2 -(HISTCMD)2.855 E F0 .355(is unset, it)2.605 F -(loses its special properties, e)144 462 Q -.15(ve)-.25 G 2.5(ni).15 G +(HISTCMD)2.856 E F0 .356(is unset, it)2.606 F +(loses its special properties, e)144 510 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 F1 -(HOSTN)108 474 Q(AME)-.2 E F0 -(Automatically set to the name of the current host.)144 486 Q F1 -(HOSTTYPE)108 498 Q F0 .222(Automatically set to a string that uniquely\ - describes the type of machine on which)144 510 R F1(bash)2.723 E F0 -.223(is e)2.723 F -.15(xe)-.15 G(cut-).15 E 2.5(ing. The)144 522 R(def) -2.5 E(ault is system-dependent.)-.1 E F1(LINENO)108 534 Q F0 1.408(Each\ +(HOSTN)108 522 Q(AME)-.2 E F0 +(Automatically set to the name of the current host.)144 534 Q F1 +(HOSTTYPE)108 546 Q F0 .223(Automatically set to a string that uniquely\ + describes the type of machine on which)144 558 R F1(bash)2.722 E F0 +.222(is e)2.722 F -.15(xe)-.15 G(cut-).15 E 2.5(ing. The)144 570 R(def) +2.5 E(ault is system-dependent.)-.1 E F1(LINENO)108 582 Q F0 1.408(Each\ time this parameter is referenced, the shell substitutes a decimal num\ -ber representing the)144 546 R .078(current sequential line number \(st\ -arting with 1\) within a script or function.)144 558 R .079 -(When not in a script or)5.078 F .307(function, the v)144 570 R .307 -(alue substituted is not guaranteed to be meaningful.)-.25 F(If)5.306 E -F2(LINENO)2.806 E F0 .306(is unset, it loses its)2.556 F -(special properties, e)144 582 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 F1(MA)108 594 Q +ber representing the)144 594 R .078(current sequential line number \(st\ +arting with 1\) within a script or function.)144 606 R .078 +(When not in a script or)5.078 F .306(function, the v)144 618 R .306 +(alue substituted is not guaranteed to be meaningful.)-.25 F(If)5.307 E +F2(LINENO)2.807 E F0 .307(is unset, it loses its)2.557 F +(special properties, e)144 630 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 F1(MA)108 642 Q (CHTYPE)-.55 E F0 .898(Automatically set to a string that fully describ\ -es the system type on which)144 606 R F1(bash)3.398 E F0 .899(is e)3.398 -F -.15(xe)-.15 G .899(cuting, in).15 F(the standard GNU)144 618 Q F3 +es the system type on which)144 654 R F1(bash)3.398 E F0 .898(is e)3.398 +F -.15(xe)-.15 G .898(cuting, in).15 F(the standard GNU)144 666 Q F3 (cpu-company-system)2.5 E F0 2.5(format. The)2.5 F(def)2.5 E -(ault is system-dependent.)-.1 E F1(MAPFILE)108 630 Q F0 .294 -(An array v)144 642 R .294(ariable \(see)-.25 F F1(Arrays)2.794 E F0 -(belo)2.794 E .294(w\) created to hold the te)-.25 F .293 -(xt read by the)-.15 F F1(map\214le)2.793 E F0 -.2(bu)2.793 G .293 -(iltin when no).2 F -.25(va)144 654 S(riable name is supplied.).25 E F1 -(OLDPWD)108 666 Q F0(The pre)144 678 Q(vious w)-.25 E -(orking directory as set by the)-.1 E F1(cd)2.5 E F0(command.)2.5 E F1 -(OPT)108 690 Q(ARG)-.9 E F0 1.626(The v)144 702 R 1.627 -(alue of the last option ar)-.25 F 1.627(gument processed by the)-.18 F -F1(getopts)4.127 E F0 -.2(bu)4.127 G 1.627(iltin command \(see).2 F F2 -(SHELL)4.127 E -.09(BU)144 714 S(IL).09 E(TIN COMMANDS)-.828 E F0(belo) -2.25 E(w\).)-.25 E(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 -G(mber 22).15 E(13)185.545 E 0 Cg EP +(ault is system-dependent.)-.1 E F1(MAPFILE)108 678 Q F0 .293 +(An array v)144 690 R .293(ariable \(see)-.25 F F1(Arrays)2.793 E F0 +(belo)2.793 E .293(w\) created to hold the te)-.25 F .294 +(xt read by the)-.15 F F1(map\214le)2.794 E F0 -.2(bu)2.794 G .294 +(iltin when no).2 F -.25(va)144 702 S(riable name is supplied.).25 E +(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E +(13)185.545 E 0 Cg EP %%Page: 14 14 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F (Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0 -SF(OPTIND)108 84 Q F0 1.652(The inde)144 96 R 4.152(xo)-.15 G 4.152(ft) --4.152 G 1.652(he ne)-4.152 F 1.652(xt ar)-.15 F 1.652 -(gument to be processed by the)-.18 F F1(getopts)4.151 E F0 -.2(bu)4.151 -G 1.651(iltin command \(see).2 F/F2 9/Times-Bold@0 SF(SHELL)4.151 E -.09 -(BU)144 108 S(IL).09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25 E -F1(OSTYPE)108 120 Q F0 .329(Automatically set to a string that describe\ -s the operating system on which)144 132 R F1(bash)2.83 E F0 .33(is e) -2.83 F -.15(xe)-.15 G 2.83(cuting. The).15 F(def)144 144 Q -(ault is system-dependent.)-.1 E F1(PIPEST)108 156 Q -.95(AT)-.9 G(US) -.95 E F0 .61(An array v)144 168 R .61(ariable \(see)-.25 F F1(Arrays) -3.11 E F0(belo)3.11 E .61(w\) containing a list of e)-.25 F .61 +SF(OLDPWD)108 84 Q F0(The pre)144 96 Q(vious w)-.25 E +(orking directory as set by the)-.1 E F1(cd)2.5 E F0(command.)2.5 E F1 +(OPT)108 108 Q(ARG)-.9 E F0 1.627(The v)144 120 R 1.627 +(alue of the last option ar)-.25 F 1.627(gument processed by the)-.18 F +F1(getopts)4.127 E F0 -.2(bu)4.127 G 1.626(iltin command \(see).2 F/F2 9 +/Times-Bold@0 SF(SHELL)4.126 E -.09(BU)144 132 S(IL).09 E(TIN COMMANDS) +-.828 E F0(belo)2.25 E(w\).)-.25 E F1(OPTIND)108 144 Q F0 1.651 +(The inde)144 156 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 F1 +(getopts)4.152 E F0 -.2(bu)4.152 G 1.652(iltin command \(see).2 F F2 +(SHELL)4.152 E -.09(BU)144 168 S(IL).09 E(TIN COMMANDS)-.828 E F0(belo) +2.25 E(w\).)-.25 E F1(OSTYPE)108 180 Q F0 .329(Automatically set to a s\ +tring that describes the operating system on which)144 192 R F1(bash) +2.829 E F0 .329(is e)2.829 F -.15(xe)-.15 G 2.829(cuting. The).15 F(def) +144 204 Q(ault is system-dependent.)-.1 E F1(PIPEST)108 216 Q -.95(AT) +-.9 G(US).95 E F0 .61(An array v)144 228 R .61(ariable \(see)-.25 F F1 +(Arrays)3.11 E F0(belo)3.11 E .61(w\) containing a list of e)-.25 F .61 (xit status v)-.15 F .61(alues from the processes in)-.25 F -(the most-recently-e)144 180 Q -.15(xe)-.15 G(cuted fore).15 E +(the most-recently-e)144 240 Q -.15(xe)-.15 G(cuted fore).15 E (ground pipeline \(which may contain only a single command\).)-.15 E F1 -(PPID)108 192 Q F0(The process ID of the shell')144 192 Q 2.5(sp)-.55 G +(PPID)108 252 Q F0(The process ID of the shell')144 252 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 -F1(PWD)108 204 Q F0(The current w)144 204 Q +F1(PWD)108 264 Q F0(The current w)144 264 Q (orking directory as set by the)-.1 E F1(cd)2.5 E F0(command.)2.5 E F1 -(RANDOM)108 216 Q F0 .417(Each time this parameter is referenced, it e) -144 228 R .417(xpands to a random inte)-.15 F .417 -(ger between 0 and 32767.)-.15 F(As-)5.417 E .551(signing a v)144 240 R -.551(alue to)-.25 F F2(RANDOM)3.051 E F0 .551 -(initializes \(seeds\) the sequence of random numbers.)2.801 F(If)5.55 E -F2(RANDOM)3.05 E F0(is)2.8 E(unset, it loses its special properties, e) -144 252 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 F1(READLINE_LINE)108 264 Q F0 1.546 -(The contents of the)144 276 R F1 -.18(re)4.047 G(adline).18 E F0 1.547 -(line b)4.047 F(uf)-.2 E(fer)-.25 E 4.047(,f)-.4 G 1.547(or use with) --4.047 F/F3 10/Courier@0 SF 1.547(bind -x)4.047 F F0(\(see)4.047 E F2 -1.547(SHELL B)4.047 F(UIL)-.09 E 1.547(TIN COM-)-.828 F(MANDS)144 288 Q -F0(belo)2.25 E(w\).)-.25 E F1(READLINE_POINT)108 300 Q F0 .314 -(The position of the insertion point in the)144 312 R F1 -.18(re)2.813 G +(RANDOM)108 276 Q F0 .417(Each time this parameter is referenced, it e) +144 288 R .417(xpands to a random inte)-.15 F .417 +(ger between 0 and 32767.)-.15 F(As-)5.416 E .55(signing a v)144 300 R +.55(alue to)-.25 F F2(RANDOM)3.05 E F0 .551 +(initializes \(seeds\) the sequence of random numbers.)2.801 F(If)5.551 +E F2(RANDOM)3.051 E F0(is)2.801 E +(unset, it loses its special properties, e)144 312 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 F1(READLINE_LINE)108 324 Q F0 1.547(The contents of the)144 336 R +F1 -.18(re)4.047 G(adline).18 E F0 1.547(line b)4.047 F(uf)-.2 E(fer) +-.25 E 4.047(,f)-.4 G 1.547(or use with)-4.047 F/F3 10/Courier@0 SF +1.547(bind -x)4.047 F F0(\(see)4.047 E F2 1.546(SHELL B)4.047 F(UIL)-.09 +E 1.546(TIN COM-)-.828 F(MANDS)144 348 Q F0(belo)2.25 E(w\).)-.25 E F1 +(READLINE_POINT)108 360 Q F0 .313 +(The position of the insertion point in the)144 372 R F1 -.18(re)2.813 G (adline).18 E F0 .313(line b)2.813 F(uf)-.2 E(fer)-.25 E 2.813(,f)-.4 G -.313(or use with)-2.813 F F3 .313(bind -x)2.813 F F0(\(see)2.813 E F2 -(SHELL)2.813 E -.09(BU)144 324 S(IL).09 E(TIN COMMANDS)-.828 E F0(belo) -2.25 E(w\).)-.25 E F1(REPL)108 336 Q(Y)-.92 E F0 -(Set to the line of input read by the)144 348 Q F1 -.18(re)2.5 G(ad).18 +.313(or use with)-2.813 F F3 .314(bind -x)2.814 F F0(\(see)2.814 E F2 +(SHELL)2.814 E -.09(BU)144 384 S(IL).09 E(TIN COMMANDS)-.828 E F0(belo) +2.25 E(w\).)-.25 E F1(REPL)108 396 Q(Y)-.92 E F0 +(Set to the line of input read by the)144 408 Q F1 -.18(re)2.5 G(ad).18 E F0 -.2(bu)2.5 G(iltin command when no ar).2 E(guments are supplied.) --.18 E F1(SECONDS)108 360 Q F0 .795(Each time this parameter is referen\ -ced, the number of seconds since shell in)144 372 R -.2(vo)-.4 G .795 -(cation is returned.).2 F .713(If a v)144 384 R .712 +-.18 E F1(SECONDS)108 420 Q F0 .795(Each time this parameter is referen\ +ced, the number of seconds since shell in)144 432 R -.2(vo)-.4 G .795 +(cation is returned.).2 F .712(If a v)144 444 R .712 (alue is assigned to)-.25 F F2(SECONDS)3.212 E/F4 9/Times-Roman@0 SF(,)A F0 .712(the v)2.962 F .712 -(alue returned upon subsequent references is the number)-.25 F .407 -(of seconds since the assignment plus the v)144 396 R .408 -(alue assigned.)-.25 F(If)5.408 E F2(SECONDS)2.908 E F0 .408 -(is unset, it loses its special)2.658 F(properties, e)144 408 Q -.15(ve) +(alue returned upon subsequent references is the number)-.25 F .408 +(of seconds since the assignment plus the v)144 456 R .408 +(alue assigned.)-.25 F(If)5.408 E F2(SECONDS)2.908 E F0 .407 +(is unset, it loses its special)2.658 F(properties, e)144 468 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 F1(SHELLOPTS)108 420 Q F0 3.263(Ac)144 432 S -.763(olon-separated list of enabled shell options.)-3.263 F .763(Each w) +(ubsequently reset.)-2.5 E F1(SHELLOPTS)108 480 Q F0 3.262(Ac)144 492 S +.763(olon-separated list of enabled shell options.)-3.262 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 F1<ad6f>144 444 Q F0 1.173(option to the)3.673 F -F1(set)3.673 E F0 -.2(bu)3.673 G 1.173(iltin command \(see).2 F F2 1.174 -(SHELL B)3.674 F(UIL)-.09 E 1.174(TIN COMMANDS)-.828 F F0(belo)3.424 E -3.674(w\). The)-.25 F(options)3.674 E .02(appearing in)144 456 R F2 -(SHELLOPTS)2.52 E F0 .019(are those reported as)2.27 F/F5 10 +(gument for the)-.18 F F1<ad6f>144 504 Q F0 1.174(option to the)3.674 F +F1(set)3.674 E F0 -.2(bu)3.674 G 1.174(iltin command \(see).2 F F2 1.173 +(SHELL B)3.673 F(UIL)-.09 E 1.173(TIN COMMANDS)-.828 F F0(belo)3.423 E +3.673(w\). The)-.25 F(options)3.673 E .019(appearing in)144 516 R F2 +(SHELLOPTS)2.519 E F0 .019(are those reported as)2.269 F/F5 10 /Times-Italic@0 SF(on)2.749 E F0(by)2.759 E F1 .019(set \255o)2.519 F F0 -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 468 Q F1(bash) -3.141 E F0 .642(starts up, each shell option in the list will be enable\ -d before reading an)3.141 F 3.142(ys)-.15 G .642(tartup \214les.)-3.142 -F(This v)144 480 Q(ariable is read-only)-.25 E(.)-.65 E F1(SHL)108 492 Q -(VL)-.92 E F0(Incremented by one each time an instance of)144 504 Q F1 -(bash)2.5 E F0(is started.)2.5 E F1(SRANDOM)108 516 Q F0 .761(This v)144 -528 R .761(ariable e)-.25 F .761(xpands to a 32-bit pseudo-random numbe\ -r each time it is referenced. The random)-.15 F .564 -(number generator is not linear on systems that support)144 540 R F3 -(/dev/urandom)3.065 E F0(or)3.065 E F5(ar)3.065 E(c4r)-.37 E(andom)-.15 -E F0 3.065(,s)C 3.065(oe)-3.065 G(ach)-3.065 E .788 +5.019(.I)C 2.519(ft)-5.019 G .019(his v)-2.519 F .02 +(ariable is in the en)-.25 F(vironment)-.4 E(when)144 528 Q F1(bash) +3.142 E F0 .642(starts up, each shell option in the list will be enable\ +d before reading an)3.142 F 3.141(ys)-.15 G .641(tartup \214les.)-3.141 +F(This v)144 540 Q(ariable is read-only)-.25 E(.)-.65 E F1(SHL)108 552 Q +(VL)-.92 E F0(Incremented by one each time an instance of)144 564 Q F1 +(bash)2.5 E F0(is started.)2.5 E F1(SRANDOM)108 576 Q F0 .76(This v)144 +588 R .76(ariable e)-.25 F .761(xpands to a 32-bit pseudo-random number\ + each time it is referenced. The random)-.15 F .565 +(number generator is not linear on systems that support)144 600 R F3 +(/dev/urandom)3.064 E F0(or)3.064 E F5(ar)3.064 E(c4r)-.37 E(andom)-.15 +E F0 3.064(,s)C 3.064(oe)-3.064 G(ach)-3.064 E .788 (returned number has no relationship to the numbers preceding it.)144 -552 R .787(The random number generator)5.787 F .087 -(cannot be seeded, so assignments to this v)144 564 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 F2(SRANDOM)2.588 E F0 .088(is unset, it loses its)2.338 F -(special properties, e)144 576 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 F1(UID)108 588 Q -F0(Expands to the user ID of the current user)144 588 Q 2.5(,i)-.4 G +612 R .788(The random number generator)5.788 F .088 +(cannot be seeded, so assignments to this v)144 624 R .087(ariable ha) +-.25 F .387 -.15(ve n)-.2 H 2.587(oe).15 G -.25(ff)-2.587 G 2.587 +(ect. If).25 F F2(SRANDOM)2.587 E F0 .087(is unset, it loses its)2.337 F +(special properties, e)144 636 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 F1(UID)108 648 Q +F0(Expands to the user ID of the current user)144 648 Q 2.5(,i)-.4 G (nitialized at shell startup.)-2.5 E(This v)5 E(ariable is readonly)-.25 -E(.)-.65 E .994(The follo)108 604.8 R .994(wing v)-.25 F .994 +E(.)-.65 E .993(The follo)108 664.8 R .993(wing v)-.25 F .994 (ariables are used by the shell.)-.25 F .994(In some cases,)5.994 F F1 -(bash)3.494 E F0 .994(assigns a def)3.494 F .994(ault v)-.1 F .993 -(alue to a v)-.25 F(ariable;)-.25 E(these cases are noted belo)108 616.8 -Q -.65(w.)-.25 G F1 -.3(BA)108 633.6 S(SH_COMP).3 E -.95(AT)-.74 G F0 -.224(The v)144 645.6 R .224(alue is used to set the shell')-.25 F 2.724 +(bash)3.494 E F0 .994(assigns a def)3.494 F .994(ault v)-.1 F .994 +(alue to a v)-.25 F(ariable;)-.25 E(these cases are noted belo)108 676.8 +Q -.65(w.)-.25 G F1 -.3(BA)108 693.6 S(SH_COMP).3 E -.95(AT)-.74 G F0 +.225(The v)144 705.6 R .224(alue is used to set the shell')-.25 F 2.724 (sc)-.55 G .224(ompatibility le)-2.724 F -.15(ve)-.25 G 2.724(l. See).15 -F .224(the description of the)2.724 F F1(shopt)2.724 E F0 -.2(bu)2.725 G -.225(iltin be-).2 F(lo)144 657.6 Q 3.023(wu)-.25 G(nder)-3.023 E F1 .523 -(SHELL B)3.023 F(UIL)-.1 E .523(TIN COMMANDS)-.92 F F0 .522 -(for a description of the v)3.023 F .522(arious compatibility le)-.25 F --.15(ve)-.25 G(ls).15 E 1.182(and their ef)144 669.6 R 3.682(fects. The) --.25 F -.25(va)3.682 G 1.182 -(lue may be a decimal number \(e.g., 4.2\) or an inte).25 F 1.183 -(ger \(e.g., 42\) corre-)-.15 F 1.751 -(sponding to the desired compatibility le)144 681.6 R -.15(ve)-.25 G -4.251(l. If).15 F F1 -.3(BA)4.251 G(SH_COMP).3 E -.95(AT)-.74 G F0 1.75 -(is unset or set to the empty)5.201 F .578(string, the compatibility le) -144 693.6 R -.15(ve)-.25 G 3.078(li).15 G 3.078(ss)-3.078 G .578 -(et to the def)-3.078 F .578(ault for the current v)-.1 F 3.078 -(ersion. If)-.15 F F1 -.3(BA)3.078 G(SH_COMP).3 E -.95(AT)-.74 G F0(is) -4.028 E .249(set to a v)144 705.6 R .249(alue that is not one of the v) --.25 F .248(alid compatibility le)-.25 F -.15(ve)-.25 G .248 -(ls, the shell prints an error message and).15 F 1.119 -(sets the compatibility le)144 717.6 R -.15(ve)-.25 G 3.619(lt).15 G -3.619(ot)-3.619 G 1.119(he def)-3.619 F 1.119(ault for the current v)-.1 -F 3.62(ersion. The)-.15 F -.25(va)3.62 G 1.12(lid compatibility le).25 F --.15(ve)-.25 G(ls).15 E 2.902 -(correspond to the compatibility options accepted by the)144 729.6 R F1 -(shopt)5.402 E F0 -.2(bu)5.401 G 2.901(iltin described belo).2 F 5.401 -(w\()-.25 G(for)-5.401 E(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15 -(ve)-.15 G(mber 22).15 E(14)185.545 E 0 Cg EP +F .224(the description of the)2.724 F F1(shopt)2.724 E F0 -.2(bu)2.724 G +.224(iltin be-).2 F(lo)144 717.6 Q 3.022(wu)-.25 G(nder)-3.022 E F1 .522 +(SHELL B)3.022 F(UIL)-.1 E .522(TIN COMMANDS)-.92 F F0 .523 +(for a description of the v)3.022 F .523(arious compatibility le)-.25 F +-.15(ve)-.25 G(ls).15 E 2.905(and their ef)144 729.6 R 5.405(fects. The) +-.25 F -.25(va)5.405 G 2.904 +(lue may be a decimal number \(e.g., 4.2\) or an inte).25 F 2.904 +(ger \(e.g., 42\))-.15 F(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15 +(ve)-.15 G(mber 26).15 E(14)185.545 E 0 Cg EP %%Page: 15 15 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F -(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E -.15(ex)144 84 S -(ample,).15 E/F1 10/Times-Bold@0 SF(compat42)3.431 E F0 .931 -(means that 4.2 and 42 are v)3.431 F .931(alid v)-.25 F 3.431 -(alues\). The)-.25 F .931(current v)3.431 F .932(ersion is also a v)-.15 -F(alid)-.25 E -.25(va)144 96 S(lue.).25 E F1 -.3(BA)108 108 S(SH_ENV).3 -E F0 .506(If this parameter is set when)144 120 R F1(bash)3.006 E F0 -.506(is e)3.006 F -.15(xe)-.15 G .505(cuting a shell script, its v).15 F -.505(alue is interpreted as a \214lename)-.25 F .39 -(containing commands to initialize the shell, as in)144 132 R/F2 10 +(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E .283 +(corresponding to the desired compatibility le)144 84 R -.15(ve)-.25 G +2.783(l. If).15 F/F1 10/Times-Bold@0 SF -.3(BA)2.784 G(SH_COMP).3 E -.95 +(AT)-.74 G F0 .284(is unset or set to the empty)3.734 F .578 +(string, the compatibility le)144 96 R -.15(ve)-.25 G 3.078(li).15 G +3.078(ss)-3.078 G .578(et to the def)-3.078 F .578 +(ault for the current v)-.1 F 3.078(ersion. If)-.15 F F1 -.3(BA)3.078 G +(SH_COMP).3 E -.95(AT)-.74 G F0(is)4.028 E .248(set to a v)144 108 R +.248(alue that is not one of the v)-.25 F .248(alid compatibility le) +-.25 F -.15(ve)-.25 G .249(ls, the shell prints an error message and).15 +F 1.12(sets the compatibility le)144 120 R -.15(ve)-.25 G 3.62(lt).15 G +3.619(ot)-3.62 G 1.119(he def)-3.619 F 1.119(ault for the current v)-.1 +F 3.619(ersion. The)-.15 F -.25(va)3.619 G 1.119(lid compatibility le) +.25 F -.15(ve)-.25 G(ls).15 E .575 +(correspond to the compatibility options accepted by the)144 132 R F1 +(shopt)3.075 E F0 -.2(bu)3.076 G .576(iltin described belo).2 F 3.076 +(w\()-.25 G .576(for e)-3.076 F(xam-)-.15 E(ple,)144 144 Q F1(compat42) +2.5 E F0(means that 4.2 and 42 are v)2.5 E(alid v)-.25 E 2.5 +(alues\). The)-.25 F(current v)2.5 E(ersion is also a v)-.15 E(alid v) +-.25 E(alue.)-.25 E F1 -.3(BA)108 156 S(SH_ENV).3 E F0 .506 +(If this parameter is set when)144 168 R F1(bash)3.006 E F0 .506(is e) +3.006 F -.15(xe)-.15 G .505(cuting a shell script, its v).15 F .505 +(alue is interpreted as a \214lename)-.25 F .39 +(containing commands to initialize the shell, as in)144 180 R/F2 10 /Times-Italic@0 SF(~/.bashr)2.39 E(c)-.37 E F0 5.39(.T).31 G .39(he v) -5.39 F .391(alue of)-.25 F/F3 9/Times-Bold@0 SF -.27(BA)2.891 G(SH_ENV) -.27 E F0 .391(is subjected)2.641 F .525(to parameter e)144 144 R .525 +.27 E F0 .391(is subjected)2.641 F .525(to parameter e)144 192 R .525 (xpansion, command substitution, and arithmetic e)-.15 F .525 -(xpansion before being interpreted)-.15 F(as a \214lename.)144 156 Q F3 +(xpansion before being interpreted)-.15 F(as a \214lename.)144 204 Q F3 -.666(PA)5 G(TH)-.189 E F0 (is not used to search for the resultant \214lename.)2.25 E F1 -.3(BA) -108 168 S(SH_XTRA).3 E(CEFD)-.55 E F0 .48(If set to an inte)144 180 R +108 216 S(SH_XTRA).3 E(CEFD)-.55 E F0 .48(If set to an inte)144 228 R .48(ger corresponding to a v)-.15 F .481(alid \214le descriptor)-.25 F (,)-.4 E F1(bash)2.981 E F0 .481(will write the trace output gener)2.981 -F(-)-.2 E 3.114(ated when)144 192 R/F4 10/Courier@0 SF 3.114(set -x) +F(-)-.2 E 3.114(ated when)144 240 R/F4 10/Courier@0 SF 3.114(set -x) 5.614 F F0 3.114(is enabled to that \214le descriptor)5.614 F 8.114(.T) -.55 G 3.114(he \214le descriptor is closed when)-8.114 F F3 -.27(BA)144 -204 S(SH_XTRA).27 E(CEFD)-.495 E F0 .138(is unset or assigned a ne)2.388 +252 S(SH_XTRA).27 E(CEFD)-.495 E F0 .138(is unset or assigned a ne)2.388 F 2.638(wv)-.25 G 2.638(alue. Unsetting)-2.888 F F3 -.27(BA)2.638 G (SH_XTRA).27 E(CEFD)-.495 E F0 .138(or assigning it)2.388 F 2.531(the e\ mpty string causes the trace output to be sent to the standard error)144 -216 R 7.53(.N)-.55 G 2.53(ote that setting)-7.53 F F3 -.27(BA)144 228 S +264 R 7.53(.N)-.55 G 2.53(ote that setting)-7.53 F F3 -.27(BA)144 276 S (SH_XTRA).27 E(CEFD)-.495 E F0 .74(to 2 \(the standard error \214le des\ criptor\) and then unsetting it will result in the)2.99 F -(standard error being closed.)144 240 Q F1(CDP)108 252 Q -.95(AT)-.74 G -(H).95 E F0 1.248(The search path for the)144 264 R F1(cd)3.748 E F0 +(standard error being closed.)144 288 Q F1(CDP)108 300 Q -.95(AT)-.74 G +(H).95 E F0 1.248(The search path for the)144 312 R F1(cd)3.748 E F0 3.748(command. This)3.748 F 1.247 (is a colon-separated list of directories in which the)3.748 F 3.795 -(shell looks for destination directories speci\214ed by the)144 276 R F1 +(shell looks for destination directories speci\214ed by the)144 324 R F1 (cd)6.295 E F0 6.296(command. A)6.296 F 3.796(sample v)6.296 F 3.796 -(alue is)-.25 F F4(".:~:/usr")144 288 Q F0(.)A F1(CHILD_MAX)108 300 Q F0 -.997(Set the number of e)144 312 R .997(xited child status v)-.15 F .997 +(alue is)-.25 F F4(".:~:/usr")144 336 Q F0(.)A F1(CHILD_MAX)108 348 Q F0 +.997(Set the number of e)144 360 R .997(xited child status v)-.15 F .997 (alues for the shell to remember)-.25 F 5.997(.B)-.55 G .997 -(ash will not allo)-5.997 F 3.497(wt)-.25 G(his)-3.497 E -.25(va)144 324 +(ash will not allo)-5.997 F 3.497(wt)-.25 G(his)-3.497 E -.25(va)144 372 S 1.077(lue to be decreased belo).25 F 3.577(waP)-.25 G 1.077 (OSIX-mandated minimum, and there is a maximum v)-3.577 F 1.078 -(alue \(cur)-.25 F(-)-.2 E(rently 8192\) that this may not e)144 336 Q +(alue \(cur)-.25 F(-)-.2 E(rently 8192\) that this may not e)144 384 Q 2.5(xceed. The)-.15 F(minimum v)2.5 E(alue is system-dependent.)-.25 E -F1(COLUMNS)108 348 Q F0 .829(Used by the)144 360 R F1(select)3.329 E F0 +F1(COLUMNS)108 396 Q F0 .829(Used by the)144 408 R F1(select)3.329 E F0 .828(compound command to determine the terminal width when printing sel\ -ection)3.329 F 3.466(lists. Automatically)144 372 R .966(set if the) +ection)3.329 F 3.466(lists. Automatically)144 420 R .966(set if the) 3.466 F F1(checkwinsize)3.466 E F0 .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 384 Q F3(SIGWINCH)2.5 E/F5 9 -/Times-Roman@0 SF(.)A F1(COMPREPL)108 396 Q(Y)-.92 E F0 .848(An array v) -144 408 R .848(ariable from which)-.25 F F1(bash)3.348 E F0 .848 +.966(hell upon re-).15 F(ceipt of a)144 432 Q F3(SIGWINCH)2.5 E/F5 9 +/Times-Roman@0 SF(.)A F1(COMPREPL)108 444 Q(Y)-.92 E F0 .848(An array v) +144 456 R .848(ariable from which)-.25 F F1(bash)3.348 E F0 .848 (reads the possible completions generated by a shell function)3.348 F -(in)144 420 Q -.2(vo)-.4 G -.1(ke).2 G 2.785(db).1 G 2.785(yt)-2.785 G +(in)144 468 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 F1 (Pr)2.785 E .285(ogrammable Completion)-.18 F F0(belo)2.785 E 2.785 (w\). Each)-.25 F(array element contains one possible completion.)144 -432 Q F1(EMA)108 444 Q(CS)-.55 E F0(If)144 456 Q F1(bash)2.536 E F0 .036 +480 Q F1(EMA)108 492 Q(CS)-.55 E F0(If)144 504 Q F1(bash)2.536 E F0 .036 (\214nds this v)2.536 F .036(ariable in the en)-.25 F .036 (vironment when the shell starts with v)-.4 F(alue)-.25 E F4(t)2.535 E F0 2.535(,i)C 2.535(ta)-2.535 G .035(ssumes that the)-2.535 F -(shell is running in an Emacs shell b)144 468 Q(uf)-.2 E -(fer and disables line editing.)-.25 E F1(ENV)108 480 Q F0(Similar to) -144 480 Q F3 -.27(BA)2.5 G(SH_ENV).27 E F5(;)A F0 +(shell is running in an Emacs shell b)144 516 Q(uf)-.2 E +(fer and disables line editing.)-.25 E F1(ENV)108 528 Q F0(Similar to) +144 528 Q F3 -.27(BA)2.5 G(SH_ENV).27 E F5(;)A F0 (used when the shell is in)2.25 E -.2(vo)-.4 G -.1(ke).2 G 2.5(di).1 G -(n)-2.5 E F2(posix mode)2.5 E F0(.)A F1(EXECIGNORE)108 492 Q F0 2.716 -(Ac)144 504 S .216(olon-separated list of shell patterns \(see)-2.716 F +(n)-2.5 E F2(posix mode)2.5 E F0(.)A F1(EXECIGNORE)108 540 Q F0 2.716 +(Ac)144 552 S .216(olon-separated list of shell patterns \(see)-2.716 F F1 -.1(Pa)2.717 G(tter).1 E 2.717(nM)-.15 G(atching)-2.717 E F0 2.717 (\)d)C .217(e\214ning the list of \214lenames to be)-2.717 F .117 -(ignored by command search using)144 516 R F1 -.74(PA)2.617 G(TH)-.21 E +(ignored by command search using)144 564 R F1 -.74(PA)2.617 G(TH)-.21 E F0 5.117(.F)C .116 (iles whose full pathnames match one of these patterns)-5.117 F 1.432 -(are not considered e)144 528 R -.15(xe)-.15 G 1.432 +(are not considered e)144 576 R -.15(xe)-.15 G 1.432 (cutable \214les for the purposes of completion and command e).15 F -.15 -(xe)-.15 G 1.433(cution via).15 F F1 -.74(PA)144 540 S(TH)-.21 E F0 +(xe)-.15 G 1.433(cution via).15 F F1 -.74(PA)144 588 S(TH)-.21 E F0 2.909(lookup. This)2.909 F .408(does not af)2.908 F .408(fect the beha) -.25 F .408(vior of the)-.2 F F1([)2.908 E F0(,)A F1(test)2.908 E F0 2.908(,a)C(nd)-2.908 E F1([[)2.908 E F0 2.908(commands. Full)2.908 F (pathnames)2.908 E .364(in the command hash table are not subject to)144 -552 R F1(EXECIGNORE)2.864 E F0 5.364(.U)C .364(se this v)-5.364 F .364 -(ariable to ignore shared)-.25 F 1.37(library \214les that ha)144 564 R +600 R F1(EXECIGNORE)2.864 E F0 5.364(.U)C .364(se this v)-5.364 F .364 +(ariable to ignore shared)-.25 F 1.37(library \214les that ha)144 612 R 1.67 -.15(ve t)-.2 H 1.37(he e).15 F -.15(xe)-.15 G 1.37 (cutable bit set, b).15 F 1.37(ut are not e)-.2 F -.15(xe)-.15 G 1.37 (cutable \214les.).15 F 1.37(The pattern matching)6.37 F -(honors the setting of the)144 576 Q F1(extglob)2.5 E F0(shell option.) -2.5 E F1(FCEDIT)108 588 Q F0(The def)144 600 Q(ault editor for the)-.1 E -F1(fc)2.5 E F0 -.2(bu)2.5 G(iltin command.).2 E F1(FIGNORE)108 612 Q F0 -2.598(Ac)144 624 S .098(olon-separated list of suf)-2.598 F<8c78>-.25 E +(honors the setting of the)144 624 Q F1(extglob)2.5 E F0(shell option.) +2.5 E F1(FCEDIT)108 636 Q F0(The def)144 648 Q(ault editor for the)-.1 E +F1(fc)2.5 E F0 -.2(bu)2.5 G(iltin command.).2 E F1(FIGNORE)108 660 Q F0 +2.598(Ac)144 672 S .098(olon-separated list of suf)-2.598 F<8c78>-.25 E .098(es to ignore when performing \214lename completion \(see)-.15 F F3 -(READLINE)2.599 E F0(belo)144 636 Q 2.705(w\). A)-.25 F .205 +(READLINE)2.599 E F0(belo)144 684 Q 2.705(w\). A)-.25 F .205 (\214lename whose suf)2.705 F .205(\214x matches one of the entries in) -.25 F F3(FIGNORE)2.705 E F0 .205(is e)2.455 F .204 -(xcluded from the list)-.15 F(of matched \214lenames.)144 648 Q 2.5(As)5 -G(ample v)-2.5 E(alue is)-.25 E F4(".o:~")2.5 E F0(.)A F1(FUNCNEST)108 -660 Q F0 .23(If set to a numeric v)144 672 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 684 Q(xceed this nesting le)-.15 E -.15(ve)-.25 G -2.5(lw).15 G(ill cause the current command to abort.)-2.5 E F1 -(GLOBIGNORE)108 696 Q F0 2.924(Ac)144 708 S .423(olon-separated list of\ - patterns de\214ning the set of \214le names to be ignored by pathname \ -e)-2.924 F(xpan-)-.15 E 2.947(sion. If)144 720 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 -(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 22).15 E -(15)185.545 E 0 Cg EP +(xcluded from the list)-.15 F(of matched \214lenames.)144 696 Q 2.5(As)5 +G(ample v)-2.5 E(alue is)-.25 E F4(".o:~")2.5 E F0(.)A(GNU Bash 5.0)72 +768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E(15)185.545 E 0 Cg +EP %%Page: 16 16 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F -(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 9/Times-Bold@0 -SF(GLOBIGNORE)144 84 Q/F2 9/Times-Roman@0 SF(,)A F0(it is remo)2.25 E --.15(ve)-.15 G 2.5(df).15 G(rom the list of matches.)-2.5 E/F3 10 -/Times-Bold@0 SF(HISTCONTR)108 96 Q(OL)-.3 E F0 2.654(Ac)144 108 S .153 +(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0 +SF(FUNCNEST)108 84 Q F0 .23(If set to a numeric v)144 96 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 108 Q(xceed this nesting le)-.15 E -.15(ve)-.25 G +2.5(lw).15 G(ill cause the current command to abort.)-2.5 E F1 +(GLOBIGNORE)108 120 Q F0 2.924(Ac)144 132 S .423(olon-separated list of\ + patterns de\214ning the set of \214le names to be ignored by pathname \ +e)-2.924 F(xpan-)-.15 E 2.947(sion. If)144 144 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/F2 9 +/Times-Bold@0 SF(GLOBIGNORE)144 156 Q/F3 9/Times-Roman@0 SF(,)A F0 +(it is remo)2.25 E -.15(ve)-.15 G 2.5(df).15 G(rom the list of matches.) +-2.5 E F1(HISTCONTR)108 168 Q(OL)-.3 E F0 2.654(Ac)144 180 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 120 R .49(alues includes)-.25 F/F4 10 +5.153 F .49(of v)144 192 R .49(alues includes)-.25 F/F4 10 /Times-Italic@0 SF(ignor)3 E(espace)-.37 E F0 2.99(,l).18 G .49 -(ines which be)-2.99 F .49(gin with a)-.15 F F3(space)2.99 E F0 .49 +(ines which be)-2.99 F .49(gin with a)-.15 F F1(space)2.99 E F0 .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 132 R 3.058(Av)5.558 G .558 +.49(he his-)-2.99 F .558(tory list.)144 204 R 3.058(Av)5.558 G .558 (alue of)-3.308 F F4(ignor)3.068 E(edups)-.37 E F0 .558 (causes lines matching the pre)3.328 F .557 (vious history entry to not be sa)-.25 F -.15(ve)-.2 G(d.).15 E 2.925 -(Av)144 144 S .425(alue of)-3.175 F F4(ignor)2.935 E(eboth)-.37 E F0 +(Av)144 216 S .425(alue of)-3.175 F F4(ignor)2.935 E(eboth)-.37 E F0 .426(is shorthand for)3.205 F F4(ignor)2.926 E(espace)-.37 E F0(and) 2.926 E F4(ignor)2.926 E(edups)-.37 E F0 5.426(.A)C -.25(va)-2.5 G .426 (lue of).25 F F4(er)3.116 E(asedups)-.15 E F0(causes)3.196 E .699 -(all pre)144 156 R .698 +(all pre)144 228 R .698 (vious lines matching the current line to be remo)-.25 F -.15(ve)-.15 G 3.198(df).15 G .698(rom the history list before that line is)-3.198 F -(sa)144 168 Q -.15(ve)-.2 G 2.763(d. An).15 F 2.763(yv)-.15 G .263 +(sa)144 240 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 F1(HISTCONTR)2.763 E(OL)-.27 E F0 .264 -(is unset, or does not include)2.513 F 2.942(av)144 180 S .442(alid v) +(ist is ignored.).15 F(If)5.263 E F2(HISTCONTR)2.763 E(OL)-.27 E F0 .264 +(is unset, or does not include)2.513 F 2.942(av)144 252 S .442(alid v) -3.192 F .442(alue, all lines read by the shell parser are sa)-.25 F -.15(ve)-.2 G 2.941(do).15 G 2.941(nt)-2.941 G .441 -(he history list, subject to the v)-2.941 F .441(alue of)-.25 F F1 -(HISTIGNORE)144 192 Q F2(.)A F0 1.981(The second and subsequent lines o\ +(he history list, subject to the v)-2.941 F .441(alue of)-.25 F F2 +(HISTIGNORE)144 264 Q F3(.)A F0 1.981(The second and subsequent lines o\ f a multi-line compound command are not)6.481 F -(tested, and are added to the history re)144 204 Q -.05(ga)-.15 G -(rdless of the v).05 E(alue of)-.25 E F1(HISTCONTR)2.5 E(OL)-.27 E F2(.) -A F3(HISTFILE)108 216 Q F0 .181 -(The name of the \214le in which command history is sa)144 228 R -.15 -(ve)-.2 G 2.681(d\().15 G(see)-2.681 E F1(HIST)2.681 E(OR)-.162 E(Y) +(tested, and are added to the history re)144 276 Q -.05(ga)-.15 G +(rdless of the v).05 E(alue of)-.25 E F2(HISTCONTR)2.5 E(OL)-.27 E F3(.) +A F1(HISTFILE)108 288 Q F0 .181 +(The name of the \214le in which command history is sa)144 300 R -.15 +(ve)-.2 G 2.681(d\().15 G(see)-2.681 E F2(HIST)2.681 E(OR)-.162 E(Y) -.315 E F0(belo)2.431 E 2.681(w\). The)-.25 F(def)2.681 E .181(ault v) --.1 F(alue)-.25 E(is)144 240 Q F4(~/.bash_history)2.5 E F0 5(.I)C 2.5 +-.1 F(alue)-.25 E(is)144 312 Q F4(~/.bash_history)2.5 E F0 5(.I)C 2.5 (fu)-5 G(nset, the command history is not sa)-2.5 E -.15(ve)-.2 G 2.5 -(dw).15 G(hen a shell e)-2.5 E(xits.)-.15 E F3(HISTFILESIZE)108 252 Q F0 +(dw).15 G(hen a shell e)-2.5 E(xits.)-.15 E F1(HISTFILESIZE)108 324 Q F0 1.622(The maximum number of lines contained in the history \214le.)144 -264 R 1.623(When this v)6.623 F 1.623(ariable is assigned a)-.25 F -.25 -(va)144 276 S .125(lue, the history \214le is truncated, if necessary) +336 R 1.623(When this v)6.623 F 1.623(ariable is assigned a)-.25 F -.25 +(va)144 348 S .125(lue, the history \214le is truncated, if necessary) .25 F 2.625(,t)-.65 G 2.624(oc)-2.625 G .124 -(ontain no more than that number of lines by re-)-2.624 F(mo)144 288 Q +(ontain no more than that number of lines by re-)-2.624 F(mo)144 360 Q .065(ving the oldest entries.)-.15 F .066(The history \214le is also tr\ uncated to this size after writing it when a shell)5.065 F -.15(ex)144 -300 S 2.928(its. If).15 F .428(the v)2.928 F .428 +372 S 2.928(its. If).15 F .428(the v)2.928 F .428 (alue is 0, the history \214le is truncated to zero size.)-.25 F .427 -(Non-numeric v)5.427 F .427(alues and numeric)-.25 F -.25(va)144 312 S +(Non-numeric v)5.427 F .427(alues and numeric)-.25 F -.25(va)144 384 S .152(lues less than zero inhibit truncation.).25 F .152 (The shell sets the def)5.152 F .152(ault v)-.1 F .152(alue to the v) --.25 F .152(alue of)-.25 F F3(HISTSIZE)2.652 E F0(after reading an)144 -324 Q 2.5(ys)-.15 G(tartup \214les.)-2.5 E F3(HISTIGNORE)108 336 Q F0 -2.658(Ac)144 348 S .158(olon-separated list of patterns used to decide \ +-.25 F .152(alue of)-.25 F F1(HISTSIZE)2.652 E F0(after reading an)144 +396 Q 2.5(ys)-.15 G(tartup \214les.)-2.5 E F1(HISTIGNORE)108 408 Q F0 +2.658(Ac)144 420 S .158(olon-separated list 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 .707(tory list.)144 360 R .707 +2.657(nt)-2.657 G .157(he his-)-2.657 F .707(tory list.)144 432 R .707 (Each pattern is anchored at the be)5.707 F .708 (ginning of the line and must match the complete line)-.15 F .626 -(\(no implicit `)144 372 R F3(*)A F0 3.126('i)C 3.126(sa)-3.126 G 3.126 +(\(no implicit `)144 444 R F1(*)A F0 3.126('i)C 3.126(sa)-3.126 G 3.126 (ppended\). Each)-3.126 F .626(pattern is tested ag)3.126 F .625 -(ainst the line after the checks speci\214ed by)-.05 F F1(HISTCONTR)144 -384 Q(OL)-.27 E F0 1.793(are applied.)4.043 F 1.793 +(ainst the line after the checks speci\214ed by)-.05 F F2(HISTCONTR)144 +456 Q(OL)-.27 E F0 1.793(are applied.)4.043 F 1.793 (In addition to the normal shell pattern matching characters, `)6.793 F -F3(&)A F0(')A 1.44(matches the pre)144 396 R 1.44(vious history line.) --.25 F(`)6.44 E F3(&)A F0 3.94('m)C 1.44 +F1(&)A F0(')A 1.44(matches the pre)144 468 R 1.44(vious history line.) +-.25 F(`)6.44 E F1(&)A F0 3.94('m)C 1.44 (ay be escaped using a backslash; the backslash is re-)-3.94 F(mo)144 -408 Q -.15(ve)-.15 G 3.95(db).15 G 1.45(efore attempting a match.)-3.95 +480 Q -.15(ve)-.15 G 3.95(db).15 G 1.45(efore attempting a match.)-3.95 F 1.45(The second and subsequent lines of a multi-line compound)6.45 F -1.269(command are not tested, and are added to the history re)144 420 R --.05(ga)-.15 G 1.269(rdless of the v).05 F 1.269(alue of)-.25 F F1 -(HISTIGNORE)3.769 E F2(.)A F0 -(The pattern matching honors the setting of the)144 432 Q F3(extglob)2.5 -E F0(shell option.)2.5 E F3(HISTSIZE)108 444 Q F0 1.387 -(The number of commands to remember in the command history \(see)144 456 -R F1(HIST)3.887 E(OR)-.162 E(Y)-.315 E F0(belo)3.637 E 3.887(w\). If) --.25 F(the)3.888 E -.25(va)144 468 S .413(lue is 0, commands are not sa) +1.269(command are not tested, and are added to the history re)144 492 R +-.05(ga)-.15 G 1.269(rdless of the v).05 F 1.269(alue of)-.25 F F2 +(HISTIGNORE)3.769 E F3(.)A F0 +(The pattern matching honors the setting of the)144 504 Q F1(extglob)2.5 +E F0(shell option.)2.5 E F1(HISTSIZE)108 516 Q F0 1.387 +(The number of commands to remember in the command history \(see)144 528 +R F2(HIST)3.887 E(OR)-.162 E(Y)-.315 E F0(belo)3.637 E 3.887(w\). If) +-.25 F(the)3.888 E -.25(va)144 540 S .413(lue is 0, commands are not sa) .25 F -.15(ve)-.2 G 2.913(di).15 G 2.913(nt)-2.913 G .413 (he history list.)-2.913 F .413(Numeric v)5.413 F .412 (alues less than zero result in e)-.25 F(v-)-.25 E .343 -(ery command being sa)144 480 R -.15(ve)-.2 G 2.843(do).15 G 2.843(nt) +(ery command being sa)144 552 R -.15(ve)-.2 G 2.843(do).15 G 2.843(nt) -2.843 G .343(he history list \(there is no limit\).)-2.843 F .344 (The shell sets the def)5.343 F .344(ault v)-.1 F .344(alue to)-.25 F -(500 after reading an)144 492 Q 2.5(ys)-.15 G(tartup \214les.)-2.5 E F3 -(HISTTIMEFORMA)108 504 Q(T)-.95 E F0 .952(If this v)144 516 R .952 +(500 after reading an)144 564 Q 2.5(ys)-.15 G(tartup \214les.)-2.5 E F1 +(HISTTIMEFORMA)108 576 Q(T)-.95 E F0 .952(If this v)144 588 R .952 (ariable is set and not null, its v)-.25 F .951 (alue is used as a format string for)-.25 F F4(strftime)3.451 E F0 .951 (\(3\) to print the)B .672 -(time stamp associated with each history entry displayed by the)144 528 -R F3(history)3.173 E F0 -.2(bu)3.173 G 3.173(iltin. If).2 F .673(this v) +(time stamp associated with each history entry displayed by the)144 600 +R F1(history)3.173 E F0 -.2(bu)3.173 G 3.173(iltin. If).2 F .673(this v) 3.173 F .673(ariable is)-.25 F .144 -(set, time stamps are written to the history \214le so the)144 540 R +(set, time stamps are written to the history \214le so the)144 612 R 2.644(ym)-.15 G .144(ay be preserv)-2.644 F .144 (ed across shell sessions.)-.15 F(This)5.144 E(uses the history comment\ - character to distinguish timestamps from other history lines.)144 552 Q -F3(HOME)108 564 Q F0 1.27 -(The home directory of the current user; the def)144 576 R 1.27(ault ar) --.1 F 1.27(gument for the)-.18 F F3(cd)3.77 E F0 -.2(bu)3.77 G 1.27 -(iltin command.).2 F(The)6.27 E -.25(va)144 588 S(lue of this v).25 E -(ariable is also used when performing tilde e)-.25 E(xpansion.)-.15 E F3 -(HOSTFILE)108 600 Q F0 1.015 -(Contains the name of a \214le in the same format as)144 612 R F4 + character to distinguish timestamps from other history lines.)144 624 Q +F1(HOME)108 636 Q F0 1.27 +(The home directory of the current user; the def)144 648 R 1.27(ault ar) +-.1 F 1.27(gument for the)-.18 F F1(cd)3.77 E F0 -.2(bu)3.77 G 1.27 +(iltin command.).2 F(The)6.27 E -.25(va)144 660 S(lue of this v).25 E +(ariable is also used when performing tilde e)-.25 E(xpansion.)-.15 E F1 +(HOSTFILE)108 672 Q F0 1.015 +(Contains the name of a \214le in the same format as)144 684 R F4 (/etc/hosts)5.181 E F0 1.015(that should be read when the shell)5.181 F -.55(needs to complete a hostname.)144 624 R .551 +.55(needs to complete a hostname.)144 696 R .551 (The list of possible hostname completions may be changed while)5.551 F -1.059(the shell is running; the ne)144 636 R 1.059 +1.059(the shell is running; the ne)144 708 R 1.059 (xt time hostname completion is attempted after the v)-.15 F 1.058 -(alue is changed,)-.25 F F3(bash)144 648 Q F0 .138 +(alue is changed,)-.25 F F1(bash)144 720 Q F0 .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 F1(HOSTFILE)2.638 E F0 -.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 660 R F3(bash)3.018 E F0 .518 -(attempts to read)3.018 F F4(/etc/hosts)4.683 E F0 .517 -(to obtain the list of possible host-)4.683 F(name completions.)144 672 -Q(When)5 E F1(HOSTFILE)2.5 E F0(is unset, the hostname list is cleared.) -2.25 E F3(IFS)108 684 Q F0(The)144 684 Q F4 .555(Internal F)3.635 F .555 -(ield Separ)-.45 F(ator)-.15 E F0 .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 696 S(rds with the).1 E F3 -.18(re)2.5 G(ad).18 E F0 -.2 -(bu)2.5 G(iltin command.).2 E(The def)5 E(ault v)-.1 E(alue is `)-.25 E -(`<space><tab><ne)-.74 E(wline>')-.25 E('.)-.74 E(GNU Bash 5.0)72 768 Q -(2019 No)136.385 E -.15(ve)-.15 G(mber 22).15 E(16)185.545 E 0 Cg EP +-2.638 F .138(xisting list.)-.15 F(If)5.138 E F2(HOSTFILE)2.638 E F0 +.138(is set, b)2.388 F .139(ut has no v)-.2 F .139(alue, or)-.25 F +(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E +(16)185.545 E 0 Cg EP %%Page: 17 17 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F -(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0 -SF(IGNOREEOF)108 84 Q F0 .503(Controls the action of an interacti)144 96 -R .803 -.15(ve s)-.25 H .503(hell on receipt of an).15 F/F2 9 -/Times-Bold@0 SF(EOF)3.003 E F0 .503(character as the sole input.)2.753 -F .503(If set,)5.503 F .426(the v)144 108 R .426 -(alue is the number of consecuti)-.25 F -.15(ve)-.25 G F2(EOF)3.076 E F0 -.426(characters which must be typed as the \214rst characters)2.676 F -.303(on an input line before)144 120 R F1(bash)2.802 E F0 -.15(ex)2.802 -G 2.802(its. If).15 F .302(the v)2.802 F .302(ariable e)-.25 F .302 +(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E .518 +(does not name a readable \214le,)144 84 R/F1 10/Times-Bold@0 SF(bash) +3.018 E F0 .518(attempts to read)3.018 F/F2 10/Times-Italic@0 SF +(/etc/hosts)4.683 E F0 .517(to obtain the list of possible host-)4.683 F +(name completions.)144 96 Q(When)5 E/F3 9/Times-Bold@0 SF(HOSTFILE)2.5 E +F0(is unset, the hostname list is cleared.)2.25 E F1(IFS)108 108 Q F0 +(The)144 108 Q F2 .555(Internal F)3.635 F .555(ield Separ)-.45 F(ator) +-.15 E F0 .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 120 S +(rds with the).1 E F1 -.18(re)2.5 G(ad).18 E F0 -.2(bu)2.5 G +(iltin command.).2 E(The def)5 E(ault v)-.1 E(alue is `)-.25 E +(`<space><tab><ne)-.74 E(wline>')-.25 E('.)-.74 E F1(IGNOREEOF)108 132 Q +F0 .503(Controls the action of an interacti)144 144 R .803 -.15(ve s) +-.25 H .503(hell on receipt of an).15 F F3(EOF)3.003 E F0 .503 +(character as the sole input.)2.753 F .503(If set,)5.503 F .426(the v) +144 156 R .426(alue is the number of consecuti)-.25 F -.15(ve)-.25 G F3 +(EOF)3.076 E F0 .426 +(characters which must be typed as the \214rst characters)2.676 F .303 +(on an input line before)144 168 R F1(bash)2.802 E F0 -.15(ex)2.802 G +2.802(its. If).15 F .302(the v)2.802 F .302(ariable e)-.25 F .302 (xists b)-.15 F .302(ut does not ha)-.2 F .602 -.15(ve a n)-.2 H .302 -(umeric v).15 F .302(alue, or has)-.25 F(no v)144 132 Q(alue, the def) +(umeric v).15 F .302(alue, or has)-.25 F(no v)144 180 Q(alue, the def) -.25 E(ault v)-.1 E(alue is 10.)-.25 E(If it does not e)5 E(xist,)-.15 E -F2(EOF)2.5 E F0(signi\214es the end of input to the shell.)2.25 E F1 -(INPUTRC)108 144 Q F0 .26(The \214lename for the)144 156 R F1 -.18(re) +F3(EOF)2.5 E F0(signi\214es the end of input to the shell.)2.25 E F1 +(INPUTRC)108 192 Q F0 .26(The \214lename for the)144 204 R F1 -.18(re) 2.76 G(adline).18 E F0 .26(startup \214le, o)2.76 F -.15(ve)-.15 G .26 -(rriding the def).15 F .261(ault of)-.1 F/F3 10/Times-Italic@0 SF -(~/.inputr)4.427 E(c)-.37 E F0(\(see)4.427 E F2(READLINE)2.761 E F0(be-) -2.511 E(lo)144 168 Q(w\).)-.25 E F1(INSIDE_EMA)108 180 Q(CS)-.55 E F0 -.034(If this v)144 192 R .034(ariable appears in the en)-.25 F .034 +(rriding the def).15 F .261(ault of)-.1 F F2(~/.inputr)4.427 E(c)-.37 E +F0(\(see)4.427 E F3(READLINE)2.761 E F0(be-)2.511 E(lo)144 216 Q(w\).) +-.25 E F1(INSIDE_EMA)108 228 Q(CS)-.55 E F0 .034(If this v)144 240 R +.034(ariable appears in the en)-.25 F .034 (vironment when the shell starts,)-.4 F F1(bash)2.533 E F0 .033 -(assumes that it is running in-)2.533 F(side an Emacs shell b)144 204 Q +(assumes that it is running in-)2.533 F(side an Emacs shell b)144 252 Q (uf)-.2 E(fer and may disable line editing, depending on the v)-.25 E -(alue of)-.25 E F1(TERM)2.5 E F0(.)A F1(LANG)108 216 Q F0 1.239 -(Used to determine the locale cate)144 216 R 1.239(gory for an)-.15 F +(alue of)-.25 E F1(TERM)2.5 E F0(.)A F1(LANG)108 264 Q F0 1.239 +(Used to determine the locale cate)144 264 R 1.239(gory for an)-.15 F 3.739(yc)-.15 G(ate)-3.739 E 1.24 (gory not speci\214cally selected with a v)-.15 F(ariable)-.25 E -(starting with)144 228 Q F1(LC_)2.5 E F0(.)A F1(LC_ALL)108 240 Q F0 .974 -(This v)144 252 R .974(ariable o)-.25 F -.15(ve)-.15 G .974 -(rrides the v).15 F .973(alue of)-.25 F F2(LANG)3.473 E F0 .973(and an) +(starting with)144 276 Q F1(LC_)2.5 E F0(.)A F1(LC_ALL)108 288 Q F0 .974 +(This v)144 300 R .974(ariable o)-.25 F -.15(ve)-.15 G .974 +(rrides the v).15 F .973(alue of)-.25 F F3(LANG)3.473 E F0 .973(and an) 3.223 F 3.473(yo)-.15 G(ther)-3.473 E F1(LC_)3.473 E F0 -.25(va)3.473 G -.973(riable specifying a locale cate-).25 F(gory)144 264 Q(.)-.65 E F1 -(LC_COLLA)108 276 Q(TE)-.95 E F0 .411(This v)144 288 R .412(ariable det\ +.973(riable specifying a locale cate-).25 F(gory)144 312 Q(.)-.65 E F1 +(LC_COLLA)108 324 Q(TE)-.95 E F0 .411(This v)144 336 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 300 R 1.465 +-.25 F(xpansion,)-.15 E 1.465(and determines the beha)144 348 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 -312 Q(xpansion and pattern matching.)-.15 E F1(LC_CTYPE)108 324 Q F0 -1.935(This v)144 336 R 1.936 +360 Q(xpansion and pattern matching.)-.15 E F1(LC_CTYPE)108 372 Q F0 +1.935(This v)144 384 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 348 Q -(xpansion and pattern matching.)-.15 E F1(LC_MESSA)108 360 Q(GES)-.55 E -F0(This v)144 372 Q(ariable determines the locale used to translate dou\ +1.936(vior of character classes)-.2 F(within pathname e)144 396 Q +(xpansion and pattern matching.)-.15 E F1(LC_MESSA)108 408 Q(GES)-.55 E +F0(This v)144 420 Q(ariable determines the locale used to translate dou\ ble-quoted strings preceded by a)-.25 E F1($)2.5 E F0(.)A F1(LC_NUMERIC) -108 384 Q F0(This v)144 396 Q(ariable determines the locale cate)-.25 E -(gory used for number formatting.)-.15 E F1(LC_TIME)108 408 Q F0(This v) -144 420 Q(ariable determines the locale cate)-.25 E -(gory used for data and time formatting.)-.15 E F1(LINES)108 432 Q F0 -.055(Used by the)144 432 R F1(select)2.555 E F0 .054(compound command t\ +108 432 Q F0(This v)144 444 Q(ariable determines the locale cate)-.25 E +(gory used for number formatting.)-.15 E F1(LC_TIME)108 456 Q F0(This v) +144 468 Q(ariable determines the locale cate)-.25 E +(gory used for data and time formatting.)-.15 E F1(LINES)108 480 Q F0 +.055(Used by the)144 480 R F1(select)2.555 E F0 .054(compound command t\ o determine the column length for printing selection lists.)2.555 F .264 -(Automatically set if the)144 444 R F1(checkwinsize)2.764 E F0 .264 +(Automatically set if the)144 492 R F1(checkwinsize)2.764 E F0 .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 F2(SIGWINCH)144 456 Q/F4 9/Times-Roman@0 -SF(.)A F1(MAIL)108 468 Q F0 .422 -(If this parameter is set to a \214le or directory name and the)144 468 -R F2(MAILP)2.921 E -.855(AT)-.666 G(H).855 E F0 -.25(va)2.671 G .421 +(hell upon receipt of a).15 F F3(SIGWINCH)144 504 Q/F4 9/Times-Roman@0 +SF(.)A F1(MAIL)108 516 Q F0 .422 +(If this parameter is set to a \214le or directory name and the)144 516 +R F3(MAILP)2.921 E -.855(AT)-.666 G(H).855 E F0 -.25(va)2.671 G .421 (riable is not set,).25 F F1(bash)2.921 E F0(in-)2.921 E -(forms the user of the arri)144 480 Q -.25(va)-.25 G 2.5(lo).25 G 2.5 +(forms the user of the arri)144 528 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 F1(MAILCHECK)108 492 Q F0 .098 -(Speci\214es ho)144 504 R 2.598(wo)-.25 G .098(ften \(in seconds\)) +(-format directory)-.2 E(.)-.65 E F1(MAILCHECK)108 540 Q F0 .098 +(Speci\214es ho)144 552 R 2.598(wo)-.25 G .098(ften \(in seconds\)) -2.598 F F1(bash)2.598 E F0 .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 does so before displaying the primary pro\ -mpt.)144 516 R .223(If this v)5.223 F .223(ariable is unset,)-.25 F -(or set to a v)144 528 Q(alue that is not a number greater than or equa\ -l to zero, the shell disables mail checking.)-.25 E F1(MAILP)108 540 Q --.95(AT)-.74 G(H).95 E F0 2.99(Ac)144 552 S .49 +mpt.)144 564 R .223(If this v)5.223 F .223(ariable is unset,)-.25 F +(or set to a v)144 576 Q(alue that is not a number greater than or equa\ +l to zero, the shell disables mail checking.)-.25 E F1(MAILP)108 588 Q +-.95(AT)-.74 G(H).95 E F0 2.99(Ac)144 600 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 564 Q -.15(ve)-.25 G 2.62(si).15 G 2.62(nap)-2.62 G .12(articular \ +144 612 Q -.15(ve)-.25 G 2.62(si).15 G 2.62(nap)-2.62 G .12(articular \ \214le may be speci\214ed by separating the \214lename from the message\ - with a `?'.)-2.62 F(When used in the te)144 576 Q(xt of the message,) + with a `?'.)-2.62 F(When used in the te)144 624 Q(xt of the message,) -.15 E F1($_)2.5 E F0 -.15(ex)2.5 G (pands to the name of the current mail\214le.).15 E(Example:)5 E F1 -(MAILP)144 588 Q -.95(AT)-.74 G(H).95 E F0(=\010/v)A(ar/mail/bfox?"Y) +(MAILP)144 636 Q -.95(AT)-.74 G(H).95 E F0(=\010/v)A(ar/mail/bfox?"Y) -.25 E(ou ha)-1.1 E .3 -.15(ve m)-.2 H -(ail":~/shell\255mail?"$_ has mail!"\010).15 E F1(Bash)144 600 Q F0 .015 +(ail":~/shell\255mail?"$_ has mail!"\010).15 E F1(Bash)144 648 Q F0 .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 location of the u\ -ser mail \214les that it uses is system dependent \(e.g., /v)144 612 Q -(ar/mail/)-.25 E F1($USER)A F0(\).)A F1(OPTERR)108 624 Q F0 .39 -(If set to the v)144 636 R .39(alue 1,)-.25 F F1(bash)2.89 E F0 .389 +ser mail \214les that it uses is system dependent \(e.g., /v)144 660 Q +(ar/mail/)-.25 E F1($USER)A F0(\).)A F1(OPTERR)108 672 Q F0 .39 +(If set to the v)144 684 R .39(alue 1,)-.25 F F1(bash)2.89 E F0 .389 (displays error messages generated by the)2.889 F F1(getopts)2.889 E F0 --.2(bu)2.889 G .389(iltin command \(see).2 F F2 .359(SHELL B)144 648 R -(UIL)-.09 E .359(TIN COMMANDS)-.828 F F0(belo)2.609 E(w\).)-.25 E F2 +-.2(bu)2.889 G .389(iltin command \(see).2 F F3 .359(SHELL B)144 696 R +(UIL)-.09 E .359(TIN COMMANDS)-.828 F F0(belo)2.609 E(w\).)-.25 E F3 (OPTERR)5.359 E F0 .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 660 Q --.15(xe)-.15 G(cuted.).15 E F1 -.74(PA)108 672 S(TH)-.21 E F0 .588 -(The search path for commands.)144 672 R .587 -(It is a colon-separated list of directories in which the shell looks) -5.588 F .471(for commands \(see)144 684 R F2 .471(COMMAND EXECUTION) -2.971 F F0(belo)2.722 E 2.972(w\). A)-.25 F .472 -(zero-length \(null\) directory name in the)2.972 F -.25(va)144 696 S -.536(lue of).25 F F2 -.666(PA)3.036 G(TH)-.189 E F0 .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 708 R .868 -(The def)5.868 F .868(ault path is system-dependent, and is set by the) --.1 F(administrator who installs)144 720 Q F1(bash)2.5 E F0 5(.A)C -(common v)-2.5 E(alue is)-.25 E(GNU Bash 5.0)72 768 Q(2019 No)136.385 E --.15(ve)-.15 G(mber 22).15 E(17)185.545 E 0 Cg EP +2.609 F -.2(vo)-.4 G -.1(ke).2 G(d).1 E(or a shell script is e)144 708 Q +-.15(xe)-.15 G(cuted.).15 E(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15 +(ve)-.15 G(mber 26).15 E(17)185.545 E 0 Cg EP %%Page: 18 18 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F -(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Courier@0 SF -(/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin)144 84 Q -F0(.)A/F2 10/Times-Bold@0 SF(POSIXL)108 96 Q(Y_CORRECT)-.92 E F0 .471 -(If this v)144 108 R .471(ariable is in the en)-.25 F .471 -(vironment when)-.4 F F2(bash)2.971 E F0 .471(starts, the shell enters) -2.971 F/F3 10/Times-Italic@0 SF .472(posix mode)2.972 F F0 .472 -(before reading)2.972 F .011(the startup \214les, as if the)144 120 R F2 -(\255\255posix)2.511 E F0(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 132 Q F2(bash) -4.497 E F0(enables)4.497 E F3 1.997(posix mode)4.497 F F0 4.497(,a)C -4.497(si)-4.497 G 4.497(ft)-4.497 G 1.997(he command)-4.497 F F1 1.997 +(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0 +SF -.74(PA)108 84 S(TH)-.21 E F0 .588(The search path for commands.)144 +84 R .587 +(It is a colon-separated list of directories in which the shell looks) +5.588 F .471(for commands \(see)144 96 R/F2 9/Times-Bold@0 SF .471 +(COMMAND EXECUTION)2.971 F F0(belo)2.722 E 2.972(w\). A)-.25 F .472 +(zero-length \(null\) directory name in the)2.972 F -.25(va)144 108 S +.536(lue of).25 F F2 -.666(PA)3.036 G(TH)-.189 E F0 .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 120 R .868 +(The def)5.868 F .868(ault path is system-dependent, and is set by the) +-.1 F(administrator who installs)144 132 Q F1(bash)2.5 E F0 5(.A)C +(common v)-2.5 E(alue is)-.25 E/F3 10/Courier@0 SF +(/usr/local/bin:/usr/lo-)2.5 E(cal/sbin:/usr/bin:/usr/sbin:/bin:/sbin) +144 144 Q F0(.)A F1(POSIXL)108 156 Q(Y_CORRECT)-.92 E F0 .471(If this v) +144 168 R .471(ariable is in the en)-.25 F .471(vironment when)-.4 F F1 +(bash)2.971 E F0 .471(starts, the shell enters)2.971 F/F4 10 +/Times-Italic@0 SF .472(posix mode)2.972 F F0 .472(before reading)2.972 +F .011(the startup \214les, as if the)144 180 R F1(\255\255posix)2.511 E +F0(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 192 Q F1(bash) +4.497 E F0(enables)4.497 E F4 1.997(posix mode)4.497 F F0 4.497(,a)C +4.497(si)-4.497 G 4.497(ft)-4.497 G 1.997(he command)-4.497 F F3 1.997 (set -o posix)4.497 F F0 1.998(had been e)4.497 F -.15(xe)-.15 G(cuted.) -.15 E(When the shell enters)144 144 Q F3(posix mode)2.5 E F0 2.5(,i)C +.15 E(When the shell enters)144 204 Q F4(posix mode)2.5 E F0 2.5(,i)C 2.5(ts)-2.5 G(ets this v)-2.5 E(ariable if it w)-.25 E -(as not already set.)-.1 E F2(PR)108 156 Q(OMPT_COMMAND)-.3 E F0 -(If set, the v)144 168 Q(alue is e)-.25 E -.15(xe)-.15 G -(cuted as a command prior to issuing each primary prompt.).15 E F2(PR) -108 180 Q(OMPT_DIR)-.3 E(TRIM)-.4 E F0 .676 -(If set to a number greater than zero, the v)144 192 R .676 +(as not already set.)-.1 E F1(PR)108 216 Q(OMPT_COMMAND)-.3 E F0 +(If set, the v)144 228 Q(alue is e)-.25 E -.15(xe)-.15 G +(cuted as a command prior to issuing each primary prompt.).15 E F1(PR) +108 240 Q(OMPT_DIR)-.3 E(TRIM)-.4 E F0 .676 +(If set to a number greater than zero, the v)144 252 R .676 (alue is used as the number of trailing directory compo-)-.25 F .923 -(nents to retain when e)144 204 R .923(xpanding the)-.15 F F2(\\w)3.423 -E F0(and)3.423 E F2(\\W)3.423 E F0 .923(prompt string escapes \(see) -3.423 F/F4 9/Times-Bold@0 SF(PR)3.423 E(OMPTING)-.27 E F0(belo)3.173 E -(w\).)-.25 E(Characters remo)144 216 Q -.15(ve)-.15 G 2.5(da).15 G -(re replaced with an ellipsis.)-2.5 E F2(PS0)108 228 Q F0 1.174(The v) -144 228 R 1.174(alue of this parameter is e)-.25 F 1.174(xpanded \(see) --.15 F F4(PR)3.674 E(OMPTING)-.27 E F0(belo)3.424 E 1.174 +(nents to retain when e)144 264 R .923(xpanding the)-.15 F F1(\\w)3.423 +E F0(and)3.423 E F1(\\W)3.423 E F0 .923(prompt string escapes \(see) +3.423 F F2(PR)3.423 E(OMPTING)-.27 E F0(belo)3.173 E(w\).)-.25 E +(Characters remo)144 276 Q -.15(ve)-.15 G 2.5(da).15 G +(re replaced with an ellipsis.)-2.5 E F1(PS0)108 288 Q F0 1.174(The v) +144 288 R 1.174(alue of this parameter is e)-.25 F 1.174(xpanded \(see) +-.15 F F2(PR)3.674 E(OMPTING)-.27 E F0(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 240 Q --.15(xe)-.15 G(cuted.).15 E F2(PS1)108 252 Q F0 .064(The v)144 252 R -.065(alue of this parameter is e)-.25 F .065(xpanded \(see)-.15 F F4(PR) +(shells after reading a command and before the command is e)144 300 Q +-.15(xe)-.15 G(cuted.).15 E F1(PS1)108 312 Q F0 .064(The v)144 312 R +.065(alue of this parameter is e)-.25 F .065(xpanded \(see)-.15 F F2(PR) 2.565 E(OMPTING)-.27 E F0(belo)2.315 E .065 -(w\) and used as the primary prompt)-.25 F 2.5(string. The)144 264 R -(def)2.5 E(ault v)-.1 E(alue is `)-.25 E(`)-.74 E F2(\\s\255\\v\\$)A F0 --.74('')2.5 G(.).74 E F2(PS2)108 276 Q F0 .118(The v)144 276 R .118 -(alue of this parameter is e)-.25 F .118(xpanded as with)-.15 F F4(PS1) +(w\) and used as the primary prompt)-.25 F 2.5(string. The)144 324 R +(def)2.5 E(ault v)-.1 E(alue is `)-.25 E(`)-.74 E F1(\\s\255\\v\\$)A F0 +-.74('')2.5 G(.).74 E F1(PS2)108 336 Q F0 .118(The v)144 336 R .118 +(alue of this parameter is e)-.25 F .118(xpanded as with)-.15 F F2(PS1) 2.617 E F0 .117(and used as the secondary prompt string.)2.367 F(The) -5.117 E(def)144 288 Q(ault is `)-.1 E(`)-.74 E F2(>)A F0 -.74('')2.5 G -(.).74 E F2(PS3)108 300 Q F0 1.115(The v)144 300 R 1.115 -(alue of this parameter is used as the prompt for the)-.25 F F2(select) -3.615 E F0 1.116(command \(see)3.616 F F4 1.116(SHELL GRAM-)3.616 F(MAR) -144 312 Q F0(abo)2.25 E -.15(ve)-.15 G(\).).15 E F2(PS4)108 324 Q F0 -.101(The v)144 324 R .101(alue of this parameter is e)-.25 F .101 -(xpanded as with)-.15 F F4(PS1)2.6 E F0 .1(and the v)2.35 F .1 -(alue is printed before each command)-.25 F F2(bash)144 336 Q F0 .334 +5.117 E(def)144 348 Q(ault is `)-.1 E(`)-.74 E F1(>)A F0 -.74('')2.5 G +(.).74 E F1(PS3)108 360 Q F0 1.115(The v)144 360 R 1.115 +(alue of this parameter is used as the prompt for the)-.25 F F1(select) +3.615 E F0 1.116(command \(see)3.616 F F2 1.116(SHELL GRAM-)3.616 F(MAR) +144 372 Q F0(abo)2.25 E -.15(ve)-.15 G(\).).15 E F1(PS4)108 384 Q F0 +.101(The v)144 384 R .101(alue of this parameter is e)-.25 F .101 +(xpanded as with)-.15 F F2(PS1)2.6 E F0 .1(and the v)2.35 F .1 +(alue is printed before each command)-.25 F F1(bash)144 396 Q F0 .334 (displays during an e)2.834 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 F4(PS4)2.835 E F0 .335(is repli-)2.585 F -(cated multiple times, as necessary)144 348 Q 2.5(,t)-.65 G 2.5(oi)-2.5 +(alue of)-.25 F F2(PS4)2.835 E F0 .335(is repli-)2.585 F +(cated multiple times, as necessary)144 408 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 `)-.1 E(`)-.74 E F2(+)A F0 -.74('')2.5 G(.).74 E F2 -(SHELL)108 360 Q F0 .543(This v)144 372 R .543(ariable e)-.25 F .543 +(The def)5 E(ault is `)-.1 E(`)-.74 E F1(+)A F0 -.74('')2.5 G(.).74 E F1 +(SHELL)108 420 Q F0 .543(This v)144 432 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 F0 -(assigns to it the full pathname of the current user')144 384 Q 2.5(sl) --.55 G(ogin shell.)-2.5 E F2(TIMEFORMA)108 396 Q(T)-.95 E F0 .826(The v) -144 408 R .826 +(If it is not set when the shell starts,)5.543 F F1(bash)3.042 E F0 +(assigns to it the full pathname of the current user')144 444 Q 2.5(sl) +-.55 G(ogin shell.)-2.5 E F1(TIMEFORMA)108 456 Q(T)-.95 E F0 .826(The v) +144 468 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 420 R .649(ed with the)-.15 F F2(time)3.149 E F0 +(pipelines pre\214x)144 480 R .649(ed with the)-.15 F F1(time)3.149 E F0 (reserv)3.149 E .649(ed w)-.15 F .648(ord should be displayed.)-.1 F -(The)5.648 E F2(%)3.148 E F0 .648(character introduces)3.148 F .711 -(an escape sequence that is e)144 432 R .711(xpanded to a time v)-.15 F +(The)5.648 E F1(%)3.148 E F0 .648(character introduces)3.148 F .711 +(an escape sequence that is e)144 492 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 444 Q -(ws; the braces denote optional portions.)-.25 E F2(%%)144 462 Q F0 2.5 -(Al)194 462 S(iteral)-2.5 E F2(%)2.5 E F0(.)A F2(%[)144 474 Q F3(p)A F2 -(][l]R)A F0(The elapsed time in seconds.)194 474 Q F2(%[)144 486 Q F3(p) -A F2(][l]U)A F0(The number of CPU seconds spent in user mode.)194 486 Q -F2(%[)144 498 Q F3(p)A F2(][l]S)A F0 -(The number of CPU seconds spent in system mode.)194 498 Q F2(%P)144 510 -Q F0(The CPU percentage, computed as \(%U + %S\) / %R.)194 510 Q .87 -(The optional)144 526.8 R F3(p)3.37 E F0 .87(is a digit specifying the) -3.37 F F3(pr)3.37 E(ecision)-.37 E F0 3.37(,t)C .87 +(and their meanings are as follo)144 504 Q +(ws; the braces denote optional portions.)-.25 E F1(%%)144 522 Q F0 2.5 +(Al)194 522 S(iteral)-2.5 E F1(%)2.5 E F0(.)A F1(%[)144 534 Q F4(p)A F1 +(][l]R)A F0(The elapsed time in seconds.)194 534 Q F1(%[)144 546 Q F4(p) +A F1(][l]U)A F0(The number of CPU seconds spent in user mode.)194 546 Q +F1(%[)144 558 Q F4(p)A F1(][l]S)A F0 +(The number of CPU seconds spent in system mode.)194 558 Q F1(%P)144 570 +Q F0(The CPU percentage, computed as \(%U + %S\) / %R.)194 570 Q .87 +(The optional)144 586.8 R F4(p)3.37 E F0 .87(is a digit specifying the) +3.37 F F4(pr)3.37 E(ecision)-.37 E F0 3.37(,t)C .87 (he number of fractional digits after a decimal)-3.37 F 2.525(point. A) -144 538.8 R -.25(va)2.525 G .025 +144 598.8 R -.25(va)2.525 G .025 (lue of 0 causes no decimal point or fraction to be output.).25 F .026 (At most three places after the)5.025 F .538 -(decimal point may be speci\214ed; v)144 550.8 R .538(alues of)-.25 F F3 +(decimal point may be speci\214ed; v)144 610.8 R .538(alues of)-.25 F F4 (p)3.038 E F0 .537(greater than 3 are changed to 3.)3.037 F(If)5.537 E -F3(p)3.037 E F0 .537(is not speci\214ed,)3.037 F(the v)144 562.8 Q -(alue 3 is used.)-.25 E .667(The optional)144 579.6 R F2(l)3.167 E F0 +F4(p)3.037 E F0 .537(is not speci\214ed,)3.037 F(the v)144 622.8 Q +(alue 3 is used.)-.25 E .667(The optional)144 639.6 R F1(l)3.167 E F0 .668(speci\214es a longer format, including minutes, of the form)3.168 F -F3(MM)3.168 E F0(m)A F3(SS)A F0(.)A F3(FF)A F0 3.168(s. The)B -.25(va) -3.168 G(lue).25 E(of)144 591.6 Q F3(p)2.5 E F0 +F4(MM)3.168 E F0(m)A F4(SS)A F0(.)A F4(FF)A F0 3.168(s. The)B -.25(va) +3.168 G(lue).25 E(of)144 651.6 Q F4(p)2.5 E F0 (determines whether or not the fraction is included.)2.5 E 13.365 -(If this v)144 608.4 R 13.365(ariable is not set,)-.25 F F2(bash)15.865 -E F0 13.364(acts as if it had the v)15.865 F(alue)-.25 E F2($\010\\nr) -144 620.4 Q(eal\\t%3lR\\nuser\\t%3lU\\nsys\\t%3lS\010)-.18 E F0 7.113 +(If this v)144 668.4 R 13.365(ariable is not set,)-.25 F F1(bash)15.865 +E F0 13.364(acts as if it had the v)15.865 F(alue)-.25 E F1($\010\\nr) +144 680.4 Q(eal\\t%3lR\\nuser\\t%3lU\\nsys\\t%3lS\010)-.18 E F0 7.113 (.I)C 4.613(ft)-7.113 G 2.113(he v)-4.613 F 2.113 (alue is null, no timing information is dis-)-.25 F 2.5(played. A)144 -632.4 R(trailing ne)2.5 E -(wline is added when the format string is displayed.)-.25 E F2(TMOUT)108 -644.4 Q F0 .941(If set to a v)144 656.4 R .941(alue greater than zero,) --.25 F F4(TMOUT)3.441 E F0 .941(is treated as the def)3.191 F .941 -(ault timeout for the)-.1 F F2 -.18(re)3.441 G(ad).18 E F0 -.2(bu)3.441 -G(iltin.).2 E(The)144 668.4 Q F2(select)2.81 E F0 .31 -(command terminates if input does not arri)2.81 F .611 -.15(ve a)-.25 H -(fter).15 E F4(TMOUT)2.811 E F0 .311(seconds when input is com-)2.561 F -.886(ing from a terminal.)144 680.4 R .886(In an interacti)5.886 F 1.185 --.15(ve s)-.25 H .885(hell, the v).15 F .885 -(alue is interpreted as the number of seconds to)-.25 F -.1(wa)144 692.4 -S 1.05(it for a line of input after issuing the primary prompt.).1 F F2 -(Bash)6.05 E F0 1.05(terminates after w)3.55 F 1.05(aiting for that)-.1 -F(number of seconds if a complete line of input does not arri)144 704.4 -Q -.15(ve)-.25 G(.).15 E(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15 -(ve)-.15 G(mber 22).15 E(18)185.545 E 0 Cg EP +692.4 R(trailing ne)2.5 E +(wline is added when the format string is displayed.)-.25 E F1(TMOUT)108 +704.4 Q F0 .941(If set to a v)144 716.4 R .941(alue greater than zero,) +-.25 F F2(TMOUT)3.441 E F0 .941(is treated as the def)3.191 F .941 +(ault timeout for the)-.1 F F1 -.18(re)3.441 G(ad).18 E F0 -.2(bu)3.441 +G(iltin.).2 E(The)144 728.4 Q F1(select)4.479 E F0 1.979 +(command terminates if input does not arri)4.479 F 2.279 -.15(ve a)-.25 +H(fter).15 E F2(TMOUT)4.479 E F0 1.98(seconds when input is)4.229 F +(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E +(18)185.545 E 0 Cg EP %%Page: 19 19 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F -(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0 -SF(TMPDIR)108 84 Q F0 .391(If set,)144 96 R F1(bash)2.891 E F0 .391 -(uses its v)2.891 F .391(alue as the name of a directory in which)-.25 F -F1(bash)2.89 E F0 .39(creates temporary \214les for the)2.89 F(shell') -144 108 Q 2.5(su)-.55 G(se.)-2.5 E F1(auto_r)108 120 Q(esume)-.18 E F0 -.53(This v)144 132 R .53(ariable controls ho)-.25 F 3.03(wt)-.25 G .531 +(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E .507 +(coming from a terminal.)144 84 R .507(In an interacti)5.507 F .807 -.15 +(ve s)-.25 H .507(hell, the v).15 F .507 +(alue is interpreted as the number of seconds)-.25 F .383(to w)144 96 R +.383(ait for a line of input after issuing the primary prompt.)-.1 F/F1 +10/Times-Bold@0 SF(Bash)5.384 E F0 .384(terminates after w)2.884 F .384 +(aiting for that)-.1 F +(number of seconds if a complete line of input does not arri)144 108 Q +-.15(ve)-.25 G(.).15 E F1(TMPDIR)108 120 Q F0 .391(If set,)144 132 R F1 +(bash)2.891 E F0 .391(uses its v)2.891 F .391 +(alue as the name of a directory in which)-.25 F F1(bash)2.89 E F0 .39 +(creates temporary \214les for the)2.89 F(shell')144 144 Q 2.5(su)-.55 G +(se.)-2.5 E F1(auto_r)108 156 Q(esume)-.18 E F0 .53(This v)144 168 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 .539(single w)144 144 R +(If this v)5.531 F .531(ariable is set,)-.25 F .539(single w)144 180 R .538(ord simple commands without redirections are treated as candidates\ - for resumption of an)-.1 F -.15(ex)144 156 S .366(isting stopped job) + for resumption of an)-.1 F -.15(ex)144 192 S .366(isting stopped job) .15 F 5.366(.T)-.4 G .366(here is no ambiguity allo)-5.366 F .366 (wed; if there is more than one job be)-.25 F .367(ginning with)-.15 F 1.125(the string typed, the job most recently accessed is selected.)144 -168 R(The)6.125 E/F2 10/Times-Italic@0 SF(name)3.985 E F0 1.124 -(of a stopped job, in this)3.805 F(conte)144 180 Q 1.132 +204 R(The)6.125 E/F2 10/Times-Italic@0 SF(name)3.985 E F0 1.124 +(of a stopped job, in this)3.805 F(conte)144 216 Q 1.132 (xt, is the command line used to start it.)-.15 F 1.133(If set to the v) 6.133 F(alue)-.25 E F2 -.2(ex)3.633 G(act).2 E F0 3.633(,t).68 G 1.133 (he string supplied must)-3.633 F .606 -(match the name of a stopped job e)144 192 R .606(xactly; if set to)-.15 +(match the name of a stopped job e)144 228 R .606(xactly; if set to)-.15 F F2(substring)3.445 E F0 3.105(,t).22 G .605 (he string supplied needs to match a)-3.105 F .884 -(substring of the name of a stopped job)144 204 R 5.884(.T)-.4 G(he) +(substring of the name of a stopped job)144 240 R 5.884(.T)-.4 G(he) -5.884 E F2(substring)3.724 E F0 -.25(va)3.604 G .885(lue pro).25 F .885 -(vides functionality analogous to)-.15 F(the)144 216 Q F1(%?)3.334 E F0 +(vides functionality analogous to)-.15 F(the)144 252 Q F1(%?)3.334 E F0 .834(job identi\214er \(see)5.834 F/F3 9/Times-Bold@0 SF .834(JOB CONTR) 3.334 F(OL)-.27 E F0(belo)3.084 E 3.334(w\). If)-.25 F .834(set to an) 3.334 F 3.334(yo)-.15 G .834(ther v)-3.334 F .833 (alue, the supplied string)-.25 F .315 -(must be a pre\214x of a stopped job')144 228 R 2.816(sn)-.55 G .316 +(must be a pre\214x of a stopped job')144 264 R 2.816(sn)-.55 G .316 (ame; this pro)-2.816 F .316(vides functionality analogous to the)-.15 F -F1(%)2.816 E F2(string)A F0(job)2.816 E(identi\214er)144 240 Q(.)-.55 E -F1(histchars)108 252 Q F0 .546(The tw)144 264 R 3.046(oo)-.1 G 3.046(rt) +F1(%)2.816 E F2(string)A F0(job)2.816 E(identi\214er)144 276 Q(.)-.55 E +F1(histchars)108 288 Q F0 .546(The tw)144 300 R 3.046(oo)-.1 G 3.046(rt) -3.046 G .546(hree characters which control history e)-3.046 F .545 (xpansion and tok)-.15 F .545(enization \(see)-.1 F F3(HIST)3.045 E(OR) --.162 E 2.795(YE)-.315 G(X-)-2.795 E -.666(PA)144 276 S(NSION).666 E F0 +-.162 E 2.795(YE)-.315 G(X-)-2.795 E -.666(PA)144 312 S(NSION).666 E F0 (belo)2.987 E 3.237(w\). The)-.25 F .737(\214rst character is the)3.237 F F2 .737(history e)3.237 F(xpansion)-.2 E F0(character)3.238 E 3.238 (,t)-.4 G .738(he character which sig-)-3.238 F .761 -(nals the start of a history e)144 288 R .761(xpansion, normally `)-.15 +(nals the start of a history e)144 324 R .761(xpansion, normally `)-.15 F F1(!)A F0 3.261('. The)B .76(second character is the)3.261 F F2(quic) -3.26 E 3.26(ks)-.2 G(ubstitution)-3.26 E F0(character)144 300 Q 3.476 +3.26 E 3.26(ks)-.2 G(ubstitution)-3.26 E F0(character)144 336 Q 3.476 (,w)-.4 G .977(hich is used as shorthand for re-running the pre)-3.476 F .977(vious command entered, substituting)-.25 F .131 -(one string for another in the command.)144 312 R .131(The def)5.131 F +(one string for another in the command.)144 348 R .131(The def)5.131 F .131(ault is `)-.1 F F1(^)A F0 2.63('. The)B .13 (optional third character is the char)2.63 F(-)-.2 E .276(acter which i\ ndicates that the remainder of the line is a comment when found as the \ -\214rst character)144 324 R .46(of a w)144 336 R .46(ord, normally `)-.1 +\214rst character)144 360 R .46(of a w)144 372 R .46(ord, normally `)-.1 F F1(#)A F0 2.959('. The)B .459 (history comment character causes history substitution to be skipped) -2.959 F .466(for the remaining w)144 348 R .466(ords on the line.)-.1 F +2.959 F .466(for the remaining w)144 384 R .466(ords on the line.)-.1 F .467(It does not necessarily cause the shell parser to treat the rest) -5.467 F(of the line as a comment.)144 360 Q F1(Arrays)87 376.8 Q(Bash) -108 388.8 Q F0(pro)3.391 E .891(vides one-dimensional inde)-.15 F -.15 +5.467 F(of the line as a comment.)144 396 Q F1(Arrays)87 412.8 Q(Bash) +108 424.8 Q F0(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 400.8 Q -.15(xe)-.15 G +(ariable may be used as an)-3.641 F(inde)108 436.8 Q -.15(xe)-.15 G 2.573(da).15 G .073(rray; the)-2.573 F F1(declar)2.573 E(e)-.18 E F0 -.2 (bu)2.573 G .073(iltin will e).2 F .073(xplicitly declare an array)-.15 F 5.073(.T)-.65 G .074(here is no maximum limit on the size of)-5.073 F -.329(an array)108 412.8 R 2.829(,n)-.65 G .329(or an)-2.829 F 2.829(yr) +.329(an array)108 448.8 R 2.829(,n)-.65 G .329(or an)-2.829 F 2.829(yr) -.15 G .329(equirement that members be inde)-2.829 F -.15(xe)-.15 G 2.829(do).15 G 2.829(ra)-2.829 G .328(ssigned contiguously)-2.829 F 5.328(.I)-.65 G(nde)-5.328 E -.15(xe)-.15 G 2.828(da).15 G .328 -(rrays are refer)-2.828 F(-)-.2 E 1.595(enced using inte)108 424.8 R +(rrays are refer)-2.828 F(-)-.2 E 1.595(enced using inte)108 460.8 R 1.595(gers \(including arithmetic e)-.15 F 1.595 (xpressions\) and are zero-based; associati)-.15 F 1.895 -.15(ve a)-.25 H 1.595(rrays are refer).15 F(-)-.2 E(enced using arbitrary strings.)108 -436.8 Q(Unless otherwise noted, inde)5 E -.15(xe)-.15 G 2.5(da).15 G +472.8 Q(Unless otherwise noted, inde)5 E -.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 2.463(An inde)108 453.6 R -.15(xe) +(ve i)-.25 H(nte).15 E(gers.)-.15 E 2.463(An inde)108 489.6 R -.15(xe) -.15 G 4.963(da).15 G 2.463(rray is created automatically if an)-4.963 F 4.963(yv)-.15 G 2.462(ariable is assigned to using the syntax)-5.213 F -F2(name)4.962 E F0([)A F2(sub-)A(script)108 465.6 Q F0(]=)A F2(value)A +F2(name)4.962 E F0([)A F2(sub-)A(script)108 501.6 Q F0(]=)A F2(value)A F0 5.506(.T)C(he)-5.506 E F2(subscript)3.346 E F0 .507 (is treated as an arithmetic e)3.687 F .507(xpression that must e)-.15 F -.25(va)-.25 G .507(luate to a number).25 F 5.507(.T)-.55 G 3.007(oe) --6.307 G(x-)-3.157 E 1.193(plicitly declare an inde)108 477.6 R -.15(xe) +-6.307 G(x-)-3.157 E 1.193(plicitly declare an inde)108 513.6 R -.15(xe) -.15 G 3.693(da).15 G(rray)-3.693 E 3.693(,u)-.65 G(se)-3.693 E F1 (declar)3.693 E 3.693<65ad>-.18 G(a)-3.693 E F2(name)3.693 E F0(\(see) 3.692 E F3 1.192(SHELL B)3.692 F(UIL)-.09 E 1.192(TIN COMMANDS)-.828 F -F0(belo)3.442 E(w\).)-.25 E F1(de-)6.192 E(clar)108 489.6 Q 2.5<65ad> +F0(belo)3.442 E(w\).)-.25 E F1(de-)6.192 E(clar)108 525.6 Q 2.5<65ad> -.18 G(a)-2.5 E F2(name)2.5 E F1([)A F2(subscript)A F1(])A F0 (is also accepted; the)2.5 E F2(subscript)2.5 E F0(is ignored.)2.5 E -(Associati)108 506.4 Q .3 -.15(ve a)-.25 H(rrays are created using).15 E +(Associati)108 542.4 Q .3 -.15(ve a)-.25 H(rrays are created using).15 E F1(declar)2.5 E 2.5<65ad>-.18 G(A)-2.5 E F2(name)2.5 E F0(.)A(Attrib)108 -523.2 Q .94(utes may be speci\214ed for an array v)-.2 F .941 +559.2 Q .94(utes may be speci\214ed for an array v)-.2 F .941 (ariable using the)-.25 F F1(declar)3.441 E(e)-.18 E F0(and)3.441 E F1 -.18(re)3.441 G(adonly).18 E F0 -.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 535.2 Q +(attrib)3.441 E(ute)-.2 E(applies to all members of an array)108 571.2 Q (.)-.65 E 1.647 -(Arrays are assigned to using compound assignments of the form)108 552 R +(Arrays are assigned to using compound assignments of the form)108 588 R F2(name)4.147 E F0(=)A F1(\()A F0 -.25(va)C(lue).25 E F2(1)A F0 1.647 (... v)4.147 F(alue)-.25 E F2(n)A F1(\))A F0 4.147(,w)C 1.647(here each) --4.147 F F2(value)108 564 Q F0 1.833(is of the form [)4.332 F F2 +-4.147 F F2(value)108 600 Q F0 1.833(is of the form [)4.332 F F2 (subscript)A F0(]=)A F2(string)A F0 6.833(.I)C(nde)-6.833 E -.15(xe)-.15 G 4.333(da).15 G 1.833(rray assignments do not require an)-4.333 F 1.833 (ything b)-.15 F(ut)-.2 E F2(string)4.333 E F0(.)A .164 -(When assigning to inde)108 576 R -.15(xe)-.15 G 2.663(da).15 G .163 +(When assigning to inde)108 612 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 588 R +(sa)-2.663 G(ssigned)-2.663 E .459(to; otherwise the inde)108 624 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 600 Q -(xing starts at zero.)-.15 E(When assigning to an associati)108 616.8 Q +(ssigned to by the statement plus one.)-2.96 F(In-)5.46 E(de)108 636 Q +(xing starts at zero.)-.15 E(When assigning to an associati)108 652.8 Q .3 -.15(ve a)-.25 H(rray).15 E 2.5(,t)-.65 G(he subscript is required.) --2.5 E .24(This syntax is also accepted by the)108 633.6 R F1(declar) +-2.5 E .24(This syntax is also accepted by the)108 669.6 R F1(declar) 2.74 E(e)-.18 E F0 -.2(bu)2.739 G 2.739(iltin. Indi).2 F .239 (vidual array elements may be assigned to using the)-.25 F F2(name)108 -645.6 Q F0([)A F2(subscript)A F0(]=)A F2(value)A F0 1.917 +681.6 Q F0([)A F2(subscript)A F0(]=)A F2(value)A F0 1.917 (syntax introduced abo)4.416 F -.15(ve)-.15 G 6.917(.W).15 G 1.917 (hen assigning to an inde)-6.917 F -.15(xe)-.15 G 4.417(da).15 G(rray) -4.417 E 4.417(,i)-.65 G(f)-4.417 E F2(name)4.777 E F0 1.917(is sub-) -4.597 F .116(scripted by a ne)108 657.6 R -.05(ga)-.15 G(ti).05 E .416 +4.597 F .116(scripted by a ne)108 693.6 R -.05(ga)-.15 G(ti).05 E .416 -.15(ve n)-.25 H(umber).15 E 2.616(,t)-.4 G .115 (hat number is interpreted as relati)-2.616 F .415 -.15(ve t)-.25 H 2.615(oo).15 G .115(ne greater than the maximum inde)-2.615 F(x)-.15 E -(of)108 669.6 Q F2(name)2.676 E F0 2.676(,s)C 2.676(on)-2.676 G -2.25 +(of)108 705.6 Q F2(name)2.676 E F0 2.676(,s)C 2.676(on)-2.676 G -2.25 -.15(eg a)-2.676 H(ti).15 E .476 -.15(ve i)-.25 H .177 (ndices count back from the end of the array).15 F 2.677(,a)-.65 G .177 (nd an inde)-2.677 F 2.677(xo)-.15 G 2.677<66ad>-2.677 G 2.677(1r)-2.677 -G .177(eferences the last el-)-2.677 F(ement.)108 681.6 Q(An)108 698.4 Q -3.576(ye)-.15 G 1.076(lement of an array may be referenced using ${) --3.576 F F2(name)A F0([)A F2(subscript)A F0 3.575(]}. The)B 1.075 -(braces are required to a)3.575 F -.2(vo)-.2 G(id).2 E 1.541 -(con\215icts with pathname e)108 710.4 R 4.041(xpansion. If)-.15 F F2 -(subscript)4.041 E F0(is)4.041 E F1(@)4.041 E F0(or)4.041 E F1(*)4.041 E -F0 4.041(,t)C 1.541(he w)-4.041 F 1.541(ord e)-.1 F 1.541 -(xpands to all members of)-.15 F F2(name)4.042 E F0(.)A 1.057 -(These subscripts dif)108 722.4 R 1.057(fer only when the w)-.25 F 1.057 -(ord appears within double quotes.)-.1 F 1.056(If the w)6.056 F 1.056 -(ord is double-quoted,)-.1 F(GNU Bash 5.0)72 768 Q(2019 No)136.385 E --.15(ve)-.15 G(mber 22).15 E(19)185.545 E 0 Cg EP +G .177(eferences the last el-)-2.677 F(ement.)108 717.6 Q(GNU Bash 5.0) +72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E(19)185.545 E 0 +Cg EP %%Page: 20 20 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F -(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E(${)108 84 Q/F1 10 -/Times-Italic@0 SF(name)A F0 .52([*]} e)B .52(xpands to a single w)-.15 -F .52(ord with the v)-.1 F .521 +(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E(An)108 84 Q 3.576 +(ye)-.15 G 1.076(lement of an array may be referenced using ${)-3.576 F +/F1 10/Times-Italic@0 SF(name)A F0([)A F1(subscript)A F0 3.575(]}. The)B +1.075(braces are required to a)3.575 F -.2(vo)-.2 G(id).2 E 1.541 +(con\215icts with pathname e)108 96 R 4.041(xpansion. If)-.15 F F1 +(subscript)4.041 E F0(is)4.041 E/F2 10/Times-Bold@0 SF(@)4.041 E F0(or) +4.041 E F2(*)4.041 E F0 4.041(,t)C 1.541(he w)-4.041 F 1.541(ord e)-.1 F +1.541(xpands to all members of)-.15 F F1(name)4.042 E F0(.)A 1.057 +(These subscripts dif)108 108 R 1.057(fer only when the w)-.25 F 1.057 +(ord appears within double quotes.)-.1 F 1.056(If the w)6.056 F 1.056 +(ord is double-quoted,)-.1 F(${)108 120 Q F1(name)A F0 .52([*]} e)B .52 +(xpands to a single w)-.15 F .52(ord with the v)-.1 F .521 (alue of each array member separated by the \214rst character)-.25 F -1.375(of the)108 96 R/F2 9/Times-Bold@0 SF(IFS)3.875 E F0 1.375 +1.375(of the)108 132 R/F3 9/Times-Bold@0 SF(IFS)3.875 E F0 1.375 (special v)3.625 F 1.375(ariable, and ${)-.25 F F1(name)A F0 1.375 ([@]} e)B 1.375(xpands each element of)-.15 F F1(name)3.875 E F0 1.374 (to a separate w)3.875 F 3.874(ord. When)-.1 F 2.027 -(there are no array members, ${)108 108 R F1(name)A F0 2.028([@]} e)B +(there are no array members, ${)108 144 R F1(name)A F0 2.028([@]} e)B 2.028(xpands to nothing.)-.15 F 2.028(If the double-quoted e)7.028 F -2.028(xpansion occurs)-.15 F .759(within a w)108 120 R .759(ord, the e) +2.028(xpansion occurs)-.15 F .759(within a w)108 156 R .759(ord, the e) -.1 F .759(xpansion of the \214rst parameter is joined with the be)-.15 F .759(ginning part of the original w)-.15 F(ord,)-.1 E .515(and the e) -108 132 R .516(xpansion of the last parameter is joined with the last p\ +108 168 R .516(xpansion of the last parameter is joined with the last p\ art of the original w)-.15 F 3.016(ord. This)-.1 F .516(is analogous) -3.016 F .228(to the e)108 144 R .228(xpansion of the special parameters) --.15 F/F3 10/Times-Bold@0 SF(*)2.728 E F0(and)2.728 E F3(@)2.728 E F0 -(\(see)2.728 E F3 .228(Special P)2.728 F(arameters)-.1 E F0(abo)2.727 E --.15(ve)-.15 G 2.727(\). ${#).15 F F1(name)A F0([)A F1(subscript)A F0 -(]})A -.15(ex)108 156 S .886(pands to the length of ${).15 F F1(name)A -F0([)A F1(subscript)A F0 3.386(]}. If)B F1(subscript)3.386 E F0(is)3.386 -E F3(*)3.386 E F0(or)3.386 E F3(@)3.386 E F0 3.386(,t)C .886(he e)-3.386 -F .886(xpansion is the number of ele-)-.15 F .295(ments in the array)108 -168 R 5.295(.I)-.65 G 2.795(ft)-5.295 G(he)-2.795 E F1(subscript)3.135 E -F0 .295(used to reference an element of an inde)3.475 F -.15(xe)-.15 G +3.016 F .228(to the e)108 180 R .228(xpansion of the special parameters) +-.15 F F2(*)2.728 E F0(and)2.728 E F2(@)2.728 E F0(\(see)2.728 E F2 .228 +(Special P)2.728 F(arameters)-.1 E F0(abo)2.727 E -.15(ve)-.15 G 2.727 +(\). ${#).15 F F1(name)A F0([)A F1(subscript)A F0(]})A -.15(ex)108 192 S +.886(pands to the length of ${).15 F F1(name)A F0([)A F1(subscript)A F0 +3.386(]}. If)B F1(subscript)3.386 E F0(is)3.386 E F2(*)3.386 E F0(or) +3.386 E F2(@)3.386 E F0 3.386(,t)C .886(he e)-3.386 F .886 +(xpansion is the number of ele-)-.15 F .295(ments in the array)108 204 R +5.295(.I)-.65 G 2.795(ft)-5.295 G(he)-2.795 E F1(subscript)3.135 E F0 +.295(used to reference an element of an inde)3.475 F -.15(xe)-.15 G 2.794(da).15 G .294(rray e)-2.794 F -.25(va)-.25 G .294 (luates to a number).25 F .628 -(less than zero, it is interpreted as relati)108 180 R .928 -.15(ve t) +(less than zero, it is interpreted as relati)108 216 R .928 -.15(ve t) -.25 H 3.128(oo).15 G .629(ne greater than the maximum inde)-3.128 F 3.129(xo)-.15 G 3.129(ft)-3.129 G .629(he array)-3.129 F 3.129(,s)-.65 G 3.129(on)-3.129 G -2.25 -.15(eg a)-3.129 H(ti).15 E -.15(ve)-.25 G -(indices count back from the end of the array)108 192 Q 2.5(,a)-.65 G +(indices count back from the end of the array)108 228 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 -208.8 R .595(ariable without a subscript is equi)-.25 F -.25(va)-.25 G +244.8 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 220.8 R 2.5(yr)-.15 G(eference to a v)-2.5 E(ariable using a v)-.25 -E(alid subscript is le)-.25 E -.05(ga)-.15 G(l, and).05 E F3(bash)2.5 E -F0(will create an array if necessary)2.5 E(.)-.65 E(An array v)108 237.6 +108 256.8 R 2.5(yr)-.15 G(eference to a v)-2.5 E(ariable using a v)-.25 +E(alid subscript is le)-.25 E -.05(ga)-.15 G(l, and).05 E F2(bash)2.5 E +F0(will create an array if necessary)2.5 E(.)-.65 E(An array v)108 273.6 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 254.4 R -.15(ey)-.1 G 2.918(s\() +.417(It is possible to obtain the k)108 290.4 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 F3(!)A F1(name)A F0([)A F1(@)A F0 .418(]} and ${)B F3 -(!)A F1(name)A F0([)A F1(*)A F0(]})A -.15(ex)108 266.4 S .75 +(alues. ${)-.25 F F2(!)A F1(name)A F0([)A F1(@)A F0 .418(]} and ${)B F2 +(!)A F1(name)A F0([)A F1(*)A F0(]})A -.15(ex)108 302.4 S .75 (pand to the indices assigned in array v).15 F(ariable)-.25 E F1(name) 3.249 E F0 5.749(.T)C .749 (he treatment when in double quotes is similar to)-5.749 F(the e)108 -278.4 Q(xpansion of the special parameters)-.15 E F1(@)2.5 E F0(and)2.5 -E F1(*)2.5 E F0(within double quotes.)2.5 E(The)108 295.2 Q F3(unset) +314.4 Q(xpansion of the special parameters)-.15 E F1(@)2.5 E F0(and)2.5 +E F1(*)2.5 E F0(within double quotes.)2.5 E(The)108 331.2 Q F2(unset) 2.766 E F0 -.2(bu)2.766 G .267(iltin is used to destro).2 F 2.767(ya)-.1 -G(rrays.)-2.767 E F3(unset)5.267 E F1(name)2.767 E F0([)A F1(subscript)A +G(rrays.)-2.767 E F2(unset)5.267 E F1(name)2.767 E F0([)A F1(subscript)A F0 2.767(]d)C(estro)-2.767 E .267(ys the array element at inde)-.1 F(x) --.15 E F1(sub-)2.767 E(script)108 307.2 Q F0 2.858(,f)C .358 +-.15 E F1(sub-)2.767 E(script)108 343.2 Q F0 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 319.2 R -.15(ve)-.15 G 6.204(.U).15 G 1.204 +(scribed abo)108 355.2 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 F3(unset)6.205 E F1 -(name)3.705 E F0(,)A(where)108 331.2 Q F1(name)2.5 E F0(is an array)2.5 -E 2.5(,o)-.65 G(r)-2.5 E F3(unset)2.5 E F1(name)2.5 E F0([)A F1 -(subscript)A F0(], where)A F1(subscript)2.5 E F0(is)2.5 E F3(*)2.5 E F0 -(or)2.5 E F3(@)2.5 E F0 2.5(,r)C(emo)-2.5 E -.15(ve)-.15 G 2.5(st).15 G -(he entire array)-2.5 E(.)-.65 E .029(When using a v)108 348 R .029 +(ariable does not unset the v)-.25 F(ariable.)-.25 E F2(unset)6.205 E F1 +(name)3.705 E F0(,)A(where)108 367.2 Q F1(name)2.5 E F0(is an array)2.5 +E 2.5(,o)-.65 G(r)-2.5 E F2(unset)2.5 E F1(name)2.5 E F0([)A F1 +(subscript)A F0(], where)A F1(subscript)2.5 E F0(is)2.5 E F2(*)2.5 E F0 +(or)2.5 E F2(@)2.5 E F0 2.5(,r)C(emo)-2.5 E -.15(ve)-.15 G 2.5(st).15 G +(he entire array)-2.5 E(.)-.65 E .029(When using a v)108 384 R .029 (ariable name with a subscript as an ar)-.25 F .028 -(gument to a command, such as with)-.18 F F3(unset)2.528 E F0 2.528(,w)C -.028(ithout us-)-2.528 F .937(ing the w)108 360 R .937(ord e)-.1 F .937 +(gument to a command, such as with)-.18 F F2(unset)2.528 E F0 2.528(,w)C +.028(ithout us-)-2.528 F .937(ing the w)108 396 R .937(ord e)-.1 F .937 (xpansion syntax described abo)-.15 F -.15(ve)-.15 G 3.437(,t).15 G .937 (he ar)-3.437 F .938(gument is subject to pathname e)-.18 F 3.438 -(xpansion. If)-.15 F(path-)3.438 E(name e)108 372 Q +(xpansion. If)-.15 F(path-)3.438 E(name e)108 408 Q (xpansion is not desired, the ar)-.15 E(gument should be quoted.)-.18 E -(The)108 388.8 Q F3(declar)2.684 E(e)-.18 E F0(,)A F3(local)2.684 E F0 -2.684(,a)C(nd)-2.684 E F3 -.18(re)2.684 G(adonly).18 E F0 -.2(bu)2.684 G -.184(iltins each accept a).2 F F3<ad61>2.684 E F0 .184 +(The)108 424.8 Q F2(declar)2.684 E(e)-.18 E F0(,)A F2(local)2.684 E F0 +2.684(,a)C(nd)-2.684 E F2 -.18(re)2.684 G(adonly).18 E F0 -.2(bu)2.684 G +.184(iltins each accept a).2 F F2<ad61>2.684 E F0 .184 (option to specify an inde)2.684 F -.15(xe)-.15 G 2.683(da).15 G .183 -(rray and a)-2.683 F F3<ad41>2.683 E F0(op-)2.683 E .041 -(tion to specify an associati)108 400.8 R .341 -.15(ve a)-.25 H(rray).15 +(rray and a)-2.683 F F2<ad41>2.683 E F0(op-)2.683 E .041 +(tion to specify an associati)108 436.8 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 F3<ad41>2.541 E F0(tak)2.541 E .041(es precedence.)-.1 F(The) -5.041 E F3 -.18(re)2.542 G(ad).18 E F0 -.2(bu)2.542 G .042(iltin ac-).2 -F .864(cepts a)108 412.8 R F3<ad61>3.364 E F0 .864 +-2.541 F F2<ad41>2.541 E F0(tak)2.541 E .041(es precedence.)-.1 F(The) +5.041 E F2 -.18(re)2.542 G(ad).18 E F0 -.2(bu)2.542 G .042(iltin ac-).2 +F .864(cepts a)108 448.8 R F2<ad61>3.364 E F0 .864 (option to assign a list of w)3.364 F .864 (ords read from the standard input to an array)-.1 F 5.863(.T)-.65 G(he) --5.863 E F3(set)3.363 E F0(and)3.363 E F3(declar)3.363 E(e)-.18 E F0 -.2 -(bu)108 424.8 S(iltins display array v).2 E(alues in a w)-.25 E +-5.863 E F2(set)3.363 E F0(and)3.363 E F2(declar)3.363 E(e)-.18 E F0 -.2 +(bu)108 460.8 S(iltins display array v).2 E(alues in a w)-.25 E (ay that allo)-.1 E(ws them to be reused as assignments.)-.25 E/F4 10.95 -/Times-Bold@0 SF(EXP)72 441.6 Q(ANSION)-.81 E F0 .76(Expansion is perfo\ -rmed on the command line after it has been split into w)108 453.6 R 3.26 +/Times-Bold@0 SF(EXP)72 477.6 Q(ANSION)-.81 E F0 .76(Expansion is perfo\ +rmed on the command line after it has been split into w)108 489.6 R 3.26 (ords. There)-.1 F .76(are se)3.26 F -.15(ve)-.25 G 3.26(nk).15 G .76 -(inds of)-3.26 F -.15(ex)108 465.6 S .201(pansion performed:).15 F F1 +(inds of)-3.26 F -.15(ex)108 501.6 S .201(pansion performed:).15 F F1 (br)2.971 E .201(ace e)-.15 F(xpansion)-.2 E F0(,).24 E F1 .201(tilde e) 2.831 F(xpansion)-.2 E F0(,).24 E F1(par)3.951 E .201 (ameter and variable e)-.15 F(xpansion)-.2 E F0(,).24 E F1 .2 -(command sub-)2.901 F(stitution)108 477.6 Q F0(,).24 E F1(arithmetic e) +(command sub-)2.901 F(stitution)108 513.6 Q F0(,).24 E F1(arithmetic e) 2.83 E(xpansion)-.2 E F0(,).24 E F1(wor)2.84 E 2.5(ds)-.37 G(plitting) -2.5 E F0 2.5(,a).22 G(nd)-2.5 E F1(pathname e)3.75 E(xpansion)-.2 E F0 -(.).24 E .418(The order of e)108 494.4 R .418(xpansions is: brace e)-.15 +(.).24 E .418(The order of e)108 530.4 R .418(xpansions is: brace e)-.15 F .418(xpansion; tilde e)-.15 F .419(xpansion, parameter and v)-.15 F -.419(ariable e)-.25 F .419(xpansion, arithmetic)-.15 F -.15(ex)108 506.4 +.419(ariable e)-.25 F .419(xpansion, arithmetic)-.15 F -.15(ex)108 542.4 S .196(pansion, and command substitution \(done in a left-to-right f).15 F .195(ashion\); w)-.1 F .195(ord splitting; and pathname e)-.1 F(xpan-) --.15 E(sion.)108 518.4 Q .257 -(On systems that can support it, there is an additional e)108 535.2 R +-.15 E(sion.)108 554.4 Q .257 +(On systems that can support it, there is an additional e)108 571.2 R .257(xpansion a)-.15 F -.25(va)-.2 G(ilable:).25 E F1(pr)2.757 E .257 (ocess substitution)-.45 F F0 5.257(.T)C .257(his is per)-5.257 F(-)-.2 -E(formed at the same time as tilde, parameter)108 547.2 Q 2.5(,v)-.4 G +E(formed at the same time as tilde, parameter)108 583.2 Q 2.5(,v)-.4 G (ariable, and arithmetic e)-2.75 E(xpansion and command substitution.) --.15 E .003(After these e)108 564 R .003 +-.15 E .003(After these e)108 600 R .003 (xpansions are performed, quote characters present in the original w) -.15 F .002(ord are remo)-.1 F -.15(ve)-.15 G 2.502(du).15 G .002 -(nless the)-2.502 F(y)-.15 E(ha)108 576 Q .3 -.15(ve b)-.2 H +(nless the)-2.502 F(y)-.15 E(ha)108 612 Q .3 -.15(ve b)-.2 H (een quoted themselv).15 E(es \()-.15 E F1(quote r)A(emo)-.37 E(val)-.1 -E F0(\).)A .171(Only brace e)108 592.8 R .171(xpansion, w)-.15 F .171 +E F0(\).)A .171(Only brace e)108 628.8 R .171(xpansion, w)-.15 F .171 (ord splitting, and pathname e)-.1 F .171 (xpansion can increase the number of w)-.15 F .172(ords of the e)-.1 F -(x-)-.15 E .777(pansion; other e)108 604.8 R .776(xpansions e)-.15 F +(x-)-.15 E .777(pansion; other e)108 640.8 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 .695(pansions of ")108 616.8 R F3($@)A F0 3.195("a)C -.695(nd ")-3.195 F F3(${)A F1(name)A F3([@]})A F0 .696 -(", and, in most cases,)B F3($*)3.196 E F0(and)3.196 E F3(${)3.196 E F1 -(name)A F3([*]})A F0 .696(as e)3.196 F .696(xplained abo)-.15 F .996 --.15(ve \()-.15 H(see).15 E F2 -.666(PA)3.196 G(-).666 E(RAMETERS)108 -628.8 Q/F5 9/Times-Roman@0 SF(\).)A F3(Brace Expansion)87 645.6 Q F1(Br) -108.58 657.6 Q .606(ace e)-.15 F(xpansion)-.2 E F0 .606 +-.15 F(x-)-.15 E .695(pansions of ")108 652.8 R F2($@)A F0 3.195("a)C +.695(nd ")-3.195 F F2(${)A F1(name)A F2([@]})A F0 .696 +(", and, in most cases,)B F2($*)3.196 E F0(and)3.196 E F2(${)3.196 E F1 +(name)A F2([*]})A F0 .696(as e)3.196 F .696(xplained abo)-.15 F .996 +-.15(ve \()-.15 H(see).15 E F3 -.666(PA)3.196 G(-).666 E(RAMETERS)108 +664.8 Q/F5 9/Times-Roman@0 SF(\).)A F2(Brace Expansion)87 681.6 Q F1(Br) +108.58 693.6 Q .606(ace e)-.15 F(xpansion)-.2 E F0 .606 (is a mechanism by which arbitrary strings may be generated.)3.346 F -.606(This mechanism is similar)5.606 F(to)108 669.6 Q F1 .415 +.606(This mechanism is similar)5.606 F(to)108 705.6 Q F1 .415 (pathname e)2.915 F(xpansion)-.2 E F0 2.915(,b)C .415 (ut the \214lenames generated need not e)-3.115 F 2.915(xist. P)-.15 F .415(atterns to be brace e)-.15 F .415(xpanded tak)-.15 F 2.915(et)-.1 G -(he)-2.915 E .074(form of an optional)108 681.6 R F1(pr)3.823 E(eamble) +(he)-2.915 E .074(form of an optional)108 717.6 R F1(pr)3.823 E(eamble) -.37 E F0 2.573(,f).18 G(ollo)-2.573 E .073 (wed by either a series of comma-separated strings or a sequence e)-.25 -F(xpres-)-.15 E .489(sion between a pair of braces, follo)108 693.6 R +F(xpres-)-.15 E .489(sion between a pair of braces, follo)108 729.6 R .489(wed by an optional)-.25 F F1(postscript)4.239 E F0 5.49(.T).68 G -.49(he preamble is pre\214x)-5.49 F .49(ed to each string)-.15 F .659(c\ -ontained within the braces, and the postscript is then appended to each\ - resulting string, e)108 705.6 R .658(xpanding left to)-.15 F(right.)108 -717.6 Q(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 22) -.15 E(20)185.545 E 0 Cg EP +.49(he preamble is pre\214x)-5.49 F .49(ed to each string)-.15 F +(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E +(20)185.545 E 0 Cg EP %%Page: 21 21 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F -(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E .718(Brace e)108 -84 R .719(xpansions may be nested.)-.15 F .719(The results of each e) -5.719 F .719(xpanded string are not sorted; left to right order is)-.15 -F(preserv)108 96 Q 2.5(ed. F)-.15 F(or e)-.15 E(xample, a)-.15 E/F1 10 +(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E .659(contained wi\ +thin the braces, and the postscript is then appended to each resulting \ +string, e)108 84 R .658(xpanding left to)-.15 F(right.)108 96 Q .718 +(Brace e)108 112.8 R .719(xpansions may be nested.)-.15 F .719 +(The results of each e)5.719 F .719 +(xpanded string are not sorted; left to right order is)-.15 F(preserv) +108 124.8 Q 2.5(ed. F)-.15 F(or e)-.15 E(xample, a)-.15 E/F1 10 /Times-Bold@0 SF({)A F0(d,c,b)A F1(})A F0 2.5(ee)C -(xpands into `ade ace abe'.)-2.65 E 3.243(As)108 112.8 S .743(equence e) +(xpands into `ade ace abe'.)-2.65 E 3.243(As)108 141.6 S .743(equence e) -3.243 F .743(xpression tak)-.15 F .743(es the form)-.1 F F1({)3.243 E /F2 10/Times-Italic@0 SF(x)A F1(..)A F2(y)A F1([..)A F2(incr)A F1(]})A F0 3.243(,w)C(here)-3.243 E F2(x)3.243 E F0(and)3.242 E F2(y)3.242 E F0 .742(are either inte)3.242 F .742(gers or single characters,)-.15 F(and) -108 124.8 Q F2(incr)3.031 E F0 3.031(,a)C 3.032(no)-3.031 G .532 +108 153.6 Q F2(incr)3.031 E F0 3.031(,a)C 3.032(no)-3.031 G .532 (ptional increment, is an inte)-3.032 F(ger)-.15 E 5.532(.W)-.55 G .532 (hen inte)-5.532 F .532(gers are supplied, the e)-.15 F .532 (xpression e)-.15 F .532(xpands to each)-.15 F .078(number between)108 -136.8 R F2(x)2.578 E F0(and)2.578 E F2(y)2.578 E F0 2.578(,i)C(nclusi) +165.6 R F2(x)2.578 E F0(and)2.578 E F2(y)2.578 E F0 2.578(,i)C(nclusi) -2.578 E -.15(ve)-.25 G 5.078(.S).15 G .078(upplied inte)-5.078 F .077 (gers may be pre\214x)-.15 F .077(ed with)-.15 F F2(0)2.577 E F0 .077 (to force each term to ha)2.577 F .377 -.15(ve t)-.2 H(he).15 E .014 -(same width.)108 148.8 R .014(When either)5.014 F F2(x)2.514 E F0(or) +(same width.)108 177.6 R .014(When either)5.014 F F2(x)2.514 E F0(or) 2.514 E F2(y)2.514 E F0(be)2.514 E .015(gins with a zero, the shell att\ empts to force all generated terms to contain)-.15 F 1.143 -(the same number of digits, zero-padding where necessary)108 160.8 R +(the same number of digits, zero-padding where necessary)108 189.6 R 6.143(.W)-.65 G 1.143(hen characters are supplied, the e)-6.143 F -(xpression)-.15 E -.15(ex)108 172.8 S 1.064(pands to each character le) +(xpression)-.15 E -.15(ex)108 201.6 S 1.064(pands to each character le) .15 F 1.064(xicographically between)-.15 F F2(x)3.564 E F0(and)3.564 E F2(y)3.564 E F0 3.564(,i)C(nclusi)-3.564 E -.15(ve)-.25 G 3.564(,u).15 G 1.064(sing the def)-3.564 F 1.064(ault C locale.)-.1 F(Note)6.064 E .245 -(that both)108 184.8 R F2(x)2.745 E F0(and)2.745 E F2(y)2.745 E F0 .245 +(that both)108 213.6 R F2(x)2.745 E F0(and)2.745 E F2(y)2.745 E F0 .245 (must be of the same type.)2.745 F .244 (When the increment is supplied, it is used as the dif)5.245 F .244 -(ference be-)-.25 F(tween each term.)108 196.8 Q(The def)5 E +(ference be-)-.25 F(tween each term.)108 225.6 Q(The def)5 E (ault increment is 1 or \2551 as appropriate.)-.1 E .581(Brace e)108 -213.6 R .581(xpansion is performed before an)-.15 F 3.081(yo)-.15 G .581 +242.4 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 225.6 R .016(ed in the result.)-.15 F .016 +(are preserv)108 254.4 R .016(ed in the result.)-.15 F .016 (It is strictly te)5.016 F(xtual.)-.15 E F1(Bash)5.016 E F0 .015 (does not apply an)2.516 F 2.515(ys)-.15 G .015 -(yntactic interpretation to the con-)-2.515 F(te)108 237.6 Q +(yntactic interpretation to the con-)-2.515 F(te)108 266.4 Q (xt of the e)-.15 E(xpansion or the te)-.15 E(xt between the braces.) --.15 E 2.501(Ac)108 254.4 S .001(orrectly-formed brace e)-2.501 F .001(\ +-.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 .458(quoted comma or a v)108 266.4 R .458 + one un-)-.15 F .458(quoted comma or a v)108 295.2 R .458 (alid sequence e)-.25 F 2.958(xpression. An)-.15 F 2.958(yi)-.15 G .458 (ncorrectly formed brace e)-2.958 F .457(xpansion is left unchanged.) --.15 F(A)108 278.4 Q F1({)2.521 E F0(or)2.521 E F1(,)2.521 E F0 .021 +-.15 F(A)108 307.2 Q F1({)2.521 E F0(or)2.521 E F1(,)2.521 E F0 .021 (may be quoted with a backslash to pre)2.521 F -.15(ve)-.25 G .022 (nt its being considered part of a brace e).15 F 2.522(xpression. T)-.15 F 2.522(oa)-.8 G -.2(vo)-2.722 G(id).2 E .172 -(con\215icts with parameter e)108 290.4 R .172(xpansion, the string)-.15 +(con\215icts with parameter e)108 319.2 R .172(xpansion, the string)-.15 F F1(${)2.672 E F0 .172(is not considered eligible for brace e)2.672 F -.172(xpansion, and inhibits)-.15 F(brace e)108 302.4 Q +.172(xpansion, and inhibits)-.15 F(brace e)108 331.2 Q (xpansion until the closing)-.15 E F1(})2.5 E F0(.)A 1.476(This constru\ ct is typically used as shorthand when the common pre\214x of the strin\ -gs to be generated is)108 319.2 R(longer than in the abo)108 331.2 Q .3 --.15(ve ex)-.15 H(ample:).15 E(mkdir /usr/local/src/bash/{old,ne)144 348 -Q -.65(w,)-.25 G(dist,b).65 E(ugs})-.2 E(or)108 360 Q(cho)144 372 Q +gs to be generated is)108 348 R(longer than in the abo)108 360 Q .3 -.15 +(ve ex)-.15 H(ample:).15 E(mkdir /usr/local/src/bash/{old,ne)144 376.8 Q +-.65(w,)-.25 G(dist,b).65 E(ugs})-.2 E(or)108 388.8 Q(cho)144 400.8 Q (wn root /usr/{ucb/{e)-.25 E(x,edit},lib/{e)-.15 E(x?.?*,ho)-.15 E(w_e) --.25 E(x}})-.15 E .618(Brace e)108 388.8 R .618 +-.25 E(x}})-.15 E .618(Brace e)108 417.6 R .618 (xpansion introduces a slight incompatibility with historical v)-.15 F .618(ersions of)-.15 F F1(sh)3.118 E F0(.)A F1(sh)5.618 E F0 .618 (does not treat open-)3.118 F .247 -(ing or closing braces specially when the)108 400.8 R 2.747(ya)-.15 G +(ing or closing braces specially when the)108 429.6 R 2.747(ya)-.15 G .247(ppear as part of a w)-2.747 F .248(ord, and preserv)-.1 F .248 -(es them in the output.)-.15 F F1(Bash)5.248 E F0(remo)108 412.8 Q -.15 +(es them in the output.)-.15 F F1(Bash)5.248 E F0(remo)108 441.6 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 F1(sh) -3.53 E F0(as)3.53 E F2(\214le{1,2})108 424.8 Q F0 .514 +3.53 E F0(as)3.53 E F2(\214le{1,2})108 453.6 Q F0 .514 (appears identically in the output.)3.014 F .515(The same w)5.515 F .515 (ord is output as)-.1 F F2 .515(\214le1 \214le2)4.925 F F0 .515(after e) 3.035 F .515(xpansion by)-.15 F F1(bash)3.015 E F0(.)A .437 -(If strict compatibility with)108 436.8 R F1(sh)2.936 E F0 .436 +(If strict compatibility with)108 465.6 R F1(sh)2.936 E F0 .436 (is desired, start)2.936 F F1(bash)2.936 E F0 .436(with the)2.936 F F1 (+B)2.936 E F0 .436(option or disable brace e)2.936 F .436 -(xpansion with the)-.15 F F1(+B)108 448.8 Q F0(option to the)2.5 E F1 +(xpansion with the)-.15 F F1(+B)108 477.6 Q F0(option to the)2.5 E F1 (set)2.5 E F0(command \(see)2.5 E/F3 9/Times-Bold@0 SF(SHELL B)2.5 E (UIL)-.09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25 E F1 -.18(Ti) -87 465.6 S(lde Expansion).18 E F0 1.086(If a w)108 477.6 R 1.086(ord be) +87 494.4 S(lde Expansion).18 E F0 1.086(If a w)108 506.4 R 1.086(ord be) -.1 F 1.086(gins with an unquoted tilde character \(`)-.15 F F1(~)A F0 1.087('\), all of the characters preceding the \214rst unquoted)B .185(\ slash \(or all characters, if there is no unquoted slash\) are consider\ -ed a)108 489.6 R F2(tilde-pr)2.685 E(e\214x)-.37 E F0 5.185(.I)C 2.685 +ed a)108 518.4 R F2(tilde-pr)2.685 E(e\214x)-.37 E F0 5.185(.I)C 2.685 (fn)-5.185 G .185(one of the characters)-2.685 F .725(in the tilde-pre\ -\214x are quoted, the characters in the tilde-pre\214x follo)108 501.6 R -.726(wing the tilde are treated as a possible)-.25 F F2(lo)108 513.6 Q +\214x are quoted, the characters in the tilde-pre\214x follo)108 530.4 R +.726(wing the tilde are treated as a possible)-.25 F F2(lo)108 542.4 Q .523(gin name)-.1 F F0 5.523(.I)C 3.023(ft)-5.523 G .523 (his login name is the null string, the tilde is replaced with the v) --3.023 F .522(alue of the shell parameter)-.25 F F3(HOME)108 525.6 Q/F4 +-3.023 F .522(alue of the shell parameter)-.25 F F3(HOME)108 554.4 Q/F4 9/Times-Roman@0 SF(.)A F0(If)4.786 E F3(HOME)2.786 E F0 .287 (is unset, the home directory of the user e)2.536 F -.15(xe)-.15 G .287 (cuting the shell is substituted instead.).15 F(Other)5.287 E(-)-.2 E(w\ ise, the tilde-pre\214x is replaced with the home directory associated \ -with the speci\214ed login name.)108 537.6 Q .093 -(If the tilde-pre\214x is a `~+', the v)108 554.4 R .092 +with the speci\214ed login name.)108 566.4 Q .093 +(If the tilde-pre\214x is a `~+', the v)108 583.2 R .092 (alue of the shell v)-.25 F(ariable)-.25 E F3(PWD)2.592 E F0 .092 (replaces the tilde-pre\214x.)2.342 F .092(If the tilde-pre\214x is) -5.092 F 3.403(a`)108 566.4 S .903(~\255', the v)-3.403 F .903 +5.092 F 3.403(a`)108 595.2 S .903(~\255', the v)-3.403 F .903 (alue of the shell v)-.25 F(ariable)-.25 E F3(OLDPWD)3.404 E F4(,)A F0 .904(if it is set, is substituted.)3.154 F .904(If the characters follo) 5.904 F .904(wing the)-.25 F .88 -(tilde in the tilde-pre\214x consist of a number)108 578.4 R F2(N)3.38 E +(tilde in the tilde-pre\214x consist of a number)108 607.2 R F2(N)3.38 E F0 3.38(,o)C .88(ptionally pre\214x)-3.38 F .879 (ed by a `+' or a `\255', the tilde-pre\214x is re-)-.15 F .138(placed \ with the corresponding element from the directory stack, as it w)108 -590.4 R .138(ould be displayed by the)-.1 F F1(dirs)2.639 E F0 -.2(bu) -2.639 G(iltin).2 E(in)108 602.4 Q -.2(vo)-.4 G -.1(ke).2 G 2.839(dw).1 G +619.2 R .138(ould be displayed by the)-.1 F F1(dirs)2.639 E F0 -.2(bu) +2.639 G(iltin).2 E(in)108 631.2 Q -.2(vo)-.4 G -.1(ke).2 G 2.839(dw).1 G .338(ith the tilde-pre\214x as an ar)-2.839 F 2.838(gument. If)-.18 F .338(the characters follo)2.838 F .338 (wing the tilde in the tilde-pre\214x consist)-.25 F -(of a number without a leading `+' or `\255', `+' is assumed.)108 614.4 -Q(If the login name is in)108 631.2 Q -.25(va)-.4 G(lid, or the tilde e) +(of a number without a leading `+' or `\255', `+' is assumed.)108 643.2 +Q(If the login name is in)108 660 Q -.25(va)-.4 G(lid, or the tilde e) .25 E(xpansion f)-.15 E(ails, the w)-.1 E(ord is unchanged.)-.1 E .166 -(Each v)108 648 R .167(ariable assignment is check)-.25 F .167 +(Each v)108 676.8 R .167(ariable assignment is check)-.25 F .167 (ed for unquoted tilde-pre\214x)-.1 F .167(es immediately follo)-.15 F .167(wing a)-.25 F F1(:)2.667 E F0 .167(or the \214rst)2.667 F F1(=) -2.667 E F0 5.167(.I)C(n)-5.167 E .468(these cases, tilde e)108 660 R +2.667 E F0 5.167(.I)C(n)-5.167 E .468(these cases, tilde e)108 688.8 R .468(xpansion is also performed.)-.15 F(Consequently)5.467 E 2.967(,o) -.65 G .467(ne may use \214lenames with tildes in assign-)-2.967 F -(ments to)108 672 Q F3 -.666(PA)2.5 G(TH)-.189 E F4(,)A F3(MAILP)2.25 E --.855(AT)-.666 G(H).855 E F4(,)A F0(and)2.25 E F3(CDP)2.5 E -.855(AT) +(ments to)108 700.8 Q F3 -.666(PA)2.5 G(TH)-.189 E F4(,)A F3(MAILP)2.25 +E -.855(AT)-.666 G(H).855 E F4(,)A F0(and)2.25 E F3(CDP)2.5 E -.855(AT) -.666 G(H).855 E F4(,)A F0(and the shell assigns the e)2.25 E(xpanded v) --.15 E(alue.)-.25 E .023(Bash also performs tilde e)108 688.8 R .023 +-.15 E(alue.)-.25 E .023(Bash also performs tilde e)108 717.6 R .023 (xpansion on w)-.15 F .024(ords satisfying the conditions of v)-.1 F -.024(ariable assignments \(as described)-.25 F(abo)108 700.8 Q .77 -.15 +.024(ariable assignments \(as described)-.25 F(abo)108 729.6 Q .77 -.15 (ve u)-.15 H(nder).15 E F3 -.666(PA)2.97 G(RAMETERS).666 E F4(\))A F0 .47(when the)2.72 F 2.969(ya)-.15 G .469(ppear as ar)-2.969 F .469 (guments to simple commands.)-.18 F .469(Bash does not do this,)5.469 F --.15(ex)108 712.8 S(cept for the).15 E F2(declar)2.5 E(ation)-.15 E F0 -(commands listed abo)2.5 E -.15(ve)-.15 G 2.5(,w).15 G(hen in)-2.5 E F2 -(posix mode)2.5 E F0(.)A(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15 -(ve)-.15 G(mber 22).15 E(21)185.545 E 0 Cg EP +(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E +(21)185.545 E 0 Cg EP %%Page: 22 22 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F -(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0 -SF -.1(Pa)87 84 S(rameter Expansion).1 E F0 .199(The `)108 96 R F1($)A -F0 2.699('c)C .199(haracter introduces parameter e)-2.699 F .199 +(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E -.15(ex)108 84 S +(cept for the).15 E/F1 10/Times-Italic@0 SF(declar)2.5 E(ation)-.15 E F0 +(commands listed abo)2.5 E -.15(ve)-.15 G 2.5(,w).15 G(hen in)-2.5 E F1 +(posix mode)2.5 E F0(.)A/F2 10/Times-Bold@0 SF -.1(Pa)87 100.8 S +(rameter Expansion).1 E F0 .199(The `)108 112.8 R F2($)A F0 2.699('c)C +.199(haracter introduces parameter e)-2.699 F .199 (xpansion, command substitution, or arithmetic e)-.15 F 2.7 (xpansion. The)-.15 F(pa-)2.7 E .314(rameter name or symbol to be e)108 -108 R .314(xpanded may be enclosed in braces, which are optional b)-.15 -F .314(ut serv)-.2 F 2.813(et)-.15 G 2.813(op)-2.813 G(rotect)-2.813 E -.414(the v)108 120 R .414(ariable to be e)-.25 F .414 +124.8 R .314(xpanded may be enclosed in braces, which are optional b) +-.15 F .314(ut serv)-.2 F 2.813(et)-.15 G 2.813(op)-2.813 G(rotect) +-2.813 E .414(the v)108 136.8 R .414(ariable to be e)-.25 F .414 (xpanded from characters immediately follo)-.15 F .415 -(wing it which could be interpreted as part of)-.25 F(the name.)108 132 -Q 1.19(When braces are used, the matching ending brace is the \214rst `) -108 148.8 R F1(})A F0 3.689('n)C 1.189 +(wing it which could be interpreted as part of)-.25 F(the name.)108 +148.8 Q 1.19 +(When braces are used, the matching ending brace is the \214rst `)108 +165.6 R F2(})A F0 3.689('n)C 1.189 (ot escaped by a backslash or within a)-3.689 F .821 -(quoted string, and not within an embedded arithmetic e)108 160.8 R .822 +(quoted string, and not within an embedded arithmetic e)108 177.6 R .822 (xpansion, command substitution, or parameter e)-.15 F(x-)-.15 E -(pansion.)108 172.8 Q(${)108 189.6 Q/F2 10/Times-Italic@0 SF(par)A -(ameter)-.15 E F0(})A .106(The v)144 201.6 R .106(alue of)-.25 F F2(par) -2.606 E(ameter)-.15 E F0 .106(is substituted.)2.606 F .106 -(The braces are required when)5.106 F F2(par)3.856 E(ameter)-.15 E F0 -.106(is a positional pa-)3.336 F .11 -(rameter with more than one digit, or when)144 213.6 R F2(par)3.86 E +(pansion.)108 189.6 Q(${)108 206.4 Q F1(par)A(ameter)-.15 E F0(})A .106 +(The v)144 218.4 R .106(alue of)-.25 F F1(par)2.606 E(ameter)-.15 E F0 +.106(is substituted.)2.606 F .106(The braces are required when)5.106 F +F1(par)3.856 E(ameter)-.15 E F0 .106(is a positional pa-)3.336 F .11 +(rameter with more than one digit, or when)144 230.4 R F1(par)3.86 E (ameter)-.15 E F0 .111(is follo)3.341 F .111 (wed by a character which is not to be)-.25 F .208 -(interpreted as part of its name.)144 225.6 R(The)5.208 E F2(par)2.708 E +(interpreted as part of its name.)144 242.4 R(The)5.208 E F1(par)2.708 E (ameter)-.15 E F0 .208(is a shell parameter as described abo)2.708 F --.15(ve)-.15 G F1 -.74(PA)2.858 G(RAME-).74 E(TERS)144 237.6 Q F0 2.5 -(\)o)C 2.5(ra)-2.5 G 2.5(na)-2.5 G(rray reference \()-2.5 E F1(Arrays)A -F0(\).)A .346(If the \214rst character of)108 254.4 R F2(par)2.846 E +-.15(ve)-.15 G F2 -.74(PA)2.858 G(RAME-).74 E(TERS)144 254.4 Q F0 2.5 +(\)o)C 2.5(ra)-2.5 G 2.5(na)-2.5 G(rray reference \()-2.5 E F2(Arrays)A +F0(\).)A .346(If the \214rst character of)108 271.2 R F1(par)2.846 E (ameter)-.15 E F0 .346(is an e)2.846 F .346(xclamation point \()-.15 F -F1(!)A F0 .346(\), and)B F2(par)2.846 E(ameter)-.15 E F0 .346(is not a) -2.846 F F2(namer)2.846 E(ef)-.37 E F0 2.847(,i)C 2.847(ti)-2.847 G -(ntroduces)-2.847 E 2.907(al)108 266.4 S -2.15 -.25(ev e)-2.907 H 2.907 -(lo).25 G 2.906(fi)-2.907 G(ndirection.)-2.906 E F1(Bash)5.406 E F0 .406 +F2(!)A F0 .346(\), and)B F1(par)2.846 E(ameter)-.15 E F0 .346(is not a) +2.846 F F1(namer)2.846 E(ef)-.37 E F0 2.847(,i)C 2.847(ti)-2.847 G +(ntroduces)-2.847 E 2.907(al)108 283.2 S -2.15 -.25(ev e)-2.907 H 2.907 +(lo).25 G 2.906(fi)-2.907 G(ndirection.)-2.906 E F2(Bash)5.406 E F0 .406 (uses the v)2.906 F .406(alue formed by e)-.25 F .406 -(xpanding the rest of)-.15 F F2(par)2.906 E(ameter)-.15 E F0 .406 -(as the ne)2.906 F(w)-.25 E F2(par)2.906 E(ame-)-.15 E(ter)108 278.4 Q +(xpanding the rest of)-.15 F F1(par)2.906 E(ameter)-.15 E F0 .406 +(as the ne)2.906 F(w)-.25 E F1(par)2.906 E(ame-)-.15 E(ter)108 295.2 Q F0 2.578(;t)C .078(his is then e)-2.578 F .078(xpanded and that v)-.15 F .079(alue is used in the rest of the e)-.25 F .079 (xpansion, rather than the e)-.15 F .079(xpansion of the)-.15 F -(original)108 290.4 Q F2(par)2.543 E(ameter)-.15 E F0 5.043(.T)C .043 -(his is kno)-5.043 F .043(wn as)-.25 F F2(indir)2.543 E .043(ect e)-.37 +(original)108 307.2 Q F1(par)2.543 E(ameter)-.15 E F0 5.043(.T)C .043 +(his is kno)-5.043 F .043(wn as)-.25 F F1(indir)2.543 E .043(ect e)-.37 F(xpansion)-.2 E F0 5.043(.T)C .043(he v)-5.043 F .042 (alue is subject to tilde e)-.25 F .042(xpansion, parameter)-.15 F -.15 -(ex)108 302.4 S .248(pansion, command substitution, and arithmetic e).15 -F 2.748(xpansion. If)-.15 F F2(par)2.749 E(ameter)-.15 E F0 .249 +(ex)108 319.2 S .248(pansion, command substitution, and arithmetic e).15 +F 2.748(xpansion. If)-.15 F F1(par)2.749 E(ameter)-.15 E F0 .249 (is a nameref, this e)2.749 F .249(xpands to the)-.15 F 1.51 -(name of the parameter referenced by)108 314.4 R F2(par)4.01 E(ameter) +(name of the parameter referenced by)108 331.2 R F1(par)4.01 E(ameter) -.15 E F0 1.51(instead of performing the complete indirect e)4.01 F -(xpansion.)-.15 E .387(The e)108 326.4 R .387 -(xceptions to this are the e)-.15 F .387(xpansions of ${)-.15 F F1(!)A -F2(pr)A(e\214x)-.37 E F1(*)A F0 2.887(}a)C .387(nd ${)-2.887 F F1(!)A F2 -(name)A F0([)A F2(@)A F0 .387(]} described belo)B 4.188 -.65(w. T)-.25 H +(xpansion.)-.15 E .387(The e)108 343.2 R .387 +(xceptions to this are the e)-.15 F .387(xpansions of ${)-.15 F F2(!)A +F1(pr)A(e\214x)-.37 E F2(*)A F0 2.887(}a)C .387(nd ${)-2.887 F F2(!)A F1 +(name)A F0([)A F1(@)A F0 .387(]} described belo)B 4.188 -.65(w. T)-.25 H .388(he e).65 F(xclama-)-.15 E(tion point must immediately follo)108 -338.4 Q 2.5(wt)-.25 G(he left brace in order to introduce indirection.) --2.5 E .334(In each of the cases belo)108 355.2 R -.65(w,)-.25 G F2(wor) +355.2 Q 2.5(wt)-.25 G(he left brace in order to introduce indirection.) +-2.5 E .334(In each of the cases belo)108 372 R -.65(w,)-.25 G F1(wor) 3.484 E(d)-.37 E F0 .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 367.2 Q(xpansion.)-.15 E .066 -(When not performing substring e)108 384 R .067 +F(and arithmetic e)108 384 Q(xpansion.)-.15 E .066 +(When not performing substring e)108 400.8 R .067 (xpansion, using the forms documented belo)-.15 F 2.567(w\()-.25 G -(e.g.,)-2.567 E F1(:-)2.567 E F0(\),)A F1(bash)2.567 E F0 .067 -(tests for a pa-)2.567 F(rameter that is unset or null.)108 396 Q(Omitt\ -ing the colon results in a test only for a parameter that is unset.)5 E -(${)108 412.8 Q F2(par)A(ameter)-.15 E F1<3aad>A F2(wor)A(d)-.37 E F0(}) -A F1 .723(Use Default V)144 424.8 R(alues)-.92 E F0 5.723(.I)C(f)-5.723 -E F2(par)4.473 E(ameter)-.15 E F0 .723(is unset or null, the e)3.953 F -.722(xpansion of)-.15 F F2(wor)3.562 E(d)-.37 E F0 .722(is substituted.) -3.992 F(Other)5.722 E(-)-.2 E(wise, the v)144 436.8 Q(alue of)-.25 E F2 -(par)3.75 E(ameter)-.15 E F0(is substituted.)3.23 E(${)108 448.8 Q F2 -(par)A(ameter)-.15 E F1(:=)A F2(wor)A(d)-.37 E F0(})A F1 .811 -(Assign Default V)144 460.8 R(alues)-.92 E F0 5.812(.I)C(f)-5.812 E F2 -(par)4.562 E(ameter)-.15 E F0 .812(is unset or null, the e)4.042 F .812 -(xpansion of)-.15 F F2(wor)3.652 E(d)-.37 E F0 .812(is assigned to)4.082 -F F2(pa-)4.562 E -.15(ra)144 472.8 S(meter).15 E F0 5.742(.T).73 G .742 -(he v)-5.742 F .742(alue of)-.25 F F2(par)4.492 E(ameter)-.15 E F0 .742 -(is then substituted.)3.972 F .741 +(e.g.,)-2.567 E F2(:-)2.567 E F0(\),)A F2(bash)2.567 E F0 .067 +(tests for a pa-)2.567 F(rameter that is unset or null.)108 412.8 Q(Omi\ +tting the colon results in a test only for a parameter that is unset.)5 +E(${)108 429.6 Q F1(par)A(ameter)-.15 E F2<3aad>A F1(wor)A(d)-.37 E F0 +(})A F2 .723(Use Default V)144 441.6 R(alues)-.92 E F0 5.723(.I)C(f) +-5.723 E F1(par)4.473 E(ameter)-.15 E F0 .723(is unset or null, the e) +3.953 F .722(xpansion of)-.15 F F1(wor)3.562 E(d)-.37 E F0 .722 +(is substituted.)3.992 F(Other)5.722 E(-)-.2 E(wise, the v)144 453.6 Q +(alue of)-.25 E F1(par)3.75 E(ameter)-.15 E F0(is substituted.)3.23 E +(${)108 465.6 Q F1(par)A(ameter)-.15 E F2(:=)A F1(wor)A(d)-.37 E F0(})A +F2 .811(Assign Default V)144 477.6 R(alues)-.92 E F0 5.812(.I)C(f)-5.812 +E F1(par)4.562 E(ameter)-.15 E F0 .812(is unset or null, the e)4.042 F +.812(xpansion of)-.15 F F1(wor)3.652 E(d)-.37 E F0 .812(is assigned to) +4.082 F F1(pa-)4.562 E -.15(ra)144 489.6 S(meter).15 E F0 5.742(.T).73 G +.742(he v)-5.742 F .742(alue of)-.25 F F1(par)4.492 E(ameter)-.15 E F0 +.742(is then substituted.)3.972 F .741 (Positional parameters and special parame-)5.742 F -(ters may not be assigned to in this w)144 484.8 Q(ay)-.1 E(.)-.65 E(${) -108 496.8 Q F2(par)A(ameter)-.15 E F1(:?)A F2(wor)A(d)-.37 E F0(})A F1 -.535(Display Err)144 508.8 R .535(or if Null or Unset)-.18 F F0 5.535 -(.I)C(f)-5.535 E F2(par)4.285 E(ameter)-.15 E F0 .535 -(is null or unset, the e)3.765 F .535(xpansion of)-.15 F F2(wor)3.035 E -(d)-.37 E F0 .535(\(or a mes-)3.035 F .013(sage to that ef)144 520.8 R -.013(fect if)-.25 F F2(wor)2.853 E(d)-.37 E F0 .013(is not present\) is\ +(ters may not be assigned to in this w)144 501.6 Q(ay)-.1 E(.)-.65 E(${) +108 513.6 Q F1(par)A(ameter)-.15 E F2(:?)A F1(wor)A(d)-.37 E F0(})A F2 +.535(Display Err)144 525.6 R .535(or if Null or Unset)-.18 F F0 5.535 +(.I)C(f)-5.535 E F1(par)4.285 E(ameter)-.15 E F0 .535 +(is null or unset, the e)3.765 F .535(xpansion of)-.15 F F1(wor)3.035 E +(d)-.37 E F0 .535(\(or a mes-)3.035 F .013(sage to that ef)144 537.6 R +.013(fect if)-.25 F F1(wor)2.853 E(d)-.37 E F0 .013(is not present\) is\ written to the standard error and the shell, if it is not in-)3.283 F -(teracti)144 532.8 Q -.15(ve)-.25 G 2.5(,e).15 G 2.5(xits. Otherwise,) --2.65 F(the v)2.5 E(alue of)-.25 E F2(par)2.5 E(ameter)-.15 E F0 -(is substituted.)2.5 E(${)108 544.8 Q F2(par)A(ameter)-.15 E F1(:+)A F2 -(wor)A(d)-.37 E F0(})A F1 .745(Use Alter)144 556.8 R .745(nate V)-.15 F -(alue)-.92 E F0 5.745(.I)C(f)-5.745 E F2(par)4.495 E(ameter)-.15 E F0 +(teracti)144 549.6 Q -.15(ve)-.25 G 2.5(,e).15 G 2.5(xits. Otherwise,) +-2.65 F(the v)2.5 E(alue of)-.25 E F1(par)2.5 E(ameter)-.15 E F0 +(is substituted.)2.5 E(${)108 561.6 Q F1(par)A(ameter)-.15 E F2(:+)A F1 +(wor)A(d)-.37 E F0(})A F2 .745(Use Alter)144 573.6 R .745(nate V)-.15 F +(alue)-.92 E F0 5.745(.I)C(f)-5.745 E F1(par)4.495 E(ameter)-.15 E F0 .745(is null or unset, nothing is substituted, otherwise the e)3.975 F -(xpan-)-.15 E(sion of)144 568.8 Q F2(wor)2.84 E(d)-.37 E F0 -(is substituted.)3.27 E(${)108 580.8 Q F2(par)A(ameter)-.15 E F1(:)A F2 -(of)A(fset)-.18 E F0(})A(${)108 592.8 Q F2(par)A(ameter)-.15 E F1(:)A F2 -(of)A(fset)-.18 E F1(:)A F2(length)A F0(})A F1 .002(Substring Expansion) -144 604.8 R F0 5.002(.E)C .002(xpands to up to)-5.002 F F2(length)2.502 -E F0 .002(characters of the v)2.502 F .002(alue of)-.25 F F2(par)2.502 E +(xpan-)-.15 E(sion of)144 585.6 Q F1(wor)2.84 E(d)-.37 E F0 +(is substituted.)3.27 E(${)108 597.6 Q F1(par)A(ameter)-.15 E F2(:)A F1 +(of)A(fset)-.18 E F0(})A(${)108 609.6 Q F1(par)A(ameter)-.15 E F2(:)A F1 +(of)A(fset)-.18 E F2(:)A F1(length)A F0(})A F2 .002(Substring Expansion) +144 621.6 R F0 5.002(.E)C .002(xpands to up to)-5.002 F F1(length)2.502 +E F0 .002(characters of the v)2.502 F .002(alue of)-.25 F F1(par)2.502 E (ameter)-.15 E F0 .002(starting at the)2.502 F .235 -(character speci\214ed by)144 616.8 R F2(of)2.735 E(fset)-.18 E F0 5.235 -(.I)C(f)-5.235 E F2(par)2.735 E(ameter)-.15 E F0(is)2.735 E F1(@)2.735 E +(character speci\214ed by)144 633.6 R F1(of)2.735 E(fset)-.18 E F0 5.235 +(.I)C(f)-5.235 E F1(par)2.735 E(ameter)-.15 E F0(is)2.735 E F2(@)2.735 E F0 2.735(,a)C 2.735(ni)-2.735 G(nde)-2.735 E -.15(xe)-.15 G 2.735(da).15 -G .235(rray subscripted by)-2.735 F F1(@)2.735 E F0(or)2.735 E F1(*) +G .235(rray subscripted by)-2.735 F F2(@)2.735 E F0(or)2.735 E F2(*) 2.735 E F0 2.735(,o)C 2.735(ra)-2.735 G 2.735(na)-2.735 G(s-)-2.735 E -(sociati)144 628.8 Q 1.578 -.15(ve a)-.25 H 1.278 +(sociati)144 645.6 Q 1.578 -.15(ve a)-.25 H 1.278 (rray name, the results dif).15 F 1.277(fer as described belo)-.25 F -5.077 -.65(w. I)-.25 H(f).65 E F2(length)3.777 E F0 1.277(is omitted, e) -3.777 F 1.277(xpands to the)-.15 F .042(substring of the v)144 640.8 R -.042(alue of)-.25 F F2(par)2.542 E(ameter)-.15 E F0 .043 -(starting at the character speci\214ed by)2.542 F F2(of)2.543 E(fset) +5.077 -.65(w. I)-.25 H(f).65 E F1(length)3.777 E F0 1.277(is omitted, e) +3.777 F 1.277(xpands to the)-.15 F .042(substring of the v)144 657.6 R +.042(alue of)-.25 F F1(par)2.542 E(ameter)-.15 E F0 .043 +(starting at the character speci\214ed by)2.542 F F1(of)2.543 E(fset) -.18 E F0 .043(and e)2.543 F .043(xtending to the)-.15 F .847 -(end of the v)144 652.8 R(alue.)-.25 E F2(length)5.846 E F0(and)3.346 E -F2(of)3.346 E(fset)-.18 E F0 .846(are arithmetic e)3.346 F .846 +(end of the v)144 669.6 R(alue.)-.25 E F1(length)5.846 E F0(and)3.346 E +F1(of)3.346 E(fset)-.18 E F0 .846(are arithmetic e)3.346 F .846 (xpressions \(see)-.15 F/F3 9/Times-Bold@0 SF .846(ARITHMETIC EV)3.346 F -(ALU)-1.215 E -.855(AT)-.54 G(ION).855 E F0(belo)144 664.8 Q(w\).)-.25 E -(If)144 688.8 Q F2(of)3.028 E(fset)-.18 E F0 -.25(eva)3.029 G .529 +(ALU)-1.215 E -.855(AT)-.54 G(ION).855 E F0(belo)144 681.6 Q(w\).)-.25 E +(If)144 705.6 Q F1(of)3.028 E(fset)-.18 E F0 -.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 700.8 R .046(alue of)-.25 F F2(par)2.546 E(ameter) --.15 E F0 5.046(.I)C(f)-5.046 E F2(length)2.546 E F0 -.25(eva)2.546 G +.046(end of the v)144 717.6 R .046(alue of)-.25 F F1(par)2.546 E(ameter) +-.15 E F0 5.046(.I)C(f)-5.046 E F1(length)2.546 E F0 -.25(eva)2.546 G .046(luates to a number less than zero, it is interpreted as an).25 F -(of)144 712.8 Q .202(fset in characters from the end of the v)-.25 F -.202(alue of)-.25 F F2(par)2.702 E(ameter)-.15 E F0 .203 -(rather than a number of characters, and)2.702 F .558(the e)144 724.8 R -.558(xpansion is the characters between)-.15 F F2(of)3.058 E(fset)-.18 E -F0 .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(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 22).15 E -(22)185.545 E 0 Cg EP +(of)144 729.6 Q .202(fset in characters from the end of the v)-.25 F +.202(alue of)-.25 F F1(par)2.702 E(ameter)-.15 E F0 .203 +(rather than a number of characters, and)2.702 F(GNU Bash 5.0)72 768 Q +(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E(22)185.545 E 0 Cg EP %%Page: 23 23 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F -(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E -(separated from the colon by at least one space to a)144 84 Q -.2(vo)-.2 -G(id being confused with the).2 E/F1 10/Times-Bold@0 SF(:-)2.5 E F0 -.15 -(ex)2.5 G(pansion.).15 E(If)144 108 Q/F2 10/Times-Italic@0 SF(par)2.958 -E(ameter)-.15 E F0(is)2.958 E F1(@)2.958 E F0 2.958(,t)C .458 -(he result is)-2.958 F F2(length)2.959 E F0 .459 -(positional parameters be)2.959 F .459(ginning at)-.15 F F2(of)2.959 E -(fset)-.18 E F0 5.459(.A)C(ne)-2.5 E -.05(ga)-.15 G(ti).05 E -.15(ve) --.25 G F2(of)3.109 E(fset)-.18 E F0 .6(is tak)144 120 R .6(en relati)-.1 -F .9 -.15(ve t)-.25 H 3.1(oo).15 G .6 +(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E .558(the e)144 84 +R .558(xpansion is the characters between)-.15 F/F1 10/Times-Italic@0 SF +(of)3.058 E(fset)-.18 E F0 .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 96 Q -.2(vo)-.2 +G(id being confused with the).2 E/F2 10/Times-Bold@0 SF(:-)2.5 E F0 -.15 +(ex)2.5 G(pansion.).15 E(If)144 120 Q F1(par)2.958 E(ameter)-.15 E F0 +(is)2.958 E F2(@)2.958 E F0 2.958(,t)C .458(he result is)-2.958 F F1 +(length)2.959 E F0 .459(positional parameters be)2.959 F .459 +(ginning at)-.15 F F1(of)2.959 E(fset)-.18 E F0 5.459(.A)C(ne)-2.5 E +-.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G F1(of)3.109 E(fset)-.18 E F0 .6 +(is tak)144 132 R .6(en relati)-.1 F .9 -.15(ve t)-.25 H 3.1(oo).15 G .6 (ne greater than the greatest positional parameter)-3.1 F 3.1(,s)-.4 G 3.1(oa)-3.1 G 3.1(no)-3.1 G -.25(ff)-3.1 G .6(set of \2551 e).25 F -.25 -(va)-.25 G(luates).25 E .639(to the last positional parameter)144 132 R +(va)-.25 G(luates).25 E .639(to the last positional parameter)144 144 R 5.639(.I)-.55 G 3.139(ti)-5.639 G 3.139(sa)-3.139 G 3.139(ne)-3.139 G -.639(xpansion error if)-3.289 F F2(length)3.14 E F0 -.25(eva)3.14 G .64 -(luates to a number less than).25 F(zero.)144 144 Q(If)144 168 Q F2(par) +.639(xpansion error if)-3.289 F F1(length)3.14 E F0 -.25(eva)3.14 G .64 +(luates to a number less than).25 F(zero.)144 156 Q(If)144 180 Q F1(par) 3.014 E(ameter)-.15 E F0 .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 F2(length)3.014 E F0 .513(members of)3.013 F 1.081(the array be)144 -180 R 1.081(ginning with ${)-.15 F F2(par)A(ameter)-.15 E F0([)A F2(of)A +F F1(length)3.014 E F0 .513(members of)3.013 F 1.081(the array be)144 +192 R 1.081(ginning with ${)-.15 F F1(par)A(ameter)-.15 E F0([)A F1(of)A (fset)-.18 E F0 3.581(]}. A)B(ne)3.581 E -.05(ga)-.15 G(ti).05 E -.15 -(ve)-.25 G F2(of)3.732 E(fset)-.18 E F0 1.082(is tak)3.582 F 1.082 +(ve)-.25 G F1(of)3.732 E(fset)-.18 E F0 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 192 R 3.58(xo)-.15 G 3.58(ft) +-3.582 F 1.08(than the maximum inde)144 204 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 F2(length)3.579 E F0 -.25(eva)3.579 G 1.079(luates to a).25 F -(number less than zero.)144 204 Q(Substring e)144 228 Q +-3.729 F F1(length)3.579 E F0 -.25(eva)3.579 G 1.079(luates to a).25 F +(number less than zero.)144 216 Q(Substring e)144 240 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 252 R +(rray produces unde\214ned results.).15 E .82(Substring inde)144 264 R .821(xing is zero-based unless the positional parameters are used, in w\ -hich case the in-)-.15 F(de)144 264 Q .159(xing starts at 1 by def)-.15 -F 2.659(ault. If)-.1 F F2(of)2.659 E(fset)-.18 E F0 .159 -(is 0, and the positional parameters are used,)2.659 F F1($0)2.659 E F0 -.159(is pre\214x)2.659 F .158(ed to)-.15 F(the list.)144 276 Q(${)108 -292.8 Q F1(!)A F2(pr)A(e\214x)-.37 E F1(*)A F0(})A(${)108 304.8 Q F1(!)A -F2(pr)A(e\214x)-.37 E F1(@)A F0(})A F1 .084(Names matching pr)144 316.8 +hich case the in-)-.15 F(de)144 276 Q .159(xing starts at 1 by def)-.15 +F 2.659(ault. If)-.1 F F1(of)2.659 E(fset)-.18 E F0 .159 +(is 0, and the positional parameters are used,)2.659 F F2($0)2.659 E F0 +.159(is pre\214x)2.659 F .158(ed to)-.15 F(the list.)144 288 Q(${)108 +304.8 Q F2(!)A F1(pr)A(e\214x)-.37 E F2(*)A F0(})A(${)108 316.8 Q F2(!)A +F1(pr)A(e\214x)-.37 E F2(@)A F0(})A F2 .084(Names matching pr)144 328.8 R(e\214x)-.18 E F0 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 F2(pr)2.585 E +.084(ariables whose names be)-.25 F .085(gin with)-.15 F F1(pr)2.585 E (e\214x)-.37 E F0 2.585(,s)C(epa-)-2.585 E .258 -(rated by the \214rst character of the)144 328.8 R/F3 9/Times-Bold@0 SF -(IFS)2.758 E F0 .257(special v)2.507 F 2.757(ariable. When)-.25 F F2(@) +(rated by the \214rst character of the)144 340.8 R/F3 9/Times-Bold@0 SF +(IFS)2.758 E F0 .257(special v)2.507 F 2.757(ariable. When)-.25 F F1(@) 2.757 E F0 .257(is used and the e)2.757 F .257(xpansion appears)-.15 F -(within double quotes, each v)144 340.8 Q(ariable name e)-.25 E -(xpands to a separate w)-.15 E(ord.)-.1 E(${)108 357.6 Q F1(!)A F2(name) -A F0([)A F2(@)A F0(]})A(${)108 369.6 Q F1(!)A F2(name)A F0([)A F2(*)A F0 -(]})A F1 1.136(List of array k)144 381.6 R(eys)-.1 E F0 6.136(.I)C(f) --6.136 E F2(name)3.636 E F0 1.136(is an array v)3.636 F 1.136 +(within double quotes, each v)144 352.8 Q(ariable name e)-.25 E +(xpands to a separate w)-.15 E(ord.)-.1 E(${)108 369.6 Q F2(!)A F1(name) +A F0([)A F1(@)A F0(]})A(${)108 381.6 Q F2(!)A F1(name)A F0([)A F1(*)A F0 +(]})A F2 1.136(List of array k)144 393.6 R(eys)-.1 E F0 6.136(.I)C(f) +-6.136 E F1(name)3.636 E F0 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 393.6 R F2(name) -2.897 E F0 5.397(.I)C(f)-5.397 E F2(name)2.897 E F0 .397 -(is not an array)2.897 F 2.897(,e)-.65 G .397(xpands to 0 if)-3.047 F F2 -(name)2.897 E F0 .397(is set and null otherwise.)2.897 F(When)5.397 E F2 -(@)2.897 E F0(is used and the e)144 405.6 Q +-.15(ey)-.1 G 1.137(s\) as-).15 F .397(signed in)144 405.6 R F1(name) +2.897 E F0 5.397(.I)C(f)-5.397 E F1(name)2.897 E F0 .397 +(is not an array)2.897 F 2.897(,e)-.65 G .397(xpands to 0 if)-3.047 F F1 +(name)2.897 E F0 .397(is set and null otherwise.)2.897 F(When)5.397 E F1 +(@)2.897 E F0(is used and the e)144 417.6 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 422.4 Q F1(#)A F2(par)A -(ameter)-.15 E F0(})A F1 -.1(Pa)144 434.4 S .47(rameter length).1 F F0 +H(pands to a separate w).15 E(ord.)-.1 E(${)108 434.4 Q F2(#)A F1(par)A +(ameter)-.15 E F0(})A F2 -.1(Pa)144 446.4 S .47(rameter length).1 F F0 5.47(.T)C .471(he length in characters of the v)-5.47 F .471(alue of) --.25 F F2(par)2.971 E(ameter)-.15 E F0 .471(is substituted.)2.971 F(If) -5.471 E F2(par)4.221 E(ame-)-.15 E(ter)144 446.4 Q F0(is)3.627 E F1(*) -2.897 E F0(or)2.897 E F1(@)2.897 E F0 2.897(,t)C .397(he v)-2.897 F .397 +-.25 F F1(par)2.971 E(ameter)-.15 E F0 .471(is substituted.)2.971 F(If) +5.471 E F1(par)4.221 E(ame-)-.15 E(ter)144 458.4 Q F0(is)3.627 E F2(*) +2.897 E F0(or)2.897 E F2(@)2.897 E F0 2.897(,t)C .397(he v)-2.897 F .397 (alue substituted is the number of positional parameters.)-.25 F(If) -5.396 E F2(par)4.146 E(ameter)-.15 E F0 .396(is an ar)3.626 F(-)-.2 E -.78(ray name subscripted by)144 458.4 R F1(*)3.28 E F0(or)3.28 E F1(@) +5.396 E F1(par)4.146 E(ameter)-.15 E F0 .396(is an ar)3.626 F(-)-.2 E +.78(ray name subscripted by)144 470.4 R F2(*)3.28 E F0(or)3.28 E F2(@) 3.28 E F0 3.28(,t)C .78(he v)-3.28 F .781 (alue substituted is the number of elements in the array)-.25 F 5.781 -(.I)-.65 G(f)-5.781 E F2(par)145.25 470.4 Q(ameter)-.15 E F0 .456 +(.I)-.65 G(f)-5.781 E F1(par)145.25 482.4 Q(ameter)-.15 E F0 .456 (is an inde)3.686 F -.15(xe)-.15 G 2.956(da).15 G .456 (rray name subscripted by a ne)-2.956 F -.05(ga)-.15 G(ti).05 E .756 -.15(ve n)-.25 H(umber).15 E 2.955(,t)-.4 G .455 -(hat number is interpreted)-2.955 F .972(as relati)144 482.4 R 1.272 +(hat number is interpreted)-2.955 F .972(as relati)144 494.4 R 1.272 -.15(ve t)-.25 H 3.472(oo).15 G .973(ne greater than the maximum inde) --3.472 F 3.473(xo)-.15 G(f)-3.473 E F2(par)3.473 E(ameter)-.15 E F0 +-3.472 F 3.473(xo)-.15 G(f)-3.473 E F1(par)3.473 E(ameter)-.15 E F0 3.473(,s)C 3.473(on)-3.473 G -2.25 -.15(eg a)-3.473 H(ti).15 E 1.273 -.15(ve i)-.25 H .973(ndices count back).15 F(from the end of the array) -144 494.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(${)108 511.2 Q F2 -(par)A(ameter)-.15 E F1(#)A F2(wor)A(d)-.37 E F0(})A(${)108 523.2 Q F2 -(par)A(ameter)-.15 E F1(##)A F2(wor)A(d)-.37 E F0(})A F1(Remo)144 535.2 +144 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(${)108 523.2 Q F1 +(par)A(ameter)-.15 E F2(#)A F1(wor)A(d)-.37 E F0(})A(${)108 535.2 Q F1 +(par)A(ameter)-.15 E F2(##)A F1(wor)A(d)-.37 E F0(})A F2(Remo)144 547.2 Q 1.396 -.1(ve m)-.1 H 1.196(atching pr).1 F 1.196(e\214x patter)-.18 F -(n)-.15 E F0 6.196(.T)C(he)-6.196 E F2(wor)4.036 E(d)-.37 E F0 1.196 +(n)-.15 E F0 6.196(.T)C(he)-6.196 E F1(wor)4.036 E(d)-.37 E F0 1.196 (is e)4.466 F 1.196(xpanded to produce a pattern just as in path-)-.15 F -.543(name e)144 547.2 R .544(xpansion, and matched ag)-.15 F .544 -(ainst the e)-.05 F .544(xpanded v)-.15 F .544(alue of)-.25 F F2(par) +.543(name e)144 559.2 R .544(xpansion, and matched ag)-.15 F .544 +(ainst the e)-.05 F .544(xpanded v)-.15 F .544(alue of)-.25 F F1(par) 4.294 E(ameter)-.15 E F0 .544(using the rules described)3.774 F(under) -144 559.2 Q F1 -.1(Pa)3.133 G(tter).1 E 3.133(nM)-.15 G(atching)-3.133 E +144 571.2 Q F2 -.1(Pa)3.133 G(tter).1 E 3.133(nM)-.15 G(atching)-3.133 E F0(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 F2(par)4.382 E(ameter)-.15 E F0(,).73 E 1.151 -(then the result of the e)144 571.2 R 1.151(xpansion is the e)-.15 F -1.151(xpanded v)-.15 F 1.151(alue of)-.25 F F2(par)4.902 E(ameter)-.15 E +(alue of)-.25 F F1(par)4.382 E(ameter)-.15 E F0(,).73 E 1.151 +(then the result of the e)144 583.2 R 1.151(xpansion is the e)-.15 F +1.151(xpanded v)-.15 F 1.151(alue of)-.25 F F1(par)4.902 E(ameter)-.15 E F0 1.152(with the shortest matching)4.382 F .184(pattern \(the `)144 -583.2 R(`)-.74 E F1(#)A F0 1.664 -.74('' c)D .184 -(ase\) or the longest matching pattern \(the `).74 F(`)-.74 E F1(##)A F0 -1.664 -.74('' c)D .184(ase\) deleted.).74 F(If)5.183 E F2(par)3.933 E -(ameter)-.15 E F0(is)3.413 E F1(@)2.683 E F0(or)144 595.2 Q F1(*)3.018 E +595.2 R(`)-.74 E F2(#)A F0 1.664 -.74('' c)D .184 +(ase\) or the longest matching pattern \(the `).74 F(`)-.74 E F2(##)A F0 +1.664 -.74('' c)D .184(ase\) deleted.).74 F(If)5.183 E F1(par)3.933 E +(ameter)-.15 E F0(is)3.413 E F2(@)2.683 E F0(or)144 607.2 Q F2(*)3.018 E F0 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 607.2 R(If) -5.304 E F2(par)4.054 E(ameter)-.15 E F0 .303(is an array v)3.533 F .303 -(ariable subscripted with)-.25 F F1(@)2.803 E F0(or)2.803 E F1(*)2.803 E -F0 2.803(,t)C .303(he pattern re-)-2.803 F(mo)144 619.2 Q -.25(va)-.15 G +-3.018 F(xpan-)-.15 E .304(sion is the resultant list.)144 619.2 R(If) +5.304 E F1(par)4.054 E(ameter)-.15 E F0 .303(is an array v)3.533 F .303 +(ariable subscripted with)-.25 F F2(@)2.803 E F0(or)2.803 E F2(*)2.803 E +F0 2.803(,t)C .303(he pattern re-)-2.803 F(mo)144 631.2 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.987 F .487(xpansion is the resultant)-.15 F(list.)144 631.2 Q(${)108 -648 Q F2(par)A(ameter)-.15 E F1(%)A F2(wor)A(d)-.37 E F0(})A(${)108 660 -Q F2(par)A(ameter)-.15 E F1(%%)A F2(wor)A(d)-.37 E F0(})A F1(Remo)144 -672 Q .347 -.1(ve m)-.1 H .147(atching suf\214x patter).1 F(n)-.15 E F0 -5.147(.T)C(he)-5.147 E F2(wor)2.647 E(d)-.37 E F0 .147(is e)2.647 F .146 -(xpanded to produce a pattern just as in pathname)-.15 F -.15(ex)144 684 +-2.987 F .487(xpansion is the resultant)-.15 F(list.)144 643.2 Q(${)108 +660 Q F1(par)A(ameter)-.15 E F2(%)A F1(wor)A(d)-.37 E F0(})A(${)108 672 +Q F1(par)A(ameter)-.15 E F2(%%)A F1(wor)A(d)-.37 E F0(})A F2(Remo)144 +684 Q .347 -.1(ve m)-.1 H .147(atching suf\214x patter).1 F(n)-.15 E F0 +5.147(.T)C(he)-5.147 E F1(wor)2.647 E(d)-.37 E F0 .147(is e)2.647 F .146 +(xpanded to produce a pattern just as in pathname)-.15 F -.15(ex)144 696 S .458(pansion, and matched ag).15 F .458(ainst the e)-.05 F .458 -(xpanded v)-.15 F .458(alue of)-.25 F F2(par)4.209 E(ameter)-.15 E F0 -.459(using the rules described under)3.689 F F1 -.1(Pa)144 696 S(tter).1 +(xpanded v)-.15 F .458(alue of)-.25 F F1(par)4.209 E(ameter)-.15 E F0 +.459(using the rules described under)3.689 F F2 -.1(Pa)144 708 S(tter).1 E 3.314(nM)-.15 G(atching)-3.314 E F0(belo)3.314 E 4.614 -.65(w. I)-.25 H 3.314(ft).65 G .814(he pattern matches a trailing portion of the e) --3.314 F .814(xpanded v)-.15 F .814(alue of)-.25 F F2(pa-)4.564 E -.15 -(ra)144 708 S(meter).15 E F0 3.816(,t).73 G 1.316 +-3.314 F .814(xpanded v)-.15 F .814(alue of)-.25 F F1(pa-)4.564 E -.15 +(ra)144 720 S(meter).15 E F0 3.816(,t).73 G 1.316 (hen the result of the e)-3.816 F 1.317(xpansion is the e)-.15 F 1.317 -(xpanded v)-.15 F 1.317(alue of)-.25 F F2(par)5.067 E(ameter)-.15 E F0 -1.317(with the shortest)4.547 F 1.085(matching pattern \(the `)144 720 R -(`)-.74 E F1(%)A F0 2.565 -.74('' c)D 1.084 -(ase\) or the longest matching pattern \(the `).74 F(`)-.74 E F1(%%)A F0 -2.564 -.74('' c)D 1.084(ase\) deleted.).74 F(If)6.084 E(GNU Bash 5.0)72 -768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 22).15 E(23)185.545 E 0 Cg -EP +(xpanded v)-.15 F 1.317(alue of)-.25 F F1(par)5.067 E(ameter)-.15 E F0 +1.317(with the shortest)4.547 F(GNU Bash 5.0)72 768 Q(2019 No)136.385 E +-.15(ve)-.15 G(mber 26).15 E(23)185.545 E 0 Cg EP %%Page: 24 24 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F -(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10 -/Times-Italic@0 SF(par)145.25 84 Q(ameter)-.15 E F0(is)3.389 E/F2 10 -/Times-Bold@0 SF(@)2.659 E F0(or)2.659 E F2(*)2.659 E F0 2.659(,t)C .159 +(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E 1.085 +(matching pattern \(the `)144 84 R(`)-.74 E/F1 10/Times-Bold@0 SF(%)A F0 +2.565 -.74('' c)D 1.084(ase\) or the longest matching pattern \(the `) +.74 F(`)-.74 E F1(%%)A F0 2.564 -.74('' c)D 1.084(ase\) deleted.).74 F +(If)6.084 E/F2 10/Times-Italic@0 SF(par)145.25 96 Q(ameter)-.15 E F0(is) +3.389 E F1(@)2.659 E F0(or)2.659 E F1(*)2.659 E F0 2.659(,t)C .159 (he pattern remo)-2.659 F -.25(va)-.15 G 2.659(lo).25 G .16 (peration is applied to each positional parameter in turn,)-2.659 F .51 -(and the e)144 96 R .51(xpansion is the resultant list.)-.15 F(If)5.51 E -F1(par)4.259 E(ameter)-.15 E F0 .509(is an array v)3.739 F .509 -(ariable subscripted with)-.25 F F2(@)3.009 E F0(or)3.009 E F2(*)3.009 E -F0(,)A .422(the pattern remo)144 108 R -.25(va)-.15 G 2.922(lo).25 G +(and the e)144 108 R .51(xpansion is the resultant list.)-.15 F(If)5.51 +E F2(par)4.259 E(ameter)-.15 E F0 .509(is an array v)3.739 F .509 +(ariable subscripted with)-.25 F F1(@)3.009 E F0(or)3.009 E F1(*)3.009 E +F0(,)A .422(the pattern remo)144 120 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)-.15 F(the resultant list.)144 120 Q(${)108 -136.8 Q F1(par)A(ameter)-.15 E F2(/)A F1(pattern)A F2(/)A F1(string)A F0 -(})A F2 -.1(Pa)144 148.8 S(tter).1 E 3.607(ns)-.15 G(ubstitution)-3.607 -E F0 6.107(.T)C(he)-6.107 E F1(pattern)3.607 E F0 1.107(is e)3.607 F +-2.922 F .423(xpansion is)-.15 F(the resultant list.)144 132 Q(${)108 +148.8 Q F2(par)A(ameter)-.15 E F1(/)A F2(pattern)A F1(/)A F2(string)A F0 +(})A F1 -.1(Pa)144 160.8 S(tter).1 E 3.607(ns)-.15 G(ubstitution)-3.607 +E F0 6.107(.T)C(he)-6.107 E F2(pattern)3.607 E F0 1.107(is e)3.607 F 1.106(xpanded to produce a pattern just as in pathname e)-.15 F(xpan-) --.15 E(sion,)144 160.8 Q F1 -.8(Pa)3.7 G -.15(ra).8 G(meter).15 E F0 1.2 -(is e)3.7 F 1.2(xpanded and the longest match of)-.15 F F1(pattern)3.7 E -F0(ag)3.7 E 1.2(ainst its v)-.05 F 1.2(alue is replaced with)-.25 F F1 -(string)144 172.8 Q F0 5.397(.T)C .397 -(he match is performed using the rules described under)-5.397 F F2 -.1 +-.15 E(sion,)144 172.8 Q F2 -.8(Pa)3.7 G -.15(ra).8 G(meter).15 E F0 1.2 +(is e)3.7 F 1.2(xpanded and the longest match of)-.15 F F2(pattern)3.7 E +F0(ag)3.7 E 1.2(ainst its v)-.05 F 1.2(alue is replaced with)-.25 F F2 +(string)144 184.8 Q F0 5.397(.T)C .397 +(he match is performed using the rules described under)-5.397 F F1 -.1 (Pa)2.896 G(tter).1 E 2.896(nM)-.15 G(atching)-2.896 E F0(belo)2.896 E -4.196 -.65(w. I)-.25 H(f).65 E F1(pat-)2.896 E(tern)144 184.8 Q F0(be) -2.569 E .069(gins with)-.15 F F2(/)2.569 E F0 2.569(,a)C .069 -(ll matches of)-2.569 F F1(pattern)2.569 E F0 .069(are replaced with) -2.569 F F1(string)2.57 E F0 5.07(.N)C .07 -(ormally only the \214rst match is)-5.07 F 2.58(replaced. If)144 196.8 R -F1(pattern)2.58 E F0(be)2.58 E .08(gins with)-.15 F F2(#)2.58 E F0 2.58 +4.196 -.65(w. I)-.25 H(f).65 E F2(pat-)2.896 E(tern)144 196.8 Q F0(be) +2.569 E .069(gins with)-.15 F F1(/)2.569 E F0 2.569(,a)C .069 +(ll matches of)-2.569 F F2(pattern)2.569 E F0 .069(are replaced with) +2.569 F F2(string)2.57 E F0 5.07(.N)C .07 +(ormally only the \214rst match is)-5.07 F 2.58(replaced. If)144 208.8 R +F2(pattern)2.58 E F0(be)2.58 E .08(gins with)-.15 F F1(#)2.58 E F0 2.58 (,i)C 2.58(tm)-2.58 G .079(ust match at the be)-2.58 F .079 -(ginning of the e)-.15 F .079(xpanded v)-.15 F .079(alue of)-.25 F F1 -(par)2.579 E(am-)-.15 E(eter)144 208.8 Q F0 5.761(.I)C(f)-5.761 E F1 -(pattern)3.261 E F0(be)3.261 E .761(gins with)-.15 F F2(%)3.261 E F0 +(ginning of the e)-.15 F .079(xpanded v)-.15 F .079(alue of)-.25 F F2 +(par)2.579 E(am-)-.15 E(eter)144 220.8 Q F0 5.761(.I)C(f)-5.761 E F2 +(pattern)3.261 E F0(be)3.261 E .761(gins with)-.15 F F1(%)3.261 E F0 3.261(,i)C 3.261(tm)-3.261 G .761(ust match at the end of the e)-3.261 F -.761(xpanded v)-.15 F .761(alue of)-.25 F F1(par)3.262 E(ameter)-.15 E -F0 5.762(.I)C(f)-5.762 E F1(string)144 220.8 Q F0 .958 -(is null, matches of)3.458 F F1(pattern)3.458 E F0 .958 -(are deleted and the)3.458 F F2(/)3.458 E F0(follo)3.458 E(wing)-.25 E -F1(pattern)3.457 E F0 .957(may be omitted.)3.457 F .957(If the)5.957 F -F2(nocasematch)144 232.8 Q F0 .492 +.761(xpanded v)-.15 F .761(alue of)-.25 F F2(par)3.262 E(ameter)-.15 E +F0 5.762(.I)C(f)-5.762 E F2(string)144 232.8 Q F0 .958 +(is null, matches of)3.458 F F2(pattern)3.458 E F0 .958 +(are deleted and the)3.458 F F1(/)3.458 E F0(follo)3.458 E(wing)-.25 E +F2(pattern)3.457 E F0 .957(may be omitted.)3.457 F .957(If the)5.957 F +F1(nocasematch)144 244.8 Q F0 .492 (shell option is enabled, the match is performed without re)2.992 F -.05 (ga)-.15 G .492(rd to the case of alpha-).05 F .884(betic characters.) -144 244.8 R(If)5.884 E F1(par)4.634 E(ameter)-.15 E F0(is)4.114 E F2(@) -3.384 E F0(or)3.383 E F2(*)3.383 E F0 3.383(,t)C .883 +144 256.8 R(If)5.884 E F2(par)4.634 E(ameter)-.15 E F0(is)4.114 E F1(@) +3.384 E F0(or)3.383 E F1(*)3.383 E F0 3.383(,t)C .883 (he substitution operation is applied to each positional)-3.383 F 1.002 -(parameter in turn, and the e)144 256.8 R 1.002 -(xpansion is the resultant list.)-.15 F(If)6.002 E F1(par)4.752 E +(parameter in turn, and the e)144 268.8 R 1.002 +(xpansion is the resultant list.)-.15 F(If)6.002 E F2(par)4.752 E (ameter)-.15 E F0 1.002(is an array v)4.232 F 1.002(ariable sub-)-.25 F -.159(scripted with)144 268.8 R F2(@)2.659 E F0(or)2.659 E F2(*)2.659 E +.159(scripted with)144 280.8 R F1(@)2.659 E F0(or)2.659 E F1(*)2.659 E F0 2.659(,t)C .159(he substitution operation is applied to each member \ -of the array in turn, and)-2.659 F(the e)144 280.8 Q -(xpansion is the resultant list.)-.15 E(${)108 297.6 Q F1(par)A(ameter) --.15 E F2(^)A F1(pattern)A F0(})A(${)108 309.6 Q F1(par)A(ameter)-.15 E -F2(^^)A F1(pattern)A F0(})A(${)108 321.6 Q F1(par)A(ameter)-.15 E F2(,)A -F1(pattern)A F0(})A(${)108 333.6 Q F1(par)A(ameter)-.15 E F2(,,)A F1 -(pattern)A F0(})A F2 .437(Case modi\214cation)144 345.6 R F0 5.437(.T)C +of the array in turn, and)-2.659 F(the e)144 292.8 Q +(xpansion is the resultant list.)-.15 E(${)108 309.6 Q F2(par)A(ameter) +-.15 E F1(^)A F2(pattern)A F0(})A(${)108 321.6 Q F2(par)A(ameter)-.15 E +F1(^^)A F2(pattern)A F0(})A(${)108 333.6 Q F2(par)A(ameter)-.15 E F1(,)A +F2(pattern)A F0(})A(${)108 345.6 Q F2(par)A(ameter)-.15 E F1(,,)A F2 +(pattern)A F0(})A F1 .437(Case modi\214cation)144 357.6 R F0 5.437(.T)C .437(his e)-5.437 F .438 -(xpansion modi\214es the case of alphabetic characters in)-.15 F F1(par) -2.938 E(ameter)-.15 E F0 5.438(.T)C(he)-5.438 E F1(pattern)144 357.6 Q +(xpansion modi\214es the case of alphabetic characters in)-.15 F F2(par) +2.938 E(ameter)-.15 E F0 5.438(.T)C(he)-5.438 E F2(pattern)144 369.6 Q F0 .374(is e)2.874 F .374 (xpanded to produce a pattern just as in pathname e)-.15 F 2.874 (xpansion. Each)-.15 F .373(character in the e)2.873 F(x-)-.15 E .513 -(panded v)144 369.6 R .513(alue of)-.25 F F1(par)3.013 E(ameter)-.15 E -F0 .513(is tested ag)3.013 F(ainst)-.05 E F1(pattern)3.013 E F0 3.013 +(panded v)144 381.6 R .513(alue of)-.25 F F2(par)3.013 E(ameter)-.15 E +F0 .513(is tested ag)3.013 F(ainst)-.05 E F2(pattern)3.013 E F0 3.013 (,a)C .514(nd, if it matches the pattern, its case is con-)-3.013 F -.15 -(ve)144 381.6 S 2.823(rted. The).15 F .323 +(ve)144 393.6 S 2.823(rted. The).15 F .323 (pattern should not attempt to match more than one character)2.823 F -5.322(.T)-.55 G(he)-5.322 E F2(^)2.822 E F0 .322(operator con)2.822 F --.15(ve)-.4 G(rts).15 E(lo)144 393.6 Q .18(wercase letters matching)-.25 -F F1(pattern)2.681 E F0 .181(to uppercase; the)2.681 F F2(,)2.681 E F0 +5.322(.T)-.55 G(he)-5.322 E F1(^)2.822 E F0 .322(operator con)2.822 F +-.15(ve)-.4 G(rts).15 E(lo)144 405.6 Q .18(wercase letters matching)-.25 +F F2(pattern)2.681 E F0 .181(to uppercase; the)2.681 F F1(,)2.681 E F0 .181(operator con)2.681 F -.15(ve)-.4 G .181 -(rts matching uppercase letters).15 F .085(to lo)144 405.6 R 2.585 -(wercase. The)-.25 F F2(^^)2.585 E F0(and)2.585 E F2(,,)2.585 E F0 -.15 +(rts matching uppercase letters).15 F .085(to lo)144 417.6 R 2.585 +(wercase. The)-.25 F F1(^^)2.585 E F0(and)2.585 E F1(,,)2.585 E F0 -.15 (ex)2.585 G .085(pansions con).15 F -.15(ve)-.4 G .085 (rt each matched character in the e).15 F .085(xpanded v)-.15 F .085 -(alue; the)-.25 F F2(^)2.585 E F0(and)144 417.6 Q F2(,)3.59 E F0 -.15 +(alue; the)-.25 F F1(^)2.585 E F0(and)144 429.6 Q F1(,)3.59 E F0 -.15 (ex)3.59 G 1.09(pansions match and con).15 F -.15(ve)-.4 G 1.091 (rt only the \214rst character in the e).15 F 1.091(xpanded v)-.15 F -3.591(alue. If)-.25 F F1(pattern)3.591 E F0(is)3.591 E 1.121 -(omitted, it is treated lik)144 429.6 R 3.621(ea)-.1 G F2(?)A F0 3.621 +3.591(alue. If)-.25 F F2(pattern)3.591 E F0(is)3.591 E 1.121 +(omitted, it is treated lik)144 441.6 R 3.621(ea)-.1 G F1(?)A F0 3.621 (,w)C 1.121(hich matches e)-3.621 F -.15(ve)-.25 G 1.121(ry character) -.15 F 6.12(.I)-.55 G(f)-6.12 E F1(par)4.87 E(ameter)-.15 E F0(is)4.35 E -F2(@)3.62 E F0(or)3.62 E F2(*)3.62 E F0 3.62(,t)C 1.12(he case)-3.62 F +.15 F 6.12(.I)-.55 G(f)-6.12 E F2(par)4.87 E(ameter)-.15 E F0(is)4.35 E +F1(@)3.62 E F0(or)3.62 E F1(*)3.62 E F0 3.62(,t)C 1.12(he case)-3.62 F .339(modi\214cation operation is applied to each positional parameter i\ -n turn, and the e)144 441.6 R .34(xpansion is the re-)-.15 F .25 -(sultant list.)144 453.6 R(If)5.25 E F1(par)4 E(ameter)-.15 E F0 .25 -(is an array v)3.48 F .249(ariable subscripted with)-.25 F F2(@)2.749 E -F0(or)2.749 E F2(*)2.749 E F0 2.749(,t)C .249 +n turn, and the e)144 453.6 R .34(xpansion is the re-)-.15 F .25 +(sultant list.)144 465.6 R(If)5.25 E F2(par)4 E(ameter)-.15 E F0 .25 +(is an array v)3.48 F .249(ariable subscripted with)-.25 F F1(@)2.749 E +F0(or)2.749 E F1(*)2.749 E F0 2.749(,t)C .249 (he case modi\214cation oper)-2.749 F(-)-.2 E (ation is applied to each member of the array in turn, and the e)144 -465.6 Q(xpansion is the resultant list.)-.15 E(${)108 482.4 Q F1(par)A -(ameter)-.15 E F2(@)A F1(oper)A(ator)-.15 E F0(})A F2 -.1(Pa)144 494.4 S +477.6 Q(xpansion is the resultant list.)-.15 E(${)108 494.4 Q F2(par)A +(ameter)-.15 E F1(@)A F2(oper)A(ator)-.15 E F0(})A F1 -.1(Pa)144 506.4 S .86(rameter transf).1 F(ormation)-.25 E F0 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 F1(par)3.36 E(ameter)-.15 E F0 .154(or information about)144 506.4 R -F1(par)2.654 E(ameter)-.15 E F0 .153(itself, depending on the v)2.654 F -.153(alue of)-.25 F F1(oper)2.653 E(ator)-.15 E F0 5.153(.E)C(ach)-5.153 -E F1(oper)2.653 E(ator)-.15 E F0 .153(is a sin-)2.653 F(gle letter:)144 -518.4 Q F2(Q)144 542.4 Q F0 1.064(The e)180 542.4 R 1.064 -(xpansion is a string that is the v)-.15 F 1.065(alue of)-.25 F F1(par) +F F2(par)3.36 E(ameter)-.15 E F0 .154(or information about)144 518.4 R +F2(par)2.654 E(ameter)-.15 E F0 .153(itself, depending on the v)2.654 F +.153(alue of)-.25 F F2(oper)2.653 E(ator)-.15 E F0 5.153(.E)C(ach)-5.153 +E F2(oper)2.653 E(ator)-.15 E F0 .153(is a sin-)2.653 F(gle letter:)144 +530.4 Q F1(Q)144 554.4 Q F0 1.064(The e)180 554.4 R 1.064 +(xpansion is a string that is the v)-.15 F 1.065(alue of)-.25 F F2(par) 3.565 E(ameter)-.15 E F0 1.065(quoted in a format that can be)3.565 F -(reused as input.)180 554.4 Q F2(E)144 566.4 Q F0 .441(The e)180 566.4 R -.441(xpansion is a string that is the v)-.15 F .441(alue of)-.25 F F1 +(reused as input.)180 566.4 Q F1(E)144 578.4 Q F0 .441(The e)180 578.4 R +.441(xpansion is a string that is the v)-.15 F .441(alue of)-.25 F F2 (par)2.941 E(ameter)-.15 E F0 .44(with backslash escape sequences)2.94 F --.15(ex)180 578.4 S(panded as with the).15 E F2($'...)2.5 E(')-.55 E F0 -(quoting mechanism.)2.5 E F2(P)144 590.4 Q F0 1.072(The e)180 590.4 R +-.15(ex)180 590.4 S(panded as with the).15 E F1($'...)2.5 E(')-.55 E F0 +(quoting mechanism.)2.5 E F1(P)144 602.4 Q F0 1.072(The e)180 602.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 F1(par)3.573 E(ameter)-.15 E -F0 1.073(as if it)3.573 F(were a prompt string \(see)180 602.4 Q F2(PR) -2.5 E(OMPTING)-.3 E F0(belo)2.5 E(w\).)-.25 E F2(A)144 614.4 Q F0 1.138 -(The e)180 614.4 R 1.138 +(xpanding the v)-.15 F 1.073(alue of)-.25 F F2(par)3.573 E(ameter)-.15 E +F0 1.073(as if it)3.573 F(were a prompt string \(see)180 614.4 Q F1(PR) +2.5 E(OMPTING)-.3 E F0(belo)2.5 E(w\).)-.25 E F1(A)144 626.4 Q F0 1.138 +(The e)180 626.4 R 1.138 (xpansion is a string in the form of an assignment statement or)-.15 F -F2(declar)3.637 E(e)-.18 E F0(command)3.637 E(that, if e)180 626.4 Q --.25(va)-.25 G(luated, will recreate).25 E F1(par)2.5 E(ameter)-.15 E F0 -(with its attrib)2.5 E(utes and v)-.2 E(alue.)-.25 E F2(a)144 638.4 Q F0 -(The e)180 638.4 Q(xpansion is a string consisting of \215ag v)-.15 E -(alues representing)-.25 E F1(par)2.5 E(ameter)-.15 E F0 1.1 -.55('s a)D -(ttrib).55 E(utes.)-.2 E(If)144 655.2 Q F1(par)4.402 E(ameter)-.15 E F0 -(is)3.882 E F2(@)3.152 E F0(or)3.152 E F2(*)3.153 E F0 3.153(,t)C .653(\ +F1(declar)3.637 E(e)-.18 E F0(command)3.637 E(that, if e)180 638.4 Q +-.25(va)-.25 G(luated, will recreate).25 E F2(par)2.5 E(ameter)-.15 E F0 +(with its attrib)2.5 E(utes and v)-.2 E(alue.)-.25 E F1(a)144 650.4 Q F0 +(The e)180 650.4 Q(xpansion is a string consisting of \215ag v)-.15 E +(alues representing)-.25 E F2(par)2.5 E(ameter)-.15 E F0 1.1 -.55('s a)D +(ttrib).55 E(utes.)-.2 E(If)144 667.2 Q F2(par)4.402 E(ameter)-.15 E F0 +(is)3.882 E F1(@)3.152 E F0(or)3.152 E F1(*)3.153 E F0 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 667.2 R(If) -5.403 E F1(par)4.153 E(ameter)-.15 E F0 .403(is an array v)3.633 F .403 -(ariable subscripted with)-.25 F F2(@)2.903 E F0(or)2.903 E F2(*)2.903 E +-3.153 F(x-)-.15 E .403(pansion is the resultant list.)144 679.2 R(If) +5.403 E F2(par)4.153 E(ameter)-.15 E F0 .403(is an array v)3.633 F .403 +(ariable subscripted with)-.25 F F1(@)2.903 E F0(or)2.903 E F1(*)2.903 E F0 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 -679.2 Q(xpansion is the resultant list.)-.15 E .708(The result of the e) -144 703.2 R .708(xpansion is subject to w)-.15 F .708 +691.2 Q(xpansion is the resultant list.)-.15 E .708(The result of the e) +144 715.2 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 715.2 Q -.65(w.)-.25 G(GNU Bash 5.0)72 768 Q(2019 No)136.385 E --.15(ve)-.15 G(mber 22).15 E(24)185.545 E 0 Cg EP +F(lo)144 727.2 Q -.65(w.)-.25 G(GNU Bash 5.0)72 768 Q(2019 No)136.385 E +-.15(ve)-.15 G(mber 26).15 E(24)185.545 E 0 Cg EP %%Page: 25 25 %%BeginPageSetup BP @@ -3386,7 +3391,7 @@ E F0 .428(whitespace characters, delimits a \214eld.)2.678 F 2.928(As) (whitespace charac-)2.678 F(ters is also treated as a delimiter)108 722.4 Q 5(.I)-.55 G 2.5(ft)-5 G(he v)-2.5 E(alue of)-.25 E F3(IFS)2.5 E F0(is null, no w)2.25 E(ord splitting occurs.)-.1 E(GNU Bash 5.0)72 768 -Q(2019 No)136.385 E -.15(ve)-.15 G(mber 22).15 E(25)185.545 E 0 Cg EP +Q(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E(25)185.545 E 0 Cg EP %%Page: 26 26 %%BeginPageSetup BP @@ -3536,7 +3541,7 @@ F .067(ditional interpretation of range e)180 693.6 R .067 be matched by including it as the \214rst or last character in the set.) 180 717.6 R(A)5.193 E F1(])2.693 E F0 .194(may be matched by)2.693 F (including it as the \214rst character in the set.)180 729.6 Q -(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 22).15 E +(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E (26)185.545 E 0 Cg EP %%Page: 27 27 %%BeginPageSetup @@ -3645,7 +3650,7 @@ F0 3.012(,t)C .512 .867(xpansion, and w)-.15 F .867(ord splitting.)-.1 F .867(If it e)5.867 F .866(xpands to more than one)-.15 F -.1(wo)108 717.6 S(rd,).1 E F1 (bash)2.5 E F0(reports an error)2.5 E(.)-.55 E(GNU Bash 5.0)72 768 Q -(2019 No)136.385 E -.15(ve)-.15 G(mber 22).15 E(27)185.545 E 0 Cg EP +(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E(27)185.545 E 0 Cg EP %%Page: 28 28 %%BeginPageSetup BP @@ -3738,7 +3743,7 @@ E F0 -.15(ex)2.5 G(ists.).15 E F1 -.25(Ap)87 652.8 S(pending Redir).25 E 688.8 Q(xist it is created.)-.15 E (The general format for appending output is:)108 705.6 Q([)144 722.4 Q F2(n)A F0(])A F1(>>)A F2(wor)A(d)-.37 E F0(GNU Bash 5.0)72 768 Q -(2019 No)136.385 E -.15(ve)-.15 G(mber 22).15 E(28)185.545 E 0 Cg EP +(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E(28)185.545 E 0 Cg EP %%Page: 29 29 %%BeginPageSetup BP @@ -3825,7 +3830,7 @@ F2(wor)2.967 E(d)-.37 E F0 -.15(ex)3.397 G .126 2.957(ft)-2.957 G .457(hat \214le descriptor)-2.957 F 5.457(.I)-.55 G 2.957(ft)-5.457 G .457(he digits in)-2.957 F F2(wor)3.298 E(d)-.37 E F0 .458(do not specify a \214le descriptor open)3.728 F(GNU Bash 5.0)72 768 -Q(2019 No)136.385 E -.15(ve)-.15 G(mber 22).15 E(29)185.545 E 0 Cg EP +Q(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E(29)185.545 E 0 Cg EP %%Page: 30 30 %%BeginPageSetup BP @@ -3949,7 +3954,7 @@ unction is e)108 705.6 R -.15(xe)-.15 G .426 -4.62 G 2.12(afe, al)-4.62 F -.1(wa)-.1 G 2.121 (ys put alias de\214nitions on a separate line, and do not use).1 F F2 (alias)4.621 E F0(in)4.621 E(GNU Bash 5.0)72 768 Q(2019 No)136.385 E --.15(ve)-.15 G(mber 22).15 E(30)185.545 E 0 Cg EP +-.15(ve)-.15 G(mber 26).15 E(30)185.545 E 0 Cg EP %%Page: 31 31 %%BeginPageSetup BP @@ -4095,7 +4100,7 @@ E F0 -.25(va)2.871 G .371 (stack and restrict the number of function in)108 724.8 R -.2(vo)-.4 G 3.641(cations. By).2 F(def)3.641 E 1.141 (ault, no limit is imposed on the number of)-.1 F(GNU Bash 5.0)72 768 Q -(2019 No)136.385 E -.15(ve)-.15 G(mber 22).15 E(31)185.545 E 0 Cg EP +(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E(31)185.545 E 0 Cg EP %%Page: 32 32 %%BeginPageSetup BP @@ -4197,7 +4202,7 @@ F2(test)2.633 E F0(and)2.633 E F2([)2.634 E F0 .134 (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(GNU Bash 5.0)72 768 Q(2019 No)136.385 -E -.15(ve)-.15 G(mber 22).15 E(32)185.545 E 0 Cg EP +E -.15(ve)-.15 G(mber 26).15 E(32)185.545 E 0 Cg EP %%Page: 33 33 %%BeginPageSetup BP @@ -4301,7 +4306,7 @@ F F2(optname)2.992 E F0 .262(is enabled.)2.942 F .262 F0(is zero.)2.5 E F2(string)108 675.6 Q F1<ad6e>108 687.6 Q F2(string) 2.5 E F0 -.35(Tr)144 699.6 S(ue if the length of).35 E F2(string)2.84 E F0(is non-zero.)2.72 E(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve) --.15 G(mber 22).15 E(33)185.545 E 0 Cg EP +-.15 G(mber 26).15 E(33)185.545 E 0 Cg EP %%Page: 34 34 %%BeginPageSetup BP @@ -4408,7 +4413,7 @@ mpts to locate it.)108 655.2 R .379(If there e)5.379 F .379 720 R -.15(xe)-.15 G 1.915(cutable \214les \(see).15 F F2(hash)4.415 E F0(under)4.415 E F3 1.915(SHELL B)4.415 F(UIL)-.09 E 1.915(TIN COMMANDS) -.828 F F0(belo)4.165 E 4.415(w\). A)-.25 F(full)4.415 E(GNU Bash 5.0)72 -768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 22).15 E(34)185.545 E 0 Cg +768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E(34)185.545 E 0 Cg EP %%Page: 35 35 %%BeginPageSetup @@ -4518,7 +4523,7 @@ F1(PPID)2.5 E F0 .426(When a simple command other than a b)108 552 R (vironment.)-.4 E .577(Command substitution, commands grouped with pare\ ntheses, and asynchronous commands are in)108 729.6 R -.2(vo)-.4 G -.1 (ke).2 G 3.077(di).1 G(n)-3.077 E(GNU Bash 5.0)72 768 Q(2019 No)136.385 -E -.15(ve)-.15 G(mber 22).15 E(35)185.545 E 0 Cg EP +E -.15(ve)-.15 G(mber 26).15 E(35)185.545 E 0 Cg EP %%Page: 36 36 %%BeginPageSetup BP @@ -4651,7 +4656,7 @@ E F4(SIGTSTP)2.5 E F5(.)A F0(Non-b)108 720 Q 1.065 (uiltin commands run by)-.2 F F1(bash)3.565 E F0(ha)3.565 E 1.365 -.15 (ve s)-.2 H 1.065(ignal handlers set to the v).15 F 1.064 (alues inherited by the shell from its)-.25 F(GNU Bash 5.0)72 768 Q -(2019 No)136.385 E -.15(ve)-.15 G(mber 22).15 E(36)185.545 E 0 Cg EP +(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E(36)185.545 E 0 Cg EP %%Page: 37 37 %%BeginPageSetup BP @@ -4793,7 +4798,7 @@ F5(curr)2.708 E .008(ent job)-.37 F F0 2.508(,w).23 G .008(hich is) (.I)C 3.287(ft)-5.787 G .787(here is only a single job,)-3.287 F F3(%+) 3.287 E F0(and)3.287 E F3<25ad>3.287 E F0 .788 (can both be used to refer to that job)3.287 F 5.788(.I)-.4 G(n)-5.788 E -(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 22).15 E +(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E (37)185.545 E 0 Cg EP %%Page: 38 38 %%BeginPageSetup @@ -4902,7 +4907,7 @@ F1(\\#)144 684 Q F0(the command number of this command)180 684 Q F1(\\$) (ID is 0, a).15 E F1(#)2.5 E F0 2.5(,o)C(therwise a)-2.5 E F1($)2.5 E (\\)144 708 Q F4(nnn)A F0 (the character corresponding to the octal number)180 708 Q F4(nnn)2.5 E -F0(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 22).15 E +F0(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E (38)185.545 E 0 Cg EP %%Page: 39 39 %%BeginPageSetup @@ -5034,7 +5039,7 @@ E F4(RET)4.14 E F0(,)1.27 E F4(RETURN)108.63 708 Q F0(,)1.1 E F4(SPC) F -.15(ey)-.1 G 2.709(st).15 G 2.709(ob)-2.709 G 2.709(eb)-2.709 G .209 (ound to a string that is inserted when the k)-2.709 F .509 -.15(ey i) -.1 H(s).15 E(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G -(mber 22).15 E(39)185.545 E 0 Cg EP +(mber 26).15 E(39)185.545 E 0 Cg EP %%Page: 40 40 %%BeginPageSetup BP @@ -5122,7 +5127,7 @@ E 2.5(yo)-.15 G(ther character in the macro te)-2.5 E (option to the)2.546 F F2(set)2.546 E F0 -.2(bu)2.546 G .046 (iltin command).2 F(\(see)108 703.2 Q/F4 9/Times-Bold@0 SF(SHELL B)2.5 E (UIL)-.09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25 E -(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 22).15 E +(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E (40)185.545 E 0 Cg EP %%Page: 41 41 %%BeginPageSetup @@ -5227,7 +5232,7 @@ G .613(rt characters with the eighth bit set to an ASCII k).15 F .913 F(e-)-.37 E<8c78>144 710.4 Q F0 2.5(\). The)B(def)2.5 E(ault is)-.1 E F2 (On)2.5 E F0 2.5(,b)C(ut readline will set it to)-2.7 E F2(Of)2.5 E(f) -.18 E F0(if the locale contains eight-bit characters.)2.5 E -(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 22).15 E +(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E (41)185.545 E 0 Cg EP %%Page: 42 42 %%BeginPageSetup @@ -5309,15 +5314,17 @@ E .482(history entries are deleted and no ne)144 480 R 2.982(we)-.25 G (es readline use a single line for display)-.1 F 2.948(,s)-.65 G .448 (crolling the input horizontally on a)-2.948 F 1.194(single screen line\ when it becomes longer than the screen width rather than wrapping to a\ - ne)144 552 R(w)-.25 E(line.)144 564 Q F1(input\255meta \(Off\))108 576 -Q F0 1.062(If set to)144 588 R F1(On)3.562 E F0 3.562(,r)C 1.061(eadlin\ -e will enable eight-bit input \(that is, it will not strip the eighth b\ -it from the)-3.562 F .335(characters it reads\), re)144 600 R -.05(ga) --.15 G .335(rdless of what the terminal claims it can support.).05 F -.336(The name)5.336 F F1(meta\255\215ag)2.836 E F0(is)2.836 E 2.865(as) -144 612 S(ynon)-2.865 E .365(ym for this v)-.15 F 2.864(ariable. The) --.25 F(def)2.864 E .364(ault is)-.1 F F2(Of)2.864 E(f)-.18 E F0 2.864 -(,b)C .364(ut readline will set it to)-3.064 F F2(On)2.864 E F0 .364 + ne)144 552 R(w)-.25 E 2.5(line. This)144 564 R +(setting is automatically enabled for terminals of height 1.)2.5 E F1 +(input\255meta \(Off\))108 576 Q F0 1.062(If set to)144 588 R F1(On) +3.562 E F0 3.562(,r)C 1.061(eadline will enable eight-bit input \(that \ +is, it will not strip the eighth bit from the)-3.562 F .335 +(characters it reads\), re)144 600 R -.05(ga)-.15 G .335 +(rdless of what the terminal claims it can support.).05 F .336(The name) +5.336 F F1(meta\255\215ag)2.836 E F0(is)2.836 E 2.865(as)144 612 S(ynon) +-2.865 E .365(ym for this v)-.15 F 2.864(ariable. The)-.25 F(def)2.864 E +.364(ault is)-.1 F F2(Of)2.864 E(f)-.18 E F0 2.864(,b)C .364 +(ut readline will set it to)-3.064 F F2(On)2.864 E F0 .364 (if the locale contains)2.864 F(eight-bit characters.)144 624 Q F1 (isear)108 636 Q(ch\255terminators \(`)-.18 E(`C\255[C\255J')-.63 E('\)) -.63 E F0 .439(The string of characters that should terminate an increm\ @@ -5338,7 +5345,7 @@ G 1.529(lent to).25 F F2(emacs\255standar)4.029 E(d)-.37 E F0 6.529(.T)C 1.529(he def)-6.529 F 1.529(ault v)-.1 F 1.529(alue is)-.25 F F2(emacs) 4.219 E F0 4.029(;t).27 G 1.529(he v)-4.029 F 1.53(alue of)-.25 F F1 (editing\255mode)4.03 E F0(also)4.03 E(GNU Bash 5.0)72 768 Q(2019 No) -136.385 E -.15(ve)-.15 G(mber 22).15 E(42)185.545 E 0 Cg EP +136.385 E -.15(ve)-.15 G(mber 26).15 E(42)185.545 E 0 Cg EP %%Page: 43 43 %%BeginPageSetup BP @@ -5448,7 +5455,7 @@ F .046(enabled, readline does not)2.546 F 1.394(insert characters from \ the completion that match characters after point in the w)144 708 R 1.394(ord being com-)-.1 F(pleted, so portions of the w)144 720 Q (ord follo)-.1 E(wing the cursor are not duplicated.)-.25 E -(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 22).15 E +(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E (43)185.545 E 0 Cg EP %%Page: 44 44 %%BeginPageSetup @@ -5558,7 +5565,7 @@ F0 1.276(construct pro)3.776 F 1.276 -.25 F(alues.)-.25 E 1.901(The permitted comparison operators are)180 729.6 R F2(=)4.401 E F0(,)A F2(==)4.401 E F0 4.401(,a)C(nd)-4.401 E F2 (!=)4.401 E F0 6.901(.T)C 1.901(he v)-6.901 F 1.9(ariable name must be) --.25 F(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 22) +-.25 F(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 26) .15 E(44)185.545 E 0 Cg EP %%Page: 45 45 %%BeginPageSetup @@ -5657,7 +5664,7 @@ Q .823 -.15(ve f)-.15 H(orw).15 E .523(ard to the end of the ne)-.1 F (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 708 Q(GNU Bash 5.0)72 768 Q -(2019 No)136.385 E -.15(ve)-.15 G(mber 22).15 E(45)185.545 E 0 Cg EP +(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E(45)185.545 E 0 Cg EP %%Page: 46 46 %%BeginPageSetup BP @@ -5744,7 +5751,7 @@ etween the start of the current)-.1 F(line and the point.)144 688.8 Q of the current)-.1 F .007(line and the current cursor position \(the) 144 724.8 R/F3 10/Times-Italic@0 SF(point)2.507 E F0 2.507(\). The)B .007(search string may match an)2.507 F .007(ywhere in a history)-.15 F -(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 22).15 E +(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E (46)185.545 E 0 Cg EP %%Page: 47 47 %%BeginPageSetup @@ -5853,7 +5860,7 @@ R .799(xample, by)-.15 F/F5 10/Courier@0 SF(stty)3.299 E F0 5.799(.I)C 5.553(.W)-.55 G .553(hen gi)-5.553 F -.15(ve)-.25 G 3.053(nan).15 G .553 (umeric ar)-3.053 F .552(gument, sa)-.18 F .852 -.15(ve t)-.2 H .552 (he deleted te).15 F .552(xt on)-.15 F(the kill ring.)144 712.8 Q -(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 22).15 E +(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E (47)185.545 E 0 Cg EP %%Page: 48 48 %%BeginPageSetup @@ -5948,7 +5955,7 @@ R .729(ord, or if between w)-.1 F .729(ords, to the end of the ne)-.1 F (ord behind point.)-.1 F -.8(Wo)8.025 G 3.025 (rd boundaries are the same as those used by).8 F F1(shell\255back-) 5.525 E(ward\255w)144 712.8 Q(ord)-.1 E F0(.)A(GNU Bash 5.0)72 768 Q -(2019 No)136.385 E -.15(ve)-.15 G(mber 22).15 E(48)185.545 E 0 Cg EP +(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E(48)185.545 E 0 Cg EP %%Page: 49 49 %%BeginPageSetup BP @@ -6045,7 +6052,7 @@ E F0(mo)3.227 E -.15(ve)-.15 G(s).15 E F2(n)3.228 E F0 1.73 E(through the list.)144 705.6 Q(This command is intended to be bound to) 5 E F1 -.9(TA)2.5 G(B).9 E F0 2.5(,b)C(ut is unbound by def)-2.7 E (ault.)-.1 E(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G -(mber 22).15 E(49)185.545 E 0 Cg EP +(mber 26).15 E(49)185.545 E 0 Cg EP %%Page: 50 50 %%BeginPageSetup BP @@ -6133,7 +6140,7 @@ F0(Print the last k)144 652.8 Q -.15(ey)-.1 G (Read in the contents of the)144 693.6 R F2(inputr)4.277 E(c)-.37 E F0 1.776(\214le, and incorporate an)4.276 F 4.276(yb)-.15 G 1.776 (indings or v)-4.276 F 1.776(ariable assignments)-.25 F(found there.)144 -705.6 Q(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 22) +705.6 Q(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 26) .15 E(50)185.545 E 0 Cg EP %%Page: 51 51 %%BeginPageSetup @@ -6240,7 +6247,7 @@ le completions.)2.5 E F1(glob\255expand\255w)108 600 Q(ord \(C\255x *\)) (ment is supplied, the output is formatted in such a w)144 720 Q (ay that it can be made part of an)-.1 E F2(inputr)2.5 E(c)-.37 E F0 (\214le.)2.5 E(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G -(mber 22).15 E(51)185.545 E 0 Cg EP +(mber 26).15 E(51)185.545 E 0 Cg EP %%Page: 52 52 %%BeginPageSetup BP @@ -6373,7 +6380,7 @@ E(Ne)108 715.2 Q .08(xt, an)-.15 F 2.58(yc)-.15 G .08 (va)-.25 G .081(lent to command sub-).25 F 2.859(stitution. It)108 727.2 R .359(should print a list of completions, one per line, to the standar\ d output.)2.859 F .358(Backslash may be used)5.359 F(GNU Bash 5.0)72 768 -Q(2019 No)136.385 E -.15(ve)-.15 G(mber 22).15 E(52)185.545 E 0 Cg EP +Q(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E(52)185.545 E 0 Cg EP %%Page: 53 53 %%BeginPageSetup BP @@ -6500,7 +6507,7 @@ E F4(~/.bash_history)2.583 E F0(\).)A .315(The \214le named by the v)108 (When the history \214le is read, lines)5.142 F(be)108 724.8 Q 3.544 (ginning with the history comment character follo)-.15 F 3.544 (wed immediately by a digit are interpreted as)-.25 F(GNU Bash 5.0)72 -768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 22).15 E(53)185.545 E 0 Cg +768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E(53)185.545 E 0 Cg EP %%Page: 54 54 %%BeginPageSetup @@ -6648,7 +6655,7 @@ F0 .52(option to the)3.02 F F3(history)3.02 E F0 -.2(bu)3.02 G .52 (end of the history list without actually e)108 717.6 Q -.15(xe)-.15 G (cuting them, so that the).15 E 2.5(ya)-.15 G(re a)-2.5 E -.25(va)-.2 G (ilable for subsequent recall.).25 E(GNU Bash 5.0)72 768 Q(2019 No) -136.385 E -.15(ve)-.15 G(mber 22).15 E(54)185.545 E 0 Cg EP +136.385 E -.15(ve)-.15 G(mber 26).15 E(54)185.545 E 0 Cg EP %%Page: 55 55 %%BeginPageSetup BP @@ -6759,7 +6766,7 @@ E F0 2.886(,b)C .386(ut break into w)-3.086 F .385(ords at)-.1 F F1 2.885 E F0(and)2.885 E F1(x)2.885 E F0(modi\214ers are mutually e)144 729.6 Q(xclusi)-.15 E -.15(ve)-.25 G 2.5(;t).15 G (he last one supplied is used.)-2.5 E(GNU Bash 5.0)72 768 Q(2019 No) -136.385 E -.15(ve)-.15 G(mber 22).15 E(55)185.545 E 0 Cg EP +136.385 E -.15(ve)-.15 G(mber 26).15 E(55)185.545 E 0 Cg EP %%Page: 56 56 %%BeginPageSetup BP @@ -6902,7 +6909,7 @@ E F1(bind)108 690 Q F0([)2.5 E F1<ad6d>A F2 -.1(ke)2.5 G(ymap)-.2 E F0 <ad6d>A F2 -.1(ke)2.5 G(ymap)-.2 E F0 2.5(][)C F1<ad71>-2.5 E F2 (function)2.5 E F0 2.5(][)C F1<ad75>-2.5 E F2(function)2.5 E F0 2.5(][)C F1<ad72>-2.5 E F2 -.1(ke)2.5 G(yseq)-.2 E F0(])A(GNU Bash 5.0)72 768 Q -(2019 No)136.385 E -.15(ve)-.15 G(mber 22).15 E(56)185.545 E 0 Cg EP +(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E(56)185.545 E 0 Cg EP %%Page: 57 57 %%BeginPageSetup BP @@ -7023,7 +7030,7 @@ tine name, and source \214le corresponding to that position in the curr\ ent e)144 715.2 R -.15(xe)-.15 G 1.328(cution call stack.).15 F .001 (This e)144 727.2 R .001(xtra information may be used, for e)-.15 F .001 (xample, to print a stack trace.)-.15 F(The current frame is frame)5 E -(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 22).15 E +(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E (57)185.545 E 0 Cg EP %%Page: 58 58 %%BeginPageSetup @@ -7174,7 +7181,7 @@ F2<ad49>2.947 E F0 .447 (option indicates that other supplied options and actions)2.947 F 1.149 (should apply to completion on the initial non-assignment w)144 727.2 R 1.15(ord on the line, or after a command)-.1 F(GNU Bash 5.0)72 768 Q -(2019 No)136.385 E -.15(ve)-.15 G(mber 22).15 E(58)185.545 E 0 Cg EP +(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E(58)185.545 E 0 Cg EP %%Page: 59 59 %%BeginPageSetup BP @@ -7256,7 +7263,7 @@ Q F0(Names of disabled shell b)224 636 Q(uiltins.)-.2 E F1(enabled)184 2.5 E F0(.)A F1(function)184 684 Q F0(Names of shell functions.)224 696 Q F1(gr)184 708 Q(oup)-.18 E F0(Group names.)224 708 Q (May also be speci\214ed as)5 E F1<ad67>2.5 E F0(.)A(GNU Bash 5.0)72 768 -Q(2019 No)136.385 E -.15(ve)-.15 G(mber 22).15 E(59)185.545 E 0 Cg EP +Q(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E(59)185.545 E 0 Cg EP %%Page: 60 60 %%BeginPageSetup BP @@ -7366,7 +7373,7 @@ no)-3.727 F 2.039(completion has pre)144 717.6 R 2.039 (option indicates that other supplied options)4.538 F 1.538 (should apply to `)144 729.6 R(`empty')-.74 E 4.038('c)-.74 G 1.539 (ommand completion; that is, completion attempted on a blank line.) --4.038 F(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 22) +-4.038 F(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 26) .15 E(60)185.545 E 0 Cg EP %%Page: 61 61 %%BeginPageSetup @@ -7511,7 +7518,7 @@ n is encountered, an attempt is made to de\214ne a function using).25 F 1.749(array v)144 722.4 R 1.749 (ariable without using the compound assignment syntax \(see)-.25 F F1 (Arrays)4.248 E F0(abo)4.248 E -.15(ve)-.15 G 1.748(\), one of the).15 F -(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 22).15 E +(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E (61)185.545 E 0 Cg EP %%Page: 62 62 %%BeginPageSetup @@ -7615,7 +7622,7 @@ E(alue)-.25 E F1(nnn)2.5 E F0(\(zero to three octal digits\))2.5 E F2 (the Unicode \(ISO/IEC 10646\) character whose v)180 691.2 R 1.506 (alue is the he)-.25 F 1.506(xadecimal v)-.15 F(alue)-.25 E F1(HHHH) 4.006 E F0(\(one to four he)180 703.2 Q 2.5(xd)-.15 G(igits\))-2.5 E -(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 22).15 E +(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E (62)185.545 E 0 Cg EP %%Page: 63 63 %%BeginPageSetup @@ -7762,7 +7769,7 @@ F1<ad72>2.522 E F0 .022(option re)2.522 F -.15(ve)-.25 G .022 (rses the order of).15 F .438(the commands.)144 724.8 R .438(If the) 5.438 F F1<ad6c>2.938 E F0 .438(option is gi)2.938 F -.15(ve)-.25 G .438 (n, the commands are listed on standard output.).15 F(Otherwise,)5.438 E -(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 22).15 E +(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E (63)185.545 E 0 Cg EP %%Page: 64 64 %%BeginPageSetup @@ -7888,7 +7895,7 @@ F0(\)).833 E(is placed in)144 681.6 Q F1(name)2.86 E F0(and)2.68 E F2 (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 717.6 Q(GNU Bash 5.0)72 -768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 22).15 E(64)185.545 E 0 Cg +768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E(64)185.545 E 0 Cg EP %%Page: 65 65 %%BeginPageSetup @@ -8012,7 +8019,7 @@ ory \214le and append them to the current history list.)180 638.4 Q F1 (are added.)2.77 E .146(If the)144 727.2 R F3(HISTTIMEFORMA)2.645 E(T) -.855 E F0 -.25(va)2.395 G .145 (riable is set, the time stamp information associated with each history) -.25 F(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 22).15 +.25 F(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E(65)185.545 E 0 Cg EP %%Page: 66 66 %%BeginPageSetup @@ -8151,7 +8158,7 @@ E F1(arr)3.748 E(ay)-.15 E F0 6.248(.O)C 1.248(ptions, if supplied,) 710.4 Q(gin assigning to)-.15 E F1(arr)2.83 E(ay)-.15 E F0(at inde)2.82 E(x)-.15 E F1(origin)2.73 E F0 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(GNU Bash 5.0)72 768 Q(2019 No) -136.385 E -.15(ve)-.15 G(mber 22).15 E(66)185.545 E 0 Cg EP +136.385 E -.15(ve)-.15 G(mber 26).15 E(66)185.545 E 0 Cg EP %%Page: 67 67 %%BeginPageSetup BP @@ -8270,7 +8277,7 @@ E(guments)-.37 E F0 5.015(.I)C 2.514(ft)-5.015 G(he)-2.514 E F2(format) 722.4 Q F0 .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(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 22) +-.25 F(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 26) .15 E(67)185.545 E 0 Cg EP %%Page: 68 68 %%BeginPageSetup @@ -8397,7 +8404,7 @@ E(s)-.1 E F0(characters are read before the delimiter)2.5 E(.)-.55 E F1 1.27(aiting for a complete)-.1 F 3.19 (line of input, unless EOF is encountered or)180 727.2 R F1 -.18(re)5.69 G(ad).18 E F0 3.19(times out.)5.69 F 3.19(Delimiter characters)8.19 F -(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 22).15 E +(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E (68)185.545 E 0 Cg EP %%Page: 69 69 %%BeginPageSetup @@ -8537,7 +8544,7 @@ F0(...])2.5 E F1(set)108 703.2 Q F0([)2.5 E F1(+abefhkmnptuvxBCEHPT)A F0 (reused as input for setting or resetting the currently-set v)144 727.2 R 3.284(ariables. Read-only)-.25 F -.25(va)3.284 G .783 (riables cannot be).25 F(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15 -(ve)-.15 G(mber 22).15 E(69)185.545 E 0 Cg EP +(ve)-.15 G(mber 26).15 E(69)185.545 E 0 Cg EP %%Page: 70 70 %%BeginPageSetup BP @@ -8646,7 +8653,7 @@ F0 2.5(option. This)224 630 R(also af)2.5 E(fects the editing interf) (functrace)184 666 Q F0(Same as)224 678 Q F2<ad54>2.5 E F0(.)A F2 (hashall)184 690 Q F0(Same as)224 690 Q F2<ad68>2.5 E F0(.)A F2 (histexpand)184 702 Q F0(Same as)224 714 Q F2<ad48>2.5 E F0(.)A -(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 22).15 E +(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E (70)185.545 E 0 Cg EP %%Page: 71 71 %%BeginPageSetup @@ -8748,7 +8755,7 @@ as an)-.25 F .183(error when performing parameter e)184 606 R 2.683 2.714(,a)C(nd)-2.714 E F1(<>)2.714 E F0 .214(redirection opera-)2.714 F 5.436(tors. This)184 726 R 2.936(may be o)5.436 F -.15(ve)-.15 G 2.936 (rridden when creating output \214les by using the redirection).15 F -(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 22).15 E +(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E (71)185.545 E 0 Cg EP %%Page: 72 72 %%BeginPageSetup @@ -8870,7 +8877,7 @@ R F2(optnames)4.044 E F0 1.544(are enabled, non-zero otherwise.)4.044 F -.15 G .885(cuting b).15 F .885(uiltins that can perform v)-.2 F .885 (ariable as-)-.25 F(signments, and while e)184 730.8 Q -.15(xe)-.15 G (cuting b).15 E(uiltins that perform array dereferencing.)-.2 E -(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 22).15 E +(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E (72)185.545 E 0 Cg EP %%Page: 73 73 %%BeginPageSetup @@ -8971,9 +8978,9 @@ F1(compat31)2.782 E F0 2.782(\)a)C .282(nd the ef)-2.782 F .282 (he single quotes must match \(an e)-5.502 F -.15(ve)-.25 G 3.002(nn).15 G .502(umber\) and the)-3.002 F 1.866 (characters between the single quotes are considered quoted.)184 624 R -1.866(This is the beha)6.866 F 1.866(vior of)-.2 F .59 -(posix mode through v)184 636 R .589(ersion 4.1.)-.15 F .589(The def) -5.589 F .589(ault bash beha)-.1 F .589(vior remains as in pre)-.2 F .589 +1.866(This is the beha)6.866 F 1.866(vior of)-.2 F .156 +(<posix mode through v)184 636 R .156(ersion 4.1.)-.15 F .155(The def) +5.156 F .155(ault bash beha)-.1 F .155(vior remains as in pre)-.2 F .155 (vious v)-.25 F(er)-.15 E(-)-.2 E(sions.)184 648 Q F1(compat42)144 660 Q F0 .587(If set,)184 672 R F1(bash)3.087 E F0 .588 (does not process the replacement string in the pattern substitution w) @@ -8984,7 +8991,7 @@ F1(bash)2.641 E F0 .141(does not print a w)2.641 F .14 (pound array assignment as an ar)184 720 R .912(gument to)-.18 F F1 (declar)3.413 E(e)-.18 E F0 3.413(,m)C(ak)-3.413 E .913(es w)-.1 F .913 (ord e)-.1 F .913(xpansion errors non-)-.15 F(GNU Bash 5.0)72 768 Q -(2019 No)136.385 E -.15(ve)-.15 G(mber 22).15 E(73)185.545 E 0 Cg EP +(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E(73)185.545 E 0 Cg EP %%Page: 74 74 %%BeginPageSetup BP @@ -9099,7 +9106,7 @@ F0(are enabled.)2.5 E F1(extquote)144 660 Q F0 .86(If set,)184 672 R F1 .243(If set, patterns which f)184 696 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 708 Q(.)-.55 -E(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 22).15 E +E(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E (74)185.545 E 0 Cg EP %%Page: 75 75 %%BeginPageSetup @@ -9200,7 +9207,7 @@ F0 .486 (The shell sets this option if it is started as a login shell \(see)184 708 R F2(INV)2.987 E(OCA)-.405 E(TION)-.855 E F0(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.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 22).15 E +E(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E (75)185.545 E 0 Cg EP %%Page: 76 76 %%BeginPageSetup @@ -9302,7 +9309,7 @@ E .786(Expressions may be combined using the follo)144 699.6 R .785 4.712 -.65(w. O)-.25 H .912(perator precedence is).65 F (used when there are \214v)144 723.6 Q 2.5(eo)-.15 G 2.5(rm)-2.5 G (ore ar)-2.5 E(guments.)-.18 E(GNU Bash 5.0)72 768 Q(2019 No)136.385 E --.15(ve)-.15 G(mber 22).15 E(76)185.545 E 0 Cg EP +-.15(ve)-.15 G(mber 26).15 E(76)185.545 E 0 Cg EP %%Page: 77 77 %%BeginPageSetup BP @@ -9425,7 +9432,7 @@ F .622(to the description of the)3.122 F F1(extdeb)3.122 E(ug)-.2 E F0 (cuted each time a shell function or a script e).15 F -.15(xe)-.15 G .18 (cuted with the).15 F F1(.)2.68 E F0(or)2.68 E F1(sour)2.68 E(ce)-.18 E F0 -.2(bu)2.68 G .18(iltins \214nishes).2 F(GNU Bash 5.0)72 768 Q -(2019 No)136.385 E -.15(ve)-.15 G(mber 22).15 E(77)185.545 E 0 Cg EP +(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E(77)185.545 E 0 Cg EP %%Page: 78 78 %%BeginPageSetup BP @@ -9557,7 +9564,7 @@ e maximum number of open \214le descriptors \(most systems do not allo) <ad72>144 693.6 Q F0(The maximum real-time scheduling priority)180 693.6 Q F4<ad73>144 705.6 Q F0(The maximum stack size)180 705.6 Q F4<ad74>144 717.6 Q F0(The maximum amount of cpu time in seconds)180 717.6 Q -(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 22).15 E +(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E (78)185.545 E 0 Cg EP %%Page: 79 79 %%BeginPageSetup @@ -9699,7 +9706,7 @@ E F0 3.581(,o)C 3.581(rt)-3.581 G(he)-3.581 E F1<ad72>3.581 E F0 1.081 5.476 F(ha)108 712.8 Q -.15(ve)-.2 G 2.5(si).15 G(dentically to)-2.5 E F1(bash)2.5 E F0(with the e)2.5 E(xception that the follo)-.15 E (wing are disallo)-.25 E(wed or not performed:)-.25 E(GNU Bash 5.0)72 -768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 22).15 E(79)185.545 E 0 Cg +768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E(79)185.545 E 0 Cg EP %%Page: 80 80 %%BeginPageSetup @@ -9771,7 +9778,7 @@ E F0(The personal initialization \214le, e)144 556.8 Q -.15(xe)-.15 G (oundation)-.15 E(bfox@gnu.or)108 669.6 Q(g)-.18 E(Chet Rame)108 686.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 698.4 Q(y@case.edu)-.15 -E(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 22).15 E +E(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15(ve)-.15 G(mber 26).15 E (80)185.545 E 0 Cg EP %%Page: 81 81 %%BeginPageSetup @@ -9826,7 +9833,7 @@ mands between parentheses to force it into a)-.25 F (ariables may not \(yet\) be e)-.25 E(xported.)-.15 E (There may be only one acti)108 453.6 Q .3 -.15(ve c)-.25 H (oprocess at a time.).15 E(GNU Bash 5.0)72 768 Q(2019 No)136.385 E -.15 -(ve)-.15 G(mber 22).15 E(81)185.545 E 0 Cg EP +(ve)-.15 G(mber 26).15 E(81)185.545 E 0 Cg EP %%Trailer end %%EOF diff --git a/doc/bashref.aux b/doc/bashref.aux index 20aabc6..59572fd 100644 --- a/doc/bashref.aux +++ b/doc/bashref.aux @@ -87,13 +87,13 @@ @xrdef{Shell Expansions-pg}{22} @xrdef{Brace Expansion-title}{Brace Expansion} @xrdef{Brace Expansion-snt}{Section@tie 3.5.1} -@xrdef{Brace Expansion-pg}{23} @xrdef{Tilde Expansion-title}{Tilde Expansion} @xrdef{Tilde Expansion-snt}{Section@tie 3.5.2} -@xrdef{Tilde Expansion-pg}{24} +@xrdef{Brace Expansion-pg}{23} @xrdef{Shell Parameter Expansion-title}{Shell Parameter Expansion} @xrdef{Shell Parameter Expansion-snt}{Section@tie 3.5.3} -@xrdef{Shell Parameter Expansion-pg}{25} +@xrdef{Tilde Expansion-pg}{24} +@xrdef{Shell Parameter Expansion-pg}{24} @xrdef{Command Substitution-title}{Command Substitution} @xrdef{Command Substitution-snt}{Section@tie 3.5.4} @xrdef{Arithmetic Expansion-title}{Arithmetic Expansion} @@ -122,10 +122,10 @@ @xrdef{Executing Commands-snt}{Section@tie 3.7} @xrdef{Simple Command Expansion-title}{Simple Command Expansion} @xrdef{Simple Command Expansion-snt}{Section@tie 3.7.1} -@xrdef{Executing Commands-pg}{38} -@xrdef{Simple Command Expansion-pg}{38} @xrdef{Command Search and Execution-title}{Command Search and Execution} @xrdef{Command Search and Execution-snt}{Section@tie 3.7.2} +@xrdef{Executing Commands-pg}{38} +@xrdef{Simple Command Expansion-pg}{38} @xrdef{Command Execution Environment-title}{Command Execution Environment} @xrdef{Command Execution Environment-snt}{Section@tie 3.7.3} @xrdef{Command Search and Execution-pg}{39} diff --git a/doc/bashref.cp b/doc/bashref.cp index 8fe054a..768b26e 100644 --- a/doc/bashref.cp +++ b/doc/bashref.cp @@ -49,8 +49,8 @@ \entry{expansion, brace}{23}{expansion, brace} \entry{tilde expansion}{24}{tilde expansion} \entry{expansion, tilde}{24}{expansion, tilde} -\entry{parameter expansion}{25}{parameter expansion} -\entry{expansion, parameter}{25}{expansion, parameter} +\entry{parameter expansion}{24}{parameter expansion} +\entry{expansion, parameter}{24}{expansion, parameter} \entry{command substitution}{31}{command substitution} \entry{expansion, arithmetic}{31}{expansion, arithmetic} \entry{arithmetic expansion}{31}{arithmetic expansion} diff --git a/doc/bashref.cps b/doc/bashref.cps index a88fcb3..83f677f 100644 --- a/doc/bashref.cps +++ b/doc/bashref.cps @@ -45,7 +45,7 @@ \entry{expansion, arithmetic}{31} \entry{expansion, brace}{23} \entry{expansion, filename}{32} -\entry{expansion, parameter}{25} +\entry{expansion, parameter}{24} \entry{expansion, pathname}{32} \entry{expansion, tilde}{24} \entry{expressions, arithmetic}{93} @@ -88,7 +88,7 @@ \initial {O} \entry{operator, shell}{3} \initial {P} -\entry{parameter expansion}{25} +\entry{parameter expansion}{24} \entry{parameters}{20} \entry{parameters, positional}{21} \entry{parameters, special}{21} diff --git a/doc/bashref.dvi b/doc/bashref.dvi Binary files differindex b57a70b..fbedaff 100644 --- a/doc/bashref.dvi +++ b/doc/bashref.dvi diff --git a/doc/bashref.html b/doc/bashref.html index 82cf9c0..d03a64a 100644 --- a/doc/bashref.html +++ b/doc/bashref.html @@ -1,9 +1,9 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <!-- This text is a brief description of the features that are present in -the Bash shell (version 5.0, 22 November 2019). +the Bash shell (version 5.0, 26 November 2019). -This is Edition 5.0, last updated 22 November 2019, +This is Edition 5.0, last updated 26 November 2019, of The GNU Bash Reference Manual, for Bash, Version 5.0. @@ -273,10 +273,10 @@ Next: <a href="#Introduction" accesskey="n" rel="next">Introduction</a>, Previou <span id="Bash-Features-1"></span><h1 class="top">Bash Features</h1> <p>This text is a brief description of the features that are present in -the Bash shell (version 5.0, 22 November 2019). +the Bash shell (version 5.0, 26 November 2019). The Bash home page is <a href="http://www.gnu.org/software/bash/">http://www.gnu.org/software/bash/</a>. </p> -<p>This is Edition 5.0, last updated 22 November 2019, +<p>This is Edition 5.0, last updated 26 November 2019, of <cite>The GNU Bash Reference Manual</cite>, for <code>Bash</code>, Version 5.0. </p> @@ -1755,16 +1755,16 @@ shell context; no new process is created to interpret them. <p>Functions are declared using this syntax: <span id="index-function"></span> </p><div class="example"> -<pre class="example"><var>name</var> () <var>compound-command</var> [ <var>redirections</var> ] +<pre class="example"><var>fname</var> () <var>compound-command</var> [ <var>redirections</var> ] </pre></div> <p>or </p> <div class="example"> -<pre class="example">function <var>name</var> [()] <var>compound-command</var> [ <var>redirections</var> ] +<pre class="example">function <var>fname</var> [()] <var>compound-command</var> [ <var>redirections</var> ] </pre></div> -<p>This defines a shell function named <var>name</var>. The reserved +<p>This defines a shell function named <var>fname</var>. The reserved word <code>function</code> is optional. If the <code>function</code> reserved word is supplied, the parentheses are optional. @@ -1774,15 +1774,17 @@ That command is usually a <var>list</var> enclosed between { and }, but may be any compound command listed above, with one exception: If the <code>function</code> reserved word is used, but the parentheses are not supplied, the braces are required. -<var>compound-command</var> is executed whenever <var>name</var> is specified as the +<var>compound-command</var> is executed whenever <var>fname</var> is specified as the name of a command. When the shell is in <small>POSIX</small> mode (see <a href="#Bash-POSIX-Mode">Bash POSIX Mode</a>), -<var>name</var> may not be the same as one of the special builtins +<var>fname</var> must be a valid shell <var>name</var> and +may not be the same as one of the special builtins (see <a href="#Special-Builtins">Special Builtins</a>). +In default mode, a function name can be any unquoted shell word that does +not contain ‘<samp>$</samp>’. Any redirections (see <a href="#Redirections">Redirections</a>) associated with the shell function are performed when the function is executed. -</p> -<p>A function definition may be deleted using the <samp>-f</samp> option to the +A function definition may be deleted using the <samp>-f</samp> option to the <code>unset</code> builtin (see <a href="#Bourne-Shell-Builtins">Bourne Shell Builtins</a>). </p> <p>The exit status of a function definition is zero unless a syntax error @@ -2160,21 +2162,6 @@ If Bash is started with the <samp>-c</samp> option (see <a href="#Invoking-Bash" then <code>$0</code> 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. -</p> -</dd> -<dt><code>_</code> -<span id="index-_005f"></span> -</dt> -<dd><span id="index-_0024_005f"></span> -<p>($_, an underscore.) -At shell startup, set to the absolute pathname used to invoke the -shell or shell script being executed as passed in the environment -or argument list. -Subsequently, expands to the last argument to the previous simple -command executed in the foreground, after expansion. -Also set to the full pathname used to invoke each command executed -and placed in the environment exported to that command. -When checking mail, this parameter holds the name of the mail file. </p></dd> </dl> @@ -6453,6 +6440,21 @@ variables for controlling the job control facilities (see <a href="#Job-Control-Variables">Job Control Variables</a>). </p> <dl compact="compact"> +<dt><code>_</code> +<span id="index-_005f"></span> +</dt> +<dd><span id="index-_0024_005f"></span> +<p>($_, an underscore.) +At shell startup, set to the absolute pathname used to invoke the +shell or shell script being executed as passed in the environment +or argument list. +Subsequently, expands to the last argument to the previous simple +command executed in the foreground, after expansion. +Also set to the full pathname used to invoke each command executed +and placed in the environment exported to that command. +When checking mail, this parameter holds the name of the mail file. +</p> +</dd> <dt><code>BASH</code> <span id="index-BASH"></span> </dt> @@ -10096,8 +10098,9 @@ the maximum number of history entries will be set to 500. <p>This variable can be set to either ‘<samp>on</samp>’ or ‘<samp>off</samp>’. Setting it to ‘<samp>on</samp>’ means that the text of the lines being edited will scroll horizontally on a single screen line when they are longer than the width -of the screen, instead of wrapping onto a new screen line. By default, -this variable is set to ‘<samp>off</samp>’. +of the screen, instead of wrapping onto a new screen line. +This variable is automatically set to ‘<samp>on</samp>’ for terminals of height 1. +By default, this variable is set to ‘<samp>off</samp>’. </p> </dd> <dt><code>input-meta</code></dt> @@ -14817,7 +14820,7 @@ Next: <a href="#Function-Index" accesskey="n" rel="next">Function Index</a>, Pre <tr><td></td><td valign="top"><a href="#index-_00240"><code>$0</code></a>:</td><td> </td><td valign="top"><a href="#Special-Parameters">Special Parameters</a></td></tr> <tr><td></td><td valign="top"><a href="#index-_0024_003f"><code>$?</code></a>:</td><td> </td><td valign="top"><a href="#Special-Parameters">Special Parameters</a></td></tr> <tr><td></td><td valign="top"><a href="#index-_0024_0040"><code>$@</code></a>:</td><td> </td><td valign="top"><a href="#Special-Parameters">Special Parameters</a></td></tr> -<tr><td></td><td valign="top"><a href="#index-_0024_005f"><code>$_</code></a>:</td><td> </td><td valign="top"><a href="#Special-Parameters">Special Parameters</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_0024_005f"><code>$_</code></a>:</td><td> </td><td valign="top"><a href="#Bash-Variables">Bash Variables</a></td></tr> <tr><td colspan="4"> <hr></td></tr> <tr><th id="Variable-Index_vr_symbol-4">*</th><td></td><td></td></tr> <tr><td></td><td valign="top"><a href="#index-_002a"><code>*</code></a>:</td><td> </td><td valign="top"><a href="#Special-Parameters">Special Parameters</a></td></tr> @@ -14835,7 +14838,7 @@ Next: <a href="#Function-Index" accesskey="n" rel="next">Function Index</a>, Pre <tr><td></td><td valign="top"><a href="#index-_0040"><code>@</code></a>:</td><td> </td><td valign="top"><a href="#Special-Parameters">Special Parameters</a></td></tr> <tr><td colspan="4"> <hr></td></tr> <tr><th id="Variable-Index_vr_symbol-9">_</th><td></td><td></td></tr> -<tr><td></td><td valign="top"><a href="#index-_005f"><code>_</code></a>:</td><td> </td><td valign="top"><a href="#Special-Parameters">Special Parameters</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_005f"><code>_</code></a>:</td><td> </td><td valign="top"><a href="#Bash-Variables">Bash Variables</a></td></tr> <tr><td colspan="4"> <hr></td></tr> <tr><th id="Variable-Index_vr_letter-A">A</th><td></td><td></td></tr> <tr><td></td><td valign="top"><a href="#index-auto_005fresume"><code>auto_resume</code></a>:</td><td> </td><td valign="top"><a href="#Job-Control-Variables">Job Control Variables</a></td></tr> diff --git a/doc/bashref.info b/doc/bashref.info index 90e8dc8..7828c0c 100644 --- a/doc/bashref.info +++ b/doc/bashref.info @@ -2,9 +2,9 @@ This is bashref.info, produced by makeinfo version 6.7 from bashref.texi. This text is a brief description of the features that are present in the -Bash shell (version 5.0, 22 November 2019). +Bash shell (version 5.0, 26 November 2019). - This is Edition 5.0, last updated 22 November 2019, of 'The GNU Bash + This is Edition 5.0, last updated 26 November 2019, of 'The GNU Bash Reference Manual', for 'Bash', Version 5.0. Copyright (C) 1988-2018 Free Software Foundation, Inc. @@ -27,10 +27,10 @@ Bash Features ************* This text is a brief description of the features that are present in the -Bash shell (version 5.0, 22 November 2019). The Bash home page is +Bash shell (version 5.0, 26 November 2019). The Bash home page is <http://www.gnu.org/software/bash/>. - This is Edition 5.0, last updated 22 November 2019, of 'The GNU Bash + This is Edition 5.0, last updated 26 November 2019, of 'The GNU Bash Reference Manual', for 'Bash', Version 5.0. Bash contains features that appear in other popular shells, and some @@ -1176,27 +1176,28 @@ executed. Shell functions are executed in the current shell context; no new process is created to interpret them. Functions are declared using this syntax: - NAME () COMPOUND-COMMAND [ REDIRECTIONS ] + FNAME () COMPOUND-COMMAND [ REDIRECTIONS ] or - function NAME [()] COMPOUND-COMMAND [ REDIRECTIONS ] + function FNAME [()] COMPOUND-COMMAND [ REDIRECTIONS ] - This defines a shell function named NAME. The reserved word + 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, with one exception: If the 'function' reserved word is used, but the parentheses are not supplied, the braces are required. -COMPOUND-COMMAND is executed whenever NAME is specified as the name of a -command. When the shell is in POSIX mode (*note Bash POSIX Mode::), -NAME may not be the same as one of the special builtins (*note Special -Builtins::). Any redirections (*note Redirections::) associated with -the shell function are performed when the function is executed. - - A function definition may be deleted using the '-f' option to the -'unset' builtin (*note Bourne Shell Builtins::). +COMPOUND-COMMAND is executed whenever FNAME is specified as the name of +a command. 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::). In default 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. A function +definition may be 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. @@ -1479,16 +1480,6 @@ only be referenced; assignment to them is not allowed. be executed, if one is present. Otherwise, it is set to the filename used to invoke Bash, as given by argument zero. -'_' - ($_, an underscore.) At shell startup, set to the absolute - pathname used to invoke the shell or shell script being executed as - passed in the environment or argument list. Subsequently, expands - to the last argument to the previous simple command executed in the - foreground, after expansion. Also set to the full pathname used to - invoke each command executed and placed in the environment exported - to that command. When checking mail, this parameter holds the name - of the mail file. - File: bashref.info, Node: Shell Expansions, Next: Redirections, Prev: Shell Parameters, Up: Basic Shell Features @@ -4859,6 +4850,16 @@ normally treat them specially. variables for controlling the job control facilities (*note Job Control Variables::). +'_' + ($_, an underscore.) At shell startup, set to the absolute + pathname used to invoke the shell or shell script being executed as + passed in the environment or argument list. Subsequently, expands + to the last argument to the previous simple command executed in the + foreground, after expansion. Also set to the full pathname used to + invoke each command executed and placed in the environment exported + to that command. When checking mail, this parameter holds the name + of the mail file. + 'BASH' The full pathname used to execute the current instance of Bash. @@ -7607,7 +7608,9 @@ Variable Settings to 'on' means that the text of the lines being edited will scroll horizontally on a single screen line when they are longer than the width of the screen, instead of wrapping onto - a new screen line. By default, this variable is set to 'off'. + 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 will enable eight-bit input (it will @@ -11197,35 +11200,35 @@ D.3 Parameter and Variable Index * $0: Special Parameters. (line 62) * $?: Special Parameters. (line 43) * $@: Special Parameters. (line 23) -* $_: Special Parameters. (line 71) +* $_: Bash Variables. (line 14) * *: Special Parameters. (line 9) * -: Special Parameters. (line 46) * 0: Special Parameters. (line 61) * ?: Special Parameters. (line 42) * @: Special Parameters. (line 22) -* _: Special Parameters. (line 70) +* _: Bash Variables. (line 13) * auto_resume: Job Control Variables. (line 6) -* BASH: Bash Variables. (line 13) -* BASHOPTS: Bash Variables. (line 16) -* BASHPID: Bash Variables. (line 25) -* BASH_ALIASES: Bash Variables. (line 32) -* BASH_ARGC: Bash Variables. (line 41) -* BASH_ARGV: Bash Variables. (line 54) -* BASH_ARGV0: Bash Variables. (line 66) -* BASH_CMDS: Bash Variables. (line 74) -* BASH_COMMAND: Bash Variables. (line 83) -* BASH_COMPAT: Bash Variables. (line 90) -* BASH_ENV: Bash Variables. (line 105) -* BASH_EXECUTION_STRING: Bash Variables. (line 111) -* BASH_LINENO: Bash Variables. (line 114) -* BASH_LOADABLES_PATH: Bash Variables. (line 122) -* BASH_REMATCH: Bash Variables. (line 126) -* BASH_SOURCE: Bash Variables. (line 134) -* BASH_SUBSHELL: Bash Variables. (line 141) -* BASH_VERSINFO: Bash Variables. (line 147) -* BASH_VERSION: Bash Variables. (line 170) -* BASH_XTRACEFD: Bash Variables. (line 173) +* BASH: Bash Variables. (line 23) +* BASHOPTS: Bash Variables. (line 26) +* BASHPID: Bash Variables. (line 35) +* BASH_ALIASES: Bash Variables. (line 42) +* BASH_ARGC: Bash Variables. (line 51) +* BASH_ARGV: Bash Variables. (line 64) +* BASH_ARGV0: Bash Variables. (line 76) +* BASH_CMDS: Bash Variables. (line 84) +* BASH_COMMAND: Bash Variables. (line 93) +* BASH_COMPAT: Bash Variables. (line 100) +* BASH_ENV: Bash Variables. (line 115) +* BASH_EXECUTION_STRING: Bash Variables. (line 121) +* BASH_LINENO: Bash Variables. (line 124) +* BASH_LOADABLES_PATH: Bash Variables. (line 132) +* BASH_REMATCH: Bash Variables. (line 136) +* BASH_SOURCE: Bash Variables. (line 144) +* BASH_SUBSHELL: Bash Variables. (line 151) +* BASH_VERSINFO: Bash Variables. (line 157) +* BASH_VERSION: Bash Variables. (line 180) +* BASH_XTRACEFD: Bash Variables. (line 183) * bell-style: Readline Init File Syntax. (line 38) * bind-tty-special-chars: Readline Init File Syntax. @@ -11234,12 +11237,12 @@ D.3 Parameter and Variable Index (line 50) * CDPATH: Bourne Shell Variables. (line 9) -* CHILD_MAX: Bash Variables. (line 184) +* CHILD_MAX: Bash Variables. (line 194) * colored-completion-prefix: Readline Init File Syntax. (line 55) * colored-stats: Readline Init File Syntax. (line 62) -* COLUMNS: Bash Variables. (line 191) +* COLUMNS: Bash Variables. (line 201) * comment-begin: Readline Init File Syntax. (line 68) * completion-display-width: Readline Init File Syntax. @@ -11252,158 +11255,158 @@ D.3 Parameter and Variable Index (line 91) * completion-query-items: Readline Init File Syntax. (line 98) -* COMPREPLY: Bash Variables. (line 243) -* COMP_CWORD: Bash Variables. (line 197) -* COMP_KEY: Bash Variables. (line 226) -* COMP_LINE: Bash Variables. (line 203) -* COMP_POINT: Bash Variables. (line 208) -* COMP_TYPE: Bash Variables. (line 216) -* COMP_WORDBREAKS: Bash Variables. (line 230) -* COMP_WORDS: Bash Variables. (line 236) +* COMPREPLY: Bash Variables. (line 253) +* COMP_CWORD: Bash Variables. (line 207) +* COMP_KEY: Bash Variables. (line 236) +* COMP_LINE: Bash Variables. (line 213) +* COMP_POINT: Bash Variables. (line 218) +* COMP_TYPE: Bash Variables. (line 226) +* COMP_WORDBREAKS: Bash Variables. (line 240) +* COMP_WORDS: Bash Variables. (line 246) * convert-meta: Readline Init File Syntax. (line 108) -* COPROC: Bash Variables. (line 249) -* DIRSTACK: Bash Variables. (line 253) +* COPROC: Bash Variables. (line 259) +* DIRSTACK: Bash Variables. (line 263) * disable-completion: Readline Init File Syntax. (line 116) * echo-control-characters: Readline Init File Syntax. (line 121) * editing-mode: Readline Init File Syntax. (line 126) -* EMACS: Bash Variables. (line 263) +* EMACS: Bash Variables. (line 273) * emacs-mode-string: Readline Init File Syntax. (line 132) * enable-bracketed-paste: Readline Init File Syntax. (line 142) * enable-keypad: Readline Init File Syntax. (line 150) -* ENV: Bash Variables. (line 268) -* EPOCHREALTIME: Bash Variables. (line 272) -* EPOCHSECONDS: Bash Variables. (line 280) -* EUID: Bash Variables. (line 287) -* EXECIGNORE: Bash Variables. (line 291) +* ENV: Bash Variables. (line 278) +* EPOCHREALTIME: Bash Variables. (line 282) +* EPOCHSECONDS: Bash Variables. (line 290) +* EUID: Bash Variables. (line 297) +* EXECIGNORE: Bash Variables. (line 301) * expand-tilde: Readline Init File Syntax. (line 161) -* FCEDIT: Bash Variables. (line 304) -* FIGNORE: Bash Variables. (line 308) -* FUNCNAME: Bash Variables. (line 314) -* FUNCNEST: Bash Variables. (line 331) -* GLOBIGNORE: Bash Variables. (line 336) -* GROUPS: Bash Variables. (line 343) -* histchars: Bash Variables. (line 349) -* HISTCMD: Bash Variables. (line 364) -* HISTCONTROL: Bash Variables. (line 369) -* HISTFILE: Bash Variables. (line 385) -* HISTFILESIZE: Bash Variables. (line 389) -* HISTIGNORE: Bash Variables. (line 400) +* FCEDIT: Bash Variables. (line 314) +* FIGNORE: Bash Variables. (line 318) +* FUNCNAME: Bash Variables. (line 324) +* FUNCNEST: Bash Variables. (line 341) +* GLOBIGNORE: Bash Variables. (line 346) +* GROUPS: Bash Variables. (line 353) +* histchars: Bash Variables. (line 359) +* HISTCMD: Bash Variables. (line 374) +* HISTCONTROL: Bash Variables. (line 379) +* HISTFILE: Bash Variables. (line 395) +* HISTFILESIZE: Bash Variables. (line 399) +* HISTIGNORE: Bash Variables. (line 410) * history-preserve-point: Readline Init File Syntax. (line 165) * history-size: Readline Init File Syntax. (line 171) -* HISTSIZE: Bash Variables. (line 420) -* HISTTIMEFORMAT: Bash Variables. (line 427) +* HISTSIZE: Bash Variables. (line 430) +* HISTTIMEFORMAT: Bash Variables. (line 437) * HOME: Bourne Shell Variables. (line 13) * horizontal-scroll-mode: Readline Init File Syntax. (line 180) -* HOSTFILE: Bash Variables. (line 435) -* HOSTNAME: Bash Variables. (line 446) -* HOSTTYPE: Bash Variables. (line 449) +* HOSTFILE: Bash Variables. (line 445) +* HOSTNAME: Bash Variables. (line 456) +* HOSTTYPE: Bash Variables. (line 459) * IFS: Bourne Shell Variables. (line 18) -* IGNOREEOF: Bash Variables. (line 452) +* IGNOREEOF: Bash Variables. (line 462) * input-meta: Readline Init File Syntax. - (line 187) -* INPUTRC: Bash Variables. (line 462) -* INSIDE_EMACS: Bash Variables. (line 466) + (line 189) +* INPUTRC: Bash Variables. (line 472) +* INSIDE_EMACS: Bash Variables. (line 476) * isearch-terminators: Readline Init File Syntax. - (line 195) + (line 197) * keymap: Readline Init File Syntax. - (line 202) -* LANG: Bash Variables. (line 472) -* LC_ALL: Bash Variables. (line 476) -* LC_COLLATE: Bash Variables. (line 480) -* LC_CTYPE: Bash Variables. (line 487) + (line 204) +* LANG: Bash Variables. (line 482) +* LC_ALL: Bash Variables. (line 486) +* LC_COLLATE: Bash Variables. (line 490) +* LC_CTYPE: Bash Variables. (line 497) * LC_MESSAGES: Locale Translation. (line 11) -* LC_MESSAGES <1>: Bash Variables. (line 492) -* LC_NUMERIC: Bash Variables. (line 496) -* LC_TIME: Bash Variables. (line 500) -* LINENO: Bash Variables. (line 504) -* LINES: Bash Variables. (line 509) -* MACHTYPE: Bash Variables. (line 515) +* LC_MESSAGES <1>: Bash Variables. (line 502) +* LC_NUMERIC: Bash Variables. (line 506) +* LC_TIME: Bash Variables. (line 510) +* LINENO: Bash Variables. (line 514) +* LINES: Bash Variables. (line 519) +* MACHTYPE: Bash Variables. (line 525) * MAIL: Bourne Shell Variables. (line 22) -* MAILCHECK: Bash Variables. (line 519) +* MAILCHECK: Bash Variables. (line 529) * MAILPATH: Bourne Shell Variables. (line 27) -* MAPFILE: Bash Variables. (line 527) +* MAPFILE: Bash Variables. (line 537) * mark-modified-lines: Readline Init File Syntax. - (line 232) + (line 234) * mark-symlinked-directories: Readline Init File Syntax. - (line 237) + (line 239) * match-hidden-files: Readline Init File Syntax. - (line 242) + (line 244) * menu-complete-display-prefix: Readline Init File Syntax. - (line 249) + (line 251) * meta-flag: Readline Init File Syntax. - (line 187) -* OLDPWD: Bash Variables. (line 531) + (line 189) +* OLDPWD: Bash Variables. (line 541) * OPTARG: Bourne Shell Variables. (line 34) -* OPTERR: Bash Variables. (line 534) +* OPTERR: Bash Variables. (line 544) * OPTIND: Bourne Shell Variables. (line 38) -* OSTYPE: Bash Variables. (line 538) +* OSTYPE: Bash Variables. (line 548) * output-meta: Readline Init File Syntax. - (line 254) + (line 256) * page-completions: Readline Init File Syntax. - (line 260) + (line 262) * PATH: Bourne Shell Variables. (line 42) -* PIPESTATUS: Bash Variables. (line 541) -* POSIXLY_CORRECT: Bash Variables. (line 546) -* PPID: Bash Variables. (line 556) -* PROMPT_COMMAND: Bash Variables. (line 560) -* PROMPT_DIRTRIM: Bash Variables. (line 564) -* PS0: Bash Variables. (line 570) +* PIPESTATUS: Bash Variables. (line 551) +* POSIXLY_CORRECT: Bash Variables. (line 556) +* PPID: Bash Variables. (line 566) +* PROMPT_COMMAND: Bash Variables. (line 570) +* PROMPT_DIRTRIM: Bash Variables. (line 574) +* PS0: Bash Variables. (line 580) * PS1: Bourne Shell Variables. (line 48) * PS2: Bourne Shell Variables. (line 53) -* PS3: Bash Variables. (line 575) -* PS4: Bash Variables. (line 580) -* PWD: Bash Variables. (line 588) -* RANDOM: Bash Variables. (line 591) -* READLINE_LINE: Bash Variables. (line 597) -* READLINE_POINT: Bash Variables. (line 601) -* REPLY: Bash Variables. (line 605) +* PS3: Bash Variables. (line 585) +* PS4: Bash Variables. (line 590) +* PWD: Bash Variables. (line 598) +* RANDOM: Bash Variables. (line 601) +* READLINE_LINE: Bash Variables. (line 607) +* READLINE_POINT: Bash Variables. (line 611) +* REPLY: Bash Variables. (line 615) * revert-all-at-newline: Readline Init File Syntax. - (line 270) -* SECONDS: Bash Variables. (line 608) -* SHELL: Bash Variables. (line 615) -* SHELLOPTS: Bash Variables. (line 620) -* SHLVL: Bash Variables. (line 629) + (line 272) +* SECONDS: Bash Variables. (line 618) +* SHELL: Bash Variables. (line 625) +* SHELLOPTS: Bash Variables. (line 630) +* SHLVL: Bash Variables. (line 639) * show-all-if-ambiguous: Readline Init File Syntax. - (line 276) + (line 278) * show-all-if-unmodified: Readline Init File Syntax. - (line 282) + (line 284) * show-mode-in-prompt: Readline Init File Syntax. - (line 291) + (line 293) * skip-completed-text: Readline Init File Syntax. - (line 297) -* SRANDOM: Bash Variables. (line 634) + (line 299) +* SRANDOM: Bash Variables. (line 644) * TEXTDOMAIN: Locale Translation. (line 11) * TEXTDOMAINDIR: Locale Translation. (line 11) -* TIMEFORMAT: Bash Variables. (line 643) -* TMOUT: Bash Variables. (line 681) -* TMPDIR: Bash Variables. (line 693) -* UID: Bash Variables. (line 697) +* TIMEFORMAT: Bash Variables. (line 653) +* TMOUT: Bash Variables. (line 691) +* TMPDIR: Bash Variables. (line 703) +* UID: Bash Variables. (line 707) * vi-cmd-mode-string: Readline Init File Syntax. - (line 310) + (line 312) * vi-ins-mode-string: Readline Init File Syntax. - (line 321) + (line 323) * visible-stats: Readline Init File Syntax. - (line 332) + (line 334) File: bashref.info, Node: Function Index, Next: Concept Index, Prev: Variable Index, Up: Indexes @@ -11794,109 +11797,109 @@ Node: Command Grouping40662 Node: Coprocesses42141 Node: GNU Parallel44044 Node: Shell Functions48345 -Node: Shell Parameters55428 -Node: Positional Parameters59841 -Node: Special Parameters60741 -Node: Shell Expansions64495 -Node: Brace Expansion66618 -Node: Tilde Expansion69341 -Node: Shell Parameter Expansion71958 -Node: Command Substitution86391 -Node: Arithmetic Expansion87746 -Node: Process Substitution88678 -Node: Word Splitting89798 -Node: Filename Expansion91742 -Node: Pattern Matching94291 -Node: Quote Removal98277 -Node: Redirections98572 -Node: Executing Commands108130 -Node: Simple Command Expansion108800 -Node: Command Search and Execution110754 -Node: Command Execution Environment113130 -Node: Environment116114 -Node: Exit Status117773 -Node: Signals119443 -Node: Shell Scripts121410 -Node: Shell Builtin Commands124422 -Node: Bourne Shell Builtins126460 -Node: Bash Builtins147376 -Node: Modifying Shell Behavior176301 -Node: The Set Builtin176646 -Node: The Shopt Builtin187059 -Node: Special Builtins204729 -Node: Shell Variables205708 -Node: Bourne Shell Variables206145 -Node: Bash Variables208249 -Node: Bash Features239661 -Node: Invoking Bash240560 -Node: Bash Startup Files246573 -Node: Interactive Shells251676 -Node: What is an Interactive Shell?252086 -Node: Is this Shell Interactive?252735 -Node: Interactive Shell Behavior253550 -Node: Bash Conditional Expressions257037 -Node: Shell Arithmetic261614 -Node: Aliases264554 -Node: Arrays267174 -Node: The Directory Stack272539 -Node: Directory Stack Builtins273323 -Node: Controlling the Prompt276291 -Node: The Restricted Shell279212 -Node: Bash POSIX Mode281694 -Node: Job Control292627 -Node: Job Control Basics293087 -Node: Job Control Builtins298051 -Node: Job Control Variables303197 -Node: Command Line Editing304353 -Node: Introduction and Notation306024 -Node: Readline Interaction307647 -Node: Readline Bare Essentials308838 -Node: Readline Movement Commands310621 -Node: Readline Killing Commands311581 -Node: Readline Arguments313499 -Node: Searching314543 -Node: Readline Init File316729 -Node: Readline Init File Syntax317988 -Node: Conditional Init Constructs338427 -Node: Sample Init File342623 -Node: Bindable Readline Commands345740 -Node: Commands For Moving346944 -Node: Commands For History348803 -Node: Commands For Text353098 -Node: Commands For Killing356486 -Node: Numeric Arguments359301 -Node: Commands For Completion360440 -Node: Keyboard Macros364631 -Node: Miscellaneous Commands365318 -Node: Readline vi Mode371271 -Node: Programmable Completion372178 -Node: Programmable Completion Builtins379958 -Node: A Programmable Completion Example390653 -Node: Using History Interactively395900 -Node: Bash History Facilities396584 -Node: Bash History Builtins399589 -Node: History Interaction404120 -Node: Event Designators407740 -Node: Word Designators409094 -Node: Modifiers410854 -Node: Installing Bash412665 -Node: Basic Installation413802 -Node: Compilers and Options417060 -Node: Compiling For Multiple Architectures417801 -Node: Installation Names419494 -Node: Specifying the System Type420312 -Node: Sharing Defaults421028 -Node: Operation Controls421701 -Node: Optional Features422659 -Node: Reporting Bugs433177 -Node: Major Differences From The Bourne Shell434371 -Node: GNU Free Documentation License451223 -Node: Indexes476400 -Node: Builtin Index476854 -Node: Reserved Word Index483681 -Node: Variable Index486129 -Node: Function Index501953 -Node: Concept Index515392 +Node: Shell Parameters55552 +Node: Positional Parameters59965 +Node: Special Parameters60865 +Node: Shell Expansions64089 +Node: Brace Expansion66212 +Node: Tilde Expansion68935 +Node: Shell Parameter Expansion71552 +Node: Command Substitution85985 +Node: Arithmetic Expansion87340 +Node: Process Substitution88272 +Node: Word Splitting89392 +Node: Filename Expansion91336 +Node: Pattern Matching93885 +Node: Quote Removal97871 +Node: Redirections98166 +Node: Executing Commands107724 +Node: Simple Command Expansion108394 +Node: Command Search and Execution110348 +Node: Command Execution Environment112724 +Node: Environment115708 +Node: Exit Status117367 +Node: Signals119037 +Node: Shell Scripts121004 +Node: Shell Builtin Commands124016 +Node: Bourne Shell Builtins126054 +Node: Bash Builtins146970 +Node: Modifying Shell Behavior175895 +Node: The Set Builtin176240 +Node: The Shopt Builtin186653 +Node: Special Builtins204323 +Node: Shell Variables205302 +Node: Bourne Shell Variables205739 +Node: Bash Variables207843 +Node: Bash Features239785 +Node: Invoking Bash240684 +Node: Bash Startup Files246697 +Node: Interactive Shells251800 +Node: What is an Interactive Shell?252210 +Node: Is this Shell Interactive?252859 +Node: Interactive Shell Behavior253674 +Node: Bash Conditional Expressions257161 +Node: Shell Arithmetic261738 +Node: Aliases264678 +Node: Arrays267298 +Node: The Directory Stack272663 +Node: Directory Stack Builtins273447 +Node: Controlling the Prompt276415 +Node: The Restricted Shell279336 +Node: Bash POSIX Mode281818 +Node: Job Control292751 +Node: Job Control Basics293211 +Node: Job Control Builtins298175 +Node: Job Control Variables303321 +Node: Command Line Editing304477 +Node: Introduction and Notation306148 +Node: Readline Interaction307771 +Node: Readline Bare Essentials308962 +Node: Readline Movement Commands310745 +Node: Readline Killing Commands311705 +Node: Readline Arguments313623 +Node: Searching314667 +Node: Readline Init File316853 +Node: Readline Init File Syntax318112 +Node: Conditional Init Constructs338642 +Node: Sample Init File342838 +Node: Bindable Readline Commands345955 +Node: Commands For Moving347159 +Node: Commands For History349018 +Node: Commands For Text353313 +Node: Commands For Killing356701 +Node: Numeric Arguments359516 +Node: Commands For Completion360655 +Node: Keyboard Macros364846 +Node: Miscellaneous Commands365533 +Node: Readline vi Mode371486 +Node: Programmable Completion372393 +Node: Programmable Completion Builtins380173 +Node: A Programmable Completion Example390868 +Node: Using History Interactively396115 +Node: Bash History Facilities396799 +Node: Bash History Builtins399804 +Node: History Interaction404335 +Node: Event Designators407955 +Node: Word Designators409309 +Node: Modifiers411069 +Node: Installing Bash412880 +Node: Basic Installation414017 +Node: Compilers and Options417275 +Node: Compiling For Multiple Architectures418016 +Node: Installation Names419709 +Node: Specifying the System Type420527 +Node: Sharing Defaults421243 +Node: Operation Controls421916 +Node: Optional Features422874 +Node: Reporting Bugs433392 +Node: Major Differences From The Bourne Shell434586 +Node: GNU Free Documentation License451438 +Node: Indexes476615 +Node: Builtin Index477069 +Node: Reserved Word Index483896 +Node: Variable Index486344 +Node: Function Index502168 +Node: Concept Index515607 End Tag Table diff --git a/doc/bashref.log b/doc/bashref.log index 1bf46a7..6bc3079 100644 --- a/doc/bashref.log +++ b/doc/bashref.log @@ -1,4 +1,4 @@ -This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019/MacPorts 2019.50896_1) (preloaded format=etex 2019.11.6) 22 NOV 2019 15:35 +This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019/MacPorts 2019.50896_1) (preloaded format=pdfetex 2019.11.6) 26 NOV 2019 11:18 entering extended mode restricted \write18 enabled. file:line:error style messages enabled. @@ -161,8 +161,11 @@ This is `epsf.tex' v2.7.4 <14 February 2011> texinfo.tex: doing @include of version.texi -(/usr/homes/chet/src/bash/src/doc/version.texi) [1] [2] -(/usr/homes/chet/src/bash/src/doc/bashref.toc [-1] [-2] [-3]) [-4] Chapter 1 +(/usr/homes/chet/src/bash/src/doc/version.texi) [1{/opt/local/var/db/texmf/font +s/map/pdftex/updmap/pdftex.map}] [2] +(/usr/homes/chet/src/bash/src/doc/bashref.toc [-1] [-2] [-3]) [-4] +(/usr/homes/chet/src/bash/src/doc/bashref.toc) +(/usr/homes/chet/src/bash/src/doc/bashref.toc) Chapter 1 \openout0 = `bashref.toc'. @@ -190,7 +193,7 @@ texinfo.tex: doing @include of version.texi [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] -[63] [64] [65] [66] [67] [68] [69] [70] [71] Chapter 5 [72] [73] [74] [75] +[63] [64] [65] [66] [67] [68] [69] [70] [71] [72] Chapter 5 [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] Chapter 6 [85] [86] [87] [88] [89] [90] [91] [92] [93] [94] [95] [96] [97] [98] [99] [100] [101] [102] [103] Chapter 7 [104] [105] [106] [107] @@ -199,7 +202,7 @@ texinfo.tex: doing @include of rluser.texi (/usr/homes/chet/src/bash/src/lib/readline/doc/rluser.texi Chapter 8 [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] -Underfull \hbox (badness 7540) in paragraph at lines 812--818 +Underfull \hbox (badness 7540) in paragraph at lines 813--819 []@textrm In the ex-am-ple above, @textttsl C-u[] @textrm is bound to the func -tion @@ -212,7 +215,7 @@ Underfull \hbox (badness 7540) in paragraph at lines 812--818 .etc. -Underfull \hbox (badness 10000) in paragraph at lines 812--818 +Underfull \hbox (badness 10000) in paragraph at lines 813--819 @texttt universal-argument[]@textrm , @textttsl M-DEL[] @textrm is bound to th e func-tion @@ -225,7 +228,7 @@ e func-tion .etc. [119] [120] [121] [122] -Overfull \hbox (26.43913pt too wide) in paragraph at lines 1046--1046 +Overfull \hbox (26.43913pt too wide) in paragraph at lines 1047--1047 []@texttt Meta-Control-h: backward-kill-word Text after the function name is i gnored[] @@ -243,7 +246,7 @@ gnored[] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] -Overfull \hbox (15.27109pt too wide) in paragraph at lines 2042--2042 +Overfull \hbox (15.27109pt too wide) in paragraph at lines 2043--2043 []@texttt complete [-abcdefgjksuv] [-o @textttsl comp-option@texttt ] [-DEI] [ -A @textttsl ac-tion@texttt ] [- @@ -283,12 +286,34 @@ Overfull \vbox (0.67252pt too high) has occurred while \output is active [177] [178] [179] [180] [181] ) Here is how much of TeX's memory you used: - 3517 strings out of 497108 - 39941 string characters out of 6207178 - 86576 words of memory out of 5000000 - 4683 multiletter control sequences out of 15000+600000 + 4068 strings out of 497098 + 47117 string characters out of 6206772 + 138084 words of memory out of 5000000 + 4848 multiletter control sequences out of 15000+600000 34315 words of font info for 116 fonts, out of 8000000 for 9000 51 hyphenation exceptions out of 8191 - 16i,6n,16p,339b,936s stack positions out of 5000i,500n,10000p,200000b,80000s + 16i,6n,16p,339b,968s stack positions out of 5000i,500n,10000p,200000b,80000s +{/opt/local/share/texmf-texlive/fonts/enc/dvips/ +cm-super/cm-super-t1.enc}</opt/local/share/texmf-texlive/fonts/type1/public/ams +fonts/cm/cmbx12.pfb></opt/local/share/texmf-texlive/fonts/type1/public/amsfonts +/cm/cmcsc10.pfb></opt/local/share/texmf-texlive/fonts/type1/public/amsfonts/cm/ +cmmi10.pfb></opt/local/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmmi1 +2.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/s +hare/texmf-texlive/fonts/type1/public/amsfonts/cm/cmsl10.pfb></opt/local/share/ +texmf-texlive/fonts/type1/public/amsfonts/cm/cmsltt10.pfb></opt/local/share/tex +mf-texlive/fonts/type1/public/amsfonts/cm/cmsy10.pfb></opt/local/share/texmf-te +xlive/fonts/type1/public/amsfonts/cm/cmti10.pfb></opt/local/share/texmf-texlive +/fonts/type1/public/amsfonts/cm/cmtt10.pfb></opt/local/share/texmf-texlive/font +s/type1/public/amsfonts/cm/cmtt12.pfb></opt/local/share/texmf-texlive/fonts/typ +e1/public/amsfonts/cm/cmtt9.pfb></opt/local/share/texmf-texlive/fonts/type1/pub +lic/cm-super/sfrm1095.pfb></opt/local/share/texmf-texlive/fonts/type1/public/cm +-super/sfrm1440.pfb> +Output written on bashref.pdf (187 pages, 759184 bytes). +PDF statistics: + 2644 PDF objects out of 2984 (max. 8388607) + 2411 compressed objects within 25 object streams + 313 named destinations out of 1000 (max. 500000) + 1125 words of extra memory for PDF output out of 10000 (max. 10000000) -Output written on bashref.dvi (187 pages, 774688 bytes). diff --git a/doc/bashref.pdf b/doc/bashref.pdf Binary files differindex 27098d3..07bfa4c 100644 --- a/doc/bashref.pdf +++ b/doc/bashref.pdf diff --git a/doc/bashref.ps b/doc/bashref.ps index 7a5fafd..670d03c 100644 --- a/doc/bashref.ps +++ b/doc/bashref.ps @@ -1,7 +1,7 @@ %!PS-Adobe-2.0 %%Creator: dvips(k) 5.999 Copyright 2019 Radical Eye Software %%Title: bashref.dvi -%%CreationDate: Fri Nov 22 20:35:32 2019 +%%CreationDate: Tue Nov 26 16:18:24 2019 %%Pages: 187 %%PageOrder: Ascend %%BoundingBox: 0 0 612 792 @@ -12,7 +12,7 @@ %DVIPSWebPage: (www.radicaleye.com) %DVIPSCommandLine: dvips -D 600 -t letter -o bashref.ps bashref.dvi %DVIPSParameters: dpi=600 -%DVIPSSource: TeX output 2019.11.22:1535 +%DVIPSSource: TeX output 2019.11.26:1118 %%BeginProcSet: tex.pro 0 0 %! /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S @@ -7646,9 +7646,9 @@ b(oundation)p 150 5141 3600 17 v eop end %%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.0,)c(22)f(No)m(v)m(em)m +(the)h(Bash)f(shell)h(\(v)m(ersion)150 4389 y(5.0,)c(26)f(No)m(v)m(em)m (b)s(er)g(2019\).)150 4523 y(This)e(is)i(Edition)f(5.0,)h(last)g(up)s -(dated)e(22)i(No)m(v)m(em)m(b)s(er)h(2019,)g(of)e Fr(The)g(GNU)h(Bash)f +(dated)e(26)i(No)m(v)m(em)m(b)s(er)h(2019,)g(of)e Fr(The)g(GNU)h(Bash)f (Reference)h(Man)m(ual)p Fu(,)150 4633 y(for)f Ft(Bash)p Fu(,)g(V)-8 b(ersion)31 b(5.0.)150 4767 y(Cop)m(yrigh)m(t)602 4764 y(c)577 4767 y Fq(\015)f Fu(1988{2018)35 b(F)-8 @@ -7777,7 +7777,7 @@ Fn(:)d(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f f(:)h(:)f(:)g(:)h(:)f(:)h(:)31 b Fu(24)399 4411 y(3.5.3)93 b(Shell)30 b(P)m(arameter)i(Expansion)26 b Fn(:)15 b(:)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(:)39 b Fu(25)399 4521 y(3.5.4)93 +(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)39 b Fu(24)399 4521 y(3.5.4)93 b(Command)29 b(Substitution)20 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(:)33 b Fu(31)399 4630 @@ -7811,7 +7811,7 @@ TeXDict begin -2 3 bop 3699 -116 a Fu(ii)399 83 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(36)399 193 y(3.6.2)93 b(Redirecting)31 b(Output)15 +b Fu(35)399 193 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 b Fu(36)399 302 y(3.6.3)93 b(App)s(ending)28 @@ -8460,7 +8460,7 @@ Ft(!)p Fu(')f(is)h(not)g(remo)m(v)m(ed.)275 4371 y(The)41 b(sp)s(ecial)h(parameters)f(`)p Ft(*)p Fu(')h(and)f(`)p Ft(@)p Fu(')h(ha)m(v)m(e)g(sp)s(ecial)g(meaning)g(when)f(in)g(double)g (quotes)h(\(see)150 4481 y(Section)31 b(3.5.3)h([Shell)f(P)m(arameter)h -(Expansion],)e(page)h(25\).)150 4672 y Fk(3.1.2.4)63 +(Expansion],)e(page)h(24\).)150 4672 y Fk(3.1.2.4)63 b(ANSI-C)40 b(Quoting)150 4819 y Fu(W)-8 b(ords)43 b(of)f(the)h(form)f Ft($')p Fj(string)p Ft(')e Fu(are)j(treated)g(sp)s(ecially)-8 b(.)79 b(The)42 b(w)m(ord)g(expands)f(to)j Fr(string)p @@ -8827,7 +8827,7 @@ Ft(;;&)p Fu('.)73 b(The)41 b Fr(w)m(ord)j Fu(under-)630 3726 y(go)s(es)35 b(tilde)f(expansion,)h(parameter)g(expansion,)g (command)f(substitution,)h(arithmetic)630 3836 y(expansion,)g(and)f (quote)g(remo)m(v)-5 b(al)36 b(\(see)f(Section)g(3.5.3)h([Shell)e(P)m -(arameter)h(Expansion],)630 3945 y(page)22 b(25\))g(b)s(efore)f(matc)m +(arameter)h(Expansion],)630 3945 y(page)22 b(24\))g(b)s(efore)f(matc)m (hing)h(is)g(attempted.)38 b(Eac)m(h)22 b Fr(pattern)g Fu(undergo)s(es)e(tilde)i(expansion,)630 4055 y(parameter)31 b(expansion,)f(command)g(substitution,)h(and)f(arithmetic)h(expansion.) @@ -9299,87 +9299,91 @@ b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(18)150 299 y(function)25 b(name)h(is)g(executed.)40 b(Shell)25 b(functions)g(are)i (executed)f(in)f(the)h(curren)m(t)g(shell)g(con)m(text;)j(no)c(new)150 408 y(pro)s(cess)30 b(is)g(created)i(to)f(in)m(terpret)g(them.)275 -545 y(F)-8 b(unctions)30 b(are)h(declared)g(using)f(this)g(syn)m(tax:) -390 682 y Fj(name)47 b Ft(\(\))g Fj(compound-command)c -Ft([)48 b Fj(redirections)c Ft(])275 819 y Fu(or)390 -956 y Ft(function)i Fj(name)g Ft([\(\)])h Fj(compound-command)c -Ft([)48 b Fj(redirections)c Ft(])275 1093 y Fu(This)31 -b(de\014nes)h(a)h(shell)g(function)g(named)f Fr(name)p -Fu(.)48 b(The)32 b(reserv)m(ed)h(w)m(ord)f Ft(function)f -Fu(is)h(optional.)49 b(If)150 1203 y(the)39 b Ft(function)f -Fu(reserv)m(ed)h(w)m(ord)g(is)g(supplied,)i(the)e(paren)m(theses)h(are) -f(optional.)69 b(The)39 b Fr(b)s(o)s(dy)45 b Fu(of)40 -b(the)150 1313 y(function)h(is)h(the)g(comp)s(ound)e(command)h -Fr(comp)s(ound-command)j Fu(\(see)e(Section)h(3.2.4)g([Comp)s(ound)150 -1422 y(Commands],)33 b(page)h(9\).)49 b(That)33 b(command)f(is)h +538 y(F)-8 b(unctions)30 b(are)h(declared)g(using)f(this)g(syn)m(tax:) +390 667 y Fj(fname)46 b Ft(\(\))i Fj(compound-command)43 +b Ft([)k Fj(redirections)e Ft(])275 797 y Fu(or)390 927 +y Ft(function)h Fj(fname)g Ft([\(\)])h Fj(compound-command)c +Ft([)k Fj(redirections)e Ft(])275 1056 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 +1166 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)150 1275 +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.4)g([Comp)s(ound)150 +1385 y(Commands],)33 b(page)h(9\).)49 b(That)33 b(command)f(is)h (usually)g(a)g Fr(list)j Fu(enclosed)e(b)s(et)m(w)m(een)f -Fi({)h Fu(and)e Fi(})p Fu(,)i(but)e(ma)m(y)150 1532 y(b)s(e)39 +Fi({)h Fu(and)e Fi(})p Fu(,)i(but)e(ma)m(y)150 1494 y(b)s(e)39 b(an)m(y)h(comp)s(ound)e(command)i(listed)g(ab)s(o)m(v)m(e,)j(with)d (one)g(exception:)60 b(If)39 b(the)h Ft(function)e Fu(reserv)m(ed)150 -1641 y(w)m(ord)g(is)g(used,)h(but)f(the)g(paren)m(theses)h(are)f(not)h +1604 y(w)m(ord)g(is)g(used,)h(but)f(the)g(paren)m(theses)h(are)f(not)h (supplied,)g(the)f(braces)g(are)h(required.)63 b Fr(comp)s(ound-)150 -1751 y(command)39 b Fu(is)c(executed)h(whenev)m(er)f -Fr(name)41 b Fu(is)35 b(sp)s(eci\014ed)g(as)g(the)h(name)f(of)h(a)f -(command.)56 b(When)35 b(the)150 1861 y(shell)30 b(is)f(in)g -Fm(posix)g Fu(mo)s(de)g(\(see)i(Section)f(6.11)h([Bash)f(POSIX)e(Mo)s -(de],)i(page)h(100\),)g Fr(name)k Fu(ma)m(y)30 b(not)g(b)s(e)150 -1970 y(the)37 b(same)g(as)g(one)g(of)g(the)f(sp)s(ecial)i(builtins)e -(\(see)h(Section)h(4.4)g([Sp)s(ecial)f(Builtins],)i(page)e(72\).)61 -b(An)m(y)150 2080 y(redirections)32 b(\(see)g(Section)h(3.6)f -([Redirections],)i(page)e(34\))h(asso)s(ciated)g(with)e(the)h(shell)f -(function)h(are)150 2189 y(p)s(erformed)d(when)g(the)i(function)f(is)g -(executed.)275 2326 y(A)44 b(function)g(de\014nition)h(ma)m(y)g(b)s(e)f -(deleted)h(using)f(the)h Ft(-f)f Fu(option)h(to)g(the)g -Ft(unset)e Fu(builtin)h(\(see)150 2436 y(Section)31 b(4.1)h([Bourne)e -(Shell)g(Builtins],)h(page)h(44\).)275 2573 y(The)26 +1714 y(command)37 b Fu(is)d(executed)g(whenev)m(er)f +Fr(fname)39 b Fu(is)34 b(sp)s(eci\014ed)e(as)i(the)g(name)g(of)f(a)h +(command.)50 b(When)34 b(the)150 1823 y(shell)e(is)f(in)g +Fm(posix)f Fu(mo)s(de)h(\(see)i(Section)f(6.11)h([Bash)e(POSIX)g(Mo)s +(de],)h(page)g(100\),)h Fr(fname)k Fu(m)m(ust)31 b(b)s(e)g(a)150 +1933 y(v)-5 b(alid)37 b(shell)f Fr(name)42 b Fu(and)36 +b(ma)m(y)h(not)f(b)s(e)g(the)g(same)h(as)g(one)f(of)h(the)g(sp)s(ecial) +g(builtins)e(\(see)j(Section)f(4.4)150 2042 y([Sp)s(ecial)e(Builtins],) +h(page)e(72\).)54 b(In)33 b(default)h(mo)s(de,)h(a)g(function)f(name)g +(can)g(b)s(e)g(an)m(y)g(unquoted)g(shell)150 2152 y(w)m(ord)g(that)h +(do)s(es)e(not)i(con)m(tain)g(`)p Ft($)p Fu('.)53 b(An)m(y)34 +b(redirections)h(\(see)g(Section)g(3.6)g([Redirections],)i(page)e(34\)) +150 2262 y(asso)s(ciated)30 b(with)e(the)h(shell)f(function)g(are)h(p)s +(erformed)e(when)h(the)g(function)g(is)h(executed.)41 +b(A)28 b(function)150 2371 y(de\014nition)g(ma)m(y)h(b)s(e)f(deleted)h +(using)f(the)h Ft(-f)e Fu(option)i(to)g(the)g Ft(unset)e +Fu(builtin)h(\(see)h(Section)g(4.1)h([Bourne)150 2481 +y(Shell)g(Builtins],)h(page)h(44\).)275 2610 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 -2682 y(function)k(with)f(the)i(same)f(name)g(already)h(exists.)46 +2720 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 -2792 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 2929 y(Note)22 b(that)f(for)f +2829 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 2959 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 3039 y(the)38 b(b)s(o)s(dy)d(of)j +(curly)f(braces)h(that)g(surround)150 3068 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 -3148 y(is)38 b(b)s(ecause)g(the)h(braces)f(are)h(reserv)m(ed)f(w)m +3178 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 3258 y(separated)26 b(from)f(the)h(command)f(list)i(b)m(y)e +(are)150 3288 y(separated)26 b(from)f(the)h(command)f(list)i(b)m(y)e (whitespace)h(or)g(another)g(shell)g(metac)m(haracter.)41 -b(Also,)28 b(when)150 3367 y(using)i(the)g(braces,)h(the)g +b(Also,)28 b(when)150 3397 y(using)i(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 3504 y(When)i(a)i(function)f +e(`)p Ft(&)p Fu(',)h(or)g(a)f(newline.)275 3527 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 3614 y(rameters)42 b(during)e(its)i +g(the)h(p)s(ositional)g(pa-)150 3636 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(21\).)75 b(The)150 3724 y(sp)s(ecial)37 +(arameters],)i(page)c(21\).)75 b(The)150 3746 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 -3833 y(re\015ect)h(the)f(c)m(hange.)56 b(Sp)s(ecial)35 +3856 y(re\015ect)h(the)f(c)m(hange.)56 b(Sp)s(ecial)35 b(parameter)h Ft(0)f Fu(is)g(unc)m(hanged.)54 b(The)35 -b(\014rst)f(elemen)m(t)j(of)e(the)g Ft(FUNCNAME)150 3943 +b(\014rst)f(elemen)m(t)j(of)e(the)g Ft(FUNCNAME)150 3965 y Fu(v)-5 b(ariable)31 b(is)g(set)f(to)i(the)e(name)h(of)f(the)h (function)f(while)g(the)h(function)f(is)g(executing.)275 -4080 y(All)25 b(other)g(asp)s(ects)g(of)g(the)g(shell)g(execution)h(en) +4095 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 4189 y(its)35 b(caller)i(with)d(these)i(exceptions:)50 +(and)150 4204 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 4299 y(function)26 b(has)g(b)s(een)f(giv) +(inherited)f(unless)h(the)150 4314 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 -4408 y Fu(option)f(has)e(b)s(een)h(enabled)g(with)g(the)g +4423 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 4518 y Fu(and)33 b Ft(RETURN)f +(inherit)h(the)g Ft(DEBUG)150 4533 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 -4628 y(has)h(b)s(een)f(enabled.)55 b(See)35 b(Section)h(4.1)g([Bourne)f +4643 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(44,)i(for)c(the)i(description)f(of)150 -4737 y(the)c Ft(trap)e Fu(builtin.)275 4874 y(The)38 +4752 y(the)c Ft(trap)e Fu(builtin.)275 4882 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 -4984 y(function)24 b(nesting)h(lev)m(el.)40 b(F)-8 b(unction)25 +4991 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 5093 y(to)31 b(ab)s(ort.)275 +(en)m(tire)g(command)150 5101 y(to)31 b(ab)s(ort.)275 5230 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 5340 y(execution)25 b(resumes)e(with)h(the)g(next)g(command)f @@ -9674,1624 +9678,1610 @@ b(the)g(double-quoted)g(expansion)f(o)s(ccurs)h(within)f(a)h(w)m(ord,)h f(is)h(joined)f(with)g(the)g(last)h(part)f(of)g(the)h(original)g(w)m (ord.)630 737 y(When)i(there)g(are)g(no)g(p)s(ositional)g(parameters,)h Ft("$@")e Fu(and)g Ft($@)h Fu(expand)f(to)h(nothing)g(\(i.e.,)630 -847 y(they)j(are)f(remo)m(v)m(ed\).)150 1011 y Ft(#)432 +847 y(they)j(are)f(remo)m(v)m(ed\).)150 999 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 1176 y Ft(?)432 +(ositional)i(parameters)e(in)g(decimal.)150 1150 y Ft(?)432 b Fu(\($?\))88 b(Expands)45 b(to)h(the)g(exit)h(status)f(of)g(the)g -(most)h(recen)m(tly)g(executed)g(foreground)630 1285 -y(pip)s(eline.)150 1450 y Ft(-)432 b Fu(\($-,)24 b(a)e(h)m(yphen.\))37 +(most)h(recen)m(tly)g(executed)g(foreground)630 1260 +y(pip)s(eline.)150 1412 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 1559 +(eci\014ed)g(up)s(on)f(in)m(v)m(o)s(cation,)630 1521 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 1669 y Fu(option\).)150 1833 y Ft($)432 b Fu(\($$\))31 +Ft(-i)630 1631 y Fu(option\).)150 1782 y Ft($)432 b Fu(\($$\))31 b(Expands)d(to)j(the)e(pro)s(cess)h Fm(id)f Fu(of)h(the)g(shell.)41 b(In)28 b(a)i Ft(\(\))f Fu(subshell,)h(it)g(expands)e(to)j(the)630 -1943 y(pro)s(cess)f Fm(id)g Fu(of)h(the)g(in)m(v)m(oking)g(shell,)g -(not)g(the)f(subshell.)150 2107 y Ft(!)432 b Fu(\($!\))51 +1892 y(pro)s(cess)f Fm(id)g Fu(of)h(the)g(in)m(v)m(oking)g(shell,)g +(not)g(the)f(subshell.)150 2044 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 -2217 y(ground,)26 b(whether)g(executed)g(as)h(an)f(async)m(hronous)f +2153 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 -2327 y(\(see)31 b(Section)h(7.2)f([Job)f(Con)m(trol)h(Builtins],)g -(page)h(106\).)150 2491 y Ft(0)432 b Fu(\($0\))46 b(Expands)d(to)i(the) +2263 y(\(see)31 b(Section)h(7.2)f([Job)f(Con)m(trol)h(Builtins],)g +(page)h(106\).)150 2415 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 2601 y(initialization.)d(If)27 +b(is)g(set)h(at)h(shell)630 2524 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 2710 y(Scripts],)g(page)g(42\),)h +(\(see)g(Section)h(3.8)g([Shell)630 2634 y(Scripts],)g(page)g(42\),)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 2820 y +b(If)28 b(Bash)g(is)h(started)g(with)f(the)630 2743 y Ft(-c)i Fu(option)h(\(see)h(Section)g(6.1)f([In)m(v)m(oking)h(Bash],)g (page)f(86\),)i(then)d Ft($0)g Fu(is)h(set)g(to)h(the)f(\014rst)630 -2929 y(argumen)m(t)g(after)g(the)g(string)g(to)g(b)s(e)f(executed,)i +2853 y(argumen)m(t)g(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 -3039 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 3203 -y Ft(_)432 b Fu(\($)p 716 3203 28 4 v 41 w(,)41 b(an)e(underscore.\))67 -b(A)m(t)40 b(shell)f(startup,)i(set)f(to)g(the)f(absolute)h(pathname)f -(used)f(to)630 3313 y(in)m(v)m(ok)m(e)43 b(the)e(shell)g(or)g(shell)g -(script)g(b)s(eing)f(executed)i(as)f(passed)g(in)f(the)h(en)m(vironmen) -m(t)630 3423 y(or)34 b(argumen)m(t)g(list.)52 b(Subsequen)m(tly)-8 -b(,)34 b(expands)f(to)i(the)f(last)h(argumen)m(t)f(to)g(the)g(previous) -630 3532 y(simple)g(command)f(executed)i(in)e(the)h(foreground,)g -(after)g(expansion.)51 b(Also)34 b(set)g(to)h(the)630 -3642 y(full)d(pathname)h(used)f(to)i(in)m(v)m(ok)m(e)g(eac)m(h)g -(command)f(executed)g(and)f(placed)i(in)e(the)h(en)m(vi-)630 -3751 y(ronmen)m(t)24 b(exp)s(orted)g(to)h(that)g(command.)38 -b(When)24 b(c)m(hec)m(king)i(mail,)h(this)d(parameter)g(holds)630 -3861 y(the)31 b(name)f(of)h(the)f(mail)h(\014le.)150 -4109 y Fs(3.5)68 b(Shell)45 b(Expansions)150 4269 y Fu(Expansion)27 +2962 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 3196 +y Fs(3.5)68 b(Shell)45 b(Expansions)150 3355 y Fu(Expansion)27 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)i Ft(token)p Fu(s.)38 b(There)28 -b(are)150 4378 y(sev)m(en)j(kinds)e(of)i(expansion)f(p)s(erformed:)225 -4518 y Fq(\017)60 b Fu(brace)31 b(expansion)225 4655 -y Fq(\017)60 b Fu(tilde)31 b(expansion)225 4792 y Fq(\017)60 +b(are)150 3465 y(sev)m(en)j(kinds)e(of)i(expansion)f(p)s(erformed:)225 +3595 y Fq(\017)60 b Fu(brace)31 b(expansion)225 3726 +y Fq(\017)60 b Fu(tilde)31 b(expansion)225 3856 y Fq(\017)60 b Fu(parameter)31 b(and)f(v)-5 b(ariable)31 b(expansion)225 -4929 y Fq(\017)60 b Fu(command)30 b(substitution)225 -5066 y Fq(\017)60 b Fu(arithmetic)32 b(expansion)225 -5203 y Fq(\017)60 b Fu(w)m(ord)30 b(splitting)225 5340 -y Fq(\017)60 b Fu(\014lename)31 b(expansion)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)275 299 +3987 y Fq(\017)60 b Fu(command)30 b(substitution)225 +4118 y Fq(\017)60 b Fu(arithmetic)32 b(expansion)225 +4248 y Fq(\017)60 b Fu(w)m(ord)30 b(splitting)225 4379 +y Fq(\017)60 b Fu(\014lename)31 b(expansion)275 4531 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 408 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 518 y(w)m(ord)d(splitting;)h(and)f(\014lename)h -(expansion.)275 672 y(On)42 b(systems)h(that)h(can)g(supp)s(ort)e(it,) +b(ariable)26 b(ex-)150 4640 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 4750 y(w)m(ord)d(splitting;)h(and)f(\014lename)h +(expansion.)275 4881 y(On)42 b(systems)h(that)h(can)g(supp)s(ort)e(it,) 47 b(there)d(is)f(an)h(additional)g(expansion)f(a)m(v)-5 -b(ailable:)69 b Fr(pro)s(cess)150 782 y(substitution)p +b(ailable:)69 b Fr(pro)s(cess)150 4990 y(substitution)p Fu(.)50 b(This)33 b(is)h(p)s(erformed)e(at)j(the)f(same)g(time)g(as)g (tilde,)i(parameter,)f(v)-5 b(ariable,)35 b(and)f(arith-)150 -891 y(metic)d(expansion)g(and)e(command)i(substitution.)275 -1046 y(After)f(these)h(expansions)f(are)g(p)s(erformed,)f(quote)i(c)m +5100 y(metic)d(expansion)g(and)e(command)i(substitution.)275 +5230 y(After)f(these)h(expansions)f(are)g(p)s(erformed,)f(quote)i(c)m (haracters)h(presen)m(t)e(in)g(the)g(original)i(w)m(ord)e(are)150 -1155 y(remo)m(v)m(ed)h(unless)f(they)h(ha)m(v)m(e)g(b)s(een)f(quoted)g -(themselv)m(es)i(\()p Fr(quote)f(remo)m(v)-5 b(al)t Fu(\).)275 -1309 y(Only)31 b(brace)i(expansion,)h(w)m(ord)e(splitting,)i(and)e +5340 y(remo)m(v)m(ed)h(unless)f(they)h(ha)m(v)m(e)g(b)s(een)f(quoted)g +(themselv)m(es)i(\()p Fr(quote)f(remo)m(v)-5 b(al)t Fu(\).)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)275 299 +y(Only)31 b(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 -1419 y(of)24 b(w)m(ords)g(of)g(the)h(expansion;)h(other)e(expansions)g +408 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 1529 y(exceptions)i(to)f(this)g(are)g(the)g +b(The)24 b(only)150 518 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 1638 y(page)31 +(3.4.2)i([Sp)s(ecial)e(P)m(arameters],)150 628 y(page)31 b(21\),)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(95\).)275 1792 y(After)41 b(all)i(expansions,)h +(page)g(95\).)275 774 y(After)41 b(all)i(expansions,)h Ft(quote)29 b(removal)40 b Fu(\(see)i(Section)h(3.5.9)g([Quote)f(Remo)m -(v)-5 b(al],)47 b(page)42 b(34\))h(is)150 1902 y(p)s(erformed.)150 -2121 y Fk(3.5.1)63 b(Brace)40 b(Expansion)150 2268 y +(v)-5 b(al],)47 b(page)42 b(34\))h(is)150 884 y(p)s(erformed.)150 +1095 y Fk(3.5.1)63 b(Brace)40 b(Expansion)150 1242 y Fu(Brace)32 b(expansion)f(is)f(a)i(mec)m(hanism)f(b)m(y)f(whic)m(h)h (arbitrary)f(strings)h(ma)m(y)g(b)s(e)f(generated.)43 -b(This)30 b(mec)m(h-)150 2377 y(anism)35 b(is)h(similar)f(to)h +b(This)30 b(mec)m(h-)150 1352 y(anism)35 b(is)h(similar)f(to)h Fr(\014lename)g(expansion)f Fu(\(see)i(Section)f(3.5.8)h([Filename)g -(Expansion],)f(page)g(32\),)150 2487 y(but)26 b(the)h(\014lenames)g +(Expansion],)f(page)g(32\),)150 1462 y(but)26 b(the)h(\014lenames)g (generated)h(need)f(not)g(exist.)40 b(P)m(atterns)28 b(to)f(b)s(e)g(brace)g(expanded)f(tak)m(e)i(the)f(form)g(of)150 -2597 y(an)j(optional)h Fr(pream)m(ble)p Fu(,)g(follo)m(w)m(ed)g(b)m(y)f +1571 y(an)j(optional)h Fr(pream)m(ble)p Fu(,)g(follo)m(w)m(ed)g(b)m(y)f (either)g(a)h(series)f(of)g(comma-separated)i(strings)d(or)h(a)h -(sequence)150 2706 y(expression)36 b(b)s(et)m(w)m(een)g(a)h(pair)e(of)i +(sequence)150 1681 y(expression)36 b(b)s(et)m(w)m(een)g(a)h(pair)e(of)i (braces,)g(follo)m(w)m(ed)h(b)m(y)e(an)g(optional)h Fr(p)s(ostscript)p -Fu(.)57 b(The)36 b(pream)m(ble)g(is)150 2816 y(pre\014xed)28 +Fu(.)57 b(The)36 b(pream)m(ble)g(is)150 1790 y(pre\014xed)28 b(to)h(eac)m(h)h(string)f(con)m(tained)h(within)e(the)h(braces,)g(and)g (the)g(p)s(ostscript)f(is)h(then)f(app)s(ended)f(to)150 -2925 y(eac)m(h)32 b(resulting)e(string,)h(expanding)e(left)j(to)f(righ) -m(t.)275 3079 y(Brace)37 b(expansions)f(ma)m(y)h(b)s(e)f(nested.)59 +1900 y(eac)m(h)32 b(resulting)e(string,)h(expanding)e(left)j(to)f(righ) +m(t.)275 2047 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 3189 y(left)31 b(to)g(righ)m(t)g(order)f(is)g(preserv)m -(ed.)41 b(F)-8 b(or)31 b(example,)390 3343 y Ft(bash$)46 -b(echo)h(a{d,c,b}e)390 3453 y(ade)g(ace)g(abe)275 3607 +(sorted;)150 2156 y(left)31 b(to)g(righ)m(t)g(order)f(is)g(preserv)m +(ed.)41 b(F)-8 b(or)31 b(example,)390 2303 y Ft(bash$)46 +b(echo)h(a{d,c,b}e)390 2413 y(ade)g(ace)g(abe)275 2559 y Fu(A)23 b(sequence)g(expression)g(tak)m(es)i(the)e(form)g Ft({)p Fj(x)p Ft(..)p Fj(y)p Ft([..)p Fj(incr)p Ft(]})p Fu(,)e(where)i Fr(x)29 b Fu(and)23 b Fr(y)30 b Fu(are)24 -b(either)g(in)m(tegers)150 3717 y(or)42 b(single)h(c)m(haracters,)48 +b(either)g(in)m(tegers)150 2669 y(or)42 b(single)h(c)m(haracters,)48 b(and)41 b Fr(incr)p Fu(,)46 b(an)c(optional)i(incremen)m(t,)i(is)c(an) -h(in)m(teger.)78 b(When)42 b(in)m(tegers)i(are)150 3826 +h(in)m(teger.)78 b(When)42 b(in)m(tegers)i(are)150 2779 y(supplied,)f(the)f(expression)f(expands)f(to)i(eac)m(h)h(n)m(um)m(b)s (er)d(b)s(et)m(w)m(een)i Fr(x)47 b Fu(and)41 b Fr(y)p -Fu(,)j(inclusiv)m(e.)75 b(Supplied)150 3936 y(in)m(tegers)33 +Fu(,)j(inclusiv)m(e.)75 b(Supplied)150 2888 y(in)m(tegers)33 b(ma)m(y)e(b)s(e)g(pre\014xed)f(with)h(`)p Ft(0)p Fu(')h(to)g(force)g (eac)m(h)g(term)g(to)g(ha)m(v)m(e)g(the)g(same)g(width.)42 -b(When)31 b(either)150 4045 y Fr(x)43 b Fu(or)36 b Fr(y)44 +b(When)31 b(either)150 2998 y Fr(x)43 b Fu(or)36 b Fr(y)44 b Fu(b)s(egins)36 b(with)g(a)h(zero,)i(the)e(shell)g(attempts)g(to)g (force)g(all)h(generated)f(terms)g(to)g(con)m(tain)h(the)150 -4155 y(same)e(n)m(um)m(b)s(er)e(of)i(digits,)i(zero-padding)d(where)h +3107 y(same)e(n)m(um)m(b)s(er)e(of)i(digits,)i(zero-padding)d(where)h (necessary)-8 b(.)57 b(When)35 b(c)m(haracters)i(are)f(supplied,)g(the) -150 4265 y(expression)24 b(expands)g(to)h(eac)m(h)h(c)m(haracter)g +150 3217 y(expression)24 b(expands)g(to)h(eac)m(h)h(c)m(haracter)g (lexicographically)h(b)s(et)m(w)m(een)e Fr(x)30 b Fu(and)24 -b Fr(y)p Fu(,)i(inclusiv)m(e,)h(using)d(the)150 4374 +b Fr(y)p Fu(,)i(inclusiv)m(e,)h(using)d(the)150 3326 y(default)32 b(C)g(lo)s(cale.)48 b(Note)34 b(that)f(b)s(oth)e Fr(x)39 b Fu(and)31 b Fr(y)40 b Fu(m)m(ust)32 b(b)s(e)g(of)g(the)h (same)f(t)m(yp)s(e.)47 b(When)32 b(the)g(incremen)m(t)150 -4484 y(is)d(supplied,)g(it)h(is)f(used)f(as)i(the)f(di\013erence)h(b)s +3436 y(is)d(supplied,)g(it)h(is)f(used)f(as)i(the)f(di\013erence)h(b)s (et)m(w)m(een)g(eac)m(h)g(term.)41 b(The)29 b(default)g(incremen)m(t)h -(is)f(1)h(or)f(-1)150 4593 y(as)i(appropriate.)275 4747 +(is)f(1)h(or)f(-1)150 3546 y(as)i(appropriate.)275 3692 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 -4857 y(to)32 b(other)g(expansions)g(are)g(preserv)m(ed)f(in)h(the)f +3802 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 4967 y(an)m(y)27 b(syn)m(tactic)i(in)m +b(do)s(es)f(not)h(apply)150 3912 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 5121 +(the)h(text)g(b)s(et)m(w)m(een)f(the)h(braces.)275 4058 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 -5230 y(and)h(at)i(least)g(one)f(unquoted)g(comma)g(or)g(a)h(v)-5 +4168 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 5340 y(brace)d(expansion)f(is)g(left)h(unc)m(hanged.)p +(formed)150 4278 y(brace)d(expansion)f(is)g(left)h(unc)m(hanged.)275 +4424 y(A)25 b Fi({)h Fu(or)f(`)p Ft(,)p Fu(')g(ma)m(y)h(b)s(e)f(quoted) +h(with)f(a)g(bac)m(kslash)h(to)g(prev)m(en)m(t)g(its)g(b)s(eing)f +(considered)g(part)g(of)h(a)g(brace)150 4534 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 4643 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 4790 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 4900 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 5046 y Ft(mkdir)46 b(/usr/local/src/bash/{old,n)o +(ew,)o(dist)o(,bug)o(s})275 5193 y Fu(or)390 5340 y Ft(chown)g(root)h +(/usr/{ucb/{ex,edit},lib/)o({ex?)o(.?*,)o(how)o(_ex})o(})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)275 299 -y(A)25 b Fi({)h Fu(or)f(`)p Ft(,)p Fu(')g(ma)m(y)h(b)s(e)f(quoted)h -(with)f(a)g(bac)m(kslash)h(to)g(prev)m(en)m(t)g(its)g(b)s(eing)f -(considered)g(part)g(of)h(a)g(brace)150 408 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 518 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 -659 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 -769 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 910 y Ft(mkdir)46 b(/usr/local/src/bash/{old,n)o(ew,) -o(dist)o(,bug)o(s})275 1052 y Fu(or)390 1193 y Ft(chown)g(root)h -(/usr/{ucb/{ex,edit},lib/)o({ex?)o(.?*,)o(how)o(_ex})o(})150 -1399 y Fk(3.5.2)63 b(Tilde)41 b(Expansion)150 1546 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 +b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(24)150 299 +y Fk(3.5.2)63 b(Tilde)41 b(Expansion)150 446 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 1656 y(unquoted)24 b(slash)g(\(or)h(all)h(c)m +d(to)j(the)f(\014rst)150 555 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 1765 y(If)38 +(considered)g(a)g Fr(tilde-pre\014x)p Fu(.)150 665 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 -1875 y(follo)m(wing)28 b(the)g(tilde)f(are)h(treated)g(as)f(a)g(p)s +775 y(follo)m(wing)28 b(the)g(tilde)f(are)h(treated)g(as)f(a)g(p)s (ossible)g Fr(login)h(name)p Fu(.)39 b(If)27 b(this)g(login)h(name)f -(is)g(the)g(n)m(ull)g(string,)150 1985 y(the)35 b(tilde)g(is)g -(replaced)g(with)f(the)h(v)-5 b(alue)35 b(of)g(the)g -Ft(HOME)e Fu(shell)i(v)-5 b(ariable.)54 b(If)34 b Ft(HOME)g -Fu(is)h(unset,)g(the)g(home)150 2094 y(directory)e(of)g(the)f(user)g -(executing)i(the)e(shell)h(is)f(substituted)g(instead.)47 -b(Otherwise,)33 b(the)g(tilde-pre\014x)150 2204 y(is)d(replaced)h(with) -f(the)h(home)f(directory)h(asso)s(ciated)h(with)e(the)h(sp)s(eci\014ed) -e(login)j(name.)275 2345 y(If)g(the)h(tilde-pre\014x)f(is)h(`)p +(is)g(the)g(n)m(ull)g(string,)150 884 y(the)35 b(tilde)g(is)g(replaced) +g(with)f(the)h(v)-5 b(alue)35 b(of)g(the)g Ft(HOME)e +Fu(shell)i(v)-5 b(ariable.)54 b(If)34 b Ft(HOME)g Fu(is)h(unset,)g(the) +g(home)150 994 y(directory)e(of)g(the)f(user)g(executing)i(the)e(shell) +h(is)f(substituted)g(instead.)47 b(Otherwise,)33 b(the)g +(tilde-pre\014x)150 1103 y(is)d(replaced)h(with)f(the)h(home)f +(directory)h(asso)s(ciated)h(with)e(the)h(sp)s(eci\014ed)e(login)j +(name.)275 1240 y(If)g(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 2455 y(the)31 b(tilde-pre\014x)f(is)g(`)p Ft(~-)p +b(If)150 1349 y(the)31 b(tilde-pre\014x)f(is)g(`)p Ft(~-)p Fu(',)h(the)f(v)-5 b(alue)31 b(of)g(the)f(shell)h(v)-5 b(ariable)31 b Ft(OLDPWD)p Fu(,)e(if)h(it)h(is)g(set,)g(is)f -(substituted.)275 2596 y(If)f(the)h(c)m(haracters)h(follo)m(wing)h(the) +(substituted.)275 1486 y(If)f(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 2706 y(pre\014xed)22 +(er)d Fr(N)p Fu(,)j(optionally)150 1595 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 2815 y(directory)36 b(stac)m(k,)i(as)e(it) +(elemen)m(t)j(from)e(the)150 1705 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 2925 y(follo)m(wing)40 b(tilde)f(in)g(the)f(tilde-pre\014x)h(as)g +150 1814 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 3034 y(page)c(97\).)57 b(If)35 b(the)g(tilde-pre\014x,)i(sans) +(k],)150 1924 y(page)c(97\).)57 b(If)35 b(the)g(tilde-pre\014x,)i(sans) e(the)h(tilde,)h(consists)f(of)g(a)f(n)m(um)m(b)s(er)f(without)i(a)f -(leading)h(`)p Ft(+)p Fu(')g(or)150 3144 y(`)p Ft(-)p -Fu(',)31 b(`)p Ft(+)p Fu(')f(is)h(assumed.)275 3285 y(If)e(the)i(login) +(leading)h(`)p Ft(+)p Fu(')g(or)150 2034 y(`)p Ft(-)p +Fu(',)31 b(`)p Ft(+)p Fu(')f(is)h(assumed.)275 2170 y(If)e(the)i(login) g(name)g(is)f(in)m(v)-5 b(alid,)31 b(or)g(the)f(tilde)h(expansion)f (fails,)i(the)e(w)m(ord)g(is)h(left)g(unc)m(hanged.)275 -3427 y(Eac)m(h)38 b(v)-5 b(ariable)38 b(assignmen)m(t)h(is)e(c)m(hec)m +2306 y(Eac)m(h)38 b(v)-5 b(ariable)38 b(assignmen)m(t)h(is)e(c)m(hec)m (k)m(ed)j(for)d(unquoted)g(tilde-pre\014xes)h(immediately)g(follo)m -(wing)150 3536 y(a)d(`)p Ft(:)p Fu(')g(or)g(the)g(\014rst)f(`)p +(wing)150 2416 y(a)d(`)p Ft(:)p Fu(')g(or)g(the)g(\014rst)f(`)p Ft(=)p Fu('.)54 b(In)34 b(these)h(cases,)i(tilde)e(expansion)g(is)g (also)h(p)s(erformed.)52 b(Consequen)m(tly)-8 b(,)37 -b(one)150 3646 y(ma)m(y)29 b(use)e(\014lenames)h(with)g(tildes)g(in)g +b(one)150 2526 y(ma)m(y)29 b(use)e(\014lenames)h(with)g(tildes)g(in)g (assignmen)m(ts)g(to)h Ft(PATH)p Fu(,)f Ft(MAILPATH)p Fu(,)e(and)h Ft(CDPATH)p Fu(,)g(and)h(the)g(shell)150 -3755 y(assigns)j(the)f(expanded)g(v)-5 b(alue.)275 3897 +2635 y(assigns)j(the)f(expanded)g(v)-5 b(alue.)275 2771 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 4067 y Ft(~)432 b Fu(The)30 -b(v)-5 b(alue)31 b(of)f Ft($HOME)150 4233 y(~/foo)240 -b($HOME/foo)150 4399 y(~fred/foo)630 4509 y Fu(The)30 +(unquoted)e(tilde-pre\014xes:)150 2934 y Ft(~)432 b Fu(The)30 +b(v)-5 b(alue)31 b(of)f Ft($HOME)150 3095 y(~/foo)240 +b($HOME/foo)150 3256 y(~fred/foo)630 3366 y Fu(The)30 b(sub)s(directory)f Ft(foo)h Fu(of)g(the)h(home)f(directory)h(of)g(the) -f(user)g Ft(fred)150 4675 y(~+/foo)192 b($PWD/foo)150 -4841 y(~-/foo)g(${OLDPWD-'~-'}/foo)150 5007 y(~)p Fj(N)384 +f(user)g Ft(fred)150 3527 y(~+/foo)192 b($PWD/foo)150 +3688 y(~-/foo)g(${OLDPWD-'~-'}/foo)150 3850 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 5174 y Ft(~+)p +(y)f(`)p Ft(dirs)g(+)p Fj(N)p Fu(')150 4011 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 5340 +(ed)h(b)m(y)f(`)p Ft(dirs)g(+)p Fj(N)p Fu(')150 4172 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(')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)275 299 -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 408 y(signmen)m(ts)f(\(see)h(Section)g(3.4)g([Shell)f(P)m +(displa)m(y)m(ed)h(b)m(y)f(`)p Ft(dirs)g(-)p Fj(N)p Fu(')275 +4334 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 4444 y(signmen)m(ts)f(\(see)h(Section)g(3.4)g([Shell)f(P)m (arameters],)k(page)d(20\))g(when)e(they)h(app)s(ear)f(as)i(argumen)m -(ts)150 518 y(to)c(simple)f(commands.)57 b(Bash)36 b(do)s(es)f(not)h +(ts)150 4554 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 Fr(declaration)i Fu(commands)d -(listed)150 628 y(ab)s(o)m(v)m(e,)d(when)d(in)h Fm(posix)g -Fu(mo)s(de.)150 863 y Fk(3.5.3)63 b(Shell)41 b(P)m(arameter)f -(Expansion)150 1010 y Fu(The)g(`)p Ft($)p Fu(')h(c)m(haracter)i(in)m +(listed)150 4663 y(ab)s(o)m(v)m(e,)d(when)d(in)h Fm(posix)g +Fu(mo)s(de.)150 4864 y Fk(3.5.3)63 b(Shell)41 b(P)m(arameter)f +(Expansion)150 5011 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 1119 y(expansion.)d(The)22 b(parameter)h(name)f(or)g +(arithmetic)150 5121 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 1229 y(are)31 b(optional)g(but)f(serv)m(e)h +f(braces,)i(whic)m(h)150 5230 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 1339 y(follo)m(wing)g(it)f(whic)m(h)f -(could)g(b)s(e)g(in)m(terpreted)h(as)f(part)h(of)f(the)h(name.)275 -1509 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 1619 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 1728 y(command)30 b(substitution,)g(or)h(parameter)g(expansion.)275 -1899 y(The)40 b(basic)i(form)f(of)g(parameter)h(expansion)f(is)h($)p +g(c)m(haracters)i(immediately)150 5340 y(follo)m(wing)g(it)f(whic)m(h)f +(could)g(b)s(e)g(in)m(terpreted)h(as)f(part)h(of)f(the)h(name.)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)275 299 +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 408 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 +518 y(command)30 b(substitution,)g(or)h(parameter)g(expansion.)275 +662 y(The)40 b(basic)i(form)f(of)g(parameter)h(expansion)f(is)h($)p Fi({)p Fr(parameter)7 b Fi(})p Fu(.)74 b(The)41 b(v)-5 -b(alue)42 b(of)g Fr(parameter)48 b Fu(is)150 2008 y(substituted.)43 +b(alue)42 b(of)g Fr(parameter)48 b Fu(is)150 772 y(substituted.)43 b(The)31 b Fr(parameter)39 b Fu(is)31 b(a)h(shell)f(parameter)h(as)g (describ)s(ed)e(ab)s(o)m(v)m(e)j(\(see)f(Section)g(3.4)h([Shell)150 -2118 y(P)m(arameters],)e(page)f(20\))h(or)e(an)g(arra)m(y)h(reference)f +881 y(P)m(arameters],)e(page)f(20\))h(or)e(an)g(arra)m(y)h(reference)f (\(see)i(Section)f(6.7)g([Arra)m(ys],)g(page)g(95\).)42 -b(The)29 b(braces)150 2228 y(are)j(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 2337 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 -2508 y(If)k(the)h(\014rst)f(c)m(haracter)i(of)f Fr(parameter)42 +b(The)29 b(braces)150 991 y(are)j(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 1100 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 +1244 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 2617 y Fr(nameref)p +Fr(parameter)42 b Fu(is)34 b(not)i(a)150 1354 y Fr(nameref)p Fu(,)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 2727 y(rest)c(of)f Fr(parameter)33 b Fu(as)27 +(the)150 1463 y(rest)c(of)f Fr(parameter)33 b Fu(as)27 b(the)g(new)f Fr(parameter)7 b Fu(;)28 b(this)e(is)g(then)g(expanded)g (and)g(that)h(v)-5 b(alue)27 b(is)f(used)g(in)g(the)150 -2837 y(rest)33 b(of)f(the)h(expansion,)g(rather)g(than)f(the)h +1573 y(rest)33 b(of)f(the)h(expansion,)g(rather)g(than)f(the)h (expansion)f(of)h(the)g(original)g Fr(parameter)p Fu(.)48 -b(This)32 b(is)g(kno)m(wn)150 2946 y(as)42 b Ft(indirect)28 +b(This)32 b(is)g(kno)m(wn)150 1683 y(as)42 b Ft(indirect)28 b(expansion)p Fu(.)71 b(The)41 b(v)-5 b(alue)41 b(is)h(sub)5 b(ject)41 b(to)h(tilde)g(expansion,)i(parameter)e(expansion,)150 -3056 y(command)31 b(substitution,)g(and)g(arithmetic)h(expansion.)43 +1792 y(command)31 b(substitution,)g(and)g(arithmetic)h(expansion.)43 b(If)31 b Fr(parameter)38 b Fu(is)32 b(a)f(nameref,)h(this)f(expands) -150 3165 y(to)d(the)g(name)g(of)f(the)h(v)-5 b(ariable)28 +150 1902 y(to)d(the)g(name)g(of)f(the)h(v)-5 b(ariable)28 b(referenced)g(b)m(y)f Fr(parameter)35 b Fu(instead)27 -b(of)h(p)s(erforming)e(the)i(complete)h(in-)150 3275 +b(of)h(p)s(erforming)e(the)i(complete)h(in-)150 2011 y(direct)e(expansion.)39 b(The)25 b(exceptions)i(to)g(this)f(are)h(the) f(expansions)g(of)g($)p Fi({)p Fu(!)p Fr(pre\014x)6 b Fu(*)p Fi(})28 b Fu(and)d($)p Fi({)p Fu(!)p Fr(name)5 -b Fu([@])p Fi(})150 3385 y Fu(describ)s(ed)28 b(b)s(elo)m(w.)41 +b Fu([@])p Fi(})150 2121 y Fu(describ)s(ed)28 b(b)s(elo)m(w.)41 b(The)28 b(exclamation)j(p)s(oin)m(t)f(m)m(ust)f(immediately)h(follo)m -(w)g(the)g(left)f(brace)h(in)f(order)f(to)150 3494 y(in)m(tro)s(duce)i -(indirection.)275 3665 y(In)39 b(eac)m(h)i(of)g(the)f(cases)h(b)s(elo)m +(w)g(the)g(left)f(brace)h(in)f(order)f(to)150 2231 y(in)m(tro)s(duce)i +(indirection.)275 2375 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 3774 y(command)30 b(substitution,)g(and)g -(arithmetic)i(expansion.)275 3945 y(When)h(not)h(p)s(erforming)e +(parameter)e(expansion,)150 2484 y(command)30 b(substitution,)g(and)g +(arithmetic)i(expansion.)275 2628 y(When)h(not)h(p)s(erforming)e (substring)h(expansion,)h(using)g(the)f(form)h(describ)s(ed)e(b)s(elo)m -(w)i(\(e.g.,)i(`)p Ft(:-)p Fu('\),)150 4054 y(Bash)d(tests)h(for)e(a)i +(w)i(\(e.g.,)i(`)p Ft(:-)p Fu('\),)150 2738 y(Bash)d(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 4164 +b(the)h(colon)f(results)g(in)g(a)g(test)h(only)150 2847 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 4274 y(for)36 b(b)s(oth)g +(the)h(op)s(erator)g(tests)150 2957 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 4383 y(op)s(erator)31 b(tests)g(only)f(for)g(existence.)150 -4597 y Ft(${)p Fj(parameter)p Ft(:)p Fq(\000)p Fj(word)p -Ft(})630 4706 y Fu(If)g Fr(parameter)37 b Fu(is)30 b(unset)g(or)h(n)m +(the)150 3066 y(op)s(erator)31 b(tests)g(only)f(for)g(existence.)150 +3240 y Ft(${)p Fj(parameter)p Ft(:)p Fq(\000)p Fj(word)p +Ft(})630 3350 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 4816 y(the)31 b(v)-5 b(alue)30 b(of)h -Fr(parameter)37 b Fu(is)31 b(substituted.)150 5011 y -Ft(${)p Fj(parameter)p Ft(:=)p Fj(word)p Ft(})630 5121 +b(Otherwise,)630 3459 y(the)31 b(v)-5 b(alue)30 b(of)h +Fr(parameter)37 b Fu(is)31 b(substituted.)150 3628 y +Ft(${)p Fj(parameter)p Ft(:=)p Fj(word)p Ft(})630 3738 y Fu(If)i 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 5230 y(The)c(v)-5 b(alue)32 b(of)f +Fr(parameter)p Fu(.)630 3847 y(The)c(v)-5 b(alue)32 b(of)f Fr(parameter)38 b Fu(is)31 b(then)g(substituted.)42 b(P)m(ositional)33 -b(parameters)e(and)f(sp)s(ecial)630 5340 y(parameters)h(ma)m(y)g(not)f -(b)s(e)g(assigned)h(to)g(in)f(this)g(w)m(a)m(y)-8 b(.)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)150 299 -y Ft(${)p Fj(parameter)p Ft(:?)p Fj(word)p Ft(})630 408 -y Fu(If)26 b Fr(parameter)33 b Fu(is)26 b(n)m(ull)g(or)g(unset,)h(the)f -(expansion)g(of)g Fr(w)m(ord)k Fu(\(or)c(a)h(message)g(to)g(that)f -(e\013ect)630 518 y(if)i Fr(w)m(ord)j Fu(is)d(not)g(presen)m(t\))h(is)f -(written)g(to)h(the)f(standard)f(error)h(and)f(the)h(shell,)h(if)f(it)h -(is)f(not)630 628 y(in)m(teractiv)m(e,)33 b(exits.)42 +b(parameters)e(and)f(sp)s(ecial)630 3957 y(parameters)h(ma)m(y)g(not)f +(b)s(e)g(assigned)h(to)g(in)f(this)g(w)m(a)m(y)-8 b(.)150 +4126 y Ft(${)p Fj(parameter)p Ft(:?)p Fj(word)p Ft(})630 +4235 y Fu(If)26 b Fr(parameter)33 b Fu(is)26 b(n)m(ull)g(or)g(unset,)h +(the)f(expansion)g(of)g Fr(w)m(ord)k Fu(\(or)c(a)h(message)g(to)g(that) +f(e\013ect)630 4345 y(if)i Fr(w)m(ord)j Fu(is)d(not)g(presen)m(t\))h +(is)f(written)g(to)h(the)f(standard)f(error)h(and)f(the)h(shell,)h(if)f +(it)h(is)f(not)630 4454 y(in)m(teractiv)m(e,)33 b(exits.)42 b(Otherwise,)30 b(the)h(v)-5 b(alue)31 b(of)f Fr(parameter)38 -b Fu(is)30 b(substituted.)150 800 y Ft(${)p Fj(parameter)p -Ft(:+)p Fj(word)p Ft(})630 909 y Fu(If)35 b Fr(parameter)42 +b Fu(is)30 b(substituted.)150 4623 y Ft(${)p Fj(parameter)p +Ft(:+)p Fj(word)p Ft(})630 4733 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 1019 y(of)31 b Fr(w)m(ord)i -Fu(is)e(substituted.)150 1191 y Ft(${)p Fj(parameter)p -Ft(:)p Fj(offset)p Ft(})150 1301 y(${)p Fj(parameter)p -Ft(:)p Fj(offset)p Ft(:)p Fj(lengt)o(h)p Ft(})630 1410 +(otherwise)e(the)h(expansion)630 4842 y(of)31 b Fr(w)m(ord)i +Fu(is)e(substituted.)150 5011 y Ft(${)p Fj(parameter)p +Ft(:)p Fj(offset)p Ft(})150 5121 y(${)p Fj(parameter)p +Ft(:)p Fj(offset)p Ft(:)p Fj(lengt)o(h)p Ft(})630 5230 y Fu(This)f(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 -1520 y(ters)k(of)g(the)h(v)-5 b(alue)35 b(of)g Fr(parameter)42 +5340 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 1630 y Fr(parameter)32 -b Fu(is)26 b(`)p Ft(@)p Fu(',)g(an)f(indexed)g(arra)m(y)h(subscripted)e -(b)m(y)h(`)p Ft(@)p Fu(')g(or)h(`)p Ft(*)p Fu(',)g(or)g(an)f(asso)s -(ciativ)m(e)j(ar-)630 1739 y(ra)m(y)g(name,)h(the)f(results)g(di\013er) -g(as)g(describ)s(ed)f(b)s(elo)m(w.)40 b(If)28 b Fr(length)g -Fu(is)g(omitted,)i(it)f(expands)630 1849 y(to)e(the)g(substring)f(of)g -(the)h(v)-5 b(alue)27 b(of)g Fr(parameter)33 b Fu(starting)28 -b(at)f(the)g(c)m(haracter)h(sp)s(eci\014ed)e(b)m(y)630 -1958 y Fr(o\013set)37 b Fu(and)d(extending)g(to)h(the)f(end)g(of)g(the) -g(v)-5 b(alue.)53 b Fr(length)34 b Fu(and)g Fr(o\013set)j -Fu(are)e(arithmetic)630 2068 y(expressions)30 b(\(see)h(Section)g(6.5)h -([Shell)e(Arithmetic],)i(page)f(93\).)630 2209 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 2318 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 2428 -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 -2538 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 2647 y(is)39 b(the)g(c)m(haracters)i(b)s(et) -m(w)m(een)f Fr(o\013set)i Fu(and)c(that)i(result.)67 -b(Note)40 b(that)g(a)g(negativ)m(e)h(o\013set)630 2757 -y(m)m(ust)27 b(b)s(e)g(separated)g(from)g(the)g(colon)i(b)m(y)e(at)h -(least)g(one)f(space)h(to)g(a)m(v)m(oid)h(b)s(eing)e(confused)630 -2866 y(with)j(the)h(`)p Ft(:-)p Fu(')f(expansion.)630 -3007 y(Here)43 b(are)g(some)f(examples)h(illustrating)g(substring)f -(expansion)g(on)g(parameters)h(and)630 3117 y(subscripted)29 -b(arra)m(ys:)630 3258 y Ft($)47 b(string=01234567890abcdefgh)630 -3367 y($)g(echo)g(${string:7})630 3477 y(7890abcdefgh)630 -3587 y($)g(echo)g(${string:7:0})630 3806 y($)g(echo)g(${string:7:2})630 -3915 y(78)630 4025 y($)g(echo)g(${string:7:-2})630 4134 -y(7890abcdef)630 4244 y($)g(echo)g(${string:)e(-7})630 -4354 y(bcdefgh)630 4463 y($)i(echo)g(${string:)e(-7:0})630 -4682 y($)i(echo)g(${string:)e(-7:2})630 4792 y(bc)630 -4902 y($)i(echo)g(${string:)e(-7:-2})630 5011 y(bcdef)630 -5121 y($)i(set)g(--)h(01234567890abcdefgh)630 5230 y($)f(echo)g(${1:7}) -630 5340 y(7890abcdefgh)p eop end +Fr(o\013set)p Fu(.)55 b(If)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)630 299 +y Fr(parameter)32 b Fu(is)26 b(`)p Ft(@)p Fu(',)g(an)f(indexed)g(arra)m +(y)h(subscripted)e(b)m(y)h(`)p Ft(@)p Fu(')g(or)h(`)p +Ft(*)p Fu(',)g(or)g(an)f(asso)s(ciativ)m(e)j(ar-)630 +408 y(ra)m(y)g(name,)h(the)f(results)g(di\013er)g(as)g(describ)s(ed)f +(b)s(elo)m(w.)40 b(If)28 b Fr(length)g Fu(is)g(omitted,)i(it)f(expands) +630 518 y(to)e(the)g(substring)f(of)g(the)h(v)-5 b(alue)27 +b(of)g Fr(parameter)33 b Fu(starting)28 b(at)f(the)g(c)m(haracter)h(sp) +s(eci\014ed)e(b)m(y)630 628 y Fr(o\013set)37 b Fu(and)d(extending)g(to) +h(the)f(end)g(of)g(the)g(v)-5 b(alue.)53 b Fr(length)34 +b Fu(and)g Fr(o\013set)j Fu(are)e(arithmetic)630 737 +y(expressions)30 b(\(see)h(Section)g(6.5)h([Shell)e(Arithmetic],)i +(page)f(93\).)630 883 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 +993 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 1103 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 1212 +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 1322 y(is)39 b(the)g(c)m(haracters)i(b)s(et)m(w)m(een)f +Fr(o\013set)i Fu(and)c(that)i(result.)67 b(Note)40 b(that)g(a)g +(negativ)m(e)h(o\013set)630 1431 y(m)m(ust)27 b(b)s(e)g(separated)g +(from)g(the)g(colon)i(b)m(y)e(at)h(least)g(one)f(space)h(to)g(a)m(v)m +(oid)h(b)s(eing)e(confused)630 1541 y(with)j(the)h(`)p +Ft(:-)p Fu(')f(expansion.)630 1687 y(Here)43 b(are)g(some)f(examples)h +(illustrating)g(substring)f(expansion)g(on)g(parameters)h(and)630 +1797 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: 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)630 299 -y Ft($)47 b(echo)g(${1:7:0})630 518 y($)g(echo)g(${1:7:2})630 -628 y(78)630 737 y($)g(echo)g(${1:7:-2})630 847 y(7890abcdef)630 -956 y($)g(echo)g(${1:)g(-7})630 1066 y(bcdefgh)630 1176 -y($)g(echo)g(${1:)g(-7:0})630 1395 y($)g(echo)g(${1:)g(-7:2})630 -1504 y(bc)630 1614 y($)g(echo)g(${1:)g(-7:-2})630 1724 -y(bcdef)630 1833 y($)g(array[0]=01234567890abcdef)o(gh)630 -1943 y($)g(echo)g(${array[0]:7})630 2052 y(7890abcdefgh)630 -2162 y($)g(echo)g(${array[0]:7:0})630 2381 y($)g(echo)g -(${array[0]:7:2})630 2491 y(78)630 2600 y($)g(echo)g(${array[0]:7:-2}) -630 2710 y(7890abcdef)630 2819 y($)g(echo)g(${array[0]:)e(-7})630 -2929 y(bcdefgh)630 3039 y($)i(echo)g(${array[0]:)e(-7:0})630 -3258 y($)i(echo)g(${array[0]:)e(-7:2})630 3367 y(bc)630 -3477 y($)i(echo)g(${array[0]:)e(-7:-2})630 3587 y(bcdef)630 -3733 y Fu(If)22 b Fr(parameter)30 b Fu(is)23 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 +2436 y Fu(If)22 b Fr(parameter)30 b Fu(is)23 b(`)p Ft(@)p Fu(',)i(the)e(result)g(is)g Fr(length)h Fu(p)s(ositional)f(parameters)h -(b)s(eginning)e(at)i Fr(o\013set)p Fu(.)630 3842 y(A)36 +(b)s(eginning)e(at)i Fr(o\013set)p Fu(.)630 2545 y(A)36 b(negativ)m(e)j Fr(o\013set)g Fu(is)e(tak)m(en)g(relativ)m(e)i(to)e (one)g(greater)g(than)f(the)h(greatest)h(p)s(ositional)630 -3952 y(parameter,)29 b(so)f(an)g(o\013set)h(of)f(-1)g(ev)-5 +2655 y(parameter,)29 b(so)f(an)g(o\013set)h(of)f(-1)g(ev)-5 b(aluates)30 b(to)e(the)g(last)h(p)s(ositional)g(parameter.)40 -b(It)28 b(is)g(an)630 4061 y(expansion)i(error)g(if)h +b(It)28 b(is)g(an)630 2765 y(expansion)i(error)g(if)h Fr(length)f 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 4208 y(The)i(follo)m(wing)i(examples)f(illustrate)h +(than)f(zero.)630 2929 y(The)i(follo)m(wing)i(examples)f(illustrate)h (substring)d(expansion)i(using)f(p)s(ositional)h(param-)630 -4317 y(eters:)630 4463 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 4573 -y($)g(echo)g(${@:7})630 4682 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 4792 y($)g(echo)g(${@:7:0})630 5011 y($)g(echo)g(${@:7:2}) -630 5121 y(7)g(8)630 5230 y($)g(echo)g(${@:7:-2})630 -5340 y(bash:)f(-2:)h(substring)f(expression)f(<)i(0)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)630 299 -y Ft($)47 b(echo)g(${@:)g(-7:2})630 408 y(b)g(c)630 518 -y($)g(echo)g(${@:0})630 628 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 737 y($)f(echo)g(${@:0:2}) -630 847 y(./bash)f(1)630 956 y($)h(echo)g(${@:)g(-7:0})630 -1200 y Fu(If)36 b Fr(parameter)43 b Fu(is)36 b(an)g(indexed)g(arra)m(y) +3039 y(eters:)630 3203 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 3313 +y($)g(echo)g(${@:7})630 3422 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 3532 y($)g(echo)g(${@:7:0})630 3751 y($)g(echo)g(${@:7:2}) +630 3861 y(7)g(8)630 3970 y($)g(echo)g(${@:7:-2})630 +4080 y(bash:)f(-2:)h(substring)f(expression)f(<)i(0)630 +4189 y($)g(echo)g(${@:)g(-7:2})630 4299 y(b)g(c)630 4408 +y($)g(echo)g(${@:0})630 4518 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 4628 y($)f(echo)g(${@:0:2}) +630 4737 y(./bash)f(1)630 4847 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 1310 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 1419 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 1529 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 -1638 y(than)30 b(zero.)630 1772 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 1906 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 2016 -y($)f(echo)g(${array[@]:7})630 2125 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 2235 y($)g(echo)g(${array[@]:7:2})630 -2345 y(7)g(8)630 2454 y($)g(echo)g(${array[@]:)e(-7:2})630 -2564 y(b)i(c)630 2673 y($)g(echo)g(${array[@]:)e(-7:-2})630 -2783 y(bash:)h(-2:)h(substring)f(expression)f(<)i(0)630 -2892 y($)g(echo)g(${array[@]:0})630 3002 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 3112 -y($)g(echo)g(${array[@]:0:2})630 3221 y(0)g(1)630 3331 -y($)g(echo)g(${array[@]:)e(-7:0})630 3574 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 3708 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 3818 y(whic)m(h)29 +(of)h(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)630 299 +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 562 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 715 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 825 y($)f(echo)g(${array[@]:7})630 +934 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 +1044 y($)g(echo)g(${array[@]:7:2})630 1154 y(7)g(8)630 +1263 y($)g(echo)g(${array[@]:)e(-7:2})630 1373 y(b)i(c)630 +1482 y($)g(echo)g(${array[@]:)e(-7:-2})630 1592 y(bash:)h(-2:)h +(substring)f(expression)f(<)i(0)630 1702 y($)g(echo)g(${array[@]:0})630 +1811 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 1921 y($)g(echo)g(${array[@]:0:2})630 +2030 y(0)g(1)630 2140 y($)g(echo)g(${array[@]:)e(-7:0})630 +2403 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 +2556 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 2666 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 -3927 y(parameters)h(are)f(used,)g Ft($@)g Fu(is)g(pre\014xed)g(to)h -(the)f(list.)150 4086 y Ft(${!)p Fj(prefix)p Ft(*})150 -4195 y(${!)p Fj(prefix)p Ft(@})630 4305 y Fu(Expands)24 +2776 y(parameters)h(are)f(used,)g Ft($@)g Fu(is)g(pre\014xed)g(to)h +(the)f(list.)150 2973 y Ft(${!)p Fj(prefix)p Ft(*})150 +3082 y(${!)p Fj(prefix)p Ft(@})630 3192 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 -4415 y(the)k(\014rst)f(c)m(haracter)j(of)e(the)g Ft(IFS)f +3302 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 4524 y(sion)35 +Fu(')g(is)g(used)f(and)h(the)g(expan-)630 3411 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 -4634 y(w)m(ord.)150 4792 y Ft(${!)p Fj(name)p Ft([@]})150 -4902 y(${!)p Fj(name)p Ft([*]})630 5011 y Fu(If)26 b +3521 y(w)m(ord.)150 3718 y Ft(${!)p Fj(name)p Ft([@]})150 +3828 y(${!)p Fj(name)p Ft([*]})630 3937 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 5121 y(in)c Fr(name)p Fu(.)39 b(If)24 b +(assigned)630 4047 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 5230 y(When)39 b(`)p Ft(@)p Fu(')h(is)f(used)g(and)f +(otherwise.)630 4156 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 5340 y(expands)30 b(to)h(a)f(separate)i(w)m(ord.)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(})630 408 y Fu(The)40 b(length)g(in)g(c)m -(haracters)i(of)e(the)h(expanded)e(v)-5 b(alue)41 b(of)f -Fr(parameter)47 b Fu(is)40 b(substituted.)630 518 y(If)i -Fr(parameter)50 b Fu(is)43 b(`)p Ft(*)p Fu(')g(or)g(`)p +(k)m(ey)630 4266 y(expands)30 b(to)h(a)f(separate)i(w)m(ord.)150 +4463 y Ft(${#)p Fj(parameter)p Ft(})630 4573 y Fu(The)40 +b(length)g(in)g(c)m(haracters)i(of)e(the)h(expanded)e(v)-5 +b(alue)41 b(of)f Fr(parameter)47 b Fu(is)40 b(substituted.)630 +4682 y(If)i Fr(parameter)50 b Fu(is)43 b(`)p Ft(*)p Fu(')g(or)g(`)p Ft(@)p Fu(',)k(the)c(v)-5 b(alue)43 b(substituted)f(is)h(the)g(n)m(um)m -(b)s(er)f(of)h(p)s(ositional)630 628 y(parameters.)i(If)32 +(b)s(er)f(of)h(p)s(ositional)630 4792 y(parameters.)i(If)32 b Fr(parameter)38 b Fu(is)32 b(an)g(arra)m(y)g(name)g(subscripted)f(b)m (y)g(`)p Ft(*)p Fu(')h(or)g(`)p Ft(@)p Fu(',)g(the)g(v)-5 -b(alue)630 737 y(substituted)30 b(is)h(the)g(n)m(um)m(b)s(er)e(of)i +b(alue)630 4902 y(substituted)30 b(is)h(the)g(n)m(um)m(b)s(er)e(of)i (elemen)m(ts)i(in)d(the)h(arra)m(y)-8 b(.)43 b(If)30 -b Fr(parameter)38 b Fu(is)31 b(an)f(indexed)630 847 y(arra)m(y)37 -b(name)g(subscripted)f(b)m(y)h(a)g(negativ)m(e)i(n)m(um)m(b)s(er,)f -(that)f(n)m(um)m(b)s(er)f(is)g(in)m(terpreted)i(as)630 -956 y(relativ)m(e)47 b(to)g(one)e(greater)i(than)e(the)h(maxim)m(um)f +b Fr(parameter)38 b Fu(is)31 b(an)f(indexed)630 5011 +y(arra)m(y)37 b(name)g(subscripted)f(b)m(y)h(a)g(negativ)m(e)i(n)m(um)m +(b)s(er,)f(that)f(n)m(um)m(b)s(er)f(is)g(in)m(terpreted)i(as)630 +5121 y(relativ)m(e)47 b(to)g(one)e(greater)i(than)e(the)h(maxim)m(um)f (index)g(of)g Fr(parameter)p Fu(,)50 b(so)c(negativ)m(e)630 -1066 y(indices)30 b(coun)m(t)h(bac)m(k)g(from)f(the)h(end)e(of)i(the)f +5230 y(indices)30 b(coun)m(t)h(bac)m(k)g(from)f(the)h(end)e(of)i(the)f (arra)m(y)-8 b(,)32 b(and)e(an)g(index)g(of)g(-1)h(references)g(the)630 -1176 y(last)g(elemen)m(t.)150 1322 y Ft(${)p Fj(parameter)p -Ft(#)p Fj(word)p Ft(})150 1431 y(${)p Fj(parameter)p -Ft(##)p Fj(word)p Ft(})630 1541 y Fu(The)43 b Fr(w)m(ord)k -Fu(is)d(expanded)f(to)h(pro)s(duce)f(a)h(pattern)g(and)f(matc)m(hed)i -(according)f(to)h(the)630 1650 y(rules)31 b(describ)s(ed)g(b)s(elo)m(w) -h(\(see)h(Section)g(3.5.8.1)h([P)m(attern)g(Matc)m(hing],)g(page)f -(33\).)46 b(If)32 b(the)630 1760 y(pattern)37 b(matc)m(hes)h(the)f(b)s -(eginning)f(of)h(the)g(expanded)f(v)-5 b(alue)38 b(of)f -Fr(parameter)p Fu(,)i(then)e(the)630 1870 y(result)f(of)h(the)f -(expansion)h(is)f(the)h(expanded)e(v)-5 b(alue)37 b(of)g -Fr(parameter)43 b Fu(with)36 b(the)h(shortest)630 1979 -y(matc)m(hing)31 b(pattern)e(\(the)h(`)p Ft(#)p Fu(')g(case\))h(or)e -(the)h(longest)h(matc)m(hing)f(pattern)g(\(the)g(`)p -Ft(##)p Fu(')g(case\))630 2089 y(deleted.)49 b(If)32 -b Fr(parameter)40 b Fu(is)33 b(`)p Ft(@)p Fu(')g(or)g(`)p +5340 y(last)g(elemen)m(t.)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(})150 408 +y(${)p Fj(parameter)p Ft(##)p Fj(word)p Ft(})630 518 +y Fu(The)43 b Fr(w)m(ord)k Fu(is)d(expanded)f(to)h(pro)s(duce)f(a)h +(pattern)g(and)f(matc)m(hed)i(according)f(to)h(the)630 +628 y(rules)31 b(describ)s(ed)g(b)s(elo)m(w)h(\(see)h(Section)g +(3.5.8.1)h([P)m(attern)g(Matc)m(hing],)g(page)f(33\).)46 +b(If)32 b(the)630 737 y(pattern)37 b(matc)m(hes)h(the)f(b)s(eginning)f +(of)h(the)g(expanded)f(v)-5 b(alue)38 b(of)f Fr(parameter)p +Fu(,)i(then)e(the)630 847 y(result)f(of)h(the)f(expansion)h(is)f(the)h +(expanded)e(v)-5 b(alue)37 b(of)g Fr(parameter)43 b Fu(with)36 +b(the)h(shortest)630 956 y(matc)m(hing)31 b(pattern)e(\(the)h(`)p +Ft(#)p Fu(')g(case\))h(or)e(the)h(longest)h(matc)m(hing)f(pattern)g +(\(the)g(`)p Ft(##)p Fu(')g(case\))630 1066 y(deleted.)49 +b(If)32 b Fr(parameter)40 b Fu(is)33 b(`)p Ft(@)p Fu(')g(or)g(`)p Ft(*)p Fu(',)h(the)f(pattern)g(remo)m(v)-5 b(al)34 b(op)s(eration)g(is) -f(applied)f(to)630 2198 y(eac)m(h)38 b(p)s(ositional)g(parameter)g(in)f +f(applied)f(to)630 1176 y(eac)m(h)38 b(p)s(ositional)g(parameter)g(in)f (turn,)h(and)e(the)h(expansion)g(is)h(the)f(resultan)m(t)h(list.)61 -b(If)630 2308 y Fr(parameter)38 b Fu(is)32 b(an)f(arra)m(y)h(v)-5 +b(If)630 1285 y Fr(parameter)38 b Fu(is)32 b(an)f(arra)m(y)h(v)-5 b(ariable)32 b(subscripted)e(with)h(`)p Ft(@)p Fu(')g(or)h(`)p -Ft(*)p Fu(',)g(the)f(pattern)h(remo)m(v)-5 b(al)630 2418 +Ft(*)p Fu(',)g(the)f(pattern)h(remo)m(v)-5 b(al)630 1395 y(op)s(eration)30 b(is)g(applied)f(to)i(eac)m(h)g(mem)m(b)s(er)e(of)h (the)g(arra)m(y)g(in)f(turn,)g(and)g(the)h(expansion)g(is)630 -2527 y(the)h(resultan)m(t)g(list.)150 2673 y Ft(${)p -Fj(parameter)p Ft(\045)p Fj(word)p Ft(})150 2783 y(${)p -Fj(parameter)p Ft(\045\045)p Fj(word)p Ft(})630 2892 +1504 y(the)h(resultan)m(t)g(list.)150 1943 y Ft(${)p +Fj(parameter)p Ft(\045)p Fj(word)p Ft(})150 2052 y(${)p +Fj(parameter)p Ft(\045\045)p Fj(word)p Ft(})630 2162 y Fu(The)43 b Fr(w)m(ord)k Fu(is)d(expanded)f(to)h(pro)s(duce)f(a)h (pattern)g(and)f(matc)m(hed)i(according)f(to)h(the)630 -3002 y(rules)f(describ)s(ed)g(b)s(elo)m(w)h(\(see)h(Section)g(3.5.8.1)h +2271 y(rules)f(describ)s(ed)g(b)s(elo)m(w)h(\(see)h(Section)g(3.5.8.1)h ([P)m(attern)f(Matc)m(hing],)51 b(page)45 b(33\).)85 -b(If)630 3112 y(the)43 b(pattern)g(matc)m(hes)h(a)g(trailing)g(p)s +b(If)630 2381 y(the)43 b(pattern)g(matc)m(hes)h(a)g(trailing)g(p)s (ortion)e(of)h(the)g(expanded)g(v)-5 b(alue)43 b(of)g -Fr(parameter)p Fu(,)630 3221 y(then)c(the)g(result)g(of)h(the)f +Fr(parameter)p Fu(,)630 2491 y(then)c(the)g(result)g(of)h(the)f (expansion)g(is)h(the)f(v)-5 b(alue)40 b(of)f Fr(parameter)46 -b Fu(with)39 b(the)h(shortest)630 3331 y(matc)m(hing)31 +b Fu(with)39 b(the)h(shortest)630 2600 y(matc)m(hing)31 b(pattern)e(\(the)h(`)p Ft(\045)p Fu(')g(case\))h(or)e(the)h(longest)h (matc)m(hing)f(pattern)g(\(the)g(`)p Ft(\045\045)p Fu(')g(case\))630 -3440 y(deleted.)49 b(If)32 b Fr(parameter)40 b Fu(is)33 +2710 y(deleted.)49 b(If)32 b Fr(parameter)40 b Fu(is)33 b(`)p Ft(@)p Fu(')g(or)g(`)p Ft(*)p Fu(',)h(the)f(pattern)g(remo)m(v)-5 -b(al)34 b(op)s(eration)g(is)f(applied)f(to)630 3550 y(eac)m(h)38 +b(al)34 b(op)s(eration)g(is)f(applied)f(to)630 2819 y(eac)m(h)38 b(p)s(ositional)g(parameter)g(in)f(turn,)h(and)e(the)h(expansion)g(is)h -(the)f(resultan)m(t)h(list.)61 b(If)630 3660 y Fr(parameter)38 +(the)f(resultan)m(t)h(list.)61 b(If)630 2929 y Fr(parameter)38 b Fu(is)32 b(an)f(arra)m(y)h(v)-5 b(ariable)32 b(subscripted)e(with)h (`)p Ft(@)p Fu(')g(or)h(`)p Ft(*)p Fu(',)g(the)f(pattern)h(remo)m(v)-5 -b(al)630 3769 y(op)s(eration)30 b(is)g(applied)f(to)i(eac)m(h)g(mem)m +b(al)630 3039 y(op)s(eration)30 b(is)g(applied)f(to)i(eac)m(h)g(mem)m (b)s(er)e(of)h(the)g(arra)m(y)g(in)f(turn,)g(and)g(the)h(expansion)g -(is)630 3879 y(the)h(resultan)m(t)g(list.)150 4025 y +(is)630 3148 y(the)h(resultan)m(t)g(list.)150 3587 y Ft(${)p Fj(parameter)p Ft(/)p Fj(pattern)p Ft(/)p Fj(stri)o(ng)p -Ft(})630 4134 y Fu(The)37 b Fr(pattern)g Fu(is)g(expanded)g(to)h(pro)s +Ft(})630 3696 y Fu(The)37 b Fr(pattern)g Fu(is)g(expanded)g(to)h(pro)s (duce)e(a)h(pattern)g(just)g(as)h(in)e(\014lename)i(expansion.)630 -4244 y Fr(P)m(arameter)46 b Fu(is)38 b(expanded)f(and)g(the)i(longest)g +3806 y Fr(P)m(arameter)46 b Fu(is)38 b(expanded)f(and)g(the)i(longest)g (matc)m(h)g(of)f Fr(pattern)g Fu(against)h(its)f(v)-5 -b(alue)39 b(is)630 4354 y(replaced)31 b(with)g Fr(string)p +b(alue)39 b(is)630 3915 y(replaced)31 b(with)g Fr(string)p Fu(.)42 b(The)30 b(matc)m(h)h(is)g(p)s(erformed)f(according)h(to)h(the) -f(rules)f(describ)s(ed)630 4463 y(b)s(elo)m(w)f(\(see)h(Section)g +f(rules)f(describ)s(ed)630 4025 y(b)s(elo)m(w)f(\(see)h(Section)g (3.5.8.1)h([P)m(attern)g(Matc)m(hing],)g(page)f(33\).)41 -b(If)29 b Fr(pattern)g Fu(b)s(egins)f(with)630 4573 y(`)p +b(If)29 b Fr(pattern)g Fu(b)s(egins)f(with)630 4134 y(`)p Ft(/)p Fu(',)43 b(all)e(matc)m(hes)g(of)f Fr(pattern)g Fu(are)h(replaced)f(with)g Fr(string)p Fu(.)69 b(Normally)41 -b(only)f(the)h(\014rst)630 4682 y(matc)m(h)28 b(is)f(replaced.)40 +b(only)f(the)h(\014rst)630 4244 y(matc)m(h)28 b(is)f(replaced.)40 b(If)26 b Fr(pattern)h Fu(b)s(egins)f(with)h(`)p Ft(#)p Fu(',)h(it)f(m)m(ust)g(matc)m(h)h(at)g(the)f(b)s(eginning)f(of)630 -4792 y(the)32 b(expanded)f(v)-5 b(alue)32 b(of)g Fr(parameter)p +4354 y(the)32 b(expanded)f(v)-5 b(alue)32 b(of)g Fr(parameter)p Fu(.)45 b(If)31 b Fr(pattern)h Fu(b)s(egins)f(with)g(`)p -Ft(\045)p Fu(',)i(it)f(m)m(ust)g(matc)m(h)g(at)630 4902 +Ft(\045)p Fu(',)i(it)f(m)m(ust)g(matc)m(h)g(at)630 4463 y(the)24 b(end)f(of)h(the)h(expanded)e(v)-5 b(alue)24 b(of)g Fr(parameter)p Fu(.)39 b(If)24 b Fr(string)31 b Fu(is)24 b(n)m(ull,)i(matc)m(hes)f(of)f Fr(pattern)630 -5011 y Fu(are)36 b(deleted)g(and)f(the)g Ft(/)g Fu(follo)m(wing)i +4573 y Fu(are)36 b(deleted)g(and)f(the)g Ft(/)g Fu(follo)m(wing)i Fr(pattern)e Fu(ma)m(y)h(b)s(e)f(omitted.)57 b(If)34 -b(the)i Ft(nocasematch)630 5121 y Fu(shell)31 b(option)h(\(see)g(the)g +b(the)i Ft(nocasematch)630 4682 y Fu(shell)31 b(option)h(\(see)g(the)g (description)f(of)g Ft(shopt)f Fu(in)h(Section)h(4.3.2)h([The)e(Shopt)f -(Builtin],)630 5230 y(page)45 b(66\))h(is)f(enabled,)j(the)d(matc)m(h)g +(Builtin],)630 4792 y(page)45 b(66\))h(is)f(enabled,)j(the)d(matc)m(h)g (is)g(p)s(erformed)e(without)i(regard)f(to)h(the)g(case)h(of)630 -5340 y(alphab)s(etic)36 b(c)m(haracters.)56 b(If)34 b +4902 y(alphab)s(etic)36 b(c)m(haracters.)56 b(If)34 b Fr(parameter)42 b Fu(is)36 b(`)p Ft(@)p Fu(')f(or)g(`)p -Ft(*)p Fu(',)h(the)g(substitution)e(op)s(eration)i(is)p -eop end +Ft(*)p Fu(',)h(the)g(substitution)e(op)s(eration)i(is)630 +5011 y(applied)26 b(to)g(eac)m(h)h(p)s(ositional)f(parameter)h(in)e +(turn,)h(and)f(the)h(expansion)g(is)f(the)h(resultan)m(t)630 +5121 y(list.)38 b(If)21 b Fr(parameter)28 b Fu(is)22 +b(an)f(arra)m(y)h(v)-5 b(ariable)22 b(subscripted)e(with)h(`)p +Ft(@)p Fu(')g(or)g(`)p Ft(*)p Fu(',)j(the)d(substitution)630 +5230 y(op)s(eration)30 b(is)g(applied)f(to)i(eac)m(h)g(mem)m(b)s(er)e +(of)h(the)g(arra)m(y)g(in)f(turn,)g(and)g(the)h(expansion)g(is)630 +5340 y(the)h(resultan)m(t)g(list.)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(applied)26 b(to)g(eac)m(h)h(p)s(ositional)f(parameter)h(in)e(turn,)h -(and)f(the)h(expansion)g(is)f(the)h(resultan)m(t)630 -408 y(list.)38 b(If)21 b Fr(parameter)28 b Fu(is)22 b(an)f(arra)m(y)h -(v)-5 b(ariable)22 b(subscripted)e(with)h(`)p Ft(@)p -Fu(')g(or)g(`)p Ft(*)p Fu(',)j(the)d(substitution)630 -518 y(op)s(eration)30 b(is)g(applied)f(to)i(eac)m(h)g(mem)m(b)s(er)e -(of)h(the)g(arra)m(y)g(in)f(turn,)g(and)g(the)h(expansion)g(is)630 -628 y(the)h(resultan)m(t)g(list.)150 792 y Ft(${)p Fj(parameter)p -Ft(^)p Fj(pattern)p Ft(})150 902 y(${)p Fj(parameter)p -Ft(^^)p Fj(pattern)p Ft(})150 1011 y(${)p Fj(parameter)p -Ft(,)p Fj(pattern)p Ft(})150 1121 y(${)p Fj(parameter)p -Ft(,,)p Fj(pattern)p Ft(})630 1230 y Fu(This)36 b(expansion)g(mo)s -(di\014es)g(the)g(case)i(of)f(alphab)s(etic)g(c)m(haracters)h(in)e -Fr(parameter)p Fu(.)59 b(The)630 1340 y Fr(pattern)33 -b Fu(is)g(expanded)e(to)j(pro)s(duce)d(a)j(pattern)e(just)g(as)h(in)g -(\014lename)g(expansion.)47 b(Eac)m(h)630 1450 y(c)m(haracter)32 -b(in)e(the)g(expanded)f(v)-5 b(alue)31 b(of)f Fr(parameter)37 -b Fu(is)30 b(tested)h(against)h Fr(pattern)p Fu(,)e(and,)g(if)630 -1559 y(it)j(matc)m(hes)h(the)g(pattern,)f(its)h(case)g(is)f(con)m(v)m -(erted.)49 b(The)33 b(pattern)g(should)f(not)h(attempt)630 -1669 y(to)f(matc)m(h)g(more)f(than)g(one)g(c)m(haracter.)44 -b(The)30 b(`)p Ft(^)p Fu(')i(op)s(erator)f(con)m(v)m(erts)h(lo)m(w)m -(ercase)i(letters)630 1778 y(matc)m(hing)i Fr(pattern)f -Fu(to)h(upp)s(ercase;)h(the)e(`)p Ft(,)p Fu(')g(op)s(erator)g(con)m(v)m -(erts)i(matc)m(hing)f(upp)s(ercase)630 1888 y(letters)e(to)f(lo)m(w)m -(ercase.)50 b(The)32 b(`)p Ft(^^)p Fu(')h(and)f(`)p Ft(,,)p -Fu(')g(expansions)h(con)m(v)m(ert)h(eac)m(h)g(matc)m(hed)f(c)m(har-)630 -1998 y(acter)c(in)f(the)h(expanded)e(v)-5 b(alue;)30 +b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(30)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)36 b(expansion)g(mo)s(di\014es)g(the)g(case)i(of)f +(alphab)s(etic)g(c)m(haracters)h(in)e Fr(parameter)p +Fu(.)59 b(The)630 847 y Fr(pattern)33 b Fu(is)g(expanded)e(to)j(pro)s +(duce)d(a)j(pattern)e(just)g(as)h(in)g(\014lename)g(expansion.)47 +b(Eac)m(h)630 956 y(c)m(haracter)32 b(in)e(the)g(expanded)f(v)-5 +b(alue)31 b(of)f Fr(parameter)37 b Fu(is)30 b(tested)h(against)h +Fr(pattern)p Fu(,)e(and,)g(if)630 1066 y(it)j(matc)m(hes)h(the)g +(pattern,)f(its)h(case)g(is)f(con)m(v)m(erted.)49 b(The)33 +b(pattern)g(should)f(not)h(attempt)630 1176 y(to)f(matc)m(h)g(more)f +(than)g(one)g(c)m(haracter.)44 b(The)30 b(`)p Ft(^)p +Fu(')i(op)s(erator)f(con)m(v)m(erts)h(lo)m(w)m(ercase)i(letters)630 +1285 y(matc)m(hing)i Fr(pattern)f Fu(to)h(upp)s(ercase;)h(the)e(`)p +Ft(,)p Fu(')g(op)s(erator)g(con)m(v)m(erts)i(matc)m(hing)f(upp)s +(ercase)630 1395 y(letters)e(to)f(lo)m(w)m(ercase.)50 +b(The)32 b(`)p Ft(^^)p Fu(')h(and)f(`)p Ft(,,)p Fu(')g(expansions)h +(con)m(v)m(ert)h(eac)m(h)g(matc)m(hed)f(c)m(har-)630 +1504 y(acter)c(in)f(the)h(expanded)e(v)-5 b(alue;)30 b(the)e(`)p Ft(^)p Fu(')g(and)g(`)p Ft(,)p Fu(')g(expansions)g(matc)m -(h)h(and)f(con)m(v)m(ert)i(only)630 2107 y(the)37 b(\014rst)g(c)m +(h)h(and)f(con)m(v)m(ert)i(only)630 1614 y(the)37 b(\014rst)g(c)m (haracter)i(in)e(the)g(expanded)g(v)-5 b(alue.)61 b(If)37 b Fr(pattern)g Fu(is)h(omitted,)i(it)e(is)f(treated)630 -2217 y(lik)m(e)h(a)f(`)p Ft(?)p Fu(',)i(whic)m(h)d(matc)m(hes)i(ev)m +1724 y(lik)m(e)h(a)f(`)p Ft(?)p Fu(',)i(whic)m(h)d(matc)m(hes)i(ev)m (ery)f(c)m(haracter.)61 b(If)37 b Fr(parameter)43 b Fu(is)37 b(`)p Ft(@)p Fu(')g(or)f(`)p Ft(*)p Fu(',)j(the)e(case)630 -2326 y(mo)s(di\014cation)29 b(op)s(eration)f(is)g(applied)g(to)h(eac)m +1833 y(mo)s(di\014cation)29 b(op)s(eration)f(is)g(applied)g(to)h(eac)m (h)h(p)s(ositional)f(parameter)f(in)g(turn,)g(and)g(the)630 -2436 y(expansion)38 b(is)g(the)g(resultan)m(t)h(list.)65 +1943 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 2545 y(with)26 b(`)p Ft(@)p +b(ariable)39 b(subscripted)630 2052 y(with)26 b(`)p Ft(@)p Fu(')f(or)h(`)p Ft(*)p Fu(',)h(the)f(case)h(mo)s(di\014cation)f(op)s (eration)h(is)e(applied)h(to)h(eac)m(h)g(mem)m(b)s(er)e(of)h(the)630 -2655 y(arra)m(y)31 b(in)f(turn,)f(and)h(the)h(expansion)f(is)g(the)h -(resultan)m(t)g(list.)150 2819 y Ft(${)p Fj(parameter)p -Ft(@)p Fj(operator)p Ft(})630 2929 y Fu(The)d(expansion)h(is)f(either)h +2162 y(arra)m(y)31 b(in)f(turn,)f(and)h(the)h(expansion)f(is)g(the)h +(resultan)m(t)g(list.)150 2359 y Ft(${)p Fj(parameter)p +Ft(@)p Fj(operator)p Ft(})630 2469 y Fu(The)d(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 3039 y(tion)e(ab)s(out)f +Fr(parameter)35 b Fu(or)29 b(informa-)630 2578 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 3148 y Fu(is)j(a)h(single)g(letter:)630 -3313 y Ft(Q)432 b Fu(The)30 b(expansion)h(is)g(a)g(string)f(that)i(is)f +b Fr(op)s(erator)630 2688 y Fu(is)j(a)h(single)g(letter:)630 +2885 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 3422 y(a)g(format)f(that)h(can)g(b)s(e)f(reused)f(as)i -(input.)630 3587 y Ft(E)432 b Fu(The)27 b(expansion)g(is)g(a)g(string)h +b(in)1110 2995 y(a)g(format)f(that)h(can)g(b)s(e)f(reused)f(as)i +(input.)630 3192 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 3696 y(slash)e(escap)s(e)h(sequences)f +b Fu(with)27 b(bac)m(k-)1110 3302 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 -3806 y(anism.)630 3970 y Ft(P)432 b Fu(The)22 b(expansion)h(is)g(a)g +3411 y(anism.)630 3608 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 4080 y Fr(parameter)31 b Fu(as)24 +b(alue)24 b(of)1110 3718 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 4189 y(the)31 b(Prompt],)f(page)h(98\).)630 -4354 y Ft(A)432 b Fu(The)24 b(expansion)g(is)g(a)h(string)f(in)g(the)g +([Con)m(trolling)1110 3828 y(the)31 b(Prompt],)f(page)h(98\).)630 +4025 y Ft(A)432 b Fu(The)24 b(expansion)g(is)g(a)h(string)f(in)g(the)g (form)g(of)h(an)f(assignmen)m(t)h(statemen)m(t)h(or)1110 -4463 y Ft(declare)h Fu(command)i(that,)h(if)f(ev)-5 b(aluated,)31 -b(will)e(recreate)i Fr(parameter)36 b Fu(with)1110 4573 -y(its)31 b(attributes)g(and)e(v)-5 b(alue.)630 4737 y +4134 y Ft(declare)h Fu(command)i(that,)h(if)f(ev)-5 b(aluated,)31 +b(will)e(recreate)i Fr(parameter)36 b Fu(with)1110 4244 +y(its)31 b(attributes)g(and)e(v)-5 b(alue.)630 4441 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 -4847 y(rameter)7 b Fu('s)31 b(attributes.)630 5011 y(If)e +4551 y(rameter)7 b Fu('s)31 b(attributes.)630 4748 y(If)e 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 5121 y(in)24 b(turn,)g(and)f(the)h +(ositional)f(parameter)630 4858 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 -5230 y(subscripted)24 b(with)h(`)p Ft(@)p Fu(')h(or)g(`)p +4967 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 5340 y(in)30 b(turn,)g(and)f(the)i -(expansion)f(is)h(the)f(resultan)m(t)h(list.)p eop end +(b)s(er)e(of)h(the)f(arra)m(y)630 5077 y(in)30 b(turn,)g(and)f(the)i +(expansion)f(is)h(the)f(resultan)m(t)h(list.)630 5230 +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 +5340 y(as)j(describ)s(ed)e(b)s(elo)m(w.)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(The)27 b(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 -408 y(as)j(describ)s(ed)e(b)s(elo)m(w.)150 610 y Fk(3.5.4)63 -b(Command)41 b(Substitution)150 757 y Fu(Command)f(substitution)h(allo) -m(ws)i(the)e(output)g(of)h(a)f(command)g(to)h(replace)g(the)g(command)f -(itself.)150 866 y(Command)29 b(substitution)h(o)s(ccurs)h(when)e(a)i -(command)f(is)g(enclosed)h(as)g(follo)m(ws:)390 1003 -y Ft($\()p Fj(command)p Ft(\))150 1140 y Fu(or)390 1277 -y Ft(`)p Fj(command)p Ft(`)150 1413 y Fu(Bash)20 b(p)s(erforms)f(the)i -(expansion)f(b)m(y)g(executing)i Fr(command)h Fu(in)d(a)h(subshell)e -(en)m(vironmen)m(t)i(and)f(replacing)150 1523 y(the)40 -b(command)g(substitution)f(with)h(the)g(standard)f(output)g(of)h(the)g -(command,)i(with)e(an)m(y)g(trailing)150 1632 y(newlines)e(deleted.)64 -b(Em)m(b)s(edded)37 b(newlines)h(are)g(not)g(deleted,)j(but)d(they)g -(ma)m(y)h(b)s(e)e(remo)m(v)m(ed)i(during)150 1742 y(w)m(ord)30 -b(splitting.)42 b(The)30 b(command)g(substitution)h Ft($\(cat)e -Fj(file)p Ft(\))g Fu(can)h(b)s(e)g(replaced)h(b)m(y)g(the)f(equiv)-5 -b(alen)m(t)150 1852 y(but)30 b(faster)g Ft($\(<)g Fj(file)p -Ft(\))p Fu(.)275 1988 y(When)j(the)i(old-st)m(yle)h(bac)m(kquote)f -(form)f(of)g(substitution)g(is)g(used,)h(bac)m(kslash)f(retains)h(its)f -(literal)150 2098 y(meaning)k(except)h(when)e(follo)m(w)m(ed)j(b)m(y)e -(`)p Ft($)p Fu(',)j(`)p Ft(`)p Fu(',)f(or)e(`)p Ft(\\)p -Fu('.)64 b(The)38 b(\014rst)f(bac)m(kquote)j(not)e(preceded)g(b)m(y)g -(a)150 2207 y(bac)m(kslash)k(terminates)f(the)h(command)e -(substitution.)72 b(When)41 b(using)f(the)i Ft($\()p -Fj(command)p Ft(\))c Fu(form,)43 b(all)150 2317 y(c)m(haracters)32 -b(b)s(et)m(w)m(een)f(the)f(paren)m(theses)h(mak)m(e)g(up)f(the)g -(command;)h(none)f(are)h(treated)g(sp)s(ecially)-8 b(.)275 -2454 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 2563 y(the)31 b(inner)e(bac)m(kquotes)j(with)e(bac)m -(kslashes.)275 2700 y(If)e(the)i(substitution)e(app)s(ears)h(within)g -(double)f(quotes,)i(w)m(ord)f(splitting)h(and)f(\014lename)g(expansion) -150 2810 y(are)i(not)f(p)s(erformed)f(on)h(the)h(results.)150 -3011 y Fk(3.5.5)63 b(Arithmetic)40 b(Expansion)150 3158 +b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(31)150 299 +y Fk(3.5.4)63 b(Command)41 b(Substitution)150 446 y Fu(Command)f +(substitution)h(allo)m(ws)i(the)e(output)g(of)h(a)f(command)g(to)h +(replace)g(the)g(command)f(itself.)150 555 y(Command)29 +b(substitution)h(o)s(ccurs)h(when)e(a)i(command)f(is)g(enclosed)h(as)g +(follo)m(ws:)390 691 y Ft($\()p Fj(command)p Ft(\))150 +827 y Fu(or)390 962 y Ft(`)p Fj(command)p Ft(`)150 1098 +y Fu(Bash)20 b(p)s(erforms)f(the)i(expansion)f(b)m(y)g(executing)i +Fr(command)h Fu(in)d(a)h(subshell)e(en)m(vironmen)m(t)i(and)f +(replacing)150 1207 y(the)40 b(command)g(substitution)f(with)h(the)g +(standard)f(output)g(of)h(the)g(command,)i(with)e(an)m(y)g(trailing)150 +1317 y(newlines)e(deleted.)64 b(Em)m(b)s(edded)37 b(newlines)h(are)g +(not)g(deleted,)j(but)d(they)g(ma)m(y)h(b)s(e)e(remo)m(v)m(ed)i(during) +150 1427 y(w)m(ord)30 b(splitting.)42 b(The)30 b(command)g +(substitution)h Ft($\(cat)e Fj(file)p Ft(\))g Fu(can)h(b)s(e)g +(replaced)h(b)m(y)g(the)f(equiv)-5 b(alen)m(t)150 1536 +y(but)30 b(faster)g Ft($\(<)g Fj(file)p Ft(\))p Fu(.)275 +1672 y(When)j(the)i(old-st)m(yle)h(bac)m(kquote)f(form)f(of)g +(substitution)g(is)g(used,)h(bac)m(kslash)f(retains)h(its)f(literal)150 +1781 y(meaning)k(except)h(when)e(follo)m(w)m(ed)j(b)m(y)e(`)p +Ft($)p Fu(',)j(`)p Ft(`)p Fu(',)f(or)e(`)p Ft(\\)p Fu('.)64 +b(The)38 b(\014rst)f(bac)m(kquote)j(not)e(preceded)g(b)m(y)g(a)150 +1891 y(bac)m(kslash)k(terminates)f(the)h(command)e(substitution.)72 +b(When)41 b(using)f(the)i Ft($\()p Fj(command)p Ft(\))c +Fu(form,)43 b(all)150 2000 y(c)m(haracters)32 b(b)s(et)m(w)m(een)f(the) +f(paren)m(theses)h(mak)m(e)g(up)f(the)g(command;)h(none)f(are)h +(treated)g(sp)s(ecially)-8 b(.)275 2136 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 2246 y(the)31 b(inner)e(bac)m(kquotes)j(with)e(bac)m(kslashes.)275 +2381 y(If)e(the)i(substitution)e(app)s(ears)h(within)g(double)f +(quotes,)i(w)m(ord)f(splitting)h(and)f(\014lename)g(expansion)150 +2491 y(are)i(not)f(p)s(erformed)f(on)h(the)h(results.)150 +2691 y Fk(3.5.5)63 b(Arithmetic)40 b(Expansion)150 2838 y Fu(Arithmetic)25 b(expansion)g(allo)m(ws)g(the)g(ev)-5 b(aluation)26 b(of)f(an)f(arithmetic)i(expression)e(and)g(the)g -(substitution)150 3268 y(of)31 b(the)f(result.)41 b(The)30 -b(format)g(for)g(arithmetic)i(expansion)e(is:)390 3404 -y Ft($\(\()47 b Fj(expression)e Ft(\)\))275 3541 y Fu(The)33 +(substitution)150 2948 y(of)31 b(the)f(result.)41 b(The)30 +b(format)g(for)g(arithmetic)i(expansion)e(is:)390 3083 +y Ft($\(\()47 b Fj(expression)e Ft(\)\))275 3219 y Fu(The)33 b(expression)g(is)h(treated)g(as)g(if)g(it)g(w)m(ere)g(within)f(double) -h(quotes,)h(but)e(a)h(double)f(quote)h(inside)150 3651 +h(quotes,)h(but)e(a)h(double)f(quote)h(inside)150 3328 y(the)k(paren)m(theses)g(is)g(not)g(treated)h(sp)s(ecially)-8 b(.)65 b(All)38 b(tok)m(ens)h(in)f(the)g(expression)f(undergo)g -(parameter)150 3760 y(and)26 b(v)-5 b(ariable)28 b(expansion,)g +(parameter)150 3438 y(and)26 b(v)-5 b(ariable)28 b(expansion,)g (command)e(substitution,)i(and)e(quote)i(remo)m(v)-5 -b(al.)41 b(The)26 b(result)h(is)g(treated)h(as)150 3870 +b(al.)41 b(The)26 b(result)h(is)g(treated)h(as)150 3548 y(the)j(arithmetic)g(expression)f(to)h(b)s(e)f(ev)-5 b(aluated.)42 b(Arithmetic)31 b(expansions)g(ma)m(y)g(b)s(e)e(nested.) -275 4006 y(The)34 b(ev)-5 b(aluation)37 b(is)f(p)s(erformed)e +275 3683 y(The)34 b(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 4116 y(Arithmetic],)32 b(page)f(93\).)42 +g(6.5)h([Shell)150 3793 y(Arithmetic],)32 b(page)f(93\).)42 b(If)30 b(the)h(expression)f(is)g(in)m(v)-5 b(alid,)32 b(Bash)e(prin)m(ts)g(a)h(message)g(indicating)h(failure)150 -4226 y(to)f(the)g(standard)e(error)h(and)g(no)g(substitution)g(o)s -(ccurs.)150 4427 y Fk(3.5.6)63 b(Pro)s(cess)42 b(Substitution)150 -4574 y Fu(Pro)s(cess)33 b(substitution)g(allo)m(ws)i(a)e(pro)s(cess's)g +3902 y(to)f(the)g(standard)e(error)h(and)g(no)g(substitution)g(o)s +(ccurs.)150 4103 y Fk(3.5.6)63 b(Pro)s(cess)42 b(Substitution)150 +4250 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 4684 y(It)d(tak)m(es)i(the)f(form)f(of)390 -4820 y Ft(<\()p Fj(list)p Ft(\))150 4957 y Fu(or)390 -5094 y Ft(>\()p Fj(list)p Ft(\))150 5230 y Fu(The)e(pro)s(cess)h +(\014lename.)150 4359 y(It)d(tak)m(es)i(the)f(form)f(of)390 +4495 y Ft(<\()p Fj(list)p Ft(\))150 4630 y Fu(or)390 +4766 y Ft(>\()p Fj(list)p Ft(\))150 4902 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 5340 y(\014lename)25 b(is)g(passed)g(as)g(an)g(argumen)m(t)h +b(This)150 5011 y(\014lename)25 b(is)g(passed)g(as)g(an)g(argumen)m(t)h (to)g(the)f(curren)m(t)g(command)g(as)g(the)g(result)g(of)g(the)h -(expansion.)38 b(If)p eop end +(expansion.)38 b(If)150 5121 y(the)28 b Ft(>\()p Fj(list)p +Ft(\))d Fu(form)i(is)g(used,)h(writing)f(to)h(the)g(\014le)f(will)h +(pro)m(vide)g(input)e(for)h Fr(list)p Fu(.)41 b(If)26 +b(the)i Ft(<\()p Fj(list)p Ft(\))d Fu(form)150 5230 y(is)g(used,)g(the) +f(\014le)h(passed)f(as)h(an)f(argumen)m(t)h(should)e(b)s(e)h(read)h(to) +g(obtain)g(the)f(output)g(of)h Fr(list)p Fu(.)40 b(Note)25 +b(that)150 5340 y(no)33 b(space)g(ma)m(y)g(app)s(ear)f(b)s(et)m(w)m +(een)i(the)f Ft(<)f Fu(or)h Ft(>)f Fu(and)g(the)h(left)h(paren)m +(thesis,)f(otherwise)h(the)f(construct)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)150 299 -y(the)28 b Ft(>\()p Fj(list)p Ft(\))d Fu(form)i(is)g(used,)h(writing)f -(to)h(the)g(\014le)f(will)h(pro)m(vide)g(input)e(for)h -Fr(list)p Fu(.)41 b(If)26 b(the)i Ft(<\()p Fj(list)p -Ft(\))d Fu(form)150 408 y(is)g(used,)g(the)f(\014le)h(passed)f(as)h(an) -f(argumen)m(t)h(should)e(b)s(e)h(read)h(to)g(obtain)g(the)f(output)g -(of)h Fr(list)p Fu(.)40 b(Note)25 b(that)150 518 y(no)33 -b(space)g(ma)m(y)g(app)s(ear)f(b)s(et)m(w)m(een)i(the)f -Ft(<)f Fu(or)h Ft(>)f Fu(and)g(the)h(left)h(paren)m(thesis,)f -(otherwise)h(the)f(construct)150 628 y(w)m(ould)j(b)s(e)g(in)m -(terpreted)g(as)h(a)f(redirection.)59 b(Pro)s(cess)36 -b(substitution)g(is)h(supp)s(orted)d(on)i(systems)g(that)150 -737 y(supp)s(ort)29 b(named)h(pip)s(es)f(\()p Fm(fif)n(o)p -Fu(s\))h(or)h(the)f Ft(/dev/fd)f Fu(metho)s(d)h(of)g(naming)g(op)s(en)g -(\014les.)275 866 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 976 y(v)-5 b(ariable)31 b(expansion,)g -(command)f(substitution,)g(and)g(arithmetic)i(expansion.)150 -1164 y Fk(3.5.7)63 b(W)-10 b(ord)41 b(Splitting)150 1311 -y Fu(The)30 b(shell)h(scans)g(the)g(results)f(of)h(parameter)g +y(w)m(ould)36 b(b)s(e)g(in)m(terpreted)g(as)h(a)f(redirection.)59 +b(Pro)s(cess)36 b(substitution)g(is)h(supp)s(orted)d(on)i(systems)g +(that)150 408 y(supp)s(ort)29 b(named)h(pip)s(es)f(\()p +Fm(fif)n(o)p Fu(s\))h(or)h(the)f Ft(/dev/fd)f Fu(metho)s(d)h(of)g +(naming)g(op)s(en)g(\014les.)275 535 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 645 y(v)-5 +b(ariable)31 b(expansion,)g(command)f(substitution,)g(and)g(arithmetic) +i(expansion.)150 829 y Fk(3.5.7)63 b(W)-10 b(ord)41 b(Splitting)150 +976 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 -1421 y(expansion)g(that)h(did)f(not)g(o)s(ccur)h(within)e(double)h -(quotes)h(for)f(w)m(ord)g(splitting.)275 1549 y(The)e(shell)g(treats)i +1086 y(expansion)g(that)h(did)f(not)g(o)s(ccur)h(within)e(double)h +(quotes)h(for)f(w)m(ord)g(splitting.)275 1213 y(The)e(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 1659 y(expansions)22 +(splits)g(the)h(results)f(of)h(the)g(other)150 1323 y(expansions)22 b(in)m(to)i(w)m(ords)e(using)h(these)g(c)m(haracters)h(as)f(\014eld)f (terminators.)39 b(If)22 b Ft(IFS)g Fu(is)h(unset,)h(or)e(its)h(v)-5 -b(alue)150 1769 y(is)36 b(exactly)j Ft(<space><tab><newline>)p +b(alue)150 1432 y(is)36 b(exactly)j Ft(<space><tab><newline>)p Fu(,)32 b(the)37 b(default,)h(then)e(sequences)h(of)67 -b Ft(<space>)p Fu(,)36 b Ft(<tab>)p Fu(,)h(and)150 1878 +b Ft(<space>)p Fu(,)36 b Ft(<tab>)p Fu(,)h(and)150 1542 y Ft(<newline>)28 b Fu(at)k(the)f(b)s(eginning)f(and)h(end)f(of)h(the)g (results)g(of)g(the)g(previous)g(expansions)f(are)i(ignored,)150 -1988 y(and)k(an)m(y)h(sequence)h(of)f Ft(IFS)f Fu(c)m(haracters)i(not)f +1651 y(and)k(an)m(y)h(sequence)h(of)f Ft(IFS)f Fu(c)m(haracters)i(not)f (at)h(the)f(b)s(eginning)f(or)h(end)f(serv)m(es)h(to)h(delimit)f(w)m -(ords.)150 2097 y(If)43 b Ft(IFS)f Fu(has)h(a)h(v)-5 +(ords.)150 1761 y(If)43 b Ft(IFS)f Fu(has)h(a)h(v)-5 b(alue)43 b(other)h(than)f(the)g(default,)k(then)c(sequences)h(of)f -(the)h(whitespace)f(c)m(haracters)150 2207 y Ft(space)p +(the)h(whitespace)f(c)m(haracters)150 1870 y Ft(space)p Fu(,)29 b Ft(tab)p Fu(,)h(and)g Ft(newline)e Fu(are)j(ignored)g(at)g (the)f(b)s(eginning)g(and)g(end)g(of)g(the)h(w)m(ord,)f(as)h(long)g(as) -g(the)150 2317 y(whitespace)c(c)m(haracter)h(is)f(in)f(the)g(v)-5 +g(the)150 1980 y(whitespace)c(c)m(haracter)h(is)f(in)f(the)g(v)-5 b(alue)27 b(of)g Ft(IFS)e Fu(\(an)i Ft(IFS)e Fu(whitespace)i(c)m -(haracter\).)42 b(An)m(y)26 b(c)m(haracter)i(in)150 2426 +(haracter\).)42 b(An)m(y)26 b(c)m(haracter)i(in)150 2090 y Ft(IFS)c Fu(that)h(is)g(not)f Ft(IFS)g Fu(whitespace,)j(along)f(with) e(an)m(y)h(adjacen)m(t)h Ft(IFS)e Fu(whitespace)h(c)m(haracters,)i -(delimits)150 2536 y(a)k(\014eld.)40 b(A)31 b(sequence)g(of)f +(delimits)150 2199 y(a)k(\014eld.)40 b(A)31 b(sequence)g(of)f Ft(IFS)g Fu(whitespace)h(c)m(haracters)h(is)e(also)h(treated)h(as)f(a)f -(delimiter.)42 b(If)30 b(the)g(v)-5 b(alue)150 2645 y(of)31 +(delimiter.)42 b(If)30 b(the)g(v)-5 b(alue)150 2309 y(of)31 b Ft(IFS)e Fu(is)h(n)m(ull,)h(no)f(w)m(ord)g(splitting)h(o)s(ccurs.)275 -2774 y(Explicit)21 b(n)m(ull)g(argumen)m(ts)g(\()p Ft("")g +2436 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 2884 y(Unquoted)37 b(implicit)i(n)m(ull)f +(as)i(empt)m(y)f(strings.)150 2545 y(Unquoted)37 b(implicit)i(n)m(ull)f (argumen)m(ts,)i(resulting)d(from)g(the)h(expansion)g(of)g(parameters)f -(that)i(ha)m(v)m(e)150 2993 y(no)32 b(v)-5 b(alues,)33 +(that)i(ha)m(v)m(e)150 2655 y(no)32 b(v)-5 b(alues,)33 b(are)f(remo)m(v)m(ed.)47 b(If)32 b(a)g(parameter)h(with)e(no)h(v)-5 b(alue)33 b(is)f(expanded)f(within)h(double)f(quotes,)j(a)150 -3103 y(n)m(ull)c(argumen)m(t)g(results)g(and)f(is)h(retained)g(and)f +2765 y(n)m(ull)c(argumen)m(t)g(results)g(and)f(is)h(retained)g(and)f (passed)g(to)i(a)f(command)g(as)g(an)f(empt)m(y)i(string.)40 -b(When)150 3213 y(a)f(quoted)f(n)m(ull)g(argumen)m(t)h(app)s(ears)e(as) +b(When)150 2874 y(a)f(quoted)f(n)m(ull)g(argumen)m(t)h(app)s(ears)e(as) i(part)f(of)g(a)g(w)m(ord)g(whose)g(expansion)g(is)h(non-n)m(ull,)h -(the)e(n)m(ull)150 3322 y(argumen)m(t)i(is)f(remo)m(v)m(ed.)69 +(the)e(n)m(ull)150 2984 y(argumen)m(t)i(is)f(remo)m(v)m(ed.)69 b(That)39 b(is,)j(the)e(w)m(ord)f Ft(-d'')f Fu(b)s(ecomes)i Ft(-d)e Fu(after)i(w)m(ord)f(splitting)h(and)f(n)m(ull)150 -3432 y(argumen)m(t)31 b(remo)m(v)-5 b(al.)275 3561 y(Note)31 +3093 y(argumen)m(t)31 b(remo)m(v)-5 b(al.)275 3220 y(Note)31 b(that)g(if)g(no)f(expansion)g(o)s(ccurs,)g(no)h(splitting)g(is)f(p)s -(erformed.)150 3749 y Fk(3.5.8)63 b(Filename)41 b(Expansion)150 -3896 y Fu(After)30 b(w)m(ord)f(splitting,)i(unless)d(the)i +(erformed.)150 3405 y Fk(3.5.8)63 b(Filename)41 b(Expansion)150 +3552 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 4006 y(page)d(62\),)i(Bash)d(scans)h(eac)m +([The)e(Set)h(Builtin],)150 3661 y(page)d(62\),)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 4115 y(app)s(ears,)34 +b(If)26 b(one)h(of)g(these)f(c)m(haracters)150 3771 y(app)s(ears,)34 b(and)f(is)g(not)h(quoted,)h(then)e(the)h(w)m(ord)f(is)h(regarded)f(as) h(a)g Fr(pattern)p Fu(,)h(and)e(replaced)h(with)f(an)150 -4225 y(alphab)s(etically)41 b(sorted)e(list)h(of)g(\014lenames)f(matc)m +3880 y(alphab)s(etically)41 b(sorted)e(list)h(of)g(\014lenames)f(matc)m (hing)i(the)e(pattern)g(\(see)i(Section)f(3.5.8.1)i([P)m(attern)150 -4334 y(Matc)m(hing],)e(page)e(33\).)60 b(If)36 b(no)h(matc)m(hing)g +3990 y(Matc)m(hing],)e(page)e(33\).)60 b(If)36 b(no)h(matc)m(hing)g (\014lenames)g(are)g(found,)g(and)f(the)g(shell)h(option)g -Ft(nullglob)150 4444 y Fu(is)k(disabled,)i(the)f(w)m(ord)e(is)h(left)h +Ft(nullglob)150 4100 y Fu(is)k(disabled,)i(the)f(w)m(ord)e(is)h(left)h (unc)m(hanged.)72 b(If)40 b(the)h Ft(nullglob)e Fu(option)i(is)g(set,)k -(and)40 b(no)h(matc)m(hes)150 4553 y(are)c(found,)g(the)g(w)m(ord)f(is) +(and)40 b(no)h(matc)m(hes)150 4209 y(are)c(found,)g(the)g(w)m(ord)f(is) g(remo)m(v)m(ed.)60 b(If)36 b(the)h Ft(failglob)d Fu(shell)j(option)g -(is)g(set,)i(and)c(no)i(matc)m(hes)h(are)150 4663 y(found,)e(an)g +(is)g(set,)i(and)c(no)i(matc)m(hes)h(are)150 4319 y(found,)e(an)g (error)f(message)i(is)f(prin)m(ted)f(and)h(the)g(command)f(is)h(not)g -(executed.)58 b(If)35 b(the)h(shell)g(option)150 4773 +(executed.)58 b(If)35 b(the)h(shell)g(option)150 4428 y Ft(nocaseglob)e Fu(is)j(enabled,)i(the)e(matc)m(h)h(is)f(p)s (erformed)e(without)i(regard)g(to)h(the)f(case)h(of)f(alphab)s(etic)150 -4882 y(c)m(haracters.)275 5011 y(When)23 b(a)h(pattern)f(is)h(used)f +4538 y(c)m(haracters.)275 4665 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 -5121 y(or)f(immediately)i(follo)m(wing)g(a)f(slash)f(m)m(ust)h(b)s(e)f +4775 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 5230 y Fu(is)k(set.)41 b(The)28 b(\014lenames)g(`)p +Ft(dotglob)150 4884 y Fu(is)k(set.)41 b(The)28 b(\014lenames)g(`)p Ft(.)p Fu(')g(and)g(`)p Ft(..)p Fu(')g(m)m(ust)g(alw)m(a)m(ys)i(b)s(e)e (matc)m(hed)h(explicitly)-8 b(,)30 b(ev)m(en)f(if)g Ft(dotglob)d -Fu(is)i(set.)150 5340 y(In)i(other)g(cases,)i(the)e(`)p +Fu(is)i(set.)150 4994 y(In)i(other)g(cases,)i(the)e(`)p Ft(.)p Fu(')h(c)m(haracter)h(is)e(not)h(treated)g(sp)s(ecially)-8 -b(.)p eop end +b(.)275 5121 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 5230 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 5340 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(33\).)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)275 299 -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 408 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 518 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 -(33\).)275 647 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(66,)g(for)f -(a)g(descrip-)150 757 y(tion)j(of)f(the)h Ft(nocaseglob)p -Fu(,)d Ft(nullglob)p Fu(,)g Ft(failglob)p Fu(,)h(and)g -Ft(dotglob)g Fu(options.)275 886 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 995 -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 1105 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 1214 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 -1324 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 1433 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 1543 y(so)j(all)h(other)f(\014lenames)g(b)s -(eginning)f(with)h(a)g(`)p Ft(.)p Fu(')g(will)h(matc)m(h.)46 -b(T)-8 b(o)32 b(get)h(the)f(old)g(b)s(eha)m(vior)g(of)h(ignoring)150 -1653 y(\014lenames)c(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 1762 -y Fu(option)i(is)f(disabled)g(when)g Ft(GLOBIGNORE)d -Fu(is)k(unset.)150 1950 y Fk(3.5.8.1)63 b(P)m(attern)40 -b(Matc)m(hing)150 2097 y Fu(An)m(y)24 b(c)m(haracter)h(that)f(app)s +y(See)28 b(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(66,)g(for)f(a)g(descrip-)150 +408 y(tion)j(of)f(the)h Ft(nocaseglob)p Fu(,)d Ft(nullglob)p +Fu(,)g Ft(failglob)p Fu(,)h(and)g Ft(dotglob)g Fu(options.)275 +548 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 657 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 767 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 +876 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 986 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 +1096 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 1205 y(so)j(all)h(other)f +(\014lenames)g(b)s(eginning)f(with)h(a)g(`)p Ft(.)p Fu(')g(will)h(matc) +m(h.)46 b(T)-8 b(o)32 b(get)h(the)f(old)g(b)s(eha)m(vior)g(of)h +(ignoring)150 1315 y(\014lenames)c(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 +1424 y Fu(option)i(is)f(disabled)g(when)g Ft(GLOBIGNORE)d +Fu(is)k(unset.)150 1628 y Fk(3.5.8.1)63 b(P)m(attern)40 +b(Matc)m(hing)150 1775 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 2207 y(b)s(elo)m(w,)31 +(c)m(haracters)h(describ)s(ed)150 1885 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 2317 y(the)38 b(follo)m(wing)g(c)m(haracter;)43 +(es)150 1994 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 2426 y(pattern)30 +(hing.)63 b(The)36 b(sp)s(ecial)150 2104 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 2555 y(The)29 +(e)d(matc)m(hed)i(literally)-8 b(.)275 2243 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 2703 y Ft(*)432 b Fu(Matc)m(hes)31 +(wing)h(meanings:)150 2410 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 -2813 y(is)37 b(enabled,)h(and)e(`)p Ft(*)p Fu(')h(is)g(used)f(in)g(a)h +2519 y(is)37 b(enabled,)h(and)e(`)p Ft(*)p Fu(')h(is)g(used)f(in)g(a)h (\014lename)g(expansion)g(con)m(text,)j(t)m(w)m(o)e(adjacen)m(t)g(`)p -Ft(*)p Fu('s)630 2923 y(used)f(as)g(a)h(single)g(pattern)g(will)f(matc) +Ft(*)p Fu('s)630 2629 y(used)f(as)g(a)h(single)g(pattern)g(will)f(matc) m(h)i(all)f(\014les)f(and)g(zero)h(or)g(more)f(directories)i(and)630 -3032 y(sub)s(directories.)g(If)25 b(follo)m(w)m(ed)j(b)m(y)e(a)g(`)p +2738 y(sub)s(directories.)g(If)25 b(follo)m(w)m(ed)j(b)m(y)e(a)g(`)p Ft(/)p Fu(',)h(t)m(w)m(o)g(adjacen)m(t)h(`)p Ft(*)p Fu('s)e(will)g -(matc)m(h)h(only)f(directories)630 3142 y(and)k(sub)s(directories.)150 -3290 y Ft(?)432 b Fu(Matc)m(hes)32 b(an)m(y)f(single)g(c)m(haracter.) -150 3438 y Ft([...)o(])241 b Fu(Matc)m(hes)27 b(an)m(y)e(one)g(of)g +(matc)m(h)h(only)f(directories)630 2848 y(and)k(sub)s(directories.)150 +3012 y Ft(?)432 b Fu(Matc)m(hes)32 b(an)m(y)f(single)g(c)m(haracter.) +150 3176 y Ft([...)o(])241 b Fu(Matc)m(hes)27 b(an)m(y)e(one)g(of)g (the)g(enclosed)g(c)m(haracters.)41 b(A)25 b(pair)f(of)h(c)m(haracters) -i(separated)e(b)m(y)g(a)630 3548 y(h)m(yphen)k(denotes)i(a)g +i(separated)e(b)m(y)g(a)630 3286 y(h)m(yphen)k(denotes)i(a)g Fr(range)g(expression)p Fu(;)f(an)m(y)h(c)m(haracter)h(that)f(falls)g -(b)s(et)m(w)m(een)g(those)g(t)m(w)m(o)630 3657 y(c)m(haracters,)d +(b)s(et)m(w)m(een)g(those)g(t)m(w)m(o)630 3395 y(c)m(haracters,)d (inclusiv)m(e,)f(using)d(the)h(curren)m(t)f(lo)s(cale's)j(collating)g -(sequence)e(and)f(c)m(haracter)630 3767 y(set,)31 b(is)f(matc)m(hed.)42 +(sequence)e(and)f(c)m(haracter)630 3505 y(set,)31 b(is)f(matc)m(hed.)42 b(If)30 b(the)g(\014rst)g(c)m(haracter)i(follo)m(wing)g(the)e(`)p Ft([)p Fu(')h(is)f(a)h(`)p Ft(!)p Fu(')f(or)g(a)h(`)p -Ft(^)p Fu(')g(then)f(an)m(y)630 3877 y(c)m(haracter)c(not)f(enclosed)g +Ft(^)p Fu(')g(then)f(an)m(y)630 3614 y(c)m(haracter)c(not)f(enclosed)g (is)g(matc)m(hed.)40 b(A)25 b(`)p Fq(\000)p Fu(')f(ma)m(y)i(b)s(e)e -(matc)m(hed)h(b)m(y)f(including)h(it)g(as)g(the)630 3986 +(matc)m(hed)h(b)m(y)f(including)h(it)g(as)g(the)630 3724 y(\014rst)32 b(or)h(last)h(c)m(haracter)h(in)e(the)g(set.)50 b(A)33 b(`)p Ft(])p Fu(')g(ma)m(y)h(b)s(e)e(matc)m(hed)i(b)m(y)f -(including)g(it)g(as)h(the)630 4096 y(\014rst)25 b(c)m(haracter)i(in)e +(including)g(it)g(as)h(the)630 3834 y(\014rst)25 b(c)m(haracter)i(in)e (the)h(set.)40 b(The)25 b(sorting)h(order)f(of)h(c)m(haracters)h(in)f -(range)g(expressions)f(is)630 4205 y(determined)h(b)m(y)h(the)g(curren) +(range)g(expressions)f(is)630 3943 y(determined)h(b)m(y)h(the)g(curren) m(t)f(lo)s(cale)j(and)d(the)h(v)-5 b(alues)27 b(of)g(the)g -Ft(LC_COLLATE)d Fu(and)i Ft(LC_ALL)630 4315 y Fu(shell)31 -b(v)-5 b(ariables,)31 b(if)f(set.)630 4444 y(F)-8 b(or)34 +Ft(LC_COLLATE)d Fu(and)i Ft(LC_ALL)630 4053 y Fu(shell)31 +b(v)-5 b(ariables,)31 b(if)f(set.)630 4190 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 4554 y(Man)m(y)68 b(lo)s(cales)h(sort)f(c)m +Ft([abcdxyz])p Fu('.)630 4299 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 4663 y(`)p Ft([a-dx-z])p Fu(')36 b(is)i(t)m(ypically)i(not)e +(cales)630 4409 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 4773 y(to)34 b(`)p +(t)f(b)s(e)f(equiv)-5 b(alen)m(t)630 4518 y(to)34 b(`)p Ft([aBbCcDdxXyYz])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 -4882 y(ranges)e(in)f(brac)m(k)m(et)i(expressions,)g(y)m(ou)f(can)g +4628 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 -4992 y(the)c Ft(LC_COLLATE)e Fu(or)i Ft(LC_ALL)f Fu(en)m(vironmen)m(t)i +4738 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 5101 y Ft(globasciiranges)c -Fu(shell)31 b(option.)630 5230 y(Within)23 b(`)p Ft([)p +Ft(C)p Fu(',)g(or)f(enable)h(the)630 4847 y Ft(globasciiranges)c +Fu(shell)31 b(option.)630 4984 y(Within)23 b(`)p Ft([)p Fu(')h(and)e(`)p Ft(])p Fu(',)j Fr(c)m(haracter)g(classes)j Fu(can)c(b)s(e)e(sp)s(eci\014ed)h(using)f(the)i(syn)m(tax)f -Ft([:)p Fr(class)t Ft(:])p Fu(,)630 5340 y(where)30 b +Ft([:)p Fr(class)t Ft(:])p Fu(,)630 5094 y(where)30 b Fr(class)35 b Fu(is)30 b(one)h(of)f(the)h(follo)m(wing)h(classes)f -(de\014ned)e(in)h(the)h Fm(posix)f Fu(standard:)p eop -end +(de\014ned)e(in)h(the)h Fm(posix)f Fu(standard:)870 5230 +y Ft(alnum)142 b(alpha)g(ascii)f(blank)h(cntrl)g(digit)g(graph)g(lower) +870 5340 y(print)g(punct)g(space)f(upper)h(word)190 b(xdigit)p +eop end %%Page: 34 40 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)870 299 -y Ft(alnum)142 b(alpha)g(ascii)f(blank)h(cntrl)g(digit)g(graph)g(lower) -870 408 y(print)g(punct)g(space)f(upper)h(word)190 b(xdigit)630 -543 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 653 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 -788 y(Within)25 b(`)p Ft([)p Fu(')f(and)g(`)p Ft(])p -Fu(',)i(an)e Fr(equiv)-5 b(alence)26 b(class)j Fu(can)24 -b(b)s(e)g(sp)s(eci\014ed)g(using)g(the)g(syn)m(tax)h -Ft([=)p Fr(c)6 b Ft(=])p Fu(,)630 897 y(whic)m(h)29 b(matc)m(hes)i(all) -f(c)m(haracters)h(with)e(the)h(same)g(collation)h(w)m(eigh)m(t)g(\(as)f -(de\014ned)e(b)m(y)i(the)630 1007 y(curren)m(t)g(lo)s(cale\))j(as)d -(the)h(c)m(haracter)h Fr(c)p Fu(.)630 1142 y(Within)22 -b(`)p Ft([)p Fu(')f(and)g(`)p Ft(])p Fu(',)j(the)d(syn)m(tax)h -Ft([.)p Fr(sym)m(b)s(ol)t Ft(.])e Fu(matc)m(hes)i(the)g(collating)i -(sym)m(b)s(ol)d Fr(sym)m(b)s(ol)p Fu(.)275 1303 y(If)29 -b(the)g Ft(extglob)f Fu(shell)h(option)h(is)g(enabled)f(using)g(the)h -Ft(shopt)e Fu(builtin,)h(sev)m(eral)i(extended)f(pattern)150 -1412 y(matc)m(hing)37 b(op)s(erators)e(are)h(recognized.)58 +b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(34)630 299 +y(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 +408 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 539 +y(Within)25 b(`)p Ft([)p Fu(')f(and)g(`)p Ft(])p Fu(',)i(an)e +Fr(equiv)-5 b(alence)26 b(class)j Fu(can)24 b(b)s(e)g(sp)s(eci\014ed)g +(using)g(the)g(syn)m(tax)h Ft([=)p Fr(c)6 b Ft(=])p Fu(,)630 +649 y(whic)m(h)29 b(matc)m(hes)i(all)f(c)m(haracters)h(with)e(the)h +(same)g(collation)h(w)m(eigh)m(t)g(\(as)f(de\014ned)e(b)m(y)i(the)630 +759 y(curren)m(t)g(lo)s(cale\))j(as)d(the)h(c)m(haracter)h +Fr(c)p Fu(.)630 890 y(Within)22 b(`)p Ft([)p Fu(')f(and)g(`)p +Ft(])p Fu(',)j(the)d(syn)m(tax)h Ft([.)p Fr(sym)m(b)s(ol)t +Ft(.])e Fu(matc)m(hes)i(the)g(collating)i(sym)m(b)s(ol)d +Fr(sym)m(b)s(ol)p Fu(.)275 1042 y(If)29 b(the)g Ft(extglob)f +Fu(shell)h(option)h(is)g(enabled)f(using)g(the)h Ft(shopt)e +Fu(builtin,)h(sev)m(eral)i(extended)f(pattern)150 1152 +y(matc)m(hing)37 b(op)s(erators)e(are)h(recognized.)58 b(In)35 b(the)g(follo)m(wing)i(description,)g(a)f Fr(pattern-list)j -Fu(is)d(a)g(list)g(of)150 1522 y(one)d(or)f(more)h(patterns)f +Fu(is)d(a)g(list)g(of)150 1261 y(one)d(or)f(more)h(patterns)f (separated)h(b)m(y)f(a)h(`)p Ft(|)p Fu('.)47 b(Comp)s(osite)33 b(patterns)f(ma)m(y)i(b)s(e)d(formed)h(using)g(one)h(or)150 -1631 y(more)e(of)f(the)h(follo)m(wing)g(sub-patterns:)150 -1792 y Ft(?\()p Fj(pattern-list)p Ft(\))630 1901 y Fu(Matc)m(hes)h +1371 y(more)e(of)f(the)h(follo)m(wing)g(sub-patterns:)150 +1523 y Ft(?\()p Fj(pattern-list)p Ft(\))630 1633 y Fu(Matc)m(hes)h (zero)f(or)g(one)f(o)s(ccurrence)h(of)f(the)h(giv)m(en)g(patterns.)150 -2062 y Ft(*\()p Fj(pattern-list)p Ft(\))630 2171 y Fu(Matc)m(hes)h +1785 y Ft(*\()p Fj(pattern-list)p Ft(\))630 1895 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 2331 y Ft(+\()p Fj(pattern-list)p Ft(\))630 2441 +150 2047 y Ft(+\()p Fj(pattern-list)p Ft(\))630 2157 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 2601 y Ft(@\()p Fj(pattern-list)p -Ft(\))630 2711 y Fu(Matc)m(hes)g(one)f(of)f(the)h(giv)m(en)g(patterns.) -150 2871 y Ft(!\()p Fj(pattern-list)p Ft(\))630 2981 +(en)i(patterns.)150 2309 y Ft(@\()p Fj(pattern-list)p +Ft(\))630 2419 y Fu(Matc)m(hes)g(one)f(of)f(the)h(giv)m(en)g(patterns.) +150 2571 y Ft(!\()p Fj(pattern-list)p Ft(\))630 2681 y Fu(Matc)m(hes)h(an)m(ything)f(except)g(one)g(of)f(the)h(giv)m(en)g -(patterns.)275 3141 y(Complicated)41 b(extended)f(pattern)g(matc)m +(patterns.)275 2833 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 3251 y(the)29 b(patterns)g(con)m(tain)i(alternations)f(and)f +(when)150 2942 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 3360 y(matc)m(hes)38 b(against)g(shorter)e +b(Using)29 b(separate)150 3052 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 3470 y(ma)m(y)31 b(b)s(e)f(faster.)150 -3670 y Fk(3.5.9)63 b(Quote)41 b(Remo)m(v)-7 b(al)150 -3817 y Fu(After)32 b(the)g(preceding)g(expansions,)h(all)f(unquoted)f +(single)g(long)h(string,)150 3162 y(ma)m(y)31 b(b)s(e)f(faster.)150 +3354 y Fk(3.5.9)63 b(Quote)41 b(Remo)m(v)-7 b(al)150 +3501 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 -3927 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 4169 y Fs(3.6)68 -b(Redirections)150 4328 y Fu(Before)32 b(a)f(command)f(is)h(executed,)h +3610 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 3844 y Fs(3.6)68 +b(Redirections)150 4004 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 4438 y(tation)d(in)m(terpreted)f(b) +Fu(using)c(a)i(sp)s(ecial)f(no-)150 4113 y(tation)d(in)m(terpreted)f(b) m(y)f(the)h(shell.)40 b(Redirection)27 b(allo)m(ws)h(commands')f -(\014le)f(handles)g(to)i(b)s(e)e(duplicated,)150 4547 +(\014le)f(handles)g(to)i(b)s(e)e(duplicated,)150 4223 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 4657 y(from)39 b(and)g(writes)h(to.)69 b(Redirection)40 +(reads)150 4332 y(from)39 b(and)g(writes)h(to.)69 b(Redirection)40 b(ma)m(y)g(also)h(b)s(e)e(used)g(to)h(mo)s(dify)f(\014le)g(handles)g -(in)g(the)h(curren)m(t)150 4766 y(shell)e(execution)h(en)m(vironmen)m +(in)g(the)h(curren)m(t)150 4442 y(shell)e(execution)h(en)m(vironmen)m (t.)65 b(The)37 b(follo)m(wing)j(redirection)f(op)s(erators)f(ma)m(y)g -(precede)h(or)f(app)s(ear)150 4876 y(an)m(ywhere)30 b(within)f(a)h +(precede)h(or)f(app)s(ear)150 4551 y(an)m(ywhere)30 b(within)f(a)h (simple)f(command)h(or)f(ma)m(y)i(follo)m(w)g(a)f(command.)40 -b(Redirections)30 b(are)g(pro)s(cessed)150 4986 y(in)g(the)h(order)f +b(Redirections)30 b(are)g(pro)s(cessed)150 4661 y(in)g(the)h(order)f (they)g(app)s(ear,)g(from)g(left)h(to)g(righ)m(t.)275 -5121 y(Eac)m(h)45 b(redirection)h(that)f(ma)m(y)h(b)s(e)e(preceded)g(b) +4792 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 5230 y(preceded)41 b(b)m(y)g(a)h(w)m(ord)f(of)g(the)h(form)f +s(e)150 4902 y(preceded)41 b(b)m(y)g(a)h(w)m(ord)f(of)g(the)h(form)f Fi({)p Fr(v)-5 b(arname)5 b Fi(})p Fu(.)74 b(In)41 b(this)g(case,)k -(for)c(eac)m(h)i(redirection)f(op)s(erator)150 5340 y(except)30 +(for)c(eac)m(h)i(redirection)f(op)s(erator)150 5011 y(except)30 b Ft(>)p Fu(&-)f(and)f Ft(<)p Fu(&-,)h(the)g(shell)g(will)h(allo)s (cate)h(a)e(\014le)h(descriptor)e(greater)j(than)d(10)i(and)e(assign)i -(it)f(to)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 Fi({)p Fr(v)-5 b(arname)5 b Fi(})p Fu(.)45 b(If)31 -b Ft(>)p Fu(&-)g(or)h Ft(<)p Fu(&-)f(is)h(preceded)f(b)m(y)g -Fi({)p Fr(v)-5 b(arname)5 b Fi(})p Fu(,)33 b(the)f(v)-5 +(it)f(to)150 5121 y Fi({)p Fr(v)-5 b(arname)5 b Fi(})p +Fu(.)45 b(If)31 b Ft(>)p Fu(&-)g(or)h Ft(<)p Fu(&-)f(is)h(preceded)f(b) +m(y)g Fi({)p Fr(v)-5 b(arname)5 b Fi(})p Fu(,)33 b(the)f(v)-5 b(alue)32 b(of)g Fr(v)-5 b(arname)36 b Fu(de\014nes)31 -b(the)h(\014le)150 408 y(descriptor)i(to)g(close.)52 +b(the)h(\014le)150 5230 y(descriptor)i(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 518 y(the)d(command,)f(allo)m(wing)i(the)f(shell)f(programmer)g(to) -h(manage)h(the)e(\014le)h(descriptor)f(himself.)275 670 -y(In)d(the)i(follo)m(wing)h(descriptions,)g(if)e(the)h(\014le)g +150 5340 y(the)d(command,)f(allo)m(wing)i(the)f(shell)f(programmer)g +(to)h(manage)h(the)e(\014le)h(descriptor)f(himself.)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)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 780 y(acter)42 b(of)f(the)g(redirection)g(op)s(erator)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 890 y(descriptor)33 +(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 999 y(to)e(the)g(standard)e(output)h(\(\014le)h -(descriptor)f(1\).)275 1152 y(The)h(w)m(ord)h(follo)m(wing)i(the)f +g(refers)150 628 y(to)e(the)g(standard)e(output)h(\(\014le)h +(descriptor)f(1\).)275 755 y(The)h(w)m(ord)h(follo)m(wing)i(the)f (redirection)g(op)s(erator)f(in)g(the)h(follo)m(wing)h(descriptions,)f -(unless)e(other-)150 1261 y(wise)21 b(noted,)i(is)e(sub)5 +(unless)e(other-)150 865 y(wise)21 b(noted,)i(is)e(sub)5 b(jected)21 b(to)h(brace)f(expansion,)i(tilde)f(expansion,)h(parameter) -e(expansion,)i(command)150 1371 y(substitution,)31 b(arithmetic)h +e(expansion,)i(command)150 975 y(substitution,)31 b(arithmetic)h (expansion,)f(quote)h(remo)m(v)-5 b(al,)33 b(\014lename)e(expansion,)g -(and)f(w)m(ord)h(splitting.)150 1480 y(If)f(it)h(expands)e(to)i(more)g +(and)f(w)m(ord)h(splitting.)150 1084 y(If)f(it)h(expands)e(to)i(more)g (than)f(one)h(w)m(ord,)f(Bash)h(rep)s(orts)e(an)h(error.)275 -1633 y(Note)h(that)g(the)g(order)f(of)g(redirections)h(is)g +1212 y(Note)h(that)g(the)g(order)f(of)g(redirections)h(is)g (signi\014can)m(t.)41 b(F)-8 b(or)31 b(example,)h(the)e(command)390 -1785 y Ft(ls)47 b(>)h Fj(dirlist)d Ft(2>&1)150 1937 y +1339 y Ft(ls)47 b(>)h Fj(dirlist)d Ft(2>&1)150 1467 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 2047 y(\014le)h Fr(dirlist)p Fu(,)h(while)f(the)h(command)390 -2199 y Ft(ls)47 b(2>&1)g(>)g Fj(dirlist)150 2352 y Fu(directs)28 +150 1577 y(\014le)h Fr(dirlist)p Fu(,)h(while)f(the)h(command)390 +1704 y Ft(ls)47 b(2>&1)g(>)g Fj(dirlist)150 1832 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 2461 y(of)j(the)f(standard)g(output)g(b)s(efore)g(the)g +(y)150 1942 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 2614 y(Bash)26 b(handles)f(sev)m(eral)j(\014lenames)e(sp)s +Fu(.)275 2069 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 2723 y(in)38 b(the)h(follo)m(wing)h(table.)66 +(describ)s(ed)150 2179 y(in)38 b(the)h(follo)m(wing)h(table.)66 b(If)38 b(the)h(op)s(erating)g(system)f(on)h(whic)m(h)f(Bash)h(is)f -(running)f(pro)m(vides)h(these)150 2833 y(sp)s(ecial)27 +(running)f(pro)m(vides)h(these)150 2289 y(sp)s(ecial)27 b(\014les,)g(bash)e(will)i(use)f(them;)h(otherwise)g(it)f(will)h(em)m (ulate)h(them)e(in)m(ternally)h(with)f(the)g(b)s(eha)m(vior)150 -2942 y(describ)s(ed)j(b)s(elo)m(w.)150 3129 y Ft(/dev/fd/)p -Fj(fd)630 3238 y Fu(If)h Fr(fd)j Fu(is)d(a)h(v)-5 b(alid)31 +2398 y(describ)s(ed)j(b)s(elo)m(w.)150 2544 y Ft(/dev/fd/)p +Fj(fd)630 2654 y Fu(If)h Fr(fd)j Fu(is)d(a)h(v)-5 b(alid)31 b(in)m(teger,)h(\014le)e(descriptor)h Fr(fd)i Fu(is)d(duplicated.)150 -3416 y Ft(/dev/stdin)630 3525 y Fu(File)i(descriptor)e(0)h(is)f -(duplicated.)150 3702 y Ft(/dev/stdout)630 3812 y Fu(File)i(descriptor) -e(1)h(is)f(duplicated.)150 3989 y Ft(/dev/stderr)630 -4099 y Fu(File)i(descriptor)e(2)h(is)f(duplicated.)150 -4276 y Ft(/dev/tcp/)p Fj(host)p Ft(/)p Fj(port)630 4386 +2799 y Ft(/dev/stdin)630 2909 y Fu(File)i(descriptor)e(0)h(is)f +(duplicated.)150 3055 y Ft(/dev/stdout)630 3164 y Fu(File)i(descriptor) +e(1)h(is)f(duplicated.)150 3310 y Ft(/dev/stderr)630 +3420 y Fu(File)i(descriptor)e(2)h(is)f(duplicated.)150 +3566 y Ft(/dev/tcp/)p Fj(host)p Ft(/)p Fj(port)630 3675 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 4495 y(n)m(um)m(b)s(er)23 b(or)i(service)h(name,)g(Bash)f +(ort)630 3785 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 4673 y Ft(/dev/udp/)p Fj(host)p Ft(/)p Fj(port)630 -4782 y Fu(If)41 b Fr(host)i Fu(is)f(a)g(v)-5 b(alid)41 +(et.)150 3931 y Ft(/dev/udp/)p Fj(host)p Ft(/)p Fj(port)630 +4040 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 4892 y(n)m(um)m(b)s(er)23 +Fu(is)f(an)f(in)m(teger)i(p)s(ort)630 4150 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 5078 y(A)30 +(corresp)s(onding)f(UDP)i(so)s(c)m(k)m(et.)275 4296 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 5230 y(Redirections)f(using)e(\014le)i +(redirection)h(to)g(fail.)275 4423 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 5340 y(con\015ict)i(with)f(\014le)h +(care,)h(as)g(they)f(ma)m(y)150 4533 y(con\015ict)i(with)f(\014le)h (descriptors)f(the)g(shell)h(uses)f(in)m(ternally)-8 -b(.)p eop end +b(.)150 4718 y Fk(3.6.1)63 b(Redirecting)40 b(Input)150 +4865 y Fu(Redirection)35 b(of)f(input)f(causes)i(the)f(\014le)g(whose)g +(name)g(results)g(from)g(the)g(expansion)g(of)g Fr(w)m(ord)k +Fu(to)d(b)s(e)150 4975 y(op)s(ened)d(for)g(reading)g(on)g(\014le)h +(descriptor)f Ft(n)p Fu(,)h(or)f(the)g(standard)g(input)f(\(\014le)i +(descriptor)f(0\))h(if)f Ft(n)g Fu(is)h(not)150 5085 +y(sp)s(eci\014ed.)275 5212 y(The)c(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: 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)150 299 -y Fk(3.6.1)63 b(Redirecting)40 b(Input)150 446 y Fu(Redirection)35 -b(of)f(input)f(causes)i(the)f(\014le)g(whose)g(name)g(results)g(from)g -(the)g(expansion)g(of)g Fr(w)m(ord)k Fu(to)d(b)s(e)150 -555 y(op)s(ened)d(for)g(reading)g(on)g(\014le)h(descriptor)f -Ft(n)p Fu(,)h(or)f(the)g(standard)g(input)f(\(\014le)i(descriptor)f -(0\))h(if)f Ft(n)g Fu(is)h(not)150 665 y(sp)s(eci\014ed.)275 -805 y(The)c(general)j(format)e(for)h(redirecting)g(input)e(is:)390 -944 y Ft([)p Fj(n)p Ft(]<)p Fj(word)150 1149 y Fk(3.6.2)63 -b(Redirecting)40 b(Output)150 1296 y Fu(Redirection)31 +y Fk(3.6.2)63 b(Redirecting)40 b(Output)150 446 y Fu(Redirection)31 b(of)g(output)f(causes)h(the)f(\014le)h(whose)f(name)g(results)h(from)e (the)i(expansion)f(of)h Fr(w)m(ord)i Fu(to)f(b)s(e)150 -1405 y(op)s(ened)d(for)g(writing)g(on)g(\014le)h(descriptor)f +555 y(op)s(ened)d(for)g(writing)g(on)g(\014le)h(descriptor)f Fr(n)p Fu(,)g(or)g(the)h(standard)e(output)h(\(\014le)h(descriptor)f -(1\))h(if)g Fr(n)e Fu(is)i(not)150 1515 y(sp)s(eci\014ed.)40 +(1\))h(if)g Fr(n)e Fu(is)i(not)150 665 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;)i (if)e(it)h(do)s(es)f(exist)h(it)g(is)g(truncated)f(to)h(zero)g(size.) -275 1654 y(The)e(general)j(format)e(for)h(redirecting)g(output)f(is:) -390 1794 y Ft([)p Fj(n)p Ft(]>[|])p Fj(word)275 1934 -y Fu(If)g(the)h(redirection)g(op)s(erator)g(is)g(`)p -Ft(>)p Fu(',)g(and)f(the)h Ft(noclobber)d Fu(option)j(to)g(the)g -Ft(set)f Fu(builtin)g(has)h(b)s(een)150 2043 y(enabled,)h(the)g -(redirection)h(will)f(fail)h(if)e(the)i(\014le)e(whose)h(name)g -(results)g(from)f(the)h(expansion)g(of)g Fr(w)m(ord)150 -2153 y Fu(exists)f(and)f(is)g(a)h(regular)g(\014le.)41 +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)g(the)h +(redirection)g(op)s(erator)g(is)g(`)p Ft(>)p Fu(',)g(and)f(the)h +Ft(noclobber)d Fu(option)j(to)g(the)g Ft(set)f Fu(builtin)g(has)h(b)s +(een)150 1216 y(enabled,)h(the)g(redirection)h(will)f(fail)h(if)e(the)i +(\014le)e(whose)h(name)g(results)g(from)f(the)h(expansion)g(of)g +Fr(w)m(ord)150 1326 y Fu(exists)f(and)f(is)g(a)h(regular)g(\014le.)41 b(If)30 b(the)h(redirection)g(op)s(erator)g(is)f(`)p Ft(>|)p Fu(',)h(or)f(the)h(redirection)g(op)s(erator)g(is)150 -2262 y(`)p Ft(>)p Fu(')36 b(and)f(the)g Ft(noclobber)e +1435 y(`)p Ft(>)p Fu(')36 b(and)f(the)g Ft(noclobber)e Fu(option)j(is)g(not)g(enabled,)h(the)e(redirection)h(is)g(attempted)g -(ev)m(en)h(if)e(the)h(\014le)150 2372 y(named)30 b(b)m(y)g -Fr(w)m(ord)k Fu(exists.)150 2576 y Fk(3.6.3)63 b(App)s(ending)42 -b(Redirected)e(Output)150 2723 y Fu(Redirection)23 b(of)e(output)h(in)f +(ev)m(en)h(if)e(the)h(\014le)150 1545 y(named)30 b(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(Redirection)23 b(of)e(output)h(in)f (this)h(fashion)f(causes)h(the)g(\014le)g(whose)f(name)h(results)f -(from)g(the)h(expansion)g(of)150 2833 y Fr(w)m(ord)28 +(from)g(the)h(expansion)g(of)150 2013 y Fr(w)m(ord)28 b Fu(to)e(b)s(e)e(op)s(ened)g(for)h(app)s(ending)e(on)i(\014le)g (descriptor)g Fr(n)p Fu(,)g(or)g(the)g(standard)f(output)h(\(\014le)g -(descriptor)150 2942 y(1\))31 b(if)f Fr(n)g Fu(is)h(not)f(sp)s +(descriptor)150 2123 y(1\))31 b(if)f Fr(n)g Fu(is)h(not)f(sp)s (eci\014ed.)40 b(If)30 b(the)h(\014le)f(do)s(es)g(not)h(exist)g(it)g -(is)f(created.)275 3082 y(The)f(general)j(format)e(for)h(app)s(ending)e -(output)h(is:)390 3222 y Ft([)p Fj(n)p Ft(]>>)p Fj(word)150 -3426 y Fk(3.6.4)63 b(Redirecting)40 b(Standard)h(Output)g(and)g -(Standard)g(Error)150 3573 y Fu(This)33 b(construct)i(allo)m(ws)g(b)s +(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 b(Redirecting)40 b(Standard)h(Output)g(and)g +(Standard)g(Error)150 2776 y Fu(This)33 b(construct)i(allo)m(ws)g(b)s (oth)f(the)g(standard)g(output)f(\(\014le)i(descriptor)f(1\))h(and)f -(the)g(standard)f(error)150 3683 y(output)d(\(\014le)h(descriptor)f +(the)g(standard)f(error)150 2886 y(output)d(\(\014le)h(descriptor)f (2\))h(to)g(b)s(e)f(redirected)h(to)g(the)f(\014le)h(whose)f(name)h(is) -f(the)g(expansion)h(of)f Fr(w)m(ord)p Fu(.)275 3822 y(There)f(are)i(t)m +f(the)g(expansion)h(of)f Fr(w)m(ord)p Fu(.)275 3033 y(There)f(are)i(t)m (w)m(o)h(formats)e(for)h(redirecting)g(standard)e(output)h(and)g -(standard)f(error:)390 3962 y Ft(&>)p Fj(word)150 4101 -y Fu(and)390 4241 y Ft(>&)p Fj(word)150 4381 y Fu(Of)h(the)g(t)m(w)m(o) +(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(is)i(preferred.)39 b(This)30 b(is)g(seman)m(tically)j(equiv)-5 b(alen)m(t)32 b(to)390 -4520 y Ft(>)p Fj(word)46 b Ft(2>&1)275 4660 y Fu(When)41 +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 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 4769 y(other)27 b(redirection)g(op)s +b(If)41 b(it)h(do)s(es,)150 4026 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 4879 y(reasons.)150 -5083 y Fk(3.6.5)63 b(App)s(ending)42 b(Standard)f(Output)g(and)g -(Standard)g(Error)150 5230 y Fu(This)33 b(construct)i(allo)m(ws)g(b)s +(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)33 b(construct)i(allo)m(ws)g(b)s (oth)f(the)g(standard)g(output)f(\(\014le)i(descriptor)f(1\))h(and)f -(the)g(standard)f(error)150 5340 y(output)d(\(\014le)h(descriptor)f +(the)g(standard)f(error)150 4604 y(output)d(\(\014le)h(descriptor)f (2\))h(to)g(b)s(e)f(app)s(ended)f(to)i(the)f(\014le)h(whose)f(name)g -(is)h(the)f(expansion)h(of)f Fr(w)m(ord)p Fu(.)p eop -end +(is)h(the)f(expansion)h(of)f Fr(w)m(ord)p Fu(.)275 4751 +y(The)f(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 %%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(The)29 b(format)i(for)f(app)s(ending)f(standard)h(output)g(and)f -(standard)h(error)g(is:)390 442 y Ft(&>>)p Fj(word)150 -585 y Fu(This)g(is)g(seman)m(tically)j(equiv)-5 b(alen)m(t)32 -b(to)390 728 y Ft(>>)p Fj(word)46 b Ft(2>&1)275 871 y -Fu(\(see)31 b(Duplicating)h(File)f(Descriptors)g(b)s(elo)m(w\).)150 -1079 y Fk(3.6.6)63 b(Here)41 b(Do)s(cumen)m(ts)150 1226 -y Fu(This)26 b(t)m(yp)s(e)g(of)h(redirection)g(instructs)f(the)g(shell) -h(to)g(read)f(input)g(from)g(the)g(curren)m(t)h(source)f(un)m(til)h(a)g -(line)150 1336 y(con)m(taining)h(only)e Fr(w)m(ord)k -Fu(\(with)c(no)g(trailing)h(blanks\))f(is)g(seen.)40 -b(All)27 b(of)f(the)g(lines)h(read)f(up)f(to)i(that)g(p)s(oin)m(t)150 -1445 y(are)k(then)f(used)f(as)i(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)f(command.)275 1589 y(The)f(format)i(of)g(here-do)s(cumen)m(ts)f -(is:)390 1732 y Ft([)p Fj(n)p Ft(]<<[)p Fq(\000)p Ft(])p -Fj(word)772 1841 y(here-document)390 1951 y(delimiter)275 -2094 y Fu(No)i(parameter)h(and)f(v)-5 b(ariable)32 b(expansion,)h -(command)f(substitution,)h(arithmetic)g(expansion,)g(or)150 -2204 y(\014lename)26 b(expansion)g(is)g(p)s(erformed)e(on)i +b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(37)150 299 +y Fk(3.6.6)63 b(Here)41 b(Do)s(cumen)m(ts)150 446 y Fu(This)26 +b(t)m(yp)s(e)g(of)h(redirection)g(instructs)f(the)g(shell)h(to)g(read)f +(input)g(from)g(the)g(curren)m(t)h(source)f(un)m(til)h(a)g(line)150 +555 y(con)m(taining)h(only)e Fr(w)m(ord)k Fu(\(with)c(no)g(trailing)h +(blanks\))f(is)g(seen.)40 b(All)27 b(of)f(the)g(lines)h(read)f(up)f(to) +i(that)g(p)s(oin)m(t)150 665 y(are)k(then)f(used)f(as)i(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)f(command.)275 +823 y(The)f(format)i(of)g(here-do)s(cumen)m(ts)f(is:)390 +982 y Ft([)p Fj(n)p Ft(]<<[)p Fq(\000)p Ft(])p Fj(word)772 +1091 y(here-document)390 1201 y(delimiter)275 1360 y +Fu(No)i(parameter)h(and)f(v)-5 b(ariable)32 b(expansion,)h(command)f +(substitution,)h(arithmetic)g(expansion,)g(or)150 1469 +y(\014lename)26 b(expansion)g(is)g(p)s(erformed)e(on)i Fr(w)m(ord)p Fu(.)39 b(If)25 b(an)m(y)i(part)e(of)h Fr(w)m(ord)j Fu(is)d(quoted,)i(the)e Fr(delimiter)33 b Fu(is)26 b(the)150 -2313 y(result)33 b(of)g(quote)g(remo)m(v)-5 b(al)34 b(on)f +1579 y(result)33 b(of)g(quote)g(remo)m(v)-5 b(al)34 b(on)f Fr(w)m(ord)p Fu(,)g(and)f(the)h(lines)g(in)g(the)g(here-do)s(cumen)m(t) -g(are)g(not)g(expanded.)47 b(If)150 2423 y Fr(w)m(ord)26 +g(are)g(not)g(expanded.)47 b(If)150 1688 y Fr(w)m(ord)26 b Fu(is)c(unquoted,)h(all)g(lines)g(of)g(the)f(here-do)s(cumen)m(t)g (are)h(sub)5 b(jected)22 b(to)h(parameter)g(expansion,)h(com-)150 -2532 y(mand)30 b(substitution,)g(and)g(arithmetic)h(expansion,)g(the)f +1798 y(mand)30 b(substitution,)g(and)g(arithmetic)h(expansion,)g(the)f (c)m(haracter)i(sequence)f Ft(\\newline)d Fu(is)j(ignored,)150 -2642 y(and)f(`)p Ft(\\)p Fu(')g(m)m(ust)h(b)s(e)e(used)h(to)h(quote)g +1907 y(and)f(`)p Ft(\\)p Fu(')g(m)m(ust)h(b)s(e)e(used)h(to)h(quote)g (the)g(c)m(haracters)g(`)p Ft(\\)p Fu(',)g(`)p Ft($)p -Fu(',)g(and)f(`)p Ft(`)p Fu('.)275 2785 y(If)21 b(the)i(redirection)g +Fu(',)g(and)f(`)p Ft(`)p Fu('.)275 2066 y(If)21 b(the)i(redirection)g (op)s(erator)g(is)f(`)p Ft(<<-)p Fu(',)i(then)e(all)h(leading)g(tab)g (c)m(haracters)h(are)e(stripp)s(ed)f(from)h(input)150 -2895 y(lines)33 b(and)f(the)h(line)h(con)m(taining)g +2175 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 3004 y(b)s(e)e(inden)m(ted)g(in)g(a) -h(natural)f(fashion.)150 3212 y Fk(3.6.7)63 b(Here)41 -b(Strings)150 3359 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 3502 y Ft([)p Fj(n)p -Ft(]<<<)46 b Fj(word)275 3645 y Fu(The)29 b Fr(w)m(ord)k +(within)f(shell)i(scripts)e(to)150 2285 y(b)s(e)e(inden)m(ted)g(in)g(a) +h(natural)f(fashion.)150 2508 y Fk(3.6.7)63 b(Here)41 +b(Strings)150 2655 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 2814 y Ft([)p Fj(n)p +Ft(]<<<)46 b Fj(word)275 2972 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 3755 y(stitution,)f +b(ariable)31 b(expansion,)f(command)g(sub-)150 3082 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 -3865 y(are)35 b(not)g(p)s(erformed.)51 b(The)34 b(result)h(is)g +3191 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 3974 y(the)d(command)f(on)g(its)h(standard)e(input)h +(ended,)g(to)150 3301 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 4182 y Fk(3.6.8)63 b(Duplicating)41 -b(File)g(Descriptors)150 4329 y Fu(The)30 b(redirection)h(op)s(erator) -390 4472 y Ft([)p Fj(n)p Ft(]<&)p Fj(word)150 4615 y +(eci\014ed\).)150 3524 y Fk(3.6.8)63 b(Duplicating)41 +b(File)g(Descriptors)150 3671 y Fu(The)30 b(redirection)h(op)s(erator) +390 3829 y Ft([)p Fj(n)p Ft(]<&)p Fj(word)150 3988 y Fu(is)k(used)e(to)j(duplicate)f(input)f(\014le)g(descriptors.)53 b(If)34 b Fr(w)m(ord)k Fu(expands)c(to)h(one)g(or)g(more)g(digits,)h -(the)f(\014le)150 4725 y(descriptor)e(denoted)h(b)m(y)f +(the)f(\014le)150 4098 y(descriptor)e(denoted)h(b)m(y)f Fr(n)g Fu(is)g(made)h(to)g(b)s(e)f(a)g(cop)m(y)h(of)g(that)g(\014le)f (descriptor.)50 b(If)33 b(the)h(digits)g(in)f Fr(w)m(ord)150 -4835 y Fu(do)c(not)h(sp)s(ecify)f(a)h(\014le)f(descriptor)g(op)s(en)g +4207 y Fu(do)c(not)h(sp)s(ecify)f(a)h(\014le)f(descriptor)g(op)s(en)g (for)g(input,)g(a)h(redirection)g(error)f(o)s(ccurs.)40 -b(If)29 b Fr(w)m(ord)j Fu(ev)-5 b(aluates)150 4944 y(to)31 +b(If)29 b Fr(w)m(ord)j Fu(ev)-5 b(aluates)150 4317 y(to)31 b(`)p Ft(-)p Fu(',)g(\014le)g(descriptor)g Fr(n)f Fu(is)g(closed.)43 b(If)30 b Fr(n)g Fu(is)g(not)h(sp)s(eci\014ed,)f(the)h(standard)f -(input)g(\(\014le)h(descriptor)f(0\))150 5054 y(is)g(used.)275 -5197 y(The)f(op)s(erator)390 5340 y Ft([)p Fj(n)p Ft(]>&)p -Fj(word)p eop end +(input)g(\(\014le)h(descriptor)f(0\))150 4426 y(is)g(used.)275 +4585 y(The)f(op)s(erator)390 4743 y Ft([)p Fj(n)p Ft(]>&)p +Fj(word)150 4902 y Fu(is)40 b(used)g(similarly)h(to)g(duplicate)f +(output)g(\014le)h(descriptors.)70 b(If)40 b Fr(n)f Fu(is)i(not)f(sp)s +(eci\014ed,)i(the)f(standard)150 5011 y(output)30 b(\(\014le)g +(descriptor)g(1\))h(is)f(used.)39 b(If)30 b(the)g(digits)h(in)e +Fr(w)m(ord)34 b Fu(do)29 b(not)i(sp)s(ecify)e(a)i(\014le)f(descriptor)g +(op)s(en)150 5121 y(for)35 b(output,)h(a)g(redirection)g(error)e(o)s +(ccurs.)55 b(If)35 b Fr(w)m(ord)j Fu(ev)-5 b(aluates)37 +b(to)f(`)p Ft(-)p Fu(',)h(\014le)e(descriptor)g Fr(n)g +Fu(is)g(closed.)150 5230 y(As)f(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 +5340 y(the)d(standard)e(output)h(and)g(standard)f(error)h(are)h +(redirected)g(as)g(describ)s(ed)e(previously)-8 b(.)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(is)40 b(used)g(similarly)h(to)g(duplicate)f(output)g(\014le)h -(descriptors.)70 b(If)40 b Fr(n)f Fu(is)i(not)f(sp)s(eci\014ed,)i(the)f -(standard)150 408 y(output)30 b(\(\014le)g(descriptor)g(1\))h(is)f -(used.)39 b(If)30 b(the)g(digits)h(in)e Fr(w)m(ord)34 -b Fu(do)29 b(not)i(sp)s(ecify)e(a)i(\014le)f(descriptor)g(op)s(en)150 -518 y(for)35 b(output,)h(a)g(redirection)g(error)e(o)s(ccurs.)55 -b(If)35 b Fr(w)m(ord)j Fu(ev)-5 b(aluates)37 b(to)f(`)p -Ft(-)p Fu(',)h(\014le)e(descriptor)g Fr(n)g Fu(is)g(closed.)150 -628 y(As)f(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(the)d(standard)e(output)h -(and)g(standard)f(error)h(are)h(redirected)g(as)g(describ)s(ed)e -(previously)-8 b(.)150 938 y Fk(3.6.9)63 b(Mo)m(ving)41 -b(File)h(Descriptors)150 1085 y Fu(The)30 b(redirection)h(op)s(erator) -390 1220 y Ft([)p Fj(n)p Ft(]<&)p Fj(digit)p Ft(-)150 -1356 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 1465 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 1601 y(Similarly)-8 b(,)31 b(the)f(redirection)h(op)s -(erator)390 1736 y Ft([)p Fj(n)p Ft(]>&)p Fj(digit)p -Ft(-)150 1872 y Fu(mo)m(v)m(es)e(the)g(\014le)f(descriptor)f +y Fk(3.6.9)63 b(Mo)m(ving)41 b(File)h(Descriptors)150 +446 y Fu(The)30 b(redirection)h(op)s(erator)390 572 y +Ft([)p Fj(n)p Ft(]<&)p Fj(digit)p Ft(-)150 698 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 808 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 934 y(Similarly)-8 b(,)31 b(the)f(redirection)h(op)s +(erator)390 1061 y Ft([)p Fj(n)p Ft(]>&)p Fj(digit)p +Ft(-)150 1187 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 -1982 y(if)i Fr(n)g Fu(is)h(not)f(sp)s(eci\014ed.)150 -2182 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 2329 y Fu(The)30 -b(redirection)h(op)s(erator)390 2464 y Ft([)p Fj(n)p -Ft(]<>)p Fj(word)150 2600 y Fu(causes)39 b(the)g(\014le)g(whose)g(name) +1297 y(if)i Fr(n)g Fu(is)h(not)f(sp)s(eci\014ed.)150 +1479 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 1626 y Fu(The)30 +b(redirection)h(op)s(erator)390 1753 y Ft([)p Fj(n)p +Ft(]<>)p Fj(word)150 1879 y Fu(causes)39 b(the)g(\014le)g(whose)g(name) g(is)g(the)g(expansion)g(of)g Fr(w)m(ord)j Fu(to)d(b)s(e)g(op)s(ened)f -(for)g(b)s(oth)h(reading)g(and)150 2710 y(writing)33 +(for)g(b)s(oth)h(reading)g(and)150 1989 y(writing)33 b(on)f(\014le)h(descriptor)f Fr(n)p Fu(,)h(or)g(on)f(\014le)h (descriptor)g(0)g(if)f Fr(n)g Fu(is)h(not)g(sp)s(eci\014ed.)47 -b(If)32 b(the)h(\014le)f(do)s(es)h(not)150 2819 y(exist,)e(it)g(is)g -(created.)150 3062 y Fs(3.7)68 b(Executing)46 b(Commands)150 -3286 y Fk(3.7.1)63 b(Simple)41 b(Command)h(Expansion)150 -3433 y Fu(When)33 b(a)g(simple)g(command)g(is)g(executed,)h(the)g +b(If)32 b(the)h(\014le)f(do)s(es)h(not)150 2098 y(exist,)e(it)g(is)g +(created.)150 2323 y Fs(3.7)68 b(Executing)46 b(Commands)150 +2539 y Fk(3.7.1)63 b(Simple)41 b(Command)h(Expansion)150 +2686 y Fu(When)33 b(a)g(simple)g(command)g(is)g(executed,)h(the)g (shell)f(p)s(erforms)e(the)i(follo)m(wing)i(expansions,)e(assign-)150 -3542 y(men)m(ts,)e(and)f(redirections,)h(from)f(left)h(to)g(righ)m(t,)g -(in)f(the)h(follo)m(wing)h(order.)199 3678 y(1.)61 b(The)38 +2795 y(men)m(ts,)e(and)f(redirections,)h(from)f(left)h(to)g(righ)m(t,)g +(in)f(the)h(follo)m(wing)h(order.)199 2922 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 -3788 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 3923 y(2.)61 b(The)39 +3031 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 3157 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 -4032 y(tion)d(3.5)i([Shell)e(Expansions],)h(page)g(22\).)61 +3267 y(tion)d(3.5)i([Shell)e(Expansions],)h(page)g(22\).)61 b(If)37 b(an)m(y)g(w)m(ords)f(remain)h(after)h(expansion,)h(the)e -(\014rst)330 4142 y(w)m(ord)31 b(is)g(tak)m(en)h(to)g(b)s(e)f(the)g +(\014rst)330 3377 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 4251 y(men)m(ts.)199 4386 y(3.)61 b(Redirections)25 +(the)h(argu-)330 3486 y(men)m(ts.)199 3612 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(34\).)199 4521 +(Section)g(3.6)g([Redirections],)i(page)d(34\).)199 3739 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 4631 y(expansion,)49 b(command)d +(expansion,)g(parameter)330 3848 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 4741 y(b)s(eing)30 b(assigned)h(to)g(the)f(v)-5 -b(ariable.)275 4902 y(If)32 b(no)i(command)f(name)g(results,)h(the)g(v) +b(al)46 b(b)s(efore)330 3958 y(b)s(eing)30 b(assigned)h(to)g(the)f(v)-5 +b(ariable.)275 4101 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 5011 y(men)m(t.)39 b(Otherwise,)27 +h(en)m(viron-)150 4211 y(men)m(t.)39 b(Otherwise,)27 b(the)e(v)-5 b(ariables)26 b(are)g(added)f(to)h(the)f(en)m(vironmen)m -(t)h(of)g(the)f(executed)h(command)g(and)150 5121 y(do)35 +(t)h(of)g(the)f(executed)h(command)g(and)150 4320 y(do)35 b(not)f(a\013ect)j(the)d(curren)m(t)h(shell)g(en)m(vironmen)m(t.)54 b(If)34 b(an)m(y)h(of)g(the)f(assignmen)m(ts)i(attempts)f(to)h(assign) -150 5230 y(a)j(v)-5 b(alue)39 b(to)g(a)g(readonly)f(v)-5 +150 4430 y(a)j(v)-5 b(alue)39 b(to)g(a)g(readonly)f(v)-5 b(ariable,)42 b(an)c(error)g(o)s(ccurs,)j(and)c(the)i(command)f(exits)h -(with)g(a)f(non-zero)150 5340 y(status.)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)275 299 -y(If)33 b(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 -(causes)h(the)g(command)f(to)h(exit)g(with)f(a)h(non-zero)g(status.)275 -548 y(If)26 b(there)i(is)f(a)h(command)f(name)h(left)g(after)g +(with)g(a)f(non-zero)150 4539 y(status.)275 4666 y(If)33 +b(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 4775 +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 +4902 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 658 y(Otherwise,)39 b(the)e(command)g(exits.)62 +(w.)150 5011 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 767 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 877 y(p)s(erformed.)55 b(If)35 b(there)g(w)m(ere)h(no)g(command)f +(substitu-)150 5121 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 5230 y(p)s(erformed.)55 b(If)35 b(there)g(w)m(ere)h(no)g(command)f (substitutions,)i(the)e(command)h(exits)g(with)f(a)h(status)g(of)150 -987 y(zero.)150 1191 y Fk(3.7.2)63 b(Command)41 b(Searc)m(h)f(and)h -(Execution)150 1338 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 1448 y(optional)32 b(list)f(of)f(argumen)m(ts,)h(the)g -(follo)m(wing)g(actions)h(are)f(tak)m(en.)199 1587 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 1697 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 1807 y(F)-8 b(unctions],)31 b(page)h(17.)199 -1944 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 2053 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 2190 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 -2300 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 2410 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 2519 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 2629 y(Builtins],)37 -b(page)f(44\).)55 b(A)35 b(full)g(searc)m(h)g(of)g(the)g(directories)h -(in)f Ft($PATH)e Fu(is)i(p)s(erformed)f(only)h(if)g(the)330 -2738 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 2848 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 2958 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 3067 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 3177 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 3286 y(message)k(and)f(returns)f(an)i(exit)g -(status)g(of)f(127.)199 3423 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 3533 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 3643 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 3752 y(argumen)m(ts)g(supplied,)e(if)h(an)m(y)-8 -b(.)199 3889 y(5.)61 b(If)35 b(this)h(execution)h(fails)f(b)s(ecause)g +5340 y(zero.)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.7.2)63 b(Command)41 b(Searc)m(h)f(and)h(Execution)150 +446 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 +555 y(optional)32 b(list)f(of)f(argumen)m(ts,)h(the)g(follo)m(wing)g +(actions)h(are)f(tak)m(en.)199 697 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 807 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 +916 y(F)-8 b(unctions],)31 b(page)h(17.)199 1054 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 +1164 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 1302 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 1411 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 1521 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 1631 +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 1740 y(Builtins],)37 b(page)f(44\).)55 b(A)35 b(full)g(searc)m(h)g +(of)g(the)g(directories)h(in)f Ft($PATH)e Fu(is)i(p)s(erformed)f(only)h +(if)g(the)330 1850 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 1959 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 2069 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 2178 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 2288 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 +2398 y(message)k(and)f(returns)f(an)i(exit)g(status)g(of)f(127.)199 +2536 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 2645 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 2755 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 2864 y(argumen)m(ts)g(supplied,)e(if)h(an)m(y)-8 +b(.)199 3002 y(5.)61 b(If)35 b(this)h(execution)h(fails)f(b)s(ecause)g (the)f(\014le)h(is)g(not)g(in)f(executable)j(format,)f(and)e(the)h -(\014le)g(is)g(not)330 3999 y(a)d(directory)-8 b(,)34 +(\014le)g(is)g(not)330 3112 y(a)d(directory)-8 b(,)34 b(it)f(is)g(assumed)e(to)j(b)s(e)d(a)i Fr(shell)g(script)h Fu(and)e(the)h(shell)f(executes)i(it)f(as)g(describ)s(ed)e(in)330 -4109 y(Section)g(3.8)h([Shell)e(Scripts],)g(page)i(42.)199 -4246 y(6.)61 b(If)38 b(the)h(command)f(w)m(as)h(not)g(b)s(egun)e(async) +3222 y(Section)g(3.8)h([Shell)e(Scripts],)g(page)i(42.)199 +3360 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 4355 y(complete)32 b(and)e(collects)i(its)f(exit)g(status.)150 -4560 y Fk(3.7.3)63 b(Command)41 b(Execution)f(En)m(vironmen)m(t)150 -4707 y Fu(The)30 b(shell)g(has)h(an)f Fr(execution)h(en)m(vironmen)m(t) +(to)330 3469 y(complete)32 b(and)e(collects)i(its)f(exit)g(status.)150 +3675 y Fk(3.7.3)63 b(Command)41 b(Execution)f(En)m(vironmen)m(t)150 +3822 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 -4847 y Fq(\017)60 b Fu(op)s(en)32 b(\014les)g(inherited)g(b)m(y)h(the)f +3964 y Fq(\017)60 b Fu(op)s(en)32 b(\014les)g(inherited)g(b)m(y)h(the)f (shell)h(at)g(in)m(v)m(o)s(cation,)j(as)c(mo)s(di\014ed)g(b)m(y)g -(redirections)h(supplied)e(to)330 4956 y(the)g Ft(exec)e -Fu(builtin)225 5093 y Fq(\017)60 b Fu(the)28 b(curren)m(t)g(w)m(orking) +(redirections)h(supplied)e(to)330 4074 y(the)g Ft(exec)e +Fu(builtin)225 4212 y Fq(\017)60 b Fu(the)28 b(curren)m(t)g(w)m(orking) h(directory)g(as)f(set)h(b)m(y)f Ft(cd)p Fu(,)g Ft(pushd)p Fu(,)g(or)g Ft(popd)p Fu(,)g(or)g(inherited)g(b)m(y)g(the)h(shell)f(at) -330 5203 y(in)m(v)m(o)s(cation)225 5340 y Fq(\017)60 +330 4321 y(in)m(v)m(o)s(cation)225 4459 y Fq(\017)60 b Fu(the)31 b(\014le)f(creation)i(mo)s(de)e(mask)g(as)h(set)g(b)m(y)f -Ft(umask)f Fu(or)h(inherited)g(from)g(the)h(shell's)f(paren)m(t)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)225 299 -y Fq(\017)60 b Fu(curren)m(t)30 b(traps)g(set)h(b)m(y)f -Ft(trap)225 435 y Fq(\017)60 b Fu(shell)30 b(parameters)f(that)h(are)g +Ft(umask)f Fu(or)h(inherited)g(from)g(the)h(shell's)f(paren)m(t)225 +4597 y Fq(\017)60 b Fu(curren)m(t)30 b(traps)g(set)h(b)m(y)f +Ft(trap)225 4735 y Fq(\017)60 b Fu(shell)30 b(parameters)f(that)h(are)g (set)g(b)m(y)g(v)-5 b(ariable)30 b(assignmen)m(t)g(or)g(with)f -Ft(set)f Fu(or)i(inherited)f(from)g(the)330 545 y(shell's)i(paren)m(t)f -(in)g(the)h(en)m(vironmen)m(t)225 682 y Fq(\017)60 b -Fu(shell)44 b(functions)f(de\014ned)f(during)h(execution)i(or)e +Ft(set)f Fu(or)i(inherited)f(from)g(the)330 4845 y(shell's)i(paren)m(t) +f(in)g(the)h(en)m(vironmen)m(t)225 4983 y Fq(\017)60 +b Fu(shell)44 b(functions)f(de\014ned)f(during)h(execution)i(or)e (inherited)h(from)f(the)h(shell's)g(paren)m(t)f(in)h(the)330 -791 y(en)m(vironmen)m(t)225 928 y Fq(\017)60 b Fu(options)33 +5092 y(en)m(vironmen)m(t)225 5230 y Fq(\017)60 b Fu(options)33 b(enabled)g(at)h(in)m(v)m(o)s(cation)h(\(either)f(b)m(y)f(default)g(or) -g(with)g(command-line)g(argumen)m(ts\))h(or)330 1037 -y(b)m(y)c Ft(set)225 1174 y Fq(\017)60 b Fu(options)31 -b(enabled)f(b)m(y)g Ft(shopt)f Fu(\(see)j(Section)f(4.3.2)h([The)e -(Shopt)g(Builtin],)h(page)g(66\))225 1310 y Fq(\017)60 -b Fu(shell)31 b(aliases)g(de\014ned)f(with)g Ft(alias)f -Fu(\(see)i(Section)g(6.6)h([Aliases],)g(page)f(94\))225 -1447 y Fq(\017)60 b Fu(v)-5 b(arious)50 b(pro)s(cess)f +g(with)g(command-line)g(argumen)m(ts\))h(or)330 5340 +y(b)m(y)c Ft(set)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)225 299 +y Fq(\017)60 b Fu(options)31 b(enabled)f(b)m(y)g Ft(shopt)f +Fu(\(see)j(Section)f(4.3.2)h([The)e(Shopt)g(Builtin],)h(page)g(66\))225 +429 y Fq(\017)60 b Fu(shell)31 b(aliases)g(de\014ned)f(with)g +Ft(alias)f Fu(\(see)i(Section)g(6.6)h([Aliases],)g(page)f(94\))225 +558 y Fq(\017)60 b Fu(v)-5 b(arious)50 b(pro)s(cess)f Fm(id)p Fu(s,)55 b(including)49 b(those)i(of)e(bac)m(kground)h(jobs)f -(\(see)i(Section)g(3.2.3)g([Lists],)330 1556 y(page)31 +(\(see)i(Section)g(3.2.3)g([Lists],)330 668 y(page)31 b(9\),)g(the)g(v)-5 b(alue)31 b(of)f Ft($$)p Fu(,)g(and)g(the)h(v)-5 -b(alue)31 b(of)f Ft($PPID)275 1722 y Fu(When)k(a)g(simple)h(command)f +b(alue)31 b(of)f Ft($PPID)275 817 y Fu(When)k(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 1832 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 1941 y(noted,)31 +(executed,)i(it)f(is)150 927 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 1037 y(noted,)31 b(the)f(v)-5 b(alues)31 b(are)g(inherited)f(from)g(the)g(shell.)225 -2080 y Fq(\017)60 b Fu(the)31 b(shell's)h(op)s(en)e(\014les,)i(plus)e +1166 y Fq(\017)60 b Fu(the)31 b(shell's)h(op)s(en)e(\014les,)i(plus)e (an)m(y)h(mo)s(di\014cations)h(and)e(additions)h(sp)s(eci\014ed)g(b)m -(y)g(redirections)g(to)330 2189 y(the)g(command)225 2326 +(y)g(redirections)g(to)330 1276 y(the)g(command)225 1406 y Fq(\017)60 b Fu(the)31 b(curren)m(t)f(w)m(orking)g(directory)225 -2462 y Fq(\017)60 b Fu(the)31 b(\014le)f(creation)i(mo)s(de)e(mask)225 -2599 y Fq(\017)60 b Fu(shell)32 b(v)-5 b(ariables)33 +1535 y Fq(\017)60 b Fu(the)31 b(\014le)f(creation)i(mo)s(de)e(mask)225 +1665 y Fq(\017)60 b Fu(shell)32 b(v)-5 b(ariables)33 b(and)e(functions)h(mark)m(ed)g(for)g(exp)s(ort,)g(along)h(with)f(v)-5 -b(ariables)32 b(exp)s(orted)g(for)g(the)330 2709 y(command,)e(passed)g +b(ariables)32 b(exp)s(orted)g(for)g(the)330 1774 y(command,)e(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(40\))225 2845 y Fq(\017)60 b +(vironmen)m(t],)e(page)g(40\))225 1904 y Fq(\017)60 b Fu(traps)31 b(caugh)m(t)h(b)m(y)f(the)g(shell)h(are)f(reset)h(to)g(the) f(v)-5 b(alues)32 b(inherited)e(from)h(the)g(shell's)h(paren)m(t,)g -(and)330 2955 y(traps)e(ignored)h(b)m(y)f(the)g(shell)h(are)g(ignored) -275 3120 y(A)41 b(command)g(in)m(v)m(ok)m(ed)i(in)e(this)h(separate)g +(and)330 2014 y(traps)e(ignored)h(b)m(y)f(the)g(shell)h(are)g(ignored) +275 2163 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 -3230 y(en)m(vironmen)m(t.)275 3368 y(Command)35 b(substitution,)j +2273 y(en)m(vironmen)m(t.)275 2403 y(Command)35 b(substitution,)j (commands)e(group)s(ed)f(with)i(paren)m(theses,)h(and)e(async)m -(hronous)g(com-)150 3478 y(mands)c(are)h(in)m(v)m(ok)m(ed)i(in)d(a)i +(hronous)g(com-)150 2512 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 3588 y(except)i(that)g(traps)f(caugh)m +(shell)g(en)m(vironmen)m(t,)150 2622 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 -3697 y(its)g(paren)m(t)f(at)h(in)m(v)m(o)s(cation.)49 +2731 y(its)g(paren)m(t)f(at)h(in)m(v)m(o)s(cation.)49 b(Builtin)32 b(commands)g(that)h(are)g(in)m(v)m(ok)m(ed)h(as)e(part)g -(of)h(a)f(pip)s(eline)g(are)h(also)150 3807 y(executed)41 +(of)h(a)f(pip)s(eline)g(are)h(also)150 2841 y(executed)41 b(in)f(a)h(subshell)e(en)m(vironmen)m(t.)72 b(Changes)40 b(made)g(to)h(the)g(subshell)e(en)m(vironmen)m(t)i(cannot)150 -3916 y(a\013ect)32 b(the)f(shell's)f(execution)i(en)m(vironmen)m(t.)275 -4055 y(Subshells)c(spa)m(wned)i(to)h(execute)g(command)f(substitutions) +2951 y(a\013ect)32 b(the)f(shell's)f(execution)i(en)m(vironmen)m(t.)275 +3080 y(Subshells)c(spa)m(wned)i(to)h(execute)g(command)f(substitutions) g(inherit)g(the)g(v)-5 b(alue)31 b(of)f(the)h Ft(-e)e -Fu(option)150 4165 y(from)23 b(the)i(paren)m(t)f(shell.)38 +Fu(option)150 3190 y(from)23 b(the)i(paren)m(t)f(shell.)38 b(When)24 b(not)g(in)g Fm(posix)f Fu(mo)s(de,)i(Bash)f(clears)h(the)f -Ft(-e)f Fu(option)i(in)e(suc)m(h)h(subshells.)275 4303 +Ft(-e)f Fu(option)i(in)e(suc)m(h)h(subshells.)275 3319 y(If)f(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 4413 y(for)35 b(the)g(command)g(is)g +(default)g(standard)f(input)150 3429 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 4522 +b(the)e(in)m(v)m(ok)m(ed)h(command)f(inherits)150 3539 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 4726 y Fk(3.7.4)63 -b(En)m(vironmen)m(t)150 4873 y Fu(When)29 b(a)g(program)f(is)h(in)m(v)m +(di\014ed)g(b)m(y)g(redirections.)150 3728 y Fk(3.7.4)63 +b(En)m(vironmen)m(t)150 3875 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 -4982 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 5121 y(Bash)39 b(pro)m(vides)g(sev)m(eral)i(w) +3985 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 4114 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 5230 +b(On)38 b(in)m(v)m(o)s(cation,)44 b(the)c(shell)150 4224 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 -5340 y(marking)26 b(it)g(for)g Fr(exp)s(ort)h Fu(to)g(c)m(hild)f(pro)s +4334 y(marking)26 b(it)g(for)g Fr(exp)s(ort)h Fu(to)g(c)m(hild)f(pro)s (cesses.)39 b(Executed)26 b(commands)g(inherit)g(the)g(en)m(vironmen)m -(t.)39 b(The)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(export)35 b Fu(and)i(`)p Ft(declare)29 b(-x)p Fu(')36 -b(commands)h(allo)m(w)i(parameters)e(and)g(functions)g(to)h(b)s(e)e -(added)h(to)h(and)150 408 y(deleted)21 b(from)f(the)h(en)m(vironmen)m -(t.)38 b(If)20 b(the)h(v)-5 b(alue)21 b(of)g(a)g(parameter)g(in)f(the)g -(en)m(vironmen)m(t)i(is)e(mo)s(di\014ed,)i(the)150 518 -y(new)31 b(v)-5 b(alue)32 b(b)s(ecomes)f(part)h(of)f(the)h(en)m -(vironmen)m(t,)g(replacing)h(the)e(old.)44 b(The)31 b(en)m(vironmen)m -(t)h(inherited)150 628 y(b)m(y)f(an)m(y)g(executed)h(command)f -(consists)g(of)g(the)g(shell's)h(initial)g(en)m(vironmen)m(t,)g(whose)f -(v)-5 b(alues)31 b(ma)m(y)h(b)s(e)150 737 y(mo)s(di\014ed)26 +(t.)39 b(The)150 4443 y Ft(export)c Fu(and)i(`)p Ft(declare)29 +b(-x)p Fu(')36 b(commands)h(allo)m(w)i(parameters)e(and)g(functions)g +(to)h(b)s(e)e(added)h(to)h(and)150 4553 y(deleted)21 +b(from)f(the)h(en)m(vironmen)m(t.)38 b(If)20 b(the)h(v)-5 +b(alue)21 b(of)g(a)g(parameter)g(in)f(the)g(en)m(vironmen)m(t)i(is)e +(mo)s(di\014ed,)i(the)150 4662 y(new)31 b(v)-5 b(alue)32 +b(b)s(ecomes)f(part)h(of)f(the)h(en)m(vironmen)m(t,)g(replacing)h(the)e +(old.)44 b(The)31 b(en)m(vironmen)m(t)h(inherited)150 +4772 y(b)m(y)f(an)m(y)g(executed)h(command)f(consists)g(of)g(the)g +(shell's)h(initial)g(en)m(vironmen)m(t,)g(whose)f(v)-5 +b(alues)31 b(ma)m(y)h(b)s(e)150 4882 y(mo)s(di\014ed)26 b(in)g(the)h(shell,)h(less)f(an)m(y)g(pairs)f(remo)m(v)m(ed)i(b)m(y)f (the)g Ft(unset)e Fu(and)h(`)p Ft(export)j(-n)p Fu(')e(commands,)g -(plus)150 847 y(an)m(y)k(additions)f(via)h(the)g Ft(export)d -Fu(and)i(`)p Ft(declare)f(-x)p Fu(')h(commands.)275 991 +(plus)150 4991 y(an)m(y)k(additions)f(via)h(the)g Ft(export)d +Fu(and)i(`)p Ft(declare)f(-x)p Fu(')h(commands.)275 5121 y(The)j(en)m(vironmen)m(t)i(for)f(an)m(y)g(simple)h(command)f(or)g (function)g(ma)m(y)g(b)s(e)g(augmen)m(ted)h(temp)s(orarily)150 -1100 y(b)m(y)c(pre\014xing)e(it)i(with)g(parameter)g(assignmen)m(ts,)h +5230 y(b)m(y)c(pre\014xing)e(it)i(with)g(parameter)g(assignmen)m(ts,)h (as)e(describ)s(ed)g(in)g(Section)i(3.4)g([Shell)e(P)m(arameters],)150 -1210 y(page)g(20.)41 b(These)29 b(assignmen)m(t)i(statemen)m(ts)g +5340 y(page)g(20.)41 b(These)29 b(assignmen)m(t)i(statemen)m(ts)g (a\013ect)f(only)g(the)f(en)m(vironmen)m(t)h(seen)g(b)m(y)f(that)h -(command.)275 1354 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(62\),)h(then)e(all)g -(parameter)150 1464 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 1573 y(command)g(name.)275 1717 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 1827 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 2035 y Fk(3.7.5)63 -b(Exit)40 b(Status)150 2182 y Fu(The)26 b(exit)h(status)f(of)g(an)g -(executed)h(command)f(is)g(the)h(v)-5 b(alue)26 b(returned)f(b)m(y)h -(the)g Fr(w)m(aitpid)k Fu(system)d(call)g(or)150 2292 -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 2401 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 -2511 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 -2621 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 2765 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 2874 y(A)e(non-zero)h(exit)g(status)g -(indicates)g(failure.)40 b(This)28 b(seemingly)i(coun)m(ter-in)m -(tuitiv)m(e)i(sc)m(heme)e(is)f(used)g(so)150 2984 y(there)34 -b(is)g(one)g(w)m(ell-de\014ned)g(w)m(a)m(y)g(to)h(indicate)g(success)f -(and)f(a)h(v)-5 b(ariet)m(y)35 b(of)f(w)m(a)m(ys)h(to)f(indicate)h(v)-5 -b(arious)150 3093 y(failure)38 b(mo)s(des.)62 b(When)37 -b(a)h(command)f(terminates)i(on)e(a)h(fatal)h(signal)g(whose)e(n)m(um)m -(b)s(er)f(is)i Fr(N)p Fu(,)i(Bash)150 3203 y(uses)30 -b(the)g(v)-5 b(alue)31 b(128)p Ft(+)p Fr(N)42 b Fu(as)30 -b(the)h(exit)g(status.)275 3347 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 3457 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 -3600 y(If)i(a)i(command)f(fails)g(b)s(ecause)g(of)h(an)f(error)f +(command.)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)30 b(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(62\),)h(then)e(all)g(parameter)150 +408 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 +518 y(command)g(name.)275 662 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 +772 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 980 y Fk(3.7.5)63 b(Exit)40 +b(Status)150 1127 y Fu(The)26 b(exit)h(status)f(of)g(an)g(executed)h +(command)f(is)g(the)h(v)-5 b(alue)26 b(returned)f(b)m(y)h(the)g +Fr(w)m(aitpid)k Fu(system)d(call)g(or)150 1237 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 1346 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 1456 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 1566 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 +1710 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 1819 y(A)e(non-zero)h(exit)g(status)g(indicates)g(failure.)40 +b(This)28 b(seemingly)i(coun)m(ter-in)m(tuitiv)m(e)i(sc)m(heme)e(is)f +(used)g(so)150 1929 y(there)34 b(is)g(one)g(w)m(ell-de\014ned)g(w)m(a)m +(y)g(to)h(indicate)g(success)f(and)f(a)h(v)-5 b(ariet)m(y)35 +b(of)f(w)m(a)m(ys)h(to)f(indicate)h(v)-5 b(arious)150 +2038 y(failure)38 b(mo)s(des.)62 b(When)37 b(a)h(command)f(terminates)i +(on)e(a)h(fatal)h(signal)g(whose)e(n)m(um)m(b)s(er)f(is)i +Fr(N)p Fu(,)i(Bash)150 2148 y(uses)30 b(the)g(v)-5 b(alue)31 +b(128)p Ft(+)p Fr(N)42 b Fu(as)30 b(the)h(exit)g(status.)275 +2292 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 +2401 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 +2545 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 -3710 y(is)c(greater)i(than)e(zero.)275 3854 y(The)38 +2655 y(is)c(greater)i(than)e(zero.)275 2799 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.4.2)h([Con-)150 3964 +(commands)e(\(see)h(Section)h(3.2.4.2)h([Con-)150 2909 y(ditional)i(Constructs],)h(page)f(11\))g(and)e(some)i(of)f(the)g(list) g(constructs)g(\(see)h(Section)f(3.2.3)i([Lists],)150 -4073 y(page)31 b(9\).)275 4217 y(All)40 b(of)g(the)h(Bash)f(builtins)f +3018 y(page)31 b(9\).)275 3162 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 4327 y(status)34 b(on)f(failure,)i(so)f(they)g(ma)m +(a)g(non-zero)150 3272 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 4436 y(return)e(an)i(exit)g +(constructs.)50 b(All)35 b(builtins)150 3381 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 4546 y(argumen)m(ts.)150 -4755 y Fk(3.7.6)63 b(Signals)150 4902 y Fu(When)36 b(Bash)g(is)h(in)m +m(v)-5 b(alid)35 b(options)g(or)f(missing)150 3491 y(argumen)m(ts.)150 +3700 y Fk(3.7.6)63 b(Signals)150 3847 y Fu(When)36 b(Bash)g(is)h(in)m (teractiv)m(e,)j(in)c(the)h(absence)f(of)h(an)m(y)f(traps,)i(it)e (ignores)h Ft(SIGTERM)d Fu(\(so)j(that)g(`)p Ft(kill)150 -5011 y(0)p Fu(')c(do)s(es)g(not)g(kill)g(an)g(in)m(teractiv)m(e)j +3956 y(0)p Fu(')c(do)s(es)g(not)g(kill)g(an)g(in)m(teractiv)m(e)j (shell\),)f(and)d Ft(SIGINT)f Fu(is)i(caugh)m(t)h(and)f(handled)f(\(so) -h(that)h(the)f Ft(wait)150 5121 y Fu(builtin)24 b(is)h(in)m +h(that)h(the)f Ft(wait)150 4066 y Fu(builtin)24 b(is)h(in)m (terruptible\).)39 b(When)24 b(Bash)g(receiv)m(es)j(a)d Ft(SIGINT)p Fu(,)h(it)g(breaks)f(out)h(of)f(an)m(y)h(executing)h(lo)s -(ops.)150 5230 y(In)31 b(all)h(cases,)h(Bash)f(ignores)g +(ops.)150 4175 y(In)31 b(all)h(cases,)h(Bash)f(ignores)g Ft(SIGQUIT)p Fu(.)42 b(If)32 b(job)f(con)m(trol)i(is)e(in)h(e\013ect)h -(\(see)f(Chapter)f(7)h([Job)g(Con)m(trol],)150 5340 y(page)f(105\),)h +(\(see)f(Chapter)f(7)h([Job)g(Con)m(trol],)150 4285 y(page)f(105\),)h (Bash)f(ignores)g Ft(SIGTTIN)p Fu(,)d Ft(SIGTTOU)p Fu(,)h(and)h -Ft(SIGTSTP)p Fu(.)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(Non-builtin)31 b(commands)g(started)g(b)m(y)g(Bash)h(ha)m(v)m(e)g -(signal)g(handlers)e(set)i(to)g(the)g(v)-5 b(alues)31 -b(inherited)150 408 y(b)m(y)37 b(the)h(shell)g(from)f(its)h(paren)m(t.) -62 b(When)38 b(job)f(con)m(trol)i(is)e(not)h(in)f(e\013ect,)k(async)m -(hronous)c(commands)150 518 y(ignore)f 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 628 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 737 y Ft(SIGTTOU)p -Fu(,)h(and)g Ft(SIGTSTP)p Fu(.)275 872 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 -982 y(resends)41 b(the)i Ft(SIGHUP)e Fu(to)i(all)g(jobs,)i(running)c -(or)h(stopp)s(ed.)76 b(Stopp)s(ed)41 b(jobs)h(are)h(sen)m(t)g -Ft(SIGCONT)d Fu(to)150 1092 y(ensure)32 b(that)h(they)g(receiv)m(e)i +Ft(SIGTSTP)p Fu(.)275 4429 y(Non-builtin)h(commands)g(started)g(b)m(y)g +(Bash)h(ha)m(v)m(e)g(signal)g(handlers)e(set)i(to)g(the)g(v)-5 +b(alues)31 b(inherited)150 4538 y(b)m(y)37 b(the)h(shell)g(from)f(its)h +(paren)m(t.)62 b(When)38 b(job)f(con)m(trol)i(is)e(not)h(in)f +(e\013ect,)k(async)m(hronous)c(commands)150 4648 y(ignore)f +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 +4758 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 4867 y Ft(SIGTTOU)p Fu(,)h(and)g +Ft(SIGTSTP)p Fu(.)275 5011 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 5121 +y(resends)41 b(the)i Ft(SIGHUP)e Fu(to)i(all)g(jobs,)i(running)c(or)h +(stopp)s(ed.)76 b(Stopp)s(ed)41 b(jobs)h(are)h(sen)m(t)g +Ft(SIGCONT)d Fu(to)150 5230 y(ensure)32 b(that)h(they)g(receiv)m(e)i (the)e Ft(SIGHUP)p Fu(.)47 b(T)-8 b(o)33 b(prev)m(en)m(t)g(the)g(shell) -g(from)g(sending)f(the)h Ft(SIGHUP)e Fu(signal)150 1201 +g(from)g(sending)f(the)h Ft(SIGHUP)e Fu(signal)150 5340 y(to)i(a)g(particular)g(job,)g(it)g(should)f(b)s(e)g(remo)m(v)m(ed)h (from)g(the)f(jobs)g(table)i(with)e(the)h Ft(disown)e -Fu(builtin)h(\(see)150 1311 y(Section)c(7.2)g([Job)e(Con)m(trol)i -(Builtins],)g(page)g(106\))h(or)e(mark)m(ed)g(to)g(not)g(receiv)m(e)i -Ft(SIGHUP)c Fu(using)i Ft(disown)150 1420 y(-h)p Fu(.)275 -1556 y(If)38 b(the)h Ft(huponexit)e Fu(shell)i(option)g(has)g(b)s(een)f -(set)i(with)f Ft(shopt)e Fu(\(see)j(Section)g(4.3.2)h([The)e(Shopt)150 -1665 y(Builtin],)31 b(page)g(66\),)h(Bash)f(sends)e(a)i +Fu(builtin)h(\(see)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)150 299 +y(Section)28 b(7.2)g([Job)e(Con)m(trol)i(Builtins],)g(page)g(106\))h +(or)e(mark)m(ed)g(to)g(not)g(receiv)m(e)i Ft(SIGHUP)c +Fu(using)i Ft(disown)150 408 y(-h)p Fu(.)275 553 y(If)38 +b(the)h Ft(huponexit)e Fu(shell)i(option)g(has)g(b)s(een)f(set)i(with)f +Ft(shopt)e Fu(\(see)j(Section)g(4.3.2)h([The)e(Shopt)150 +663 y(Builtin],)31 b(page)g(66\),)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 1800 y(If)38 b(Bash)h(is)g(w)m(aiting)h(for)f(a)g +e(shell)g(exits.)275 808 y(If)38 b(Bash)h(is)g(w)m(aiting)h(for)f(a)g (command)f(to)i(complete)g(and)e(receiv)m(es)j(a)e(signal)h(for)e(whic) -m(h)h(a)g(trap)150 1910 y(has)c(b)s(een)f(set,)i(the)f(trap)g(will)g +m(h)h(a)g(trap)150 917 y(has)c(b)s(een)f(set,)i(the)f(trap)g(will)g (not)g(b)s(e)f(executed)i(un)m(til)f(the)g(command)f(completes.)55 -b(When)35 b(Bash)g(is)150 2020 y(w)m(aiting)j(for)f(an)g(async)m +b(When)35 b(Bash)g(is)150 1027 y(w)m(aiting)j(for)f(an)g(async)m (hronous)g(command)g(via)h(the)f Ft(wait)f Fu(builtin,)i(the)g -(reception)g(of)f(a)g(signal)h(for)150 2129 y(whic)m(h)d(a)g(trap)g +(reception)g(of)f(a)g(signal)h(for)150 1136 y(whic)m(h)d(a)g(trap)g (has)g(b)s(een)f(set)h(will)h(cause)f(the)g Ft(wait)f Fu(builtin)h(to)g(return)f(immediately)i(with)f(an)g(exit)150 -2239 y(status)c(greater)g(than)f(128,)i(immediately)g(after)f(whic)m(h) -f(the)h(trap)f(is)g(executed.)150 2481 y Fs(3.8)68 b(Shell)45 -b(Scripts)150 2640 y Fu(A)30 b(shell)f(script)h(is)f(a)h(text)h(\014le) +1246 y(status)c(greater)g(than)f(128,)i(immediately)g(after)f(whic)m(h) +f(the)h(trap)f(is)g(executed.)150 1502 y Fs(3.8)68 b(Shell)45 +b(Scripts)150 1661 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 2750 y(non-option)c +(\014le)g(is)f(used)g(as)h(the)g(\014rst)150 1771 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 -2859 y(Section)39 b(6.1)g([In)m(v)m(oking)g(Bash],)h(page)f(86\),)i +1881 y(Section)39 b(6.1)g([In)m(v)m(oking)g(Bash],)h(page)f(86\),)i (Bash)d(reads)g(and)f(executes)i(commands)f(from)f(the)i(\014le,)150 -2969 y(then)32 b(exits.)46 b(This)32 b(mo)s(de)f(of)i(op)s(eration)f +1990 y(then)32 b(exits.)46 b(This)32 b(mo)s(de)f(of)i(op)s(eration)f (creates)i(a)e(non-in)m(teractiv)m(e)j(shell.)46 b(The)31 -b(shell)i(\014rst)e(searc)m(hes)150 3078 y(for)d(the)g(\014le)g(in)g +b(shell)i(\014rst)e(searc)m(hes)150 2100 y(for)d(the)g(\014le)g(in)g (the)g(curren)m(t)f(directory)-8 b(,)30 b(and)d(lo)s(oks)i(in)e(the)i (directories)g(in)e Ft($PATH)g Fu(if)h(not)g(found)e(there.)275 -3214 y(When)34 b(Bash)h(runs)e(a)i(shell)g(script,)g(it)h(sets)f(the)f +2245 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 3323 y(rather)k(than)g(the)h(name)f(of)h(the)f(shell,)j +(\014le,)150 2354 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 3433 y(ing)f(argumen)m(ts,)j(if)d(an)m(y)g(are)g(giv)m +(remain-)150 2464 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 3542 y(parameters)31 b(are)f(unset.)275 -3678 y(A)39 b(shell)h(script)f(ma)m(y)h(b)s(e)f(made)h(executable)h(b)m +(the)f(p)s(ositional)150 2573 y(parameters)31 b(are)f(unset.)275 +2718 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 -3787 y(execute)j(bit.)73 b(When)41 b(Bash)g(\014nds)e(suc)m(h)i(a)h +2828 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 3897 y(spa)m(wns)30 b(a)g(subshell)g(to)h(execute)h -(it.)41 b(In)30 b(other)g(w)m(ords,)g(executing)390 4032 -y Ft(filename)46 b Fj(arguments)150 4167 y Fu(is)30 b(equiv)-5 -b(alen)m(t)32 b(to)f(executing)390 4302 y Ft(bash)47 -b(filename)e Fj(arguments)150 4438 y Fu(if)30 b Ft(filename)d +(command,)h(it)150 2937 y(spa)m(wns)30 b(a)g(subshell)g(to)h(execute)h +(it.)41 b(In)30 b(other)g(w)m(ords,)g(executing)390 3082 +y Ft(filename)46 b Fj(arguments)150 3227 y Fu(is)30 b(equiv)-5 +b(alen)m(t)32 b(to)f(executing)390 3371 y Ft(bash)47 +b(filename)e Fj(arguments)150 3516 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 -4547 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) +3626 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 4657 y(lo)s(cations)25 b(of)g(commands)e(remem)m(b)s +(that)f(the)150 3735 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 4766 y([Bourne)30 +Ft(hash)f Fu(in)h(Section)h(4.1)150 3845 y([Bourne)30 b(Shell)h(Builtins],)g(page)g(44\))h(are)e(retained)h(b)m(y)f(the)h(c)m -(hild.)275 4902 y(Most)36 b(v)m(ersions)g(of)g(Unix)f(mak)m(e)h(this)g +(hild.)275 3990 y(Most)36 b(v)m(ersions)g(of)g(Unix)f(mak)m(e)h(this)g (a)g(part)f(of)h(the)g(op)s(erating)g(system's)f(command)h(execution) -150 5011 y(mec)m(hanism.)50 b(If)33 b(the)g(\014rst)g(line)h(of)f(a)h +150 4099 y(mec)m(hanism.)50 b(If)33 b(the)g(\014rst)g(line)h(of)f(a)h (script)f(b)s(egins)g(with)g(the)g(t)m(w)m(o)i(c)m(haracters)g(`)p -Ft(#!)p Fu(',)f(the)g(remainder)150 5121 y(of)27 b(the)g(line)g(sp)s +Ft(#!)p Fu(',)f(the)g(remainder)150 4209 y(of)27 b(the)g(line)g(sp)s (eci\014es)g(an)g(in)m(terpreter)g(for)g(the)g(program)g(and,)g(dep)s -(ending)e(on)i(the)g(op)s(erating)h(system,)150 5230 +(ending)e(on)i(the)g(op)s(erating)h(system,)150 4319 y(one)e(or)g(more)g(optional)h(argumen)m(ts)f(for)g(that)g(in)m (terpreter.)40 b(Th)m(us,)26 b(y)m(ou)g(can)g(sp)s(ecify)g(Bash,)h -Ft(awk)p Fu(,)f(P)m(erl,)150 5340 y(or)k(some)h(other)g(in)m(terpreter) +Ft(awk)p Fu(,)f(P)m(erl,)150 4428 y(or)k(some)h(other)g(in)m(terpreter) g(and)e(write)i(the)f(rest)h(of)g(the)f(script)g(\014le)h(in)f(that)h -(language.)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(The)35 b(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 -408 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 518 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 628 y(in)m(terpreter)26 +(language.)275 4573 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 4682 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 4792 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 4902 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 -737 y(Bash)j(will)f(p)s(erform)g(this)g(action)i(on)e(op)s(erating)h +5011 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 847 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 956 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 1066 y(will)31 b(w)m(ork.)275 1200 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 1310 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 1420 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 -1529 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 +b(Note)150 5121 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 5230 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 5340 y(will)31 b(w)m(ork.)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(Bash)32 b(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 +408 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 518 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 628 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 %%Page: 44 50 TeXDict begin 44 49 bop 3659 -116 a Fu(44)150 299 y Fp(4)80 @@ -13389,903 +13379,918 @@ b(Shell)30 b(Builtin)h(Commands)2069 b(73)390 299 y Ft(shift)46 b(trap)h(unset)p eop end %%Page: 74 80 TeXDict begin 74 79 bop 3659 -116 a Fu(74)150 299 y Fp(5)80 -b(Shell)53 b(V)-13 b(ariables)150 522 y Fu(This)21 b(c)m(hapter)i +b(Shell)53 b(V)-13 b(ariables)150 504 y Fu(This)21 b(c)m(hapter)i (describ)s(es)e(the)i(shell)f(v)-5 b(ariables)23 b(that)f(Bash)h(uses.) 37 b(Bash)23 b(automatically)h(assigns)f(default)150 -631 y(v)-5 b(alues)31 b(to)g(a)g(n)m(um)m(b)s(er)e(of)h(v)-5 -b(ariables.)150 867 y Fs(5.1)68 b(Bourne)45 b(Shell)g(V)-11 -b(ariables)150 1027 y Fu(Bash)30 b(uses)g(certain)h(shell)g(v)-5 +614 y(v)-5 b(alues)31 b(to)g(a)g(n)m(um)m(b)s(er)e(of)h(v)-5 +b(ariables.)150 843 y Fs(5.1)68 b(Bourne)45 b(Shell)g(V)-11 +b(ariables)150 1003 y Fu(Bash)30 b(uses)g(certain)h(shell)g(v)-5 b(ariables)31 b(in)f(the)g(same)h(w)m(a)m(y)g(as)g(the)f(Bourne)g -(shell.)41 b(In)30 b(some)g(cases,)i(Bash)150 1136 y(assigns)f(a)f +(shell.)41 b(In)30 b(some)g(cases,)i(Bash)150 1112 y(assigns)f(a)f (default)h(v)-5 b(alue)31 b(to)g(the)f(v)-5 b(ariable.)150 -1291 y Ft(CDPATH)192 b Fu(A)39 b(colon-separated)i(list)e(of)g +1260 y Ft(CDPATH)192 b Fu(A)39 b(colon-separated)i(list)e(of)g (directories)h(used)f(as)g(a)g(searc)m(h)h(path)e(for)h(the)g -Ft(cd)f Fu(builtin)630 1401 y(command.)150 1556 y Ft(HOME)288 +Ft(cd)f Fu(builtin)630 1370 y(command.)150 1518 y Ft(HOME)288 b Fu(The)23 b(curren)m(t)h(user's)f(home)g(directory;)k(the)d(default)g (for)f(the)h Ft(cd)f Fu(builtin)g(command.)38 b(The)630 -1665 y(v)-5 b(alue)37 b(of)f(this)g(v)-5 b(ariable)37 +1628 y(v)-5 b(alue)37 b(of)f(this)g(v)-5 b(ariable)37 b(is)g(also)g(used)e(b)m(y)h(tilde)h(expansion)f(\(see)i(Section)f -(3.5.2)h([Tilde)630 1775 y(Expansion],)30 b(page)h(24\).)150 -1930 y Ft(IFS)336 b Fu(A)25 b(list)i(of)e(c)m(haracters)i(that)f +(3.5.2)h([Tilde)630 1737 y(Expansion],)30 b(page)h(24\).)150 +1885 y Ft(IFS)336 b Fu(A)25 b(list)i(of)e(c)m(haracters)i(that)f (separate)g(\014elds;)h(used)e(when)f(the)i(shell)f(splits)h(w)m(ords)e -(as)i(part)630 2039 y(of)31 b(expansion.)150 2194 y Ft(MAIL)288 +(as)i(part)630 1995 y(of)31 b(expansion.)150 2143 y Ft(MAIL)288 b Fu(If)44 b(this)g(parameter)h(is)g(set)g(to)g(a)f(\014lename)h(or)f -(directory)h(name)g(and)f(the)g Ft(MAILPATH)630 2304 +(directory)h(name)g(and)f(the)g Ft(MAILPATH)630 2252 y Fu(v)-5 b(ariable)32 b(is)e(not)h(set,)h(Bash)f(informs)f(the)h(user) f(of)h(the)g(arriv)-5 b(al)31 b(of)g(mail)g(in)g(the)g(sp)s(eci\014ed) -630 2413 y(\014le)f(or)h(Maildir-format)g(directory)-8 -b(.)150 2568 y Ft(MAILPATH)96 b Fu(A)33 b(colon-separated)i(list)f(of)f +630 2362 y(\014le)f(or)h(Maildir-format)g(directory)-8 +b(.)150 2510 y Ft(MAILPATH)96 b Fu(A)33 b(colon-separated)i(list)f(of)f (\014lenames)h(whic)m(h)f(the)g(shell)g(p)s(erio)s(dically)h(c)m(hec)m -(ks)g(for)f(new)630 2678 y(mail.)60 b(Eac)m(h)37 b(list)g(en)m(try)g +(ks)g(for)f(new)630 2619 y(mail.)60 b(Eac)m(h)37 b(list)g(en)m(try)g (can)g(sp)s(ecify)f(the)h(message)h(that)f(is)g(prin)m(ted)f(when)f -(new)h(mail)630 2787 y(arriv)m(es)31 b(in)g(the)g(mail)g(\014le)g(b)m +(new)h(mail)630 2729 y(arriv)m(es)31 b(in)g(the)g(mail)g(\014le)g(b)m (y)g(separating)h(the)f(\014lename)g(from)f(the)h(message)h(with)e(a)i -(`)p Ft(?)p Fu('.)630 2897 y(When)g(used)f(in)h(the)g(text)i(of)e(the)g +(`)p Ft(?)p Fu('.)630 2839 y(When)g(used)f(in)h(the)g(text)i(of)e(the)g (message,)i Ft($_)e Fu(expands)f(to)i(the)f(name)g(of)h(the)f(curren)m -(t)630 3006 y(mail)f(\014le.)150 3161 y Ft(OPTARG)192 +(t)630 2948 y(mail)f(\014le.)150 3096 y Ft(OPTARG)192 b Fu(The)30 b(v)-5 b(alue)31 b(of)f(the)h(last)g(option)g(argumen)m(t)g (pro)s(cessed)f(b)m(y)g(the)g Ft(getopts)f Fu(builtin.)150 -3316 y Ft(OPTIND)192 b Fu(The)30 b(index)g(of)g(the)h(last)g(option)g +3244 y Ft(OPTIND)192 b Fu(The)30 b(index)g(of)g(the)h(last)g(option)g (argumen)m(t)g(pro)s(cessed)f(b)m(y)g(the)g Ft(getopts)f -Fu(builtin.)150 3471 y Ft(PATH)288 b Fu(A)32 b(colon-separated)i(list)f +Fu(builtin.)150 3392 y Ft(PATH)288 b Fu(A)32 b(colon-separated)i(list)f (of)f(directories)h(in)e(whic)m(h)h(the)g(shell)g(lo)s(oks)h(for)f -(commands.)45 b(A)630 3581 y(zero-length)e(\(n)m(ull\))g(directory)f +(commands.)45 b(A)630 3502 y(zero-length)e(\(n)m(ull\))g(directory)f (name)g(in)g(the)g(v)-5 b(alue)42 b(of)g Ft(PATH)f Fu(indicates)i(the)f -(curren)m(t)630 3690 y(directory)-8 b(.)49 b(A)33 b(n)m(ull)f +(curren)m(t)630 3611 y(directory)-8 b(.)49 b(A)33 b(n)m(ull)f (directory)i(name)e(ma)m(y)i(app)s(ear)e(as)h(t)m(w)m(o)h(adjacen)m(t)g -(colons,)g(or)f(as)g(an)630 3800 y(initial)f(or)e(trailing)h(colon.)150 -3955 y Ft(PS1)336 b Fu(The)35 b(primary)f(prompt)h(string.)55 +(colons,)g(or)f(as)g(an)630 3721 y(initial)f(or)e(trailing)h(colon.)150 +3869 y Ft(PS1)336 b Fu(The)35 b(primary)f(prompt)h(string.)55 b(The)35 b(default)h(v)-5 b(alue)35 b(is)h(`)p Ft(\\s-\\v\\$)28 -b Fu('.)56 b(See)36 b(Section)g(6.9)630 4064 y([Con)m(trolling)42 +b Fu('.)56 b(See)36 b(Section)g(6.9)630 3979 y([Con)m(trolling)42 b(the)e(Prompt],)j(page)e(98,)j(for)c(the)g(complete)i(list)f(of)f -(escap)s(e)h(sequences)630 4174 y(that)31 b(are)g(expanded)e(b)s(efore) -h Ft(PS1)g Fu(is)g(displa)m(y)m(ed.)150 4329 y Ft(PS2)336 +(escap)s(e)h(sequences)630 4088 y(that)31 b(are)g(expanded)e(b)s(efore) +h Ft(PS1)g Fu(is)g(displa)m(y)m(ed.)150 4236 y Ft(PS2)336 b Fu(The)28 b(secondary)g(prompt)g(string.)40 b(The)28 b(default)g(v)-5 b(alue)29 b(is)g(`)p Ft(>)h Fu('.)40 -b Ft(PS2)28 b Fu(is)g(expanded)g(in)g(the)630 4438 y(same)j(w)m(a)m(y)g +b Ft(PS2)28 b Fu(is)g(expanded)g(in)g(the)630 4346 y(same)j(w)m(a)m(y)g (as)g Ft(PS1)e Fu(b)s(efore)h(b)s(eing)g(displa)m(y)m(ed.)150 -4674 y Fs(5.2)68 b(Bash)45 b(V)-11 b(ariables)150 4834 +4575 y Fs(5.2)68 b(Bash)45 b(V)-11 b(ariables)150 4734 y Fu(These)45 b(v)-5 b(ariables)46 b(are)g(set)g(or)f(used)f(b)m(y)h (Bash,)50 b(but)44 b(other)i(shells)f(do)h(not)f(normally)h(treat)g -(them)150 4943 y(sp)s(ecially)-8 b(.)275 5076 y(A)24 +(them)150 4844 y(sp)s(ecially)-8 b(.)275 4973 y(A)24 b(few)g(v)-5 b(ariables)24 b(used)g(b)m(y)f(Bash)i(are)f(describ)s(ed)f (in)h(di\013eren)m(t)g(c)m(hapters:)38 b(v)-5 b(ariables)25 -b(for)f(con)m(trolling)150 5185 y(the)31 b(job)f(con)m(trol)h +b(for)f(con)m(trolling)150 5082 y(the)31 b(job)f(con)m(trol)h (facilities)i(\(see)e(Section)g(7.3)h([Job)e(Con)m(trol)h(V)-8 -b(ariables],)32 b(page)g(108\).)150 5340 y Ft(BASH)288 -b Fu(The)30 b(full)g(pathname)g(used)g(to)h(execute)h(the)e(curren)m(t) -g(instance)h(of)g(Bash.)p eop end +b(ariables],)32 b(page)g(108\).)150 5230 y Ft(_)432 b +Fu(\($)p 716 5230 28 4 v 41 w(,)41 b(an)e(underscore.\))67 +b(A)m(t)40 b(shell)f(startup,)i(set)f(to)g(the)f(absolute)h(pathname)f +(used)f(to)630 5340 y(in)m(v)m(ok)m(e)43 b(the)e(shell)g(or)g(shell)g +(script)g(b)s(eing)f(executed)i(as)f(passed)g(in)f(the)h(en)m(vironmen) +m(t)p eop end %%Page: 75 81 TeXDict begin 75 80 bop 150 -116 a Fu(Chapter)30 b(5:)41 -b(Shell)30 b(V)-8 b(ariables)2459 b(75)150 299 y Ft(BASHOPTS)96 -b Fu(A)31 b(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 408 y(argumen)m(t)37 b(for)g(the)g Ft(-s)f -Fu(option)i(to)f(the)g Ft(shopt)f Fu(builtin)g(command)h(\(see)g -(Section)h(4.3.2)630 518 y([The)e(Shopt)g(Builtin],)i(page)f(66\).)60 -b(The)36 b(options)h(app)s(earing)f(in)g Ft(BASHOPTS)e -Fu(are)i(those)630 628 y(rep)s(orted)e(as)h(`)p Ft(on)p -Fu(')f(b)m(y)h(`)p Ft(shopt)p Fu('.)53 b(If)34 b(this)g(v)-5 -b(ariable)36 b(is)f(in)f(the)h(en)m(vironmen)m(t)g(when)f(Bash)630 -737 y(starts)25 b(up,)f(eac)m(h)i(shell)e(option)h(in)e(the)i(list)g +b(Shell)30 b(V)-8 b(ariables)2459 b(75)630 299 y(or)34 +b(argumen)m(t)g(list.)52 b(Subsequen)m(tly)-8 b(,)34 +b(expands)f(to)i(the)f(last)h(argumen)m(t)f(to)g(the)g(previous)630 +408 y(simple)g(command)f(executed)i(in)e(the)h(foreground,)g(after)g +(expansion.)51 b(Also)34 b(set)g(to)h(the)630 518 y(full)d(pathname)h +(used)f(to)i(in)m(v)m(ok)m(e)g(eac)m(h)g(command)f(executed)g(and)f +(placed)i(in)e(the)h(en)m(vi-)630 628 y(ronmen)m(t)24 +b(exp)s(orted)g(to)h(that)g(command.)38 b(When)24 b(c)m(hec)m(king)i +(mail,)h(this)d(parameter)g(holds)630 737 y(the)31 b(name)f(of)h(the)f +(mail)h(\014le.)150 920 y Ft(BASH)288 b Fu(The)30 b(full)g(pathname)g +(used)g(to)h(execute)h(the)e(curren)m(t)g(instance)h(of)g(Bash.)150 +1103 y Ft(BASHOPTS)96 b Fu(A)31 b(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 1212 y(argumen)m(t)37 +b(for)g(the)g Ft(-s)f Fu(option)i(to)f(the)g Ft(shopt)f +Fu(builtin)g(command)h(\(see)g(Section)h(4.3.2)630 1322 +y([The)e(Shopt)g(Builtin],)i(page)f(66\).)60 b(The)36 +b(options)h(app)s(earing)f(in)g Ft(BASHOPTS)e Fu(are)i(those)630 +1431 y(rep)s(orted)e(as)h(`)p Ft(on)p Fu(')f(b)m(y)h(`)p +Ft(shopt)p Fu('.)53 b(If)34 b(this)g(v)-5 b(ariable)36 +b(is)f(in)f(the)h(en)m(vironmen)m(t)g(when)f(Bash)630 +1541 y(starts)25 b(up,)f(eac)m(h)i(shell)e(option)h(in)e(the)i(list)g (will)f(b)s(e)g(enabled)g(b)s(efore)g(reading)g(an)m(y)g(startup)630 -847 y(\014les.)41 b(This)29 b(v)-5 b(ariable)31 b(is)g(readonly)-8 -b(.)150 1044 y Ft(BASHPID)144 b Fu(Expands)35 b(to)i(the)f(pro)s(cess)f +1650 y(\014les.)41 b(This)29 b(v)-5 b(ariable)31 b(is)g(readonly)-8 +b(.)150 1833 y Ft(BASHPID)144 b Fu(Expands)35 b(to)i(the)f(pro)s(cess)f (ID)i(of)f(the)g(curren)m(t)g(Bash)g(pro)s(cess.)58 b(This)35 -b(di\013ers)h(from)g Ft($$)630 1154 y Fu(under)31 b(certain)j +b(di\013ers)h(from)g Ft($$)630 1943 y Fu(under)31 b(certain)j (circumstances,)h(suc)m(h)e(as)g(subshells)f(that)i(do)f(not)g(require) -g(Bash)g(to)h(b)s(e)630 1263 y(re-initialized.)57 b(Assignmen)m(ts)35 +g(Bash)g(to)h(b)s(e)630 2052 y(re-initialized.)57 b(Assignmen)m(ts)35 b(to)h Ft(BASHPID)d Fu(ha)m(v)m(e)j(no)f(e\013ect.)56 -b(If)34 b Ft(BASHPID)f Fu(is)i(unset,)h(it)630 1373 y(loses)31 +b(If)34 b Ft(BASHPID)f Fu(is)i(unset,)h(it)630 2162 y(loses)31 b(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 1570 y Ft(BASH_ALIASES)630 -1680 y Fu(An)40 b(asso)s(ciativ)m(e)j(arra)m(y)d(v)-5 +(subsequen)m(tly)f(reset.)150 2345 y Ft(BASH_ALIASES)630 +2454 y Fu(An)40 b(asso)s(ciativ)m(e)j(arra)m(y)d(v)-5 b(ariable)41 b(whose)f(mem)m(b)s(ers)f(corresp)s(ond)g(to)i(the)f(in)m -(ternal)h(list)630 1789 y(of)c(aliases)h(as)f(main)m(tained)g(b)m(y)g +(ternal)h(list)630 2564 y(of)c(aliases)h(as)f(main)m(tained)g(b)m(y)g (the)g Ft(alias)e Fu(builtin.)59 b(\(see)37 b(Section)h(4.1)f([Bourne)g -(Shell)630 1899 y(Builtins],)31 b(page)g(44\).)42 b(Elemen)m(ts)31 +(Shell)630 2673 y(Builtins],)31 b(page)g(44\).)42 b(Elemen)m(ts)31 b(added)e(to)i(this)f(arra)m(y)h(app)s(ear)f(in)g(the)g(alias)h(list;)h -(ho)m(w-)630 2008 y(ev)m(er,)k(unsetting)f(arra)m(y)g(elemen)m(ts)g +(ho)m(w-)630 2783 y(ev)m(er,)k(unsetting)f(arra)m(y)g(elemen)m(ts)g (curren)m(tly)g(do)s(es)f(not)g(cause)h(aliases)h(to)f(b)s(e)f(remo)m -(v)m(ed)630 2118 y(from)25 b(the)h(alias)h(list.)40 b(If)25 +(v)m(ed)630 2892 y(from)25 b(the)h(alias)h(list.)40 b(If)25 b Ft(BASH_ALIASES)d Fu(is)k(unset,)g(it)g(loses)h(its)f(sp)s(ecial)g -(prop)s(erties,)g(ev)m(en)630 2228 y(if)k(it)h(is)g(subsequen)m(tly)f -(reset.)150 2425 y Ft(BASH_ARGC)630 2534 y Fu(An)39 b(arra)m(y)g(v)-5 +(prop)s(erties,)g(ev)m(en)630 3002 y(if)k(it)h(is)g(subsequen)m(tly)f +(reset.)150 3185 y Ft(BASH_ARGC)630 3294 y Fu(An)39 b(arra)m(y)g(v)-5 b(ariable)40 b(whose)f(v)-5 b(alues)39 b(are)h(the)f(n)m(um)m(b)s(er)f -(of)h(parameters)g(in)g(eac)m(h)h(frame)630 2644 y(of)i(the)g(curren)m +(of)h(parameters)g(in)g(eac)m(h)h(frame)630 3404 y(of)i(the)g(curren)m (t)g(bash)f(execution)i(call)g(stac)m(k.)76 b(The)42 -b(n)m(um)m(b)s(er)e(of)i(parameters)g(to)h(the)630 2754 +b(n)m(um)m(b)s(er)e(of)i(parameters)g(to)h(the)630 3513 y(curren)m(t)38 b(subroutine)f(\(shell)i(function)e(or)i(script)f (executed)h(with)e Ft(.)h Fu(or)g Ft(source)p Fu(\))f(is)h(at)630 -2863 y(the)27 b(top)g(of)g(the)g(stac)m(k.)41 b(When)27 +3623 y(the)27 b(top)g(of)g(the)g(stac)m(k.)41 b(When)27 b(a)g(subroutine)f(is)h(executed,)i(the)e(n)m(um)m(b)s(er)f(of)h -(parameters)630 2973 y(passed)44 b(is)h(pushed)e(on)m(to)j +(parameters)630 3733 y(passed)44 b(is)h(pushed)e(on)m(to)j Ft(BASH_ARGC)p Fu(.)81 b(The)44 b(shell)h(sets)g Ft(BASH_ARGC)e -Fu(only)i(when)e(in)630 3082 y(extended)34 b(debugging)f(mo)s(de)g +Fu(only)i(when)e(in)630 3842 y(extended)34 b(debugging)f(mo)s(de)g (\(see)i(Section)f(4.3.2)i([The)d(Shopt)g(Builtin],)i(page)g(66,)g(for) -630 3192 y(a)e(description)g(of)f(the)h Ft(extdebug)d +630 3952 y(a)e(description)g(of)f(the)h Ft(extdebug)d Fu(option)j(to)h(the)e Ft(shopt)g Fu(builtin\).)47 b(Setting)33 -b Ft(extdebug)630 3302 y Fu(after)c(the)g(shell)g(has)g(started)g(to)g +b Ft(extdebug)630 4061 y Fu(after)c(the)g(shell)g(has)g(started)g(to)g (execute)i(a)e(script,)g(or)g(referencing)g(this)f(v)-5 -b(ariable)30 b(when)630 3411 y Ft(extdebug)e Fu(is)j(not)f(set,)h(ma)m +b(ariable)30 b(when)630 4171 y Ft(extdebug)e Fu(is)j(not)f(set,)h(ma)m (y)g(result)g(in)f(inconsisten)m(t)h(v)-5 b(alues.)150 -3608 y Ft(BASH_ARGV)630 3718 y Fu(An)24 b(arra)m(y)g(v)-5 +4354 y Ft(BASH_ARGV)630 4463 y Fu(An)24 b(arra)m(y)g(v)-5 b(ariable)25 b(con)m(taining)h(all)f(of)f(the)h(parameters)f(in)g(the)g -(curren)m(t)g(bash)g(execution)630 3828 y(call)35 b(stac)m(k.)53 +(curren)m(t)g(bash)g(execution)630 4573 y(call)35 b(stac)m(k.)53 b(The)34 b(\014nal)g(parameter)g(of)g(the)g(last)h(subroutine)e(call)i -(is)f(at)h(the)f(top)h(of)f(the)630 3937 y(stac)m(k;)28 +(is)f(at)h(the)f(top)h(of)f(the)630 4682 y(stac)m(k;)28 b(the)c(\014rst)f(parameter)i(of)f(the)g(initial)i(call)f(is)f(at)h -(the)f(b)s(ottom.)39 b(When)24 b(a)g(subroutine)630 4047 +(the)f(b)s(ottom.)39 b(When)24 b(a)g(subroutine)630 4792 y(is)40 b(executed,)j(the)d(parameters)h(supplied)d(are)i(pushed)f(on)m -(to)i Ft(BASH_ARGV)p Fu(.)66 b(The)40 b(shell)630 4156 +(to)i Ft(BASH_ARGV)p Fu(.)66 b(The)40 b(shell)630 4902 y(sets)28 b Ft(BASH_ARGV)e Fu(only)i(when)f(in)h(extended)g(debugging)g -(mo)s(de)g(\(see)h(Section)f(4.3.2)i([The)630 4266 y(Shopt)g(Builtin],) +(mo)s(de)g(\(see)h(Section)f(4.3.2)i([The)630 5011 y(Shopt)g(Builtin],) h(page)g(66,)g(for)g(a)f(description)h(of)f(the)h Ft(extdebug)d -Fu(option)j(to)g(the)f Ft(shopt)630 4376 y Fu(builtin\).)64 +Fu(option)j(to)g(the)f Ft(shopt)630 5121 y Fu(builtin\).)64 b(Setting)38 b Ft(extdebug)e Fu(after)j(the)f(shell)g(has)g(started)g -(to)h(execute)g(a)g(script,)h(or)630 4485 y(referencing)35 +(to)h(execute)g(a)g(script,)h(or)630 5230 y(referencing)35 b(this)f(v)-5 b(ariable)35 b(when)e Ft(extdebug)f Fu(is)j(not)f(set,)j -(ma)m(y)e(result)f(in)g(inconsisten)m(t)630 4595 y(v)-5 -b(alues.)150 4792 y Ft(BASH_ARGV0)630 4902 y Fu(When)31 -b(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 5011 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(21,)j(for)c(the)h(de-)630 5121 -y(scription)32 b(of)g(sp)s(ecial)g(parameter)g(0\).)45 -b(Assignmen)m(t)32 b(to)h Ft(BASH_ARGV0)c Fu(causes)j(the)f(v)-5 -b(alue)630 5230 y(assigned)34 b(to)h(also)g(b)s(e)e(assigned)h(to)g -Ft($0)p Fu(.)51 b(If)33 b Ft(BASH_ARGV0)f Fu(is)h(unset,)i(it)f(loses)h -(its)f(sp)s(ecial)630 5340 y(prop)s(erties,)c(ev)m(en)h(if)f(it)h(is)g -(subsequen)m(tly)f(reset.)p eop end +(ma)m(y)e(result)f(in)g(inconsisten)m(t)630 5340 y(v)-5 +b(alues.)p eop end %%Page: 76 82 TeXDict begin 76 81 bop 150 -116 a Fu(Chapter)30 b(5:)41 -b(Shell)30 b(V)-8 b(ariables)2459 b(76)150 299 y Ft(BASH_CMDS)630 -408 y Fu(An)34 b(asso)s(ciativ)m(e)i(arra)m(y)f(v)-5 -b(ariable)35 b(whose)f(mem)m(b)s(ers)f(corresp)s(ond)g(to)i(the)f(in)m -(ternal)h(hash)630 518 y(table)c(of)g(commands)f(as)g(main)m(tained)h -(b)m(y)g(the)f Ft(hash)f Fu(builtin)h(\(see)h(Section)g(4.1)h([Bourne) -630 628 y(Shell)42 b(Builtins],)k(page)d(44\).)77 b(Elemen)m(ts)43 +b(Shell)30 b(V)-8 b(ariables)2459 b(76)150 299 y Ft(BASH_ARGV0)630 +408 y Fu(When)31 b(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 518 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(21,)j(for)c(the)h(de-) +630 628 y(scription)32 b(of)g(sp)s(ecial)g(parameter)g(0\).)45 +b(Assignmen)m(t)32 b(to)h Ft(BASH_ARGV0)c Fu(causes)j(the)f(v)-5 +b(alue)630 737 y(assigned)34 b(to)h(also)g(b)s(e)e(assigned)h(to)g +Ft($0)p Fu(.)51 b(If)33 b Ft(BASH_ARGV0)f Fu(is)h(unset,)i(it)f(loses)h +(its)f(sp)s(ecial)630 847 y(prop)s(erties,)c(ev)m(en)h(if)f(it)h(is)g +(subsequen)m(tly)f(reset.)150 1003 y Ft(BASH_CMDS)630 +1113 y Fu(An)k(asso)s(ciativ)m(e)i(arra)m(y)f(v)-5 b(ariable)35 +b(whose)f(mem)m(b)s(ers)f(corresp)s(ond)g(to)i(the)f(in)m(ternal)h +(hash)630 1223 y(table)c(of)g(commands)f(as)g(main)m(tained)h(b)m(y)g +(the)f Ft(hash)f Fu(builtin)h(\(see)h(Section)g(4.1)h([Bourne)630 +1332 y(Shell)42 b(Builtins],)k(page)d(44\).)77 b(Elemen)m(ts)43 b(added)e(to)i(this)f(arra)m(y)h(app)s(ear)f(in)f(the)i(hash)630 -737 y(table;)k(ho)m(w)m(ev)m(er,)e(unsetting)c(arra)m(y)g(elemen)m(ts)i -(curren)m(tly)d(do)s(es)h(not)g(cause)g(command)630 847 -y(names)36 b(to)g(b)s(e)f(remo)m(v)m(ed)i(from)e(the)h(hash)f(table.)58 -b(If)36 b Ft(BASH_CMDS)d Fu(is)j(unset,)h(it)f(loses)h(its)630 -956 y(sp)s(ecial)31 b(prop)s(erties,)f(ev)m(en)h(if)f(it)h(is)g -(subsequen)m(tly)f(reset.)150 1113 y Ft(BASH_COMMAND)630 -1223 y Fu(The)39 b(command)h(curren)m(tly)g(b)s(eing)f(executed)i(or)e +1442 y(table;)k(ho)m(w)m(ev)m(er,)e(unsetting)c(arra)m(y)g(elemen)m(ts) +i(curren)m(tly)d(do)s(es)h(not)g(cause)g(command)630 +1551 y(names)36 b(to)g(b)s(e)f(remo)m(v)m(ed)i(from)e(the)h(hash)f +(table.)58 b(If)36 b Ft(BASH_CMDS)d Fu(is)j(unset,)h(it)f(loses)h(its) +630 1661 y(sp)s(ecial)31 b(prop)s(erties,)f(ev)m(en)h(if)f(it)h(is)g +(subsequen)m(tly)f(reset.)150 1817 y Ft(BASH_COMMAND)630 +1927 y Fu(The)39 b(command)h(curren)m(tly)g(b)s(eing)f(executed)i(or)e (ab)s(out)h(to)g(b)s(e)f(executed,)44 b(unless)39 b(the)630 -1332 y(shell)g(is)g(executing)g(a)g(command)g(as)g(the)f(result)h(of)g +2037 y(shell)g(is)g(executing)g(a)g(command)g(as)g(the)f(result)h(of)g (a)g(trap,)i(in)d(whic)m(h)g(case)i(it)f(is)g(the)630 -1442 y(command)30 b(executing)i(at)g(the)f(time)g(of)g(the)g(trap.)41 +2146 y(command)30 b(executing)i(at)g(the)f(time)g(of)g(the)g(trap.)41 b(If)30 b Ft(BASH_COMMAND)e Fu(is)i(unset,)h(it)g(loses)630 -1551 y(its)g(sp)s(ecial)g(prop)s(erties,)f(ev)m(en)h(if)f(it)h(is)f -(subsequen)m(tly)g(reset.)150 1708 y Ft(BASH_COMPAT)630 -1817 y Fu(The)j(v)-5 b(alue)34 b(is)f(used)g(to)h(set)f(the)h(shell's)g +2256 y(its)g(sp)s(ecial)g(prop)s(erties,)f(ev)m(en)h(if)f(it)h(is)f +(subsequen)m(tly)g(reset.)150 2412 y Ft(BASH_COMPAT)630 +2522 y Fu(The)j(v)-5 b(alue)34 b(is)f(used)g(to)h(set)f(the)h(shell's)g (compatibilit)m(y)h(lev)m(el.)51 b(See)34 b(Section)g(4.3.2)h([The)630 -1927 y(Shopt)40 b(Builtin],)45 b(page)c(66,)k(for)c(a)g(description)g +2632 y(Shopt)40 b(Builtin],)45 b(page)c(66,)k(for)c(a)g(description)g (of)g(the)g(v)-5 b(arious)41 b(compatibilit)m(y)i(lev)m(els)630 -2037 y(and)31 b(their)g(e\013ects.)45 b(The)31 b(v)-5 +2741 y(and)31 b(their)g(e\013ects.)45 b(The)31 b(v)-5 b(alue)31 b(ma)m(y)h(b)s(e)f(a)h(decimal)g(n)m(um)m(b)s(er)e(\(e.g.,)j -(4.2\))g(or)e(an)h(in)m(teger)630 2146 y(\(e.g.,)39 b(42\))f(corresp)s +(4.2\))g(or)e(an)h(in)m(teger)630 2851 y(\(e.g.,)39 b(42\))f(corresp)s (onding)d(to)i(the)f(desired)f(compatibilit)m(y)k(lev)m(el.)59 -b(If)36 b Ft(BASH_COMPAT)d Fu(is)630 2256 y(unset)k(or)g(set)h(to)g +b(If)36 b Ft(BASH_COMPAT)d Fu(is)630 2960 y(unset)k(or)g(set)h(to)g (the)g(empt)m(y)f(string,)j(the)d(compatibilit)m(y)j(lev)m(el)f(is)e -(set)h(to)g(the)g(default)630 2365 y(for)i(the)h(curren)m(t)f(v)m +(set)h(to)g(the)g(default)630 3070 y(for)i(the)h(curren)m(t)f(v)m (ersion.)72 b(If)40 b Ft(BASH_COMPAT)e Fu(is)i(set)h(to)h(a)e(v)-5 -b(alue)41 b(that)h(is)e(not)h(one)g(of)630 2475 y(the)f(v)-5 +b(alue)41 b(that)h(is)e(not)h(one)g(of)630 3180 y(the)f(v)-5 b(alid)40 b(compatibilit)m(y)i(lev)m(els,)i(the)c(shell)g(prin)m(ts)f -(an)h(error)f(message)i(and)f(sets)g(the)630 2585 y(compatibilit)m(y)23 +(an)h(error)f(message)i(and)f(sets)g(the)630 3289 y(compatibilit)m(y)23 b(lev)m(el)f(to)f(the)f(default)h(for)f(the)g(curren)m(t)g(v)m(ersion.) -38 b(The)20 b(v)-5 b(alid)21 b(compatibilit)m(y)630 2694 +38 b(The)20 b(v)-5 b(alid)21 b(compatibilit)m(y)630 3399 y(lev)m(els)40 b(corresp)s(ond)e(to)h(the)g(compatibilit)m(y)i(options) e(accepted)h(b)m(y)f(the)g Ft(shopt)e Fu(builtin)630 -2804 y(describ)s(ed)20 b(ab)s(o)m(v)m(e)i(\(for)g(example,)h +3508 y(describ)s(ed)20 b(ab)s(o)m(v)m(e)i(\(for)g(example,)h Fr(compat42)31 b Fu(means)21 b(that)g(4.2)i(and)d(42)i(are)g(v)-5 -b(alid)21 b(v)-5 b(alues\).)630 2913 y(The)30 b(curren)m(t)g(v)m +b(alid)21 b(v)-5 b(alues\).)630 3618 y(The)30 b(curren)m(t)g(v)m (ersion)h(is)f(also)i(a)e(v)-5 b(alid)31 b(v)-5 b(alue.)150 -3070 y Ft(BASH_ENV)96 b Fu(If)28 b(this)g(v)-5 b(ariable)30 +3774 y Ft(BASH_ENV)96 b Fu(If)28 b(this)g(v)-5 b(ariable)30 b(is)e(set)h(when)f(Bash)g(is)h(in)m(v)m(ok)m(ed)h(to)f(execute)h(a)e -(shell)h(script,)g(its)g(v)-5 b(alue)29 b(is)630 3180 +(shell)h(script,)g(its)g(v)-5 b(alue)29 b(is)630 3884 y(expanded)k(and)h(used)g(as)g(the)h(name)f(of)g(a)h(startup)f(\014le)g -(to)h(read)f(b)s(efore)g(executing)i(the)630 3289 y(script.)41 +(to)h(read)f(b)s(efore)g(executing)i(the)630 3994 y(script.)41 b(See)30 b(Section)h(6.2)h([Bash)f(Startup)e(Files],)j(page)f(88.)150 -3446 y Ft(BASH_EXECUTION_STRING)630 3555 y Fu(The)f(command)g(argumen)m +4150 y Ft(BASH_EXECUTION_STRING)630 4260 y Fu(The)f(command)g(argumen)m (t)h(to)g(the)g Ft(-c)e Fu(in)m(v)m(o)s(cation)k(option.)150 -3712 y Ft(BASH_LINENO)630 3821 y Fu(An)62 b(arra)m(y)i(v)-5 +4416 y Ft(BASH_LINENO)630 4526 y Fu(An)62 b(arra)m(y)i(v)-5 b(ariable)63 b(whose)g(mem)m(b)s(ers)e(are)j(the)e(line)h(n)m(um)m(b)s -(ers)f(in)g(source)h(\014les)630 3931 y(where)46 b(eac)m(h)i(corresp)s +(ers)f(in)g(source)h(\014les)630 4635 y(where)46 b(eac)m(h)i(corresp)s (onding)d(mem)m(b)s(er)h(of)h Fr(FUNCNAME)53 b Fu(w)m(as)47 -b(in)m(v)m(ok)m(ed.)91 b Ft(${BASH_)630 4041 y(LINENO[$i]})39 +b(in)m(v)m(ok)m(ed.)91 b Ft(${BASH_)630 4745 y(LINENO[$i]})39 b Fu(is)i(the)h(line)g(n)m(um)m(b)s(er)e(in)i(the)f(source)h(\014le)g -(\()p Ft(${BASH_SOURCE[$i+1]})p Fu(\))630 4150 y(where)d +(\()p Ft(${BASH_SOURCE[$i+1]})p Fu(\))630 4855 y(where)d Ft(${FUNCNAME[$i]})c Fu(w)m(as)k(called)i(\(or)e Ft (${BASH_LINENO[$i-1]})34 b Fu(if)39 b(referenced)630 -4260 y(within)30 b(another)g(shell)h(function\).)41 b(Use)31 +4964 y(within)30 b(another)g(shell)h(function\).)41 b(Use)31 b Ft(LINENO)d Fu(to)j(obtain)g(the)g(curren)m(t)f(line)h(n)m(um)m(b)s -(er.)150 4416 y Ft(BASH_LOADABLES_PATH)630 4526 y Fu(A)39 +(er.)150 5121 y Ft(BASH_LOADABLES_PATH)630 5230 y Fu(A)39 b(colon-separated)i(list)f(of)f(directories)h(in)f(whic)m(h)g(the)g -(shell)h(lo)s(oks)f(for)g(dynamically)630 4635 y(loadable)32 +(shell)h(lo)s(oks)f(for)g(dynamically)630 5340 y(loadable)32 b(builtins)d(sp)s(eci\014ed)h(b)m(y)g(the)h Ft(enable)e -Fu(command.)150 4792 y Ft(BASH_REMATCH)630 4902 y Fu(An)43 -b(arra)m(y)i(v)-5 b(ariable)44 b(whose)g(mem)m(b)s(ers)f(are)h -(assigned)g(b)m(y)f(the)h(`)p Ft(=~)p Fu(')g(binary)f(op)s(erator)630 -5011 y(to)37 b(the)f Ft([[)g Fu(conditional)i(command)e(\(see)h -(Section)g(3.2.4.2)i([Conditional)e(Constructs],)630 -5121 y(page)e(11\).)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 -5230 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 -(the)g(string)630 5340 y(matc)m(hing)j(the)g Fr(n)p Fu(th)f(paren)m -(thesized)h(sub)s(expression.)p eop end +Fu(command.)p eop end %%Page: 77 83 TeXDict begin 77 82 bop 150 -116 a Fu(Chapter)30 b(5:)41 -b(Shell)30 b(V)-8 b(ariables)2459 b(77)150 299 y Ft(BASH_SOURCE)630 -408 y Fu(An)40 b(arra)m(y)h(v)-5 b(ariable)41 b(whose)f(mem)m(b)s(ers)g -(are)h(the)g(source)f(\014lenames)h(where)f(the)g(corre-)630 -518 y(sp)s(onding)27 b(shell)i(function)f(names)g(in)g(the)h +b(Shell)30 b(V)-8 b(ariables)2459 b(77)150 299 y Ft(BASH_REMATCH)630 +408 y Fu(An)43 b(arra)m(y)i(v)-5 b(ariable)44 b(whose)g(mem)m(b)s(ers)f +(are)h(assigned)g(b)m(y)f(the)h(`)p Ft(=~)p Fu(')g(binary)f(op)s +(erator)630 518 y(to)37 b(the)f Ft([[)g Fu(conditional)i(command)e +(\(see)h(Section)g(3.2.4.2)i([Conditional)e(Constructs],)630 +628 y(page)e(11\).)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 +737 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 +(the)g(string)630 847 y(matc)m(hing)j(the)g Fr(n)p Fu(th)f(paren)m +(thesized)h(sub)s(expression.)150 1006 y Ft(BASH_SOURCE)630 +1116 y Fu(An)40 b(arra)m(y)h(v)-5 b(ariable)41 b(whose)f(mem)m(b)s(ers) +g(are)h(the)g(source)f(\014lenames)h(where)f(the)g(corre-)630 +1225 y(sp)s(onding)27 b(shell)i(function)f(names)g(in)g(the)h Ft(FUNCNAME)d Fu(arra)m(y)j(v)-5 b(ariable)30 b(are)f(de\014ned.)38 -b(The)630 628 y(shell)26 b(function)g Ft(${FUNCNAME[$i]})c +b(The)630 1335 y(shell)26 b(function)g Ft(${FUNCNAME[$i]})c Fu(is)k(de\014ned)f(in)g(the)h(\014le)h Ft(${BASH_SOURCE[$i]})21 -b Fu(and)630 737 y(called)32 b(from)d Ft(${BASH_SOURCE[$i+1]})150 -907 y(BASH_SUBSHELL)630 1016 y Fu(Incremen)m(ted)24 b(b)m(y)f(one)h -(within)f(eac)m(h)i(subshell)d(or)i(subshell)e(en)m(vironmen)m(t)i -(when)f(the)h(shell)630 1126 y(b)s(egins)j(executing)i(in)e(that)h(en)m -(vironmen)m(t.)41 b(The)27 b(initial)i(v)-5 b(alue)28 -b(is)f(0.)40 b(If)28 b Ft(BASH_SUBSHELL)630 1235 y Fu(is)i(unset,)h(it) -g(loses)g(its)f(sp)s(ecial)h(prop)s(erties,)f(ev)m(en)h(if)g(it)g(is)f -(subsequen)m(tly)g(reset.)150 1405 y Ft(BASH_VERSINFO)630 -1514 y Fu(A)36 b(readonly)g(arra)m(y)g(v)-5 b(ariable)37 -b(\(see)f(Section)h(6.7)g([Arra)m(ys],)h(page)e(95\))h(whose)f(mem)m(b) -s(ers)630 1624 y(hold)c(v)m(ersion)h(information)f(for)g(this)g -(instance)h(of)g(Bash.)46 b(The)32 b(v)-5 b(alues)32 -b(assigned)h(to)g(the)630 1733 y(arra)m(y)e(mem)m(b)s(ers)e(are)i(as)g -(follo)m(ws:)630 1903 y Ft(BASH_VERSINFO[0])1110 2012 -y Fu(The)f(ma)5 b(jor)30 b(v)m(ersion)h(n)m(um)m(b)s(er)e(\(the)i -Fr(release)5 b Fu(\).)630 2182 y Ft(BASH_VERSINFO[1])1110 -2291 y Fu(The)30 b(minor)g(v)m(ersion)h(n)m(um)m(b)s(er)e(\(the)i -Fr(v)m(ersion)p Fu(\).)630 2461 y Ft(BASH_VERSINFO[2])1110 -2570 y Fu(The)f(patc)m(h)h(lev)m(el.)630 2740 y Ft(BASH_VERSINFO[3]) -1110 2849 y Fu(The)f(build)f(v)m(ersion.)630 3019 y Ft -(BASH_VERSINFO[4])1110 3128 y Fu(The)h(release)i(status)e(\(e.g.,)j -Fr(b)s(eta1)7 b Fu(\).)630 3298 y Ft(BASH_VERSINFO[5])1110 -3407 y Fu(The)30 b(v)-5 b(alue)31 b(of)f Ft(MACHTYPE)p -Fu(.)150 3577 y Ft(BASH_VERSION)630 3686 y Fu(The)g(v)m(ersion)h(n)m +b Fu(and)630 1445 y(called)32 b(from)d Ft(${BASH_SOURCE[$i+1]})150 +1604 y(BASH_SUBSHELL)630 1714 y Fu(Incremen)m(ted)24 +b(b)m(y)f(one)h(within)f(eac)m(h)i(subshell)d(or)i(subshell)e(en)m +(vironmen)m(t)i(when)f(the)h(shell)630 1823 y(b)s(egins)j(executing)i +(in)e(that)h(en)m(vironmen)m(t.)41 b(The)27 b(initial)i(v)-5 +b(alue)28 b(is)f(0.)40 b(If)28 b Ft(BASH_SUBSHELL)630 +1933 y Fu(is)i(unset,)h(it)g(loses)g(its)f(sp)s(ecial)h(prop)s(erties,) +f(ev)m(en)h(if)g(it)g(is)f(subsequen)m(tly)g(reset.)150 +2092 y Ft(BASH_VERSINFO)630 2202 y Fu(A)36 b(readonly)g(arra)m(y)g(v)-5 +b(ariable)37 b(\(see)f(Section)h(6.7)g([Arra)m(ys],)h(page)e(95\))h +(whose)f(mem)m(b)s(ers)630 2311 y(hold)c(v)m(ersion)h(information)f +(for)g(this)g(instance)h(of)g(Bash.)46 b(The)32 b(v)-5 +b(alues)32 b(assigned)h(to)g(the)630 2421 y(arra)m(y)e(mem)m(b)s(ers)e +(are)i(as)g(follo)m(ws:)630 2580 y Ft(BASH_VERSINFO[0])1110 +2690 y Fu(The)f(ma)5 b(jor)30 b(v)m(ersion)h(n)m(um)m(b)s(er)e(\(the)i +Fr(release)5 b Fu(\).)630 2849 y Ft(BASH_VERSINFO[1])1110 +2959 y Fu(The)30 b(minor)g(v)m(ersion)h(n)m(um)m(b)s(er)e(\(the)i +Fr(v)m(ersion)p Fu(\).)630 3118 y Ft(BASH_VERSINFO[2])1110 +3228 y Fu(The)f(patc)m(h)h(lev)m(el.)630 3387 y Ft(BASH_VERSINFO[3]) +1110 3497 y Fu(The)f(build)f(v)m(ersion.)630 3656 y Ft +(BASH_VERSINFO[4])1110 3766 y Fu(The)h(release)i(status)e(\(e.g.,)j +Fr(b)s(eta1)7 b Fu(\).)630 3925 y Ft(BASH_VERSINFO[5])1110 +4035 y Fu(The)30 b(v)-5 b(alue)31 b(of)f Ft(MACHTYPE)p +Fu(.)150 4194 y Ft(BASH_VERSION)630 4304 y Fu(The)g(v)m(ersion)h(n)m (um)m(b)s(er)e(of)h(the)h(curren)m(t)f(instance)h(of)g(Bash.)150 -3856 y Ft(BASH_XTRACEFD)630 3965 y Fu(If)f(set)h(to)h(an)e(in)m(teger)i +4463 y Ft(BASH_XTRACEFD)630 4573 y Fu(If)f(set)h(to)h(an)e(in)m(teger)i (corresp)s(onding)e(to)h(a)g(v)-5 b(alid)31 b(\014le)g(descriptor,)g -(Bash)g(will)g(write)g(the)630 4075 y(trace)37 b(output)f(generated)h +(Bash)g(will)g(write)g(the)630 4682 y(trace)37 b(output)f(generated)h (when)f(`)p Ft(set)29 b(-x)p Fu(')36 b(is)g(enabled)h(to)g(that)f -(\014le)h(descriptor.)58 b(This)630 4184 y(allo)m(ws)29 +(\014le)h(descriptor.)58 b(This)630 4792 y(allo)m(ws)29 b(tracing)h(output)d(to)i(b)s(e)f(separated)g(from)g(diagnostic)h(and)f -(error)f(messages.)41 b(The)630 4294 y(\014le)31 b(descriptor)f(is)h +(error)f(messages.)41 b(The)630 4902 y(\014le)31 b(descriptor)f(is)h (closed)g(when)f Ft(BASH_XTRACEFD)d Fu(is)k(unset)f(or)g(assigned)h(a)g -(new)f(v)-5 b(alue.)630 4403 y(Unsetting)45 b Ft(BASH_XTRACEFD)40 +(new)f(v)-5 b(alue.)630 5011 y(Unsetting)45 b Ft(BASH_XTRACEFD)40 b Fu(or)k(assigning)g(it)g(the)g(empt)m(y)h(string)e(causes)i(the)f -(trace)630 4513 y(output)33 b(to)i(b)s(e)d(sen)m(t)j(to)f(the)g +(trace)630 5121 y(output)33 b(to)i(b)s(e)d(sen)m(t)j(to)f(the)g (standard)e(error.)50 b(Note)35 b(that)g(setting)f Ft(BASH_XTRACEFD)c -Fu(to)630 4623 y(2)39 b(\(the)h(standard)e(error)g(\014le)h +Fu(to)630 5230 y(2)39 b(\(the)h(standard)e(error)g(\014le)h (descriptor\))h(and)e(then)h(unsetting)g(it)g(will)g(result)g(in)g(the) -630 4732 y(standard)30 b(error)g(b)s(eing)f(closed.)150 -4902 y Ft(CHILD_MAX)630 5011 y Fu(Set)35 b(the)h(n)m(um)m(b)s(er)e(of)h -(exited)h(c)m(hild)g(status)f(v)-5 b(alues)36 b(for)f(the)g(shell)g(to) -h(remem)m(b)s(er.)55 b(Bash)630 5121 y(will)37 b(not)g(allo)m(w)i(this) -e(v)-5 b(alue)37 b(to)h(b)s(e)e(decreased)i(b)s(elo)m(w)f(a)g -Fm(posix)p Fu(-mandated)f(minim)m(um,)630 5230 y(and)30 -b(there)g(is)g(a)h(maxim)m(um)f(v)-5 b(alue)30 b(\(curren)m(tly)h -(8192\))h(that)f(this)f(ma)m(y)g(not)h(exceed.)41 b(The)630 -5340 y(minim)m(um)30 b(v)-5 b(alue)30 b(is)h(system-dep)s(enden)m(t.)p +630 5340 y(standard)30 b(error)g(b)s(eing)f(closed.)p eop end %%Page: 78 84 TeXDict begin 78 83 bop 150 -116 a Fu(Chapter)30 b(5:)41 -b(Shell)30 b(V)-8 b(ariables)2459 b(78)150 299 y Ft(COLUMNS)144 -b Fu(Used)32 b(b)m(y)f(the)h Ft(select)e Fu(command)h(to)i(determine)f -(the)f(terminal)i(width)d(when)h(prin)m(ting)630 408 -y(selection)39 b(lists.)63 b(Automatically)41 b(set)d(if)f(the)h -Ft(checkwinsize)d Fu(option)j(is)f(enabled)h(\(see)630 -518 y(Section)44 b(4.3.2)h([The)e(Shopt)g(Builtin],)k(page)d(66\),)k -(or)43 b(in)g(an)g(in)m(teractiv)m(e)j(shell)e(up)s(on)630 -628 y(receipt)31 b(of)g(a)g Ft(SIGWINCH)p Fu(.)150 778 -y Ft(COMP_CWORD)630 888 y Fu(An)38 b(index)g(in)m(to)h +b(Shell)30 b(V)-8 b(ariables)2459 b(78)150 299 y Ft(CHILD_MAX)630 +408 y Fu(Set)35 b(the)h(n)m(um)m(b)s(er)e(of)h(exited)h(c)m(hild)g +(status)f(v)-5 b(alues)36 b(for)f(the)g(shell)g(to)h(remem)m(b)s(er.)55 +b(Bash)630 518 y(will)37 b(not)g(allo)m(w)i(this)e(v)-5 +b(alue)37 b(to)h(b)s(e)e(decreased)i(b)s(elo)m(w)f(a)g +Fm(posix)p Fu(-mandated)f(minim)m(um,)630 628 y(and)30 +b(there)g(is)g(a)h(maxim)m(um)f(v)-5 b(alue)30 b(\(curren)m(tly)h +(8192\))h(that)f(this)f(ma)m(y)g(not)h(exceed.)41 b(The)630 +737 y(minim)m(um)30 b(v)-5 b(alue)30 b(is)h(system-dep)s(enden)m(t.)150 +888 y Ft(COLUMNS)144 b Fu(Used)32 b(b)m(y)f(the)h Ft(select)e +Fu(command)h(to)i(determine)f(the)f(terminal)i(width)d(when)h(prin)m +(ting)630 998 y(selection)39 b(lists.)63 b(Automatically)41 +b(set)d(if)f(the)h Ft(checkwinsize)d Fu(option)j(is)f(enabled)h(\(see) +630 1107 y(Section)44 b(4.3.2)h([The)e(Shopt)g(Builtin],)k(page)d +(66\),)k(or)43 b(in)g(an)g(in)m(teractiv)m(e)j(shell)e(up)s(on)630 +1217 y(receipt)31 b(of)g(a)g Ft(SIGWINCH)p Fu(.)150 1367 +y Ft(COMP_CWORD)630 1477 y Fu(An)38 b(index)g(in)m(to)h Ft(${COMP_WORDS})c Fu(of)k(the)g(w)m(ord)f(con)m(taining)i(the)e -(curren)m(t)g(cursor)g(p)s(o-)630 998 y(sition.)72 b(This)40 +(curren)m(t)g(cursor)g(p)s(o-)630 1587 y(sition.)72 b(This)40 b(v)-5 b(ariable)41 b(is)f(a)m(v)-5 b(ailable)43 b(only)e(in)f(shell)h (functions)f(in)m(v)m(ok)m(ed)i(b)m(y)e(the)h(pro-)630 -1107 y(grammable)36 b(completion)g(facilities)i(\(see)e(Section)g(8.6)g -([Programmable)g(Completion],)630 1217 y(page)31 b(135\).)150 -1367 y Ft(COMP_LINE)630 1477 y Fu(The)38 b(curren)m(t)h(command)f +1696 y(grammable)36 b(completion)g(facilities)i(\(see)e(Section)g(8.6)g +([Programmable)g(Completion],)630 1806 y(page)31 b(135\).)150 +1956 y Ft(COMP_LINE)630 2066 y Fu(The)38 b(curren)m(t)h(command)f (line.)66 b(This)37 b(v)-5 b(ariable)40 b(is)f(a)m(v)-5 -b(ailable)41 b(only)d(in)h(shell)f(functions)630 1587 +b(ailable)41 b(only)d(in)h(shell)f(functions)630 2176 y(and)25 b(external)h(commands)f(in)m(v)m(ok)m(ed)h(b)m(y)f(the)h -(programmable)f(completion)i(facilities)g(\(see)630 1696 +(programmable)f(completion)i(facilities)g(\(see)630 2285 y(Section)k(8.6)h([Programmable)f(Completion],)g(page)g(135\).)150 -1847 y Ft(COMP_POINT)630 1956 y Fu(The)25 b(index)g(of)h(the)g(curren)m +2436 y Ft(COMP_POINT)630 2545 y Fu(The)25 b(index)g(of)h(the)g(curren)m (t)f(cursor)g(p)s(osition)h(relativ)m(e)i(to)e(the)g(b)s(eginning)f(of) -g(the)h(curren)m(t)630 2066 y(command.)40 b(If)27 b(the)h(curren)m(t)g +g(the)h(curren)m(t)630 2655 y(command.)40 b(If)27 b(the)h(curren)m(t)g (cursor)g(p)s(osition)g(is)g(at)g(the)g(end)g(of)g(the)g(curren)m(t)g -(command,)630 2176 y(the)i(v)-5 b(alue)30 b(of)g(this)g(v)-5 +(command,)630 2765 y(the)i(v)-5 b(alue)30 b(of)g(this)g(v)-5 b(ariable)31 b(is)f(equal)g(to)h Ft(${#COMP_LINE})p Fu(.)37 b(This)29 b(v)-5 b(ariable)31 b(is)f(a)m(v)-5 b(ailable)630 -2285 y(only)36 b(in)f(shell)h(functions)f(and)g(external)h(commands)g -(in)m(v)m(ok)m(ed)h(b)m(y)e(the)h(programmable)630 2395 +2874 y(only)36 b(in)f(shell)h(functions)f(and)g(external)h(commands)g +(in)m(v)m(ok)m(ed)h(b)m(y)e(the)h(programmable)630 2984 y(completion)c(facilities)g(\(see)g(Section)f(8.6)g([Programmable)g -(Completion],)h(page)f(135\).)150 2545 y Ft(COMP_TYPE)630 -2655 y Fu(Set)c(to)h(an)f(in)m(teger)h(v)-5 b(alue)28 +(Completion],)h(page)f(135\).)150 3134 y Ft(COMP_TYPE)630 +3244 y Fu(Set)c(to)h(an)f(in)m(teger)h(v)-5 b(alue)28 b(corresp)s(onding)e(to)h(the)h(t)m(yp)s(e)f(of)g(completion)h -(attempted)g(that)630 2765 y(caused)e(a)h(completion)h(function)e(to)h +(attempted)g(that)630 3354 y(caused)e(a)h(completion)h(function)e(to)h (b)s(e)f(called:)40 b Fr(T)-8 b(AB)p Fu(,)27 b(for)g(normal)f -(completion,)j(`)p Ft(?)p Fu(',)e(for)630 2874 y(listing)35 +(completion,)j(`)p Ft(?)p Fu(',)e(for)630 3463 y(listing)35 b(completions)h(after)f(successiv)m(e)g(tabs,)h(`)p Ft(!)p Fu(',)g(for)e(listing)h(alternativ)m(es)i(on)d(partial)630 -2984 y(w)m(ord)22 b(completion,)k(`)p Ft(@)p Fu(',)f(to)e(list)g +3573 y(w)m(ord)22 b(completion,)k(`)p Ft(@)p Fu(',)f(to)e(list)g (completions)h(if)f(the)g(w)m(ord)f(is)h(not)g(unmo)s(di\014ed,)f(or)h -(`)p Ft(\045)p Fu(',)h(for)630 3093 y(men)m(u)i(completion.)41 +(`)p Ft(\045)p Fu(',)h(for)630 3682 y(men)m(u)i(completion.)41 b(This)25 b(v)-5 b(ariable)27 b(is)g(a)m(v)-5 b(ailable)28 b(only)f(in)f(shell)g(functions)g(and)g(external)630 -3203 y(commands)32 b(in)m(v)m(ok)m(ed)i(b)m(y)e(the)g(programmable)h +3792 y(commands)32 b(in)m(v)m(ok)m(ed)i(b)m(y)e(the)g(programmable)h (completion)g(facilities)i(\(see)e(Section)g(8.6)630 -3313 y([Programmable)e(Completion],)h(page)f(135\).)150 -3463 y Ft(COMP_KEY)96 b Fu(The)29 b(k)m(ey)i(\(or)g(\014nal)e(k)m(ey)i +3902 y([Programmable)e(Completion],)h(page)f(135\).)150 +4052 y Ft(COMP_KEY)96 b Fu(The)29 b(k)m(ey)i(\(or)g(\014nal)e(k)m(ey)i (of)f(a)g(k)m(ey)h(sequence\))g(used)e(to)i(in)m(v)m(ok)m(e)h(the)e -(curren)m(t)g(completion)630 3573 y(function.)150 3724 -y Ft(COMP_WORDBREAKS)630 3833 y Fu(The)f(set)i(of)e(c)m(haracters)j +(curren)m(t)g(completion)630 4162 y(function.)150 4313 +y Ft(COMP_WORDBREAKS)630 4422 y Fu(The)f(set)i(of)e(c)m(haracters)j (that)e(the)g(Readline)g(library)g(treats)g(as)g(w)m(ord)g(separators)g -(when)630 3943 y(p)s(erforming)i(w)m(ord)h(completion.)51 +(when)630 4532 y(p)s(erforming)i(w)m(ord)h(completion.)51 b(If)33 b Ft(COMP_WORDBREAKS)c Fu(is)34 b(unset,)g(it)f(loses)i(its)e -(sp)s(ecial)630 4052 y(prop)s(erties,)d(ev)m(en)h(if)f(it)h(is)g -(subsequen)m(tly)f(reset.)150 4203 y Ft(COMP_WORDS)630 -4313 y Fu(An)36 b(arra)m(y)g(v)-5 b(ariable)37 b(consisting)g(of)f(the) +(sp)s(ecial)630 4641 y(prop)s(erties,)d(ev)m(en)h(if)f(it)h(is)g +(subsequen)m(tly)f(reset.)150 4792 y Ft(COMP_WORDS)630 +4902 y Fu(An)36 b(arra)m(y)g(v)-5 b(ariable)37 b(consisting)g(of)f(the) g(individual)f(w)m(ords)h(in)f(the)h(curren)m(t)g(command)630 -4422 y(line.)94 b(The)47 b(line)i(is)f(split)g(in)m(to)h(w)m(ords)e(as) +5011 y(line.)94 b(The)47 b(line)i(is)f(split)g(in)m(to)h(w)m(ords)e(as) h(Readline)h(w)m(ould)f(split)g(it,)53 b(using)47 b Ft(COMP_)630 -4532 y(WORDBREAKS)34 b Fu(as)i(describ)s(ed)g(ab)s(o)m(v)m(e.)60 +5121 y(WORDBREAKS)34 b Fu(as)i(describ)s(ed)g(ab)s(o)m(v)m(e.)60 b(This)36 b(v)-5 b(ariable)37 b(is)f(a)m(v)-5 b(ailable)39 -b(only)e(in)f(shell)h(func-)630 4641 y(tions)32 b(in)m(v)m(ok)m(ed)i(b) +b(only)e(in)f(shell)h(func-)630 5230 y(tions)32 b(in)m(v)m(ok)m(ed)i(b) m(y)d(the)i(programmable)f(completion)h(facilities)h(\(see)f(Section)g -(8.6)g([Pro-)630 4751 y(grammable)e(Completion],)g(page)g(135\).)150 -4902 y Ft(COMPREPLY)630 5011 y Fu(An)37 b(arra)m(y)h(v)-5 -b(ariable)38 b(from)f(whic)m(h)g(Bash)g(reads)g(the)h(p)s(ossible)e -(completions)j(generated)630 5121 y(b)m(y)33 b(a)g(shell)h(function)f -(in)m(v)m(ok)m(ed)h(b)m(y)f(the)g(programmable)h(completion)g(facilit)m -(y)h(\(see)f(Sec-)630 5230 y(tion)g(8.6)g([Programmable)g(Completion],) -h(page)f(135\).)51 b(Eac)m(h)34 b(arra)m(y)g(elemen)m(t)h(con)m(tains) -630 5340 y(one)c(p)s(ossible)f(completion.)p eop end +(8.6)g([Pro-)630 5340 y(grammable)e(Completion],)g(page)g(135\).)p +eop end %%Page: 79 85 TeXDict begin 79 84 bop 150 -116 a Fu(Chapter)30 b(5:)41 -b(Shell)30 b(V)-8 b(ariables)2459 b(79)150 299 y Ft(COPROC)192 +b(Shell)30 b(V)-8 b(ariables)2459 b(79)150 299 y Ft(COMPREPLY)630 +408 y Fu(An)37 b(arra)m(y)h(v)-5 b(ariable)38 b(from)f(whic)m(h)g(Bash) +g(reads)g(the)h(p)s(ossible)e(completions)j(generated)630 +518 y(b)m(y)33 b(a)g(shell)h(function)f(in)m(v)m(ok)m(ed)h(b)m(y)f(the) +g(programmable)h(completion)g(facilit)m(y)h(\(see)f(Sec-)630 +628 y(tion)g(8.6)g([Programmable)g(Completion],)h(page)f(135\).)51 +b(Eac)m(h)34 b(arra)m(y)g(elemen)m(t)h(con)m(tains)630 +737 y(one)c(p)s(ossible)f(completion.)150 896 y Ft(COPROC)192 b Fu(An)27 b(arra)m(y)g(v)-5 b(ariable)28 b(created)g(to)f(hold)g(the)g (\014le)g(descriptors)g(for)g(output)f(from)h(and)f(input)630 -408 y(to)31 b(an)f(unnamed)f(copro)s(cess)i(\(see)g(Section)h(3.2.5)g -([Copro)s(cesses],)f(page)g(15\).)150 562 y Ft(DIRSTACK)96 +1005 y(to)31 b(an)f(unnamed)f(copro)s(cess)i(\(see)g(Section)h(3.2.5)g +([Copro)s(cesses],)f(page)g(15\).)150 1163 y Ft(DIRSTACK)96 b Fu(An)26 b(arra)m(y)h(v)-5 b(ariable)28 b(con)m(taining)g(the)f (curren)m(t)f(con)m(ten)m(ts)j(of)e(the)f(directory)i(stac)m(k.)41 -b(Direc-)630 671 y(tories)33 b(app)s(ear)f(in)g(the)h(stac)m(k)h(in)e +b(Direc-)630 1273 y(tories)33 b(app)s(ear)f(in)g(the)h(stac)m(k)h(in)e (the)h(order)f(they)h(are)g(displa)m(y)m(ed)g(b)m(y)f(the)h -Ft(dirs)e Fu(builtin.)630 781 y(Assigning)f(to)h(mem)m(b)s(ers)f(of)g +Ft(dirs)e Fu(builtin.)630 1383 y(Assigning)f(to)h(mem)m(b)s(ers)f(of)g (this)g(arra)m(y)g(v)-5 b(ariable)31 b(ma)m(y)g(b)s(e)e(used)h(to)h(mo) -s(dify)e(directories)630 891 y(already)41 b(in)f(the)h(stac)m(k,)k(but) -40 b(the)h Ft(pushd)e Fu(and)h Ft(popd)f Fu(builtins)h(m)m(ust)h(b)s(e) -e(used)h(to)i(add)630 1000 y(and)37 b(remo)m(v)m(e)h(directories.)63 -b(Assignmen)m(t)37 b(to)h(this)f(v)-5 b(ariable)38 b(will)g(not)f(c)m -(hange)i(the)e(cur-)630 1110 y(ren)m(t)c(directory)-8 -b(.)47 b(If)32 b Ft(DIRSTACK)e Fu(is)i(unset,)g(it)h(loses)g(its)g(sp)s -(ecial)g(prop)s(erties,)f(ev)m(en)h(if)f(it)h(is)630 -1219 y(subsequen)m(tly)d(reset.)150 1373 y Ft(EMACS)240 -b Fu(If)31 b(Bash)h(\014nds)d(this)j(v)-5 b(ariable)32 -b(in)f(the)h(en)m(vironmen)m(t)g(when)e(the)i(shell)f(starts)h(with)f -(v)-5 b(alue)630 1482 y(`)p Ft(t)p Fu(',)36 b(it)f(assumes)f(that)h -(the)g(shell)f(is)h(running)e(in)h(an)g(Emacs)h(shell)g(bu\013er)e(and) -h(disables)630 1592 y(line)d(editing.)150 1745 y Ft(ENV)336 -b Fu(Similar)35 b(to)g Ft(BASH_ENV)p Fu(;)h(used)e(when)g(the)h(shell)g -(is)g(in)m(v)m(ok)m(ed)h(in)e Fm(posix)h Fu(Mo)s(de)g(\(see)g(Sec-)630 -1855 y(tion)c(6.11)h([Bash)f(POSIX)e(Mo)s(de],)i(page)g(100\).)150 -2008 y Ft(EPOCHREALTIME)630 2118 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 2228 y(since)f(the)g(Unix)f(Ep)s(o)s(c)m(h)g(as) -h(a)g(\015oating)h(p)s(oin)m(t)f(v)-5 b(alue)36 b(with)f(micro-second)i -(gran)m(ularit)m(y)630 2337 y(\(see)42 b(the)g(do)s(cumen)m(tation)g -(for)f(the)g(C)g(library)g(function)g Fr(time)47 b Fu(for)41 -b(the)h(de\014nition)f(of)630 2447 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 2556 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 2710 y Ft(EPOCHSECONDS)630 -2819 y Fu(Eac)m(h)38 b(time)f(this)g(parameter)h(is)f(referenced,)i(it) +s(dify)e(directories)630 1492 y(already)41 b(in)f(the)h(stac)m(k,)k +(but)40 b(the)h Ft(pushd)e Fu(and)h Ft(popd)f Fu(builtins)h(m)m(ust)h +(b)s(e)e(used)h(to)i(add)630 1602 y(and)37 b(remo)m(v)m(e)h +(directories.)63 b(Assignmen)m(t)37 b(to)h(this)f(v)-5 +b(ariable)38 b(will)g(not)f(c)m(hange)i(the)e(cur-)630 +1711 y(ren)m(t)c(directory)-8 b(.)47 b(If)32 b Ft(DIRSTACK)e +Fu(is)i(unset,)g(it)h(loses)g(its)g(sp)s(ecial)g(prop)s(erties,)f(ev)m +(en)h(if)f(it)h(is)630 1821 y(subsequen)m(tly)d(reset.)150 +1979 y Ft(EMACS)240 b Fu(If)31 b(Bash)h(\014nds)d(this)j(v)-5 +b(ariable)32 b(in)f(the)h(en)m(vironmen)m(t)g(when)e(the)i(shell)f +(starts)h(with)f(v)-5 b(alue)630 2089 y(`)p Ft(t)p Fu(',)36 +b(it)f(assumes)f(that)h(the)g(shell)f(is)h(running)e(in)h(an)g(Emacs)h +(shell)g(bu\013er)e(and)h(disables)630 2198 y(line)d(editing.)150 +2357 y Ft(ENV)336 b Fu(Similar)35 b(to)g Ft(BASH_ENV)p +Fu(;)h(used)e(when)g(the)h(shell)g(is)g(in)m(v)m(ok)m(ed)h(in)e +Fm(posix)h Fu(Mo)s(de)g(\(see)g(Sec-)630 2466 y(tion)c(6.11)h([Bash)f +(POSIX)e(Mo)s(de],)i(page)g(100\).)150 2625 y Ft(EPOCHREALTIME)630 +2734 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 -2929 y(since)e(the)g(Unix)f(Ep)s(o)s(c)m(h)g(\(see)i(the)f(do)s(cumen)m -(tation)g(for)g(the)f(C)h(library)f(function)g Fr(time)630 -3039 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 3148 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 3258 y(reset.)150 3411 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 3565 y Ft(EXECIGNORE)630 3674 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 3784 y(page)j(33\))g(de\014ning)e(the)h -(list)g(of)g(\014lenames)g(to)g(b)s(e)g(ignored)g(b)m(y)f(command)h -(searc)m(h)g(using)630 3893 y Ft(PATH)p Fu(.)k(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 4003 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 4113 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 -4222 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 -4332 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 4441 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 4551 y Ft(extglob)28 b Fu(shell)j(option.)150 4704 -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(-e)g Fu(option)h(to)g(the)f Ft(fc)g Fu(builtin)g(command.) -150 4858 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 4967 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 -5077 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 5230 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 5340 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-)p eop end +2844 y(since)f(the)g(Unix)f(Ep)s(o)s(c)m(h)g(as)h(a)g(\015oating)h(p)s +(oin)m(t)f(v)-5 b(alue)36 b(with)f(micro-second)i(gran)m(ularit)m(y)630 +2953 y(\(see)42 b(the)g(do)s(cumen)m(tation)g(for)f(the)g(C)g(library)g +(function)g Fr(time)47 b Fu(for)41 b(the)h(de\014nition)f(of)630 +3063 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 3173 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 +3331 y Ft(EPOCHSECONDS)630 3440 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 3550 y(since)e(the)g(Unix)f(Ep)s(o)s(c)m(h)g +(\(see)i(the)f(do)s(cumen)m(tation)g(for)g(the)f(C)h(library)f +(function)g Fr(time)630 3660 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 3769 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 3879 y(reset.)150 +4037 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 4195 y Ft(EXECIGNORE)630 +4305 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 +4415 y(page)j(33\))g(de\014ning)e(the)h(list)g(of)g(\014lenames)g(to)g +(b)s(e)g(ignored)g(b)m(y)f(command)h(searc)m(h)g(using)630 +4524 y Ft(PATH)p Fu(.)k(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 +4634 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 +4743 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 4853 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 4963 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 5072 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 5182 y +Ft(extglob)28 b Fu(shell)j(option.)150 5340 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(-e)g Fu(option)h(to)g(the)f Ft(fc)g Fu(builtin)g(command.)p +eop end %%Page: 80 86 TeXDict begin 80 85 bop 150 -116 a Fu(Chapter)30 b(5:)41 -b(Shell)30 b(V)-8 b(ariables)2459 b(80)630 299 y(executing)35 -b(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 408 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 518 -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 628 y(prop)s(erties,)30 b(ev)m(en)h(if)f(it)h(is) -g(subsequen)m(tly)f(reset.)630 763 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 -872 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 -982 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 1091 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 1201 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 -1361 y Ft(FUNCNEST)96 b Fu(If)34 b(set)i(to)f(a)h(n)m(umeric)e(v)-5 +b(Shell)30 b(V)-8 b(ariables)2459 b(80)150 299 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 408 +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 +518 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 671 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 781 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 891 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 1000 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 1110 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 1219 y(prop)s(erties,)30 b(ev)m(en)h(if)f(it)h(is)g(subsequen)m +(tly)f(reset.)630 1351 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 1461 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 1570 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 +1680 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 1789 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 +1943 y Ft(FUNCNEST)96 b Fu(If)34 b(set)i(to)f(a)h(n)m(umeric)e(v)-5 b(alue)36 b(greater)g(than)e(0,)j(de\014nes)d(a)h(maxim)m(um)g -(function)g(nesting)630 1471 y(lev)m(el.)42 b(F)-8 b(unction)29 +(function)g(nesting)630 2052 y(lev)m(el.)42 b(F)-8 b(unction)29 b(in)m(v)m(o)s(cations)h(that)f(exceed)h(this)e(nesting)h(lev)m(el)h -(will)f(cause)g(the)f(curren)m(t)630 1580 y(command)i(to)h(ab)s(ort.) -150 1740 y Ft(GLOBIGNORE)630 1850 y Fu(A)k(colon-separated)i(list)f(of) +(will)f(cause)g(the)f(curren)m(t)630 2162 y(command)i(to)h(ab)s(ort.) +150 2315 y Ft(GLOBIGNORE)630 2425 y Fu(A)k(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 1960 y(b)m(y)28 b(\014lename)h(expansion.)40 +g(ignored)630 2534 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 2069 y(also)k(matc)m(hes)g(one)f(of)g(the)g +(expansion)h(pattern)630 2644 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 2179 y(matc)m(hes.)41 b(The)27 +e(the)h(list)h(of)630 2754 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 2339 y Ft(GROUPS)192 +Ft(extglob)d Fu(shell)i(option.)150 2907 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 -2449 y(mem)m(b)s(er.)41 b(Assignmen)m(ts)30 b(to)i Ft(GROUPS)d +3017 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 2558 y(sp)s(ecial)f(prop)s +Fu(is)i(unset,)f(it)h(loses)h(its)630 3126 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 -2718 y Ft(histchars)630 2828 y Fu(Up)c(to)g(three)g(c)m(haracters)i +3280 y Ft(histchars)630 3389 y Fu(Up)c(to)g(three)g(c)m(haracters)i (whic)m(h)d(con)m(trol)j(history)d(expansion,)i(quic)m(k)g -(substitution,)g(and)630 2937 y(tok)m(enization)k(\(see)f(Section)f +(substitution,)g(and)630 3499 y(tok)m(enization)k(\(see)f(Section)f (9.3)h([History)f(In)m(teraction],)i(page)f(146\).)41 -b(The)29 b(\014rst)e(c)m(harac-)630 3047 y(ter)j(is)f(the)g +b(The)29 b(\014rst)e(c)m(harac-)630 3608 y(ter)j(is)f(the)g Fr(history)g(expansion)g Fu(c)m(haracter,)j(that)e(is,)f(the)h(c)m -(haracter)h(whic)m(h)d(signi\014es)i(the)630 3157 y(start)25 +(haracter)h(whic)m(h)d(signi\014es)i(the)630 3718 y(start)25 b(of)f(a)h(history)f(expansion,)i(normally)e(`)p Ft(!)p Fu('.)39 b(The)24 b(second)g(c)m(haracter)i(is)e(the)g(c)m(haracter)630 -3266 y(whic)m(h)36 b(signi\014es)g(`quic)m(k)h(substitution')f(when)f +3828 y(whic)m(h)36 b(signi\014es)g(`quic)m(k)h(substitution')f(when)f (seen)h(as)g(the)g(\014rst)f(c)m(haracter)j(on)e(a)g(line,)630 -3376 y(normally)27 b(`)p Ft(^)p Fu('.)39 b(The)26 b(optional)i(third)d +3937 y(normally)27 b(`)p Ft(^)p Fu('.)39 b(The)26 b(optional)i(third)d (c)m(haracter)j(is)e(the)h(c)m(haracter)h(whic)m(h)e(indicates)h(that) -630 3485 y(the)34 b(remainder)f(of)h(the)g(line)g(is)f(a)h(commen)m(t)h +630 4047 y(the)34 b(remainder)f(of)h(the)g(line)g(is)f(a)h(commen)m(t)h (when)e(found)f(as)i(the)g(\014rst)f(c)m(haracter)i(of)f(a)630 -3595 y(w)m(ord,)i(usually)f(`)p Ft(#)p Fu('.)55 b(The)34 +4156 y(w)m(ord,)i(usually)f(`)p Ft(#)p Fu('.)55 b(The)34 b(history)h(commen)m(t)h(c)m(haracter)h(causes)e(history)g -(substitution)630 3705 y(to)27 b(b)s(e)f(skipp)s(ed)f(for)i(the)f +(substitution)630 4266 y(to)27 b(b)s(e)f(skipp)s(ed)f(for)i(the)f (remaining)h(w)m(ords)f(on)h(the)f(line.)40 b(It)27 b(do)s(es)f(not)h -(necessarily)g(cause)630 3814 y(the)k(shell)f(parser)g(to)h(treat)g +(necessarily)g(cause)630 4376 y(the)k(shell)f(parser)g(to)h(treat)g (the)g(rest)g(of)f(the)h(line)f(as)h(a)g(commen)m(t.)150 -3974 y Ft(HISTCMD)144 b Fu(The)35 b(history)h(n)m(um)m(b)s(er,)g(or)f +4529 y Ft(HISTCMD)144 b Fu(The)35 b(history)h(n)m(um)m(b)s(er,)g(or)f (index)g(in)h(the)g(history)f(list,)j(of)e(the)g(curren)m(t)f(command.) -56 b(If)630 4084 y Ft(HISTCMD)28 b Fu(is)h(unset,)h(it)g(loses)h(its)f +56 b(If)630 4639 y Ft(HISTCMD)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 4244 y Ft(HISTCONTROL)630 4354 y Fu(A)40 +(tly)f(reset.)150 4792 y Ft(HISTCONTROL)630 4902 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 4463 +(w)e(commands)g(are)h(sa)m(v)m(ed)g(on)f(the)630 5011 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 4573 y(a)39 b(space)g(c)m(haracter)i(are)e(not)g +(b)s(egin)f(with)630 5121 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 4682 y(causes)34 +b(alue)39 b(of)g(`)p Ft(ignoredups)p Fu(')630 5230 y(causes)34 b(lines)h(whic)m(h)f(matc)m(h)h(the)f(previous)f(history)h(en)m(try)h (to)g(not)f(b)s(e)f(sa)m(v)m(ed.)53 b(A)34 b(v)-5 b(alue)630 -4792 y(of)32 b(`)p Ft(ignoreboth)p Fu(')d(is)j(shorthand)e(for)i(`)p +5340 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 4902 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 5011 y(from)42 -b(the)h(history)f(list)i(b)s(efore)e(that)h(line)g(is)g(sa)m(v)m(ed.)78 -b(An)m(y)43 b(v)-5 b(alue)43 b(not)g(in)f(the)h(ab)s(o)m(v)m(e)630 -5121 y(list)35 b(is)g(ignored.)53 b(If)34 b Ft(HISTCONTROL)e -Fu(is)i(unset,)i(or)e(do)s(es)h(not)g(include)f(a)h(v)-5 -b(alid)35 b(v)-5 b(alue,)36 b(all)630 5230 y(lines)30 +b(A)32 b(v)-5 b(alue)32 b(of)p eop end +%%Page: 81 87 +TeXDict begin 81 86 bop 150 -116 a Fu(Chapter)30 b(5:)41 +b(Shell)30 b(V)-8 b(ariables)2459 b(81)630 299 y(`)p +Ft(erasedups)p Fu(')31 b(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 +408 y(from)42 b(the)h(history)f(list)i(b)s(efore)e(that)h(line)g(is)g +(sa)m(v)m(ed.)78 b(An)m(y)43 b(v)-5 b(alue)43 b(not)g(in)f(the)h(ab)s +(o)m(v)m(e)630 518 y(list)35 b(is)g(ignored.)53 b(If)34 +b Ft(HISTCONTROL)e Fu(is)i(unset,)i(or)e(do)s(es)h(not)g(include)f(a)h +(v)-5 b(alid)35 b(v)-5 b(alue,)36 b(all)630 628 y(lines)30 b(read)g(b)m(y)g(the)g(shell)g(parser)g(are)g(sa)m(v)m(ed)h(on)f(the)g (history)g(list,)h(sub)5 b(ject)30 b(to)g(the)g(v)-5 -b(alue)630 5340 y(of)42 b Ft(HISTIGNORE)p Fu(.)73 b(The)42 +b(alue)630 737 y(of)42 b Ft(HISTIGNORE)p Fu(.)73 b(The)42 b(second)g(and)g(subsequen)m(t)f(lines)h(of)h(a)f(m)m(ulti-line)h(comp) -s(ound)p eop end -%%Page: 81 87 -TeXDict begin 81 86 bop 150 -116 a Fu(Chapter)30 b(5:)41 -b(Shell)30 b(V)-8 b(ariables)2459 b(81)630 299 y(command)33 -b(are)h(not)g(tested,)i(and)d(are)h(added)f(to)h(the)g(history)g -(regardless)g(of)g(the)f(v)-5 b(alue)630 408 y(of)31 -b Ft(HISTCONTROL)p Fu(.)150 552 y Ft(HISTFILE)96 b Fu(The)27 -b(name)h(of)g(the)g(\014le)g(to)h(whic)m(h)f(the)g(command)f(history)h -(is)g(sa)m(v)m(ed.)41 b(The)27 b(default)h(v)-5 b(alue)630 -661 y(is)30 b Ft(~/.bash_history)p Fu(.)150 805 y Ft(HISTFILESIZE)630 -914 y Fu(The)c(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 1024 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 1133 y(than)37 -b(that)h(n)m(um)m(b)s(er)d(of)j(lines)f(b)m(y)g(remo)m(ving)h(the)f -(oldest)h(en)m(tries.)62 b(The)37 b(history)g(\014le)g(is)630 -1243 y(also)i(truncated)f(to)h(this)e(size)i(after)g(writing)f(it)g +s(ound)630 847 y(command)33 b(are)h(not)g(tested,)i(and)d(are)h(added)f +(to)h(the)g(history)g(regardless)g(of)g(the)f(v)-5 b(alue)630 +956 y(of)31 b Ft(HISTCONTROL)p Fu(.)150 1117 y Ft(HISTFILE)96 +b Fu(The)27 b(name)h(of)g(the)g(\014le)g(to)h(whic)m(h)f(the)g(command) +f(history)h(is)g(sa)m(v)m(ed.)41 b(The)27 b(default)h(v)-5 +b(alue)630 1226 y(is)30 b Ft(~/.bash_history)p Fu(.)150 +1386 y Ft(HISTFILESIZE)630 1496 y Fu(The)c(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 1606 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 +1715 y(than)37 b(that)h(n)m(um)m(b)s(er)d(of)j(lines)f(b)m(y)g(remo)m +(ving)h(the)f(oldest)h(en)m(tries.)62 b(The)37 b(history)g(\014le)g(is) +630 1825 y(also)i(truncated)f(to)h(this)e(size)i(after)g(writing)f(it)g (when)f(a)h(shell)h(exits.)64 b(If)37 b(the)h(v)-5 b(alue)39 -b(is)630 1353 y(0,)g(the)e(history)f(\014le)h(is)g(truncated)f(to)i +b(is)630 1934 y(0,)g(the)e(history)f(\014le)h(is)g(truncated)f(to)i (zero)f(size.)60 b(Non-n)m(umeric)37 b(v)-5 b(alues)37 -b(and)f(n)m(umeric)630 1462 y(v)-5 b(alues)31 b(less)f(than)g(zero)h +b(and)f(n)m(umeric)630 2044 y(v)-5 b(alues)31 b(less)f(than)g(zero)h (inhibit)f(truncation.)41 b(The)29 b(shell)i(sets)f(the)h(default)f(v) --5 b(alue)31 b(to)g(the)630 1572 y(v)-5 b(alue)31 b(of)f +-5 b(alue)31 b(to)g(the)630 2153 y(v)-5 b(alue)31 b(of)f Ft(HISTSIZE)f Fu(after)h(reading)h(an)m(y)g(startup)f(\014les.)150 -1715 y Ft(HISTIGNORE)630 1825 y Fu(A)j(colon-separated)h(list)f(of)g +2314 y Ft(HISTIGNORE)630 2423 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 1934 y(b)s(e)f(sa)m(v)m(ed)h(on)g(the)f(history)h(list.)47 +630 2533 y(b)s(e)f(sa)m(v)m(ed)h(on)g(the)f(history)h(list.)47 b(Eac)m(h)33 b(pattern)g(is)f(anc)m(hored)h(at)g(the)f(b)s(eginning)g -(of)h(the)630 2044 y(line)43 b(and)e(m)m(ust)h(matc)m(h)h(the)g +(of)h(the)630 2642 y(line)43 b(and)e(m)m(ust)h(matc)m(h)h(the)g (complete)h(line)e(\(no)h(implicit)g(`)p Ft(*)p Fu(')f(is)g(app)s -(ended\).)75 b(Eac)m(h)630 2153 y(pattern)42 b(is)g(tested)g(against)h +(ended\).)75 b(Eac)m(h)630 2752 y(pattern)42 b(is)g(tested)g(against)h (the)f(line)g(after)g(the)g(c)m(hec)m(ks)h(sp)s(eci\014ed)e(b)m(y)h -Ft(HISTCONTROL)630 2263 y Fu(are)37 b(applied.)59 b(In)36 +Ft(HISTCONTROL)630 2862 y Fu(are)37 b(applied.)59 b(In)36 b(addition)h(to)g(the)g(normal)g(shell)f(pattern)h(matc)m(hing)h(c)m -(haracters,)i(`)p Ft(&)p Fu(')630 2373 y(matc)m(hes)d(the)f(previous)g +(haracters,)i(`)p Ft(&)p Fu(')630 2971 y(matc)m(hes)d(the)f(previous)g (history)g(line.)57 b(`)p Ft(&)p Fu(')36 b(ma)m(y)h(b)s(e)e(escap)s(ed) -h(using)g(a)g(bac)m(kslash;)k(the)630 2482 y(bac)m(kslash)34 +h(using)g(a)g(bac)m(kslash;)k(the)630 3081 y(bac)m(kslash)34 b(is)g(remo)m(v)m(ed)h(b)s(efore)e(attempting)i(a)g(matc)m(h.)51 -b(The)34 b(second)f(and)h(subsequen)m(t)630 2592 y(lines)e(of)h(a)g(m)m +b(The)34 b(second)f(and)h(subsequen)m(t)630 3190 y(lines)e(of)h(a)g(m)m (ulti-line)g(comp)s(ound)e(command)h(are)h(not)f(tested,)i(and)e(are)g -(added)g(to)h(the)630 2701 y(history)k(regardless)h(of)f(the)g(v)-5 +(added)g(to)h(the)630 3300 y(history)k(regardless)h(of)f(the)g(v)-5 b(alue)38 b(of)f Ft(HISTIGNORE)p Fu(.)58 b(The)37 b(pattern)g(matc)m -(hing)i(honors)630 2811 y(the)31 b(setting)g(of)g(the)f -Ft(extglob)f Fu(shell)h(option.)630 2937 y Ft(HISTIGNORE)20 +(hing)i(honors)630 3410 y(the)31 b(setting)g(of)g(the)f +Ft(extglob)f Fu(shell)h(option.)630 3544 y Ft(HISTIGNORE)20 b Fu(subsumes)g(the)j(function)f(of)h Ft(HISTCONTROL)p Fu(.)35 b(A)23 b(pattern)f(of)h(`)p Ft(&)p Fu(')g(is)f(iden)m(tical)630 -3047 y(to)k Ft(ignoredups)p Fu(,)e(and)h(a)h(pattern)g(of)f(`)p +3654 y(to)k Ft(ignoredups)p Fu(,)e(and)h(a)h(pattern)g(of)f(`)p Ft([)31 b(]*)p Fu(')25 b(is)h(iden)m(tical)h(to)f Ft(ignorespace)p -Fu(.)36 b(Com)m(bining)630 3157 y(these)30 b(t)m(w)m(o)h(patterns,)f +Fu(.)36 b(Com)m(bining)630 3764 y(these)30 b(t)m(w)m(o)h(patterns,)f (separating)g(them)g(with)f(a)h(colon,)h(pro)m(vides)e(the)h -(functionalit)m(y)h(of)630 3266 y Ft(ignoreboth)p Fu(.)150 -3410 y Ft(HISTSIZE)96 b Fu(The)37 b(maxim)m(um)g(n)m(um)m(b)s(er)e(of)j +(functionalit)m(y)h(of)630 3873 y Ft(ignoreboth)p Fu(.)150 +4033 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 3519 y(v)-5 b(alue)26 b(is)g(0,)i(commands)d(are)h +b(If)37 b(the)630 4143 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 3629 y(zero)i(result)e(in)h(ev)m +b(v)-5 b(alues)26 b(less)g(than)630 4253 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 3738 y(The)j(shell)g(sets)h(the)g +(\(there)f(is)g(no)g(limit\).)630 4362 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 3882 y Ft(HISTTIMEFORMAT)630 -3991 y Fu(If)44 b(this)g(v)-5 b(ariable)45 b(is)f(set)g(and)g(not)g(n)m +(startup)f(\014les.)150 4522 y Ft(HISTTIMEFORMAT)630 +4632 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 4101 y Fr(strftime)c Fu(to)35 b(prin)m(t)f(the)h(time)g(stamp) +(for)630 4741 y Fr(strftime)c Fu(to)35 b(prin)m(t)f(the)h(time)g(stamp) f(asso)s(ciated)i(with)f(eac)m(h)g(history)g(en)m(try)f(displa)m(y)m -(ed)630 4210 y(b)m(y)g(the)f Ft(history)f Fu(builtin.)50 +(ed)630 4851 y(b)m(y)g(the)f Ft(history)f Fu(builtin.)50 b(If)33 b(this)h(v)-5 b(ariable)34 b(is)g(set,)h(time)f(stamps)g(are)g -(written)f(to)i(the)630 4320 y(history)26 b(\014le)g(so)g(they)g(ma)m +(written)f(to)i(the)630 4961 y(history)26 b(\014le)g(so)g(they)g(ma)m (y)h(b)s(e)e(preserv)m(ed)g(across)i(shell)f(sessions.)39 -b(This)25 b(uses)h(the)g(history)630 4430 y(commen)m(t)31 +b(This)25 b(uses)h(the)g(history)630 5070 y(commen)m(t)31 b(c)m(haracter)h(to)f(distinguish)f(timestamps)h(from)f(other)g -(history)h(lines.)150 4573 y Ft(HOSTFILE)96 b Fu(Con)m(tains)33 +(history)h(lines.)150 5230 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 4682 y(read)21 +Ft(/etc/hosts)e Fu(that)j(should)f(b)s(e)630 5340 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 4792 -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 4902 -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 5011 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 5121 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 5230 y(of)h(p)s(ossible)f(hostname)h -(completions.)43 b(When)31 b Ft(HOSTFILE)d Fu(is)j(unset,)f(the)h -(hostname)g(list)630 5340 y(is)f(cleared.)p eop end +b(The)21 b(list)h(of)g(p)s(ossible)f(hostname)p eop end %%Page: 82 88 TeXDict begin 82 87 bop 150 -116 a Fu(Chapter)30 b(5:)41 -b(Shell)30 b(V)-8 b(ariables)2459 b(82)150 299 y Ft(HOSTNAME)96 -b Fu(The)30 b(name)g(of)h(the)f(curren)m(t)h(host.)150 -455 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 612 y Ft(IGNOREEOF)630 -722 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 -831 y(If)i(set,)i(the)f(v)-5 b(alue)32 b(denotes)f(the)g(n)m(um)m(b)s +b(Shell)30 b(V)-8 b(ariables)2459 b(82)630 299 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 408 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 518 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 +628 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 +737 y(of)h(p)s(ossible)f(hostname)h(completions.)43 b(When)31 +b Ft(HOSTFILE)d Fu(is)j(unset,)f(the)h(hostname)g(list)630 +847 y(is)f(cleared.)150 1007 y Ft(HOSTNAME)96 b Fu(The)30 +b(name)g(of)h(the)f(curren)m(t)h(host.)150 1167 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 1327 y Ft(IGNOREEOF)630 1437 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 +1547 y(If)i(set,)i(the)f(v)-5 b(alue)32 b(denotes)f(the)g(n)m(um)m(b)s (er)f(of)h(consecutiv)m(e)i Ft(EOF)d Fu(c)m(haracters)i(that)f(can)h(b) -s(e)630 941 y(read)40 b(as)f(the)h(\014rst)f(c)m(haracter)i(on)f(an)f +s(e)630 1656 y(read)40 b(as)f(the)h(\014rst)f(c)m(haracter)i(on)f(an)f (input)g(line)h(b)s(efore)f(the)h(shell)g(will)g(exit.)70 -b(If)39 b(the)630 1050 y(v)-5 b(ariable)39 b(exists)f(but)g(do)s(es)f +b(If)39 b(the)630 1766 y(v)-5 b(ariable)39 b(exists)f(but)g(do)s(es)f (not)h(ha)m(v)m(e)h(a)g(n)m(umeric)f(v)-5 b(alue,)40 -b(or)e(has)g(no)g(v)-5 b(alue,)40 b(then)e(the)630 1160 +b(or)e(has)g(no)g(v)-5 b(alue,)40 b(then)e(the)630 1875 y(default)31 b(is)g(10.)43 b(If)30 b(the)h(v)-5 b(ariable)31 b(do)s(es)g(not)g(exist,)h(then)e Ft(EOF)g Fu(signi\014es)h(the)g(end)f -(of)h(input)630 1270 y(to)g(the)g(shell.)41 b(This)29 +(of)h(input)630 1985 y(to)g(the)g(shell.)41 b(This)29 b(is)i(only)f(in)g(e\013ect)i(for)e(in)m(teractiv)m(e)j(shells.)150 -1426 y Ft(INPUTRC)144 b Fu(The)68 b(name)h(of)f(the)h(Readline)g +2145 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 1536 y Ft(~/.inputrc)p Fu(.)150 1692 y Ft(INSIDE_EMACS)630 -1802 y Fu(If)29 b(Bash)h(\014nds)e(this)h(v)-5 b(ariable)31 +(of)630 2255 y Ft(~/.inputrc)p Fu(.)150 2415 y Ft(INSIDE_EMACS)630 +2524 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 1911 y(that)i(the)g(shell)g(is)f(running)f(in)i(an)f +(assumes)630 2634 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 -2021 y(dep)s(ending)d(on)h(the)h(v)-5 b(alue)31 b(of)f -Ft(TERM)p Fu(.)150 2178 y Ft(LANG)288 b Fu(Used)28 b(to)h(determine)f +2744 y(dep)s(ending)d(on)h(the)h(v)-5 b(alue)31 b(of)f +Ft(TERM)p Fu(.)150 2904 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 2287 y(with)i(a)h(v)-5 b(ariable)31 -b(starting)g(with)f Ft(LC_)p Fu(.)150 2444 y Ft(LC_ALL)192 +(eci\014cally)g(selected)630 3013 y(with)i(a)h(v)-5 b(ariable)31 +b(starting)g(with)f Ft(LC_)p Fu(.)150 3173 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 2553 -y(a)i(lo)s(cale)h(category)-8 b(.)150 2710 y Ft(LC_COLLATE)630 -2819 y Fu(This)37 b(v)-5 b(ariable)38 b(determines)g(the)g(collation)i +Ft(LC_)f Fu(v)-5 b(ariable)29 b(sp)s(ecifying)630 3283 +y(a)i(lo)s(cale)h(category)-8 b(.)150 3443 y Ft(LC_COLLATE)630 +3553 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 -2929 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 3039 y(alence)e +3662 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 3772 y(alence)e (classes,)h(and)e(collating)i(sequences)e(within)f(\014lename)h -(expansion)g(and)f(pattern)630 3148 y(matc)m(hing)d(\(see)h(Section)f -(3.5.8)h([Filename)g(Expansion],)e(page)h(32\).)150 3305 +(expansion)g(and)f(pattern)630 3882 y(matc)m(hing)d(\(see)h(Section)f +(3.5.8)h([Filename)g(Expansion],)e(page)h(32\).)150 4042 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 3414 y(c)m(haracter)46 b(classes)g(within)e(\014lename)h +(of)630 4151 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 -3524 y(tion)31 b(3.5.8)h([Filename)g(Expansion],)e(page)h(32\).)150 -3680 y Ft(LC_MESSAGES)630 3790 y Fu(This)25 b(v)-5 b(ariable)27 +4261 y(tion)31 b(3.5.8)h([Filename)g(Expansion],)e(page)h(32\).)150 +4421 y Ft(LC_MESSAGES)630 4531 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 3900 y(ceded)31 b(b)m(y)f(a)h(`)p +f(strings)g(pre-)630 4640 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 4056 y Ft(LC_NUMERIC)630 -4166 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 4800 y Ft(LC_NUMERIC)630 +4910 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 -4322 y Ft(LC_TIME)144 b Fu(This)25 b(v)-5 b(ariable)26 +5070 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 4479 y Ft(LINENO)192 b Fu(The)32 +(time)i(formatting.)150 5230 y Ft(LINENO)192 b Fu(The)32 b(line)h(n)m(um)m(b)s(er)e(in)i(the)f(script)h(or)f(shell)h(function)f (curren)m(tly)h(executing.)49 b(If)32 b Ft(LINENO)630 -4589 y Fu(is)e(unset,)h(it)g(loses)g(its)f(sp)s(ecial)h(prop)s(erties,) -f(ev)m(en)h(if)g(it)g(is)f(subsequen)m(tly)g(reset.)150 -4745 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 4855 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 4964 y(Section)44 b(4.3.2)h([The)e(Shopt)g(Builtin],)k(page)d -(66\),)k(or)43 b(in)g(an)g(in)m(teractiv)m(e)j(shell)e(up)s(on)630 -5074 y(receipt)31 b(of)g(a)g Ft(SIGWINCH)p Fu(.)150 5230 -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 5340 y(standard)k Fm(gnu)g Fr(cpu-compan)m(y-system)h -Fu(format.)p eop end +5340 y Fu(is)e(unset,)h(it)g(loses)g(its)f(sp)s(ecial)h(prop)s(erties,) +f(ev)m(en)h(if)g(it)g(is)f(subsequen)m(tly)g(reset.)p +eop end %%Page: 83 89 TeXDict begin 83 88 bop 150 -116 a Fu(Chapter)30 b(5:)41 -b(Shell)30 b(V)-8 b(ariables)2459 b(83)150 299 y Ft(MAILCHECK)630 -408 y Fu(Ho)m(w)28 b(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 518 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 628 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 -737 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 847 y(equal)31 b(to)g(zero,)g(the)g(shell)g(disables)f -(mail)h(c)m(hec)m(king.)150 999 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 -1108 y(no)30 b(v)-5 b(ariable)31 b(name)g(is)f(supplied.)150 -1260 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 1412 -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 1521 y Fu(builtin)30 b(command.)150 -1673 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 1825 -y Ft(PIPESTATUS)630 1934 y Fu(An)23 b(arra)m(y)h(v)-5 -b(ariable)24 b(\(see)h(Section)f(6.7)h([Arra)m(ys],)g(page)f(95\))h -(con)m(taining)g(a)f(list)g(of)g(exit)g(sta-)630 2044 -y(tus)h(v)-5 b(alues)27 b(from)e(the)h(pro)s(cesses)g(in)f(the)h -(most-recen)m(tly-executed)j(foreground)c(pip)s(eline)630 -2153 y(\(whic)m(h)30 b(ma)m(y)h(con)m(tain)h(only)f(a)f(single)h -(command\).)150 2305 y Ft(POSIXLY_CORRECT)630 2415 y +b(Shell)30 b(V)-8 b(ariables)2459 b(83)150 299 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 408 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 518 y(Section)44 +b(4.3.2)h([The)e(Shopt)g(Builtin],)k(page)d(66\),)k(or)43 +b(in)g(an)g(in)m(teractiv)m(e)j(shell)e(up)s(on)630 628 +y(receipt)31 b(of)g(a)g Ft(SIGWINCH)p Fu(.)150 788 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 897 y(standard)k Fm(gnu)g Fr(cpu-compan)m(y-system)h +Fu(format.)150 1058 y Ft(MAILCHECK)630 1167 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 1277 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 1386 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 1496 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 1606 y(equal)31 +b(to)g(zero,)g(the)g(shell)g(disables)f(mail)h(c)m(hec)m(king.)150 +1766 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 1875 y(no)30 b(v)-5 +b(ariable)31 b(name)g(is)f(supplied.)150 2035 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 2196 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 +2305 y Fu(builtin)30 b(command.)150 2465 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 2626 y Ft(PIPESTATUS)630 2735 +y Fu(An)23 b(arra)m(y)h(v)-5 b(ariable)24 b(\(see)h(Section)f(6.7)h +([Arra)m(ys],)g(page)f(95\))h(con)m(taining)g(a)f(list)g(of)g(exit)g +(sta-)630 2845 y(tus)h(v)-5 b(alues)27 b(from)e(the)h(pro)s(cesses)g +(in)f(the)h(most-recen)m(tly-executed)j(foreground)c(pip)s(eline)630 +2954 y(\(whic)m(h)30 b(ma)m(y)h(con)m(tain)h(only)f(a)f(single)h +(command\).)150 3114 y Ft(POSIXLY_CORRECT)630 3224 y Fu(If)h(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 -2524 y Fu(mo)s(de)46 b(\(see)h(Section)g(6.11)g([Bash)g(POSIX)e(Mo)s +3334 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(100\))h(b)s(efore)e(reading)g(the)630 -2634 y(startup)38 b(\014les,)j(as)e(if)g(the)g Ft(--posix)d +3443 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 2744 y(set)31 b(while)f(the)h(shell)f(is)h +b(If)39 b(it)g(is)630 3553 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 2874 y Ft(set)47 b(-o)g(posix)630 3005 y +(command)870 3688 y Ft(set)47 b(-o)g(posix)630 3823 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 3114 y(it)d(w)m(as)g(not)f(already)h(set.)150 -3266 y Ft(PPID)288 b Fu(The)30 b(pro)s(cess)g Fm(id)g +b(if)630 3932 y(it)d(w)m(as)g(not)f(already)h(set.)150 +4092 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 3418 y -Ft(PROMPT_COMMAND)630 3528 y Fu(If)32 b(set,)h(the)f(v)-5 +b(v)-5 b(ariable)31 b(is)f(readonly)-8 b(.)150 4253 y +Ft(PROMPT_COMMAND)630 4362 y Fu(If)32 b(set,)h(the)f(v)-5 b(alue)33 b(is)f(in)m(terpreted)g(as)g(a)h(command)f(to)h(execute)g(b)s -(efore)f(the)g(prin)m(ting)g(of)630 3637 y(eac)m(h)g(primary)d(prompt)g -(\()p Ft($PS1)p Fu(\).)150 3789 y Ft(PROMPT_DIRTRIM)630 -3898 y Fu(If)e(set)g(to)h(a)g(n)m(um)m(b)s(er)e(greater)i(than)f(zero,) +(efore)f(the)g(prin)m(ting)g(of)630 4472 y(eac)m(h)g(primary)d(prompt)g +(\()p Ft($PS1)p Fu(\).)150 4632 y Ft(PROMPT_DIRTRIM)630 +4741 y Fu(If)e(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 4008 y(directory)35 b(comp)s(onen)m(ts)g(to)h(retain)f +(trailing)630 4851 y(directory)35 b(comp)s(onen)m(ts)g(to)h(retain)f (when)f(expanding)g(the)h Ft(\\w)f Fu(and)g Ft(\\W)g -Fu(prompt)g(string)630 4118 y(escap)s(es)21 b(\(see)h(Section)f(6.9)h +Fu(prompt)g(string)630 4961 y(escap)s(es)21 b(\(see)h(Section)f(6.9)h ([Con)m(trolling)g(the)f(Prompt],)h(page)f(98\).)39 b(Characters)21 -b(remo)m(v)m(ed)630 4227 y(are)31 b(replaced)g(with)f(an)g(ellipsis.) -150 4379 y Ft(PS0)336 b Fu(The)30 b(v)-5 b(alue)32 b(of)f(this)f +b(remo)m(v)m(ed)630 5070 y(are)31 b(replaced)g(with)f(an)g(ellipsis.) +150 5230 y Ft(PS0)336 b Fu(The)30 b(v)-5 b(alue)32 b(of)f(this)f (parameter)i(is)f(expanded)f(lik)m(e)i Fr(PS1)38 b Fu(and)30 -b(displa)m(y)m(ed)h(b)m(y)g(in)m(teractiv)m(e)630 4489 +b(displa)m(y)m(ed)h(b)m(y)g(in)m(teractiv)m(e)630 5340 y(shells)f(after)h(reading)g(a)g(command)f(and)f(b)s(efore)h(the)h -(command)f(is)h(executed.)150 4640 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 4750 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 4902 y Ft(PS4)336 b Fu(The)37 b(v)-5 b(alue)37 -b(of)g(this)g(parameter)h(is)f(expanded)f(lik)m(e)i Fr(PS1)44 -b Fu(and)37 b(the)g(expanded)f(v)-5 b(alue)38 b(is)630 -5011 y(the)d(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 -5121 y(set)k(\(see)h(Section)g(4.3.1)g([The)f(Set)g(Builtin],)j(page)e -(62\).)67 b(The)38 b(\014rst)g(c)m(haracter)j(of)e(the)630 -5230 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 -5340 y(lev)m(els)e(of)e(indirection.)42 b(The)29 b(default)i(is)f(`)p -Ft(+)h Fu('.)p eop end +(command)f(is)h(executed.)p eop end %%Page: 84 90 TeXDict begin 84 89 bop 150 -116 a Fu(Chapter)30 b(5:)41 -b(Shell)30 b(V)-8 b(ariables)2459 b(84)150 299 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 458 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 -568 y(0)e(and)e(32767.)41 b(Assigning)25 b(a)f(v)-5 b(alue)25 -b(to)g(this)f(v)-5 b(ariable)25 b(seeds)f(the)h(random)e(n)m(um)m(b)s -(er)g(gener-)630 677 y(ator.)41 b(If)27 b Ft(RANDOM)f -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)f(subsequen)m(tly)630 787 y(reset.)150 -946 y Ft(READLINE_LINE)630 1056 y Fu(The)g(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 1166 -y([Bash)i(Builtins],)g(page)g(51\).)150 1325 y Ft(READLINE_POINT)630 -1435 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 1544 y(-x)p Fu(')30 b(\(see)h(Section)h(4.2)f([Bash)g -(Builtins],)g(page)g(51\).)150 1704 y Ft(REPLY)240 b -Fu(The)30 b(default)g(v)-5 b(ariable)32 b(for)e(the)g -Ft(read)g Fu(builtin.)150 1863 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 -1973 y(Assignmen)m(t)i(to)g(this)g(v)-5 b(ariable)43 +b(Shell)30 b(V)-8 b(ariables)2459 b(84)150 299 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 408 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 568 y Ft(PS4)336 b Fu(The)37 b(v)-5 +b(alue)37 b(of)g(this)g(parameter)h(is)f(expanded)f(lik)m(e)i +Fr(PS1)44 b Fu(and)37 b(the)g(expanded)f(v)-5 b(alue)38 +b(is)630 677 y(the)d(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 +787 y(set)k(\(see)h(Section)g(4.3.1)g([The)f(Set)g(Builtin],)j(page)e +(62\).)67 b(The)38 b(\014rst)g(c)m(haracter)j(of)e(the)630 +897 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 +1006 y(lev)m(els)e(of)e(indirection.)42 b(The)29 b(default)i(is)f(`)p +Ft(+)h Fu('.)150 1166 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 1325 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 1435 y(0)e(and)e(32767.)41 +b(Assigning)25 b(a)f(v)-5 b(alue)25 b(to)g(this)f(v)-5 +b(ariable)25 b(seeds)f(the)h(random)e(n)m(um)m(b)s(er)g(gener-)630 +1544 y(ator.)41 b(If)27 b Ft(RANDOM)f 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)f +(subsequen)m(tly)630 1654 y(reset.)150 1813 y Ft(READLINE_LINE)630 +1923 y Fu(The)g(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 2032 y([Bash)i(Builtins],)g(page)g(51\).)150 +2192 y Ft(READLINE_POINT)630 2301 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 2411 y(-x)p Fu(')30 +b(\(see)h(Section)h(4.2)f([Bash)g(Builtins],)g(page)g(51\).)150 +2570 y Ft(REPLY)240 b Fu(The)30 b(default)g(v)-5 b(ariable)32 +b(for)e(the)g Ft(read)g Fu(builtin.)150 2730 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 +2839 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 2082 y(expanded)35 b(v)-5 +b(assigned,)j(and)c(the)630 2949 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 2192 y(the)c(assignmen)m +(n)m(um)m(b)s(er)f(of)h(seconds)g(since)630 3059 y(the)c(assignmen)m (t.)46 b(If)31 b Ft(SECONDS)f Fu(is)h(unset,)h(it)h(loses)f(its)g(sp)s (ecial)h(prop)s(erties,)e(ev)m(en)i(if)f(it)g(is)630 -2301 y(subsequen)m(tly)e(reset.)150 2461 y Ft(SHELL)240 +3168 y(subsequen)m(tly)e(reset.)150 3328 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 2570 y(set)36 b(when)f(the)h(shell)g +b(If)25 b(it)g(is)h(not)630 3437 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 2680 y(user's)30 b(login)h(shell.)150 -2839 y Ft(SHELLOPTS)630 2949 y Fu(A)g(colon-separated)h(list)f(of)g +g(curren)m(t)630 3547 y(user's)30 b(login)h(shell.)150 +3706 y Ft(SHELLOPTS)630 3816 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 3059 y(argumen)m(t)28 +(list)g(is)g(a)g(v)-5 b(alid)630 3925 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 -3168 y(Set)g(Builtin],)h(page)f(62\).)42 b(The)28 b(options)h(app)s +4035 y(Set)g(Builtin],)h(page)f(62\).)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 -3278 y(as)g(`)p Ft(on)p Fu(')f(b)m(y)h(`)p Ft(set)g(-o)p +4144 y(as)g(`)p Ft(on)p Fu(')f(b)m(y)h(`)p Ft(set)g(-o)p Fu('.)40 b(If)29 b(this)h(v)-5 b(ariable)30 b(is)g(in)f(the)h(en)m -(vironmen)m(t)g(when)f(Bash)h(starts)g(up,)630 3387 y(eac)m(h)41 +(vironmen)m(t)g(when)f(Bash)h(starts)g(up,)630 4254 y(eac)m(h)41 b(shell)e(option)h(in)f(the)h(list)g(will)f(b)s(e)g(enabled)h(b)s -(efore)f(reading)g(an)m(y)h(startup)f(\014les.)630 3497 +(efore)f(reading)g(an)m(y)h(startup)f(\014les.)630 4364 y(This)30 b(v)-5 b(ariable)31 b(is)f(readonly)-8 b(.)150 -3656 y Ft(SHLVL)240 b Fu(Incremen)m(ted)21 b(b)m(y)g(one)g(eac)m(h)h +4523 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 3766 y(to)31 b(b)s(e)f(a)h(coun)m(t)g +b(This)20 b(is)h(in)m(tended)630 4633 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 -3925 y Ft(SRANDOM)144 b Fu(This)36 b(v)-5 b(ariable)37 +4792 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 4035 y(erenced.)47 b(The)32 +(h)j(time)f(it)g(is)g(ref-)630 4902 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 4144 y Ft(/dev/urandom)26 +(systems)h(that)g(supp)s(ort)630 5011 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 4254 y(the)39 +(er)f(has)h(no)g(relationship)h(to)630 5121 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 4364 +s(er)f(generator)j(cannot)g(b)s(e)e(seeded,)630 5230 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 4473 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 -4633 y Ft(TIMEFORMAT)630 4742 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 4852 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 4961 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 5071 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 -5181 y(are)31 b(as)f(follo)m(ws;)i(the)f(braces)f(denote)h(optional)h -(p)s(ortions.)630 5340 y Ft(\045\045)384 b Fu(A)30 b(literal)i(`)p -Ft(\045)p Fu('.)p eop end +Fu(is)j(unset,)g(it)f(loses)i(its)630 5340 y(sp)s(ecial)c(prop)s +(erties,)f(ev)m(en)h(if)f(it)h(is)g(subsequen)m(tly)f(reset.)p +eop end %%Page: 85 91 TeXDict begin 85 90 bop 150 -116 a Fu(Chapter)30 b(5:)41 -b(Shell)30 b(V)-8 b(ariables)2459 b(85)630 299 y Ft(\045[)p -Fj(p)p Ft(][l]R)96 b Fu(The)30 b(elapsed)h(time)g(in)f(seconds.)630 -458 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 -618 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 -777 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 936 +b(Shell)30 b(V)-8 b(ariables)2459 b(85)150 299 y Ft(TIMEFORMAT)630 +408 y Fu(The)30 b(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 +518 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 +628 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 737 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 +847 y(are)31 b(as)f(follo)m(ws;)i(the)f(braces)f(denote)h(optional)h(p) +s(ortions.)630 1006 y Ft(\045\045)384 b Fu(A)30 b(literal)i(`)p +Ft(\045)p Fu('.)630 1166 y Ft(\045[)p Fj(p)p Ft(][l]R)96 +b Fu(The)30 b(elapsed)h(time)g(in)f(seconds.)630 1325 +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 +1484 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 +1644 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 1803 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 -1046 y(after)36 b(a)f(decimal)i(p)s(oin)m(t.)55 b(A)35 +1913 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 1156 y(output.)48 b(A)m(t)34 +(fraction)g(to)g(b)s(e)630 2022 y(output.)48 b(A)m(t)34 b(most)f(three)g(places)h(after)f(the)g(decimal)h(p)s(oin)m(t)f(ma)m(y) -h(b)s(e)e(sp)s(eci\014ed;)i(v)-5 b(alues)630 1265 y(of)31 +h(b)s(e)e(sp)s(eci\014ed;)i(v)-5 b(alues)630 2132 y(of)31 b Fr(p)h Fu(greater)g(than)e(3)h(are)f(c)m(hanged)h(to)g(3.)42 b(If)29 b Fr(p)k Fu(is)d(not)h(sp)s(eci\014ed,)f(the)h(v)-5 -b(alue)30 b(3)h(is)g(used.)630 1400 y(The)54 b(optional)h +b(alue)30 b(3)h(is)g(used.)630 2267 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 1509 y Fr(MM)10 +b(min)m(utes,)61 b(of)54 b(the)g(form)630 2376 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 1619 y(included.)630 1753 y(If)30 +(fraction)h(is)630 2486 y(included.)630 2620 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 1888 y Ft +(it)h(had)f(the)h(v)-5 b(alue)870 2755 y Ft ($'\\nreal\\t\0453lR\\nuser\\t\0453)o(lU\\n)o(sys\\)o(t\0453)o(lS')630 -2022 y Fu(If)37 b(the)g(v)-5 b(alue)38 b(is)f(n)m(ull,)i(no)f(timing)f +2889 y Fu(If)37 b(the)g(v)-5 b(alue)38 b(is)f(n)m(ull,)i(no)f(timing)f (information)h(is)f(displa)m(y)m(ed.)62 b(A)37 b(trailing)i(newline)e -(is)630 2132 y(added)30 b(when)f(the)i(format)f(string)h(is)f(displa)m -(y)m(ed.)150 2291 y Ft(TMOUT)240 b Fu(If)22 b(set)h(to)g(a)g(v)-5 +(is)630 2999 y(added)30 b(when)f(the)i(format)f(string)h(is)f(displa)m +(y)m(ed.)150 3158 y Ft(TMOUT)240 b Fu(If)22 b(set)h(to)g(a)g(v)-5 b(alue)23 b(greater)h(than)e(zero,)j Ft(TMOUT)d Fu(is)g(treated)i(as)e -(the)h(default)g(timeout)g(for)g(the)630 2401 y Ft(read)31 +(the)h(default)g(timeout)g(for)g(the)630 3268 y Ft(read)31 b Fu(builtin)h(\(see)h(Section)f(4.2)i([Bash)e(Builtins],)h(page)g -(51\).)47 b(The)32 b Ft(select)e Fu(command)630 2511 +(51\).)47 b(The)32 b Ft(select)e Fu(command)630 3377 y(\(see)f(Section)h(3.2.4.2)g([Conditional)g(Constructs],)e(page)i -(11\))f(terminates)g(if)g(input)e(do)s(es)630 2620 y(not)k(arriv)m(e)g +(11\))f(terminates)g(if)g(input)e(do)s(es)630 3487 y(not)k(arriv)m(e)g (after)g Ft(TMOUT)e Fu(seconds)h(when)f(input)h(is)g(coming)h(from)f(a) -h(terminal.)630 2755 y(In)40 b(an)h(in)m(teractiv)m(e)i(shell,)h(the)d +h(terminal.)630 3621 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 2864 y(w)m(ait)28 b(for)e(a)g(line)h(of)g(input) +(of)h(seconds)f(to)630 3731 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 2974 y(w)m(aiting)32 b(for)e(that)h(n)m(um)m +b(terminates)h(after)630 3841 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 3133 y Ft(TMPDIR)192 b Fu(If)39 +(es)h(not)h(arriv)m(e.)150 4000 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 3243 +g(directory)g(in)f(whic)m(h)g(Bash)h(creates)630 4110 y(temp)s(orary)30 b(\014les)g(for)g(the)h(shell's)g(use.)150 -3402 y Ft(UID)336 b Fu(The)30 b(n)m(umeric)g(real)h(user)f(id)g(of)g +4269 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: 86 92 @@ -14692,7 +14697,7 @@ b(after)g(`)p Ft(set)29 b(-u)p Fu(')k(has)g(b)s(een)330 (errors)g(caused)g(b)m(y)h Fr(v)-5 b(ar)54 b Fu(b)s(eing)48 b(unset)g(or)h(n)m(ull)f(in)330 2128 y Ft(${)p Fj(var)p Ft(:?)p Fj(word)p Ft(})27 b Fu(expansions)j(\(see)h(Section)h(3.5.3)g -([Shell)e(P)m(arameter)i(Expansion],)e(page)h(25\).)154 +([Shell)e(P)m(arameter)i(Expansion],)e(page)h(24\).)154 2261 y(16.)61 b(Redirection)31 b(errors)f(encoun)m(tered)h(b)m(y)f (shell)h(builtins)f(will)g(not)h(cause)g(the)f(shell)h(to)g(exit.)154 2393 y(17.)61 b(When)26 b(running)f(in)i Fm(posix)e Fu(mo)s(de,)j(a)f @@ -16527,67 +16532,69 @@ b(it)g(to)h(`)p Ft(on)p Fu(')1110 5230 y(means)26 b(that)h(the)f(text)h (are)g(longer)h(than)e(the)h(width)f(of)h(the)p eop end %%Page: 116 122 TeXDict begin 116 121 bop 150 -116 a Fu(Chapter)30 b(8:)41 -b(Command)29 b(Line)i(Editing)2062 b(116)1110 299 y(screen,)27 -b(instead)g(of)f(wrapping)f(on)m(to)i(a)f(new)g(screen)g(line.)39 -b(By)27 b(default,)g(this)1110 408 y(v)-5 b(ariable)31 -b(is)g(set)f(to)i(`)p Ft(off)p Fu('.)630 628 y Ft(input-meta)1110 -737 y Fu(If)f(set)g(to)h(`)p Ft(on)p Fu(',)g(Readline)g(will)f(enable)h +b(Command)29 b(Line)i(Editing)2062 b(116)1110 299 y(screen,)28 +b(instead)g(of)f(wrapping)f(on)m(to)i(a)g(new)e(screen)i(line.)40 +b(This)26 b(v)-5 b(ariable)28 b(is)1110 408 y(automatically)k(set)e(to) +g(`)p Ft(on)p Fu(')f(for)g(terminals)g(of)h(heigh)m(t)g(1.)41 +b(By)29 b(default,)h(this)1110 518 y(v)-5 b(ariable)31 +b(is)g(set)f(to)i(`)p Ft(off)p Fu('.)630 719 y Ft(input-meta)1110 +829 y Fu(If)f(set)g(to)h(`)p Ft(on)p Fu(',)g(Readline)g(will)f(enable)h (eigh)m(t-bit)h(input)d(\(it)i(will)f(not)h(clear)1110 -847 y(the)40 b(eigh)m(th)g(bit)g(in)f(the)h(c)m(haracters)h(it)f -(reads\),)j(regardless)c(of)h(what)g(the)1110 956 y(terminal)k(claims)h -(it)f(can)g(supp)s(ort.)79 b(The)44 b(default)g(v)-5 -b(alue)44 b(is)g(`)p Ft(off)p Fu(',)j(but)1110 1066 y(Readline)24 +938 y(the)40 b(eigh)m(th)g(bit)g(in)f(the)h(c)m(haracters)h(it)f +(reads\),)j(regardless)c(of)h(what)g(the)1110 1048 y(terminal)k(claims) +h(it)f(can)g(supp)s(ort.)79 b(The)44 b(default)g(v)-5 +b(alue)44 b(is)g(`)p Ft(off)p Fu(',)j(but)1110 1157 y(Readline)24 b(will)h(set)f(it)g(to)h(`)p Ft(on)p Fu(')e(if)h(the)g(lo)s(cale)i(con) -m(tains)f(eigh)m(t-bit)g(c)m(haracters.)1110 1176 y(The)30 +m(tains)f(eigh)m(t-bit)g(c)m(haracters.)1110 1267 y(The)30 b(name)g Ft(meta-flag)e Fu(is)j(a)f(synon)m(ym)g(for)g(this)h(v)-5 -b(ariable.)630 1395 y Ft(isearch-terminators)1110 1504 +b(ariable.)630 1468 y Ft(isearch-terminators)1110 1577 y Fu(The)51 b(string)h(of)g(c)m(haracters)h(that)f(should)e(terminate)j -(an)f(incremen)m(tal)1110 1614 y(searc)m(h)25 b(without)g(subsequen)m +(an)f(incremen)m(tal)1110 1687 y(searc)m(h)25 b(without)g(subsequen)m (tly)g(executing)h(the)f(c)m(haracter)h(as)f(a)g(command)1110 -1724 y(\(see)38 b(Section)g(8.2.5)h([Searc)m(hing],)h(page)e(111\).)62 -b(If)37 b(this)g(v)-5 b(ariable)38 b(has)f(not)1110 1833 +1797 y(\(see)38 b(Section)g(8.2.5)h([Searc)m(hing],)h(page)e(111\).)62 +b(If)37 b(this)g(v)-5 b(ariable)38 b(has)f(not)1110 1906 y(b)s(een)e(giv)m(en)h(a)g(v)-5 b(alue,)37 b(the)f(c)m(haracters)h Ft(ESC)d Fu(and)h Fj(C-J)g Fu(will)h(terminate)g(an)1110 -1943 y(incremen)m(tal)c(searc)m(h.)630 2162 y Ft(keymap)192 +2016 y(incremen)m(tal)c(searc)m(h.)630 2217 y Ft(keymap)192 b Fu(Sets)64 b(Readline's)i(idea)f(of)f(the)h(curren)m(t)f(k)m(eymap)h -(for)f(k)m(ey)h(binding)1110 2271 y(commands.)71 b(Built-in)41 +(for)f(k)m(ey)h(binding)1110 2326 y(commands.)71 b(Built-in)41 b Ft(keymap)e Fu(names)h(are)h Ft(emacs)p Fu(,)h Ft(emacs-standard)p -Fu(,)1110 2381 y Ft(emacs-meta)p Fu(,)99 b Ft(emacs-ctlx)p +Fu(,)1110 2436 y Ft(emacs-meta)p Fu(,)99 b Ft(emacs-ctlx)p Fu(,)f Ft(vi)p Fu(,)j Ft(vi-move)p Fu(,)f Ft(vi-command)p -Fu(,)f(and)1110 2491 y Ft(vi-insert)p Fu(.)81 b Ft(vi)44 +Fu(,)f(and)1110 2545 y Ft(vi-insert)p Fu(.)81 b Ft(vi)44 b Fu(is)h(equiv)-5 b(alen)m(t)46 b(to)g Ft(vi-command)c -Fu(\()p Ft(vi-move)h Fu(is)i(also)h(a)1110 2600 y(synon)m(ym\);)41 +Fu(\()p Ft(vi-move)h Fu(is)i(also)h(a)1110 2655 y(synon)m(ym\);)41 b Ft(emacs)c Fu(is)h(equiv)-5 b(alen)m(t)39 b(to)f Ft(emacs-standard)p -Fu(.)59 b(Applications)1110 2710 y(ma)m(y)32 b(add)e(additional)i +Fu(.)59 b(Applications)1110 2765 y(ma)m(y)32 b(add)e(additional)i (names.)43 b(The)30 b(default)h(v)-5 b(alue)32 b(is)f -Ft(emacs)p Fu(.)41 b(The)30 b(v)-5 b(alue)1110 2819 y(of)31 +Ft(emacs)p Fu(.)41 b(The)30 b(v)-5 b(alue)1110 2874 y(of)31 b(the)f Ft(editing-mode)d Fu(v)-5 b(ariable)31 b(also)h(a\013ects)f -(the)g(default)g(k)m(eymap.)630 3039 y Ft(keyseq-timeout)1110 -3148 y Fu(Sp)s(eci\014es)25 b(the)g(duration)g(Readline)h(will)g(w)m -(ait)g(for)g(a)f(c)m(haracter)i(when)e(read-)1110 3258 +(the)g(default)g(k)m(eymap.)630 3075 y Ft(keyseq-timeout)1110 +3185 y Fu(Sp)s(eci\014es)25 b(the)g(duration)g(Readline)h(will)g(w)m +(ait)g(for)g(a)f(c)m(haracter)i(when)e(read-)1110 3294 y(ing)30 b(an)g(am)m(biguous)g(k)m(ey)h(sequence)f(\(one)g(that)h(can)f -(form)g(a)g(complete)h(k)m(ey)1110 3367 y(sequence)j(using)e(the)i +(form)g(a)g(complete)h(k)m(ey)1110 3404 y(sequence)j(using)e(the)i (input)e(read)h(so)g(far,)h(or)g(can)f(tak)m(e)i(additional)f(input) -1110 3477 y(to)g(complete)g(a)f(longer)h(k)m(ey)f(sequence\).)49 +1110 3513 y(to)g(complete)g(a)f(longer)h(k)m(ey)f(sequence\).)49 b(If)33 b(no)f(input)g(is)h(receiv)m(ed)h(within)1110 -3587 y(the)43 b(timeout,)48 b(Readline)43 b(will)g(use)g(the)g(shorter) -g(but)f(complete)j(k)m(ey)e(se-)1110 3696 y(quence.)c(Readline)26 +3623 y(the)43 b(timeout,)48 b(Readline)43 b(will)g(use)g(the)g(shorter) +g(but)f(complete)j(k)m(ey)e(se-)1110 3733 y(quence.)c(Readline)26 b(uses)f(this)h(v)-5 b(alue)26 b(to)g(determine)g(whether)f(or)g(not)h -(input)1110 3806 y(is)31 b(a)m(v)-5 b(ailable)33 b(on)d(the)h(curren)m +(input)1110 3842 y(is)31 b(a)m(v)-5 b(ailable)33 b(on)d(the)h(curren)m (t)f(input)g(source)h(\()p Ft(rl_instream)d Fu(b)m(y)i(default\).)1110 -3915 y(The)25 b(v)-5 b(alue)26 b(is)f(sp)s(eci\014ed)f(in)h +3952 y(The)25 b(v)-5 b(alue)26 b(is)f(sp)s(eci\014ed)f(in)h (milliseconds,)j(so)d(a)h(v)-5 b(alue)26 b(of)f(1000)i(means)e(that) -1110 4025 y(Readline)e(will)g(w)m(ait)g(one)g(second)f(for)g +1110 4061 y(Readline)e(will)g(w)m(ait)g(one)g(second)f(for)g (additional)i(input.)37 b(If)22 b(this)g(v)-5 b(ariable)23 -b(is)1110 4134 y(set)28 b(to)h(a)f(v)-5 b(alue)29 b(less)f(than)g(or)f +b(is)1110 4171 y(set)28 b(to)h(a)f(v)-5 b(alue)29 b(less)f(than)g(or)f (equal)i(to)f(zero,)i(or)e(to)g(a)h(non-n)m(umeric)e(v)-5 -b(alue,)1110 4244 y(Readline)30 b(will)f(w)m(ait)i(un)m(til)e(another)h +b(alue,)1110 4281 y(Readline)30 b(will)f(w)m(ait)i(un)m(til)e(another)h (k)m(ey)g(is)f(pressed)g(to)h(decide)f(whic)m(h)g(k)m(ey)1110 -4354 y(sequence)i(to)g(complete.)42 b(The)30 b(default)g(v)-5 -b(alue)31 b(is)g Ft(500)p Fu(.)630 4573 y Ft(mark-directories)1110 -4682 y Fu(If)38 b(set)g(to)h(`)p Ft(on)p Fu(',)i(completed)e(directory) +4390 y(sequence)i(to)g(complete.)42 b(The)30 b(default)g(v)-5 +b(alue)31 b(is)g Ft(500)p Fu(.)630 4591 y Ft(mark-directories)1110 +4701 y Fu(If)38 b(set)g(to)h(`)p Ft(on)p Fu(',)i(completed)e(directory) f(names)g(ha)m(v)m(e)i(a)e(slash)g(app)s(ended.)1110 -4792 y(The)30 b(default)g(is)h(`)p Ft(on)p Fu('.)630 +4810 y(The)30 b(default)g(is)h(`)p Ft(on)p Fu('.)630 5011 y Ft(mark-modified-lines)1110 5121 y Fu(This)k(v)-5 b(ariable,)38 b(when)d(set)h(to)h(`)p Ft(on)p Fu(',)g(causes)g (Readline)f(to)h(displa)m(y)f(an)f(as-)1110 5230 y(terisk)f(\(`)p @@ -19366,33 +19373,33 @@ Ft(#)p Fu(',)g(`)p Ft(\045\045)p Fu(')e(and)f(`)p Ft(##)p Fu(')h(expansions)g(to)g(remo)m(v)m(e)330 2342 y(leading)f(or)f (trailing)h(substrings)e(from)g(v)-5 b(ariable)35 b(v)-5 b(alues)35 b(\(see)g(Section)g(3.5.3)g([Shell)g(P)m(arameter)330 -2452 y(Expansion],)30 b(page)h(25\).)225 2587 y Fq(\017)60 +2452 y(Expansion],)30 b(page)h(24\).)225 2587 y Fq(\017)60 b Fu(The)46 b(expansion)g Ft(${#xx})p Fu(,)j(whic)m(h)d(returns)f(the)i (length)f(of)h Ft(${xx})p Fu(,)i(is)e(supp)s(orted)d(\(see)j(Sec-)330 2697 y(tion)31 b(3.5.3)h([Shell)f(P)m(arameter)g(Expansion],)f(page)i -(25\).)225 2832 y Fq(\017)60 b Fu(The)30 b(expansion)g +(24\).)225 2832 y Fq(\017)60 b Fu(The)30 b(expansion)g Ft(${var:)p Fr(o\013set)r Ft([:)p Fr(length)p Ft(]})p Fu(,)g(whic)m(h)g(expands)g(to)h(the)g(substring)e(of)i Ft(var)p Fu('s)e(v)-5 b(alue)330 2942 y(of)43 b(length)g Fr(length)p Fu(,)k(b)s(eginning)42 b(at)i Fr(o\013set)p Fu(,)j(is)c(presen)m(t)g(\(see)g(Section)h(3.5.3)h([Shell)e(P)m -(arameter)330 3051 y(Expansion],)30 b(page)h(25\).)225 +(arameter)330 3051 y(Expansion],)30 b(page)h(24\).)225 3187 y Fq(\017)60 b Fu(The)21 b(expansion)f Ft(${var/[/])p Fr(pattern)p Ft([/)p Fr(replacemen)m(t)r Ft(]})p Fu(,)i(whic)m(h)e (matc)m(hes)j Fr(pattern)e Fu(and)f(replaces)330 3296 y(it)29 b(with)e Fr(replacemen)m(t)32 b Fu(in)c(the)g(v)-5 b(alue)29 b(of)f Ft(var)p Fu(,)g(is)g(a)m(v)-5 b(ailable)31 b(\(see)e(Section)f(3.5.3)i([Shell)f(P)m(arameter)330 -3406 y(Expansion],)h(page)h(25\).)225 3541 y Fq(\017)60 +3406 y(Expansion],)h(page)h(24\).)225 3541 y Fq(\017)60 b Fu(The)33 b(expansion)g Ft(${!)p Fj(prefix)p Ft(*})d Fu(expansion,)k(whic)m(h)e(expands)h(to)h(the)f(names)g(of)g(all)h (shell)f(v)-5 b(ari-)330 3651 y(ables)36 b(whose)g(names)g(b)s(egin)g (with)g Fr(pre\014x)p Fu(,)g(is)g(a)m(v)-5 b(ailable)39 b(\(see)e(Section)g(3.5.3)g([Shell)g(P)m(arameter)330 -3761 y(Expansion],)30 b(page)h(25\).)225 3896 y Fq(\017)60 +3761 y(Expansion],)30 b(page)h(24\).)225 3896 y Fq(\017)60 b Fu(Bash)22 b(has)f Fr(indirect)j Fu(v)-5 b(ariable)22 b(expansion)g(using)f Ft(${!word})e Fu(\(see)k(Section)f(3.5.3)i -([Shell)e(P)m(arameter)330 4006 y(Expansion],)30 b(page)h(25\).)225 +([Shell)e(P)m(arameter)330 4006 y(Expansion],)30 b(page)h(24\).)225 4141 y Fq(\017)60 b Fu(Bash)31 b(can)f(expand)g(p)s(ositional)h (parameters)g(b)s(ey)m(ond)e Ft($9)h Fu(using)g Ft(${)p Fj(num)p Ft(})p Fu(.)225 4276 y Fq(\017)60 b Fu(The)27 @@ -20663,7 +20670,7 @@ g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g (:)31 b Fb(21)150 2526 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(22)150 2613 y Fe($0)16 b Fc(:)e(:)f(:)g(:)g(:)g(:)g(:)h +(:)g(:)31 b Fb(74)150 2613 y Fe($0)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(22)146 2876 y Fs(*)150 2994 y Fe(*)19 @@ -20684,7 +20691,7 @@ f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)33 b Fb(21)p 156 4364 41 6 v 150 4482 a 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(:)g(:)g(:)33 b Fb(22)146 4736 y Fs(0)150 4854 y +(:)f(:)g(:)g(:)33 b Fb(74)146 4736 y Fs(0)150 4854 y Fe(0)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(:)g(:)g(:)33 @@ -20694,7 +20701,7 @@ Fc(:)16 b(:)d(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g 23 b Fb(108)2021 954 y Fs(B)2025 1074 y Fe(BASH)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(74)2025 1163 +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)26 b Fb(75)2025 1163 y Fe(BASH_ALIASES)8 b Fc(:)15 b(:)f(:)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(:)22 b Fb(75)2025 1251 y Fe(BASH_ARGC)15 @@ -20705,7 +20712,7 @@ g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)30 b Fb(75)2025 1429 y Fe(BASH_ARGV0)13 b Fc(:)i(:)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(:)g(:)g(:)g(:)g(:)h(:)27 b Fb(75)2025 +g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)27 b Fb(76)2025 1517 y Fe(BASH_CMDS)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(76)2025 1606 @@ -20727,7 +20734,7 @@ Fc(:)17 b(:)c(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(76)2025 2138 y Fe(BASH_REMATCH)8 b Fc(:)15 b(:)f(:)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(:)22 b Fb(76)2025 2226 y Fe(BASH_SOURCE)10 +(:)g(:)g(:)g(:)g(:)g(:)h(:)22 b Fb(77)2025 2226 y Fe(BASH_SOURCE)10 b Fc(:)16 b(:)d(:)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(:)25 b Fb(77)2025 2315 y Fe(BASH_SUBSHELL)g Fc(:)13 @@ -20760,7 +20767,7 @@ b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(74)2025 3506 y Fe(CHILD_MAX)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(77)2025 +f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)30 b Fb(78)2025 3595 y Fe(colored-completion-prefix)7 b Fc(:)18 b(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(113)2025 3683 y Fe(colored-stats)h Fc(:)13 b(:)g(:)g(:)g(:)h(:)f @@ -20804,7 +20811,7 @@ y Fe(completion-query-items)14 b Fc(:)k(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g b Fb(114)2025 5012 y Fe(COMPREPLY)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(78)2025 5101 y Fe(convert-meta)25 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:) +Fb(79)2025 5101 y Fe(convert-meta)25 b Fc(:)13 b(:)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(:)38 b Fb(114)2025 5188 y Fe(COPROC)6 b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f @@ -20857,10 +20864,10 @@ y Fe(FCEDIT)6 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)20 b Fb(79)150 2392 y Fe(FIGNORE)i 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(79)150 +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)35 b Fb(80)150 2481 y Fe(FUNCNAME)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(79)150 2568 +h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)32 b Fb(80)150 2568 y Fe(FUNCNEST)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(80)146 2844 y @@ -20958,11 +20965,11 @@ b(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h g(:)g(:)g(:)g(:)g(:)21 b Fb(82)2025 2446 y Fe(LINES)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(:)g(:)h(:)f(:)g(:)23 b Fb(82)2021 2746 +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)23 b Fb(83)2021 2746 y Fs(M)2025 2872 y Fe(MACHTYPE)18 b Fc(:)d(:)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(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)33 b -Fb(82)2025 2962 y Fe(MAIL)11 b Fc(:)j(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g +Fb(83)2025 2962 y Fe(MAIL)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(74)2025 3052 y Fe(MAILCHECK)15 b Fc(:)g(:)f(:)f(:)g(:)g(:)g(:)g(:) @@ -21038,10 +21045,10 @@ g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)28 b Fb(74)150 1281 y Fe(PS3)14 b Fc(:)f(:)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(:)h(:)f(:)g(:)g(:)28 -b Fb(83)150 1369 y Fe(PS4)14 b Fc(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h +b Fb(84)150 1369 y Fe(PS4)14 b Fc(:)f(:)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(:)h(:)f(:)g(:)g(:)28 -b Fb(83)150 1456 y Fe(PWD)14 b Fc(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h +b Fb(84)150 1456 y Fe(PWD)14 b Fc(:)f(:)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(:)h(:)f(:)g(:)g(:)28 b Fb(84)146 1689 y Fs(R)150 1804 y Fe(RANDOM)6 b Fc(:)15 @@ -21090,7 +21097,7 @@ b Fc(:)16 b(:)d(:)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(:) 23 b Fb(7)2025 975 y Fe(TIMEFORMAT)13 b Fc(:)i(:)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(:)g(:)g(:)g(:)g(:)h(:)27 b Fb(84)2025 +g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)27 b Fb(85)2025 1066 y Fe(TMOUT)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(:)g(:)h(:)f(:)g(:)23 @@ -21491,7 +21498,7 @@ b 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(:)32 b Fb(32)150 3854 y(expansion,)26 b(parameter)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)34 b Fb(25)150 3944 y(expansion,)26 b(pathname)7 +g(:)34 b Fb(24)150 3944 y(expansion,)26 b(pathname)7 b Fc(:)13 b(:)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(:)22 b Fb(32)150 4033 y(expansion,)k(tilde)14 b Fc(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g @@ -21588,7 +21595,7 @@ Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g 37 b Fb(3)146 1184 y Fs(P)150 1300 y Fb(parameter)26 b(expansion)13 b Fc(:)h(:)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(:)28 -b Fb(25)150 1388 y(parameters)c Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g +b Fb(24)150 1388 y(parameters)c Fc(:)13 b(:)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(:)37 b Fb(20)150 1475 y(parameters,)27 b(p)r(ositional)7 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)g diff --git a/doc/bashref.texi b/doc/bashref.texi index bbd6cef..8afce4b 100644 --- a/doc/bashref.texi +++ b/doc/bashref.texi @@ -1375,16 +1375,16 @@ shell context; no new process is created to interpret them. Functions are declared using this syntax: @rwindex function @example -@var{name} () @var{compound-command} [ @var{redirections} ] +@var{fname} () @var{compound-command} [ @var{redirections} ] @end example or @example -function @var{name} [()] @var{compound-command} [ @var{redirections} ] +function @var{fname} [()] @var{compound-command} [ @var{redirections} ] @end example -This defines a shell function named @var{name}. The reserved +This defines a shell function named @var{fname}. The reserved word @code{function} is optional. If the @code{function} reserved word is supplied, the parentheses are optional. @@ -1394,14 +1394,16 @@ That command is usually a @var{list} enclosed between @{ and @}, but may be any compound command listed above, with one exception: If the @code{function} reserved word is used, but the parentheses are not supplied, the braces are required. -@var{compound-command} is executed whenever @var{name} is specified as the +@var{compound-command} is executed whenever @var{fname} is specified as the name of a command. When the shell is in @sc{posix} mode (@pxref{Bash POSIX Mode}), -@var{name} may not be the same as one of the special builtins +@var{fname} must be a valid shell @var{name} and +may not be the same as one of the special builtins (@pxref{Special Builtins}). +In default mode, a function name can be any unquoted shell word that does +not contain @samp{$}. Any redirections (@pxref{Redirections}) associated with the shell function are performed when the function is executed. - A function definition may be deleted using the @option{-f} option to the @code{unset} builtin (@pxref{Bourne Shell Builtins}). @@ -1746,18 +1748,6 @@ If Bash is started with the @option{-c} option (@pxref{Invoking Bash}), then @code{$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. - -@item _ -@vindex $_ -($_, an underscore.) -At shell startup, set to the absolute pathname used to invoke the -shell or shell script being executed as passed in the environment -or argument list. -Subsequently, expands to the last argument to the previous simple -command executed in the foreground, after expansion. -Also set to the full pathname used to invoke each command executed -and placed in the environment exported to that command. -When checking mail, this parameter holds the name of the mail file. @end vtable @node Shell Expansions @@ -5649,6 +5639,18 @@ variables for controlling the job control facilities @vtable @code +@item _ +@vindex $_ +($_, an underscore.) +At shell startup, set to the absolute pathname used to invoke the +shell or shell script being executed as passed in the environment +or argument list. +Subsequently, expands to the last argument to the previous simple +command executed in the foreground, after expansion. +Also set to the full pathname used to invoke each command executed +and placed in the environment exported to that command. +When checking mail, this parameter holds the name of the mail file. + @item BASH The full pathname used to execute the current instance of Bash. diff --git a/doc/bashref.toc b/doc/bashref.toc index 216354e..883c755 100644 --- a/doc/bashref.toc +++ b/doc/bashref.toc @@ -29,7 +29,7 @@ @numsecentry{Shell Expansions}{3.5}{Shell Expansions}{22} @numsubsecentry{Brace Expansion}{3.5.1}{Brace Expansion}{23} @numsubsecentry{Tilde Expansion}{3.5.2}{Tilde Expansion}{24} -@numsubsecentry{Shell Parameter Expansion}{3.5.3}{Shell Parameter Expansion}{25} +@numsubsecentry{Shell Parameter Expansion}{3.5.3}{Shell Parameter Expansion}{24} @numsubsecentry{Command Substitution}{3.5.4}{Command Substitution}{31} @numsubsecentry{Arithmetic Expansion}{3.5.5}{Arithmetic Expansion}{31} @numsubsecentry{Process Substitution}{3.5.6}{Process Substitution}{31} @@ -38,7 +38,7 @@ @numsubsubsecentry{Pattern Matching}{3.5.8.1}{Pattern Matching}{33} @numsubsecentry{Quote Removal}{3.5.9}{Quote Removal}{34} @numsecentry{Redirections}{3.6}{Redirections}{34} -@numsubsecentry{Redirecting Input}{3.6.1}{}{36} +@numsubsecentry{Redirecting Input}{3.6.1}{}{35} @numsubsecentry{Redirecting Output}{3.6.2}{}{36} @numsubsecentry{Appending Redirected Output}{3.6.3}{}{36} @numsubsecentry{Redirecting Standard Output and Standard Error}{3.6.4}{}{36} diff --git a/doc/bashref.vr b/doc/bashref.vr index fd6ba30..a8c33dc 100644 --- a/doc/bashref.vr +++ b/doc/bashref.vr @@ -17,8 +17,6 @@ \entry{$!}{22}{\code {$!}} \entry{0}{22}{\code {0}} \entry{$0}{22}{\code {$0}} -\entry{_}{22}{\code {_}} -\entry{$_}{22}{\code {$_}} \entry{CDPATH}{74}{\code {CDPATH}} \entry{HOME}{74}{\code {HOME}} \entry{IFS}{74}{\code {IFS}} @@ -29,13 +27,15 @@ \entry{PATH}{74}{\code {PATH}} \entry{PS1}{74}{\code {PS1}} \entry{PS2}{74}{\code {PS2}} -\entry{BASH}{74}{\code {BASH}} +\entry{_}{74}{\code {_}} +\entry{$_}{74}{\code {$_}} +\entry{BASH}{75}{\code {BASH}} \entry{BASHOPTS}{75}{\code {BASHOPTS}} \entry{BASHPID}{75}{\code {BASHPID}} \entry{BASH_ALIASES}{75}{\code {BASH_ALIASES}} \entry{BASH_ARGC}{75}{\code {BASH_ARGC}} \entry{BASH_ARGV}{75}{\code {BASH_ARGV}} -\entry{BASH_ARGV0}{75}{\code {BASH_ARGV0}} +\entry{BASH_ARGV0}{76}{\code {BASH_ARGV0}} \entry{BASH_CMDS}{76}{\code {BASH_CMDS}} \entry{BASH_COMMAND}{76}{\code {BASH_COMMAND}} \entry{BASH_COMPAT}{76}{\code {BASH_COMPAT}} @@ -43,13 +43,13 @@ \entry{BASH_EXECUTION_STRING}{76}{\code {BASH_EXECUTION_STRING}} \entry{BASH_LINENO}{76}{\code {BASH_LINENO}} \entry{BASH_LOADABLES_PATH}{76}{\code {BASH_LOADABLES_PATH}} -\entry{BASH_REMATCH}{76}{\code {BASH_REMATCH}} +\entry{BASH_REMATCH}{77}{\code {BASH_REMATCH}} \entry{BASH_SOURCE}{77}{\code {BASH_SOURCE}} \entry{BASH_SUBSHELL}{77}{\code {BASH_SUBSHELL}} \entry{BASH_VERSINFO}{77}{\code {BASH_VERSINFO}} \entry{BASH_VERSION}{77}{\code {BASH_VERSION}} \entry{BASH_XTRACEFD}{77}{\code {BASH_XTRACEFD}} -\entry{CHILD_MAX}{77}{\code {CHILD_MAX}} +\entry{CHILD_MAX}{78}{\code {CHILD_MAX}} \entry{COLUMNS}{78}{\code {COLUMNS}} \entry{COMP_CWORD}{78}{\code {COMP_CWORD}} \entry{COMP_LINE}{78}{\code {COMP_LINE}} @@ -58,7 +58,7 @@ \entry{COMP_KEY}{78}{\code {COMP_KEY}} \entry{COMP_WORDBREAKS}{78}{\code {COMP_WORDBREAKS}} \entry{COMP_WORDS}{78}{\code {COMP_WORDS}} -\entry{COMPREPLY}{78}{\code {COMPREPLY}} +\entry{COMPREPLY}{79}{\code {COMPREPLY}} \entry{COPROC}{79}{\code {COPROC}} \entry{DIRSTACK}{79}{\code {DIRSTACK}} \entry{EMACS}{79}{\code {EMACS}} @@ -68,8 +68,8 @@ \entry{EUID}{79}{\code {EUID}} \entry{EXECIGNORE}{79}{\code {EXECIGNORE}} \entry{FCEDIT}{79}{\code {FCEDIT}} -\entry{FIGNORE}{79}{\code {FIGNORE}} -\entry{FUNCNAME}{79}{\code {FUNCNAME}} +\entry{FIGNORE}{80}{\code {FIGNORE}} +\entry{FUNCNAME}{80}{\code {FUNCNAME}} \entry{FUNCNEST}{80}{\code {FUNCNEST}} \entry{GLOBIGNORE}{80}{\code {GLOBIGNORE}} \entry{GROUPS}{80}{\code {GROUPS}} @@ -95,8 +95,8 @@ \entry{LC_NUMERIC}{82}{\code {LC_NUMERIC}} \entry{LC_TIME}{82}{\code {LC_TIME}} \entry{LINENO}{82}{\code {LINENO}} -\entry{LINES}{82}{\code {LINES}} -\entry{MACHTYPE}{82}{\code {MACHTYPE}} +\entry{LINES}{83}{\code {LINES}} +\entry{MACHTYPE}{83}{\code {MACHTYPE}} \entry{MAILCHECK}{83}{\code {MAILCHECK}} \entry{MAPFILE}{83}{\code {MAPFILE}} \entry{OLDPWD}{83}{\code {OLDPWD}} @@ -108,8 +108,8 @@ \entry{PROMPT_COMMAND}{83}{\code {PROMPT_COMMAND}} \entry{PROMPT_DIRTRIM}{83}{\code {PROMPT_DIRTRIM}} \entry{PS0}{83}{\code {PS0}} -\entry{PS3}{83}{\code {PS3}} -\entry{PS4}{83}{\code {PS4}} +\entry{PS3}{84}{\code {PS3}} +\entry{PS4}{84}{\code {PS4}} \entry{PWD}{84}{\code {PWD}} \entry{RANDOM}{84}{\code {RANDOM}} \entry{READLINE_LINE}{84}{\code {READLINE_LINE}} @@ -120,7 +120,7 @@ \entry{SHELLOPTS}{84}{\code {SHELLOPTS}} \entry{SHLVL}{84}{\code {SHLVL}} \entry{SRANDOM}{84}{\code {SRANDOM}} -\entry{TIMEFORMAT}{84}{\code {TIMEFORMAT}} +\entry{TIMEFORMAT}{85}{\code {TIMEFORMAT}} \entry{TMOUT}{85}{\code {TMOUT}} \entry{TMPDIR}{85}{\code {TMPDIR}} \entry{UID}{85}{\code {UID}} diff --git a/doc/bashref.vrs b/doc/bashref.vrs index de1df26..e89835c 100644 --- a/doc/bashref.vrs +++ b/doc/bashref.vrs @@ -11,7 +11,7 @@ \entry{\code {$-}}{22} \entry{\code {$?}}{22} \entry{\code {$@}}{21} -\entry{\code {$_}}{22} +\entry{\code {$_}}{74} \entry{\code {$0}}{22} \initial {*} \entry{\code {*}}{21} @@ -22,17 +22,17 @@ \initial {@} \entry{\code {@}}{21} \initial {_} -\entry{\code {_}}{22} +\entry{\code {_}}{74} \initial {0} \entry{\code {0}}{22} \initial {A} \entry{\code {auto_resume}}{108} \initial {B} -\entry{\code {BASH}}{74} +\entry{\code {BASH}}{75} \entry{\code {BASH_ALIASES}}{75} \entry{\code {BASH_ARGC}}{75} \entry{\code {BASH_ARGV}}{75} -\entry{\code {BASH_ARGV0}}{75} +\entry{\code {BASH_ARGV0}}{76} \entry{\code {BASH_CMDS}}{76} \entry{\code {BASH_COMMAND}}{76} \entry{\code {BASH_COMPAT}}{76} @@ -40,7 +40,7 @@ \entry{\code {BASH_EXECUTION_STRING}}{76} \entry{\code {BASH_LINENO}}{76} \entry{\code {BASH_LOADABLES_PATH}}{76} -\entry{\code {BASH_REMATCH}}{76} +\entry{\code {BASH_REMATCH}}{77} \entry{\code {BASH_SOURCE}}{77} \entry{\code {BASH_SUBSHELL}}{77} \entry{\code {BASH_VERSINFO}}{77} @@ -53,7 +53,7 @@ \entry{\code {blink-matching-paren}}{113} \initial {C} \entry{\code {CDPATH}}{74} -\entry{\code {CHILD_MAX}}{77} +\entry{\code {CHILD_MAX}}{78} \entry{\code {colored-completion-prefix}}{113} \entry{\code {colored-stats}}{113} \entry{\code {COLUMNS}}{78} @@ -70,7 +70,7 @@ \entry{\code {completion-map-case}}{114} \entry{\code {completion-prefix-display-length}}{114} \entry{\code {completion-query-items}}{114} -\entry{\code {COMPREPLY}}{78} +\entry{\code {COMPREPLY}}{79} \entry{\code {convert-meta}}{114} \entry{\code {COPROC}}{79} \initial {D} @@ -91,8 +91,8 @@ \entry{\code {expand-tilde}}{115} \initial {F} \entry{\code {FCEDIT}}{79} -\entry{\code {FIGNORE}}{79} -\entry{\code {FUNCNAME}}{79} +\entry{\code {FIGNORE}}{80} +\entry{\code {FUNCNAME}}{80} \entry{\code {FUNCNEST}}{80} \initial {G} \entry{\code {GLOBIGNORE}}{80} @@ -131,9 +131,9 @@ \entry{\code {LC_NUMERIC}}{82} \entry{\code {LC_TIME}}{82} \entry{\code {LINENO}}{82} -\entry{\code {LINES}}{82} +\entry{\code {LINES}}{83} \initial {M} -\entry{\code {MACHTYPE}}{82} +\entry{\code {MACHTYPE}}{83} \entry{\code {MAIL}}{74} \entry{\code {MAILCHECK}}{83} \entry{\code {MAILPATH}}{74} @@ -161,8 +161,8 @@ \entry{\code {PS0}}{83} \entry{\code {PS1}}{74} \entry{\code {PS2}}{74} -\entry{\code {PS3}}{83} -\entry{\code {PS4}}{83} +\entry{\code {PS3}}{84} +\entry{\code {PS4}}{84} \entry{\code {PWD}}{84} \initial {R} \entry{\code {RANDOM}}{84} @@ -183,7 +183,7 @@ \initial {T} \entry{\code {TEXTDOMAIN}}{7} \entry{\code {TEXTDOMAINDIR}}{7} -\entry{\code {TIMEFORMAT}}{84} +\entry{\code {TIMEFORMAT}}{85} \entry{\code {TMOUT}}{85} \entry{\code {TMPDIR}}{85} \initial {U} diff --git a/doc/builtins.0 b/doc/builtins.0 index f9fffd2..67b5bbf 100644 --- a/doc/builtins.0 +++ b/doc/builtins.0 @@ -1379,7 +1379,7 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS in a double-quoted parameter expansion as a special character. The single quotes must match (an even num- ber) and the characters between the single quotes are - considered quoted. This is the behavior of posix mode + considered quoted. This is the behavior of <posix mode through version 4.1. The default bash behavior remains as in previous versions. ccoommppaatt4422 diff --git a/doc/builtins.ps b/doc/builtins.ps index 4ce994f..9be699f 100644 --- a/doc/builtins.ps +++ b/doc/builtins.ps @@ -1,6 +1,6 @@ %!PS-Adobe-3.0 %%Creator: groff version 1.22.4 -%%CreationDate: Fri Nov 22 15:53:55 2019 +%%CreationDate: Tue Nov 26 11:15:40 2019 %%DocumentNeededResources: font Times-Roman %%+ font Times-Bold %%+ font Times-Italic @@ -2423,9 +2423,9 @@ F1(compat31)2.782 E F0 2.782(\)a)C .282(nd the ef)-2.782 F .282 (he single quotes must match \(an e)-5.502 F -.15(ve)-.25 G 3.002(nn).15 G .502(umber\) and the)-3.002 F 1.866 (characters between the single quotes are considered quoted.)184 600 R -1.866(This is the beha)6.866 F 1.866(vior of)-.2 F .59 -(posix mode through v)184 612 R .589(ersion 4.1.)-.15 F .589(The def) -5.589 F .589(ault bash beha)-.1 F .589(vior remains as in pre)-.2 F .589 +1.866(This is the beha)6.866 F 1.866(vior of)-.2 F .156 +(<posix mode through v)184 612 R .156(ersion 4.1.)-.15 F .155(The def) +5.156 F .155(ault bash beha)-.1 F .155(vior remains as in pre)-.2 F .155 (vious v)-.25 F(er)-.15 E(-)-.2 E(sions.)184 624 Q F1(compat42)144 636 Q F0 .587(If set,)184 648 R F1(bash)3.087 E F0 .588 (does not process the replacement string in the pattern substitution w) diff --git a/doc/rbash.ps b/doc/rbash.ps index 77ef9a5..6f0ce9a 100644 --- a/doc/rbash.ps +++ b/doc/rbash.ps @@ -1,6 +1,6 @@ %!PS-Adobe-3.0 %%Creator: groff version 1.22.4 -%%CreationDate: Fri Nov 22 15:53:55 2019 +%%CreationDate: Tue Nov 26 11:15:40 2019 %%DocumentNeededResources: font Times-Roman %%+ font Times-Bold %%DocumentSuppliedResources: procset grops 1.22 4 diff --git a/doc/version.texi b/doc/version.texi index 12ee9e2..ec2fd10 100644 --- a/doc/version.texi +++ b/doc/version.texi @@ -2,10 +2,10 @@ Copyright (C) 1988-2019 Free Software Foundation, Inc. @end ignore -@set LASTCHANGE Fri Nov 22 15:27:24 EST 2019 +@set LASTCHANGE Tue Nov 26 11:14:58 EST 2019 @set EDITION 5.0 @set VERSION 5.0 -@set UPDATED 22 November 2019 +@set UPDATED 26 November 2019 @set UPDATED-MONTH November 2019 @@ -97,6 +97,8 @@ static struct { 0 }; +static char *saved_posix_vars; + void posix_initialize (on) int on; @@ -138,6 +140,13 @@ get_posix_options (bitmap) return bitmap; } +#undef save_posix_options +void +save_posix_options () +{ + saved_posix_vars = get_posix_options (saved_posix_vars); +} + void set_posix_options (bitmap) const char *bitmap; @@ -307,6 +307,9 @@ extern int num_posix_options __P((void)); extern char *get_posix_options __P((char *)); extern void set_posix_options __P((const char *)); +extern void save_posix_options __P((void)); +#define save_posix_options() saved_posix_vars = get_posix_options (saved_posix_vars) + #if defined (RLIMTYPE) extern RLIMTYPE string_to_rlimtype __P((char *)); extern void print_rlimtype __P((RLIMTYPE, int)); diff --git a/lib/readline/display.c b/lib/readline/display.c index 0312631..f04d57e 100644 --- a/lib/readline/display.c +++ b/lib/readline/display.c @@ -1,6 +1,6 @@ /* display.c -- readline redisplay facility. */ -/* Copyright (C) 1987-2017 Free Software Foundation, Inc. +/* Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of the GNU Readline Library (Readline), a library for reading lines of text with interactive input and history editing. @@ -192,6 +192,8 @@ int _rl_last_v_pos = 0; on screen minus 1. */ int _rl_vis_botlin = 0; +static int _rl_quick_redisplay = 0; + /* This is a hint update_line gives to rl_redisplay that it has adjusted the value of _rl_last_c_pos *and* taken the presence of any invisible chars in the prompt into account. rl_redisplay notes this and does not do the @@ -223,6 +225,10 @@ static int forced_display; /* Default and initial buffer size. Can grow. */ static int line_size = DEFAULT_LINE_BUFFER_SIZE; +/* Set to a non-zero value if horizontal scrolling has been enabled + automatically because the terminal was resized to height 1. */ +static int horizontal_scrolling_autoset = 0; /* explicit initialization */ + /* Variables to keep track of the expanded prompt string, which may include invisible characters. */ @@ -653,7 +659,21 @@ init_line_structures (int minsize) line_structures_initialized = 1; } - + +/* Do whatever tests are necessary and tell update_line that it can do a + quick, dumb redisplay on the assumption that there are so many + differences between the old and new lines that it would be a waste to + compute all the differences. + Right now, it just sets _rl_quick_redisplay if the current visible line + is a single line (so we don't have to move vertically or mess with line + wrapping). */ +void +_rl_optimize_redisplay (void) +{ + if (_rl_vis_botlin == 0) + _rl_quick_redisplay = 1; +} + /* Basic redisplay algorithm. See comments inline. */ void rl_redisplay (void) @@ -690,7 +710,18 @@ rl_redisplay (void) } else if (line_size <= _rl_screenwidth) init_line_structures (_rl_screenwidth + 1); - + + /* Enable horizontal scrolling automatically for terminals of height 1 + where wrapping lines doesn't work. Disable it as soon as the terminal + height is increased again if it was automatically enabled. */ + if (_rl_screenheight <= 1) + { + if (_rl_horizontal_scroll_mode == 0) + horizontal_scrolling_autoset = 1; + _rl_horizontal_scroll_mode = 1; + } + else if (horizontal_scrolling_autoset) + _rl_horizontal_scroll_mode = 0; /* Draw the line into the buffer. */ cpos_buffer_position = -1; @@ -1210,19 +1241,35 @@ rl_redisplay (void) _rl_clear_to_eol (nleft); } #if 0 - /* This segment is intended to handle the case where the prompt - has invisible characters on the second line and the new line + /* This segment is intended to handle the case where the old + visible prompt has invisible characters and the new line to be displayed needs to clear the rest of the old characters - out (e.g., when printing the i-search prompt). In general, - the case of the new line being shorter than the old. - Incomplete */ - else if (linenum == prompt_last_screen_line && - prompt_physical_chars > _rl_screenwidth && - wrap_offset != prompt_invis_chars_first_line && + out (e.g., when printing the i-search prompt): in general, + the case of the new line being shorter than the old. We need + to be at the end of the new line and the old line needs to be + longer than the current cursor position. It's not perfect, + since it uses the byte length of the first line, but this will + at worst result in some extra clear-to-end-of-lines. We can't + use the prompt length variables because they may not + correspond to the visible line (see printing the i-search + prompt above). The tests for differing numbers of invisible + characters may not matter and can probably be removed. */ + else if (linenum == 0 && + linenum == prompt_last_screen_line && _rl_last_c_pos == out && + _rl_last_c_pos < visible_first_line_len && + visible_wrap_offset && + visible_wrap_offset != wrap_offset) + { + if (mb_cur_max > 1 && rl_byte_oriented == 0) + nleft = _rl_screenwidth - _rl_last_c_pos; + else + nleft = _rl_screenwidth + wrap_offset - _rl_last_c_pos; + if (nleft) + _rl_clear_to_eol (nleft); + } #endif - /* Since the new first line is now visible, save its length. */ if (linenum == 0) visible_first_line_len = (inv_botlin > 0) ? inv_lbreaks[1] : out - wrap_offset; @@ -1445,6 +1492,8 @@ rl_redisplay (void) visible_wrap_offset = 0; else visible_wrap_offset = wrap_offset; + + _rl_quick_redisplay = 0; } RL_UNSETSTATE (RL_STATE_REDISPLAYING); @@ -1657,6 +1706,19 @@ update_line (char *old, char *new, int current_line, int omax, int nmax, int inv } } + if (_rl_quick_redisplay) + { + nfd = new; + ofd = old; + for (od = 0, oe = ofd; od < omax && *oe; oe++, od++); + for (nd = 0, ne = nfd; nd < nmax && *ne; ne++, nd++); + od = nd = 0; + _rl_move_cursor_relative (0, old); + + cpos_adjusted = 1; + goto dumb_update; + } + /* Find first difference. */ #if defined (HANDLE_MULTIBYTE) if (mb_cur_max > 1 && rl_byte_oriented == 0) @@ -1963,6 +2025,14 @@ dumb_update: else col_lendiff = lendiff; + /* col_lendiff uses _rl_col_width(), which doesn't know about whether or not + the multibyte characters it counts are invisible, so the count is short by + the number of bytes in the invisible multibyte characters - the number of + multibyte characters. We don't have a good way to solve this without + moving to something like a bitmap that indicates which characters are + visible and which are invisible. We fix it up (imperfectly) in the + caller. */ + /* If we are changing the number of invisible characters in a line, and the spot of first difference is before the end of the invisible chars, lendiff needs to be adjusted. */ diff --git a/lib/readline/doc/readline.3 b/lib/readline/doc/readline.3 index 24fad7d..beea0e3 100644 --- a/lib/readline/doc/readline.3 +++ b/lib/readline/doc/readline.3 @@ -6,9 +6,9 @@ .\" Case Western Reserve University .\" chet.ramey@case.edu .\" -.\" Last Change: Thu Dec 28 14:49:51 EST 2017 +.\" Last Change: Mon Nov 25 10:53:27 EST 2019 .\" -.TH READLINE 3 "2017 December 28" "GNU Readline 8.0" +.TH READLINE 3 "2019 November 25" "GNU Readline 8.0" .\" .\" File Name macro. This used to be `.PN', for Path Name, .\" but Sun doesn't seem to like that very much. @@ -488,6 +488,7 @@ the maximum number of history entries will be set to 500. When set to \fBOn\fP, makes readline 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. .TP .B input\-meta (Off) If set to \fBOn\fP, readline will enable eight-bit input (that is, diff --git a/lib/readline/doc/rluser.texi b/lib/readline/doc/rluser.texi index 080090b..1291712 100644 --- a/lib/readline/doc/rluser.texi +++ b/lib/readline/doc/rluser.texi @@ -588,8 +588,9 @@ the maximum number of history entries will be set to 500. This variable can be set to either @samp{on} or @samp{off}. Setting it to @samp{on} means that the text of the lines being edited will scroll horizontally on a single screen line when they are longer than the width -of the screen, instead of wrapping onto a new screen line. By default, -this variable is set to @samp{off}. +of the screen, instead of wrapping onto a new screen line. +This variable is automatically set to @samp{on} for terminals of height 1. +By default, this variable is set to @samp{off}. @item input-meta @vindex input-meta diff --git a/lib/readline/doc/version.texi b/lib/readline/doc/version.texi index f141695..9cb7069 100644 --- a/lib/readline/doc/version.texi +++ b/lib/readline/doc/version.texi @@ -4,7 +4,7 @@ Copyright (C) 1988-2019 Free Software Foundation, Inc. @set EDITION 8.0 @set VERSION 8.0 -@set UPDATED 15 November 2019 +@set UPDATED 25 November 2019 @set UPDATED-MONTH November 2019 -@set LASTCHANGE Fri Nov 15 09:34:19 EST 2019 +@set LASTCHANGE Mon Nov 25 10:53:13 EST 2019 diff --git a/lib/readline/isearch.c b/lib/readline/isearch.c index 951fce5..63a9894 100644 --- a/lib/readline/isearch.c +++ b/lib/readline/isearch.c @@ -185,11 +185,13 @@ rl_display_search (char *search_string, int flags, int where) strcpy (message + msglen, "i-search)`"); msglen += 10; - if (search_string) + if (search_string && *search_string) { strcpy (message + msglen, search_string); msglen += searchlen; } + else + _rl_optimize_redisplay (); strcpy (message + msglen, "': "); diff --git a/lib/readline/rlprivate.h b/lib/readline/rlprivate.h index 76631d7..1a99a5a 100644 --- a/lib/readline/rlprivate.h +++ b/lib/readline/rlprivate.h @@ -276,6 +276,7 @@ extern void _rl_erase_at_end_of_line PARAMS((int)); extern void _rl_clear_to_eol PARAMS((int)); extern void _rl_clear_screen PARAMS((void)); extern void _rl_update_final PARAMS((void)); +extern void _rl_optimize_redisplay PARAMS((void)); extern void _rl_redisplay_after_sigwinch PARAMS((void)); extern void _rl_clean_up_for_exit PARAMS((void)); extern void _rl_erase_entire_line PARAMS((void)); @@ -1,4 +1,4 @@ -# Korean Translations for bash +# Korean Translation for bash # Copyright (C) 2019 Free Software Foundation, Inc. # This file is distributed under the same license as the bash package. # SooHyun Kim <soohyunkim@kw.ac.kr>, 2019. @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: bash-5.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-12-19 15:52-0500\n" -"PO-Revision-Date: 2019-10-31 00:42+0900\n" +"PO-Revision-Date: 2019-11-23 16:28+0900\n" "Last-Translator: SooHyun Kim <soohyunkim@kw.ac.kr>\n" "Language-Team: Korean <translation-team-ko@googlegroups.com>\n" "Language: ko\n" @@ -135,7 +135,6 @@ msgid "only meaningful in a `for', `while', or `until' loop" msgstr "'for', 'while' ๋๋ 'until' ๋ฐ๋ณต๋ฌธ์์๋ง ์๋ฏธ๊ฐ ์์" #: builtins/caller.def:136 -#, fuzzy msgid "" "Returns the context of the current subroutine call.\n" " \n" @@ -143,7 +142,7 @@ msgid "" msgstr "" "ํ์ฌ ์๋ธ๋ฃจํด ์ฝ์ ์ปจํ
์คํธ๋ฅผ ๋ฐํํฉ๋๋ค.\n" " \n" -" Without EXPR, returns " +" EXPR์ด ์์ผ๋ฉด, ๋ค์์ ๋ฐํ " #: builtins/cd.def:326 msgid "HOME not set" @@ -313,7 +312,7 @@ msgstr "%s: ์ ํจํ์ง ์์ ์ก์
์ด๋ฆ" #: builtins/complete.def:910 #, c-format msgid "%s: no completion specification" -msgstr "" +msgstr "%s: ์๋ฃ ์ฌ์ ์์" #: builtins/complete.def:733 msgid "warning: -F option may not work as you expect" @@ -325,7 +324,7 @@ msgstr "๊ฒฝ๊ณ : -C ์ต์
์ด ์์๋๋ก ์๋ํ์ง ์์ ์ ์์" #: builtins/complete.def:883 msgid "not currently executing completion function" -msgstr "" +msgstr "ํ์ฌ ์๋ฃ ํจ์๊ฐ ์คํ์ค์ด ์๋" #: builtins/declare.def:132 msgid "can only be used in a function" @@ -364,7 +363,7 @@ msgstr "%s: ์ฝ๊ธฐ ์ ์ฉ ํจ์์" #: builtins/declare.def:824 #, c-format msgid "%s: quoted compound array assignment deprecated" -msgstr "" +msgstr "%s: ๋ฐ์ดํ๋ฅผ ์ด์ฉํ ๋ณตํฉ ๋ฐฐ์ด ํ ๋น์ ํฅํ ์ ๊ฑฐ๋ ์์ ์" #: builtins/declare.def:838 #, c-format @@ -383,17 +382,17 @@ msgstr "๋์ ๋ก๋ฉ์ ์ด์ฉํ ์ ์์" #: builtins/enable.def:343 #, c-format msgid "cannot open shared object %s: %s" -msgstr "" +msgstr "๊ณต์ ์ค๋ธ์ ํธ %s๋ฅผ ์ด ์ ์์: %s" #: builtins/enable.def:369 #, c-format msgid "cannot find %s in shared object %s: %s" -msgstr "" +msgstr "๊ณต์ ์ค๋ธ์ ํธ %2$s์์ %1$s๋ฅผ ์ฐพ์ ์ ์์: %3$s" #: builtins/enable.def:387 #, c-format msgid "load function for %s returns failure (%d): not loaded" -msgstr "" +msgstr "%s์ ๋ํ ํจ์ ๋ก๋๊ฐ ์คํจ ๋ฐํ (%d): ๋ก๋๋์ง ์์" #: builtins/enable.def:512 #, c-format @@ -455,7 +454,7 @@ msgstr "๋ช
๋ น์ด๋ฅผ ์ฐพ์ ์ ์์" #: builtins/fc.def:323 builtins/fc.def:372 msgid "history specification" -msgstr "" +msgstr "ํ์คํ ๋ฆฌ ์ฌ์" #: builtins/fc.def:393 #, c-format @@ -464,7 +463,7 @@ msgstr "%s: ์์ ํ์ผ์ ์ด ์ ์์: %s" #: builtins/fg_bg.def:152 builtins/jobs.def:284 msgid "current" -msgstr "" +msgstr "ํ์ฌ" #: builtins/fg_bg.def:161 #, c-format @@ -493,12 +492,12 @@ msgstr "%s: ํด์ ํ
์ด๋ธ์ด ๋น์ด์์\n" #: builtins/hash.def:266 #, c-format msgid "hits\tcommand\n" -msgstr "" +msgstr "hits\tcommand\n" #: builtins/help.def:133 msgid "Shell commands matching keyword `" msgid_plural "Shell commands matching keywords `" -msgstr[0] "" +msgstr[0] "๋ค์ ํค์๋์ ์ผ์นํ๋ ์ ๋ช
๋ น์ด '" #: builtins/help.def:185 #, c-format @@ -573,32 +572,32 @@ msgstr "ํํ์์ ์์ํจ" #: builtins/mapfile.def:178 #, c-format msgid "%s: not an indexed array" -msgstr "" +msgstr "%s: ์ธ๋ฑ์ค ๋ฐฐ์ด์ด ์๋" #: builtins/mapfile.def:271 builtins/read.def:307 #, c-format msgid "%s: invalid file descriptor specification" -msgstr "" +msgstr "%s: ์ ํจํ์ง ์์ ํ์ผ ๋์คํฌ๋ฆฝํฐ ๋ช
์ธ" #: builtins/mapfile.def:279 builtins/read.def:314 #, c-format msgid "%d: invalid file descriptor: %s" -msgstr "" +msgstr "%d: ์ ํจํ์ง ์์ ํ์ผ ๋์คํฌ๋ฆฝํฐ: %s" #: builtins/mapfile.def:288 builtins/mapfile.def:326 #, c-format msgid "%s: invalid line count" -msgstr "" +msgstr "%s: ์ ํจํ์ง ์์ ์ค ์" #: builtins/mapfile.def:299 #, c-format msgid "%s: invalid array origin" -msgstr "" +msgstr "%s: ์ ํจํ์ง ์์ ๋ฐฐ์ด์ ์์" #: builtins/mapfile.def:316 #, c-format msgid "%s: invalid callback quantum" -msgstr "" +msgstr "%s: ์ ํจํ์ง ์์ ์ฝ๋ฐฑ ์์" #: builtins/mapfile.def:349 msgid "empty array variable name" @@ -611,17 +610,17 @@ msgstr "๋ฐฐ์ด ๋ณ์ ์ง์์ด ํ์ํจ" #: builtins/printf.def:420 #, c-format msgid "`%s': missing format character" -msgstr "" +msgstr "'%s': ์์ ๋ฌธ์ ์์" #: builtins/printf.def:475 #, c-format msgid "`%c': invalid time format specification" -msgstr "" +msgstr "'%c': ์ ํจํ์ง ์์ ์๊ฐ ํฌ๋งท ์ฌ์" #: builtins/printf.def:677 #, c-format msgid "`%c': invalid format character" -msgstr "" +msgstr "'%c': ์ ํจํ์ง ์์ ์์ ๋ฌธ์" #: builtins/printf.def:703 #, c-format @@ -631,20 +630,20 @@ msgstr "๊ฒฝ๊ณ : %s: %s" #: builtins/printf.def:789 #, c-format msgid "format parsing problem: %s" -msgstr "" +msgstr "ํ์ ํ์ฑ ๋ฌธ์ : %s" #: builtins/printf.def:886 msgid "missing hex digit for \\x" -msgstr "" +msgstr "\\x์ 16์ง์ ์ซ์ ์์" #: builtins/printf.def:901 #, c-format msgid "missing unicode digit for \\%c" -msgstr "" +msgstr "\\%c์ ํด๋นํ๋ ์ ๋์ฝ๋ ๋ฌธ์ ์์" #: builtins/pushd.def:199 msgid "no other directory" -msgstr "" +msgstr "๋ค๋ฅธ ๋๋ ํ ๋ฆฌ ์์" #: builtins/pushd.def:360 #, c-format @@ -684,8 +683,25 @@ msgid "" " -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" +" ์ต์
:\n" +" -c\t์์๋ฅผ ์ ๋ถ ์ญ์ ํจ์ผ๋ก์จ ๋๋ ํ ๋ฆฌ ์คํ์ ์ด๊ธฐํํฉ๋๋ค\n" +" -l\tํ ๋๋ ํ ๋ฆฌ๊น์ง ~๋ก ์ถ์ฝ๋ ์๋๊ฒฝ๋ก๋ฅผ ํ์ํ์ง ์์ต๋๋ค\n" +" -p\tํ ์ค์ ํ๋์ฉ ๋๋ ํ ๋ฆฌ ์คํ์ ํ์ํฉ๋๋ค\n" +" -v\tํ ์ค์ ํ๋์ฉ ์คํ์ ์์น์ ํจ๊ป ๋๋ ํ ๋ฆฌ ์คํ์ ํ์ํฉ๋๋ค\n" +" \n" +" ์ธ์:\n" +" +N\t์ธ์ ์์ด ์คํ๋ ๋ ๋ณด์ฌ์ง๋ ๋ชฉ๋ก์ ์ผ์ชฝ๋ถํฐ N๋ฒ์งธ ํญ๋ชฉ์ ๋ณด์ฌ์ค๋๋ค.\n" +" \t์ธ๋ ์๋ 0๋ถํฐ ์์ํฉ๋๋ค.\n" +" \n" +" -N\t์ธ์ ์์ด ์คํ๋ ๋ ๋ณด์ฌ์ง๋ ๋ชฉ๋ก์ ์ค๋ฅธ์ชฝ๋ถํฐ N๋ฒ์งธ ํญ๋ชฉ์ ๋ณด์ฌ์ค๋๋ค.\n" +"\t์ธ๋ ์๋ 0๋ถํฐ ์์ํฉ๋๋ค." #: builtins/pushd.def:723 +#, fuzzy 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" @@ -709,8 +725,30 @@ msgid "" " \n" " The `dirs' builtin displays the directory stack." msgstr "" +"๋๋ ํ ๋ฆฌ ์คํ์ ์ต์์์ ๋๋ ํ ๋ฆฌ๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์คํ์ ํ์ \n" +" ํ๊ฑฐ๋, ํ์ฌ ์์
์ค์ธ ๋๋ ํ ๋ฆฌ์์ ์คํ์ ์ ์ต์์๋ฅผ \n" +" ๋ง๋ญ๋๋ค. ์ธ์๊ฐ ์๋ค๋ฉด ์์ ๋ ๋๋ ํ ๋ฆฌ๋ฅผ ๊ตํํฉ๋๋ค.\n" +" \n" +" ์ต์
:\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" +" `dirs' ๋ด์ฅ์ ๋๋ ํ ๋ฆฌ ์คํ์ ๋ณด์ฌ์ค๋๋ค." #: builtins/pushd.def:748 +#, fuzzy 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" @@ -730,11 +768,28 @@ msgid "" " \n" " The `dirs' builtin displays the directory stack." msgstr "" +"๋๋ ํ ๋ฆฌ ์คํ์์ ํญ๋ชฉ์ ์ ๊ฑฐํฉ๋๋ค. ์ฃผ์ด์ง ์ธ์๊ฐ ์์ ๊ฒฝ์ฐ\n" +" ์ต์์ ๋๋ ํ ๋ฆฌ๋ฅผ ์คํ์์ ์ ๊ฑฐํ๊ณ ์ ์ต์์ ๋๋ ํ ๋ฆฌ๋ก ๋ณ๊ฒฝํฉ๋๋ค.\n" +" \n" +" ์ต์
:\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." #: builtins/read.def:279 #, c-format msgid "%s: invalid timeout specification" -msgstr "" +msgstr "%s: ์ ํจํ์ง ์์ ํ์์์ ์ ์" #: builtins/read.def:733 #, c-format @@ -743,7 +798,7 @@ msgstr "์ฝ๊ธฐ ์ค๋ฅ: %d: %s" #: builtins/return.def:68 msgid "can only `return' from a function or sourced script" -msgstr "" +msgstr "ํจ์ ๋๋ ์์ค๋ ์คํฌ๋ฆฝํธ์์๋ง 'return' ํ ์ ์์" #: builtins/set.def:852 msgid "cannot simultaneously unset a function and a variable" @@ -807,7 +862,7 @@ msgstr "๋ก๊ทธ์ธ ์์ ์ผ์ ์ ์งํ ์ ์์" #: builtins/type.def:235 #, c-format msgid "%s is aliased to `%s'\n" -msgstr "" +msgstr "%s๋ '%s'์ ๋ณ์นญ์\n" #: builtins/type.def:256 #, c-format @@ -842,7 +897,7 @@ msgstr "%s ๋ ํด์๋จ (%s)\n" #: builtins/ulimit.def:396 #, c-format msgid "%s: invalid limit argument" -msgstr "" +msgstr "%s: ์ ํจํ์ง ์์ ์ ํ ์ธ์" #: builtins/ulimit.def:422 #, c-format @@ -870,12 +925,12 @@ msgstr "8์ง์" #: builtins/umask.def:232 #, c-format msgid "`%c': invalid symbolic mode operator" -msgstr "" +msgstr "'%c': ์ ํจํ์ง ์์ ์ฌ๋ณผ๋ฆญ ๋ชจ๋ ์ฐ์ฐ์" #: builtins/umask.def:287 #, c-format msgid "`%c': invalid symbolic mode character" -msgstr "" +msgstr "'%c': ์ ํจํ์ง ์์ ์ฌ๋ณผ๋ฆญ ๋ชจ๋ ๋ฌธ์" #: error.c:89 error.c:347 error.c:349 error.c:351 msgid " line " @@ -903,11 +958,11 @@ msgstr "์ ์ ์๋ ๋ช
๋ น์ด ์ค๋ฅ" #: error.c:463 msgid "bad command type" -msgstr "" +msgstr "์๋ชป๋ ๋ช
๋ น์ด ํ์
" #: error.c:464 msgid "bad connector" -msgstr "" +msgstr "์๋ชป๋ ์ปค๋ฅํฐ" #: error.c:465 msgid "bad jump" @@ -916,12 +971,12 @@ msgstr "์๋ชป๋ ์ ํ" #: error.c:503 #, c-format msgid "%s: unbound variable" -msgstr "" +msgstr "%s: ํด์ ๋ ๋ณ์" #: eval.c:245 #, c-format msgid "\atimed out waiting for input: auto-logout\n" -msgstr "" +msgstr "\a์
๋ ฅ ๋๊ธฐ์ค ์๊ฐ ์ด๊ณผ: ์๋์ผ๋ก ๋ก๊ทธ์์\n" #: execute_cmd.c:536 #, c-format @@ -931,12 +986,12 @@ msgstr "ํ์ค ์
๋ ฅ์ /dev/null์์ ๋ฆฌ๋ค์ด๋ ํธ ํ ์ ์์: %s" #: execute_cmd.c:1306 #, c-format msgid "TIMEFORMAT: `%c': invalid format character" -msgstr "" +msgstr "TIMEFORMAT: `%c': ์ ํจํ์ง ์์ ์์ ๋ฌธ์" #: execute_cmd.c:2361 #, c-format msgid "execute_coproc: coproc [%d:%s] still exists" -msgstr "" +msgstr "execute_coproc: coproc [%d:%s] ๊ฐ ์ฌ์ ํ ์กด์ฌ" #: execute_cmd.c:2485 msgid "pipe error" @@ -945,22 +1000,22 @@ msgstr "ํ์ดํ ์ค๋ฅ" #: execute_cmd.c:4671 #, c-format msgid "eval: maximum eval nesting level exceeded (%d)" -msgstr "" +msgstr "eval: ์ต๋ eval ์ค์ฒฉ ๋ ๋ฒจ ์ด๊ณผ (%d)" #: execute_cmd.c:4683 #, c-format msgid "%s: maximum source nesting level exceeded (%d)" -msgstr "" +msgstr "%s: ์ต๋ ์์ค ์ค์ฒฉ ๋ ๋ฒจ ์ด๊ณผ (%d)" #: execute_cmd.c:4791 #, c-format msgid "%s: maximum function nesting level exceeded (%d)" -msgstr "" +msgstr "%s: ์ต๋ ํจ์ ์ค์ฒฉ ๋ ๋ฒจ ์ด๊ณผ (%d)" #: execute_cmd.c:5340 #, c-format msgid "%s: restricted: cannot specify `/' in command names" -msgstr "" +msgstr "%s: ์ ํ๋จ: ๋ช
๋ น ์ด๋ฆ์ '/'๋ฅผ ์ง์ ํ ์ ์์" #: execute_cmd.c:5438 #, c-format @@ -975,7 +1030,7 @@ msgstr "%s: %s" #: execute_cmd.c:5720 #, c-format msgid "%s: %s: bad interpreter" -msgstr "" +msgstr "%s: %s: ์๋ชป๋ ์ธํฐํ๋ฆฌํฐ" #: execute_cmd.c:5757 #, c-format @@ -985,12 +1040,12 @@ msgstr "%s: ์ด์ง ํ์ผ์ ์คํํ ์ ์์: %s" #: execute_cmd.c:5843 #, c-format msgid "`%s': is a special builtin" -msgstr "" +msgstr "'%s': ํน์ํ ๋ด์ฅ ๋ช
๋ น์" #: execute_cmd.c:5895 #, c-format msgid "cannot duplicate fd %d to fd %d" -msgstr "" +msgstr "fd %d๋ฅผ fd %d๋ก ๋ณต์ ํ ์ ์์" #: expr.c:263 msgid "expression recursion level exceeded" @@ -1047,20 +1102,20 @@ msgstr "๋ฌธ๋ฒ ์ค๋ฅ: ์ ํจํ์ง ์์ ์ฐ์ ์ฐ์ฐ์" #: expr.c:1510 #, c-format msgid "%s%s%s: %s (error token is \"%s\")" -msgstr "" +msgstr "%s%s%s: %s (์ค๋ฅ ํ ํฐ์ \"%s\" ์)" #: expr.c:1568 msgid "invalid arithmetic base" -msgstr "" +msgstr "์ ํจํ์ง ์์ ์ง๋ฒ" #: expr.c:1588 msgid "value too great for base" -msgstr "" +msgstr "ํด๋น ์ง๋ฒ์์ ํํํ ์ ์๋ ๊ฐ" #: expr.c:1637 #, c-format msgid "%s: expression error\n" -msgstr "" +msgstr "%s: ํํ์ ์ค๋ฅ\n" #: general.c:69 msgid "getcwd: cannot access parent directories" @@ -1069,17 +1124,17 @@ msgstr "getcwd: ๋ถ๋ชจ ๋๋ ํฐ๋ฆฌ์ ์ ๊ทผํ ์ ์์" #: input.c:99 subst.c:5930 #, c-format msgid "cannot reset nodelay mode for fd %d" -msgstr "" +msgstr "fd %d์ ๋ํด nodelay ๋ชจ๋๋ฅผ ์ฌ์ค์ ํ ์ ์์" #: input.c:266 #, c-format msgid "cannot allocate new file descriptor for bash input from fd %d" -msgstr "" +msgstr "fd %d์์ bash ์
๋ ฅ์ ์ํ ์ ํ์ผ ๋์คํฌ๋ฆฝํฐ๋ฅผ ํ ๋นํ ์ ์์" #: input.c:274 #, c-format msgid "save_bash_input: buffer already exists for new fd %d" -msgstr "" +msgstr "save_bash_input: ์๋ก์ด fd %d๋ฅผ ์ํ ๋ฒํผ๊ฐ ์ด๋ฏธ ์กด์ฌํจ" #: jobs.c:529 msgid "start_pipeline: pgrp pipe" @@ -1088,32 +1143,32 @@ msgstr "start_pipeline: pgrp pipe" #: jobs.c:1084 #, c-format msgid "forked pid %d appears in running job %d" -msgstr "" +msgstr "ํฌํฌ๋ pid %d๊ฐ ์คํ์ค์ธ job %d์ ๋ํ๋จ" #: jobs.c:1203 #, c-format msgid "deleting stopped job %d with process group %ld" -msgstr "" +msgstr "ํ๋ก์ธ์ค ๊ทธ๋ฃน %2$ld์ ์ ์ง๋ ์์
%1$d ๋ฅผ ์ญ์ ์ค" #: jobs.c:1307 #, c-format msgid "add_process: process %5ld (%s) in the_pipeline" -msgstr "" +msgstr "add_process: ํ๋ก์ธ์ค %5ld (%s) ๋ the_pipeline์ ์์" #: jobs.c:1310 #, c-format msgid "add_process: pid %5ld (%s) marked as still alive" -msgstr "" +msgstr "add_process: pid %5ld (%s) ๊ฐ ํ์ฌ๋ ์ด์์๋ค๊ณ ํ์๋จ" #: jobs.c:1639 #, c-format msgid "describe_pid: %ld: no such pid" -msgstr "" +msgstr "describe_pid: %ld: ๊ทธ๋ฐ pid๊ฐ ์์" #: jobs.c:1654 #, c-format msgid "Signal %d" -msgstr "" +msgstr "์ ํธ %d" #: jobs.c:1668 jobs.c:1694 msgid "Done" @@ -1121,12 +1176,12 @@ msgstr "์๋ฃ" #: jobs.c:1673 siglist.c:123 msgid "Stopped" -msgstr "" +msgstr "๋ฉ์ถค" #: jobs.c:1677 #, c-format msgid "Stopped(%s)" -msgstr "" +msgstr "๋ฉ์ถค(%s)" #: jobs.c:1681 msgid "Running" @@ -1135,12 +1190,12 @@ msgstr "์คํ์ค" #: jobs.c:1698 #, c-format msgid "Done(%d)" -msgstr "" +msgstr "์๋ฃ(%d)" #: jobs.c:1700 #, c-format msgid "Exit %d" -msgstr "" +msgstr "๋๊ฐ %d" #: jobs.c:1703 msgid "Unknown status" @@ -1154,12 +1209,12 @@ msgstr "(์ฝ์ด ๋คํ๋จ) " #: jobs.c:1809 #, c-format msgid " (wd: %s)" -msgstr "" +msgstr " (wd: %s)" #: jobs.c:2037 #, c-format msgid "child setpgid (%ld to %ld)" -msgstr "" +msgstr "child setpgid (%ld ์์ %ld ๋ก)" #: jobs.c:2399 nojobs.c:657 #, c-format @@ -1169,31 +1224,31 @@ msgstr "wait: pid %ld๋ ์ด ์์ ์์์ด ์๋" #: jobs.c:2695 #, c-format msgid "wait_for: No record of process %ld" -msgstr "" +msgstr "wait_for: ํ๋ก์ธ์ค %ld์ ๋ํ ๊ธฐ๋ก ์์" #: jobs.c:3055 #, c-format msgid "wait_for_job: job %d is stopped" -msgstr "" +msgstr "wait_for_job: job %d ์ ์ ์ง๋จ" #: jobs.c:3362 #, c-format msgid "%s: job has terminated" -msgstr "" +msgstr "%s: ์์
์ด ์ข
๋ฃ๋จ" #: jobs.c:3371 #, c-format msgid "%s: job %d already in background" -msgstr "" +msgstr "%s: job %d๋ ์ด๋ฏธ ๋ฐฑ๊ทธ๋ผ์ด๋์ ์์" #: jobs.c:3597 msgid "waitchld: turning on WNOHANG to avoid indefinite block" -msgstr "" +msgstr "waitchld: ์ ์๋์ง ์์ ๋ธ๋ก์ ํผํ๊ธฐ ์ํด WNOHANG๋ฅผ ์ผ๋ ์ค" #: jobs.c:4120 #, c-format msgid "%s: line %d: " -msgstr "" +msgstr "%s: ์ค %d: " #: jobs.c:4134 nojobs.c:900 #, c-format @@ -1203,37 +1258,37 @@ msgstr " (์ฝ์ด ๋คํ๋จ)" #: jobs.c:4146 jobs.c:4159 #, c-format msgid "(wd now: %s)\n" -msgstr "" +msgstr "(wd now: %s)\n" #: jobs.c:4191 msgid "initialize_job_control: getpgrp failed" -msgstr "" +msgstr "initialize_job_control: getpgrp ์คํจ" #: jobs.c:4247 msgid "initialize_job_control: no job control in background" -msgstr "" +msgstr "initialize_job_control: ๋ฐฑ๊ทธ๋ผ์ด๋์ job control ์์" #: jobs.c:4263 msgid "initialize_job_control: line discipline" -msgstr "" +msgstr "initialize_job_control: line discipline" #: jobs.c:4273 msgid "initialize_job_control: setpgid" -msgstr "" +msgstr "initialize_job_control: setpgid" #: jobs.c:4294 jobs.c:4303 #, c-format msgid "cannot set terminal process group (%d)" -msgstr "" +msgstr "ํฐ๋ฏธํธ ํ๋ก์ธ์ค ๊ทธ๋ฃน (%d)์ ์ค์ ํ ์ ์์" #: jobs.c:4308 msgid "no job control in this shell" -msgstr "" +msgstr "์ด ์์ job control ์์" #: lib/malloc/malloc.c:331 #, c-format msgid "malloc: failed assertion: %s\n" -msgstr "" +msgstr "malloc: assertion ์คํจ: %s\n" #: lib/malloc/malloc.c:347 #, c-format @@ -1241,61 +1296,63 @@ msgid "" "\r\n" "malloc: %s:%d: assertion botched\r\n" msgstr "" +"\r\n" +"malloc: %s:%d: assertion ๋ง๊ฐ์ง\r\n" #: lib/malloc/malloc.c:348 msgid "unknown" -msgstr "" +msgstr "์ ์ ์์" #: lib/malloc/malloc.c:855 msgid "malloc: block on free list clobbered" -msgstr "" +msgstr "malloc: block on free list clobbered" #: lib/malloc/malloc.c:932 msgid "free: called with already freed block argument" -msgstr "" +msgstr "free: ์ด๋ฏธ ํด์ ๋ ๋ธ๋ก ์ธ์๋ฅผ ๊ฐ์ง๊ณ ํธ์ถ๋จ" #: lib/malloc/malloc.c:935 msgid "free: called with unallocated block argument" -msgstr "" +msgstr "free: ํ ๋น๋์ง ์์ ๋ธ๋ก ์ธ์์ ํธ์ถ๋จ" #: lib/malloc/malloc.c:954 msgid "free: underflow detected; mh_nbytes out of range" -msgstr "" +msgstr "free: ์ธ๋ํ๋ก์ฐ ๊ฐ์ง; mh_nbytes๊ฐ ๋ฒ์๋ฅผ ๋ฒ์ด๋จ" #: lib/malloc/malloc.c:960 msgid "free: start and end chunk sizes differ" -msgstr "" +msgstr "free: ์์๊ณผ ๋์ ์ฒญํฌ ์ฌ์ด์ฆ๊ฐ ๋ค๋ฆ" #: lib/malloc/malloc.c:1070 msgid "realloc: called with unallocated block argument" -msgstr "" +msgstr "realloc: ํ ๋น๋์ง ์์ ๋ธ๋ก ์ธ์๋ฅผ ๊ฐ์ง๊ณ ํธ์ถ๋จ" #: lib/malloc/malloc.c:1085 msgid "realloc: underflow detected; mh_nbytes out of range" -msgstr "" +msgstr "realloc: ์ธ๋ํ๋ก์ฐ ๊ฐ์ง; mh_nbytes๊ฐ ๋ฒ์๋ฅผ ๋ฒ์ด๋จ" #: lib/malloc/malloc.c:1091 msgid "realloc: start and end chunk sizes differ" -msgstr "" +msgstr "realloc: ์์๊ณผ ๋์ ์ฒญํฌ ์ฌ์ด์ฆ๊ฐ ๋ค๋ฆ" #: lib/malloc/table.c:191 #, c-format msgid "register_alloc: alloc table is full with FIND_ALLOC?\n" -msgstr "" +msgstr "register_alloc: FIND_ALLOC์ด ํ ๋น ํ
์ด๋ธ์ด ๊ฐ๋ ์ฐผ๋ค๊ณ ํจ?\n" #: lib/malloc/table.c:200 #, c-format msgid "register_alloc: %p already in table as allocated?\n" -msgstr "" +msgstr "register_alloc: %p๊ฐ ํ ๋น๋ ํ
์ด๋ธ์ ์์?\n" #: lib/malloc/table.c:253 #, c-format msgid "register_free: %p already in table as free?\n" -msgstr "" +msgstr "register_free: %p๊ฐ ์ด๋ฏธ ํด์ ๋ ํ
์ด๋ธ์ ์์?\n" #: lib/sh/fmtulong.c:102 msgid "invalid base" -msgstr "" +msgstr "์ ํจํ์ง ์์ ์ง๋ฒ" #: lib/sh/netopen.c:168 #, c-format @@ -1310,31 +1367,31 @@ msgstr "%s: ์ ํจํ์ง ์์ ์๋น์ค" #: lib/sh/netopen.c:306 #, c-format msgid "%s: bad network path specification" -msgstr "" +msgstr "%s: ์๋ชป๋ ๋คํธ์ํฌ ๊ฒฝ๋ก ์ฌ์" #: lib/sh/netopen.c:347 msgid "network operations not supported" -msgstr "" +msgstr "๋คํธ์ํฌ ์์
์ ์ง์๋์ง ์์" #: locale.c:205 #, c-format msgid "setlocale: LC_ALL: cannot change locale (%s)" -msgstr "" +msgstr "setlocale: LC_ALL: ๋ก์ผ์ผ์ ๋ฐ๊ฟ ์ ์์ (%s)" #: locale.c:207 #, c-format msgid "setlocale: LC_ALL: cannot change locale (%s): %s" -msgstr "" +msgstr "setlocale: LC_ALL: ๋ก์ผ์ผ์ ๋ฐ๊ฟ ์ ์์ (%s): %s" #: locale.c:272 #, c-format msgid "setlocale: %s: cannot change locale (%s)" -msgstr "" +msgstr "setlocale: %s: ๋ก์ผ์ผ์ ๋ฐ๊ฟ ์ ์์ (%s)" #: locale.c:274 #, c-format msgid "setlocale: %s: cannot change locale (%s): %s" -msgstr "" +msgstr "setlocale: %s: ๋ก์ผ์ผ์ ๋ฐ๊ฟ ์ ์์ (%s): %s" #: mailcheck.c:439 msgid "You have mail in $_" @@ -1347,15 +1404,15 @@ msgstr "$_์ ์๋ก์ด ๋ฉ์ผ์ด ์์ต๋๋ค" #: mailcheck.c:480 #, c-format msgid "The mail in %s has been read\n" -msgstr "" +msgstr "%s์ ์๋ ๋ฉ์ผ์ ์ฝ์์ต๋๋ค\n" #: make_cmd.c:317 msgid "syntax error: arithmetic expression required" -msgstr "" +msgstr "๋ฌธ๋ฒ ์ค๋ฅ: ์ฐ์ ํํ์์ด ํ์ํจ" #: make_cmd.c:319 msgid "syntax error: `;' unexpected" -msgstr "" +msgstr "๋ฌธ๋ฒ ์ค๋ฅ: ';' ์์๋์ง ์์" #: make_cmd.c:320 #, c-format @@ -1365,44 +1422,44 @@ msgstr "๋ฌธ๋ฒ ์ค๋ฅ: `((%s))'" #: make_cmd.c:572 #, c-format msgid "make_here_document: bad instruction type %d" -msgstr "" +msgstr "make_here_document: ์๋ชป๋ ๋ช
๋ น์ด ํ์ %d" #: make_cmd.c:657 #, c-format msgid "here-document at line %d delimited by end-of-file (wanted `%s')" -msgstr "" +msgstr "here-document๊ฐ ์ค %d ์์ ํ์ผ์ ๋์ผ๋ก ๊ตฌ๋ถ๋จ (`%s'๋ฅผ ์์ํจ)" #: make_cmd.c:756 #, c-format msgid "make_redirection: redirection instruction `%d' out of range" -msgstr "" +msgstr "make_redirection: ๋ฆฌ๋ค์ด๋ ์
๋ช
๋ น์ด `%d' ๋ฒ์ ๋ฒ์ด๋จ" #: parse.y:2380 #, c-format msgid "shell_getc: shell_input_line_size (%zu) exceeds SIZE_MAX (%lu): line truncated" -msgstr "" +msgstr "shell_getc: shell_input_line_size (%zu)๊ฐ SIZE_MAX (%lu)๋ฅผ ์ด๊ณผํจ: ์ค ์๋ฆผ" #: parse.y:2786 msgid "maximum here-document count exceeded" -msgstr "" +msgstr "์ต๋ here-document ์นด์ดํธ ์ด๊ณผ" #: parse.y:3536 parse.y:3906 #, c-format msgid "unexpected EOF while looking for matching `%c'" -msgstr "" +msgstr "'%c'๋ฅผ ์ฐพ๋ ๋์ค ์์ํ์ง ๋ชปํ ํ์ผ์ ๋" #: parse.y:4606 msgid "unexpected EOF while looking for `]]'" -msgstr "" +msgstr "']]'๋ฅผ ์ฐพ๋ ๋์ค ์์ํ์ง ๋ชปํ ํ์ผ์ ๋" #: parse.y:4611 #, c-format msgid "syntax error in conditional expression: unexpected token `%s'" -msgstr "" +msgstr "์กฐ๊ฑด ํํ์์ ๋ฌธ๋ฒ ์ค๋ฅ: ์์ํ์ง ๋ชปํ ํ ํฐ '%s'" #: parse.y:4615 msgid "syntax error in conditional expression" -msgstr "" +msgstr "์กฐ๊ฑด ํํ์์ ๋ฌธ๋ฒ ์ค๋ฅ" #: parse.y:4693 #, c-format @@ -1416,54 +1473,54 @@ msgstr "')' ์์๋จ" #: parse.y:4725 #, c-format msgid "unexpected argument `%s' to conditional unary operator" -msgstr "" +msgstr "์กฐ๊ฑด ๋จํญ ์ฐ์ฐ์์ ์๊ธฐ์น ์์ ์ธ์ '%s'" #: parse.y:4729 msgid "unexpected argument to conditional unary operator" -msgstr "" +msgstr "์กฐ๊ฑด ๋จํญ ์ฐ์ฐ์์ ์๊ธฐ์น ์์ ์ธ์" #: parse.y:4775 #, c-format msgid "unexpected token `%s', conditional binary operator expected" -msgstr "" +msgstr "์๊ธฐ์น ์์ ํ ํฐ '%s', ์กฐ๊ฑด ์ดํญ ์ฐ์ฐ์ ์์๋จ" #: parse.y:4779 msgid "conditional binary operator expected" -msgstr "" +msgstr "์กฐ๊ฑด ์ดํญ ์ฐ์ฐ์ ์์๋จ" #: parse.y:4801 #, c-format msgid "unexpected argument `%s' to conditional binary operator" -msgstr "" +msgstr "์กฐ๊ฑด ์ดํญ ์ฐ์ฐ์์ ๋ํด ์๊ธฐ์น ์์ ์ธ์ '%s'" #: parse.y:4805 msgid "unexpected argument to conditional binary operator" -msgstr "" +msgstr "์กฐ๊ฑด ์ดํญ ์ฐ์ฐ์์ ๋ํด ์๊ธฐ์น ์์ ์ธ์" #: parse.y:4816 #, c-format msgid "unexpected token `%c' in conditional command" -msgstr "" +msgstr "์กฐ๊ฑด ๋ช
๋ น์ด์์ ์๊ธฐ์น ์์ ํ ํฐ '%c'" #: parse.y:4819 #, c-format msgid "unexpected token `%s' in conditional command" -msgstr "" +msgstr "์กฐ๊ฑด ๋ช
๋ น์ด์์ ์๊ธฐ์น ์์ ํ ํฐ '%s'" #: parse.y:4823 #, c-format msgid "unexpected token %d in conditional command" -msgstr "" +msgstr "์กฐ๊ฑด ๋ช
๋ น์ด์์ ์๊ธฐ์น ์์ ํ ํฐ %d" #: parse.y:6245 #, c-format msgid "syntax error near unexpected token `%s'" -msgstr "" +msgstr "์๊ธฐ์น ์์ ํ ํฐ '%s' ๊ทผ์ฒ์์ ๋ฌธ๋ฒ ์ค๋ฅ" #: parse.y:6263 #, c-format msgid "syntax error near `%s'" -msgstr "" +msgstr "'%s' ๊ทผ์ฒ์์ ๋ฌธ๋ฒ ์ค๋ฅ" #: parse.y:6273 msgid "syntax error: unexpected end of file" @@ -1480,32 +1537,32 @@ msgstr "์์ ๋๊ฐ๋ ค๋ฉด \"%s\"๋ฅผ ์ฌ์ฉํ์ธ์.\n" #: parse.y:6497 msgid "unexpected EOF while looking for matching `)'" -msgstr "" +msgstr "๋ง๋ ')'๋ฅผ ์ฐพ๋ ๋์ค ์๊ธฐ์น ์์ ํ์ผ์ ๋" #: pcomplete.c:1132 #, c-format msgid "completion: function `%s' not found" -msgstr "" +msgstr "completion: ํจ์ `%s' ๋ฅผ ์ฐพ์ ์ ์์" #: pcomplete.c:1722 #, c-format msgid "programmable_completion: %s: possible retry loop" -msgstr "" +msgstr "programmable_completion: %s: ๊ฐ๋ฅํ ์ฌ์๋ ๋ฃจํ" #: pcomplib.c:182 #, c-format msgid "progcomp_insert: %s: NULL COMPSPEC" -msgstr "" +msgstr "progcomp_insert: %s: NULL COMPSPEC" #: print_cmd.c:302 #, c-format msgid "print_command: bad connector `%d'" -msgstr "" +msgstr "print_command: ์๋ชป๋ ์ปค๋ฅํฐ `%d'" #: print_cmd.c:375 #, c-format msgid "xtrace_set: %d: invalid file descriptor" -msgstr "" +msgstr "xtrace_set: %d: ์ ํจํ์ง ์์ ํ์ผ ๋์คํฌ๋ฆฝํฐ" #: print_cmd.c:380 msgid "xtrace_set: NULL file pointer" @@ -1514,80 +1571,80 @@ msgstr "xtrace_set: NULL ํ์ผ ํฌ์ธํฐ" #: print_cmd.c:384 #, c-format msgid "xtrace fd (%d) != fileno xtrace fp (%d)" -msgstr "" +msgstr "xtrace fd (%d) != fileno xtrace fp (%d)" #: print_cmd.c:1540 #, c-format msgid "cprintf: `%c': invalid format character" -msgstr "" +msgstr "cprintf: `%c': ์๋ชป๋ ์์ ๋ฌธ์" #: redir.c:121 redir.c:167 msgid "file descriptor out of range" -msgstr "" +msgstr "ํ์ผ ๋์คํฌ๋ฆฝํฐ ๋ฒ์ ๋ฒ์ด๋จ" #: redir.c:174 #, c-format msgid "%s: ambiguous redirect" -msgstr "" +msgstr "%s: ๋ชจํธํ ๋ฆฌ๋ค์ด๋ ํธ" #: redir.c:178 #, c-format msgid "%s: cannot overwrite existing file" -msgstr "" +msgstr "%s: ์ด๋ฏธ ์๋ ํ์ผ์ ๋ฎ์ด์ธ ์ ์์" #: redir.c:183 #, c-format msgid "%s: restricted: cannot redirect output" -msgstr "" +msgstr "%s: ์ ํ๋จ: ์ถ๋ ฅ์ ๋ฆฌ๋ค์ด๋ ํธํ ์ ์์" #: redir.c:188 #, c-format msgid "cannot create temp file for here-document: %s" -msgstr "" +msgstr "here-document๋ฅผ ์ํ ์์ ํ์ผ์ ์์ฑํ ์ ์์: %s" #: redir.c:192 #, c-format msgid "%s: cannot assign fd to variable" -msgstr "" +msgstr "%s: fd๋ฅผ ๋ณ์์ ํ ๋นํ ์ ์์" #: redir.c:591 msgid "/dev/(tcp|udp)/host/port not supported without networking" -msgstr "" +msgstr "/dev/(tcp|udp)/host/port ๋ ๋คํธ์ํน ์์ด ์ง์๋์ง ์์" #: redir.c:875 redir.c:990 redir.c:1051 redir.c:1221 msgid "redirection error: cannot duplicate fd" -msgstr "" +msgstr "๋ฆฌ๋ค์ด๋ ์
์ค๋ฅ: fd๋ฅผ ๋ณต์ ํ ์ ์์" #: shell.c:343 msgid "could not find /tmp, please create!" -msgstr "" +msgstr "/tmp๋ฅผ ์ฐพ์ ์ ์์, ๋ง๋ค์ด ์ฃผ์ธ์!" #: shell.c:347 msgid "/tmp must be a valid directory name" -msgstr "" +msgstr "/tmp๋ ๋ฐ๋์ ์ ํจํ ๋๋ ํ ๋ฆฌ ์ด๋ฆ์ด์ด์ผ ํจ" #: shell.c:798 msgid "pretty-printing mode ignored in interactive shells" -msgstr "" +msgstr "์ํธ์ ์์์๋ pretty-printing ๋ชจ๋๊ฐ ๋ฌด์๋จ" #: shell.c:940 #, c-format msgid "%c%c: invalid option" -msgstr "" +msgstr "%c%c: ์ ํจํ์ง ์์ ์ต์
" #: shell.c:1299 #, c-format msgid "cannot set uid to %d: effective uid %d" -msgstr "" +msgstr "uid๋ฅผ %d๋ก ์ค์ ํ ์ ์์: effective uid %d" #: shell.c:1306 #, c-format msgid "cannot set gid to %d: effective gid %d" -msgstr "" +msgstr "gid๋ฅผ %d๋ก ์ค์ ํ ์ ์์: effective gid %d" #: shell.c:1494 msgid "cannot start debugger; debugging mode disabled" -msgstr "" +msgstr "๋๋ฒ๊ฑฐ๋ฅผ ์์ํ ์ ์์; ๋๋ฒ๊น
๋ชจ๋ ๋นํ์ฑํ๋จ" #: shell.c:1608 #, c-format @@ -1622,7 +1679,7 @@ msgstr "์ ์ต์
:\n" #: shell.c:1988 msgid "\t-ilrsD or -c command or -O shopt_option\t\t(invocation only)\n" -msgstr "" +msgstr "\t-ilrsD ๋๋ -c ๋ช
๋ น ๋๋ -O shopt_option\t\t(invocation ์ ์ฉ)\n" #: shell.c:2007 #, c-format @@ -1657,15 +1714,15 @@ msgstr "GNU ์ํํธ์จ์ด๋ฅผ ์ฌ์ฉํ๋๋ฐ ์ผ๋ฐ์ ์ธ ๋์๋ง: <http://w #: sig.c:730 #, c-format msgid "sigprocmask: %d: invalid operation" -msgstr "" +msgstr "sigprocmask: %d: ์ ํจํ์ง ์์ ์์
" #: siglist.c:48 msgid "Bogus signal" -msgstr "" +msgstr "Bogus ์ ํธ" #: siglist.c:51 msgid "Hangup" -msgstr "" +msgstr "Hangup" #: siglist.c:55 msgid "Interrupt" @@ -1673,15 +1730,15 @@ msgstr "์ธํฐ๋ฝํธ" #: siglist.c:59 msgid "Quit" -msgstr "" +msgstr "๋๊ฐ๊ธฐ" #: siglist.c:63 msgid "Illegal instruction" -msgstr "" +msgstr "Illegal instruction" #: siglist.c:67 msgid "BPT trace/trap" -msgstr "" +msgstr "BPT trace/trap" #: siglist.c:75 msgid "ABORT instruction" @@ -1697,7 +1754,7 @@ msgstr "๋ถ๋ ์์์ ์์ธ" #: siglist.c:87 msgid "Killed" -msgstr "" +msgstr "Killed" #: siglist.c:91 msgid "Bus error" @@ -1713,43 +1770,43 @@ msgstr "์๋ชป๋ ์์คํ
์ฝ" #: siglist.c:103 msgid "Broken pipe" -msgstr "" +msgstr "๊ณ ์ฅ๋ ํ์ดํ" #: siglist.c:107 msgid "Alarm clock" -msgstr "" +msgstr "์๋ ์๊ณ" #: siglist.c:111 msgid "Terminated" -msgstr "" +msgstr "Terminated" #: siglist.c:115 msgid "Urgent IO condition" -msgstr "" +msgstr "๊ธด๊ธํ IO ์ํฉ" #: siglist.c:119 msgid "Stopped (signal)" -msgstr "" +msgstr "๋ฉ์ถค (์ ํธ)" #: siglist.c:127 msgid "Continue" -msgstr "" +msgstr "๊ณ์" #: siglist.c:135 msgid "Child death or stop" -msgstr "" +msgstr "์์์ด ์ฃฝ๊ฑฐ๋ ๋ฉ์ถค" #: siglist.c:139 msgid "Stopped (tty input)" -msgstr "" +msgstr "๋ฉ์ถค (tty ์
๋ ฅ)" #: siglist.c:143 msgid "Stopped (tty output)" -msgstr "" +msgstr "๋ฉ์ถค (tty ์ถ๋ ฅ)" #: siglist.c:147 msgid "I/O ready" -msgstr "" +msgstr "I/O ์ค๋น" #: siglist.c:151 msgid "CPU limit" @@ -1761,286 +1818,286 @@ msgstr "ํ์ผ ์ ํ" #: siglist.c:159 msgid "Alarm (virtual)" -msgstr "" +msgstr "์๋ (๊ฐ์)" #: siglist.c:163 msgid "Alarm (profile)" -msgstr "" +msgstr "์๋ (ํ๋กํ์ผ)" #: siglist.c:167 msgid "Window changed" -msgstr "" +msgstr "์๋์ฐ ๋ณ๊ฒฝ๋จ" #: siglist.c:171 msgid "Record lock" -msgstr "" +msgstr "๊ธฐ๋ก ์ ๊ธ" #: siglist.c:175 msgid "User signal 1" -msgstr "" +msgstr "์ ์ ์ ํธ 1" #: siglist.c:179 msgid "User signal 2" -msgstr "" +msgstr "์ ์ ์ ํธ 2" #: siglist.c:183 msgid "HFT input data pending" -msgstr "" +msgstr "HFT ์
๋ ฅ ๋ฐ์ดํฐ ๋๊ธฐ์ค" #: siglist.c:187 msgid "power failure imminent" -msgstr "" +msgstr "์ ์ ๋ฌธ์ ์๋ฐ" #: siglist.c:191 msgid "system crash imminent" -msgstr "" +msgstr "์์คํ
์ถฉ๋ ์๋ฐ" #: siglist.c:195 msgid "migrate process to another CPU" -msgstr "" +msgstr "๋ค๋ฅธ CPU๋ก ํ๋ก์ธ์ค ์ด์ " #: siglist.c:199 msgid "programming error" -msgstr "" +msgstr "ํ๋ก๊ทธ๋๋ฐ ์ค๋ฅ" #: siglist.c:203 msgid "HFT monitor mode granted" -msgstr "" +msgstr "HFT ๋ชจ๋ํฐ ๋ชจ๋ ์น์ธ๋จ" #: siglist.c:207 msgid "HFT monitor mode retracted" -msgstr "" +msgstr "HFT ๋ชจ๋ํฐ ๋ชจ๋ ์ฒ ํ๋จ" #: siglist.c:211 msgid "HFT sound sequence has completed" -msgstr "" +msgstr "HFT ์ฌ์ด๋ ์ ์ฐจ๊ฐ ์๋ฃ๋จ" #: siglist.c:215 msgid "Information request" -msgstr "" +msgstr "์ ๋ณด ์์ฒญ" #: siglist.c:223 msgid "Unknown Signal #" -msgstr "" +msgstr "์ ์ ์๋ ์ ํธ #" #: siglist.c:225 #, c-format msgid "Unknown Signal #%d" -msgstr "" +msgstr "์ ์ ์๋ ์ ํธ #%d" #: subst.c:1454 subst.c:1644 #, c-format msgid "bad substitution: no closing `%s' in %s" -msgstr "" +msgstr "์๋ชป๋ ๋์ฒด: %2$s์ ๋ซ๋ '%1$s' ์์" #: subst.c:3231 #, c-format msgid "%s: cannot assign list to array member" -msgstr "" +msgstr "%s: ๋ฆฌ์คํธ๋ฅผ ๋ฐฐ์ด ๋ฉค๋ฒ์ ํ ๋นํ ์ ์์" #: subst.c:5789 subst.c:5805 msgid "cannot make pipe for process substitution" -msgstr "" +msgstr "ํ๋ก์ธ์ค ๋์ฒด๋ฅผ ์ํด ํ์ดํ๋ฅผ ๋ง๋ค ์ ์์" #: subst.c:5851 msgid "cannot make child for process substitution" -msgstr "" +msgstr "ํ๋ก์ธ์ค ๋์ฒด๋ฅผ ์ํด ์์์ ๋ง๋ค ์ ์์" #: subst.c:5920 #, c-format msgid "cannot open named pipe %s for reading" -msgstr "" +msgstr "์ฝ๊ธฐ๋ฅผ ์ํด ๋ช
๋ช
๋ ํ์ดํ %s๋ฅผ ์ด ์ ์์" #: subst.c:5922 #, c-format msgid "cannot open named pipe %s for writing" -msgstr "" +msgstr "์ฐ๊ธฐ๋ฅผ ์ํด ๋ช
๋ช
๋ ํ์ดํ %s๋ฅผ ์ด ์ ์์" #: subst.c:5945 #, c-format msgid "cannot duplicate named pipe %s as fd %d" -msgstr "" +msgstr "๋ช
๋ช
๋ ํ์ดํ %s๋ฅผ fd %d๋ก ๋ณต์ ํ ์ ์์" #: subst.c:6062 msgid "command substitution: ignored null byte in input" -msgstr "" +msgstr "command substitution: ์
๋ ฅ์ null ๋ฐ์ดํธ ๋ฌด์๋จ" #: subst.c:6190 msgid "cannot make pipe for command substitution" -msgstr "" +msgstr "๋ช
๋ น์ด ๋์ฒด๋ฅผ ์ํด ํ์ดํ๋ฅผ ๋ง๋ค ์ ์์" #: subst.c:6233 msgid "cannot make child for command substitution" -msgstr "" +msgstr "๋ช
๋ น์ด ๋์ฒด๋ฅผ ์ํด ์์์ ๋ง๋ค ์ ์์" #: subst.c:6259 msgid "command_substitute: cannot duplicate pipe as fd 1" -msgstr "" +msgstr "command_substitute: ํ์ดํ๋ฅผ fd 1๋ก ๋ณต์ ํ ์ ์์" #: subst.c:6710 subst.c:9623 #, c-format msgid "%s: invalid variable name for name reference" -msgstr "" +msgstr "%s: ์ด๋ฆ ์ฐธ์กฐ์ ๋ํด ์ ํจํ์ง ์์ ๋ณ์ ์ด๋ฆ" #: subst.c:6806 subst.c:6824 subst.c:6979 #, c-format msgid "%s: invalid indirect expansion" -msgstr "" +msgstr "%s: ์ ํจํ์ง ์์ ๊ฐ์ ํ์ฅ" #: subst.c:6840 subst.c:6987 #, c-format msgid "%s: invalid variable name" -msgstr "" +msgstr "%s: ์ ํจํ์ง ์์ ๋ณ์ ์ด๋ฆ" #: subst.c:7056 #, c-format msgid "%s: parameter not set" -msgstr "" +msgstr "%s: ํ๋ผ๋ฏธํฐ ์ค์ ๋์ง ์์" #: subst.c:7058 #, c-format msgid "%s: parameter null or not set" -msgstr "" +msgstr "%s: ํ๋ผ๋ฏธํฐ๊ฐ null ๋๋ ์ค์ ๋์ง ์์" #: subst.c:7295 subst.c:7310 #, c-format msgid "%s: substring expression < 0" -msgstr "" +msgstr "%s: ๋ถ๋ถ ๋ฌธ์์ด ํํ์ < 0" #: subst.c:8973 subst.c:8994 #, c-format msgid "%s: bad substitution" -msgstr "" +msgstr "%s: ์๋ชป๋ ๋์ฒด" #: subst.c:9082 #, c-format msgid "$%s: cannot assign in this way" -msgstr "" +msgstr "$%s: ์ด ๋ฐฉ๋ฒ์ผ๋ก ํ ๋นํ ์ ์์" #: subst.c:9485 msgid "future versions of the shell will force evaluation as an arithmetic substitution" -msgstr "" +msgstr "ํฅํ ๋ฒ์ ์ ์์์๋ ์ฐ์ ๋์ฒด๋ก ์ฐ์ฐ์ด ๊ฐ์ ๋ฉ๋๋ค" #: subst.c:10043 #, c-format msgid "bad substitution: no closing \"`\" in %s" -msgstr "" +msgstr "์๋ชป๋ ๋์ฒด: %s์ ๋ซ๋ \"`\" ์์" #: subst.c:11070 #, c-format msgid "no match: %s" -msgstr "" +msgstr "์ผ์น ์์: %s" #: test.c:147 msgid "argument expected" -msgstr "" +msgstr "์ธ์ ์์๋จ" #: test.c:156 #, c-format msgid "%s: integer expression expected" -msgstr "" +msgstr "%s: ์ ์ ํํ์ ์์๋จ" #: test.c:265 msgid "`)' expected" -msgstr "" +msgstr "`)' ์์๋จ" #: test.c:267 #, c-format msgid "`)' expected, found %s" -msgstr "" +msgstr "`)' ์์๋์์ผ๋ %s๋ฅผ ๋ฐ๊ฒฌ" #: test.c:282 test.c:750 test.c:753 #, c-format msgid "%s: unary operator expected" -msgstr "" +msgstr "%s: ๋จํญ ์ฐ์ฐ์ ์์๋จ" #: test.c:469 test.c:793 #, c-format msgid "%s: binary operator expected" -msgstr "" +msgstr "%s: ์ดํญ ์ฐ์ฐ์ ์์๋จ" #: test.c:875 msgid "missing `]'" -msgstr "" +msgstr "']' ์์" #: trap.c:216 msgid "invalid signal number" -msgstr "" +msgstr "์ ํจํ์ง ์์ ์ ํธ ๋ฒํธ" #: trap.c:320 #, c-format msgid "trap handler: maximum trap handler level exceeded (%d)" -msgstr "" +msgstr "trap handler: ์ต๋ trap handler ๋ ๋ฒจ ์ด๊ณผ (%d)" #: trap.c:408 #, c-format msgid "run_pending_traps: bad value in trap_list[%d]: %p" -msgstr "" +msgstr "run_pending_traps: trap_list[%d]์ ์๋ชป๋ ๊ฐ: %p" #: trap.c:412 #, c-format msgid "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" -msgstr "" +msgstr "run_pending_traps: ์ ํธ ํธ๋ค๋ฌ๋ SIG_DFL ์ด๊ณ , %d (%s)๋ฅผ ์์ ์๊ฒ ๋ณด๋ด๋ ์ค" #: trap.c:470 #, c-format msgid "trap_handler: bad signal %d" -msgstr "" +msgstr "trap_handler: ์๋ชป๋ ์ ํธ %d" #: variables.c:412 #, c-format msgid "error importing function definition for `%s'" -msgstr "" +msgstr "'%s'์ ๋ํด ํจ์ ์ ์๋ฅผ ๋ถ๋ฌ์ค๋๋ฐ ์ค๋ฅ ๋ฐ์" #: variables.c:821 #, c-format msgid "shell level (%d) too high, resetting to 1" -msgstr "" +msgstr "์ ๋ ๋ฒจ (%d)์ด ๋๋ฌด ๋์ต๋๋ค, 1๋ก ์ฌ์ค์ ํฉ๋๋ค" #: variables.c:2655 msgid "make_local_variable: no function context at current scope" -msgstr "" +msgstr "make_local_variable: ํ์ฌ ๋ฒ์์์ ํจ์ ์ปจํ
์คํธ ์์" #: variables.c:2674 #, c-format msgid "%s: variable may not be assigned value" -msgstr "" +msgstr "%s: ๋ณ์๋ ํ ๋น๋ ๊ฐ์ด ๋ ์ ์์" #: variables.c:3453 #, c-format msgid "%s: assigning integer to name reference" -msgstr "" +msgstr "%s: ์ด๋ฆ ์ฐธ์กฐ์ ์ ์๋ฅผ ํ ๋นํ๊ณ ์์" #: variables.c:4365 msgid "all_local_variables: no function context at current scope" -msgstr "" +msgstr "all_local_variables: ํ์ฌ ๋ฒ์์์ ํจ์ ์ปจํ
์คํธ ์์" #: variables.c:4698 #, c-format msgid "%s has null exportstr" -msgstr "" +msgstr "%s๊ฐ null exportstr์ ๊ฐ์ง" #: variables.c:4703 variables.c:4712 #, c-format msgid "invalid character %d in exportstr for %s" -msgstr "" +msgstr "%2$s๋ฅผ ์ํ exportstr์์ ์ ํจํ์ง ์์ ๋ฌธ์ %1$d" #: variables.c:4718 #, c-format msgid "no `=' in exportstr for %s" -msgstr "" +msgstr "%s๋ฅผ ์ํ exportstr์ '=' ์์" #: variables.c:5243 msgid "pop_var_context: head of shell_variables not a function context" -msgstr "" +msgstr "pop_var_context: shell_variables์ ์์์ด ํจ์์ ์ปจํ
์คํธ๊ฐ ์๋" #: variables.c:5256 msgid "pop_var_context: no global_variables context" -msgstr "" +msgstr "pop_var_context: ์ปจํ
์คํธ์ global_variables ์์" #: variables.c:5336 msgid "pop_scope: head of shell_variables not a temporary environment scope" -msgstr "" +msgstr "pop_scope: shell_variables์ ์์์ด ์์ ํ๊ฒฝ ๋ฒ์๊ฐ ์๋" #: variables.c:6272 #, c-format @@ -2050,12 +2107,12 @@ msgstr "%s: %s: ํ์ผ๋ก์จ ์ด ์ ์์" #: variables.c:6277 #, c-format msgid "%s: %s: invalid value for trace file descriptor" -msgstr "" +msgstr "%s: %s: ์ถ์ฒ ํ์ผ ๋์คํฌ๋ฆฝํฐ์ ์ ํจํ์ง ์์ ๊ฐ" #: variables.c:6322 #, c-format msgid "%s: %s: compatibility value out of range" -msgstr "" +msgstr "%s: %s: ํธํ ๊ฐ์ด ๋ฒ์๋ฅผ ๋ฒ์ด๋จ" #: version.c:46 version2.c:46 msgid "Copyright (C) 2018 Free Software Foundation, Inc." @@ -2081,34 +2138,34 @@ msgstr "There is NO WARRANTY, to the extent permitted by law." #: xmalloc.c:93 #, c-format msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)" -msgstr "" +msgstr "%s: %lu bytes๋ฅผ ํ ๋นํ ์ ์์ (%lu bytes ํ ๋น๋จ)" #: xmalloc.c:95 #, c-format msgid "%s: cannot allocate %lu bytes" -msgstr "" +msgstr "%s: %lu bytes๋ฅผ ํ ๋นํ ์ ์์" #: xmalloc.c:165 #, c-format msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" -msgstr "" +msgstr "%s: %s:%d: %lu bytes๋ฅผ ํ ๋นํ ์ ์์ (%lu bytes ํ ๋น๋จ)" #: xmalloc.c:167 #, c-format msgid "%s: %s:%d: cannot allocate %lu bytes" -msgstr "" +msgstr "%s: %s:%d: %lu bytes๋ฅผ ํ ๋นํ ์ ์์" #: builtins.c:45 msgid "alias [-p] [name[=value] ... ]" -msgstr "" +msgstr "alias [-p] [name[=value] ... ]" #: builtins.c:49 msgid "unalias [-a] name [name ...]" -msgstr "" +msgstr "unalias [-a] name [name ...]" #: 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 "" +msgstr "bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:shell-command] [keyseq:readline-function ๋๋ readline-command]" #: builtins.c:56 msgid "break [n]" @@ -2120,11 +2177,11 @@ msgstr "continue [n]" #: builtins.c:60 msgid "builtin [shell-builtin [arg ...]]" -msgstr "" +msgstr "builtin [shell-builtin [arg ...]]" #: builtins.c:63 msgid "caller [expr]" -msgstr "" +msgstr "caller [expr]" #: builtins.c:66 msgid "cd [-L|[-P [-e]] [-@]] [dir]" @@ -2136,19 +2193,19 @@ msgstr "pwd [-LP]" #: builtins.c:76 msgid "command [-pVv] command [arg ...]" -msgstr "" +msgstr "command [-pVv] command [arg ...]" #: builtins.c:78 msgid "declare [-aAfFgilnrtux] [-p] [name[=value] ...]" -msgstr "" +msgstr "declare [-aAfFgilnrtux] [-p] [name[=value] ...]" #: builtins.c:80 msgid "typeset [-aAfFgilnrtux] [-p] name[=value] ..." -msgstr "" +msgstr "typeset [-aAfFgilnrtux] [-p] name[=value] ..." #: builtins.c:82 msgid "local [option] name[=value] ..." -msgstr "" +msgstr "local [์ต์
] name[=value] ..." #: builtins.c:85 msgid "echo [-neE] [arg ...]" @@ -2168,11 +2225,11 @@ msgstr "eval [์ธ์ ...]" #: builtins.c:96 msgid "getopts optstring name [arg]" -msgstr "" +msgstr "getopts optstring name [arg]" #: builtins.c:98 msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]" -msgstr "" +msgstr "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]" #: builtins.c:100 msgid "exit [n]" @@ -2184,7 +2241,7 @@ msgstr "logout [n]" #: builtins.c:105 msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]" -msgstr "" +msgstr "fc [-e ename] [-lnr] [first] [last] ๋๋ fc -s [pat=rep] [command]" #: builtins.c:109 msgid "fg [job_spec]" @@ -2196,7 +2253,7 @@ msgstr "bg [job_spec ...]" #: builtins.c:116 msgid "hash [-lr] [-p pathname] [-dt] [name ...]" -msgstr "" +msgstr "hash [-lr] [-p pathname] [-dt] [name ...]" #: builtins.c:119 msgid "help [-dms] [pattern ...]" @@ -2204,11 +2261,11 @@ msgstr "help [-dms] [ํจํด ...]" #: builtins.c:123 msgid "history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]" -msgstr "" +msgstr "history [-c] [-d ์คํ์
] [n] ๋๋ history -anrw [ํ์ผ๋ช
] ๋๋ history -ps arg [์ธ์...]" #: builtins.c:127 msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]" -msgstr "" +msgstr "jobs [-lnprs] [jobspec ...] ๋๋ jobs -x command [args]" #: builtins.c:131 msgid "disown [-h] [-ar] [jobspec ... | pid ...]" @@ -2216,15 +2273,15 @@ msgstr "disown [-h] [-ar] [jobspec ... | pid ...]" #: builtins.c:134 msgid "kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]" -msgstr "" +msgstr "kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... ๋๋ kill -l [sigspec]" #: builtins.c:136 msgid "let arg [arg ...]" -msgstr "" +msgstr "let arg [arg ...]" #: builtins.c:138 msgid "read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]" -msgstr "" +msgstr "read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]" #: builtins.c:140 msgid "return [n]" @@ -2232,19 +2289,19 @@ msgstr "return [n]" #: builtins.c:142 msgid "set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]" -msgstr "set [-abefhkmnptuvxBCHP] [-o ์ต์
์ด๋ฆ] [--] [์ธ์ ...]" +msgstr "set [-abefhkmnptuvxBCHP] [-o ์ต์
์ด๋ฆ] [--] [arg ...]" #: builtins.c:144 msgid "unset [-f] [-v] [-n] [name ...]" -msgstr "unset [-f] [-v] [-n] [์ด๋ฆ ...]" +msgstr "unset [-f] [-v] [-n] [name ...]" #: builtins.c:146 msgid "export [-fn] [name[=value] ...] or export -p" -msgstr "export [-fn] [์ด๋ฆ[=๊ฐ] ...] ๋๋ export -p" +msgstr "export [-fn] [name[=value] ...] ๋๋ export -p" #: builtins.c:148 msgid "readonly [-aAf] [name[=value] ...] or readonly -p" -msgstr "readonly [-aAf] [์ด๋ฆ[=๊ฐ] ...] ๋๋ readonly -p" +msgstr "readonly [-aAf] [name[=value] ...] ๋๋ readonly -p" #: builtins.c:150 msgid "shift [n]" @@ -2252,11 +2309,11 @@ msgstr "shift [n]" #: builtins.c:152 msgid "source filename [arguments]" -msgstr "" +msgstr "source ํ์ผ๋ช
[์ธ์๋ค]" #: builtins.c:154 msgid ". filename [arguments]" -msgstr "" +msgstr ". ํ์ผ๋ช
[์ธ์๋ค]" #: builtins.c:157 msgid "suspend [-f]" @@ -2264,19 +2321,19 @@ msgstr "suspend [-f]" #: builtins.c:160 msgid "test [expr]" -msgstr "test [ํํ์]" +msgstr "test [expr]" #: builtins.c:162 msgid "[ arg... ]" -msgstr "" +msgstr "[ ์ธ์... ]" #: builtins.c:166 msgid "trap [-lp] [[arg] signal_spec ...]" -msgstr "trap [-lp] [[์ธ์] signal_spec ...]" +msgstr "trap [-lp] [[arg] signal_spec ...]" #: builtins.c:168 msgid "type [-afptP] name [name ...]" -msgstr "type [-afptP] name [์ด๋ฆ ...]" +msgstr "type [-afptP] name [name ...]" #: builtins.c:171 msgid "ulimit [-SHabcdefiklmnpqrstuvxPT] [limit]" @@ -2296,15 +2353,15 @@ msgstr "wait [pid ...]" #: builtins.c:184 msgid "for NAME [in WORDS ... ] ; do COMMANDS; done" -msgstr "" +msgstr "for NAME [in WORDS ... ] ; do COMMANDS; done" #: builtins.c:186 msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done" -msgstr "" +msgstr "for (( exp1; exp2; exp3 )); do COMMANDS; done" #: builtins.c:188 msgid "select NAME [in WORDS ... ;] do COMMANDS; done" -msgstr "" +msgstr "select NAME [in WORDS ... ;] do COMMANDS; done" #: builtins.c:190 msgid "time [-p] pipeline" @@ -2312,7 +2369,7 @@ msgstr "time [-p] pipeline" #: builtins.c:192 msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac" -msgstr "" +msgstr "case ๋จ์ด in [ํจํด [| ํจํด]...) ๋ช
๋ น์ด ;;]... esac" #: builtins.c:194 msgid "if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi" @@ -2328,11 +2385,11 @@ msgstr "until ๋ช
๋ น์ด; do ๋ช
๋ น์ด; done" #: builtins.c:200 msgid "coproc [NAME] command [redirections]" -msgstr "" +msgstr "coproc [NAME] command [redirections]" #: builtins.c:202 msgid "function name { COMMANDS ; } or name () { COMMANDS ; }" -msgstr "" +msgstr "function name { ๋ช
๋ น์ด ; } ๋๋ name () { ๋ช
๋ น์ด ; }" #: builtins.c:204 msgid "{ COMMANDS ; }" @@ -2368,7 +2425,7 @@ msgstr "dirs [-clpv] [+N] [-N]" #: builtins.c:226 msgid "shopt [-pqsu] [-o] [optname ...]" -msgstr "shopt [-pqsu] [-o] [์ต์
์ด๋ฆ...]" +msgstr "shopt [-pqsu] [-o] [์ต์
์ด๋ฆ...]" #: builtins.c:228 msgid "printf [-v var] format [arguments]" @@ -2376,23 +2433,23 @@ msgstr "printf [-v ๋ณ์] format [์ธ์]" #: builtins.c:231 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 "" +msgstr "complete [-abcdefgjksuv] [-pr] [-DEI] [-o option] [-A action] [-G globpat] [-W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...]" #: builtins.c:235 msgid "compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]" -msgstr "" +msgstr "compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]" #: builtins.c:239 msgid "compopt [-o|+o option] [-DEI] [name ...]" -msgstr "" +msgstr "compopt [-o|+o option] [-DEI] [name ...]" #: builtins.c:242 msgid "mapfile [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]" -msgstr "" +msgstr "mapfile [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]" #: builtins.c:244 msgid "readarray [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]" -msgstr "" +msgstr "readarray [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]" #: builtins.c:256 msgid "" @@ -2573,6 +2630,12 @@ msgid "" " Exit Status:\n" " Always succeeds." msgstr "" +"Null ๋ช
๋ น.\n" +" \n" +" ํจ๊ณผ ์์; ์๋ฌด๊ฒ๋ ํ์ง ์์ต๋๋ค.\n" +" \n" +" ์ข
๋ฃ ์ํ:\n" +" ํญ์ ์ฑ๊ณตํฉ๋๋ค." #: builtins.c:453 msgid "" @@ -2599,6 +2662,7 @@ msgstr "" " ํญ์ ์คํจํฉ๋๋ค." #: builtins.c:471 +#, fuzzy msgid "" "Execute a simple command or display information about commands.\n" " \n" @@ -2615,6 +2679,20 @@ msgid "" " Exit Status:\n" " Returns exit status of COMMAND, or failure if COMMAND is not found." msgstr "" +"๊ฐ๋จํ ๋ช
๋ น์ ์คํํ๊ฑฐ๋ ๋ช
๋ น์ ๊ดํ ์ ๋ณด๋ฅผ ํ์ํฉ๋๋ค..\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" +" ์ต์
:\n" +" -p ํ์ค ์ ํธ๋ฆฌํฐ๋ฅผ ์ ๋ถ ์ฐพ์ ์ ์๋ค๊ณ ๋ณด์ฅ๋ PATH์\n" +" ๊ธฐ๋ณธ ๊ฐ์ ์ฌ์ฉํฉ๋๋ค.\n" +" -v `type' ๋นํธ์ธ๊ณผ ์ ์ฌํ ๋ช
๋ น์ ์ค๋ช
์ ๋ณด์ฌ์ค๋๋ค\n" +" -V ๊ฐ ๋ช
๋ น์ ๊ดํด ๋ ์์ธํ ์ ๋ณด๋ฅผ ๋ณด์ฌ์ค๋๋ค\n" +" \n" +" ์ข
๋ฃ ์ํ:\n" +" ๋ช
๋ น์ ์คํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๊ฑฐ๋ ๋ช
๋ น์ด ์์ ๊ฒฝ์ฐ ์ค๋ฅ๋ฅผ ๋ฐํํฉ๋๋ค." #: builtins.c:490 msgid "" @@ -2661,6 +2739,9 @@ msgid "" " \n" " A synonym for `declare'. See `help declare'." msgstr "" +"๋ณ์์ ๊ฐ๊ณผ ์์ฑ์ ์ค์ ํฉ๋๋ค.\n" +" \n" +" `declare'์ ๋์์ด ์
๋๋ค. `help declare'๋ฅผ ๋ณด์ญ์์ค." #: builtins.c:538 msgid "" @@ -2841,6 +2922,10 @@ msgid "" " 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:732 msgid "" @@ -3319,6 +3404,16 @@ msgid "" " Exit Status:\n" " Returns success unless job control is not enabled or an error occurs." msgstr "" +"์ ์คํ์ ์ผ์์ ์งํฉ๋๋ค.\n" +" \n" +" SIGCONT ์ ํธ๋ฅผ ๋ฐ์ ๋ ๊น์ง ์์ ์คํ์ ์ผ์ ์ ์งํฉ๋๋ค.\n" +" ๊ฐ์ ์ต์
์ด ์๋ ๊ฒฝ์ฐ ๋ก๊ทธ์ธ ์์ ์ผ์ ์ ์ง๋ ์ ์์ต๋๋ค.\n" +" \n" +" ์ต์
:\n" +" -f\t๋ก๊ทธ์ธ ์์ ๊ฒฝ์ฐ์๋ ์ผ์ ์ ์ง๋ฅผ ๊ฐ์ ํฉ๋๋ค.\n" +" \n" +" ์ข
๋ฃ ์ํ:\n" +" job control์ด ํ์ฑํ๋์ง ์์๊ฑฐ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง ์์ผ๋ฉด ์ฑ๊ณต์ ๋ฐํํฉ๋๋ค." #: builtins.c:1259 msgid "" @@ -3926,6 +4021,26 @@ msgid "" " Exit Status:\n" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" +"๋๋ ํ ๋ฆฌ ์คํ์ ๋ณด์ฌ์ค๋๋ค.\n" +" \n" +" ํ์ฌ ๊ธฐ์ต๋ ๋๋ ํ ๋ฆฌ์ ๋ชฉ๋ก์ ๋ณด์ฌ์ค๋๋ค. ๋๋ ํ ๋ฆฌ๋ค์\n" +" `pushd' ๋ช
๋ น์ ํตํด ๋ชฉ๋ก์ ๊ฒฝ๋ก๋ฅผ ์ ์ฅํ ์ ์๊ณ ; 'popd' \n" +" ๋ช
๋ น์ ํตํด ๊ฑฐ์ฌ๋ฌ ์ฌ๋ผ๊ฐ ์ ์์ต๋๋ค.\n" +" \n" +" ์ต์
:\n" +" -c\t์์๋ฅผ ์ ๋ถ ์ญ์ ํจ์ผ๋ก์จ ๋๋ ํ ๋ฆฌ ์คํ์ ์ด๊ธฐํํฉ๋๋ค\n" +" -l\tํ ๋๋ ํ ๋ฆฌ๊น์ง ~๋ก ์ถ์ฝ๋ ์๋๊ฒฝ๋ก๋ฅผ ํ์ํ์ง ์์ต๋๋ค\n" +" -p\tํ ์ค์ ํ๋์ฉ ๋๋ ํ ๋ฆฌ ์คํ์ ํ์ํฉ๋๋ค\n" +" -v\tํ ์ค์ ํ๋์ฉ ์คํ์ ์์น์ ํจ๊ป ๋๋ ํ ๋ฆฌ ์คํ์ ํ์ํฉ๋๋ค\n" +" \n" +" ์ธ์:\n" +" +N\t์ธ์ ์์ด ์คํ๋ ๋ ๋ณด์ฌ์ง๋ ๋ชฉ๋ก์ ์ผ์ชฝ๋ถํฐ N๋ฒ์งธ ํญ๋ชฉ์ ๋ณด์ฌ์ค๋๋ค.\n" +" \t์ธ๋ ์๋ 0๋ถํฐ ์์ํฉ๋๋ค.\n" +" \n" +" -N\t์ธ์ ์์ด ์คํ๋ ๋ ๋ณด์ฌ์ง๋ ๋ชฉ๋ก์ ์ค๋ฅธ์ชฝ๋ถํฐ N๋ฒ์งธ ํญ๋ชฉ์ ๋ณด์ฌ์ค๋๋ค.\n" +"\t์ธ๋ ์๋ 0๋ถํฐ ์์ํฉ๋๋ค.\n" +" ์ข
๋ฃ ์ํ:\n" +" ์ ํจํ์ง ์์ ์ต์
์ด ์ฃผ์ด์ง๊ฑฐ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง ์๋๋ค๋ฉด ์ฑ๊ณต์ ๋ฐํํฉ๋๋ค." #: builtins.c:1906 msgid "" @@ -4088,3 +4203,6 @@ msgid "" " \n" " A synonym for `mapfile'." msgstr "" +"ํ์ผ์์ ์ค์ ์ฝ์ด ๋ฐฐ์ด ๋ณ์์ ๋ฃ์ต๋๋ค.\n" +" \n" +" `mapfile'์ ๋์์ด." |
