commit bash-20170331 snapshot

This commit is contained in:
Chet Ramey
2017-04-03 10:31:01 -04:00
parent 124d67cde0
commit 7c4ef411b5
29 changed files with 1892 additions and 1549 deletions
+73
View File
@@ -13509,3 +13509,76 @@ subst.c
so that splitting on spaces is performed on the already-quoted word.
Fixes bug reported by Grisha Levit <grishalevit@gmail.com>
3/28
----
subst.c
- process_substitute: change so the subshell doesn't inherit the 'v'
option, like command substitution now does (as of bash-4.4).
Suggested by Grisha Levit <grishalevit@gmail.com>
3/30
----
subst.c
- parameter_brace_casemod: now takes a pflags parameter, like
parameter_brace_patsub; changed callers
- parameter_brace_transform: now takes a pflags parameter, like
parameter_brace_patsub; changed callers
- pos_params_pat_subst,pos_params_modcase: if mflags indicates we're
on the rhs of an assignment statement and not going to perform
word splitting, we're expanding $*, and $IFS is null, make sure
string_list_pos_params treats the expansion as double-quoted, so
the positional parameters will be concatenated. Fixes bug reported
by Grisha Levit <grishalevit@gmail.com>
3/31
----
doc/{bash.1,bashref.texi}
- add notes to the description of pipelines emphasizing that each
element of a pipeline is executed in a subshell, referring to the
description of a command execution environment, and that the
lastpipe option can modify that behavior. From a discussion with
Jean Delvare <jdelvare@suse.de>
4/1
---
subst.c
- expand_word_internal: set had_quoted_null to note for later if we
expand '', "", or "$x" when x is unset
- expand_word_internal: if we expand "$param" (or "${param}") and we
come back with a single word with the W_HAVEQUOTEDNULL flag set,
make sure we set had_quoted_null to remember it for later. In this
case, if we already have seen a quoted null and we expanded $@ in
this (sub)string expansion, we don't want to do any of the special
$@ handling. In particular, we don't want to set *expanded_something,
because that will result in word splitting and quoted null removal.
Fixes bug reported by Grisha Levit <grishalevit@gmail.com>
- parameter_brace_patsub: when expanding ${*/pat/sub} in the case
where ifs_is_null != 0 and (pflags & PF_NOSPLIT2) (meaning we aren't
going to be doing word splitting), pass MATCH_ASSIGNRHS so we do
the right thing in this case. Part of a set of cases inspired by
Grisha Levit <grishalevit@gmail.com>
- param_expand: case '*': if we are on the rhs of an assignment
(PF_ASSIGNRHS) and ifs is unset, and $1 == " ", we need to make sure
string_list_dollar_at gets called with Q_DOUBLE_QUOTES so it quotes
the positional parameters before joining them into a string with
string_list_internal. Otherwise, that first space gets removed by
the implicit word splitting that gets performed. Reported by
Grisha Levit <grishalevit@gmail.com>
array.c
- array_patsub,array_modcase: handle ${A[*]} identically to $* when
not quoted and IFS is null (separate with spaces). Makes things
like ${A[*]/x/y} behave the same as ${*/x/y} when IFS is null
subst.c
- parameter_brace_patsub,parameter_brace_casemod: if expanding ${A[*]}
when the match is on the rhs of an assignment statement (PF_ASSIGNRHS)
and ifs is null, make sure the match is performed as if it were
quoted
- parameter_brace_substring: now takes a PFLAGS argument
- parameter_brace_substring: if expanding $* in a context where we
don't want to do word splitting (expand_no_split_dollar_star &&
PF_NOSPLIT2), make sure we expand $* as if it were quoted
- parameter_brace_substring: if expanding an unquoted $* on the rhs of
an assignment statement when IFS is null, make sure we expand the $*
as if it were quoted
+3
View File
@@ -945,6 +945,7 @@ tests/dollar-at3.sub f
tests/dollar-at4.sub f
tests/dollar-at5.sub f
tests/dollar-at6.sub f
tests/dollar-at7.sub f
tests/dollar-star1.sub f
tests/dollar-star2.sub f
tests/dollar-star3.sub f
@@ -953,6 +954,7 @@ tests/dollar-star5.sub f
tests/dollar-star6.sub f
tests/dollar-star7.sub f
tests/dollar-star8.sub f
tests/dollar-star9.sub f
tests/dollar.right f
tests/dstack.tests f
tests/dstack.right f
@@ -994,6 +996,7 @@ tests/exp6.sub f
tests/exp7.sub f
tests/exp8.sub f
tests/exp9.sub f
tests/exp10.sub f
tests/exportfunc.tests f
tests/exportfunc.right f
tests/exportfunc1.sub f
+14 -4
View File
@@ -63,6 +63,8 @@
static char *array_to_string_internal __P((ARRAY_ELEMENT *, ARRAY_ELEMENT *, char *, int));
static char *spacesep = " ";
#define IS_LASTREF(a) (a->lastref)
#define LASTREF_START(a, i) \
@@ -489,9 +491,13 @@ int mflags;
if (mflags & MATCH_STARSUB) {
array_remove_quoted_nulls (a2);
sifs = ifs_firstchar((int *)NULL);
if ((mflags & MATCH_QUOTED) == 0 && ifs_is_null)
sifs = spacesep;
else
sifs = ifs_firstchar((int *)NULL);
t = array_to_string (a2, sifs, 0);
free(sifs);
if (sifs != spacesep)
free(sifs);
} else if (mflags & MATCH_QUOTED) {
/* ${array[@]} */
sifs = ifs_firstchar (&slen);
@@ -540,9 +546,13 @@ int mflags;
if (mflags & MATCH_STARSUB) {
array_remove_quoted_nulls (a2);
sifs = ifs_firstchar((int *)NULL);
if ((mflags & MATCH_QUOTED) == 0 && ifs_is_null)
sifs = spacesep;
else
sifs = ifs_firstchar((int *)NULL);
t = array_to_string (a2, sifs, 0);
free(sifs);
if (sifs != spacesep)
free(sifs);
} else if (mflags & MATCH_QUOTED) {
/* ${array[@]} */
sifs = ifs_firstchar (&slen);
+9 -2
View File
@@ -590,6 +590,13 @@ the time information.
.PP
Each command in a pipeline is executed as a separate process (i.e., in a
subshell).
See
.SM
\fBCOMMAND EXECUTION ENVIRONMENT\fP
for a description of a subshell environment.
If the \fBlastpipe\fP option is enabled using the \fBshopt\fP builtin
(see the description of \fBshopt\fP below),
the last element of a pipeline may be run by the shell process.
.SS Lists
.PP
A \fIlist\fP is a sequence of one or more pipelines separated by one
@@ -640,7 +647,7 @@ An AND list has the form
.I command2
is executed if, and only if,
.I command1
returns an exit status of zero.
returns an exit status of zero (success).
.PP
An OR list has the form
.RS
@@ -1142,7 +1149,7 @@ question mark
.TP
.B \e\fInnn\fP
the eight-bit character whose value is the octal value \fInnn\fP
(one to three digits)
(one to three octal digits)
.TP
.B \ex\fIHH\fP
the eight-bit character whose value is the hexadecimal value \fIHH\fP
+88 -88
View File
@@ -81,30 +81,30 @@
@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{Special Parameters-pg}{21}
@xrdef{Brace Expansion-title}{Brace Expansion}
@xrdef{Brace Expansion-snt}{Section@tie 3.5.1}
@xrdef{Shell Expansions-pg}{22}
@xrdef{Brace Expansion-pg}{22}
@xrdef{Tilde Expansion-title}{Tilde Expansion}
@xrdef{Tilde Expansion-snt}{Section@tie 3.5.2}
@xrdef{Tilde Expansion-pg}{23}
@xrdef{Shell Parameter Expansion-title}{Shell Parameter Expansion}
@xrdef{Shell Parameter Expansion-snt}{Section@tie 3.5.3}
@xrdef{Tilde Expansion-pg}{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{Word Splitting-title}{Word Splitting}
@xrdef{Word Splitting-snt}{Section@tie 3.5.7}
@xrdef{Command Substitution-pg}{30}
@xrdef{Arithmetic Expansion-pg}{30}
@xrdef{Process Substitution-pg}{30}
@xrdef{Word Splitting-title}{Word Splitting}
@xrdef{Word Splitting-snt}{Section@tie 3.5.7}
@xrdef{Filename Expansion-title}{Filename Expansion}
@xrdef{Filename Expansion-snt}{Section@tie 3.5.8}
@xrdef{Word Splitting-pg}{31}
@@ -122,10 +122,10 @@
@xrdef{Executing Commands-snt}{Section@tie 3.7}
@xrdef{Simple Command Expansion-title}{Simple Command Expansion}
@xrdef{Simple Command Expansion-snt}{Section@tie 3.7.1}
@xrdef{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 Search and Execution-title}{Command Search and Execution}
@xrdef{Command Search and Execution-snt}{Section@tie 3.7.2}
@xrdef{Command Execution Environment-title}{Command Execution Environment}
@xrdef{Command Execution Environment-snt}{Section@tie 3.7.3}
@xrdef{Command Search and Execution-pg}{38}
@@ -146,92 +146,92 @@
@xrdef{Shell Builtin Commands-snt}{Chapter@tie 4}
@xrdef{Bourne Shell Builtins-title}{Bourne Shell Builtins}
@xrdef{Bourne Shell Builtins-snt}{Section@tie 4.1}
@xrdef{Shell Builtin Commands-pg}{42}
@xrdef{Bourne Shell Builtins-pg}{42}
@xrdef{Shell Builtin Commands-pg}{43}
@xrdef{Bourne Shell Builtins-pg}{43}
@xrdef{Bash Builtins-title}{Bash Builtin Commands}
@xrdef{Bash Builtins-snt}{Section@tie 4.2}
@xrdef{Bash Builtins-pg}{49}
@xrdef{Bash Builtins-pg}{50}
@xrdef{Modifying Shell Behavior-title}{Modifying Shell Behavior}
@xrdef{Modifying Shell Behavior-snt}{Section@tie 4.3}
@xrdef{The Set Builtin-title}{The Set Builtin}
@xrdef{The Set Builtin-snt}{Section@tie 4.3.1}
@xrdef{Modifying Shell Behavior-pg}{60}
@xrdef{The Set Builtin-pg}{60}
@xrdef{Modifying Shell Behavior-pg}{61}
@xrdef{The Set Builtin-pg}{61}
@xrdef{The Shopt Builtin-title}{The Shopt Builtin}
@xrdef{The Shopt Builtin-snt}{Section@tie 4.3.2}
@xrdef{The Shopt Builtin-pg}{64}
@xrdef{The Shopt Builtin-pg}{65}
@xrdef{Special Builtins-title}{Special Builtins}
@xrdef{Special Builtins-snt}{Section@tie 4.4}
@xrdef{Special Builtins-pg}{70}
@xrdef{Special Builtins-pg}{71}
@xrdef{Shell Variables-title}{Shell Variables}
@xrdef{Shell Variables-snt}{Chapter@tie 5}
@xrdef{Bourne Shell Variables-title}{Bourne Shell Variables}
@xrdef{Bourne Shell Variables-snt}{Section@tie 5.1}
@xrdef{Bash Variables-title}{Bash Variables}
@xrdef{Bash Variables-snt}{Section@tie 5.2}
@xrdef{Shell Variables-pg}{71}
@xrdef{Bourne Shell Variables-pg}{71}
@xrdef{Bash Variables-pg}{71}
@xrdef{Shell Variables-pg}{72}
@xrdef{Bourne Shell Variables-pg}{72}
@xrdef{Bash Variables-pg}{72}
@xrdef{Bash Features-title}{Bash Features}
@xrdef{Bash Features-snt}{Chapter@tie 6}
@xrdef{Invoking Bash-title}{Invoking Bash}
@xrdef{Invoking Bash-snt}{Section@tie 6.1}
@xrdef{Bash Features-pg}{83}
@xrdef{Invoking Bash-pg}{83}
@xrdef{Bash Features-pg}{84}
@xrdef{Invoking Bash-pg}{84}
@xrdef{Bash Startup Files-title}{Bash Startup Files}
@xrdef{Bash Startup Files-snt}{Section@tie 6.2}
@xrdef{Bash Startup Files-pg}{85}
@xrdef{Bash Startup Files-pg}{86}
@xrdef{Interactive Shells-title}{Interactive Shells}
@xrdef{Interactive Shells-snt}{Section@tie 6.3}
@xrdef{What is an Interactive Shell?-title}{What is an Interactive Shell?}
@xrdef{What is an Interactive Shell?-snt}{Section@tie 6.3.1}
@xrdef{Interactive Shells-pg}{86}
@xrdef{Interactive Shells-pg}{87}
@xrdef{Is this Shell Interactive?-title}{Is this Shell Interactive?}
@xrdef{Is this Shell Interactive?-snt}{Section@tie 6.3.2}
@xrdef{Interactive Shell Behavior-title}{Interactive Shell Behavior}
@xrdef{Interactive Shell Behavior-snt}{Section@tie 6.3.3}
@xrdef{What is an Interactive Shell?-pg}{87}
@xrdef{Is this Shell Interactive?-pg}{87}
@xrdef{Interactive Shell Behavior-pg}{87}
@xrdef{What is an Interactive Shell?-pg}{88}
@xrdef{Is this Shell Interactive?-pg}{88}
@xrdef{Interactive Shell Behavior-pg}{88}
@xrdef{Bash Conditional Expressions-title}{Bash Conditional Expressions}
@xrdef{Bash Conditional Expressions-snt}{Section@tie 6.4}
@xrdef{Bash Conditional Expressions-pg}{88}
@xrdef{Bash Conditional Expressions-pg}{89}
@xrdef{Shell Arithmetic-title}{Shell Arithmetic}
@xrdef{Shell Arithmetic-snt}{Section@tie 6.5}
@xrdef{Shell Arithmetic-pg}{90}
@xrdef{Shell Arithmetic-pg}{91}
@xrdef{Aliases-title}{Aliases}
@xrdef{Aliases-snt}{Section@tie 6.6}
@xrdef{Aliases-pg}{91}
@xrdef{Aliases-pg}{92}
@xrdef{Arrays-title}{Arrays}
@xrdef{Arrays-snt}{Section@tie 6.7}
@xrdef{Arrays-pg}{92}
@xrdef{Arrays-pg}{93}
@xrdef{The Directory Stack-title}{The Directory Stack}
@xrdef{The Directory Stack-snt}{Section@tie 6.8}
@xrdef{Directory Stack Builtins-title}{Directory Stack Builtins}
@xrdef{Directory Stack Builtins-snt}{Section@tie 6.8.1}
@xrdef{The Directory Stack-pg}{94}
@xrdef{Directory Stack Builtins-pg}{94}
@xrdef{The Directory Stack-pg}{95}
@xrdef{Directory Stack Builtins-pg}{95}
@xrdef{Controlling the Prompt-title}{Controlling the Prompt}
@xrdef{Controlling the Prompt-snt}{Section@tie 6.9}
@xrdef{Controlling the Prompt-pg}{95}
@xrdef{Controlling the Prompt-pg}{96}
@xrdef{The Restricted Shell-title}{The Restricted Shell}
@xrdef{The Restricted Shell-snt}{Section@tie 6.10}
@xrdef{The Restricted Shell-pg}{96}
@xrdef{The Restricted Shell-pg}{97}
@xrdef{Bash POSIX Mode-title}{Bash POSIX Mode}
@xrdef{Bash POSIX Mode-snt}{Section@tie 6.11}
@xrdef{Bash POSIX Mode-pg}{97}
@xrdef{Bash POSIX Mode-pg}{98}
@xrdef{Job Control-title}{Job Control}
@xrdef{Job Control-snt}{Chapter@tie 7}
@xrdef{Job Control Basics-title}{Job Control Basics}
@xrdef{Job Control Basics-snt}{Section@tie 7.1}
@xrdef{Job Control-pg}{101}
@xrdef{Job Control Basics-pg}{101}
@xrdef{Job Control-pg}{102}
@xrdef{Job Control Basics-pg}{102}
@xrdef{Job Control Builtins-title}{Job Control Builtins}
@xrdef{Job Control Builtins-snt}{Section@tie 7.2}
@xrdef{Job Control Builtins-pg}{102}
@xrdef{Job Control Builtins-pg}{103}
@xrdef{Job Control Variables-title}{Job Control Variables}
@xrdef{Job Control Variables-snt}{Section@tie 7.3}
@xrdef{Job Control Variables-pg}{104}
@xrdef{Job Control Variables-pg}{105}
@xrdef{Command Line Editing-title}{Command Line Editing}
@xrdef{Command Line Editing-snt}{Chapter@tie 8}
@xrdef{Introduction and Notation-title}{Introduction to Line Editing}
@@ -240,145 +240,145 @@
@xrdef{Readline Interaction-snt}{Section@tie 8.2}
@xrdef{Readline Bare Essentials-title}{Readline Bare Essentials}
@xrdef{Readline Bare Essentials-snt}{Section@tie 8.2.1}
@xrdef{Command Line Editing-pg}{105}
@xrdef{Introduction and Notation-pg}{105}
@xrdef{Readline Interaction-pg}{105}
@xrdef{Command Line Editing-pg}{106}
@xrdef{Introduction and Notation-pg}{106}
@xrdef{Readline Interaction-pg}{106}
@xrdef{Readline Movement Commands-title}{Readline Movement Commands}
@xrdef{Readline Movement Commands-snt}{Section@tie 8.2.2}
@xrdef{Readline Killing Commands-title}{Readline Killing Commands}
@xrdef{Readline Killing Commands-snt}{Section@tie 8.2.3}
@xrdef{Readline Bare Essentials-pg}{106}
@xrdef{Readline Movement Commands-pg}{106}
@xrdef{Readline Bare Essentials-pg}{107}
@xrdef{Readline Movement Commands-pg}{107}
@xrdef{Readline Arguments-title}{Readline Arguments}
@xrdef{Readline Arguments-snt}{Section@tie 8.2.4}
@xrdef{Searching-title}{Searching for Commands in the History}
@xrdef{Searching-snt}{Section@tie 8.2.5}
@xrdef{Readline Killing Commands-pg}{107}
@xrdef{Readline Arguments-pg}{107}
@xrdef{Searching-pg}{107}
@xrdef{Readline Killing Commands-pg}{108}
@xrdef{Readline Arguments-pg}{108}
@xrdef{Searching-pg}{108}
@xrdef{Readline Init File-title}{Readline Init File}
@xrdef{Readline Init File-snt}{Section@tie 8.3}
@xrdef{Readline Init File Syntax-title}{Readline Init File Syntax}
@xrdef{Readline Init File Syntax-snt}{Section@tie 8.3.1}
@xrdef{Readline Init File-pg}{108}
@xrdef{Readline Init File Syntax-pg}{108}
@xrdef{Readline Init File-pg}{109}
@xrdef{Readline Init File Syntax-pg}{109}
@xrdef{Conditional Init Constructs-title}{Conditional Init Constructs}
@xrdef{Conditional Init Constructs-snt}{Section@tie 8.3.2}
@xrdef{Conditional Init Constructs-pg}{116}
@xrdef{Conditional Init Constructs-pg}{117}
@xrdef{Sample Init File-title}{Sample Init File}
@xrdef{Sample Init File-snt}{Section@tie 8.3.3}
@xrdef{Sample Init File-pg}{117}
@xrdef{Sample Init File-pg}{118}
@xrdef{Bindable Readline Commands-title}{Bindable Readline Commands}
@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{Bindable Readline Commands-pg}{120}
@xrdef{Commands For Moving-pg}{120}
@xrdef{Bindable Readline Commands-pg}{121}
@xrdef{Commands For Moving-pg}{121}
@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 History-pg}{122}
@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 Text-pg}{123}
@xrdef{Commands For Killing-title}{Killing And Yanking}
@xrdef{Commands For Killing-snt}{Section@tie 8.4.4}
@xrdef{Commands For Killing-pg}{124}
@xrdef{Commands For Killing-pg}{125}
@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}
@xrdef{Commands For Completion-snt}{Section@tie 8.4.6}
@xrdef{Numeric Arguments-pg}{125}
@xrdef{Commands For Completion-pg}{125}
@xrdef{Numeric Arguments-pg}{126}
@xrdef{Commands For Completion-pg}{126}
@xrdef{Keyboard Macros-title}{Keyboard Macros}
@xrdef{Keyboard Macros-snt}{Section@tie 8.4.7}
@xrdef{Miscellaneous Commands-title}{Some Miscellaneous Commands}
@xrdef{Miscellaneous Commands-snt}{Section@tie 8.4.8}
@xrdef{Keyboard Macros-pg}{127}
@xrdef{Miscellaneous Commands-pg}{127}
@xrdef{Keyboard Macros-pg}{128}
@xrdef{Miscellaneous Commands-pg}{128}
@xrdef{Readline vi Mode-title}{Readline vi Mode}
@xrdef{Readline vi Mode-snt}{Section@tie 8.5}
@xrdef{Readline vi Mode-pg}{129}
@xrdef{Readline vi Mode-pg}{130}
@xrdef{Programmable Completion-title}{Programmable Completion}
@xrdef{Programmable Completion-snt}{Section@tie 8.6}
@xrdef{Programmable Completion-pg}{130}
@xrdef{Programmable Completion-pg}{131}
@xrdef{Programmable Completion Builtins-title}{Programmable Completion Builtins}
@xrdef{Programmable Completion Builtins-snt}{Section@tie 8.7}
@xrdef{Programmable Completion Builtins-pg}{132}
@xrdef{Programmable Completion Builtins-pg}{133}
@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}{136}
@xrdef{A Programmable Completion Example-pg}{137}
@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}{139}
@xrdef{Bash History Facilities-pg}{139}
@xrdef{Bash History Builtins-pg}{139}
@xrdef{Using History Interactively-pg}{140}
@xrdef{Bash History Facilities-pg}{140}
@xrdef{Bash History Builtins-pg}{140}
@xrdef{History Interaction-title}{History Expansion}
@xrdef{History Interaction-snt}{Section@tie 9.3}
@xrdef{History Interaction-pg}{141}
@xrdef{History Interaction-pg}{142}
@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}{142}
@xrdef{Word Designators-pg}{142}
@xrdef{Event Designators-pg}{143}
@xrdef{Word Designators-pg}{143}
@xrdef{Modifiers-title}{Modifiers}
@xrdef{Modifiers-snt}{Section@tie 9.3.3}
@xrdef{Modifiers-pg}{143}
@xrdef{Modifiers-pg}{144}
@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}{144}
@xrdef{Basic Installation-pg}{144}
@xrdef{Installing Bash-pg}{145}
@xrdef{Basic Installation-pg}{145}
@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}{145}
@xrdef{Compiling For Multiple Architectures-pg}{145}
@xrdef{Installation Names-pg}{145}
@xrdef{Specifying the System Type-pg}{145}
@xrdef{Compilers and Options-pg}{146}
@xrdef{Compiling For Multiple Architectures-pg}{146}
@xrdef{Installation Names-pg}{146}
@xrdef{Specifying the System Type-pg}{146}
@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}{146}
@xrdef{Operation Controls-pg}{146}
@xrdef{Optional Features-pg}{146}
@xrdef{Sharing Defaults-pg}{147}
@xrdef{Operation Controls-pg}{147}
@xrdef{Optional Features-pg}{147}
@xrdef{Reporting Bugs-title}{Reporting Bugs}
@xrdef{Reporting Bugs-snt}{Appendix@tie @char65{}}
@xrdef{Reporting Bugs-pg}{152}
@xrdef{Reporting Bugs-pg}{153}
@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}{153}
@xrdef{Major Differences From The Bourne Shell-pg}{154}
@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}{159}
@xrdef{GNU Free Documentation License-pg}{160}
@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}{167}
@xrdef{Builtin Index-pg}{167}
@xrdef{Indexes-pg}{168}
@xrdef{Builtin Index-pg}{168}
@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}{168}
@xrdef{Variable Index-pg}{169}
@xrdef{Reserved Word Index-pg}{169}
@xrdef{Variable Index-pg}{170}
@xrdef{Function Index-title}{Function Index}
@xrdef{Function Index-snt}{Section@tie @char68.4}
@xrdef{Function Index-pg}{171}
@xrdef{Function Index-pg}{172}
@xrdef{Concept Index-title}{Concept Index}
@xrdef{Concept Index-snt}{Section@tie @char68.5}
@xrdef{Concept Index-pg}{173}
@xrdef{Concept Index-pg}{174}
+59 -59
View File
@@ -1,59 +1,59 @@
\entry{:}{42}{\code {:}}
\entry{.}{42}{\code {.}}
\entry{break}{43}{\code {break}}
\entry{cd}{43}{\code {cd}}
\entry{continue}{43}{\code {continue}}
\entry{eval}{43}{\code {eval}}
\entry{exec}{44}{\code {exec}}
\entry{exit}{44}{\code {exit}}
\entry{export}{44}{\code {export}}
\entry{getopts}{44}{\code {getopts}}
\entry{hash}{45}{\code {hash}}
\entry{pwd}{45}{\code {pwd}}
\entry{readonly}{45}{\code {readonly}}
\entry{return}{46}{\code {return}}
\entry{shift}{46}{\code {shift}}
\entry{test}{46}{\code {test}}
\entry{[}{46}{\code {[}}
\entry{times}{48}{\code {times}}
\entry{trap}{48}{\code {trap}}
\entry{umask}{48}{\code {umask}}
\entry{unset}{49}{\code {unset}}
\entry{alias}{49}{\code {alias}}
\entry{bind}{49}{\code {bind}}
\entry{builtin}{50}{\code {builtin}}
\entry{caller}{51}{\code {caller}}
\entry{command}{51}{\code {command}}
\entry{declare}{51}{\code {declare}}
\entry{echo}{53}{\code {echo}}
\entry{enable}{53}{\code {enable}}
\entry{help}{54}{\code {help}}
\entry{let}{54}{\code {let}}
\entry{local}{54}{\code {local}}
\entry{logout}{55}{\code {logout}}
\entry{mapfile}{55}{\code {mapfile}}
\entry{printf}{55}{\code {printf}}
\entry{read}{56}{\code {read}}
\entry{readarray}{57}{\code {readarray}}
\entry{source}{58}{\code {source}}
\entry{type}{58}{\code {type}}
\entry{typeset}{58}{\code {typeset}}
\entry{ulimit}{58}{\code {ulimit}}
\entry{unalias}{60}{\code {unalias}}
\entry{set}{60}{\code {set}}
\entry{shopt}{64}{\code {shopt}}
\entry{dirs}{94}{\code {dirs}}
\entry{popd}{94}{\code {popd}}
\entry{pushd}{95}{\code {pushd}}
\entry{bg}{102}{\code {bg}}
\entry{fg}{102}{\code {fg}}
\entry{jobs}{102}{\code {jobs}}
\entry{kill}{103}{\code {kill}}
\entry{wait}{103}{\code {wait}}
\entry{disown}{103}{\code {disown}}
\entry{suspend}{104}{\code {suspend}}
\entry{compgen}{132}{\code {compgen}}
\entry{complete}{132}{\code {complete}}
\entry{compopt}{135}{\code {compopt}}
\entry{fc}{139}{\code {fc}}
\entry{history}{140}{\code {history}}
\entry{:}{43}{\code {:}}
\entry{.}{43}{\code {.}}
\entry{break}{44}{\code {break}}
\entry{cd}{44}{\code {cd}}
\entry{continue}{44}{\code {continue}}
\entry{eval}{44}{\code {eval}}
\entry{exec}{45}{\code {exec}}
\entry{exit}{45}{\code {exit}}
\entry{export}{45}{\code {export}}
\entry{getopts}{45}{\code {getopts}}
\entry{hash}{46}{\code {hash}}
\entry{pwd}{46}{\code {pwd}}
\entry{readonly}{46}{\code {readonly}}
\entry{return}{47}{\code {return}}
\entry{shift}{47}{\code {shift}}
\entry{test}{47}{\code {test}}
\entry{[}{47}{\code {[}}
\entry{times}{49}{\code {times}}
\entry{trap}{49}{\code {trap}}
\entry{umask}{49}{\code {umask}}
\entry{unset}{50}{\code {unset}}
\entry{alias}{50}{\code {alias}}
\entry{bind}{50}{\code {bind}}
\entry{builtin}{51}{\code {builtin}}
\entry{caller}{52}{\code {caller}}
\entry{command}{52}{\code {command}}
\entry{declare}{52}{\code {declare}}
\entry{echo}{54}{\code {echo}}
\entry{enable}{54}{\code {enable}}
\entry{help}{55}{\code {help}}
\entry{let}{55}{\code {let}}
\entry{local}{55}{\code {local}}
\entry{logout}{56}{\code {logout}}
\entry{mapfile}{56}{\code {mapfile}}
\entry{printf}{56}{\code {printf}}
\entry{read}{57}{\code {read}}
\entry{readarray}{58}{\code {readarray}}
\entry{source}{59}{\code {source}}
\entry{type}{59}{\code {type}}
\entry{typeset}{59}{\code {typeset}}
\entry{ulimit}{59}{\code {ulimit}}
\entry{unalias}{61}{\code {unalias}}
\entry{set}{61}{\code {set}}
\entry{shopt}{65}{\code {shopt}}
\entry{dirs}{95}{\code {dirs}}
\entry{popd}{95}{\code {popd}}
\entry{pushd}{96}{\code {pushd}}
\entry{bg}{103}{\code {bg}}
\entry{fg}{103}{\code {fg}}
\entry{jobs}{103}{\code {jobs}}
\entry{kill}{104}{\code {kill}}
\entry{wait}{104}{\code {wait}}
\entry{disown}{104}{\code {disown}}
\entry{suspend}{105}{\code {suspend}}
\entry{compgen}{133}{\code {compgen}}
\entry{complete}{133}{\code {complete}}
\entry{compopt}{136}{\code {compopt}}
\entry{fc}{140}{\code {fc}}
\entry{history}{141}{\code {history}}
+59 -59
View File
@@ -1,80 +1,80 @@
\initial {.}
\entry {\code {.}}{42}
\entry {\code {.}}{43}
\initial {:}
\entry {\code {:}}{42}
\entry {\code {:}}{43}
\initial {[}
\entry {\code {[}}{46}
\entry {\code {[}}{47}
\initial {A}
\entry {\code {alias}}{49}
\entry {\code {alias}}{50}
\initial {B}
\entry {\code {bg}}{102}
\entry {\code {bind}}{49}
\entry {\code {break}}{43}
\entry {\code {builtin}}{50}
\entry {\code {bg}}{103}
\entry {\code {bind}}{50}
\entry {\code {break}}{44}
\entry {\code {builtin}}{51}
\initial {C}
\entry {\code {caller}}{51}
\entry {\code {cd}}{43}
\entry {\code {command}}{51}
\entry {\code {compgen}}{132}
\entry {\code {complete}}{132}
\entry {\code {compopt}}{135}
\entry {\code {continue}}{43}
\entry {\code {caller}}{52}
\entry {\code {cd}}{44}
\entry {\code {command}}{52}
\entry {\code {compgen}}{133}
\entry {\code {complete}}{133}
\entry {\code {compopt}}{136}
\entry {\code {continue}}{44}
\initial {D}
\entry {\code {declare}}{51}
\entry {\code {dirs}}{94}
\entry {\code {disown}}{103}
\entry {\code {declare}}{52}
\entry {\code {dirs}}{95}
\entry {\code {disown}}{104}
\initial {E}
\entry {\code {echo}}{53}
\entry {\code {enable}}{53}
\entry {\code {eval}}{43}
\entry {\code {exec}}{44}
\entry {\code {exit}}{44}
\entry {\code {export}}{44}
\entry {\code {echo}}{54}
\entry {\code {enable}}{54}
\entry {\code {eval}}{44}
\entry {\code {exec}}{45}
\entry {\code {exit}}{45}
\entry {\code {export}}{45}
\initial {F}
\entry {\code {fc}}{139}
\entry {\code {fg}}{102}
\entry {\code {fc}}{140}
\entry {\code {fg}}{103}
\initial {G}
\entry {\code {getopts}}{44}
\entry {\code {getopts}}{45}
\initial {H}
\entry {\code {hash}}{45}
\entry {\code {help}}{54}
\entry {\code {history}}{140}
\entry {\code {hash}}{46}
\entry {\code {help}}{55}
\entry {\code {history}}{141}
\initial {J}
\entry {\code {jobs}}{102}
\entry {\code {jobs}}{103}
\initial {K}
\entry {\code {kill}}{103}
\entry {\code {kill}}{104}
\initial {L}
\entry {\code {let}}{54}
\entry {\code {local}}{54}
\entry {\code {logout}}{55}
\entry {\code {let}}{55}
\entry {\code {local}}{55}
\entry {\code {logout}}{56}
\initial {M}
\entry {\code {mapfile}}{55}
\entry {\code {mapfile}}{56}
\initial {P}
\entry {\code {popd}}{94}
\entry {\code {printf}}{55}
\entry {\code {pushd}}{95}
\entry {\code {pwd}}{45}
\entry {\code {popd}}{95}
\entry {\code {printf}}{56}
\entry {\code {pushd}}{96}
\entry {\code {pwd}}{46}
\initial {R}
\entry {\code {read}}{56}
\entry {\code {readarray}}{57}
\entry {\code {readonly}}{45}
\entry {\code {return}}{46}
\entry {\code {read}}{57}
\entry {\code {readarray}}{58}
\entry {\code {readonly}}{46}
\entry {\code {return}}{47}
\initial {S}
\entry {\code {set}}{60}
\entry {\code {shift}}{46}
\entry {\code {shopt}}{64}
\entry {\code {source}}{58}
\entry {\code {suspend}}{104}
\entry {\code {set}}{61}
\entry {\code {shift}}{47}
\entry {\code {shopt}}{65}
\entry {\code {source}}{59}
\entry {\code {suspend}}{105}
\initial {T}
\entry {\code {test}}{46}
\entry {\code {times}}{48}
\entry {\code {trap}}{48}
\entry {\code {type}}{58}
\entry {\code {typeset}}{58}
\entry {\code {test}}{47}
\entry {\code {times}}{49}
\entry {\code {trap}}{49}
\entry {\code {type}}{59}
\entry {\code {typeset}}{59}
\initial {U}
\entry {\code {ulimit}}{58}
\entry {\code {umask}}{48}
\entry {\code {unalias}}{60}
\entry {\code {unset}}{49}
\entry {\code {ulimit}}{59}
\entry {\code {umask}}{49}
\entry {\code {unalias}}{61}
\entry {\code {unset}}{50}
\initial {W}
\entry {\code {wait}}{103}
\entry {\code {wait}}{104}
+47 -47
View File
@@ -43,15 +43,15 @@
\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{parameters, special}{21}{parameters, special}
\entry{expansion}{22}{expansion}
\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{command substitution}{30}{command substitution}
\entry{expansion, arithmetic}{30}{expansion, arithmetic}
\entry{arithmetic expansion}{30}{arithmetic expansion}
\entry{process substitution}{30}{process substitution}
@@ -71,48 +71,48 @@
\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}
\entry{startup files}{85}{startup files}
\entry{special builtin}{71}{special builtin}
\entry{login shell}{86}{login shell}
\entry{interactive shell}{86}{interactive shell}
\entry{shell, interactive}{86}{shell, interactive}
\entry{expressions, conditional}{88}{expressions, conditional}
\entry{arithmetic, shell}{90}{arithmetic, shell}
\entry{shell arithmetic}{90}{shell arithmetic}
\entry{expressions, arithmetic}{90}{expressions, arithmetic}
\entry{evaluation, arithmetic}{90}{evaluation, arithmetic}
\entry{arithmetic evaluation}{90}{arithmetic evaluation}
\entry{alias expansion}{91}{alias expansion}
\entry{arrays}{92}{arrays}
\entry{directory stack}{94}{directory stack}
\entry{prompting}{95}{prompting}
\entry{restricted shell}{96}{restricted shell}
\entry{POSIX Mode}{97}{POSIX Mode}
\entry{job control}{101}{job control}
\entry{foreground}{101}{foreground}
\entry{background}{101}{background}
\entry{suspending jobs}{101}{suspending jobs}
\entry{Readline, how to use}{104}{Readline, how to use}
\entry{interaction, readline}{105}{interaction, readline}
\entry{notation, readline}{106}{notation, readline}
\entry{command editing}{106}{command editing}
\entry{editing command lines}{106}{editing command lines}
\entry{killing text}{107}{killing text}
\entry{yanking text}{107}{yanking text}
\entry{kill ring}{107}{kill ring}
\entry{initialization file, readline}{108}{initialization file, readline}
\entry{variables, readline}{109}{variables, readline}
\entry{programmable completion}{130}{programmable completion}
\entry{completion builtins}{132}{completion builtins}
\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}
\entry{startup files}{86}{startup files}
\entry{interactive shell}{87}{interactive shell}
\entry{shell, interactive}{87}{shell, interactive}
\entry{expressions, conditional}{89}{expressions, conditional}
\entry{arithmetic, shell}{91}{arithmetic, shell}
\entry{shell arithmetic}{91}{shell arithmetic}
\entry{expressions, arithmetic}{91}{expressions, arithmetic}
\entry{evaluation, arithmetic}{91}{evaluation, arithmetic}
\entry{arithmetic evaluation}{91}{arithmetic evaluation}
\entry{alias expansion}{92}{alias expansion}
\entry{arrays}{93}{arrays}
\entry{directory stack}{95}{directory stack}
\entry{prompting}{96}{prompting}
\entry{restricted shell}{97}{restricted shell}
\entry{POSIX Mode}{98}{POSIX Mode}
\entry{job control}{102}{job control}
\entry{foreground}{102}{foreground}
\entry{background}{102}{background}
\entry{suspending jobs}{102}{suspending jobs}
\entry{Readline, how to use}{105}{Readline, how to use}
\entry{interaction, readline}{106}{interaction, readline}
\entry{notation, readline}{107}{notation, readline}
\entry{command editing}{107}{command editing}
\entry{editing command lines}{107}{editing command lines}
\entry{killing text}{108}{killing text}
\entry{yanking text}{108}{yanking text}
\entry{kill ring}{108}{kill ring}
\entry{initialization file, readline}{109}{initialization file, readline}
\entry{variables, readline}{110}{variables, readline}
\entry{programmable completion}{131}{programmable completion}
\entry{completion builtins}{133}{completion builtins}
\entry{History, how to use}{139}{History, how to use}
\entry{command history}{140}{command history}
\entry{history list}{140}{history list}
\entry{history builtins}{140}{history builtins}
\entry{history expansion}{142}{history expansion}
\entry{event designators}{143}{event designators}
\entry{history events}{143}{history events}
\entry{installation}{145}{installation}
\entry{configuration}{145}{configuration}
\entry{Bash installation}{145}{Bash installation}
\entry{Bash configuration}{145}{Bash configuration}
+47 -47
View File
@@ -1,23 +1,23 @@
\initial {A}
\entry {alias expansion}{91}
\entry {arithmetic evaluation}{90}
\entry {alias expansion}{92}
\entry {arithmetic evaluation}{91}
\entry {arithmetic expansion}{30}
\entry {arithmetic, shell}{90}
\entry {arrays}{92}
\entry {arithmetic, shell}{91}
\entry {arrays}{93}
\initial {B}
\entry {background}{101}
\entry {Bash configuration}{144}
\entry {Bash installation}{144}
\entry {background}{102}
\entry {Bash configuration}{145}
\entry {Bash installation}{145}
\entry {Bourne shell}{5}
\entry {brace expansion}{22}
\entry {builtin}{3}
\initial {C}
\entry {command editing}{106}
\entry {command editing}{107}
\entry {command execution}{38}
\entry {command expansion}{37}
\entry {command history}{139}
\entry {command history}{140}
\entry {command search}{38}
\entry {command substitution}{29}
\entry {command substitution}{30}
\entry {command timing}{8}
\entry {commands, compound}{9}
\entry {commands, conditional}{10}
@@ -28,109 +28,109 @@
\entry {commands, shell}{8}
\entry {commands, simple}{8}
\entry {comments, shell}{7}
\entry {completion builtins}{132}
\entry {configuration}{144}
\entry {completion builtins}{133}
\entry {configuration}{145}
\entry {control operator}{3}
\entry {coprocess}{15}
\initial {D}
\entry {directory stack}{94}
\entry {directory stack}{95}
\initial {E}
\entry {editing command lines}{106}
\entry {editing command lines}{107}
\entry {environment}{39}
\entry {evaluation, arithmetic}{90}
\entry {event designators}{142}
\entry {evaluation, arithmetic}{91}
\entry {event designators}{143}
\entry {execution environment}{38}
\entry {exit status}{3, 40}
\entry {expansion}{21}
\entry {expansion}{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}
\entry {expressions, arithmetic}{91}
\entry {expressions, conditional}{89}
\initial {F}
\entry {field}{3}
\entry {filename}{3}
\entry {filename expansion}{31}
\entry {foreground}{101}
\entry {foreground}{102}
\entry {functions, shell}{17}
\initial {H}
\entry {history builtins}{139}
\entry {history events}{142}
\entry {history expansion}{141}
\entry {history list}{139}
\entry {History, how to use}{138}
\entry {history builtins}{140}
\entry {history events}{143}
\entry {history expansion}{142}
\entry {history list}{140}
\entry {History, how to use}{139}
\initial {I}
\entry {identifier}{3}
\entry {initialization file, readline}{108}
\entry {installation}{144}
\entry {interaction, readline}{105}
\entry {interactive shell}{85, 86}
\entry {initialization file, readline}{109}
\entry {installation}{145}
\entry {interaction, readline}{106}
\entry {interactive shell}{86, 87}
\entry {internationalization}{7}
\initial {J}
\entry {job}{3}
\entry {job control}{3, 101}
\entry {job control}{3, 102}
\initial {K}
\entry {kill ring}{107}
\entry {killing text}{107}
\entry {kill ring}{108}
\entry {killing text}{108}
\initial {L}
\entry {localization}{7}
\entry {login shell}{85}
\entry {login shell}{86}
\initial {M}
\entry {matching, pattern}{32}
\entry {metacharacter}{3}
\initial {N}
\entry {name}{3}
\entry {native languages}{7}
\entry {notation, readline}{106}
\entry {notation, readline}{107}
\initial {O}
\entry {operator, shell}{3}
\initial {P}
\entry {parameter expansion}{24}
\entry {parameters}{19}
\entry {parameters, positional}{20}
\entry {parameters, special}{20}
\entry {parameters, special}{21}
\entry {pathname expansion}{31}
\entry {pattern matching}{32}
\entry {pipeline}{8}
\entry {POSIX}{3}
\entry {POSIX Mode}{97}
\entry {POSIX Mode}{98}
\entry {process group}{3}
\entry {process group ID}{3}
\entry {process substitution}{30}
\entry {programmable completion}{130}
\entry {prompting}{95}
\entry {programmable completion}{131}
\entry {prompting}{96}
\initial {Q}
\entry {quoting}{6}
\entry {quoting, ANSI}{6}
\initial {R}
\entry {Readline, how to use}{104}
\entry {Readline, how to use}{105}
\entry {redirection}{33}
\entry {reserved word}{3}
\entry {restricted shell}{96}
\entry {restricted shell}{97}
\entry {return status}{4}
\initial {S}
\entry {shell arithmetic}{90}
\entry {shell arithmetic}{91}
\entry {shell function}{17}
\entry {shell script}{41}
\entry {shell variable}{19}
\entry {shell, interactive}{86}
\entry {shell, interactive}{87}
\entry {signal}{4}
\entry {signal handling}{40}
\entry {special builtin}{4, 70}
\entry {startup files}{85}
\entry {suspending jobs}{101}
\entry {special builtin}{4, 71}
\entry {startup files}{86}
\entry {suspending jobs}{102}
\initial {T}
\entry {tilde expansion}{23}
\entry {token}{4}
\entry {translation, native languages}{7}
\initial {V}
\entry {variable, shell}{19}
\entry {variables, readline}{109}
\entry {variables, readline}{110}
\initial {W}
\entry {word}{4}
\entry {word splitting}{31}
\initial {Y}
\entry {yanking text}{107}
\entry {yanking text}{108}
+110 -110
View File
@@ -1,110 +1,110 @@
\entry{beginning-of-line (C-a)}{120}{\code {beginning-of-line (C-a)}}
\entry{end-of-line (C-e)}{120}{\code {end-of-line (C-e)}}
\entry{forward-char (C-f)}{120}{\code {forward-char (C-f)}}
\entry{backward-char (C-b)}{120}{\code {backward-char (C-b)}}
\entry{forward-word (M-f)}{120}{\code {forward-word (M-f)}}
\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{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)}}
\entry{beginning-of-history (M-<)}{121}{\code {beginning-of-history (M-<)}}
\entry{end-of-history (M->)}{121}{\code {end-of-history (M->)}}
\entry{reverse-search-history (C-r)}{121}{\code {reverse-search-history (C-r)}}
\entry{forward-search-history (C-s)}{121}{\code {forward-search-history (C-s)}}
\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 ()}{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)}{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)}}
\entry{transpose-words (M-t)}{123}{\code {transpose-words (M-t)}}
\entry{upcase-word (M-u)}{123}{\code {upcase-word (M-u)}}
\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)}{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)}}
\entry{backward-kill-word (M-DEL)}{124}{\code {backward-kill-word (M-\key {DEL})}}
\entry{shell-kill-word ()}{124}{\code {shell-kill-word ()}}
\entry{shell-backward-kill-word ()}{124}{\code {shell-backward-kill-word ()}}
\entry{unix-word-rubout (C-w)}{124}{\code {unix-word-rubout (C-w)}}
\entry{unix-filename-rubout ()}{124}{\code {unix-filename-rubout ()}}
\entry{delete-horizontal-space ()}{124}{\code {delete-horizontal-space ()}}
\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 ()}{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 ()}{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 /)}}
\entry{complete-username (M-~)}{126}{\code {complete-username (M-~)}}
\entry{possible-username-completions (C-x ~)}{126}{\code {possible-username-completions (C-x ~)}}
\entry{complete-variable (M-$)}{126}{\code {complete-variable (M-$)}}
\entry{possible-variable-completions (C-x $)}{126}{\code {possible-variable-completions (C-x $)}}
\entry{complete-hostname (M-@)}{126}{\code {complete-hostname (M-@)}}
\entry{possible-hostname-completions (C-x @)}{126}{\code {possible-hostname-completions (C-x @)}}
\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 ()}{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)}}
\entry{print-last-kbd-macro ()}{127}{\code {print-last-kbd-macro ()}}
\entry{re-read-init-file (C-x C-r)}{127}{\code {re-read-init-file (C-x C-r)}}
\entry{abort (C-g)}{127}{\code {abort (C-g)}}
\entry{do-lowercase-version (M-A, M-B, M-x, ...{})}{127}{\code {do-lowercase-version (M-A, M-B, M-\var {x}, \dots {})}}
\entry{prefix-meta (ESC)}{127}{\code {prefix-meta (\key {ESC})}}
\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-@)}{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)}{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)}}
\entry{history-expand-line (M-^)}{129}{\code {history-expand-line (M-^)}}
\entry{magic-space ()}{129}{\code {magic-space ()}}
\entry{alias-expand-line ()}{129}{\code {alias-expand-line ()}}
\entry{history-and-alias-expand-line ()}{129}{\code {history-and-alias-expand-line ()}}
\entry{insert-last-argument (M-. or M-_)}{129}{\code {insert-last-argument (M-. or M-_)}}
\entry{operate-and-get-next (C-o)}{129}{\code {operate-and-get-next (C-o)}}
\entry{edit-and-execute-command (C-x C-e)}{129}{\code {edit-and-execute-command (C-x C-e)}}
\entry{beginning-of-line (C-a)}{121}{\code {beginning-of-line (C-a)}}
\entry{end-of-line (C-e)}{121}{\code {end-of-line (C-e)}}
\entry{forward-char (C-f)}{121}{\code {forward-char (C-f)}}
\entry{backward-char (C-b)}{121}{\code {backward-char (C-b)}}
\entry{forward-word (M-f)}{121}{\code {forward-word (M-f)}}
\entry{backward-word (M-b)}{121}{\code {backward-word (M-b)}}
\entry{shell-forward-word ()}{121}{\code {shell-forward-word ()}}
\entry{shell-backward-word ()}{121}{\code {shell-backward-word ()}}
\entry{previous-screen-line ()}{121}{\code {previous-screen-line ()}}
\entry{next-screen-line ()}{122}{\code {next-screen-line ()}}
\entry{clear-screen (C-l)}{122}{\code {clear-screen (C-l)}}
\entry{redraw-current-line ()}{122}{\code {redraw-current-line ()}}
\entry{accept-line (Newline or Return)}{122}{\code {accept-line (Newline or Return)}}
\entry{previous-history (C-p)}{122}{\code {previous-history (C-p)}}
\entry{next-history (C-n)}{122}{\code {next-history (C-n)}}
\entry{beginning-of-history (M-<)}{122}{\code {beginning-of-history (M-<)}}
\entry{end-of-history (M->)}{122}{\code {end-of-history (M->)}}
\entry{reverse-search-history (C-r)}{122}{\code {reverse-search-history (C-r)}}
\entry{forward-search-history (C-s)}{122}{\code {forward-search-history (C-s)}}
\entry{non-incremental-reverse-search-history (M-p)}{122}{\code {non-incremental-reverse-search-history (M-p)}}
\entry{non-incremental-forward-search-history (M-n)}{122}{\code {non-incremental-forward-search-history (M-n)}}
\entry{history-search-forward ()}{122}{\code {history-search-forward ()}}
\entry{history-search-backward ()}{123}{\code {history-search-backward ()}}
\entry{history-substring-search-forward ()}{123}{\code {history-substring-search-forward ()}}
\entry{history-substring-search-backward ()}{123}{\code {history-substring-search-backward ()}}
\entry{yank-nth-arg (M-C-y)}{123}{\code {yank-nth-arg (M-C-y)}}
\entry{yank-last-arg (M-. or M-_)}{123}{\code {yank-last-arg (M-. or M-_)}}
\entry{end-of-file (usually C-d)}{123}{\code {\i {end-of-file} (usually C-d)}}
\entry{delete-char (C-d)}{123}{\code {delete-char (C-d)}}
\entry{backward-delete-char (Rubout)}{124}{\code {backward-delete-char (Rubout)}}
\entry{forward-backward-delete-char ()}{124}{\code {forward-backward-delete-char ()}}
\entry{quoted-insert (C-q or C-v)}{124}{\code {quoted-insert (C-q or C-v)}}
\entry{self-insert (a, b, A, 1, !, ...{})}{124}{\code {self-insert (a, b, A, 1, !, \dots {})}}
\entry{bracketed-paste-begin ()}{124}{\code {bracketed-paste-begin ()}}
\entry{transpose-chars (C-t)}{124}{\code {transpose-chars (C-t)}}
\entry{transpose-words (M-t)}{124}{\code {transpose-words (M-t)}}
\entry{upcase-word (M-u)}{124}{\code {upcase-word (M-u)}}
\entry{downcase-word (M-l)}{124}{\code {downcase-word (M-l)}}
\entry{capitalize-word (M-c)}{124}{\code {capitalize-word (M-c)}}
\entry{overwrite-mode ()}{124}{\code {overwrite-mode ()}}
\entry{kill-line (C-k)}{125}{\code {kill-line (C-k)}}
\entry{backward-kill-line (C-x Rubout)}{125}{\code {backward-kill-line (C-x Rubout)}}
\entry{unix-line-discard (C-u)}{125}{\code {unix-line-discard (C-u)}}
\entry{kill-whole-line ()}{125}{\code {kill-whole-line ()}}
\entry{kill-word (M-d)}{125}{\code {kill-word (M-d)}}
\entry{backward-kill-word (M-DEL)}{125}{\code {backward-kill-word (M-\key {DEL})}}
\entry{shell-kill-word ()}{125}{\code {shell-kill-word ()}}
\entry{shell-backward-kill-word ()}{125}{\code {shell-backward-kill-word ()}}
\entry{unix-word-rubout (C-w)}{125}{\code {unix-word-rubout (C-w)}}
\entry{unix-filename-rubout ()}{125}{\code {unix-filename-rubout ()}}
\entry{delete-horizontal-space ()}{125}{\code {delete-horizontal-space ()}}
\entry{kill-region ()}{125}{\code {kill-region ()}}
\entry{copy-region-as-kill ()}{125}{\code {copy-region-as-kill ()}}
\entry{copy-backward-word ()}{125}{\code {copy-backward-word ()}}
\entry{copy-forward-word ()}{126}{\code {copy-forward-word ()}}
\entry{yank (C-y)}{126}{\code {yank (C-y)}}
\entry{yank-pop (M-y)}{126}{\code {yank-pop (M-y)}}
\entry{digit-argument (M-0, M-1, ...{} M--)}{126}{\code {digit-argument (\kbd {M-0}, \kbd {M-1}, \dots {} \kbd {M--})}}
\entry{universal-argument ()}{126}{\code {universal-argument ()}}
\entry{complete (TAB)}{126}{\code {complete (\key {TAB})}}
\entry{possible-completions (M-?)}{126}{\code {possible-completions (M-?)}}
\entry{insert-completions (M-*)}{126}{\code {insert-completions (M-*)}}
\entry{menu-complete ()}{126}{\code {menu-complete ()}}
\entry{menu-complete-backward ()}{127}{\code {menu-complete-backward ()}}
\entry{delete-char-or-list ()}{127}{\code {delete-char-or-list ()}}
\entry{complete-filename (M-/)}{127}{\code {complete-filename (M-/)}}
\entry{possible-filename-completions (C-x /)}{127}{\code {possible-filename-completions (C-x /)}}
\entry{complete-username (M-~)}{127}{\code {complete-username (M-~)}}
\entry{possible-username-completions (C-x ~)}{127}{\code {possible-username-completions (C-x ~)}}
\entry{complete-variable (M-$)}{127}{\code {complete-variable (M-$)}}
\entry{possible-variable-completions (C-x $)}{127}{\code {possible-variable-completions (C-x $)}}
\entry{complete-hostname (M-@)}{127}{\code {complete-hostname (M-@)}}
\entry{possible-hostname-completions (C-x @)}{127}{\code {possible-hostname-completions (C-x @)}}
\entry{complete-command (M-!)}{127}{\code {complete-command (M-!)}}
\entry{possible-command-completions (C-x !)}{127}{\code {possible-command-completions (C-x !)}}
\entry{dynamic-complete-history (M-TAB)}{127}{\code {dynamic-complete-history (M-\key {TAB})}}
\entry{dabbrev-expand ()}{128}{\code {dabbrev-expand ()}}
\entry{complete-into-braces (M-{\indexlbrace })}{128}{\code {complete-into-braces (M-{\tt \char 123})}}
\entry{start-kbd-macro (C-x ()}{128}{\code {start-kbd-macro (C-x ()}}
\entry{end-kbd-macro (C-x ))}{128}{\code {end-kbd-macro (C-x ))}}
\entry{call-last-kbd-macro (C-x e)}{128}{\code {call-last-kbd-macro (C-x e)}}
\entry{print-last-kbd-macro ()}{128}{\code {print-last-kbd-macro ()}}
\entry{re-read-init-file (C-x C-r)}{128}{\code {re-read-init-file (C-x C-r)}}
\entry{abort (C-g)}{128}{\code {abort (C-g)}}
\entry{do-lowercase-version (M-A, M-B, M-x, ...{})}{128}{\code {do-lowercase-version (M-A, M-B, M-\var {x}, \dots {})}}
\entry{prefix-meta (ESC)}{128}{\code {prefix-meta (\key {ESC})}}
\entry{undo (C-_ or C-x C-u)}{128}{\code {undo (C-_ or C-x C-u)}}
\entry{revert-line (M-r)}{128}{\code {revert-line (M-r)}}
\entry{tilde-expand (M-&)}{128}{\code {tilde-expand (M-&)}}
\entry{set-mark (C-@)}{129}{\code {set-mark (C-@)}}
\entry{exchange-point-and-mark (C-x C-x)}{129}{\code {exchange-point-and-mark (C-x C-x)}}
\entry{character-search (C-])}{129}{\code {character-search (C-])}}
\entry{character-search-backward (M-C-])}{129}{\code {character-search-backward (M-C-])}}
\entry{skip-csi-sequence ()}{129}{\code {skip-csi-sequence ()}}
\entry{insert-comment (M-#)}{129}{\code {insert-comment (M-#)}}
\entry{dump-functions ()}{129}{\code {dump-functions ()}}
\entry{dump-variables ()}{129}{\code {dump-variables ()}}
\entry{dump-macros ()}{129}{\code {dump-macros ()}}
\entry{glob-complete-word (M-g)}{130}{\code {glob-complete-word (M-g)}}
\entry{glob-expand-word (C-x *)}{130}{\code {glob-expand-word (C-x *)}}
\entry{glob-list-expansions (C-x g)}{130}{\code {glob-list-expansions (C-x g)}}
\entry{display-shell-version (C-x C-v)}{130}{\code {display-shell-version (C-x C-v)}}
\entry{shell-expand-line (M-C-e)}{130}{\code {shell-expand-line (M-C-e)}}
\entry{history-expand-line (M-^)}{130}{\code {history-expand-line (M-^)}}
\entry{magic-space ()}{130}{\code {magic-space ()}}
\entry{alias-expand-line ()}{130}{\code {alias-expand-line ()}}
\entry{history-and-alias-expand-line ()}{130}{\code {history-and-alias-expand-line ()}}
\entry{insert-last-argument (M-. or M-_)}{130}{\code {insert-last-argument (M-. or M-_)}}
\entry{operate-and-get-next (C-o)}{130}{\code {operate-and-get-next (C-o)}}
\entry{edit-and-execute-command (C-x C-e)}{130}{\code {edit-and-execute-command (C-x C-e)}}
+110 -110
View File
@@ -1,130 +1,130 @@
\initial {A}
\entry {\code {abort (C-g)}}{127}
\entry {\code {accept-line (Newline or Return)}}{121}
\entry {\code {alias-expand-line ()}}{129}
\entry {\code {abort (C-g)}}{128}
\entry {\code {accept-line (Newline or Return)}}{122}
\entry {\code {alias-expand-line ()}}{130}
\initial {B}
\entry {\code {backward-char (C-b)}}{120}
\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}
\entry {\code {beginning-of-line (C-a)}}{120}
\entry {\code {bracketed-paste-begin ()}}{123}
\entry {\code {backward-char (C-b)}}{121}
\entry {\code {backward-delete-char (Rubout)}}{124}
\entry {\code {backward-kill-line (C-x Rubout)}}{125}
\entry {\code {backward-kill-word (M-\key {DEL})}}{125}
\entry {\code {backward-word (M-b)}}{121}
\entry {\code {beginning-of-history (M-<)}}{122}
\entry {\code {beginning-of-line (C-a)}}{121}
\entry {\code {bracketed-paste-begin ()}}{124}
\initial {C}
\entry {\code {call-last-kbd-macro (C-x e)}}{127}
\entry {\code {capitalize-word (M-c)}}{123}
\entry {\code {character-search (C-])}}{128}
\entry {\code {character-search-backward (M-C-])}}{128}
\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})}}{127}
\entry {\code {complete-username (M-~)}}{126}
\entry {\code {complete-variable (M-$)}}{126}
\entry {\code {copy-backward-word ()}}{124}
\entry {\code {copy-forward-word ()}}{125}
\entry {\code {copy-region-as-kill ()}}{124}
\entry {\code {call-last-kbd-macro (C-x e)}}{128}
\entry {\code {capitalize-word (M-c)}}{124}
\entry {\code {character-search (C-])}}{129}
\entry {\code {character-search-backward (M-C-])}}{129}
\entry {\code {clear-screen (C-l)}}{122}
\entry {\code {complete (\key {TAB})}}{126}
\entry {\code {complete-command (M-!)}}{127}
\entry {\code {complete-filename (M-/)}}{127}
\entry {\code {complete-hostname (M-@)}}{127}
\entry {\code {complete-into-braces (M-{\tt \char 123})}}{128}
\entry {\code {complete-username (M-~)}}{127}
\entry {\code {complete-variable (M-$)}}{127}
\entry {\code {copy-backward-word ()}}{125}
\entry {\code {copy-forward-word ()}}{126}
\entry {\code {copy-region-as-kill ()}}{125}
\initial {D}
\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}
\entry {\code {digit-argument (\kbd {M-0}, \kbd {M-1}, \dots {} \kbd {M--})}}{125}
\entry {\code {display-shell-version (C-x C-v)}}{129}
\entry {\code {do-lowercase-version (M-A, M-B, M-\var {x}, \dots {})}}{127}
\entry {\code {downcase-word (M-l)}}{123}
\entry {\code {dump-functions ()}}{128}
\entry {\code {dump-macros ()}}{128}
\entry {\code {dump-variables ()}}{128}
\entry {\code {dynamic-complete-history (M-\key {TAB})}}{126}
\entry {\code {dabbrev-expand ()}}{128}
\entry {\code {delete-char (C-d)}}{123}
\entry {\code {delete-char-or-list ()}}{127}
\entry {\code {delete-horizontal-space ()}}{125}
\entry {\code {digit-argument (\kbd {M-0}, \kbd {M-1}, \dots {} \kbd {M--})}}{126}
\entry {\code {display-shell-version (C-x C-v)}}{130}
\entry {\code {do-lowercase-version (M-A, M-B, M-\var {x}, \dots {})}}{128}
\entry {\code {downcase-word (M-l)}}{124}
\entry {\code {dump-functions ()}}{129}
\entry {\code {dump-macros ()}}{129}
\entry {\code {dump-variables ()}}{129}
\entry {\code {dynamic-complete-history (M-\key {TAB})}}{127}
\initial {E}
\entry {\code {edit-and-execute-command (C-x C-e)}}{129}
\entry {\code {end-kbd-macro (C-x ))}}{127}
\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)}}{128}
\entry {\code {edit-and-execute-command (C-x C-e)}}{130}
\entry {\code {end-kbd-macro (C-x ))}}{128}
\entry {\code {\i {end-of-file} (usually C-d)}}{123}
\entry {\code {end-of-history (M->)}}{122}
\entry {\code {end-of-line (C-e)}}{121}
\entry {\code {exchange-point-and-mark (C-x C-x)}}{129}
\initial {F}
\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}
\entry {\code {forward-backward-delete-char ()}}{124}
\entry {\code {forward-char (C-f)}}{121}
\entry {\code {forward-search-history (C-s)}}{122}
\entry {\code {forward-word (M-f)}}{121}
\initial {G}
\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}
\entry {\code {glob-complete-word (M-g)}}{130}
\entry {\code {glob-expand-word (C-x *)}}{130}
\entry {\code {glob-list-expansions (C-x g)}}{130}
\initial {H}
\entry {\code {history-and-alias-expand-line ()}}{129}
\entry {\code {history-expand-line (M-^)}}{129}
\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 ()}}{122}
\entry {\code {history-and-alias-expand-line ()}}{130}
\entry {\code {history-expand-line (M-^)}}{130}
\entry {\code {history-search-backward ()}}{123}
\entry {\code {history-search-forward ()}}{122}
\entry {\code {history-substring-search-backward ()}}{123}
\entry {\code {history-substring-search-forward ()}}{123}
\initial {I}
\entry {\code {insert-comment (M-#)}}{128}
\entry {\code {insert-completions (M-*)}}{125}
\entry {\code {insert-last-argument (M-. or M-_)}}{129}
\entry {\code {insert-comment (M-#)}}{129}
\entry {\code {insert-completions (M-*)}}{126}
\entry {\code {insert-last-argument (M-. or M-_)}}{130}
\initial {K}
\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}
\entry {\code {kill-line (C-k)}}{125}
\entry {\code {kill-region ()}}{125}
\entry {\code {kill-whole-line ()}}{125}
\entry {\code {kill-word (M-d)}}{125}
\initial {M}
\entry {\code {magic-space ()}}{129}
\entry {\code {menu-complete ()}}{125}
\entry {\code {menu-complete-backward ()}}{126}
\entry {\code {magic-space ()}}{130}
\entry {\code {menu-complete ()}}{126}
\entry {\code {menu-complete-backward ()}}{127}
\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}
\entry {\code {next-history (C-n)}}{122}
\entry {\code {next-screen-line ()}}{122}
\entry {\code {non-incremental-forward-search-history (M-n)}}{122}
\entry {\code {non-incremental-reverse-search-history (M-p)}}{122}
\initial {O}
\entry {\code {operate-and-get-next (C-o)}}{129}
\entry {\code {overwrite-mode ()}}{123}
\entry {\code {operate-and-get-next (C-o)}}{130}
\entry {\code {overwrite-mode ()}}{124}
\initial {P}
\entry {\code {possible-command-completions (C-x !)}}{126}
\entry {\code {possible-completions (M-?)}}{125}
\entry {\code {possible-filename-completions (C-x /)}}{126}
\entry {\code {possible-hostname-completions (C-x @)}}{126}
\entry {\code {possible-username-completions (C-x ~)}}{126}
\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}
\entry {\code {possible-command-completions (C-x !)}}{127}
\entry {\code {possible-completions (M-?)}}{126}
\entry {\code {possible-filename-completions (C-x /)}}{127}
\entry {\code {possible-hostname-completions (C-x @)}}{127}
\entry {\code {possible-username-completions (C-x ~)}}{127}
\entry {\code {possible-variable-completions (C-x $)}}{127}
\entry {\code {prefix-meta (\key {ESC})}}{128}
\entry {\code {previous-history (C-p)}}{122}
\entry {\code {previous-screen-line ()}}{121}
\entry {\code {print-last-kbd-macro ()}}{128}
\initial {Q}
\entry {\code {quoted-insert (C-q or C-v)}}{123}
\entry {\code {quoted-insert (C-q or C-v)}}{124}
\initial {R}
\entry {\code {re-read-init-file (C-x C-r)}}{127}
\entry {\code {redraw-current-line ()}}{121}
\entry {\code {reverse-search-history (C-r)}}{121}
\entry {\code {revert-line (M-r)}}{127}
\entry {\code {re-read-init-file (C-x C-r)}}{128}
\entry {\code {redraw-current-line ()}}{122}
\entry {\code {reverse-search-history (C-r)}}{122}
\entry {\code {revert-line (M-r)}}{128}
\initial {S}
\entry {\code {self-insert (a, b, A, 1, !, \dots {})}}{123}
\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}
\entry {\code {shell-forward-word ()}}{120}
\entry {\code {shell-kill-word ()}}{124}
\entry {\code {skip-csi-sequence ()}}{128}
\entry {\code {start-kbd-macro (C-x ()}}{127}
\entry {\code {self-insert (a, b, A, 1, !, \dots {})}}{124}
\entry {\code {set-mark (C-@)}}{129}
\entry {\code {shell-backward-kill-word ()}}{125}
\entry {\code {shell-backward-word ()}}{121}
\entry {\code {shell-expand-line (M-C-e)}}{130}
\entry {\code {shell-forward-word ()}}{121}
\entry {\code {shell-kill-word ()}}{125}
\entry {\code {skip-csi-sequence ()}}{129}
\entry {\code {start-kbd-macro (C-x ()}}{128}
\initial {T}
\entry {\code {tilde-expand (M-&)}}{127}
\entry {\code {transpose-chars (C-t)}}{123}
\entry {\code {transpose-words (M-t)}}{123}
\entry {\code {tilde-expand (M-&)}}{128}
\entry {\code {transpose-chars (C-t)}}{124}
\entry {\code {transpose-words (M-t)}}{124}
\initial {U}
\entry {\code {undo (C-_ or C-x C-u)}}{127}
\entry {\code {universal-argument ()}}{125}
\entry {\code {unix-filename-rubout ()}}{124}
\entry {\code {unix-line-discard (C-u)}}{124}
\entry {\code {unix-word-rubout (C-w)}}{124}
\entry {\code {upcase-word (M-u)}}{123}
\entry {\code {undo (C-_ or C-x C-u)}}{128}
\entry {\code {universal-argument ()}}{126}
\entry {\code {unix-filename-rubout ()}}{125}
\entry {\code {unix-line-discard (C-u)}}{125}
\entry {\code {unix-word-rubout (C-w)}}{125}
\entry {\code {upcase-word (M-u)}}{124}
\initial {Y}
\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)}}{125}
\entry {\code {yank (C-y)}}{126}
\entry {\code {yank-last-arg (M-. or M-_)}}{123}
\entry {\code {yank-nth-arg (M-C-y)}}{123}
\entry {\code {yank-pop (M-y)}}{126}
+163 -149
View File
@@ -451,7 +451,7 @@ decoded as follows:
question mark
'\NNN'
the eight-bit character whose value is the octal value NNN (one to
three digits)
three octal digits)
'\xHH'
the eight-bit character whose value is the hexadecimal value HH
(one or two hex digits)
@@ -633,7 +633,7 @@ executed with left associativity.
COMMAND1 && COMMAND2
COMMAND2 is executed if, and only if, COMMAND1 returns an exit status of
zero.
zero (success).
An OR list has the form
COMMAND1 || COMMAND2
@@ -656,11 +656,12 @@ File: bashref.info, Node: Compound Commands, Next: Coprocesses, Prev: Lists,
* Conditional Constructs:: Shell commands for conditional execution.
* Command Grouping:: Ways to group commands.
Compound commands are the shell programming constructs. Each construct
begins with a reserved word or control operator and is terminated by a
corresponding reserved word or operator. Any redirections (*note
Redirections::) associated with a compound command apply to all commands
within that compound command unless explicitly overridden.
Compound commands are the shell programming language constructs. Each
construct begins with a reserved word or control operator and is
terminated by a corresponding reserved word or operator. Any
redirections (*note Redirections::) associated with a compound command
apply to all commands within that compound command unless explicitly
overridden.
In most cases a list of commands in a compound command's description
may be separated from the rest of the command by one or more newlines,
@@ -705,14 +706,16 @@ syntax, it may be replaced with one or more newlines.
for NAME [ [in [WORDS ...] ] ; ] do COMMANDS; done
Expand WORDS, and execute COMMANDS once for each member in the
resultant list, with NAME bound to the current member. If 'in
WORDS' is not present, the 'for' command executes the COMMANDS once
for each positional parameter that is set, as if 'in "$@"' had been
specified (*note Special Parameters::). The return status is the
exit status of the last command that executes. If there are no
items in the expansion of WORDS, no commands are executed, and the
return status is zero.
Expand WORDS (*note Shell Expansions::), and execute COMMANDS once
for each member in the resultant list, with NAME bound to the
current member. If 'in WORDS' is not present, the 'for' command
executes the COMMANDS once for each positional parameter that is
set, as if 'in "$@"' had been specified (*note Special
Parameters::).
The return status is the exit status of the last command that
executes. If there are no items in the expansion of WORDS, no
commands are executed, and the return status is zero.
An alternate form of the 'for' command is also supported:
@@ -764,20 +767,21 @@ File: bashref.info, Node: Conditional Constructs, Next: Command Grouping, Pre
case WORD in [ [(] PATTERN [| PATTERN]...) COMMAND-LIST ;;]... esac
'case' will selectively execute the COMMAND-LIST corresponding to
the first PATTERN that matches WORD. If the 'nocasematch' shell
option (see the description of 'shopt' in *note The Shopt
Builtin::) is enabled, the match is performed without regard to the
case of alphabetic characters. The '|' is used to separate
multiple patterns, and the ')' operator terminates a pattern list.
A list of patterns and an associated command-list is known as a
CLAUSE.
the first PATTERN that matches WORD. The match is performed
according to the rules described below in *note Pattern Matching::.
If the 'nocasematch' shell option (see the description of 'shopt'
in *note The Shopt Builtin::) is enabled, the match is performed
without regard to the case of alphabetic characters. The '|' is
used to separate multiple patterns, and the ')' operator terminates
a pattern list. A list of patterns and an associated command-list
is known as a CLAUSE.
Each clause must be terminated with ';;', ';&', or ';;&'. The WORD
undergoes tilde expansion, parameter expansion, command
substitution, arithmetic expansion, and quote removal before
matching is attempted. Each PATTERN undergoes tilde expansion,
parameter expansion, command substitution, and arithmetic
expansion.
substitution, arithmetic expansion, and quote removal (*note Shell
Parameter Expansion::) before matching is attempted. Each PATTERN
undergoes tilde expansion, parameter expansion, command
substitution, and arithmetic expansion.
There may be an arbitrary number of 'case' clauses, each terminated
by a ';;', ';&', or ';;&'. The first pattern that matches
@@ -904,7 +908,7 @@ File: bashref.info, Node: Conditional Constructs, Next: Command Grouping, Pre
variable LINE) if there is a sequence of characters in the value
consisting of any number, including zero, of space characters, zero
or one instances of 'a', then a 'b':
[[ $line =~ [[:space:]]*(a)?b ]]
[[ $line =~ [[:space:]]*?(a)b ]]
That means values like 'aab' and ' aaaaaab' will match, as will a
line containing a 'b' anywhere in its value.
@@ -917,7 +921,7 @@ File: bashref.info, Node: Conditional Constructs, Next: Command Grouping, Pre
to the shell's quote removal. Using a shell variable to store the
pattern decreases these problems. For example, the following is
equivalent to the above:
pattern='[[:space:]]*(a)?b'
pattern='[[:space:]]*?(a)b'
[[ $line =~ $pattern ]]
If you want to match a character that's special to the regular
@@ -1252,6 +1256,14 @@ script displays
var=global
func1
The 'unset' builtin also acts using the same dynamic scope: if a
variable is local to the current scope, '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 '-f' option to
the 'declare' ('typeset') builtin command (*note Bash Builtins::). The
'-F' option to 'declare' or 'typeset' will list the function names only
@@ -6205,8 +6217,10 @@ quotes.
NAME[SUBSCRIPT]' destroys the array element at index SUBSCRIPT.
Negative subscripts to indexed arrays are interpreted as described
above. Care must be taken to avoid unwanted side effects caused by
filename expansion. 'unset NAME', where NAME is an array, removes the
entire array. A subscript of '*' or '@' also removes the entire array.
filename expansion. Unsetting the last element of an array variable
does not unset the variable. 'unset NAME', where NAME is an array,
removes the entire array. A subscript of '*' or '@' also removes the
entire array.
The 'declare', 'local', and 'readonly' builtins each accept a '-a'
option to specify an indexed array and a '-A' option to specify an
@@ -10854,9 +10868,9 @@ D.2 Index of Shell Reserved Words
* !: Pipelines. (line 9)
* [[: Conditional Constructs.
(line 121)
(line 122)
* ]]: Conditional Constructs.
(line 121)
(line 122)
* {: Command Grouping. (line 21)
* }: Command Grouping. (line 21)
* case: Conditional Constructs.
@@ -10878,7 +10892,7 @@ D.2 Index of Shell Reserved Words
* in: Conditional Constructs.
(line 28)
* select: Conditional Constructs.
(line 79)
(line 80)
* then: Conditional Constructs.
(line 7)
* time: Pipelines. (line 9)
@@ -11485,121 +11499,121 @@ 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
Node: Locale Translation17832
Node: Comments18728
Node: Shell Commands19346
Node: Simple Commands20218
Node: Pipelines20849
Node: Lists23592
Node: Compound Commands25331
Node: Looping Constructs26343
Node: Conditional Constructs28838
Node: Command Grouping39893
Node: Coprocesses41372
Node: GNU Parallel43204
Node: Shell Functions47177
Node: Shell Parameters54376
Node: Positional Parameters58789
Node: Special Parameters59689
Node: Shell Expansions63026
Node: Brace Expansion65120
Node: Tilde Expansion67954
Node: Shell Parameter Expansion70302
Node: Command Substitution84434
Node: Arithmetic Expansion85789
Node: Process Substitution86721
Node: Word Splitting87841
Node: Filename Expansion89785
Node: Pattern Matching92159
Node: Quote Removal96145
Node: Redirections96440
Node: Executing Commands105998
Node: Simple Command Expansion106668
Node: Command Search and Execution108598
Node: Command Execution Environment110934
Node: Environment113918
Node: Exit Status115577
Node: Signals117247
Node: Shell Scripts119214
Node: Shell Builtin Commands121729
Node: Bourne Shell Builtins123763
Node: Bash Builtins144363
Node: Modifying Shell Behavior173008
Node: The Set Builtin173353
Node: The Shopt Builtin183766
Node: Special Builtins199664
Node: Shell Variables200643
Node: Bourne Shell Variables201080
Node: Bash Variables203184
Node: Bash Features232977
Node: Invoking Bash233876
Node: Bash Startup Files239825
Node: Interactive Shells244928
Node: What is an Interactive Shell?245338
Node: Is this Shell Interactive?245987
Node: Interactive Shell Behavior246802
Node: Bash Conditional Expressions250290
Node: Shell Arithmetic254656
Node: Aliases257473
Node: Arrays260021
Node: The Directory Stack265183
Node: Directory Stack Builtins265967
Node: Controlling the Prompt268935
Node: The Restricted Shell271697
Node: Bash POSIX Mode273522
Node: Job Control283873
Node: Job Control Basics284333
Node: Job Control Builtins289301
Node: Job Control Variables294028
Node: Command Line Editing295184
Node: Introduction and Notation296855
Node: Readline Interaction298478
Node: Readline Bare Essentials299669
Node: Readline Movement Commands301452
Node: Readline Killing Commands302412
Node: Readline Arguments304330
Node: Searching305374
Node: Readline Init File307560
Node: Readline Init File Syntax308707
Node: Conditional Init Constructs328894
Node: Sample Init File331419
Node: Bindable Readline Commands334536
Node: Commands For Moving335740
Node: Commands For History337589
Node: Commands For Text341884
Node: Commands For Killing345273
Node: Numeric Arguments347754
Node: Commands For Completion348893
Node: Keyboard Macros353084
Node: Miscellaneous Commands353771
Node: Readline vi Mode359647
Node: Programmable Completion360554
Node: Programmable Completion Builtins368015
Node: A Programmable Completion Example377901
Node: Using History Interactively383153
Node: Bash History Facilities383837
Node: Bash History Builtins386838
Node: History Interaction391130
Node: Event Designators394094
Node: Word Designators395313
Node: Modifiers396950
Node: Installing Bash398352
Node: Basic Installation399489
Node: Compilers and Options402180
Node: Compiling For Multiple Architectures402921
Node: Installation Names404584
Node: Specifying the System Type405402
Node: Sharing Defaults406118
Node: Operation Controls406791
Node: Optional Features407749
Node: Reporting Bugs418275
Node: Major Differences From The Bourne Shell419469
Node: GNU Free Documentation License436321
Node: Indexes461498
Node: Builtin Index461952
Node: Reserved Word Index468779
Node: Variable Index471227
Node: Function Index486905
Node: Concept Index500208

End Tag Table
+40 -40
View File
@@ -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) 22 MAR 2017 16:20
This is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016/MacPorts 2016_4) (preloaded format=pdfetex 2017.1.6) 28 MAR 2017 14:25
entering extended mode
restricted \write18 enabled.
file:line:error style messages enabled.
@@ -185,7 +185,7 @@ p/pdftex/updmap/pdftex.map}] [2] (/Users/chet/src/bash/src/doc/bashref.toc
\openout4 = `bashref.rw'.
[8] [9] [10]
Overfull \hbox (38.26587pt too wide) in paragraph at lines 872--872
Overfull \hbox (38.26587pt too wide) in paragraph at lines 874--874
[]@texttt case @textttsl word @texttt in [ [(] @textttsl pat-tern @texttt [| @
textttsl pattern@texttt ][]) @textttsl command-list @texttt ;;][] esac[]
@@ -198,7 +198,7 @@ textttsl pattern@texttt ][]) @textttsl command-list @texttt ;;][] esac[]
.etc.
[11] [12] [13] [14] [15]
Overfull \hbox (89.6747pt too wide) in paragraph at lines 1274--1274
Overfull \hbox (89.6747pt too wide) in paragraph at lines 1280--1280
[]@texttt cat list | parallel "do-something1 {} config-{} ; do-something2 < {}
" | process-output[]
@@ -211,7 +211,7 @@ Overfull \hbox (89.6747pt too wide) in paragraph at lines 1274--1274
.etc.
Overfull \hbox (89.6747pt too wide) in paragraph at lines 1297--1297
Overfull \hbox (89.6747pt too wide) in paragraph at lines 1303--1303
[]@texttt { echo foss.org.my ; echo debian.org; echo freenetproject.org; } | p
arallel traceroute[]
@@ -223,8 +223,8 @@ arallel traceroute[]
.@glue 5.74869
.etc.
Overfull \hbox (106.92076pt too wide) in paragraph at lines 1303--1303
[16]
Overfull \hbox (106.92076pt too wide) in paragraph at lines 1309--1309
[]@texttt { echo foss.org.my ; echo debian.org; echo freenetproject.org; } | p
arallel -k traceroute[]
@@ -236,14 +236,14 @@ arallel -k traceroute[]
.@glue 5.74869
.etc.
[16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30]
[31] [32] [33] [34] [35] [36] [37] [38] [39] [40] Chapter 4 [41]
[17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31]
[32] [33] [34] [35] [36] [37] [38] [39] [40] [41] Chapter 4 [42]
@btindfile=@write5
\openout5 = `bashref.bt'.
[42] [43]
[44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54]
Overfull \hbox (26.76846pt too wide) in paragraph at lines 4328--4328
[43] [44]
[45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55]
Overfull \hbox (26.76846pt too wide) in paragraph at lines 4343--4343
[]@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 ][]
@@ -256,8 +256,8 @@ d@texttt ][]
.@texttt p
.etc.
[55] [56]
Overfull \hbox (38.26584pt too wide) in paragraph at lines 4532--4532
[56] [57]
Overfull \hbox (38.26584pt too wide) in paragraph at lines 4547--4547
[]@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 ][]
@@ -270,9 +270,9 @@ Overfull \hbox (38.26584pt too wide) in paragraph at lines 4532--4532
.@texttt a
.etc.
[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 6279--6279
[58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] Chapter 5
[71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] Chapter 6 [83]
Overfull \hbox (49.43388pt too wide) in paragraph at lines 6294--6294
[]@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 6280--6280
Overfull \hbox (72.42863pt too wide) in paragraph at lines 6295--6295
[]@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 6280--6280
.etc.
Overfull \hbox (32.18782pt too wide) in paragraph at lines 6281--6281
Overfull \hbox (32.18782pt too wide) in paragraph at lines 6296--6296
[]@texttt bash [long-opt] -s [-abefhkmnptuvxdBCDHP] [-o @textttsl op-tion@text
tt ] [-O @textttsl shopt_option@texttt ] [@textttsl ar-
@@ -311,13 +311,13 @@ tt ] [-O @textttsl shopt_option@texttt ] [@textttsl ar-
.@texttt s
.etc.
[83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93] [94] [95] [96] [97]
[98] [99] Chapter 7 [100] [101] [102] [103]
[84] [85] [86] [87] [88] [89] [90] [91] [92] [93] [94] [95] [96] [97] [98]
[99] [100] Chapter 7 [101] [102] [103] [104]
texinfo.tex: doing @include of rluser.texi
(/usr/homes/chet/src/bash/src/lib/readline/doc/rluser.texi Chapter 8 [104]
[105] [106] [107] [108] [109] [110] [111] [112] [113] [114]
(/usr/homes/chet/src/bash/src/lib/readline/doc/rluser.texi Chapter 8 [105]
[106] [107] [108] [109] [110] [111] [112] [113] [114] [115]
Underfull \hbox (badness 7540) in paragraph at lines 802--808
[]@textrm In the above ex-am-ple, @textttsl C-u[] @textrm is bound to the func
-tion
@@ -343,7 +343,7 @@ e func-tion
.@texttt v
.etc.
[115] [116] [117]
[116] [117] [118]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 997--997
[]@texttt Meta-Control-h: backward-kill-word Text after the function name is i
gnored[]
@@ -356,12 +356,12 @@ gnored[]
.@texttt t
.etc.
[118] [119]
[119] [120]
@fnindfile=@write6
\openout6 = `bashref.fn'.
[120] [121] [122] [123] [124] [125] [126] [127] [128] [129]
[130] [131] [132] [133] [134] [135]
[121] [122] [123] [124] [125] [126] [127] [128] [129] [130]
[131] [132] [133] [134] [135] [136]
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,22 +374,22 @@ athname[]
.@penalty 10000
.etc.
[136] [137])
[137] [138])
texinfo.tex: doing @include of hsuser.texi
(/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]
Chapter 9 [139] [140] [141] [142] [143]) Chapter 10 [144] [145] [146] [147]
[148] [149] [150] [151] Appendix A [152] Appendix B [153] [154] [155] [156]
[157] [158] Appendix C [159]
texinfo.tex: doing @include of fdl.texi
(/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] )
(/Users/chet/src/bash/src/doc/fdl.texi [160]
[161] [162] [163] [164] [165] [166]) Appendix D [167] [168] [169] [170]
[171] [172] [173] [174] [175] [176] )
Here is how much of TeX's memory you used:
4063 strings out of 497105
47066 string characters out of 6206776
137574 words of memory out of 5000000
4064 strings out of 497105
47069 string characters out of 6206776
136585 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
@@ -411,10 +411,10 @@ 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).
Output written on bashref.pdf (182 pages, 742807 bytes).
PDF statistics:
2600 PDF objects out of 2984 (max. 8388607)
2374 compressed objects within 24 object streams
307 named destinations out of 1000 (max. 500000)
2607 PDF objects out of 2984 (max. 8388607)
2380 compressed objects within 24 object streams
308 named destinations out of 1000 (max. 500000)
1125 words of extra memory for PDF output out of 10000 (max. 10000000)
BIN
View File
Binary file not shown.
+2 -2
View File
@@ -16,6 +16,6 @@
\entry{select}{12}{\code {select}}
\entry{[[}{12}{\code {[[}}
\entry{]]}{12}{\code {]]}}
\entry{{\indexlbrace }}{14}{\code {{\tt \char 123}}}
\entry{{\indexrbrace }}{14}{\code {{\tt \char 125}}}
\entry{{\indexlbrace }}{15}{\code {{\tt \char 123}}}
\entry{{\indexrbrace }}{15}{\code {{\tt \char 125}}}
\entry{function}{17}{\code {function}}
+2 -2
View File
@@ -5,9 +5,9 @@
\initial {]}
\entry {\code {]]}}{12}
\initial {{\indexlbrace }}
\entry {\code {{\tt \char 123}}}{14}
\entry {\code {{\tt \char 123}}}{15}
\initial {{\indexrbrace }}
\entry {\code {{\tt \char 125}}}{14}
\entry {\code {{\tt \char 125}}}{15}
\initial {C}
\entry {\code {case}}{11}
\initial {D}
+20 -9
View File
@@ -508,7 +508,7 @@ double quote
question mark
@item \@var{nnn}
the eight-bit character whose value is the octal value @var{nnn}
(one to three digits)
(one to three octal digits)
@item \x@var{HH}
the eight-bit character whose value is the hexadecimal value @var{HH}
(one or two hex digits)
@@ -659,8 +659,13 @@ the time information.
If the pipeline is not executed asynchronously (@pxref{Lists}), the
shell waits for all commands in the pipeline to complete.
Each command in a pipeline is executed in its own subshell
(@pxref{Command Execution Environment}). The exit
Each command in a pipeline is executed in its own subshell, which is a
separate process (@pxref{Command Execution Environment}).
If the @code{lastpipe} option is enabled using the @code{shopt} builtin
(@pxref{The Shopt Builtin}),
the last element of a pipeline may be run by the shell process.
The exit
status of a pipeline is the exit status of the last command in the
pipeline, unless the @code{pipefail} option is enabled
(@pxref{The Set Builtin}).
@@ -714,7 +719,7 @@ An @sc{and} list has the form
@noindent
@var{command2} is executed if, and only if, @var{command1}
returns an exit status of zero.
returns an exit status of zero (success).
An @sc{or} list has the form
@example
@@ -739,7 +744,7 @@ executed in the list.
* Command Grouping:: Ways to group commands.
@end menu
Compound commands are the shell programming constructs.
Compound commands are the shell programming language constructs.
Each construct begins with a reserved word or control operator and is
terminated by a corresponding reserved word or operator.
Any redirections (@pxref{Redirections}) associated with a compound command
@@ -798,12 +803,14 @@ The syntax of the @code{for} command is:
for @var{name} [ [in [@var{words} @dots{}] ] ; ] do @var{commands}; done
@end example
Expand @var{words}, and execute @var{commands} once for each member
Expand @var{words} (@pxref{Shell Expansions}), and execute @var{commands}
once for each member
in the resultant list, with @var{name} bound to the current member.
If @samp{in @var{words}} is not present, the @code{for} command
executes the @var{commands} once for each positional parameter that is
set, as if @samp{in "$@@"} had been specified
(@pxref{Special Parameters}).
The return status is the exit status of the last command that executes.
If there are no items in the expansion of @var{words}, no commands are
executed, and the return status is zero.
@@ -874,6 +881,8 @@ case @var{word} in [ [(] @var{pattern} [| @var{pattern}]@dots{}) @var{command-li
@code{case} will selectively execute the @var{command-list} corresponding to
the first @var{pattern} that matches @var{word}.
The match is performed according
to the rules described below in @ref{Pattern Matching}.
If the @code{nocasematch} shell option
(see the description of @code{shopt} in @ref{The Shopt Builtin})
is enabled, the match is performed without regard to the case
@@ -885,7 +894,9 @@ as a @var{clause}.
Each clause must be terminated with @samp{;;}, @samp{;&}, or @samp{;;&}.
The @var{word} undergoes tilde expansion, parameter expansion, command
substitution, arithmetic expansion, and quote removal before matching is
substitution, arithmetic expansion, and quote removal
(@pxref{Shell Parameter Expansion})
before matching is
attempted. Each @var{pattern} undergoes tilde expansion, parameter
expansion, command substitution, and arithmetic expansion.
@@ -1045,7 +1056,7 @@ if there is a sequence of characters in the value consisting of
any number, including zero, of
space characters, zero or one instances of @samp{a}, then a @samp{b}:
@example
[[ $line =~ [[:space:]]*(a)?b ]]
[[ $line =~ [[:space:]]*?(a)b ]]
@end example
@noindent
@@ -1061,7 +1072,7 @@ expressions while paying attention to the shell's quote removal.
Using a shell variable to store the pattern decreases these problems.
For example, the following is equivalent to the above:
@example
pattern='[[:space:]]*(a)?b'
pattern='[[:space:]]*?(a)b'
[[ $line =~ $pattern ]]
@end example
+85 -85
View File
@@ -25,12 +25,12 @@
@numsecentry{Shell Functions}{3.3}{Shell Functions}{17}
@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{Special Parameters}{3.4.2}{Special Parameters}{21}
@numsecentry{Shell Expansions}{3.5}{Shell Expansions}{22}
@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{Command Substitution}{3.5.4}{Command Substitution}{30}
@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}{31}
@@ -38,7 +38,7 @@
@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 Input}{3.6.1}{}{35}
@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}
@@ -56,84 +56,84 @@
@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}
@numsecentry{Modifying Shell Behavior}{4.3}{Modifying Shell Behavior}{60}
@numsubsecentry{The Set Builtin}{4.3.1}{The Set Builtin}{60}
@numsubsecentry{The Shopt Builtin}{4.3.2}{The Shopt Builtin}{64}
@numsecentry{Special Builtins}{4.4}{Special Builtins}{70}
@numchapentry{Shell Variables}{5}{Shell Variables}{71}
@numsecentry{Bourne Shell Variables}{5.1}{Bourne Shell Variables}{71}
@numsecentry{Bash Variables}{5.2}{Bash Variables}{71}
@numchapentry{Bash Features}{6}{Bash Features}{83}
@numsecentry{Invoking Bash}{6.1}{Invoking Bash}{83}
@numsecentry{Bash Startup Files}{6.2}{Bash Startup Files}{85}
@numsecentry{Interactive Shells}{6.3}{Interactive Shells}{86}
@numsubsecentry{What is an Interactive Shell?}{6.3.1}{What is an Interactive Shell?}{87}
@numsubsecentry{Is this Shell Interactive?}{6.3.2}{Is this Shell Interactive?}{87}
@numsubsecentry{Interactive Shell Behavior}{6.3.3}{Interactive Shell Behavior}{87}
@numsecentry{Bash Conditional Expressions}{6.4}{Bash Conditional Expressions}{88}
@numsecentry{Shell Arithmetic}{6.5}{Shell Arithmetic}{90}
@numsecentry{Aliases}{6.6}{Aliases}{91}
@numsecentry{Arrays}{6.7}{Arrays}{92}
@numsecentry{The Directory Stack}{6.8}{The Directory Stack}{94}
@numsubsecentry{Directory Stack Builtins}{6.8.1}{Directory Stack Builtins}{94}
@numsecentry{Controlling the Prompt}{6.9}{Controlling the Prompt}{95}
@numsecentry{The Restricted Shell}{6.10}{The Restricted Shell}{96}
@numsecentry{Bash POSIX Mode}{6.11}{Bash POSIX Mode}{97}
@numchapentry{Job Control}{7}{Job Control}{101}
@numsecentry{Job Control Basics}{7.1}{Job Control Basics}{101}
@numsecentry{Job Control Builtins}{7.2}{Job Control Builtins}{102}
@numsecentry{Job Control Variables}{7.3}{Job Control Variables}{104}
@numchapentry{Command Line Editing}{8}{Command Line Editing}{105}
@numsecentry{Introduction to Line Editing}{8.1}{Introduction and Notation}{105}
@numsecentry{Readline Interaction}{8.2}{Readline Interaction}{105}
@numsubsecentry{Readline Bare Essentials}{8.2.1}{Readline Bare Essentials}{106}
@numsubsecentry{Readline Movement Commands}{8.2.2}{Readline Movement Commands}{106}
@numsubsecentry{Readline Killing Commands}{8.2.3}{Readline Killing Commands}{107}
@numsubsecentry{Readline Arguments}{8.2.4}{Readline Arguments}{107}
@numsubsecentry{Searching for Commands in the History}{8.2.5}{Searching}{107}
@numsecentry{Readline Init File}{8.3}{Readline Init File}{108}
@numsubsecentry{Readline Init File Syntax}{8.3.1}{Readline Init File Syntax}{108}
@numsubsecentry{Conditional Init Constructs}{8.3.2}{Conditional Init Constructs}{116}
@numsubsecentry{Sample Init File}{8.3.3}{Sample Init File}{117}
@numsecentry{Bindable Readline Commands}{8.4}{Bindable Readline Commands}{120}
@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}{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}
@numsubsecentry{Some Miscellaneous Commands}{8.4.8}{Miscellaneous Commands}{127}
@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}{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}
@numchapentry{Shell Builtin Commands}{4}{Shell Builtin Commands}{43}
@numsecentry{Bourne Shell Builtins}{4.1}{Bourne Shell Builtins}{43}
@numsecentry{Bash Builtin Commands}{4.2}{Bash Builtins}{50}
@numsecentry{Modifying Shell Behavior}{4.3}{Modifying Shell Behavior}{61}
@numsubsecentry{The Set Builtin}{4.3.1}{The Set Builtin}{61}
@numsubsecentry{The Shopt Builtin}{4.3.2}{The Shopt Builtin}{65}
@numsecentry{Special Builtins}{4.4}{Special Builtins}{71}
@numchapentry{Shell Variables}{5}{Shell Variables}{72}
@numsecentry{Bourne Shell Variables}{5.1}{Bourne Shell Variables}{72}
@numsecentry{Bash Variables}{5.2}{Bash Variables}{72}
@numchapentry{Bash Features}{6}{Bash Features}{84}
@numsecentry{Invoking Bash}{6.1}{Invoking Bash}{84}
@numsecentry{Bash Startup Files}{6.2}{Bash Startup Files}{86}
@numsecentry{Interactive Shells}{6.3}{Interactive Shells}{87}
@numsubsecentry{What is an Interactive Shell?}{6.3.1}{What is an Interactive Shell?}{88}
@numsubsecentry{Is this Shell Interactive?}{6.3.2}{Is this Shell Interactive?}{88}
@numsubsecentry{Interactive Shell Behavior}{6.3.3}{Interactive Shell Behavior}{88}
@numsecentry{Bash Conditional Expressions}{6.4}{Bash Conditional Expressions}{89}
@numsecentry{Shell Arithmetic}{6.5}{Shell Arithmetic}{91}
@numsecentry{Aliases}{6.6}{Aliases}{92}
@numsecentry{Arrays}{6.7}{Arrays}{93}
@numsecentry{The Directory Stack}{6.8}{The Directory Stack}{95}
@numsubsecentry{Directory Stack Builtins}{6.8.1}{Directory Stack Builtins}{95}
@numsecentry{Controlling the Prompt}{6.9}{Controlling the Prompt}{96}
@numsecentry{The Restricted Shell}{6.10}{The Restricted Shell}{97}
@numsecentry{Bash POSIX Mode}{6.11}{Bash POSIX Mode}{98}
@numchapentry{Job Control}{7}{Job Control}{102}
@numsecentry{Job Control Basics}{7.1}{Job Control Basics}{102}
@numsecentry{Job Control Builtins}{7.2}{Job Control Builtins}{103}
@numsecentry{Job Control Variables}{7.3}{Job Control Variables}{105}
@numchapentry{Command Line Editing}{8}{Command Line Editing}{106}
@numsecentry{Introduction to Line Editing}{8.1}{Introduction and Notation}{106}
@numsecentry{Readline Interaction}{8.2}{Readline Interaction}{106}
@numsubsecentry{Readline Bare Essentials}{8.2.1}{Readline Bare Essentials}{107}
@numsubsecentry{Readline Movement Commands}{8.2.2}{Readline Movement Commands}{107}
@numsubsecentry{Readline Killing Commands}{8.2.3}{Readline Killing Commands}{108}
@numsubsecentry{Readline Arguments}{8.2.4}{Readline Arguments}{108}
@numsubsecentry{Searching for Commands in the History}{8.2.5}{Searching}{108}
@numsecentry{Readline Init File}{8.3}{Readline Init File}{109}
@numsubsecentry{Readline Init File Syntax}{8.3.1}{Readline Init File Syntax}{109}
@numsubsecentry{Conditional Init Constructs}{8.3.2}{Conditional Init Constructs}{117}
@numsubsecentry{Sample Init File}{8.3.3}{Sample Init File}{118}
@numsecentry{Bindable Readline Commands}{8.4}{Bindable Readline Commands}{121}
@numsubsecentry{Commands For Moving}{8.4.1}{Commands For Moving}{121}
@numsubsecentry{Commands For Manipulating The History}{8.4.2}{Commands For History}{122}
@numsubsecentry{Commands For Changing Text}{8.4.3}{Commands For Text}{123}
@numsubsecentry{Killing And Yanking}{8.4.4}{Commands For Killing}{125}
@numsubsecentry{Specifying Numeric Arguments}{8.4.5}{Numeric Arguments}{126}
@numsubsecentry{Letting Readline Type For You}{8.4.6}{Commands For Completion}{126}
@numsubsecentry{Keyboard Macros}{8.4.7}{Keyboard Macros}{128}
@numsubsecentry{Some Miscellaneous Commands}{8.4.8}{Miscellaneous Commands}{128}
@numsecentry{Readline vi Mode}{8.5}{Readline vi Mode}{130}
@numsecentry{Programmable Completion}{8.6}{Programmable Completion}{131}
@numsecentry{Programmable Completion Builtins}{8.7}{Programmable Completion Builtins}{133}
@numsecentry{A Programmable Completion Example}{8.8}{A Programmable Completion Example}{137}
@numchapentry{Using History Interactively}{9}{Using History Interactively}{140}
@numsecentry{Bash History Facilities}{9.1}{Bash History Facilities}{140}
@numsecentry{Bash History Builtins}{9.2}{Bash History Builtins}{140}
@numsecentry{History Expansion}{9.3}{History Interaction}{142}
@numsubsecentry{Event Designators}{9.3.1}{Event Designators}{143}
@numsubsecentry{Word Designators}{9.3.2}{Word Designators}{143}
@numsubsecentry{Modifiers}{9.3.3}{Modifiers}{144}
@numchapentry{Installing Bash}{10}{Installing Bash}{145}
@numsecentry{Basic Installation}{10.1}{Basic Installation}{145}
@numsecentry{Compilers and Options}{10.2}{Compilers and Options}{146}
@numsecentry{Compiling For Multiple Architectures}{10.3}{Compiling For Multiple Architectures}{146}
@numsecentry{Installation Names}{10.4}{Installation Names}{146}
@numsecentry{Specifying the System Type}{10.5}{Specifying the System Type}{146}
@numsecentry{Sharing Defaults}{10.6}{Sharing Defaults}{147}
@numsecentry{Operation Controls}{10.7}{Operation Controls}{147}
@numsecentry{Optional Features}{10.8}{Optional Features}{147}
@appentry{Reporting Bugs}{A}{Reporting Bugs}{153}
@appentry{Major Differences From The Bourne Shell}{B}{Major Differences From The Bourne Shell}{154}
@appsecentry{Implementation Differences From The SVR4.2 Shell}{B.1}{}{158}
@appentry{GNU Free Documentation License}{C}{GNU Free Documentation License}{160}
@appentry{Indexes}{D}{Indexes}{168}
@appsecentry{Index of Shell Builtin Commands}{D.1}{Builtin Index}{168}
@appsecentry{Index of Shell Reserved Words}{D.2}{Reserved Word Index}{169}
@appsecentry{Parameter and Variable Index}{D.3}{Variable Index}{170}
@appsecentry{Function Index}{D.4}{Function Index}{172}
@appsecentry{Concept Index}{D.5}{Concept Index}{174}
+146 -146
View File
@@ -1,8 +1,8 @@
\entry{LC_MESSAGES}{7}{\code {LC_MESSAGES}}
\entry{TEXTDOMAIN}{7}{\code {TEXTDOMAIN}}
\entry{TEXTDOMAINDIR}{7}{\code {TEXTDOMAINDIR}}
\entry{*}{20}{\code {*}}
\entry{$*}{20}{\code {$*}}
\entry{*}{21}{\code {*}}
\entry{$*}{21}{\code {$*}}
\entry{@}{21}{\code {@}}
\entry{$@}{21}{\code {$@}}
\entry{#}{21}{\code {#}}
@@ -19,147 +19,147 @@
\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}}
\entry{MAIL}{71}{\code {MAIL}}
\entry{MAILPATH}{71}{\code {MAILPATH}}
\entry{OPTARG}{71}{\code {OPTARG}}
\entry{OPTIND}{71}{\code {OPTIND}}
\entry{PATH}{71}{\code {PATH}}
\entry{PS1}{71}{\code {PS1}}
\entry{PS2}{71}{\code {PS2}}
\entry{BASH}{71}{\code {BASH}}
\entry{BASHOPTS}{72}{\code {BASHOPTS}}
\entry{BASHPID}{72}{\code {BASHPID}}
\entry{BASH_ALIASES}{72}{\code {BASH_ALIASES}}
\entry{BASH_ARGC}{72}{\code {BASH_ARGC}}
\entry{BASH_ARGV}{72}{\code {BASH_ARGV}}
\entry{BASH_ARGV0}{72}{\code {BASH_ARGV0}}
\entry{BASH_CMDS}{72}{\code {BASH_CMDS}}
\entry{BASH_COMMAND}{73}{\code {BASH_COMMAND}}
\entry{BASH_COMPAT}{73}{\code {BASH_COMPAT}}
\entry{BASH_ENV}{73}{\code {BASH_ENV}}
\entry{BASH_EXECUTION_STRING}{73}{\code {BASH_EXECUTION_STRING}}
\entry{BASH_LINENO}{73}{\code {BASH_LINENO}}
\entry{BASH_LOADABLES_PATH}{73}{\code {BASH_LOADABLES_PATH}}
\entry{BASH_REMATCH}{73}{\code {BASH_REMATCH}}
\entry{BASH_SOURCE}{73}{\code {BASH_SOURCE}}
\entry{BASH_SUBSHELL}{74}{\code {BASH_SUBSHELL}}
\entry{BASH_VERSINFO}{74}{\code {BASH_VERSINFO}}
\entry{BASH_VERSION}{74}{\code {BASH_VERSION}}
\entry{BASH_XTRACEFD}{74}{\code {BASH_XTRACEFD}}
\entry{CHILD_MAX}{74}{\code {CHILD_MAX}}
\entry{COLUMNS}{74}{\code {COLUMNS}}
\entry{COMP_CWORD}{74}{\code {COMP_CWORD}}
\entry{COMP_LINE}{75}{\code {COMP_LINE}}
\entry{COMP_POINT}{75}{\code {COMP_POINT}}
\entry{COMP_TYPE}{75}{\code {COMP_TYPE}}
\entry{COMP_KEY}{75}{\code {COMP_KEY}}
\entry{COMP_WORDBREAKS}{75}{\code {COMP_WORDBREAKS}}
\entry{COMP_WORDS}{75}{\code {COMP_WORDS}}
\entry{COMPREPLY}{75}{\code {COMPREPLY}}
\entry{COPROC}{75}{\code {COPROC}}
\entry{DIRSTACK}{75}{\code {DIRSTACK}}
\entry{EMACS}{76}{\code {EMACS}}
\entry{ENV}{76}{\code {ENV}}
\entry{EPOCHREALTIME}{76}{\code {EPOCHREALTIME}}
\entry{EPOCHSECONDS}{76}{\code {EPOCHSECONDS}}
\entry{EUID}{76}{\code {EUID}}
\entry{EXECIGNORE}{76}{\code {EXECIGNORE}}
\entry{FCEDIT}{76}{\code {FCEDIT}}
\entry{FIGNORE}{76}{\code {FIGNORE}}
\entry{FUNCNAME}{76}{\code {FUNCNAME}}
\entry{FUNCNEST}{77}{\code {FUNCNEST}}
\entry{GLOBIGNORE}{77}{\code {GLOBIGNORE}}
\entry{GROUPS}{77}{\code {GROUPS}}
\entry{histchars}{77}{\code {histchars}}
\entry{HISTCMD}{77}{\code {HISTCMD}}
\entry{HISTCONTROL}{77}{\code {HISTCONTROL}}
\entry{HISTFILE}{77}{\code {HISTFILE}}
\entry{HISTFILESIZE}{78}{\code {HISTFILESIZE}}
\entry{HISTIGNORE}{78}{\code {HISTIGNORE}}
\entry{HISTSIZE}{78}{\code {HISTSIZE}}
\entry{HISTTIMEFORMAT}{78}{\code {HISTTIMEFORMAT}}
\entry{HOSTFILE}{78}{\code {HOSTFILE}}
\entry{HOSTNAME}{78}{\code {HOSTNAME}}
\entry{HOSTTYPE}{78}{\code {HOSTTYPE}}
\entry{IGNOREEOF}{79}{\code {IGNOREEOF}}
\entry{INPUTRC}{79}{\code {INPUTRC}}
\entry{LANG}{79}{\code {LANG}}
\entry{LC_ALL}{79}{\code {LC_ALL}}
\entry{LC_COLLATE}{79}{\code {LC_COLLATE}}
\entry{LC_CTYPE}{79}{\code {LC_CTYPE}}
\entry{LC_MESSAGES}{79}{\code {LC_MESSAGES}}
\entry{LC_NUMERIC}{79}{\code {LC_NUMERIC}}
\entry{LC_TIME}{79}{\code {LC_TIME}}
\entry{LINENO}{79}{\code {LINENO}}
\entry{LINES}{79}{\code {LINES}}
\entry{MACHTYPE}{79}{\code {MACHTYPE}}
\entry{MAILCHECK}{79}{\code {MAILCHECK}}
\entry{MAPFILE}{79}{\code {MAPFILE}}
\entry{OLDPWD}{80}{\code {OLDPWD}}
\entry{OPTERR}{80}{\code {OPTERR}}
\entry{OSTYPE}{80}{\code {OSTYPE}}
\entry{PIPESTATUS}{80}{\code {PIPESTATUS}}
\entry{POSIXLY_CORRECT}{80}{\code {POSIXLY_CORRECT}}
\entry{PPID}{80}{\code {PPID}}
\entry{PROMPT_COMMAND}{80}{\code {PROMPT_COMMAND}}
\entry{PROMPT_DIRTRIM}{80}{\code {PROMPT_DIRTRIM}}
\entry{PS0}{80}{\code {PS0}}
\entry{PS3}{80}{\code {PS3}}
\entry{PS4}{80}{\code {PS4}}
\entry{PWD}{80}{\code {PWD}}
\entry{RANDOM}{80}{\code {RANDOM}}
\entry{READLINE_LINE}{80}{\code {READLINE_LINE}}
\entry{READLINE_POINT}{81}{\code {READLINE_POINT}}
\entry{REPLY}{81}{\code {REPLY}}
\entry{SECONDS}{81}{\code {SECONDS}}
\entry{SHELL}{81}{\code {SHELL}}
\entry{SHELLOPTS}{81}{\code {SHELLOPTS}}
\entry{SHLVL}{81}{\code {SHLVL}}
\entry{TIMEFORMAT}{81}{\code {TIMEFORMAT}}
\entry{TMOUT}{82}{\code {TMOUT}}
\entry{TMPDIR}{82}{\code {TMPDIR}}
\entry{UID}{82}{\code {UID}}
\entry{auto_resume}{104}{\code {auto_resume}}
\entry{bell-style}{109}{\code {bell-style}}
\entry{bind-tty-special-chars}{109}{\code {bind-tty-special-chars}}
\entry{blink-matching-paren}{109}{\code {blink-matching-paren}}
\entry{colored-completion-prefix}{109}{\code {colored-completion-prefix}}
\entry{colored-stats}{109}{\code {colored-stats}}
\entry{comment-begin}{109}{\code {comment-begin}}
\entry{completion-display-width}{109}{\code {completion-display-width}}
\entry{completion-ignore-case}{110}{\code {completion-ignore-case}}
\entry{completion-map-case}{110}{\code {completion-map-case}}
\entry{completion-prefix-display-length}{110}{\code {completion-prefix-display-length}}
\entry{completion-query-items}{110}{\code {completion-query-items}}
\entry{convert-meta}{110}{\code {convert-meta}}
\entry{disable-completion}{110}{\code {disable-completion}}
\entry{echo-control-characters}{110}{\code {echo-control-characters}}
\entry{editing-mode}{110}{\code {editing-mode}}
\entry{emacs-mode-string}{110}{\code {emacs-mode-string}}
\entry{enable-bracketed-paste}{111}{\code {enable-bracketed-paste}}
\entry{enable-keypad}{111}{\code {enable-keypad}}
\entry{expand-tilde}{111}{\code {expand-tilde}}
\entry{history-preserve-point}{111}{\code {history-preserve-point}}
\entry{history-size}{111}{\code {history-size}}
\entry{horizontal-scroll-mode}{111}{\code {horizontal-scroll-mode}}
\entry{input-meta}{111}{\code {input-meta}}
\entry{meta-flag}{111}{\code {meta-flag}}
\entry{isearch-terminators}{112}{\code {isearch-terminators}}
\entry{keymap}{112}{\code {keymap}}
\entry{mark-modified-lines}{112}{\code {mark-modified-lines}}
\entry{mark-symlinked-directories}{112}{\code {mark-symlinked-directories}}
\entry{match-hidden-files}{112}{\code {match-hidden-files}}
\entry{menu-complete-display-prefix}{113}{\code {menu-complete-display-prefix}}
\entry{output-meta}{113}{\code {output-meta}}
\entry{page-completions}{113}{\code {page-completions}}
\entry{revert-all-at-newline}{113}{\code {revert-all-at-newline}}
\entry{show-all-if-ambiguous}{113}{\code {show-all-if-ambiguous}}
\entry{show-all-if-unmodified}{113}{\code {show-all-if-unmodified}}
\entry{show-mode-in-prompt}{113}{\code {show-mode-in-prompt}}
\entry{skip-completed-text}{113}{\code {skip-completed-text}}
\entry{vi-cmd-mode-string}{114}{\code {vi-cmd-mode-string}}
\entry{vi-ins-mode-string}{114}{\code {vi-ins-mode-string}}
\entry{visible-stats}{114}{\code {visible-stats}}
\entry{CDPATH}{72}{\code {CDPATH}}
\entry{HOME}{72}{\code {HOME}}
\entry{IFS}{72}{\code {IFS}}
\entry{MAIL}{72}{\code {MAIL}}
\entry{MAILPATH}{72}{\code {MAILPATH}}
\entry{OPTARG}{72}{\code {OPTARG}}
\entry{OPTIND}{72}{\code {OPTIND}}
\entry{PATH}{72}{\code {PATH}}
\entry{PS1}{72}{\code {PS1}}
\entry{PS2}{72}{\code {PS2}}
\entry{BASH}{72}{\code {BASH}}
\entry{BASHOPTS}{73}{\code {BASHOPTS}}
\entry{BASHPID}{73}{\code {BASHPID}}
\entry{BASH_ALIASES}{73}{\code {BASH_ALIASES}}
\entry{BASH_ARGC}{73}{\code {BASH_ARGC}}
\entry{BASH_ARGV}{73}{\code {BASH_ARGV}}
\entry{BASH_ARGV0}{73}{\code {BASH_ARGV0}}
\entry{BASH_CMDS}{73}{\code {BASH_CMDS}}
\entry{BASH_COMMAND}{74}{\code {BASH_COMMAND}}
\entry{BASH_COMPAT}{74}{\code {BASH_COMPAT}}
\entry{BASH_ENV}{74}{\code {BASH_ENV}}
\entry{BASH_EXECUTION_STRING}{74}{\code {BASH_EXECUTION_STRING}}
\entry{BASH_LINENO}{74}{\code {BASH_LINENO}}
\entry{BASH_LOADABLES_PATH}{74}{\code {BASH_LOADABLES_PATH}}
\entry{BASH_REMATCH}{74}{\code {BASH_REMATCH}}
\entry{BASH_SOURCE}{74}{\code {BASH_SOURCE}}
\entry{BASH_SUBSHELL}{75}{\code {BASH_SUBSHELL}}
\entry{BASH_VERSINFO}{75}{\code {BASH_VERSINFO}}
\entry{BASH_VERSION}{75}{\code {BASH_VERSION}}
\entry{BASH_XTRACEFD}{75}{\code {BASH_XTRACEFD}}
\entry{CHILD_MAX}{75}{\code {CHILD_MAX}}
\entry{COLUMNS}{75}{\code {COLUMNS}}
\entry{COMP_CWORD}{75}{\code {COMP_CWORD}}
\entry{COMP_LINE}{76}{\code {COMP_LINE}}
\entry{COMP_POINT}{76}{\code {COMP_POINT}}
\entry{COMP_TYPE}{76}{\code {COMP_TYPE}}
\entry{COMP_KEY}{76}{\code {COMP_KEY}}
\entry{COMP_WORDBREAKS}{76}{\code {COMP_WORDBREAKS}}
\entry{COMP_WORDS}{76}{\code {COMP_WORDS}}
\entry{COMPREPLY}{76}{\code {COMPREPLY}}
\entry{COPROC}{76}{\code {COPROC}}
\entry{DIRSTACK}{76}{\code {DIRSTACK}}
\entry{EMACS}{77}{\code {EMACS}}
\entry{ENV}{77}{\code {ENV}}
\entry{EPOCHREALTIME}{77}{\code {EPOCHREALTIME}}
\entry{EPOCHSECONDS}{77}{\code {EPOCHSECONDS}}
\entry{EUID}{77}{\code {EUID}}
\entry{EXECIGNORE}{77}{\code {EXECIGNORE}}
\entry{FCEDIT}{77}{\code {FCEDIT}}
\entry{FIGNORE}{77}{\code {FIGNORE}}
\entry{FUNCNAME}{77}{\code {FUNCNAME}}
\entry{FUNCNEST}{78}{\code {FUNCNEST}}
\entry{GLOBIGNORE}{78}{\code {GLOBIGNORE}}
\entry{GROUPS}{78}{\code {GROUPS}}
\entry{histchars}{78}{\code {histchars}}
\entry{HISTCMD}{78}{\code {HISTCMD}}
\entry{HISTCONTROL}{78}{\code {HISTCONTROL}}
\entry{HISTFILE}{78}{\code {HISTFILE}}
\entry{HISTFILESIZE}{79}{\code {HISTFILESIZE}}
\entry{HISTIGNORE}{79}{\code {HISTIGNORE}}
\entry{HISTSIZE}{79}{\code {HISTSIZE}}
\entry{HISTTIMEFORMAT}{79}{\code {HISTTIMEFORMAT}}
\entry{HOSTFILE}{79}{\code {HOSTFILE}}
\entry{HOSTNAME}{79}{\code {HOSTNAME}}
\entry{HOSTTYPE}{79}{\code {HOSTTYPE}}
\entry{IGNOREEOF}{80}{\code {IGNOREEOF}}
\entry{INPUTRC}{80}{\code {INPUTRC}}
\entry{LANG}{80}{\code {LANG}}
\entry{LC_ALL}{80}{\code {LC_ALL}}
\entry{LC_COLLATE}{80}{\code {LC_COLLATE}}
\entry{LC_CTYPE}{80}{\code {LC_CTYPE}}
\entry{LC_MESSAGES}{80}{\code {LC_MESSAGES}}
\entry{LC_NUMERIC}{80}{\code {LC_NUMERIC}}
\entry{LC_TIME}{80}{\code {LC_TIME}}
\entry{LINENO}{80}{\code {LINENO}}
\entry{LINES}{80}{\code {LINES}}
\entry{MACHTYPE}{80}{\code {MACHTYPE}}
\entry{MAILCHECK}{80}{\code {MAILCHECK}}
\entry{MAPFILE}{80}{\code {MAPFILE}}
\entry{OLDPWD}{81}{\code {OLDPWD}}
\entry{OPTERR}{81}{\code {OPTERR}}
\entry{OSTYPE}{81}{\code {OSTYPE}}
\entry{PIPESTATUS}{81}{\code {PIPESTATUS}}
\entry{POSIXLY_CORRECT}{81}{\code {POSIXLY_CORRECT}}
\entry{PPID}{81}{\code {PPID}}
\entry{PROMPT_COMMAND}{81}{\code {PROMPT_COMMAND}}
\entry{PROMPT_DIRTRIM}{81}{\code {PROMPT_DIRTRIM}}
\entry{PS0}{81}{\code {PS0}}
\entry{PS3}{81}{\code {PS3}}
\entry{PS4}{81}{\code {PS4}}
\entry{PWD}{81}{\code {PWD}}
\entry{RANDOM}{81}{\code {RANDOM}}
\entry{READLINE_LINE}{81}{\code {READLINE_LINE}}
\entry{READLINE_POINT}{82}{\code {READLINE_POINT}}
\entry{REPLY}{82}{\code {REPLY}}
\entry{SECONDS}{82}{\code {SECONDS}}
\entry{SHELL}{82}{\code {SHELL}}
\entry{SHELLOPTS}{82}{\code {SHELLOPTS}}
\entry{SHLVL}{82}{\code {SHLVL}}
\entry{TIMEFORMAT}{82}{\code {TIMEFORMAT}}
\entry{TMOUT}{83}{\code {TMOUT}}
\entry{TMPDIR}{83}{\code {TMPDIR}}
\entry{UID}{83}{\code {UID}}
\entry{auto_resume}{105}{\code {auto_resume}}
\entry{bell-style}{110}{\code {bell-style}}
\entry{bind-tty-special-chars}{110}{\code {bind-tty-special-chars}}
\entry{blink-matching-paren}{110}{\code {blink-matching-paren}}
\entry{colored-completion-prefix}{110}{\code {colored-completion-prefix}}
\entry{colored-stats}{110}{\code {colored-stats}}
\entry{comment-begin}{110}{\code {comment-begin}}
\entry{completion-display-width}{110}{\code {completion-display-width}}
\entry{completion-ignore-case}{111}{\code {completion-ignore-case}}
\entry{completion-map-case}{111}{\code {completion-map-case}}
\entry{completion-prefix-display-length}{111}{\code {completion-prefix-display-length}}
\entry{completion-query-items}{111}{\code {completion-query-items}}
\entry{convert-meta}{111}{\code {convert-meta}}
\entry{disable-completion}{111}{\code {disable-completion}}
\entry{echo-control-characters}{111}{\code {echo-control-characters}}
\entry{editing-mode}{111}{\code {editing-mode}}
\entry{emacs-mode-string}{111}{\code {emacs-mode-string}}
\entry{enable-bracketed-paste}{112}{\code {enable-bracketed-paste}}
\entry{enable-keypad}{112}{\code {enable-keypad}}
\entry{expand-tilde}{112}{\code {expand-tilde}}
\entry{history-preserve-point}{112}{\code {history-preserve-point}}
\entry{history-size}{112}{\code {history-size}}
\entry{horizontal-scroll-mode}{112}{\code {horizontal-scroll-mode}}
\entry{input-meta}{112}{\code {input-meta}}
\entry{meta-flag}{112}{\code {meta-flag}}
\entry{isearch-terminators}{113}{\code {isearch-terminators}}
\entry{keymap}{113}{\code {keymap}}
\entry{mark-modified-lines}{113}{\code {mark-modified-lines}}
\entry{mark-symlinked-directories}{113}{\code {mark-symlinked-directories}}
\entry{match-hidden-files}{113}{\code {match-hidden-files}}
\entry{menu-complete-display-prefix}{114}{\code {menu-complete-display-prefix}}
\entry{output-meta}{114}{\code {output-meta}}
\entry{page-completions}{114}{\code {page-completions}}
\entry{revert-all-at-newline}{114}{\code {revert-all-at-newline}}
\entry{show-all-if-ambiguous}{114}{\code {show-all-if-ambiguous}}
\entry{show-all-if-unmodified}{114}{\code {show-all-if-unmodified}}
\entry{show-mode-in-prompt}{114}{\code {show-mode-in-prompt}}
\entry{skip-completed-text}{114}{\code {skip-completed-text}}
\entry{vi-cmd-mode-string}{115}{\code {vi-cmd-mode-string}}
\entry{vi-ins-mode-string}{115}{\code {vi-ins-mode-string}}
\entry{visible-stats}{115}{\code {visible-stats}}
+146 -146
View File
@@ -7,14 +7,14 @@
\entry {\code {$!}}{21}
\entry {\code {$#}}{21}
\entry {\code {$$}}{21}
\entry {\code {$*}}{20}
\entry {\code {$*}}{21}
\entry {\code {$-}}{21}
\entry {\code {$?}}{21}
\entry {\code {$@}}{21}
\entry {\code {$_}}{21}
\entry {\code {$0}}{21}
\initial {*}
\entry {\code {*}}{20}
\entry {\code {*}}{21}
\initial {-}
\entry {\code {-}}{21}
\initial {?}
@@ -26,167 +26,167 @@
\initial {0}
\entry {\code {0}}{21}
\initial {A}
\entry {\code {auto_resume}}{104}
\entry {\code {auto_resume}}{105}
\initial {B}
\entry {\code {BASH}}{71}
\entry {\code {BASH_ALIASES}}{72}
\entry {\code {BASH_ARGC}}{72}
\entry {\code {BASH_ARGV}}{72}
\entry {\code {BASH_ARGV0}}{72}
\entry {\code {BASH_CMDS}}{72}
\entry {\code {BASH_COMMAND}}{73}
\entry {\code {BASH_COMPAT}}{73}
\entry {\code {BASH_ENV}}{73}
\entry {\code {BASH_EXECUTION_STRING}}{73}
\entry {\code {BASH_LINENO}}{73}
\entry {\code {BASH_LOADABLES_PATH}}{73}
\entry {\code {BASH_REMATCH}}{73}
\entry {\code {BASH_SOURCE}}{73}
\entry {\code {BASH_SUBSHELL}}{74}
\entry {\code {BASH_VERSINFO}}{74}
\entry {\code {BASH_VERSION}}{74}
\entry {\code {BASH_XTRACEFD}}{74}
\entry {\code {BASHOPTS}}{72}
\entry {\code {BASHPID}}{72}
\entry {\code {bell-style}}{109}
\entry {\code {bind-tty-special-chars}}{109}
\entry {\code {blink-matching-paren}}{109}
\entry {\code {BASH}}{72}
\entry {\code {BASH_ALIASES}}{73}
\entry {\code {BASH_ARGC}}{73}
\entry {\code {BASH_ARGV}}{73}
\entry {\code {BASH_ARGV0}}{73}
\entry {\code {BASH_CMDS}}{73}
\entry {\code {BASH_COMMAND}}{74}
\entry {\code {BASH_COMPAT}}{74}
\entry {\code {BASH_ENV}}{74}
\entry {\code {BASH_EXECUTION_STRING}}{74}
\entry {\code {BASH_LINENO}}{74}
\entry {\code {BASH_LOADABLES_PATH}}{74}
\entry {\code {BASH_REMATCH}}{74}
\entry {\code {BASH_SOURCE}}{74}
\entry {\code {BASH_SUBSHELL}}{75}
\entry {\code {BASH_VERSINFO}}{75}
\entry {\code {BASH_VERSION}}{75}
\entry {\code {BASH_XTRACEFD}}{75}
\entry {\code {BASHOPTS}}{73}
\entry {\code {BASHPID}}{73}
\entry {\code {bell-style}}{110}
\entry {\code {bind-tty-special-chars}}{110}
\entry {\code {blink-matching-paren}}{110}
\initial {C}
\entry {\code {CDPATH}}{71}
\entry {\code {CHILD_MAX}}{74}
\entry {\code {colored-completion-prefix}}{109}
\entry {\code {colored-stats}}{109}
\entry {\code {COLUMNS}}{74}
\entry {\code {comment-begin}}{109}
\entry {\code {COMP_CWORD}}{74}
\entry {\code {COMP_KEY}}{75}
\entry {\code {COMP_LINE}}{75}
\entry {\code {COMP_POINT}}{75}
\entry {\code {COMP_TYPE}}{75}
\entry {\code {COMP_WORDBREAKS}}{75}
\entry {\code {COMP_WORDS}}{75}
\entry {\code {completion-display-width}}{109}
\entry {\code {completion-ignore-case}}{110}
\entry {\code {completion-map-case}}{110}
\entry {\code {completion-prefix-display-length}}{110}
\entry {\code {completion-query-items}}{110}
\entry {\code {COMPREPLY}}{75}
\entry {\code {convert-meta}}{110}
\entry {\code {COPROC}}{75}
\entry {\code {CDPATH}}{72}
\entry {\code {CHILD_MAX}}{75}
\entry {\code {colored-completion-prefix}}{110}
\entry {\code {colored-stats}}{110}
\entry {\code {COLUMNS}}{75}
\entry {\code {comment-begin}}{110}
\entry {\code {COMP_CWORD}}{75}
\entry {\code {COMP_KEY}}{76}
\entry {\code {COMP_LINE}}{76}
\entry {\code {COMP_POINT}}{76}
\entry {\code {COMP_TYPE}}{76}
\entry {\code {COMP_WORDBREAKS}}{76}
\entry {\code {COMP_WORDS}}{76}
\entry {\code {completion-display-width}}{110}
\entry {\code {completion-ignore-case}}{111}
\entry {\code {completion-map-case}}{111}
\entry {\code {completion-prefix-display-length}}{111}
\entry {\code {completion-query-items}}{111}
\entry {\code {COMPREPLY}}{76}
\entry {\code {convert-meta}}{111}
\entry {\code {COPROC}}{76}
\initial {D}
\entry {\code {DIRSTACK}}{75}
\entry {\code {disable-completion}}{110}
\entry {\code {DIRSTACK}}{76}
\entry {\code {disable-completion}}{111}
\initial {E}
\entry {\code {echo-control-characters}}{110}
\entry {\code {editing-mode}}{110}
\entry {\code {emacs-mode-string}}{110}
\entry {\code {EMACS}}{76}
\entry {\code {enable-bracketed-paste}}{111}
\entry {\code {enable-keypad}}{111}
\entry {\code {ENV}}{76}
\entry {\code {EPOCHREALTIME}}{76}
\entry {\code {EPOCHSECONDS}}{76}
\entry {\code {EUID}}{76}
\entry {\code {EXECIGNORE}}{76}
\entry {\code {expand-tilde}}{111}
\entry {\code {echo-control-characters}}{111}
\entry {\code {editing-mode}}{111}
\entry {\code {emacs-mode-string}}{111}
\entry {\code {EMACS}}{77}
\entry {\code {enable-bracketed-paste}}{112}
\entry {\code {enable-keypad}}{112}
\entry {\code {ENV}}{77}
\entry {\code {EPOCHREALTIME}}{77}
\entry {\code {EPOCHSECONDS}}{77}
\entry {\code {EUID}}{77}
\entry {\code {EXECIGNORE}}{77}
\entry {\code {expand-tilde}}{112}
\initial {F}
\entry {\code {FCEDIT}}{76}
\entry {\code {FIGNORE}}{76}
\entry {\code {FUNCNAME}}{76}
\entry {\code {FUNCNEST}}{77}
\entry {\code {FCEDIT}}{77}
\entry {\code {FIGNORE}}{77}
\entry {\code {FUNCNAME}}{77}
\entry {\code {FUNCNEST}}{78}
\initial {G}
\entry {\code {GLOBIGNORE}}{77}
\entry {\code {GROUPS}}{77}
\entry {\code {GLOBIGNORE}}{78}
\entry {\code {GROUPS}}{78}
\initial {H}
\entry {\code {histchars}}{77}
\entry {\code {HISTCMD}}{77}
\entry {\code {HISTCONTROL}}{77}
\entry {\code {HISTFILE}}{77}
\entry {\code {HISTFILESIZE}}{78}
\entry {\code {HISTIGNORE}}{78}
\entry {\code {history-preserve-point}}{111}
\entry {\code {history-size}}{111}
\entry {\code {HISTSIZE}}{78}
\entry {\code {HISTTIMEFORMAT}}{78}
\entry {\code {HOME}}{71}
\entry {\code {horizontal-scroll-mode}}{111}
\entry {\code {HOSTFILE}}{78}
\entry {\code {HOSTNAME}}{78}
\entry {\code {HOSTTYPE}}{78}
\entry {\code {histchars}}{78}
\entry {\code {HISTCMD}}{78}
\entry {\code {HISTCONTROL}}{78}
\entry {\code {HISTFILE}}{78}
\entry {\code {HISTFILESIZE}}{79}
\entry {\code {HISTIGNORE}}{79}
\entry {\code {history-preserve-point}}{112}
\entry {\code {history-size}}{112}
\entry {\code {HISTSIZE}}{79}
\entry {\code {HISTTIMEFORMAT}}{79}
\entry {\code {HOME}}{72}
\entry {\code {horizontal-scroll-mode}}{112}
\entry {\code {HOSTFILE}}{79}
\entry {\code {HOSTNAME}}{79}
\entry {\code {HOSTTYPE}}{79}
\initial {I}
\entry {\code {IFS}}{71}
\entry {\code {IGNOREEOF}}{79}
\entry {\code {input-meta}}{111}
\entry {\code {INPUTRC}}{79}
\entry {\code {isearch-terminators}}{112}
\entry {\code {IFS}}{72}
\entry {\code {IGNOREEOF}}{80}
\entry {\code {input-meta}}{112}
\entry {\code {INPUTRC}}{80}
\entry {\code {isearch-terminators}}{113}
\initial {K}
\entry {\code {keymap}}{112}
\entry {\code {keymap}}{113}
\initial {L}
\entry {\code {LANG}}{79}
\entry {\code {LC_ALL}}{79}
\entry {\code {LC_COLLATE}}{79}
\entry {\code {LC_CTYPE}}{79}
\entry {\code {LC_MESSAGES}}{7, 79}
\entry {\code {LC_NUMERIC}}{79}
\entry {\code {LC_TIME}}{79}
\entry {\code {LINENO}}{79}
\entry {\code {LINES}}{79}
\entry {\code {LANG}}{80}
\entry {\code {LC_ALL}}{80}
\entry {\code {LC_COLLATE}}{80}
\entry {\code {LC_CTYPE}}{80}
\entry {\code {LC_MESSAGES}}{7, 80}
\entry {\code {LC_NUMERIC}}{80}
\entry {\code {LC_TIME}}{80}
\entry {\code {LINENO}}{80}
\entry {\code {LINES}}{80}
\initial {M}
\entry {\code {MACHTYPE}}{79}
\entry {\code {MAIL}}{71}
\entry {\code {MAILCHECK}}{79}
\entry {\code {MAILPATH}}{71}
\entry {\code {MAPFILE}}{79}
\entry {\code {mark-modified-lines}}{112}
\entry {\code {mark-symlinked-directories}}{112}
\entry {\code {match-hidden-files}}{112}
\entry {\code {menu-complete-display-prefix}}{113}
\entry {\code {meta-flag}}{111}
\entry {\code {MACHTYPE}}{80}
\entry {\code {MAIL}}{72}
\entry {\code {MAILCHECK}}{80}
\entry {\code {MAILPATH}}{72}
\entry {\code {MAPFILE}}{80}
\entry {\code {mark-modified-lines}}{113}
\entry {\code {mark-symlinked-directories}}{113}
\entry {\code {match-hidden-files}}{113}
\entry {\code {menu-complete-display-prefix}}{114}
\entry {\code {meta-flag}}{112}
\initial {O}
\entry {\code {OLDPWD}}{80}
\entry {\code {OPTARG}}{71}
\entry {\code {OPTERR}}{80}
\entry {\code {OPTIND}}{71}
\entry {\code {OSTYPE}}{80}
\entry {\code {output-meta}}{113}
\entry {\code {OLDPWD}}{81}
\entry {\code {OPTARG}}{72}
\entry {\code {OPTERR}}{81}
\entry {\code {OPTIND}}{72}
\entry {\code {OSTYPE}}{81}
\entry {\code {output-meta}}{114}
\initial {P}
\entry {\code {page-completions}}{113}
\entry {\code {PATH}}{71}
\entry {\code {PIPESTATUS}}{80}
\entry {\code {POSIXLY_CORRECT}}{80}
\entry {\code {PPID}}{80}
\entry {\code {PROMPT_COMMAND}}{80}
\entry {\code {PROMPT_DIRTRIM}}{80}
\entry {\code {PS0}}{80}
\entry {\code {PS1}}{71}
\entry {\code {PS2}}{71}
\entry {\code {PS3}}{80}
\entry {\code {PS4}}{80}
\entry {\code {PWD}}{80}
\entry {\code {page-completions}}{114}
\entry {\code {PATH}}{72}
\entry {\code {PIPESTATUS}}{81}
\entry {\code {POSIXLY_CORRECT}}{81}
\entry {\code {PPID}}{81}
\entry {\code {PROMPT_COMMAND}}{81}
\entry {\code {PROMPT_DIRTRIM}}{81}
\entry {\code {PS0}}{81}
\entry {\code {PS1}}{72}
\entry {\code {PS2}}{72}
\entry {\code {PS3}}{81}
\entry {\code {PS4}}{81}
\entry {\code {PWD}}{81}
\initial {R}
\entry {\code {RANDOM}}{80}
\entry {\code {READLINE_LINE}}{80}
\entry {\code {READLINE_POINT}}{81}
\entry {\code {REPLY}}{81}
\entry {\code {revert-all-at-newline}}{113}
\entry {\code {RANDOM}}{81}
\entry {\code {READLINE_LINE}}{81}
\entry {\code {READLINE_POINT}}{82}
\entry {\code {REPLY}}{82}
\entry {\code {revert-all-at-newline}}{114}
\initial {S}
\entry {\code {SECONDS}}{81}
\entry {\code {SHELL}}{81}
\entry {\code {SHELLOPTS}}{81}
\entry {\code {SHLVL}}{81}
\entry {\code {show-all-if-ambiguous}}{113}
\entry {\code {show-all-if-unmodified}}{113}
\entry {\code {show-mode-in-prompt}}{113}
\entry {\code {skip-completed-text}}{113}
\entry {\code {SECONDS}}{82}
\entry {\code {SHELL}}{82}
\entry {\code {SHELLOPTS}}{82}
\entry {\code {SHLVL}}{82}
\entry {\code {show-all-if-ambiguous}}{114}
\entry {\code {show-all-if-unmodified}}{114}
\entry {\code {show-mode-in-prompt}}{114}
\entry {\code {skip-completed-text}}{114}
\initial {T}
\entry {\code {TEXTDOMAIN}}{7}
\entry {\code {TEXTDOMAINDIR}}{7}
\entry {\code {TIMEFORMAT}}{81}
\entry {\code {TMOUT}}{82}
\entry {\code {TMPDIR}}{82}
\entry {\code {TIMEFORMAT}}{82}
\entry {\code {TMOUT}}{83}
\entry {\code {TMPDIR}}{83}
\initial {U}
\entry {\code {UID}}{82}
\entry {\code {UID}}{83}
\initial {V}
\entry {\code {vi-cmd-mode-string}}{114}
\entry {\code {vi-ins-mode-string}}{114}
\entry {\code {visible-stats}}{114}
\entry {\code {vi-cmd-mode-string}}{115}
\entry {\code {vi-ins-mode-string}}{115}
\entry {\code {visible-stats}}{115}
+509 -444
View File
File diff suppressed because it is too large Load Diff
+1
View File
@@ -316,6 +316,7 @@ extern WORD_LIST *split_at_delims __P((char *, int, char *, int, int, int *, int
extern SHELL_VAR *ifs_var;
extern char *ifs_value;
extern unsigned char ifs_cmap[];
extern int ifs_is_set, ifs_is_null;
#if defined (HANDLE_MULTIBYTE)
extern unsigned char ifs_firstc[];
+9
View File
@@ -276,4 +276,13 @@ ${THIS_SH} ./dollar-star7.sub
# problem through bash-4.4 in some parameter expansion contexts
${THIS_SH} ./dollar-star8.sub
# tests for expansions of "$@" when there are no positional parameter or when
# $1 == '' and the expansion is preceded by something that results in a quoted
# null string
${THIS_SH} ./dollar-at7.sub
# tests for expansions of $* when in an assignment context (no splitting) and
# IFS is null
${THIS_SH} ./dollar-star9.sub
exit 0
+46
View File
@@ -0,0 +1,46 @@
set -- ''
recho 1 ''"$@"
recho 2 """$@"
recho 3 "$@""$@"
recho 4 "$x""$@"
set --
echo -----
recho 1 ''"$@"
recho 2 """$@"
recho 3 "$@""$@"
recho 4 "$x""$@"
set -- X
echo ------
recho 1 ''"${@/*}"
recho 2 """${@/*}"
recho 3 "$x""${@/*}"
recho 4 ''"${@#X}"
recho 5 """${@#X}"
recho 6 "$x""${@#X}"
set --
echo -----
recho 1 ''"${@/*}"
recho 2 """${@/*}"
recho 3 "$x""${@/*}"
recho 4 ''"${@#X}"
recho 5 """${@#X}"
recho 6 "$x""${@#X}"
echo -----
recho 1 "$novar${*}$(echo)"
recho 2 ''"$novar${@}$(echo)"
+16
View File
@@ -0,0 +1,16 @@
set -- 1 2
IFS=
a=$* b=${*}
c=${*/} d=${*#} e=${*%} f=${*:1}
printf '<%s>' "$a" "$b" "$c" "$d" "$e" "$f"; echo
unset a b c d e f
: ${a=$*} ${b=${*}} ${c=${*/}}
: ${d=${*#}} ${e=${*%}} ${f=${*:1}}
printf '<%s>' "$a" "$b" "$c" "$d" "$e" "$f" ; echo
unset f g
f=${*,,} g=${*@Q}
printf '<%s>' "$f" "$g" ; echo
+50
View File
@@ -510,3 +510,53 @@ argv[1] = <a b c d>
<def>
<ghi>
<jkl>
argv[1] = <1>
argv[2] = <>
argv[1] = <2>
argv[2] = <>
argv[1] = <3>
argv[2] = <>
argv[1] = <4>
argv[2] = <>
-----
argv[1] = <1>
argv[2] = <>
argv[1] = <2>
argv[2] = <>
argv[1] = <3>
argv[1] = <4>
argv[2] = <>
------
argv[1] = <1>
argv[2] = <>
argv[1] = <2>
argv[2] = <>
argv[1] = <3>
argv[2] = <>
argv[1] = <4>
argv[2] = <>
argv[1] = <5>
argv[2] = <>
argv[1] = <6>
argv[2] = <>
-----
argv[1] = <1>
argv[2] = <>
argv[1] = <2>
argv[2] = <>
argv[1] = <3>
argv[2] = <>
argv[1] = <4>
argv[2] = <>
argv[1] = <5>
argv[2] = <>
argv[1] = <6>
argv[2] = <>
-----
argv[1] = <1>
argv[2] = <>
argv[1] = <2>
argv[2] = <>
<12><12><12><12><12><12>
<12><12><12><12><12><12>
<12><'1' '2'>
+11
View File
@@ -334,3 +334,14 @@ jkl
[]
[foo]
[]
< A >< B >< A >< B >
< A >< B >< A >< B >
< A >< B >< a >< b >
< A >< B >< A >< B >
< A >< B ><' A '><' B '>
-----
< A >< B >< A >< B >
< A >< B >< A >< B >
< A >< B >< a >< b >
< A >< B >< A >< B >
< A >< B ><' A '><' B '>
+1
View File
@@ -405,3 +405,4 @@ ${THIS_SH} ./exp6.sub
${THIS_SH} ./exp7.sub
${THIS_SH} ./exp8.sub
${THIS_SH} ./exp9.sub
${THIS_SH} ./exp10.sub
+26
View File
@@ -0,0 +1,26 @@
set -- ' A ' ' B '
IFS=
printf '<%s>' ${*} ${*##}
echo
printf '<%s>' ${*} ${*/}
echo
printf '<%s>' ${*} ${*,,}
echo
printf '<%s>' ${*} ${*:1:2}
echo
printf '<%s>' ${*} ${*@Q}
echo
echo -----
printf '<%s>' ${@} ${@##}
echo
printf '<%s>' ${@} ${@/}
echo
printf '<%s>' ${@} ${@,,}
echo
printf '<%s>' ${@} ${@:1:2}
echo
printf '<%s>' ${@} ${@@Q}
echo