commit bash-20190227 snapshot

This commit is contained in:
Chet Ramey
2019-02-28 08:37:36 -05:00
parent 3eef85534f
commit e230f9979d
36 changed files with 7191 additions and 7001 deletions
+39
View File
@@ -5381,3 +5381,42 @@ bashhist.c
history entries in the current shell session is greater than the
number of entries in the history list. Based on a report from
<airat_vi@mail.ru>
2/25
----
aclocal.m4
- BASH_FUNC_FNMATCH_EQUIV_FALLBACK: use en_US.UTF-8 instead of
de_DE.UTF-8; it's more likely to be installed
2/26
----
doc/{bash.1,bashref.texi}
- extdebug: make sure to note that setting this option in a startup
file causes an attempt to start the debugger. Noted by Linda
Walsh <bash@tlinx.org>
builtins/fc.def
- fc_builtin: if we are not listing, and delete the last history entry,
make sure that histbeg or histend, whichever is greater, is clamped
at the value of last_hist to avoid dereferencing the just-removed
history index. Fixes bug reported by Chris King-Parra
<chris@kingparra.work>
2/27
----
shell.c
- init_interactive: assignment to histexp_flag should be protected by
#ifdef BANG_HISTORY. https://savannah.gnu.org/patch/?9759
subst.c
- list_string: if we have a non-null string, but quoted null character
removal leaves an empty string, set W_SAWQUOTEDNULL in the returned
word flags so the caller can deal with it
- parameter_brace_expand_rhs: deal with word with null or empty word
and W_SAWQUOTEDNULL in the flags coming back from expand_string_for_rhs
by turning it into a quoted null word and modifying the flags. Part
of fix for bug report from Grisha Levit <grishalevit@gmail.com>
- expand_word_internal: if a double-quoted string comes back with a
quoted null as the expansion of "$@", note that we saw it, but still
add a quoted null into the result string instead of short-circuiting.
Part of fix for bug report from Grisha Levit <grishalevit@gmail.com>
+1
View File
@@ -1250,6 +1250,7 @@ tests/quote.right f
tests/quote1.sub f
tests/quote2.sub f
tests/quote3.sub f
tests/quote4.sub f
tests/read.tests f
tests/read.right f
tests/read1.sub f
Vendored
+1 -1
View File
@@ -2214,7 +2214,7 @@ unsigned char string[4] = { '\xc3', '\xa4', '\0' };
int
main (int c, char **v)
{
setlocale (LC_ALL, "de_DE.UTF-8");
setlocale (LC_ALL, "en_US.UTF-8");
if (fnmatch (pattern, (const char *)string, 0) != FNM_NOMATCH)
exit (0);
exit (1);
+7
View File
@@ -364,6 +364,13 @@ fc_builtin (list)
in parse_and_execute(). */
if (histbeg == histend && histend == last_hist && hlist[last_hist] == 0)
last_hist = histbeg = --histend;
if (hlist[last_hist] == 0)
last_hist--;
if (histend >= last_hist)
histend = last_hist;
else if (histbeg >= last_hist)
histbeg = last_hist;
}
/* We print error messages for line specifications out of range. */
Vendored
+1 -1
View File
@@ -19227,7 +19227,7 @@ unsigned char string[4] = { '\xc3', '\xa4', '\0' };
int
main (int c, char **v)
{
setlocale (LC_ALL, "de_DE.UTF-8");
setlocale (LC_ALL, "en_US.UTF-8");
if (fnmatch (pattern, (const char *)string, 0) != FNM_NOMATCH)
exit (0);
exit (1);
+200 -199
View File
@@ -2466,7 +2466,7 @@ AARRIITTHHMMEETTIICC EEVVAALLUUAATTIIOONN
CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS
Conditional expressions are used by the [[[[ compound command and the
tteesstt and [[ builtin commands to test file attributes and perform string
and arithmetic comparisons. The tteesstt abd [[ commands determine their
and arithmetic comparisons. The tteesstt and [[ commands determine their
behavior based on the number of arguments; see the descriptions of
those commands for any other command-specific actions.
@@ -5633,194 +5633,195 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
AALLIIAASSEESS. This option is enabled by default for interac-
tive shells.
eexxttddeebbuugg
If set at shell invocation, arrange to execute the
debugger profile before the shell starts, identical to
the ----ddeebbuuggggeerr option. If set after invocation, behav-
ior intended for use by debuggers is enabled:
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
after 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
description of FFIIGGNNOORREE. This option is enabled by
description of FFIIGGNNOORREE. This option is enabled by
default.
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-
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
sequence is not taken into account, so bb will not col-
late between AA and BB, and upper-case and lower-case
sequence is not taken into account, so bb will not col-
late 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
by the value of the HHIISSTTFFIILLEE variable when the shell
If set, the history list is appended to the file named
by the value of the HHIISSTTFFIILLEE variable when the shell
exits, 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
and all remaining characters on that line to be ignored
in an interactive shell (see CCOOMMMMEENNTTSS above). This
option 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
If set, local variables inherit the value and attributes
of a variable of the same name that exists at a previous
scope before any new value is assigned. The nameref
scope before any new value is assigned. The nameref
attribute 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
If set, and rreeaaddlliinnee is being used, bbaasshh will not
attempt 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
using the command word resulting from the expanded
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
using the command word resulting from the expanded
alias.
pprroommppttvvaarrss
If set, prompt strings undergo parameter expansion, com-
mand substitution, arithmetic expansion, and quote
removal after being expanded as described in PPRROOMMPPTTIINNGG
mand substitution, arithmetic expansion, and quote
removal 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
The shell sets this option if it is started in
restricted 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-
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
If set, the eecchhoo builtin expands backslash-escape
sequences 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,
Expressions may be combined using the following operators,
listed in decreasing order of precedence. The evaluation
depends on the number of arguments; see below. Operator prece-
depends 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.
@@ -5837,120 +5838,120 @@ 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
receives signal(s) _s_i_g_s_p_e_c. If _a_r_g is absent (and there is a
single _s_i_g_s_p_e_c) or --, each specified signal is reset to its
original 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 commands associated with each signal. The --ll option
causes the shell to print a list of signal names and their cor-
responding 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
The command _a_r_g is to be read and executed when the shell
receives signal(s) _s_i_g_s_p_e_c. If _a_r_g is absent (and there is a
single _s_i_g_s_p_e_c) or --, each specified signal is reset to its
original 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 commands associated with each signal. The --ll option
causes the shell to print a list of signal names and their cor-
responding 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
!!. These are the same conditions obeyed by the eerrrreexxiitt (--ee)
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)
option.
Signals ignored upon entry to the shell cannot be trapped or
reset. Trapped signals that are not being ignored are reset to
Signals ignored upon entry to the shell cannot be trapped or
reset. 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
returned. If the --pp option is used, ttyyppee either returns the
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
returned. 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 speci-
fied as a command name, or nothing if ``type -t name'' would not
return _f_i_l_e. The --PP option forces a PPAATTHH search for each _n_a_m_e,
return _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,
respectively. 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
current hard limit, the current soft limit, and no limit,
respectively. 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-
preted as follows:
@@ -5959,12 +5960,12 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
--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)
@@ -5973,53 +5974,53 @@ 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 CCOOMMPP__WWOORRDDBBRREEAAKKSS, RRAANN--
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 CCOOMMPP__WWOORRDDBBRREEAAKKSS, RRAANN--
DDOOMM, SSEECCOONNDDSS, LLIINNEENNOO, HHIISSTTCCMMDD, FFUUNNCCNNAAMMEE, GGRROOUUPPSS, or DDIIRRSSTTAACCKK 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-
@@ -6027,23 +6028,23 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
wwaaiitt [--ffnn] [_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
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, all currently active child pro-
cesses are waited for, and the return status is zero. If the --nn
option is supplied, wwaaiitt waits for any job to terminate and
returns its exit status. If the --ff option is supplied, and job
option is supplied, wwaaiitt waits for any job to terminate and
returns its exit status. If the --ff option is supplied, and job
control is enabled, wwaaiitt forces _i_d to terminate before returning
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
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
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
@@ -6052,16 +6053,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-
@@ -6070,10 +6071,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
@@ -6083,14 +6084,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
@@ -6108,7 +6109,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
@@ -6122,14 +6123,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:
@@ -6140,7 +6141,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
@@ -6157,10 +6158,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.
@@ -6169,4 +6170,4 @@ BBUUGGSS
GNU Bash 5.0 2019 January 27 BASH(1)
GNU Bash 5.0 2019 February 26 BASH(1)
+6 -4
View File
@@ -5,12 +5,12 @@
.\" Case Western Reserve University
.\" chet.ramey@case.edu
.\"
.\" Last Change: Sun Jan 27 17:41:59 EST 2019
.\" Last Change: Tue Feb 26 09:46:20 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 January 27" "GNU Bash 5.0"
.TH BASH 1 "2019 February 26" "GNU Bash 5.0"
.\"
.\" There's some problem with having a `@'
.\" in a tagged paragraph with the BSD man macros.
@@ -4499,7 +4499,7 @@ rules above.
Conditional expressions are used by the \fB[[\fP compound command and
the \fBtest\fP and \fB[\fP builtin commands to test file attributes
and perform string and arithmetic comparisons.
The \fBtest\fP abd \fB[\fP commands determine their behavior based on
The \fBtest\fP and \fB[\fP commands determine their behavior based on
the number of arguments; see the descriptions of those commands for any
other command-specific actions.
.PP
@@ -9961,7 +9961,9 @@ If set, aliases are expanded as described above under
This option is enabled by default for interactive shells.
.TP 8
.B extdebug
If set at shell invocation, arrange to execute the debugger profile
If set at shell invocation,
or in a shell startup file,
arrange to execute the debugger profile
before the shell starts, identical to the \fB\-\-debugger\fP option.
If set after invocation, behavior intended for use by debuggers is enabled:
.RS
+11 -8
View File
@@ -3,7 +3,7 @@
</HEAD>
<BODY><TABLE WIDTH=100%>
<TR>
<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2018 December 7<TH ALIGN=RIGHT width=33%>BASH(1)
<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2019 February 26<TH ALIGN=RIGHT width=33%>BASH(1)
</TR>
</TABLE>
<BR><A HREF="#index">Index</A>
@@ -1155,7 +1155,8 @@ Using <B>;&amp;</B> in place of <B>;;</B> causes execution to continue with
the <I>list</I> associated with the next set of patterns.
Using <B>;;&amp;</B> in place of <B>;;</B> causes the shell to test the next
pattern list in the statement, if any, and execute any associated <I>list</I>
on a successful match.
on a successful match,
continuing the case statement execution as if the pattern list had not matched.
The exit status is zero if no
pattern matches. Otherwise, it is the exit status of the
last command executed in <I>list</I>.
@@ -5742,7 +5743,7 @@ rules above.
Conditional expressions are used by the <B>[[</B> compound command and
the <B>test</B> and <B>[</B> builtin commands to test file attributes
and perform string and arithmetic comparisons.
The <B>test</B> abd <B>[</B> commands determine their behavior based on
The <B>test</B> and <B>[</B> commands determine their behavior based on
the number of arguments; see the descriptions of those commands for any
other command-specific actions.
<P>
@@ -9817,7 +9818,7 @@ The <B>-E</B> option indicates that other supplied options and actions should
apply to ``empty'' command completion; that is, completion attempted on a
blank line.
The <B>-I</B> option indicates that other supplied options and actions should
apply to completion on the inital non-assignment word on the line, or after
apply to completion on the initial non-assignment word on the line, or after
a command delimiter such as <B>;</B> or <B>|</B>, which is usually command
name completion.
If multiple options are supplied, the <B>-D</B> option takes precedence
@@ -10070,7 +10071,7 @@ The <B>-E</B> option indicates that other supplied options should
apply to ``empty'' command completion; that is, completion attempted on a
blank line.
The <B>-I</B> option indicates that other supplied options should
apply to completion on the inital non-assignment word on the line,
apply to completion on the initial non-assignment word on the line,
or after a command delimiter such as <B>;</B> or <B>|</B>, which is usually
command name completion.
<P>
@@ -12628,7 +12629,9 @@ This option is enabled by default for interactive shells.
<DT><B>extdebug</B>
<DD>
If set at shell invocation, arrange to execute the debugger profile
If set at shell invocation,
or in a shell startup file,
arrange to execute the debugger profile
before the shell starts, identical to the <B>--debugger</B> option.
If set after invocation, behavior intended for use by debuggers is enabled:
<DL COMPACT><DT><DD>
@@ -13932,7 +13935,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%>2018 December 7<TH ALIGN=RIGHT width=33%>BASH(1)
<TH ALIGN=LEFT width=33%>GNU Bash 5.0<TH ALIGN=CENTER width=33%>2019 February 26<TH ALIGN=RIGHT width=33%>BASH(1)
</TR>
</TABLE>
<HR>
@@ -14038,6 +14041,6 @@ There may be only one active coprocess at a time.
</DL>
<HR>
This document was created by man2html from bash.1.<BR>
Time: 02 January 2019 09:14:47 EST
Time: 26 February 2019 09:57:16 EST
</BODY>
</HTML>
+157 -156
View File
@@ -2,9 +2,9 @@ This is bash.info, produced by makeinfo version 6.5 from
bashref.texi.
This text is a brief description of the features that are present in the
Bash shell (version 5.0, 7 December 2018).
Bash shell (version 5.0, 26 February 2019).
This is Edition 5.0, last updated 7 December 2018, of 'The GNU Bash
This is Edition 5.0, last updated 26 February 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, 7 December 2018). The Bash home page is
Bash shell (version 5.0, 26 February 2019). The Bash home page is
<http://www.gnu.org/software/bash/>.
This is Edition 5.0, last updated 7 December 2018, of 'The GNU Bash
This is Edition 5.0, last updated 26 February 2019, of 'The GNU Bash
Reference Manual', for 'Bash', Version 5.0.
Bash contains features that appear in other popular shells, and some
@@ -815,7 +815,8 @@ File: bash.info, Node: Conditional Constructs, Next: Command Grouping, Prev:
execution to continue with the COMMAND-LIST associated with the
next clause, if any. Using ';;&' in place of ';;' causes the shell
to test the patterns in the next clause, if any, and execute any
associated COMMAND-LIST on a successful match.
associated COMMAND-LIST on a successful match, continuing the case
statement execution as if the pattern list had not matched.
The return status is zero if no PATTERN is matched. Otherwise, the
return status is the exit status of the COMMAND-LIST executed.
@@ -1576,7 +1577,7 @@ expression. Any incorrectly formed brace expansion is left unchanged.
A { or ',' may be quoted with a backslash to prevent its being
considered part of a brace expression. To avoid conflicts with
parameter expansion, the string '${' is not considered eligible for
brace expansion, and inhibits brace expansion until the closing '}'..
brace expansion, and inhibits brace expansion until the closing '}'.
This construct is typically used as shorthand when the common prefix
of the strings to be generated is longer than in the above example:
@@ -1898,15 +1899,15 @@ omitted, the operator tests only for existence.
'${PARAMETER%%WORD}'
The WORD is expanded to produce a pattern and matched according to
the rules described below (*note Pattern Matching::). If the
pattern matches If the pattern matches a trailing portion of the
expanded value of PARAMETER, then the result of the expansion is
the value of PARAMETER with the shortest matching pattern (the '%'
case) or the longest matching pattern (the '%%' case) deleted. If
PARAMETER is '@' or '*', the pattern removal operation is applied
to each positional parameter in turn, and the expansion is the
resultant list. If PARAMETER is an array variable subscripted with
'@' or '*', the pattern removal operation is applied to each member
of the array in turn, and the expansion is the resultant list.
pattern matches a trailing portion of the expanded value of
PARAMETER, then the result of the expansion is the value of
PARAMETER with the shortest matching pattern (the '%' case) or the
longest matching pattern (the '%%' case) deleted. If PARAMETER is
'@' or '*', the pattern removal operation is applied to each
positional parameter in turn, and the expansion is the resultant
list. If PARAMETER is an array variable subscripted with '@' or
'*', the pattern removal operation is applied to each member of the
array in turn, and the expansion is the resultant list.
'${PARAMETER/PATTERN/STRING}'
@@ -4518,10 +4519,10 @@ This builtin allows you to change additional shell optional behavior.
interactive shells.
'extdebug'
If set at shell invocation, arrange to execute the debugger
profile before the shell starts, identical to the '--debugger'
option. If set after invocation, behavior intended for use by
debuggers is enabled:
If set at shell invocation, or in a shell startup file,
arrange to execute the debugger profile before the shell
starts, identical to the '--debugger' option. If set after
invocation, behavior intended for use by debuggers is enabled:
1. The '-F' option to the 'declare' builtin (*note Bash
Builtins::) displays the source file name and line number
@@ -6251,7 +6252,7 @@ The syntax
is also accepted; the SUBSCRIPT is ignored.
Associative arrays are created using
declare -A NAME.
declare -A NAME
Attributes may be specified for an array variable using the 'declare'
and 'readonly' builtins. Each attribute applies to all members of an
@@ -8829,8 +8830,8 @@ happening.
that other supplied options and actions should apply to "empty"
command completion; that is, completion attempted on a blank line.
The '-I' option indicates that other supplied options and actions
should apply to completion on the inital non-assignment word on the
line, or after a command delimiter such as ';' or '|', which is
should apply to completion on the initial non-assignment word on
the line, or after a command delimiter such as ';' or '|', which is
usually command name completion. If multiple options are supplied,
the '-D' option takes precedence over '-E', and both take
precedence over '-I'. If any of '-D', '-E', or '-I' are supplied,
@@ -9031,8 +9032,8 @@ happening.
'-E' option indicates that other supplied options should apply to
"empty" command completion; that is, completion attempted on a
blank line. The '-I' option indicates that other supplied options
should apply to completion on the inital non-assignment word on the
line, or after a command delimiter such as ';' or '|', which is
should apply to completion on the initial non-assignment word on
the line, or after a command delimiter such as ';' or '|', which is
usually command name completion.
If multiple options are supplied, the '-D' option takes precedence
@@ -11064,9 +11065,9 @@ D.2 Index of Shell Reserved Words
* !: Pipelines. (line 9)
* [[: Conditional Constructs.
(line 124)
(line 125)
* ]]: Conditional Constructs.
(line 124)
(line 125)
* {: Command Grouping. (line 21)
* }: Command Grouping. (line 21)
* case: Conditional Constructs.
@@ -11088,7 +11089,7 @@ D.2 Index of Shell Reserved Words
* in: Conditional Constructs.
(line 28)
* select: Conditional Constructs.
(line 82)
(line 83)
* then: Conditional Constructs.
(line 7)
* time: Pipelines. (line 9)
@@ -11683,134 +11684,134 @@ D.5 Concept Index

Tag Table:
Node: Top895
Node: Introduction2813
Node: What is Bash?3029
Node: What is a shell?4143
Node: Definitions6681
Node: Basic Shell Features9632
Node: Shell Syntax10851
Node: Shell Operation11877
Node: Quoting13170
Node: Escape Character14470
Node: Single Quotes14955
Node: Double Quotes15303
Node: ANSI-C Quoting16581
Node: Locale Translation17840
Node: Comments18736
Node: Shell Commands19354
Node: Simple Commands20226
Node: Pipelines20857
Node: Lists23789
Node: Compound Commands25580
Node: Looping Constructs26592
Node: Conditional Constructs29087
Node: Command Grouping40170
Node: Coprocesses41649
Node: GNU Parallel43552
Node: Shell Functions47610
Node: Shell Parameters54693
Node: Positional Parameters59106
Node: Special Parameters60006
Node: Shell Expansions63760
Node: Brace Expansion65883
Node: Tilde Expansion68607
Node: Shell Parameter Expansion71224
Node: Command Substitution85680
Node: Arithmetic Expansion87035
Node: Process Substitution87967
Node: Word Splitting89087
Node: Filename Expansion91031
Node: Pattern Matching93561
Node: Quote Removal97547
Node: Redirections97842
Node: Executing Commands107400
Node: Simple Command Expansion108070
Node: Command Search and Execution110000
Node: Command Execution Environment112376
Node: Environment115360
Node: Exit Status117019
Node: Signals118689
Node: Shell Scripts120656
Node: Shell Builtin Commands123171
Node: Bourne Shell Builtins125209
Node: Bash Builtins145959
Node: Modifying Shell Behavior174884
Node: The Set Builtin175229
Node: The Shopt Builtin185642
Node: Special Builtins203284
Node: Shell Variables204263
Node: Bourne Shell Variables204700
Node: Bash Variables206804
Node: Bash Features237264
Node: Invoking Bash238163
Node: Bash Startup Files244176
Node: Interactive Shells249279
Node: What is an Interactive Shell?249689
Node: Is this Shell Interactive?250338
Node: Interactive Shell Behavior251153
Node: Bash Conditional Expressions254640
Node: Shell Arithmetic259217
Node: Aliases262034
Node: Arrays264654
Node: The Directory Stack270020
Node: Directory Stack Builtins270804
Node: Controlling the Prompt273772
Node: The Restricted Shell276538
Node: Bash POSIX Mode278363
Node: Job Control289296
Node: Job Control Basics289756
Node: Job Control Builtins294724
Node: Job Control Variables299451
Node: Command Line Editing300607
Node: Introduction and Notation302278
Node: Readline Interaction303901
Node: Readline Bare Essentials305092
Node: Readline Movement Commands306875
Node: Readline Killing Commands307835
Node: Readline Arguments309753
Node: Searching310797
Node: Readline Init File312983
Node: Readline Init File Syntax314130
Node: Conditional Init Constructs334569
Node: Sample Init File338765
Node: Bindable Readline Commands341882
Node: Commands For Moving343086
Node: Commands For History344935
Node: Commands For Text349230
Node: Commands For Killing352618
Node: Numeric Arguments355099
Node: Commands For Completion356238
Node: Keyboard Macros360429
Node: Miscellaneous Commands361116
Node: Readline vi Mode367069
Node: Programmable Completion367976
Node: Programmable Completion Builtins375756
Node: A Programmable Completion Example386449
Node: Using History Interactively391689
Node: Bash History Facilities392373
Node: Bash History Builtins395378
Node: History Interaction399909
Node: Event Designators403529
Node: Word Designators404748
Node: Modifiers406385
Node: Installing Bash407787
Node: Basic Installation408924
Node: Compilers and Options412182
Node: Compiling For Multiple Architectures412923
Node: Installation Names414616
Node: Specifying the System Type415434
Node: Sharing Defaults416150
Node: Operation Controls416823
Node: Optional Features417781
Node: Reporting Bugs428299
Node: Major Differences From The Bourne Shell429493
Node: GNU Free Documentation License446345
Node: Indexes471522
Node: Builtin Index471976
Node: Reserved Word Index478803
Node: Variable Index481251
Node: Function Index497002
Node: Concept Index510305
Node: Top897
Node: Introduction2817
Node: What is Bash?3033
Node: What is a shell?4147
Node: Definitions6685
Node: Basic Shell Features9636
Node: Shell Syntax10855
Node: Shell Operation11881
Node: Quoting13174
Node: Escape Character14474
Node: Single Quotes14959
Node: Double Quotes15307
Node: ANSI-C Quoting16585
Node: Locale Translation17844
Node: Comments18740
Node: Shell Commands19358
Node: Simple Commands20230
Node: Pipelines20861
Node: Lists23793
Node: Compound Commands25584
Node: Looping Constructs26596
Node: Conditional Constructs29091
Node: Command Grouping40259
Node: Coprocesses41738
Node: GNU Parallel43641
Node: Shell Functions47699
Node: Shell Parameters54782
Node: Positional Parameters59195
Node: Special Parameters60095
Node: Shell Expansions63849
Node: Brace Expansion65972
Node: Tilde Expansion68695
Node: Shell Parameter Expansion71312
Node: Command Substitution85745
Node: Arithmetic Expansion87100
Node: Process Substitution88032
Node: Word Splitting89152
Node: Filename Expansion91096
Node: Pattern Matching93626
Node: Quote Removal97612
Node: Redirections97907
Node: Executing Commands107465
Node: Simple Command Expansion108135
Node: Command Search and Execution110065
Node: Command Execution Environment112441
Node: Environment115425
Node: Exit Status117084
Node: Signals118754
Node: Shell Scripts120721
Node: Shell Builtin Commands123236
Node: Bourne Shell Builtins125274
Node: Bash Builtins146024
Node: Modifying Shell Behavior174949
Node: The Set Builtin175294
Node: The Shopt Builtin185707
Node: Special Builtins203377
Node: Shell Variables204356
Node: Bourne Shell Variables204793
Node: Bash Variables206897
Node: Bash Features237357
Node: Invoking Bash238256
Node: Bash Startup Files244269
Node: Interactive Shells249372
Node: What is an Interactive Shell?249782
Node: Is this Shell Interactive?250431
Node: Interactive Shell Behavior251246
Node: Bash Conditional Expressions254733
Node: Shell Arithmetic259310
Node: Aliases262127
Node: Arrays264747
Node: The Directory Stack270112
Node: Directory Stack Builtins270896
Node: Controlling the Prompt273864
Node: The Restricted Shell276630
Node: Bash POSIX Mode278455
Node: Job Control289388
Node: Job Control Basics289848
Node: Job Control Builtins294816
Node: Job Control Variables299543
Node: Command Line Editing300699
Node: Introduction and Notation302370
Node: Readline Interaction303993
Node: Readline Bare Essentials305184
Node: Readline Movement Commands306967
Node: Readline Killing Commands307927
Node: Readline Arguments309845
Node: Searching310889
Node: Readline Init File313075
Node: Readline Init File Syntax314222
Node: Conditional Init Constructs334661
Node: Sample Init File338857
Node: Bindable Readline Commands341974
Node: Commands For Moving343178
Node: Commands For History345027
Node: Commands For Text349322
Node: Commands For Killing352710
Node: Numeric Arguments355191
Node: Commands For Completion356330
Node: Keyboard Macros360521
Node: Miscellaneous Commands361208
Node: Readline vi Mode367161
Node: Programmable Completion368068
Node: Programmable Completion Builtins375848
Node: A Programmable Completion Example386543
Node: Using History Interactively391783
Node: Bash History Facilities392467
Node: Bash History Builtins395472
Node: History Interaction400003
Node: Event Designators403623
Node: Word Designators404842
Node: Modifiers406479
Node: Installing Bash407881
Node: Basic Installation409018
Node: Compilers and Options412276
Node: Compiling For Multiple Architectures413017
Node: Installation Names414710
Node: Specifying the System Type415528
Node: Sharing Defaults416244
Node: Operation Controls416917
Node: Optional Features417875
Node: Reporting Bugs428393
Node: Major Differences From The Bourne Shell429587
Node: GNU Free Documentation License446439
Node: Indexes471616
Node: Builtin Index472070
Node: Reserved Word Index478897
Node: Variable Index481345
Node: Function Index497096
Node: Concept Index510399

End Tag Table
BIN
View File
Binary file not shown.
+4332 -4332
View File
File diff suppressed because it is too large Load Diff
+13 -13
View File
@@ -63,9 +63,9 @@
@xrdef{Conditional Constructs-pg}{11}
@xrdef{Command Grouping-title}{Grouping Commands}
@xrdef{Command Grouping-snt}{Section@tie 3.2.4.3}
@xrdef{Command Grouping-pg}{14}
@xrdef{Coprocesses-title}{Coprocesses}
@xrdef{Coprocesses-snt}{Section@tie 3.2.5}
@xrdef{Command Grouping-pg}{15}
@xrdef{Coprocesses-pg}{15}
@xrdef{GNU Parallel-title}{GNU Parallel}
@xrdef{GNU Parallel-snt}{Section@tie 3.2.6}
@@ -75,7 +75,7 @@
@xrdef{Shell Functions-pg}{17}
@xrdef{Shell Parameters-title}{Shell Parameters}
@xrdef{Shell Parameters-snt}{Section@tie 3.4}
@xrdef{Shell Parameters-pg}{19}
@xrdef{Shell Parameters-pg}{20}
@xrdef{Positional Parameters-title}{Positional Parameters}
@xrdef{Positional Parameters-snt}{Section@tie 3.4.1}
@xrdef{Special Parameters-title}{Special Parameters}
@@ -90,27 +90,27 @@
@xrdef{Tilde Expansion-title}{Tilde Expansion}
@xrdef{Tilde Expansion-snt}{Section@tie 3.5.2}
@xrdef{Brace Expansion-pg}{23}
@xrdef{Tilde Expansion-pg}{23}
@xrdef{Shell Parameter Expansion-title}{Shell Parameter Expansion}
@xrdef{Shell Parameter Expansion-snt}{Section@tie 3.5.3}
@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{Command Substitution-pg}{30}
@xrdef{Arithmetic Expansion-title}{Arithmetic Expansion}
@xrdef{Arithmetic Expansion-snt}{Section@tie 3.5.5}
@xrdef{Process Substitution-title}{Process Substitution}
@xrdef{Process Substitution-snt}{Section@tie 3.5.6}
@xrdef{Word Splitting-title}{Word Splitting}
@xrdef{Word Splitting-snt}{Section@tie 3.5.7}
@xrdef{Command Substitution-pg}{31}
@xrdef{Arithmetic Expansion-pg}{31}
@xrdef{Process Substitution-pg}{31}
@xrdef{Word Splitting-pg}{31}
@xrdef{Word Splitting-title}{Word Splitting}
@xrdef{Word Splitting-snt}{Section@tie 3.5.7}
@xrdef{Filename Expansion-title}{Filename Expansion}
@xrdef{Filename Expansion-snt}{Section@tie 3.5.8}
@xrdef{Word Splitting-pg}{32}
@xrdef{Filename Expansion-pg}{32}
@xrdef{Pattern Matching-title}{Pattern Matching}
@xrdef{Pattern Matching-snt}{Section@tie 3.5.8.1}
@xrdef{Filename Expansion-pg}{32}
@xrdef{Pattern Matching-pg}{33}
@xrdef{Quote Removal-title}{Quote Removal}
@xrdef{Quote Removal-snt}{Section@tie 3.5.9}
@@ -126,22 +126,22 @@
@xrdef{Command Search and Execution-snt}{Section@tie 3.7.2}
@xrdef{Executing Commands-pg}{38}
@xrdef{Simple Command Expansion-pg}{38}
@xrdef{Command Search and Execution-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}
@xrdef{Command Execution Environment-pg}{39}
@xrdef{Environment-title}{Environment}
@xrdef{Environment-snt}{Section@tie 3.7.4}
@xrdef{Environment-pg}{40}
@xrdef{Exit Status-title}{Exit Status}
@xrdef{Exit Status-snt}{Section@tie 3.7.5}
@xrdef{Environment-pg}{40}
@xrdef{Exit Status-pg}{40}
@xrdef{Signals-title}{Signals}
@xrdef{Signals-snt}{Section@tie 3.7.6}
@xrdef{Exit Status-pg}{41}
@xrdef{Signals-pg}{41}
@xrdef{Shell Scripts-title}{Shell Scripts}
@xrdef{Shell Scripts-snt}{Section@tie 3.8}
@xrdef{Signals-pg}{41}
@xrdef{Shell Scripts-pg}{41}
@xrdef{Shell Scripts-pg}{42}
@xrdef{Shell Builtin Commands-title}{Shell Builtin Commands}
@xrdef{Shell Builtin Commands-snt}{Chapter@tie 4}
@xrdef{Bourne Shell Builtins-title}{Bourne Shell Builtins}
+12 -12
View File
@@ -35,27 +35,27 @@
\entry{commands, compound}{9}{commands, compound}
\entry{commands, looping}{10}{commands, looping}
\entry{commands, conditional}{11}{commands, conditional}
\entry{commands, grouping}{14}{commands, grouping}
\entry{commands, grouping}{15}{commands, grouping}
\entry{coprocess}{15}{coprocess}
\entry{shell function}{17}{shell function}
\entry{functions, shell}{17}{functions, shell}
\entry{parameters}{19}{parameters}
\entry{variable, shell}{19}{variable, shell}
\entry{shell variable}{19}{shell variable}
\entry{parameters}{20}{parameters}
\entry{variable, shell}{20}{variable, shell}
\entry{shell variable}{20}{shell variable}
\entry{parameters, positional}{21}{parameters, positional}
\entry{parameters, special}{21}{parameters, special}
\entry{expansion}{22}{expansion}
\entry{brace expansion}{23}{brace expansion}
\entry{expansion, brace}{23}{expansion, brace}
\entry{tilde expansion}{23}{tilde expansion}
\entry{expansion, tilde}{23}{expansion, tilde}
\entry{tilde expansion}{24}{tilde expansion}
\entry{expansion, tilde}{24}{expansion, tilde}
\entry{parameter expansion}{24}{parameter expansion}
\entry{expansion, parameter}{24}{expansion, parameter}
\entry{command substitution}{30}{command substitution}
\entry{command substitution}{31}{command substitution}
\entry{expansion, arithmetic}{31}{expansion, arithmetic}
\entry{arithmetic expansion}{31}{arithmetic expansion}
\entry{process substitution}{31}{process substitution}
\entry{word splitting}{31}{word splitting}
\entry{word splitting}{32}{word splitting}
\entry{expansion, filename}{32}{expansion, filename}
\entry{expansion, pathname}{32}{expansion, pathname}
\entry{filename expansion}{32}{filename expansion}
@@ -64,13 +64,13 @@
\entry{matching, pattern}{33}{matching, pattern}
\entry{redirection}{34}{redirection}
\entry{command expansion}{38}{command expansion}
\entry{command execution}{38}{command execution}
\entry{command search}{38}{command search}
\entry{command execution}{39}{command execution}
\entry{command search}{39}{command search}
\entry{execution environment}{39}{execution environment}
\entry{environment}{40}{environment}
\entry{exit status}{40}{exit status}
\entry{exit status}{41}{exit status}
\entry{signal handling}{41}{signal handling}
\entry{shell script}{41}{shell script}
\entry{shell script}{42}{shell script}
\entry{special builtin}{71}{special builtin}
\entry{login shell}{87}{login shell}
\entry{interactive shell}{87}{interactive shell}
+12 -12
View File
@@ -13,15 +13,15 @@
\entry {builtin}{3}
\initial {C}
\entry {command editing}{108}
\entry {command execution}{38}
\entry {command execution}{39}
\entry {command expansion}{38}
\entry {command history}{141}
\entry {command search}{38}
\entry {command substitution}{30}
\entry {command search}{39}
\entry {command substitution}{31}
\entry {command timing}{8}
\entry {commands, compound}{9}
\entry {commands, conditional}{11}
\entry {commands, grouping}{14}
\entry {commands, grouping}{15}
\entry {commands, lists}{9}
\entry {commands, looping}{10}
\entry {commands, pipelines}{8}
@@ -40,14 +40,14 @@
\entry {evaluation, arithmetic}{92}
\entry {event designators}{144}
\entry {execution environment}{39}
\entry {exit status}{3, 40}
\entry {exit status}{3, 41}
\entry {expansion}{22}
\entry {expansion, arithmetic}{31}
\entry {expansion, brace}{23}
\entry {expansion, filename}{32}
\entry {expansion, parameter}{24}
\entry {expansion, pathname}{32}
\entry {expansion, tilde}{23}
\entry {expansion, tilde}{24}
\entry {expressions, arithmetic}{92}
\entry {expressions, conditional}{90}
\initial {F}
@@ -89,7 +89,7 @@
\entry {operator, shell}{3}
\initial {P}
\entry {parameter expansion}{24}
\entry {parameters}{19}
\entry {parameters}{20}
\entry {parameters, positional}{21}
\entry {parameters, special}{21}
\entry {pathname expansion}{32}
@@ -114,8 +114,8 @@
\initial {S}
\entry {shell arithmetic}{92}
\entry {shell function}{17}
\entry {shell script}{41}
\entry {shell variable}{19}
\entry {shell script}{42}
\entry {shell variable}{20}
\entry {shell, interactive}{88}
\entry {signal}{4}
\entry {signal handling}{41}
@@ -123,14 +123,14 @@
\entry {startup files}{87}
\entry {suspending jobs}{103}
\initial {T}
\entry {tilde expansion}{23}
\entry {tilde expansion}{24}
\entry {token}{4}
\entry {translation, native languages}{7}
\initial {V}
\entry {variable, shell}{19}
\entry {variable, shell}{20}
\entry {variables, readline}{111}
\initial {W}
\entry {word}{4}
\entry {word splitting}{31}
\entry {word splitting}{32}
\initial {Y}
\entry {yanking text}{109}
BIN
View File
Binary file not shown.
+14 -11
View File
@@ -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, 7 December 2018).
the Bash shell (version 5.0, 26 February 2019).
This is Edition 5.0, last updated 7 December 2018,
This is Edition 5.0, last updated 26 February 2019,
of The GNU Bash Reference Manual,
for Bash, Version 5.0.
@@ -284,10 +284,10 @@ Next: <a href="#Introduction" accesskey="n" rel="next">Introduction</a>, Previou
<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, 7 December 2018).
the Bash shell (version 5.0, 26 February 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 7 December 2018,
<p>This is Edition 5.0, last updated 26 February 2019,
of <cite>The GNU Bash Reference Manual</cite>,
for <code>Bash</code>, Version 5.0.
</p>
@@ -1353,7 +1353,8 @@ Using &lsquo;<samp>;&amp;</samp>&rsquo; in place of &lsquo;<samp>;;</samp>&rsqu
the <var>command-list</var> associated with the next clause, if any.
Using &lsquo;<samp>;;&amp;</samp>&rsquo; in place of &lsquo;<samp>;;</samp>&rsquo; causes the shell to test the patterns
in the next clause, if any, and execute any associated <var>command-list</var>
on a successful match.
on a successful match,
continuing the case statement execution as if the pattern list had not matched.
</p>
<p>The return status is zero if no <var>pattern</var> is matched. Otherwise, the
return status is the exit status of the <var>command-list</var> executed.
@@ -2370,7 +2371,7 @@ Any incorrectly formed brace expansion is left unchanged.
being considered part of a brace expression.
To avoid conflicts with parameter expansion, the string &lsquo;<samp>${</samp>&rsquo;
is not considered eligible for brace expansion,
and inhibits brace expansion until the closing &lsquo;<samp>}</samp>&rsquo;..
and inhibits brace expansion until the closing &lsquo;<samp>}</samp>&rsquo;.
</p>
<p>This construct is typically used as shorthand when the common
prefix of the strings to be generated is longer than in the
@@ -2762,7 +2763,7 @@ array in turn, and the expansion is the resultant list.
<dt><code>${<var>parameter</var>%%<var>word</var>}</code></dt>
<dd><p>The <var>word</var>
is expanded to produce a pattern and matched according to the rules
described below (see <a href="#Pattern-Matching">Pattern Matching</a>). If the pattern matches
described below (see <a href="#Pattern-Matching">Pattern Matching</a>).
If the pattern matches a trailing portion of the expanded value of
<var>parameter</var>, then the result of the expansion is the value of
<var>parameter</var> with the shortest matching pattern (the &lsquo;<samp>%</samp>&rsquo; case)
@@ -6158,7 +6159,9 @@ This option is enabled by default for interactive shells.
</p>
</dd>
<dt><code>extdebug</code></dt>
<dd><p>If set at shell invocation, arrange to execute the debugger profile
<dd><p>If set at shell invocation,
or in a shell startup file,
arrange to execute the debugger profile
before the shell starts, identical to the <samp>--debugger</samp> option.
If set after invocation, behavior intended for use by debuggers is enabled:
</p>
@@ -8550,7 +8553,7 @@ To explicitly declare an array, use
</p>
<p>Associative arrays are created using
</p><div class="example">
<pre class="example">declare -A <var>name</var>.
<pre class="example">declare -A <var>name</var>
</pre></div>
<p>Attributes may be
@@ -12077,7 +12080,7 @@ The <samp>-E</samp> option indicates that other supplied options and actions sho
apply to &ldquo;empty&rdquo; command completion; that is, completion attempted on a
blank line.
The <samp>-I</samp> option indicates that other supplied options and actions should
apply to completion on the inital non-assignment word on the line, or after a
apply to completion on the initial non-assignment word on the line, or after a
command delimiter such as &lsquo;<samp>;</samp>&rsquo; or &lsquo;<samp>|</samp>&rsquo;, which is usually command
name completion.
If multiple options are supplied, the <samp>-D</samp> option takes precedence
@@ -12329,7 +12332,7 @@ The <samp>-E</samp> option indicates that other supplied options should
apply to &ldquo;empty&rdquo; command completion; that is, completion attempted on a
blank line.
The <samp>-I</samp> option indicates that other supplied options should
apply to completion on the inital non-assignment word on the line, or after a
apply to completion on the initial non-assignment word on the line, or after a
command delimiter such as &lsquo;<samp>;</samp>&rsquo; or &lsquo;<samp>|</samp>&rsquo;, which is usually command
name completion.
</p>
+157 -156
View File
@@ -2,9 +2,9 @@ This is bashref.info, produced by makeinfo version 6.5 from
bashref.texi.
This text is a brief description of the features that are present in the
Bash shell (version 5.0, 7 December 2018).
Bash shell (version 5.0, 26 February 2019).
This is Edition 5.0, last updated 7 December 2018, of 'The GNU Bash
This is Edition 5.0, last updated 26 February 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, 7 December 2018). The Bash home page is
Bash shell (version 5.0, 26 February 2019). The Bash home page is
<http://www.gnu.org/software/bash/>.
This is Edition 5.0, last updated 7 December 2018, of 'The GNU Bash
This is Edition 5.0, last updated 26 February 2019, of 'The GNU Bash
Reference Manual', for 'Bash', Version 5.0.
Bash contains features that appear in other popular shells, and some
@@ -815,7 +815,8 @@ File: bashref.info, Node: Conditional Constructs, Next: Command Grouping, Pre
execution to continue with the COMMAND-LIST associated with the
next clause, if any. Using ';;&' in place of ';;' causes the shell
to test the patterns in the next clause, if any, and execute any
associated COMMAND-LIST on a successful match.
associated COMMAND-LIST on a successful match, continuing the case
statement execution as if the pattern list had not matched.
The return status is zero if no PATTERN is matched. Otherwise, the
return status is the exit status of the COMMAND-LIST executed.
@@ -1576,7 +1577,7 @@ expression. Any incorrectly formed brace expansion is left unchanged.
A { or ',' may be quoted with a backslash to prevent its being
considered part of a brace expression. To avoid conflicts with
parameter expansion, the string '${' is not considered eligible for
brace expansion, and inhibits brace expansion until the closing '}'..
brace expansion, and inhibits brace expansion until the closing '}'.
This construct is typically used as shorthand when the common prefix
of the strings to be generated is longer than in the above example:
@@ -1898,15 +1899,15 @@ omitted, the operator tests only for existence.
'${PARAMETER%%WORD}'
The WORD is expanded to produce a pattern and matched according to
the rules described below (*note Pattern Matching::). If the
pattern matches If the pattern matches a trailing portion of the
expanded value of PARAMETER, then the result of the expansion is
the value of PARAMETER with the shortest matching pattern (the '%'
case) or the longest matching pattern (the '%%' case) deleted. If
PARAMETER is '@' or '*', the pattern removal operation is applied
to each positional parameter in turn, and the expansion is the
resultant list. If PARAMETER is an array variable subscripted with
'@' or '*', the pattern removal operation is applied to each member
of the array in turn, and the expansion is the resultant list.
pattern matches a trailing portion of the expanded value of
PARAMETER, then the result of the expansion is the value of
PARAMETER with the shortest matching pattern (the '%' case) or the
longest matching pattern (the '%%' case) deleted. If PARAMETER is
'@' or '*', the pattern removal operation is applied to each
positional parameter in turn, and the expansion is the resultant
list. If PARAMETER is an array variable subscripted with '@' or
'*', the pattern removal operation is applied to each member of the
array in turn, and the expansion is the resultant list.
'${PARAMETER/PATTERN/STRING}'
@@ -4518,10 +4519,10 @@ This builtin allows you to change additional shell optional behavior.
interactive shells.
'extdebug'
If set at shell invocation, arrange to execute the debugger
profile before the shell starts, identical to the '--debugger'
option. If set after invocation, behavior intended for use by
debuggers is enabled:
If set at shell invocation, or in a shell startup file,
arrange to execute the debugger profile before the shell
starts, identical to the '--debugger' option. If set after
invocation, behavior intended for use by debuggers is enabled:
1. The '-F' option to the 'declare' builtin (*note Bash
Builtins::) displays the source file name and line number
@@ -6251,7 +6252,7 @@ The syntax
is also accepted; the SUBSCRIPT is ignored.
Associative arrays are created using
declare -A NAME.
declare -A NAME
Attributes may be specified for an array variable using the 'declare'
and 'readonly' builtins. Each attribute applies to all members of an
@@ -8829,8 +8830,8 @@ happening.
that other supplied options and actions should apply to "empty"
command completion; that is, completion attempted on a blank line.
The '-I' option indicates that other supplied options and actions
should apply to completion on the inital non-assignment word on the
line, or after a command delimiter such as ';' or '|', which is
should apply to completion on the initial non-assignment word on
the line, or after a command delimiter such as ';' or '|', which is
usually command name completion. If multiple options are supplied,
the '-D' option takes precedence over '-E', and both take
precedence over '-I'. If any of '-D', '-E', or '-I' are supplied,
@@ -9031,8 +9032,8 @@ happening.
'-E' option indicates that other supplied options should apply to
"empty" command completion; that is, completion attempted on a
blank line. The '-I' option indicates that other supplied options
should apply to completion on the inital non-assignment word on the
line, or after a command delimiter such as ';' or '|', which is
should apply to completion on the initial non-assignment word on
the line, or after a command delimiter such as ';' or '|', which is
usually command name completion.
If multiple options are supplied, the '-D' option takes precedence
@@ -11064,9 +11065,9 @@ D.2 Index of Shell Reserved Words
* !: Pipelines. (line 9)
* [[: Conditional Constructs.
(line 124)
(line 125)
* ]]: Conditional Constructs.
(line 124)
(line 125)
* {: Command Grouping. (line 21)
* }: Command Grouping. (line 21)
* case: Conditional Constructs.
@@ -11088,7 +11089,7 @@ D.2 Index of Shell Reserved Words
* in: Conditional Constructs.
(line 28)
* select: Conditional Constructs.
(line 82)
(line 83)
* then: Conditional Constructs.
(line 7)
* time: Pipelines. (line 9)
@@ -11683,134 +11684,134 @@ D.5 Concept Index

Tag Table:
Node: Top895
Node: Introduction2813
Node: What is Bash?3029
Node: What is a shell?4143
Node: Definitions6681
Node: Basic Shell Features9632
Node: Shell Syntax10851
Node: Shell Operation11877
Node: Quoting13170
Node: Escape Character14470
Node: Single Quotes14955
Node: Double Quotes15303
Node: ANSI-C Quoting16581
Node: Locale Translation17840
Node: Comments18736
Node: Shell Commands19354
Node: Simple Commands20226
Node: Pipelines20857
Node: Lists23789
Node: Compound Commands25580
Node: Looping Constructs26592
Node: Conditional Constructs29087
Node: Command Grouping40170
Node: Coprocesses41649
Node: GNU Parallel43552
Node: Shell Functions47610
Node: Shell Parameters54693
Node: Positional Parameters59106
Node: Special Parameters60006
Node: Shell Expansions63760
Node: Brace Expansion65883
Node: Tilde Expansion68607
Node: Shell Parameter Expansion71224
Node: Command Substitution85680
Node: Arithmetic Expansion87035
Node: Process Substitution87967
Node: Word Splitting89087
Node: Filename Expansion91031
Node: Pattern Matching93561
Node: Quote Removal97547
Node: Redirections97842
Node: Executing Commands107400
Node: Simple Command Expansion108070
Node: Command Search and Execution110000
Node: Command Execution Environment112376
Node: Environment115360
Node: Exit Status117019
Node: Signals118689
Node: Shell Scripts120656
Node: Shell Builtin Commands123171
Node: Bourne Shell Builtins125209
Node: Bash Builtins145959
Node: Modifying Shell Behavior174884
Node: The Set Builtin175229
Node: The Shopt Builtin185642
Node: Special Builtins203284
Node: Shell Variables204263
Node: Bourne Shell Variables204700
Node: Bash Variables206804
Node: Bash Features237264
Node: Invoking Bash238163
Node: Bash Startup Files244176
Node: Interactive Shells249279
Node: What is an Interactive Shell?249689
Node: Is this Shell Interactive?250338
Node: Interactive Shell Behavior251153
Node: Bash Conditional Expressions254640
Node: Shell Arithmetic259217
Node: Aliases262034
Node: Arrays264654
Node: The Directory Stack270020
Node: Directory Stack Builtins270804
Node: Controlling the Prompt273772
Node: The Restricted Shell276538
Node: Bash POSIX Mode278363
Node: Job Control289296
Node: Job Control Basics289756
Node: Job Control Builtins294724
Node: Job Control Variables299451
Node: Command Line Editing300607
Node: Introduction and Notation302278
Node: Readline Interaction303901
Node: Readline Bare Essentials305092
Node: Readline Movement Commands306875
Node: Readline Killing Commands307835
Node: Readline Arguments309753
Node: Searching310797
Node: Readline Init File312983
Node: Readline Init File Syntax314130
Node: Conditional Init Constructs334569
Node: Sample Init File338765
Node: Bindable Readline Commands341882
Node: Commands For Moving343086
Node: Commands For History344935
Node: Commands For Text349230
Node: Commands For Killing352618
Node: Numeric Arguments355099
Node: Commands For Completion356238
Node: Keyboard Macros360429
Node: Miscellaneous Commands361116
Node: Readline vi Mode367069
Node: Programmable Completion367976
Node: Programmable Completion Builtins375756
Node: A Programmable Completion Example386449
Node: Using History Interactively391689
Node: Bash History Facilities392373
Node: Bash History Builtins395378
Node: History Interaction399909
Node: Event Designators403529
Node: Word Designators404748
Node: Modifiers406385
Node: Installing Bash407787
Node: Basic Installation408924
Node: Compilers and Options412182
Node: Compiling For Multiple Architectures412923
Node: Installation Names414616
Node: Specifying the System Type415434
Node: Sharing Defaults416150
Node: Operation Controls416823
Node: Optional Features417781
Node: Reporting Bugs428299
Node: Major Differences From The Bourne Shell429493
Node: GNU Free Documentation License446345
Node: Indexes471522
Node: Builtin Index471976
Node: Reserved Word Index478803
Node: Variable Index481251
Node: Function Index497002
Node: Concept Index510305
Node: Top897
Node: Introduction2817
Node: What is Bash?3033
Node: What is a shell?4147
Node: Definitions6685
Node: Basic Shell Features9636
Node: Shell Syntax10855
Node: Shell Operation11881
Node: Quoting13174
Node: Escape Character14474
Node: Single Quotes14959
Node: Double Quotes15307
Node: ANSI-C Quoting16585
Node: Locale Translation17844
Node: Comments18740
Node: Shell Commands19358
Node: Simple Commands20230
Node: Pipelines20861
Node: Lists23793
Node: Compound Commands25584
Node: Looping Constructs26596
Node: Conditional Constructs29091
Node: Command Grouping40259
Node: Coprocesses41738
Node: GNU Parallel43641
Node: Shell Functions47699
Node: Shell Parameters54782
Node: Positional Parameters59195
Node: Special Parameters60095
Node: Shell Expansions63849
Node: Brace Expansion65972
Node: Tilde Expansion68695
Node: Shell Parameter Expansion71312
Node: Command Substitution85745
Node: Arithmetic Expansion87100
Node: Process Substitution88032
Node: Word Splitting89152
Node: Filename Expansion91096
Node: Pattern Matching93626
Node: Quote Removal97612
Node: Redirections97907
Node: Executing Commands107465
Node: Simple Command Expansion108135
Node: Command Search and Execution110065
Node: Command Execution Environment112441
Node: Environment115425
Node: Exit Status117084
Node: Signals118754
Node: Shell Scripts120721
Node: Shell Builtin Commands123236
Node: Bourne Shell Builtins125274
Node: Bash Builtins146024
Node: Modifying Shell Behavior174949
Node: The Set Builtin175294
Node: The Shopt Builtin185707
Node: Special Builtins203377
Node: Shell Variables204356
Node: Bourne Shell Variables204793
Node: Bash Variables206897
Node: Bash Features237357
Node: Invoking Bash238256
Node: Bash Startup Files244269
Node: Interactive Shells249372
Node: What is an Interactive Shell?249782
Node: Is this Shell Interactive?250431
Node: Interactive Shell Behavior251246
Node: Bash Conditional Expressions254733
Node: Shell Arithmetic259310
Node: Aliases262127
Node: Arrays264747
Node: The Directory Stack270112
Node: Directory Stack Builtins270896
Node: Controlling the Prompt273864
Node: The Restricted Shell276630
Node: Bash POSIX Mode278455
Node: Job Control289388
Node: Job Control Basics289848
Node: Job Control Builtins294816
Node: Job Control Variables299543
Node: Command Line Editing300699
Node: Introduction and Notation302370
Node: Readline Interaction303993
Node: Readline Bare Essentials305184
Node: Readline Movement Commands306967
Node: Readline Killing Commands307927
Node: Readline Arguments309845
Node: Searching310889
Node: Readline Init File313075
Node: Readline Init File Syntax314222
Node: Conditional Init Constructs334661
Node: Sample Init File338857
Node: Bindable Readline Commands341974
Node: Commands For Moving343178
Node: Commands For History345027
Node: Commands For Text349322
Node: Commands For Killing352710
Node: Numeric Arguments355191
Node: Commands For Completion356330
Node: Keyboard Macros360521
Node: Miscellaneous Commands361208
Node: Readline vi Mode367161
Node: Programmable Completion368068
Node: Programmable Completion Builtins375848
Node: A Programmable Completion Example386543
Node: Using History Interactively391783
Node: Bash History Facilities392467
Node: Bash History Builtins395472
Node: History Interaction400003
Node: Event Designators403623
Node: Word Designators404842
Node: Modifiers406479
Node: Installing Bash407881
Node: Basic Installation409018
Node: Compilers and Options412276
Node: Compiling For Multiple Architectures413017
Node: Installation Names414710
Node: Specifying the System Type415528
Node: Sharing Defaults416244
Node: Operation Controls416917
Node: Optional Features417875
Node: Reporting Bugs428393
Node: Major Differences From The Bourne Shell429587
Node: GNU Free Documentation License446439
Node: Indexes471616
Node: Builtin Index472070
Node: Reserved Word Index478897
Node: Variable Index481345
Node: Function Index497096
Node: Concept Index510399

End Tag Table
+34 -33
View File
@@ -1,11 +1,11 @@
This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2018/MacPorts 2018.47642_1) (preloaded format=pdfetex 2018.9.7) 2 JAN 2019 09:14
This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2018/MacPorts 2018.47642_7) (preloaded format=pdfetex 2019.1.16) 26 FEB 2019 09:57
entering extended mode
restricted \write18 enabled.
file:line:error style messages enabled.
%&-line parsing enabled.
**\input /usr/homes/chet/src/bash/src/doc/bashref.texi
(/usr/homes/chet/src/bash/src/doc/bashref.texi
(/Users/chet/src/bash/src/doc/texinfo.tex
(/usr/homes/chet/src/bash/src/doc/texinfo.tex
Loading texinfo [version 2015-11-22.14]:
\outerhsize=\dimen16
\outervsize=\dimen17
@@ -161,14 +161,15 @@ This is `epsf.tex' v2.7.4 <14 February 2011>
texinfo.tex: doing @include of version.texi
(/Users/chet/src/bash/src/doc/version.texi) [1{/opt/local/var/db/texmf/fonts/ma
p/pdftex/updmap/pdftex.map}] [2] (/Users/chet/src/bash/src/doc/bashref.toc
[-1] [-2] [-3]) [-4] (/Users/chet/src/bash/src/doc/bashref.toc)
(/Users/chet/src/bash/src/doc/bashref.toc) 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'.
(/Users/chet/src/bash/src/doc/bashref.aux)
(/usr/homes/chet/src/bash/src/doc/bashref.aux)
\openout1 = `bashref.aux'.
Chapter 2 [1] [2]
@@ -267,38 +268,38 @@ texinfo.tex: doing @include of hsuser.texi
[160] Appendix C [161]
texinfo.tex: doing @include of fdl.texi
(/Users/chet/src/bash/src/doc/fdl.texi [162] [163]
[164] [165] [166] [167] [168]) Appendix D [169] [170] [171] [172] [173]
[174] [175] [176] [177] [178] )
(/usr/homes/chet/src/bash/src/doc/fdl.texi [162]
[163] [164] [165] [166] [167] [168]) Appendix D [169] [170] [171] [172]
[173] [174] [175] [176] [177] [178] )
Here is how much of TeX's memory you used:
4066 strings out of 497100
47081 string characters out of 6206795
137581 words of memory out of 5000000
4065 strings out of 497100
47108 string characters out of 6206794
136573 words of memory out of 5000000
4846 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,326b,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 (184 pages, 753125 bytes).
{/opt/local/share/texmf-texlive/fonts/enc/
dvips/cm-super/cm-super-t1.enc}</opt/local/share/texmf-texlive/fonts/type1/publ
ic/amsfonts/cm/cmbx12.pfb></opt/local/share/texmf-texlive/fonts/type1/public/am
sfonts/cm/cmcsc10.pfb></opt/local/share/texmf-texlive/fonts/type1/public/amsfon
ts/cm/cmmi10.pfb></opt/local/share/texmf-texlive/fonts/type1/public/amsfonts/cm
/cmmi12.pfb></opt/local/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmmi
9.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/l
ocal/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmsl10.pfb></opt/local/
share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmsltt10.pfb></opt/local/sha
re/texmf-texlive/fonts/type1/public/amsfonts/cm/cmsy10.pfb></opt/local/share/te
xmf-texlive/fonts/type1/public/amsfonts/cm/cmti10.pfb></opt/local/share/texmf-t
exlive/fonts/type1/public/amsfonts/cm/cmtt10.pfb></opt/local/share/texmf-texliv
e/fonts/type1/public/amsfonts/cm/cmtt12.pfb></opt/local/share/texmf-texlive/fon
ts/type1/public/amsfonts/cm/cmtt9.pfb></opt/local/share/texmf-texlive/fonts/typ
e1/public/cm-super/sfrm1095.pfb></opt/local/share/texmf-texlive/fonts/type1/pub
lic/cm-super/sfrm1440.pfb>
Output written on bashref.pdf (184 pages, 752696 bytes).
PDF statistics:
2624 PDF objects out of 2984 (max. 8388607)
2395 compressed objects within 24 object streams
2623 PDF objects out of 2984 (max. 8388607)
2394 compressed objects within 24 object streams
310 named destinations out of 1000 (max. 500000)
1125 words of extra memory for PDF output out of 10000 (max. 10000000)
BIN
View File
Binary file not shown.
+1840 -1840
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -14,8 +14,8 @@
\entry{in}{11}{\code {in}}
\entry{esac}{11}{\code {esac}}
\entry{select}{12}{\code {select}}
\entry{[[}{12}{\code {[[}}
\entry{]]}{12}{\code {]]}}
\entry{[[}{13}{\code {[[}}
\entry{]]}{13}{\code {]]}}
\entry{{\indexlbrace }}{15}{\code {{\tt \char 123}}}
\entry{{\indexrbrace }}{15}{\code {{\tt \char 125}}}
\entry{function}{17}{\code {function}}
+2 -2
View File
@@ -1,9 +1,9 @@
\initial {!}
\entry {\code {!}}{8}
\initial {[}
\entry {\code {[[}}{12}
\entry {\code {[[}}{13}
\initial {]}
\entry {\code {]]}}{12}
\entry {\code {]]}}{13}
\initial {{\indexlbrace }}
\entry {\code {{\tt \char 123}}}{15}
\initial {{\indexrbrace }}
+3 -1
View File
@@ -5295,7 +5295,9 @@ If set, aliases are expanded as described below under Aliases,
This option is enabled by default for interactive shells.
@item extdebug
If set at shell invocation, arrange to execute the debugger profile
If set at shell invocation,
or in a shell startup file,
arrange to execute the debugger profile
before the shell starts, identical to the @option{--debugger} option.
If set after invocation, behavior intended for use by debuggers is enabled:
+12 -12
View File
@@ -19,43 +19,43 @@
@numsubsecentry{Compound Commands}{3.2.4}{Compound Commands}{9}
@numsubsubsecentry{Looping Constructs}{3.2.4.1}{Looping Constructs}{10}
@numsubsubsecentry{Conditional Constructs}{3.2.4.2}{Conditional Constructs}{11}
@numsubsubsecentry{Grouping Commands}{3.2.4.3}{Command Grouping}{14}
@numsubsubsecentry{Grouping Commands}{3.2.4.3}{Command Grouping}{15}
@numsubsecentry{Coprocesses}{3.2.5}{Coprocesses}{15}
@numsubsecentry{GNU Parallel}{3.2.6}{GNU Parallel}{16}
@numsecentry{Shell Functions}{3.3}{Shell Functions}{17}
@numsecentry{Shell Parameters}{3.4}{Shell Parameters}{19}
@numsecentry{Shell Parameters}{3.4}{Shell Parameters}{20}
@numsubsecentry{Positional Parameters}{3.4.1}{Positional Parameters}{21}
@numsubsecentry{Special Parameters}{3.4.2}{Special Parameters}{21}
@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}{23}
@numsubsecentry{Tilde Expansion}{3.5.2}{Tilde Expansion}{24}
@numsubsecentry{Shell Parameter Expansion}{3.5.3}{Shell Parameter Expansion}{24}
@numsubsecentry{Command Substitution}{3.5.4}{Command Substitution}{30}
@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}
@numsubsecentry{Word Splitting}{3.5.7}{Word Splitting}{31}
@numsubsecentry{Word Splitting}{3.5.7}{Word Splitting}{32}
@numsubsecentry{Filename Expansion}{3.5.8}{Filename Expansion}{32}
@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}{}{35}
@numsubsecentry{Redirecting Output}{3.6.2}{}{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}
@numsubsecentry{Appending Standard Output and Standard Error}{3.6.5}{}{36}
@numsubsecentry{Here Documents}{3.6.6}{}{36}
@numsubsecentry{Here Documents}{3.6.6}{}{37}
@numsubsecentry{Here Strings}{3.6.7}{}{37}
@numsubsecentry{Duplicating File Descriptors}{3.6.8}{}{37}
@numsubsecentry{Moving File Descriptors}{3.6.9}{}{37}
@numsubsecentry{Opening File Descriptors for Reading and Writing}{3.6.10}{}{37}
@numsubsecentry{Moving File Descriptors}{3.6.9}{}{38}
@numsubsecentry{Opening File Descriptors for Reading and Writing}{3.6.10}{}{38}
@numsecentry{Executing Commands}{3.7}{Executing Commands}{38}
@numsubsecentry{Simple Command Expansion}{3.7.1}{Simple Command Expansion}{38}
@numsubsecentry{Command Search and Execution}{3.7.2}{Command Search and Execution}{38}
@numsubsecentry{Command Search and Execution}{3.7.2}{Command Search and Execution}{39}
@numsubsecentry{Command Execution Environment}{3.7.3}{Command Execution Environment}{39}
@numsubsecentry{Environment}{3.7.4}{Environment}{40}
@numsubsecentry{Exit Status}{3.7.5}{Exit Status}{40}
@numsubsecentry{Exit Status}{3.7.5}{Exit Status}{41}
@numsubsecentry{Signals}{3.7.6}{Signals}{41}
@numsecentry{Shell Scripts}{3.8}{Shell Scripts}{41}
@numsecentry{Shell Scripts}{3.8}{Shell Scripts}{42}
@numchapentry{Shell Builtin Commands}{4}{Shell Builtin Commands}{43}
@numsecentry{Bourne Shell Builtins}{4.1}{Bourne Shell Builtins}{43}
@numsecentry{Bash Builtin Commands}{4.2}{Bash Builtins}{50}
+2 -2
View File
@@ -7,8 +7,8 @@
\entry{$@}{21}{\code {$@}}
\entry{#}{21}{\code {#}}
\entry{$#}{21}{\code {$#}}
\entry{?}{21}{\code {?}}
\entry{$?}{21}{\code {$?}}
\entry{?}{22}{\code {?}}
\entry{$?}{22}{\code {$?}}
\entry{-}{22}{\code {-}}
\entry{$-}{22}{\code {$-}}
\entry{$}{22}{\code {$}}
+2 -2
View File
@@ -9,7 +9,7 @@
\entry {\code {$$}}{22}
\entry {\code {$*}}{21}
\entry {\code {$-}}{22}
\entry {\code {$?}}{21}
\entry {\code {$?}}{22}
\entry {\code {$@}}{21}
\entry {\code {$_}}{22}
\entry {\code {$0}}{22}
@@ -18,7 +18,7 @@
\initial {-}
\entry {\code {-}}{22}
\initial {?}
\entry {\code {?}}{21}
\entry {\code {?}}{22}
\initial {@}
\entry {\code {@}}{21}
\initial {_}
+177 -176
View File
@@ -226,7 +226,7 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
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 inital
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
@@ -373,7 +373,7 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
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 inital non-assignment word on the line, or after a com-
on the initial non-assignment word on the line, or after a com-
mand delimiter such as ;; or ||, which is usually command name
completion.
@@ -1437,194 +1437,195 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
AALLIIAASSEESS. This option is enabled by default for interac-
tive shells.
eexxttddeebbuugg
If set at shell invocation, arrange to execute the
debugger profile before the shell starts, identical to
the ----ddeebbuuggggeerr option. If set after invocation, behav-
ior intended for use by debuggers is enabled:
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
after 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
description of FFIIGGNNOORREE. This option is enabled by
description of FFIIGGNNOORREE. This option is enabled by
default.
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-
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
sequence is not taken into account, so bb will not col-
late between AA and BB, and upper-case and lower-case
sequence is not taken into account, so bb will not col-
late 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
by the value of the HHIISSTTFFIILLEE variable when the shell
If set, the history list is appended to the file named
by the value of the HHIISSTTFFIILLEE variable when the shell
exits, 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
and all remaining characters on that line to be ignored
in an interactive shell (see CCOOMMMMEENNTTSS above). This
option 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
If set, local variables inherit the value and attributes
of a variable of the same name that exists at a previous
scope before any new value is assigned. The nameref
scope before any new value is assigned. The nameref
attribute 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
If set, and rreeaaddlliinnee is being used, bbaasshh will not
attempt 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
using the command word resulting from the expanded
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
using the command word resulting from the expanded
alias.
pprroommppttvvaarrss
If set, prompt strings undergo parameter expansion, com-
mand substitution, arithmetic expansion, and quote
removal after being expanded as described in PPRROOMMPPTTIINNGG
mand substitution, arithmetic expansion, and quote
removal 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
The shell sets this option if it is started in
restricted 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-
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
If set, the eecchhoo builtin expands backslash-escape
sequences 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,
Expressions may be combined using the following operators,
listed in decreasing order of precedence. The evaluation
depends on the number of arguments; see below. Operator prece-
depends 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.
@@ -1641,120 +1642,120 @@ BBAASSHH 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
receives signal(s) _s_i_g_s_p_e_c. If _a_r_g is absent (and there is a
single _s_i_g_s_p_e_c) or --, each specified signal is reset to its
original 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 commands associated with each signal. The --ll option
causes the shell to print a list of signal names and their cor-
responding 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
The command _a_r_g is to be read and executed when the shell
receives signal(s) _s_i_g_s_p_e_c. If _a_r_g is absent (and there is a
single _s_i_g_s_p_e_c) or --, each specified signal is reset to its
original 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 commands associated with each signal. The --ll option
causes the shell to print a list of signal names and their cor-
responding 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
!!. These are the same conditions obeyed by the eerrrreexxiitt (--ee)
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)
option.
Signals ignored upon entry to the shell cannot be trapped or
reset. Trapped signals that are not being ignored are reset to
Signals ignored upon entry to the shell cannot be trapped or
reset. 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
returned. If the --pp option is used, ttyyppee either returns the
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
returned. 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 speci-
fied as a command name, or nothing if ``type -t name'' would not
return _f_i_l_e. The --PP option forces a PPAATTHH search for each _n_a_m_e,
return _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,
respectively. 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
current hard limit, the current soft limit, and no limit,
respectively. 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-
preted as follows:
@@ -1763,12 +1764,12 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
--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)
@@ -1777,53 +1778,53 @@ BBAASSHH 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 CCOOMMPP__WWOORRDDBBRREEAAKKSS, RRAANN--
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 CCOOMMPP__WWOORRDDBBRREEAAKKSS, RRAANN--
DDOOMM, SSEECCOONNDDSS, LLIINNEENNOO, HHIISSTTCCMMDD, FFUUNNCCNNAAMMEE, GGRROOUUPPSS, or DDIIRRSSTTAACCKK 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-
@@ -1831,16 +1832,16 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
wwaaiitt [--ffnn] [_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
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, all currently active child pro-
cesses are waited for, and the return status is zero. If the --nn
option is supplied, wwaaiitt waits for any job to terminate and
returns its exit status. If the --ff option is supplied, and job
option is supplied, wwaaiitt waits for any job to terminate and
returns its exit status. If the --ff option is supplied, and job
control is enabled, wwaaiitt forces _i_d to terminate before returning
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
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
last process or job waited for.
SSEEEE AALLSSOO
+13 -13
View File
@@ -1,6 +1,6 @@
%!PS-Adobe-3.0
%%Creator: groff version 1.22.3
%%CreationDate: Wed Jan 2 09:14:38 2019
%%CreationDate: Tue Feb 26 09:57:04 2019
%%DocumentNeededResources: font Times-Roman
%%+ font Times-Bold
%%+ font Times-Italic
@@ -627,9 +627,9 @@ F2<ad44>3.707 E F0 1.208(option indicates that other supplied options)
(`empty')-.74 E 3.376('c)-.74 G .876(ommand completion; that is, com-)
-3.376 F .447(pletion attempted on a blank line.)144 638.4 R(The)5.447 E
F2<ad49>2.947 E F0 .448
(option indicates that other supplied options and actions)2.947 F 1.335
(should apply to completion on the inital non-assignment w)144 650.4 R
1.334(ord on the line, or after a command)-.1 F .43(delimiter such as)
(option indicates that other supplied options and actions)2.947 F 1.15
(should apply to completion on the initial non-assignment w)144 650.4 R
1.149(ord on the line, or after a command)-.1 F .43(delimiter such as)
144 662.4 R F2(;)2.93 E F0(or)2.93 E F2(|)2.93 E F0 2.93(,w)C .431
(hich is usually command name completion.)-2.93 F .431
(If multiple options are sup-)5.431 F .708(plied, the)144 674.4 R F2
@@ -823,9 +823,9 @@ no)-3.728 F 2.038(completion has pre)144 657.6 R 2.038
(option indicates that other supplied options)4.538 F 1.539
(should apply to `)144 669.6 R(`empty')-.74 E 4.039('c)-.74 G 1.538
(ommand completion; that is, completion attempted on a blank line.)
-4.039 F(The)144 681.6 Q F1<ad49>3.205 E F0 .705(option indicates that \
other supplied options should apply to completion on the inital non-)
3.205 F .868(assignment w)144 693.6 R .868
-4.039 F(The)144 681.6 Q F1<ad49>3.02 E F0 .52(option indicates that ot\
her supplied options should apply to completion on the initial non-)3.02
F .868(assignment w)144 693.6 R .868
(ord on the line, or after a command delimiter such as)-.1 F F1(;)3.368
E F0(or)3.368 E F1(|)3.368 E F0 3.367(,w)C .867(hich is usually com-)
-3.367 F(mand name completion.)144 705.6 Q 1.387(The return v)144 729.6
@@ -2507,12 +2507,12 @@ E F1(exec)2.5 E F0 -.2(bu)2.5 G(iltin command.).2 E(An interacti)5 E .3
1.017 -.15(ve u)-.15 H(nder).15 E/F2 9/Times-Bold@0 SF(ALIASES)3.217 E
/F3 9/Times-Roman@0 SF(.)A F0 .716(This option is enabled)5.217 F
(by def)184 492 Q(ault for interacti)-.1 E .3 -.15(ve s)-.25 H(hells.)
.15 E F1(extdeb)144 504 Q(ug)-.2 E F0 .671(If set at shell in)184 516 R
-.2(vo)-.4 G .671(cation, arrange to e).2 F -.15(xe)-.15 G .671
(cute the deb).15 F .672(ugger pro\214le before the shell starts,)-.2 F
.221(identical to the)184 528 R F1<adad646562>2.721 E(ugger)-.2 E F0
2.721(option. If)2.721 F .221(set after in)2.721 F -.2(vo)-.4 G .221
(cation, beha).2 F .22(vior intended for use by)-.2 F(deb)184 540 Q
.15 E F1(extdeb)144 504 Q(ug)-.2 E F0 .17(If set at shell in)184 516 R
-.2(vo)-.4 G .17(cation, or in a shell startup \214le, arrange to e).2 F
-.15(xe)-.15 G .17(cute the deb).15 F .17(ugger pro\214le)-.2 F 2.444
(before the shell starts, identical to the)184 528 R F1<adad646562>4.944
E(ugger)-.2 E F0 4.944(option. If)4.944 F 2.444(set after in)4.944 F -.2
(vo)-.4 G(cation,).2 E(beha)184 540 Q(vior intended for use by deb)-.2 E
(uggers is enabled:)-.2 E F1(1.)184 552 Q F0(The)220 552 Q F1<ad46>4.25
E F0 1.75(option to the)4.25 F F1(declar)4.251 E(e)-.18 E F0 -.2(bu)
4.251 G 1.751(iltin displays the source \214le name and line).2 F
+1 -1
View File
@@ -1,6 +1,6 @@
%!PS-Adobe-3.0
%%Creator: groff version 1.22.3
%%CreationDate: Wed Jan 2 09:14:38 2019
%%CreationDate: Tue Feb 26 09:57:04 2019
%%DocumentNeededResources: font Times-Roman
%%+ font Times-Bold
%%DocumentSuppliedResources: procset grops 1.22 3
+3 -3
View File
@@ -2,10 +2,10 @@
Copyright (C) 1988-2019 Free Software Foundation, Inc.
@end ignore
@set LASTCHANGE Sun Jan 27 17:41:35 EST 2019
@set LASTCHANGE Tue Feb 26 09:46:37 EST 2019
@set EDITION 5.0
@set VERSION 5.0
@set UPDATED 27 January 2019
@set UPDATED-MONTH January 2019
@set UPDATED 26 February 2019
@set UPDATED-MONTH February 2019
+2
View File
@@ -1770,7 +1770,9 @@ init_interactive ()
interactive = 1;
#if defined (HISTORY)
remember_on_history = enable_history_list = 1; /* XXX */
# if defined (BANG_HISTORY)
histexp_flag = history_expansion; /* XXX */
# endif
#endif
}
+25 -8
View File
@@ -2838,6 +2838,10 @@ list_string (string, separators, quoted)
result->word->flags &= ~W_HASQUOTEDNULL; /* just to be sure */
if (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT))
result->word->flags |= W_QUOTED;
/* If removing quoted null characters leaves an empty word, note
that we saw this for the caller to act on. */
if (current_word == 0 || current_word[0] == '\0')
result->word->flags |= W_SAWQUOTEDNULL;
}
/* If we're not doing sequences of separators in the traditional
@@ -3892,6 +3896,7 @@ expand_string_for_rhs (string, quoted, op, pflags, dollar_at_p, expanded_p)
depending on whether or not are are going to be splitting: if the expansion
is quoted, if the OP is `=', or if IFS is set to the empty string, we
are not going to be splitting, so we set expand_no_split_dollar_star to
note this to callees.
We pass through PF_ASSIGNRHS as W_ASSIGNRHS if this is on the RHS of an
assignment statement. */
/* The updated treatment of $* is the result of Posix interp 888 */
@@ -6868,7 +6873,7 @@ parameter_brace_expand_rhs (name, value, op, quoted, pflags, qdollaratp, hasdoll
int op, quoted, pflags, *qdollaratp, *hasdollarat;
{
WORD_DESC *w;
WORD_LIST *l;
WORD_LIST *l, *tl;
char *t, *t1, *temp, *vname;
int l_hasdollat, sindex;
SHELL_VAR *v;
@@ -6893,6 +6898,23 @@ parameter_brace_expand_rhs (name, value, op, quoted, pflags, qdollaratp, hasdoll
*hasdollarat = l_hasdollat || (l && l->next);
if (temp != value)
free (temp);
/* list_string takes multiple CTLNULs and turns them into an empty word
with W_SAWQUOTEDNULL set. Turn it back into a single CTLNUL for the
rest of this function and the caller. */
for (tl = l; tl; tl = tl->next)
{
if (tl->word && (tl->word->word == 0 || tl->word->word[0] == 0) &&
(tl->word->flags | W_SAWQUOTEDNULL))
{
t = make_quoted_char ('\0');
FREE (tl->word->word);
tl->word->word = t;
tl->word->flags |= W_QUOTED|W_HASQUOTEDNULL;
tl->word->flags &= ~W_SAWQUOTEDNULL;
}
}
if (l)
{
/* If l->next is not null, we know that TEMP contained "$@", since that
@@ -10204,13 +10226,8 @@ add_twochars:
disable the special handling that "$@" gets. */
if (list && list->word && list->next == 0 && (list->word->flags & W_HASQUOTEDNULL))
{
/* If we already saw a quoted null, we don't need to add
another one */
if (had_quoted_null && temp_has_dollar_at)
{
quoted_dollar_at++;
break;
}
quoted_dollar_at++;
had_quoted_null = 1; /* XXX */
}
@@ -10572,7 +10589,7 @@ finished_with_string:
tword->word = remove_quoted_ifs (istring);
else
tword->word = istring;
if (had_quoted_null && QUOTED_NULL (istring))
if (had_quoted_null && QUOTED_NULL (istring)) /* should check for more than one */
tword->flags |= W_HASQUOTEDNULL; /* XXX */
else if (had_quoted_null)
tword->flags |= W_SAWQUOTEDNULL; /* XXX */
+1 -1
View File
@@ -1,4 +1,4 @@
BUILD_DIR=/usr/local/build/chet/bash/bash-current
BUILD_DIR=/usr/local/build/bash/bash-current
THIS_SH=$BUILD_DIR/bash
PATH=$PATH:$BUILD_DIR
+32
View File
@@ -142,3 +142,35 @@ argv[1] = <ab ''>
argv[1] = <ab >
argv[1] = <ab ''>
argv[1] = <ab >
0
1
1
1
1
1
1
1
2
2
2
2
0
1
1
1
1
1
1
1
2
2
2
2
0
0
0
2
2
4
4
3
+1
View File
@@ -123,3 +123,4 @@ echo ${foo:-string \\\}}
${THIS_SH} ./quote1.sub
${THIS_SH} ./quote2.sub
${THIS_SH} ./quote3.sub
${THIS_SH} ./quote4.sub
+76
View File
@@ -0,0 +1,76 @@
n() { echo $#; }
set --
n "$@"
# should be 1
n "$@"''
n ''"$@"
n ''"$@"''
set -- ''
n "$@"
# should be 1
n "$@"''
n ''"$@"
n ''"$@"''
set -- '' ''
n "$@"
# should be 2
n ''"$@"
# should be 2
n "$@"''
# should be 2
n ''"$@"''
x=x
set --
n ${x+"$@"}
# should be 1
n ${x+"$@"''}
n ${x+''"$@"}
n ${x+''"$@"''}
set -- ''
n ${x+"$@"}
# should be 1
n ${x+"$@"''}
n ${x+''"$@"}
n ${x+''"$@"''}
set -- '' ''
n ${x+"$@"}
# should be 2
n ${x+''"$@"}
# should be 2
n ${x+"$@"''}
# should be 2
n ${x+''"$@"''}
set --
n "$@" "$@"
n "$@""$@"
n ${x+"$@" "$@"}
set -- ''
n ${x+"$@" "$@"}
n "$@" "$@"
set -- '' ''
n ${x+"$@" "$@"}
n "$@" "$@"
n "$@""$@"