commit bash-20070517 snapshot

This commit is contained in:
Chet Ramey
2011-12-07 09:08:05 -05:00
parent c40a57dd63
commit d7f499903c
39 changed files with 5072 additions and 2864 deletions
+27
View File
@@ -14584,3 +14584,30 @@ subst.c
lib/readline/signals.c
- fix bug in rl_set_signals that caught SIGINT twice and didn't catch
SIGTERM. Bug reported by Ed Kwan <ed.kwan@onstor.com>
5/18
----
jobs.c
- change compact_jobs_list to return 1 if js.j_lastj == 0 and there is
a job in jobs[0]; compact_jobs_list should never return an index
already occupied
- change reset_job_indices to avoid infinite looping when js.j_firstj
== 0 or js.j_firstj == js.j_jobslots upon function entry. Fixes
bug reported by osicka@post.cz
5/20
----
execute_cmd.c
- new variable, executing_builtin, keeps track of number of "levels"
of builtins being executed; incremented by execute_builtin; saved
and restored by execute_simple_command
subst.c
- new variablem, assigning_in_environment, set and unset around calls
to assign_in_env by the expansion code
variables.c
- use executing_builtin and assigning_in_environment to decide whether
or not to look into temporary_env when calling find_variable_internal.
Fixes problem reported by Kevin Quinn <kevquinn@gentoo.org>
+23 -8
View File
@@ -14570,12 +14570,27 @@ lib/readline/input.c
(push_index) that caused the 511th character in the buffer to be
discarded. Fixes bug reported by Tom Bjorkholm <tom.bjorkholm@ericsson.com>
5/5
5/8
---
print_cmd.c
- added logic (inside_pipeline variable) to print_connection code and
print_redirection to handle the case of a command with a here
document inside a pipeline. In that case, print_redirection prints
the `|' before the here document text, so the parser knows the
command is continued. Fixes problem reported by Chris Lesner
<chris.lesner@gmail.com>
subst.c
- fix parameter_brace_remove_pattern to pass getpattern() newly-allocated
memory. If word expansions (particularly brace expansions) are
required, the expansion code will free the string passed to
expand_word_internal, and we don't want to free unallocated memory
(patstr++) or have duplicate frees (patstr)
5/9
---
lib/readline/signals.c
- fix bug in rl_set_signals that caught SIGINT twice and didn't catch
SIGTERM. Bug reported by Ed Kwan <ed.kwan@onstor.com>
5/18
----
jobs.c
- change compact_jobs_list to return 1 if js.j_lastj == 0 and there is
a job in jobs[0]; compact_jobs_list should never return an index
already occupied
- change reset_job_indices to avoid infinite looping when js.j_firstj
== 0 or js.j_firstj == js.j_jobslots upon function entry. Fixes
bug reported by osicka@post.cz
-1
View File
@@ -725,7 +725,6 @@ tests/cond.right f
tests/cond-regexp.sub f
tests/cprint.tests f
tests/cprint.right f
tests/cprint1.sub f
tests/dbg-support.right f
tests/dbg-support.sub f
tests/dbg-support.tests f
+1873 -1871
View File
File diff suppressed because it is too large Load Diff
+2 -3
View File
@@ -688,9 +688,8 @@ An additional binary operator, \fB=~\fP, is available, with the same
precedence as \fB==\fP and \fB!=\fP.
When it is used, the string to the right of the operator is considered
an extended regular expression and matched accordingly (as in \fIregex\fP(3)).
Any part of the pattern may be quoted to force it to be matched as a
string.
The return value is 0 if the string matches the pattern, and 1 otherwise.
The return value is 0 if the string matches
the pattern, and 1 otherwise.
If the regular expression is syntactically incorrect, the conditional
expression's return value is 2.
If the shell option
+9 -7
View File
@@ -3,7 +3,7 @@
</HEAD>
<BODY><TABLE WIDTH=100%>
<TR>
<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2007 January 12<TH ALIGN=RIGHT width=33%>BASH(1)
<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2007 May 1<TH ALIGN=RIGHT width=33%>BASH(1)
</TR>
</TABLE>
<BR><A HREF="#index">Index</A>
@@ -864,7 +864,8 @@ The return status is the exit status of
Note that unlike the metacharacters <B>(</B> and <B>)</B>, <B>{</B> and
<B>}</B> are <I>reserved words</I> and must occur where a reserved
word is permitted to be recognized. Since they do not cause a word
break, they must be separated from <I>list</I> by whitespace.
break, they must be separated from <I>list</I> by whitespace or another
shell metacharacter.
<DT>((<I>expression</I>))<DD>
The <I>expression</I> is evaluated according to the rules described
below under
@@ -3278,7 +3279,7 @@ The <I>pattern</I> is expanded to produce a pattern just as in
pathname expansion.
<I>Parameter</I> is expanded and the longest match of <I>pattern</I>
against its value is replaced with <I>string</I>.
If Ipattern begins with <B>/</B>, all matches of <I>pattern</I> are
If <I>pattern</I> begins with <B>/</B>, all matches of <I>pattern</I> are
replaced with <I>string</I>. Normally only the first match is replaced.
If <I>pattern</I> begins with <B>#</B>, it must match at the beginning
of the expanded value of <I>parameter</I>.
@@ -10685,6 +10686,7 @@ an argument of <B>--</B> as signifying the end of options.
Expressions may be combined using the following operators, listed
in decreasing order of precedence.
The evaluation depends on the number of arguments; see below.
<DL COMPACT><DT><DD>
<DL COMPACT>
@@ -10750,14 +10752,14 @@ under
</FONT>
the result of the expression is the result of the binary test using
the first and third arguments as operands.
The <B>-a</B> and <B>-o</B> operators are considered binary operators
when there are three arguments.
If the first argument is <B>!</B>, the value is the negation of
the two-argument test using the second and third arguments.
If the first argument is exactly <B>(</B> and the third argument is
exactly <B>)</B>, the result is the one-argument test of the second
argument.
Otherwise, the expression is false.
The <B>-a</B> and <B>-o</B> operators are considered binary operators
in this case.
<DT>4 arguments<DD>
If the first argument is <B>!</B>, the result is the negation of
the three-argument expression composed of the remaining arguments.
@@ -11541,7 +11543,7 @@ Array variables may not (yet) be exported.
<HR>
<TABLE WIDTH=100%>
<TR>
<TH ALIGN=LEFT width=33%>GNU Bash-3.2<TH ALIGN=CENTER width=33%>2007 January 12<TH ALIGN=RIGHT width=33%>BASH(1)
<TH ALIGN=LEFT width=33%>GNU Bash-3.2<TH ALIGN=CENTER width=33%>2007 May 1<TH ALIGN=RIGHT width=33%>BASH(1)
</TR>
</TABLE>
<HR>
@@ -11645,6 +11647,6 @@ Array variables may not (yet) be exported.
</DL>
<HR>
This document was created by man2html from bash.1.<BR>
Time: 16 January 2007 11:15:22 EST
Time: 11 May 2007 16:18:51 EDT
</BODY>
</HTML>
+150 -156
View File
@@ -1,6 +1,6 @@
%!PS-Adobe-3.0
%%Creator: groff version 1.19.1
%%CreationDate: Tue Jan 16 11:15:08 2007
%%CreationDate: Fri May 11 16:18:40 2007
%%DocumentNeededResources: font Times-Roman
%%+ font Times-Bold
%%+ font Times-Italic
@@ -332,7 +332,7 @@ E F2(po)2.5 E F0(\(portable object\) \214le format.)2.5 E F2
144 686.4 Q .3 -.15(ve \()-.25 H(see).15 E F4(INV)2.5 E(OCA)-.405 E
(TION)-.855 E F0(belo)2.25 E(w\).)-.25 E F2(\255\255login)108 703.2 Q F0
(Equi)144 715.2 Q -.25(va)-.25 G(lent to).25 E F2<ad6c>2.5 E F0(.)A
(GNU Bash-3.2)72 768 Q(2007 January 12)140.96 E(1)195.95 E 0 Cg EP
(GNU Bash-3.2)72 768 Q(2007 May 1)149.845 E(1)204.835 E 0 Cg EP
%%Page: 2 2
%%BeginPageSetup
BP
@@ -454,7 +454,7 @@ F(ariable)-.25 E F3 -.27(BA)108 679.2 S(SH_ENV).27 E F0 1.01(in the en)
108 727.2 S 2.5(tt).2 G(he v)-2.5 E(alue of the)-.25 E F3 -.666(PA)2.5 G
(TH)-.189 E F0 -.25(va)2.25 G
(riable is not used to search for the \214le name.).25 E(GNU Bash-3.2)72
768 Q(2007 January 12)140.96 E(2)195.95 E 0 Cg EP
768 Q(2007 May 1)149.845 E(2)204.835 E 0 Cg EP
%%Page: 3 3
%%BeginPageSetup
BP
@@ -579,7 +579,7 @@ F1(Pipelines)87 679.2 Q F0(A)108 691.2 Q F2(pipeline)2.919 E F0 .419
F F1(|)2.92 E F0 5.42(.T)C .42(he format for a pipeline)-5.42 F(is:)108
703.2 Q([)144 720 Q F1(time)A F0([)2.5 E F1<ad70>A F0(]] [ ! ])A F2
(command)2.5 E F0([)2.5 E F1(|)2.5 E F2(command2)2.5 E F0(... ])2.5 E
(GNU Bash-3.2)72 768 Q(2007 January 12)140.96 E(3)195.95 E 0 Cg EP
(GNU Bash-3.2)72 768 Q(2007 May 1)149.845 E(3)204.835 E 0 Cg EP
%%Page: 4 4
%%BeginPageSetup
BP
@@ -680,17 +680,17 @@ A({)108 573.6 Q F1(list)2.5 E F0 2.5(;})C F1(list)3.89 E F0 .402
(rd is permitted to be recognized.).1 F .256(Since the)5.256 F 2.756(yd)
-.15 G 2.756(on)-2.756 G .257(ot cause a w)-2.756 F .257(ord break, the)
-.1 F 2.757(ym)-.15 G .257(ust be separated)-2.757 F(from)144 621.6 Q F1
(list)2.5 E F0(by whitespace.)2.5 E(\(\()108 638.4 Q F1 -.2(ex)C(pr).2 E
(ession)-.37 E F0(\)\))A(The)144 650.4 Q F1 -.2(ex)2.552 G(pr).2 E
(ession)-.37 E F0 .052(is e)2.552 F -.25(va)-.25 G .051
(luated according to the rules described belo).25 F 2.551(wu)-.25 G
(nder)-2.551 E F2 .051(ARITHMETIC EV)2.551 F(ALU)-1.215 E(A-)-.54 E
(TION)144 662.4 Q/F5 9/Times-Roman@0 SF(.)A F0 .411(If the v)4.91 F .411
(alue of the e)-.25 F .411(xpression is non-zero, the return status is \
0; otherwise the return status)-.15 F(is 1.)144 674.4 Q(This is e)5 E
(xactly equi)-.15 E -.25(va)-.25 G(lent to).25 E F3(let ")2.5 E F1 -.2
(ex)C(pr).2 E(ession)-.37 E F3(")A F0(.)A F3([[)108 691.2 Q F1 -.2(ex)
2.5 G(pr).2 E(ession)-.37 E F3(]])2.5 E F0 1.3
(list)2.5 E F0(by whitespace or another shell metacharacter)2.5 E(.)-.55
E(\(\()108 638.4 Q F1 -.2(ex)C(pr).2 E(ession)-.37 E F0(\)\))A(The)144
650.4 Q F1 -.2(ex)2.552 G(pr).2 E(ession)-.37 E F0 .052(is e)2.552 F
-.25(va)-.25 G .051(luated according to the rules described belo).25 F
2.551(wu)-.25 G(nder)-2.551 E F2 .051(ARITHMETIC EV)2.551 F(ALU)-1.215 E
(A-)-.54 E(TION)144 662.4 Q/F5 9/Times-Roman@0 SF(.)A F0 .411(If the v)
4.91 F .411(alue of the e)-.25 F .411(xpression is non-zero, the return\
status is 0; otherwise the return status)-.15 F(is 1.)144 674.4 Q
(This is e)5 E(xactly equi)-.15 E -.25(va)-.25 G(lent to).25 E F3(let ")
2.5 E F1 -.2(ex)C(pr).2 E(ession)-.37 E F3(")A F0(.)A F3([[)108 691.2 Q
F1 -.2(ex)2.5 G(pr).2 E(ession)-.37 E F3(]])2.5 E F0 1.3
(Return a status of 0 or 1 depending on the e)144 703.2 R -.25(va)-.25 G
1.299(luation of the conditional e).25 F(xpression)-.15 E F1 -.2(ex)
3.799 G(pr).2 E(ession)-.37 E F0(.)A 2.273
@@ -699,8 +699,8 @@ A({)108 573.6 Q F1(list)2.5 E F0 2.5(;})C F1(list)3.89 E F0 .402
F(SIONS)144 727.2 Q F5(.)A F0 -.8(Wo)5.633 G 1.133
(rd splitting and pathname e).8 F 1.133
(xpansion are not performed on the w)-.15 F 1.133(ords between the)-.1 F
F3([[)3.632 E F0(GNU Bash-3.2)72 768 Q(2007 January 12)140.96 E(4)195.95
E 0 Cg EP
F3([[)3.632 E F0(GNU Bash-3.2)72 768 Q(2007 May 1)149.845 E(4)204.835 E
0 Cg EP
%%Page: 5 5
%%BeginPageSetup
BP
@@ -838,7 +838,7 @@ F 1.538(played w)144 715.2 R 1.538(ords, then the v)-.1 F 1.538(alue of)
F 1.537(ords and)-.1 F .065(prompt are displayed ag)144 727.2 R 2.565
(ain. If)-.05 F .065(EOF is read, the command completes.)2.565 F(An)
5.066 E 2.566(yo)-.15 G .066(ther v)-2.566 F .066(alue read causes)-.25
F(GNU Bash-3.2)72 768 Q(2007 January 12)140.96 E(5)195.95 E 0 Cg EP
F(GNU Bash-3.2)72 768 Q(2007 May 1)149.845 E(5)204.835 E 0 Cg EP
%%Page: 6 6
%%BeginPageSetup
BP
@@ -978,7 +978,7 @@ F0 1.337(option is on by def)3.837 F 1.337(ault in)-.1 F(interacti)108
722.4 R F1(metac)2.789 E(har)-.15 E(acter)-.15 E(s)-.1 E F0 .288
(listed abo)2.789 F .588 -.15(ve u)-.15 H(nder).15 E F3(DEFINITIONS)
2.788 E F0 .288(has special meaning to the shell and must be)2.538 F
(GNU Bash-3.2)72 768 Q(2007 January 12)140.96 E(6)195.95 E 0 Cg EP
(GNU Bash-3.2)72 768 Q(2007 May 1)149.845 E(6)204.835 E 0 Cg EP
%%Page: 7 7
%%BeginPageSetup
BP
@@ -1094,8 +1094,7 @@ F .515(and v)108 715.2 R .515(ariable e)-.25 F .515
(integer)2.698 E F0(attrib)2.698 E .198(ute set, then)-.2 F F2(value)
2.988 E F0 .198(is e)2.878 F -.25(va)-.25 G .199
(luated as an arithmetic e).25 F .199(xpression e)-.15 F -.15(ve)-.25 G
(n).15 E(GNU Bash-3.2)72 768 Q(2007 January 12)140.96 E(7)195.95 E 0 Cg
EP
(n).15 E(GNU Bash-3.2)72 768 Q(2007 May 1)149.845 E(7)204.835 E 0 Cg EP
%%Page: 8 8
%%BeginPageSetup
BP
@@ -1227,7 +1226,7 @@ S 1.6(cuted and placed in the en).15 F 1.6(vironment e)-.4 F 1.6
696 Q(wing v)-.25 E(ariables are set by the shell:)-.25 E F1 -.3(BA)108
712.8 S(SH).3 E F0(Expands to the full \214le name used to in)9.07 E -.2
(vo)-.4 G .2 -.1(ke t).2 H(his instance of).1 E F1(bash)2.5 E F0(.)A
(GNU Bash-3.2)72 768 Q(2007 January 12)140.96 E(8)195.95 E 0 Cg EP
(GNU Bash-3.2)72 768 Q(2007 May 1)149.845 E(8)204.835 E 0 Cg EP
%%Page: 9 9
%%BeginPageSetup
BP
@@ -1324,8 +1323,8 @@ E F1(${COMP_W)2.896 E(ORDS})-.1 E F0 .396(of the w)2.896 F .396
(ilable only in shell functions in).25 F -.2(vo)-.4 G -.1(ke).2 G 3.681
(db).1 G 3.681(yt)-3.681 G 1.181(he programmable completion f)-3.681 F
1.181(acilities \(see)-.1 F F1(Pr)144 699.6 Q(ogrammable Completion)-.18
E F0(belo)2.5 E(w\).)-.25 E(GNU Bash-3.2)72 768 Q(2007 January 12)140.96
E(9)195.95 E 0 Cg EP
E F0(belo)2.5 E(w\).)-.25 E(GNU Bash-3.2)72 768 Q(2007 May 1)149.845 E
(9)204.835 E 0 Cg EP
%%Page: 10 10
%%BeginPageSetup
BP
@@ -1436,7 +1435,7 @@ E .597(ments to)144 655.2 R F3(GR)3.097 E(OUPS)-.27 E F0(ha)2.847 E .897
(HISTCMD)2.856 E F0 .356(is unset, it)2.606 F
(loses its special properties, e)144 708 Q -.15(ve)-.25 G 2.5(ni).15 G
2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5(ss)-2.5 G(ubsequently reset.)-2.5 E
(GNU Bash-3.2)72 768 Q(2007 January 12)140.96 E(10)190.95 E 0 Cg EP
(GNU Bash-3.2)72 768 Q(2007 May 1)149.845 E(10)199.835 E 0 Cg EP
%%Page: 11 11
%%BeginPageSetup
BP
@@ -1519,8 +1518,8 @@ F0(by)2.759 E F1 .019(set \255o)2.519 F F0 5.019(.I)C 2.519(ft)-5.019 G
(when)144 679.2 Q F1(bash)3.141 E F0 .642(starts up, each shell option \
in the list will be enabled before reading an)3.141 F 3.142(ys)-.15 G
.642(tartup \214les.)-3.142 F(This v)144 691.2 Q(ariable is read-only)
-.25 E(.)-.65 E(GNU Bash-3.2)72 768 Q(2007 January 12)140.96 E(11)190.95
E 0 Cg EP
-.25 E(.)-.65 E(GNU Bash-3.2)72 768 Q(2007 May 1)149.845 E(11)199.835 E
0 Cg EP
%%Page: 12 12
%%BeginPageSetup
BP
@@ -1631,8 +1630,8 @@ F 2.805(,b)-.65 G 2.805(yr)-2.805 G(emo)-2.805 E .305
(ault v)-.1 F .602(alue is 500.)-.25 F .601
(The history \214le is also truncated to this size)5.602 F
(after writing it when an interacti)144 698.4 Q .3 -.15(ve s)-.25 H
(hell e).15 E(xits.)-.15 E(GNU Bash-3.2)72 768 Q(2007 January 12)140.96
E(12)190.95 E 0 Cg EP
(hell e).15 E(xits.)-.15 E(GNU Bash-3.2)72 768 Q(2007 May 1)149.845 E
(12)199.835 E 0 Cg EP
%%Page: 13 13
%%BeginPageSetup
BP
@@ -1737,7 +1736,7 @@ ble-quoted strings preceded by a)-.25 E F1($)2.5 E F0(.)A F1(LC_NUMERIC)
(Used by the)5.99 F F1(select)3.718 E F0 -.2(bu)3.718 G 1.219(iltin com\
mand to determine the column length for printing selection lists.).2 F
(Automatically set upon receipt of a SIGWINCH.)144 720 Q(GNU Bash-3.2)72
768 Q(2007 January 12)140.96 E(13)190.95 E 0 Cg EP
768 Q(2007 May 1)149.845 E(13)199.835 E 0 Cg EP
%%Page: 14 14
%%BeginPageSetup
BP
@@ -1852,7 +1851,7 @@ F0(The CPU percentage, computed as \(%U + %S\) / %R.)33.89 E .87
144 730.8 R -.25(va)2.525 G .025
(lue of 0 causes no decimal point or fraction to be output.).25 F .026
(At most three places after the)5.025 F(GNU Bash-3.2)72 768 Q
(2007 January 12)140.96 E(14)190.95 E 0 Cg EP
(2007 May 1)149.845 E(14)199.835 E 0 Cg EP
%%Page: 15 15
%%BeginPageSetup
BP
@@ -1980,8 +1979,8 @@ F 2.777(xo)-.15 G 2.777(ft)-2.777 G .276
F0 -.2(bu)3.894 G(iltin.).2 E(Indi)108 727.2 Q
(vidual array elements may be assigned to using the)-.25 E F1(name)2.5 E
F0([)A F1(subscript)A F0(]=)A F1(value)A F0(syntax introduced abo)2.5 E
-.15(ve)-.15 G(.).15 E(GNU Bash-3.2)72 768 Q(2007 January 12)140.96 E
(15)190.95 E 0 Cg EP
-.15(ve)-.15 G(.).15 E(GNU Bash-3.2)72 768 Q(2007 May 1)149.845 E(15)
199.835 E 0 Cg EP
%%Page: 16 16
%%BeginPageSetup
BP
@@ -2124,8 +2123,8 @@ contain unquoted opening and closing braces, and at least one)-.15 F
F2(${)2.911 E F0 .41(is not considered eligible for brace e)2.911 F
(xpan-)-.15 E(sion.)108 712.8 Q 1.476(This construct is typically used \
as shorthand when the common pre\214x of the strings to be generated is)
108 729.6 R(GNU Bash-3.2)72 768 Q(2007 January 12)140.96 E(16)190.95 E 0
Cg EP
108 729.6 R(GNU Bash-3.2)72 768 Q(2007 May 1)149.845 E(16)199.835 E 0 Cg
EP
%%Page: 17 17
%%BeginPageSetup
BP
@@ -2248,7 +2247,7 @@ F 1.418(and arithmetic e)108 688.8 R 3.918(xpansion. When)-.15 F 1.418
(not performing substring e)3.918 F(xpansion,)-.15 E F1(bash)3.918 E F0
1.418(tests for a parameter that is)3.918 F(unset or null; omitting the\
colon results in a test only for a parameter that is unset.)108 700.8 Q
(GNU Bash-3.2)72 768 Q(2007 January 12)140.96 E(17)190.95 E 0 Cg EP
(GNU Bash-3.2)72 768 Q(2007 May 1)149.845 E(17)199.835 E 0 Cg EP
%%Page: 18 18
%%BeginPageSetup
BP
@@ -2375,7 +2374,7 @@ F1(par)145.25 655.2 Q(ameter)-.15 E F0 .607
3.15(,t)C .65(he pattern remo)-3.15 F -.25(va)-.15 G 3.151(lo).25 G .651
(peration is applied to each member of the array in)-3.151 F
(turn, and the e)144 703.2 Q(xpansion is the resultant list.)-.15 E
(GNU Bash-3.2)72 768 Q(2007 January 12)140.96 E(18)190.95 E 0 Cg EP
(GNU Bash-3.2)72 768 Q(2007 May 1)149.845 E(18)199.835 E 0 Cg EP
%%Page: 19 19
%%BeginPageSetup
BP
@@ -2409,34 +2408,34 @@ G .089(peration is applied to)-2.589 F
(pattern)5.085 E F0 2.585(is e)5.085 F 2.585
(xpanded to produce a pattern just as in pathname e)-.15 F(xpansion.)
-.15 E F1 -.8(Pa)7.585 G -.15(ra).8 G(meter).15 E F0(is)5.085 E -.15(ex)
144 220.8 S 1.304(panded and the longest match of).15 F F1(pattern)3.804
E F0(ag)3.804 E 1.304(ainst its v)-.05 F 1.304(alue is replaced with)
-.25 F F1(string)3.804 E F0 6.304(.I)C 3.804(fI)-6.304 G(pattern)-3.804
E F1(be)144 232.8 Q 1.331(gins with)-.4 F F2(/)3.831 E F1 3.831(,a)C
1.331(ll matc)-3.831 F 1.331(hes of pattern ar)-.15 F 3.831(er)-.37 G
1.331(eplaced with string)-4.201 F 6.33(.N)-.15 G 1.33
(ormally only the \214r)-6.33 F 1.33(st matc)-.1 F 3.83(hi)-.15 G(s)
-3.83 E -.37(re)144 244.8 S 2.691(placed. If).37 F .191(pattern be)2.691
F .191(gins with)-.4 F F2(#)2.691 E F1 2.691(,i)C 2.691(tm)-2.691 G .191
(ust matc)-2.691 F 2.691(ha)-.15 G 2.691(tt)-2.691 G .191(he be)-2.691 F
.191(ginning of the e)-.4 F .192(xpanded value of par)-.2 F(am-)-.15 E
(eter)144 256.8 Q 6.049(.I)-1.11 G 3.549(fp)-6.049 G 1.049(attern be)
-3.549 F 1.049(gins with)-.4 F F2(%)3.549 E F1 3.549(,i)C 3.548(tm)
-3.549 G 1.048(ust matc)-3.548 F 3.548(ha)-.15 G 3.548(tt)-3.548 G 1.048
(he end of the e)-3.548 F 1.048(xpanded value of par)-.2 F(ameter)-.15 E
6.048(.I)-1.11 G(f)-6.048 E 2.056(string is null, matc)144 268.8 R 2.057
(hes of pattern ar)-.15 F 4.557(ed)-.37 G 2.057(eleted and the)-4.557 F
F2(/)4.557 E F1 2.057(following pattern may be omitted.)4.557 F(If)7.057
E(par)145.25 280.8 Q(ameter)-.15 E F0(is)3.329 E F2(@)2.599 E F0(or)
2.598 E F2(*)2.598 E F0 2.598(,t)C .098(he substitution operation is ap\
plied to each positional parameter in turn, and)-2.598 F .64(the e)144
292.8 R .64(xpansion is the resultant list.)-.15 F(If)5.64 E F1(par)4.39
E(ameter)-.15 E F0 .64(is an array v)3.87 F .64
(ariable subscripted with)-.25 F F2(@)3.14 E F0(or)3.14 E F2(*)3.14 E F0
3.14(,t)C(he)-3.14 E 1.446(substitution operation is applied to each me\
mber of the array in turn, and the e)144 304.8 R 1.446(xpansion is the)
-.15 F(resultant list.)144 316.8 Q F2(Command Substitution)87 333.6 Q F1
1.697(Command substitution)108 345.6 R F0(allo)4.197 E 1.697
144 220.8 S 1.451(panded and the longest match of).15 F F1(pattern)3.951
E F0(ag)3.951 E 1.451(ainst its v)-.05 F 1.452(alue is replaced with)
-.25 F F1(string)3.952 E F0 6.452(.I)C(f)-6.452 E F1(pattern)3.952 E F0
(be)144 232.8 Q 1.237(gins with)-.15 F F2(/)3.737 E F0 3.737(,a)C 1.237
(ll matches of)-3.737 F F1(pattern)3.737 E F0 1.237(are replaced with)
3.737 F F1(string)3.737 E F0 6.237(.N)C 1.237
(ormally only the \214rst match is)-6.237 F 2.579(replaced. If)144 244.8
R F1(pattern)2.579 E F0(be)2.579 E .079(gins with)-.15 F F2(#)2.579 E F0
2.579(,i)C 2.579(tm)-2.579 G .079(ust match at the be)-2.579 F .08
(ginning of the e)-.15 F .08(xpanded v)-.15 F .08(alue of)-.25 F F1(par)
2.58 E(am-)-.15 E(eter)144 256.8 Q F0 5.762(.I)C(f)-5.762 E F1(pattern)
3.262 E F0(be)3.261 E .761(gins with)-.15 F F2(%)3.261 E F0 3.261(,i)C
3.261(tm)-3.261 G .761(ust match at the end of the e)-3.261 F .761
(xpanded v)-.15 F .761(alue of)-.25 F F1(par)3.261 E(ameter)-.15 E F0
5.761(.I)C(f)-5.761 E F1(string)144 268.8 Q F0 1.937
(is null, matches of)4.437 F F1(pattern)4.437 E F0 1.937
(are deleted and the)4.437 F F2(/)4.438 E F0(follo)4.438 E(wing)-.25 E
F1(pattern)4.438 E F0 1.938(may be omitted.)4.438 F(If)6.938 E F1(par)
145.25 280.8 Q(ameter)-.15 E F0(is)3.329 E F2(@)2.599 E F0(or)2.598 E F2
(*)2.598 E F0 2.598(,t)C .098(he substitution operation is applied to e\
ach positional parameter in turn, and)-2.598 F .64(the e)144 292.8 R .64
(xpansion is the resultant list.)-.15 F(If)5.64 E F1(par)4.39 E(ameter)
-.15 E F0 .64(is an array v)3.87 F .64(ariable subscripted with)-.25 F
F2(@)3.14 E F0(or)3.14 E F2(*)3.14 E F0 3.14(,t)C(he)-3.14 E 1.446(subs\
titution operation is applied to each member of the array in turn, and \
the e)144 304.8 R 1.446(xpansion is the)-.15 F(resultant list.)144 316.8
Q F2(Command Substitution)87 333.6 Q F1 1.697(Command substitution)108
345.6 R F0(allo)4.197 E 1.697
(ws the output of a command to replace the command name.)-.25 F 1.698
(There are tw)6.698 F(o)-.1 E(forms:)108 357.6 Q F2($\()144 379.2 Q F1
(command)A F2(\))1.666 E F0(or)108 391.2 Q F2(`)144 403.2 Q F1(command)A
@@ -2487,7 +2486,7 @@ F1 -.2(ex)2.665 G(pr).2 E(ession)-.37 E F0 .165
A F0(If)5.879 E F1 -.2(ex)108 693.6 S(pr).2 E(ession)-.37 E F0(is in)
2.74 E -.25(va)-.4 G(lid,).25 E F2(bash)2.5 E F0
(prints a message indicating f)2.5 E(ailure and no substitution occurs.)
-.1 E(GNU Bash-3.2)72 768 Q(2007 January 12)140.96 E(19)190.95 E 0 Cg EP
-.1 E(GNU Bash-3.2)72 768 Q(2007 May 1)149.845 E(19)199.835 E 0 Cg EP
%%Page: 20 20
%%BeginPageSetup
BP
@@ -2630,8 +2629,8 @@ R 1.12(NUL character may not occur in a pattern.)3.62 F 3.62(Ab)6.12 G
(The special pattern characters must be quoted if the)5.576 F 3.076(ya)
-.15 G(re)-3.076 E(to be matched literally)108 703.2 Q(.)-.65 E
(The special pattern characters ha)108 720 Q .3 -.15(ve t)-.2 H
(he follo).15 E(wing meanings:)-.25 E(GNU Bash-3.2)72 768 Q
(2007 January 12)140.96 E(20)190.95 E 0 Cg EP
(he follo).15 E(wing meanings:)-.25 E(GNU Bash-3.2)72 768 Q(2007 May 1)
149.845 E(20)199.835 E 0 Cg EP
%%Page: 21 21
%%BeginPageSetup
BP
@@ -2740,7 +2739,7 @@ ted, and the \214rst character of the redirect-)-.25 F .512
E F0(dirlist 2)2.5 E F1(>&)A F0(1)A
(directs both standard output and standard error to the \214le)108 728.4
Q F2(dirlist)2.5 E F0 2.5(,w).68 G(hile the command)-2.5 E(GNU Bash-3.2)
72 768 Q(2007 January 12)140.96 E(21)190.95 E 0 Cg EP
72 768 Q(2007 May 1)149.845 E(21)199.835 E 0 Cg EP
%%Page: 22 22
%%BeginPageSetup
BP
@@ -2832,7 +2831,7 @@ Q F0(allo)3.142 E .642(ws both the standard output \(\214le descriptor \
(xpansion of)-.15 E F2(wor)2.84 E(d)-.37 E F0(with this construct.)3.27
E(There are tw)108 722.4 Q 2.5(of)-.1 G
(ormats for redirecting standard output and standard error:)-2.5 E
(GNU Bash-3.2)72 768 Q(2007 January 12)140.96 E(22)190.95 E 0 Cg EP
(GNU Bash-3.2)72 768 Q(2007 May 1)149.845 E(22)199.835 E 0 Cg EP
%%Page: 23 23
%%BeginPageSetup
BP
@@ -2919,7 +2918,7 @@ E F0(is closed after being duplicated to)2.5 E F2(n)2.5 E F0(.)A
.24 G 2.785(rt)-2.785 G .286
(he standard output \(\214le descriptor 1\) if)-2.785 F F2(n)2.786 E F0
.286(is not speci-)2.786 F(\214ed.)108 729.6 Q(GNU Bash-3.2)72 768 Q
(2007 January 12)140.96 E(23)190.95 E 0 Cg EP
(2007 May 1)149.845 E(23)199.835 E 0 Cg EP
%%Page: 24 24
%%BeginPageSetup
BP
@@ -3062,8 +3061,8 @@ E F0(and)4.28 E F1(RETURN)4.53 E F0 2.029
(alues of the positional parameters and the spe-)-.25 F(cial parameter)
108 724.8 Q F1(#)2.5 E F0(are restored to the v)2.5 E(alues the)-.25 E
2.5(yh)-.15 G(ad prior to the function')-2.5 E 2.5(se)-.55 G -.15(xe)
-2.65 G(cution.).15 E(GNU Bash-3.2)72 768 Q(2007 January 12)140.96 E(24)
190.95 E 0 Cg EP
-2.65 G(cution.).15 E(GNU Bash-3.2)72 768 Q(2007 May 1)149.845 E(24)
199.835 E 0 Cg EP
%%Page: 25 25
%%BeginPageSetup
BP
@@ -3165,8 +3164,8 @@ etters may be used interchangeably to represent num-)-.25 F
(bers between 10 and 35.)108 708 Q .235(Operators are e)108 724.8 R -.25
(va)-.25 G .235(luated in order of precedence.).25 F(Sub-e)5.234 E .234
(xpressions in parentheses are e)-.15 F -.25(va)-.25 G .234
(luated \214rst and may).25 F(GNU Bash-3.2)72 768 Q(2007 January 12)
140.96 E(25)190.95 E 0 Cg EP
(luated \214rst and may).25 F(GNU Bash-3.2)72 768 Q(2007 May 1)149.845 E
(25)199.835 E 0 Cg EP
%%Page: 26 26
%%BeginPageSetup
BP
@@ -3268,7 +3267,7 @@ F3(string2)2.5 E F0 -.35(Tr)144 679.2 S
F3(string2)2.5 E F0 -.35(Tr)144 708 S(ue if).35 E F3(string1)2.5 E F0
(sorts before)2.5 E F3(string2)2.5 E F0(le)2.5 E
(xicographically in the current locale.)-.15 E(GNU Bash-3.2)72 768 Q
(2007 January 12)140.96 E(26)190.95 E 0 Cg EP
(2007 May 1)149.845 E(26)199.835 E 0 Cg EP
%%Page: 27 27
%%BeginPageSetup
BP
@@ -3387,8 +3386,7 @@ F0(are retained by the child.)2.25 E 1.375
(If the program is a \214le be)108 720 R 1.374(ginning with)-.15 F F2
(#!)3.874 E F0 3.874(,t)C 1.374
(he remainder of the \214rst line speci\214es an interpreter for the)
-3.874 F(GNU Bash-3.2)72 768 Q(2007 January 12)140.96 E(27)190.95 E 0 Cg
EP
-3.874 F(GNU Bash-3.2)72 768 Q(2007 May 1)149.845 E(27)199.835 E 0 Cg EP
%%Page: 28 28
%%BeginPageSetup
BP
@@ -3489,8 +3487,7 @@ ment and creates a parameter for each name found, automatically marking\
5.289(cesses. Ex)108 729.6 R 2.789(ecuted commands inherit the en)-.15 F
5.288(vironment. The)-.4 F F3(export)5.288 E F0(and)5.288 E F3(declar)
5.288 E 5.288<65ad>-.18 G(x)-5.288 E F0 2.788(commands allo)5.288 F(w)
-.25 E(GNU Bash-3.2)72 768 Q(2007 January 12)140.96 E(28)190.95 E 0 Cg
EP
-.25 E(GNU Bash-3.2)72 768 Q(2007 May 1)149.845 E(28)199.835 E 0 Cg EP
%%Page: 29 29
%%BeginPageSetup
BP
@@ -3626,7 +3623,7 @@ F0(.)A .784(The shell associates a)108 708 R F2(job)5.024 E F0 .784
2.841 E F0 2.841(command. When)2.841 F F1(bash)2.841 E F0 .341
(starts a job asynchronously \(in the)2.841 F F2(bac)2.84 E(kgr)-.2 E
(ound)-.45 E F0 .34(\), it prints a line).77 F(GNU Bash-3.2)72 768 Q
(2007 January 12)140.96 E(29)190.95 E 0 Cg EP
(2007 May 1)149.845 E(29)199.835 E 0 Cg EP
%%Page: 30 30
%%BeginPageSetup
BP
@@ -3757,8 +3754,8 @@ ized by inserting a number of backslash-escaped special characters that\
are)108 679.2 R(decoded as follo)108 691.2 Q(ws:)-.25 E F1(\\a)144
703.2 Q F0(an ASCII bell character \(07\))28.22 E F1(\\d)144 715.2 Q F0
(the date in "W)27.66 E(eekday Month Date" format \(e.g., "T)-.8 E
(ue May 26"\))-.45 E(GNU Bash-3.2)72 768 Q(2007 January 12)140.96 E(30)
190.95 E 0 Cg EP
(ue May 26"\))-.45 E(GNU Bash-3.2)72 768 Q(2007 May 1)149.845 E(30)
199.835 E 0 Cg EP
%%Page: 31 31
%%BeginPageSetup
BP
@@ -3872,7 +3869,7 @@ F2 -.1(ke)C(y)-.2 E F0 3.653(,s)C 3.653(oM)-3.653 G 1.153
-.15 F .567(which can be yank)108 720 R .567(ed all at once.)-.1 F .567
(Commands which do not kill te)5.567 F .567
(xt separate the chunks of te)-.15 F .567(xt on the kill)-.15 F
(GNU Bash-3.2)72 768 Q(2007 January 12)140.96 E(31)190.95 E 0 Cg EP
(GNU Bash-3.2)72 768 Q(2007 May 1)149.845 E(31)199.835 E 0 Cg EP
%%Page: 32 32
%%BeginPageSetup
BP
@@ -3970,8 +3967,8 @@ G(rsal\255ar).1 E(gument)-.1 E F0(.)A F2 .315(C\255x C\255r)5.155 F F0
<5c43ad>144 669.6 Q F0(control pre\214x)20.3 E F1<5c4dad>144 681.6 Q F0
(meta pre\214x)18.08 E F1(\\e)144 693.6 Q F0(an escape character)28.78 E
F1(\\\\)144 705.6 Q F0(backslash)30.44 E F1(\\")144 717.6 Q F0
(literal ")27.67 E(GNU Bash-3.2)72 768 Q(2007 January 12)140.96 E(32)
190.95 E 0 Cg EP
(literal ")27.67 E(GNU Bash-3.2)72 768 Q(2007 May 1)149.845 E(32)199.835
E 0 Cg EP
%%Page: 33 33
%%BeginPageSetup
BP
@@ -4067,8 +4064,7 @@ F(e-)-.37 E<8c78>144 681.6 Q F0(\).)A F1(disable\255completion \(Off\))
.038(eadline will inhibit w)-2.538 F .038(ord completion.)-.1 F .038
(Completion characters will be inserted into the)5.038 F(line as if the)
144 717.6 Q 2.5(yh)-.15 G(ad been mapped to)-2.5 E F1(self-insert)2.5 E
F0(.)A(GNU Bash-3.2)72 768 Q(2007 January 12)140.96 E(33)190.95 E 0 Cg
EP
F0(.)A(GNU Bash-3.2)72 768 Q(2007 May 1)149.845 E(33)199.835 E 0 Cg EP
%%Page: 34 34
%%BeginPageSetup
BP
@@ -4161,7 +4157,7 @@ E F1(sho)108 660 Q(w\255all\255if\255ambiguous \(Off\))-.1 E F0 .477
2.978 E F0 2.978(,w)C .478(ords which ha)-3.078 F .778 -.15(ve m)-.2 H
(ore).15 E 1.264(than one possible completion cause the matches to be l\
isted immediately instead of ringing the)144 684 R(bell.)144 696 Q
(GNU Bash-3.2)72 768 Q(2007 January 12)140.96 E(34)190.95 E 0 Cg EP
(GNU Bash-3.2)72 768 Q(2007 May 1)149.845 E(34)199.835 E 0 Cg EP
%%Page: 35 35
%%BeginPageSetup
BP
@@ -4263,8 +4259,7 @@ F0 -.25(va)2.724 G .224
(alue the Escape and Control-J characters will terminate an incre-)-.25
F .097(mental search.)108 720 R .096(Control-G will abort an incrementa\
l search and restore the original line.)5.097 F .096(When the search is)
5.096 F(GNU Bash-3.2)72 768 Q(2007 January 12)140.96 E(35)190.95 E 0 Cg
EP
5.096 F(GNU Bash-3.2)72 768 Q(2007 May 1)149.845 E(35)199.835 E 0 Cg EP
%%Page: 36 36
%%BeginPageSetup
BP
@@ -4351,7 +4346,7 @@ E(ving forw)-.15 E(ard in the list.)-.1 E F2
(ard starting at the current line and mo)-.1 F 1.471
(ving `up' through the history as necessary)-.15 F(.)-.65 E
(This is an incremental search.)144 712.8 Q(GNU Bash-3.2)72 768 Q
(2007 January 12)140.96 E(36)190.95 E 0 Cg EP
(2007 May 1)149.845 E(36)199.835 E 0 Cg EP
%%Page: 37 37
%%BeginPageSetup
BP
@@ -4451,7 +4446,7 @@ F1(yank\255nth\255ar)3.235 E(g)-.1 E F0 5.735(.S)C(uccessi)-5.735 E
5.358 F .358(ginning of the line, there are no characters in the)-.15 F
(line, and the last character typed w)144 712.8 Q(as not bound to)-.1 E
F1(delete\255char)2.5 E F0 2.5(,t)C(hen return)-2.5 E F3(EOF)2.5 E F4(.)
A F0(GNU Bash-3.2)72 768 Q(2007 January 12)140.96 E(37)190.95 E 0 Cg EP
A F0(GNU Bash-3.2)72 768 Q(2007 May 1)149.845 E(37)199.835 E 0 Cg EP
%%Page: 38 38
%%BeginPageSetup
BP
@@ -4544,8 +4539,7 @@ Q(ard from point to the be)-.1 E(ginning of the line.)-.15 E
(ord behind point, using white space as a w)-.1 F .365(ord boundary)-.1
F 5.365(.T)-.65 G .365(he killed te)-5.365 F .365(xt is sa)-.15 F -.15
(ve)-.2 G 2.865(do).15 G 2.865(nt)-2.865 G(he)-2.865 E(kill-ring.)144
712.8 Q(GNU Bash-3.2)72 768 Q(2007 January 12)140.96 E(38)190.95 E 0 Cg
EP
712.8 Q(GNU Bash-3.2)72 768 Q(2007 May 1)149.845 E(38)199.835 E 0 Cg EP
%%Page: 39 39
%%BeginPageSetup
BP
@@ -4643,7 +4637,7 @@ E(through the list.)144 669.6 Q(This command is intended to be bound to)
(ve)-.2 G 2.925(si).15 G .425(dentically to)-2.925 F F1
(possible\255completions)2.925 E F0 5.425(.T)C .425
(his command is unbound)-5.425 F(by def)144 717.6 Q(ault.)-.1 E
(GNU Bash-3.2)72 768 Q(2007 January 12)140.96 E(39)190.95 E 0 Cg EP
(GNU Bash-3.2)72 768 Q(2007 May 1)149.845 E(39)199.835 E 0 Cg EP
%%Page: 40 40
%%BeginPageSetup
BP
@@ -4727,7 +4721,7 @@ C(..\))-2.5 E F0 1.756(If the meta\214ed character)144 621.6 R F2(x)
F 3.595(ee)-.1 G -.15(xe)-3.745 G 1.095(cuting the).15 F F1(undo)3.595 E
F0 1.095(command enough times to)3.595 F
(return the line to its initial state.)144 717.6 Q(GNU Bash-3.2)72 768 Q
(2007 January 12)140.96 E(40)190.95 E 0 Cg EP
(2007 May 1)149.845 E(40)199.835 E 0 Cg EP
%%Page: 41 41
%%BeginPageSetup
BP
@@ -4832,8 +4826,8 @@ F(UIL)-.09 E 1.329(TIN COMMANDS)-.828 F F0(belo)3.579 E 1.328(w\), the)
(compspec for the full pathname is searched for \214rst.)108 705.6 R
1.181(If no compspec is found for the full pathname, an)6.181 F
(attempt is made to \214nd a compspec for the portion follo)108 717.6 Q
(wing the \214nal slash.)-.25 E(GNU Bash-3.2)72 768 Q(2007 January 12)
140.96 E(41)190.95 E 0 Cg EP
(wing the \214nal slash.)-.25 E(GNU Bash-3.2)72 768 Q(2007 May 1)149.845
E(41)199.835 E 0 Cg EP
%%Page: 42 42
%%BeginPageSetup
BP
@@ -4975,7 +4969,7 @@ desired, the programmable completion func-)108 693.6 R .632(tions force\
(readline v)5.262 F 2.761(ariable, re)-.25 F -.05(ga)-.15 G 2.761
(rdless of the setting of the).05 F F1(mark-sym-)5.261 E(link)108 729.6
Q(ed\255dir)-.1 E(ectories)-.18 E F0(readline v)2.5 E(ariable.)-.25 E
(GNU Bash-3.2)72 768 Q(2007 January 12)140.96 E(42)190.95 E 0 Cg EP
(GNU Bash-3.2)72 768 Q(2007 May 1)149.845 E(42)199.835 E 0 Cg EP
%%Page: 43 43
%%BeginPageSetup
BP
@@ -5119,7 +5113,7 @@ F0(will also inhibit e)108 705.6 Q(xpansion.)-.15 E(Se)108 722.4 Q -.15
(ve)-.25 G .109(ral shell options settable with the).15 F F2(shopt)2.609
E F0 -.2(bu)2.609 G .11(iltin may be used to tailor the beha).2 F .11
(vior of history e)-.2 F(xpansion.)-.15 E(GNU Bash-3.2)72 768 Q
(2007 January 12)140.96 E(43)190.95 E 0 Cg EP
(2007 May 1)149.845 E(43)199.835 E 0 Cg EP
%%Page: 44 44
%%BeginPageSetup
BP
@@ -5224,8 +5218,8 @@ G .184(here may appear a sequence of one or more of the follo)-2.683 F
(ving the basename.)-.2 E F1(e)108 698.4 Q F0(Remo)31.56 E .3 -.15(ve a)
-.15 H(ll b).15 E(ut the trailing suf)-.2 E(\214x.)-.25 E F1(p)108 710.4
Q F0(Print the ne)30.44 E 2.5(wc)-.25 G(ommand b)-2.5 E(ut do not e)-.2
E -.15(xe)-.15 G(cute it.).15 E(GNU Bash-3.2)72 768 Q(2007 January 12)
140.96 E(44)190.95 E 0 Cg EP
E -.15(xe)-.15 G(cute it.).15 E(GNU Bash-3.2)72 768 Q(2007 May 1)149.845
E(44)199.835 E 0 Cg EP
%%Page: 45 45
%%BeginPageSetup
BP
@@ -5356,7 +5350,7 @@ G(ymap)-.2 E F0(])A F2 -.1(ke)2.5 G(yseq)-.2 E F0(:)A F2
2.738 F .475(macro, or set a)144 726 R F1 -.18(re)2.975 G(adline).18 E
F0 -.25(va)2.975 G 2.975(riable. Each).25 F .476(non-option ar)2.976 F
.476(gument is a command as it w)-.18 F .476(ould appear in)-.1 F
(GNU Bash-3.2)72 768 Q(2007 January 12)140.96 E(45)190.95 E 0 Cg EP
(GNU Bash-3.2)72 768 Q(2007 May 1)149.845 E(45)199.835 E 0 Cg EP
%%Page: 46 46
%%BeginPageSetup
BP
@@ -5480,8 +5474,7 @@ tine name, and source \214le corresponding to that position in the curr\
ent e)144 708 R -.15(xe)-.15 G 1.327(cution call stack.).15 F(This e)144
720 Q(xtra information may be used, for e)-.15 E .001
(xample, to print a stack trace.)-.15 F .001(The current frame is frame)
5.001 F(GNU Bash-3.2)72 768 Q(2007 January 12)140.96 E(46)190.95 E 0 Cg
EP
5.001 F(GNU Bash-3.2)72 768 Q(2007 May 1)149.845 E(46)199.835 E 0 Cg EP
%%Page: 47 47
%%BeginPageSetup
BP
@@ -5590,7 +5583,7 @@ e compspec generates \214lenames, so it can perform an).7 F 2.637<798c>
2.996(ea)-.1 G .496(dding a slash to directory names or suppress-)-2.996
F(ing trailing spaces\).)224 710.4 Q
(Intended to be used with shell functions.)5 E(GNU Bash-3.2)72 768 Q
(2007 January 12)140.96 E(47)190.95 E 0 Cg EP
(2007 May 1)149.845 E(47)199.835 E 0 Cg EP
%%Page: 48 48
%%BeginPageSetup
BP
@@ -5663,7 +5656,7 @@ E(dlist)-.37 E F0 1.14(is split using the characters in the)3.639 F F3
(ishes, the possible completions are retrie)184 696 R -.15(ve)-.25 G
3.432(df).15 G .932(rom the v)-3.432 F .932(alue of the)-.25 F F3
(COMPREPL)3.432 E(Y)-.828 E F0(array)3.182 E -.25(va)184 708 S(riable.)
.25 E(GNU Bash-3.2)72 768 Q(2007 January 12)140.96 E(48)190.95 E 0 Cg EP
.25 E(GNU Bash-3.2)72 768 Q(2007 May 1)149.845 E(48)199.835 E 0 Cg EP
%%Page: 49 49
%%BeginPageSetup
BP
@@ -5793,7 +5786,7 @@ F0(command; the)2.5 E F1(popd)2.5 E F0(command remo)2.5 E -.15(ve)-.15 G
(th entry counting from the left of the list sho)B 1.565(wn by)-.25 F F1
(dirs)4.065 E F0 1.565(when in)4.065 F -.2(vo)-.4 G -.1(ke).2 G(d).1 E
(without options, starting with zero.)180 708 Q(GNU Bash-3.2)72 768 Q
(2007 January 12)140.96 E(49)190.95 E 0 Cg EP
(2007 May 1)149.845 E(49)199.835 E 0 Cg EP
%%Page: 50 50
%%BeginPageSetup
BP
@@ -5912,8 +5905,7 @@ F .399(guments, the)-.18 F .099(list consists of all enabled shell b)144
(alue)-.25 E .994(is 0 unless a)144 703.2 R F2(name)3.854 E F0 .994
(is not a shell b)3.674 F .994(uiltin or there is an error loading a ne)
-.2 F 3.495(wb)-.25 G .995(uiltin from a shared)-3.695 F(object.)144
715.2 Q(GNU Bash-3.2)72 768 Q(2007 January 12)140.96 E(50)190.95 E 0 Cg
EP
715.2 Q(GNU Bash-3.2)72 768 Q(2007 May 1)149.845 E(50)199.835 E 0 Cg EP
%%Page: 51 51
%%BeginPageSetup
BP
@@ -6048,8 +6040,8 @@ R .454(If the)5.454 F F1<ad65>2.954 E F0 .454
679.2 R -.15(xe)-.15 G 1.135(cuted, unless).15 F F2(cmd)3.835 E F0 1.135
(does not)4.405 F(specify a v)144 691.2 Q
(alid history line, in which case)-.25 E F1(fc)2.5 E F0(returns f)2.5 E
(ailure.)-.1 E(GNU Bash-3.2)72 768 Q(2007 January 12)140.96 E(51)190.95
E 0 Cg EP
(ailure.)-.1 E(GNU Bash-3.2)72 768 Q(2007 May 1)149.845 E(51)199.835 E 0
Cg EP
%%Page: 52 52
%%BeginPageSetup
BP
@@ -6174,8 +6166,8 @@ F0(])A .867(Display helpful information about b)144 686.4 R .867
R(The)5.596 E F1<ad73>3.096 E F0 .596
(option restricts the information displayed to a short usage synopsis.)
3.096 F(The)5.596 E(return status is 0 unless no command matches)144
722.4 Q F2(pattern)2.5 E F0(.).24 E(GNU Bash-3.2)72 768 Q
(2007 January 12)140.96 E(52)190.95 E 0 Cg EP
722.4 Q F2(pattern)2.5 E F0(.).24 E(GNU Bash-3.2)72 768 Q(2007 May 1)
149.845 E(52)199.835 E 0 Cg EP
%%Page: 53 53
%%BeginPageSetup
BP
@@ -6290,7 +6282,7 @@ F1(kill)108 660 Q F0([)2.5 E F1<ad73>A F2(sigspec)2.5 E F0(|)2.5 E F1
F1<ad6c>3.023 E F0 .523(lists the signal names.)3.023 F .523(If an)5.523
F 3.023(ya)-.15 G -.18(rg)-3.023 G .523(uments are supplied when).18 F
F1<ad6c>3.023 E F0 .523(is gi)3.023 F -.15(ve)-.25 G .523(n, the names)
.15 F(GNU Bash-3.2)72 768 Q(2007 January 12)140.96 E(53)190.95 E 0 Cg EP
.15 F(GNU Bash-3.2)72 768 Q(2007 May 1)149.845 E(53)199.835 E 0 Cg EP
%%Page: 54 54
%%BeginPageSetup
BP
@@ -6410,7 +6402,7 @@ irectory stack, or rotates the stack, making the ne)144 681.6 R 3.14(wt)
(returns 0, unless the directory stack is empty)144 705.6 R 5.871(.A)
-.65 G -.18(rg)-5.871 G .872(uments, if supplied, ha).18 F 1.172 -.15
(ve t)-.2 H .872(he follo).15 F .872(wing mean-)-.25 F(ings:)144 717.6 Q
(GNU Bash-3.2)72 768 Q(2007 January 12)140.96 E(54)190.95 E 0 Cg EP
(GNU Bash-3.2)72 768 Q(2007 May 1)149.845 E(54)199.835 E 0 Cg EP
%%Page: 55 55
%%BeginPageSetup
BP
@@ -6526,8 +6518,8 @@ E F2(names)3.27 E F0 .77(are mark)3.27 F .77(ed readonly; the v)-.1 F
(may not be changed by subse-)3.54 F 1.097(quent assignment.)144 720 R
1.097(If the)6.097 F F1<ad66>3.597 E F0 1.097
(option is supplied, the functions corresponding to the)3.597 F F2
(names)3.596 E F0 1.096(are so)3.596 F(GNU Bash-3.2)72 768 Q
(2007 January 12)140.96 E(55)190.95 E 0 Cg EP
(names)3.596 E F0 1.096(are so)3.596 F(GNU Bash-3.2)72 768 Q(2007 May 1)
149.845 E(55)199.835 E 0 Cg EP
%%Page: 56 56
%%BeginPageSetup
BP
@@ -6645,8 +6637,8 @@ E F1<ad6f>144 609.6 Q F2(option\255name)2.5 E F0(The)184 621.6 Q F2
(when the shell is interacti)224 693.6 R -.15(ve)-.25 G 3.45(,u).15 G
.95(nless the shell is started with the)-3.45 F F1(\255\255noediting)
3.45 E F0(option.)224 705.6 Q F1(errtrace)184 717.6 Q F0(Same as)5.03 E
F1<ad45>2.5 E F0(.)A(GNU Bash-3.2)72 768 Q(2007 January 12)140.96 E(56)
190.95 E 0 Cg EP
F1<ad45>2.5 E F0(.)A(GNU Bash-3.2)72 768 Q(2007 May 1)149.845 E(56)
199.835 E 0 Cg EP
%%Page: 57 57
%%BeginPageSetup
BP
@@ -6741,7 +6733,7 @@ F0 .214(does not o)2.714 F -.15(ve)-.15 G .214(rwrite an e).15 F .214
2.713(,a)C(nd)-2.713 E F1(<>)2.713 E F0 .213(redirection opera-)2.713 F
5.435(tors. This)184 726 R 2.936(may be o)5.435 F -.15(ve)-.15 G 2.936
(rridden when creating output \214les by using the redirection).15 F
(GNU Bash-3.2)72 768 Q(2007 January 12)140.96 E(57)190.95 E 0 Cg EP
(GNU Bash-3.2)72 768 Q(2007 May 1)149.845 E(57)199.835 E 0 Cg EP
%%Page: 58 58
%%BeginPageSetup
BP
@@ -6854,7 +6846,7 @@ F1(cdable_v)144 694.8 Q(ars)-.1 E F0 .156(If set, an ar)184 706.8 R .156
(iltin command that is not a directory is assumed to be the).2 F
(name of a v)184 718.8 Q(ariable whose v)-.25 E
(alue is the directory to change to.)-.25 E(GNU Bash-3.2)72 768 Q
(2007 January 12)140.96 E(58)190.95 E 0 Cg EP
(2007 May 1)149.845 E(58)199.835 E 0 Cg EP
%%Page: 59 59
%%BeginPageSetup
BP
@@ -6958,7 +6950,7 @@ E F0(")A F4(string)A F0 4.973("q)C 2.473(uoting is performed within)
(FIGNORE)3.33 E F0 5.83(.T)C .83(his option)-5.83 F(is enabled by def)
184 672 Q(ault.)-.1 E F1(gnu_errfmt)144 684 Q F0(If set, shell error me\
ssages are written in the standard GNU error message format.)184 696 Q
(GNU Bash-3.2)72 768 Q(2007 January 12)140.96 E(59)190.95 E 0 Cg EP
(GNU Bash-3.2)72 768 Q(2007 May 1)149.845 E(59)199.835 E 0 Cg EP
%%Page: 60 60
%%BeginPageSetup
BP
@@ -7051,7 +7043,7 @@ F1(shift_v)144 696 Q(erbose)-.1 E F0 .502(If set, the)184 708 R F1
(shift)3.002 E F0 -.2(bu)3.002 G .501
(iltin prints an error message when the shift count e).2 F .501
(xceeds the number)-.15 F(of positional parameters.)184 720 Q
(GNU Bash-3.2)72 768 Q(2007 January 12)140.96 E(60)190.95 E 0 Cg EP
(GNU Bash-3.2)72 768 Q(2007 May 1)149.845 E(60)199.835 E 0 Cg EP
%%Page: 61 61
%%BeginPageSetup
BP
@@ -7088,11 +7080,13 @@ F1(test)6.39 E F0 1.889(does not accept an)4.389 F 4.389(yo)-.15 G 1.889
(ptions, nor)-4.389 F(does it accept and ignore an ar)144 240 Q
(gument of)-.18 E F1<adad>2.5 E F0(as signifying the end of options.)2.5
E .785(Expressions may be combined using the follo)144 258 R .786
(wing operators, listed in decreasing order of prece-)-.25 F(dence.)144
270 Q F1(!)144 282 Q F3 -.2(ex)2.5 G(pr).2 E F0 -.35(Tr)12.6 G(ue if).35
E F3 -.2(ex)2.5 G(pr).2 E F0(is f)3.23 E(alse.)-.1 E F1(\()144 294 Q F3
-.2(ex)2.5 G(pr).2 E F1(\))2.5 E F0 .26(Returns the v)6.77 F .26
(alue of)-.25 F F3 -.2(ex)2.76 G(pr).2 E F0 5.26(.T)C .26
(wing operators, listed in decreasing order of prece-)-.25 F 2.5
(dence. The)144 270 R -.25(eva)2.5 G
(luation depends on the number of ar).25 E(guments; see belo)-.18 E -.65
(w.)-.25 G F1(!)144 282 Q F3 -.2(ex)2.5 G(pr).2 E F0 -.35(Tr)12.6 G
(ue if).35 E F3 -.2(ex)2.5 G(pr).2 E F0(is f)3.23 E(alse.)-.1 E F1(\()
144 294 Q F3 -.2(ex)2.5 G(pr).2 E F1(\))2.5 E F0 .26(Returns the v)6.77
F .26(alue of)-.25 F F3 -.2(ex)2.76 G(pr).2 E F0 5.26(.T)C .26
(his may be used to o)-5.26 F -.15(ve)-.15 G .26
(rride the normal precedence of opera-).15 F(tors.)180 306 Q F3 -.2(ex)
144 318 S(pr1).2 E F0<ad>2.5 E F1(a)A F3 -.2(ex)2.5 G(pr2).2 E F0 -.35
@@ -7122,25 +7116,26 @@ F .37(xpression is true if and only if the second ar)-.15 F .37
(gument is one of the binary conditional operators listed abo)-.18 F
.323 -.15(ve u)-.15 H(nder).15 E F2(CON-)2.523 E(DITION)180 520.8 Q
1.477(AL EXPRESSIONS)-.18 F F4(,)A F0 1.477(the result of the e)3.727 F
1.477(xpression is the result of the binary test)-.15 F .398
(using the \214rst and third ar)180 532.8 R .398(guments as operands.)
-.18 F .398(If the \214rst ar)5.398 F .397(gument is)-.18 F F1(!)2.897 E
F0 2.897(,t)C .397(he v)-2.897 F .397(alue is the)-.25 F(ne)180 544.8 Q
-.05(ga)-.15 G .262(tion of the tw).05 F(o-ar)-.1 E .262
(gument test using the second and third ar)-.18 F 2.762(guments. If)-.18
F .263(the \214rst ar)2.762 F(gu-)-.18 E .206(ment is e)180 556.8 R
(xactly)-.15 E F1(\()2.706 E F0 .205(and the third ar)2.706 F .205
(gument is e)-.18 F(xactly)-.15 E F1(\))2.705 E F0 2.705(,t)C .205
(he result is the one-ar)-2.705 F .205(gument test of)-.18 F 1.17
(the second ar)180 568.8 R 3.67(gument. Otherwise,)-.18 F 1.171(the e)
3.671 F 1.171(xpression is f)-.15 F 3.671(alse. The)-.1 F F1<ad61>3.671
E F0(and)3.671 E F1<ad6f>3.671 E F0 1.171(operators are)3.671 F
(considered binary operators in this case.)180 580.8 Q 2.5(4a)144 592.8
S -.18(rg)-2.5 G(uments).18 E .385(If the \214rst ar)180 604.8 R .385
(gument is)-.18 F F1(!)2.885 E F0 2.885(,t)C .385(he result is the ne)
-2.885 F -.05(ga)-.15 G .384(tion of the three-ar).05 F .384(gument e)
-.18 F .384(xpression com-)-.15 F 1.647(posed of the remaining ar)180
616.8 R 4.147(guments. Otherwise,)-.18 F 1.647(the e)4.147 F 1.648
1.477(xpression is the result of the binary test)-.15 F .513
(using the \214rst and third ar)180 532.8 R .513(guments as operands.)
-.18 F(The)5.513 E F1<ad61>3.013 E F0(and)3.013 E F1<ad6f>3.013 E F0
.512(operators are considered)3.013 F .972
(binary operators when there are three ar)180 544.8 R 3.472(guments. If)
-.18 F .972(the \214rst ar)3.472 F .972(gument is)-.18 F F1(!)3.472 E F0
3.472(,t)C .972(he v)-3.472 F .972(alue is)-.25 F .884(the ne)180 556.8
R -.05(ga)-.15 G .884(tion of the tw).05 F(o-ar)-.1 E .884
(gument test using the second and third ar)-.18 F 3.383(guments. If)-.18
F .883(the \214rst)3.383 F(ar)180 568.8 Q .874(gument is e)-.18 F
(xactly)-.15 E F1(\()3.374 E F0 .875(and the third ar)3.374 F .875
(gument is e)-.18 F(xactly)-.15 E F1(\))3.375 E F0 3.375(,t)C .875
(he result is the one-ar)-3.375 F(gument)-.18 E(test of the second ar)
180 580.8 Q 2.5(gument. Otherwise,)-.18 F(the e)2.5 E(xpression is f)
-.15 E(alse.)-.1 E 2.5(4a)144 592.8 S -.18(rg)-2.5 G(uments).18 E .385
(If the \214rst ar)180 604.8 R .385(gument is)-.18 F F1(!)2.885 E F0
2.885(,t)C .385(he result is the ne)-2.885 F -.05(ga)-.15 G .384
(tion of the three-ar).05 F .384(gument e)-.18 F .384(xpression com-)
-.15 F 1.647(posed of the remaining ar)180 616.8 R 4.147
(guments. Otherwise,)-.18 F 1.647(the e)4.147 F 1.648
(xpression is parsed and e)-.15 F -.25(va)-.25 G(luated).25 E
(according to precedence using the rules listed abo)180 628.8 Q -.15(ve)
-.15 G(.).15 E 2.5(5o)144 640.8 S 2.5(rm)-2.5 G(ore ar)-2.5 E(guments)
@@ -7150,7 +7145,7 @@ S -.18(rg)-2.5 G(uments).18 E .385(If the \214rst ar)180 604.8 R .385
664.8 Q -.15(ve)-.15 G(.).15 E F1(times)108 681.6 Q F0 1.229(Print the \
accumulated user and system times for the shell and for processes run f\
rom the shell.)13.23 F(The return status is 0.)144 693.6 Q(GNU Bash-3.2)
72 768 Q(2007 January 12)140.96 E(61)190.95 E 0 Cg EP
72 768 Q(2007 May 1)149.845 E(61)199.835 E 0 Cg EP
%%Page: 62 62
%%BeginPageSetup
BP
@@ -7306,8 +7301,7 @@ F0(All current limits are reported)25.3 E F1<ad63>144 669.6 Q F0
(The maximum scheduling priority \("nice"\))25.86 E F1<ad66>144 705.6 Q
F0(The maximum size of \214les written by the shell and its children)
26.97 E F1<ad69>144 717.6 Q F0(The maximum number of pending signals)
27.52 E(GNU Bash-3.2)72 768 Q(2007 January 12)140.96 E(62)190.95 E 0 Cg
EP
27.52 E(GNU Bash-3.2)72 768 Q(2007 May 1)149.845 E(62)199.835 E 0 Cg EP
%%Page: 63 63
%%BeginPageSetup
BP
@@ -7422,8 +7416,8 @@ E F1 -.3(BA)2.5 G(SH_ENV).3 E F0 32.5<8373>108 691.2 S
(pecifying command names containing)-32.5 E F1(/)2.5 E F0 32.5<8373>108
708 S(pecifying a \214le name containing a)-32.5 E F1(/)2.5 E F0
(as an ar)2.5 E(gument to the)-.18 E F1(.)2.5 E F0 -.2(bu)5 G
(iltin command).2 E(GNU Bash-3.2)72 768 Q(2007 January 12)140.96 E(63)
190.95 E 0 Cg EP
(iltin command).2 E(GNU Bash-3.2)72 768 Q(2007 May 1)149.845 E(63)
199.835 E 0 Cg EP
%%Page: 64 64
%%BeginPageSetup
BP
@@ -7502,7 +7496,7 @@ E F0(initialization \214le)2.5 E F3 -.548(AU)72 554.4 S(THORS).548 E F0
(be mailed to)108 700.8 Q F4 -.2(bu)2.5 G(g-bash@gnu.or).2 E(g)-.37 E F0
(or posted to the Usenet ne)2.5 E(wsgroup)-.25 E F1(gnu.bash.b)2.5 E(ug)
-.2 E F0(.)A(ALL b)108 717.6 Q(ug reports should include:)-.2 E
(GNU Bash-3.2)72 768 Q(2007 January 12)140.96 E(64)190.95 E 0 Cg EP
(GNU Bash-3.2)72 768 Q(2007 May 1)149.845 E(64)199.835 E 0 Cg EP
%%Page: 65 65
%%BeginPageSetup
BP
@@ -7543,7 +7537,7 @@ place the sequence of commands between parentheses to force it into a)
(ni).25 G(nside shell comments, will result in error messages while the\
construct is being read.)-2.5 E(Array v)108 367.2 Q
(ariables may not \(yet\) be e)-.25 E(xported.)-.15 E(GNU Bash-3.2)72
768 Q(2007 January 12)140.96 E(65)190.95 E 0 Cg EP
768 Q(2007 May 1)149.845 E(65)199.835 E 0 Cg EP
%%Trailer
end
%%EOF
BIN
View File
Binary file not shown.
+14 -10
View File
@@ -1,6 +1,6 @@
<HTML>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- Created on January, 16 2007 by texi2html 1.64 -->
<!-- Created on May, 11 2007 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.2, 12 January 2007).
the Bash shell (version 3.2, 1 May 2007).
</P><P>
This is Edition 3.2, last updated 12 January 2007,
This is Edition 3.2, last updated 1 May 2007,
of <CITE>The GNU Bash Reference Manual</CITE>,
for <CODE>Bash</CODE>, Version 3.2.
</P><P>
@@ -1401,7 +1401,8 @@ The semicolon (or newline) following <VAR>list</VAR> is required.
In addition to the creation of a subshell, there is a subtle difference
between these two constructs due to historical reasons. The braces
are <CODE>reserved words</CODE>, so they must be separated from the <VAR>list</VAR>
by <CODE>blank</CODE>s. The parentheses are <CODE>operators</CODE>, and are
by <CODE>blank</CODE>s or other shell metacharacters.
The parentheses are <CODE>operators</CODE>, and are
recognized as separate tokens by the shell even if they are not separated
from the <VAR>list</VAR> by whitespace.
</P><P>
@@ -1470,7 +1471,8 @@ Note that for historical reasons, in the most common usage the curly braces
that surround the body of the function must be separated from the body by
<CODE>blank</CODE>s or newlines.
This is because the braces are reserved words and are only recognized
as such when they are separated by whitespace.
as such when they are separated from the command list
by whitespace or another shell metacharacter.
Also, when using the braces, the <VAR>list</VAR> must be terminated by a semicolon,
a <SAMP>`&#38;'</SAMP>, or a newline.
</P><P>
@@ -3915,6 +3917,7 @@ be a <CODE>]</CODE>.
Expressions may be combined using the following operators, listed in
decreasing order of precedence.
The evaluation depends on the number of arguments; see below.
</P><P>
<DL COMPACT>
@@ -3964,14 +3967,14 @@ false.
operators (see section <A HREF="bashref.html#SEC80">6.4 Bash Conditional Expressions</A>), the
result of the expression is the result of the binary test using the
first and third arguments as operands.
The <SAMP>`-a'</SAMP> and <SAMP>`-o'</SAMP> operators are considered binary operators
when there are three arguments.
If the first argument is <SAMP>`!'</SAMP>, the value is the negation of
the two-argument test using the second and third arguments.
If the first argument is exactly <SAMP>`('</SAMP> and the third argument is
exactly <SAMP>`)'</SAMP>, the result is the one-argument test of the second
argument.
Otherwise, the expression is false.
The <SAMP>`-a'</SAMP> and <SAMP>`-o'</SAMP> operators are considered binary operators
in this case.
<P>
<DT>4 arguments
@@ -9156,7 +9159,8 @@ attempts word completion. The default is <SAMP>`off'</SAMP>.
<DT><CODE>history-preserve-point</CODE>
<DD><A NAME="IDX304"></A>
If set to <SAMP>`on'</SAMP>, the history code attempts to place point at the
If set to <SAMP>`on'</SAMP>, the history code attempts to place the point (the
current cursor position) at the
same location on each history line retrieved with <CODE>previous-history</CODE>
or <CODE>next-history</CODE>. The default is <SAMP>`off'</SAMP>.
<P>
@@ -15287,7 +15291,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>January, 16 2007</I>
This document was generated by <I>Chet Ramey</I> on <I>May, 11 2007</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
<P></P>
@@ -15449,7 +15453,7 @@ the following structure:
<BR>
<FONT SIZE="-1">
This document was generated
by <I>Chet Ramey</I> on <I>January, 16 2007</I>
by <I>Chet Ramey</I> on <I>May, 11 2007</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
+168 -164
View File
@@ -2,9 +2,9 @@ This is bashref.info, produced by makeinfo version 4.8 from
/Users/chet/src/bash/src/doc/bashref.texi.
This text is a brief description of the features that are present in
the Bash shell (version 3.2, 12 January 2007).
the Bash shell (version 3.2, 1 May 2007).
This is Edition 3.2, last updated 12 January 2007, of `The GNU Bash
This is Edition 3.2, last updated 1 May 2007, of `The GNU Bash
Reference Manual', for `Bash', Version 3.2.
Copyright (C) 1988-2005 Free Software Foundation, Inc.
@@ -37,9 +37,9 @@ Bash Features
*************
This text is a brief description of the features that are present in
the Bash shell (version 3.2, 12 January 2007).
the Bash shell (version 3.2, 1 May 2007).
This is Edition 3.2, last updated 12 January 2007, of `The GNU Bash
This is Edition 3.2, last updated 1 May 2007, of `The GNU Bash
Reference Manual', for `Bash', Version 3.2.
Bash contains features that appear in other popular shells, and some
@@ -907,9 +907,9 @@ the list may be redirected to a single stream.
In addition to the creation of a subshell, there is a subtle
difference between these two constructs due to historical reasons. The
braces are `reserved words', so they must be separated from the LIST by
`blank's. The parentheses are `operators', and are recognized as
separate tokens by the shell even if they are not separated from the
LIST by whitespace.
`blank's or other shell metacharacters. The parentheses are
`operators', and are recognized as separate tokens by the shell even if
they are not separated from the LIST by whitespace.
The exit status of both of these constructs is the exit status of
LIST.
@@ -952,8 +952,9 @@ last command executed in the body.
braces that surround the body of the function must be separated from
the body by `blank's or newlines. This is because the braces are
reserved words and are only recognized as such when they are separated
by whitespace. Also, when using the braces, the LIST must be
terminated by a semicolon, a `&', or a newline.
from the command list by whitespace or another shell metacharacter.
Also, when using the braces, the LIST must be terminated by a semicolon,
a `&', or a newline.
When a function is executed, the arguments to the function become
the positional parameters during its execution (*note Positional
@@ -2497,7 +2498,8 @@ standard.
be a `]'.
Expressions may be combined using the following operators, listed
in decreasing order of precedence.
in decreasing order of precedence. The evaluation depends on the
number of arguments; see below.
`! EXPR'
True if EXPR is false.
@@ -2534,13 +2536,14 @@ standard.
If the second argument is one of the binary conditional
operators (*note Bash Conditional Expressions::), the result
of the expression is the result of the binary test using the
first and third arguments as operands. If the first argument
is `!', the value is the negation of the two-argument test
using the second and third arguments. If the first argument
is exactly `(' and the third argument is exactly `)', the
result is the one-argument test of the second argument.
Otherwise, the expression is false. The `-a' and `-o'
operators are considered binary operators in this case.
first and third arguments as operands. The `-a' and `-o'
operators are considered binary operators when there are
three arguments. If the first argument is `!', the value is
the negation of the two-argument test using the second and
third arguments. If the first argument is exactly `(' and
the third argument is exactly `)', the result is the
one-argument test of the second argument. Otherwise, the
expression is false.
4 arguments
If the first argument is `!', the result is the negation of
@@ -6108,9 +6111,10 @@ Variable Settings
attempts word completion. The default is `off'.
`history-preserve-point'
If set to `on', the history code attempts to place point at
the same location on each history line retrieved with
`previous-history' or `next-history'. The default is `off'.
If set to `on', the history code attempts to place the point
(the current cursor position) at the same location on each
history line retrieved with `previous-history' or
`next-history'. The default is `off'.
`horizontal-scroll-mode'
This variable can be set to either `on' or `off'. Setting it
@@ -9129,17 +9133,17 @@ D.1 Index of Shell Builtin Commands
* test: Bourne Shell Builtins.
(line 212)
* times: Bourne Shell Builtins.
(line 278)
(line 280)
* trap: Bourne Shell Builtins.
(line 283)
(line 285)
* type: Bash Builtins. (line 393)
* typeset: Bash Builtins. (line 424)
* ulimit: Bash Builtins. (line 430)
* umask: Bourne Shell Builtins.
(line 324)
(line 326)
* unalias: Bash Builtins. (line 508)
* unset: Bourne Shell Builtins.
(line 341)
(line 343)
* wait: Job Control Builtins.
(line 73)
@@ -9268,7 +9272,7 @@ D.3 Parameter and Variable Index
* HOME: Bourne Shell Variables.
(line 13)
* horizontal-scroll-mode: Readline Init File Syntax.
(line 101)
(line 102)
* HOSTFILE: Bash Variables. (line 292)
* HOSTNAME: Bash Variables. (line 303)
* HOSTTYPE: Bash Variables. (line 306)
@@ -9276,12 +9280,12 @@ D.3 Parameter and Variable Index
(line 18)
* IGNOREEOF: Bash Variables. (line 309)
* input-meta: Readline Init File Syntax.
(line 108)
(line 109)
* INPUTRC: Bash Variables. (line 319)
* isearch-terminators: Readline Init File Syntax.
(line 115)
(line 116)
* keymap: Readline Init File Syntax.
(line 122)
(line 123)
* LANG: Bash Variables. (line 323)
* LC_ALL: Bash Variables. (line 327)
* LC_COLLATE: Bash Variables. (line 331)
@@ -9298,13 +9302,13 @@ D.3 Parameter and Variable Index
* MAILPATH: Bourne Shell Variables.
(line 27)
* mark-modified-lines: Readline Init File Syntax.
(line 135)
(line 136)
* mark-symlinked-directories: Readline Init File Syntax.
(line 140)
(line 141)
* match-hidden-files: Readline Init File Syntax.
(line 145)
(line 146)
* meta-flag: Readline Init File Syntax.
(line 108)
(line 109)
* OLDPWD: Bash Variables. (line 372)
* OPTARG: Bourne Shell Variables.
(line 34)
@@ -9313,9 +9317,9 @@ D.3 Parameter and Variable Index
(line 38)
* OSTYPE: Bash Variables. (line 379)
* output-meta: Readline Init File Syntax.
(line 152)
(line 153)
* page-completions: Readline Init File Syntax.
(line 157)
(line 158)
* PATH: Bourne Shell Variables.
(line 42)
* PIPESTATUS: Bash Variables. (line 382)
@@ -9336,9 +9340,9 @@ D.3 Parameter and Variable Index
* SHELLOPTS: Bash Variables. (line 437)
* SHLVL: Bash Variables. (line 446)
* show-all-if-ambiguous: Readline Init File Syntax.
(line 167)
(line 168)
* show-all-if-unmodified: Readline Init File Syntax.
(line 173)
(line 174)
* TEXTDOMAIN: Locale Translation. (line 11)
* TEXTDOMAINDIR: Locale Translation. (line 11)
* TIMEFORMAT: Bash Variables. (line 451)
@@ -9346,7 +9350,7 @@ D.3 Parameter and Variable Index
* TMPDIR: Bash Variables. (line 501)
* UID: Bash Variables. (line 505)
* visible-stats: Readline Init File Syntax.
(line 182)
(line 183)

File: bashref.info, Node: Function Index, Next: Concept Index, Prev: Variable Index, Up: Indexes
@@ -9612,132 +9616,132 @@ D.5 Concept Index

Tag Table:
Node: Top1355
Node: Introduction3163
Node: What is Bash?3391
Node: What is a shell?4504
Node: Definitions7044
Node: Basic Shell Features9812
Node: Shell Syntax11031
Node: Shell Operation12061
Node: Quoting13355
Node: Escape Character14658
Node: Single Quotes15143
Node: Double Quotes15491
Node: ANSI-C Quoting16616
Node: Locale Translation17572
Node: Comments18468
Node: Shell Commands19086
Node: Simple Commands19852
Node: Pipelines20483
Node: Lists22358
Node: Compound Commands23989
Node: Looping Constructs24773
Node: Conditional Constructs27220
Node: Command Grouping34692
Node: Shell Functions36141
Node: Shell Parameters40550
Node: Positional Parameters42880
Node: Special Parameters43780
Node: Shell Expansions46744
Node: Brace Expansion48669
Node: Tilde Expansion50995
Node: Shell Parameter Expansion53346
Node: Command Substitution61046
Node: Arithmetic Expansion62379
Node: Process Substitution63229
Node: Word Splitting64279
Node: Filename Expansion65902
Node: Pattern Matching68042
Node: Quote Removal71360
Node: Redirections71655
Node: Executing Commands79385
Node: Simple Command Expansion80055
Node: Command Search and Execution81985
Node: Command Execution Environment83991
Node: Environment86790
Node: Exit Status88450
Node: Signals89654
Node: Shell Scripts91622
Node: Shell Builtin Commands94140
Node: Bourne Shell Builtins95817
Node: Bash Builtins112928
Node: Modifying Shell Behavior132916
Node: The Set Builtin133261
Node: The Shopt Builtin141883
Node: Special Builtins152113
Node: Shell Variables153092
Node: Bourne Shell Variables153532
Node: Bash Variables155513
Node: Bash Features176808
Node: Invoking Bash177691
Node: Bash Startup Files183500
Node: Interactive Shells188359
Node: What is an Interactive Shell?188769
Node: Is this Shell Interactive?189418
Node: Interactive Shell Behavior190233
Node: Bash Conditional Expressions193513
Node: Shell Arithmetic197092
Node: Aliases199838
Node: Arrays202410
Node: The Directory Stack205759
Node: Directory Stack Builtins206473
Node: Printing a Prompt209365
Node: The Restricted Shell212079
Node: Bash POSIX Mode213911
Node: Job Control221670
Node: Job Control Basics222137
Node: Job Control Builtins226646
Node: Job Control Variables230973
Node: Command Line Editing232131
Node: Introduction and Notation233130
Node: Readline Interaction234752
Node: Readline Bare Essentials235943
Node: Readline Movement Commands237732
Node: Readline Killing Commands238697
Node: Readline Arguments240617
Node: Searching241661
Node: Readline Init File243847
Node: Readline Init File Syntax244994
Node: Conditional Init Constructs257325
Node: Sample Init File259858
Node: Bindable Readline Commands262975
Node: Commands For Moving264182
Node: Commands For History265043
Node: Commands For Text268198
Node: Commands For Killing270871
Node: Numeric Arguments273013
Node: Commands For Completion274152
Node: Keyboard Macros277745
Node: Miscellaneous Commands278316
Node: Readline vi Mode283627
Node: Programmable Completion284541
Node: Programmable Completion Builtins290359
Node: Using History Interactively297955
Node: Bash History Facilities298635
Node: Bash History Builtins301549
Node: History Interaction305406
Node: Event Designators308111
Node: Word Designators309126
Node: Modifiers310765
Node: Installing Bash312169
Node: Basic Installation313299
Node: Compilers and Options315991
Node: Compiling For Multiple Architectures316732
Node: Installation Names318396
Node: Specifying the System Type319214
Node: Sharing Defaults319930
Node: Operation Controls320603
Node: Optional Features321561
Node: Reporting Bugs330492
Node: Major Differences From The Bourne Shell331686
Node: Copying This Manual348355
Node: GNU Free Documentation License348625
Node: Indexes371031
Node: Builtin Index371474
Node: Reserved Word Index378007
Node: Variable Index380455
Node: Function Index391619
Node: Concept Index398351
Node: Top1345
Node: Introduction3143
Node: What is Bash?3371
Node: What is a shell?4484
Node: Definitions7024
Node: Basic Shell Features9792
Node: Shell Syntax11011
Node: Shell Operation12041
Node: Quoting13335
Node: Escape Character14638
Node: Single Quotes15123
Node: Double Quotes15471
Node: ANSI-C Quoting16596
Node: Locale Translation17552
Node: Comments18448
Node: Shell Commands19066
Node: Simple Commands19832
Node: Pipelines20463
Node: Lists22338
Node: Compound Commands23969
Node: Looping Constructs24753
Node: Conditional Constructs27200
Node: Command Grouping34672
Node: Shell Functions36151
Node: Shell Parameters40612
Node: Positional Parameters42942
Node: Special Parameters43842
Node: Shell Expansions46806
Node: Brace Expansion48731
Node: Tilde Expansion51057
Node: Shell Parameter Expansion53408
Node: Command Substitution61108
Node: Arithmetic Expansion62441
Node: Process Substitution63291
Node: Word Splitting64341
Node: Filename Expansion65964
Node: Pattern Matching68104
Node: Quote Removal71422
Node: Redirections71717
Node: Executing Commands79447
Node: Simple Command Expansion80117
Node: Command Search and Execution82047
Node: Command Execution Environment84053
Node: Environment86852
Node: Exit Status88512
Node: Signals89716
Node: Shell Scripts91684
Node: Shell Builtin Commands94202
Node: Bourne Shell Builtins95879
Node: Bash Builtins113087
Node: Modifying Shell Behavior133075
Node: The Set Builtin133420
Node: The Shopt Builtin142042
Node: Special Builtins152272
Node: Shell Variables153251
Node: Bourne Shell Variables153691
Node: Bash Variables155672
Node: Bash Features176967
Node: Invoking Bash177850
Node: Bash Startup Files183659
Node: Interactive Shells188518
Node: What is an Interactive Shell?188928
Node: Is this Shell Interactive?189577
Node: Interactive Shell Behavior190392
Node: Bash Conditional Expressions193672
Node: Shell Arithmetic197251
Node: Aliases199997
Node: Arrays202569
Node: The Directory Stack205918
Node: Directory Stack Builtins206632
Node: Printing a Prompt209524
Node: The Restricted Shell212238
Node: Bash POSIX Mode214070
Node: Job Control221829
Node: Job Control Basics222296
Node: Job Control Builtins226805
Node: Job Control Variables231132
Node: Command Line Editing232290
Node: Introduction and Notation233289
Node: Readline Interaction234911
Node: Readline Bare Essentials236102
Node: Readline Movement Commands237891
Node: Readline Killing Commands238856
Node: Readline Arguments240776
Node: Searching241820
Node: Readline Init File244006
Node: Readline Init File Syntax245153
Node: Conditional Init Constructs257528
Node: Sample Init File260061
Node: Bindable Readline Commands263178
Node: Commands For Moving264385
Node: Commands For History265246
Node: Commands For Text268401
Node: Commands For Killing271074
Node: Numeric Arguments273216
Node: Commands For Completion274355
Node: Keyboard Macros277948
Node: Miscellaneous Commands278519
Node: Readline vi Mode283830
Node: Programmable Completion284744
Node: Programmable Completion Builtins290562
Node: Using History Interactively298158
Node: Bash History Facilities298838
Node: Bash History Builtins301752
Node: History Interaction305609
Node: Event Designators308314
Node: Word Designators309329
Node: Modifiers310968
Node: Installing Bash312372
Node: Basic Installation313502
Node: Compilers and Options316194
Node: Compiling For Multiple Architectures316935
Node: Installation Names318599
Node: Specifying the System Type319417
Node: Sharing Defaults320133
Node: Operation Controls320806
Node: Optional Features321764
Node: Reporting Bugs330695
Node: Major Differences From The Bourne Shell331889
Node: Copying This Manual348558
Node: GNU Free Documentation License348828
Node: Indexes371234
Node: Builtin Index371677
Node: Reserved Word Index378210
Node: Variable Index380658
Node: Function Index391822
Node: Concept Index398554

End Tag Table
+16 -16
View File
@@ -1,4 +1,4 @@
This is TeX, Version 3.141592 (Web2C 7.5.4) (format=tex 2006.11.28) 16 JAN 2007 11:15
This is TeX, Version 3.141592 (Web2C 7.5.4) (format=tex 2006.11.28) 11 MAY 2007 16:18
**/Users/chet/src/bash/src/doc/bashref.texi
(/Users/chet/src/bash/src/doc/bashref.texi (./texinfo.tex
Loading texinfo [version 2003-02-03.16]: Basics,
@@ -173,7 +173,7 @@ textttsl pat-tern@texttt ][]) @textttsl command-list @texttt ;;][] esac[][]
[11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25]
[26] [27] [28] [29] [30] [31] [32] Chapter 4 [33] [34] [35] [36] [37] [38]
[39] [40] [41]
Underfull \hbox (badness 5231) in paragraph at lines 3121--3134
Underfull \hbox (badness 5231) in paragraph at lines 3124--3137
@texttt emacs-meta[]@textrm , @texttt emacs-ctlx[]@textrm , @texttt vi[]@textr
m , @texttt vi-move[]@textrm , @texttt vi-command[]@textrm , and
@@ -186,7 +186,7 @@ m , @texttt vi-move[]@textrm , @texttt vi-command[]@textrm , and
.etc.
[42] [43] [44] [45]
Overfull \hbox (43.33536pt too wide) in paragraph at lines 3464--3464
Overfull \hbox (43.33536pt too wide) in paragraph at lines 3467--3467
[]@texttt read [-ers] [-a @textttsl aname@texttt ] [-d @textttsl de-lim@texttt
] [-n @textttsl nchars@texttt ] [-p @textttsl prompt@texttt ] [-t @textttsl ti
me-
@@ -200,7 +200,7 @@ me-
.etc.
[46] [47] [48] [49] [50] [51] [52] [53]
Underfull \hbox (badness 2573) in paragraph at lines 4086--4090
Underfull \hbox (badness 2573) in paragraph at lines 4089--4093
[] []@textrm Error trac-ing is en-abled: com-mand sub-sti-tu-tion, shell
@hbox(7.60416+2.12917)x433.62, glue set 2.95305
@@ -217,7 +217,7 @@ Underfull \hbox (badness 2573) in paragraph at lines 4086--4090
[54] [55] [56] Chapter 5 [57] [58] [59] [60] [61] [62] [63] [64] [65] [66]
Chapter 6 [67] [68]
Overfull \hbox (51.96864pt too wide) in paragraph at lines 4902--4902
Overfull \hbox (51.96864pt too wide) in paragraph at lines 4905--4905
[]@texttt bash [long-opt] [-ir] [-abefhkmnptuvxdBCDHP] [-o @textttsl op-tion@t
exttt ] [-O @textttsl shopt_option@texttt ] [@textttsl ar-
@@ -230,7 +230,7 @@ exttt ] [-O @textttsl shopt_option@texttt ] [@textttsl ar-
.etc.
Overfull \hbox (76.23077pt too wide) in paragraph at lines 4903--4903
Overfull \hbox (76.23077pt too wide) in paragraph at lines 4906--4906
[]@texttt bash [long-opt] [-abefhkmnptuvxdBCDHP] [-o @textttsl op-tion@texttt
] [-O @textttsl shopt_option@texttt ] -c @textttsl string @texttt [@textttsl ar
-
@@ -244,7 +244,7 @@ Overfull \hbox (76.23077pt too wide) in paragraph at lines 4903--4903
.etc.
Overfull \hbox (34.72258pt too wide) in paragraph at lines 4904--4904
Overfull \hbox (34.72258pt too wide) in paragraph at lines 4907--4907
[]@texttt bash [long-opt] -s [-abefhkmnptuvxdBCDHP] [-o @textttsl op-tion@text
tt ] [-O @textttsl shopt_option@texttt ] [@textttsl ar-
@@ -257,7 +257,7 @@ tt ] [-O @textttsl shopt_option@texttt ] [@textttsl ar-
.etc.
[69] [70]
Underfull \hbox (badness 2245) in paragraph at lines 5078--5080
Underfull \hbox (badness 2245) in paragraph at lines 5081--5083
[]@textrm When a lo-gin shell ex-its, Bash reads and ex-e-cutes com-mands from
the file
@@ -270,7 +270,7 @@ the file
.etc.
[71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84]
Underfull \hbox (badness 2521) in paragraph at lines 6192--6195
Underfull \hbox (badness 2521) in paragraph at lines 6195--6198
@textrm `@texttt --enable-strict-posix-default[]@textrm '[] to @texttt configur
e[] @textrm when build-ing (see Sec-tion 10.8
@@ -285,7 +285,7 @@ e[] @textrm when build-ing (see Sec-tion 10.8
Chapter 7 [85] [86] [87] [88] [89]
(/Users/chet/src/bash/src/lib/readline/doc/rluser.texi Chapter 8 [90] [91]
[92] [93] [94] [95]
Underfull \hbox (badness 5231) in paragraph at lines 502--518
Underfull \hbox (badness 5231) in paragraph at lines 503--519
@texttt emacs-meta[]@textrm , @texttt emacs-ctlx[]@textrm , @texttt vi[]@textr
m , @texttt vi-move[]@textrm , @texttt vi-command[]@textrm , and
@@ -298,7 +298,7 @@ m , @texttt vi-move[]@textrm , @texttt vi-command[]@textrm , and
.etc.
[96] [97] [98] [99] [100]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 817--817
Overfull \hbox (26.43913pt too wide) in paragraph at lines 818--818
[]@texttt Meta-Control-h: backward-kill-word Text after the function name is i
gnored[]
@@ -311,7 +311,7 @@ gnored[]
.etc.
[101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112]
Overfull \hbox (17.80585pt too wide) in paragraph at lines 1666--1666
Overfull \hbox (17.80585pt too wide) in paragraph at lines 1667--1667
[]@texttt complete [-abcdefgjksuv] [-o @textttsl comp-option@texttt ] [-A @tex
tttsl ac-tion@texttt ] [-G @textttsl glob-
@@ -324,7 +324,7 @@ tttsl ac-tion@texttt ] [-G @textttsl glob-
.etc.
[113] [114]
Underfull \hbox (badness 2753) in paragraph at lines 1768--1771
Underfull \hbox (badness 2753) in paragraph at lines 1769--1772
@texttt hostname[]@textrm Hostnames, as taken from the file spec-i-fied by
@hbox(7.60416+2.12917)x433.62, glue set 3.02202
@@ -337,7 +337,7 @@ Underfull \hbox (badness 2753) in paragraph at lines 1768--1771
[115]) (/Users/chet/src/bash/src/lib/readline/doc/hsuser.texi Chapter 9
[116] [117] [118] [119] [120]) Chapter 10 [121] [122] [123] [124] [125]
Underfull \hbox (badness 2772) in paragraph at lines 6788--6792
Underfull \hbox (badness 2772) in paragraph at lines 6791--6795
[]@textrm Enable sup-port for large files (@texttt http://www.sas.com/standard
s/large_
@@ -374,10 +374,10 @@ Overfull \vbox (45.46959pt too high) has occurred while \output is active
Here is how much of TeX's memory you used:
1735 strings out of 97980
23708 string characters out of 1221004
55365 words of memory out of 1000000
55355 words of memory out of 1000000
2586 multiletter control sequences out of 10000+50000
31953 words of font info for 111 fonts, out of 500000 for 2000
19 hyphenation exceptions out of 1000
15i,8n,11p,269b,474s stack positions out of 1500i,500n,5000p,200000b,5000s
Output written on bashref.dvi (160 pages, 611796 bytes).
Output written on bashref.dvi (160 pages, 612084 bytes).
+332 -327
View File
@@ -11,7 +11,7 @@
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips -D 600 -t letter -o bashref.ps bashref.dvi
%DVIPSParameters: dpi=600
%DVIPSSource: TeX output 2007.01.16:1115
%DVIPSSource: TeX output 2007.05.11:1618
%%BeginProcSet: tex.pro 0 0
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -4560,7 +4560,7 @@ letter
TeXDict begin 1 0 bop 150 1318 a Fu(Bash)64 b(Reference)j(Man)-5
b(ual)p 150 1385 3600 34 v 2361 1481 a Ft(Reference)31
b(Do)s(cumen)m(tation)i(for)d(Bash)2428 1589 y(Edition)h(3.2,)g(for)f
Fs(Bash)g Ft(V)-8 b(ersion)31 b(3.2.)3218 1697 y(Jan)m(uary)f(2007)150
Fs(Bash)g Ft(V)-8 b(ersion)31 b(3.2.)3364 1697 y(Ma)m(y)g(2007)150
4935 y Fr(Chet)45 b(Ramey)-11 b(,)46 b(Case)g(W)-11 b(estern)46
b(Reserv)l(e)g(Univ)l(ersit)l(y)150 5068 y(Brian)f(F)-11
b(o)l(x,)45 b(F)-11 b(ree)45 b(Soft)l(w)l(are)h(F)-11
@@ -4568,21 +4568,21 @@ b(oundation)p 150 5141 3600 17 v eop end
%%Page: 2 2
TeXDict begin 2 1 bop 150 2889 a Ft(This)35 b(text)h(is)g(a)g(brief)f
(description)h(of)f(the)h(features)g(that)g(are)g(presen)m(t)g(in)f
(the)h(Bash)f(shell)h(\(v)m(ersion)150 2999 y(3.2,)c(12)f(Jan)m(uary)f
(2007\).)150 3133 y(This)j(is)g(Edition)g(3.2,)j(last)e(up)s(dated)e
(12)i(Jan)m(uary)f(2007,)j(of)e Fq(The)e(GNU)i(Bash)g(Reference)g(Man)m
(ual)p Ft(,)150 3243 y(for)c Fs(Bash)p Ft(,)g(V)-8 b(ersion)31
b(3.2.)150 3377 y(Cop)m(yrigh)m(t)602 3374 y(c)577 3377
y Fp(\015)f Ft(1988-2005)k(F)-8 b(ree)32 b(Soft)m(w)m(are)f(F)-8
b(oundation,)32 b(Inc.)150 3512 y(P)m(ermission)g(is)h(gran)m(ted)g(to)
f(mak)m(e)i(and)d(distribute)h(v)m(erbatim)h(copies)g(of)f(this)g(man)m
(ual)h(pro)m(vided)f(the)150 3621 y(cop)m(yrigh)m(t)g(notice)f(and)f
(this)g(p)s(ermission)g(notice)h(are)g(preserv)m(ed)f(on)h(all)g
(copies.)390 3756 y(P)m(ermission)k(is)h(gran)m(ted)f(to)h(cop)m(y)-8
b(,)38 b(distribute)d(and/or)g(mo)s(dify)f(this)h(do)s(cumen)m(t)g
(under)390 3866 y(the)j(terms)g(of)g(the)g(GNU)h(F)-8
b(ree)39 b(Do)s(cumen)m(tation)h(License,)g(V)-8 b(ersion)39
b(1.2)g(or)f(an)m(y)g(later)390 3975 y(v)m(ersion)28
(the)h(Bash)f(shell)h(\(v)m(ersion)150 2999 y(3.2,)c(1)e(Ma)m(y)i
(2007\).)150 3133 y(This)38 b(is)g(Edition)h(3.2,)j(last)d(up)s(dated)e
(1)i(Ma)m(y)h(2007,)j(of)38 b Fq(The)g(GNU)h(Bash)g(Reference)g(Man)m
(ual)p Ft(,)j(for)150 3243 y Fs(Bash)p Ft(,)29 b(V)-8
b(ersion)31 b(3.2.)150 3377 y(Cop)m(yrigh)m(t)602 3374
y(c)577 3377 y Fp(\015)f Ft(1988-2005)k(F)-8 b(ree)32
b(Soft)m(w)m(are)f(F)-8 b(oundation,)32 b(Inc.)150 3512
y(P)m(ermission)g(is)h(gran)m(ted)g(to)f(mak)m(e)i(and)d(distribute)h
(v)m(erbatim)h(copies)g(of)f(this)g(man)m(ual)h(pro)m(vided)f(the)150
3621 y(cop)m(yrigh)m(t)g(notice)f(and)f(this)g(p)s(ermission)g(notice)h
(are)g(preserv)m(ed)f(on)h(all)g(copies.)390 3756 y(P)m(ermission)k(is)
h(gran)m(ted)f(to)h(cop)m(y)-8 b(,)38 b(distribute)d(and/or)g(mo)s
(dify)f(this)h(do)s(cumen)m(t)g(under)390 3866 y(the)j(terms)g(of)g
(the)g(GNU)h(F)-8 b(ree)39 b(Do)s(cumen)m(tation)h(License,)g(V)-8
b(ersion)39 b(1.2)g(or)f(an)m(y)g(later)390 3975 y(v)m(ersion)28
b(published)d(b)m(y)j(the)f(F)-8 b(ree)29 b(Soft)m(w)m(are)f(F)-8
b(oundation;)30 b(with)d(no)g(In)m(v)-5 b(arian)m(t)28
b(Sections,)390 4085 y(with)i(the)h(F)-8 b(ron)m(t-Co)m(v)m(er)33
@@ -5770,60 +5770,61 @@ y(the)34 b(p)s(ortion)f(of)h(the)f(string)h(matc)m(hing)g(the)g(en)m
408 y(of)39 b Fs(BASH_REMATCH)c Ft(with)j(index)g Fq(n)f
Ft(is)i(the)f(p)s(ortion)g(of)h(the)f(string)h(matc)m(hing)g(the)g
Fq(n)p Ft(th)630 518 y(paren)m(thesized)31 b(sub)s(expression.)630
662 y(Expressions)23 b(ma)m(y)h(b)s(e)e(com)m(bined)i(using)f(the)h
659 y(Expressions)23 b(ma)m(y)h(b)s(e)e(com)m(bined)i(using)f(the)h
(follo)m(wing)h(op)s(erators,)g(listed)f(in)f(decreasing)630
772 y(order)30 b(of)g(precedence:)630 950 y Fs(\()g Fj(expression)38
b Fs(\))1110 1060 y Ft(Returns)30 b(the)h(v)-5 b(alue)31
768 y(order)30 b(of)g(precedence:)630 940 y Fs(\()g Fj(expression)38
b Fs(\))1110 1049 y Ft(Returns)30 b(the)h(v)-5 b(alue)31
b(of)g Fq(expression)p Ft(.)42 b(This)30 b(ma)m(y)i(b)s(e)e(used)g(to)i
(o)m(v)m(erride)g(the)1110 1170 y(normal)e(precedence)h(of)g(op)s
(erators.)630 1348 y Fs(!)f Fj(expression)1110 1458 y
(o)m(v)m(erride)g(the)1110 1159 y(normal)e(precedence)h(of)g(op)s
(erators.)630 1331 y Fs(!)f Fj(expression)1110 1440 y
Ft(T)-8 b(rue)30 b(if)g Fq(expression)g Ft(is)h(false.)630
1637 y Fj(expression1)38 b Fs(&&)30 b Fj(expression2)1110
1746 y Ft(T)-8 b(rue)30 b(if)g(b)s(oth)g Fq(expression1)38
1612 y Fj(expression1)38 b Fs(&&)30 b Fj(expression2)1110
1721 y Ft(T)-8 b(rue)30 b(if)g(b)s(oth)g Fq(expression1)38
b Ft(and)29 b Fq(expression2)38 b Ft(are)31 b(true.)630
1925 y Fj(expression1)38 b Fs(||)30 b Fj(expression2)1110
2034 y Ft(T)-8 b(rue)30 b(if)g(either)h Fq(expression1)38
1893 y Fj(expression1)38 b Fs(||)30 b Fj(expression2)1110
2003 y Ft(T)-8 b(rue)30 b(if)g(either)h Fq(expression1)38
b Ft(or)30 b Fq(expression2)38 b Ft(is)30 b(true.)630
2213 y(The)25 b Fs(&&)g Ft(and)g Fs(||)f Ft(op)s(erators)i(do)f(not)h
2174 y(The)25 b Fs(&&)g Ft(and)g Fs(||)f Ft(op)s(erators)i(do)f(not)h
(ev)-5 b(aluate)27 b Fq(expression2)33 b Ft(if)26 b(the)f(v)-5
b(alue)26 b(of)g Fq(expression1)630 2323 y Ft(is)k(su\016cien)m(t)h(to)
b(alue)26 b(of)g Fq(expression1)630 2284 y Ft(is)k(su\016cien)m(t)h(to)
g(determine)g(the)f(return)g(v)-5 b(alue)31 b(of)f(the)h(en)m(tire)g
(conditional)h(expression.)150 2585 y Fk(3.2.4.3)63 b(Grouping)43
b(Commands)275 2849 y Ft(Bash)22 b(pro)m(vides)g(t)m(w)m(o)h(w)m(a)m
(conditional)h(expression.)150 2532 y Fk(3.2.4.3)63 b(Grouping)43
b(Commands)275 2789 y Ft(Bash)22 b(pro)m(vides)g(t)m(w)m(o)h(w)m(a)m
(ys)g(to)g(group)f(a)g(list)h(of)f(commands)g(to)g(b)s(e)g(executed)h
(as)f(a)h(unit.)37 b(When)22 b(com-)150 2958 y(mands)30
(as)f(a)h(unit.)37 b(When)22 b(com-)150 2898 y(mands)30
b(are)i(group)s(ed,)f(redirections)h(ma)m(y)g(b)s(e)e(applied)i(to)g
(the)f(en)m(tire)h(command)g(list.)44 b(F)-8 b(or)32
b(example,)150 3068 y(the)f(output)f(of)g(all)h(the)g(commands)f(in)g
b(example,)150 3008 y(the)f(output)f(of)g(all)h(the)g(commands)f(in)g
(the)h(list)g(ma)m(y)g(b)s(e)e(redirected)i(to)g(a)g(single)g(stream.)
150 3256 y Fs(\(\))870 3400 y(\()47 b Fj(list)58 b Fs(\))630
3545 y Ft(Placing)30 b(a)f(list)g(of)g(commands)f(b)s(et)m(w)m(een)i
150 3186 y Fs(\(\))870 3326 y(\()47 b Fj(list)58 b Fs(\))630
3467 y Ft(Placing)30 b(a)f(list)g(of)g(commands)f(b)s(et)m(w)m(een)i
(paren)m(theses)e(causes)i(a)f(subshell)e(en)m(vironmen)m(t)630
3654 y(to)k(b)s(e)e(created)j(\(see)f(Section)g(3.7.3)h([Command)d
(Execution)i(En)m(vironmen)m(t],)g(page)f(30\),)630 3764
3576 y(to)k(b)s(e)e(created)j(\(see)f(Section)g(3.7.3)h([Command)d
(Execution)i(En)m(vironmen)m(t],)g(page)f(30\),)630 3686
y(and)d(eac)m(h)i(of)e(the)h(commands)f(in)g Fq(list)j
Ft(to)f(b)s(e)e(executed)h(in)f(that)h(subshell.)39 b(Since)28
b(the)f Fq(list)630 3873 y Ft(is)i(executed)g(in)f(a)h(subshell,)g(v)-5
b(the)f Fq(list)630 3796 y Ft(is)i(executed)g(in)f(a)h(subshell,)g(v)-5
b(ariable)29 b(assignmen)m(ts)g(do)g(not)g(remain)f(in)g(e\013ect)j
(after)e(the)630 3983 y(subshell)g(completes.)150 4162
y Fs({})870 4306 y({)47 b Fj(list)11 b Fs(;)46 b(})630
4450 y Ft(Placing)30 b(a)g(list)g(of)g(commands)f(b)s(et)m(w)m(een)h
(after)e(the)630 3905 y(subshell)g(completes.)150 4077
y Fs({})870 4217 y({)47 b Fj(list)11 b Fs(;)46 b(})630
4358 y Ft(Placing)30 b(a)g(list)g(of)g(commands)f(b)s(et)m(w)m(een)h
(curly)f(braces)g(causes)h(the)f(list)h(to)g(b)s(e)f(executed)630
4560 y(in)d(the)h(curren)m(t)g(shell)f(con)m(text.)42
4468 y(in)d(the)h(curren)m(t)g(shell)f(con)m(text.)42
b(No)27 b(subshell)f(is)g(created.)41 b(The)26 b(semicolon)i(\(or)f
(newline\))630 4669 y(follo)m(wing)32 b Fq(list)h Ft(is)d(required.)275
4857 y(In)i(addition)h(to)g(the)g(creation)i(of)e(a)g(subshell,)g
(there)g(is)g(a)g(subtle)f(di\013erence)i(b)s(et)m(w)m(een)f(these)h(t)
m(w)m(o)150 4967 y(constructs)43 b(due)f(to)h(historical)h(reasons.)77
b(The)42 b(braces)h(are)g Fs(reserved)28 b(words)p Ft(,)45
b(so)d(they)h(m)m(ust)g(b)s(e)150 5077 y(separated)33
b(from)f(the)g Fq(list)k Ft(b)m(y)c Fs(blank)p Ft(s.)45
b(The)32 b(paren)m(theses)h(are)g Fs(operators)p Ft(,)d(and)i(are)h
(recognized)h(as)150 5186 y(separate)d(tok)m(ens)h(b)m(y)e(the)h(shell)
f(ev)m(en)h(if)f(they)h(are)g(not)f(separated)h(from)f(the)h
Fq(list)i Ft(b)m(y)d(whitespace.)275 5340 y(The)f(exit)j(status)e(of)h
(b)s(oth)f(of)g(these)h(constructs)g(is)f(the)h(exit)g(status)f(of)h
Fq(list)p Ft(.)p eop end
(newline\))630 4577 y(follo)m(wing)32 b Fq(list)h Ft(is)d(required.)275
4755 y(In)44 b(addition)h(to)h(the)f(creation)i(of)e(a)g(subshell,)j
(there)e(is)f(a)g(subtle)g(di\013erence)h(b)s(et)m(w)m(een)f(these)150
4864 y(t)m(w)m(o)c(constructs)e(due)g(to)g(historical)i(reasons.)67
b(The)39 b(braces)g(are)h Fs(reserved)28 b(words)p Ft(,)40
b(so)g(they)f(m)m(ust)150 4974 y(b)s(e)d(separated)h(from)f(the)g
Fq(list)j Ft(b)m(y)e Fs(blank)p Ft(s)e(or)h(other)h(shell)f(metac)m
(haracters.)62 b(The)36 b(paren)m(theses)h(are)150 5084
y Fs(operators)p Ft(,)23 b(and)h(are)g(recognized)i(as)e(separate)i
(tok)m(ens)f(b)m(y)f(the)g(shell)h(ev)m(en)g(if)f(they)g(are)h(not)f
(separated)150 5193 y(from)30 b(the)g Fq(list)j Ft(b)m(y)e(whitespace.)
275 5340 y(The)e(exit)j(status)e(of)h(b)s(oth)f(of)g(these)h
(constructs)g(is)f(the)h(exit)g(status)f(of)h Fq(list)p
Ft(.)p eop end
%%Page: 14 20
TeXDict begin 14 19 bop 150 -116 a Ft(14)2572 b(Bash)31
b(Reference)g(Man)m(ual)150 299 y Fr(3.3)68 b(Shell)45
@@ -5873,12 +5874,13 @@ i(in)e(the)g(b)s(o)s(dy)-8 b(.)275 2856 y(Note)22 b(that)f(for)f
(dy)f(b)m(y)h Fs(blank)p Ft(s)f(or)h(newlines.)62 b(This)150
3075 y(is)38 b(b)s(ecause)g(the)h(braces)f(are)h(reserv)m(ed)f(w)m
(ords)g(and)f(are)i(only)f(recognized)i(as)e(suc)m(h)g(when)f(they)i
(are)150 3185 y(separated)e(b)m(y)g(whitespace.)61 b(Also,)39
b(when)d(using)g(the)h(braces,)i(the)e Fq(list)j Ft(m)m(ust)c(b)s(e)g
(terminated)i(b)m(y)f(a)150 3294 y(semicolon,)32 b(a)f(`)p
Fs(&)p Ft(',)f(or)h(a)g(newline.)275 3440 y(When)h(a)i(function)f(is)g
(executed,)i(the)e(argumen)m(ts)h(to)g(the)f(function)g(b)s(ecome)g
(the)h(p)s(ositional)g(pa-)150 3550 y(rameters)42 b(during)e(its)i
(are)150 3185 y(separated)26 b(from)f(the)h(command)f(list)i(b)m(y)e
(whitespace)h(or)g(another)g(shell)g(metac)m(haracter.)41
b(Also,)28 b(when)150 3294 y(using)i(the)g(braces,)h(the)g
Fq(list)i Ft(m)m(ust)d(b)s(e)g(terminated)h(b)m(y)f(a)h(semicolon,)h(a)
e(`)p Fs(&)p Ft(',)h(or)g(a)f(newline.)275 3440 y(When)i(a)i(function)f
(is)g(executed,)i(the)e(argumen)m(ts)h(to)g(the)f(function)g(b)s(ecome)
g(the)h(p)s(ositional)g(pa-)150 3550 y(rameters)42 b(during)e(its)i
(execution)h(\(see)f(Section)g(3.4.1)h([P)m(ositional)h(P)m
(arameters],)i(page)c(15\).)75 b(The)150 3660 y(sp)s(ecial)37
b(parameter)f(`)p Fs(#)p Ft(')g(that)h(expands)e(to)i(the)f(n)m(um)m(b)
@@ -7666,64 +7668,67 @@ b(If)32 b Fq(n)g Ft(is)h(not)f(supplied,)h(it)g(is)f(assumed)g(to)h(b)s
(e)f(1.)48 b(The)32 b(return)g(status)h(is)f(zero)630
408 y(unless)e Fq(n)f Ft(is)i(greater)g(than)g Fs($#)e
Ft(or)i(less)f(than)h(zero,)g(non-zero)g(otherwise.)150
578 y Fs(test)150 687 y([)432 b Ft(Ev)-5 b(aluate)32
558 y Fs(test)150 667 y([)432 b Ft(Ev)-5 b(aluate)32
b(a)f(conditional)h(expression)e Fq(expr)p Ft(.)41 b(Eac)m(h)31
b(op)s(erator)g(and)f(op)s(erand)g(m)m(ust)h(b)s(e)f(a)630
797 y(separate)d(argumen)m(t.)40 b(Expressions)25 b(are)i(comp)s(osed)e
777 y(separate)d(argumen)m(t.)40 b(Expressions)25 b(are)i(comp)s(osed)e
(of)i(the)f(primaries)g(describ)s(ed)f(b)s(elo)m(w)630
907 y(in)34 b(Section)g(6.4)h([Bash)g(Conditional)f(Expressions],)h
887 y(in)34 b(Section)g(6.4)h([Bash)g(Conditional)f(Expressions],)h
(page)g(75.)52 b Fs(test)33 b Ft(do)s(es)g(not)h(accept)630
1016 y(an)m(y)27 b(options,)i(nor)d(do)s(es)h(it)g(accept)i(and)d
996 y(an)m(y)27 b(options,)i(nor)d(do)s(es)h(it)g(accept)i(and)d
(ignore)i(an)f(argumen)m(t)g(of)g(`)p Fs(--)p Ft(')g(as)h(signifying)f
(the)630 1126 y(end)j(of)g(options.)630 1265 y(When)g(the)h
(the)630 1106 y(end)j(of)g(options.)630 1235 y(When)g(the)h
Fs([)f Ft(form)g(is)g(used,)g(the)g(last)i(argumen)m(t)e(to)i(the)e
(command)g(m)m(ust)h(b)s(e)e(a)i Fs(])p Ft(.)630 1405
(command)g(m)m(ust)h(b)s(e)e(a)i Fs(])p Ft(.)630 1365
y(Expressions)23 b(ma)m(y)h(b)s(e)e(com)m(bined)i(using)f(the)h(follo)m
(wing)h(op)s(erators,)g(listed)f(in)f(decreasing)630
1514 y(order)30 b(of)g(precedence.)630 1684 y Fs(!)g
Fj(expr)210 b Ft(T)-8 b(rue)30 b(if)g Fq(expr)37 b Ft(is)30
b(false.)630 1853 y Fs(\()g Fj(expr)40 b Fs(\))122 b
Ft(Returns)23 b(the)i(v)-5 b(alue)25 b(of)f Fq(expr)p
1474 y(order)30 b(of)h(precedence.)43 b(The)30 b(ev)-5
b(aluation)33 b(dep)s(ends)28 b(on)j(the)g(n)m(um)m(b)s(er)f(of)h
(argumen)m(ts;)g(see)630 1584 y(b)s(elo)m(w.)630 1733
y Fs(!)f Fj(expr)210 b Ft(T)-8 b(rue)30 b(if)g Fq(expr)37
b Ft(is)30 b(false.)630 1883 y Fs(\()g Fj(expr)40 b Fs(\))122
b Ft(Returns)23 b(the)i(v)-5 b(alue)25 b(of)f Fq(expr)p
Ft(.)38 b(This)24 b(ma)m(y)h(b)s(e)e(used)h(to)h(o)m(v)m(erride)g(the)g
(normal)1110 1963 y(precedence)31 b(of)f(op)s(erators.)630
2132 y Fj(expr1)39 b Fs(-a)30 b Fj(expr2)1110 2242 y
(normal)1110 1993 y(precedence)31 b(of)f(op)s(erators.)630
2142 y Fj(expr1)39 b Fs(-a)30 b Fj(expr2)1110 2252 y
Ft(T)-8 b(rue)30 b(if)g(b)s(oth)g Fq(expr1)37 b Ft(and)30
b Fq(expr2)38 b Ft(are)30 b(true.)630 2411 y Fj(expr1)39
b Fs(-o)30 b Fj(expr2)1110 2521 y Ft(T)-8 b(rue)30 b(if)g(either)h
b Fq(expr2)38 b Ft(are)30 b(true.)630 2401 y Fj(expr1)39
b Fs(-o)30 b Fj(expr2)1110 2511 y Ft(T)-8 b(rue)30 b(if)g(either)h
Fq(expr1)38 b Ft(or)30 b Fq(expr2)37 b Ft(is)31 b(true.)630
2690 y(The)37 b Fs(test)f Ft(and)g Fs([)h Ft(builtins)g(ev)-5
2660 y(The)37 b Fs(test)f Ft(and)g Fs([)h Ft(builtins)g(ev)-5
b(aluate)39 b(conditional)f(expressions)f(using)g(a)g(set)h(of)f(rules)
630 2800 y(based)30 b(on)g(the)h(n)m(um)m(b)s(er)e(of)h(argumen)m(ts.)
630 2969 y(0)h(argumen)m(ts)1110 3078 y(The)f(expression)g(is)g(false.)
630 3248 y(1)h(argumen)m(t)1110 3357 y(The)f(expression)g(is)g(true)h
630 2770 y(based)30 b(on)g(the)h(n)m(um)m(b)s(er)e(of)h(argumen)m(ts.)
630 2919 y(0)h(argumen)m(ts)1110 3029 y(The)f(expression)g(is)g(false.)
630 3178 y(1)h(argumen)m(t)1110 3288 y(The)f(expression)g(is)g(true)h
(if)f(and)g(only)g(if)h(the)f(argumen)m(t)h(is)f(not)h(n)m(ull.)630
3527 y(2)g(argumen)m(ts)1110 3636 y(If)f(the)h(\014rst)f(argumen)m(t)h
3437 y(2)g(argumen)m(ts)1110 3547 y(If)f(the)h(\014rst)f(argumen)m(t)h
(is)g(`)p Fs(!)p Ft(',)g(the)g(expression)g(is)g(true)f(if)h(and)f
(only)h(if)g(the)1110 3746 y(second)j(argumen)m(t)f(is)h(n)m(ull.)50
(only)h(if)g(the)1110 3656 y(second)j(argumen)m(t)f(is)h(n)m(ull.)50
b(If)33 b(the)h(\014rst)e(argumen)m(t)i(is)g(one)g(of)f(the)h(unary)
1110 3856 y(conditional)42 b(op)s(erators)f(\(see)g(Section)h(6.4)f
([Bash)g(Conditional)g(Expres-)1110 3965 y(sions],)34
1110 3766 y(conditional)42 b(op)s(erators)f(\(see)g(Section)h(6.4)f
([Bash)g(Conditional)g(Expres-)1110 3875 y(sions],)34
b(page)f(75\),)i(the)e(expression)f(is)h(true)g(if)g(the)g(unary)e
(test)j(is)f(true.)47 b(If)1110 4075 y(the)33 b(\014rst)g(argumen)m(t)h
(test)j(is)f(true.)47 b(If)1110 3985 y(the)33 b(\014rst)g(argumen)m(t)h
(is)f(not)g(a)h(v)-5 b(alid)34 b(unary)e(op)s(erator,)i(the)g
(expression)f(is)1110 4184 y(false.)630 4354 y(3)e(argumen)m(ts)1110
4463 y(If)k(the)g(second)g(argumen)m(t)g(is)g(one)h(of)f(the)g(binary)f
(conditional)j(op)s(erators)1110 4573 y(\(see)23 b(Section)g(6.4)f
(expression)f(is)1110 4095 y(false.)630 4244 y(3)e(argumen)m(ts)1110
4354 y(If)k(the)g(second)g(argumen)m(t)g(is)g(one)h(of)f(the)g(binary)f
(conditional)j(op)s(erators)1110 4463 y(\(see)23 b(Section)g(6.4)f
([Bash)h(Conditional)f(Expressions],)h(page)g(75\),)i(the)d(result)1110
4682 y(of)44 b(the)h(expression)f(is)g(the)g(result)g(of)h(the)f
(binary)g(test)h(using)e(the)i(\014rst)1110 4792 y(and)33
b(third)g(argumen)m(ts)h(as)g(op)s(erands.)50 b(If)33
b(the)h(\014rst)g(argumen)m(t)g(is)g(`)p Fs(!)p Ft(',)h(the)1110
4902 y(v)-5 b(alue)25 b(is)g(the)g(negation)h(of)f(the)g(t)m(w)m
(o-argumen)m(t)i(test)f(using)e(the)h(second)g(and)1110
5011 y(third)32 b(argumen)m(ts.)47 b(If)33 b(the)f(\014rst)g(argumen)m
(t)h(is)g(exactly)h(`)p Fs(\()p Ft(')f(and)f(the)h(third)1110
5121 y(argumen)m(t)h(is)g(exactly)h(`)p Fs(\))p Ft(',)g(the)f(result)f
(is)h(the)g(one-argumen)m(t)g(test)h(of)f(the)1110 5230
y(second)d(argumen)m(t.)45 b(Otherwise,)31 b(the)h(expression)f(is)g
(false.)44 b(The)31 b(`)p Fs(-a)p Ft(')h(and)1110 5340
y(`)p Fs(-o)p Ft(')e(op)s(erators)h(are)g(considered)f(binary)f(op)s
(erators)i(in)f(this)g(case.)p eop end
4573 y(of)44 b(the)h(expression)f(is)g(the)g(result)g(of)h(the)f
(binary)g(test)h(using)e(the)i(\014rst)1110 4682 y(and)31
b(third)g(argumen)m(ts)i(as)f(op)s(erands.)44 b(The)31
b(`)p Fs(-a)p Ft(')h(and)g(`)p Fs(-o)p Ft(')f(op)s(erators)i(are)1110
4792 y(considered)25 b(binary)g(op)s(erators)g(when)f(there)i(are)f
(three)h(argumen)m(ts.)39 b(If)25 b(the)1110 4902 y(\014rst)j(argumen)m
(t)h(is)g(`)p Fs(!)p Ft(',)h(the)f(v)-5 b(alue)29 b(is)g(the)g
(negation)i(of)e(the)g(t)m(w)m(o-argumen)m(t)1110 5011
y(test)38 b(using)f(the)g(second)g(and)g(third)f(argumen)m(ts.)61
b(If)37 b(the)g(\014rst)f(argumen)m(t)1110 5121 y(is)j(exactly)i(`)p
Fs(\()p Ft(')f(and)f(the)g(third)g(argumen)m(t)h(is)f(exactly)i(`)p
Fs(\))p Ft(',)h(the)e(result)f(is)1110 5230 y(the)46
b(one-argumen)m(t)g(test)h(of)f(the)f(second)h(argumen)m(t.)86
b(Otherwise,)50 b(the)1110 5340 y(expression)30 b(is)h(false.)p
eop end
%%Page: 40 46
TeXDict begin 40 45 bop 150 -116 a Ft(40)2572 b(Bash)31
b(Reference)g(Man)m(ual)630 299 y(4)g(argumen)m(ts)1110
@@ -11413,319 +11418,319 @@ f(the)i(eigh)m(th)g(bit)f(and)g(pre\014xing)f(an)1110
643 V 1268 625 a Fg(i)1332 628 y Ft(c)m(haracter,)36
b(con)m(v)m(erting)g(them)e(to)g(a)h(meta-pre\014xed)f(k)m(ey)g
(sequence.)1110 737 y(The)c(default)g(v)-5 b(alue)31
b(is)g(`)p Fs(on)p Ft('.)630 883 y Fs(disable-completion)1110
993 y Ft(If)36 b(set)h(to)h(`)p Fs(On)p Ft(',)g(Readline)f(will)g
b(is)g(`)p Fs(on)p Ft('.)630 902 y Fs(disable-completion)1110
1011 y Ft(If)36 b(set)h(to)h(`)p Fs(On)p Ft(',)g(Readline)f(will)g
(inhibit)f(w)m(ord)h(completion.)60 b(Completion)1110
1103 y(c)m(haracters)28 b(will)e(b)s(e)f(inserted)h(in)m(to)h(the)g
1121 y(c)m(haracters)28 b(will)e(b)s(e)f(inserted)h(in)m(to)h(the)g
(line)f(as)g(if)g(they)h(had)e(b)s(een)g(mapp)s(ed)1110
1212 y(to)31 b Fs(self-insert)p Ft(.)38 b(The)30 b(default)g(is)h(`)p
Fs(off)p Ft('.)630 1358 y Fs(editing-mode)1110 1468 y
1230 y(to)31 b Fs(self-insert)p Ft(.)38 b(The)30 b(default)g(is)h(`)p
Fs(off)p Ft('.)630 1395 y Fs(editing-mode)1110 1504 y
Ft(The)d Fs(editing-mode)e Ft(v)-5 b(ariable)29 b(con)m(trols)h(whic)m
(h)e(default)h(set)h(of)e(k)m(ey)i(bind-)1110 1577 y(ings)25
(h)e(default)h(set)h(of)e(k)m(ey)i(bind-)1110 1614 y(ings)25
b(is)g(used.)38 b(By)26 b(default,)g(Readline)g(starts)f(up)f(in)h
(Emacs)g(editing)h(mo)s(de,)1110 1687 y(where)j(the)g(k)m(eystrok)m(es)
(Emacs)g(editing)h(mo)s(de,)1110 1724 y(where)j(the)g(k)m(eystrok)m(es)
i(are)e(most)h(similar)f(to)h(Emacs.)40 b(This)29 b(v)-5
b(ariable)30 b(can)1110 1797 y(b)s(e)g(set)h(to)g(either)g(`)p
Fs(emacs)p Ft(')e(or)h(`)p Fs(vi)p Ft('.)630 1943 y Fs(enable-keypad)
1110 2052 y Ft(When)23 b(set)h(to)g(`)p Fs(on)p Ft(',)h(Readline)f
b(ariable)30 b(can)1110 1833 y(b)s(e)g(set)h(to)g(either)g(`)p
Fs(emacs)p Ft(')e(or)h(`)p Fs(vi)p Ft('.)630 1998 y Fs(enable-keypad)
1110 2107 y Ft(When)23 b(set)h(to)g(`)p Fs(on)p Ft(',)h(Readline)f
(will)g(try)f(to)h(enable)g(the)f(application)i(k)m(eypad)1110
2162 y(when)h(it)h(is)f(called.)41 b(Some)27 b(systems)f(need)h(this)f
(to)h(enable)g(the)g(arro)m(w)g(k)m(eys.)1110 2271 y(The)j(default)g
(is)h(`)p Fs(off)p Ft('.)630 2418 y Fs(expand-tilde)1110
2527 y Ft(If)c(set)h(to)h(`)p Fs(on)p Ft(',)f(tilde)g(expansion)g(is)f
(p)s(erformed)f(when)h(Readline)h(attempts)1110 2637
2217 y(when)h(it)h(is)f(called.)41 b(Some)27 b(systems)f(need)h(this)f
(to)h(enable)g(the)g(arro)m(w)g(k)m(eys.)1110 2326 y(The)j(default)g
(is)h(`)p Fs(off)p Ft('.)630 2491 y Fs(expand-tilde)1110
2600 y Ft(If)c(set)h(to)h(`)p Fs(on)p Ft(',)f(tilde)g(expansion)g(is)f
(p)s(erformed)f(when)h(Readline)h(attempts)1110 2710
y(w)m(ord)i(completion.)42 b(The)30 b(default)g(is)h(`)p
Fs(off)p Ft('.)630 2783 y Fs(history-preserve-point)1110
2892 y Ft(If)e(set)i(to)f(`)p Fs(on)p Ft(',)g(the)g(history)g(co)s(de)g
(attempts)g(to)h(place)f(p)s(oin)m(t)g(at)h(the)f(same)1110
3002 y(lo)s(cation)35 b(on)e(eac)m(h)i(history)e(line)h(retriev)m(ed)g
(with)f Fs(previous-history)c Ft(or)1110 3112 y Fs(next-history)p
Ft(.)37 b(The)30 b(default)h(is)f(`)p Fs(off)p Ft('.)630
3258 y Fs(horizontal-scroll-mode)1110 3367 y Ft(This)35
b(v)-5 b(ariable)37 b(can)f(b)s(e)f(set)h(to)h(either)f(`)p
Fs(on)p Ft(')g(or)g(`)p Fs(off)p Ft('.)57 b(Setting)36
b(it)g(to)h(`)p Fs(on)p Ft(')1110 3477 y(means)26 b(that)h(the)f(text)h
Fs(off)p Ft('.)630 2874 y Fs(history-preserve-point)1110
2984 y Ft(If)41 b(set)h(to)h(`)p Fs(on)p Ft(',)i(the)c(history)h(co)s
(de)g(attempts)h(to)f(place)h(the)f(p)s(oin)m(t)f(\(the)1110
3093 y(curren)m(t)35 b(cursor)g(p)s(osition\))g(at)h(the)g(same)f(lo)s
(cation)i(on)e(eac)m(h)h(history)g(line)1110 3203 y(retriev)m(ed)h
(with)f Fs(previous-history)c Ft(or)37 b Fs(next-history)p
Ft(.)55 b(The)36 b(default)1110 3313 y(is)30 b(`)p Fs(off)p
Ft('.)630 3477 y Fs(horizontal-scroll-mode)1110 3587
y Ft(This)35 b(v)-5 b(ariable)37 b(can)f(b)s(e)f(set)h(to)h(either)f(`)
p Fs(on)p Ft(')g(or)g(`)p Fs(off)p Ft('.)57 b(Setting)36
b(it)g(to)h(`)p Fs(on)p Ft(')1110 3696 y(means)26 b(that)h(the)f(text)h
(of)g(the)f(lines)g(b)s(eing)g(edited)h(will)f(scroll)h(horizon)m
(tally)1110 3587 y(on)32 b(a)g(single)g(screen)g(line)g(when)e(they)i
(are)g(longer)h(than)e(the)h(width)f(of)h(the)1110 3696
(tally)1110 3806 y(on)32 b(a)g(single)g(screen)g(line)g(when)e(they)i
(are)g(longer)h(than)e(the)h(width)f(of)h(the)1110 3915
y(screen,)27 b(instead)g(of)f(wrapping)f(on)m(to)i(a)f(new)g(screen)g
(line.)39 b(By)27 b(default,)g(this)1110 3806 y(v)-5
(line.)39 b(By)27 b(default,)g(this)1110 4025 y(v)-5
b(ariable)31 b(is)g(set)f(to)i(`)p Fs(off)p Ft('.)630
3952 y Fs(input-meta)1110 4061 y Ft(If)f(set)g(to)h(`)p
4189 y Fs(input-meta)1110 4299 y Ft(If)f(set)g(to)h(`)p
Fs(on)p Ft(',)g(Readline)g(will)f(enable)h(eigh)m(t-bit)h(input)d(\(it)
i(will)f(not)h(clear)1110 4171 y(the)40 b(eigh)m(th)g(bit)g(in)f(the)h
i(will)f(not)h(clear)1110 4408 y(the)40 b(eigh)m(th)g(bit)g(in)f(the)h
(c)m(haracters)h(it)f(reads\),)j(regardless)c(of)h(what)g(the)1110
4281 y(terminal)g(claims)h(it)g(can)f(supp)s(ort.)68
4518 y(terminal)g(claims)h(it)g(can)f(supp)s(ort.)68
b(The)39 b(default)h(v)-5 b(alue)40 b(is)g(`)p Fs(off)p
Ft('.)69 b(The)1110 4390 y(name)30 b Fs(meta-flag)e Ft(is)j(a)f(synon)m
(ym)g(for)g(this)h(v)-5 b(ariable.)630 4536 y Fs(isearch-terminators)
1110 4646 y Ft(The)51 b(string)h(of)g(c)m(haracters)h(that)f(should)e
(terminate)j(an)f(incremen)m(tal)1110 4755 y(searc)m(h)25
Ft('.)69 b(The)1110 4628 y(name)30 b Fs(meta-flag)e Ft(is)j(a)f(synon)m
(ym)g(for)g(this)h(v)-5 b(ariable.)630 4792 y Fs(isearch-terminators)
1110 4902 y Ft(The)51 b(string)h(of)g(c)m(haracters)h(that)f(should)e
(terminate)j(an)f(incremen)m(tal)1110 5011 y(searc)m(h)25
b(without)g(subsequen)m(tly)g(executing)h(the)f(c)m(haracter)h(as)f(a)g
(command)1110 4865 y(\(see)42 b(Section)f(8.2.5)i([Searc)m(hing],)i
(command)1110 5121 y(\(see)42 b(Section)f(8.2.5)i([Searc)m(hing],)i
(page)c(94\).)73 b(If)41 b(this)g(v)-5 b(ariable)41 b(has)g(not)1110
4975 y(b)s(een)31 b(giv)m(en)h(a)g(v)-5 b(alue,)32 b(the)g(c)m
(haracters)2494 4972 y Fg(h)p 2518 4919 V 2518 4975 a
Ff(ESC)p 2518 4990 V 2652 4972 a Fg(i)2713 4975 y Ft(and)f
Fj(C-J)g Ft(will)h(terminate)g(an)1110 5084 y(incremen)m(tal)g(searc)m
(h.)630 5230 y Fs(keymap)192 b Ft(Sets)39 b(Readline's)g(idea)h(of)f
(the)g(curren)m(t)f(k)m(eymap)h(for)g(k)m(ey)g(binding)f(com-)1110
5340 y(mands.)81 b(Acceptable)47 b Fs(keymap)42 b Ft(names)i(are)h
Fs(emacs)p Ft(,)i Fs(emacs-standard)p Ft(,)p eop end
5230 y(b)s(een)31 b(giv)m(en)h(a)g(v)-5 b(alue,)32 b(the)g(c)m
(haracters)2494 5227 y Fg(h)p 2518 5174 V 2518 5230 a
Ff(ESC)p 2518 5246 V 2652 5227 a Fg(i)2713 5230 y Ft(and)f
Fj(C-J)g Ft(will)h(terminate)g(an)1110 5340 y(incremen)m(tal)g(searc)m
(h.)p eop end
%%Page: 97 103
TeXDict begin 97 102 bop 150 -116 a Ft(Chapter)30 b(8:)41
b(Command)29 b(Line)i(Editing)2107 b(97)1110 299 y Fs(emacs-meta)p
Ft(,)99 b Fs(emacs-ctlx)p Ft(,)f Fs(vi)p Ft(,)j Fs(vi-move)p
Ft(,)f Fs(vi-command)p Ft(,)f(and)1110 408 y Fs(vi-insert)p
Ft(.)64 b Fs(vi)38 b Ft(is)h(equiv)-5 b(alen)m(t)41 b(to)e
Fs(vi-command)p Ft(;)i Fs(emacs)c Ft(is)i(equiv)-5 b(alen)m(t)1110
518 y(to)33 b Fs(emacs-standard)p Ft(.)41 b(The)31 b(default)h(v)-5
b(Command)29 b(Line)i(Editing)2107 b(97)630 299 y Fs(keymap)192
b Ft(Sets)39 b(Readline's)g(idea)h(of)f(the)g(curren)m(t)f(k)m(eymap)h
(for)g(k)m(ey)g(binding)f(com-)1110 408 y(mands.)81 b(Acceptable)47
b Fs(keymap)42 b Ft(names)i(are)h Fs(emacs)p Ft(,)i Fs(emacs-standard)p
Ft(,)1110 518 y Fs(emacs-meta)p Ft(,)99 b Fs(emacs-ctlx)p
Ft(,)f Fs(vi)p Ft(,)j Fs(vi-move)p Ft(,)f Fs(vi-command)p
Ft(,)f(and)1110 628 y Fs(vi-insert)p Ft(.)64 b Fs(vi)38
b Ft(is)h(equiv)-5 b(alen)m(t)41 b(to)e Fs(vi-command)p
Ft(;)i Fs(emacs)c Ft(is)i(equiv)-5 b(alen)m(t)1110 737
y(to)33 b Fs(emacs-standard)p Ft(.)41 b(The)31 b(default)h(v)-5
b(alue)32 b(is)g Fs(emacs)p Ft(.)44 b(The)31 b(v)-5 b(alue)33
b(of)f(the)1110 628 y Fs(editing-mode)27 b Ft(v)-5 b(ariable)31
b(also)h(a\013ects)f(the)g(default)f(k)m(eymap.)630 774
y Fs(mark-directories)1110 883 y Ft(If)38 b(set)g(to)h(`)p
b(of)f(the)1110 847 y Fs(editing-mode)27 b Ft(v)-5 b(ariable)31
b(also)h(a\013ects)f(the)g(default)f(k)m(eymap.)630 1017
y Fs(mark-directories)1110 1127 y Ft(If)38 b(set)g(to)h(`)p
Fs(on)p Ft(',)i(completed)e(directory)f(names)g(ha)m(v)m(e)i(a)e(slash)
g(app)s(ended.)1110 993 y(The)30 b(default)g(is)h(`)p
Fs(on)p Ft('.)630 1139 y Fs(mark-modified-lines)1110
1249 y Ft(This)k(v)-5 b(ariable,)38 b(when)d(set)h(to)h(`)p
g(app)s(ended.)1110 1236 y(The)30 b(default)g(is)h(`)p
Fs(on)p Ft('.)630 1407 y Fs(mark-modified-lines)1110
1517 y Ft(This)k(v)-5 b(ariable,)38 b(when)d(set)h(to)h(`)p
Fs(on)p Ft(',)g(causes)g(Readline)f(to)h(displa)m(y)f(an)f(as-)1110
1358 y(terisk)f(\(`)p Fs(*)p Ft('\))h(at)f(the)g(start)g(of)g(history)g
1626 y(terisk)f(\(`)p Fs(*)p Ft('\))h(at)f(the)g(start)g(of)g(history)g
(lines)g(whic)m(h)f(ha)m(v)m(e)i(b)s(een)e(mo)s(di\014ed.)1110
1468 y(This)d(v)-5 b(ariable)31 b(is)f(`)p Fs(off)p Ft(')g(b)m(y)g
(default.)630 1614 y Fs(mark-symlinked-directori)o(es)1110
1724 y Ft(If)44 b(set)h(to)h(`)p Fs(on)p Ft(',)i(completed)e(names)f
1736 y(This)d(v)-5 b(ariable)31 b(is)f(`)p Fs(off)p Ft(')g(b)m(y)g
(default.)630 1906 y Fs(mark-symlinked-directori)o(es)1110
2016 y Ft(If)44 b(set)h(to)h(`)p Fs(on)p Ft(',)i(completed)e(names)f
(whic)m(h)f(are)h(sym)m(b)s(olic)g(links)g(to)g(di-)1110
1833 y(rectories)j(ha)m(v)m(e)f(a)g(slash)f(app)s(ended)e(\(sub)5
2125 y(rectories)j(ha)m(v)m(e)f(a)g(slash)f(app)s(ended)e(\(sub)5
b(ject)47 b(to)g(the)f(v)-5 b(alue)47 b(of)f Fs(mark-)1110
1943 y(directories)p Ft(\).)38 b(The)30 b(default)g(is)h(`)p
Fs(off)p Ft('.)630 2089 y Fs(match-hidden-files)1110
2198 y Ft(This)21 b(v)-5 b(ariable,)25 b(when)d(set)g(to)h(`)p
2235 y(directories)p Ft(\).)38 b(The)30 b(default)g(is)h(`)p
Fs(off)p Ft('.)630 2405 y Fs(match-hidden-files)1110
2515 y Ft(This)21 b(v)-5 b(ariable,)25 b(when)d(set)g(to)h(`)p
Fs(on)p Ft(',)h(causes)f(Readline)g(to)g(matc)m(h)g(\014les)f(whose)
1110 2308 y(names)44 b(b)s(egin)g(with)g(a)g(`)p Fs(.)p
1110 2625 y(names)44 b(b)s(egin)g(with)g(a)g(`)p Fs(.)p
Ft(')g(\(hidden)f(\014les\))i(when)e(p)s(erforming)g(\014lename)1110
2418 y(completion,)j(unless)41 b(the)g(leading)h(`)p
2734 y(completion,)j(unless)41 b(the)g(leading)h(`)p
Fs(.)p Ft(')g(is)g(supplied)e(b)m(y)h(the)h(user)f(in)g(the)1110
2527 y(\014lename)31 b(to)g(b)s(e)e(completed.)42 b(This)30
2844 y(\014lename)31 b(to)g(b)s(e)e(completed.)42 b(This)30
b(v)-5 b(ariable)31 b(is)f(`)p Fs(on)p Ft(')h(b)m(y)f(default.)630
2673 y Fs(output-meta)1110 2783 y Ft(If)35 b(set)h(to)g(`)p
3014 y Fs(output-meta)1110 3124 y Ft(If)35 b(set)h(to)g(`)p
Fs(on)p Ft(',)h(Readline)f(will)g(displa)m(y)f(c)m(haracters)i(with)e
(the)h(eigh)m(th)g(bit)1110 2892 y(set)h(directly)g(rather)f(than)g(as)
(the)h(eigh)m(th)g(bit)1110 3233 y(set)h(directly)g(rather)f(than)g(as)
h(a)g(meta-pre\014xed)f(escap)s(e)h(sequence.)59 b(The)1110
3002 y(default)31 b(is)f(`)p Fs(off)p Ft('.)630 3148
y Fs(page-completions)1110 3258 y Ft(If)j(set)i(to)f(`)p
3343 y(default)31 b(is)f(`)p Fs(off)p Ft('.)630 3513
y Fs(page-completions)1110 3623 y Ft(If)j(set)i(to)f(`)p
Fs(on)p Ft(',)h(Readline)g(uses)e(an)h(in)m(ternal)h
Fs(more)p Ft(-lik)m(e)f(pager)g(to)h(displa)m(y)1110
3367 y(a)e(screenful)f(of)g(p)s(ossible)g(completions)i(at)f(a)g(time.)
3733 y(a)e(screenful)f(of)g(p)s(ossible)g(completions)i(at)f(a)g(time.)
47 b(This)31 b(v)-5 b(ariable)34 b(is)e(`)p Fs(on)p Ft(')1110
3477 y(b)m(y)e(default.)630 3623 y Fs(print-completions-horizo)o(ntal)o
(ly)1110 3733 y Ft(If)23 b(set)i(to)g(`)p Fs(on)p Ft(',)g(Readline)g
3842 y(b)m(y)e(default.)630 4013 y Fs(print-completions-horizo)o(ntal)o
(ly)1110 4122 y Ft(If)23 b(set)i(to)g(`)p Fs(on)p Ft(',)g(Readline)g
(will)f(displa)m(y)g(completions)h(with)f(matc)m(hes)h(sorted)1110
3842 y(horizon)m(tally)45 b(in)e(alphab)s(etical)i(order,)i(rather)c
(than)g(do)m(wn)g(the)h(screen.)1110 3952 y(The)30 b(default)g(is)h(`)p
Fs(off)p Ft('.)630 4098 y Fs(show-all-if-ambiguous)1110
4208 y Ft(This)e(alters)i(the)f(default)g(b)s(eha)m(vior)g(of)g(the)h
(completion)g(functions.)40 b(If)29 b(set)1110 4317 y(to)f(`)p
4232 y(horizon)m(tally)45 b(in)e(alphab)s(etical)i(order,)i(rather)c
(than)g(do)m(wn)g(the)h(screen.)1110 4341 y(The)30 b(default)g(is)h(`)p
Fs(off)p Ft('.)630 4512 y Fs(show-all-if-ambiguous)1110
4622 y Ft(This)e(alters)i(the)f(default)g(b)s(eha)m(vior)g(of)g(the)h
(completion)g(functions.)40 b(If)29 b(set)1110 4731 y(to)f(`)p
Fs(on)p Ft(',)g(w)m(ords)f(whic)m(h)g(ha)m(v)m(e)i(more)f(than)f(one)h
(p)s(ossible)f(completion)h(cause)1110 4427 y(the)39
(p)s(ossible)f(completion)h(cause)1110 4841 y(the)39
b(matc)m(hes)h(to)g(b)s(e)e(listed)h(immediately)i(instead)e(of)g
(ringing)g(the)g(b)s(ell.)1110 4536 y(The)30 b(default)g(v)-5
b(alue)31 b(is)g(`)p Fs(off)p Ft('.)630 4682 y Fs
(show-all-if-unmodified)1110 4792 y Ft(This)38 b(alters)h(the)g
(ringing)g(the)g(b)s(ell.)1110 4950 y(The)30 b(default)g(v)-5
b(alue)31 b(is)g(`)p Fs(off)p Ft('.)630 5121 y Fs
(show-all-if-unmodified)1110 5230 y Ft(This)38 b(alters)h(the)g
(default)g(b)s(eha)m(vior)g(of)f(the)h(completion)h(functions)e(in)h(a)
1110 4902 y(fashion)25 b(similar)h(to)g Fq(sho)m(w-all-if-am)m(biguous)
1110 5340 y(fashion)25 b(similar)h(to)g Fq(sho)m(w-all-if-am)m(biguous)
p Ft(.)41 b(If)25 b(set)h(to)h(`)p Fs(on)p Ft(',)f(w)m(ords)f(whic)m(h)
1110 5011 y(ha)m(v)m(e)32 b(more)f(than)f(one)i(p)s(ossible)e
(completion)i(without)f(an)m(y)g(p)s(ossible)f(par-)1110
5121 y(tial)43 b(completion)h(\(the)f(p)s(ossible)f(completions)h
(don't)f(share)g(a)h(common)1110 5230 y(pre\014x\))30
b(cause)g(the)h(matc)m(hes)g(to)g(b)s(e)f(listed)g(immediately)i
(instead)e(of)h(ring-)1110 5340 y(ing)g(the)f(b)s(ell.)41
b(The)30 b(default)g(v)-5 b(alue)31 b(is)f(`)p Fs(off)p
Ft('.)p eop end
p eop end
%%Page: 98 104
TeXDict begin 98 103 bop 150 -116 a Ft(98)2572 b(Bash)31
b(Reference)g(Man)m(ual)630 299 y Fs(visible-stats)1110
408 y Ft(If)g(set)i(to)f(`)p Fs(on)p Ft(',)h(a)f(c)m(haracter)i
b(Reference)g(Man)m(ual)1110 299 y(ha)m(v)m(e)h(more)f(than)f(one)i(p)s
(ossible)e(completion)i(without)f(an)m(y)g(p)s(ossible)f(par-)1110
408 y(tial)43 b(completion)h(\(the)f(p)s(ossible)f(completions)h(don't)
f(share)g(a)h(common)1110 518 y(pre\014x\))30 b(cause)g(the)h(matc)m
(hes)g(to)g(b)s(e)f(listed)g(immediately)i(instead)e(of)h(ring-)1110
628 y(ing)g(the)f(b)s(ell.)41 b(The)30 b(default)g(v)-5
b(alue)31 b(is)f(`)p Fs(off)p Ft('.)630 781 y Fs(visible-stats)1110
891 y Ft(If)h(set)i(to)f(`)p Fs(on)p Ft(',)h(a)f(c)m(haracter)i
(denoting)e(a)g(\014le's)g(t)m(yp)s(e)g(is)g(app)s(ended)e(to)j(the)
1110 518 y(\014lename)e(when)e(listing)i(p)s(ossible)f(completions.)42
b(The)30 b(default)g(is)h(`)p Fs(off)p Ft('.)150 675
y(Key)f(Bindings)630 784 y(The)41 b(syn)m(tax)i(for)f(con)m(trolling)h
1110 1000 y(\014lename)e(when)e(listing)i(p)s(ossible)f(completions.)42
b(The)30 b(default)g(is)h(`)p Fs(off)p Ft('.)150 1154
y(Key)f(Bindings)630 1263 y(The)41 b(syn)m(tax)i(for)f(con)m(trolling)h
(k)m(ey)g(bindings)e(in)h(the)g(init)g(\014le)g(is)g(simple.)75
b(First)43 b(y)m(ou)630 894 y(need)27 b(to)i(\014nd)d(the)i(name)f(of)h
(the)g(command)f(that)i(y)m(ou)f(w)m(an)m(t)g(to)g(c)m(hange.)41
b(The)27 b(follo)m(wing)630 1003 y(sections)37 b(con)m(tain)g(tables)g
b(First)43 b(y)m(ou)630 1373 y(need)27 b(to)i(\014nd)d(the)i(name)f(of)
h(the)g(command)f(that)i(y)m(ou)f(w)m(an)m(t)g(to)g(c)m(hange.)41
b(The)27 b(follo)m(wing)630 1482 y(sections)37 b(con)m(tain)g(tables)g
(of)f(the)g(command)f(name,)j(the)e(default)g(k)m(eybinding,)h(if)f(an)
m(y)-8 b(,)630 1113 y(and)30 b(a)h(short)f(description)g(of)h(what)f
(the)g(command)h(do)s(es.)630 1246 y(Once)36 b(y)m(ou)g(kno)m(w)g(the)g
m(y)-8 b(,)630 1592 y(and)30 b(a)h(short)f(description)g(of)h(what)f
(the)g(command)h(do)s(es.)630 1724 y(Once)36 b(y)m(ou)g(kno)m(w)g(the)g
(name)g(of)g(the)g(command,)h(simply)f(place)h(on)e(a)i(line)f(in)g
(the)g(init)630 1356 y(\014le)e(the)g(name)f(of)h(the)g(k)m(ey)g(y)m
(the)g(init)630 1833 y(\014le)e(the)g(name)f(of)h(the)g(k)m(ey)g(y)m
(ou)g(wish)f(to)h(bind)f(the)h(command)f(to,)i(a)f(colon,)i(and)d(then)
630 1465 y(the)f(name)h(of)f(the)g(command.)46 b(There)32
630 1943 y(the)f(name)h(of)f(the)g(command.)46 b(There)32
b(can)g(b)s(e)g(no)g(space)g(b)s(et)m(w)m(een)h(the)f(k)m(ey)h(name)g
(and)630 1575 y(the)41 b(colon)h({)f(that)g(will)g(b)s(e)g(in)m
(and)630 2052 y(the)41 b(colon)h({)f(that)g(will)g(b)s(e)g(in)m
(terpreted)g(as)g(part)f(of)h(the)g(k)m(ey)h(name.)72
b(The)40 b(name)h(of)630 1684 y(the)35 b(k)m(ey)g(can)g(b)s(e)f
b(The)40 b(name)h(of)630 2162 y(the)35 b(k)m(ey)g(can)g(b)s(e)f
(expressed)f(in)i(di\013eren)m(t)g(w)m(a)m(ys,)h(dep)s(ending)d(on)h
(what)h(y)m(ou)g(\014nd)e(most)630 1794 y(comfortable.)630
1927 y(In)i(addition)h(to)h(command)f(names,)i(readline)e(allo)m(ws)h
(what)h(y)m(ou)g(\014nd)e(most)630 2271 y(comfortable.)630
2403 y(In)i(addition)h(to)h(command)f(names,)i(readline)e(allo)m(ws)h
(k)m(eys)g(to)g(b)s(e)e(b)s(ound)f(to)j(a)f(string)630
2037 y(that)31 b(is)f(inserted)h(when)e(the)i(k)m(ey)g(is)f(pressed)g
(\(a)h Fq(macro)5 b Ft(\).)630 2170 y(The)42 b Fs(bind)30
2513 y(that)31 b(is)f(inserted)h(when)e(the)i(k)m(ey)g(is)f(pressed)g
(\(a)h Fq(macro)5 b Ft(\).)630 2644 y(The)42 b Fs(bind)30
b(-p)42 b Ft(command)h(displa)m(ys)g(Readline)g(function)g(names)g(and)
f(bindings)g(in)h(a)630 2279 y(format)37 b(that)h(can)f(put)f(directly)
f(bindings)g(in)h(a)630 2754 y(format)37 b(that)h(can)f(put)f(directly)
i(in)m(to)g(an)f(initialization)j(\014le.)60 b(See)38
b(Section)f(4.2)i([Bash)630 2389 y(Builtins],)31 b(page)g(41.)630
2545 y Fq(k)m(eyname)5 b Ft(:)42 b Fq(function-name)35
b Ft(or)c Fq(macro)1110 2655 y(k)m(eyname)k Ft(is)29
b(Section)f(4.2)i([Bash)630 2863 y(Builtins],)31 b(page)g(41.)630
3017 y Fq(k)m(eyname)5 b Ft(:)42 b Fq(function-name)35
b Ft(or)c Fq(macro)1110 3126 y(k)m(eyname)k Ft(is)29
b(the)f(name)h(of)g(a)g(k)m(ey)h(sp)s(elled)e(out)h(in)g(English.)39
b(F)-8 b(or)30 b(example:)1350 2788 y Fs(Control-u:)45
b(universal-argument)1350 2898 y(Meta-Rubout:)f(backward-kill-word)1350
3007 y(Control-o:)h(">)i(output")1110 3140 y Ft(In)38
b(F)-8 b(or)30 b(example:)1350 3258 y Fs(Control-u:)45
b(universal-argument)1350 3367 y(Meta-Rubout:)f(backward-kill-word)1350
3477 y(Control-o:)h(">)i(output")1110 3608 y Ft(In)38
b(the)h(ab)s(o)m(v)m(e)h(example,)h Fj(C-u)d Ft(is)h(b)s(ound)d(to)k
(the)e(function)h Fs(universal-)1110 3250 y(argument)p
(the)e(function)h Fs(universal-)1110 3718 y(argument)p
Ft(,)f Fj(M-DEL)e Ft(is)i(b)s(ound)e(to)i(the)g(function)g
Fs(backward-kill-word)p Ft(,)1110 3360 y(and)g Fj(C-o)g
Fs(backward-kill-word)p Ft(,)1110 3828 y(and)g Fj(C-o)g
Ft(is)h(b)s(ound)e(to)j(run)d(the)j(macro)f(expressed)g(on)f(the)i
(righ)m(t)f(hand)1110 3469 y(side)30 b(\(that)i(is,)e(to)h(insert)g
(righ)m(t)f(hand)1110 3937 y(side)30 b(\(that)i(is,)e(to)h(insert)g
(the)f(text)i(`)p Fs(>)e(output)p Ft(')f(in)m(to)i(the)g(line\).)1110
3602 y(A)37 b(n)m(um)m(b)s(er)f(of)h(sym)m(b)s(olic)g(c)m(haracter)i
(names)e(are)g(recognized)h(while)f(pro-)1110 3712 y(cessing)24
4069 y(A)37 b(n)m(um)m(b)s(er)f(of)h(sym)m(b)s(olic)g(c)m(haracter)i
(names)e(are)g(recognized)h(while)f(pro-)1110 4178 y(cessing)24
b(this)g(k)m(ey)g(binding)f(syn)m(tax:)37 b Fq(DEL)p
Ft(,)24 b Fq(ESC)p Ft(,)f Fq(ESCAPE)p Ft(,)g Fq(LFD)p
Ft(,)h Fq(NEW-)1110 3821 y(LINE)p Ft(,)30 b Fq(RET)p
Ft(,)h Fq(NEW-)1110 4288 y(LINE)p Ft(,)30 b Fq(RET)p
Ft(,)g Fq(RETURN)p Ft(,)h Fq(R)m(UBOUT)p Ft(,)g Fq(SP)-8
b(A)m(CE)p Ft(,)30 b Fq(SPC)p Ft(,)g(and)f Fq(T)-8 b(AB)p
Ft(.)630 3978 y Fs(")p Fq(k)m(eyseq)r Fs(")p Ft(:)41
b Fq(function-name)36 b Ft(or)30 b Fq(macro)1110 4088
Ft(.)630 4441 y Fs(")p Fq(k)m(eyseq)r Fs(")p Ft(:)41
b Fq(function-name)36 b Ft(or)30 b Fq(macro)1110 4551
y(k)m(eyseq)k Ft(di\013ers)d(from)f Fq(k)m(eyname)37
b Ft(ab)s(o)m(v)m(e)32 b(in)f(that)h(strings)f(denoting)g(an)g(en-)1110
4197 y(tire)j(k)m(ey)h(sequence)f(can)g(b)s(e)f(sp)s(eci\014ed,)h(b)m
(y)f(placing)i(the)f(k)m(ey)g(sequence)g(in)1110 4307
4661 y(tire)j(k)m(ey)h(sequence)f(can)g(b)s(e)f(sp)s(eci\014ed,)h(b)m
(y)f(placing)i(the)f(k)m(ey)g(sequence)g(in)1110 4770
y(double)29 b(quotes.)41 b(Some)29 b Fl(gnu)h Ft(Emacs)f(st)m(yle)i(k)m
(ey)f(escap)s(es)g(can)g(b)s(e)f(used,)g(as)1110 4416
(ey)f(escap)s(es)g(can)g(b)s(e)f(used,)g(as)1110 4880
y(in)k(the)h(follo)m(wing)i(example,)f(but)e(the)h(sp)s(ecial)h(c)m
(haracter)g(names)f(are)g(not)1110 4526 y(recognized.)1350
4659 y Fs("\\C-u":)46 b(universal-argument)1350 4769
y("\\C-x\\C-r":)f(re-read-init-file)1350 4878 y("\\e[11~":)g("Function)
h(Key)g(1")1110 5011 y Ft(In)64 b(the)g(ab)s(o)m(v)m(e)i(example,)74
b Fj(C-u)64 b Ft(is)g(again)i(b)s(ound)c(to)k(the)e(function)1110
5121 y Fs(universal-argument)39 b Ft(\(just)k(as)h(it)g(w)m(as)g(in)g
(the)f(\014rst)g(example\),)49 b(`)p Fj(C-x)1110 5230
y(C-r)p Ft(')41 b(is)g(b)s(ound)e(to)j(the)f(function)g
Fs(re-read-init-file)p Ft(,)e(and)i(`)3462 5227 y Fg(h)p
3486 5174 139 4 v 3486 5230 a Ff(ESC)p 3486 5246 V 3620
5227 a Fg(i)31 b(h)p 3705 5174 20 4 v 3705 5230 a Ff([)p
3705 5247 V 3720 5227 a Fg(i)1110 5337 y(h)p 1134 5284
36 4 v 1134 5340 a Ff(1)p 1134 5355 V 1165 5337 a Fg(i)f(h)p
1250 5284 V 1250 5340 a Ff(1)p 1250 5355 V 1281 5337
a Fg(i)g(h)p 1365 5284 48 4 v 1365 5340 a Fs(~)p 1365
5355 V 1409 5337 a Fg(i)1438 5340 y Ft(')h(is)f(b)s(ound)f(to)i(insert)
f(the)h(text)g(`)p Fs(Function)d(Key)i(1)p Ft('.)p eop
end
(haracter)g(names)f(are)g(not)1110 4989 y(recognized.)1350
5121 y Fs("\\C-u":)46 b(universal-argument)1350 5230
y("\\C-x\\C-r":)f(re-read-init-file)1350 5340 y("\\e[11~":)g("Function)
h(Key)g(1")p eop end
%%Page: 99 105
TeXDict begin 99 104 bop 150 -116 a Ft(Chapter)30 b(8:)41
b(Command)29 b(Line)i(Editing)2107 b(99)630 299 y(The)29
b(follo)m(wing)i Fl(gnu)f Ft(Emacs)g(st)m(yle)h(escap)s(e)f(sequences)g
(are)g(a)m(v)-5 b(ailable)32 b(when)d(sp)s(ecifying)630
408 y(k)m(ey)i(sequences:)630 572 y Fj(\\C-)336 b Ft(con)m(trol)32
b(pre\014x)630 736 y Fj(\\M-)336 b Ft(meta)31 b(pre\014x)630
899 y Fj(\\e)384 b Ft(an)30 b(escap)s(e)h(c)m(haracter)630
1063 y Fj(\\\\)384 b Ft(bac)m(kslash)630 1226 y Fj(\\)p
Fs(")1110 1223 y Fg(h)p 1134 1170 48 4 v 1134 1226 a
Fs(")p 1134 1241 V 1178 1223 a Fg(i)1208 1226 y Ft(,)30
b(a)h(double)f(quotation)h(mark)630 1390 y Fj(\\')1110
1387 y Fg(h)p 1134 1334 20 4 v 1134 1390 a Ff(')p 1134
1405 V 1150 1387 a Fg(i)1179 1390 y Ft(,)g(a)g(single)g(quote)g(or)f
(ap)s(ostrophe)630 1553 y(In)d(addition)h(to)g(the)g
Fl(gnu)f Ft(Emacs)h(st)m(yle)h(escap)s(e)f(sequences,)h(a)f(second)f
(set)h(of)g(bac)m(kslash)630 1663 y(escap)s(es)j(is)f(a)m(v)-5
b(ailable:)630 1826 y Fs(\\a)384 b Ft(alert)31 b(\(b)s(ell\))630
1990 y Fs(\\b)384 b Ft(bac)m(kspace)630 2153 y Fs(\\d)g
Ft(delete)630 2317 y Fs(\\f)g Ft(form)30 b(feed)630 2480
y Fs(\\n)384 b Ft(newline)630 2644 y Fs(\\r)g Ft(carriage)32
b(return)630 2807 y Fs(\\t)384 b Ft(horizon)m(tal)32
b(tab)630 2971 y Fs(\\v)384 b Ft(v)m(ertical)32 b(tab)630
3134 y Fs(\\)p Fj(nnn)288 b Ft(the)35 b(eigh)m(t-bit)h(c)m(haracter)g
(whose)e(v)-5 b(alue)35 b(is)g(the)f(o)s(ctal)i(v)-5
b(alue)35 b Fq(nnn)e Ft(\(one)i(to)1110 3244 y(three)c(digits\))630
3407 y Fs(\\x)p Fj(HH)288 b Ft(the)40 b(eigh)m(t-bit)h(c)m(haracter)g
(whose)e(v)-5 b(alue)39 b(is)h(the)f(hexadecimal)i(v)-5
b(alue)40 b Fq(HH)1110 3517 y Ft(\(one)31 b(or)f(t)m(w)m(o)i(hex)e
(digits\))630 3681 y(When)37 b(en)m(tering)h(the)g(text)g(of)g(a)g
(macro,)i(single)e(or)f(double)g(quotes)h(m)m(ust)f(b)s(e)g(used)f(to)
630 3790 y(indicate)23 b(a)e(macro)h(de\014nition.)38
b(Unquoted)21 b(text)i(is)e(assumed)g(to)h(b)s(e)f(a)h(function)f
(name.)38 b(In)630 3900 y(the)22 b(macro)f(b)s(o)s(dy)-8
b(,)23 b(the)e(bac)m(kslash)h(escap)s(es)g(describ)s(ed)e(ab)s(o)m(v)m
(e)j(are)e(expanded.)37 b(Bac)m(kslash)630 4009 y(will)j(quote)h(an)m
(y)f(other)g(c)m(haracter)i(in)d(the)i(macro)f(text,)k(including)39
b(Command)29 b(Line)i(Editing)2107 b(99)1110 299 y(In)64
b(the)g(ab)s(o)m(v)m(e)i(example,)74 b Fj(C-u)64 b Ft(is)g(again)i(b)s
(ound)c(to)k(the)e(function)1110 408 y Fs(universal-argument)39
b Ft(\(just)k(as)h(it)g(w)m(as)g(in)g(the)f(\014rst)g(example\),)49
b(`)p Fj(C-x)1110 518 y(C-r)p Ft(')41 b(is)g(b)s(ound)e(to)j(the)f
(function)g Fs(re-read-init-file)p Ft(,)e(and)i(`)3462
515 y Fg(h)p 3486 462 139 4 v 3486 518 a Ff(ESC)p 3486
533 V 3620 515 a Fg(i)31 b(h)p 3705 462 20 4 v 3705 518
a Ff([)p 3705 535 V 3720 515 a Fg(i)1110 625 y(h)p 1134
572 36 4 v 1134 628 a Ff(1)p 1134 643 V 1165 625 a Fg(i)f(h)p
1250 572 V 1250 628 a Ff(1)p 1250 643 V 1281 625 a Fg(i)g(h)p
1365 572 48 4 v 1365 628 a Fs(~)p 1365 643 V 1409 625
a Fg(i)1438 628 y Ft(')h(is)f(b)s(ound)f(to)i(insert)f(the)h(text)g(`)p
Fs(Function)d(Key)i(1)p Ft('.)630 786 y(The)f(follo)m(wing)i
Fl(gnu)f Ft(Emacs)g(st)m(yle)h(escap)s(e)f(sequences)g(are)g(a)m(v)-5
b(ailable)32 b(when)d(sp)s(ecifying)630 896 y(k)m(ey)i(sequences:)630
1055 y Fj(\\C-)336 b Ft(con)m(trol)32 b(pre\014x)630
1213 y Fj(\\M-)336 b Ft(meta)31 b(pre\014x)630 1372 y
Fj(\\e)384 b Ft(an)30 b(escap)s(e)h(c)m(haracter)630
1531 y Fj(\\\\)384 b Ft(bac)m(kslash)630 1689 y Fj(\\)p
Fs(")1110 1686 y Fg(h)p 1134 1633 V 1134 1689 a Fs(")p
1134 1705 V 1178 1686 a Fg(i)1208 1689 y Ft(,)30 b(a)h(double)f
(quotation)h(mark)630 1848 y Fj(\\')1110 1845 y Fg(h)p
1134 1792 20 4 v 1134 1848 a Ff(')p 1134 1864 V 1150
1845 a Fg(i)1179 1848 y Ft(,)g(a)g(single)g(quote)g(or)f(ap)s(ostrophe)
630 2007 y(In)d(addition)h(to)g(the)g Fl(gnu)f Ft(Emacs)h(st)m(yle)h
(escap)s(e)f(sequences,)h(a)f(second)f(set)h(of)g(bac)m(kslash)630
2116 y(escap)s(es)j(is)f(a)m(v)-5 b(ailable:)630 2275
y Fs(\\a)384 b Ft(alert)31 b(\(b)s(ell\))630 2434 y Fs(\\b)384
b Ft(bac)m(kspace)630 2593 y Fs(\\d)g Ft(delete)630 2751
y Fs(\\f)g Ft(form)30 b(feed)630 2910 y Fs(\\n)384 b
Ft(newline)630 3069 y Fs(\\r)g Ft(carriage)32 b(return)630
3227 y Fs(\\t)384 b Ft(horizon)m(tal)32 b(tab)630 3386
y Fs(\\v)384 b Ft(v)m(ertical)32 b(tab)630 3545 y Fs(\\)p
Fj(nnn)288 b Ft(the)35 b(eigh)m(t-bit)h(c)m(haracter)g(whose)e(v)-5
b(alue)35 b(is)g(the)f(o)s(ctal)i(v)-5 b(alue)35 b Fq(nnn)e
Ft(\(one)i(to)1110 3654 y(three)c(digits\))630 3813 y
Fs(\\x)p Fj(HH)288 b Ft(the)40 b(eigh)m(t-bit)h(c)m(haracter)g(whose)e
(v)-5 b(alue)39 b(is)h(the)f(hexadecimal)i(v)-5 b(alue)40
b Fq(HH)1110 3923 y Ft(\(one)31 b(or)f(t)m(w)m(o)i(hex)e(digits\))630
4081 y(When)37 b(en)m(tering)h(the)g(text)g(of)g(a)g(macro,)i(single)e
(or)f(double)g(quotes)h(m)m(ust)f(b)s(e)g(used)f(to)630
4191 y(indicate)23 b(a)e(macro)h(de\014nition.)38 b(Unquoted)21
b(text)i(is)e(assumed)g(to)h(b)s(e)f(a)h(function)f(name.)38
b(In)630 4301 y(the)22 b(macro)f(b)s(o)s(dy)-8 b(,)23
b(the)e(bac)m(kslash)h(escap)s(es)g(describ)s(ed)e(ab)s(o)m(v)m(e)j
(are)e(expanded.)37 b(Bac)m(kslash)630 4410 y(will)j(quote)h(an)m(y)f
(other)g(c)m(haracter)i(in)d(the)i(macro)f(text,)k(including)39
b(`)p Fs(")p Ft(')h(and)g(`)p Fs(')p Ft('.)69 b(F)-8
b(or)630 4119 y(example,)28 b(the)e(follo)m(wing)h(binding)d(will)i
b(or)630 4520 y(example,)28 b(the)e(follo)m(wing)h(binding)d(will)i
(mak)m(e)h(`)p Fj(C-x)j Fs(\\)p Ft(')c(insert)f(a)h(single)h(`)p
Fs(\\)p Ft(')f(in)m(to)g(the)g(line:)870 4255 y Fs("\\C-x\\\\":)45
b("\\\\")150 4488 y Fk(8.3.2)63 b(Conditional)41 b(Init)g(Constructs)
275 4736 y Ft(Readline)36 b(implemen)m(ts)f(a)h(facilit)m(y)i(similar)d
Fs(\\)p Ft(')f(in)m(to)g(the)g(line:)870 4654 y Fs("\\C-x\\\\":)45
b("\\\\")150 4877 y Fk(8.3.2)63 b(Conditional)41 b(Init)g(Constructs)
275 5121 y Ft(Readline)36 b(implemen)m(ts)f(a)h(facilit)m(y)i(similar)d
(in)g(spirit)g(to)h(the)g(conditional)h(compilation)g(features)150
4846 y(of)e(the)f(C)g(prepro)s(cessor)g(whic)m(h)g(allo)m(ws)i(k)m(ey)f
5230 y(of)e(the)f(C)g(prepro)s(cessor)g(whic)m(h)g(allo)m(ws)i(k)m(ey)f
(bindings)e(and)h(v)-5 b(ariable)35 b(settings)h(to)f(b)s(e)f(p)s
(erformed)f(as)150 4955 y(the)e(result)f(of)g(tests.)42
b(There)30 b(are)h(four)e(parser)h(directiv)m(es)i(used.)150
5121 y Fs($if)336 b Ft(The)31 b Fs($if)f Ft(construct)i(allo)m(ws)h
(bindings)d(to)i(b)s(e)e(made)i(based)f(on)g(the)g(editing)h(mo)s(de,)g
(the)630 5230 y(terminal)39 b(b)s(eing)e(used,)j(or)e(the)g
(application)h(using)f(Readline.)64 b(The)38 b(text)h(of)f(the)g(test)
630 5340 y(extends)30 b(to)h(the)g(end)f(of)g(the)h(line;)g(no)f(c)m
(haracters)i(are)f(required)e(to)i(isolate)i(it.)p eop
end
(erformed)f(as)150 5340 y(the)e(result)f(of)g(tests.)42
b(There)30 b(are)h(four)e(parser)h(directiv)m(es)i(used.)p
eop end
%%Page: 100 106
TeXDict begin 100 105 bop 150 -116 a Ft(100)2527 b(Bash)31
b(Reference)g(Man)m(ual)630 299 y Fs(mode)288 b Ft(The)20
b Fs(mode=)g Ft(form)g(of)h(the)g Fs($if)f Ft(directiv)m(e)j(is)e(used)
f(to)h(test)h(whether)e(Readline)1110 408 y(is)29 b(in)h
Fs(emacs)e Ft(or)h Fs(vi)g Ft(mo)s(de.)40 b(This)29 b(ma)m(y)h(b)s(e)e
(used)h(in)g(conjunction)h(with)f(the)1110 518 y(`)p
Fs(set)h(keymap)p Ft(')c(command,)i(for)f(instance,)i(to)f(set)g
(bindings)f(in)g(the)h Fs(emacs-)1110 628 y(standard)23
b(Reference)g(Man)m(ual)150 299 y Fs($if)336 b Ft(The)31
b Fs($if)f Ft(construct)i(allo)m(ws)h(bindings)d(to)i(b)s(e)e(made)i
(based)f(on)g(the)g(editing)h(mo)s(de,)g(the)630 408
y(terminal)39 b(b)s(eing)e(used,)j(or)e(the)g(application)h(using)f
(Readline.)64 b(The)38 b(text)h(of)f(the)g(test)630 518
y(extends)30 b(to)h(the)g(end)f(of)g(the)h(line;)g(no)f(c)m(haracters)i
(are)f(required)e(to)i(isolate)i(it.)630 677 y Fs(mode)288
b Ft(The)20 b Fs(mode=)g Ft(form)g(of)h(the)g Fs($if)f
Ft(directiv)m(e)j(is)e(used)f(to)h(test)h(whether)e(Readline)1110
787 y(is)29 b(in)h Fs(emacs)e Ft(or)h Fs(vi)g Ft(mo)s(de.)40
b(This)29 b(ma)m(y)h(b)s(e)e(used)h(in)g(conjunction)h(with)f(the)1110
897 y(`)p Fs(set)h(keymap)p Ft(')c(command,)i(for)f(instance,)i(to)f
(set)g(bindings)f(in)g(the)h Fs(emacs-)1110 1006 y(standard)23
b Ft(and)h Fs(emacs-ctlx)f Ft(k)m(eymaps)i(only)g(if)g(Readline)h(is)f
(starting)h(out)1110 737 y(in)k Fs(emacs)f Ft(mo)s(de.)630
897 y Fs(term)288 b Ft(The)26 b Fs(term=)g Ft(form)g(ma)m(y)i(b)s(e)e
(starting)h(out)1110 1116 y(in)k Fs(emacs)f Ft(mo)s(de.)630
1275 y Fs(term)288 b Ft(The)26 b Fs(term=)g Ft(form)g(ma)m(y)i(b)s(e)e
(used)g(to)i(include)f(terminal-sp)s(eci\014c)g(k)m(ey)h(bind-)1110
1006 y(ings,)38 b(p)s(erhaps)c(to)j(bind)e(the)h(k)m(ey)h(sequences)f
(output)g(b)m(y)g(the)g(terminal's)1110 1116 y(function)24
1385 y(ings,)38 b(p)s(erhaps)c(to)j(bind)e(the)h(k)m(ey)h(sequences)f
(output)g(b)m(y)g(the)g(terminal's)1110 1494 y(function)24
b(k)m(eys.)39 b(The)23 b(w)m(ord)h(on)f(the)i(righ)m(t)f(side)g(of)g
(the)g(`)p Fs(=)p Ft(')g(is)g(tested)h(against)1110 1225
(the)g(`)p Fs(=)p Ft(')g(is)g(tested)h(against)1110 1604
y(b)s(oth)k(the)h(full)g(name)g(of)g(the)g(terminal)h(and)e(the)i(p)s
(ortion)e(of)h(the)g(terminal)1110 1335 y(name)k(b)s(efore)f(the)g
(ortion)e(of)h(the)g(terminal)1110 1714 y(name)k(b)s(efore)f(the)g
(\014rst)g(`)p Fs(-)p Ft('.)50 b(This)33 b(allo)m(ws)i
Fs(sun)e Ft(to)h(matc)m(h)g(b)s(oth)f Fs(sun)g Ft(and)1110
1445 y Fs(sun-cmd)p Ft(,)c(for)h(instance.)630 1604 y
Fs(application)1110 1714 y Ft(The)21 b Fq(application)j
1823 y Fs(sun-cmd)p Ft(,)c(for)h(instance.)630 1983 y
Fs(application)1110 2092 y Ft(The)21 b Fq(application)j
Ft(construct)e(is)g(used)f(to)i(include)f(application-sp)s(eci\014c)h
(set-)1110 1823 y(tings.)39 b(Eac)m(h)26 b(program)e(using)g(the)h
(set-)1110 2202 y(tings.)39 b(Eac)m(h)26 b(program)e(using)g(the)h
(Readline)g(library)g(sets)g(the)g Fq(application)1110
1933 y(name)p Ft(,)g(and)e(y)m(ou)g(can)h(test)g(for)f(a)g(particular)h
2311 y(name)p Ft(,)g(and)e(y)m(ou)g(can)h(test)g(for)f(a)g(particular)h
(v)-5 b(alue.)39 b(This)22 b(could)h(b)s(e)g(used)f(to)1110
2042 y(bind)32 b(k)m(ey)h(sequences)g(to)h(functions)e(useful)g(for)h
(a)g(sp)s(eci\014c)f(program.)48 b(F)-8 b(or)1110 2152
2421 y(bind)32 b(k)m(ey)h(sequences)g(to)h(functions)e(useful)g(for)h
(a)g(sp)s(eci\014c)f(program.)48 b(F)-8 b(or)1110 2531
y(instance,)35 b(the)e(follo)m(wing)h(command)f(adds)f(a)i(k)m(ey)f
(sequence)h(that)f(quotes)1110 2262 y(the)e(curren)m(t)f(or)g(previous)
g(w)m(ord)g(in)g(Bash:)1350 2396 y Fs($if)47 b(Bash)1350
2506 y(#)g(Quote)g(the)g(current)f(or)h(previous)e(word)1350
2615 y("\\C-xq":)h("\\eb\\"\\ef\\"")1350 2725 y($endif)150
2884 y($endif)192 b Ft(This)29 b(command,)i(as)f(seen)h(in)f(the)g
(sequence)h(that)f(quotes)1110 2640 y(the)e(curren)m(t)f(or)g(previous)
g(w)m(ord)g(in)g(Bash:)1350 2775 y Fs($if)47 b(Bash)1350
2884 y(#)g(Quote)g(the)g(current)f(or)h(previous)e(word)1350
2994 y("\\C-xq":)h("\\eb\\"\\ef\\"")1350 3103 y($endif)150
3263 y($endif)192 b Ft(This)29 b(command,)i(as)f(seen)h(in)f(the)g
(previous)g(example,)h(terminates)g(an)g Fs($if)e Ft(command.)150
3044 y Fs($else)240 b Ft(Commands)29 b(in)h(this)h(branc)m(h)e(of)i
3422 y Fs($else)240 b Ft(Commands)29 b(in)h(this)h(branc)m(h)e(of)i
(the)f Fs($if)g Ft(directiv)m(e)i(are)f(executed)g(if)f(the)h(test)g
(fails.)150 3203 y Fs($include)96 b Ft(This)43 b(directiv)m(e)i(tak)m
(fails.)150 3582 y Fs($include)96 b Ft(This)43 b(directiv)m(e)i(tak)m
(es)g(a)e(single)i(\014lename)e(as)h(an)f(argumen)m(t)h(and)f(reads)g
(commands)630 3313 y(and)38 b(bindings)f(from)h(that)i(\014le.)65
(commands)630 3691 y(and)38 b(bindings)f(from)h(that)i(\014le.)65
b(F)-8 b(or)39 b(example,)j(the)d(follo)m(wing)h(directiv)m(e)g(reads)e
(from)630 3422 y(`)p Fs(/etc/inputrc)p Ft(':)870 3557
y Fs($include)46 b(/etc/inputrc)150 3781 y Fk(8.3.3)63
b(Sample)41 b(Init)g(File)275 4025 y Ft(Here)31 b(is)f(an)g(example)i
(from)630 3801 y(`)p Fs(/etc/inputrc)p Ft(':)870 3935
y Fs($include)46 b(/etc/inputrc)150 4159 y Fk(8.3.3)63
b(Sample)41 b(Init)g(File)275 4403 y Ft(Here)31 b(is)f(an)g(example)i
(of)e(an)g Fq(inputrc)35 b Ft(\014le.)42 b(This)29 b(illustrates)j(k)m
(ey)f(binding,)f(v)-5 b(ariable)31 b(assignmen)m(t,)150
4134 y(and)f(conditional)h(syn)m(tax.)p eop end
4513 y(and)f(conditional)h(syn)m(tax.)p eop end
%%Page: 101 107
TeXDict begin 101 106 bop 150 -116 a Ft(Chapter)30 b(8:)41
b(Command)29 b(Line)i(Editing)2062 b(101)390 408 y Fs(#)47
@@ -15043,7 +15048,7 @@ g(.)h(.)f(.)g(.)g(.)h(.)f(.)34 b Fb(64)2025 3218 y Fe
b Fb(96)2025 3453 y Fr(K)2025 3569 y Fe(keymap)10 b Fc(.)j(.)f(.)h(.)f
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)35
b Fb(96)2025 3822 y Fr(L)2025 3939 y Fe(LANG)13 b Fc(.)g(.)f(.)g(.)g(.)
b Fb(97)2025 3822 y Fr(L)2025 3939 y Fe(LANG)13 b Fc(.)g(.)f(.)g(.)g(.)
h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)
38 b Fb(64)2025 4027 y Fe(LC_ALL)10 b Fc(.)j(.)f(.)h(.)f(.)g(.)h(.)f(.)
+3 -3
View File
@@ -225,7 +225,7 @@ than by an executable program somewhere in the file system.
@item control operator
@cindex control operator
A @code{word} that performs a control function. It is a @code{newline}
A @code{token} that performs a control function. It is a @code{newline}
or one of the following:
@samp{||}, @samp{&&}, @samp{&}, @samp{;}, @samp{;;},
@samp{|}, @samp{(}, or @samp{)}.
@@ -959,13 +959,13 @@ is enabled, the match is performed without regard to the case
of alphabetic characters.
The return value is 0 if the string matches (@samp{==}) or does not
match (@samp{!=})the pattern, and 1 otherwise.
Any part of the pattern may be quoted to force it to be matched as a string.
Any part of the pattern may be quoted to force it to be matched as a
string.
An additional binary operator, @samp{=~}, is available, with the same
precedence as @samp{==} and @samp{!=}.
When it is used, the string to the right of the operator is considered
an extended regular expression and matched accordingly (as in @i{regex}3)).
Any part of the pattern may be quoted to force it to be matched as a string.
The return value is 0 if the string matches
the pattern, and 1 otherwise.
If the regular expression is syntactically incorrect, the conditional
+1 -1
View File
@@ -108,7 +108,7 @@
\entry{input-meta}{96}{\code {input-meta}}
\entry{meta-flag}{96}{\code {meta-flag}}
\entry{isearch-terminators}{96}{\code {isearch-terminators}}
\entry{keymap}{96}{\code {keymap}}
\entry{keymap}{97}{\code {keymap}}
\entry{mark-modified-lines}{97}{\code {mark-modified-lines}}
\entry{mark-symlinked-directories}{97}{\code {mark-symlinked-directories}}
\entry{match-hidden-files}{97}{\code {match-hidden-files}}
+1 -1
View File
@@ -86,7 +86,7 @@
\entry {\code {INPUTRC}}{64}
\entry {\code {isearch-terminators}}{96}
\initial {K}
\entry {\code {keymap}}{96}
\entry {\code {keymap}}{97}
\initial {L}
\entry {\code {LANG}}{64}
\entry {\code {LC_ALL}}{64}
+98 -97
View File
@@ -1224,10 +1224,11 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
---- as signifying the end of options.
Expressions may be combined using the following operators,
listed in decreasing order of precedence.
listed in decreasing order of precedence. The evaluation
depends on the number of arguments; see below.
!! _e_x_p_r True if _e_x_p_r is false.
(( _e_x_p_r ))
Returns the value of _e_x_p_r. This may be used to override
Returns the value of _e_x_p_r. This may be used to override
the normal precedence of operators.
_e_x_p_r_1 -aa _e_x_p_r_2
True if both _e_x_p_r_1 and _e_x_p_r_2 are true.
@@ -1244,116 +1245,116 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
null.
2 arguments
If the first argument is !!, the expression is true if and
only if the second argument is null. If the first argu-
ment is one of the unary conditional operators listed
above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS, the expression is
only if the second argument is null. If the first argu-
ment is one of the unary conditional operators listed
above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS, the expression is
true if the unary test is true. If the first argument is
not a valid unary conditional operator, the expression is
false.
3 arguments
If the second argument is one of the binary conditional
If the second argument is one of the binary conditional
operators listed above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS, the
result of the expression is the result of the binary test
using the first and third arguments as operands. If the
first argument is !!, the value is the negation of the
two-argument test using the second and third arguments.
If the first argument is exactly (( and the third argument
is exactly )), the result is the one-argument test of the
second argument. Otherwise, the expression is false.
The --aa and --oo operators are considered binary operators
in this case.
using the first and third arguments as operands. The --aa
and --oo operators are considered binary operators when
there are three arguments. If the first argument is !!,
the value is the negation of the two-argument test using
the second and third arguments. If the first argument is
exactly (( and the third argument is exactly )), the result
is the one-argument test of the second argument. Other-
wise, the expression is false.
4 arguments
If the first argument is !!, the result is the negation of
the three-argument expression composed of the remaining
the three-argument expression composed of the remaining
arguments. Otherwise, the expression is parsed and eval-
uated according to precedence using the rules listed
uated according to precedence using the rules listed
above.
5 or more arguments
The expression is parsed and evaluated according to
The expression is parsed and evaluated according to
precedence using the rules listed above.
ttiimmeess Print the accumulated user and system times for the shell and
ttiimmeess Print the accumulated user and system times for the shell and
for processes run from the shell. The return status is 0.
ttrraapp [--llpp] [[_a_r_g] _s_i_g_s_p_e_c ...]
The command _a_r_g is to be read and executed when the shell
receives signal(s) _s_i_g_s_p_e_c. If _a_r_g is absent (and there is a
single _s_i_g_s_p_e_c) or --, each specified signal is reset to its
original disposition (the value it had upon entrance to the
shell). If _a_r_g is the null string the signal specified by each
_s_i_g_s_p_e_c is ignored by the shell and by the commands it invokes.
If _a_r_g is not present and --pp has been supplied, then the trap
commands associated with each _s_i_g_s_p_e_c are displayed. If no
arguments are supplied or if only --pp is given, ttrraapp prints the
list of commands associated with each signal. The --ll option
causes the shell to print a list of signal names and their cor-
responding numbers. Each _s_i_g_s_p_e_c is either a signal name
defined in <_s_i_g_n_a_l_._h>, or a signal number. Signal names are
case insensitive and the SIG prefix is optional. If a _s_i_g_s_p_e_c
is EEXXIITT (0) the command _a_r_g is executed on exit from the shell.
If a _s_i_g_s_p_e_c is DDEEBBUUGG, the command _a_r_g is executed before every
The command _a_r_g is to be read and executed when the shell
receives signal(s) _s_i_g_s_p_e_c. If _a_r_g is absent (and there is a
single _s_i_g_s_p_e_c) or --, each specified signal is reset to its
original disposition (the value it had upon entrance to the
shell). If _a_r_g is the null string the signal specified by each
_s_i_g_s_p_e_c is ignored by the shell and by the commands it invokes.
If _a_r_g is not present and --pp has been supplied, then the trap
commands associated with each _s_i_g_s_p_e_c are displayed. If no
arguments are supplied or if only --pp is given, ttrraapp prints the
list of commands associated with each signal. The --ll option
causes the shell to print a list of signal names and their cor-
responding numbers. Each _s_i_g_s_p_e_c is either a signal name
defined in <_s_i_g_n_a_l_._h>, or a signal number. Signal names are
case insensitive and the SIG prefix is optional. If a _s_i_g_s_p_e_c
is EEXXIITT (0) the command _a_r_g is executed on exit from the shell.
If a _s_i_g_s_p_e_c is DDEEBBUUGG, the command _a_r_g is executed before every
_s_i_m_p_l_e _c_o_m_m_a_n_d, _f_o_r command, _c_a_s_e command, _s_e_l_e_c_t command, every
arithmetic _f_o_r command, and before the first command executes in
a shell function (see SSHHEELLLL GGRRAAMMMMAARR above). Refer to the
description of the eexxttddeebbuugg option to the sshhoopptt builtin for
details of its effect on the DDEEBBUUGG trap. If a _s_i_g_s_p_e_c is EERRRR,
the command _a_r_g is executed whenever a simple command has a
non-zero exit status, subject to the following conditions. The
EERRRR trap is not executed if the failed command is part of the
command list immediately following a wwhhiillee or uunnttiill keyword,
a shell function (see SSHHEELLLL GGRRAAMMMMAARR above). Refer to the
description of the eexxttddeebbuugg option to the sshhoopptt builtin for
details of its effect on the DDEEBBUUGG trap. If a _s_i_g_s_p_e_c is EERRRR,
the command _a_r_g is executed whenever a simple command has a
non-zero exit status, subject to the following conditions. The
EERRRR trap is not executed if the failed command is part of the
command list immediately following a wwhhiillee or uunnttiill keyword,
part of the test in an _i_f statement, part of a &&&& or |||| list, or
if the command's return value is being inverted via !!. These
are the same conditions obeyed by the eerrrreexxiitt option. If a
if the command's return value is being inverted via !!. These
are the same conditions obeyed by the eerrrreexxiitt option. If a
_s_i_g_s_p_e_c is RREETTUURRNN, the command _a_r_g is executed each time a shell
function or a script executed with the .. or ssoouurrccee builtins fin-
ishes executing. Signals ignored upon entry to the shell cannot
be trapped or reset. Trapped signals that are not being ignored
are reset to their original values in a child process when it is
created. The return status is false if any _s_i_g_s_p_e_c is invalid;
created. The return status is false if any _s_i_g_s_p_e_c is invalid;
otherwise ttrraapp returns true.
ttyyppee [--aaffttppPP] _n_a_m_e [_n_a_m_e ...]
With no options, indicate how each _n_a_m_e would be interpreted if
With no options, indicate how each _n_a_m_e would be interpreted if
used as a command name. If the --tt option is used, ttyyppee prints a
string which is one of _a_l_i_a_s, _k_e_y_w_o_r_d, _f_u_n_c_t_i_o_n, _b_u_i_l_t_i_n, or
_f_i_l_e if _n_a_m_e is an alias, shell reserved word, function,
builtin, or disk file, respectively. If the _n_a_m_e is not found,
then nothing is printed, and an exit status of false is
returned. If the --pp option is used, ttyyppee either returns the
string which is one of _a_l_i_a_s, _k_e_y_w_o_r_d, _f_u_n_c_t_i_o_n, _b_u_i_l_t_i_n, or
_f_i_l_e if _n_a_m_e is an alias, shell reserved word, function,
builtin, or disk file, respectively. If the _n_a_m_e is not found,
then nothing is printed, and an exit status of false is
returned. If the --pp option is used, ttyyppee either returns the
name of the disk file that would be executed if _n_a_m_e were speci-
fied as a command name, or nothing if ``type -t name'' would not
return _f_i_l_e. The --PP option forces a PPAATTHH search for each _n_a_m_e,
return _f_i_l_e. The --PP option forces a PPAATTHH search for each _n_a_m_e,
even if ``type -t name'' would not return _f_i_l_e. If a command is
hashed, --pp and --PP print the hashed value, not necessarily the
hashed, --pp and --PP print the hashed value, not necessarily the
file that appears first in PPAATTHH. If the --aa option is used, ttyyppee
prints all of the places that contain an executable named _n_a_m_e.
This includes aliases and functions, if and only if the --pp
option is not also used. The table of hashed commands is not
consulted when using --aa. The --ff option suppresses shell func-
tion lookup, as with the ccoommmmaanndd builtin. ttyyppee returns true if
prints all of the places that contain an executable named _n_a_m_e.
This includes aliases and functions, if and only if the --pp
option is not also used. The table of hashed commands is not
consulted when using --aa. The --ff option suppresses shell func-
tion lookup, as with the ccoommmmaanndd builtin. ttyyppee returns true if
any of the arguments are found, false if none are found.
uulliimmiitt [--SSHHaaccddeeffiillmmnnppqqrrssttuuvvxx [_l_i_m_i_t]]
Provides control over the resources available to the shell and
to processes started by it, on systems that allow such control.
Provides control over the resources available to the shell and
to processes started by it, on systems that allow such control.
The --HH and --SS options specify that the hard or soft limit is set
for the given resource. A hard limit cannot be increased once
it is set; a soft limit may be increased up to the value of the
hard limit. If neither --HH nor --SS is specified, both the soft
and hard limits are set. The value of _l_i_m_i_t can be a number in
for the given resource. A hard limit cannot be increased once
it is set; a soft limit may be increased up to the value of the
hard limit. If neither --HH nor --SS is specified, both the soft
and hard limits are set. The value of _l_i_m_i_t can be a number in
the unit specified for the resource or one of the special values
hhaarrdd, ssoofftt, or uunnlliimmiitteedd, which stand for the current hard
limit, the current soft limit, and no limit, respectively. If
_l_i_m_i_t is omitted, the current value of the soft limit of the
resource is printed, unless the --HH option is given. When more
than one resource is specified, the limit name and unit are
hhaarrdd, ssoofftt, or uunnlliimmiitteedd, which stand for the current hard
limit, the current soft limit, and no limit, respectively. If
_l_i_m_i_t is omitted, the current value of the soft limit of the
resource is printed, unless the --HH option is given. When more
than one resource is specified, the limit name and unit are
printed before the value. Other options are interpreted as fol-
lows:
--aa All current limits are reported
--cc The maximum size of core files created
--dd The maximum size of a process's data segment
--ee The maximum scheduling priority ("nice")
--ff The maximum size of files written by the shell and its
--ff The maximum size of files written by the shell and its
children
--ii The maximum number of pending signals
--ll The maximum size that may be locked into memory
@@ -1365,57 +1366,57 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
--rr The maximum real-time scheduling priority
--ss The maximum stack size
--tt The maximum amount of cpu time in seconds
--uu The maximum number of processes available to a single
--uu The maximum number of processes available to a single
user
--vv The maximum amount of virtual memory available to the
--vv The maximum amount of virtual memory available to the
shell
--xx The maximum number of file locks
If _l_i_m_i_t is given, it is the new value of the specified resource
(the --aa option is display only). If no option is given, then --ff
is assumed. Values are in 1024-byte increments, except for --tt,
which is in seconds, --pp, which is in units of 512-byte blocks,
and --nn and --uu, which are unscaled values. The return status is
0 unless an invalid option or argument is supplied, or an error
is assumed. Values are in 1024-byte increments, except for --tt,
which is in seconds, --pp, which is in units of 512-byte blocks,
and --nn and --uu, which are unscaled values. The return status is
0 unless an invalid option or argument is supplied, or an error
occurs while setting a new limit.
uummaasskk [--pp] [--SS] [_m_o_d_e]
The user file-creation mask is set to _m_o_d_e. If _m_o_d_e begins with
a digit, it is interpreted as an octal number; otherwise it is
interpreted as a symbolic mode mask similar to that accepted by
_c_h_m_o_d(1). If _m_o_d_e is omitted, the current value of the mask is
printed. The --SS option causes the mask to be printed in sym-
bolic form; the default output is an octal number. If the --pp
a digit, it is interpreted as an octal number; otherwise it is
interpreted as a symbolic mode mask similar to that accepted by
_c_h_m_o_d(1). If _m_o_d_e is omitted, the current value of the mask is
printed. The --SS option causes the mask to be printed in sym-
bolic form; the default output is an octal number. If the --pp
option is supplied, and _m_o_d_e is omitted, the output is in a form
that may be reused as input. The return status is 0 if the mode
was successfully changed or if no _m_o_d_e argument was supplied,
was successfully changed or if no _m_o_d_e argument was supplied,
and false otherwise.
uunnaalliiaass [-aa] [_n_a_m_e ...]
Remove each _n_a_m_e from the list of defined aliases. If --aa is
supplied, all alias definitions are removed. The return value
Remove each _n_a_m_e from the list of defined aliases. If --aa is
supplied, all alias definitions are removed. The return value
is true unless a supplied _n_a_m_e is not a defined alias.
uunnsseett [-ffvv] [_n_a_m_e ...]
For each _n_a_m_e, remove the corresponding variable or function.
For each _n_a_m_e, remove the corresponding variable or function.
If no options are supplied, or the --vv option is given, each _n_a_m_e
refers to a shell variable. Read-only variables may not be
unset. If --ff is specified, each _n_a_m_e refers to a shell func-
tion, and the function definition is removed. Each unset vari-
able or function is removed from the environment passed to sub-
sequent commands. If any of RRAANNDDOOMM, SSEECCOONNDDSS, LLIINNEENNOO, HHIISSTTCCMMDD,
refers to a shell variable. Read-only variables may not be
unset. If --ff is specified, each _n_a_m_e refers to a shell func-
tion, and the function definition is removed. Each unset vari-
able or function is removed from the environment passed to sub-
sequent commands. If any of RRAANNDDOOMM, SSEECCOONNDDSS, LLIINNEENNOO, HHIISSTTCCMMDD,
FFUUNNCCNNAAMMEE, GGRROOUUPPSS, or DDIIRRSSTTAACCKK are unset, they lose their special
properties, even if they are subsequently reset. The exit sta-
properties, even if they are subsequently reset. The exit sta-
tus is true unless a _n_a_m_e is readonly.
wwaaiitt [_n _._._.]
Wait for each specified process and return its termination sta-
tus. Each _n may be a process ID or a job specification; if a
job spec is given, all processes in that job's pipeline are
waited for. If _n is not given, all currently active child pro-
cesses are waited for, and the return status is zero. If _n
specifies a non-existent process or job, the return status is
127. Otherwise, the return status is the exit status of the
Wait for each specified process and return its termination sta-
tus. Each _n may be a process ID or a job specification; if a
job spec is given, all processes in that job's pipeline are
waited for. If _n is not given, all currently active child pro-
cesses are waited for, and the return status is zero. If _n
specifies a non-existent process or job, the return status is
127. Otherwise, the return status is the exit status of the
last process or job waited for.
SSEEEE AALLSSOO
+27 -24
View File
@@ -1,6 +1,6 @@
%!PS-Adobe-3.0
%%Creator: groff version 1.19.1
%%CreationDate: Tue Jan 16 11:15:09 2007
%%CreationDate: Fri May 11 16:18:41 2007
%%DocumentNeededResources: font Times-Roman
%%+ font Times-Bold
%%+ font Times-Italic
@@ -2083,10 +2083,12 @@ BP
(does it accept and ignore an ar)144 84 Q(gument of)-.18 E/F1 10
/Times-Bold@0 SF<adad>2.5 E F0(as signifying the end of options.)2.5 E
.785(Expressions may be combined using the follo)144 102 R .786
(wing operators, listed in decreasing order of prece-)-.25 F(dence.)144
114 Q F1(!)144 126 Q/F2 10/Times-Italic@0 SF -.2(ex)2.5 G(pr).2 E F0
-.35(Tr)12.6 G(ue if).35 E F2 -.2(ex)2.5 G(pr).2 E F0(is f)3.23 E(alse.)
-.1 E F1(\()144 138 Q F2 -.2(ex)2.5 G(pr).2 E F1(\))2.5 E F0 .26
(wing operators, listed in decreasing order of prece-)-.25 F 2.5
(dence. The)144 114 R -.25(eva)2.5 G
(luation depends on the number of ar).25 E(guments; see belo)-.18 E -.65
(w.)-.25 G F1(!)144 126 Q/F2 10/Times-Italic@0 SF -.2(ex)2.5 G(pr).2 E
F0 -.35(Tr)12.6 G(ue if).35 E F2 -.2(ex)2.5 G(pr).2 E F0(is f)3.23 E
(alse.)-.1 E F1(\()144 138 Q F2 -.2(ex)2.5 G(pr).2 E F1(\))2.5 E F0 .26
(Returns the v)6.77 F .26(alue of)-.25 F F2 -.2(ex)2.76 G(pr).2 E F0
5.26(.T)C .26(his may be used to o)-5.26 F -.15(ve)-.15 G .26
(rride the normal precedence of opera-).15 F(tors.)180 150 Q F2 -.2(ex)
@@ -2117,25 +2119,26 @@ F .37(xpression is true if and only if the second ar)-.15 F .37
(gument is one of the binary conditional operators listed abo)-.18 F
.323 -.15(ve u)-.15 H(nder).15 E F3(CON-)2.523 E(DITION)180 364.8 Q
1.477(AL EXPRESSIONS)-.18 F F4(,)A F0 1.477(the result of the e)3.727 F
1.477(xpression is the result of the binary test)-.15 F .398
(using the \214rst and third ar)180 376.8 R .398(guments as operands.)
-.18 F .398(If the \214rst ar)5.398 F .397(gument is)-.18 F F1(!)2.897 E
F0 2.897(,t)C .397(he v)-2.897 F .397(alue is the)-.25 F(ne)180 388.8 Q
-.05(ga)-.15 G .262(tion of the tw).05 F(o-ar)-.1 E .262
(gument test using the second and third ar)-.18 F 2.762(guments. If)-.18
F .263(the \214rst ar)2.762 F(gu-)-.18 E .206(ment is e)180 400.8 R
(xactly)-.15 E F1(\()2.706 E F0 .205(and the third ar)2.706 F .205
(gument is e)-.18 F(xactly)-.15 E F1(\))2.705 E F0 2.705(,t)C .205
(he result is the one-ar)-2.705 F .205(gument test of)-.18 F 1.17
(the second ar)180 412.8 R 3.67(gument. Otherwise,)-.18 F 1.171(the e)
3.671 F 1.171(xpression is f)-.15 F 3.671(alse. The)-.1 F F1<ad61>3.671
E F0(and)3.671 E F1<ad6f>3.671 E F0 1.171(operators are)3.671 F
(considered binary operators in this case.)180 424.8 Q 2.5(4a)144 436.8
S -.18(rg)-2.5 G(uments).18 E .385(If the \214rst ar)180 448.8 R .385
(gument is)-.18 F F1(!)2.885 E F0 2.885(,t)C .385(he result is the ne)
-2.885 F -.05(ga)-.15 G .384(tion of the three-ar).05 F .384(gument e)
-.18 F .384(xpression com-)-.15 F 1.647(posed of the remaining ar)180
460.8 R 4.147(guments. Otherwise,)-.18 F 1.647(the e)4.147 F 1.648
1.477(xpression is the result of the binary test)-.15 F .513
(using the \214rst and third ar)180 376.8 R .513(guments as operands.)
-.18 F(The)5.513 E F1<ad61>3.013 E F0(and)3.013 E F1<ad6f>3.013 E F0
.512(operators are considered)3.013 F .972
(binary operators when there are three ar)180 388.8 R 3.472(guments. If)
-.18 F .972(the \214rst ar)3.472 F .972(gument is)-.18 F F1(!)3.472 E F0
3.472(,t)C .972(he v)-3.472 F .972(alue is)-.25 F .884(the ne)180 400.8
R -.05(ga)-.15 G .884(tion of the tw).05 F(o-ar)-.1 E .884
(gument test using the second and third ar)-.18 F 3.383(guments. If)-.18
F .883(the \214rst)3.383 F(ar)180 412.8 Q .874(gument is e)-.18 F
(xactly)-.15 E F1(\()3.374 E F0 .875(and the third ar)3.374 F .875
(gument is e)-.18 F(xactly)-.15 E F1(\))3.375 E F0 3.375(,t)C .875
(he result is the one-ar)-3.375 F(gument)-.18 E(test of the second ar)
180 424.8 Q 2.5(gument. Otherwise,)-.18 F(the e)2.5 E(xpression is f)
-.15 E(alse.)-.1 E 2.5(4a)144 436.8 S -.18(rg)-2.5 G(uments).18 E .385
(If the \214rst ar)180 448.8 R .385(gument is)-.18 F F1(!)2.885 E F0
2.885(,t)C .385(he result is the ne)-2.885 F -.05(ga)-.15 G .384
(tion of the three-ar).05 F .384(gument e)-.18 F .384(xpression com-)
-.15 F 1.647(posed of the remaining ar)180 460.8 R 4.147
(guments. Otherwise,)-.18 F 1.647(the e)4.147 F 1.648
(xpression is parsed and e)-.15 F -.25(va)-.25 G(luated).25 E
(according to precedence using the rules listed abo)180 472.8 Q -.15(ve)
-.15 G(.).15 E 2.5(5o)144 484.8 S 2.5(rm)-2.5 G(ore ar)-2.5 E(guments)
+2 -3
View File
@@ -1,5 +1,4 @@
From: chet.ramey@case.edu (Chet Ramey)
To: bug-bash@gnu.org
Subject: BASH Frequently-Asked Questions (FAQ version 3.35)
Cc: chet.ramey@case.edu
Reply-To: chet.ramey@case.edu
Subject: BASH Frequently-Asked Questions (FAQ version 3.36)
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.35)
Subject: BASH Frequently-Asked Questions (FAQ version 3.36)
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.35)
Subject: [gnu.bash.bug] BASH Frequently-Asked Questions (FAQ version 3.36)
Organization: Case Western Reserve University
Summary: A's to Q's about BASH, the Bourne-Again SHell
Reply-To: chet@po.cwru.edu
+38 -7
View File
@@ -1,18 +1,17 @@
From: chet.ramey@case.edu (Chet Ramey)
To: bug-bash@gnu.org
Subject: BASH Frequently-Asked Questions (FAQ version 3.35)
Cc: chet.ramey@case.edu
Reply-To: chet.ramey@case.edu
Subject: BASH Frequently-Asked Questions (FAQ version 3.36)
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: Thu Dec 14 11:34:54 EST 2006
FAQ-Version: 3.35
Last-Modified: Fri May 11 16:18:55 EDT 2007
FAQ-Version: 3.36
Bash-Version: 3.2
URL: ftp://ftp.cwru.edu/pub/bash/FAQ
Maintainer: chet@po.cwru.edu (Chet Ramey)
This is the Bash FAQ, version 3.35, for Bash version 3.2.
This is the Bash FAQ, version 3.36, for Bash version 3.2.
This document contains a set of frequently-asked questions concerning
Bash, the GNU Bourne-Again Shell. Bash is a freely-available command
@@ -93,6 +92,8 @@ E11) If I resize my xterm while another program is running, why doesn't bash
notice the change?
E12) Why don't negative offsets in substring expansion work like I expect?
E13) Why does filename completion misbehave if a colon appears in the filename?
E14) Why does quoting the pattern argument to the regular expression matching
conditional operator (=~) cause matching to stop working?
Section F: Things to watch out for on certain Unix versions
@@ -922,7 +923,9 @@ D1) Why does bash run a different version of `command' than
On many systems, `which' is actually a csh script that assumes
you're running csh. In tcsh, `which' and its cousin `where'
are builtins. On other Unix systems, `which' is a perl script
that uses the PATH environment variable.
that uses the PATH environment variable. Many Linux distributions
use GNU `which', which is a C program that can understand shell
aliases.
The csh script version reads the csh startup files from your
home directory and uses those to determine which `command' will
@@ -1439,6 +1442,34 @@ COMP_WORDBREAKS=${COMP_WORDBREAKS//:}
You can also quote the colon with a backslash to achieve the same result
temporarily.
E14) Why does quoting the pattern argument to the regular expression matching
conditional operator (=~) cause regexp matching to stop working?
In versions of bash prior to bash-3.2, the effect of quoting the regular
expression argument to the [[ command's =~ operator was not specified.
The practical effect was that double-quoting the pattern argument required
backslashes to quote special pattern characters, which interfered with the
backslash processing performed by double-quoted word expansion and was
inconsistent with how the == shell pattern matching operator treated
quoted characters.
In bash-3.2, the shell was changed to internally quote characters in single-
and double-quoted string arguments to the =~ operator, which suppresses the
special meaning of the characters special to regular expression processing
(`.', `[', `\', `(', `), `*', `+', `?', `{', `|', `^', and `$') and forces
them to be matched literally. This is consistent with how the `==' pattern
matching operator treats quoted portions of its pattern argument.
Since the treatment of quoted string arguments was changed, several issues
have arisen, chief among them the problem of white space in pattern arguments
and the differing treatment of quoted strings between bash-3.1 and bash-3.2.
Both problems may be solved by using a shell variable to hold the pattern.
Since word splitting is not performed when expanding shell variables in all
operands of the [[ command, this allows users to quote patterns as they wish
when assigning the variable, then expand the values to a single string that
may contain whitespace. The first problem may be solved by using backslashes
or any other quoting mechanism to escape the white space in the patterns.
Section F: Things to watch out for on certain Unix versions
F1) Why can't I use command line editing in my `cmdtool'?
+1886
View File
File diff suppressed because it is too large Load Diff
+37 -5
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.35)
Subject: BASH Frequently-Asked Questions (FAQ version 3.36)
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: Thu Dec 14 11:34:54 EST 2006
FAQ-Version: 3.35
Last-Modified: Fri May 11 16:18:55 EDT 2007
FAQ-Version: 3.36
Bash-Version: 3.2
URL: ftp://ftp.cwru.edu/pub/bash/FAQ
Maintainer: chet@po.cwru.edu (Chet Ramey)
This is the Bash FAQ, version 3.35, for Bash version 3.2.
This is the Bash FAQ, version 3.36, for Bash version 3.2.
This document contains a set of frequently-asked questions concerning
Bash, the GNU Bourne-Again Shell. Bash is a freely-available command
@@ -97,6 +97,8 @@ E11) If I resize my xterm while another program is running, why doesn't bash
notice the change?
E12) Why don't negative offsets in substring expansion work like I expect?
E13) Why does filename completion misbehave if a colon appears in the filename?
E14) Why does quoting the pattern argument to the regular expression matching
conditional operator (=~) cause matching to stop working?
Section F: Things to watch out for on certain Unix versions
@@ -926,7 +928,9 @@ D1) Why does bash run a different version of `command' than
On many systems, `which' is actually a csh script that assumes
you're running csh. In tcsh, `which' and its cousin `where'
are builtins. On other Unix systems, `which' is a perl script
that uses the PATH environment variable.
that uses the PATH environment variable. Many Linux distributions
use GNU `which', which is a C program that can understand shell
aliases.
The csh script version reads the csh startup files from your
home directory and uses those to determine which `command' will
@@ -1443,6 +1447,34 @@ COMP_WORDBREAKS=${COMP_WORDBREAKS//:}
You can also quote the colon with a backslash to achieve the same result
temporarily.
E14) Why does quoting the pattern argument to the regular expression matching
conditional operator (=~) cause regexp matching to stop working?
In versions of bash prior to bash-3.2, the effect of quoting the regular
expression argument to the [[ command's =~ operator was not specified.
The practical effect was that double-quoting the pattern argument required
backslashes to quote special pattern characters, which interfered with the
backslash processing performed by double-quoted word expansion and was
inconsistent with how the == shell pattern matching operator treated
quoted characters.
In bash-3.2, the shell was changed to internally quote characters in single-
and double-quoted string arguments to the =~ operator, which suppresses the
special meaning of the characters special to regular expression processing
(`.', `[', `\', `(', `), `*', `+', `?', `{', `|', `^', and `$') and forces
them to be matched literally. This is consistent with how the `==' pattern
matching operator treats quoted portions of its pattern argument.
Since the treatment of quoted string arguments was changed, several issues
have arisen, chief among them the problem of white space in pattern arguments
and the differing treatment of quoted strings between bash-3.1 and bash-3.2.
Both problems may be solved by using a shell variable to hold the pattern.
Since word splitting is not performed when expanding shell variables in all
operands of the [[ command, this allows users to quote patterns as they wish
when assigning the variable, then expand the values to a single string that
may contain whitespace. The first problem may be solved by using backslashes
or any other quoting mechanism to escape the white space in the patterns.
Section F: Things to watch out for on certain Unix versions
F1) Why can't I use command line editing in my `cmdtool'?
+37 -5
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.35)
Subject: [gnu.bash.bug] BASH Frequently-Asked Questions (FAQ version 3.36)
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: Thu Dec 14 11:34:54 EST 2006
FAQ-Version: 3.35
Last-Modified: Fri May 11 16:18:55 EDT 2007
FAQ-Version: 3.36
Bash-Version: 3.2
URL: ftp://ftp.cwru.edu/pub/bash/FAQ
Maintainer: chet@po.cwru.edu (Chet Ramey)
This is the Bash FAQ, version 3.35, for Bash version 3.2.
This is the Bash FAQ, version 3.36, for Bash version 3.2.
This document contains a set of frequently-asked questions concerning
Bash, the GNU Bourne-Again Shell. Bash is a freely-available command
@@ -97,6 +97,8 @@ E11) If I resize my xterm while another program is running, why doesn't bash
notice the change?
E12) Why don't negative offsets in substring expansion work like I expect?
E13) Why does filename completion misbehave if a colon appears in the filename?
E14) Why does quoting the pattern argument to the regular expression matching
conditional operator (=~) cause matching to stop working?
Section F: Things to watch out for on certain Unix versions
@@ -926,7 +928,9 @@ D1) Why does bash run a different version of `command' than
On many systems, `which' is actually a csh script that assumes
you're running csh. In tcsh, `which' and its cousin `where'
are builtins. On other Unix systems, `which' is a perl script
that uses the PATH environment variable.
that uses the PATH environment variable. Many Linux distributions
use GNU `which', which is a C program that can understand shell
aliases.
The csh script version reads the csh startup files from your
home directory and uses those to determine which `command' will
@@ -1443,6 +1447,34 @@ COMP_WORDBREAKS=${COMP_WORDBREAKS//:}
You can also quote the colon with a backslash to achieve the same result
temporarily.
E14) Why does quoting the pattern argument to the regular expression matching
conditional operator (=~) cause regexp matching to stop working?
In versions of bash prior to bash-3.2, the effect of quoting the regular
expression argument to the [[ command's =~ operator was not specified.
The practical effect was that double-quoting the pattern argument required
backslashes to quote special pattern characters, which interfered with the
backslash processing performed by double-quoted word expansion and was
inconsistent with how the == shell pattern matching operator treated
quoted characters.
In bash-3.2, the shell was changed to internally quote characters in single-
and double-quoted string arguments to the =~ operator, which suppresses the
special meaning of the characters special to regular expression processing
(`.', `[', `\', `(', `), `*', `+', `?', `{', `|', `^', and `$') and forces
them to be matched literally. This is consistent with how the `==' pattern
matching operator treats quoted portions of its pattern argument.
Since the treatment of quoted string arguments was changed, several issues
have arisen, chief among them the problem of white space in pattern arguments
and the differing treatment of quoted strings between bash-3.1 and bash-3.2.
Both problems may be solved by using a shell variable to hold the pattern.
Since word splitting is not performed when expanding shell variables in all
operands of the [[ command, this allows users to quote patterns as they wish
when assigning the variable, then expand the values to a single string that
may contain whitespace. The first problem may be solved by using backslashes
or any other quoting mechanism to escape the white space in the patterns.
Section F: Things to watch out for on certain Unix versions
F1) Why can't I use command line editing in my `cmdtool'?
+2 -2
View File
@@ -1,8 +1,8 @@
Archive-name: unix-faq/shell/bash
Posting-Frequency: monthly
Submitted-By: chet@po.cwru.edu (Chet Ramey)
Last-Modified: Thu Dec 14 11:34:54 EST 2006
FAQ-Version: 3.35
Last-Modified: Fri May 11 16:18:55 EDT 2007
FAQ-Version: 3.36
Bash-Version: 3.2
URL: ftp://ftp.cwru.edu/pub/bash/FAQ
Maintainer: chet@po.cwru.edu (Chet Ramey)
+1 -1
View File
@@ -1,6 +1,6 @@
%!PS-Adobe-3.0
%%Creator: groff version 1.19.1
%%CreationDate: Tue Jan 16 11:15:09 2007
%%CreationDate: Fri May 11 16:18:41 2007
%%DocumentNeededResources: font Times-Roman
%%+ font Times-Bold
%%DocumentSuppliedResources: procset grops 1.19 1
+2 -2
View File
@@ -2,9 +2,9 @@
Copyright (C) 1988-2007 Free Software Foundation, Inc.
@end ignore
@set LASTCHANGE Mon May 14 10:02:55 EDT 2007
@set LASTCHANGE Tue May 1 10:05:36 EDT 2007
@set EDITION 3.2
@set VERSION 3.2
@set UPDATED 14 May 2007
@set UPDATED 1 May 2007
@set UPDATED-MONTH May 2007
+23 -16
View File
@@ -188,9 +188,6 @@ static int execute_connection __P((COMMAND *, int, int, int, struct fd_bitmap *)
static int execute_intern_function __P((WORD_DESC *, COMMAND *));
/* The line number that the currently executing function starts on. */
static int function_line_number;
/* Set to 1 if fd 0 was the subject of redirection to a subshell. Global
so that reader_loop can set it to zero before executing a command. */
int stdin_redir;
@@ -204,19 +201,6 @@ char *this_command_name;
a debugger to know where exactly the program is currently executing. */
char *the_printed_command_except_trap;
static COMMAND *currently_executing_command;
struct stat SB; /* used for debugging */
static int special_builtin_failed;
/* XXX - set to 1 if we're running the DEBUG trap and we want to show the line
number containing the function name. Used by executing_line_number to
report the correct line number. Kind of a hack. */
static int showing_function_line;
static int line_number_for_err_trap;
/* For catching RETURN in a function. */
int return_catch_flag;
int return_catch_value;
@@ -238,6 +222,10 @@ REDIRECT *redirection_undo_list = (REDIRECT *)NULL;
that must be undone even when exec discards redirection_undo_list. */
REDIRECT *exec_redirection_undo_list = (REDIRECT *)NULL;
/* When greater than zero, value is the `level' of builtins we are
currently executing (e.g. `eval echo a' would have it set to 2). */
int executing_builtin = 0;
/* Non-zero if we have just forked and are currently running in a subshell
environment. */
int subshell_environment;
@@ -251,6 +239,22 @@ SHELL_VAR *this_shell_function;
/* If non-zero, matches in case and [[ ... ]] are case-insensitive */
int match_ignore_case = 0;
struct stat SB; /* used for debugging */
static int special_builtin_failed;
static COMMAND *currently_executing_command;
/* The line number that the currently executing function starts on. */
static int function_line_number;
/* XXX - set to 1 if we're running the DEBUG trap and we want to show the line
number containing the function name. Used by executing_line_number to
report the correct line number. Kind of a hack. */
static int showing_function_line;
static int line_number_for_err_trap;
struct fd_bitmap *current_fds_to_close = (struct fd_bitmap *)NULL;
#define FD_BITMAP_DEFAULT_SIZE 32
@@ -3006,6 +3010,8 @@ run_builtin:
if (builtin || func)
{
if (builtin)
unwind_protect_int (executing_builtin); /* modified in execute_builtin */
if (already_forked)
{
/* reset_terminating_signals (); */ /* XXX */
@@ -3171,6 +3177,7 @@ execute_builtin (builtin, words, flags, subshell)
add_unwind_protect (merge_temporary_env, (char *)NULL);
}
executing_builtin++;
result = ((*builtin) (words->next));
/* This shouldn't happen, but in case `return' comes back instead of
+29 -17
View File
@@ -188,9 +188,6 @@ static int execute_connection __P((COMMAND *, int, int, int, struct fd_bitmap *)
static int execute_intern_function __P((WORD_DESC *, COMMAND *));
/* The line number that the currently executing function starts on. */
static int function_line_number;
/* Set to 1 if fd 0 was the subject of redirection to a subshell. Global
so that reader_loop can set it to zero before executing a command. */
int stdin_redir;
@@ -204,19 +201,6 @@ char *this_command_name;
a debugger to know where exactly the program is currently executing. */
char *the_printed_command_except_trap;
static COMMAND *currently_executing_command;
struct stat SB; /* used for debugging */
static int special_builtin_failed;
/* XXX - set to 1 if we're running the DEBUG trap and we want to show the line
number containing the function name. Used by executing_line_number to
report the correct line number. Kind of a hack. */
static int showing_function_line;
static int line_number_for_err_trap;
/* For catching RETURN in a function. */
int return_catch_flag;
int return_catch_value;
@@ -238,6 +222,10 @@ REDIRECT *redirection_undo_list = (REDIRECT *)NULL;
that must be undone even when exec discards redirection_undo_list. */
REDIRECT *exec_redirection_undo_list = (REDIRECT *)NULL;
/* When greater than zero, value is the `level' of builtins we are
currently executing (e.g. `eval echo a' would have it set to 2). */
int executing_builtin = 0;
/* Non-zero if we have just forked and are currently running in a subshell
environment. */
int subshell_environment;
@@ -251,6 +239,22 @@ SHELL_VAR *this_shell_function;
/* If non-zero, matches in case and [[ ... ]] are case-insensitive */
int match_ignore_case = 0;
struct stat SB; /* used for debugging */
static int special_builtin_failed;
static COMMAND *currently_executing_command;
/* The line number that the currently executing function starts on. */
static int function_line_number;
/* XXX - set to 1 if we're running the DEBUG trap and we want to show the line
number containing the function name. Used by executing_line_number to
report the correct line number. Kind of a hack. */
static int showing_function_line;
static int line_number_for_err_trap;
struct fd_bitmap *current_fds_to_close = (struct fd_bitmap *)NULL;
#define FD_BITMAP_DEFAULT_SIZE 32
@@ -3006,6 +3010,8 @@ run_builtin:
if (builtin || func)
{
if (builtin)
unwind_protect_int (executing_builtin);
if (already_forked)
{
/* reset_terminating_signals (); */ /* XXX */
@@ -3171,6 +3177,7 @@ execute_builtin (builtin, words, flags, subshell)
add_unwind_protect (merge_temporary_env, (char *)NULL);
}
executing_builtin++;
result = ((*builtin) (words->next));
/* This shouldn't happen, but in case `return' comes back instead of
@@ -3496,13 +3503,18 @@ execute_subshell_builtin_or_function (words, redirects, builtin, var,
else
{
r = execute_builtin (builtin, words, flags, 1);
fflush (stdout);
if (r == EX_USAGE)
r = EX_BADUSAGE;
exit (r);
}
}
else
exit (execute_function (var, words, flags, fds_to_close, async, 1));
{
r = execute_function (var, words, flags, fds_to_close, async, 1);
fflush (stdout);
exit (r);
}
}
/* Execute a builtin or function in the current shell context. If BUILTIN
+65
View File
@@ -0,0 +1,65 @@
*** ../bash-20070510/jobs.c Thu Mar 8 16:05:50 2007
--- jobs.c Fri May 18 11:40:14 2007
***************
*** 784,792 ****
{
old = js.j_firstj++;
while (js.j_firstj != old)
{
if (js.j_firstj >= js.j_jobslots)
js.j_firstj = 0;
! if (jobs[js.j_firstj])
break;
js.j_firstj++;
--- 784,794 ----
{
old = js.j_firstj++;
+ if (old >= js.j_jobslots)
+ old = js.j_jobslots - 1;
while (js.j_firstj != old)
{
if (js.j_firstj >= js.j_jobslots)
js.j_firstj = 0;
! if (jobs[js.j_firstj] || js.j_firstj == old) /* needed if old == 0 */
break;
js.j_firstj++;
***************
*** 798,806 ****
{
old = js.j_lastj--;
while (js.j_lastj != old)
{
if (js.j_lastj < 0)
js.j_lastj = js.j_jobslots - 1;
! if (jobs[js.j_lastj])
break;
js.j_lastj--;
--- 800,810 ----
{
old = js.j_lastj--;
+ if (old < 0)
+ old = 0;
while (js.j_lastj != old)
{
if (js.j_lastj < 0)
js.j_lastj = js.j_jobslots - 1;
! if (jobs[js.j_lastj] || js.j_lastj == old) /* needed if old == js.j_jobslots */
break;
js.j_lastj--;
***************
*** 964,968 ****
realloc_jobs_list ();
! return (js.j_lastj ? js.j_lastj + 1 : 0);
}
--- 975,983 ----
realloc_jobs_list ();
! #ifdef DEBUG
! itrace("compact_jobs_list: returning %d", (js.j_lastj || jobs[js.j_lastj]) ? js.j_lastj + 1 : 0);
! #endif
!
! return ((js.j_lastj || jobs[js.j_lastj]) ? js.j_lastj + 1 : 0);
}
+99
View File
@@ -0,0 +1,99 @@
*** ../bash-20070510/jobs.c Thu Mar 8 16:05:50 2007
--- jobs.c Fri May 18 11:40:14 2007
***************
*** 784,792 ****
{
old = js.j_firstj++;
while (js.j_firstj != old)
{
if (js.j_firstj >= js.j_jobslots)
js.j_firstj = 0;
! if (jobs[js.j_firstj])
break;
js.j_firstj++;
--- 784,794 ----
{
old = js.j_firstj++;
+ if (old >= js.j_jobslots)
+ old = js.j_jobslots - 1;
while (js.j_firstj != old)
{
if (js.j_firstj >= js.j_jobslots)
js.j_firstj = 0;
! if (jobs[js.j_firstj] || js.j_firstj == old) /* needed if old == 0 */
break;
js.j_firstj++;
***************
*** 798,806 ****
{
old = js.j_lastj--;
while (js.j_lastj != old)
{
if (js.j_lastj < 0)
js.j_lastj = js.j_jobslots - 1;
! if (jobs[js.j_lastj])
break;
js.j_lastj--;
--- 800,810 ----
{
old = js.j_lastj--;
+ if (old < 0)
+ old = 0;
while (js.j_lastj != old)
{
if (js.j_lastj < 0)
js.j_lastj = js.j_jobslots - 1;
! if (jobs[js.j_lastj] || js.j_lastj == old) /* needed if old == js.j_jobslots */
break;
js.j_lastj--;
***************
*** 901,904 ****
--- 905,909 ----
nlist = (js.j_jobslots == nsize) ? jobs : (JOB **) xmalloc (nsize * sizeof (JOB *));
+ js.c_reaped = js.j_ndead = 0;
for (i = j = 0; i < js.j_jobslots; i++)
if (jobs[i])
***************
*** 909,912 ****
--- 914,922 ----
nprev = j;
nlist[j++] = jobs[i];
+ if (jobs[i]->state == JDEAD)
+ {
+ js.j_ndead++;
+ js.c_reaped += processes_in_job (i);
+ }
}
***************
*** 914,918 ****
itrace ("realloc_jobs_list: resize jobs list from %d to %d", js.j_jobslots, nsize);
itrace ("realloc_jobs_list: j_lastj changed from %d to %d", js.j_lastj, (j > 0) ? j - 1 : 0);
! itrace ("realloc_jobs_list: j_njobs changed from %d to %d", js.j_njobs, (j > 0) ? j - 1 : 0);
#endif
--- 924,929 ----
itrace ("realloc_jobs_list: resize jobs list from %d to %d", js.j_jobslots, nsize);
itrace ("realloc_jobs_list: j_lastj changed from %d to %d", js.j_lastj, (j > 0) ? j - 1 : 0);
! itrace ("realloc_jobs_list: j_njobs changed from %d to %d", js.j_njobs, j);
! itrace ("realloc_jobs_list: js.j_ndead %d js.c_reaped %d", js.j_ndead, js.c_reaped);
#endif
***************
*** 964,968 ****
realloc_jobs_list ();
! return (js.j_lastj ? js.j_lastj + 1 : 0);
}
--- 975,983 ----
realloc_jobs_list ();
! #ifdef DEBUG
! itrace("compact_jobs_list: returning %d", (js.j_lastj || jobs[js.j_lastj]) ? js.j_lastj + 1 : 0);
! #endif
!
! return ((js.j_lastj || jobs[js.j_lastj]) ? js.j_lastj + 1 : 0);
}
+19 -4
View File
@@ -783,11 +783,13 @@ reset_job_indices ()
if (jobs[js.j_firstj] == 0)
{
old = js.j_firstj++;
if (old >= js.j_jobslots)
old = js.j_jobslots - 1;
while (js.j_firstj != old)
{
if (js.j_firstj >= js.j_jobslots)
js.j_firstj = 0;
if (jobs[js.j_firstj])
if (jobs[js.j_firstj] || js.j_firstj == old) /* needed if old == 0 */
break;
js.j_firstj++;
}
@@ -797,11 +799,13 @@ reset_job_indices ()
if (jobs[js.j_lastj] == 0)
{
old = js.j_lastj--;
if (old < 0)
old = 0;
while (js.j_lastj != old)
{
if (js.j_lastj < 0)
js.j_lastj = js.j_jobslots - 1;
if (jobs[js.j_lastj])
if (jobs[js.j_lastj] || js.j_lastj == old) /* needed if old == js.j_jobslots */
break;
js.j_lastj--;
}
@@ -900,6 +904,7 @@ realloc_jobs_list ()
BLOCK_CHILD (set, oset);
nlist = (js.j_jobslots == nsize) ? jobs : (JOB **) xmalloc (nsize * sizeof (JOB *));
js.c_reaped = js.j_ndead = 0;
for (i = j = 0; i < js.j_jobslots; i++)
if (jobs[i])
{
@@ -908,12 +913,18 @@ realloc_jobs_list ()
if (i == js.j_previous)
nprev = j;
nlist[j++] = jobs[i];
if (jobs[i]->state == JDEAD)
{
js.j_ndead++;
js.c_reaped += processes_in_job (i);
}
}
#if defined (DEBUG)
itrace ("realloc_jobs_list: resize jobs list from %d to %d", js.j_jobslots, nsize);
itrace ("realloc_jobs_list: j_lastj changed from %d to %d", js.j_lastj, (j > 0) ? j - 1 : 0);
itrace ("realloc_jobs_list: j_njobs changed from %d to %d", js.j_njobs, (j > 0) ? j - 1 : 0);
itrace ("realloc_jobs_list: j_njobs changed from %d to %d", js.j_njobs, j);
itrace ("realloc_jobs_list: js.j_ndead %d js.c_reaped %d", js.j_ndead, js.c_reaped);
#endif
js.j_firstj = 0;
@@ -963,7 +974,11 @@ compact_jobs_list (flags)
reap_dead_jobs ();
realloc_jobs_list ();
return (js.j_lastj ? js.j_lastj + 1 : 0);
#ifdef DEBUG
itrace("compact_jobs_list: returning %d", (js.j_lastj || jobs[js.j_lastj]) ? js.j_lastj + 1 : 0);
#endif
return ((js.j_lastj || jobs[js.j_lastj]) ? js.j_lastj + 1 : 0);
}
/* Delete the job at INDEX from the job list. Must be called
+38 -26
View File
@@ -3,7 +3,7 @@
/* This file works with both POSIX and BSD systems. It implements job
control. */
/* Copyright (C) 1989-2006 Free Software Foundation, Inc.
/* Copyright (C) 1989-2007 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -783,11 +783,13 @@ reset_job_indices ()
if (jobs[js.j_firstj] == 0)
{
old = js.j_firstj++;
if (old >= js.j_jobslots)
old = js.j_jobslots - 1;
while (js.j_firstj != old)
{
if (js.j_firstj >= js.j_jobslots)
js.j_firstj = 0;
if (jobs[js.j_firstj])
if (jobs[js.j_firstj] || js.j_firstj == old) /* needed if old == 0 */
break;
js.j_firstj++;
}
@@ -797,11 +799,13 @@ reset_job_indices ()
if (jobs[js.j_lastj] == 0)
{
old = js.j_lastj--;
if (old < 0)
old = 0;
while (js.j_lastj != old)
{
if (js.j_lastj < 0)
js.j_lastj = js.j_jobslots - 1;
if (jobs[js.j_lastj])
if (jobs[js.j_lastj] || js.j_lastj == old) /* needed if old == js.j_jobslots */
break;
js.j_lastj--;
}
@@ -900,6 +904,7 @@ realloc_jobs_list ()
BLOCK_CHILD (set, oset);
nlist = (js.j_jobslots == nsize) ? jobs : (JOB **) xmalloc (nsize * sizeof (JOB *));
js.c_reaped = js.j_ndead = 0;
for (i = j = 0; i < js.j_jobslots; i++)
if (jobs[i])
{
@@ -908,12 +913,18 @@ realloc_jobs_list ()
if (i == js.j_previous)
nprev = j;
nlist[j++] = jobs[i];
if (jobs[i]->state == JDEAD)
{
js.j_ndead++;
js.c_reaped += processes_in_job (i);
}
}
#if defined (DEBUG)
itrace ("realloc_jobs_list: resize jobs list from %d to %d", js.j_jobslots, nsize);
itrace ("realloc_jobs_list: j_lastj changed from %d to %d", js.j_lastj, (j > 0) ? j - 1 : 0);
itrace ("realloc_jobs_list: j_njobs changed from %d to %d", js.j_njobs, (j > 0) ? j - 1 : 0);
itrace ("realloc_jobs_list: j_njobs changed from %d to %d", js.j_njobs, j);
itrace ("realloc_jobs_list: js.j_ndead %d js.c_reaped %d", js.j_ndead, js.c_reaped);
#endif
js.j_firstj = 0;
@@ -963,7 +974,8 @@ compact_jobs_list (flags)
reap_dead_jobs ();
realloc_jobs_list ();
return (js.j_lastj);
itrace("compact_jobs_list: returning %d", (js.j_lastj || jobs[js.j_lastj]) ? js.j_lastj + 1 : 0);
return ((js.j_lastj || jobs[js.j_lastj]) ? js.j_lastj + 1 : 0);
}
/* Delete the job at INDEX from the job list. Must be called
@@ -1391,7 +1403,7 @@ j_strsignal (s)
if (x == 0)
{
x = retcode_name_buffer;
sprintf (x, "Signal %d", s);
sprintf (x, _("Signal %d"), s);
}
return x;
}
@@ -1405,20 +1417,20 @@ printable_job_status (j, p, format)
static char *temp;
int es;
temp = "Done";
temp = _("Done");
if (STOPPED (j) && format == 0)
{
if (posixly_correct == 0 || p == 0 || (WIFSTOPPED (p->status) == 0))
temp = "Stopped";
temp = _("Stopped");
else
{
temp = retcode_name_buffer;
sprintf (temp, "Stopped(%s)", signal_name (WSTOPSIG (p->status)));
sprintf (temp, _("Stopped(%s)"), signal_name (WSTOPSIG (p->status)));
}
}
else if (RUNNING (j))
temp = "Running";
temp = _("Running");
else
{
if (WIFSTOPPED (p->status))
@@ -1430,14 +1442,14 @@ printable_job_status (j, p, format)
temp = retcode_name_buffer;
es = WEXITSTATUS (p->status);
if (es == 0)
strcpy (temp, "Done");
strcpy (temp, _("Done"));
else if (posixly_correct)
sprintf (temp, "Done(%d)", es);
sprintf (temp, _("Done(%d)"), es);
else
sprintf (temp, "Exit %d", es);
sprintf (temp, _("Exit %d"), es);
}
else
temp = "Unknown status";
temp = _("Unknown status");
}
return temp;
@@ -1524,7 +1536,7 @@ print_pipeline (p, job_index, format, stream)
if ((WIFSTOPPED (show->status) == 0) &&
(WIFCONTINUED (show->status) == 0) &&
WIFCORED (show->status))
fprintf (stream, "(core dumped) ");
fprintf (stream, _("(core dumped) "));
}
}
@@ -1543,7 +1555,7 @@ print_pipeline (p, job_index, format, stream)
if (strcmp (temp, jobs[job_index]->wd) != 0)
fprintf (stream,
" (wd: %s)", polite_directory_format (jobs[job_index]->wd));
_(" (wd: %s)"), polite_directory_format (jobs[job_index]->wd));
}
if (format || (p == last))
@@ -1735,7 +1747,7 @@ make_child (command, async_p)
B.4.3.3, p. 237 also covers this, in the context of job control
shells. */
if (setpgid (mypid, pipeline_pgrp) < 0)
sys_error ("child setpgid (%ld to %ld)", (long)mypid, (long)pipeline_pgrp);
sys_error (_("child setpgid (%ld to %ld)"), (long)mypid, (long)pipeline_pgrp);
/* By convention (and assumption above), if
pipeline_pgrp == shell_pgrp, we are making a child for
@@ -2228,7 +2240,7 @@ raw_job_exit_status (job)
p = jobs[job]->pipe;
do
{
if (p->status != EXECUTION_SUCCESS) fail = p->status;
if (WSTATUS (p->status) != EXECUTION_SUCCESS) fail = WSTATUS(p->status);
p = p->next;
}
while (p != jobs[job]->pipe);
@@ -2370,7 +2382,7 @@ wait_for (pid)
if (r == -1 && errno == ECHILD)
{
child->running = PS_DONE;
child->status = 0; /* XXX -- can't find true status */
WSTATUS (child->status) = 0; /* XXX -- can't find true status */
js.c_living = 0; /* no living child processes */
if (job != NO_JOB)
{
@@ -3399,7 +3411,7 @@ notify_of_job_status ()
signal_is_trapped (termsig) == 0)
{
/* Don't print `0' for a line number. */
fprintf (stderr, "%s: line %d: ", get_name_for_error (), (line_number == 0) ? 1 : line_number);
fprintf (stderr, _("%s: line %d: "), get_name_for_error (), (line_number == 0) ? 1 : line_number);
pretty_print_job (job, JLIST_NONINTERACTIVE, stderr);
}
else if (IS_FOREGROUND (job))
@@ -3413,7 +3425,7 @@ notify_of_job_status ()
fprintf (stderr, "%s", j_strsignal (termsig));
if (WIFCORED (s))
fprintf (stderr, " (core dumped)");
fprintf (stderr, _(" (core dumped)"));
fprintf (stderr, "\n");
}
@@ -3425,7 +3437,7 @@ notify_of_job_status ()
pretty_print_job (job, JLIST_STANDARD, stderr);
if (dir && strcmp (dir, jobs[job]->wd) != 0)
fprintf (stderr,
"(wd now: %s)\n", polite_directory_format (dir));
_("(wd now: %s)\n"), polite_directory_format (dir));
}
jobs[job]->flags |= J_NOTIFIED;
@@ -3438,7 +3450,7 @@ notify_of_job_status ()
pretty_print_job (job, JLIST_STANDARD, stderr);
if (dir && (strcmp (dir, jobs[job]->wd) != 0))
fprintf (stderr,
"(wd now: %s)\n", polite_directory_format (dir));
_("(wd now: %s)\n"), polite_directory_format (dir));
jobs[job]->flags |= J_NOTIFIED;
break;
@@ -3466,7 +3478,7 @@ initialize_job_control (force)
if (shell_pgrp == -1)
{
sys_error ("initialize_job_control: getpgrp failed");
sys_error (_("initialize_job_control: getpgrp failed"));
exit (1);
}
@@ -3512,7 +3524,7 @@ initialize_job_control (force)
/* Make sure that we are using the new line discipline. */
if (set_new_line_discipline (shell_tty) < 0)
{
sys_error ("initialize_job_control: line discipline");
sys_error (_("initialize_job_control: line discipline"));
job_control = 0;
}
else
@@ -3522,7 +3534,7 @@ initialize_job_control (force)
if ((original_pgrp != shell_pgrp) && (setpgid (0, shell_pgrp) < 0))
{
sys_error ("initialize_job_control: setpgid");
sys_error (_("initialize_job_control: setpgid"));
shell_pgrp = original_pgrp;
}
+7
View File
@@ -136,6 +136,8 @@ size_t ifs_firstc_len;
unsigned char ifs_firstc;
#endif
int assigning_in_environment;
/* Extern functions and variables from different files. */
extern int last_command_exit_value, last_command_exit_signal;
extern int subshell_environment;
@@ -161,6 +163,8 @@ int allow_null_glob_expansion;
/* Non-zero means to throw an error when globbing fails to match anything. */
int fail_glob_expansion;
int assigining_in_environment;
#if 0
/* Variables to keep track of which words in an expanded word list (the
output of expand_word_list_internal) are the result of globbing
@@ -7700,6 +7704,7 @@ exp_jump_to_top_level (v)
/* Cleanup code goes here. */
expand_no_split_dollar_star = 0; /* XXX */
expanding_redir = 0;
assigning_in_environment = 0;
top_level_cleanup (); /* from sig.c */
@@ -8202,7 +8207,9 @@ expand_word_list_internal (list, eflags)
for (temp_list = subst_assign_varlist; temp_list; temp_list = temp_list->next)
{
this_command_name = (char *)NULL;
assigning_in_environment = (assign_func == assign_in_env);
tint = (*assign_func) (temp_list->word);
assigning_in_environment = 0;
/* Variable assignment errors in non-interactive shells running
in Posix.2 mode cause the shell to exit. */
if (tint == 0)
+12 -4
View File
@@ -161,6 +161,8 @@ int allow_null_glob_expansion;
/* Non-zero means to throw an error when globbing fails to match anything. */
int fail_glob_expansion;
int assigining_in_environment;
#if 0
/* Variables to keep track of which words in an expanded word list (the
output of expand_word_list_internal) are the result of globbing
@@ -4006,7 +4008,11 @@ parameter_brace_remove_pattern (varname, value, patstr, rtype, quoted)
if (patspec == RP_LONG_LEFT || patspec == RP_LONG_RIGHT)
patstr++;
pattern = getpattern (patstr, quoted, 1);
/* Need to pass getpattern newly-allocated memory in case of expansion --
the expansion code will free the passed string on an error. */
temp1 = savestring (patstr);
pattern = getpattern (temp1, quoted, 1);
free (temp1);
temp1 = (char *)NULL; /* shut up gcc */
switch (vtype)
@@ -5974,7 +5980,7 @@ parameter_brace_expand (string, indexp, quoted, quoted_dollar_atp, contains_doll
int t_index, sindex, c, tflag;
intmax_t number;
value = (char *)NULL;
temp = temp1 = value = (char *)NULL;
var_is_set = var_is_null = var_is_special = check_nullness = 0;
want_substring = want_indir = want_patsub = 0;
@@ -6059,7 +6065,6 @@ parameter_brace_expand (string, indexp, quoted, quoted_dollar_atp, contains_doll
temp = (char *)NULL;
goto bad_substitution;
}
/* Indirect expansion begins with a `!'. A valid indirect expansion is
either a variable name, one of the positional parameters or a special
variable that expands to one of the positional parameters. */
@@ -7697,6 +7702,7 @@ exp_jump_to_top_level (v)
/* Cleanup code goes here. */
expand_no_split_dollar_star = 0; /* XXX */
expanding_redir = 0;
assigning_in_environment = 0;
top_level_cleanup (); /* from sig.c */
@@ -7917,7 +7923,7 @@ glob_expand_word_list (tlist, eflags)
else if (fail_glob_expansion != 0)
{
report_error (_("no match: %s"), tlist->word->word);
jump_to_top_level (DISCARD);
exp_jump_to_top_level (DISCARD);
}
else if (allow_null_glob_expansion == 0)
{
@@ -8199,7 +8205,9 @@ expand_word_list_internal (list, eflags)
for (temp_list = subst_assign_varlist; temp_list; temp_list = temp_list->next)
{
this_command_name = (char *)NULL;
assigning_in_environment = (assign_func == assign_in_env);
tint = (*assign_func) (temp_list->word);
assigning_in_environment = 0;
/* Variable assignment errors in non-interactive shells running
in Posix.2 mode cause the shell to exit. */
if (tint == 0)
-47
View File
@@ -70,50 +70,3 @@ fu%nc ()
{
echo abcde
}
a is a function
a ()
{
cat <<-'+'
cat - | utkSort
itkSchemaToColumnType
atkCacheToColumnType \"$npName\" | atkActiveTableLineSelect
| utkSort
atkCacheToColumnType \"$npName\" |
atkTransactionTableLineSelect | utkSort
itkDirToColumnType \"$dirName\" | atkActiveTableLineSelect |
utkSort
itkDirToColumnType \"$dirName\" | atkActiveTableLineSelect |
utkSort
+
| tr "\t" " " | tr -s " "
}
b is a function
b ()
{
cat /etc/passwd | cat - <<-'+'
more
passwords
from
the
file
+
| tr -s " "
}
c is a function
c ()
{
cat /etc/passwd | tr -s " " | cat - <<-'+'
more
passwords
from
the
file
+
| cat - <<-'foo'
last
bunch
of
words
foo
}
-2
View File
@@ -65,5 +65,3 @@ type tf
type tf2
tf
${THIS_SH} ./cprint1.sub
+11 -15
View File
@@ -1,6 +1,6 @@
/* variables.c -- Functions for hacking shell variables. */
/* Copyright (C) 1987-2005 Free Software Foundation, Inc.
/* Copyright (C) 1987-2007 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -92,6 +92,8 @@ extern char *the_printed_command_except_trap;
extern char *this_command_name;
extern char *command_execution_string;
extern time_t shell_start_time;
extern int assigning_in_environment;
extern int executing_builtin;
#if defined (READLINE)
extern int no_line_editing;
@@ -135,6 +137,13 @@ WORD_LIST *rest_of_args = (WORD_LIST *)NULL;
/* The value of $$. */
pid_t dollar_dollar_pid;
/* Non-zero means that we have to remake EXPORT_ENV. */
int array_needs_making = 1;
/* The number of times BASH has been executed. This is set
by initialize_variables (). */
int shell_level = 0;
/* An array which is passed to commands as their environment. It is
manufactured from the union of the initial environment and the
shell variables that are marked for export. */
@@ -147,13 +156,6 @@ static int winsize_assignment; /* currently assigning to LINES or COLUMNS */
static int winsize_assigned; /* assigned to LINES or COLUMNS */
#endif
/* Non-zero means that we have to remake EXPORT_ENV. */
int array_needs_making = 1;
/* The number of times BASH has been executed. This is set
by initialize_variables (). */
int shell_level = 0;
/* Some forward declarations. */
static void create_variable_tables __P((void));
@@ -1579,7 +1581,7 @@ SHELL_VAR *
find_variable (name)
const char *name;
{
return (find_variable_internal (name, (expanding_redir == 0 && this_shell_builtin != 0)));
return (find_variable_internal (name, (expanding_redir == 0 && (assigning_in_environment || executing_builtin))));
}
/* Look up the function entry whose name matches STRING.
@@ -2206,13 +2208,7 @@ assign_in_env (word)
}
temp = name + offset + 1;
#if 0
temp = (xstrchr (temp, '~') != 0) ? bash_tilde_expand (temp, 1) : savestring (temp);
value = expand_string_unsplit_to_string (temp, 0);
free (temp);
#else
value = expand_assignment_string_to_string (temp, 0);
#endif
}
if (temporary_env == 0)
+18 -17
View File
@@ -1,6 +1,6 @@
/* variables.c -- Functions for hacking shell variables. */
/* Copyright (C) 1987-2005 Free Software Foundation, Inc.
/* Copyright (C) 1987-2007 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -92,6 +92,7 @@ extern char *the_printed_command_except_trap;
extern char *this_command_name;
extern char *command_execution_string;
extern time_t shell_start_time;
extern int assigning_in_environment;
#if defined (READLINE)
extern int no_line_editing;
@@ -135,6 +136,13 @@ WORD_LIST *rest_of_args = (WORD_LIST *)NULL;
/* The value of $$. */
pid_t dollar_dollar_pid;
/* Non-zero means that we have to remake EXPORT_ENV. */
int array_needs_making = 1;
/* The number of times BASH has been executed. This is set
by initialize_variables (). */
int shell_level = 0;
/* An array which is passed to commands as their environment. It is
manufactured from the union of the initial environment and the
shell variables that are marked for export. */
@@ -147,13 +155,6 @@ static int winsize_assignment; /* currently assigning to LINES or COLUMNS */
static int winsize_assigned; /* assigned to LINES or COLUMNS */
#endif
/* Non-zero means that we have to remake EXPORT_ENV. */
int array_needs_making = 1;
/* The number of times BASH has been executed. This is set
by initialize_variables (). */
int shell_level = 0;
/* Some forward declarations. */
static void create_variable_tables __P((void));
@@ -1579,7 +1580,7 @@ SHELL_VAR *
find_variable (name)
const char *name;
{
return (find_variable_internal (name, (expanding_redir == 0 && this_shell_builtin != 0)));
return (find_variable_internal (name, (expanding_redir == 0 && (assigning_in_environment || this_shell_builtin != 0))));
}
/* Look up the function entry whose name matches STRING.
@@ -1843,11 +1844,17 @@ make_variable_value (var, value, flags)
oval = value_cell (var);
lval = evalexp (oval, &expok); /* ksh93 seems to do this */
if (expok == 0)
jump_to_top_level (DISCARD);
{
top_level_cleanup ();
jump_to_top_level (DISCARD);
}
}
rval = evalexp (value, &expok);
if (expok == 0)
jump_to_top_level (DISCARD);
{
top_level_cleanup ();
jump_to_top_level (DISCARD);
}
if (flags & ASS_APPEND)
rval += lval;
retval = itos (rval);
@@ -2200,13 +2207,7 @@ assign_in_env (word)
}
temp = name + offset + 1;
#if 0
temp = (xstrchr (temp, '~') != 0) ? bash_tilde_expand (temp, 1) : savestring (temp);
value = expand_string_unsplit_to_string (temp, 0);
free (temp);
#else
value = expand_assignment_string_to_string (temp, 0);
#endif
}
if (temporary_env == 0)