mirror of
https://https.git.savannah.gnu.org/git/bash.git
synced 2026-06-30 08:59:56 +02:00
commit bash-20170324 snapshot
This commit is contained in:
+61
-1
@@ -13206,7 +13206,7 @@ subst.c
|
||||
2/19
|
||||
----
|
||||
subst.c
|
||||
- expand_string_for_rhs: now that this is only use to expand the RHS
|
||||
- expand_string_for_rhs: now that this is only used to expand the RHS
|
||||
of the various non-pattern ${paramOPword} expansions, set
|
||||
expand_no_split_dollar_star depending on whether or not the entire
|
||||
brace expansion is going to be subjected to word splitting: if it's
|
||||
@@ -13449,3 +13449,63 @@ parse.y
|
||||
- parse_matched_pair: handle an embedded process substitution like an
|
||||
embedded command substitution if we are parsing an array index or
|
||||
a dollar-brace expansion. Reported by D630 <d630@posteo.net>
|
||||
|
||||
3/21
|
||||
----
|
||||
subst.h
|
||||
- ASS_NOEVAL, ASS_NOLONGJMP: new values for assignments, used by
|
||||
make_variable_value
|
||||
|
||||
variables.c
|
||||
- make_variable_value: ASS_NOEVAL: if this is set, don't attempt
|
||||
arithmetic evaluation or case modification, just produce the value
|
||||
(still honor ASS_APPEND)
|
||||
- make_variable_value: ASS_NOLONGJMP: don't longjmp back to top_level
|
||||
if arithmetic evaluation fails due to a syntax error
|
||||
- bind_variable_internal: make sure aflags is passed to all calls to
|
||||
make_variable_value
|
||||
- push_temp_var: add ASS_NOLONGJMP to the flags passed to
|
||||
bind_variable_internal. Fixes bug reported by D630 <d630@posteo.net>
|
||||
|
||||
bashline.c
|
||||
- bash_execute_unix_command: don't bother to attempt optimization by
|
||||
checking whether the call to parse_and_execute changes $READLINE_LINE;
|
||||
it can be defeated by the new code that optimizes appends to string
|
||||
variables. Bug reported by Grisha Levit <grishalevit@gmail.com>
|
||||
|
||||
3/22
|
||||
----
|
||||
subst.c
|
||||
- expand_string_for_rhs: re-apply change from 2/19 based on discussion
|
||||
on the austin-group mailing list about how unquoted ${var-$*}
|
||||
expands when IFS is null. Originally reported by Martijn Dekker
|
||||
<martijn@inlv.org>
|
||||
|
||||
3/25
|
||||
----
|
||||
parse.y
|
||||
- read_token_word: if we read a WORD immediately after a CASE, FOR, or
|
||||
SELECT, increment `expecting_in_token' to note that we're going to
|
||||
be reading IN as the next non-newline token
|
||||
- special_case_tokens: if we're expecting an IN (expecting_in_token > 0)
|
||||
and we have an "in", return IN and decrement expecting_in_token. This
|
||||
is a better implementation of Posix grammar rule 6 than the previous
|
||||
code in that function (which is still there for posterity, but should
|
||||
eventually be removed). Fixes bug reported by Torka Noda
|
||||
<kanito.tasoga@gmail.com>
|
||||
|
||||
subst.c
|
||||
- string_list_pos_params: if the expansion is not quoted, and IFS is
|
||||
null, return a string containing the quoted positional parameters
|
||||
separated by spaces. Callers know what to do with the string
|
||||
- parameter_brace_substring,parameter_brace_remove_pattern,
|
||||
parameter_brace_transform,parameter_brace_patsub,parameter_brace_casemod:
|
||||
for the VT_POSPARMS case, after calling the operator-specific
|
||||
expansion function, which eventually calls string_list_pos_params,
|
||||
leave the returned string alone, since it's already quoted properly
|
||||
- parameter_brace_expand: after calling the above functions to perform
|
||||
expansions, if the expansion is being performed on an unquoted $*
|
||||
when IFS is null, set the W_SPLITSPACE flag in the return WORD_DESC
|
||||
so that splitting on spaces is performed on the already-quoted word.
|
||||
Fixes bug reported by Grisha Levit <grishalevit@gmail.com>
|
||||
|
||||
|
||||
@@ -813,6 +813,7 @@ tests/test-glue-functions f
|
||||
tests/alias.tests f
|
||||
tests/alias1.sub f
|
||||
tests/alias2.sub f
|
||||
tests/alias3.sub f
|
||||
tests/alias.right f
|
||||
tests/appendop.tests f
|
||||
tests/appendop1.sub f
|
||||
|
||||
+4
-6
@@ -1,6 +1,6 @@
|
||||
/* bashline.c -- Bash's interface to the readline library. */
|
||||
|
||||
/* Copyright (C) 1987-2016 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1987-2017 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Bash, the Bourne Again SHell.
|
||||
|
||||
@@ -4094,7 +4094,7 @@ bash_execute_unix_command (count, key)
|
||||
register int i, r;
|
||||
intmax_t mi;
|
||||
sh_parser_state_t ps;
|
||||
char *cmd, *value, *l, *l1, *ce;
|
||||
char *cmd, *value, *ce;
|
||||
SHELL_VAR *v;
|
||||
char ibuf[INT_STRLEN_BOUND(int) + 1];
|
||||
|
||||
@@ -4128,7 +4128,6 @@ bash_execute_unix_command (count, key)
|
||||
v = bind_variable ("READLINE_LINE", rl_line_buffer, 0);
|
||||
if (v)
|
||||
VSETATTR (v, att_exported);
|
||||
l = v ? value_cell (v) : 0;
|
||||
value = inttostr (rl_point, ibuf, sizeof (ibuf));
|
||||
v = bind_int_variable ("READLINE_POINT", value, 0);
|
||||
if (v)
|
||||
@@ -4140,9 +4139,8 @@ bash_execute_unix_command (count, key)
|
||||
restore_parser_state (&ps);
|
||||
|
||||
v = find_variable ("READLINE_LINE");
|
||||
l1 = v ? value_cell (v) : 0;
|
||||
if (l1 != l)
|
||||
maybe_make_readline_line (value_cell (v));
|
||||
maybe_make_readline_line (v ? value_cell (v) : 0);
|
||||
|
||||
v = find_variable ("READLINE_POINT");
|
||||
if (v && legal_number (value_cell (v), &mi))
|
||||
{
|
||||
|
||||
+115
-79
@@ -9,7 +9,7 @@ SSYYNNOOPPSSIISS
|
||||
bbaasshh [options] [command_string | file]
|
||||
|
||||
CCOOPPYYRRIIGGHHTT
|
||||
Bash is Copyright (C) 1989-2016 by the Free Software Foundation, Inc.
|
||||
Bash is Copyright (C) 1989-2017 by the Free Software Foundation, Inc.
|
||||
|
||||
DDEESSCCRRIIPPTTIIOONN
|
||||
BBaasshh is an sshh-compatible command language interpreter that executes
|
||||
@@ -22,9 +22,9 @@ DDEESSCCRRIIPPTTIIOONN
|
||||
|
||||
OOPPTTIIOONNSS
|
||||
All of the single-character shell options documented in the description
|
||||
of the sseett builtin command can be used as options when the shell is
|
||||
invoked. In addition, bbaasshh interprets the following options when it is
|
||||
invoked:
|
||||
of the sseett builtin command, including --oo, can be used as options when
|
||||
the shell is invoked. In addition, bbaasshh interprets the following
|
||||
options when it is invoked:
|
||||
|
||||
--cc If the --cc option is present, then commands are read from the
|
||||
first non-option argument _c_o_m_m_a_n_d___s_t_r_i_n_g. If there are argu-
|
||||
@@ -1286,9 +1286,9 @@ PPAARRAAMMEETTEERRSS
|
||||
command (see SSHHEELLLL GGRRAAMMMMAARR above).
|
||||
PPSS44 The value of this parameter is expanded as with PPSS11 and the
|
||||
value is printed before each command bbaasshh displays during an
|
||||
execution trace. The first character of PPSS44 is replicated mul-
|
||||
tiple times, as necessary, to indicate multiple levels of indi-
|
||||
rection. The default is ``++ ''.
|
||||
execution trace. The first character of the expanded value of
|
||||
PPSS44 is replicated multiple times, as necessary, to indicate mul-
|
||||
tiple levels of indirection. The default is ``++ ''.
|
||||
SSHHEELLLL The full pathname to the shell is kept in this environment vari-
|
||||
able. If it is not set when the shell starts, bbaasshh assigns to
|
||||
it the full pathname of the current user's login shell.
|
||||
@@ -2176,12 +2176,11 @@ RREEDDIIRREECCTTIIOONN
|
||||
|
||||
[_n]<<<<<<_w_o_r_d
|
||||
|
||||
The _w_o_r_d undergoes brace expansion, tilde expansion, parameter and
|
||||
variable expansion, command substitution, arithmetic expansion, and
|
||||
quote removal. Pathname expansion and word splitting are not per-
|
||||
formed. The result is supplied as a single string, with a newline
|
||||
appended, to the command on its standard input (or file descriptor _n if
|
||||
_n is specified).
|
||||
The _w_o_r_d undergoes tilde expansion, parameter and variable expansion,
|
||||
command substitution, arithmetic expansion, and quote removal. Path-
|
||||
name expansion and word splitting are not performed. The result is
|
||||
supplied as a single string, with a newline appended, to the command on
|
||||
its standard input (or file descriptor _n if _n is specified).
|
||||
|
||||
DDuupplliiccaattiinngg FFiillee DDeessccrriippttoorrss
|
||||
The redirection operator
|
||||
@@ -2189,22 +2188,22 @@ RREEDDIIRREECCTTIIOONN
|
||||
[_n]<<&&_w_o_r_d
|
||||
|
||||
is used to duplicate input file descriptors. If _w_o_r_d expands to one or
|
||||
more digits, the file descriptor denoted by _n is made to be a copy of
|
||||
that file descriptor. If the digits in _w_o_r_d do not specify a file
|
||||
descriptor open for input, a redirection error occurs. If _w_o_r_d evalu-
|
||||
ates to --, file descriptor _n is closed. If _n is not specified, the
|
||||
more digits, the file descriptor denoted by _n is made to be a copy of
|
||||
that file descriptor. If the digits in _w_o_r_d do not specify a file
|
||||
descriptor open for input, a redirection error occurs. If _w_o_r_d evalu-
|
||||
ates to --, file descriptor _n is closed. If _n is not specified, the
|
||||
standard input (file descriptor 0) is used.
|
||||
|
||||
The operator
|
||||
|
||||
[_n]>>&&_w_o_r_d
|
||||
|
||||
is used similarly to duplicate output file descriptors. If _n is not
|
||||
specified, the standard output (file descriptor 1) is used. If the
|
||||
digits in _w_o_r_d do not specify a file descriptor open for output, a re-
|
||||
direction error occurs. If _w_o_r_d evaluates to --, file descriptor _n is
|
||||
closed. As a special case, if _n is omitted, and _w_o_r_d does not expand
|
||||
to one or more digits or --, the standard output and standard error are
|
||||
is used similarly to duplicate output file descriptors. If _n is not
|
||||
specified, the standard output (file descriptor 1) is used. If the
|
||||
digits in _w_o_r_d do not specify a file descriptor open for output, a re-
|
||||
direction error occurs. If _w_o_r_d evaluates to --, file descriptor _n is
|
||||
closed. As a special case, if _n is omitted, and _w_o_r_d does not expand
|
||||
to one or more digits or --, the standard output and standard error are
|
||||
redirected as described previously.
|
||||
|
||||
MMoovviinngg FFiillee DDeessccrriippttoorrss
|
||||
@@ -2212,7 +2211,7 @@ RREEDDIIRREECCTTIIOONN
|
||||
|
||||
[_n]<<&&_d_i_g_i_t--
|
||||
|
||||
moves the file descriptor _d_i_g_i_t to file descriptor _n, or the standard
|
||||
moves the file descriptor _d_i_g_i_t to file descriptor _n, or the standard
|
||||
input (file descriptor 0) if _n is not specified. _d_i_g_i_t is closed after
|
||||
being duplicated to _n.
|
||||
|
||||
@@ -2220,7 +2219,7 @@ RREEDDIIRREECCTTIIOONN
|
||||
|
||||
[_n]>>&&_d_i_g_i_t--
|
||||
|
||||
moves the file descriptor _d_i_g_i_t to file descriptor _n, or the standard
|
||||
moves the file descriptor _d_i_g_i_t to file descriptor _n, or the standard
|
||||
output (file descriptor 1) if _n is not specified.
|
||||
|
||||
OOppeenniinngg FFiillee DDeessccrriippttoorrss ffoorr RReeaaddiinngg aanndd WWrriittiinngg
|
||||
@@ -2228,81 +2227,102 @@ RREEDDIIRREECCTTIIOONN
|
||||
|
||||
[_n]<<>>_w_o_r_d
|
||||
|
||||
causes the file whose name is the expansion of _w_o_r_d to be opened for
|
||||
both reading and writing on file descriptor _n, or on file descriptor 0
|
||||
causes the file whose name is the expansion of _w_o_r_d to be opened for
|
||||
both reading and writing on file descriptor _n, or on file descriptor 0
|
||||
if _n is not specified. If the file does not exist, it is created.
|
||||
|
||||
AALLIIAASSEESS
|
||||
_A_l_i_a_s_e_s allow a string to be substituted for a word when it is used as
|
||||
the first word of a simple command. The shell maintains a list of
|
||||
aliases that may be set and unset with the aalliiaass and uunnaalliiaass builtin
|
||||
commands (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below). The first word of each
|
||||
simple command, if unquoted, is checked to see if it has an alias. If
|
||||
so, that word is replaced by the text of the alias. The characters //,
|
||||
$$, ``, and == and any of the shell _m_e_t_a_c_h_a_r_a_c_t_e_r_s or quoting characters
|
||||
_A_l_i_a_s_e_s allow a string to be substituted for a word when it is used as
|
||||
the first word of a simple command. The shell maintains a list of
|
||||
aliases that may be set and unset with the aalliiaass and uunnaalliiaass builtin
|
||||
commands (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below). The first word of each
|
||||
simple command, if unquoted, is checked to see if it has an alias. If
|
||||
so, that word is replaced by the text of the alias. The characters //,
|
||||
$$, ``, and == and any of the shell _m_e_t_a_c_h_a_r_a_c_t_e_r_s or quoting characters
|
||||
listed above may not appear in an alias name. The replacement text may
|
||||
contain any valid shell input, including shell metacharacters. The
|
||||
first word of the replacement text is tested for aliases, but a word
|
||||
that is identical to an alias being expanded is not expanded a second
|
||||
time. This means that one may alias llss to llss --FF, for instance, and
|
||||
bbaasshh does not try to recursively expand the replacement text. If the
|
||||
last character of the alias value is a _b_l_a_n_k, then the next command
|
||||
contain any valid shell input, including shell metacharacters. The
|
||||
first word of the replacement text is tested for aliases, but a word
|
||||
that is identical to an alias being expanded is not expanded a second
|
||||
time. This means that one may alias llss to llss --FF, for instance, and
|
||||
bbaasshh does not try to recursively expand the replacement text. If the
|
||||
last character of the alias value is a _b_l_a_n_k, then the next command
|
||||
word following the alias is also checked for alias expansion.
|
||||
|
||||
Aliases are created and listed with the aalliiaass command, and removed with
|
||||
the uunnaalliiaass command.
|
||||
|
||||
There is no mechanism for using arguments in the replacement text. If
|
||||
arguments are needed, a shell function should be used (see FFUUNNCCTTIIOONNSS
|
||||
There is no mechanism for using arguments in the replacement text. If
|
||||
arguments are needed, a shell function should be used (see FFUUNNCCTTIIOONNSS
|
||||
below).
|
||||
|
||||
Aliases are not expanded when the shell is not interactive, unless the
|
||||
eexxppaanndd__aalliiaasseess shell option is set using sshhoopptt (see the description of
|
||||
Aliases are not expanded when the shell is not interactive, unless the
|
||||
eexxppaanndd__aalliiaasseess shell option is set using sshhoopptt (see the description of
|
||||
sshhoopptt under SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below).
|
||||
|
||||
The rules concerning the definition and use of aliases are somewhat
|
||||
confusing. BBaasshh always reads at least one complete line of input
|
||||
before executing any of the commands on that line. Aliases are
|
||||
expanded when a command is read, not when it is executed. Therefore,
|
||||
an alias definition appearing on the same line as another command does
|
||||
not take effect until the next line of input is read. The commands
|
||||
The rules concerning the definition and use of aliases are somewhat
|
||||
confusing. BBaasshh always reads at least one complete line of input
|
||||
before executing any of the commands on that line. Aliases are
|
||||
expanded when a command is read, not when it is executed. Therefore,
|
||||
an alias definition appearing on the same line as another command does
|
||||
not take effect until the next line of input is read. The commands
|
||||
following the alias definition on that line are not affected by the new
|
||||
alias. This behavior is also an issue when functions are executed.
|
||||
Aliases are expanded when a function definition is read, not when the
|
||||
function is executed, because a function definition is itself a com-
|
||||
mand. As a consequence, aliases defined in a function are not avail-
|
||||
able until after that function is executed. To be safe, always put
|
||||
alias definitions on a separate line, and do not use aalliiaass in compound
|
||||
alias. This behavior is also an issue when functions are executed.
|
||||
Aliases are expanded when a function definition is read, not when the
|
||||
function is executed, because a function definition is itself a com-
|
||||
mand. As a consequence, aliases defined in a function are not avail-
|
||||
able until after that function is executed. To be safe, always put
|
||||
alias definitions on a separate line, and do not use aalliiaass in compound
|
||||
commands.
|
||||
|
||||
For almost every purpose, aliases are superseded by shell functions.
|
||||
|
||||
FFUUNNCCTTIIOONNSS
|
||||
A shell function, defined as described above under SSHHEELLLL GGRRAAMMMMAARR,
|
||||
stores a series of commands for later execution. When the name of a
|
||||
shell function is used as a simple command name, the list of commands
|
||||
A shell function, defined as described above under SSHHEELLLL GGRRAAMMMMAARR,
|
||||
stores a series of commands for later execution. When the name of a
|
||||
shell function is used as a simple command name, the list of commands
|
||||
associated with that function name is executed. Functions are executed
|
||||
in the context of the current shell; no new process is created to
|
||||
interpret them (contrast this with the execution of a shell script).
|
||||
When a function is executed, the arguments to the function become the
|
||||
in the context of the current shell; no new process is created to
|
||||
interpret them (contrast this with the execution of a shell script).
|
||||
When a function is executed, the arguments to the function become the
|
||||
positional parameters during its execution. The special parameter ## is
|
||||
updated to reflect the change. Special parameter 00 is unchanged. The
|
||||
first element of the FFUUNNCCNNAAMMEE variable is set to the name of the func-
|
||||
updated to reflect the change. Special parameter 00 is unchanged. The
|
||||
first element of the FFUUNNCCNNAAMMEE variable is set to the name of the func-
|
||||
tion while the function is executing.
|
||||
|
||||
All other aspects of the shell execution environment are identical
|
||||
between a function and its caller with these exceptions: the DDEEBBUUGG and
|
||||
RREETTUURRNN traps (see the description of the ttrraapp builtin under SSHHEELLLL
|
||||
BBUUIILLTTIINN CCOOMMMMAANNDDSS below) are not inherited unless the function has been
|
||||
given the ttrraaccee attribute (see the description of the ddeeccllaarree builtin
|
||||
below) or the --oo ffuunnccttrraaccee shell option has been enabled with the sseett
|
||||
builtin (in which case all functions inherit the DDEEBBUUGG and RREETTUURRNN
|
||||
traps), and the EERRRR trap is not inherited unless the --oo eerrrrttrraaccee shell
|
||||
All other aspects of the shell execution environment are identical
|
||||
between a function and its caller with these exceptions: the DDEEBBUUGG and
|
||||
RREETTUURRNN traps (see the description of the ttrraapp builtin under SSHHEELLLL
|
||||
BBUUIILLTTIINN CCOOMMMMAANNDDSS below) are not inherited unless the function has been
|
||||
given the ttrraaccee attribute (see the description of the ddeeccllaarree builtin
|
||||
below) or the --oo ffuunnccttrraaccee shell option has been enabled with the sseett
|
||||
builtin (in which case all functions inherit the DDEEBBUUGG and RREETTUURRNN
|
||||
traps), and the EERRRR trap is not inherited unless the --oo eerrrrttrraaccee shell
|
||||
option has been enabled.
|
||||
|
||||
Variables local to the function may be declared with the llooccaall builtin
|
||||
Variables local to the function may be declared with the llooccaall builtin
|
||||
command. Ordinarily, variables and their values are shared between the
|
||||
function and its caller.
|
||||
function and its caller. If a variable is declared llooccaall, the vari-
|
||||
able's visible scope is restricted to that function and its children
|
||||
(including the functions it calls). Local variables "shadow" variables
|
||||
with the same name declared at previous scopes. For instance, a local
|
||||
variable declared in a function hides a global variable of the same
|
||||
name: references and assignments refer to the local variable, leaving
|
||||
the global variable unmodified. When the function returns, the global
|
||||
variable is once again visible.
|
||||
|
||||
The shell uses _d_y_n_a_m_i_c _s_c_o_p_i_n_g to control a variable's visibility
|
||||
within functions. With dynamic scoping, visible variables and their
|
||||
values are a result of the sequence of function calls that caused exe-
|
||||
cution to reach the current function. The value of a variable that a
|
||||
function sees depends on its value within its caller, if any, whether
|
||||
that caller is the "global" scope or another shell function. This is
|
||||
also the value that a local variable declaration "shadows", and the
|
||||
value that is restored when the function returns.
|
||||
|
||||
For example, if a variable _v_a_r is declared as local in function _f_u_n_c_1,
|
||||
and _f_u_n_c_1 calls another function _f_u_n_c_2, references to _v_a_r made from
|
||||
within _f_u_n_c_2 will resolve to the local variable _v_a_r from _f_u_n_c_1, shadow-
|
||||
ing any global variable named _v_a_r.
|
||||
|
||||
The FFUUNNCCNNEESSTT variable, if set to a numeric value greater than 0,
|
||||
defines a maximum function nesting level. Function invocations that
|
||||
@@ -2499,7 +2519,9 @@ CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS
|
||||
binary operators return true if _a_r_g_1 is equal to, not equal to,
|
||||
less than, less than or equal to, greater than, or greater than
|
||||
or equal to _a_r_g_2, respectively. _A_r_g_1 and _a_r_g_2 may be positive
|
||||
or negative integers.
|
||||
or negative integers. When used with the [[[[ command, _A_r_g_1 and
|
||||
_A_r_g_2 are evaluated as arithmetic expressions (see AARRIITTHHMMEETTIICC
|
||||
EEVVAALLUUAATTIIOONN above).
|
||||
|
||||
SSIIMMPPLLEE CCOOMMMMAANNDD EEXXPPAANNSSIIOONN
|
||||
When a simple command is executed, the shell performs the following
|
||||
@@ -2836,9 +2858,11 @@ PPRROOMMPPTTIINNGG
|
||||
When executing interactively, bbaasshh displays the primary prompt PPSS11 when
|
||||
it is ready to read a command, and the secondary prompt PPSS22 when it
|
||||
needs more input to complete a command. BBaasshh displays PPSS00 after it
|
||||
reads a command but before executing it. BBaasshh allows these prompt
|
||||
strings to be customized by inserting a number of backslash-escaped
|
||||
special characters that are decoded as follows:
|
||||
reads a command but before executing it. BBaasshh displays PPSS44 as
|
||||
described above before tracing each command when the --xx option is
|
||||
enabled. BBaasshh allows these prompt strings to be customized by insert-
|
||||
ing a number of backslash-escaped special characters that are decoded
|
||||
as follows:
|
||||
\\aa an ASCII bell character (07)
|
||||
\\dd the date in "Weekday Month Date" format (e.g., "Tue May
|
||||
26")
|
||||
@@ -3369,6 +3393,18 @@ RREEAADDLLIINNEE
|
||||
sshheellll--bbaacckkwwaarrdd--wwoorrdd
|
||||
Move back to the start of the current or previous word. Words
|
||||
are delimited by non-quoted shell metacharacters.
|
||||
pprreevviioouuss--ssccrreeeenn--lliinnee
|
||||
Attempt to move point to the same physical screen column on the
|
||||
previous physical screen line. This will not have the desired
|
||||
effect if the current Readline line does not take up more than
|
||||
one physical line or if point is not greater than the length of
|
||||
the prompt plus the screen width.
|
||||
nneexxtt--ssccrreeeenn--lliinnee
|
||||
Attempt to move point to the same physical screen column on the
|
||||
next physical screen line. This will not have the desired effect
|
||||
if the current Readline line does not take up more than one
|
||||
physical line or if the length of the current Readline line is
|
||||
not greater than the length of the prompt plus the screen width.
|
||||
cclleeaarr--ssccrreeeenn ((CC--ll))
|
||||
Clear the screen leaving the current line at the top of the
|
||||
screen. With an argument, refresh the current line without
|
||||
@@ -5989,4 +6025,4 @@ BBUUGGSS
|
||||
|
||||
|
||||
|
||||
GNU Bash 4.4 2017 February 1 BASH(1)
|
||||
GNU Bash 4.4 2017 March 22 BASH(1)
|
||||
|
||||
+41
-3
@@ -5,12 +5,12 @@
|
||||
.\" Case Western Reserve University
|
||||
.\" chet.ramey@case.edu
|
||||
.\"
|
||||
.\" Last Change: Mon Mar 13 12:04:35 EDT 2017
|
||||
.\" Last Change: Wed Mar 22 15:35:08 EDT 2017
|
||||
.\"
|
||||
.\" bash_builtins, strip all but Built-Ins section
|
||||
.if \n(zZ=1 .ig zZ
|
||||
.if \n(zY=1 .ig zY
|
||||
.TH BASH 1 "2017 March 13" "GNU Bash 4.4"
|
||||
.TH BASH 1 "2017 March 22" "GNU Bash 4.4"
|
||||
.\"
|
||||
.\" There's some problem with having a `@'
|
||||
.\" in a tagged paragraph with the BSD man macros.
|
||||
@@ -2673,10 +2673,12 @@ special parameters \fI@\fP and \fI*\fP within double quotes.
|
||||
The
|
||||
.B unset
|
||||
builtin is used to destroy arrays. \fBunset\fP \fIname\fP[\fIsubscript\fP]
|
||||
destroys the array element at index \fIsubscript\fP.
|
||||
destroys the array element at index \fIsubscript\fP,
|
||||
for both indexed and associative arrays.
|
||||
Negative subscripts to indexed arrays are interpreted as described above.
|
||||
Care must be taken to avoid unwanted side effects caused by pathname
|
||||
expansion.
|
||||
Unsetting the last element of an array variable does not unset the variable.
|
||||
\fBunset\fP \fIname\fP, where \fIname\fP is an array, or
|
||||
\fBunset\fP \fIname\fP[\fIsubscript\fP], where
|
||||
\fIsubscript\fP is \fB*\fP or \fB@\fP, removes the entire array.
|
||||
@@ -4244,6 +4246,42 @@ Variables local to the function may be declared with the
|
||||
.B local
|
||||
builtin command. Ordinarily, variables and their values
|
||||
are shared between the function and its caller.
|
||||
If a variable is declared \fBlocal\fP, the variable's visible scope
|
||||
is restricted to that function and its children (including the functions
|
||||
it calls).
|
||||
Local variables "shadow" variables with the same name declared at
|
||||
previous scopes.
|
||||
For instance, a local variable declared in a function
|
||||
hides a global variable of the same name: references and assignments
|
||||
refer to the local variable, leaving the global variable unmodified.
|
||||
When the function returns, the global variable is once again visible.
|
||||
.PP
|
||||
The shell uses \fIdynamic scoping\fP to control a variable's visibility
|
||||
within functions.
|
||||
With dynamic scoping, visible variables and their values
|
||||
are a result of the sequence of function calls that caused execution
|
||||
to reach the current function.
|
||||
The value of a variable that a function sees depends
|
||||
on its value within its caller, if any, whether that caller is
|
||||
the "global" scope or another shell function.
|
||||
This is also the value that a local variable
|
||||
declaration "shadows", and the value that is restored when the function
|
||||
returns.
|
||||
.PP
|
||||
For example, if a variable \fIvar\fP is declared as local in function
|
||||
\fIfunc1\fP, and \fIfunc1\fP calls another function \fIfunc2\fP,
|
||||
references to \fIvar\fP made from within \fIfunc2\fP will resolve to the
|
||||
local variable \fIvar\fP from \fIfunc1\fP, shadowing any global variable
|
||||
named \fIvar\fP.
|
||||
.PP
|
||||
The \fBunset\fP builtin also acts using the same dynamic scope: if a
|
||||
variable is local to the current scope, \fBunset\fP will unset it;
|
||||
otherwise the unset will refer to the variable found in any calling scope
|
||||
as described above.
|
||||
If a variable at the local scope is unset, it will remain so
|
||||
until it is reset in that scope or until the function returns.
|
||||
If the unset acts on a variable at a previous scope, any instance of a
|
||||
variable with that name that had been shadowed will become visible.
|
||||
.PP
|
||||
The \fBFUNCNEST\fP variable, if set to a numeric value greater
|
||||
than 0, defines a maximum function nesting level. Function
|
||||
|
||||
+73
-8
@@ -3,7 +3,7 @@
|
||||
</HEAD>
|
||||
<BODY><TABLE WIDTH=100%>
|
||||
<TR>
|
||||
<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2017 February 1<TH ALIGN=RIGHT width=33%>BASH(1)
|
||||
<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2017 March 22<TH ALIGN=RIGHT width=33%>BASH(1)
|
||||
</TR>
|
||||
</TABLE>
|
||||
<BR><A HREF="#index">Index</A>
|
||||
@@ -42,7 +42,7 @@ bash - GNU Bourne-Again SHell
|
||||
<H3>COPYRIGHT</H3>
|
||||
|
||||
|
||||
Bash is Copyright © 1989-2016 by the Free Software Foundation, Inc.
|
||||
Bash is Copyright © 1989-2017 by the Free Software Foundation, Inc.
|
||||
<A NAME="lbAE"> </A>
|
||||
<H3>DESCRIPTION</H3>
|
||||
|
||||
@@ -68,8 +68,8 @@ can be configured to be POSIX-conformant by default.
|
||||
<H3>OPTIONS</H3>
|
||||
|
||||
All of the single-character shell options documented in the
|
||||
description of the <B>set</B> builtin command can be used as options
|
||||
when the shell is invoked.
|
||||
description of the <B>set</B> builtin command, including <B>-o</B>,
|
||||
can be used as options when the shell is invoked.
|
||||
In addition, <B>bash</B>
|
||||
interprets the following options when it is invoked:
|
||||
<P>
|
||||
@@ -3095,6 +3095,7 @@ and the value is printed before each command
|
||||
<B>bash</B>
|
||||
|
||||
displays during an execution trace. The first character of
|
||||
the expanded value of
|
||||
<FONT SIZE=-1><B>PS4</B>
|
||||
|
||||
</FONT>
|
||||
@@ -5116,7 +5117,7 @@ A variant of here documents, the format is:
|
||||
<P>
|
||||
|
||||
The <I>word</I> undergoes
|
||||
brace expansion, tilde expansion, parameter and variable expansion,
|
||||
tilde expansion, parameter and variable expansion,
|
||||
command substitution, arithmetic expansion, and quote removal.
|
||||
Pathname expansion and word splitting are not performed.
|
||||
The result is supplied as a single string, with a newline appended,
|
||||
@@ -5420,6 +5421,35 @@ Variables local to the function may be declared with the
|
||||
|
||||
builtin command. Ordinarily, variables and their values
|
||||
are shared between the function and its caller.
|
||||
If a variable is declared <B>local</B>, the variable's visible scope
|
||||
is restricted to that function and its children (including the functions
|
||||
it calls).
|
||||
Local variables "shadow" variables with the same name declared at
|
||||
previous scopes.
|
||||
For instance, a local variable declared in a function
|
||||
hides a global variable of the same name: references and assignments
|
||||
refer to the local variable, leaving the global variable unmodified.
|
||||
When the function returns, the global variable is once again visible.
|
||||
<P>
|
||||
|
||||
The shell uses <I>dynamic scoping</I> to control a variable's visibility
|
||||
within functions.
|
||||
With dynamic scoping, visible variables and their values
|
||||
are a result of the sequence of function calls that caused execution
|
||||
to reach the current function.
|
||||
The value of a variable that a function sees depends
|
||||
on its value within its caller, if any, whether that caller is
|
||||
the "global" scope or another shell function.
|
||||
This is also the value that a local variable
|
||||
declaration "shadows", and the value that is restored when the function
|
||||
returns.
|
||||
<P>
|
||||
|
||||
For example, if a variable <I>var</I> is declared as local in function
|
||||
<I>func1</I>, and <I>func1</I> calls another function <I>func2</I>,
|
||||
references to <I>var</I> made from within <I>func2</I> will resolve to the
|
||||
local variable <I>var</I> from <I>func1</I>, shadowing any global variable
|
||||
named <I>var</I>.
|
||||
<P>
|
||||
|
||||
The <B>FUNCNEST</B> variable, if set to a numeric value greater
|
||||
@@ -5823,6 +5853,17 @@ and
|
||||
<I>arg2</I>
|
||||
|
||||
may be positive or negative integers.
|
||||
When used with the <B>[[</B> command,
|
||||
<I>Arg1</I>
|
||||
|
||||
and
|
||||
<I>Arg2</I>
|
||||
|
||||
are evaluated as arithmetic expressions (see
|
||||
<FONT SIZE=-1><B>ARITHMETIC EVALUATION</B>
|
||||
|
||||
</FONT>
|
||||
above).
|
||||
|
||||
</DL>
|
||||
<A NAME="lbBX"> </A>
|
||||
@@ -6532,11 +6573,20 @@ when it needs more input to complete a command.
|
||||
<B>Bash</B>
|
||||
|
||||
displays
|
||||
<B>PS0</B>
|
||||
<FONT SIZE=-1><B>PS0</B>
|
||||
|
||||
</FONT>
|
||||
after it reads a command but before executing it.
|
||||
<B>Bash</B>
|
||||
|
||||
displays
|
||||
<FONT SIZE=-1><B>PS4</B>
|
||||
|
||||
</FONT>
|
||||
as described above
|
||||
before tracing each command when the <B>-x</B> option is enabled.
|
||||
<B>Bash</B>
|
||||
|
||||
allows these prompt strings to be customized by inserting a number of
|
||||
backslash-escaped special characters that are decoded as follows:
|
||||
<DL COMPACT><DT><DD>
|
||||
@@ -7641,6 +7691,21 @@ Words are delimited by non-quoted shell metacharacters.
|
||||
<DD>
|
||||
Move back to the start of the current or previous word.
|
||||
Words are delimited by non-quoted shell metacharacters.
|
||||
<DT><B>previous-screen-line</B>
|
||||
|
||||
<DD>
|
||||
Attempt to move point to the same physical screen column on the previous
|
||||
physical screen line. This will not have the desired effect if the current
|
||||
Readline line does not take up more than one physical line or if point is not
|
||||
greater than the length of the prompt plus the screen width.
|
||||
<DT><B>next-screen-line</B>
|
||||
|
||||
<DD>
|
||||
Attempt to move point to the same physical screen column on the next
|
||||
physical screen line. This will not have the desired effect if the current
|
||||
Readline line does not take up more than one physical line or if the length
|
||||
of the current Readline line is not greater than the length of the prompt
|
||||
plus the screen width.
|
||||
<DT><B>clear-screen (C-l)</B>
|
||||
|
||||
<DD>
|
||||
@@ -13649,7 +13714,7 @@ There may be only one active coprocess at a time.
|
||||
<HR>
|
||||
<TABLE WIDTH=100%>
|
||||
<TR>
|
||||
<TH ALIGN=LEFT width=33%>GNU Bash 4.4<TH ALIGN=CENTER width=33%>2017 February 1<TH ALIGN=RIGHT width=33%>BASH(1)
|
||||
<TH ALIGN=LEFT width=33%>GNU Bash 4.4<TH ALIGN=CENTER width=33%>2017 March 22<TH ALIGN=RIGHT width=33%>BASH(1)
|
||||
</TR>
|
||||
</TABLE>
|
||||
<HR>
|
||||
@@ -13755,6 +13820,6 @@ There may be only one active coprocess at a time.
|
||||
</DL>
|
||||
<HR>
|
||||
This document was created by man2html from bash.1.<BR>
|
||||
Time: 01 February 2017 09:18:17 EST
|
||||
Time: 22 March 2017 16:12:40 EDT
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
||||
+227
-165
@@ -2,9 +2,9 @@ This is bash.info, produced by makeinfo version 6.3 from
|
||||
bashref.texi.
|
||||
|
||||
This text is a brief description of the features that are present in the
|
||||
Bash shell (version 4.4, 1 February 2017).
|
||||
Bash shell (version 4.4, 22 March 2017).
|
||||
|
||||
This is Edition 4.4, last updated 1 February 2017, of 'The GNU Bash
|
||||
This is Edition 4.4, last updated 22 March 2017, of 'The GNU Bash
|
||||
Reference Manual', for 'Bash', Version 4.4.
|
||||
|
||||
Copyright (C) 1988-2017 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 4.4, 1 February 2017). The Bash home page is
|
||||
Bash shell (version 4.4, 22 March 2017). The Bash home page is
|
||||
<http://www.gnu.org/software/bash/>.
|
||||
|
||||
This is Edition 4.4, last updated 1 February 2017, of 'The GNU Bash
|
||||
This is Edition 4.4, last updated 22 March 2017, of 'The GNU Bash
|
||||
Reference Manual', for 'Bash', Version 4.4.
|
||||
|
||||
Bash contains features that appear in other popular shells, and some
|
||||
@@ -1210,7 +1210,47 @@ last command executed before the 'return'.
|
||||
|
||||
Variables local to the function may be declared with the 'local'
|
||||
builtin. These variables are visible only to the function and the
|
||||
commands it invokes.
|
||||
commands it invokes. This is particularly important when a shell
|
||||
function calls other functions.
|
||||
|
||||
Local variables "shadow" variables with the same name declared at
|
||||
previous scopes. For instance, a local variable declared in a function
|
||||
hides a global variable of the same name: references and assignments
|
||||
refer to the local variable, leaving the global variable unmodified.
|
||||
When the function returns, the global variable is once again visible.
|
||||
|
||||
The shell uses DYNAMIC SCOPING to control a variable's visibility
|
||||
within functions. With dynamic scoping, visible variables and their
|
||||
values are a result of the sequence of function calls that caused
|
||||
execution to reach the current function. The value of a variable that a
|
||||
function sees depends on its value within its caller, if any, whether
|
||||
that caller is the "global" scope or another shell function. This is
|
||||
also the value that a local variable declaration "shadows", and the
|
||||
value that is restored when the function returns.
|
||||
|
||||
For example, if a variable VAR is declared as local in function
|
||||
FUNC1, and FUNC1 calls another function FUNC2, references to VAR made
|
||||
from within FUNC2 will resolve to the local variable VAR from FUNC1,
|
||||
shadowing any global variable named VAR.
|
||||
|
||||
The following script demonstrates this behavior. When executed, the
|
||||
script displays
|
||||
|
||||
In func2, var = func1 local
|
||||
|
||||
func1()
|
||||
{
|
||||
local var='func1 local'
|
||||
func2
|
||||
}
|
||||
|
||||
func2()
|
||||
{
|
||||
echo "In func2, var = $var"
|
||||
}
|
||||
|
||||
var=global
|
||||
func1
|
||||
|
||||
Function names and definitions may be listed with the '-f' option to
|
||||
the 'declare' ('typeset') builtin command (*note Bash Builtins::). The
|
||||
@@ -2354,12 +2394,11 @@ fashion.
|
||||
A variant of here documents, the format is:
|
||||
[N]<<< WORD
|
||||
|
||||
The WORD undergoes brace expansion, tilde expansion, parameter and
|
||||
variable expansion, command substitution, arithmetic expansion, and
|
||||
quote removal. Pathname expansion and word splitting are not performed.
|
||||
The result is supplied as a single string, with a newline appended, to
|
||||
the command on its standard input (or file descriptor N if N is
|
||||
specified).
|
||||
The WORD undergoes tilde expansion, parameter and variable expansion,
|
||||
command substitution, arithmetic expansion, and quote removal. Pathname
|
||||
expansion and word splitting are not performed. The result is supplied
|
||||
as a single string, with a newline appended, to the command on its
|
||||
standard input (or file descriptor N if N is specified).
|
||||
|
||||
3.6.8 Duplicating File Descriptors
|
||||
----------------------------------
|
||||
@@ -4687,7 +4726,8 @@ In some cases, Bash assigns a default value to the variable.
|
||||
that are expanded before 'PS1' is displayed.
|
||||
|
||||
'PS2'
|
||||
The secondary prompt string. The default value is '> '.
|
||||
The secondary prompt string. The default value is '> '. 'PS2' is
|
||||
expanded in the same way as 'PS1' before being displayed.
|
||||
|
||||
|
||||
File: bash.info, Node: Bash Variables, Prev: Bourne Shell Variables, Up: Shell Variables
|
||||
@@ -5254,10 +5294,12 @@ Variables::).
|
||||
with '#? '
|
||||
|
||||
'PS4'
|
||||
The value is the prompt printed before the command line is echoed
|
||||
when the '-x' option is set (*note The Set Builtin::). The first
|
||||
character of 'PS4' is replicated multiple times, as necessary, to
|
||||
indicate multiple levels of indirection. The default is '+ '.
|
||||
The value of this parameter is expanded like PS1 and the expanded
|
||||
value is the prompt printed before the command line is echoed when
|
||||
the '-x' option is set (*note The Set Builtin::). The first
|
||||
character of the expanded value is replicated multiple times, as
|
||||
necessary, to indicate multiple levels of indirection. The default
|
||||
is '+ '.
|
||||
|
||||
'PWD'
|
||||
The current working directory as set by the 'cd' builtin.
|
||||
@@ -5714,8 +5756,10 @@ several ways.
|
||||
|
||||
3. Bash expands and displays 'PS1' before reading the first line of a
|
||||
command, and expands and displays 'PS2' before reading the second
|
||||
and subsequent lines of a multi-line command. Bash displays 'PS0'
|
||||
after it reads a command but before executing it.
|
||||
and subsequent lines of a multi-line command. Bash expands and
|
||||
displays 'PS0' after it reads a command but before executing it.
|
||||
See *note Controlling the Prompt::, for a complete list of prompt
|
||||
string escape sequences.
|
||||
|
||||
4. Bash executes the value of the 'PROMPT_COMMAND' variable as a
|
||||
command before printing the primary prompt, '$PS1' (*note Bash
|
||||
@@ -5920,7 +5964,9 @@ link itself.
|
||||
arithmetic binary operators return true if ARG1 is equal to, not
|
||||
equal to, less than, less than or equal to, greater than, or
|
||||
greater than or equal to ARG2, respectively. ARG1 and ARG2 may be
|
||||
positive or negative integers.
|
||||
positive or negative integers. When used with the '[[' command,
|
||||
ARG1 and ARG2 are evaluated as arithmetic expressions (*note Shell
|
||||
Arithmetic::).
|
||||
|
||||
|
||||
File: bash.info, Node: Shell Arithmetic, Next: Aliases, Prev: Bash Conditional Expressions, Up: Bash Features
|
||||
@@ -6281,7 +6327,7 @@ non-null value, then the value is executed just as if it had been typed
|
||||
on the command line.
|
||||
|
||||
In addition, the following table describes the special characters
|
||||
which can appear in the prompt variables 'PS1' to 'PS4':
|
||||
which can appear in the prompt variables 'PS0', 'PS1', 'PS2', and 'PS4':
|
||||
|
||||
'\a'
|
||||
A bell character.
|
||||
@@ -7854,6 +7900,20 @@ File: bash.info, Node: Commands For Moving, Next: Commands For History, Up: B
|
||||
Move back to the start of the current or previous word. Words are
|
||||
delimited by non-quoted shell metacharacters.
|
||||
|
||||
'previous-screen-line ()'
|
||||
Attempt to move point to the same physical screen column on the
|
||||
previous physical screen line. This will not have the desired
|
||||
effect if the current Readline line does not take up more than one
|
||||
physical line or if point is not greater than the length of the
|
||||
prompt plus the screen width.
|
||||
|
||||
'next-screen-line ()'
|
||||
Attempt to move point to the same physical screen column on the
|
||||
next physical screen line. This will not have the desired effect
|
||||
if the current Readline line does not take up more than one
|
||||
physical line or if the length of the current Readline line is not
|
||||
greater than the length of the prompt plus the screen width.
|
||||
|
||||
'clear-screen (C-l)'
|
||||
Clear the screen and redraw the current line, leaving the current
|
||||
line at the top of the screen.
|
||||
@@ -9737,7 +9797,7 @@ unless the operating system does not provide the necessary support.
|
||||
|
||||
'--enable-prompt-string-decoding'
|
||||
Turn on the interpretation of a number of backslash-escaped
|
||||
characters in the '$PS1', '$PS2', '$PS3', and '$PS4' prompt
|
||||
characters in the '$PS0', '$PS1', '$PS2', and '$PS4' prompt
|
||||
strings. See *note Controlling the Prompt::, for a complete list
|
||||
of prompt string escape sequences.
|
||||
|
||||
@@ -11019,17 +11079,17 @@ D.3 Parameter and Variable Index
|
||||
(line 53)
|
||||
* PS3: Bash Variables. (line 559)
|
||||
* PS4: Bash Variables. (line 564)
|
||||
* PWD: Bash Variables. (line 570)
|
||||
* RANDOM: Bash Variables. (line 573)
|
||||
* READLINE_LINE: Bash Variables. (line 578)
|
||||
* READLINE_POINT: Bash Variables. (line 582)
|
||||
* REPLY: Bash Variables. (line 586)
|
||||
* PWD: Bash Variables. (line 572)
|
||||
* RANDOM: Bash Variables. (line 575)
|
||||
* READLINE_LINE: Bash Variables. (line 580)
|
||||
* READLINE_POINT: Bash Variables. (line 584)
|
||||
* REPLY: Bash Variables. (line 588)
|
||||
* revert-all-at-newline: Readline Init File Syntax.
|
||||
(line 270)
|
||||
* SECONDS: Bash Variables. (line 589)
|
||||
* SHELL: Bash Variables. (line 595)
|
||||
* SHELLOPTS: Bash Variables. (line 600)
|
||||
* SHLVL: Bash Variables. (line 609)
|
||||
* SECONDS: Bash Variables. (line 591)
|
||||
* SHELL: Bash Variables. (line 597)
|
||||
* SHELLOPTS: Bash Variables. (line 602)
|
||||
* SHLVL: Bash Variables. (line 611)
|
||||
* show-all-if-ambiguous: Readline Init File Syntax.
|
||||
(line 276)
|
||||
* show-all-if-unmodified: Readline Init File Syntax.
|
||||
@@ -11040,10 +11100,10 @@ D.3 Parameter and Variable Index
|
||||
(line 297)
|
||||
* TEXTDOMAIN: Locale Translation. (line 11)
|
||||
* TEXTDOMAINDIR: Locale Translation. (line 11)
|
||||
* TIMEFORMAT: Bash Variables. (line 614)
|
||||
* TMOUT: Bash Variables. (line 652)
|
||||
* TMPDIR: Bash Variables. (line 664)
|
||||
* UID: Bash Variables. (line 668)
|
||||
* TIMEFORMAT: Bash Variables. (line 616)
|
||||
* TMOUT: Bash Variables. (line 654)
|
||||
* TMPDIR: Bash Variables. (line 666)
|
||||
* UID: Bash Variables. (line 670)
|
||||
* vi-cmd-mode-string: Readline Init File Syntax.
|
||||
(line 310)
|
||||
* vi-ins-mode-string: Readline Init File Syntax.
|
||||
@@ -11083,7 +11143,7 @@ D.4 Function Index
|
||||
(line 42)
|
||||
* character-search-backward (M-C-]): Miscellaneous Commands.
|
||||
(line 47)
|
||||
* clear-screen (C-l): Commands For Moving. (line 34)
|
||||
* clear-screen (C-l): Commands For Moving. (line 48)
|
||||
* complete (<TAB>): Commands For Completion.
|
||||
(line 6)
|
||||
* complete-command (M-!): Commands For Completion.
|
||||
@@ -11179,6 +11239,7 @@ D.4 Function Index
|
||||
(line 38)
|
||||
* next-history (C-n): Commands For History.
|
||||
(line 17)
|
||||
* next-screen-line (): Commands For Moving. (line 41)
|
||||
* non-incremental-forward-search-history (M-n): Commands For History.
|
||||
(line 41)
|
||||
* non-incremental-reverse-search-history (M-p): Commands For History.
|
||||
@@ -11202,11 +11263,12 @@ D.4 Function Index
|
||||
(line 19)
|
||||
* previous-history (C-p): Commands For History.
|
||||
(line 13)
|
||||
* previous-screen-line (): Commands For Moving. (line 34)
|
||||
* print-last-kbd-macro (): Keyboard Macros. (line 17)
|
||||
* quoted-insert (C-q or C-v): Commands For Text. (line 26)
|
||||
* re-read-init-file (C-x C-r): Miscellaneous Commands.
|
||||
(line 6)
|
||||
* redraw-current-line (): Commands For Moving. (line 38)
|
||||
* redraw-current-line (): Commands For Moving. (line 52)
|
||||
* reverse-search-history (C-r): Commands For History.
|
||||
(line 27)
|
||||
* revert-line (M-r): Miscellaneous Commands.
|
||||
@@ -11410,134 +11472,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 Translation17834
|
||||
Node: Comments18730
|
||||
Node: Shell Commands19348
|
||||
Node: Simple Commands20220
|
||||
Node: Pipelines20851
|
||||
Node: Lists23594
|
||||
Node: Compound Commands25323
|
||||
Node: Looping Constructs26326
|
||||
Node: Conditional Constructs28789
|
||||
Node: Command Grouping39711
|
||||
Node: Coprocesses41190
|
||||
Node: GNU Parallel43022
|
||||
Node: Shell Functions46995
|
||||
Node: Shell Parameters52201
|
||||
Node: Positional Parameters56614
|
||||
Node: Special Parameters57514
|
||||
Node: Shell Expansions60851
|
||||
Node: Brace Expansion62945
|
||||
Node: Tilde Expansion65779
|
||||
Node: Shell Parameter Expansion68127
|
||||
Node: Command Substitution82259
|
||||
Node: Arithmetic Expansion83614
|
||||
Node: Process Substitution84546
|
||||
Node: Word Splitting85666
|
||||
Node: Filename Expansion87610
|
||||
Node: Pattern Matching89984
|
||||
Node: Quote Removal93970
|
||||
Node: Redirections94265
|
||||
Node: Executing Commands103839
|
||||
Node: Simple Command Expansion104509
|
||||
Node: Command Search and Execution106439
|
||||
Node: Command Execution Environment108775
|
||||
Node: Environment111759
|
||||
Node: Exit Status113418
|
||||
Node: Signals115088
|
||||
Node: Shell Scripts117055
|
||||
Node: Shell Builtin Commands119570
|
||||
Node: Bourne Shell Builtins121604
|
||||
Node: Bash Builtins142204
|
||||
Node: Modifying Shell Behavior170849
|
||||
Node: The Set Builtin171194
|
||||
Node: The Shopt Builtin181607
|
||||
Node: Special Builtins197505
|
||||
Node: Shell Variables198484
|
||||
Node: Bourne Shell Variables198921
|
||||
Node: Bash Variables200952
|
||||
Node: Bash Features230660
|
||||
Node: Invoking Bash231559
|
||||
Node: Bash Startup Files237508
|
||||
Node: Interactive Shells242611
|
||||
Node: What is an Interactive Shell?243021
|
||||
Node: Is this Shell Interactive?243670
|
||||
Node: Interactive Shell Behavior244485
|
||||
Node: Bash Conditional Expressions247860
|
||||
Node: Shell Arithmetic252100
|
||||
Node: Aliases254917
|
||||
Node: Arrays257465
|
||||
Node: The Directory Stack262549
|
||||
Node: Directory Stack Builtins263333
|
||||
Node: Controlling the Prompt266301
|
||||
Node: The Restricted Shell269047
|
||||
Node: Bash POSIX Mode270872
|
||||
Node: Job Control281223
|
||||
Node: Job Control Basics281683
|
||||
Node: Job Control Builtins286651
|
||||
Node: Job Control Variables291378
|
||||
Node: Command Line Editing292534
|
||||
Node: Introduction and Notation294205
|
||||
Node: Readline Interaction295828
|
||||
Node: Readline Bare Essentials297019
|
||||
Node: Readline Movement Commands298802
|
||||
Node: Readline Killing Commands299762
|
||||
Node: Readline Arguments301680
|
||||
Node: Searching302724
|
||||
Node: Readline Init File304910
|
||||
Node: Readline Init File Syntax306057
|
||||
Node: Conditional Init Constructs326244
|
||||
Node: Sample Init File328769
|
||||
Node: Bindable Readline Commands331886
|
||||
Node: Commands For Moving333090
|
||||
Node: Commands For History334233
|
||||
Node: Commands For Text338528
|
||||
Node: Commands For Killing341917
|
||||
Node: Numeric Arguments344398
|
||||
Node: Commands For Completion345537
|
||||
Node: Keyboard Macros349728
|
||||
Node: Miscellaneous Commands350415
|
||||
Node: Readline vi Mode356291
|
||||
Node: Programmable Completion357198
|
||||
Node: Programmable Completion Builtins364659
|
||||
Node: A Programmable Completion Example374545
|
||||
Node: Using History Interactively379797
|
||||
Node: Bash History Facilities380481
|
||||
Node: Bash History Builtins383482
|
||||
Node: History Interaction387774
|
||||
Node: Event Designators390738
|
||||
Node: Word Designators391957
|
||||
Node: Modifiers393594
|
||||
Node: Installing Bash394996
|
||||
Node: Basic Installation396133
|
||||
Node: Compilers and Options398824
|
||||
Node: Compiling For Multiple Architectures399565
|
||||
Node: Installation Names401228
|
||||
Node: Specifying the System Type402046
|
||||
Node: Sharing Defaults402762
|
||||
Node: Operation Controls403435
|
||||
Node: Optional Features404393
|
||||
Node: Reporting Bugs414919
|
||||
Node: Major Differences From The Bourne Shell416113
|
||||
Node: GNU Free Documentation License432965
|
||||
Node: Indexes458142
|
||||
Node: Builtin Index458596
|
||||
Node: Reserved Word Index465423
|
||||
Node: Variable Index467871
|
||||
Node: Function Index483549
|
||||
Node: Concept Index496706
|
||||
Node: Top891
|
||||
Node: Introduction2805
|
||||
Node: What is Bash?3021
|
||||
Node: What is a shell?4135
|
||||
Node: Definitions6673
|
||||
Node: Basic Shell Features9624
|
||||
Node: Shell Syntax10843
|
||||
Node: Shell Operation11869
|
||||
Node: Quoting13162
|
||||
Node: Escape Character14462
|
||||
Node: Single Quotes14947
|
||||
Node: Double Quotes15295
|
||||
Node: ANSI-C Quoting16573
|
||||
Node: Locale Translation17826
|
||||
Node: Comments18722
|
||||
Node: Shell Commands19340
|
||||
Node: Simple Commands20212
|
||||
Node: Pipelines20843
|
||||
Node: Lists23586
|
||||
Node: Compound Commands25315
|
||||
Node: Looping Constructs26318
|
||||
Node: Conditional Constructs28781
|
||||
Node: Command Grouping39703
|
||||
Node: Coprocesses41182
|
||||
Node: GNU Parallel43014
|
||||
Node: Shell Functions46987
|
||||
Node: Shell Parameters53696
|
||||
Node: Positional Parameters58109
|
||||
Node: Special Parameters59009
|
||||
Node: Shell Expansions62346
|
||||
Node: Brace Expansion64440
|
||||
Node: Tilde Expansion67274
|
||||
Node: Shell Parameter Expansion69622
|
||||
Node: Command Substitution83754
|
||||
Node: Arithmetic Expansion85109
|
||||
Node: Process Substitution86041
|
||||
Node: Word Splitting87161
|
||||
Node: Filename Expansion89105
|
||||
Node: Pattern Matching91479
|
||||
Node: Quote Removal95465
|
||||
Node: Redirections95760
|
||||
Node: Executing Commands105318
|
||||
Node: Simple Command Expansion105988
|
||||
Node: Command Search and Execution107918
|
||||
Node: Command Execution Environment110254
|
||||
Node: Environment113238
|
||||
Node: Exit Status114897
|
||||
Node: Signals116567
|
||||
Node: Shell Scripts118534
|
||||
Node: Shell Builtin Commands121049
|
||||
Node: Bourne Shell Builtins123083
|
||||
Node: Bash Builtins143683
|
||||
Node: Modifying Shell Behavior172328
|
||||
Node: The Set Builtin172673
|
||||
Node: The Shopt Builtin183086
|
||||
Node: Special Builtins198984
|
||||
Node: Shell Variables199963
|
||||
Node: Bourne Shell Variables200400
|
||||
Node: Bash Variables202504
|
||||
Node: Bash Features232297
|
||||
Node: Invoking Bash233196
|
||||
Node: Bash Startup Files239145
|
||||
Node: Interactive Shells244248
|
||||
Node: What is an Interactive Shell?244658
|
||||
Node: Is this Shell Interactive?245307
|
||||
Node: Interactive Shell Behavior246122
|
||||
Node: Bash Conditional Expressions249610
|
||||
Node: Shell Arithmetic253976
|
||||
Node: Aliases256793
|
||||
Node: Arrays259341
|
||||
Node: The Directory Stack264425
|
||||
Node: Directory Stack Builtins265209
|
||||
Node: Controlling the Prompt268177
|
||||
Node: The Restricted Shell270939
|
||||
Node: Bash POSIX Mode272764
|
||||
Node: Job Control283115
|
||||
Node: Job Control Basics283575
|
||||
Node: Job Control Builtins288543
|
||||
Node: Job Control Variables293270
|
||||
Node: Command Line Editing294426
|
||||
Node: Introduction and Notation296097
|
||||
Node: Readline Interaction297720
|
||||
Node: Readline Bare Essentials298911
|
||||
Node: Readline Movement Commands300694
|
||||
Node: Readline Killing Commands301654
|
||||
Node: Readline Arguments303572
|
||||
Node: Searching304616
|
||||
Node: Readline Init File306802
|
||||
Node: Readline Init File Syntax307949
|
||||
Node: Conditional Init Constructs328136
|
||||
Node: Sample Init File330661
|
||||
Node: Bindable Readline Commands333778
|
||||
Node: Commands For Moving334982
|
||||
Node: Commands For History336831
|
||||
Node: Commands For Text341126
|
||||
Node: Commands For Killing344515
|
||||
Node: Numeric Arguments346996
|
||||
Node: Commands For Completion348135
|
||||
Node: Keyboard Macros352326
|
||||
Node: Miscellaneous Commands353013
|
||||
Node: Readline vi Mode358889
|
||||
Node: Programmable Completion359796
|
||||
Node: Programmable Completion Builtins367257
|
||||
Node: A Programmable Completion Example377143
|
||||
Node: Using History Interactively382395
|
||||
Node: Bash History Facilities383079
|
||||
Node: Bash History Builtins386080
|
||||
Node: History Interaction390372
|
||||
Node: Event Designators393336
|
||||
Node: Word Designators394555
|
||||
Node: Modifiers396192
|
||||
Node: Installing Bash397594
|
||||
Node: Basic Installation398731
|
||||
Node: Compilers and Options401422
|
||||
Node: Compiling For Multiple Architectures402163
|
||||
Node: Installation Names403826
|
||||
Node: Specifying the System Type404644
|
||||
Node: Sharing Defaults405360
|
||||
Node: Operation Controls406033
|
||||
Node: Optional Features406991
|
||||
Node: Reporting Bugs417517
|
||||
Node: Major Differences From The Bourne Shell418711
|
||||
Node: GNU Free Documentation License435563
|
||||
Node: Indexes460740
|
||||
Node: Builtin Index461194
|
||||
Node: Reserved Word Index468021
|
||||
Node: Variable Index470469
|
||||
Node: Function Index486147
|
||||
Node: Concept Index499450
|
||||
|
||||
End Tag Table
|
||||
|
||||
Binary file not shown.
+4974
-4901
File diff suppressed because it is too large
Load Diff
+52
-52
@@ -75,73 +75,73 @@
|
||||
@xrdef{Shell Functions-pg}{17}
|
||||
@xrdef{Shell Parameters-title}{Shell Parameters}
|
||||
@xrdef{Shell Parameters-snt}{Section@tie 3.4}
|
||||
@xrdef{Shell Parameters-pg}{18}
|
||||
@xrdef{Shell Parameters-pg}{19}
|
||||
@xrdef{Positional Parameters-title}{Positional Parameters}
|
||||
@xrdef{Positional Parameters-snt}{Section@tie 3.4.1}
|
||||
@xrdef{Positional Parameters-pg}{19}
|
||||
@xrdef{Special Parameters-title}{Special Parameters}
|
||||
@xrdef{Special Parameters-snt}{Section@tie 3.4.2}
|
||||
@xrdef{Positional Parameters-pg}{20}
|
||||
@xrdef{Special Parameters-pg}{20}
|
||||
@xrdef{Shell Expansions-title}{Shell Expansions}
|
||||
@xrdef{Shell Expansions-snt}{Section@tie 3.5}
|
||||
@xrdef{Shell Expansions-pg}{21}
|
||||
@xrdef{Brace Expansion-title}{Brace Expansion}
|
||||
@xrdef{Brace Expansion-snt}{Section@tie 3.5.1}
|
||||
@xrdef{Shell Expansions-pg}{21}
|
||||
@xrdef{Brace Expansion-pg}{21}
|
||||
@xrdef{Brace Expansion-pg}{22}
|
||||
@xrdef{Tilde Expansion-title}{Tilde Expansion}
|
||||
@xrdef{Tilde Expansion-snt}{Section@tie 3.5.2}
|
||||
@xrdef{Tilde Expansion-pg}{22}
|
||||
@xrdef{Shell Parameter Expansion-title}{Shell Parameter Expansion}
|
||||
@xrdef{Shell Parameter Expansion-snt}{Section@tie 3.5.3}
|
||||
@xrdef{Shell Parameter Expansion-pg}{23}
|
||||
@xrdef{Tilde Expansion-pg}{23}
|
||||
@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}{29}
|
||||
@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{Command Substitution-pg}{29}
|
||||
@xrdef{Arithmetic Expansion-pg}{29}
|
||||
@xrdef{Word Splitting-title}{Word Splitting}
|
||||
@xrdef{Word Splitting-snt}{Section@tie 3.5.7}
|
||||
@xrdef{Arithmetic Expansion-pg}{30}
|
||||
@xrdef{Process Substitution-pg}{30}
|
||||
@xrdef{Filename Expansion-title}{Filename Expansion}
|
||||
@xrdef{Filename Expansion-snt}{Section@tie 3.5.8}
|
||||
@xrdef{Process Substitution-pg}{30}
|
||||
@xrdef{Word Splitting-pg}{30}
|
||||
@xrdef{Filename Expansion-pg}{30}
|
||||
@xrdef{Word Splitting-pg}{31}
|
||||
@xrdef{Filename Expansion-pg}{31}
|
||||
@xrdef{Pattern Matching-title}{Pattern Matching}
|
||||
@xrdef{Pattern Matching-snt}{Section@tie 3.5.8.1}
|
||||
@xrdef{Pattern Matching-pg}{31}
|
||||
@xrdef{Pattern Matching-pg}{32}
|
||||
@xrdef{Quote Removal-title}{Quote Removal}
|
||||
@xrdef{Quote Removal-snt}{Section@tie 3.5.9}
|
||||
@xrdef{Redirections-title}{Redirections}
|
||||
@xrdef{Redirections-snt}{Section@tie 3.6}
|
||||
@xrdef{Quote Removal-pg}{32}
|
||||
@xrdef{Redirections-pg}{32}
|
||||
@xrdef{Quote Removal-pg}{33}
|
||||
@xrdef{Redirections-pg}{33}
|
||||
@xrdef{Executing Commands-title}{Executing Commands}
|
||||
@xrdef{Executing Commands-snt}{Section@tie 3.7}
|
||||
@xrdef{Simple Command Expansion-title}{Simple Command Expansion}
|
||||
@xrdef{Simple Command Expansion-snt}{Section@tie 3.7.1}
|
||||
@xrdef{Executing Commands-pg}{36}
|
||||
@xrdef{Simple Command Expansion-pg}{36}
|
||||
@xrdef{Command Search and Execution-title}{Command Search and Execution}
|
||||
@xrdef{Command Search and Execution-snt}{Section@tie 3.7.2}
|
||||
@xrdef{Executing Commands-pg}{37}
|
||||
@xrdef{Simple Command Expansion-pg}{37}
|
||||
@xrdef{Command Execution Environment-title}{Command Execution Environment}
|
||||
@xrdef{Command Execution Environment-snt}{Section@tie 3.7.3}
|
||||
@xrdef{Command Search and Execution-pg}{37}
|
||||
@xrdef{Command Execution Environment-pg}{37}
|
||||
@xrdef{Command Search and Execution-pg}{38}
|
||||
@xrdef{Command Execution Environment-pg}{38}
|
||||
@xrdef{Environment-title}{Environment}
|
||||
@xrdef{Environment-snt}{Section@tie 3.7.4}
|
||||
@xrdef{Environment-pg}{38}
|
||||
@xrdef{Environment-pg}{39}
|
||||
@xrdef{Exit Status-title}{Exit Status}
|
||||
@xrdef{Exit Status-snt}{Section@tie 3.7.5}
|
||||
@xrdef{Signals-title}{Signals}
|
||||
@xrdef{Signals-snt}{Section@tie 3.7.6}
|
||||
@xrdef{Exit Status-pg}{39}
|
||||
@xrdef{Signals-pg}{39}
|
||||
@xrdef{Exit Status-pg}{40}
|
||||
@xrdef{Signals-pg}{40}
|
||||
@xrdef{Shell Scripts-title}{Shell Scripts}
|
||||
@xrdef{Shell Scripts-snt}{Section@tie 3.8}
|
||||
@xrdef{Shell Scripts-pg}{40}
|
||||
@xrdef{Shell Scripts-pg}{41}
|
||||
@xrdef{Shell Builtin Commands-title}{Shell Builtin Commands}
|
||||
@xrdef{Shell Builtin Commands-snt}{Chapter@tie 4}
|
||||
@xrdef{Bourne Shell Builtins-title}{Bourne Shell Builtins}
|
||||
@@ -272,17 +272,17 @@
|
||||
@xrdef{Bindable Readline Commands-snt}{Section@tie 8.4}
|
||||
@xrdef{Commands For Moving-title}{Commands For Moving}
|
||||
@xrdef{Commands For Moving-snt}{Section@tie 8.4.1}
|
||||
@xrdef{Commands For History-title}{Commands For Manipulating The History}
|
||||
@xrdef{Commands For History-snt}{Section@tie 8.4.2}
|
||||
@xrdef{Bindable Readline Commands-pg}{120}
|
||||
@xrdef{Commands For Moving-pg}{120}
|
||||
@xrdef{Commands For History-title}{Commands For Manipulating The History}
|
||||
@xrdef{Commands For History-snt}{Section@tie 8.4.2}
|
||||
@xrdef{Commands For History-pg}{121}
|
||||
@xrdef{Commands For Text-title}{Commands For Changing Text}
|
||||
@xrdef{Commands For Text-snt}{Section@tie 8.4.3}
|
||||
@xrdef{Commands For Text-pg}{122}
|
||||
@xrdef{Commands For Killing-title}{Killing And Yanking}
|
||||
@xrdef{Commands For Killing-snt}{Section@tie 8.4.4}
|
||||
@xrdef{Commands For Killing-pg}{123}
|
||||
@xrdef{Commands For Killing-pg}{124}
|
||||
@xrdef{Numeric Arguments-title}{Specifying Numeric Arguments}
|
||||
@xrdef{Numeric Arguments-snt}{Section@tie 8.4.5}
|
||||
@xrdef{Commands For Completion-title}{Letting Readline Type For You}
|
||||
@@ -297,88 +297,88 @@
|
||||
@xrdef{Miscellaneous Commands-pg}{127}
|
||||
@xrdef{Readline vi Mode-title}{Readline vi Mode}
|
||||
@xrdef{Readline vi Mode-snt}{Section@tie 8.5}
|
||||
@xrdef{Readline vi Mode-pg}{129}
|
||||
@xrdef{Programmable Completion-title}{Programmable Completion}
|
||||
@xrdef{Programmable Completion-snt}{Section@tie 8.6}
|
||||
@xrdef{Readline vi Mode-pg}{129}
|
||||
@xrdef{Programmable Completion-pg}{130}
|
||||
@xrdef{Programmable Completion Builtins-title}{Programmable Completion Builtins}
|
||||
@xrdef{Programmable Completion Builtins-snt}{Section@tie 8.7}
|
||||
@xrdef{Programmable Completion Builtins-pg}{132}
|
||||
@xrdef{A Programmable Completion Example-title}{A Programmable Completion Example}
|
||||
@xrdef{A Programmable Completion Example-snt}{Section@tie 8.8}
|
||||
@xrdef{A Programmable Completion Example-pg}{135}
|
||||
@xrdef{A Programmable Completion Example-pg}{136}
|
||||
@xrdef{Using History Interactively-title}{Using History Interactively}
|
||||
@xrdef{Using History Interactively-snt}{Chapter@tie 9}
|
||||
@xrdef{Bash History Facilities-title}{Bash History Facilities}
|
||||
@xrdef{Bash History Facilities-snt}{Section@tie 9.1}
|
||||
@xrdef{Bash History Builtins-title}{Bash History Builtins}
|
||||
@xrdef{Bash History Builtins-snt}{Section@tie 9.2}
|
||||
@xrdef{Using History Interactively-pg}{138}
|
||||
@xrdef{Bash History Facilities-pg}{138}
|
||||
@xrdef{Bash History Builtins-pg}{138}
|
||||
@xrdef{Using History Interactively-pg}{139}
|
||||
@xrdef{Bash History Facilities-pg}{139}
|
||||
@xrdef{Bash History Builtins-pg}{139}
|
||||
@xrdef{History Interaction-title}{History Expansion}
|
||||
@xrdef{History Interaction-snt}{Section@tie 9.3}
|
||||
@xrdef{History Interaction-pg}{140}
|
||||
@xrdef{History Interaction-pg}{141}
|
||||
@xrdef{Event Designators-title}{Event Designators}
|
||||
@xrdef{Event Designators-snt}{Section@tie 9.3.1}
|
||||
@xrdef{Word Designators-title}{Word Designators}
|
||||
@xrdef{Word Designators-snt}{Section@tie 9.3.2}
|
||||
@xrdef{Event Designators-pg}{141}
|
||||
@xrdef{Word Designators-pg}{141}
|
||||
@xrdef{Event Designators-pg}{142}
|
||||
@xrdef{Word Designators-pg}{142}
|
||||
@xrdef{Modifiers-title}{Modifiers}
|
||||
@xrdef{Modifiers-snt}{Section@tie 9.3.3}
|
||||
@xrdef{Modifiers-pg}{142}
|
||||
@xrdef{Modifiers-pg}{143}
|
||||
@xrdef{Installing Bash-title}{Installing Bash}
|
||||
@xrdef{Installing Bash-snt}{Chapter@tie 10}
|
||||
@xrdef{Basic Installation-title}{Basic Installation}
|
||||
@xrdef{Basic Installation-snt}{Section@tie 10.1}
|
||||
@xrdef{Compilers and Options-title}{Compilers and Options}
|
||||
@xrdef{Compilers and Options-snt}{Section@tie 10.2}
|
||||
@xrdef{Installing Bash-pg}{143}
|
||||
@xrdef{Basic Installation-pg}{143}
|
||||
@xrdef{Installing Bash-pg}{144}
|
||||
@xrdef{Basic Installation-pg}{144}
|
||||
@xrdef{Compiling For Multiple Architectures-title}{Compiling For Multiple Architectures}
|
||||
@xrdef{Compiling For Multiple Architectures-snt}{Section@tie 10.3}
|
||||
@xrdef{Installation Names-title}{Installation Names}
|
||||
@xrdef{Installation Names-snt}{Section@tie 10.4}
|
||||
@xrdef{Specifying the System Type-title}{Specifying the System Type}
|
||||
@xrdef{Specifying the System Type-snt}{Section@tie 10.5}
|
||||
@xrdef{Compilers and Options-pg}{144}
|
||||
@xrdef{Compiling For Multiple Architectures-pg}{144}
|
||||
@xrdef{Installation Names-pg}{144}
|
||||
@xrdef{Specifying the System Type-pg}{144}
|
||||
@xrdef{Compilers and Options-pg}{145}
|
||||
@xrdef{Compiling For Multiple Architectures-pg}{145}
|
||||
@xrdef{Installation Names-pg}{145}
|
||||
@xrdef{Specifying the System Type-pg}{145}
|
||||
@xrdef{Sharing Defaults-title}{Sharing Defaults}
|
||||
@xrdef{Sharing Defaults-snt}{Section@tie 10.6}
|
||||
@xrdef{Operation Controls-title}{Operation Controls}
|
||||
@xrdef{Operation Controls-snt}{Section@tie 10.7}
|
||||
@xrdef{Optional Features-title}{Optional Features}
|
||||
@xrdef{Optional Features-snt}{Section@tie 10.8}
|
||||
@xrdef{Sharing Defaults-pg}{145}
|
||||
@xrdef{Operation Controls-pg}{145}
|
||||
@xrdef{Optional Features-pg}{145}
|
||||
@xrdef{Sharing Defaults-pg}{146}
|
||||
@xrdef{Operation Controls-pg}{146}
|
||||
@xrdef{Optional Features-pg}{146}
|
||||
@xrdef{Reporting Bugs-title}{Reporting Bugs}
|
||||
@xrdef{Reporting Bugs-snt}{Appendix@tie @char65{}}
|
||||
@xrdef{Reporting Bugs-pg}{151}
|
||||
@xrdef{Reporting Bugs-pg}{152}
|
||||
@xrdef{Major Differences From The Bourne Shell-title}{Major Differences From The Bourne Shell}
|
||||
@xrdef{Major Differences From The Bourne Shell-snt}{Appendix@tie @char66{}}
|
||||
@xrdef{Major Differences From The Bourne Shell-pg}{152}
|
||||
@xrdef{Major Differences From The Bourne Shell-pg}{153}
|
||||
@xrdef{GNU Free Documentation License-title}{GNU Free Documentation License}
|
||||
@xrdef{GNU Free Documentation License-snt}{Appendix@tie @char67{}}
|
||||
@xrdef{GNU Free Documentation License-pg}{158}
|
||||
@xrdef{GNU Free Documentation License-pg}{159}
|
||||
@xrdef{Indexes-title}{Indexes}
|
||||
@xrdef{Indexes-snt}{Appendix@tie @char68{}}
|
||||
@xrdef{Builtin Index-title}{Index of Shell Builtin Commands}
|
||||
@xrdef{Builtin Index-snt}{Section@tie @char68.1}
|
||||
@xrdef{Indexes-pg}{166}
|
||||
@xrdef{Builtin Index-pg}{166}
|
||||
@xrdef{Indexes-pg}{167}
|
||||
@xrdef{Builtin Index-pg}{167}
|
||||
@xrdef{Reserved Word Index-title}{Index of Shell Reserved Words}
|
||||
@xrdef{Reserved Word Index-snt}{Section@tie @char68.2}
|
||||
@xrdef{Variable Index-title}{Parameter and Variable Index}
|
||||
@xrdef{Variable Index-snt}{Section@tie @char68.3}
|
||||
@xrdef{Reserved Word Index-pg}{167}
|
||||
@xrdef{Variable Index-pg}{168}
|
||||
@xrdef{Reserved Word Index-pg}{168}
|
||||
@xrdef{Variable Index-pg}{169}
|
||||
@xrdef{Function Index-title}{Function Index}
|
||||
@xrdef{Function Index-snt}{Section@tie @char68.4}
|
||||
@xrdef{Function Index-pg}{170}
|
||||
@xrdef{Function Index-pg}{171}
|
||||
@xrdef{Concept Index-title}{Concept Index}
|
||||
@xrdef{Concept Index-snt}{Section@tie @char68.5}
|
||||
@xrdef{Concept Index-pg}{172}
|
||||
@xrdef{Concept Index-pg}{173}
|
||||
|
||||
+3
-3
@@ -44,7 +44,7 @@
|
||||
\entry{shopt}{64}{\code {shopt}}
|
||||
\entry{dirs}{94}{\code {dirs}}
|
||||
\entry{popd}{94}{\code {popd}}
|
||||
\entry{pushd}{94}{\code {pushd}}
|
||||
\entry{pushd}{95}{\code {pushd}}
|
||||
\entry{bg}{102}{\code {bg}}
|
||||
\entry{fg}{102}{\code {fg}}
|
||||
\entry{jobs}{102}{\code {jobs}}
|
||||
@@ -55,5 +55,5 @@
|
||||
\entry{compgen}{132}{\code {compgen}}
|
||||
\entry{complete}{132}{\code {complete}}
|
||||
\entry{compopt}{135}{\code {compopt}}
|
||||
\entry{fc}{138}{\code {fc}}
|
||||
\entry{history}{139}{\code {history}}
|
||||
\entry{fc}{139}{\code {fc}}
|
||||
\entry{history}{140}{\code {history}}
|
||||
|
||||
+3
-3
@@ -31,14 +31,14 @@
|
||||
\entry {\code {exit}}{44}
|
||||
\entry {\code {export}}{44}
|
||||
\initial {F}
|
||||
\entry {\code {fc}}{138}
|
||||
\entry {\code {fc}}{139}
|
||||
\entry {\code {fg}}{102}
|
||||
\initial {G}
|
||||
\entry {\code {getopts}}{44}
|
||||
\initial {H}
|
||||
\entry {\code {hash}}{45}
|
||||
\entry {\code {help}}{54}
|
||||
\entry {\code {history}}{139}
|
||||
\entry {\code {history}}{140}
|
||||
\initial {J}
|
||||
\entry {\code {jobs}}{102}
|
||||
\initial {K}
|
||||
@@ -52,7 +52,7 @@
|
||||
\initial {P}
|
||||
\entry {\code {popd}}{94}
|
||||
\entry {\code {printf}}{55}
|
||||
\entry {\code {pushd}}{94}
|
||||
\entry {\code {pushd}}{95}
|
||||
\entry {\code {pwd}}{45}
|
||||
\initial {R}
|
||||
\entry {\code {read}}{56}
|
||||
|
||||
+39
-39
@@ -39,38 +39,38 @@
|
||||
\entry{coprocess}{15}{coprocess}
|
||||
\entry{shell function}{17}{shell function}
|
||||
\entry{functions, shell}{17}{functions, shell}
|
||||
\entry{parameters}{18}{parameters}
|
||||
\entry{variable, shell}{18}{variable, shell}
|
||||
\entry{shell variable}{18}{shell variable}
|
||||
\entry{parameters, positional}{19}{parameters, positional}
|
||||
\entry{parameters}{19}{parameters}
|
||||
\entry{variable, shell}{19}{variable, shell}
|
||||
\entry{shell variable}{19}{shell variable}
|
||||
\entry{parameters, positional}{20}{parameters, positional}
|
||||
\entry{parameters, special}{20}{parameters, special}
|
||||
\entry{expansion}{21}{expansion}
|
||||
\entry{brace expansion}{21}{brace expansion}
|
||||
\entry{expansion, brace}{21}{expansion, brace}
|
||||
\entry{tilde expansion}{22}{tilde expansion}
|
||||
\entry{expansion, tilde}{22}{expansion, tilde}
|
||||
\entry{parameter expansion}{23}{parameter expansion}
|
||||
\entry{expansion, parameter}{23}{expansion, parameter}
|
||||
\entry{brace expansion}{22}{brace expansion}
|
||||
\entry{expansion, brace}{22}{expansion, brace}
|
||||
\entry{tilde expansion}{23}{tilde expansion}
|
||||
\entry{expansion, tilde}{23}{expansion, tilde}
|
||||
\entry{parameter expansion}{24}{parameter expansion}
|
||||
\entry{expansion, parameter}{24}{expansion, parameter}
|
||||
\entry{command substitution}{29}{command substitution}
|
||||
\entry{expansion, arithmetic}{29}{expansion, arithmetic}
|
||||
\entry{arithmetic expansion}{29}{arithmetic expansion}
|
||||
\entry{expansion, arithmetic}{30}{expansion, arithmetic}
|
||||
\entry{arithmetic expansion}{30}{arithmetic expansion}
|
||||
\entry{process substitution}{30}{process substitution}
|
||||
\entry{word splitting}{30}{word splitting}
|
||||
\entry{expansion, filename}{30}{expansion, filename}
|
||||
\entry{expansion, pathname}{30}{expansion, pathname}
|
||||
\entry{filename expansion}{30}{filename expansion}
|
||||
\entry{pathname expansion}{30}{pathname expansion}
|
||||
\entry{pattern matching}{31}{pattern matching}
|
||||
\entry{matching, pattern}{31}{matching, pattern}
|
||||
\entry{redirection}{32}{redirection}
|
||||
\entry{command expansion}{36}{command expansion}
|
||||
\entry{command execution}{37}{command execution}
|
||||
\entry{command search}{37}{command search}
|
||||
\entry{execution environment}{37}{execution environment}
|
||||
\entry{environment}{38}{environment}
|
||||
\entry{exit status}{39}{exit status}
|
||||
\entry{signal handling}{39}{signal handling}
|
||||
\entry{shell script}{40}{shell script}
|
||||
\entry{word splitting}{31}{word splitting}
|
||||
\entry{expansion, filename}{31}{expansion, filename}
|
||||
\entry{expansion, pathname}{31}{expansion, pathname}
|
||||
\entry{filename expansion}{31}{filename expansion}
|
||||
\entry{pathname expansion}{31}{pathname expansion}
|
||||
\entry{pattern matching}{32}{pattern matching}
|
||||
\entry{matching, pattern}{32}{matching, pattern}
|
||||
\entry{redirection}{33}{redirection}
|
||||
\entry{command expansion}{37}{command expansion}
|
||||
\entry{command execution}{38}{command execution}
|
||||
\entry{command search}{38}{command search}
|
||||
\entry{execution environment}{38}{execution environment}
|
||||
\entry{environment}{39}{environment}
|
||||
\entry{exit status}{40}{exit status}
|
||||
\entry{signal handling}{40}{signal handling}
|
||||
\entry{shell script}{41}{shell script}
|
||||
\entry{special builtin}{70}{special builtin}
|
||||
\entry{login shell}{85}{login shell}
|
||||
\entry{interactive shell}{85}{interactive shell}
|
||||
@@ -105,14 +105,14 @@
|
||||
\entry{variables, readline}{109}{variables, readline}
|
||||
\entry{programmable completion}{130}{programmable completion}
|
||||
\entry{completion builtins}{132}{completion builtins}
|
||||
\entry{History, how to use}{137}{History, how to use}
|
||||
\entry{command history}{138}{command history}
|
||||
\entry{history list}{138}{history list}
|
||||
\entry{history builtins}{138}{history builtins}
|
||||
\entry{history expansion}{140}{history expansion}
|
||||
\entry{event designators}{141}{event designators}
|
||||
\entry{history events}{141}{history events}
|
||||
\entry{installation}{143}{installation}
|
||||
\entry{configuration}{143}{configuration}
|
||||
\entry{Bash installation}{143}{Bash installation}
|
||||
\entry{Bash configuration}{143}{Bash configuration}
|
||||
\entry{History, how to use}{138}{History, how to use}
|
||||
\entry{command history}{139}{command history}
|
||||
\entry{history list}{139}{history list}
|
||||
\entry{history builtins}{139}{history builtins}
|
||||
\entry{history expansion}{141}{history expansion}
|
||||
\entry{event designators}{142}{event designators}
|
||||
\entry{history events}{142}{history events}
|
||||
\entry{installation}{144}{installation}
|
||||
\entry{configuration}{144}{configuration}
|
||||
\entry{Bash installation}{144}{Bash installation}
|
||||
\entry{Bash configuration}{144}{Bash configuration}
|
||||
|
||||
+39
-39
@@ -1,22 +1,22 @@
|
||||
\initial {A}
|
||||
\entry {alias expansion}{91}
|
||||
\entry {arithmetic evaluation}{90}
|
||||
\entry {arithmetic expansion}{29}
|
||||
\entry {arithmetic expansion}{30}
|
||||
\entry {arithmetic, shell}{90}
|
||||
\entry {arrays}{92}
|
||||
\initial {B}
|
||||
\entry {background}{101}
|
||||
\entry {Bash configuration}{143}
|
||||
\entry {Bash installation}{143}
|
||||
\entry {Bash configuration}{144}
|
||||
\entry {Bash installation}{144}
|
||||
\entry {Bourne shell}{5}
|
||||
\entry {brace expansion}{21}
|
||||
\entry {brace expansion}{22}
|
||||
\entry {builtin}{3}
|
||||
\initial {C}
|
||||
\entry {command editing}{106}
|
||||
\entry {command execution}{37}
|
||||
\entry {command expansion}{36}
|
||||
\entry {command history}{138}
|
||||
\entry {command search}{37}
|
||||
\entry {command execution}{38}
|
||||
\entry {command expansion}{37}
|
||||
\entry {command history}{139}
|
||||
\entry {command search}{38}
|
||||
\entry {command substitution}{29}
|
||||
\entry {command timing}{8}
|
||||
\entry {commands, compound}{9}
|
||||
@@ -29,43 +29,43 @@
|
||||
\entry {commands, simple}{8}
|
||||
\entry {comments, shell}{7}
|
||||
\entry {completion builtins}{132}
|
||||
\entry {configuration}{143}
|
||||
\entry {configuration}{144}
|
||||
\entry {control operator}{3}
|
||||
\entry {coprocess}{15}
|
||||
\initial {D}
|
||||
\entry {directory stack}{94}
|
||||
\initial {E}
|
||||
\entry {editing command lines}{106}
|
||||
\entry {environment}{38}
|
||||
\entry {environment}{39}
|
||||
\entry {evaluation, arithmetic}{90}
|
||||
\entry {event designators}{141}
|
||||
\entry {execution environment}{37}
|
||||
\entry {exit status}{3, 39}
|
||||
\entry {event designators}{142}
|
||||
\entry {execution environment}{38}
|
||||
\entry {exit status}{3, 40}
|
||||
\entry {expansion}{21}
|
||||
\entry {expansion, arithmetic}{29}
|
||||
\entry {expansion, brace}{21}
|
||||
\entry {expansion, filename}{30}
|
||||
\entry {expansion, parameter}{23}
|
||||
\entry {expansion, pathname}{30}
|
||||
\entry {expansion, tilde}{22}
|
||||
\entry {expansion, arithmetic}{30}
|
||||
\entry {expansion, brace}{22}
|
||||
\entry {expansion, filename}{31}
|
||||
\entry {expansion, parameter}{24}
|
||||
\entry {expansion, pathname}{31}
|
||||
\entry {expansion, tilde}{23}
|
||||
\entry {expressions, arithmetic}{90}
|
||||
\entry {expressions, conditional}{88}
|
||||
\initial {F}
|
||||
\entry {field}{3}
|
||||
\entry {filename}{3}
|
||||
\entry {filename expansion}{30}
|
||||
\entry {filename expansion}{31}
|
||||
\entry {foreground}{101}
|
||||
\entry {functions, shell}{17}
|
||||
\initial {H}
|
||||
\entry {history builtins}{138}
|
||||
\entry {history events}{141}
|
||||
\entry {history expansion}{140}
|
||||
\entry {history list}{138}
|
||||
\entry {History, how to use}{137}
|
||||
\entry {history builtins}{139}
|
||||
\entry {history events}{142}
|
||||
\entry {history expansion}{141}
|
||||
\entry {history list}{139}
|
||||
\entry {History, how to use}{138}
|
||||
\initial {I}
|
||||
\entry {identifier}{3}
|
||||
\entry {initialization file, readline}{108}
|
||||
\entry {installation}{143}
|
||||
\entry {installation}{144}
|
||||
\entry {interaction, readline}{105}
|
||||
\entry {interactive shell}{85, 86}
|
||||
\entry {internationalization}{7}
|
||||
@@ -79,7 +79,7 @@
|
||||
\entry {localization}{7}
|
||||
\entry {login shell}{85}
|
||||
\initial {M}
|
||||
\entry {matching, pattern}{31}
|
||||
\entry {matching, pattern}{32}
|
||||
\entry {metacharacter}{3}
|
||||
\initial {N}
|
||||
\entry {name}{3}
|
||||
@@ -88,12 +88,12 @@
|
||||
\initial {O}
|
||||
\entry {operator, shell}{3}
|
||||
\initial {P}
|
||||
\entry {parameter expansion}{23}
|
||||
\entry {parameters}{18}
|
||||
\entry {parameters, positional}{19}
|
||||
\entry {parameter expansion}{24}
|
||||
\entry {parameters}{19}
|
||||
\entry {parameters, positional}{20}
|
||||
\entry {parameters, special}{20}
|
||||
\entry {pathname expansion}{30}
|
||||
\entry {pattern matching}{31}
|
||||
\entry {pathname expansion}{31}
|
||||
\entry {pattern matching}{32}
|
||||
\entry {pipeline}{8}
|
||||
\entry {POSIX}{3}
|
||||
\entry {POSIX Mode}{97}
|
||||
@@ -107,30 +107,30 @@
|
||||
\entry {quoting, ANSI}{6}
|
||||
\initial {R}
|
||||
\entry {Readline, how to use}{104}
|
||||
\entry {redirection}{32}
|
||||
\entry {redirection}{33}
|
||||
\entry {reserved word}{3}
|
||||
\entry {restricted shell}{96}
|
||||
\entry {return status}{4}
|
||||
\initial {S}
|
||||
\entry {shell arithmetic}{90}
|
||||
\entry {shell function}{17}
|
||||
\entry {shell script}{40}
|
||||
\entry {shell variable}{18}
|
||||
\entry {shell script}{41}
|
||||
\entry {shell variable}{19}
|
||||
\entry {shell, interactive}{86}
|
||||
\entry {signal}{4}
|
||||
\entry {signal handling}{39}
|
||||
\entry {signal handling}{40}
|
||||
\entry {special builtin}{4, 70}
|
||||
\entry {startup files}{85}
|
||||
\entry {suspending jobs}{101}
|
||||
\initial {T}
|
||||
\entry {tilde expansion}{22}
|
||||
\entry {tilde expansion}{23}
|
||||
\entry {token}{4}
|
||||
\entry {translation, native languages}{7}
|
||||
\initial {V}
|
||||
\entry {variable, shell}{18}
|
||||
\entry {variable, shell}{19}
|
||||
\entry {variables, readline}{109}
|
||||
\initial {W}
|
||||
\entry {word}{4}
|
||||
\entry {word splitting}{30}
|
||||
\entry {word splitting}{31}
|
||||
\initial {Y}
|
||||
\entry {yanking text}{107}
|
||||
|
||||
Binary file not shown.
+22
-20
@@ -6,8 +6,10 @@
|
||||
\entry{backward-word (M-b)}{120}{\code {backward-word (M-b)}}
|
||||
\entry{shell-forward-word ()}{120}{\code {shell-forward-word ()}}
|
||||
\entry{shell-backward-word ()}{120}{\code {shell-backward-word ()}}
|
||||
\entry{clear-screen (C-l)}{120}{\code {clear-screen (C-l)}}
|
||||
\entry{redraw-current-line ()}{120}{\code {redraw-current-line ()}}
|
||||
\entry{previous-screen-line ()}{120}{\code {previous-screen-line ()}}
|
||||
\entry{next-screen-line ()}{121}{\code {next-screen-line ()}}
|
||||
\entry{clear-screen (C-l)}{121}{\code {clear-screen (C-l)}}
|
||||
\entry{redraw-current-line ()}{121}{\code {redraw-current-line ()}}
|
||||
\entry{accept-line (Newline or Return)}{121}{\code {accept-line (Newline or Return)}}
|
||||
\entry{previous-history (C-p)}{121}{\code {previous-history (C-p)}}
|
||||
\entry{next-history (C-n)}{121}{\code {next-history (C-n)}}
|
||||
@@ -18,16 +20,16 @@
|
||||
\entry{non-incremental-reverse-search-history (M-p)}{121}{\code {non-incremental-reverse-search-history (M-p)}}
|
||||
\entry{non-incremental-forward-search-history (M-n)}{121}{\code {non-incremental-forward-search-history (M-n)}}
|
||||
\entry{history-search-forward ()}{121}{\code {history-search-forward ()}}
|
||||
\entry{history-search-backward ()}{121}{\code {history-search-backward ()}}
|
||||
\entry{history-substring-search-forward ()}{121}{\code {history-substring-search-forward ()}}
|
||||
\entry{history-search-backward ()}{122}{\code {history-search-backward ()}}
|
||||
\entry{history-substring-search-forward ()}{122}{\code {history-substring-search-forward ()}}
|
||||
\entry{history-substring-search-backward ()}{122}{\code {history-substring-search-backward ()}}
|
||||
\entry{yank-nth-arg (M-C-y)}{122}{\code {yank-nth-arg (M-C-y)}}
|
||||
\entry{yank-last-arg (M-. or M-_)}{122}{\code {yank-last-arg (M-. or M-_)}}
|
||||
\entry{end-of-file (usually C-d)}{122}{\code {\i {end-of-file} (usually C-d)}}
|
||||
\entry{delete-char (C-d)}{122}{\code {delete-char (C-d)}}
|
||||
\entry{backward-delete-char (Rubout)}{122}{\code {backward-delete-char (Rubout)}}
|
||||
\entry{forward-backward-delete-char ()}{122}{\code {forward-backward-delete-char ()}}
|
||||
\entry{quoted-insert (C-q or C-v)}{122}{\code {quoted-insert (C-q or C-v)}}
|
||||
\entry{backward-delete-char (Rubout)}{123}{\code {backward-delete-char (Rubout)}}
|
||||
\entry{forward-backward-delete-char ()}{123}{\code {forward-backward-delete-char ()}}
|
||||
\entry{quoted-insert (C-q or C-v)}{123}{\code {quoted-insert (C-q or C-v)}}
|
||||
\entry{self-insert (a, b, A, 1, !, ...{})}{123}{\code {self-insert (a, b, A, 1, !, \dots {})}}
|
||||
\entry{bracketed-paste-begin ()}{123}{\code {bracketed-paste-begin ()}}
|
||||
\entry{transpose-chars (C-t)}{123}{\code {transpose-chars (C-t)}}
|
||||
@@ -36,8 +38,8 @@
|
||||
\entry{downcase-word (M-l)}{123}{\code {downcase-word (M-l)}}
|
||||
\entry{capitalize-word (M-c)}{123}{\code {capitalize-word (M-c)}}
|
||||
\entry{overwrite-mode ()}{123}{\code {overwrite-mode ()}}
|
||||
\entry{kill-line (C-k)}{123}{\code {kill-line (C-k)}}
|
||||
\entry{backward-kill-line (C-x Rubout)}{123}{\code {backward-kill-line (C-x Rubout)}}
|
||||
\entry{kill-line (C-k)}{124}{\code {kill-line (C-k)}}
|
||||
\entry{backward-kill-line (C-x Rubout)}{124}{\code {backward-kill-line (C-x Rubout)}}
|
||||
\entry{unix-line-discard (C-u)}{124}{\code {unix-line-discard (C-u)}}
|
||||
\entry{kill-whole-line ()}{124}{\code {kill-whole-line ()}}
|
||||
\entry{kill-word (M-d)}{124}{\code {kill-word (M-d)}}
|
||||
@@ -50,16 +52,16 @@
|
||||
\entry{kill-region ()}{124}{\code {kill-region ()}}
|
||||
\entry{copy-region-as-kill ()}{124}{\code {copy-region-as-kill ()}}
|
||||
\entry{copy-backward-word ()}{124}{\code {copy-backward-word ()}}
|
||||
\entry{copy-forward-word ()}{124}{\code {copy-forward-word ()}}
|
||||
\entry{yank (C-y)}{124}{\code {yank (C-y)}}
|
||||
\entry{yank-pop (M-y)}{124}{\code {yank-pop (M-y)}}
|
||||
\entry{copy-forward-word ()}{125}{\code {copy-forward-word ()}}
|
||||
\entry{yank (C-y)}{125}{\code {yank (C-y)}}
|
||||
\entry{yank-pop (M-y)}{125}{\code {yank-pop (M-y)}}
|
||||
\entry{digit-argument (M-0, M-1, ...{} M--)}{125}{\code {digit-argument (\kbd {M-0}, \kbd {M-1}, \dots {} \kbd {M--})}}
|
||||
\entry{universal-argument ()}{125}{\code {universal-argument ()}}
|
||||
\entry{complete (TAB)}{125}{\code {complete (\key {TAB})}}
|
||||
\entry{possible-completions (M-?)}{125}{\code {possible-completions (M-?)}}
|
||||
\entry{insert-completions (M-*)}{125}{\code {insert-completions (M-*)}}
|
||||
\entry{menu-complete ()}{125}{\code {menu-complete ()}}
|
||||
\entry{menu-complete-backward ()}{125}{\code {menu-complete-backward ()}}
|
||||
\entry{menu-complete-backward ()}{126}{\code {menu-complete-backward ()}}
|
||||
\entry{delete-char-or-list ()}{126}{\code {delete-char-or-list ()}}
|
||||
\entry{complete-filename (M-/)}{126}{\code {complete-filename (M-/)}}
|
||||
\entry{possible-filename-completions (C-x /)}{126}{\code {possible-filename-completions (C-x /)}}
|
||||
@@ -72,8 +74,8 @@
|
||||
\entry{complete-command (M-!)}{126}{\code {complete-command (M-!)}}
|
||||
\entry{possible-command-completions (C-x !)}{126}{\code {possible-command-completions (C-x !)}}
|
||||
\entry{dynamic-complete-history (M-TAB)}{126}{\code {dynamic-complete-history (M-\key {TAB})}}
|
||||
\entry{dabbrev-expand ()}{126}{\code {dabbrev-expand ()}}
|
||||
\entry{complete-into-braces (M-{\indexlbrace })}{126}{\code {complete-into-braces (M-{\tt \char 123})}}
|
||||
\entry{dabbrev-expand ()}{127}{\code {dabbrev-expand ()}}
|
||||
\entry{complete-into-braces (M-{\indexlbrace })}{127}{\code {complete-into-braces (M-{\tt \char 123})}}
|
||||
\entry{start-kbd-macro (C-x ()}{127}{\code {start-kbd-macro (C-x ()}}
|
||||
\entry{end-kbd-macro (C-x ))}{127}{\code {end-kbd-macro (C-x ))}}
|
||||
\entry{call-last-kbd-macro (C-x e)}{127}{\code {call-last-kbd-macro (C-x e)}}
|
||||
@@ -85,17 +87,17 @@
|
||||
\entry{undo (C-_ or C-x C-u)}{127}{\code {undo (C-_ or C-x C-u)}}
|
||||
\entry{revert-line (M-r)}{127}{\code {revert-line (M-r)}}
|
||||
\entry{tilde-expand (M-&)}{127}{\code {tilde-expand (M-&)}}
|
||||
\entry{set-mark (C-@)}{127}{\code {set-mark (C-@)}}
|
||||
\entry{exchange-point-and-mark (C-x C-x)}{127}{\code {exchange-point-and-mark (C-x C-x)}}
|
||||
\entry{character-search (C-])}{127}{\code {character-search (C-])}}
|
||||
\entry{set-mark (C-@)}{128}{\code {set-mark (C-@)}}
|
||||
\entry{exchange-point-and-mark (C-x C-x)}{128}{\code {exchange-point-and-mark (C-x C-x)}}
|
||||
\entry{character-search (C-])}{128}{\code {character-search (C-])}}
|
||||
\entry{character-search-backward (M-C-])}{128}{\code {character-search-backward (M-C-])}}
|
||||
\entry{skip-csi-sequence ()}{128}{\code {skip-csi-sequence ()}}
|
||||
\entry{insert-comment (M-#)}{128}{\code {insert-comment (M-#)}}
|
||||
\entry{dump-functions ()}{128}{\code {dump-functions ()}}
|
||||
\entry{dump-variables ()}{128}{\code {dump-variables ()}}
|
||||
\entry{dump-macros ()}{128}{\code {dump-macros ()}}
|
||||
\entry{glob-complete-word (M-g)}{128}{\code {glob-complete-word (M-g)}}
|
||||
\entry{glob-expand-word (C-x *)}{128}{\code {glob-expand-word (C-x *)}}
|
||||
\entry{glob-complete-word (M-g)}{129}{\code {glob-complete-word (M-g)}}
|
||||
\entry{glob-expand-word (C-x *)}{129}{\code {glob-expand-word (C-x *)}}
|
||||
\entry{glob-list-expansions (C-x g)}{129}{\code {glob-list-expansions (C-x g)}}
|
||||
\entry{display-shell-version (C-x C-v)}{129}{\code {display-shell-version (C-x C-v)}}
|
||||
\entry{shell-expand-line (M-C-e)}{129}{\code {shell-expand-line (M-C-e)}}
|
||||
|
||||
+22
-20
@@ -4,8 +4,8 @@
|
||||
\entry {\code {alias-expand-line ()}}{129}
|
||||
\initial {B}
|
||||
\entry {\code {backward-char (C-b)}}{120}
|
||||
\entry {\code {backward-delete-char (Rubout)}}{122}
|
||||
\entry {\code {backward-kill-line (C-x Rubout)}}{123}
|
||||
\entry {\code {backward-delete-char (Rubout)}}{123}
|
||||
\entry {\code {backward-kill-line (C-x Rubout)}}{124}
|
||||
\entry {\code {backward-kill-word (M-\key {DEL})}}{124}
|
||||
\entry {\code {backward-word (M-b)}}{120}
|
||||
\entry {\code {beginning-of-history (M-<)}}{121}
|
||||
@@ -14,21 +14,21 @@
|
||||
\initial {C}
|
||||
\entry {\code {call-last-kbd-macro (C-x e)}}{127}
|
||||
\entry {\code {capitalize-word (M-c)}}{123}
|
||||
\entry {\code {character-search (C-])}}{127}
|
||||
\entry {\code {character-search (C-])}}{128}
|
||||
\entry {\code {character-search-backward (M-C-])}}{128}
|
||||
\entry {\code {clear-screen (C-l)}}{120}
|
||||
\entry {\code {clear-screen (C-l)}}{121}
|
||||
\entry {\code {complete (\key {TAB})}}{125}
|
||||
\entry {\code {complete-command (M-!)}}{126}
|
||||
\entry {\code {complete-filename (M-/)}}{126}
|
||||
\entry {\code {complete-hostname (M-@)}}{126}
|
||||
\entry {\code {complete-into-braces (M-{\tt \char 123})}}{126}
|
||||
\entry {\code {complete-into-braces (M-{\tt \char 123})}}{127}
|
||||
\entry {\code {complete-username (M-~)}}{126}
|
||||
\entry {\code {complete-variable (M-$)}}{126}
|
||||
\entry {\code {copy-backward-word ()}}{124}
|
||||
\entry {\code {copy-forward-word ()}}{124}
|
||||
\entry {\code {copy-forward-word ()}}{125}
|
||||
\entry {\code {copy-region-as-kill ()}}{124}
|
||||
\initial {D}
|
||||
\entry {\code {dabbrev-expand ()}}{126}
|
||||
\entry {\code {dabbrev-expand ()}}{127}
|
||||
\entry {\code {delete-char (C-d)}}{122}
|
||||
\entry {\code {delete-char-or-list ()}}{126}
|
||||
\entry {\code {delete-horizontal-space ()}}{124}
|
||||
@@ -46,38 +46,39 @@
|
||||
\entry {\code {\i {end-of-file} (usually C-d)}}{122}
|
||||
\entry {\code {end-of-history (M->)}}{121}
|
||||
\entry {\code {end-of-line (C-e)}}{120}
|
||||
\entry {\code {exchange-point-and-mark (C-x C-x)}}{127}
|
||||
\entry {\code {exchange-point-and-mark (C-x C-x)}}{128}
|
||||
\initial {F}
|
||||
\entry {\code {forward-backward-delete-char ()}}{122}
|
||||
\entry {\code {forward-backward-delete-char ()}}{123}
|
||||
\entry {\code {forward-char (C-f)}}{120}
|
||||
\entry {\code {forward-search-history (C-s)}}{121}
|
||||
\entry {\code {forward-word (M-f)}}{120}
|
||||
\initial {G}
|
||||
\entry {\code {glob-complete-word (M-g)}}{128}
|
||||
\entry {\code {glob-expand-word (C-x *)}}{128}
|
||||
\entry {\code {glob-complete-word (M-g)}}{129}
|
||||
\entry {\code {glob-expand-word (C-x *)}}{129}
|
||||
\entry {\code {glob-list-expansions (C-x g)}}{129}
|
||||
\initial {H}
|
||||
\entry {\code {history-and-alias-expand-line ()}}{129}
|
||||
\entry {\code {history-expand-line (M-^)}}{129}
|
||||
\entry {\code {history-search-backward ()}}{121}
|
||||
\entry {\code {history-search-backward ()}}{122}
|
||||
\entry {\code {history-search-forward ()}}{121}
|
||||
\entry {\code {history-substring-search-backward ()}}{122}
|
||||
\entry {\code {history-substring-search-forward ()}}{121}
|
||||
\entry {\code {history-substring-search-forward ()}}{122}
|
||||
\initial {I}
|
||||
\entry {\code {insert-comment (M-#)}}{128}
|
||||
\entry {\code {insert-completions (M-*)}}{125}
|
||||
\entry {\code {insert-last-argument (M-. or M-_)}}{129}
|
||||
\initial {K}
|
||||
\entry {\code {kill-line (C-k)}}{123}
|
||||
\entry {\code {kill-line (C-k)}}{124}
|
||||
\entry {\code {kill-region ()}}{124}
|
||||
\entry {\code {kill-whole-line ()}}{124}
|
||||
\entry {\code {kill-word (M-d)}}{124}
|
||||
\initial {M}
|
||||
\entry {\code {magic-space ()}}{129}
|
||||
\entry {\code {menu-complete ()}}{125}
|
||||
\entry {\code {menu-complete-backward ()}}{125}
|
||||
\entry {\code {menu-complete-backward ()}}{126}
|
||||
\initial {N}
|
||||
\entry {\code {next-history (C-n)}}{121}
|
||||
\entry {\code {next-screen-line ()}}{121}
|
||||
\entry {\code {non-incremental-forward-search-history (M-n)}}{121}
|
||||
\entry {\code {non-incremental-reverse-search-history (M-p)}}{121}
|
||||
\initial {O}
|
||||
@@ -92,17 +93,18 @@
|
||||
\entry {\code {possible-variable-completions (C-x $)}}{126}
|
||||
\entry {\code {prefix-meta (\key {ESC})}}{127}
|
||||
\entry {\code {previous-history (C-p)}}{121}
|
||||
\entry {\code {previous-screen-line ()}}{120}
|
||||
\entry {\code {print-last-kbd-macro ()}}{127}
|
||||
\initial {Q}
|
||||
\entry {\code {quoted-insert (C-q or C-v)}}{122}
|
||||
\entry {\code {quoted-insert (C-q or C-v)}}{123}
|
||||
\initial {R}
|
||||
\entry {\code {re-read-init-file (C-x C-r)}}{127}
|
||||
\entry {\code {redraw-current-line ()}}{120}
|
||||
\entry {\code {redraw-current-line ()}}{121}
|
||||
\entry {\code {reverse-search-history (C-r)}}{121}
|
||||
\entry {\code {revert-line (M-r)}}{127}
|
||||
\initial {S}
|
||||
\entry {\code {self-insert (a, b, A, 1, !, \dots {})}}{123}
|
||||
\entry {\code {set-mark (C-@)}}{127}
|
||||
\entry {\code {set-mark (C-@)}}{128}
|
||||
\entry {\code {shell-backward-kill-word ()}}{124}
|
||||
\entry {\code {shell-backward-word ()}}{120}
|
||||
\entry {\code {shell-expand-line (M-C-e)}}{129}
|
||||
@@ -122,7 +124,7 @@
|
||||
\entry {\code {unix-word-rubout (C-w)}}{124}
|
||||
\entry {\code {upcase-word (M-u)}}{123}
|
||||
\initial {Y}
|
||||
\entry {\code {yank (C-y)}}{124}
|
||||
\entry {\code {yank (C-y)}}{125}
|
||||
\entry {\code {yank-last-arg (M-. or M-_)}}{122}
|
||||
\entry {\code {yank-nth-arg (M-C-y)}}{122}
|
||||
\entry {\code {yank-pop (M-y)}}{124}
|
||||
\entry {\code {yank-pop (M-y)}}{125}
|
||||
|
||||
+91
-13
@@ -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 4.4, 1 February 2017).
|
||||
the Bash shell (version 4.4, 22 March 2017).
|
||||
|
||||
This is Edition 4.4, last updated 1 February 2017,
|
||||
This is Edition 4.4, last updated 22 March 2017,
|
||||
of The GNU Bash Reference Manual,
|
||||
for Bash, Version 4.4.
|
||||
|
||||
@@ -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 4.4, 1 February 2017).
|
||||
the Bash shell (version 4.4, 22 March 2017).
|
||||
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 4.4, last updated 1 February 2017,
|
||||
<p>This is Edition 4.4, last updated 22 March 2017,
|
||||
of <cite>The GNU Bash Reference Manual</cite>,
|
||||
for <code>Bash</code>, Version 4.4.
|
||||
</p>
|
||||
@@ -1865,8 +1865,56 @@ before the <code>return</code>.
|
||||
</p>
|
||||
<p>Variables local to the function may be declared with the
|
||||
<code>local</code> builtin. These variables are visible only to
|
||||
the function and the commands it invokes.
|
||||
the function and the commands it invokes. This is particularly
|
||||
important when a shell function calls other functions.
|
||||
</p>
|
||||
<p>Local variables "shadow" variables with the same name declared at
|
||||
previous scopes. For instance, a local variable declared in a function
|
||||
hides a global variable of the same name: references and assignments
|
||||
refer to the local variable, leaving the global variable unmodified.
|
||||
When the function returns, the global variable is once again visible.
|
||||
</p>
|
||||
<p>The shell uses <var>dynamic scoping</var> to control a variable’s visibility
|
||||
within functions.
|
||||
With dynamic scoping, visible variables and their values
|
||||
are a result of the sequence of function calls that caused execution
|
||||
to reach the current function.
|
||||
The value of a variable that a function sees depends
|
||||
on its value within its caller, if any, whether that caller is
|
||||
the "global" scope or another shell function.
|
||||
This is also the value that a local variable
|
||||
declaration "shadows", and the value that is restored when the function
|
||||
returns.
|
||||
</p>
|
||||
<p>For example, if a variable <var>var</var> is declared as local in function
|
||||
<var>func1</var>, and <var>func1</var> calls another function <var>func2</var>,
|
||||
references to <var>var</var> made from within <var>func2</var> will resolve to the
|
||||
local variable <var>var</var> from <var>func1</var>, shadowing any global variable
|
||||
named <var>var</var>.
|
||||
</p>
|
||||
<p>The following script demonstrates this behavior.
|
||||
When executed, the script displays
|
||||
</p>
|
||||
<div class="example">
|
||||
<pre class="example">In func2, var = func1 local
|
||||
</pre></div>
|
||||
|
||||
<div class="example">
|
||||
<pre class="example">func1()
|
||||
{
|
||||
local var='func1 local'
|
||||
func2
|
||||
}
|
||||
|
||||
func2()
|
||||
{
|
||||
echo "In func2, var = $var"
|
||||
}
|
||||
|
||||
var=global
|
||||
func1
|
||||
</pre></div>
|
||||
|
||||
<p>Function names and definitions may be listed with the
|
||||
<samp>-f</samp> option to the <code>declare</code> (<code>typeset</code>)
|
||||
builtin command (see <a href="#Bash-Builtins">Bash Builtins</a>).
|
||||
@@ -3370,7 +3418,7 @@ natural fashion.
|
||||
</pre></div>
|
||||
|
||||
<p>The <var>word</var> undergoes
|
||||
brace expansion, tilde expansion, parameter and variable expansion,
|
||||
tilde expansion, parameter and variable expansion,
|
||||
command substitution, arithmetic expansion, and quote removal.
|
||||
Pathname expansion and word splitting are not performed.
|
||||
The result is supplied as a single string,
|
||||
@@ -6392,6 +6440,8 @@ sequences that are expanded before <code>PS1</code> is displayed.
|
||||
<a name="index-PS2"></a>
|
||||
</dt>
|
||||
<dd><p>The secondary prompt string. The default value is ‘<samp>> </samp>’.
|
||||
<code>PS2</code> is expanded in the same way as <code>PS1</code> before being
|
||||
displayed.
|
||||
</p>
|
||||
</dd>
|
||||
</dl>
|
||||
@@ -7262,10 +7312,11 @@ and before the command is executed.
|
||||
<dt><code>PS4</code>
|
||||
<a name="index-PS4"></a>
|
||||
</dt>
|
||||
<dd><p>The value is the prompt printed before the command line is echoed
|
||||
when the <samp>-x</samp> option is set (see <a href="#The-Set-Builtin">The Set Builtin</a>).
|
||||
The first character of <code>PS4</code> is replicated multiple times, as
|
||||
necessary, to indicate multiple levels of indirection.
|
||||
<dd><p>The value of this parameter is expanded like <var>PS1</var>
|
||||
and the expanded value is the prompt printed before the command line
|
||||
is echoed when the <samp>-x</samp> option is set (see <a href="#The-Set-Builtin">The Set Builtin</a>).
|
||||
The first character of the expanded value is replicated multiple times,
|
||||
as necessary, to indicate multiple levels of indirection.
|
||||
The default is ‘<samp>+ </samp>’.
|
||||
</p>
|
||||
</dd>
|
||||
@@ -7877,7 +7928,10 @@ signals <code>SIGTTIN</code>, <code>SIGTTOU</code>, and <code>SIGTSTP</code>.
|
||||
</li><li> Bash expands and displays <code>PS1</code> before reading the first line
|
||||
of a command, and expands and displays <code>PS2</code> before reading the
|
||||
second and subsequent lines of a multi-line command.
|
||||
Bash displays <code>PS0</code> after it reads a command but before executing it.
|
||||
Bash expands and displays <code>PS0</code> after it reads a command but before
|
||||
executing it.
|
||||
See <a href="#Controlling-the-Prompt">Controlling the Prompt</a>, for a complete list of prompt
|
||||
string escape sequences.
|
||||
|
||||
</li><li> Bash executes the value of the <code>PROMPT_COMMAND</code> variable as a command
|
||||
before printing the primary prompt, <code>$PS1</code>
|
||||
@@ -8130,6 +8184,8 @@ is equal to, not equal to, less than, less than or equal to,
|
||||
greater than, or greater than or equal to <var>arg2</var>,
|
||||
respectively. <var>Arg1</var> and <var>arg2</var>
|
||||
may be positive or negative integers.
|
||||
When used with the <code>[[</code> command, <var>Arg1</var> and <var>Arg2</var>
|
||||
are evaluated as arithmetic expressions (see <a href="#Shell-Arithmetic">Shell Arithmetic</a>).
|
||||
</p></dd>
|
||||
</dl>
|
||||
|
||||
@@ -8623,7 +8679,8 @@ has a non-null value, then the
|
||||
value is executed just as if it had been typed on the command line.
|
||||
</p>
|
||||
<p>In addition, the following table describes the special characters which
|
||||
can appear in the prompt variables <code>PS1</code> to <code>PS4</code>:
|
||||
can appear in the prompt variables <code>PS0</code>, <code>PS1</code>, <code>PS2</code>, and
|
||||
<code>PS4</code>:
|
||||
</p>
|
||||
<dl compact="compact">
|
||||
<dt><code>\a</code></dt>
|
||||
@@ -10659,6 +10716,25 @@ Words are delimited by non-quoted shell metacharacters.
|
||||
Words are delimited by non-quoted shell metacharacters.
|
||||
</p>
|
||||
</dd>
|
||||
<dt><code>previous-screen-line ()</code>
|
||||
<a name="index-previous_002dscreen_002dline-_0028_0029"></a>
|
||||
</dt>
|
||||
<dd><p>Attempt to move point to the same physical screen column on the previous
|
||||
physical screen line. This will not have the desired effect if the current
|
||||
Readline line does not take up more than one physical line or if point is not
|
||||
greater than the length of the prompt plus the screen width.
|
||||
</p>
|
||||
</dd>
|
||||
<dt><code>next-screen-line ()</code>
|
||||
<a name="index-next_002dscreen_002dline-_0028_0029"></a>
|
||||
</dt>
|
||||
<dd><p>Attempt to move point to the same physical screen column on the next
|
||||
physical screen line. This will not have the desired effect if the current
|
||||
Readline line does not take up more than one physical line or if the length
|
||||
of the current Readline line is not greater than the length of the prompt
|
||||
plus the screen width.
|
||||
</p>
|
||||
</dd>
|
||||
<dt><code>clear-screen (C-l)</code>
|
||||
<a name="index-clear_002dscreen-_0028C_002dl_0029"></a>
|
||||
</dt>
|
||||
@@ -13258,7 +13334,7 @@ If Readline is not enabled, this option has no effect.
|
||||
</dd>
|
||||
<dt><code>--enable-prompt-string-decoding</code></dt>
|
||||
<dd><p>Turn on the interpretation of a number of backslash-escaped characters
|
||||
in the <code>$PS1</code>, <code>$PS2</code>, <code>$PS3</code>, and <code>$PS4</code> prompt
|
||||
in the <code>$PS0</code>, <code>$PS1</code>, <code>$PS2</code>, and <code>$PS4</code> prompt
|
||||
strings. See <a href="#Controlling-the-Prompt">Controlling the Prompt</a>, for a complete list of prompt
|
||||
string escape sequences.
|
||||
</p>
|
||||
@@ -15066,6 +15142,7 @@ Next: <a href="#Concept-Index" accesskey="n" rel="next">Concept Index</a>, Previ
|
||||
<tr><td colspan="4"> <hr></td></tr>
|
||||
<tr><th><a name="Function-Index_fn_letter-N">N</a></th><td></td><td></td></tr>
|
||||
<tr><td></td><td valign="top"><a href="#index-next_002dhistory-_0028C_002dn_0029"><code>next-history (C-n)</code></a>:</td><td> </td><td valign="top"><a href="#Commands-For-History">Commands For History</a></td></tr>
|
||||
<tr><td></td><td valign="top"><a href="#index-next_002dscreen_002dline-_0028_0029"><code>next-screen-line ()</code></a>:</td><td> </td><td valign="top"><a href="#Commands-For-Moving">Commands For Moving</a></td></tr>
|
||||
<tr><td></td><td valign="top"><a href="#index-non_002dincremental_002dforward_002dsearch_002dhistory-_0028M_002dn_0029"><code>non-incremental-forward-search-history (M-n)</code></a>:</td><td> </td><td valign="top"><a href="#Commands-For-History">Commands For History</a></td></tr>
|
||||
<tr><td></td><td valign="top"><a href="#index-non_002dincremental_002dreverse_002dsearch_002dhistory-_0028M_002dp_0029"><code>non-incremental-reverse-search-history (M-p)</code></a>:</td><td> </td><td valign="top"><a href="#Commands-For-History">Commands For History</a></td></tr>
|
||||
<tr><td colspan="4"> <hr></td></tr>
|
||||
@@ -15082,6 +15159,7 @@ Next: <a href="#Concept-Index" accesskey="n" rel="next">Concept Index</a>, Previ
|
||||
<tr><td></td><td valign="top"><a href="#index-possible_002dvariable_002dcompletions-_0028C_002dx-_0024_0029"><code>possible-variable-completions (C-x $)</code></a>:</td><td> </td><td valign="top"><a href="#Commands-For-Completion">Commands For Completion</a></td></tr>
|
||||
<tr><td></td><td valign="top"><a href="#index-prefix_002dmeta-_0028ESC_0029"><code>prefix-meta (<span class="key">ESC</span>)</code></a>:</td><td> </td><td valign="top"><a href="#Miscellaneous-Commands">Miscellaneous Commands</a></td></tr>
|
||||
<tr><td></td><td valign="top"><a href="#index-previous_002dhistory-_0028C_002dp_0029"><code>previous-history (C-p)</code></a>:</td><td> </td><td valign="top"><a href="#Commands-For-History">Commands For History</a></td></tr>
|
||||
<tr><td></td><td valign="top"><a href="#index-previous_002dscreen_002dline-_0028_0029"><code>previous-screen-line ()</code></a>:</td><td> </td><td valign="top"><a href="#Commands-For-Moving">Commands For Moving</a></td></tr>
|
||||
<tr><td></td><td valign="top"><a href="#index-print_002dlast_002dkbd_002dmacro-_0028_0029"><code>print-last-kbd-macro ()</code></a>:</td><td> </td><td valign="top"><a href="#Keyboard-Macros">Keyboard Macros</a></td></tr>
|
||||
<tr><td colspan="4"> <hr></td></tr>
|
||||
<tr><th><a name="Function-Index_fn_letter-Q">Q</a></th><td></td><td></td></tr>
|
||||
|
||||
+227
-165
@@ -2,9 +2,9 @@ This is bashref.info, produced by makeinfo version 6.3 from
|
||||
bashref.texi.
|
||||
|
||||
This text is a brief description of the features that are present in the
|
||||
Bash shell (version 4.4, 1 February 2017).
|
||||
Bash shell (version 4.4, 22 March 2017).
|
||||
|
||||
This is Edition 4.4, last updated 1 February 2017, of 'The GNU Bash
|
||||
This is Edition 4.4, last updated 22 March 2017, of 'The GNU Bash
|
||||
Reference Manual', for 'Bash', Version 4.4.
|
||||
|
||||
Copyright (C) 1988-2017 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 4.4, 1 February 2017). The Bash home page is
|
||||
Bash shell (version 4.4, 22 March 2017). The Bash home page is
|
||||
<http://www.gnu.org/software/bash/>.
|
||||
|
||||
This is Edition 4.4, last updated 1 February 2017, of 'The GNU Bash
|
||||
This is Edition 4.4, last updated 22 March 2017, of 'The GNU Bash
|
||||
Reference Manual', for 'Bash', Version 4.4.
|
||||
|
||||
Bash contains features that appear in other popular shells, and some
|
||||
@@ -1210,7 +1210,47 @@ last command executed before the 'return'.
|
||||
|
||||
Variables local to the function may be declared with the 'local'
|
||||
builtin. These variables are visible only to the function and the
|
||||
commands it invokes.
|
||||
commands it invokes. This is particularly important when a shell
|
||||
function calls other functions.
|
||||
|
||||
Local variables "shadow" variables with the same name declared at
|
||||
previous scopes. For instance, a local variable declared in a function
|
||||
hides a global variable of the same name: references and assignments
|
||||
refer to the local variable, leaving the global variable unmodified.
|
||||
When the function returns, the global variable is once again visible.
|
||||
|
||||
The shell uses DYNAMIC SCOPING to control a variable's visibility
|
||||
within functions. With dynamic scoping, visible variables and their
|
||||
values are a result of the sequence of function calls that caused
|
||||
execution to reach the current function. The value of a variable that a
|
||||
function sees depends on its value within its caller, if any, whether
|
||||
that caller is the "global" scope or another shell function. This is
|
||||
also the value that a local variable declaration "shadows", and the
|
||||
value that is restored when the function returns.
|
||||
|
||||
For example, if a variable VAR is declared as local in function
|
||||
FUNC1, and FUNC1 calls another function FUNC2, references to VAR made
|
||||
from within FUNC2 will resolve to the local variable VAR from FUNC1,
|
||||
shadowing any global variable named VAR.
|
||||
|
||||
The following script demonstrates this behavior. When executed, the
|
||||
script displays
|
||||
|
||||
In func2, var = func1 local
|
||||
|
||||
func1()
|
||||
{
|
||||
local var='func1 local'
|
||||
func2
|
||||
}
|
||||
|
||||
func2()
|
||||
{
|
||||
echo "In func2, var = $var"
|
||||
}
|
||||
|
||||
var=global
|
||||
func1
|
||||
|
||||
Function names and definitions may be listed with the '-f' option to
|
||||
the 'declare' ('typeset') builtin command (*note Bash Builtins::). The
|
||||
@@ -2354,12 +2394,11 @@ fashion.
|
||||
A variant of here documents, the format is:
|
||||
[N]<<< WORD
|
||||
|
||||
The WORD undergoes brace expansion, tilde expansion, parameter and
|
||||
variable expansion, command substitution, arithmetic expansion, and
|
||||
quote removal. Pathname expansion and word splitting are not performed.
|
||||
The result is supplied as a single string, with a newline appended, to
|
||||
the command on its standard input (or file descriptor N if N is
|
||||
specified).
|
||||
The WORD undergoes tilde expansion, parameter and variable expansion,
|
||||
command substitution, arithmetic expansion, and quote removal. Pathname
|
||||
expansion and word splitting are not performed. The result is supplied
|
||||
as a single string, with a newline appended, to the command on its
|
||||
standard input (or file descriptor N if N is specified).
|
||||
|
||||
3.6.8 Duplicating File Descriptors
|
||||
----------------------------------
|
||||
@@ -4687,7 +4726,8 @@ In some cases, Bash assigns a default value to the variable.
|
||||
that are expanded before 'PS1' is displayed.
|
||||
|
||||
'PS2'
|
||||
The secondary prompt string. The default value is '> '.
|
||||
The secondary prompt string. The default value is '> '. 'PS2' is
|
||||
expanded in the same way as 'PS1' before being displayed.
|
||||
|
||||
|
||||
File: bashref.info, Node: Bash Variables, Prev: Bourne Shell Variables, Up: Shell Variables
|
||||
@@ -5254,10 +5294,12 @@ Variables::).
|
||||
with '#? '
|
||||
|
||||
'PS4'
|
||||
The value is the prompt printed before the command line is echoed
|
||||
when the '-x' option is set (*note The Set Builtin::). The first
|
||||
character of 'PS4' is replicated multiple times, as necessary, to
|
||||
indicate multiple levels of indirection. The default is '+ '.
|
||||
The value of this parameter is expanded like PS1 and the expanded
|
||||
value is the prompt printed before the command line is echoed when
|
||||
the '-x' option is set (*note The Set Builtin::). The first
|
||||
character of the expanded value is replicated multiple times, as
|
||||
necessary, to indicate multiple levels of indirection. The default
|
||||
is '+ '.
|
||||
|
||||
'PWD'
|
||||
The current working directory as set by the 'cd' builtin.
|
||||
@@ -5714,8 +5756,10 @@ several ways.
|
||||
|
||||
3. Bash expands and displays 'PS1' before reading the first line of a
|
||||
command, and expands and displays 'PS2' before reading the second
|
||||
and subsequent lines of a multi-line command. Bash displays 'PS0'
|
||||
after it reads a command but before executing it.
|
||||
and subsequent lines of a multi-line command. Bash expands and
|
||||
displays 'PS0' after it reads a command but before executing it.
|
||||
See *note Controlling the Prompt::, for a complete list of prompt
|
||||
string escape sequences.
|
||||
|
||||
4. Bash executes the value of the 'PROMPT_COMMAND' variable as a
|
||||
command before printing the primary prompt, '$PS1' (*note Bash
|
||||
@@ -5920,7 +5964,9 @@ link itself.
|
||||
arithmetic binary operators return true if ARG1 is equal to, not
|
||||
equal to, less than, less than or equal to, greater than, or
|
||||
greater than or equal to ARG2, respectively. ARG1 and ARG2 may be
|
||||
positive or negative integers.
|
||||
positive or negative integers. When used with the '[[' command,
|
||||
ARG1 and ARG2 are evaluated as arithmetic expressions (*note Shell
|
||||
Arithmetic::).
|
||||
|
||||
|
||||
File: bashref.info, Node: Shell Arithmetic, Next: Aliases, Prev: Bash Conditional Expressions, Up: Bash Features
|
||||
@@ -6281,7 +6327,7 @@ non-null value, then the value is executed just as if it had been typed
|
||||
on the command line.
|
||||
|
||||
In addition, the following table describes the special characters
|
||||
which can appear in the prompt variables 'PS1' to 'PS4':
|
||||
which can appear in the prompt variables 'PS0', 'PS1', 'PS2', and 'PS4':
|
||||
|
||||
'\a'
|
||||
A bell character.
|
||||
@@ -7854,6 +7900,20 @@ File: bashref.info, Node: Commands For Moving, Next: Commands For History, Up
|
||||
Move back to the start of the current or previous word. Words are
|
||||
delimited by non-quoted shell metacharacters.
|
||||
|
||||
'previous-screen-line ()'
|
||||
Attempt to move point to the same physical screen column on the
|
||||
previous physical screen line. This will not have the desired
|
||||
effect if the current Readline line does not take up more than one
|
||||
physical line or if point is not greater than the length of the
|
||||
prompt plus the screen width.
|
||||
|
||||
'next-screen-line ()'
|
||||
Attempt to move point to the same physical screen column on the
|
||||
next physical screen line. This will not have the desired effect
|
||||
if the current Readline line does not take up more than one
|
||||
physical line or if the length of the current Readline line is not
|
||||
greater than the length of the prompt plus the screen width.
|
||||
|
||||
'clear-screen (C-l)'
|
||||
Clear the screen and redraw the current line, leaving the current
|
||||
line at the top of the screen.
|
||||
@@ -9737,7 +9797,7 @@ unless the operating system does not provide the necessary support.
|
||||
|
||||
'--enable-prompt-string-decoding'
|
||||
Turn on the interpretation of a number of backslash-escaped
|
||||
characters in the '$PS1', '$PS2', '$PS3', and '$PS4' prompt
|
||||
characters in the '$PS0', '$PS1', '$PS2', and '$PS4' prompt
|
||||
strings. See *note Controlling the Prompt::, for a complete list
|
||||
of prompt string escape sequences.
|
||||
|
||||
@@ -11019,17 +11079,17 @@ D.3 Parameter and Variable Index
|
||||
(line 53)
|
||||
* PS3: Bash Variables. (line 559)
|
||||
* PS4: Bash Variables. (line 564)
|
||||
* PWD: Bash Variables. (line 570)
|
||||
* RANDOM: Bash Variables. (line 573)
|
||||
* READLINE_LINE: Bash Variables. (line 578)
|
||||
* READLINE_POINT: Bash Variables. (line 582)
|
||||
* REPLY: Bash Variables. (line 586)
|
||||
* PWD: Bash Variables. (line 572)
|
||||
* RANDOM: Bash Variables. (line 575)
|
||||
* READLINE_LINE: Bash Variables. (line 580)
|
||||
* READLINE_POINT: Bash Variables. (line 584)
|
||||
* REPLY: Bash Variables. (line 588)
|
||||
* revert-all-at-newline: Readline Init File Syntax.
|
||||
(line 270)
|
||||
* SECONDS: Bash Variables. (line 589)
|
||||
* SHELL: Bash Variables. (line 595)
|
||||
* SHELLOPTS: Bash Variables. (line 600)
|
||||
* SHLVL: Bash Variables. (line 609)
|
||||
* SECONDS: Bash Variables. (line 591)
|
||||
* SHELL: Bash Variables. (line 597)
|
||||
* SHELLOPTS: Bash Variables. (line 602)
|
||||
* SHLVL: Bash Variables. (line 611)
|
||||
* show-all-if-ambiguous: Readline Init File Syntax.
|
||||
(line 276)
|
||||
* show-all-if-unmodified: Readline Init File Syntax.
|
||||
@@ -11040,10 +11100,10 @@ D.3 Parameter and Variable Index
|
||||
(line 297)
|
||||
* TEXTDOMAIN: Locale Translation. (line 11)
|
||||
* TEXTDOMAINDIR: Locale Translation. (line 11)
|
||||
* TIMEFORMAT: Bash Variables. (line 614)
|
||||
* TMOUT: Bash Variables. (line 652)
|
||||
* TMPDIR: Bash Variables. (line 664)
|
||||
* UID: Bash Variables. (line 668)
|
||||
* TIMEFORMAT: Bash Variables. (line 616)
|
||||
* TMOUT: Bash Variables. (line 654)
|
||||
* TMPDIR: Bash Variables. (line 666)
|
||||
* UID: Bash Variables. (line 670)
|
||||
* vi-cmd-mode-string: Readline Init File Syntax.
|
||||
(line 310)
|
||||
* vi-ins-mode-string: Readline Init File Syntax.
|
||||
@@ -11083,7 +11143,7 @@ D.4 Function Index
|
||||
(line 42)
|
||||
* character-search-backward (M-C-]): Miscellaneous Commands.
|
||||
(line 47)
|
||||
* clear-screen (C-l): Commands For Moving. (line 34)
|
||||
* clear-screen (C-l): Commands For Moving. (line 48)
|
||||
* complete (<TAB>): Commands For Completion.
|
||||
(line 6)
|
||||
* complete-command (M-!): Commands For Completion.
|
||||
@@ -11179,6 +11239,7 @@ D.4 Function Index
|
||||
(line 38)
|
||||
* next-history (C-n): Commands For History.
|
||||
(line 17)
|
||||
* next-screen-line (): Commands For Moving. (line 41)
|
||||
* non-incremental-forward-search-history (M-n): Commands For History.
|
||||
(line 41)
|
||||
* non-incremental-reverse-search-history (M-p): Commands For History.
|
||||
@@ -11202,11 +11263,12 @@ D.4 Function Index
|
||||
(line 19)
|
||||
* previous-history (C-p): Commands For History.
|
||||
(line 13)
|
||||
* previous-screen-line (): Commands For Moving. (line 34)
|
||||
* print-last-kbd-macro (): Keyboard Macros. (line 17)
|
||||
* quoted-insert (C-q or C-v): Commands For Text. (line 26)
|
||||
* re-read-init-file (C-x C-r): Miscellaneous Commands.
|
||||
(line 6)
|
||||
* redraw-current-line (): Commands For Moving. (line 38)
|
||||
* redraw-current-line (): Commands For Moving. (line 52)
|
||||
* reverse-search-history (C-r): Commands For History.
|
||||
(line 27)
|
||||
* revert-line (M-r): Miscellaneous Commands.
|
||||
@@ -11410,134 +11472,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 Translation17834
|
||||
Node: Comments18730
|
||||
Node: Shell Commands19348
|
||||
Node: Simple Commands20220
|
||||
Node: Pipelines20851
|
||||
Node: Lists23594
|
||||
Node: Compound Commands25323
|
||||
Node: Looping Constructs26326
|
||||
Node: Conditional Constructs28789
|
||||
Node: Command Grouping39711
|
||||
Node: Coprocesses41190
|
||||
Node: GNU Parallel43022
|
||||
Node: Shell Functions46995
|
||||
Node: Shell Parameters52201
|
||||
Node: Positional Parameters56614
|
||||
Node: Special Parameters57514
|
||||
Node: Shell Expansions60851
|
||||
Node: Brace Expansion62945
|
||||
Node: Tilde Expansion65779
|
||||
Node: Shell Parameter Expansion68127
|
||||
Node: Command Substitution82259
|
||||
Node: Arithmetic Expansion83614
|
||||
Node: Process Substitution84546
|
||||
Node: Word Splitting85666
|
||||
Node: Filename Expansion87610
|
||||
Node: Pattern Matching89984
|
||||
Node: Quote Removal93970
|
||||
Node: Redirections94265
|
||||
Node: Executing Commands103839
|
||||
Node: Simple Command Expansion104509
|
||||
Node: Command Search and Execution106439
|
||||
Node: Command Execution Environment108775
|
||||
Node: Environment111759
|
||||
Node: Exit Status113418
|
||||
Node: Signals115088
|
||||
Node: Shell Scripts117055
|
||||
Node: Shell Builtin Commands119570
|
||||
Node: Bourne Shell Builtins121604
|
||||
Node: Bash Builtins142204
|
||||
Node: Modifying Shell Behavior170849
|
||||
Node: The Set Builtin171194
|
||||
Node: The Shopt Builtin181607
|
||||
Node: Special Builtins197505
|
||||
Node: Shell Variables198484
|
||||
Node: Bourne Shell Variables198921
|
||||
Node: Bash Variables200952
|
||||
Node: Bash Features230660
|
||||
Node: Invoking Bash231559
|
||||
Node: Bash Startup Files237508
|
||||
Node: Interactive Shells242611
|
||||
Node: What is an Interactive Shell?243021
|
||||
Node: Is this Shell Interactive?243670
|
||||
Node: Interactive Shell Behavior244485
|
||||
Node: Bash Conditional Expressions247860
|
||||
Node: Shell Arithmetic252100
|
||||
Node: Aliases254917
|
||||
Node: Arrays257465
|
||||
Node: The Directory Stack262549
|
||||
Node: Directory Stack Builtins263333
|
||||
Node: Controlling the Prompt266301
|
||||
Node: The Restricted Shell269047
|
||||
Node: Bash POSIX Mode270872
|
||||
Node: Job Control281223
|
||||
Node: Job Control Basics281683
|
||||
Node: Job Control Builtins286651
|
||||
Node: Job Control Variables291378
|
||||
Node: Command Line Editing292534
|
||||
Node: Introduction and Notation294205
|
||||
Node: Readline Interaction295828
|
||||
Node: Readline Bare Essentials297019
|
||||
Node: Readline Movement Commands298802
|
||||
Node: Readline Killing Commands299762
|
||||
Node: Readline Arguments301680
|
||||
Node: Searching302724
|
||||
Node: Readline Init File304910
|
||||
Node: Readline Init File Syntax306057
|
||||
Node: Conditional Init Constructs326244
|
||||
Node: Sample Init File328769
|
||||
Node: Bindable Readline Commands331886
|
||||
Node: Commands For Moving333090
|
||||
Node: Commands For History334233
|
||||
Node: Commands For Text338528
|
||||
Node: Commands For Killing341917
|
||||
Node: Numeric Arguments344398
|
||||
Node: Commands For Completion345537
|
||||
Node: Keyboard Macros349728
|
||||
Node: Miscellaneous Commands350415
|
||||
Node: Readline vi Mode356291
|
||||
Node: Programmable Completion357198
|
||||
Node: Programmable Completion Builtins364659
|
||||
Node: A Programmable Completion Example374545
|
||||
Node: Using History Interactively379797
|
||||
Node: Bash History Facilities380481
|
||||
Node: Bash History Builtins383482
|
||||
Node: History Interaction387774
|
||||
Node: Event Designators390738
|
||||
Node: Word Designators391957
|
||||
Node: Modifiers393594
|
||||
Node: Installing Bash394996
|
||||
Node: Basic Installation396133
|
||||
Node: Compilers and Options398824
|
||||
Node: Compiling For Multiple Architectures399565
|
||||
Node: Installation Names401228
|
||||
Node: Specifying the System Type402046
|
||||
Node: Sharing Defaults402762
|
||||
Node: Operation Controls403435
|
||||
Node: Optional Features404393
|
||||
Node: Reporting Bugs414919
|
||||
Node: Major Differences From The Bourne Shell416113
|
||||
Node: GNU Free Documentation License432965
|
||||
Node: Indexes458142
|
||||
Node: Builtin Index458596
|
||||
Node: Reserved Word Index465423
|
||||
Node: Variable Index467871
|
||||
Node: Function Index483549
|
||||
Node: Concept Index496706
|
||||
Node: Top891
|
||||
Node: Introduction2805
|
||||
Node: What is Bash?3021
|
||||
Node: What is a shell?4135
|
||||
Node: Definitions6673
|
||||
Node: Basic Shell Features9624
|
||||
Node: Shell Syntax10843
|
||||
Node: Shell Operation11869
|
||||
Node: Quoting13162
|
||||
Node: Escape Character14462
|
||||
Node: Single Quotes14947
|
||||
Node: Double Quotes15295
|
||||
Node: ANSI-C Quoting16573
|
||||
Node: Locale Translation17826
|
||||
Node: Comments18722
|
||||
Node: Shell Commands19340
|
||||
Node: Simple Commands20212
|
||||
Node: Pipelines20843
|
||||
Node: Lists23586
|
||||
Node: Compound Commands25315
|
||||
Node: Looping Constructs26318
|
||||
Node: Conditional Constructs28781
|
||||
Node: Command Grouping39703
|
||||
Node: Coprocesses41182
|
||||
Node: GNU Parallel43014
|
||||
Node: Shell Functions46987
|
||||
Node: Shell Parameters53696
|
||||
Node: Positional Parameters58109
|
||||
Node: Special Parameters59009
|
||||
Node: Shell Expansions62346
|
||||
Node: Brace Expansion64440
|
||||
Node: Tilde Expansion67274
|
||||
Node: Shell Parameter Expansion69622
|
||||
Node: Command Substitution83754
|
||||
Node: Arithmetic Expansion85109
|
||||
Node: Process Substitution86041
|
||||
Node: Word Splitting87161
|
||||
Node: Filename Expansion89105
|
||||
Node: Pattern Matching91479
|
||||
Node: Quote Removal95465
|
||||
Node: Redirections95760
|
||||
Node: Executing Commands105318
|
||||
Node: Simple Command Expansion105988
|
||||
Node: Command Search and Execution107918
|
||||
Node: Command Execution Environment110254
|
||||
Node: Environment113238
|
||||
Node: Exit Status114897
|
||||
Node: Signals116567
|
||||
Node: Shell Scripts118534
|
||||
Node: Shell Builtin Commands121049
|
||||
Node: Bourne Shell Builtins123083
|
||||
Node: Bash Builtins143683
|
||||
Node: Modifying Shell Behavior172328
|
||||
Node: The Set Builtin172673
|
||||
Node: The Shopt Builtin183086
|
||||
Node: Special Builtins198984
|
||||
Node: Shell Variables199963
|
||||
Node: Bourne Shell Variables200400
|
||||
Node: Bash Variables202504
|
||||
Node: Bash Features232297
|
||||
Node: Invoking Bash233196
|
||||
Node: Bash Startup Files239145
|
||||
Node: Interactive Shells244248
|
||||
Node: What is an Interactive Shell?244658
|
||||
Node: Is this Shell Interactive?245307
|
||||
Node: Interactive Shell Behavior246122
|
||||
Node: Bash Conditional Expressions249610
|
||||
Node: Shell Arithmetic253976
|
||||
Node: Aliases256793
|
||||
Node: Arrays259341
|
||||
Node: The Directory Stack264425
|
||||
Node: Directory Stack Builtins265209
|
||||
Node: Controlling the Prompt268177
|
||||
Node: The Restricted Shell270939
|
||||
Node: Bash POSIX Mode272764
|
||||
Node: Job Control283115
|
||||
Node: Job Control Basics283575
|
||||
Node: Job Control Builtins288543
|
||||
Node: Job Control Variables293270
|
||||
Node: Command Line Editing294426
|
||||
Node: Introduction and Notation296097
|
||||
Node: Readline Interaction297720
|
||||
Node: Readline Bare Essentials298911
|
||||
Node: Readline Movement Commands300694
|
||||
Node: Readline Killing Commands301654
|
||||
Node: Readline Arguments303572
|
||||
Node: Searching304616
|
||||
Node: Readline Init File306802
|
||||
Node: Readline Init File Syntax307949
|
||||
Node: Conditional Init Constructs328136
|
||||
Node: Sample Init File330661
|
||||
Node: Bindable Readline Commands333778
|
||||
Node: Commands For Moving334982
|
||||
Node: Commands For History336831
|
||||
Node: Commands For Text341126
|
||||
Node: Commands For Killing344515
|
||||
Node: Numeric Arguments346996
|
||||
Node: Commands For Completion348135
|
||||
Node: Keyboard Macros352326
|
||||
Node: Miscellaneous Commands353013
|
||||
Node: Readline vi Mode358889
|
||||
Node: Programmable Completion359796
|
||||
Node: Programmable Completion Builtins367257
|
||||
Node: A Programmable Completion Example377143
|
||||
Node: Using History Interactively382395
|
||||
Node: Bash History Facilities383079
|
||||
Node: Bash History Builtins386080
|
||||
Node: History Interaction390372
|
||||
Node: Event Designators393336
|
||||
Node: Word Designators394555
|
||||
Node: Modifiers396192
|
||||
Node: Installing Bash397594
|
||||
Node: Basic Installation398731
|
||||
Node: Compilers and Options401422
|
||||
Node: Compiling For Multiple Architectures402163
|
||||
Node: Installation Names403826
|
||||
Node: Specifying the System Type404644
|
||||
Node: Sharing Defaults405360
|
||||
Node: Operation Controls406033
|
||||
Node: Optional Features406991
|
||||
Node: Reporting Bugs417517
|
||||
Node: Major Differences From The Bourne Shell418711
|
||||
Node: GNU Free Documentation License435563
|
||||
Node: Indexes460740
|
||||
Node: Builtin Index461194
|
||||
Node: Reserved Word Index468021
|
||||
Node: Variable Index470469
|
||||
Node: Function Index486147
|
||||
Node: Concept Index499450
|
||||
|
||||
End Tag Table
|
||||
|
||||
+39
-39
@@ -1,4 +1,4 @@
|
||||
This is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016/MacPorts 2016_4) (preloaded format=pdfetex 2017.1.6) 1 FEB 2017 10:46
|
||||
This is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016/MacPorts 2016_4) (preloaded format=pdfetex 2017.1.6) 22 MAR 2017 16:20
|
||||
entering extended mode
|
||||
restricted \write18 enabled.
|
||||
file:line:error style messages enabled.
|
||||
@@ -243,7 +243,7 @@ arallel -k traceroute[]
|
||||
|
||||
[42] [43]
|
||||
[44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54]
|
||||
Overfull \hbox (26.76846pt too wide) in paragraph at lines 4280--4280
|
||||
Overfull \hbox (26.76846pt too wide) in paragraph at lines 4328--4328
|
||||
[]@texttt mapfile [-d @textttsl de-lim@texttt ] [-n @textttsl count@texttt ] [
|
||||
-O @textttsl ori-gin@texttt ] [-s @textttsl count@texttt ] [-t] [-u @textttsl f
|
||||
d@texttt ][]
|
||||
@@ -257,7 +257,7 @@ d@texttt ][]
|
||||
.etc.
|
||||
|
||||
[55] [56]
|
||||
Overfull \hbox (38.26584pt too wide) in paragraph at lines 4484--4484
|
||||
Overfull \hbox (38.26584pt too wide) in paragraph at lines 4532--4532
|
||||
[]@texttt readarray [-d @textttsl de-lim@texttt ] [-n @textttsl count@texttt ]
|
||||
[-O @textttsl ori-gin@texttt ] [-s @textttsl count@texttt ] [-t] [-u @textttsl
|
||||
fd@texttt ][]
|
||||
@@ -272,7 +272,7 @@ Overfull \hbox (38.26584pt too wide) in paragraph at lines 4484--4484
|
||||
|
||||
[57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] Chapter 5
|
||||
[70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] Chapter 6 [82]
|
||||
Overfull \hbox (49.43388pt too wide) in paragraph at lines 6228--6228
|
||||
Overfull \hbox (49.43388pt too wide) in paragraph at lines 6279--6279
|
||||
[]@texttt bash [long-opt] [-ir] [-abefhkmnptuvxdBCDHP] [-o @textttsl op-tion@t
|
||||
exttt ] [-O @textttsl shopt_option@texttt ] [@textttsl ar-
|
||||
|
||||
@@ -285,7 +285,7 @@ exttt ] [-O @textttsl shopt_option@texttt ] [@textttsl ar-
|
||||
.etc.
|
||||
|
||||
|
||||
Overfull \hbox (72.42863pt too wide) in paragraph at lines 6229--6229
|
||||
Overfull \hbox (72.42863pt too wide) in paragraph at lines 6280--6280
|
||||
[]@texttt bash [long-opt] [-abefhkmnptuvxdBCDHP] [-o @textttsl op-tion@texttt
|
||||
] [-O @textttsl shopt_option@texttt ] -c @textttsl string @texttt [@textttsl ar
|
||||
-
|
||||
@@ -299,7 +299,7 @@ Overfull \hbox (72.42863pt too wide) in paragraph at lines 6229--6229
|
||||
.etc.
|
||||
|
||||
|
||||
Overfull \hbox (32.18782pt too wide) in paragraph at lines 6230--6230
|
||||
Overfull \hbox (32.18782pt too wide) in paragraph at lines 6281--6281
|
||||
[]@texttt bash [long-opt] -s [-abefhkmnptuvxdBCDHP] [-o @textttsl op-tion@text
|
||||
tt ] [-O @textttsl shopt_option@texttt ] [@textttsl ar-
|
||||
|
||||
@@ -362,7 +362,7 @@ gnored[]
|
||||
|
||||
[120] [121] [122] [123] [124] [125] [126] [127] [128] [129]
|
||||
[130] [131] [132] [133] [134] [135]
|
||||
Overfull \hbox (26.43913pt too wide) in paragraph at lines 2234--2234
|
||||
Overfull \hbox (26.43913pt too wide) in paragraph at lines 2247--2247
|
||||
[] @texttt # Tilde expansion, with side effect of expanding tilde to full p
|
||||
athname[]
|
||||
|
||||
@@ -374,47 +374,47 @@ athname[]
|
||||
.@penalty 10000
|
||||
.etc.
|
||||
|
||||
[136])
|
||||
[136] [137])
|
||||
texinfo.tex: doing @include of hsuser.texi
|
||||
|
||||
(/usr/homes/chet/src/bash/src/lib/readline/doc/hsuser.texi Chapter 9
|
||||
[137] [138] [139] [140] [141]) Chapter 10 [142] [143] [144] [145] [146]
|
||||
[147] [148] [149] Appendix A [150] Appendix B [151] [152] [153] [154] [155]
|
||||
[156] Appendix C [157]
|
||||
(/usr/homes/chet/src/bash/src/lib/readline/doc/hsuser.texi
|
||||
Chapter 9 [138] [139] [140] [141] [142]) Chapter 10 [143] [144] [145] [146]
|
||||
[147] [148] [149] [150] Appendix A [151] Appendix B [152] [153] [154] [155]
|
||||
[156] [157] Appendix C [158]
|
||||
texinfo.tex: doing @include of fdl.texi
|
||||
|
||||
(/Users/chet/src/bash/src/doc/fdl.texi [158] [159]
|
||||
[160] [161] [162] [163] [164]) Appendix D [165] [166] [167] [168] [169]
|
||||
[170] [171] [172] [173] [174] )
|
||||
(/Users/chet/src/bash/src/doc/fdl.texi [159]
|
||||
[160] [161] [162] [163] [164] [165]) Appendix D [166] [167] [168] [169]
|
||||
[170] [171] [172] [173] [174] [175] )
|
||||
Here is how much of TeX's memory you used:
|
||||
4062 strings out of 497105
|
||||
47063 string characters out of 6206776
|
||||
136604 words of memory out of 5000000
|
||||
4063 strings out of 497105
|
||||
47066 string characters out of 6206776
|
||||
137574 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 (180 pages, 738487 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 (181 pages, 741335 bytes).
|
||||
PDF statistics:
|
||||
2589 PDF objects out of 2984 (max. 8388607)
|
||||
2364 compressed objects within 24 object streams
|
||||
306 named destinations out of 1000 (max. 500000)
|
||||
2600 PDF objects out of 2984 (max. 8388607)
|
||||
2374 compressed objects within 24 object streams
|
||||
307 named destinations out of 1000 (max. 500000)
|
||||
1125 words of extra memory for PDF output out of 10000 (max. 10000000)
|
||||
|
||||
|
||||
Binary file not shown.
+3609
-3533
File diff suppressed because it is too large
Load Diff
+59
-1
@@ -1424,7 +1424,64 @@ before the @code{return}.
|
||||
|
||||
Variables local to the function may be declared with the
|
||||
@code{local} builtin. These variables are visible only to
|
||||
the function and the commands it invokes.
|
||||
the function and the commands it invokes. This is particularly
|
||||
important when a shell function calls other functions.
|
||||
|
||||
Local variables "shadow" variables with the same name declared at
|
||||
previous scopes. For instance, a local variable declared in a function
|
||||
hides a global variable of the same name: references and assignments
|
||||
refer to the local variable, leaving the global variable unmodified.
|
||||
When the function returns, the global variable is once again visible.
|
||||
|
||||
The shell uses @var{dynamic scoping} to control a variable's visibility
|
||||
within functions.
|
||||
With dynamic scoping, visible variables and their values
|
||||
are a result of the sequence of function calls that caused execution
|
||||
to reach the current function.
|
||||
The value of a variable that a function sees depends
|
||||
on its value within its caller, if any, whether that caller is
|
||||
the "global" scope or another shell function.
|
||||
This is also the value that a local variable
|
||||
declaration "shadows", and the value that is restored when the function
|
||||
returns.
|
||||
|
||||
For example, if a variable @var{var} is declared as local in function
|
||||
@var{func1}, and @var{func1} calls another function @var{func2},
|
||||
references to @var{var} made from within @var{func2} will resolve to the
|
||||
local variable @var{var} from @var{func1}, shadowing any global variable
|
||||
named @var{var}.
|
||||
|
||||
The following script demonstrates this behavior.
|
||||
When executed, the script displays
|
||||
|
||||
@example
|
||||
In func2, var = func1 local
|
||||
@end example
|
||||
|
||||
@example
|
||||
func1()
|
||||
@{
|
||||
local var='func1 local'
|
||||
func2
|
||||
@}
|
||||
|
||||
func2()
|
||||
@{
|
||||
echo "In func2, var = $var"
|
||||
@}
|
||||
|
||||
var=global
|
||||
func1
|
||||
@end example
|
||||
|
||||
The @code{unset} builtin also acts using the same dynamic scope: if a
|
||||
variable is local to the current scope, @code{unset} will unset it;
|
||||
otherwise the unset will refer to the variable found in any calling scope
|
||||
as described above.
|
||||
If a variable at the local scope is unset, it will remain so
|
||||
until it is reset in that scope or until the function returns.
|
||||
If the unset acts on a variable at a previous scope, any instance of a
|
||||
variable with that name that had been shadowed will become visible.
|
||||
|
||||
Function names and definitions may be listed with the
|
||||
@option{-f} option to the @code{declare} (@code{typeset})
|
||||
@@ -7102,6 +7159,7 @@ destroys the array element at index @var{subscript}.
|
||||
Negative subscripts to indexed arrays are interpreted as described above.
|
||||
Care must be taken to avoid unwanted side effects caused by filename
|
||||
expansion.
|
||||
Unsetting the last element of an array variable does not unset the variable.
|
||||
@code{unset @var{name}}, where @var{name} is an array, removes the
|
||||
entire array. A subscript of @samp{*} or @samp{@@} also removes the
|
||||
entire array.
|
||||
|
||||
+55
-55
@@ -23,39 +23,39 @@
|
||||
@numsubsecentry{Coprocesses}{3.2.5}{Coprocesses}{15}
|
||||
@numsubsecentry{GNU Parallel}{3.2.6}{GNU Parallel}{15}
|
||||
@numsecentry{Shell Functions}{3.3}{Shell Functions}{17}
|
||||
@numsecentry{Shell Parameters}{3.4}{Shell Parameters}{18}
|
||||
@numsubsecentry{Positional Parameters}{3.4.1}{Positional Parameters}{19}
|
||||
@numsecentry{Shell Parameters}{3.4}{Shell Parameters}{19}
|
||||
@numsubsecentry{Positional Parameters}{3.4.1}{Positional Parameters}{20}
|
||||
@numsubsecentry{Special Parameters}{3.4.2}{Special Parameters}{20}
|
||||
@numsecentry{Shell Expansions}{3.5}{Shell Expansions}{21}
|
||||
@numsubsecentry{Brace Expansion}{3.5.1}{Brace Expansion}{21}
|
||||
@numsubsecentry{Tilde Expansion}{3.5.2}{Tilde Expansion}{22}
|
||||
@numsubsecentry{Shell Parameter Expansion}{3.5.3}{Shell Parameter Expansion}{23}
|
||||
@numsubsecentry{Brace Expansion}{3.5.1}{Brace Expansion}{22}
|
||||
@numsubsecentry{Tilde Expansion}{3.5.2}{Tilde Expansion}{23}
|
||||
@numsubsecentry{Shell Parameter Expansion}{3.5.3}{Shell Parameter Expansion}{24}
|
||||
@numsubsecentry{Command Substitution}{3.5.4}{Command Substitution}{29}
|
||||
@numsubsecentry{Arithmetic Expansion}{3.5.5}{Arithmetic Expansion}{29}
|
||||
@numsubsecentry{Arithmetic Expansion}{3.5.5}{Arithmetic Expansion}{30}
|
||||
@numsubsecentry{Process Substitution}{3.5.6}{Process Substitution}{30}
|
||||
@numsubsecentry{Word Splitting}{3.5.7}{Word Splitting}{30}
|
||||
@numsubsecentry{Filename Expansion}{3.5.8}{Filename Expansion}{30}
|
||||
@numsubsubsecentry{Pattern Matching}{3.5.8.1}{Pattern Matching}{31}
|
||||
@numsubsecentry{Quote Removal}{3.5.9}{Quote Removal}{32}
|
||||
@numsecentry{Redirections}{3.6}{Redirections}{32}
|
||||
@numsubsecentry{Word Splitting}{3.5.7}{Word Splitting}{31}
|
||||
@numsubsecentry{Filename Expansion}{3.5.8}{Filename Expansion}{31}
|
||||
@numsubsubsecentry{Pattern Matching}{3.5.8.1}{Pattern Matching}{32}
|
||||
@numsubsecentry{Quote Removal}{3.5.9}{Quote Removal}{33}
|
||||
@numsecentry{Redirections}{3.6}{Redirections}{33}
|
||||
@numsubsecentry{Redirecting Input}{3.6.1}{}{34}
|
||||
@numsubsecentry{Redirecting Output}{3.6.2}{}{34}
|
||||
@numsubsecentry{Appending Redirected Output}{3.6.3}{}{34}
|
||||
@numsubsecentry{Redirecting Standard Output and Standard Error}{3.6.4}{}{34}
|
||||
@numsubsecentry{Redirecting Output}{3.6.2}{}{35}
|
||||
@numsubsecentry{Appending Redirected Output}{3.6.3}{}{35}
|
||||
@numsubsecentry{Redirecting Standard Output and Standard Error}{3.6.4}{}{35}
|
||||
@numsubsecentry{Appending Standard Output and Standard Error}{3.6.5}{}{35}
|
||||
@numsubsecentry{Here Documents}{3.6.6}{}{35}
|
||||
@numsubsecentry{Here Strings}{3.6.7}{}{35}
|
||||
@numsubsecentry{Duplicating File Descriptors}{3.6.8}{}{35}
|
||||
@numsubsecentry{Moving File Descriptors}{3.6.9}{}{36}
|
||||
@numsubsecentry{Opening File Descriptors for Reading and Writing}{3.6.10}{}{36}
|
||||
@numsecentry{Executing Commands}{3.7}{Executing Commands}{36}
|
||||
@numsubsecentry{Simple Command Expansion}{3.7.1}{Simple Command Expansion}{36}
|
||||
@numsubsecentry{Command Search and Execution}{3.7.2}{Command Search and Execution}{37}
|
||||
@numsubsecentry{Command Execution Environment}{3.7.3}{Command Execution Environment}{37}
|
||||
@numsubsecentry{Environment}{3.7.4}{Environment}{38}
|
||||
@numsubsecentry{Exit Status}{3.7.5}{Exit Status}{39}
|
||||
@numsubsecentry{Signals}{3.7.6}{Signals}{39}
|
||||
@numsecentry{Shell Scripts}{3.8}{Shell Scripts}{40}
|
||||
@numsubsecentry{Here Documents}{3.6.6}{}{36}
|
||||
@numsubsecentry{Here Strings}{3.6.7}{}{36}
|
||||
@numsubsecentry{Duplicating File Descriptors}{3.6.8}{}{36}
|
||||
@numsubsecentry{Moving File Descriptors}{3.6.9}{}{37}
|
||||
@numsubsecentry{Opening File Descriptors for Reading and Writing}{3.6.10}{}{37}
|
||||
@numsecentry{Executing Commands}{3.7}{Executing Commands}{37}
|
||||
@numsubsecentry{Simple Command Expansion}{3.7.1}{Simple Command Expansion}{37}
|
||||
@numsubsecentry{Command Search and Execution}{3.7.2}{Command Search and Execution}{38}
|
||||
@numsubsecentry{Command Execution Environment}{3.7.3}{Command Execution Environment}{38}
|
||||
@numsubsecentry{Environment}{3.7.4}{Environment}{39}
|
||||
@numsubsecentry{Exit Status}{3.7.5}{Exit Status}{40}
|
||||
@numsubsecentry{Signals}{3.7.6}{Signals}{40}
|
||||
@numsecentry{Shell Scripts}{3.8}{Shell Scripts}{41}
|
||||
@numchapentry{Shell Builtin Commands}{4}{Shell Builtin Commands}{42}
|
||||
@numsecentry{Bourne Shell Builtins}{4.1}{Bourne Shell Builtins}{42}
|
||||
@numsecentry{Bash Builtin Commands}{4.2}{Bash Builtins}{49}
|
||||
@@ -102,7 +102,7 @@
|
||||
@numsubsecentry{Commands For Moving}{8.4.1}{Commands For Moving}{120}
|
||||
@numsubsecentry{Commands For Manipulating The History}{8.4.2}{Commands For History}{121}
|
||||
@numsubsecentry{Commands For Changing Text}{8.4.3}{Commands For Text}{122}
|
||||
@numsubsecentry{Killing And Yanking}{8.4.4}{Commands For Killing}{123}
|
||||
@numsubsecentry{Killing And Yanking}{8.4.4}{Commands For Killing}{124}
|
||||
@numsubsecentry{Specifying Numeric Arguments}{8.4.5}{Numeric Arguments}{125}
|
||||
@numsubsecentry{Letting Readline Type For You}{8.4.6}{Commands For Completion}{125}
|
||||
@numsubsecentry{Keyboard Macros}{8.4.7}{Keyboard Macros}{127}
|
||||
@@ -110,30 +110,30 @@
|
||||
@numsecentry{Readline vi Mode}{8.5}{Readline vi Mode}{129}
|
||||
@numsecentry{Programmable Completion}{8.6}{Programmable Completion}{130}
|
||||
@numsecentry{Programmable Completion Builtins}{8.7}{Programmable Completion Builtins}{132}
|
||||
@numsecentry{A Programmable Completion Example}{8.8}{A Programmable Completion Example}{135}
|
||||
@numchapentry{Using History Interactively}{9}{Using History Interactively}{138}
|
||||
@numsecentry{Bash History Facilities}{9.1}{Bash History Facilities}{138}
|
||||
@numsecentry{Bash History Builtins}{9.2}{Bash History Builtins}{138}
|
||||
@numsecentry{History Expansion}{9.3}{History Interaction}{140}
|
||||
@numsubsecentry{Event Designators}{9.3.1}{Event Designators}{141}
|
||||
@numsubsecentry{Word Designators}{9.3.2}{Word Designators}{141}
|
||||
@numsubsecentry{Modifiers}{9.3.3}{Modifiers}{142}
|
||||
@numchapentry{Installing Bash}{10}{Installing Bash}{143}
|
||||
@numsecentry{Basic Installation}{10.1}{Basic Installation}{143}
|
||||
@numsecentry{Compilers and Options}{10.2}{Compilers and Options}{144}
|
||||
@numsecentry{Compiling For Multiple Architectures}{10.3}{Compiling For Multiple Architectures}{144}
|
||||
@numsecentry{Installation Names}{10.4}{Installation Names}{144}
|
||||
@numsecentry{Specifying the System Type}{10.5}{Specifying the System Type}{144}
|
||||
@numsecentry{Sharing Defaults}{10.6}{Sharing Defaults}{145}
|
||||
@numsecentry{Operation Controls}{10.7}{Operation Controls}{145}
|
||||
@numsecentry{Optional Features}{10.8}{Optional Features}{145}
|
||||
@appentry{Reporting Bugs}{A}{Reporting Bugs}{151}
|
||||
@appentry{Major Differences From The Bourne Shell}{B}{Major Differences From The Bourne Shell}{152}
|
||||
@appsecentry{Implementation Differences From The SVR4.2 Shell}{B.1}{}{156}
|
||||
@appentry{GNU Free Documentation License}{C}{GNU Free Documentation License}{158}
|
||||
@appentry{Indexes}{D}{Indexes}{166}
|
||||
@appsecentry{Index of Shell Builtin Commands}{D.1}{Builtin Index}{166}
|
||||
@appsecentry{Index of Shell Reserved Words}{D.2}{Reserved Word Index}{167}
|
||||
@appsecentry{Parameter and Variable Index}{D.3}{Variable Index}{168}
|
||||
@appsecentry{Function Index}{D.4}{Function Index}{170}
|
||||
@appsecentry{Concept Index}{D.5}{Concept Index}{172}
|
||||
@numsecentry{A Programmable Completion Example}{8.8}{A Programmable Completion Example}{136}
|
||||
@numchapentry{Using History Interactively}{9}{Using History Interactively}{139}
|
||||
@numsecentry{Bash History Facilities}{9.1}{Bash History Facilities}{139}
|
||||
@numsecentry{Bash History Builtins}{9.2}{Bash History Builtins}{139}
|
||||
@numsecentry{History Expansion}{9.3}{History Interaction}{141}
|
||||
@numsubsecentry{Event Designators}{9.3.1}{Event Designators}{142}
|
||||
@numsubsecentry{Word Designators}{9.3.2}{Word Designators}{142}
|
||||
@numsubsecentry{Modifiers}{9.3.3}{Modifiers}{143}
|
||||
@numchapentry{Installing Bash}{10}{Installing Bash}{144}
|
||||
@numsecentry{Basic Installation}{10.1}{Basic Installation}{144}
|
||||
@numsecentry{Compilers and Options}{10.2}{Compilers and Options}{145}
|
||||
@numsecentry{Compiling For Multiple Architectures}{10.3}{Compiling For Multiple Architectures}{145}
|
||||
@numsecentry{Installation Names}{10.4}{Installation Names}{145}
|
||||
@numsecentry{Specifying the System Type}{10.5}{Specifying the System Type}{145}
|
||||
@numsecentry{Sharing Defaults}{10.6}{Sharing Defaults}{146}
|
||||
@numsecentry{Operation Controls}{10.7}{Operation Controls}{146}
|
||||
@numsecentry{Optional Features}{10.8}{Optional Features}{146}
|
||||
@appentry{Reporting Bugs}{A}{Reporting Bugs}{152}
|
||||
@appentry{Major Differences From The Bourne Shell}{B}{Major Differences From The Bourne Shell}{153}
|
||||
@appsecentry{Implementation Differences From The SVR4.2 Shell}{B.1}{}{157}
|
||||
@appentry{GNU Free Documentation License}{C}{GNU Free Documentation License}{159}
|
||||
@appentry{Indexes}{D}{Indexes}{167}
|
||||
@appsecentry{Index of Shell Builtin Commands}{D.1}{Builtin Index}{167}
|
||||
@appsecentry{Index of Shell Reserved Words}{D.2}{Reserved Word Index}{168}
|
||||
@appsecentry{Parameter and Variable Index}{D.3}{Variable Index}{169}
|
||||
@appsecentry{Function Index}{D.4}{Function Index}{171}
|
||||
@appsecentry{Concept Index}{D.5}{Concept Index}{173}
|
||||
|
||||
+16
-16
@@ -3,22 +3,22 @@
|
||||
\entry{TEXTDOMAINDIR}{7}{\code {TEXTDOMAINDIR}}
|
||||
\entry{*}{20}{\code {*}}
|
||||
\entry{$*}{20}{\code {$*}}
|
||||
\entry{@}{20}{\code {@}}
|
||||
\entry{$@}{20}{\code {$@}}
|
||||
\entry{#}{20}{\code {#}}
|
||||
\entry{$#}{20}{\code {$#}}
|
||||
\entry{?}{20}{\code {?}}
|
||||
\entry{$?}{20}{\code {$?}}
|
||||
\entry{-}{20}{\code {-}}
|
||||
\entry{$-}{20}{\code {$-}}
|
||||
\entry{$}{20}{\code {$}}
|
||||
\entry{$$}{20}{\code {$$}}
|
||||
\entry{!}{20}{\code {!}}
|
||||
\entry{$!}{20}{\code {$!}}
|
||||
\entry{0}{20}{\code {0}}
|
||||
\entry{$0}{20}{\code {$0}}
|
||||
\entry{_}{20}{\code {_}}
|
||||
\entry{$_}{20}{\code {$_}}
|
||||
\entry{@}{21}{\code {@}}
|
||||
\entry{$@}{21}{\code {$@}}
|
||||
\entry{#}{21}{\code {#}}
|
||||
\entry{$#}{21}{\code {$#}}
|
||||
\entry{?}{21}{\code {?}}
|
||||
\entry{$?}{21}{\code {$?}}
|
||||
\entry{-}{21}{\code {-}}
|
||||
\entry{$-}{21}{\code {$-}}
|
||||
\entry{$}{21}{\code {$}}
|
||||
\entry{$$}{21}{\code {$$}}
|
||||
\entry{!}{21}{\code {!}}
|
||||
\entry{$!}{21}{\code {$!}}
|
||||
\entry{0}{21}{\code {0}}
|
||||
\entry{$0}{21}{\code {$0}}
|
||||
\entry{_}{21}{\code {_}}
|
||||
\entry{$_}{21}{\code {$_}}
|
||||
\entry{CDPATH}{71}{\code {CDPATH}}
|
||||
\entry{HOME}{71}{\code {HOME}}
|
||||
\entry{IFS}{71}{\code {IFS}}
|
||||
|
||||
+16
-16
@@ -1,30 +1,30 @@
|
||||
\initial {!}
|
||||
\entry {\code {!}}{20}
|
||||
\entry {\code {!}}{21}
|
||||
\initial {#}
|
||||
\entry {\code {#}}{20}
|
||||
\entry {\code {#}}{21}
|
||||
\initial {$}
|
||||
\entry {\code {$}}{20}
|
||||
\entry {\code {$!}}{20}
|
||||
\entry {\code {$#}}{20}
|
||||
\entry {\code {$$}}{20}
|
||||
\entry {\code {$}}{21}
|
||||
\entry {\code {$!}}{21}
|
||||
\entry {\code {$#}}{21}
|
||||
\entry {\code {$$}}{21}
|
||||
\entry {\code {$*}}{20}
|
||||
\entry {\code {$-}}{20}
|
||||
\entry {\code {$?}}{20}
|
||||
\entry {\code {$@}}{20}
|
||||
\entry {\code {$_}}{20}
|
||||
\entry {\code {$0}}{20}
|
||||
\entry {\code {$-}}{21}
|
||||
\entry {\code {$?}}{21}
|
||||
\entry {\code {$@}}{21}
|
||||
\entry {\code {$_}}{21}
|
||||
\entry {\code {$0}}{21}
|
||||
\initial {*}
|
||||
\entry {\code {*}}{20}
|
||||
\initial {-}
|
||||
\entry {\code {-}}{20}
|
||||
\entry {\code {-}}{21}
|
||||
\initial {?}
|
||||
\entry {\code {?}}{20}
|
||||
\entry {\code {?}}{21}
|
||||
\initial {@}
|
||||
\entry {\code {@}}{20}
|
||||
\entry {\code {@}}{21}
|
||||
\initial {_}
|
||||
\entry {\code {_}}{20}
|
||||
\entry {\code {_}}{21}
|
||||
\initial {0}
|
||||
\entry {\code {0}}{20}
|
||||
\entry {\code {0}}{21}
|
||||
\initial {A}
|
||||
\entry {\code {auto_resume}}{104}
|
||||
\initial {B}
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
%!PS-Adobe-3.0
|
||||
%%Creator: groff version 1.22.3
|
||||
%%CreationDate: Wed Feb 1 09:18:06 2017
|
||||
%%CreationDate: Wed Mar 22 16:11:15 2017
|
||||
%%DocumentNeededResources: font Times-Roman
|
||||
%%+ font Times-Bold
|
||||
%%+ font Times-Italic
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
%!PS-Adobe-3.0
|
||||
%%Creator: groff version 1.22.3
|
||||
%%CreationDate: Wed Feb 1 09:18:06 2017
|
||||
%%CreationDate: Wed Mar 22 16:11:15 2017
|
||||
%%DocumentNeededResources: font Times-Roman
|
||||
%%+ font Times-Bold
|
||||
%%DocumentSuppliedResources: procset grops 1.22 3
|
||||
|
||||
+2
-2
@@ -2,10 +2,10 @@
|
||||
Copyright (C) 1988-2017 Free Software Foundation, Inc.
|
||||
@end ignore
|
||||
|
||||
@set LASTCHANGE Mon Mar 13 11:48:21 EDT 2017
|
||||
@set LASTCHANGE Wed Mar 22 16:10:53 EDT 2017
|
||||
|
||||
@set EDITION 4.4
|
||||
@set VERSION 4.4
|
||||
|
||||
@set UPDATED 13 March 2017
|
||||
@set UPDATED 22 March 2017
|
||||
@set UPDATED-MONTH March 2017
|
||||
|
||||
+1
-1
@@ -2874,7 +2874,7 @@ execute_for_command (for_command)
|
||||
{
|
||||
SHELL_VAR *new_value;
|
||||
|
||||
new_value = bind_variable (identifier, value_cell(old_value), 0);
|
||||
new_value = bind_variable (identifier, value_cell (old_value), 0);
|
||||
new_value->attributes = old_value->attributes;
|
||||
dispose_variable (old_value);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* findcmd.c -- Functions to search for commands by name. */
|
||||
|
||||
/* Copyright (C) 1997-2015 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Bash, the Bourne Again SHell.
|
||||
|
||||
@@ -337,7 +337,7 @@ search_for_command (pathname, flags)
|
||||
const char *pathname;
|
||||
int flags;
|
||||
{
|
||||
char *hashed_file, *command, *pathlist;
|
||||
char *hashed_file, *command, *path_list;
|
||||
int temp_path, st;
|
||||
SHELL_VAR *path;
|
||||
|
||||
@@ -378,13 +378,13 @@ search_for_command (pathname, flags)
|
||||
else
|
||||
{
|
||||
if (flags & CMDSRCH_STDPATH)
|
||||
pathlist = conf_standard_path ();
|
||||
path_list = conf_standard_path ();
|
||||
else if (temp_path || path)
|
||||
pathlist = value_cell (path);
|
||||
path_list = value_cell (path);
|
||||
else
|
||||
pathlist = 0;
|
||||
path_list = 0;
|
||||
|
||||
command = find_user_command_in_path (pathname, pathlist, FS_EXEC_PREFERRED|FS_NODIRS);
|
||||
command = find_user_command_in_path (pathname, path_list, FS_EXEC_PREFERRED|FS_NODIRS);
|
||||
|
||||
if (command && hashing_enabled && temp_path == 0 && (flags & CMDSRCH_HASH))
|
||||
{
|
||||
@@ -402,7 +402,7 @@ search_for_command (pathname, flags)
|
||||
}
|
||||
|
||||
if (flags & CMDSRCH_STDPATH)
|
||||
free (pathlist);
|
||||
free (path_list);
|
||||
}
|
||||
|
||||
return (command);
|
||||
|
||||
@@ -2684,6 +2684,10 @@ yylex ()
|
||||
which allow ESAC to be the next one read. */
|
||||
static int esacs_needed_count;
|
||||
|
||||
/* When non-zero, we can read IN as an acceptable token, regardless of how
|
||||
many newlines we read. */
|
||||
static int expecting_in_token;
|
||||
|
||||
static void
|
||||
push_heredoc (r)
|
||||
REDIRECT *r;
|
||||
@@ -2934,12 +2938,9 @@ static int
|
||||
special_case_tokens (tokstr)
|
||||
char *tokstr;
|
||||
{
|
||||
/* Posix grammar rule 6 */
|
||||
if ((last_read_token == WORD) &&
|
||||
#if defined (SELECT_COMMAND)
|
||||
((token_before_that == FOR) || (token_before_that == CASE) || (token_before_that == SELECT)) &&
|
||||
#else
|
||||
((token_before_that == FOR) || (token_before_that == CASE)) &&
|
||||
#endif
|
||||
(tokstr[0] == 'i' && tokstr[1] == 'n' && tokstr[2] == 0))
|
||||
{
|
||||
if (token_before_that == CASE)
|
||||
@@ -2947,6 +2948,23 @@ special_case_tokens (tokstr)
|
||||
parser_state |= PST_CASEPAT;
|
||||
esacs_needed_count++;
|
||||
}
|
||||
if (expecting_in_token)
|
||||
expecting_in_token--;
|
||||
return (IN);
|
||||
}
|
||||
|
||||
/* bash-5.0: leaving above code intact for now, but it should eventually be
|
||||
removed in favor of this clause. */
|
||||
/* Posix grammar rule 6 */
|
||||
if (expecting_in_token && (last_read_token == WORD || last_read_token == '\n') &&
|
||||
(tokstr[0] == 'i' && tokstr[1] == 'n' && tokstr[2] == 0))
|
||||
{
|
||||
if (parser_state & PST_CASESTMT)
|
||||
{
|
||||
parser_state |= PST_CASEPAT;
|
||||
esacs_needed_count++;
|
||||
}
|
||||
expecting_in_token--;
|
||||
return (IN);
|
||||
}
|
||||
|
||||
@@ -5205,6 +5223,7 @@ got_token:
|
||||
if (word_top < MAX_CASE_NEST)
|
||||
word_top++;
|
||||
word_lineno[word_top] = line_number;
|
||||
expecting_in_token++;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
/* ``Have a little faith, there's magic in the night. You ain't a
|
||||
beauty, but, hey, you're alright.'' */
|
||||
|
||||
/* Copyright (C) 1987-2016 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1987-2017 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Bash, the Bourne Again SHell.
|
||||
|
||||
@@ -2539,6 +2539,8 @@ ifs_firstchar (lenp)
|
||||
expansion [of $*] appears within a double quoted string, it expands
|
||||
to a single field with the value of each parameter separated by the
|
||||
first character of the IFS variable, or by a <space> if IFS is unset." */
|
||||
/* Posix interpretation 888 changes this when IFS is null by specifying
|
||||
that when unquoted, this expands to separate arguments */
|
||||
char *
|
||||
string_list_dollar_star (list)
|
||||
WORD_LIST *list;
|
||||
@@ -2688,6 +2690,10 @@ string_list_pos_params (pchar, list, quoted)
|
||||
word_list_remove_quoted_nulls (tlist);
|
||||
ret = string_list (tlist);
|
||||
}
|
||||
else if (pchar == '*' && quoted == 0 && ifs_is_null) /* XXX */
|
||||
{
|
||||
ret = string_list_dollar_at (list, quoted, 0); /* Posix interp 888 */
|
||||
}
|
||||
else if (pchar == '*')
|
||||
{
|
||||
/* Even when unquoted, string_list_dollar_star does the right thing
|
||||
@@ -2704,6 +2710,10 @@ string_list_pos_params (pchar, list, quoted)
|
||||
the elements of $@ are separated by the first character of $IFS for
|
||||
later splitting. */
|
||||
ret = string_list_dollar_at (list, quoted, 0);
|
||||
else if (pchar == '@' && quoted == 0 && ifs_is_null) /* XXX */
|
||||
{
|
||||
ret = string_list_dollar_at (list, quoted, 0); /* Posix interp 888 */
|
||||
}
|
||||
else if (pchar == '@')
|
||||
ret = string_list_dollar_star (list);
|
||||
else
|
||||
@@ -3856,11 +3866,9 @@ expand_string_for_rhs (string, quoted, op, dollar_at_p, expanded_p)
|
||||
1. This may need additional changes depending on whether or not this is
|
||||
on the RHS of an assignment statement. */
|
||||
/* The updated treatment of $* is the result of Posix interp 888 */
|
||||
#if 0
|
||||
expand_no_split_dollar_star = (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) || op == '=' || ifs_is_null == 0;
|
||||
#else
|
||||
expand_no_split_dollar_star = 1;
|
||||
#endif
|
||||
/* This was further clarified on the austin-group list in March, 2017 and
|
||||
in Posix bug 1129 */
|
||||
expand_no_split_dollar_star = (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) || op == '=' || ifs_is_null == 0; /* XXX - was 1 */
|
||||
td.flags = W_NOSPLIT2; /* no splitting, remove "" and '' */
|
||||
td.word = string;
|
||||
tresult = call_expand_word_internal (&td, quoted, 1, dollar_at_p, expanded_p);
|
||||
@@ -5142,7 +5150,11 @@ parameter_brace_remove_pattern (varname, value, ind, patstr, rtype, quoted, flag
|
||||
#endif
|
||||
case VT_POSPARMS:
|
||||
temp1 = parameter_list_remove_pattern (varname[0], pattern, patspec, quoted);
|
||||
if (temp1 && ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) == 0))
|
||||
if (temp1 && quoted == 0 && ifs_is_null)
|
||||
{
|
||||
/* Posix interp 888 */
|
||||
}
|
||||
else if (temp1 && ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) == 0))
|
||||
{
|
||||
val = quote_escapes (temp1);
|
||||
free (temp1);
|
||||
@@ -5420,7 +5432,11 @@ parameter_brace_transform (varname, value, ind, xform, rtype, quoted, flags)
|
||||
#endif
|
||||
case VT_POSPARMS:
|
||||
temp1 = parameter_list_transform (xc, varname[0], quoted);
|
||||
if (temp1 && ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) == 0))
|
||||
if (temp1 && quoted == 0 && ifs_is_null)
|
||||
{
|
||||
/* Posix interp 888 */
|
||||
}
|
||||
else if (temp1 && ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) == 0))
|
||||
{
|
||||
val = quote_escapes (temp1);
|
||||
free (temp1);
|
||||
@@ -7520,7 +7536,11 @@ parameter_brace_substring (varname, value, ind, substr, quoted, flags)
|
||||
break;
|
||||
case VT_POSPARMS:
|
||||
tt = pos_params (varname, e1, e2, quoted);
|
||||
if ((quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) == 0)
|
||||
if (tt && quoted == 0 && ifs_is_null)
|
||||
{
|
||||
temp = tt; /* Posix interp 888 */
|
||||
}
|
||||
else if ((quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) == 0)
|
||||
{
|
||||
temp = tt ? quote_escapes (tt) : (char *)NULL;
|
||||
FREE (tt);
|
||||
@@ -7734,7 +7754,6 @@ pos_params_pat_subst (string, pat, rep, mflags)
|
||||
qflags = (mflags & MATCH_QUOTED) == MATCH_QUOTED ? Q_DOUBLE_QUOTES : 0;
|
||||
|
||||
ret = string_list_pos_params (pchar, save, qflags);
|
||||
|
||||
dispose_words (save);
|
||||
|
||||
return (ret);
|
||||
@@ -7872,7 +7891,11 @@ parameter_brace_patsub (varname, value, ind, patsub, quoted, pflags, flags)
|
||||
break;
|
||||
case VT_POSPARMS:
|
||||
temp = pos_params_pat_subst (val, p, rep, mflags);
|
||||
if (temp && (mflags & MATCH_QUOTED) == 0)
|
||||
if (temp && quoted == 0 && ifs_is_null)
|
||||
{
|
||||
/* Posix interp 888 */
|
||||
}
|
||||
else if (temp && (mflags & MATCH_QUOTED) == 0)
|
||||
{
|
||||
tt = quote_escapes (temp);
|
||||
free (temp);
|
||||
@@ -8021,7 +8044,11 @@ parameter_brace_casemod (varname, value, ind, modspec, patspec, quoted, flags)
|
||||
|
||||
case VT_POSPARMS:
|
||||
temp = pos_params_modcase (val, pat, modop, mflags);
|
||||
if (temp && (mflags & MATCH_QUOTED) == 0)
|
||||
if (temp && quoted == 0 && ifs_is_null)
|
||||
{
|
||||
/* Posix interp 888 */
|
||||
}
|
||||
else if (temp && (mflags & MATCH_QUOTED) == 0)
|
||||
{
|
||||
tt = quote_escapes (temp);
|
||||
free (temp);
|
||||
@@ -8479,14 +8506,14 @@ parameter_brace_expand (string, indexp, quoted, pflags, quoted_dollar_atp, conta
|
||||
if (want_substring)
|
||||
{
|
||||
temp1 = parameter_brace_substring (name, temp, ind, value, quoted, (tflag & W_ARRAYIND) ? AV_USEIND : 0);
|
||||
FREE (name);
|
||||
FREE (value);
|
||||
FREE (temp);
|
||||
|
||||
if (temp1 == &expand_param_error)
|
||||
return (&expand_wdesc_error);
|
||||
else if (temp1 == &expand_param_fatal)
|
||||
return (&expand_wdesc_fatal);
|
||||
if (temp1 == &expand_param_error || temp1 == &expand_param_fatal)
|
||||
{
|
||||
FREE (name);
|
||||
return (temp1 == &expand_param_error ? &expand_wdesc_error : &expand_wdesc_fatal);
|
||||
}
|
||||
|
||||
ret = alloc_word_desc ();
|
||||
ret->word = temp1;
|
||||
@@ -8498,19 +8525,24 @@ parameter_brace_expand (string, indexp, quoted, pflags, quoted_dollar_atp, conta
|
||||
(quoted_dollar_atp == 0 || *quoted_dollar_atp == 0) &&
|
||||
QUOTED_NULL (temp1) && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)))
|
||||
ret->flags |= W_QUOTED|W_HASQUOTEDNULL;
|
||||
/* Special handling for $* when unquoted and $IFS is null. Posix interp 888 */
|
||||
else if (temp1 && (name[0] == '*' && name[1] == 0) && quoted == 0 && ifs_is_null)
|
||||
ret->flags |= W_SPLITSPACE; /* Posix interp 888 */
|
||||
|
||||
FREE (name);
|
||||
return ret;
|
||||
}
|
||||
else if (want_patsub)
|
||||
{
|
||||
temp1 = parameter_brace_patsub (name, temp, ind, value, quoted, pflags, (tflag & W_ARRAYIND) ? AV_USEIND : 0);
|
||||
FREE (name);
|
||||
FREE (value);
|
||||
FREE (temp);
|
||||
|
||||
if (temp1 == &expand_param_error)
|
||||
return (&expand_wdesc_error);
|
||||
else if (temp1 == &expand_param_fatal)
|
||||
return (&expand_wdesc_fatal);
|
||||
if (temp1 == &expand_param_error || temp1 == &expand_param_fatal)
|
||||
{
|
||||
FREE (name);
|
||||
return (temp1 == &expand_param_error ? &expand_wdesc_error : &expand_wdesc_fatal);
|
||||
}
|
||||
|
||||
ret = alloc_word_desc ();
|
||||
ret->word = temp1;
|
||||
@@ -8518,20 +8550,25 @@ parameter_brace_expand (string, indexp, quoted, pflags, quoted_dollar_atp, conta
|
||||
(quoted_dollar_atp == 0 || *quoted_dollar_atp == 0) &&
|
||||
QUOTED_NULL (temp1) && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)))
|
||||
ret->flags |= W_QUOTED|W_HASQUOTEDNULL;
|
||||
/* Special handling for $* when unquoted and $IFS is null. Posix interp 888 */
|
||||
else if (temp1 && (name[0] == '*' && name[1] == 0) && quoted == 0 && ifs_is_null)
|
||||
ret->flags |= W_SPLITSPACE; /* Posix interp 888 */
|
||||
|
||||
FREE (name);
|
||||
return ret;
|
||||
}
|
||||
#if defined (CASEMOD_EXPANSIONS)
|
||||
else if (want_casemod)
|
||||
{
|
||||
temp1 = parameter_brace_casemod (name, temp, ind, modspec, value, quoted, (tflag & W_ARRAYIND) ? AV_USEIND : 0);
|
||||
FREE (name);
|
||||
FREE (value);
|
||||
FREE (temp);
|
||||
|
||||
if (temp1 == &expand_param_error)
|
||||
return (&expand_wdesc_error);
|
||||
else if (temp1 == &expand_param_fatal)
|
||||
return (&expand_wdesc_fatal);
|
||||
if (temp1 == &expand_param_error || temp1 == &expand_param_fatal)
|
||||
{
|
||||
FREE (name);
|
||||
return (temp1 == &expand_param_error ? &expand_wdesc_error : &expand_wdesc_fatal);
|
||||
}
|
||||
|
||||
ret = alloc_word_desc ();
|
||||
ret->word = temp1;
|
||||
@@ -8539,6 +8576,11 @@ parameter_brace_expand (string, indexp, quoted, pflags, quoted_dollar_atp, conta
|
||||
(quoted_dollar_atp == 0 || *quoted_dollar_atp == 0) &&
|
||||
QUOTED_NULL (temp1) && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)))
|
||||
ret->flags |= W_QUOTED|W_HASQUOTEDNULL;
|
||||
/* Special handling for $* when unquoted and $IFS is null. Posix interp 888 */
|
||||
else if (temp1 && (name[0] == '*' && name[1] == 0) && quoted == 0 && ifs_is_null)
|
||||
ret->flags |= W_SPLITSPACE; /* Posix interp 888 */
|
||||
|
||||
FREE (name);
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
@@ -8566,10 +8608,11 @@ bad_substitution:
|
||||
temp1 = parameter_brace_transform (name, temp, ind, value, c, quoted, (tflag & W_ARRAYIND) ? AV_USEIND : 0);
|
||||
free (temp);
|
||||
free (value);
|
||||
free (name);
|
||||
|
||||
if (temp1 == &expand_param_error || temp1 == &expand_param_fatal)
|
||||
{
|
||||
last_command_exit_value = EXECUTION_FAILURE;
|
||||
free (name);
|
||||
last_command_exit_value = EXECUTION_FAILURE;
|
||||
report_error (_("%s: bad substitution"), string ? string : "??");
|
||||
return (temp1 == &expand_param_error ? &expand_wdesc_error : &expand_wdesc_fatal);
|
||||
}
|
||||
@@ -8578,6 +8621,11 @@ bad_substitution:
|
||||
ret->word = temp1;
|
||||
if (temp1 && QUOTED_NULL (temp1) && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)))
|
||||
ret->flags |= W_QUOTED|W_HASQUOTEDNULL;
|
||||
/* Special handling for $* when unquoted and $IFS is null. Posix interp 888 */
|
||||
else if (temp1 && (name[0] == '*' && name[1] == 0) && quoted == 0 && ifs_is_null)
|
||||
ret->flags |= W_SPLITSPACE; /* Posix interp 888 */
|
||||
|
||||
free (name);
|
||||
return ret;
|
||||
|
||||
case '#': /* ${param#[#]pattern} */
|
||||
@@ -8590,12 +8638,16 @@ bad_substitution:
|
||||
temp1 = parameter_brace_remove_pattern (name, temp, ind, value, c, quoted, (tflag & W_ARRAYIND) ? AV_USEIND : 0);
|
||||
free (temp);
|
||||
free (value);
|
||||
free (name);
|
||||
|
||||
ret = alloc_word_desc ();
|
||||
ret->word = temp1;
|
||||
if (temp1 && QUOTED_NULL (temp1) && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)))
|
||||
ret->flags |= W_QUOTED|W_HASQUOTEDNULL;
|
||||
/* Special handling for $* when unquoted and $IFS is null. Posix interp 888 */
|
||||
else if (temp1 && (name[0] == '*' && name[1] == 0) && quoted == 0 && ifs_is_null)
|
||||
ret->flags |= W_SPLITSPACE; /* Posix interp 888 */
|
||||
|
||||
free (name);
|
||||
return ret;
|
||||
|
||||
case '-':
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* subst.h -- Names of externally visible functions in subst.c. */
|
||||
|
||||
/* Copyright (C) 1993-2015 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1993-2017 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Bash, the Bourne Again SHell.
|
||||
|
||||
@@ -52,6 +52,8 @@
|
||||
#define ASS_FORCE 0x0020 /* force assignment even to readonly variable */
|
||||
#define ASS_CHKLOCAL 0x0040 /* check local variable before assignment */
|
||||
#define ASS_NOEXPAND 0x0080 /* don't expand associative array subscripts */
|
||||
#define ASS_NOEVAL 0x0100 /* don't evaluate value as expression */
|
||||
#define ASS_NOLONGJMP 0x0200 /* don't longjmp on fatal assignment error */
|
||||
|
||||
/* Flags for the string extraction functions. */
|
||||
#define SX_NOALLOC 0x0001 /* just skip; don't return substring */
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
|
||||
@@ -38,3 +38,4 @@ unalias foo bar baz
|
||||
|
||||
${THIS_SH} ./alias1.sub
|
||||
${THIS_SH} ./alias2.sub
|
||||
${THIS_SH} ./alias3.sub
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
#!/bin/bash
|
||||
shopt -s expand_aliases
|
||||
alias foo='oneword'
|
||||
foo_word='foo'
|
||||
#
|
||||
# Fails silently to match 'foo':
|
||||
#
|
||||
case "$foo_word"
|
||||
in
|
||||
foo) ;;
|
||||
*) echo bad 1;;
|
||||
esac
|
||||
+12
-4
@@ -557,8 +557,12 @@ def ghi
|
||||
jkl
|
||||
----
|
||||
IFS= ${var-$*}
|
||||
abcdef ghijkl
|
||||
abcdef ghijkl
|
||||
abc
|
||||
def ghi
|
||||
jkl
|
||||
abc
|
||||
def ghi
|
||||
jkl
|
||||
----
|
||||
IFS= ${var=$*}
|
||||
abcdef ghijkl
|
||||
@@ -567,5 +571,9 @@ abcdef ghijkl
|
||||
var=abcdef ghijkl
|
||||
----
|
||||
IFS= ${var+$*}
|
||||
abcdef ghijkl
|
||||
abcdef ghijkl
|
||||
abc
|
||||
def ghi
|
||||
jkl
|
||||
abc
|
||||
def ghi
|
||||
jkl
|
||||
|
||||
+8
-4
@@ -179,7 +179,7 @@ a b
|
||||
<a><b><c><d>
|
||||
<a><b><c><d>
|
||||
<a><b><c d>
|
||||
<abc d>
|
||||
<a><b><c d>
|
||||
<a><b>
|
||||
<a:b>
|
||||
<a><b>
|
||||
@@ -480,8 +480,10 @@ argv[2] = <b>
|
||||
argv[3] = <c>
|
||||
argv[4] = <d>
|
||||
argv[1] = <a b c d>
|
||||
<1>
|
||||
<abcdef ghijkl>
|
||||
<3>
|
||||
<abc>
|
||||
<def ghi>
|
||||
<jkl>
|
||||
<3>
|
||||
<abc>
|
||||
<def ghi>
|
||||
@@ -489,7 +491,9 @@ argv[1] = <a b c d>
|
||||
<abc>
|
||||
<def ghi>
|
||||
<jkl>
|
||||
<abcdef ghijkl>
|
||||
<abc>
|
||||
<def ghi>
|
||||
<jkl>
|
||||
<abcdef ghijkl>
|
||||
<abc>
|
||||
<def ghi>
|
||||
|
||||
+3
-1
@@ -291,7 +291,9 @@ var=abc:def ghi:jkl
|
||||
abcdef ghijkl
|
||||
abcdef ghijkl
|
||||
abcdef ghijkl
|
||||
abcdef ghijkl
|
||||
abc
|
||||
def ghi
|
||||
jkl
|
||||
abcdef ghijkl
|
||||
abcdef ghijkl
|
||||
abcdef ghijkl
|
||||
|
||||
+30
-15
@@ -2662,8 +2662,11 @@ make_variable_value (var, value, flags)
|
||||
then do expression evaluation on it and store the result. The
|
||||
functions in expr.c (evalexp()) and bind_int_variable() are responsible
|
||||
for turning off the integer flag if they don't want further
|
||||
evaluation done. */
|
||||
if (integer_p (var))
|
||||
evaluation done. Callers that find it inconvenient to do this can set
|
||||
the ASS_NOEVAL flag. For the special case of arithmetic expression
|
||||
evaluation, the caller can set ASS_NOLONGJMP to avoid jumping out to
|
||||
top_level. */
|
||||
if ((flags & ASS_NOEVAL) == 0 && integer_p (var))
|
||||
{
|
||||
if (flags & ASS_APPEND)
|
||||
{
|
||||
@@ -2671,15 +2674,25 @@ make_variable_value (var, value, flags)
|
||||
lval = evalexp (oval, 0, &expok); /* ksh93 seems to do this */
|
||||
if (expok == 0)
|
||||
{
|
||||
top_level_cleanup ();
|
||||
jump_to_top_level (DISCARD);
|
||||
if (flags & ASS_NOLONGJMP)
|
||||
goto make_value;
|
||||
else
|
||||
{
|
||||
top_level_cleanup ();
|
||||
jump_to_top_level (DISCARD);
|
||||
}
|
||||
}
|
||||
}
|
||||
rval = evalexp (value, 0, &expok);
|
||||
if (expok == 0)
|
||||
{
|
||||
top_level_cleanup ();
|
||||
jump_to_top_level (DISCARD);
|
||||
if (flags & ASS_NOLONGJMP)
|
||||
goto make_value;
|
||||
else
|
||||
{
|
||||
top_level_cleanup ();
|
||||
jump_to_top_level (DISCARD);
|
||||
}
|
||||
}
|
||||
/* This can be fooled if the variable's value changes while evaluating
|
||||
`rval'. We can change it if we move the evaluation of lval to here. */
|
||||
@@ -2688,7 +2701,7 @@ make_variable_value (var, value, flags)
|
||||
retval = itos (rval);
|
||||
}
|
||||
#if defined (CASEMOD_ATTRS)
|
||||
else if (capcase_p (var) || uppercase_p (var) || lowercase_p (var))
|
||||
else if ((flags & ASS_NOEVAL) == 0 && (capcase_p (var) || uppercase_p (var) || lowercase_p (var)))
|
||||
{
|
||||
if (flags & ASS_APPEND)
|
||||
{
|
||||
@@ -2717,6 +2730,7 @@ make_variable_value (var, value, flags)
|
||||
#endif /* CASEMOD_ATTRS */
|
||||
else if (value)
|
||||
{
|
||||
make_value:
|
||||
if (flags & ASS_APPEND)
|
||||
{
|
||||
oval = get_variable_value (var);
|
||||
@@ -2789,7 +2803,8 @@ optimized_assignment (entry, value, aflags)
|
||||
}
|
||||
|
||||
/* Bind a variable NAME to VALUE in the HASH_TABLE TABLE, which may be the
|
||||
temporary environment (but usually is not). */
|
||||
temporary environment (but usually is not). HFLAGS controls how NAME
|
||||
is looked up in TABLE; AFLAGS controls how VALUE is assigned */
|
||||
static SHELL_VAR *
|
||||
bind_variable_internal (name, value, table, hflags, aflags)
|
||||
const char *name;
|
||||
@@ -2842,21 +2857,21 @@ bind_variable_internal (name, value, table, hflags, aflags)
|
||||
}
|
||||
free (tname);
|
||||
/* XXX - should it be aflags? */
|
||||
entry = assign_array_element (newval, make_variable_value (entry, value, 0), aflags|ASS_NAMEREF);
|
||||
entry = assign_array_element (newval, make_variable_value (entry, value, aflags), aflags|ASS_NAMEREF);
|
||||
if (entry == 0)
|
||||
return entry;
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
entry = make_new_variable (newval, table);
|
||||
var_setvalue (entry, make_variable_value (entry, value, 0));
|
||||
}
|
||||
{
|
||||
entry = make_new_variable (newval, table);
|
||||
var_setvalue (entry, make_variable_value (entry, value, aflags));
|
||||
}
|
||||
}
|
||||
else if (entry == 0)
|
||||
{
|
||||
entry = make_new_variable (name, table);
|
||||
var_setvalue (entry, make_variable_value (entry, value, 0)); /* XXX */
|
||||
var_setvalue (entry, make_variable_value (entry, value, aflags)); /* XXX */
|
||||
}
|
||||
else if (entry->assign_func) /* array vars have assign functions now */
|
||||
{
|
||||
@@ -4179,7 +4194,7 @@ push_temp_var (data)
|
||||
binding_table = shell_variables->table = hash_create (TEMPENV_HASH_BUCKETS);
|
||||
}
|
||||
|
||||
v = bind_variable_internal (var->name, value_cell (var), binding_table, 0, ASS_FORCE);
|
||||
v = bind_variable_internal (var->name, value_cell (var), binding_table, 0, ASS_FORCE|ASS_NOLONGJMP);
|
||||
|
||||
/* XXX - should we set the context here? It shouldn't matter because of how
|
||||
assign_in_env works, but might want to check. */
|
||||
|
||||
Reference in New Issue
Block a user