commit bash-20040803 snapshot

This commit is contained in:
Chet Ramey
2011-12-03 13:34:30 -05:00
parent b954488bc2
commit 8a9c66f622
35 changed files with 14635 additions and 14808 deletions
+23
View File
@@ -9793,3 +9793,26 @@ execute_cmd.c
- force extended_glob to 1 before calling binary_test in
execute_cond_node so that the right extended pattern matching gets
performed
8/3
---
braces.c
- make sure lhs[0] and rhs[0] are cast to `unsigned char' so chars
with values > 128 are handled correctly
builtins/printf.def
- change bexpand() and printstr() to handle strings with a leading
'\0' whose length is non-zero, since that's valid input for the
`%b' format specifier
subst.c
- fix a couple of instances of find_variable that didn't check the
result for an invisible variable
variables.c
- BASH_ARGC, BASH_ARGV, BASH_SOURCE, BASH_LINENO no longer created as
invisible vars
pcomplete.c
- make sure COMP_WORDS is not invisible when bind_comp_words returns
- ditto for COMPREPLY in gen_shell_function_matches
+28
View File
@@ -9788,3 +9788,31 @@ builtins/type.def
doc/bashref.texi
- add note to POSIX Mode section describing behavior of type and command
when finding a non-executable file
execute_cmd.c
- force extended_glob to 1 before calling binary_test in
execute_cond_node so that the right extended pattern matching gets
performed
8/3
---
braces.c
- make sure lhs[0] and rhs[0] are cast to `unsigned char' so chars
with values > 128 are handled correctly
builtins/printf.def
- change bexpand() and printstr() to handle strings with a leading
'\0' whose length is non-zero, since that's valid input for the
`%b' format specifier
subst.c
- fix a couple of instances of find_variable that didn't check the
result for an invisible variable
variables.c
- BASH_ARGC, BASH_ARGV, BASH_SOURCE, BASH_LINENO no longer created as
invisible vars
pcomplete.c
- make sure COMP_WORDS is not invisible when bind_comp_words returns
- ditto for COMPREPLY in gen_shell_function_completions
+4
View File
@@ -611,7 +611,11 @@ array_variable_part (s, subp, lenp)
var = find_variable (t);
free (t);
#if 1
return (var == 0 || invisible_p (var)) ? (SHELL_VAR *)0 : var;
#else
return var;
#endif
}
/* Return a string containing the elements in the array and subscript
+2 -2
View File
@@ -340,8 +340,8 @@ expand_seqterm (text, tlen)
if (lhs_t == ST_CHAR)
{
lhs_v = lhs[0];
rhs_v = rhs[0];
lhs_v = (unsigned char)lhs[0];
rhs_v = (unsigned char)rhs[0];
}
else
{
+8
View File
@@ -443,7 +443,11 @@ printstr (fmt, string, len, fieldwidth, precision)
int padlen, nc, ljust, i;
int fw, pr; /* fieldwidth and precision */
#if 0
if (string == 0 || *string == '\0')
#else
if (string == 0 || len == 0)
#endif
return;
#if 0
@@ -644,7 +648,11 @@ bexpand (string, len, sawc, lenp)
int temp;
char *ret, *r, *s, c;
#if 0
if (string == 0 || *string == '\0')
#else
if (string == 0 || len == 0)
#endif
{
if (sawc)
*sawc = 0;
+53 -53
View File
@@ -209,161 +209,161 @@
@xrdef{Bash POSIX Mode-pg}{76}
@xrdef{Bash POSIX Mode-snt}{Section@tie 6.11}
@xrdef{Job Control-title}{Job Control}
@xrdef{Job Control-pg}{79}
@xrdef{Job Control-pg}{81}
@xrdef{Job Control-snt}{Chapter@tie 7}
@xrdef{Job Control Basics-title}{Job Control Basics}
@xrdef{Job Control Basics-pg}{79}
@xrdef{Job Control Basics-pg}{81}
@xrdef{Job Control Basics-snt}{Section@tie 7.1}
@xrdef{Job Control Builtins-title}{Job Control Builtins}
@xrdef{Job Control Builtins-pg}{80}
@xrdef{Job Control Builtins-pg}{82}
@xrdef{Job Control Builtins-snt}{Section@tie 7.2}
@xrdef{Job Control Variables-title}{Job Control Variables}
@xrdef{Job Control Variables-pg}{82}
@xrdef{Job Control Variables-pg}{84}
@xrdef{Job Control Variables-snt}{Section@tie 7.3}
@xrdef{Command Line Editing-title}{Command Line Editing}
@xrdef{Command Line Editing-pg}{83}
@xrdef{Command Line Editing-pg}{85}
@xrdef{Command Line Editing-snt}{Chapter@tie 8}
@xrdef{Introduction and Notation-title}{Introduction to Line Editing}
@xrdef{Introduction and Notation-pg}{83}
@xrdef{Introduction and Notation-pg}{85}
@xrdef{Introduction and Notation-snt}{Section@tie 8.1}
@xrdef{Readline Interaction-title}{Readline Interaction}
@xrdef{Readline Interaction-pg}{83}
@xrdef{Readline Interaction-pg}{85}
@xrdef{Readline Interaction-snt}{Section@tie 8.2}
@xrdef{Readline Bare Essentials-title}{Readline Bare Essentials}
@xrdef{Readline Bare Essentials-pg}{83}
@xrdef{Readline Bare Essentials-pg}{85}
@xrdef{Readline Bare Essentials-snt}{Section@tie 8.2.1}
@xrdef{Readline Movement Commands-title}{Readline Movement Commands}
@xrdef{Readline Movement Commands-pg}{84}
@xrdef{Readline Movement Commands-pg}{86}
@xrdef{Readline Movement Commands-snt}{Section@tie 8.2.2}
@xrdef{Readline Killing Commands-title}{Readline Killing Commands}
@xrdef{Readline Killing Commands-pg}{85}
@xrdef{Readline Killing Commands-pg}{87}
@xrdef{Readline Killing Commands-snt}{Section@tie 8.2.3}
@xrdef{Readline Arguments-title}{Readline Arguments}
@xrdef{Readline Arguments-pg}{85}
@xrdef{Readline Arguments-pg}{87}
@xrdef{Readline Arguments-snt}{Section@tie 8.2.4}
@xrdef{Searching-title}{Searching for Commands in the History}
@xrdef{Searching-pg}{86}
@xrdef{Searching-pg}{88}
@xrdef{Searching-snt}{Section@tie 8.2.5}
@xrdef{Readline Init File-title}{Readline Init File}
@xrdef{Readline Init File-pg}{86}
@xrdef{Readline Init File-pg}{88}
@xrdef{Readline Init File-snt}{Section@tie 8.3}
@xrdef{Readline Init File Syntax-title}{Readline Init File Syntax}
@xrdef{Readline Init File Syntax-pg}{86}
@xrdef{Readline Init File Syntax-pg}{88}
@xrdef{Readline Init File Syntax-snt}{Section@tie 8.3.1}
@xrdef{Conditional Init Constructs-title}{Conditional Init Constructs}
@xrdef{Conditional Init Constructs-pg}{91}
@xrdef{Conditional Init Constructs-pg}{93}
@xrdef{Conditional Init Constructs-snt}{Section@tie 8.3.2}
@xrdef{Sample Init File-title}{Sample Init File}
@xrdef{Sample Init File-pg}{92}
@xrdef{Sample Init File-pg}{94}
@xrdef{Sample Init File-snt}{Section@tie 8.3.3}
@xrdef{Bindable Readline Commands-title}{Bindable Readline Commands}
@xrdef{Bindable Readline Commands-pg}{95}
@xrdef{Bindable Readline Commands-pg}{97}
@xrdef{Bindable Readline Commands-snt}{Section@tie 8.4}
@xrdef{Commands For Moving-title}{Commands For Moving}
@xrdef{Commands For Moving-pg}{95}
@xrdef{Commands For Moving-pg}{97}
@xrdef{Commands For Moving-snt}{Section@tie 8.4.1}
@xrdef{Commands For History-title}{Commands For Manipulating The History}
@xrdef{Commands For History-pg}{95}
@xrdef{Commands For History-pg}{97}
@xrdef{Commands For History-snt}{Section@tie 8.4.2}
@xrdef{Commands For Text-title}{Commands For Changing Text}
@xrdef{Commands For Text-pg}{97}
@xrdef{Commands For Text-pg}{99}
@xrdef{Commands For Text-snt}{Section@tie 8.4.3}
@xrdef{Commands For Killing-title}{Killing And Yanking}
@xrdef{Commands For Killing-pg}{98}
@xrdef{Commands For Killing-pg}{100}
@xrdef{Commands For Killing-snt}{Section@tie 8.4.4}
@xrdef{Numeric Arguments-title}{Specifying Numeric Arguments}
@xrdef{Numeric Arguments-pg}{99}
@xrdef{Numeric Arguments-pg}{101}
@xrdef{Numeric Arguments-snt}{Section@tie 8.4.5}
@xrdef{Commands For Completion-title}{Letting Readline Type For You}
@xrdef{Commands For Completion-pg}{99}
@xrdef{Commands For Completion-pg}{101}
@xrdef{Commands For Completion-snt}{Section@tie 8.4.6}
@xrdef{Keyboard Macros-title}{Keyboard Macros}
@xrdef{Keyboard Macros-pg}{100}
@xrdef{Keyboard Macros-pg}{102}
@xrdef{Keyboard Macros-snt}{Section@tie 8.4.7}
@xrdef{Miscellaneous Commands-title}{Some Miscellaneous Commands}
@xrdef{Miscellaneous Commands-pg}{101}
@xrdef{Miscellaneous Commands-pg}{103}
@xrdef{Miscellaneous Commands-snt}{Section@tie 8.4.8}
@xrdef{Readline vi Mode-title}{Readline vi Mode}
@xrdef{Readline vi Mode-pg}{103}
@xrdef{Readline vi Mode-pg}{105}
@xrdef{Readline vi Mode-snt}{Section@tie 8.5}
@xrdef{Programmable Completion-title}{Programmable Completion}
@xrdef{Programmable Completion-pg}{103}
@xrdef{Programmable Completion-pg}{105}
@xrdef{Programmable Completion-snt}{Section@tie 8.6}
@xrdef{Programmable Completion Builtins-title}{Programmable Completion Builtins}
@xrdef{Programmable Completion Builtins-pg}{105}
@xrdef{Programmable Completion Builtins-pg}{107}
@xrdef{Programmable Completion Builtins-snt}{Section@tie 8.7}
@xrdef{Using History Interactively-title}{Using History Interactively}
@xrdef{Using History Interactively-pg}{109}
@xrdef{Using History Interactively-pg}{111}
@xrdef{Using History Interactively-snt}{Chapter@tie 9}
@xrdef{Bash History Facilities-title}{Bash History Facilities}
@xrdef{Bash History Facilities-pg}{109}
@xrdef{Bash History Facilities-pg}{111}
@xrdef{Bash History Facilities-snt}{Section@tie 9.1}
@xrdef{Bash History Builtins-title}{Bash History Builtins}
@xrdef{Bash History Builtins-pg}{109}
@xrdef{Bash History Builtins-pg}{111}
@xrdef{Bash History Builtins-snt}{Section@tie 9.2}
@xrdef{History Interaction-title}{History Expansion}
@xrdef{History Interaction-pg}{111}
@xrdef{History Interaction-pg}{113}
@xrdef{History Interaction-snt}{Section@tie 9.3}
@xrdef{Event Designators-title}{Event Designators}
@xrdef{Event Designators-pg}{111}
@xrdef{Event Designators-pg}{113}
@xrdef{Event Designators-snt}{Section@tie 9.3.1}
@xrdef{Word Designators-title}{Word Designators}
@xrdef{Word Designators-pg}{112}
@xrdef{Word Designators-pg}{114}
@xrdef{Word Designators-snt}{Section@tie 9.3.2}
@xrdef{Modifiers-title}{Modifiers}
@xrdef{Modifiers-pg}{113}
@xrdef{Modifiers-pg}{115}
@xrdef{Modifiers-snt}{Section@tie 9.3.3}
@xrdef{Installing Bash-title}{Installing Bash}
@xrdef{Installing Bash-pg}{115}
@xrdef{Installing Bash-pg}{117}
@xrdef{Installing Bash-snt}{Chapter@tie 10}
@xrdef{Basic Installation-title}{Basic Installation}
@xrdef{Basic Installation-pg}{115}
@xrdef{Basic Installation-pg}{117}
@xrdef{Basic Installation-snt}{Section@tie 10.1}
@xrdef{Compilers and Options-title}{Compilers and Options}
@xrdef{Compilers and Options-pg}{116}
@xrdef{Compilers and Options-pg}{118}
@xrdef{Compilers and Options-snt}{Section@tie 10.2}
@xrdef{Compiling For Multiple Architectures-title}{Compiling For Multiple Architectures}
@xrdef{Compiling For Multiple Architectures-pg}{116}
@xrdef{Compiling For Multiple Architectures-pg}{118}
@xrdef{Compiling For Multiple Architectures-snt}{Section@tie 10.3}
@xrdef{Installation Names-title}{Installation Names}
@xrdef{Installation Names-pg}{116}
@xrdef{Installation Names-pg}{118}
@xrdef{Installation Names-snt}{Section@tie 10.4}
@xrdef{Specifying the System Type-title}{Specifying the System Type}
@xrdef{Specifying the System Type-pg}{117}
@xrdef{Specifying the System Type-pg}{119}
@xrdef{Specifying the System Type-snt}{Section@tie 10.5}
@xrdef{Sharing Defaults-title}{Sharing Defaults}
@xrdef{Sharing Defaults-pg}{117}
@xrdef{Sharing Defaults-pg}{119}
@xrdef{Sharing Defaults-snt}{Section@tie 10.6}
@xrdef{Operation Controls-title}{Operation Controls}
@xrdef{Operation Controls-pg}{117}
@xrdef{Operation Controls-pg}{119}
@xrdef{Operation Controls-snt}{Section@tie 10.7}
@xrdef{Optional Features-title}{Optional Features}
@xrdef{Optional Features-pg}{117}
@xrdef{Optional Features-pg}{119}
@xrdef{Optional Features-snt}{Section@tie 10.8}
@xrdef{Reporting Bugs-title}{Reporting Bugs}
@xrdef{Reporting Bugs-pg}{123}
@xrdef{Reporting Bugs-pg}{125}
@xrdef{Reporting Bugs-snt}{Appendix@tie @char65{}}
@xrdef{Major Differences From The Bourne Shell-title}{Major Differences From The Bourne Shell}
@xrdef{Major Differences From The Bourne Shell-pg}{125}
@xrdef{Major Differences From The Bourne Shell-pg}{127}
@xrdef{Major Differences From The Bourne Shell-snt}{Appendix@tie @char66{}}
@xrdef{Copying This Manual-title}{Copying This Manual}
@xrdef{Copying This Manual-pg}{131}
@xrdef{Copying This Manual-pg}{133}
@xrdef{Copying This Manual-snt}{Appendix@tie @char67{}}
@xrdef{GNU Free Documentation License-title}{GNU Free Documentation License}
@xrdef{GNU Free Documentation License-pg}{131}
@xrdef{GNU Free Documentation License-pg}{133}
@xrdef{GNU Free Documentation License-snt}{Section@tie @char67.1}
@xrdef{Builtin Index-title}{Index of Shell Builtin Commands}
@xrdef{Builtin Index-pg}{139}
@xrdef{Builtin Index-pg}{141}
@xrdef{Builtin Index-snt}{}
@xrdef{Reserved Word Index-title}{Index of Shell Reserved Words}
@xrdef{Reserved Word Index-pg}{141}
@xrdef{Reserved Word Index-pg}{143}
@xrdef{Reserved Word Index-snt}{}
@xrdef{Variable Index-title}{Parameter and Variable Index}
@xrdef{Variable Index-pg}{143}
@xrdef{Variable Index-pg}{145}
@xrdef{Variable Index-snt}{}
@xrdef{Function Index-title}{Function Index}
@xrdef{Function Index-pg}{145}
@xrdef{Function Index-pg}{147}
@xrdef{Function Index-snt}{}
@xrdef{Concept Index-title}{Concept Index}
@xrdef{Concept Index-pg}{147}
@xrdef{Concept Index-pg}{149}
@xrdef{Concept Index-snt}{}
+11 -11
View File
@@ -43,14 +43,14 @@
\entry{dirs}{73}{\code {dirs}}
\entry{popd}{74}{\code {popd}}
\entry{pushd}{74}{\code {pushd}}
\entry{bg}{80}{\code {bg}}
\entry{fg}{80}{\code {fg}}
\entry{jobs}{80}{\code {jobs}}
\entry{kill}{81}{\code {kill}}
\entry{wait}{81}{\code {wait}}
\entry{disown}{81}{\code {disown}}
\entry{suspend}{81}{\code {suspend}}
\entry{compgen}{105}{\code {compgen}}
\entry{complete}{105}{\code {complete}}
\entry{fc}{109}{\code {fc}}
\entry{history}{110}{\code {history}}
\entry{bg}{82}{\code {bg}}
\entry{fg}{82}{\code {fg}}
\entry{jobs}{82}{\code {jobs}}
\entry{kill}{83}{\code {kill}}
\entry{wait}{83}{\code {wait}}
\entry{disown}{83}{\code {disown}}
\entry{suspend}{83}{\code {suspend}}
\entry{compgen}{107}{\code {compgen}}
\entry{complete}{107}{\code {complete}}
\entry{fc}{111}{\code {fc}}
\entry{history}{112}{\code {history}}
+11 -11
View File
@@ -7,7 +7,7 @@
\initial {A}
\entry {\code {alias}}{39}
\initial {B}
\entry {\code {bg}}{80}
\entry {\code {bg}}{82}
\entry {\code {bind}}{39}
\entry {\code {break}}{33}
\entry {\code {builtin}}{40}
@@ -15,13 +15,13 @@
\entry {\code {caller}}{40}
\entry {\code {cd}}{33}
\entry {\code {command}}{41}
\entry {\code {compgen}}{105}
\entry {\code {complete}}{105}
\entry {\code {compgen}}{107}
\entry {\code {complete}}{107}
\entry {\code {continue}}{34}
\initial {D}
\entry {\code {declare}}{41}
\entry {\code {dirs}}{73}
\entry {\code {disown}}{81}
\entry {\code {disown}}{83}
\initial {E}
\entry {\code {echo}}{42}
\entry {\code {enable}}{42}
@@ -30,18 +30,18 @@
\entry {\code {exit}}{34}
\entry {\code {export}}{34}
\initial {F}
\entry {\code {fc}}{109}
\entry {\code {fg}}{80}
\entry {\code {fc}}{111}
\entry {\code {fg}}{82}
\initial {G}
\entry {\code {getopts}}{35}
\initial {H}
\entry {\code {hash}}{35}
\entry {\code {help}}{43}
\entry {\code {history}}{110}
\entry {\code {history}}{112}
\initial {J}
\entry {\code {jobs}}{80}
\entry {\code {jobs}}{82}
\initial {K}
\entry {\code {kill}}{81}
\entry {\code {kill}}{83}
\initial {L}
\entry {\code {let}}{43}
\entry {\code {local}}{43}
@@ -60,7 +60,7 @@
\entry {\code {shift}}{36}
\entry {\code {shopt}}{45}
\entry {\code {source}}{48}
\entry {\code {suspend}}{81}
\entry {\code {suspend}}{83}
\initial {T}
\entry {\code {test}}{37}
\entry {\code {times}}{38}
@@ -73,4 +73,4 @@
\entry {\code {unalias}}{50}
\entry {\code {unset}}{39}
\initial {W}
\entry {\code {wait}}{81}
\entry {\code {wait}}{83}
+28 -28
View File
@@ -88,31 +88,31 @@
\entry{prompting}{75}{prompting}
\entry{restricted shell}{76}{restricted shell}
\entry{POSIX Mode}{76}{POSIX Mode}
\entry{job control}{79}{job control}
\entry{foreground}{79}{foreground}
\entry{background}{79}{background}
\entry{suspending jobs}{79}{suspending jobs}
\entry{Readline, how to use}{82}{Readline, how to use}
\entry{interaction, readline}{83}{interaction, readline}
\entry{notation, readline}{83}{notation, readline}
\entry{command editing}{83}{command editing}
\entry{editing command lines}{83}{editing command lines}
\entry{killing text}{85}{killing text}
\entry{yanking text}{85}{yanking text}
\entry{kill ring}{85}{kill ring}
\entry{initialization file, readline}{86}{initialization file, readline}
\entry{variables, readline}{87}{variables, readline}
\entry{programmable completion}{103}{programmable completion}
\entry{completion builtins}{105}{completion builtins}
\entry{History, how to use}{108}{History, how to use}
\entry{command history}{109}{command history}
\entry{history list}{109}{history list}
\entry{history builtins}{109}{history builtins}
\entry{history expansion}{111}{history expansion}
\entry{event designators}{111}{event designators}
\entry{history events}{111}{history events}
\entry{installation}{115}{installation}
\entry{configuration}{115}{configuration}
\entry{Bash installation}{115}{Bash installation}
\entry{Bash configuration}{115}{Bash configuration}
\entry{FDL, GNU Free Documentation License}{131}{FDL, GNU Free Documentation License}
\entry{job control}{81}{job control}
\entry{foreground}{81}{foreground}
\entry{background}{81}{background}
\entry{suspending jobs}{81}{suspending jobs}
\entry{Readline, how to use}{84}{Readline, how to use}
\entry{interaction, readline}{85}{interaction, readline}
\entry{notation, readline}{85}{notation, readline}
\entry{command editing}{85}{command editing}
\entry{editing command lines}{85}{editing command lines}
\entry{killing text}{87}{killing text}
\entry{yanking text}{87}{yanking text}
\entry{kill ring}{87}{kill ring}
\entry{initialization file, readline}{88}{initialization file, readline}
\entry{variables, readline}{89}{variables, readline}
\entry{programmable completion}{105}{programmable completion}
\entry{completion builtins}{107}{completion builtins}
\entry{History, how to use}{110}{History, how to use}
\entry{command history}{111}{command history}
\entry{history list}{111}{history list}
\entry{history builtins}{111}{history builtins}
\entry{history expansion}{113}{history expansion}
\entry{event designators}{113}{event designators}
\entry{history events}{113}{history events}
\entry{installation}{117}{installation}
\entry{configuration}{117}{configuration}
\entry{Bash installation}{117}{Bash installation}
\entry{Bash configuration}{117}{Bash configuration}
\entry{FDL, GNU Free Documentation License}{133}{FDL, GNU Free Documentation License}
+28 -28
View File
@@ -5,17 +5,17 @@
\entry {arithmetic, shell}{70}
\entry {arrays}{72}
\initial {B}
\entry {background}{79}
\entry {Bash configuration}{115}
\entry {Bash installation}{115}
\entry {background}{81}
\entry {Bash configuration}{117}
\entry {Bash installation}{117}
\entry {Bourne shell}{5}
\entry {brace expansion}{17}
\entry {builtin}{3}
\initial {C}
\entry {command editing}{83}
\entry {command editing}{85}
\entry {command execution}{28}
\entry {command expansion}{28}
\entry {command history}{109}
\entry {command history}{111}
\entry {command search}{28}
\entry {command substitution}{21}
\entry {command timing}{8}
@@ -28,16 +28,16 @@
\entry {commands, shell}{8}
\entry {commands, simple}{8}
\entry {comments, shell}{7}
\entry {completion builtins}{105}
\entry {configuration}{115}
\entry {completion builtins}{107}
\entry {configuration}{117}
\entry {control operator}{3}
\initial {D}
\entry {directory stack}{73}
\initial {E}
\entry {editing command lines}{83}
\entry {editing command lines}{85}
\entry {environment}{30}
\entry {evaluation, arithmetic}{70}
\entry {event designators}{111}
\entry {event designators}{113}
\entry {execution environment}{29}
\entry {exit status}{3, 30}
\entry {expansion}{16}
@@ -50,31 +50,31 @@
\entry {expressions, arithmetic}{70}
\entry {expressions, conditional}{69}
\initial {F}
\entry {FDL, GNU Free Documentation License}{131}
\entry {FDL, GNU Free Documentation License}{133}
\entry {field}{3}
\entry {filename}{3}
\entry {filename expansion}{22}
\entry {foreground}{79}
\entry {foreground}{81}
\entry {functions, shell}{13}
\initial {H}
\entry {history builtins}{109}
\entry {history events}{111}
\entry {history expansion}{111}
\entry {history list}{109}
\entry {History, how to use}{108}
\entry {history builtins}{111}
\entry {history events}{113}
\entry {history expansion}{113}
\entry {history list}{111}
\entry {History, how to use}{110}
\initial {I}
\entry {identifier}{3}
\entry {initialization file, readline}{86}
\entry {installation}{115}
\entry {interaction, readline}{83}
\entry {initialization file, readline}{88}
\entry {installation}{117}
\entry {interaction, readline}{85}
\entry {interactive shell}{65, 67}
\entry {internationalization}{7}
\initial {J}
\entry {job}{3}
\entry {job control}{3, 79}
\entry {job control}{3, 81}
\initial {K}
\entry {kill ring}{85}
\entry {killing text}{85}
\entry {kill ring}{87}
\entry {killing text}{87}
\initial {L}
\entry {localization}{7}
\entry {login shell}{65}
@@ -84,7 +84,7 @@
\initial {N}
\entry {name}{3}
\entry {native languages}{7}
\entry {notation, readline}{83}
\entry {notation, readline}{85}
\initial {O}
\entry {operator, shell}{3}
\initial {P}
@@ -100,13 +100,13 @@
\entry {process group}{3}
\entry {process group ID}{3}
\entry {process substitution}{22}
\entry {programmable completion}{103}
\entry {programmable completion}{105}
\entry {prompting}{75}
\initial {Q}
\entry {quoting}{6}
\entry {quoting, ANSI}{6}
\initial {R}
\entry {Readline, how to use}{82}
\entry {Readline, how to use}{84}
\entry {redirection}{24}
\entry {reserved word}{3}
\entry {restricted shell}{76}
@@ -121,16 +121,16 @@
\entry {signal handling}{31}
\entry {special builtin}{4, 53}
\entry {startup files}{65}
\entry {suspending jobs}{79}
\entry {suspending jobs}{81}
\initial {T}
\entry {tilde expansion}{18}
\entry {token}{4}
\entry {translation, native languages}{7}
\initial {V}
\entry {variable, shell}{15}
\entry {variables, readline}{87}
\entry {variables, readline}{89}
\initial {W}
\entry {word}{4}
\entry {word splitting}{22}
\initial {Y}
\entry {yanking text}{85}
\entry {yanking text}{87}
BIN
View File
Binary file not shown.
+96 -96
View File
@@ -1,96 +1,96 @@
\entry{beginning-of-line (C-a)}{95}{\code {beginning-of-line (C-a)}}
\entry{end-of-line (C-e)}{95}{\code {end-of-line (C-e)}}
\entry{forward-char (C-f)}{95}{\code {forward-char (C-f)}}
\entry{backward-char (C-b)}{95}{\code {backward-char (C-b)}}
\entry{forward-word (M-f)}{95}{\code {forward-word (M-f)}}
\entry{backward-word (M-b)}{95}{\code {backward-word (M-b)}}
\entry{clear-screen (C-l)}{95}{\code {clear-screen (C-l)}}
\entry{redraw-current-line ()}{95}{\code {redraw-current-line ()}}
\entry{accept-line (Newline or Return)}{95}{\code {accept-line (Newline or Return)}}
\entry{previous-history (C-p)}{96}{\code {previous-history (C-p)}}
\entry{next-history (C-n)}{96}{\code {next-history (C-n)}}
\entry{beginning-of-history (M-<)}{96}{\code {beginning-of-history (M-<)}}
\entry{end-of-history (M->)}{96}{\code {end-of-history (M->)}}
\entry{reverse-search-history (C-r)}{96}{\code {reverse-search-history (C-r)}}
\entry{forward-search-history (C-s)}{96}{\code {forward-search-history (C-s)}}
\entry{non-incremental-reverse-search-history (M-p)}{96}{\code {non-incremental-reverse-search-history (M-p)}}
\entry{non-incremental-forward-search-history (M-n)}{96}{\code {non-incremental-forward-search-history (M-n)}}
\entry{history-search-forward ()}{96}{\code {history-search-forward ()}}
\entry{history-search-backward ()}{96}{\code {history-search-backward ()}}
\entry{yank-nth-arg (M-C-y)}{96}{\code {yank-nth-arg (M-C-y)}}
\entry{yank-last-arg (M-. or M-_)}{96}{\code {yank-last-arg (M-. or M-_)}}
\entry{delete-char (C-d)}{97}{\code {delete-char (C-d)}}
\entry{backward-delete-char (Rubout)}{97}{\code {backward-delete-char (Rubout)}}
\entry{forward-backward-delete-char ()}{97}{\code {forward-backward-delete-char ()}}
\entry{quoted-insert (C-q or C-v)}{97}{\code {quoted-insert (C-q or C-v)}}
\entry{self-insert (a, b, A, 1, !, ...{})}{97}{\code {self-insert (a, b, A, 1, !, \dots {})}}
\entry{transpose-chars (C-t)}{97}{\code {transpose-chars (C-t)}}
\entry{transpose-words (M-t)}{97}{\code {transpose-words (M-t)}}
\entry{upcase-word (M-u)}{97}{\code {upcase-word (M-u)}}
\entry{downcase-word (M-l)}{97}{\code {downcase-word (M-l)}}
\entry{capitalize-word (M-c)}{97}{\code {capitalize-word (M-c)}}
\entry{overwrite-mode ()}{97}{\code {overwrite-mode ()}}
\entry{kill-line (C-k)}{98}{\code {kill-line (C-k)}}
\entry{backward-kill-line (C-x Rubout)}{98}{\code {backward-kill-line (C-x Rubout)}}
\entry{unix-line-discard (C-u)}{98}{\code {unix-line-discard (C-u)}}
\entry{kill-whole-line ()}{98}{\code {kill-whole-line ()}}
\entry{kill-word (M-d)}{98}{\code {kill-word (M-d)}}
\entry{backward-kill-word (M-DEL)}{98}{\code {backward-kill-word (M-\key {DEL})}}
\entry{unix-word-rubout (C-w)}{98}{\code {unix-word-rubout (C-w)}}
\entry{unix-filename-rubout ()}{98}{\code {unix-filename-rubout ()}}
\entry{delete-horizontal-space ()}{98}{\code {delete-horizontal-space ()}}
\entry{kill-region ()}{98}{\code {kill-region ()}}
\entry{copy-region-as-kill ()}{98}{\code {copy-region-as-kill ()}}
\entry{copy-backward-word ()}{98}{\code {copy-backward-word ()}}
\entry{copy-forward-word ()}{98}{\code {copy-forward-word ()}}
\entry{yank (C-y)}{99}{\code {yank (C-y)}}
\entry{yank-pop (M-y)}{99}{\code {yank-pop (M-y)}}
\entry{digit-argument (M-0, M-1, ...{} M--)}{99}{\code {digit-argument (\kbd {M-0}, \kbd {M-1}, \dots {} \kbd {M--})}}
\entry{universal-argument ()}{99}{\code {universal-argument ()}}
\entry{complete (TAB)}{99}{\code {complete (\key {TAB})}}
\entry{possible-completions (M-?)}{99}{\code {possible-completions (M-?)}}
\entry{insert-completions (M-*)}{99}{\code {insert-completions (M-*)}}
\entry{menu-complete ()}{99}{\code {menu-complete ()}}
\entry{delete-char-or-list ()}{100}{\code {delete-char-or-list ()}}
\entry{complete-filename (M-/)}{100}{\code {complete-filename (M-/)}}
\entry{possible-filename-completions (C-x /)}{100}{\code {possible-filename-completions (C-x /)}}
\entry{complete-username (M-~)}{100}{\code {complete-username (M-~)}}
\entry{possible-username-completions (C-x ~)}{100}{\code {possible-username-completions (C-x ~)}}
\entry{complete-variable (M-$)}{100}{\code {complete-variable (M-$)}}
\entry{possible-variable-completions (C-x $)}{100}{\code {possible-variable-completions (C-x $)}}
\entry{complete-hostname (M-@)}{100}{\code {complete-hostname (M-@)}}
\entry{possible-hostname-completions (C-x @)}{100}{\code {possible-hostname-completions (C-x @)}}
\entry{complete-command (M-!)}{100}{\code {complete-command (M-!)}}
\entry{possible-command-completions (C-x !)}{100}{\code {possible-command-completions (C-x !)}}
\entry{dynamic-complete-history (M-TAB)}{100}{\code {dynamic-complete-history (M-\key {TAB})}}
\entry{complete-into-braces (M-{\tt \char 123})}{100}{\code {complete-into-braces (M-{\tt \char 123})}}
\entry{start-kbd-macro (C-x ()}{100}{\code {start-kbd-macro (C-x ()}}
\entry{end-kbd-macro (C-x ))}{101}{\code {end-kbd-macro (C-x ))}}
\entry{call-last-kbd-macro (C-x e)}{101}{\code {call-last-kbd-macro (C-x e)}}
\entry{re-read-init-file (C-x C-r)}{101}{\code {re-read-init-file (C-x C-r)}}
\entry{abort (C-g)}{101}{\code {abort (C-g)}}
\entry{do-uppercase-version (M-a, M-b, M-x, ...{})}{101}{\code {do-uppercase-version (M-a, M-b, M-\var {x}, \dots {})}}
\entry{prefix-meta (ESC)}{101}{\code {prefix-meta (\key {ESC})}}
\entry{undo (C-_ or C-x C-u)}{101}{\code {undo (C-_ or C-x C-u)}}
\entry{revert-line (M-r)}{101}{\code {revert-line (M-r)}}
\entry{tilde-expand (M-&)}{101}{\code {tilde-expand (M-&)}}
\entry{set-mark (C-@)}{101}{\code {set-mark (C-@)}}
\entry{exchange-point-and-mark (C-x C-x)}{101}{\code {exchange-point-and-mark (C-x C-x)}}
\entry{character-search (C-])}{101}{\code {character-search (C-])}}
\entry{character-search-backward (M-C-])}{101}{\code {character-search-backward (M-C-])}}
\entry{insert-comment (M-#)}{102}{\code {insert-comment (M-#)}}
\entry{dump-functions ()}{102}{\code {dump-functions ()}}
\entry{dump-variables ()}{102}{\code {dump-variables ()}}
\entry{dump-macros ()}{102}{\code {dump-macros ()}}
\entry{glob-complete-word (M-g)}{102}{\code {glob-complete-word (M-g)}}
\entry{glob-expand-word (C-x *)}{102}{\code {glob-expand-word (C-x *)}}
\entry{glob-list-expansions (C-x g)}{102}{\code {glob-list-expansions (C-x g)}}
\entry{display-shell-version (C-x C-v)}{102}{\code {display-shell-version (C-x C-v)}}
\entry{shell-expand-line (M-C-e)}{102}{\code {shell-expand-line (M-C-e)}}
\entry{history-expand-line (M-^)}{102}{\code {history-expand-line (M-^)}}
\entry{magic-space ()}{103}{\code {magic-space ()}}
\entry{alias-expand-line ()}{103}{\code {alias-expand-line ()}}
\entry{history-and-alias-expand-line ()}{103}{\code {history-and-alias-expand-line ()}}
\entry{insert-last-argument (M-. or M-_)}{103}{\code {insert-last-argument (M-. or M-_)}}
\entry{operate-and-get-next (C-o)}{103}{\code {operate-and-get-next (C-o)}}
\entry{edit-and-execute-command (C-xC-e)}{103}{\code {edit-and-execute-command (C-xC-e)}}
\entry{beginning-of-line (C-a)}{97}{\code {beginning-of-line (C-a)}}
\entry{end-of-line (C-e)}{97}{\code {end-of-line (C-e)}}
\entry{forward-char (C-f)}{97}{\code {forward-char (C-f)}}
\entry{backward-char (C-b)}{97}{\code {backward-char (C-b)}}
\entry{forward-word (M-f)}{97}{\code {forward-word (M-f)}}
\entry{backward-word (M-b)}{97}{\code {backward-word (M-b)}}
\entry{clear-screen (C-l)}{97}{\code {clear-screen (C-l)}}
\entry{redraw-current-line ()}{97}{\code {redraw-current-line ()}}
\entry{accept-line (Newline or Return)}{97}{\code {accept-line (Newline or Return)}}
\entry{previous-history (C-p)}{98}{\code {previous-history (C-p)}}
\entry{next-history (C-n)}{98}{\code {next-history (C-n)}}
\entry{beginning-of-history (M-<)}{98}{\code {beginning-of-history (M-<)}}
\entry{end-of-history (M->)}{98}{\code {end-of-history (M->)}}
\entry{reverse-search-history (C-r)}{98}{\code {reverse-search-history (C-r)}}
\entry{forward-search-history (C-s)}{98}{\code {forward-search-history (C-s)}}
\entry{non-incremental-reverse-search-history (M-p)}{98}{\code {non-incremental-reverse-search-history (M-p)}}
\entry{non-incremental-forward-search-history (M-n)}{98}{\code {non-incremental-forward-search-history (M-n)}}
\entry{history-search-forward ()}{98}{\code {history-search-forward ()}}
\entry{history-search-backward ()}{98}{\code {history-search-backward ()}}
\entry{yank-nth-arg (M-C-y)}{98}{\code {yank-nth-arg (M-C-y)}}
\entry{yank-last-arg (M-. or M-_)}{98}{\code {yank-last-arg (M-. or M-_)}}
\entry{delete-char (C-d)}{99}{\code {delete-char (C-d)}}
\entry{backward-delete-char (Rubout)}{99}{\code {backward-delete-char (Rubout)}}
\entry{forward-backward-delete-char ()}{99}{\code {forward-backward-delete-char ()}}
\entry{quoted-insert (C-q or C-v)}{99}{\code {quoted-insert (C-q or C-v)}}
\entry{self-insert (a, b, A, 1, !, ...{})}{99}{\code {self-insert (a, b, A, 1, !, \dots {})}}
\entry{transpose-chars (C-t)}{99}{\code {transpose-chars (C-t)}}
\entry{transpose-words (M-t)}{99}{\code {transpose-words (M-t)}}
\entry{upcase-word (M-u)}{99}{\code {upcase-word (M-u)}}
\entry{downcase-word (M-l)}{99}{\code {downcase-word (M-l)}}
\entry{capitalize-word (M-c)}{99}{\code {capitalize-word (M-c)}}
\entry{overwrite-mode ()}{99}{\code {overwrite-mode ()}}
\entry{kill-line (C-k)}{100}{\code {kill-line (C-k)}}
\entry{backward-kill-line (C-x Rubout)}{100}{\code {backward-kill-line (C-x Rubout)}}
\entry{unix-line-discard (C-u)}{100}{\code {unix-line-discard (C-u)}}
\entry{kill-whole-line ()}{100}{\code {kill-whole-line ()}}
\entry{kill-word (M-d)}{100}{\code {kill-word (M-d)}}
\entry{backward-kill-word (M-DEL)}{100}{\code {backward-kill-word (M-\key {DEL})}}
\entry{unix-word-rubout (C-w)}{100}{\code {unix-word-rubout (C-w)}}
\entry{unix-filename-rubout ()}{100}{\code {unix-filename-rubout ()}}
\entry{delete-horizontal-space ()}{100}{\code {delete-horizontal-space ()}}
\entry{kill-region ()}{100}{\code {kill-region ()}}
\entry{copy-region-as-kill ()}{100}{\code {copy-region-as-kill ()}}
\entry{copy-backward-word ()}{100}{\code {copy-backward-word ()}}
\entry{copy-forward-word ()}{100}{\code {copy-forward-word ()}}
\entry{yank (C-y)}{101}{\code {yank (C-y)}}
\entry{yank-pop (M-y)}{101}{\code {yank-pop (M-y)}}
\entry{digit-argument (M-0, M-1, ...{} M--)}{101}{\code {digit-argument (\kbd {M-0}, \kbd {M-1}, \dots {} \kbd {M--})}}
\entry{universal-argument ()}{101}{\code {universal-argument ()}}
\entry{complete (TAB)}{101}{\code {complete (\key {TAB})}}
\entry{possible-completions (M-?)}{101}{\code {possible-completions (M-?)}}
\entry{insert-completions (M-*)}{101}{\code {insert-completions (M-*)}}
\entry{menu-complete ()}{101}{\code {menu-complete ()}}
\entry{delete-char-or-list ()}{102}{\code {delete-char-or-list ()}}
\entry{complete-filename (M-/)}{102}{\code {complete-filename (M-/)}}
\entry{possible-filename-completions (C-x /)}{102}{\code {possible-filename-completions (C-x /)}}
\entry{complete-username (M-~)}{102}{\code {complete-username (M-~)}}
\entry{possible-username-completions (C-x ~)}{102}{\code {possible-username-completions (C-x ~)}}
\entry{complete-variable (M-$)}{102}{\code {complete-variable (M-$)}}
\entry{possible-variable-completions (C-x $)}{102}{\code {possible-variable-completions (C-x $)}}
\entry{complete-hostname (M-@)}{102}{\code {complete-hostname (M-@)}}
\entry{possible-hostname-completions (C-x @)}{102}{\code {possible-hostname-completions (C-x @)}}
\entry{complete-command (M-!)}{102}{\code {complete-command (M-!)}}
\entry{possible-command-completions (C-x !)}{102}{\code {possible-command-completions (C-x !)}}
\entry{dynamic-complete-history (M-TAB)}{102}{\code {dynamic-complete-history (M-\key {TAB})}}
\entry{complete-into-braces (M-{\tt \char 123})}{102}{\code {complete-into-braces (M-{\tt \char 123})}}
\entry{start-kbd-macro (C-x ()}{102}{\code {start-kbd-macro (C-x ()}}
\entry{end-kbd-macro (C-x ))}{103}{\code {end-kbd-macro (C-x ))}}
\entry{call-last-kbd-macro (C-x e)}{103}{\code {call-last-kbd-macro (C-x e)}}
\entry{re-read-init-file (C-x C-r)}{103}{\code {re-read-init-file (C-x C-r)}}
\entry{abort (C-g)}{103}{\code {abort (C-g)}}
\entry{do-uppercase-version (M-a, M-b, M-x, ...{})}{103}{\code {do-uppercase-version (M-a, M-b, M-\var {x}, \dots {})}}
\entry{prefix-meta (ESC)}{103}{\code {prefix-meta (\key {ESC})}}
\entry{undo (C-_ or C-x C-u)}{103}{\code {undo (C-_ or C-x C-u)}}
\entry{revert-line (M-r)}{103}{\code {revert-line (M-r)}}
\entry{tilde-expand (M-&)}{103}{\code {tilde-expand (M-&)}}
\entry{set-mark (C-@)}{103}{\code {set-mark (C-@)}}
\entry{exchange-point-and-mark (C-x C-x)}{103}{\code {exchange-point-and-mark (C-x C-x)}}
\entry{character-search (C-])}{103}{\code {character-search (C-])}}
\entry{character-search-backward (M-C-])}{103}{\code {character-search-backward (M-C-])}}
\entry{insert-comment (M-#)}{104}{\code {insert-comment (M-#)}}
\entry{dump-functions ()}{104}{\code {dump-functions ()}}
\entry{dump-variables ()}{104}{\code {dump-variables ()}}
\entry{dump-macros ()}{104}{\code {dump-macros ()}}
\entry{glob-complete-word (M-g)}{104}{\code {glob-complete-word (M-g)}}
\entry{glob-expand-word (C-x *)}{104}{\code {glob-expand-word (C-x *)}}
\entry{glob-list-expansions (C-x g)}{104}{\code {glob-list-expansions (C-x g)}}
\entry{display-shell-version (C-x C-v)}{104}{\code {display-shell-version (C-x C-v)}}
\entry{shell-expand-line (M-C-e)}{104}{\code {shell-expand-line (M-C-e)}}
\entry{history-expand-line (M-^)}{104}{\code {history-expand-line (M-^)}}
\entry{magic-space ()}{105}{\code {magic-space ()}}
\entry{alias-expand-line ()}{105}{\code {alias-expand-line ()}}
\entry{history-and-alias-expand-line ()}{105}{\code {history-and-alias-expand-line ()}}
\entry{insert-last-argument (M-. or M-_)}{105}{\code {insert-last-argument (M-. or M-_)}}
\entry{operate-and-get-next (C-o)}{105}{\code {operate-and-get-next (C-o)}}
\entry{edit-and-execute-command (C-xC-e)}{105}{\code {edit-and-execute-command (C-xC-e)}}
+96 -96
View File
@@ -1,116 +1,116 @@
\initial {A}
\entry {\code {abort (C-g)}}{101}
\entry {\code {accept-line (Newline or Return)}}{95}
\entry {\code {alias-expand-line ()}}{103}
\entry {\code {abort (C-g)}}{103}
\entry {\code {accept-line (Newline or Return)}}{97}
\entry {\code {alias-expand-line ()}}{105}
\initial {B}
\entry {\code {backward-char (C-b)}}{95}
\entry {\code {backward-delete-char (Rubout)}}{97}
\entry {\code {backward-kill-line (C-x Rubout)}}{98}
\entry {\code {backward-kill-word (M-\key {DEL})}}{98}
\entry {\code {backward-word (M-b)}}{95}
\entry {\code {beginning-of-history (M-<)}}{96}
\entry {\code {beginning-of-line (C-a)}}{95}
\entry {\code {backward-char (C-b)}}{97}
\entry {\code {backward-delete-char (Rubout)}}{99}
\entry {\code {backward-kill-line (C-x Rubout)}}{100}
\entry {\code {backward-kill-word (M-\key {DEL})}}{100}
\entry {\code {backward-word (M-b)}}{97}
\entry {\code {beginning-of-history (M-<)}}{98}
\entry {\code {beginning-of-line (C-a)}}{97}
\initial {C}
\entry {\code {call-last-kbd-macro (C-x e)}}{101}
\entry {\code {capitalize-word (M-c)}}{97}
\entry {\code {character-search (C-])}}{101}
\entry {\code {character-search-backward (M-C-])}}{101}
\entry {\code {clear-screen (C-l)}}{95}
\entry {\code {complete (\key {TAB})}}{99}
\entry {\code {complete-command (M-!)}}{100}
\entry {\code {complete-filename (M-/)}}{100}
\entry {\code {complete-hostname (M-@)}}{100}
\entry {\code {complete-into-braces (M-{\tt \char 123})}}{100}
\entry {\code {complete-username (M-~)}}{100}
\entry {\code {complete-variable (M-$)}}{100}
\entry {\code {copy-backward-word ()}}{98}
\entry {\code {copy-forward-word ()}}{98}
\entry {\code {copy-region-as-kill ()}}{98}
\entry {\code {call-last-kbd-macro (C-x e)}}{103}
\entry {\code {capitalize-word (M-c)}}{99}
\entry {\code {character-search (C-])}}{103}
\entry {\code {character-search-backward (M-C-])}}{103}
\entry {\code {clear-screen (C-l)}}{97}
\entry {\code {complete (\key {TAB})}}{101}
\entry {\code {complete-command (M-!)}}{102}
\entry {\code {complete-filename (M-/)}}{102}
\entry {\code {complete-hostname (M-@)}}{102}
\entry {\code {complete-into-braces (M-{\tt \char 123})}}{102}
\entry {\code {complete-username (M-~)}}{102}
\entry {\code {complete-variable (M-$)}}{102}
\entry {\code {copy-backward-word ()}}{100}
\entry {\code {copy-forward-word ()}}{100}
\entry {\code {copy-region-as-kill ()}}{100}
\initial {D}
\entry {\code {delete-char (C-d)}}{97}
\entry {\code {delete-char-or-list ()}}{100}
\entry {\code {delete-horizontal-space ()}}{98}
\entry {\code {digit-argument (\kbd {M-0}, \kbd {M-1}, \dots {} \kbd {M--})}}{99}
\entry {\code {display-shell-version (C-x C-v)}}{102}
\entry {\code {do-uppercase-version (M-a, M-b, M-\var {x}, \dots {})}}{101}
\entry {\code {downcase-word (M-l)}}{97}
\entry {\code {dump-functions ()}}{102}
\entry {\code {dump-macros ()}}{102}
\entry {\code {dump-variables ()}}{102}
\entry {\code {dynamic-complete-history (M-\key {TAB})}}{100}
\entry {\code {delete-char (C-d)}}{99}
\entry {\code {delete-char-or-list ()}}{102}
\entry {\code {delete-horizontal-space ()}}{100}
\entry {\code {digit-argument (\kbd {M-0}, \kbd {M-1}, \dots {} \kbd {M--})}}{101}
\entry {\code {display-shell-version (C-x C-v)}}{104}
\entry {\code {do-uppercase-version (M-a, M-b, M-\var {x}, \dots {})}}{103}
\entry {\code {downcase-word (M-l)}}{99}
\entry {\code {dump-functions ()}}{104}
\entry {\code {dump-macros ()}}{104}
\entry {\code {dump-variables ()}}{104}
\entry {\code {dynamic-complete-history (M-\key {TAB})}}{102}
\initial {E}
\entry {\code {edit-and-execute-command (C-xC-e)}}{103}
\entry {\code {end-kbd-macro (C-x ))}}{101}
\entry {\code {end-of-history (M->)}}{96}
\entry {\code {end-of-line (C-e)}}{95}
\entry {\code {exchange-point-and-mark (C-x C-x)}}{101}
\entry {\code {edit-and-execute-command (C-xC-e)}}{105}
\entry {\code {end-kbd-macro (C-x ))}}{103}
\entry {\code {end-of-history (M->)}}{98}
\entry {\code {end-of-line (C-e)}}{97}
\entry {\code {exchange-point-and-mark (C-x C-x)}}{103}
\initial {F}
\entry {\code {forward-backward-delete-char ()}}{97}
\entry {\code {forward-char (C-f)}}{95}
\entry {\code {forward-search-history (C-s)}}{96}
\entry {\code {forward-word (M-f)}}{95}
\entry {\code {forward-backward-delete-char ()}}{99}
\entry {\code {forward-char (C-f)}}{97}
\entry {\code {forward-search-history (C-s)}}{98}
\entry {\code {forward-word (M-f)}}{97}
\initial {G}
\entry {\code {glob-complete-word (M-g)}}{102}
\entry {\code {glob-expand-word (C-x *)}}{102}
\entry {\code {glob-list-expansions (C-x g)}}{102}
\entry {\code {glob-complete-word (M-g)}}{104}
\entry {\code {glob-expand-word (C-x *)}}{104}
\entry {\code {glob-list-expansions (C-x g)}}{104}
\initial {H}
\entry {\code {history-and-alias-expand-line ()}}{103}
\entry {\code {history-expand-line (M-^)}}{102}
\entry {\code {history-search-backward ()}}{96}
\entry {\code {history-search-forward ()}}{96}
\entry {\code {history-and-alias-expand-line ()}}{105}
\entry {\code {history-expand-line (M-^)}}{104}
\entry {\code {history-search-backward ()}}{98}
\entry {\code {history-search-forward ()}}{98}
\initial {I}
\entry {\code {insert-comment (M-#)}}{102}
\entry {\code {insert-completions (M-*)}}{99}
\entry {\code {insert-last-argument (M-. or M-_)}}{103}
\entry {\code {insert-comment (M-#)}}{104}
\entry {\code {insert-completions (M-*)}}{101}
\entry {\code {insert-last-argument (M-. or M-_)}}{105}
\initial {K}
\entry {\code {kill-line (C-k)}}{98}
\entry {\code {kill-region ()}}{98}
\entry {\code {kill-whole-line ()}}{98}
\entry {\code {kill-word (M-d)}}{98}
\entry {\code {kill-line (C-k)}}{100}
\entry {\code {kill-region ()}}{100}
\entry {\code {kill-whole-line ()}}{100}
\entry {\code {kill-word (M-d)}}{100}
\initial {M}
\entry {\code {magic-space ()}}{103}
\entry {\code {menu-complete ()}}{99}
\entry {\code {magic-space ()}}{105}
\entry {\code {menu-complete ()}}{101}
\initial {N}
\entry {\code {next-history (C-n)}}{96}
\entry {\code {non-incremental-forward-search-history (M-n)}}{96}
\entry {\code {non-incremental-reverse-search-history (M-p)}}{96}
\entry {\code {next-history (C-n)}}{98}
\entry {\code {non-incremental-forward-search-history (M-n)}}{98}
\entry {\code {non-incremental-reverse-search-history (M-p)}}{98}
\initial {O}
\entry {\code {operate-and-get-next (C-o)}}{103}
\entry {\code {overwrite-mode ()}}{97}
\entry {\code {operate-and-get-next (C-o)}}{105}
\entry {\code {overwrite-mode ()}}{99}
\initial {P}
\entry {\code {possible-command-completions (C-x !)}}{100}
\entry {\code {possible-completions (M-?)}}{99}
\entry {\code {possible-filename-completions (C-x /)}}{100}
\entry {\code {possible-hostname-completions (C-x @)}}{100}
\entry {\code {possible-username-completions (C-x ~)}}{100}
\entry {\code {possible-variable-completions (C-x $)}}{100}
\entry {\code {prefix-meta (\key {ESC})}}{101}
\entry {\code {previous-history (C-p)}}{96}
\entry {\code {possible-command-completions (C-x !)}}{102}
\entry {\code {possible-completions (M-?)}}{101}
\entry {\code {possible-filename-completions (C-x /)}}{102}
\entry {\code {possible-hostname-completions (C-x @)}}{102}
\entry {\code {possible-username-completions (C-x ~)}}{102}
\entry {\code {possible-variable-completions (C-x $)}}{102}
\entry {\code {prefix-meta (\key {ESC})}}{103}
\entry {\code {previous-history (C-p)}}{98}
\initial {Q}
\entry {\code {quoted-insert (C-q or C-v)}}{97}
\entry {\code {quoted-insert (C-q or C-v)}}{99}
\initial {R}
\entry {\code {re-read-init-file (C-x C-r)}}{101}
\entry {\code {redraw-current-line ()}}{95}
\entry {\code {reverse-search-history (C-r)}}{96}
\entry {\code {revert-line (M-r)}}{101}
\entry {\code {re-read-init-file (C-x C-r)}}{103}
\entry {\code {redraw-current-line ()}}{97}
\entry {\code {reverse-search-history (C-r)}}{98}
\entry {\code {revert-line (M-r)}}{103}
\initial {S}
\entry {\code {self-insert (a, b, A, 1, !, \dots {})}}{97}
\entry {\code {set-mark (C-@)}}{101}
\entry {\code {shell-expand-line (M-C-e)}}{102}
\entry {\code {start-kbd-macro (C-x ()}}{100}
\entry {\code {self-insert (a, b, A, 1, !, \dots {})}}{99}
\entry {\code {set-mark (C-@)}}{103}
\entry {\code {shell-expand-line (M-C-e)}}{104}
\entry {\code {start-kbd-macro (C-x ()}}{102}
\initial {T}
\entry {\code {tilde-expand (M-&)}}{101}
\entry {\code {transpose-chars (C-t)}}{97}
\entry {\code {transpose-words (M-t)}}{97}
\entry {\code {tilde-expand (M-&)}}{103}
\entry {\code {transpose-chars (C-t)}}{99}
\entry {\code {transpose-words (M-t)}}{99}
\initial {U}
\entry {\code {undo (C-_ or C-x C-u)}}{101}
\entry {\code {universal-argument ()}}{99}
\entry {\code {unix-filename-rubout ()}}{98}
\entry {\code {unix-line-discard (C-u)}}{98}
\entry {\code {unix-word-rubout (C-w)}}{98}
\entry {\code {upcase-word (M-u)}}{97}
\entry {\code {undo (C-_ or C-x C-u)}}{103}
\entry {\code {universal-argument ()}}{101}
\entry {\code {unix-filename-rubout ()}}{100}
\entry {\code {unix-line-discard (C-u)}}{100}
\entry {\code {unix-word-rubout (C-w)}}{100}
\entry {\code {upcase-word (M-u)}}{99}
\initial {Y}
\entry {\code {yank (C-y)}}{99}
\entry {\code {yank-last-arg (M-. or M-_)}}{96}
\entry {\code {yank-nth-arg (M-C-y)}}{96}
\entry {\code {yank-pop (M-y)}}{99}
\entry {\code {yank (C-y)}}{101}
\entry {\code {yank-last-arg (M-. or M-_)}}{98}
\entry {\code {yank-nth-arg (M-C-y)}}{98}
\entry {\code {yank-pop (M-y)}}{101}
+18 -6
View File
@@ -1,6 +1,6 @@
<HTML>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- Created on July, 27 2004 by texi2html 1.64 -->
<!-- Created on August, 3 2004 by texi2html 1.64 -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -33,10 +33,10 @@ Send bugs and suggestions to <texi2html@mathematik.uni-kl.de>
<H1>Bash Reference Manual</H1></P><P>
This text is a brief description of the features that are present in
the Bash shell (version 3.0, 27 July 2004)..
the Bash shell (version 3.0, 1 August 2004)..
</P><P>
This is Edition 3.0, last updated 27 July 2004,
This is Edition 3.0, last updated 1 August 2004,
of <CITE>The GNU Bash Reference Manual</CITE>,
for <CODE>Bash</CODE>, Version 3.0.
</P><P>
@@ -7941,7 +7941,8 @@ The <CODE>trap</CODE> builtin displays signal names without the leading
<LI>
The <CODE>trap</CODE> builtin doesn't check the first argument for a possible
signal specification and revert the signal handling to the original
disposition if it is. If users want to reset the handler for a given
disposition if it is, unless that argument consists solely of digits and
is a valid signal number. If users want to reset the handler for a given
signal to the original disposition, they should use <SAMP>`-'</SAMP> as the
first argument.
<P>
@@ -7983,6 +7984,17 @@ When the <CODE>cd</CODE> builtin is invoked in <VAR>logical</VAR> mode, and the
constructed from <CODE>$PWD</CODE> and the directory name supplied as an argument
does not refer to an existing directory, <CODE>cd</CODE> will fail instead of
falling back to <VAR>physical</VAR> mode.
<P>
<LI>
When listing the history, the <CODE>fc</CODE> builtin does not include an
indication of whether or not a history entry has been modified.
<P>
<LI>
The default editor used by <CODE>fc</CODE> is <CODE>ed</CODE>.
<P>
</OL>
<P>
@@ -15013,7 +15025,7 @@ to permit their use in free software.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1>About this document</H1>
This document was generated by <I>Chet Ramey</I> on <I>July, 27 2004</I>
This document was generated by <I>Chet Ramey</I> on <I>August, 3 2004</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
<P></P>
@@ -15175,7 +15187,7 @@ the following structure:
<BR>
<FONT SIZE="-1">
This document was generated
by <I>Chet Ramey</I> on <I>July, 27 2004</I>
by <I>Chet Ramey</I> on <I>August, 3 2004</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
+924 -1026
View File
File diff suppressed because it is too large Load Diff
+34 -34
View File
@@ -1,6 +1,6 @@
This is TeX, Version 3.14159 (Web2C 7.4.5) (format=tex 2003.12.31) 27 JUL 2004 09:12
**/Users/chet/src/bash/src/doc/bashref.texi
(/Users/chet/src/bash/src/doc/bashref.texi (./texinfo.tex
This is TeX, Version 3.14159 (Web2C 7.3.1) (format=tex 2001.2.12) 3 AUG 2004 09:54
**/usr/homes/chet/src/bash/src/doc/bashref.texi
(/usr/homes/chet/src/bash/src/doc/bashref.texi (texinfo.tex
Loading texinfo [version 2003-02-03.16]: Basics,
\bindingoffset=\dimen16
\normaloffset=\dimen17
@@ -106,7 +106,7 @@ cross references,
\auxfile=\write2
\savesfregister=\count46
\footnoteno=\count47
(/sw/share/texmf/tex/generic/misc/epsf.tex
(/usr/local/share/texmf/tex/plain/dvips/epsf.tex
\epsffilein=\read0
\epsfframemargin=\dimen39
\epsfframethickness=\dimen40
@@ -119,18 +119,18 @@ cross references,
\epsfnoopenhelp=\toks24
)
\noepsfhelp=\toks25
localization,
localization,
\nolanghelp=\toks26
\defaultparindent=\dimen47
and turning on texinfo input format.) (./bashref.aux)
and turning on texinfo input format.) (bashref.aux)
@cpindfile=@write3
@fnindfile=@write4
@vrindfile=@write5
@tpindfile=@write6
@kyindfile=@write7
@pgindfile=@write8
(./version.texi)
(version.texi)
@btindfile=@write9
@rwindfile=@write10
[1
@@ -152,12 +152,11 @@ and turning on texinfo input format.) (./bashref.aux)
\openout10 = `bashref.rw'.
]
[2] (./bashref.toc [-1] [-2] [-3]) [-4] Chapter 1
] [2] (bashref.toc [-1] [-2] [-3]) [-4] Chapter 1
\openout0 = `bashref.toc'.
[1] Chapter 2 [2] [3]
Chapter 3 [4] [5] [6] [7] [8] [9] [10]
[1] Chapter 2 [2]
[3] Chapter 3 [4] [5] [6] [7] [8] [9] [10]
Overfull \hbox (43.33539pt too wide) in paragraph at lines 862--862
[]@texttt case @textttsl word @texttt in [ [(] @textttsl pat-tern @texttt [| @
textttsl pat-tern@texttt ][]) @textttsl command-list @texttt ;;][] esac[][]
@@ -264,9 +263,10 @@ the file
.@textrm n
.etc.
[65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] Chapter 7
[78] [79] [80] [81] (/Users/chet/src/bash/src/lib/readline/doc/rluser.texi
Chapter 8 [82] [83] [84] [85] [86] [87]
[65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78]
Chapter 7 [79] [80] [81] [82] [83]
(/usr/homes/chet/src/bash/src/lib/readline/doc/rluser.texi Chapter 8 [84]
[85] [86] [87] [88] [89]
Underfull \hbox (badness 5231) in paragraph at lines 488--504
@texttt emacs-meta[]@textrm , @texttt emacs-ctlx[]@textrm , @texttt vi[]@textr
m , @texttt vi-move[]@textrm , @texttt vi-command[]@textrm , and
@@ -279,7 +279,7 @@ m , @texttt vi-move[]@textrm , @texttt vi-command[]@textrm , and
.@texttt c
.etc.
[88] [89] [90] [91] [92]
[90] [91] [92] [93] [94]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 801--801
[]@texttt Meta-Control-h: backward-kill-word Text after the function name is i
gnored[]
@@ -292,7 +292,7 @@ gnored[]
.@texttt t
.etc.
[93] [94] [95] [96] [97] [98] [99] [100] [101] [102] [103] [104]
[95] [96] [97] [98] [99] [100] [101] [102] [103] [104] [105] [106]
Overfull \hbox (17.80585pt too wide) in paragraph at lines 1646--1646
[]@texttt complete [-abcdefgjksuv] [-o @textttsl comp-option@texttt ] [-A @tex
tttsl ac-tion@texttt ] [-G @textttsl glob-
@@ -305,7 +305,7 @@ tttsl ac-tion@texttt ] [-G @textttsl glob-
.@texttt m
.etc.
[105] [106]
[107] [108]
Underfull \hbox (badness 2753) in paragraph at lines 1742--1745
@texttt hostname[]@textrm Hostnames, as taken from the file spec-i-fied by
@@ -317,9 +317,9 @@ Underfull \hbox (badness 2753) in paragraph at lines 1742--1745
.@texttt o
.etc.
[107]) (/Users/chet/src/bash/src/lib/readline/doc/hsuser.texi Chapter 9
[108] [109] [110] [111] [112]) Chapter 10 [113] [114] [115] [116] [117]
Underfull \hbox (badness 2772) in paragraph at lines 6610--6614
[109]) (/usr/homes/chet/src/bash/src/lib/readline/doc/hsuser.texi Chapter 9
[110] [111] [112] [113] [114]) Chapter 10 [115] [116] [117] [118] [119]
Underfull \hbox (badness 2772) in paragraph at lines 6619--6623
[]@textrm Enable sup-port for large files (@texttt http://www.sas.com/standard
s/large_
@@ -331,9 +331,9 @@ s/large_
.@textrm a
.etc.
[118] [119] [120] Appendix A [121] [122] Appendix B [123] [124] [125] [126]
[127] [128] Appendix C [129] [130] (./fdl.texi [131] [132] [133] [134] [135]
[136]) (Index of Shell Builtin Commands) [137] [138] (./bashref.bts)
[120] [121] [122] Appendix A [123] [124] Appendix B [125] [126] [127] [128]
[129] [130] Appendix C [131] [132] (fdl.texi [133] [134] [135] [136] [137]
[138]) (Index of Shell Builtin Commands) [139] [140] (bashref.bts)
(Index of Shell Reserved Words)
Overfull \vbox (42.26959pt too high) has occurred while \output is active
\vbox(643.19986+0.0)x433.62, glue set - 1.0
@@ -352,16 +352,16 @@ Overfull \vbox (42.26959pt too high) has occurred while \output is active
.etc.
[139] [140] (./bashref.rws) (Parameter and Variable Index) [141] [142]
(./bashref.vrs [143]) (Function Index) [144] (./bashref.fns [145])
(Concept Index) [146] (./bashref.cps [147]) [148] )
[141] [142] (bashref.rws) (Parameter and Variable Index) [143] [144]
(bashref.vrs [145]) (Function Index) [146] (bashref.fns [147]) (Concept Index)
[148] (bashref.cps [149]) [150] )
Here is how much of TeX's memory you used:
1726 strings out of 98002
23501 string characters out of 1221986
52362 words of memory out of 1000001
2577 multiletter control sequences out of 10000+50000
31953 words of font info for 111 fonts, out of 500000 for 1000
1713 strings out of 13013
23227 string characters out of 97233
52386 words of memory out of 263001
2577 multiletter control sequences out of 10000+0
31953 words of font info for 111 fonts, out of 400000 for 1000
19 hyphenation exceptions out of 1000
15i,8n,11p,269b,465s stack positions out of 1500i,500n,5000p,200000b,5000s
15i,8n,11p,273b,465s stack positions out of 300i,100n,500p,50000b,4000s
Output written on bashref.dvi (154 pages, 580108 bytes).
Output written on bashref.dvi (156 pages, 580500 bytes).
+11376 -13100
View File
File diff suppressed because it is too large Load Diff
+55 -55
View File
@@ -77,58 +77,58 @@
\secentry{Controlling the Prompt}{6}{9}{74}
\secentry{The Restricted Shell}{6}{10}{76}
\secentry{Bash POSIX Mode}{6}{11}{76}
\chapentry{Job Control}{7}{79}
\secentry{Job Control Basics}{7}{1}{79}
\secentry{Job Control Builtins}{7}{2}{80}
\secentry{Job Control Variables}{7}{3}{81}
\chapentry{Command Line Editing}{8}{83}
\secentry{Introduction to Line Editing}{8}{1}{83}
\secentry{Readline Interaction}{8}{2}{83}
\subsecentry{Readline Bare Essentials}{8}{2}{1}{83}
\subsecentry{Readline Movement Commands}{8}{2}{2}{84}
\subsecentry{Readline Killing Commands}{8}{2}{3}{84}
\subsecentry{Readline Arguments}{8}{2}{4}{85}
\subsecentry{Searching for Commands in the History}{8}{2}{5}{85}
\secentry{Readline Init File}{8}{3}{86}
\subsecentry{Readline Init File Syntax}{8}{3}{1}{86}
\subsecentry{Conditional Init Constructs}{8}{3}{2}{91}
\subsecentry{Sample Init File}{8}{3}{3}{92}
\secentry{Bindable Readline Commands}{8}{4}{95}
\subsecentry{Commands For Moving}{8}{4}{1}{95}
\subsecentry{Commands For Manipulating The History}{8}{4}{2}{95}
\subsecentry{Commands For Changing Text}{8}{4}{3}{96}
\subsecentry{Killing And Yanking}{8}{4}{4}{98}
\subsecentry{Specifying Numeric Arguments}{8}{4}{5}{99}
\subsecentry{Letting Readline Type For You}{8}{4}{6}{99}
\subsecentry{Keyboard Macros}{8}{4}{7}{100}
\subsecentry{Some Miscellaneous Commands}{8}{4}{8}{101}
\secentry{Readline vi Mode}{8}{5}{103}
\secentry{Programmable Completion}{8}{6}{103}
\secentry{Programmable Completion Builtins}{8}{7}{105}
\chapentry{Using History Interactively}{9}{109}
\secentry{Bash History Facilities}{9}{1}{109}
\secentry{Bash History Builtins}{9}{2}{109}
\secentry{History Expansion}{9}{3}{111}
\subsecentry{Event Designators}{9}{3}{1}{111}
\subsecentry{Word Designators}{9}{3}{2}{112}
\subsecentry{Modifiers}{9}{3}{3}{113}
\chapentry{Installing Bash}{10}{115}
\secentry{Basic Installation}{10}{1}{115}
\secentry{Compilers and Options}{10}{2}{115}
\secentry{Compiling For Multiple Architectures}{10}{3}{116}
\secentry{Installation Names}{10}{4}{116}
\secentry{Specifying the System Type}{10}{5}{116}
\secentry{Sharing Defaults}{10}{6}{117}
\secentry{Operation Controls}{10}{7}{117}
\secentry{Optional Features}{10}{8}{117}
\appendixentry{Reporting Bugs}{A}{123}
\appendixentry{Major Differences From The Bourne Shell}{B}{125}
\secentry{Implementation Differences From The SVR4.2 Shell}{B}{1}{129}
\appendixentry{Copying This Manual}{C}{131}
\secentry{GNU Free Documentation License}{C}{1}{131}
\subsecentry{ADDENDUM: How to use this License for your documents}{C}{1}{1}{137}
\unnumbchapentry{Index of Shell Builtin Commands}{10}{139}
\unnumbchapentry{Index of Shell Reserved Words}{10}{141}
\unnumbchapentry{Parameter and Variable Index}{10}{143}
\unnumbchapentry{Function Index}{10}{145}
\unnumbchapentry{Concept Index}{10}{147}
\chapentry{Job Control}{7}{81}
\secentry{Job Control Basics}{7}{1}{81}
\secentry{Job Control Builtins}{7}{2}{82}
\secentry{Job Control Variables}{7}{3}{83}
\chapentry{Command Line Editing}{8}{85}
\secentry{Introduction to Line Editing}{8}{1}{85}
\secentry{Readline Interaction}{8}{2}{85}
\subsecentry{Readline Bare Essentials}{8}{2}{1}{85}
\subsecentry{Readline Movement Commands}{8}{2}{2}{86}
\subsecentry{Readline Killing Commands}{8}{2}{3}{86}
\subsecentry{Readline Arguments}{8}{2}{4}{87}
\subsecentry{Searching for Commands in the History}{8}{2}{5}{87}
\secentry{Readline Init File}{8}{3}{88}
\subsecentry{Readline Init File Syntax}{8}{3}{1}{88}
\subsecentry{Conditional Init Constructs}{8}{3}{2}{93}
\subsecentry{Sample Init File}{8}{3}{3}{94}
\secentry{Bindable Readline Commands}{8}{4}{97}
\subsecentry{Commands For Moving}{8}{4}{1}{97}
\subsecentry{Commands For Manipulating The History}{8}{4}{2}{97}
\subsecentry{Commands For Changing Text}{8}{4}{3}{98}
\subsecentry{Killing And Yanking}{8}{4}{4}{100}
\subsecentry{Specifying Numeric Arguments}{8}{4}{5}{101}
\subsecentry{Letting Readline Type For You}{8}{4}{6}{101}
\subsecentry{Keyboard Macros}{8}{4}{7}{102}
\subsecentry{Some Miscellaneous Commands}{8}{4}{8}{103}
\secentry{Readline vi Mode}{8}{5}{105}
\secentry{Programmable Completion}{8}{6}{105}
\secentry{Programmable Completion Builtins}{8}{7}{107}
\chapentry{Using History Interactively}{9}{111}
\secentry{Bash History Facilities}{9}{1}{111}
\secentry{Bash History Builtins}{9}{2}{111}
\secentry{History Expansion}{9}{3}{113}
\subsecentry{Event Designators}{9}{3}{1}{113}
\subsecentry{Word Designators}{9}{3}{2}{114}
\subsecentry{Modifiers}{9}{3}{3}{115}
\chapentry{Installing Bash}{10}{117}
\secentry{Basic Installation}{10}{1}{117}
\secentry{Compilers and Options}{10}{2}{117}
\secentry{Compiling For Multiple Architectures}{10}{3}{118}
\secentry{Installation Names}{10}{4}{118}
\secentry{Specifying the System Type}{10}{5}{118}
\secentry{Sharing Defaults}{10}{6}{119}
\secentry{Operation Controls}{10}{7}{119}
\secentry{Optional Features}{10}{8}{119}
\appendixentry{Reporting Bugs}{A}{125}
\appendixentry{Major Differences From The Bourne Shell}{B}{127}
\secentry{Implementation Differences From The SVR4.2 Shell}{B}{1}{131}
\appendixentry{Copying This Manual}{C}{133}
\secentry{GNU Free Documentation License}{C}{1}{133}
\subsecentry{ADDENDUM: How to use this License for your documents}{C}{1}{1}{139}
\unnumbchapentry{Index of Shell Builtin Commands}{10}{141}
\unnumbchapentry{Index of Shell Reserved Words}{10}{143}
\unnumbchapentry{Parameter and Variable Index}{10}{145}
\unnumbchapentry{Function Index}{10}{147}
\unnumbchapentry{Concept Index}{10}{149}
+23 -23
View File
@@ -89,26 +89,26 @@
\entry{TIMEFORMAT}{62}{\code {TIMEFORMAT}}
\entry{TMOUT}{62}{\code {TMOUT}}
\entry{UID}{62}{\code {UID}}
\entry{auto_resume}{82}{\code {auto_resume}}
\entry{bell-style}{87}{\code {bell-style}}
\entry{comment-begin}{87}{\code {comment-begin}}
\entry{completion-query-items}{87}{\code {completion-query-items}}
\entry{convert-meta}{87}{\code {convert-meta}}
\entry{disable-completion}{87}{\code {disable-completion}}
\entry{editing-mode}{88}{\code {editing-mode}}
\entry{enable-keypad}{88}{\code {enable-keypad}}
\entry{expand-tilde}{88}{\code {expand-tilde}}
\entry{history-preserve-point}{88}{\code {history-preserve-point}}
\entry{horizontal-scroll-mode}{88}{\code {horizontal-scroll-mode}}
\entry{input-meta}{88}{\code {input-meta}}
\entry{meta-flag}{88}{\code {meta-flag}}
\entry{isearch-terminators}{88}{\code {isearch-terminators}}
\entry{keymap}{88}{\code {keymap}}
\entry{mark-modified-lines}{89}{\code {mark-modified-lines}}
\entry{mark-symlinked-directories}{89}{\code {mark-symlinked-directories}}
\entry{match-hidden-files}{89}{\code {match-hidden-files}}
\entry{output-meta}{89}{\code {output-meta}}
\entry{page-completions}{89}{\code {page-completions}}
\entry{show-all-if-ambiguous}{89}{\code {show-all-if-ambiguous}}
\entry{show-all-if-unmodified}{89}{\code {show-all-if-unmodified}}
\entry{visible-stats}{89}{\code {visible-stats}}
\entry{auto_resume}{84}{\code {auto_resume}}
\entry{bell-style}{89}{\code {bell-style}}
\entry{comment-begin}{89}{\code {comment-begin}}
\entry{completion-query-items}{89}{\code {completion-query-items}}
\entry{convert-meta}{89}{\code {convert-meta}}
\entry{disable-completion}{89}{\code {disable-completion}}
\entry{editing-mode}{90}{\code {editing-mode}}
\entry{enable-keypad}{90}{\code {enable-keypad}}
\entry{expand-tilde}{90}{\code {expand-tilde}}
\entry{history-preserve-point}{90}{\code {history-preserve-point}}
\entry{horizontal-scroll-mode}{90}{\code {horizontal-scroll-mode}}
\entry{input-meta}{90}{\code {input-meta}}
\entry{meta-flag}{90}{\code {meta-flag}}
\entry{isearch-terminators}{90}{\code {isearch-terminators}}
\entry{keymap}{90}{\code {keymap}}
\entry{mark-modified-lines}{91}{\code {mark-modified-lines}}
\entry{mark-symlinked-directories}{91}{\code {mark-symlinked-directories}}
\entry{match-hidden-files}{91}{\code {match-hidden-files}}
\entry{output-meta}{91}{\code {output-meta}}
\entry{page-completions}{91}{\code {page-completions}}
\entry{show-all-if-ambiguous}{91}{\code {show-all-if-ambiguous}}
\entry{show-all-if-unmodified}{91}{\code {show-all-if-unmodified}}
\entry{visible-stats}{91}{\code {visible-stats}}
+23 -23
View File
@@ -17,7 +17,7 @@
\initial {0}
\entry {\code {0}}{16}
\initial {A}
\entry {\code {auto_resume}}{82}
\entry {\code {auto_resume}}{84}
\initial {B}
\entry {\code {BASH}}{55}
\entry {\code {BASH_ARGC}}{56}
@@ -31,28 +31,28 @@
\entry {\code {BASH_SUBSHELL}}{56}
\entry {\code {BASH_VERSINFO}}{56}
\entry {\code {BASH_VERSION}}{57}
\entry {\code {bell-style}}{87}
\entry {\code {bell-style}}{89}
\initial {C}
\entry {\code {CDPATH}}{55}
\entry {\code {COLUMNS}}{57}
\entry {\code {comment-begin}}{87}
\entry {\code {comment-begin}}{89}
\entry {\code {COMP_CWORD}}{57}
\entry {\code {COMP_LINE}}{57}
\entry {\code {COMP_POINT}}{57}
\entry {\code {COMP_WORDBREAKS}}{57}
\entry {\code {COMP_WORDS}}{57}
\entry {\code {completion-query-items}}{87}
\entry {\code {completion-query-items}}{89}
\entry {\code {COMPREPLY}}{58}
\entry {\code {convert-meta}}{87}
\entry {\code {convert-meta}}{89}
\initial {D}
\entry {\code {DIRSTACK}}{58}
\entry {\code {disable-completion}}{87}
\entry {\code {disable-completion}}{89}
\initial {E}
\entry {\code {editing-mode}}{88}
\entry {\code {editing-mode}}{90}
\entry {\code {EMACS}}{58}
\entry {\code {enable-keypad}}{88}
\entry {\code {enable-keypad}}{90}
\entry {\code {EUID}}{58}
\entry {\code {expand-tilde}}{88}
\entry {\code {expand-tilde}}{90}
\initial {F}
\entry {\code {FCEDIT}}{58}
\entry {\code {FIGNORE}}{58}
@@ -67,22 +67,22 @@
\entry {\code {HISTFILE}}{59}
\entry {\code {HISTFILESIZE}}{59}
\entry {\code {HISTIGNORE}}{59}
\entry {\code {history-preserve-point}}{88}
\entry {\code {history-preserve-point}}{90}
\entry {\code {HISTSIZE}}{59}
\entry {\code {HISTTIMEFORMAT}}{59}
\entry {\code {HOME}}{55}
\entry {\code {horizontal-scroll-mode}}{88}
\entry {\code {horizontal-scroll-mode}}{90}
\entry {\code {HOSTFILE}}{59}
\entry {\code {HOSTNAME}}{60}
\entry {\code {HOSTTYPE}}{60}
\initial {I}
\entry {\code {IFS}}{55}
\entry {\code {IGNOREEOF}}{60}
\entry {\code {input-meta}}{88}
\entry {\code {input-meta}}{90}
\entry {\code {INPUTRC}}{60}
\entry {\code {isearch-terminators}}{88}
\entry {\code {isearch-terminators}}{90}
\initial {K}
\entry {\code {keymap}}{88}
\entry {\code {keymap}}{90}
\initial {L}
\entry {\code {LANG}}{60}
\entry {\code {LC_ALL}}{60}
@@ -97,19 +97,19 @@
\entry {\code {MAIL}}{55}
\entry {\code {MAILCHECK}}{61}
\entry {\code {MAILPATH}}{55}
\entry {\code {mark-modified-lines}}{89}
\entry {\code {mark-symlinked-directories}}{89}
\entry {\code {match-hidden-files}}{89}
\entry {\code {meta-flag}}{88}
\entry {\code {mark-modified-lines}}{91}
\entry {\code {mark-symlinked-directories}}{91}
\entry {\code {match-hidden-files}}{91}
\entry {\code {meta-flag}}{90}
\initial {O}
\entry {\code {OLDPWD}}{61}
\entry {\code {OPTARG}}{55}
\entry {\code {OPTERR}}{61}
\entry {\code {OPTIND}}{55}
\entry {\code {OSTYPE}}{61}
\entry {\code {output-meta}}{89}
\entry {\code {output-meta}}{91}
\initial {P}
\entry {\code {page-completions}}{89}
\entry {\code {page-completions}}{91}
\entry {\code {PATH}}{55}
\entry {\code {PIPESTATUS}}{61}
\entry {\code {POSIXLY_CORRECT}}{61}
@@ -128,8 +128,8 @@
\entry {\code {SHELL}}{62}
\entry {\code {SHELLOPTS}}{62}
\entry {\code {SHLVL}}{62}
\entry {\code {show-all-if-ambiguous}}{89}
\entry {\code {show-all-if-unmodified}}{89}
\entry {\code {show-all-if-ambiguous}}{91}
\entry {\code {show-all-if-unmodified}}{91}
\initial {T}
\entry {\code {TEXTDOMAIN}}{7}
\entry {\code {TEXTDOMAINDIR}}{7}
@@ -138,4 +138,4 @@
\initial {U}
\entry {\code {UID}}{62}
\initial {V}
\entry {\code {visible-stats}}{89}
\entry {\code {visible-stats}}{91}
+1 -1
View File
@@ -1,5 +1,5 @@
From: chet@po.cwru.edu (Chet Ramey)
To: bug-bash@gnu.org
Subject: BASH Frequently-Asked Questions (FAQ version 3.26)
Subject: BASH Frequently-Asked Questions (FAQ version 3.27)
Reply-To: chet@po.cwru.edu
+1 -1
View File
@@ -1,7 +1,7 @@
Newsgroups: comp.unix.shell,comp.unix.questions
Distribution: world
From: chet@po.cwru.edu (Chet Ramey)
Subject: BASH Frequently-Asked Questions (FAQ version 3.26)
Subject: BASH Frequently-Asked Questions (FAQ version 3.27)
Organization: Case Western Reserve University
Summary: A's to Q's about BASH, the Bourne-Again SHell
Reply-To: chet@po.cwru.edu
+1 -1
View File
@@ -1,6 +1,6 @@
Newsgroups: comp.unix.shell,comp.unix.questions,comp.answers,news.answers
From: chet@po.cwru.edu (Chet Ramey)
Subject: [gnu.bash.bug] BASH Frequently-Asked Questions (FAQ version 3.26)
Subject: [gnu.bash.bug] BASH Frequently-Asked Questions (FAQ version 3.27)
Organization: Case Western Reserve University
Summary: A's to Q's about BASH, the Bourne-Again SHell
Reply-To: chet@po.cwru.edu
+81 -66
View File
@@ -1,18 +1,18 @@
From: chet@po.cwru.edu (Chet Ramey)
To: bug-bash@gnu.org
Subject: BASH Frequently-Asked Questions (FAQ version 3.26)
Subject: BASH Frequently-Asked Questions (FAQ version 3.27)
Reply-To: chet@po.cwru.edu
Archive-name: unix-faq/shell/bash
Posting-Frequency: monthly
Submitted-By: chet@po.cwru.edu (Chet Ramey)
Last-Modified: Mon Aug 18 13:59:33 EDT 2003
FAQ-Version: 3.26
Bash-Version: 2.05b
Last-Modified: Tue Aug 3 09:54:24 EDT 2004
FAQ-Version: 3.27
Bash-Version: 3.0
URL: ftp://ftp.cwru.edu/pub/bash/FAQ
Maintainer: chet@po.cwru.edu (Chet Ramey)
This is the Bash FAQ, version 3.26, for Bash version 2.05b.
This is the Bash FAQ, version 3.27, for Bash version 3.0.
This document contains a set of frequently-asked questions concerning
Bash, the GNU Bourne-Again Shell. Bash is a freely-available command
@@ -50,8 +50,8 @@ A10) What is the bash `posix mode'?
Section B: The latest version
B1) What's new in version 2.05b?
B2) Are there any user-visible incompatibilities between bash-2.05b and
B1) What's new in version 3.0?
B2) Are there any user-visible incompatibilities between bash-3.0 and
bash-1.14.7?
Section C: Differences from other Unix shells
@@ -154,30 +154,29 @@ of Case Western Reserve University.
A2) What's the latest version?
The latest version is 2.05b, first made available on Wednesday, 17
July, 2002.
The latest version is 3.0, first made available on 27 July, 2004.
A3) Where can I get it?
Bash is the GNU project's shell, and so is available from the
master GNU archive site, ftp.gnu.org, and its mirrors. The
latest version is also available for FTP from ftp.cwru.edu.
The following URLs tell how to get version 2.05b:
The following URLs tell how to get version 3.0:
ftp://ftp.gnu.org/pub/gnu/bash/bash-2.05b.tar.gz
ftp://ftp.cwru.edu/pub/bash/bash-2.05b.tar.gz
ftp://ftp.gnu.org/pub/gnu/bash/bash-3.0.tar.gz
ftp://ftp.cwru.edu/pub/bash/bash-3.0.tar.gz
Formatted versions of the documentation are available with the URLs:
ftp://ftp.gnu.org/pub/gnu/bash/bash-doc-2.05b.tar.gz
ftp://ftp.cwru.edu/pub/bash/bash-doc-2.05b.tar.gz
ftp://ftp.gnu.org/pub/gnu/bash/bash-doc-3.0.tar.gz
ftp://ftp.cwru.edu/pub/bash/bash-doc-3.0.tar.gz
A4) On what machines will bash run?
Bash has been ported to nearly every version of UNIX. All you
Bash has been ported to nearly every version of Unix. All you
should have to do to build it on a machine for which a port
exists is to type `configure' and then `make'. The build process
will attempt to discover the version of UNIX you have and tailor
will attempt to discover the version of Unix you have and tailor
itself accordingly, using a script created by GNU autoconf.
More information appears in the file `INSTALL' in the distribution.
@@ -207,13 +206,8 @@ early GNU-Win32 (the original name) releases. Cygnus has also done a
port of bash-2.05 to the CYGWIN environment, and it is available as
part of their current release.
Bash-2.05b should require no local Cygnus changes to build and run under
CYGWIN.
The Cygnus port works only on Intel machines. There is a port of bash
(I don't know which version) to the alpha/NT environment available from
ftp://ftp.gnustep.org//pub/win32/bash-alpha-nt-1.01.tar.gz
Bash-2.05b and later versions should require no local Cygnus changes to
build and run under CYGWIN.
DJ Delorie has a port of bash-2.x which runs under MS-DOS, as part
of the DJGPP project. For more information on the project, see
@@ -229,19 +223,10 @@ ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/bsh204b.zip binary
ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/bsh204d.zip documentation
ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/bsh204s.zip source
Mark has begun to work with bash-2.05, but I don't know the status.
Mark began to work with bash-2.05, but I don't know the current status.
Ports of bash-1.12 and bash-2.0 are available for OS/2 from
ftp://hobbes.nmsu.edu/pub/os2/util/shell/bash_112.zip
ftp://hobbes.nmsu.edu/pub/os2/util/shell/bash-2.0(253).zip
I haven't looked at either, but the second appears to be a binary-only
distribution. Beware.
I have received word that Bash (I'm not sure which version, but I
believe that it's at least bash-2.02.1) is the standard shell on
BeOS.
Bash-3.0 compiles and runs with no modifications under Microsoft's Services
for Unix (SFU), once known as Interix.
A6) How can I build bash with gcc?
@@ -388,9 +373,8 @@ standardized; emacs editing commands were left out due to
objections.
The latest version of the POSIX Shell and Utilities standard is
available (now updated to the 2003 Edition incorporating the
Technical Corrigendum 1), as part of the Single UNIX Specification
Version 3 at
available (now updated to the 2004 Edition) as part of the Single
UNIX Specification Version 3 at
http://www.UNIX-systems.org/version3/
@@ -411,18 +395,48 @@ They are also listed in a section in the Bash Reference Manual
Section B: The latest version
B1) What's new in version 2.05b?
B1) What's new in version 3.0?
The raison d'etre for bash-2.05b is to make a second intermediate
release containing the first of the new features to be available
in bash-3.0 and get feedback on those features before proceeding.
The major new feature is multibyte character support in both Bash
and Readline.
Bash-3.0 is the third major release of bash. The features introduced
in the intermediate releases following bash-2.05 have been completed.
Support for the bash debugger (a separate project) has been integrated.
Bash-2.05b contains the following new features (see the manual page for
complete descriptions and the CHANGES and NEWS files in the bash-2.05b
Bash-3.0 contains the following new features (see the manual page for
complete descriptions and the CHANGES and NEWS files in the bash-3.0
distribution):
o Features to support the bash debugger have been implemented, and there
is a new `extdebug' option to turn the non-default options on
o HISTCONTROL is now a colon-separated list of options and has been
extended with a new `erasedups' option that will result in only one
copy of a command being kept in the history list
o Brace expansion has been extended with a new {x..y} form, producing
sequences of digits or characters
o Timestamps are now kept with history entries, with an option to save
and restore them from the history file; there is a new HISTTIMEFORMAT
variable describing how to display the timestamps when listing history
entries
o The `[[' command can now perform extended regular expression (egrep-like)
matching, with matched subexpressions placed in the BASH_REMATCH array
variable
o A new `pipefail' option causes a pipeline to return a failure status if
any command in it fails
o The `jobs', `kill', and `wait' builtins now accept job control notation
in their arguments even if job control is not enabled
o The `gettext' package and libintl have been integrated, and the shell
messages may be translated into other languages
A short feature history dating from Bash-2.0:
Bash-2.05b introduced the following new features:
o support for multibyte characters has been added to both bash and readline
o the DEBUG trap is now run *before* simple commands, ((...)) commands,
@@ -451,9 +465,6 @@ o the expansion of $LINENO inside a shell function is only relative to the
script, $LINENO expands to the line number in the script. This is as
POSIX-2001 requires
A short feature history dating from Bash-2.0:
Bash-2.05a introduced the following new features:
o The `printf' builtin has undergone major work
@@ -631,10 +642,10 @@ grammar tighter and smaller (66 reduce-reduce conflicts gone)
lots of code now smaller and faster
test suite greatly expanded
B2) Are there any user-visible incompatibilities between bash-2.05b and
B2) Are there any user-visible incompatibilities between bash-3.0 and
bash-1.14.7?
There are a few incompatibilities between version 1.14.7 and version 2.05b.
There are a few incompatibilities between version 1.14.7 and version 3.0.
They are detailed in the file COMPAT in the bash distribution. That file
is not meant to be all-encompassing; send mail to bash-maintainers@gnu.org
if if you find something that's not mentioned there.
@@ -720,6 +731,9 @@ Things bash has that sh does not:
posix mode
redirection to /dev/fd/N, /dev/stdin, /dev/stdout, /dev/stderr,
/dev/tcp/host/port, /dev/udp/host/port
debugger support, including `caller' builtin and new variables
RETURN trap
Things sh has that bash does not:
uses variable SHACCT to do shell accounting
@@ -792,6 +806,10 @@ Things bash has or uses that ksh88 does not:
redirection to /dev/fd/N, /dev/stdin, /dev/stdout, /dev/stderr
arrays of unlimited size
TMOUT is default timeout for `read' and `select'
debugger support, including the `caller' builtin
RETURN trap
Timestamps in history entries
{x..y} brace expansion
Things ksh88 has or uses that bash does not:
tracked aliases (alias -t)
@@ -800,9 +818,9 @@ Things ksh88 has or uses that bash does not:
weirdly-scoped functions
typeset +f to list all function names without definitions
text of command history kept in a file, not memory
builtins: alias -x, cd old new, fc -e -, newgrp, print,
builtins: alias -x, cd old new, newgrp, print,
read -p/-s/var?prompt, set -A/-o gmacs/
-o bgnice/-o markdirs/-o nolog/-o trackall/-o viraw/-s,
-o bgnice/-o markdirs/-o trackall/-o viraw/-s,
typeset -H/-L/-R/-Z/-A/-ft/-fu/-fx/-l/-u/-t, whence
using environment to pass attributes of exported variables
arithmetic evaluation done on arguments to some builtins
@@ -819,7 +837,7 @@ Implementation differences:
C3) Which new features in ksh-93 are not in bash, and which are?
New things in ksh-93 not in bash-2.05b:
New things in ksh-93 not in bash-3.0:
associative arrays
floating point arithmetic and variables
math library functions
@@ -838,17 +856,15 @@ New things in ksh-93 not in bash-2.05b:
`fc' has been renamed to `hist'
`.' can execute shell functions
exit statuses between 0 and 255
set -o pipefail
`+=' variable assignment operator
FPATH and PATH mixing
getopts -a
-I invocation option
DEBUG trap now executed before each simple command, instead of after
printf %H, %P, %T, %Z modifiers, output base for %d
lexical scoping for local variables in `ksh' functions
no scoping for local variables in `POSIX' functions
New things in ksh-93 present in bash-2.05b:
New things in ksh-93 present in bash-3.0:
[n]<&word- and [n]>&word- redirections (combination dup and close)
for (( expr1; expr2; expr3 )) ; do list; done - arithmetic for command
?:, ++, --, `expr1 , expr2' arithmetic operators
@@ -873,6 +889,7 @@ New things in ksh-93 present in bash-2.05b:
command and arithmetic substitution performed on PS1, PS4, and ENV
command name completion
ENV processed only for interactive shells
set -o pipefail
Section D: Why does bash do some things differently than other Unix shells?
@@ -1261,9 +1278,9 @@ subdirs-clean:
( cd $$d && ${MAKE} ${MFLAGS} clean ) \
done
The latest drafts of the updated POSIX standard have changed this: the
word list is no longer required. Bash versions 2.05a and later accept
the new syntax.
The latest updated POSIX standard has changed this: the word list
is no longer required. Bash versions 2.05a and later accept the
new syntax.
E8) Why does the arithmetic evaluation code complain about `08'?
@@ -1479,7 +1496,7 @@ comp.unix.shell). While most commands of the form
can be converted to `< file command', shell control structures such as
loops and subshells require `command < file'.
The file CWRU/sh-redir-hack in the bash-2.05a distribution is an
The file CWRU/sh-redir-hack in the bash distribution is an
(unofficial) patch to parse.y that will modify the grammar to
support this construct. It will not apply with `patch'; you must
modify parse.y by hand. Note that if you apply this, you must
@@ -1750,7 +1767,7 @@ H3) What's coming in future versions?
These are features I hope to include in a future version of bash.
a better bash debugger (a minimally-tested version is included with bash-2.05b)
Rocky Bernstein's bash debugger (support is included with bash-3.0)
associative arrays
co-processes, but with a new-style syntax that looks like function declaration
@@ -1760,7 +1777,6 @@ These are features that may or may not appear in a future version of bash.
breaking some of the shell functionality into embeddable libraries
a module system like zsh's, using dynamic loading like builtins
better internationalization using GNU `gettext'
date-stamped command history
a bash programmer's guide with a chapter on creating loadable builtins
a better loadable interface to perl with access to the shell builtins and
@@ -1773,10 +1789,9 @@ Some of the new ksh93 pattern matching operators, like backreferencing
H5) When will the next release appear?
The next version will appear sometime in 2003. Never make predictions.
The next version will appear sometime in 2005. Never make predictions.
This document is Copyright 1995-2003 by Chester Ramey.
This document is Copyright 1995-2004 by Chester Ramey.
Permission is hereby granted, without written agreement and
without license or royalty fees, to use, copy, and distribute
+81 -66
View File
@@ -1,7 +1,7 @@
Newsgroups: comp.unix.shell,comp.unix.questions
Distribution: world
From: chet@po.cwru.edu (Chet Ramey)
Subject: BASH Frequently-Asked Questions (FAQ version 3.26)
Subject: BASH Frequently-Asked Questions (FAQ version 3.27)
Organization: Case Western Reserve University
Summary: A's to Q's about BASH, the Bourne-Again SHell
Reply-To: chet@po.cwru.edu
@@ -10,13 +10,13 @@ Followup-To: poster
Archive-name: unix-faq/shell/bash
Posting-Frequency: monthly
Submitted-By: chet@po.cwru.edu (Chet Ramey)
Last-Modified: Mon Aug 18 13:59:33 EDT 2003
FAQ-Version: 3.26
Bash-Version: 2.05b
Last-Modified: Tue Aug 3 09:54:24 EDT 2004
FAQ-Version: 3.27
Bash-Version: 3.0
URL: ftp://ftp.cwru.edu/pub/bash/FAQ
Maintainer: chet@po.cwru.edu (Chet Ramey)
This is the Bash FAQ, version 3.26, for Bash version 2.05b.
This is the Bash FAQ, version 3.27, for Bash version 3.0.
This document contains a set of frequently-asked questions concerning
Bash, the GNU Bourne-Again Shell. Bash is a freely-available command
@@ -54,8 +54,8 @@ A10) What is the bash `posix mode'?
Section B: The latest version
B1) What's new in version 2.05b?
B2) Are there any user-visible incompatibilities between bash-2.05b and
B1) What's new in version 3.0?
B2) Are there any user-visible incompatibilities between bash-3.0 and
bash-1.14.7?
Section C: Differences from other Unix shells
@@ -158,30 +158,29 @@ of Case Western Reserve University.
A2) What's the latest version?
The latest version is 2.05b, first made available on Wednesday, 17
July, 2002.
The latest version is 3.0, first made available on 27 July, 2004.
A3) Where can I get it?
Bash is the GNU project's shell, and so is available from the
master GNU archive site, ftp.gnu.org, and its mirrors. The
latest version is also available for FTP from ftp.cwru.edu.
The following URLs tell how to get version 2.05b:
The following URLs tell how to get version 3.0:
ftp://ftp.gnu.org/pub/gnu/bash/bash-2.05b.tar.gz
ftp://ftp.cwru.edu/pub/bash/bash-2.05b.tar.gz
ftp://ftp.gnu.org/pub/gnu/bash/bash-3.0.tar.gz
ftp://ftp.cwru.edu/pub/bash/bash-3.0.tar.gz
Formatted versions of the documentation are available with the URLs:
ftp://ftp.gnu.org/pub/gnu/bash/bash-doc-2.05b.tar.gz
ftp://ftp.cwru.edu/pub/bash/bash-doc-2.05b.tar.gz
ftp://ftp.gnu.org/pub/gnu/bash/bash-doc-3.0.tar.gz
ftp://ftp.cwru.edu/pub/bash/bash-doc-3.0.tar.gz
A4) On what machines will bash run?
Bash has been ported to nearly every version of UNIX. All you
Bash has been ported to nearly every version of Unix. All you
should have to do to build it on a machine for which a port
exists is to type `configure' and then `make'. The build process
will attempt to discover the version of UNIX you have and tailor
will attempt to discover the version of Unix you have and tailor
itself accordingly, using a script created by GNU autoconf.
More information appears in the file `INSTALL' in the distribution.
@@ -211,13 +210,8 @@ early GNU-Win32 (the original name) releases. Cygnus has also done a
port of bash-2.05 to the CYGWIN environment, and it is available as
part of their current release.
Bash-2.05b should require no local Cygnus changes to build and run under
CYGWIN.
The Cygnus port works only on Intel machines. There is a port of bash
(I don't know which version) to the alpha/NT environment available from
ftp://ftp.gnustep.org//pub/win32/bash-alpha-nt-1.01.tar.gz
Bash-2.05b and later versions should require no local Cygnus changes to
build and run under CYGWIN.
DJ Delorie has a port of bash-2.x which runs under MS-DOS, as part
of the DJGPP project. For more information on the project, see
@@ -233,19 +227,10 @@ ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/bsh204b.zip binary
ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/bsh204d.zip documentation
ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/bsh204s.zip source
Mark has begun to work with bash-2.05, but I don't know the status.
Mark began to work with bash-2.05, but I don't know the current status.
Ports of bash-1.12 and bash-2.0 are available for OS/2 from
ftp://hobbes.nmsu.edu/pub/os2/util/shell/bash_112.zip
ftp://hobbes.nmsu.edu/pub/os2/util/shell/bash-2.0(253).zip
I haven't looked at either, but the second appears to be a binary-only
distribution. Beware.
I have received word that Bash (I'm not sure which version, but I
believe that it's at least bash-2.02.1) is the standard shell on
BeOS.
Bash-3.0 compiles and runs with no modifications under Microsoft's Services
for Unix (SFU), once known as Interix.
A6) How can I build bash with gcc?
@@ -392,9 +377,8 @@ standardized; emacs editing commands were left out due to
objections.
The latest version of the POSIX Shell and Utilities standard is
available (now updated to the 2003 Edition incorporating the
Technical Corrigendum 1), as part of the Single UNIX Specification
Version 3 at
available (now updated to the 2004 Edition) as part of the Single
UNIX Specification Version 3 at
http://www.UNIX-systems.org/version3/
@@ -415,18 +399,48 @@ They are also listed in a section in the Bash Reference Manual
Section B: The latest version
B1) What's new in version 2.05b?
B1) What's new in version 3.0?
The raison d'etre for bash-2.05b is to make a second intermediate
release containing the first of the new features to be available
in bash-3.0 and get feedback on those features before proceeding.
The major new feature is multibyte character support in both Bash
and Readline.
Bash-3.0 is the third major release of bash. The features introduced
in the intermediate releases following bash-2.05 have been completed.
Support for the bash debugger (a separate project) has been integrated.
Bash-2.05b contains the following new features (see the manual page for
complete descriptions and the CHANGES and NEWS files in the bash-2.05b
Bash-3.0 contains the following new features (see the manual page for
complete descriptions and the CHANGES and NEWS files in the bash-3.0
distribution):
o Features to support the bash debugger have been implemented, and there
is a new `extdebug' option to turn the non-default options on
o HISTCONTROL is now a colon-separated list of options and has been
extended with a new `erasedups' option that will result in only one
copy of a command being kept in the history list
o Brace expansion has been extended with a new {x..y} form, producing
sequences of digits or characters
o Timestamps are now kept with history entries, with an option to save
and restore them from the history file; there is a new HISTTIMEFORMAT
variable describing how to display the timestamps when listing history
entries
o The `[[' command can now perform extended regular expression (egrep-like)
matching, with matched subexpressions placed in the BASH_REMATCH array
variable
o A new `pipefail' option causes a pipeline to return a failure status if
any command in it fails
o The `jobs', `kill', and `wait' builtins now accept job control notation
in their arguments even if job control is not enabled
o The `gettext' package and libintl have been integrated, and the shell
messages may be translated into other languages
A short feature history dating from Bash-2.0:
Bash-2.05b introduced the following new features:
o support for multibyte characters has been added to both bash and readline
o the DEBUG trap is now run *before* simple commands, ((...)) commands,
@@ -455,9 +469,6 @@ o the expansion of $LINENO inside a shell function is only relative to the
script, $LINENO expands to the line number in the script. This is as
POSIX-2001 requires
A short feature history dating from Bash-2.0:
Bash-2.05a introduced the following new features:
o The `printf' builtin has undergone major work
@@ -635,10 +646,10 @@ grammar tighter and smaller (66 reduce-reduce conflicts gone)
lots of code now smaller and faster
test suite greatly expanded
B2) Are there any user-visible incompatibilities between bash-2.05b and
B2) Are there any user-visible incompatibilities between bash-3.0 and
bash-1.14.7?
There are a few incompatibilities between version 1.14.7 and version 2.05b.
There are a few incompatibilities between version 1.14.7 and version 3.0.
They are detailed in the file COMPAT in the bash distribution. That file
is not meant to be all-encompassing; send mail to bash-maintainers@gnu.org
if if you find something that's not mentioned there.
@@ -724,6 +735,9 @@ Things bash has that sh does not:
posix mode
redirection to /dev/fd/N, /dev/stdin, /dev/stdout, /dev/stderr,
/dev/tcp/host/port, /dev/udp/host/port
debugger support, including `caller' builtin and new variables
RETURN trap
Things sh has that bash does not:
uses variable SHACCT to do shell accounting
@@ -796,6 +810,10 @@ Things bash has or uses that ksh88 does not:
redirection to /dev/fd/N, /dev/stdin, /dev/stdout, /dev/stderr
arrays of unlimited size
TMOUT is default timeout for `read' and `select'
debugger support, including the `caller' builtin
RETURN trap
Timestamps in history entries
{x..y} brace expansion
Things ksh88 has or uses that bash does not:
tracked aliases (alias -t)
@@ -804,9 +822,9 @@ Things ksh88 has or uses that bash does not:
weirdly-scoped functions
typeset +f to list all function names without definitions
text of command history kept in a file, not memory
builtins: alias -x, cd old new, fc -e -, newgrp, print,
builtins: alias -x, cd old new, newgrp, print,
read -p/-s/var?prompt, set -A/-o gmacs/
-o bgnice/-o markdirs/-o nolog/-o trackall/-o viraw/-s,
-o bgnice/-o markdirs/-o trackall/-o viraw/-s,
typeset -H/-L/-R/-Z/-A/-ft/-fu/-fx/-l/-u/-t, whence
using environment to pass attributes of exported variables
arithmetic evaluation done on arguments to some builtins
@@ -823,7 +841,7 @@ Implementation differences:
C3) Which new features in ksh-93 are not in bash, and which are?
New things in ksh-93 not in bash-2.05b:
New things in ksh-93 not in bash-3.0:
associative arrays
floating point arithmetic and variables
math library functions
@@ -842,17 +860,15 @@ New things in ksh-93 not in bash-2.05b:
`fc' has been renamed to `hist'
`.' can execute shell functions
exit statuses between 0 and 255
set -o pipefail
`+=' variable assignment operator
FPATH and PATH mixing
getopts -a
-I invocation option
DEBUG trap now executed before each simple command, instead of after
printf %H, %P, %T, %Z modifiers, output base for %d
lexical scoping for local variables in `ksh' functions
no scoping for local variables in `POSIX' functions
New things in ksh-93 present in bash-2.05b:
New things in ksh-93 present in bash-3.0:
[n]<&word- and [n]>&word- redirections (combination dup and close)
for (( expr1; expr2; expr3 )) ; do list; done - arithmetic for command
?:, ++, --, `expr1 , expr2' arithmetic operators
@@ -877,6 +893,7 @@ New things in ksh-93 present in bash-2.05b:
command and arithmetic substitution performed on PS1, PS4, and ENV
command name completion
ENV processed only for interactive shells
set -o pipefail
Section D: Why does bash do some things differently than other Unix shells?
@@ -1265,9 +1282,9 @@ subdirs-clean:
( cd $$d && ${MAKE} ${MFLAGS} clean ) \
done
The latest drafts of the updated POSIX standard have changed this: the
word list is no longer required. Bash versions 2.05a and later accept
the new syntax.
The latest updated POSIX standard has changed this: the word list
is no longer required. Bash versions 2.05a and later accept the
new syntax.
E8) Why does the arithmetic evaluation code complain about `08'?
@@ -1483,7 +1500,7 @@ comp.unix.shell). While most commands of the form
can be converted to `< file command', shell control structures such as
loops and subshells require `command < file'.
The file CWRU/sh-redir-hack in the bash-2.05a distribution is an
The file CWRU/sh-redir-hack in the bash distribution is an
(unofficial) patch to parse.y that will modify the grammar to
support this construct. It will not apply with `patch'; you must
modify parse.y by hand. Note that if you apply this, you must
@@ -1754,7 +1771,7 @@ H3) What's coming in future versions?
These are features I hope to include in a future version of bash.
a better bash debugger (a minimally-tested version is included with bash-2.05b)
Rocky Bernstein's bash debugger (support is included with bash-3.0)
associative arrays
co-processes, but with a new-style syntax that looks like function declaration
@@ -1764,7 +1781,6 @@ These are features that may or may not appear in a future version of bash.
breaking some of the shell functionality into embeddable libraries
a module system like zsh's, using dynamic loading like builtins
better internationalization using GNU `gettext'
date-stamped command history
a bash programmer's guide with a chapter on creating loadable builtins
a better loadable interface to perl with access to the shell builtins and
@@ -1777,10 +1793,9 @@ Some of the new ksh93 pattern matching operators, like backreferencing
H5) When will the next release appear?
The next version will appear sometime in 2003. Never make predictions.
The next version will appear sometime in 2005. Never make predictions.
This document is Copyright 1995-2003 by Chester Ramey.
This document is Copyright 1995-2004 by Chester Ramey.
Permission is hereby granted, without written agreement and
without license or royalty fees, to use, copy, and distribute
+81 -66
View File
@@ -1,6 +1,6 @@
Newsgroups: comp.unix.shell,comp.unix.questions,comp.answers,news.answers
From: chet@po.cwru.edu (Chet Ramey)
Subject: [gnu.bash.bug] BASH Frequently-Asked Questions (FAQ version 3.26)
Subject: [gnu.bash.bug] BASH Frequently-Asked Questions (FAQ version 3.27)
Organization: Case Western Reserve University
Summary: A's to Q's about BASH, the Bourne-Again SHell
Reply-To: chet@po.cwru.edu
@@ -10,13 +10,13 @@ Approved: news-answers-request@MIT.EDU
Archive-name: unix-faq/shell/bash
Posting-Frequency: monthly
Submitted-By: chet@po.cwru.edu (Chet Ramey)
Last-Modified: Mon Aug 18 13:59:33 EDT 2003
FAQ-Version: 3.26
Bash-Version: 2.05b
Last-Modified: Tue Aug 3 09:54:24 EDT 2004
FAQ-Version: 3.27
Bash-Version: 3.0
URL: ftp://ftp.cwru.edu/pub/bash/FAQ
Maintainer: chet@po.cwru.edu (Chet Ramey)
This is the Bash FAQ, version 3.26, for Bash version 2.05b.
This is the Bash FAQ, version 3.27, for Bash version 3.0.
This document contains a set of frequently-asked questions concerning
Bash, the GNU Bourne-Again Shell. Bash is a freely-available command
@@ -54,8 +54,8 @@ A10) What is the bash `posix mode'?
Section B: The latest version
B1) What's new in version 2.05b?
B2) Are there any user-visible incompatibilities between bash-2.05b and
B1) What's new in version 3.0?
B2) Are there any user-visible incompatibilities between bash-3.0 and
bash-1.14.7?
Section C: Differences from other Unix shells
@@ -158,30 +158,29 @@ of Case Western Reserve University.
A2) What's the latest version?
The latest version is 2.05b, first made available on Wednesday, 17
July, 2002.
The latest version is 3.0, first made available on 27 July, 2004.
A3) Where can I get it?
Bash is the GNU project's shell, and so is available from the
master GNU archive site, ftp.gnu.org, and its mirrors. The
latest version is also available for FTP from ftp.cwru.edu.
The following URLs tell how to get version 2.05b:
The following URLs tell how to get version 3.0:
ftp://ftp.gnu.org/pub/gnu/bash/bash-2.05b.tar.gz
ftp://ftp.cwru.edu/pub/bash/bash-2.05b.tar.gz
ftp://ftp.gnu.org/pub/gnu/bash/bash-3.0.tar.gz
ftp://ftp.cwru.edu/pub/bash/bash-3.0.tar.gz
Formatted versions of the documentation are available with the URLs:
ftp://ftp.gnu.org/pub/gnu/bash/bash-doc-2.05b.tar.gz
ftp://ftp.cwru.edu/pub/bash/bash-doc-2.05b.tar.gz
ftp://ftp.gnu.org/pub/gnu/bash/bash-doc-3.0.tar.gz
ftp://ftp.cwru.edu/pub/bash/bash-doc-3.0.tar.gz
A4) On what machines will bash run?
Bash has been ported to nearly every version of UNIX. All you
Bash has been ported to nearly every version of Unix. All you
should have to do to build it on a machine for which a port
exists is to type `configure' and then `make'. The build process
will attempt to discover the version of UNIX you have and tailor
will attempt to discover the version of Unix you have and tailor
itself accordingly, using a script created by GNU autoconf.
More information appears in the file `INSTALL' in the distribution.
@@ -211,13 +210,8 @@ early GNU-Win32 (the original name) releases. Cygnus has also done a
port of bash-2.05 to the CYGWIN environment, and it is available as
part of their current release.
Bash-2.05b should require no local Cygnus changes to build and run under
CYGWIN.
The Cygnus port works only on Intel machines. There is a port of bash
(I don't know which version) to the alpha/NT environment available from
ftp://ftp.gnustep.org//pub/win32/bash-alpha-nt-1.01.tar.gz
Bash-2.05b and later versions should require no local Cygnus changes to
build and run under CYGWIN.
DJ Delorie has a port of bash-2.x which runs under MS-DOS, as part
of the DJGPP project. For more information on the project, see
@@ -233,19 +227,10 @@ ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/bsh204b.zip binary
ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/bsh204d.zip documentation
ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/bsh204s.zip source
Mark has begun to work with bash-2.05, but I don't know the status.
Mark began to work with bash-2.05, but I don't know the current status.
Ports of bash-1.12 and bash-2.0 are available for OS/2 from
ftp://hobbes.nmsu.edu/pub/os2/util/shell/bash_112.zip
ftp://hobbes.nmsu.edu/pub/os2/util/shell/bash-2.0(253).zip
I haven't looked at either, but the second appears to be a binary-only
distribution. Beware.
I have received word that Bash (I'm not sure which version, but I
believe that it's at least bash-2.02.1) is the standard shell on
BeOS.
Bash-3.0 compiles and runs with no modifications under Microsoft's Services
for Unix (SFU), once known as Interix.
A6) How can I build bash with gcc?
@@ -392,9 +377,8 @@ standardized; emacs editing commands were left out due to
objections.
The latest version of the POSIX Shell and Utilities standard is
available (now updated to the 2003 Edition incorporating the
Technical Corrigendum 1), as part of the Single UNIX Specification
Version 3 at
available (now updated to the 2004 Edition) as part of the Single
UNIX Specification Version 3 at
http://www.UNIX-systems.org/version3/
@@ -415,18 +399,48 @@ They are also listed in a section in the Bash Reference Manual
Section B: The latest version
B1) What's new in version 2.05b?
B1) What's new in version 3.0?
The raison d'etre for bash-2.05b is to make a second intermediate
release containing the first of the new features to be available
in bash-3.0 and get feedback on those features before proceeding.
The major new feature is multibyte character support in both Bash
and Readline.
Bash-3.0 is the third major release of bash. The features introduced
in the intermediate releases following bash-2.05 have been completed.
Support for the bash debugger (a separate project) has been integrated.
Bash-2.05b contains the following new features (see the manual page for
complete descriptions and the CHANGES and NEWS files in the bash-2.05b
Bash-3.0 contains the following new features (see the manual page for
complete descriptions and the CHANGES and NEWS files in the bash-3.0
distribution):
o Features to support the bash debugger have been implemented, and there
is a new `extdebug' option to turn the non-default options on
o HISTCONTROL is now a colon-separated list of options and has been
extended with a new `erasedups' option that will result in only one
copy of a command being kept in the history list
o Brace expansion has been extended with a new {x..y} form, producing
sequences of digits or characters
o Timestamps are now kept with history entries, with an option to save
and restore them from the history file; there is a new HISTTIMEFORMAT
variable describing how to display the timestamps when listing history
entries
o The `[[' command can now perform extended regular expression (egrep-like)
matching, with matched subexpressions placed in the BASH_REMATCH array
variable
o A new `pipefail' option causes a pipeline to return a failure status if
any command in it fails
o The `jobs', `kill', and `wait' builtins now accept job control notation
in their arguments even if job control is not enabled
o The `gettext' package and libintl have been integrated, and the shell
messages may be translated into other languages
A short feature history dating from Bash-2.0:
Bash-2.05b introduced the following new features:
o support for multibyte characters has been added to both bash and readline
o the DEBUG trap is now run *before* simple commands, ((...)) commands,
@@ -455,9 +469,6 @@ o the expansion of $LINENO inside a shell function is only relative to the
script, $LINENO expands to the line number in the script. This is as
POSIX-2001 requires
A short feature history dating from Bash-2.0:
Bash-2.05a introduced the following new features:
o The `printf' builtin has undergone major work
@@ -635,10 +646,10 @@ grammar tighter and smaller (66 reduce-reduce conflicts gone)
lots of code now smaller and faster
test suite greatly expanded
B2) Are there any user-visible incompatibilities between bash-2.05b and
B2) Are there any user-visible incompatibilities between bash-3.0 and
bash-1.14.7?
There are a few incompatibilities between version 1.14.7 and version 2.05b.
There are a few incompatibilities between version 1.14.7 and version 3.0.
They are detailed in the file COMPAT in the bash distribution. That file
is not meant to be all-encompassing; send mail to bash-maintainers@gnu.org
if if you find something that's not mentioned there.
@@ -724,6 +735,9 @@ Things bash has that sh does not:
posix mode
redirection to /dev/fd/N, /dev/stdin, /dev/stdout, /dev/stderr,
/dev/tcp/host/port, /dev/udp/host/port
debugger support, including `caller' builtin and new variables
RETURN trap
Things sh has that bash does not:
uses variable SHACCT to do shell accounting
@@ -796,6 +810,10 @@ Things bash has or uses that ksh88 does not:
redirection to /dev/fd/N, /dev/stdin, /dev/stdout, /dev/stderr
arrays of unlimited size
TMOUT is default timeout for `read' and `select'
debugger support, including the `caller' builtin
RETURN trap
Timestamps in history entries
{x..y} brace expansion
Things ksh88 has or uses that bash does not:
tracked aliases (alias -t)
@@ -804,9 +822,9 @@ Things ksh88 has or uses that bash does not:
weirdly-scoped functions
typeset +f to list all function names without definitions
text of command history kept in a file, not memory
builtins: alias -x, cd old new, fc -e -, newgrp, print,
builtins: alias -x, cd old new, newgrp, print,
read -p/-s/var?prompt, set -A/-o gmacs/
-o bgnice/-o markdirs/-o nolog/-o trackall/-o viraw/-s,
-o bgnice/-o markdirs/-o trackall/-o viraw/-s,
typeset -H/-L/-R/-Z/-A/-ft/-fu/-fx/-l/-u/-t, whence
using environment to pass attributes of exported variables
arithmetic evaluation done on arguments to some builtins
@@ -823,7 +841,7 @@ Implementation differences:
C3) Which new features in ksh-93 are not in bash, and which are?
New things in ksh-93 not in bash-2.05b:
New things in ksh-93 not in bash-3.0:
associative arrays
floating point arithmetic and variables
math library functions
@@ -842,17 +860,15 @@ New things in ksh-93 not in bash-2.05b:
`fc' has been renamed to `hist'
`.' can execute shell functions
exit statuses between 0 and 255
set -o pipefail
`+=' variable assignment operator
FPATH and PATH mixing
getopts -a
-I invocation option
DEBUG trap now executed before each simple command, instead of after
printf %H, %P, %T, %Z modifiers, output base for %d
lexical scoping for local variables in `ksh' functions
no scoping for local variables in `POSIX' functions
New things in ksh-93 present in bash-2.05b:
New things in ksh-93 present in bash-3.0:
[n]<&word- and [n]>&word- redirections (combination dup and close)
for (( expr1; expr2; expr3 )) ; do list; done - arithmetic for command
?:, ++, --, `expr1 , expr2' arithmetic operators
@@ -877,6 +893,7 @@ New things in ksh-93 present in bash-2.05b:
command and arithmetic substitution performed on PS1, PS4, and ENV
command name completion
ENV processed only for interactive shells
set -o pipefail
Section D: Why does bash do some things differently than other Unix shells?
@@ -1265,9 +1282,9 @@ subdirs-clean:
( cd $$d && ${MAKE} ${MFLAGS} clean ) \
done
The latest drafts of the updated POSIX standard have changed this: the
word list is no longer required. Bash versions 2.05a and later accept
the new syntax.
The latest updated POSIX standard has changed this: the word list
is no longer required. Bash versions 2.05a and later accept the
new syntax.
E8) Why does the arithmetic evaluation code complain about `08'?
@@ -1483,7 +1500,7 @@ comp.unix.shell). While most commands of the form
can be converted to `< file command', shell control structures such as
loops and subshells require `command < file'.
The file CWRU/sh-redir-hack in the bash-2.05a distribution is an
The file CWRU/sh-redir-hack in the bash distribution is an
(unofficial) patch to parse.y that will modify the grammar to
support this construct. It will not apply with `patch'; you must
modify parse.y by hand. Note that if you apply this, you must
@@ -1754,7 +1771,7 @@ H3) What's coming in future versions?
These are features I hope to include in a future version of bash.
a better bash debugger (a minimally-tested version is included with bash-2.05b)
Rocky Bernstein's bash debugger (support is included with bash-3.0)
associative arrays
co-processes, but with a new-style syntax that looks like function declaration
@@ -1764,7 +1781,6 @@ These are features that may or may not appear in a future version of bash.
breaking some of the shell functionality into embeddable libraries
a module system like zsh's, using dynamic loading like builtins
better internationalization using GNU `gettext'
date-stamped command history
a bash programmer's guide with a chapter on creating loadable builtins
a better loadable interface to perl with access to the shell builtins and
@@ -1777,10 +1793,9 @@ Some of the new ksh93 pattern matching operators, like backreferencing
H5) When will the next release appear?
The next version will appear sometime in 2003. Never make predictions.
The next version will appear sometime in 2005. Never make predictions.
This document is Copyright 1995-2003 by Chester Ramey.
This document is Copyright 1995-2004 by Chester Ramey.
Permission is hereby granted, without written agreement and
without license or royalty fees, to use, copy, and distribute
+3 -3
View File
@@ -1,9 +1,9 @@
Archive-name: unix-faq/shell/bash
Posting-Frequency: monthly
Submitted-By: chet@po.cwru.edu (Chet Ramey)
Last-Modified: Mon Aug 18 13:59:33 EDT 2003
FAQ-Version: 3.26
Bash-Version: 2.05b
Last-Modified: Tue Aug 3 09:54:24 EDT 2004
FAQ-Version: 3.27
Bash-Version: 3.0
URL: ftp://ftp.cwru.edu/pub/bash/FAQ
Maintainer: chet@po.cwru.edu (Chet Ramey)
+4
View File
@@ -863,6 +863,8 @@ bind_comp_words (lwords)
if (array_p (v) == 0)
v = convert_var_to_array (v);
v = assign_array_var_from_word_list (v, lwords);
VUNSETATTR (v, att_invisible);
return v;
}
#endif /* ARRAY_VARS */
@@ -1022,6 +1024,8 @@ gen_shell_function_matches (cs, text, line, ind, lwords, nw, cw)
if (array_p (v) == 0)
v = convert_var_to_array (v);
VUNSETATTR (v, att_invisible);
a = array_cell (v);
if (a == 0 || array_empty (a))
sl = (STRINGLIST *)NULL;
+1384
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -4770,7 +4770,7 @@ parameter_brace_expand_length (name)
FREE (t);
}
#if defined (ARRAY_VARS)
else if ((var = find_variable (name + 1)) && array_p (var))
else if ((var = find_variable (name + 1)) && (invisible_p (var) == 0) && array_p (var))
{
t = array_reference (array_cell (var), 0);
number = MB_STRLEN (t);
@@ -5002,7 +5002,7 @@ get_var_and_type (varname, value, quoted, varp, valp)
else
return -1;
}
else if ((v = find_variable (varname)) && array_p (v))
else if ((v = find_variable (varname)) && (invisible_p (v) == 0) && array_p (v))
{
vtype = VT_ARRAYMEMBER;
*varp = v;
+3 -3
View File
@@ -4770,7 +4770,7 @@ parameter_brace_expand_length (name)
FREE (t);
}
#if defined (ARRAY_VARS)
else if ((var = find_variable (name + 1)) && array_p (var))
else if ((var = find_variable (name + 1)) && (invisible_p (var) == 0) && array_p (var))
{
t = array_reference (array_cell (var), 0);
number = MB_STRLEN (t);
@@ -4891,7 +4891,7 @@ verify_substring_values (value, substr, vtype, e1p, e2p)
{
case VT_VARIABLE:
case VT_ARRAYMEMBER:
len = strlen (value);
len = MB_STRLEN (value);
break;
case VT_POSPARMS:
len = number_of_args () + 1;
@@ -5002,7 +5002,7 @@ get_var_and_type (varname, value, quoted, varp, valp)
else
return -1;
}
else if ((v = find_variable (varname)) && array_p (v))
else if ((v = find_variable (varname)) && invisible_p (v) == 0 && array_p (v))
{
vtype = VT_ARRAYMEMBER;
*varp = v;
+2 -2
View File
@@ -62,8 +62,8 @@ set -o functrace
trap 'print_debug_trap $LINENO' DEBUG
trap 'print_return_trap $LINENO' RETURN
# Funcname is now an array. Vanilla Bash 2.05 doesn't have FUNCNAME array.
echo "FUNCNAME" ${FUNCNAME[0]}
# Funcname is now an array, but you still can't see it outside a function
echo "FUNCNAME" ${FUNCNAME[0]:-main}
# We should trace into the below.
# Start easy with a simple function.
+139
View File
@@ -0,0 +1,139 @@
#!../bash
#
# Test correct functioning bash debug support not via the bashdb
# debugger but merely by printing via print_trap()
# $Id: dbg-support.tests,v 1.13 2003/02/17 22:02:25 rockyb Exp $
shopt -s extdebug
print_debug_trap() {
echo "debug lineno: $1 ${FUNCNAME[1]}"
return
}
print_return_trap() {
echo "return lineno: $1 ${FUNCNAME[1]}"
return
}
fn1() {
echo "LINENO $LINENO"
echo "LINENO $LINENO"
echo "BASH_SOURCE[0]" ${BASH_SOURCE[0]}
echo "FUNCNAME[0]" ${FUNCNAME[0]}
echo `caller`
echo `caller 0`
echo `caller 1`
echo `caller foo`
}
fn2() {
echo "fn2 here. Calling fn1..."
fn1
}
fn3() {
echo "LINENO $LINENO"
echo "BASH_SOURCE[0]" ${BASH_SOURCE[0]}
# Print a stack trace
declare -i n
n=${#FUNCNAME[@]}
for (( i=0 ; (( i < $n )) ; i++ )) ; do
local -i j=i+1
[ $j -eq $n ] && j=i # main()'s file is the same as the first caller
echo "${FUNCNAME[$i]} called from file " \
"\`${BASH_SOURCE[$j]}' at line ${BASH_LINENO[$j]}"
done
source ./dbg-support.sub
}
fn4() {
echo "fn4 here. Calling fn3..."
fn3
}
#!../bash
#
# Test of support for debugging facilities in bash
#
# Test debugger set option fntrace - set on. Not in vanilla Bash 2.05
#
set -o functrace
trap 'print_debug_trap $LINENO' DEBUG
trap 'print_return_trap $LINENO' RETURN
# Funcname is now an array. Vanilla Bash 2.05 doesn't have FUNCNAME array.
echo "FUNCNAME" ${FUNCNAME[0]:-main}
# We should trace into the below.
# Start easy with a simple function.
fn1
fn2
fn3
source ./dbg-support.sub
# Test debugger set option fntrace - set off
set +T
# We should not trace into this.
fn1
fn2
fn3
fn4
source ./dbg-support.sub
# Another way to say: set -o fntrace
set -T
# We should trace into this.
source ./dbg-support.sub
set +T
# Test that the line numbers in the presence of conditionals are correct.
for (( i=0 ; (( i <= 2 )) ; i++ )) ; do
if [ $i -eq 2 ] ; then
echo "Hit 2"
fi
j=4
done
#
# Check line numbers in command substitution
#
echo $(sourced_fn)
echo `sourced_fn`
x=$((sourced_fn))
x={ sourced_fn }
# Make sure we step into sourced_fn as a comand when we request to do so.
# Vanilla bash 2.0 doesn't do.
set -o functrace
x={ sourced_fn }
# Should see line number of xyzzy below. Vanilla bash 2.05b doesn't do
case xyzzy in
a )
x=5
;;
xyzz? )
case 3 in
2 )
x=6 ;;
3 )
echo "got it" ;;
* ) echo "no good" ;;
esac
;;
* )
esac
# Should see line numbers for initial for lines.
for i in 0 1 ; do
for j in 3 4 ; do
((x=i+j))
done
done
#;;; Local Variables: ***
#;;; mode:shell-script ***
#;;; eval: (sh-set-shell "bash") ***
#;;; End: ***
+4 -4
View File
@@ -1419,11 +1419,11 @@ initialize_dynamic_variables ()
v = init_dynamic_array_var ("GROUPS", get_groupset, null_array_assign, att_noassign);
# if defined (DEBUGGER)
v = init_dynamic_array_var ("BASH_ARGC", get_self, null_array_assign, (att_invisible|att_noassign));
v = init_dynamic_array_var ("BASH_ARGV", get_self, null_array_assign, (att_invisible|att_noassign));
v = init_dynamic_array_var ("BASH_ARGC", get_self, null_array_assign, att_noassign);
v = init_dynamic_array_var ("BASH_ARGV", get_self, null_array_assign, att_noassign);
# endif /* DEBUGGER */
v = init_dynamic_array_var ("BASH_SOURCE", get_self, null_array_assign, (att_invisible|att_noassign));
v = init_dynamic_array_var ("BASH_LINENO", get_self, null_array_assign, (att_invisible|att_noassign));
v = init_dynamic_array_var ("BASH_SOURCE", get_self, null_array_assign, att_noassign);
v = init_dynamic_array_var ("BASH_LINENO", get_self, null_array_assign, att_noassign);
#endif
v = init_funcname_var ();
+7 -1
View File
@@ -2302,13 +2302,18 @@ makunbound (name, vc)
We also need to add it back into the correct hash table. */
if (old_var && local_p (old_var) && variable_context == old_var->context)
{
#if defined (ARRAY_VARS)
if (array_p (old_var))
array_dispose (array_cell (old_var));
else
#endif
FREE (value_cell (old_var));
/* Reset the attributes. Preserve the export attribute if the variable
came from a temporary environment. Make sure it stays local, and
make it invisible. */
old_var->attributes = (exported_p (old_var) && tempvar_p (old_var)) ? att_exported : 0;
VSETATTR (old_var, att_local);
VSETATTR (old_var, att_invisible);
FREE (value_cell (old_var));
var_setvalue (old_var, (char *)NULL);
INVALIDATE_EXPORTSTR (old_var);
@@ -3646,6 +3651,7 @@ static struct name_and_function special_vars[] = {
{ "LC_CTYPE", sv_locale },
{ "LC_MESSAGES", sv_locale },
{ "LC_NUMERIC", sv_locale },
{ "LC_TIME", sv_locale },
{ "MAIL", sv_mail },
{ "MAILCHECK", sv_mail },