No specific user configuration
[platform/upstream/bash.git] / doc / rose94.ps
1 %!PS-Adobe-3.0
2 %%Creator: groff version 1.08
3 %%DocumentNeededResources: font Times-Bold
4 %%+ font Times-Italic
5 %%+ font Times-Roman
6 %%+ font Courier
7 %%+ font Symbol
8 %%DocumentSuppliedResources: procset grops 1.08 0
9 %%Pages: 13
10 %%PageOrder: Ascend
11 %%Orientation: Portrait
12 %%EndComments
13 %%BeginProlog
14 %%BeginResource: procset grops 1.08 0
15 /setpacking where{
16 pop
17 currentpacking
18 true setpacking
19 }if
20 /grops 120 dict dup begin
21 /SC 32 def
22 /A/show load def
23 /B{0 SC 3 -1 roll widthshow}bind def
24 /C{0 exch ashow}bind def
25 /D{0 exch 0 SC 5 2 roll awidthshow}bind def
26 /E{0 rmoveto show}bind def
27 /F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def
28 /G{0 rmoveto 0 exch ashow}bind def
29 /H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
30 /I{0 exch rmoveto show}bind def
31 /J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def
32 /K{0 exch rmoveto 0 exch ashow}bind def
33 /L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
34 /M{rmoveto show}bind def
35 /N{rmoveto 0 SC 3 -1 roll widthshow}bind def
36 /O{rmoveto 0 exch ashow}bind def
37 /P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
38 /Q{moveto show}bind def
39 /R{moveto 0 SC 3 -1 roll widthshow}bind def
40 /S{moveto 0 exch ashow}bind def
41 /T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def
42 /SF{
43 findfont exch
44 [exch dup 0 exch 0 exch neg 0 0]makefont
45 dup setfont
46 [exch/setfont cvx]cvx bind def
47 }bind def
48 /MF{
49 findfont
50 [5 2 roll
51 0 3 1 roll 
52 neg 0 0]makefont
53 dup setfont
54 [exch/setfont cvx]cvx bind def
55 }bind def
56 /level0 0 def
57 /RES 0 def
58 /PL 0 def
59 /LS 0 def
60 /PLG{
61 gsave newpath clippath pathbbox grestore
62 exch pop add exch pop
63 }bind def
64 /BP{
65 /level0 save def
66 1 setlinecap
67 1 setlinejoin
68 72 RES div dup scale
69 LS{
70 90 rotate
71 }{
72 0 PL translate
73 }ifelse
74 1 -1 scale
75 }bind def
76 /EP{
77 level0 restore
78 showpage
79 }bind def
80 /DA{
81 newpath arcn stroke
82 }bind def
83 /SN{
84 transform
85 .25 sub exch .25 sub exch
86 round .25 add exch round .25 add exch
87 itransform
88 }bind def
89 /DL{
90 SN
91 moveto
92 SN
93 lineto stroke
94 }bind def
95 /DC{
96 newpath 0 360 arc closepath
97 }bind def
98 /TM matrix def
99 /DE{
100 TM currentmatrix pop
101 translate scale newpath 0 0 .5 0 360 arc closepath
102 TM setmatrix
103 }bind def
104 /RC/rcurveto load def
105 /RL/rlineto load def
106 /ST/stroke load def
107 /MT/moveto load def
108 /CL/closepath load def
109 /FL{
110 currentgray exch setgray fill setgray
111 }bind def
112 /BL/fill load def
113 /LW/setlinewidth load def
114 /RE{
115 findfont
116 dup maxlength 1 index/FontName known not{1 add}if dict begin
117 {
118 1 index/FID ne{def}{pop pop}ifelse
119 }forall
120 /Encoding exch def
121 dup/FontName exch def
122 currentdict end definefont pop
123 }bind def
124 /DEFS 0 def
125 /EBEGIN{
126 moveto
127 DEFS begin
128 }bind def
129 /EEND/end load def
130 /CNT 0 def
131 /level1 0 def
132 /PBEGIN{
133 /level1 save def
134 translate
135 div 3 1 roll div exch scale
136 neg exch neg exch translate
137 0 setgray
138 0 setlinecap
139 1 setlinewidth
140 0 setlinejoin
141 10 setmiterlimit
142 []0 setdash
143 /setstrokeadjust where{
144 pop
145 false setstrokeadjust
146 }if
147 /setoverprint where{
148 pop
149 false setoverprint
150 }if
151 newpath
152 /CNT countdictstack def
153 userdict begin
154 /showpage{}def
155 }bind def
156 /PEND{
157 clear
158 countdictstack CNT sub{end}repeat
159 level1 restore
160 }bind def
161 end def
162 /setpacking where{
163 pop
164 setpacking
165 }if
166 %%EndResource
167 %%IncludeResource: font Times-Bold
168 %%IncludeResource: font Times-Italic
169 %%IncludeResource: font Times-Roman
170 %%IncludeResource: font Courier
171 %%IncludeResource: font Symbol
172 grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72 def/PL
173 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron/scaron/zcaron
174 /Ydieresis/trademark/quotesingle/.notdef/.notdef/.notdef/.notdef/.notdef
175 /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
176 /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/space
177 /exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft
178 /parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four
179 /five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C
180 /D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash
181 /bracketright/circumflex/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q
182 /r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase
183 /guillemotleft/guillemotright/bullet/florin/fraction/perthousand/dagger
184 /daggerdbl/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut
185 /dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash
186 /quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen/brokenbar
187 /section/dieresis/copyright/ordfeminine/guilsinglleft/logicalnot/minus
188 /registered/macron/degree/plusminus/twosuperior/threesuperior/acute/mu
189 /paragraph/periodcentered/cedilla/onesuperior/ordmasculine/guilsinglright
190 /onequarter/onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde
191 /Adieresis/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute
192 /Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
193 /multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls
194 /agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla/egrave/eacute
195 /ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve
196 /oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex
197 /udieresis/yacute/thorn/ydieresis]def/Courier@0 ENC0/Courier RE/Times-Roman@0
198 ENC0/Times-Roman RE/Times-Italic@0 ENC0/Times-Italic RE/Times-Bold@0 ENC0
199 /Times-Bold RE
200 %%EndProlog
201 %%Page: 1 1
202 %%BeginPageSetup
203 BP
204 %%EndPageSetup
205 /F0 12/Times-Bold@0 SF(Bash, the Bour)210.99 123 Q(ne\255Again Shell)-.18 E/F1
206 10/Times-Italic@0 SF(Chet Rame)263.85 147 Q(y)-.3 E(Case W)221.72 159 Q
207 (estern Reserve Univer)-.92 E(sity)-.1 E -.15(ch)250.425 171 S(et@po.cwru.edu)
208 .15 E(ABSTRA)264.535 213 Q(CT)-.3 E/F2 10/Times-Roman@0 SF .019(An o)133 237 R
209 -.15(ve)-.15 G(rvie).15 E 2.519(wo)-.25 G 2.519(f/)191.918 237 S .018
210 (bin/sh\255compatible shells is presented, as well as an introduction to)
211 200.547 237 R .128(the POSIX.2 shell and tools standard.)108 249 R .128
212 (These serv)5.128 F 2.628(ea)-.15 G 2.628(sa)318.562 249 S 2.628(ni)329.52 249
213 S .128(ntroduction to bash.)339.928 249 R 2.628(Ac)5.128 G(ompar)439.32 249 Q
214 (-)-.2 E .188(ison of bash to sh and ksh is presented, as well as a discussion\
215  of features unique to bash.)108 261 R(Finally)108 273 Q 3.178(,s)-.65 G .678
216 (ome of the changes and ne)145.258 273 R 3.178(wf)-.25 G .678
217 (eatures to appear in the ne)268.486 273 R .678(xt bash release will be)-.15 F
218 (discussed.)108 285 Q/F3 10/Times-Bold@0 SF 2.5(1. Intr)72 321 R(oduction)-.18
219 E(Bash)97 336.6 Q F2 .904(is the shell, or command language interpreter)3.404 F
220 3.404(,t)-.4 G .904(hat will appear in the GNU operating system.)316.032 336.6
221 R .782(The name is an acron)72 348.6 R .782(ym for the `)-.15 F(`Bourne\255Ag)
222 -.74 E .782(ain SHell')-.05 F .782(', a pun on Ste)-.74 F 1.082 -.15(ve B)-.25
223 H .783(ourne, the author of the direct).15 F .212(ancestor of the current)72
224 360.6 R/F4 9/Times-Roman@0 SF(UNIX)2.712 E F2 2.712<8773>C(hell)199.131 360.6 Q
225 F1(/bin/sh)2.712 E F2 2.712(,w)C .212(hich appeared in the Se)256.505 360.6 R
226 -.15(ve)-.25 G .211(nth Edition Bell Labs Research v).15 F(er)-.15 E(-)-.2 E
227 (sion of)72 372.6 Q F4(UNIX)2.5 E F2([1].).833 E .191(Bash is an)97 388.2 R F3
228 (sh)2.691 E F2 .192
229 (\255compatible shell that incorporates useful features from the K)B .192
230 (orn shell \()-.35 F F3(ksh)A F2 .833(\)[)C .192(2] and the)-.833 F 2.767(Cs)72
231 400.2 S .267(hell \()85.327 400.2 R F3(csh)A F2 .833(\)[)C .267
232 (3], described later in this article.)-.833 F .266
233 (It is ultimately intended to be a conformant implementation)5.267 F 1.965
234 (of the IEEE POSIX Shell and T)72 412.2 R 1.966(ools speci\214cation \(IEEE W)
235 -.8 F 1.966(orking Group 1003.2\).)-.8 F 1.966(It of)6.966 F 1.966
236 (fers functional)-.25 F(impro)72 424.2 Q -.15(ve)-.15 G(ments o).15 E -.15(ve)
237 -.15 G 2.5(rs).15 G 2.5(hf)155.28 424.2 S(or both interacti)166.11 424.2 Q .3
238 -.15(ve a)-.25 H(nd programming use.).15 E .802
239 (While the GNU operating system will most lik)97 439.8 R .801(ely include a v)
240 -.1 F .801(ersion of the Berk)-.15 F(ele)-.1 E 3.301(ys)-.15 G .801
241 (hell csh, bash)448.238 439.8 R .108(will be the def)72 451.8 R .108
242 (ault shell.)-.1 F(Lik)5.108 E 2.608(eo)-.1 G .108(ther GNU softw)199.658 451.8
243 R .108(are, bash is quite portable.)-.1 F .109(It currently runs on nearly e)
244 5.109 F -.15(ve)-.25 G(ry).15 E -.15(ve)72 463.8 S .367(rsion of).15 F F4(UNIX)
245 2.867 E F2 .367(and a fe)2.867 F 2.867(wo)-.25 G .367
246 (ther operating systems \255 an independently-supported port e)187.933 463.8 R
247 .366(xists for OS/2, and)-.15 F .706(there are rumors of ports to DOS and W)72
248 475.8 R(indo)-.4 E .706(ws NT)-.25 F 5.706(.P)-.74 G .706(orts to)295.97 475.8
249 R F4(UNIX)3.206 E F2(-lik)A 3.206(es)-.1 G .706(ystems such as QNX and Minix)
250 372.979 475.8 R(are part of the distrib)72 487.8 Q(ution.)-.2 E .51
251 (The original author of bash w)97 503.4 R .51(as Brian F)-.1 F .509
252 (ox, an emplo)-.15 F .509(yee of the Free Softw)-.1 F .509(are F)-.1 F 3.009
253 (oundation. The)-.15 F(cur)3.009 E(-)-.2 E(rent de)72 515.4 Q -.15(ve)-.25 G
254 (loper and maintainer is Chet Rame).15 E 1.3 -.65(y, a v)-.15 H(olunteer who w)
255 .45 E(orks at Case W)-.1 E(estern Reserv)-.8 E 2.5(eU)-.15 G(ni)458.91 515.4 Q
256 -.15(ve)-.25 G(rsity).15 E(.)-.65 E F3 2.5(2. What)72 539.4 R(is a shell?)2.5 E
257 F2 1.241(At its base, a shell is simply a macro processor that e)97 555 R -.15
258 (xe)-.15 G 1.242(cutes commands.).15 F(A)6.242 E F4(UNIX)3.742 E F2 1.242
259 (shell is both a)3.742 F .189(command interpreter)72 567 R 2.688(,w)-.4 G .188
260 (hich pro)167.787 567 R .188(vides the user interf)-.15 F .188
261 (ace to the rich set of)-.1 F F4(UNIX)2.688 E F2 .188
262 (utilities, and a programming)2.688 F .751(language, allo)72 579 R .752
263 (wing these utilitites to be combined.)-.25 F .752
264 (The shell reads commands either from a terminal or a)5.752 F 2.52
265 (\214le. Files)72 591 R .019
266 (containing commands can be created, and become commands themselv)2.52 F 2.519
267 (es. These)-.15 F(ne)2.519 E 2.519(wc)-.25 G(ommands)465.11 591 Q(ha)72 603 Q
268 .395 -.15(ve t)-.2 H .095(he same status as system commands in directories lik)
269 .15 F(e)-.1 E F3(/bin)2.595 E F2 2.595(,a)C(llo)342.575 603 Q .096
270 (wing users or groups to establish cus-)-.25 F(tom en)72 615 Q(vironments.)-.4
271 E F3 2.5(2.1. Command)72 639 R(Inter)2.5 E(pr)-.1 E(eter)-.18 E F2 2.926(As)97
272 654.6 S .426(hell allo)111.036 654.6 R .426(ws e)-.25 F -.15(xe)-.15 G .426
273 (cution of).15 F F4(UNIX)2.926 E F2 .426
274 (commands, both synchronously and asynchronously)2.926 F 5.425(.T)-.65 G(he)
275 460.165 654.6 Q F1 -.37(re)2.925 G(dir).37 E(ec-)-.37 E(tion)72 666.6 Q F2 .334
276 (constructs permit \214ne-grained control of the input and output of those com\
277 mands, and the shell allo)2.833 F(ws)-.25 E .559(control o)72 678.6 R -.15(ve)
278 -.15 G 3.058(rt).15 G .558(he contents of their en)126.697 678.6 R(vironment.)
279 -.4 E F4(UNIX)5.558 E F2 .558(shells also pro)3.058 F .558
280 (vide a small set of b)-.15 F .558(uilt-in commands)-.2 F(\()72 690.6 Q F1 -.2
281 (bu)C(iltins).2 E F2 4.611(\)i)C 2.112
282 (mplementing functionality impossible \(e.g.,)115.861 690.6 R F3(cd)4.612 E F2
283 (,)A F3(br)4.612 E(eak)-.18 E F2(,)A F3(continue)4.612 E F2 4.612(,a)C(nd)
284 399.074 690.6 Q F3(exec)4.612 E F2 4.612(\)o)C 4.612(ri)444.948 690.6 S(ncon)
285 455.67 690.6 Q -.15(ve)-.4 G(nient).15 E .32 LW 76 700.6 72 700.6 DL 80 700.6
286 76 700.6 DL 84 700.6 80 700.6 DL 88 700.6 84 700.6 DL 92 700.6 88 700.6 DL 96
287 700.6 92 700.6 DL 100 700.6 96 700.6 DL 104 700.6 100 700.6 DL 108 700.6 104
288 700.6 DL 112 700.6 108 700.6 DL 116 700.6 112 700.6 DL 120 700.6 116 700.6 DL
289 124 700.6 120 700.6 DL 128 700.6 124 700.6 DL 132 700.6 128 700.6 DL 136 700.6
290 132 700.6 DL 140 700.6 136 700.6 DL 144 700.6 140 700.6 DL/F5 8/Times-Roman@0
291 SF 2<8755>72 710.6 S(NIX is a trademark of X/OPEN)83.776 710.6 Q EP
292 %%Page: 2 2
293 %%BeginPageSetup
294 BP
295 %%EndPageSetup
296 /F0 10/Times-Roman@0 SF 2.5(-2-)279.67 48 S(\()72 84 Q/F1 10/Times-Bold@0 SF
297 (history)A F0(,)A F1(getopts)3.505 E F0(,)A F1(kill)3.505 E F0 3.505(,o)C(r)
298 172.795 84 Q F1(pwd)3.505 E F0 3.505(,f)C 1.005(or e)207.305 84 R 1.005
299 (xample\) to obtain via separate utilities.)-.15 F 1.005
300 (Shells may be used interac-)6.005 F(ti)72 96 Q -.15(ve)-.25 G
301 (ly or non-interacti).15 E -.15(ve)-.25 G 2.5(ly: the).15 F 2.5(ya)-.15 G
302 (ccept input typed from the k)207.42 96 Q -.15(ey)-.1 G
303 (board or from a \214le.).15 E F1 2.5(2.2. Pr)72 120 R(ogramming Language)-.18
304 E F0 .501(While e)97 135.6 R -.15(xe)-.15 G .501
305 (cuting commands is essential, most of the po).15 F .501(wer \(and comple)-.25
306 F .502(xity\) of shells is due to their)-.15 F .05
307 (embedded programming languages.)72 147.6 R(Lik)5.049 E 2.549(ea)-.1 G .349
308 -.15(ny h)245.398 147.6 T(igh-le).15 E -.15(ve)-.25 G 2.549(ll).15 G .049
309 (anguage, the shell pro)303.276 147.6 R .049(vides v)-.15 F .049
310 (ariables, \215o)-.25 F 2.549(wc)-.25 G(ontrol)480.11 147.6 Q
311 (constructs, quoting, and functions.)72 159.6 Q .475
312 (The basic syntactic element is a)97 175.2 R/F2 10/Times-Italic@0 SF .475
313 (simple command)2.975 F F0 5.475(.A)C .475
314 (simple command consists of an optional set of)315.405 175.2 R -.25(va)72 187.2
315 S .525(riable assignments, a command w).25 F .525
316 (ord, and an optional list of ar)-.1 F 3.024(guments. Operators)-.18 F .524
317 (to redirect input and)3.024 F(output may appear an)72 199.2 Q
318 (ywhere in a simple command.)-.15 E(Some e)5 E(xamples are:)-.15 E/F3 10
319 /Courier@0 SF(who)97 211.2 Q(trn -e -S1 -N)97 223.2 Q(ls -l /bin > binfiles)97
320 235.2 Q(make > make.out 2>make.errs)97 247.2 Q F0 2.518(Ap)97 262.8 S .018
321 (ipeline is a sequence of tw)111.738 262.8 R 2.518(oo)-.1 G 2.518(rm)230.056
322 262.8 S .018(ore commands separated by the character)243.684 262.8 R/F4 10
323 /Symbol SF<ef>2.519 E F0 5.019(.T)C .019(he standard output)430.082 262.8 R
324 (of the \214rst command is connected to the standard input of the second.)72
325 274.8 Q(Examples of pipelines include:)5 E F3(who | wc -l)97 286.8 Q
326 (ls -l | sort +3nr)97 298.8 Q F0 .578
327 (Simple commands and pipelines may be combined into)97 314.4 R F2(lists)3.078 E
328 F0 5.578(.A)C .578(list is a sequence of pipelines sepa-)360.002 314.4 R .289
329 (rated by one of)72 326.4 R F1(;)2.789 E F0(,)A F1(&)2.789 E F0(,)A F1(&&)2.789
330 E F0 2.789(,o)C(r)185.103 326.4 Q F4<efef>2.789 E F0 2.789(,a)C .289
331 (nd optionally terminated by)210.831 326.4 R F1(;)2.789 E F0(,)A F1(&)2.789 E
332 F0 2.789(,o)C 2.789(ran)352.555 326.4 S -.25(ew)370.903 326.4 S 2.789
333 (line. Commands).25 F .289(separated by)2.789 F F1(;)72 338.4 Q F0 .336(are e)
334 2.836 F -.15(xe)-.15 G .336(cuted sequentially; the shell w).15 F .335
335 (aits for each to complete in turn.)-.1 F .335(If a command is terminated by)
336 5.335 F F1(&)2.835 E F0(,)A .007(the shell e)72 350.4 R -.15(xe)-.15 G .007
337 (cutes it in the).15 F F2(bac)2.507 E(kgr)-.2 E(ound)-.45 E F0 2.508(,a)1.666 G
338 .008(nd does not w)236.076 350.4 R .008(ait for it to \214nish.)-.1 F .008
339 (If tw)5.008 F 2.508(oc)-.1 G .008(ommands are separated by)397.616 350.4 R F1
340 (&&)72 362.4 Q F0 3.008(,t)C .508(he second command e)96.948 362.4 R -.15(xe)
341 -.15 G .508(cutes only if the \214rst command succeeds.).15 F 3.007(As)5.508 G
342 .507(eparator of)383.575 362.4 R F4<efef>3.007 E F0 .507(causes the sec-)3.007
343 F(ond command to e)72 374.4 Q -.15(xe)-.15 G(cute only if the \214rst f).15 E
344 2.5(ails. Some)-.1 F -.15(ex)2.5 G(amples are:).15 E F3(who ; date)97 386.4 Q
345 (cd /usr/src || exit 1)97 398.4 Q(cd "$@" && xtitle $HOST: $PWD)97 410.4 Q F0
346 1.36(The shell programming language pro)97 426 R 1.361(vides a v)-.15 F 1.361
347 (ariety of \215o)-.25 F 3.861(wc)-.25 G 1.361(ontrol structures.)353.276 426 R
348 (The)6.361 E F1 -.25(fo)3.861 G(r).25 E F0(command)3.861 E(allo)72 438 Q .654
349 (ws a list of commands to be e)-.25 F -.15(xe)-.15 G .654
350 (cuted once for each w).15 F .654(ord in a w)-.1 F .654(ord list.)-.1 F(The)
351 5.654 E F1(case)3.154 E F0 .654(command allo)3.154 F .654(ws a)-.25 F .627
352 (list to be e)72 450 R -.15(xe)-.15 G .628(cuted if a w).15 F .628
353 (ord matches a speci\214ed pattern.)-.1 F(The)5.628 E F1(while)3.128 E F0(and)
354 3.128 E F1(until)3.128 E F0 .628(commands e)3.128 F -.15(xe)-.15 G .628
355 (cute a list of).15 F 1.559
356 (commands as long as a guard command completes successfully or f)72 462 R 1.559
357 (ails, respecti)-.1 F -.15(ve)-.25 G(ly).15 E 6.559(.T)-.65 G(he)440.892 462 Q
358 F1(if)4.059 E F0(command)4.059 E(allo)72 474 Q(ws e)-.25 E -.15(xe)-.15 G
359 (cution of dif).15 E(ferent command lists depending on the e)-.25 E
360 (xit status of a guard command.)-.15 E(A)97 489.6 Q F2 .385(shell function)
361 2.885 F F0 .385(associates a list of commands with a name.)2.885 F .386
362 (Each time the name is used as a simple)5.385 F .938(command, the list is e)72
363 501.6 R -.15(xe)-.15 G 3.438(cuted. This).15 F -.15(exe)3.438 G .938
364 (cution tak).15 F .938(es place in the current shell conte)-.1 F .937
365 (xt; no ne)-.15 F 3.437(wp)-.25 G .937(rocess is)468.903 501.6 R 2.5
366 (created. Functions)72 513.6 R(may ha)2.5 E .3 -.15(ve t)-.2 H(heir o).15 E
367 (wn ar)-.25 E(gument lists and local v)-.18 E(ariables, and may be recursi)-.25
368 E -.15(ve)-.25 G(.).15 E .722(The shell language pro)97 529.2 R .722(vides v)
369 -.15 F .722(ariables, which may be both set and referenced.)-.25 F 3.222(An)
370 5.722 G .722(umber of special)435.906 529.2 R 1.02
371 (parameters are present, such as)72 541.2 R F1($@)3.519 E F0 3.519(,w)C 1.019
372 (hich returns the shell')231.257 541.2 R 3.519(sp)-.55 G 1.019
373 (ositional parameters \(command-line ar)333.103 541.2 R(gu-)-.18 E(ments\),)72
374 553.2 Q F1($?)2.906 E F0 2.906(,t)C .406(he e)122.812 553.2 R .406
375 (xit status of the pre)-.15 F .406(vious command, and)-.25 F F1($$)2.906 E F0
376 2.906(,t)C .406(he shell')322.436 553.2 R 2.906(sp)-.55 G .406(rocess I.D.)
377 368.248 553.2 R .407(In addition to pro)5.406 F(vid-)-.15 E .129
378 (ing special parameters and user)72 565.2 R .129(-de\214ned v)-.2 F .129
379 (ariables, the shell permits the v)-.25 F .128(alues of certain v)-.25 F .128
380 (ariables to control)-.25 F .16(its beha)72 577.2 R(vior)-.2 E 5.16(.S)-.55 G
381 .16(ome of these v)131.57 577.2 R .16(ariables include)-.25 F F1(IFS)2.661 E F0
382 2.661(,w)C .161(hich controls ho)284.202 577.2 R 2.661(wt)-.25 G .161
383 (he shell splits w)361.375 577.2 R(ords,)-.1 E F1 -.74(PA)2.661 G(TH)-.21 E F0
384 2.661(,w)C(hich)486.78 577.2 Q .392
385 (tells the shell where to look for commands, and)72 589.2 R F1(PS1)2.892 E F0
386 2.892(,w)C .392(hose v)297.01 589.2 R .392
387 (alue is the string the shell uses to prompt for)-.25 F 3.371(commands. There)
388 72 601.2 R .871(are a fe)3.371 F 3.371(wv)-.25 G .871(ariables whose v)196.645
389 601.2 R .871(alues are set by the shell and normally only referenced by)-.25 F
390 (users;)72 613.2 Q F1(PWD)3.663 E F0 3.663(,w)C 1.163(hose v)135.706 613.2 R
391 1.163(alue is the pathname of the shell')-.25 F 3.662(sc)-.55 G 1.162(urrent w)
392 313.068 613.2 R 1.162(orking directory)-.1 F 3.662(,i)-.65 G 3.662(so)421.894
393 613.2 S 1.162(ne such v)434.446 613.2 R(ariable.)-.25 E -1.11(Va)72 625.2 S
394 .008(riables can be used in nearly an)1.11 F 2.509(ys)-.15 G .009(hell conte)
395 219.37 625.2 R .009(xt and are particularly v)-.15 F .009
396 (aluable when used with control struc-)-.25 F(tures.)72 637.2 Q .583
397 (There are se)97 652.8 R -.15(ve)-.25 G .583(ral shell).15 F F2 -.2(ex)3.083 G
398 (pansions).2 E F0 5.583(.A)C -.25(va)254.298 652.8 S(riable).25 E F2(name)3.083
399 E F0 .583(is e)3.083 F .582(xpanded to its v)-.15 F .582(alue using ${)-.25 F
400 F2(name)A F0 .582(}, where)B 1.387(the braces are optional.)72 664.8 R 1.387
401 (There are a number of parameter e)6.387 F 1.388(xpansions a)-.15 F -.25(va)-.2
402 G 3.888(ilable. F).25 F 1.388(or e)-.15 F 1.388(xample, there are)-.15 F(${)72
403 676.8 Q F2(name)A F0<3aad>A F2(wor)A(d)-.37 E F0 .891(}, which e)B .891
404 (xpands to)-.15 F F2(wor)3.391 E(d)-.37 E F0(if)3.391 E F2(name)3.391 E F0 .891
405 (is unset or null, and the in)3.391 F -.15(ve)-.4 G .89(rse ${).15 F F2(name)A
406 F0(:+)A F2(wor)A(d)-.37 E F0 .89(}, which)B -.15(ex)72 688.8 S 1.203(pands to)
407 .15 F F2(wor)3.703 E(d)-.37 E F0(if)3.703 E F2(name)3.703 E F0 1.203
408 (is set and not null.)3.703 F F2 1.203(Command substitution)6.203 F F0(allo)
409 3.703 E 1.204(ws the output of a command to)-.25 F .918
410 (replace the command name.)72 700.8 R .918(The syntax is `)5.918 F F2(command)A
411 F0(`.)A F2(Command)5.918 E F0 .918(is e)3.418 F -.15(xe)-.15 G .918
412 (cuted and it and the backquotes).15 F .299
413 (are replaced by its output, with trailing ne)72 712.8 R .299(wlines remo)-.25
414 F -.15(ve)-.15 G(d.).15 E F2 -.8(Pa)5.299 G .299(thname e).8 F(xpansion)-.2 E
415 F0 .299(is a w)2.799 F .299(ay to e)-.1 F .299(xpand a w)-.15 F(ord)-.1 E 1.586
416 (to a set of \214lenames.)72 724.8 R -.8(Wo)6.586 G 1.586(rds are re).8 F -.05
417 (ga)-.15 G 1.586(rded as patterns, in which the characters).05 F F1(*)4.086 E
418 F0(,)A F1(?)4.086 E F0 4.085(,a)C(nd)432.115 724.8 Q F1([)4.085 E F0(ha)4.085 E
419 1.885 -.15(ve s)-.2 H(pecial).15 E EP
420 %%Page: 3 3
421 %%BeginPageSetup
422 BP
423 %%EndPageSetup
424 /F0 10/Times-Roman@0 SF 2.5(-3-)279.67 48 S 2.845(meaning. W)72 84 R .346(ords\
425  containing these special characters are replaced with a sorted list of matchi\
426 ng pathnames.)-.8 F(If a w)72 96 Q
427 (ord generates no matches, it is left unchanged.)-.1 E/F1 10/Times-Italic@0 SF
428 (Quoting)97 111.6 Q F0 .85(is used to remo)3.35 F 1.15 -.15(ve t)-.15 H .85
429 (he special meaning of characters or w).15 F 3.35(ords. It)-.1 F .85
430 (can disable special treat-)3.35 F .314
431 (ment for shell operators or other special characters, pre)72 123.6 R -.15(ve)
432 -.25 G .315(nt reserv).15 F .315(ed w)-.15 F .315
433 (ords from being recognized as such,)-.1 F .683(and inhibit v)72 135.6 R .683
434 (ariable e)-.25 F 3.183(xpansion. The)-.15 F .683
435 (shell has three quoting mechanisms:)3.183 F 3.183(ab)5.683 G .683
436 (ackslash preserv)387.413 135.6 R .682(es the literal)-.15 F -.25(va)72 147.6 S
437 .417(lue of the ne).25 F .417(xt character)-.15 F 2.917(,ap)-.4 G .417
438 (air of single quotes preserv)196.712 147.6 R .417(es the literal v)-.15 F .418
439 (alue of each character between the)-.25 F 1.426
440 (quotes, and a pair of double quotes preserv)72 159.6 R 1.425
441 (es the literal meaning of enclosed characters while allo)-.15 F(wing)-.25 E
442 (some e)72 171.6 Q(xpansions.)-.15 E 1.054(Some of the commands b)97 187.2 R
443 1.054(uilt into the shell are part of the programming language.)-.2 F(The)6.055
444 E/F2 10/Times-Bold@0 SF(br)3.555 E(eak)-.18 E F0(and)3.555 E F2(continue)72
445 199.2 Q F0 1.175(commands control loop e)3.675 F -.15(xe)-.15 G 1.175
446 (cution as in the C language.).15 F(The)6.175 E F2 -2.3 -.15(ev a)3.675 H(l).15
447 E F0 -.2(bu)3.675 G 1.174(iltin allo).2 F 1.174(ws a string to be)-.25 F .204
448 (parsed and e)72 211.2 R -.15(xe)-.15 G .204(cuted as a command.).15 F F2 -.65
449 (Wa)5.205 G(it).65 E F0 .205
450 (tells the shell to pause until the processes speci\214ed as ar)2.705 F
451 (guments)-.18 E(ha)72 223.2 Q .3 -.15(ve ex)-.2 H(ited.).15 E F2 2.5
452 (2.3. Interacti)72 247.2 R .2 -.1(ve F)-.1 H(eatur)-.15 E(es)-.18 E F0 .51
453 (Shells ha)97 262.8 R .81 -.15(ve b)-.2 H -.15(eg).15 G .51(un of).15 F .51
454 (fering features geared speci\214cally for interacti)-.25 F .81 -.15(ve u)-.25
455 H .51(se rather than to augment the).15 F .76(programming language.)72 274.8 R
456 .761(These interacti)5.76 F 1.061 -.15(ve f)-.25 H .761
457 (eatures include job control, command line editing, history and).15 F(aliases.)
458 72 286.8 Q .626(Job control is a f)97 302.4 R .626(acility pro)-.1 F .626
459 (vided jointly by the shell and the)-.15 F/F3 9/Times-Roman@0 SF(UNIX)3.125 E
460 F0 -.1(ke)3.125 G .625(rnel that allo).1 F .625(ws users to selec-)-.25 F(ti)72
461 314.4 Q -.15(ve)-.25 G .344
462 (ly stop \(suspend\) and restart \(resume\) processes.).15 F .345
463 (Each pipeline e)5.345 F -.15(xe)-.15 G .345
464 (cuted by the shell is referred to as a).15 F F1(job)72 326.4 Q F0 2.989(.J)C
465 .488(obs may be suspended and restarted in either the fore)94.159 326.4 R .488
466 (ground, where the)-.15 F 2.988(yh)-.15 G -2.25 -.2(av e)397.148 326.4 T .488
467 (access to the terminal,)3.188 F .833(or background, where the)72 338.4 R 3.333
468 (ya)-.15 G .834(re isolated and cannot read from the terminal.)189.312 338.4 R
469 -.8(Ty)5.834 G .834(ping the).8 F F1(suspend)3.334 E F0(character)5 E .459(whi\
470 le a process is running stops that process and returns control to the shell.)72
471 350.4 R .459(Once a job is suspended, the)5.459 F .392
472 (user manipulates the job')72 362.4 R 2.892(ss)-.55 G .392(tate, using)184.118
473 362.4 R F2(bg)2.892 E F0 .393(to continue it in the background,)2.892 F F2(fg)
474 2.893 E F0 .393(to return it to the fore)2.893 F(ground)-.15 E .891(and a)72
475 374.4 R -.1(wa)-.15 G .891(it its completion, or).1 F F2(kill)3.391 E F0 .891
476 (to send it a signal.)3.391 F(The)5.89 E F2(jobs)3.39 E F0 .89
477 (command lists the status of jobs, and)3.39 F F2(wait)3.39 E F0 .407
478 (will pause the shell until a speci\214ed job terminates.)72 386.4 R .407
479 (The shell pro)5.407 F .407(vides a number of w)-.15 F .407
480 (ays to refer to a job,)-.1 F(and will notify the user whene)72 398.4 Q -.15
481 (ve)-.25 G 2.5(rab).15 G(ackground job terminates.)220.18 398.4 Q -.4(Wi)97 414
482 S .956(th the adv).4 F .956(ent of more po)-.15 F .956
483 (werful terminals and terminal emulators, more sophisticated interaction)-.25 F
484 .253(than that pro)72 426 R .253(vided by the)-.15 F F3(UNIX)2.753 E F0 -.1(ke)
485 2.754 G .254(rnel terminal dri).1 F -.15(ve)-.25 G 2.754(ri).15 G 2.754(sp)
486 293.592 426 S 2.754(ossible. Some)305.236 426 R .254(shells of)2.754 F .254
487 (fer command line editing,)-.25 F 1.141
488 (which permits a user to edit lines of input using f)72 438 R(amiliar)-.1 E F1
489 (emacs)3.64 E F0(or)3.64 E F1(vi)3.64 E F0 1.14
490 (-style commands before submitting)B .02(them to the shell.)72 450 R .02
491 (Editors allo)5.02 F 2.52(wc)-.25 G .02(orrections to be made without ha)206.31
492 450 R .021(ving to erase back to the point of error)-.2 F 2.521(,o)-.4 G(r)
493 500.67 450 Q .135(start the line ane)72 462 R 3.935 -.65(w. C)-.25 H .135
494 (ommand line editors run the g).65 F .135(amut from a small \214x)-.05 F .134
495 (ed set of commands and k)-.15 F .434 -.15(ey b)-.1 H(ind-).15 E
496 (ings to input f)72 474 Q(acilities which allo)-.1 E 2.5(wa)-.25 G
497 (rbitrary actions to be bound to a k)217.2 474 Q .3 -.15(ey o)-.1 H 2.5(rk).15
498 G .3 -.15(ey s)379.88 474 T(equence.).15 E .145(Modern shells also k)97 489.6 R
499 .145(eep a history)-.1 F 2.645(,w)-.65 G .146
500 (hich is the list of commands a user has typed.)243.49 489.6 R .146(Shell f)
501 5.146 F .146(acilities are)-.1 F -.2(av)72 501.6 S .368(ailable to recall pre)
502 -.05 F .367(vious commands and use portions of old commands when composing ne)
503 -.25 F 2.867(wo)-.25 G 2.867(nes. The)467.253 501.6 R 1.456
504 (command history can be sa)72 513.6 R -.15(ve)-.2 G 3.957(dt).15 G 3.957
505 (oa\214)207.522 513.6 S 1.457
506 (le and read back in at shell startup, so it persists across sessions.)230.436
507 513.6 R .675(Shells which pro)72 525.6 R .675
508 (vide both command editing and history generally ha)-.15 F .974 -.15(ve e)-.2 H
509 .674(diting commands to interacti).15 F -.15(ve)-.25 G(ly).15 E(step forw)72
510 537.6 Q(ard and backw)-.1 E(ard through the history list.)-.1 E .013
511 (Aliases allo)97 553.2 R -5.012 2.513(wa s)-.25 H .014
512 (tring to be substituted for a command name.)164.28 553.2 R(The)5.014 E 2.514
513 (yc)-.15 G .014(an be used to create a mnemonic)373.396 553.2 R .568(for a)72
514 565.2 R F3(UNIX)3.068 E F0 .568(command name \()3.068 F/F4 10/Courier@0 SF .568
515 (alias del=rm)B F0 .568(\), to e)B .567(xpand a single w)-.15 F .567
516 (ord to a comple)-.1 F 3.067(xc)-.15 G .567(ommand \()432.603 565.2 R F4(alias)
517 A .255(news='xterm -g 80x45 -title trn -e trn -e -S1 -N &')72 577.2 R F0 .255
518 (\), or to ensure that a command)B(is in)72 589.2 Q -.2(vo)-.4 G -.1(ke).2 G
519 2.5(dw).1 G(ith a basic set of options \()122.41 589.2 Q F4
520 (alias ls="/bin/ls -F")A F0(\).)A F2 2.5(3. The)72 613.2 R
521 (POSIX Shell Standard)2.5 E F1(POSIX)97 628.8 Q F0 .239
522 (is a name originally coined by Richard Stallman for a f)4.405 F .239
523 (amily of open system standards based)-.1 F(on)72 640.8 Q F3(UNIX)3.239 E F0
524 5.739(.T)C .74(here are a number of aspects of)122.079 640.8 R F3(UNIX)3.24 E
525 F0 .74(under consideration for standardization, from the basic)3.24 F .192
526 (system services at the system call and C library le)72 652.8 R -.15(ve)-.25 G
527 2.692(lt).15 G 2.692(oa)290.16 652.8 S .191
528 (pplications and tools to system administration and)302.292 652.8 R 2.5
529 (management. Each)72 664.8 R(area of standardization is assigned to a w)2.5 E
530 (orking group in the 1003 series.)-.1 E 3.602(The POSIX Shell and T)97 680.4 R
531 3.602(ools standard has been de)-.8 F -.15(ve)-.25 G 3.603(loped by IEEE W).15
532 F 3.603(orking Group 1003.2)-.8 F -1.667(\(POSIX.2\) [4].)72 692.4 R 2.799
533 (It concentrates on the command interpreter interf)7.799 F 2.799
534 (ace and utility programs commonly)-.1 F -.15(exe)72 704.4 S 2.345
535 (cuted from the command line or by other programs.).15 F 2.345(An initial v)
536 7.345 F 2.345(ersion of the standard has been)-.15 F(appro)72 716.4 Q -.15(ve)
537 -.15 G 2.915(da).15 G .414(nd published by the IEEE, and w)116.265 716.4 R .414
538 (ork is currently underw)-.1 F .414(ay to update it.)-.1 F .414
539 (There are four primary)5.414 F(areas of w)72 728.4 Q
540 (ork in the 1003.2 standard:)-.1 E EP
541 %%Page: 4 4
542 %%BeginPageSetup
543 BP
544 %%EndPageSetup
545 /F0 10/Times-Roman@0 SF 2.5(-4-)279.67 48 S 21.5<8341>72 84 S .835
546 (spects of the shell')104.22 84 R 3.335(ss)-.55 G .835
547 (yntax and command language.)192 84 R 3.335(An)5.835 G .835(umber of special b)
548 338.095 84 R .835(uiltins such as)-.2 F/F1 10/Times-Bold@0 SF(cd)3.335 E F0
549 (and)3.335 E F1(exec)97 96 Q F0 .545(are being speci\214ed as part of the shel\
550 l, since their functionality usually cannot be implemented)3.046 F
551 (by a separate e)97 108 Q -.15(xe)-.15 G(cutable;).15 E 21.5<8341>72 123.6 S
552 .73(set of utilities to be called by shell scripts and applications.)107.45
553 123.6 R .731(Examples are programs lik)5.731 F(e)-.1 E/F2 10/Times-Italic@0 SF
554 2.397(sed, tr)3.231 F(,)-1.11 E F0(and)97 135.6 Q F2(awk.)2.853 E F0 .352
555 (Utilities commonly implemented as shell b)4.519 F .352
556 (uiltins are described in this section, such as)-.2 F F1(test)2.852 E F0(and)97
557 147.6 Q F1(kill)3.422 E F0 5.922(.A)C 3.422(ne)144.404 147.6 S .922
558 (xpansion of this section')157.116 147.6 R 3.423(ss)-.55 G .923
559 (cope, termed the User Portability Extension, or UPE, has)268.586 147.6 R
560 (standardized interacti)97 159.6 Q .3 -.15(ve p)-.25 H(rograms such as).15 E F2
561 (vi)2.5 E F0(and)4.166 E F2(mailx;)2.5 E F0 21.5<8341>72 175.2 S .926
562 (group of functional interf)107.646 175.2 R .926(aces to services pro)-.1 F
563 .926(vided by the shell, such as the traditional)-.15 F F2(system)3.425 E F0(C)
564 5.091 E .507(library function.)97 187.2 R .507
565 (There are functions to perform shell w)5.507 F .508(ord e)-.1 F .508
566 (xpansions, perform \214lename e)-.15 F(xpansion)-.15 E(\()97 199.2 Q F2
567 (globbing)A F0 .58(\), obtain v)B .58
568 (alues of POSIX.2 system con\214guration v)-.25 F .58(ariables, retrie)-.25 F
569 .88 -.15(ve v)-.25 H .58(alues of en)-.1 F(vironment)-.4 E -.25(va)97 211.2 S
570 (riables \().25 E F2 -.1(ge)C(ten).1 E(v\(\))-.4 E F0(\), and other services;)
571 .833 E 21.5<8341>72 226.8 S(suite of `)106.72 226.8 Q(`de)-.74 E -.15(ve)-.25 G
572 (lopment').15 E 2.5('u)-.74 G(tilities such as)209.54 226.8 Q F2(c89)2.5 E F0
573 (\(the POSIX.2 v)4.166 E(ersion of)-.15 E F2(cc)2.5 E F0(\), and)A F2(yacc.)2.5
574 E F0 .483(Bash is concerned with the aspects of the shell')97 242.4 R 2.983(sb)
575 -.55 G(eha)301.597 242.4 Q .484(vior de\214ned by POSIX.2.)-.2 F .484
576 (The shell command)5.484 F 1.439
577 (language has of course been standardized, including the basic \215o)72 254.4 R
578 3.938(wc)-.25 G 1.438(ontrol and program e)359.688 254.4 R -.15(xe)-.15 G 1.438
579 (cution con-).15 F 1.145(structs, I/O redirection and pipelining, ar)72 266.4 R
580 1.145(gument handling, v)-.18 F 1.145(ariable e)-.25 F 1.146
581 (xpansion, and quoting.)-.15 F(The)6.146 E F2(special)3.646 E F0 -.2(bu)72
582 278.4 S .676(iltins, which must be implemented as part of the shell to pro).2 F
583 .676(vide the desired functionality)-.15 F 3.176(,a)-.65 G .676(re speci\214ed)
584 457.504 278.4 R .7(as being part of the shell; e)72 290.4 R .7
585 (xamples of these are)-.15 F F1 -2.3 -.15(ev a)3.201 H(l).15 E F0(and)3.201 E
586 F1(export)3.201 E F0 5.701(.O)C .701(ther utilities appear in the sections of)
587 352.034 290.4 R .256(POSIX.2 not de)72 302.4 R -.2(vo)-.25 G .256(ted to the s\
588 hell which are commonly \(and in some cases must be\) implemented as b).2 F
589 (uiltin)-.2 E(commands, such as)72 314.4 Q F1 -.18(re)2.5 G(ad).18 E F0(and)2.5
590 E F1(test)2.5 E F0(.)A .972(POSIX.2 also speci\214es aspects of the shell')97
591 330 R 3.473(si)-.55 G(nteracti)286.016 330 Q 1.273 -.15(ve b)-.25 H(eha).15 E
592 .973(vior as part of the UPE, including job)-.2 F .233
593 (control, command line editing, and history)72 342 R 5.233(.I)-.65 G .233
594 (nterestingly enough, only)253.849 342 R F2(vi)2.733 E F0 .233
595 (-style line editing commands ha)B -.15(ve)-.2 G(been standardized;)72 354 Q F2
596 (emacs)2.5 E F0(editing commands were left out due to objections.)2.5 E .148
597 (There were certain areas in which POSIX.2 felt standardization w)97 369.6 R
598 .149(as necessary)-.1 F 2.649(,b)-.65 G .149(ut no e)420.643 369.6 R .149
599 (xisting imple-)-.15 F 1.598(mentation pro)72 381.6 R 1.598
600 (vided the proper beha)-.15 F(vior)-.2 E 6.598(.T)-.55 G 1.598(he w)251.56
601 381.6 R 1.597(orking group in)-.1 F -.15(ve)-.4 G 1.597
602 (nted and standardized functionality in).15 F .228(these areas.)72 393.6 R(The)
603 5.228 E F1(command)2.728 E F0 -.2(bu)2.728 G .228(iltin w).2 F .228(as in)-.1 F
604 -.15(ve)-.4 G .228(nted so that shell functions could be written to replace b)
605 .15 F(uiltins;)-.2 E 1.663(it mak)72 405.6 R 1.663
606 (es the capabilities of the b)-.1 F 1.663(uiltin a)-.2 F -.25(va)-.2 G 1.663
607 (ilable to the function.).25 F 1.663(The reserv)6.663 F 1.663(ed w)-.15 F 1.663
608 (ord `)-.1 F(`!')-.74 E 4.163('w)-.74 G 1.663(as added to)455.685 405.6 R(ne)72
609 417.6 Q -.05(ga)-.15 G .915(te the return v).05 F .915
610 (alue of a command or pipeline; it w)-.25 F .916(as nearly impossible to e)-.1
611 F .916(xpress `)-.15 F .916(`if not x')-.74 F 3.416('c)-.74 G(leanly)479.56
612 417.6 Q .904(using the sh language.)72 429.6 R .904(There e)5.904 F .904
613 (xist multiple incompatible implementations of the)-.15 F F1(test)3.403 E F0
614 -.2(bu)3.403 G .903(iltin, which tests).2 F .28
615 (\214les for type and other attrib)72 441.6 R .281
616 (utes and performs arithmetic and string comparisons.)-.2 F .281
617 (POSIX considered none)5.281 F .868(of these correct, so the standard beha)72
618 453.6 R .868(vior w)-.2 F .868(as speci\214ed in terms of the number of ar)-.1
619 F .867(guments to the com-)-.18 F 3.803(mand. POSIX.2)72 465.6 R 1.303
620 (dictates e)3.803 F 1.303(xactly what will happen when four or fe)-.15 F 1.303
621 (wer ar)-.25 F 1.303(guments are gi)-.18 F -.15(ve)-.25 G 3.803(nt).15 G(o)
622 459.462 465.6 Q F1(test)3.804 E F0 3.804(,a)C(nd)494 465.6 Q(lea)72 477.6 Q
623 -.15(ve)-.2 G 4.531(st).15 G 2.031(he beha)103.951 477.6 R 2.031
624 (vior unde\214ned when more ar)-.2 F 2.031(guments are supplied.)-.18 F 2.03
625 (Bash uses the POSIX.2 algorithm,)7.031 F(which w)72 489.6 Q(as concei)-.1 E
626 -.15(ve)-.25 G 2.5(db).15 G 2.5(yD)164.53 489.6 S -.2(av)179.25 489.6 S(id K).2
627 E(orn.)-.35 E 1.128
628 (While POSIX.2 includes much of what the shell has traditionally pro)97 505.2 R
629 1.129(vided, some important things)-.15 F(ha)72 517.2 Q .58 -.15(ve b)-.2 H .28
630 (een omitted as being `).15 F(`be)-.74 E .28(yond its scope.)-.15 F 4.26 -.74
631 ('' T)-.7 H .28(here is, for instance, no mention of a dif).74 F .28
632 (ference between)-.25 F(a)72 529.2 Q F2(lo)3.354 E(gin)-.1 E F0 .854
633 (shell and an)5.02 F 3.354(yo)-.15 G .854(ther interacti)167.956 529.2 R 1.154
634 -.15(ve s)-.25 H .854(hell \(since POSIX.2 does not specify a login program\).)
635 .15 F .855(No \214x)5.855 F(ed)-.15 E
636 (startup \214les are de\214ned, either \255 the standard does not mention)72
637 541.2 Q F2(.pr)2.5 E(o\214le)-.45 E F0(.)1.666 E F1 2.5(4. Shell)72 565.2 R
638 (Comparison)2.5 E F0 .693(This section compares features of bash, sh, and ksh \
639 \(the three shells closest to POSIX compliance\).)97 580.8 R .245(Since ksh an\
640 d bash are supersets of sh, the features common to all three are co)72 592.8 R
641 -.15(ve)-.15 G .245(red \214rst.).15 F .245(Some of the fea-)5.245 F 1.198
642 (tures bash and ksh contain which are not in sh will be discussed.)72 604.8 R
643 (Ne)6.198 E 1.198(xt, features unique to bash will be)-.15 F 2.866(listed. The)
644 72 616.8 R .366(\214rst three sections pro)2.866 F .366(vide a progressi)-.15 F
645 -.15(ve)-.25 G .366(ly more detailed o).15 F -.15(ve)-.15 G(rvie).15 E 2.866
646 (wo)-.25 G 2.866(fb)395.706 616.8 S 2.866(ash. Finally)406.902 616.8 R 2.866
647 (,f)-.65 G .366(eatures of)464.484 616.8 R(ksh-88 \(the currently-a)72 628.8 Q
648 -.25(va)-.2 G(ilable v).25 E(ersion\) not in sh or bash will be presented.)-.15
649 E F1 2.5(4.1. Common)72 652.8 R -.25(Fe)2.5 G(atur).25 E(es)-.18 E F0 .021
650 (All three shells ha)97 668.4 R .321 -.15(ve t)-.2 H .021
651 (he same basic feature set, which is essentially that pro).15 F .02
652 (vided by sh and described)-.15 F 1.026(in an)72 680.4 R 3.526(ys)-.15 G 3.526
653 (hm)105.012 680.4 S 1.027
654 (anual page. Bash and ksh are both sh supersets, and so all three pro)121.318
655 680.4 R 1.027(vide the command inter)-.15 F(-)-.2 E .714
656 (preter and programming language described earlier)72 692.4 R 3.214(.T)-.55 G
657 .714(he shell grammar)291.506 692.4 R 3.214(,s)-.4 G .714(yntax, \215o)371.568
658 692.4 R 3.214(wc)-.25 G .714(ontrol, redirections,)424.686 692.4 R(and b)72
659 704.4 Q(uiltins implemented by the Bourne shell are the baseline for subsequen\
660 t discussion.)-.2 E EP
661 %%Page: 5 5
662 %%BeginPageSetup
663 BP
664 %%EndPageSetup
665 /F0 10/Times-Roman@0 SF 2.5(-5-)279.67 48 S/F1 10/Times-Bold@0 SF 2.5(4.2. F)72
666 84 R(eatur)-.25 E(es in bash and ksh)-.18 E F0 .458(Ksh and bash ha)97 99.6 R
667 .758 -.15(ve s)-.2 H -2.15 -.25(ev e).15 H .459(ral features in common be).25 F
668 .459(yond this base le)-.15 F -.15(ve)-.25 G 2.959(lo).15 G 2.959(ff)387.814
669 99.6 S(unctionality)397.433 99.6 Q 5.459(.S)-.65 G .459(ome of this)458.082
670 99.6 R(is due to the POSIX.2 standard.)72 111.6 Q(Other functions ha)5 E .3
671 -.15(ve b)-.2 H(een implemented in bash using ksh as a guide.).15 E F1 2.5
672 (4.2.1. V)72 135.6 R(ariables and V)-.92 E(ariable Expansion)-.92 E F0 .097
673 (Bash and ksh ha)97 151.2 R .396 -.15(ve a)-.2 H .096(ugmented v).15 F .096
674 (ariable e)-.25 F 2.596(xpansion. Arithmetic)-.15 F .096(substitution allo)
675 2.596 F .096(ws an e)-.25 F .096(xpression to be)-.15 F -.25(eva)72 163.2 S .6
676 (luated and the result substituted.).25 F .6(Shell v)5.6 F .6
677 (ariables may be used as operands, and the result of an e)-.25 F(xpres-)-.15 E
678 .41(sion may be assigned to a v)72 175.2 R 2.91(ariable. Nearly)-.25 F .41
679 (all of the operators from the C language are a)2.91 F -.25(va)-.2 G .41
680 (ilable, with the).25 F(same precedence rules:)72 187.2 Q/F2 10/Courier@0 SF 6
681 ($e)97 205.2 S(cho $\(\(3 + 5 * 32\)\))115 205.2 Q(163)97 217.2 Q F0 -1.11(Va)
682 72 238.8 S 1.445(riables may be declared as)1.11 F/F3 10/Times-Italic@0 SF
683 (inte)3.945 E -.1(ge)-.4 G(r).1 E F0 3.945(,w)1.666 G 1.446
684 (hich causes arithmetic e)240.956 238.8 R -.25(va)-.25 G 1.446
685 (luation to be performed on the v).25 F(alue)-.25 E(whene)72 250.8 Q -.15(ve)
686 -.25 G 2.5(rt).15 G(he)115.75 250.8 Q 2.5(ya)-.15 G(re assigned to.)136.98
687 250.8 Q .483(There are ne)97 266.4 R 2.983(we)-.25 G .483
688 (xpansions to obtain the length of a v)162.179 266.4 R(ariable')-.25 E 2.982
689 (sv)-.55 G .482(alue and to remo)352.19 266.4 R .782 -.15(ve s)-.15 H .482
690 (ubstrings match-).15 F .063(ing speci\214ed patterns from the be)72 278.4 R
691 .063(ginning and end of v)-.15 F .063(ariable v)-.25 F 2.563(alues. A)-.25 F
692 (ne)2.563 E 2.563(wf)-.25 G .064(orm of command substitution,)383.249 278.4 R
693 F1($\()72 290.4 Q F3(list)A F1(\))A F0 2.5(,i)C 2.5(sm)103.67 290.4 S
694 (uch easier to nest than `)117.84 290.4 Q F3(list)A F0 2.5(`a)C
695 (nd has simpli\214ed quoting rules.)235.04 290.4 Q .082(There are ne)97 306 R
696 2.582(wv)-.25 G .082(ariables to control the shell')161.436 306 R 2.581(sb)-.55
697 G(eha)284.333 306 Q(vior)-.2 E 2.581(,a)-.4 G .081(nd additional v)323.244 306
698 R .081(ariables set or interpreted spe-)-.25 F 1.038(cially by the shell.)72
699 318 R F1(RANDOM)6.038 E F0(and)3.538 E F1(SECONDS)3.538 E F0(are)3.539 E F3
700 (dynamic)3.539 E F0 -.25(va)3.539 G 3.539(riables: their).25 F -.25(va)3.539 G
701 1.039(lues are generated afresh).25 F 1.022(each time the)72 330 R 3.522(ya)
702 -.15 G 1.022(re referenced.)140.176 330 R F1(RANDOM)6.022 E F0 1.021
703 (returns a dif)3.521 F 1.021(ferent random number each time it is referenced,)
704 -.25 F(and)72 342 Q F1(SECONDS)3.138 E F0 .638
705 (returns the number of seconds since the shell w)3.138 F .638
706 (as started or the v)-.1 F .639(ariable w)-.25 F .639(as assigned to,)-.1 F
707 1.448(plus an)72 354 R 3.948(yv)-.15 G 1.448(alue assigned.)115.606 354 R F1
708 (PWD)6.448 E F0(and)3.948 E F1(OLDPWD)3.947 E F0 1.447
709 (are set to the current and pre)3.947 F 1.447(vious w)-.25 F 1.447
710 (orking directories,)-.1 F(respecti)72 366 Q -.15(ve)-.25 G(ly).15 E(.)-.65 E
711 F1(TMOUT)5.604 E F0 .604(controls ho)3.104 F 3.104(wl)-.25 G .604
712 (ong the shell will w)226.436 366 R .604(ait at a prompt for input.)-.1 F(If)
713 5.604 E F1(TMOUT)3.104 E F0 .605(is set to a)3.105 F -.25(va)72 378 S 1.168
714 (lue greater than zero, the shell e).25 F 1.168(xits after w)-.15 F 1.168
715 (aiting that man)-.1 F 3.668(ys)-.15 G 1.167(econds for input.)337.478 378 R F1
716 (REPL)6.167 E(Y)-.92 E F0 1.167(is the def)3.667 F(ault)-.1 E -.25(va)72 390 S
717 .991(riable for the).25 F F1 -.18(re)3.491 G(ad).18 E F0 -.2(bu)3.491 G .991
718 (iltin; if no v).2 F .992(ariable names are supplied as ar)-.25 F .992
719 (guments, the line read is assigned to)-.18 F F1(REPL)72 402 Q(Y)-.92 E F0(.)A
720 F1 2.5(4.2.2. New)72 426 R(and Modi\214ed Builtins)2.5 E F0 .652(Both shells e)
721 97 441.6 R .651(xpand the basic sh set of b)-.15 F .651(uiltin commands.)-.2 F
722 F1(Let)5.651 E F0(pro)3.151 E .651(vides a w)-.15 F .651
723 (ay to perform arithmetic)-.1 F 2.767(on shell v)72 453.6 R 5.268
724 (ariables. Shell)-.25 F 2.768(programmers use)5.268 F F1(typeset)5.268 E F0
725 2.768(\(bash includes)5.268 F F1(declar)5.268 E(e)-.18 E F0 2.768(as a synon)
726 5.268 F 2.768(ym\) to assign)-.15 F(attrib)72 465.6 Q .295(utes such as)-.2 F
727 F3 -.2(ex)2.795 G(port).2 E F0(and)4.461 E F3 -.37(re)2.795 G(adonly).37 E F0
728 .295(to v)4.461 F(ariables.)-.25 E F1(Getopts)5.295 E F0 .294
729 (is used by shell scripts to parse script options)2.795 F .962(and ar)72 477.6
730 R 3.462(guments. The)-.18 F F1(set)3.462 E F0 .962(command has a ne)3.462 F
731 3.462(wo)-.25 G(ption)266.446 477.6 Q F1<ad6f>3.463 E F0 .963(which tak)3.463 F
732 .963(es option names as ar)-.1 F 3.463(guments. Option)-.18 F 1.28
733 (names are synon)72 489.6 R 1.28(yms for the other set options \(e.g.,)-.15 F
734 F1<ad66>3.78 E F0(and)3.78 E F1 1.28(\255o noglob)3.78 F F0 3.78(\)o)C 3.78(rp)
735 375.97 489.6 S(ro)388.08 489.6 Q 1.28(vide ne)-.15 F 3.78(wf)-.25 G 1.28
736 (unctionality \()440.78 489.6 R F1(-o)A(notify)72 501.6 Q F0 3.348(,f)C .849
737 (or e)106.178 501.6 R 3.349(xample\). The)-.15 F F1 -.18(re)3.349 G(ad).18 E F0
738 -.2(bu)3.349 G .849(iltin tak).2 F .849(es a ne)-.1 F(w)-.25 E F1<ad72>3.349 E
739 F0 .849(option to specify that a line ending in a backslash)3.349 F
740 (should not be continued.)72 513.6 Q F1 2.5(4.2.3. T)72 537.6 R(ilde Expansion)
741 -.18 E F0 -.35(Ti)97 553.2 S .252(lde e).35 F .251
742 (xpansion is a feature adopted from the C shell.)-.15 F 2.751(At)5.251 G .251
743 (ilde character at the be)331.172 553.2 R .251(ginning of a w)-.15 F .251
744 (ord is)-.1 F -.15(ex)72 565.2 S(panded to either).15 E F1($HOME)2.5 E F0
745 (or the home directory of another user)2.5 E 2.5(,d)-.4 G
746 (epending on what follo)345.84 565.2 Q(ws the tilde.)-.25 E F1 2.5
747 (4.2.4. Interacti)72 589.2 R .2 -.1(ve I)-.1 H(mpr).1 E -.1(ove)-.18 G(ments).1
748 E F0 .789(The most noticable impro)97 604.8 R -.15(ve)-.15 G .789(ments o).15 F
749 -.15(ve)-.15 G 3.289(rs).15 G 3.289(ha)263.385 604.8 S .789
750 (re geared for interacti)276.114 604.8 R 1.089 -.15(ve u)-.25 H 3.29(se. Ksh)
751 .15 F .79(and bash pro)3.29 F .79(vide job)-.15 F .882(control in a v)72 616.8
752 R .882(ery similar f)-.15 F .882
753 (ashion, with the same options to enable and disable it \()-.1 F F1 .881
754 (set -o monitor)B F0 3.381(\)a)C .881(nd the)478.399 616.8 R(same b)72 628.8 Q
755 (uiltin commands to manipulate jobs \()-.2 E F1(jobs/fg/bg/kill/wait)A F0(\).)A
756 .866(Command line editing, with emacs and vi-style k)97 644.4 R 1.166 -.15
757 (ey b)-.1 H .866(indings, is a).15 F -.25(va)-.2 G .866(ilable in both shells.)
758 .25 F .866(The Bash)5.866 F F3 -.37(re)72 656.4 S(adline).37 E F0 1.578
759 (library is considerably more sophisticated than the ksh editing library:)5.744
760 F 1.577(it allo)6.577 F 1.577(ws arbitrary k)-.25 F -.15(ey)-.1 G 1.867
761 (bindings, macros, a per)72 668.4 R 1.868(-user customization \214le \()-.2 F
762 F3(~/.inputr)A(c)-.37 E F0 1.868(\), a number of v)B 1.868
763 (ariables to further customize)-.25 F(beha)72 680.4 Q(vior)-.2 E 3.538(,a)-.4 G
764 1.038(nd a much lar)116.868 680.4 R 1.038
765 (ger set of bindable editing commands.)-.18 F 1.037
766 (The ksh editing library pro)6.037 F 1.037(vides a small)-.15 F<8c78>72 692.4 Q
767 (ed command set and only clumsy macros.)-.15 E .706(Both shells of)97 708 R
768 .706(fer access to the command history)-.25 F 5.706(.T)-.65 G .706
769 (he in-line editing options ha)307.278 708 R 1.006 -.15(ve d)-.2 H(ef).15 E
770 .706(ault k)-.1 F 1.006 -.15(ey b)-.1 H(ind-).15 E .624
771 (ings to access the history list.)72 720 R(The)5.624 E F1(fc)3.124 E F0 .624
772 (command is pro)3.124 F .624(vided to re-e)-.15 F -.15(xe)-.15 G .623(cute pre)
773 .15 F .623(vious commands and display)-.25 F EP
774 %%Page: 6 6
775 %%BeginPageSetup
776 BP
777 %%EndPageSetup
778 /F0 10/Times-Roman@0 SF 2.5(-6-)279.67 48 S(the contents of the history list.)
779 72 84 Q/F1 10/Times-Bold@0 SF 2.5(4.2.5. Miscellaneous)72 108 R
780 (Changes and Impr)2.5 E -.1(ov)-.18 G(ments).1 E F0 .707(Other impro)97 123.6 R
781 -.15(ve)-.15 G .707(ments include aliases, the).15 F F1(select)3.207 E F0 .708
782 (shell language construct, which supports the genera-)3.207 F 1.298
783 (tion and presentation of simple menus, and e)72 135.6 R 1.298
784 (xtensions to the)-.15 F F1(export)3.798 E F0(and)3.798 E F1 -.18(re)3.798 G
785 (adonly).18 E F0 -.2(bu)3.798 G 1.298(iltins which allo).2 F(w)-.25 E -.25(va)
786 72 147.6 S .017(riables to be assigned v).25 F .017
787 (alues at the same time the attrib)-.25 F .017(utes are set.)-.2 F -.8(Wo)5.018
788 G .018(rd splitting has changed:).8 F .018(if tw)5.018 F 2.518(oo)-.1 G(r)
789 500.67 147.6 Q .158(more adjacent w)72 159.6 R .157
790 (ord splitting characters occur)-.1 F 2.657(,b)-.4 G .157
791 (ash and ksh will generate null \214elds; sh mak)264.893 159.6 R .157
792 (es runs of mul-)-.1 F .339
793 (tiple \214eld separator charactors the same as a single separator)72 171.6 R
794 5.339(.B)-.55 G .34(ash and ksh split only the results of e)330.89 171.6 R
795 (xpan-)-.15 E(sion, rather than e)72 183.6 Q -.15(ve)-.25 G(ry w).15 E
796 (ord as sh does, closing a long-standing shell security hole.)-.1 E 1.234
797 (Shell functions in bash and ksh may ha)97 199.2 R 1.534 -.15(ve l)-.2 H 1.234
798 (ocal v).15 F 3.734(ariables. V)-.25 F 1.234(ariables declared with)-1.11 F F1
799 (typeset)3.734 E F0 1.234(\(or the)3.734 F .001(bash synon)72 211.2 R(ym,)-.15
800 E F1(local)2.501 E F0 .001(\), ha)B .301 -.15(ve a s)-.2 H .001
801 (cope restricted to the function and its descendents, and may shado).15 F 2.502
802 (wv)-.25 G(ariables)472.9 211.2 Q(de\214ned by the in)72 223.2 Q -.2(vo)-.4 G
803 (king shell.).2 E(Local v)5 E(ariables are remo)-.25 E -.15(ve)-.15 G 2.5(dw)
804 .15 G(hen a function completes.)317.75 223.2 Q F1 2.5(4.3. F)72 247.2 R(eatur)
805 -.25 E(es Unique to bash)-.18 E F0(Naturally)97 262.8 Q 2.895(,b)-.65 G .395
806 (ash includes features not in sh or ksh.)144.515 262.8 R .395
807 (This section discusses some of the features which)5.395 F(mak)72 274.8 Q 2.986
808 (eb)-.1 G .486(ash unique.)101.546 274.8 R .486(Most of them pro)5.486 F .486
809 (vide impro)-.15 F -.15(ve)-.15 G 2.986(di).15 G(nteracti)288.098 274.8 Q .787
810 -.15(ve u)-.25 H .487(se, b).15 F .487(ut a fe)-.2 F 2.987(wp)-.25 G .487
811 (rogramming impro)394.653 274.8 R -.15(ve)-.15 G(ments).15 E
812 (are present as well.)72 286.8 Q
813 (Full descriptions of these features can be found in the bash documentation.)5
814 E F1 2.5(4.3.1. Startup)72 310.8 R(Files)2.5 E F0 .281(Bash e)97 326.4 R -.15
815 (xe)-.15 G .281(cutes startup \214les dif).15 F .281
816 (ferently than other shells.)-.25 F .281(The bash beha)5.281 F .28
817 (vior is a compromise between)-.2 F .116
818 (the csh principle of startup \214les with \214x)72 338.4 R .116(ed names e)
819 -.15 F -.15(xe)-.15 G .116(cuted for each shell and the sh `).15 F
820 (`minimalist')-.74 E 2.616('b)-.74 G(eha)472.26 338.4 Q(vior)-.2 E(.)-.55 E
821 2.956(An interacti)72 350.4 R 3.256 -.15(ve i)-.25 H 2.956
822 (nstance of bash started as a login shell reads and e).15 F -.15(xe)-.15 G
823 (cutes).15 E/F2 10/Times-Italic@0 SF(~/.bash_pr)5.455 E(o\214le)-.45 E F0 2.955
824 (\(the \214le)7.121 F F2(.bash_pr)72 362.4 Q(o\214le)-.45 E F0 .835
825 (in the user')5 F 3.335(sh)-.55 G .835(ome directory\), if it e)187.385 362.4 R
826 3.335(xists. An)-.15 F(interacti)3.335 E 1.135 -.15(ve n)-.25 H .835
827 (on-login shell reads and e).15 F -.15(xe)-.15 G(cutes).15 E F2(~/.bashr)72
828 374.4 Q(c)-.37 E F0 5.538(.A)1.666 G(non-interacti)127.422 374.4 Q .838 -.15
829 (ve s)-.25 H .538(hell \(one be).15 F .538(gun to e)-.15 F -.15(xe)-.15 G .538
830 (cute a shell script, for e).15 F .537(xample\) reads no \214x)-.15 F .537
831 (ed startup)-.15 F .139(\214le, b)72 386.4 R .139(ut uses the v)-.2 F .139
832 (alue of the v)-.25 F(ariable)-.25 E F1(ENV)2.639 E F0 2.639(,i)C 2.639(fs)
833 253.361 386.4 S .139(et, as the name of a startup \214le.)263.22 386.4 R .139
834 (The ksh practice of reading)5.139 F F1($ENV)72 398.4 Q F0 .69(for e)3.19 F
835 -.15(ve)-.25 G .69(ry shell, with the accompan).15 F .689(ying dif)-.15 F .689
836 (\214culty of de\214ning the proper v)-.25 F .689(ariables and functions for)
837 -.25 F(interacti)72 410.4 Q .946 -.15(ve a)-.25 H .646(nd non-interacti).15 F
838 .946 -.15(ve s)-.25 H .646(hells or ha).15 F .646
839 (ving the \214le read only for interacti)-.2 F .946 -.15(ve s)-.25 H .646
840 (hells, w).15 F .646(as considered too)-.1 F(comple)72 422.4 Q(x.)-.15 E F1 2.5
841 (4.3.2. New)72 446.4 R(Builtin Commands)2.5 E F0 1.119(There are a fe)97 462 R
842 3.619(wb)-.25 G 1.118(uiltins which are ne)170.986 462 R 3.618(wo)-.25 G 3.618
843 (rh)268.528 462 S -2.25 -.2(av e)280.476 462 T 1.118(been e)3.818 F 1.118
844 (xtended in bash.)-.15 F(The)6.118 E F1(enable)3.618 E F0 -.2(bu)3.618 G 1.118
845 (iltin allo).2 F(ws)-.25 E -.2(bu)72 474 S .736
846 (iltin commands to be turned on and of).2 F 3.236(fa)-.25 G(rbitrarily)250.198
847 474 Q 5.736(.T)-.65 G 3.237(ou)298.644 474 S .737(se the v)311.881 474 R .737
848 (ersion of)-.15 F F2(ec)3.237 E(ho)-.15 E F0 .737(found in a user')4.903 F
849 3.237(ss)-.55 G(earch)482.35 474 Q .013(path rather than the bash b)72 486 R
850 (uiltin,)-.2 E/F3 10/Courier@0 SF .013(enable -n echo)2.513 F F0(suf)2.513 E
851 2.513(\214ces. The)-.25 F F1(help)2.513 E F0 -.2(bu)2.513 G .013(iltin pro).2 F
852 .013(vides quick synopses of)-.15 F 1.382(the shell f)72 498 R 1.382
853 (acilities without requiring access to a manual page.)-.1 F F1(Builtin)6.382 E
854 F0 1.383(is similar to)3.882 F F1(command)3.883 E F0 1.383(in that it)3.883 F
855 .342(bypasses shell functions and directly e)72 510 R -.15(xe)-.15 G .342
856 (cutes b).15 F .342(uiltin commands.)-.2 F .342
857 (Access to a csh-style stack of directories)5.342 F .072(is pro)72 522 R .073
858 (vided via the)-.15 F F1(pushd)2.573 E F0(,)A F1(popd)2.573 E F0 2.573(,a)C(nd)
859 211.197 522 Q F1(dirs)2.573 E F0 -.2(bu)2.573 G(iltins.).2 E F1(Pushd)5.073 E
860 F0(and)2.573 E F1(popd)2.573 E F0 .073(insert and remo)2.573 F .373 -.15(ve d)
861 -.15 H .073(irectories from the).15 F .094(stack, respecti)72 534 R -.15(ve)
862 -.25 G(ly).15 E 2.594(,a)-.65 G(nd)154.448 534 Q F1(dirs)2.594 E F0 .094
863 (lists the stack contents.The)2.594 F F1(suspend)2.594 E F0 .094
864 (command will stop the shell process when)2.594 F 1.329(job control is acti)72
865 546 R -.15(ve)-.25 G 3.829(;m).15 G 1.329(ost other shells do not allo)169.136
866 546 R 3.829(wt)-.25 G(hemselv)294.64 546 Q 1.33(es to be stopped lik)-.15 F
867 3.83(et)-.1 G(hat.)421.31 546 Q F1 -.74(Ty)6.33 G(pe,).74 E F0 1.33(the bash)
868 3.83 F(answer to)72 558 Q F1(which)2.5 E F0(and)2.5 E F1(whence,)2.5 E F0(sho)
869 2.5 E(ws what will happen when a w)-.25 E(ord is typed as a command:)-.1 E F3 6
870 ($t)97 576 S(ype export)115 576 Q(export is a shell builtin)97 588 Q 6($t)97
871 600 S(ype -t export)115 600 Q(builtin)97 612 Q 6($t)97 624 S(ype bash)115 624 Q
872 (bash is /bin/bash)97 636 Q 6($t)97 648 S(ype cd)115 648 Q(cd is a function)97
873 660 Q(cd \(\))97 672 Q({)97 684 Q(builtin cd "$@" && xtitle $HOST: $PWD)121 696
874 Q(})97 708 Q EP
875 %%Page: 7 7
876 %%BeginPageSetup
877 BP
878 %%EndPageSetup
879 /F0 10/Times-Roman@0 SF 2.5(-7-)279.67 48 S -1.11(Va)72 84 S .682
880 (rious modes tell what a command w)1.11 F .681(ord is \(reserv)-.1 F .681(ed w)
881 -.15 F .681(ord, alias, function, b)-.1 F .681(uiltin, or \214le\) or which v)
882 -.2 F(er)-.15 E(-)-.2 E 1.15(sion of a command will be e)72 96 R -.15(xe)-.15 G
883 1.15(cuted based on a user').15 F 3.65(ss)-.55 G 1.15(earch path.)305.7 96 R
884 1.15(Some of this functionality has been)6.15 F
885 (adopted by POSIX.2 and folded into the)72 108 Q/F1 10/Times-Bold@0 SF(command)
886 2.5 E F0(utility)2.5 E(.)-.65 E F1 2.5(4.3.3. Editing)72 132 R(and Completion)
887 2.5 E F0 .682(One area in which bash shines is command line editing.)97 147.6 R
888 .682(Bash uses the)5.682 F/F2 10/Times-Italic@0 SF -.37(re)3.182 G(adline).37 E
889 F0 .682(library to read and)4.848 F .102(edit lines when interacti)72 159.6 R
890 -.15(ve)-.25 G 5.102(.R).15 G .103(eadline is a po)191.438 159.6 R .103
891 (werful and \215e)-.25 F .103(xible input f)-.15 F .103
892 (acility that a user can con\214gure to his)-.1 F 2.506(tastes. It)72 171.6 R
893 (allo)2.506 E .006(ws lines to be edited using either emacs or vi commands, wh\
894 ere those commands are appropri-)-.25 F 2.994(ate. The)72 183.6 R .494
895 (full capability of emacs is not present \255 there is no w)2.994 F .495
896 (ay to e)-.1 F -.15(xe)-.15 G .495(cute a named command with M-x,).15 F .222
897 (for instance \255 b)72 195.6 R .222(ut the e)-.2 F .222
898 (xisting commands are more than adequate.)-.15 F .221
899 (The vi mode is compliant with the com-)5.222 F
900 (mand line editing standardized by POSIX.2.)72 207.6 Q 1.69
901 (Readline is fully customizable.)97 223.2 R 1.691
902 (In addition to the basic commands and k)6.69 F 1.991 -.15(ey b)-.1 H 1.691
903 (indings, the library).15 F(allo)72 235.2 Q .83
904 (ws users to de\214ne additional k)-.25 F 1.13 -.15(ey b)-.1 H .83
905 (indings using a startup \214le.).15 F(The)5.83 E F2(inputr)3.329 E(c)-.37 E F0
906 .829(\214le, which def)4.995 F .829(aults to the)-.1 F(\214le)72 247.2 Q F2
907 (~/.inputr)4.287 E(c)-.37 E F0 4.287(,i)1.666 G 4.287(sr)137.43 247.2 S 1.788(\
908 ead each time readline initializes, permitting users to maintain a consistent \
909 interf)148.937 247.2 R(ace)-.1 E .547(across a set of programs.)72 259.2 R .546
910 (Readline includes an e)5.546 F .546(xtensible interf)-.15 F .546
911 (ace, so each program using the library can)-.1 F .23(add its o)72 271.2 R .23
912 (wn bindable commands and program-speci\214c k)-.25 F .531 -.15(ey b)-.1 H
913 2.731(indings. Bash).15 F .231(uses this f)2.731 F .231
914 (acility to add bindings)-.1 F(that perform history e)72 283.2 Q
915 (xpansion or shell w)-.15 E(ord e)-.1 E(xpansions on the current input line.)
916 -.15 E .707(Readline interprets a number of v)97 298.8 R .706
917 (ariables which further tune its beha)-.25 F(vior)-.2 E 5.706(.V)-.55 G .706
918 (ariables e)408.432 298.8 R .706(xist to control)-.15 F .157
919 (whether or not eight-bit characters are directly read as input or con)72 310.8
920 R -.15(ve)-.4 G .158(rted to meta-pre\214x).15 F .158(ed k)-.15 F .458 -.15
921 (ey s)-.1 H .158(equences \(a).15 F(meta-pre\214x)72 322.8 Q 1.575(ed k)-.15 F
922 1.875 -.15(ey s)-.1 H 1.575
923 (equence consists of the character with the eighth bit zeroed, preceded by the)
924 .15 F F2(meta-)4.074 E(pr)72 334.8 Q(e\214x)-.37 E F0(character)4.45 E 2.784
925 (,u)-.4 G .284(sually escape, which selects an alternate k)145.374 334.8 R -.15
926 (ey)-.1 G .285(map\), to decide whether to output characters).15 F .485
927 (with the eighth bit set directly or as a meta-pre\214x)72 346.8 R .485(ed k)
928 -.15 F .784 -.15(ey s)-.1 H .484(equence, whether or not to wrap to a ne).15 F
929 2.984(ws)-.25 G(creen)482.35 346.8 Q .157
930 (line when a line being edited is longer than the screen width, the k)72 358.8
931 R -.15(ey)-.1 G .158(map to which subsequent k).15 F .458 -.15(ey b)-.1 H
932 (indings).15 E .531(should apply)72 370.8 R 3.031(,o)-.65 G 3.031(re)133.802
933 370.8 S -.15(ve)144.353 370.8 S 3.031(nw).15 G .531
934 (hat happens when readline w)168.894 370.8 R .531(ants to ring the terminal')
935 -.1 F 3.03(sb)-.55 G 3.03(ell. All)399.37 370.8 R .53(of these v)3.03 F
936 (ariables)-.25 E(can be set in the inputrc \214le.)72 382.8 Q .284
937 (The startup \214le understands a set of C preprocessor)97 398.4 R(-lik)-.2 E
938 2.785(ec)-.1 G .285(onditional constructs which allo)329.49 398.4 R 2.785(wv)
939 -.25 G(ariables)472.9 398.4 Q .12(or k)72 410.4 R .42 -.15(ey b)-.1 H .119(ind\
940 ings to be assigned based on the application using readline, the terminal curr\
941 ently being used, or).15 F .316(the editing mode.)72 422.4 R .317
942 (Users can add program-speci\214c bindings to mak)5.317 F 2.817(et)-.1 G .317
943 (heir li)352.808 422.4 R -.15(ve)-.25 G 2.817(se).15 G 2.817(asier: here)
944 396.922 422.4 R .317(are bindings to)2.817 F(edit the v)72 434.4 Q(alue of)-.25
945 E F1 -.74(PA)2.5 G(TH)-.21 E F0(and double-quote the current or pre)2.5 E
946 (vious w)-.25 E(ord:)-.1 E/F3 10/Courier@0 SF 6(#M)97 452.4 S
947 (acros that are convenient for shell interaction)115 452.4 Q($if Bash)97 464.4
948 Q 6(#e)97 476.4 S(dit the path)115 476.4 Q
949 ("\\C-xp": "PATH=${PATH}\\e\\C-e\\C-a\\ef\\C-f")97 488.4 Q 6(#p)97 500.4 S
950 (repare to type a quoted word -- insert open and close double quotes)115 500.4
951 Q 6(#a)97 512.4 S(nd move to just after the open quote)115 512.4 Q
952 ("\\C-x\\"": "\\"\\"\\C-b")97 524.4 Q 6(#Q)97 536.4 S
953 (uote the current or previous word)115 536.4 Q("\\C-xq": "\\eb\\"\\ef\\"")97
954 548.4 Q($endif)97 560.4 Q F0 .322(There is a readline command to re-read the \
955 \214le, so users can edit the \214le, change some bindings, and be)72 582 R
956 (gin)-.15 E(to use them almost immediately)72 594 Q(.)-.65 E .851
957 (Bash implements the)97 609.6 R F1(bind)3.351 E F0 -.2(bu)3.351 G .851
958 (iltin for more dyamic control of readline than the startup \214le permits.).2
959 F F1(Bind)72 621.6 Q F0 .167(is used in se)2.667 F -.15(ve)-.25 G .167(ral w)
960 .15 F 2.667(ays. In)-.1 F F2(list)2.667 E F0 .167
961 (mode, it can display the current k)4.333 F .466 -.15(ey b)-.1 H .166
962 (indings, list all the readline edit-).15 F .149(ing directi)72 633.6 R -.15
963 (ve)-.25 G 2.649(sa).15 G -.25(va)132.798 633.6 S .149
964 (ilable for binding, list which k).25 F -.15(ey)-.1 G 2.649(si).15 G -1.9 -.4
965 (nv o)282.352 633.6 T .349 -.1(ke a g).4 H -2.15 -.25(iv e).1 H 2.65(nd).25 G
966 (irecti)345.3 633.6 Q -.15(ve)-.25 G 2.65(,o).15 G 2.65(ro)385.04 633.6 S .15
967 (utput the current set of k)396.02 633.6 R -.15(ey)-.1 G .526(bindings in a fo\
968 rmat that can be incorporated directly into an inputrc \214le.)72 645.6 R(In)
969 5.526 E F2(batc)3.026 E(h)-.15 E F0 .526(mode, it reads a series)4.692 F .71
970 (of k)72 657.6 R 1.01 -.15(ey b)-.1 H .71
971 (indings directly from a \214le and passes them to readline.).15 F .71
972 (In its most common usage,)5.71 F F1(bind)3.21 E F0(tak)3.21 E .71(es a)-.1 F
973 .534(single string and passes it directly to readline, which interprets the li\
974 ne as if it had just been read from the)72 669.6 R(inputrc \214le.)72 681.6 Q
975 (Both k)5 E .3 -.15(ey b)-.1 H(indings and v).15 E
976 (ariable assignments can appear in the string gi)-.25 E -.15(ve)-.25 G 2.5(nt)
977 .15 G(o)424.4 681.6 Q F1(bind)2.5 E F0(.)A .401(The readline library also pro)
978 97 697.2 R .402(vides an interf)-.15 F .402(ace for)-.1 F F2(wor)2.902 E 2.902
979 (dc)-.37 G(ompletion)328.546 697.2 Q F0 5.402(.W)C .402(hen the)385.888 697.2 R
980 F2(completion)2.902 E F0(character)4.568 E 1.261(\(usually T)72 709.2 R 1.261
981 (AB\) is typed, readline looks at the w)-.93 F 1.26
982 (ord currently being entered and computes the set of \214le-)-.1 F .523
983 (names of which the current w)72 721.2 R .523(ord is a v)-.1 F .523
984 (alid pre\214x.)-.25 F .524
985 (If there is only one possible completion, the rest of the)5.523 F EP
986 %%Page: 8 8
987 %%BeginPageSetup
988 BP
989 %%EndPageSetup
990 /F0 10/Times-Roman@0 SF 2.5(-8-)279.67 48 S .358
991 (characters are inserted directly)72 84 R 2.858(,o)-.65 G .358(therwise the co\
992 mmon pre\214x of the set of \214lenames is added to the current)205.232 84 R
993 -.1(wo)72 96 S 3.199(rd. A).1 F .699(second T)3.199 F .699(AB character entere\
994 d immediately after a non-unique completion causes readline to list)-.93 F
995 1.814(the possible completions; there is an option to ha)72 108 R 2.113 -.15
996 (ve t)-.2 H 1.813(he list displayed immediately).15 F 6.813(.R)-.65 G 1.813
997 (eadline pro)436.517 108 R(vides)-.15 E .482
998 (hooks so that applications can pro)72 120 R .482
999 (vide speci\214c types of completion before the def)-.15 F .483
1000 (ault \214lename completion)-.1 F .132(is attempted.)72 132 R .132
1001 (This is quite \215e)5.132 F .132(xible, though it is not completely user)-.15
1002 F 2.632(-programmable. Bash,)-.2 F .132(for e)2.632 F .132(xample, can)-.15 F
1003 .37(complete \214lenames, command names \(including aliases, b)72 144 R .37
1004 (uiltins, shell reserv)-.2 F .37(ed w)-.15 F .37(ords, shell functions, and)-.1
1005 F -.15(exe)72 156 S .424(cutables found in the \214le system\), shell v).15 F
1006 .424(ariables, usernames, and hostnames.)-.25 F .423
1007 (It uses a set of heuristics)5.424 F(that, while not perfect, is generally qui\
1008 te good at determining what type of completion to attempt.)72 168 Q/F1 10
1009 /Times-Bold@0 SF 2.5(4.3.4. History)72 192 R F0 .255
1010 (Access to the list of commands pre)97 207.6 R .255(viously entered \(the)-.25
1011 F/F2 10/Times-Italic@0 SF .255(command history)2.755 F F0 2.756(\)i)C 2.756(sp)
1012 399.236 207.6 S(ro)410.882 207.6 Q .256(vided jointly by bash)-.15 F .095
1013 (and the readline library)72 219.6 R 5.094(.B)-.65 G .094(ash pro)178.928 219.6
1014 R .094(vides v)-.15 F .094(ariables \()-.25 F F1(HISTFILE)A F0(,)A F1(HISTSIZE)
1015 2.594 E F0 2.594(,a)C(nd)382.068 219.6 Q F1(HISTCONTR)2.594 E(OL)-.3 E F0 2.594
1016 (\)a)C .094(nd the)479.186 219.6 R F1(history)72 231.6 Q F0(and)2.825 E F1(fc)
1017 2.825 E F0 -.2(bu)2.825 G .325(iltins to manipulate the history list.).2 F .325
1018 (The v)5.325 F .325(alue of)-.25 F F1(HISTFILE)2.825 E F0 .326
1019 (specifes the \214le where bash)2.826 F .128(writes the command history on e)72
1020 243.6 R .128(xit and reads it on startup.)-.15 F F1(HISTSIZE)5.128 E F0 .128
1021 (is used to limit the number of com-)2.628 F .346(mands sa)72 255.6 R -.15(ve)
1022 -.2 G 2.846(di).15 G 2.846(nt)129.002 255.6 S .346(he history)139.628 255.6 R
1023 (.)-.65 E F1(HISTCONTR)5.346 E(OL)-.3 E F0(pro)2.846 E .346
1024 (vides a crude form of control o)-.15 F -.15(ve)-.15 G 2.846(rw).15 G .346
1025 (hich commands are)425.548 255.6 R(sa)72 267.6 Q -.15(ve)-.2 G 2.905(do).15 G
1026 2.905(nt)102.325 267.6 S .405(he history list: a v)113.01 267.6 R .405(alue of)
1027 -.25 F F2(ignor)2.905 E(espace)-.37 E F0 .405(means to not sa)4.571 F .705 -.15
1028 (ve c)-.2 H .405(ommands which be).15 F .405(gin with a space; a)-.15 F -.25
1029 (va)72 279.6 S .339(lue of).25 F F2(ignor)2.839 E(edups)-.37 E F0 .339
1030 (means to not sa)4.505 F .64 -.15(ve c)-.2 H .34
1031 (ommands identical to the last command sa).15 F -.15(ve)-.2 G(d.).15 E F1
1032 (HISTCONTR)5.34 E(OL)-.3 E F0 -.1(wa)72 291.6 S 3.15(sn).1 G(amed)95.6 291.6 Q
1033 F1(history_contr)3.15 E(ol)-.18 E F0 .65(in earlier v)3.15 F .649
1034 (ersions of bash; the old name is still accepted for backw)-.15 F .649
1035 (ards com-)-.1 F(patibility)72 303.6 Q 5.723(.T)-.65 G(he)121.803 303.6 Q F1
1036 (history)3.223 E F0 .724(command can read or write \214les containing the hist\
1037 ory list and display the current)3.223 F .895(list contents.)72 315.6 R(The)
1038 5.895 E F1(fc)3.395 E F0 -.2(bu)3.395 G .895
1039 (iltin, adopted from POSIX.2 and the K).2 F .894(orn Shell, allo)-.35 F .894
1040 (ws display and re-e)-.25 F -.15(xe)-.15 G(cution,).15 E .461
1041 (with optional editing, of commands from the history list.)72 327.6 R .462
1042 (The readline library of)5.462 F .462(fers a set of commands to)-.25 F .657(se\
1043 arch the history list for a portion of the current input line or a string type\
1044 d by the user)72 339.6 R 5.657(.F)-.55 G(inally)445.836 339.6 Q 3.157(,t)-.65 G
1045 (he)476.403 339.6 Q F2(his-)3.157 E(tory)72 351.6 Q F0(library)4.196 E 2.53(,g)
1046 -.65 G .03(enerally incorporated directly into the readline library)128.346
1047 351.6 R 2.53(,i)-.65 G .03(mplements a f)350.636 351.6 R .031
1048 (acility for history recall,)-.1 F -.15(ex)72 363.6 S .594(pansion, and re-e)
1049 .15 F -.15(xe)-.15 G .594(cution of pre).15 F .594(vious commands v)-.25 F .594
1050 (ery similar to csh \(`)-.15 F .593(`bang history')-.74 F .593
1051 (', so called because)-.74 F(the e)72 375.6 Q
1052 (xclamation point introduces a history substitution\):)-.15 E/F3 10/Courier@0
1053 SF 6($e)97 393.6 S(cho a b c d e)115 393.6 Q 6(abcde)97 405.6 S 6($!)97 417.6 S
1054 6(!fghi)115 417.6 S(echo a b c d e f g h i)97 429.6 Q 6(abcdefghi)97 441.6 S 6
1055 ($!)97 453.6 S(-2)115 453.6 Q(echo a b c d e)97 465.6 Q 6(abcde)97 477.6 S 6
1056 ($e)97 489.6 S(cho !-2:1-4)115 489.6 Q(echo a b c d)97 501.6 Q 6(abcd)97 513.6
1057 S F0 1.456(The command history is only sa)72 535.2 R -.15(ve)-.2 G 3.957(dw).15
1058 G 1.457(hen the shell is interacti)232.599 535.2 R -.15(ve)-.25 G 3.957(,s).15
1059 G 3.957(oi)352.804 535.2 S 3.957(ti)364.541 535.2 S 3.957(sn)374.058 535.2 S
1060 1.457(ot a)386.905 535.2 R -.25(va)-.2 G 1.457(ilable for use by shell).25 F
1061 (scripts.)72 547.2 Q F1 2.5(4.3.5. New)72 571.2 R(Shell V)2.5 E(ariables)-.92 E
1062 F0 .701(There are a number of con)97 586.8 R -.15(ve)-.4 G .701(nience v).15 F
1063 .701(ariables that bash interprets to mak)-.25 F 3.2(el)-.1 G .7(ife easier)
1064 402.76 586.8 R 5.7(.T)-.55 G .7(hese include)453.59 586.8 R F1(FIGNORE)72 598.8
1065 Q F0 3.973(,w)C 1.473(hich is a set of \214lename suf)132.363 598.8 R<8c78>-.25
1066 E 1.474(es identifying \214les to e)-.15 F 1.474
1067 (xclude when completing \214lenames;)-.15 F F1(HOSTTYPE)72 610.8 Q F0 3.03(,w)C
1068 .53(hich is automatically set to a string describing the type of hardw)139.21
1069 610.8 R .53(are on which bash is cur)-.1 F(-)-.2 E .76(rently e)72 622.8 R -.15
1070 (xe)-.15 G(cuting;).15 E F1(OSTYPE)3.26 E F0 3.26(,t)C 3.26(ow)191.76 622.8 S
1071 .76(hich bash assigns a v)207.24 622.8 R .761(alue that identi\214es the v)-.25
1072 F .761(ersion of)-.15 F/F4 9/Times-Roman@0 SF(UNIX)3.261 E F0(it')3.261 E 3.261
1073 (sr)-.55 G(unning)476.22 622.8 Q 1.354
1074 (on \(great for putting architecture-speci\214c binary directories into the)72
1075 634.8 R F1 -.74(PA)3.854 G(TH)-.21 E F0 1.354(\); and)B F1(IGNOREEOF)3.854 E F0
1076 3.854(,w)C(hose)485.67 634.8 Q -.25(va)72 646.8 S .062
1077 (lue indicates the number of consecuti).25 F .362 -.15(ve E)-.25 H .062
1078 (OF characters that an interacti).15 F .362 -.15(ve s)-.25 H .062
1079 (hell will read before e).15 F .062(xiting \255)-.15 F .114(an easy w)72 658.8
1080 R .113(ay to k)-.1 F .113(eep yourself from being logged out accidentally)-.1 F
1081 5.113(.T)-.65 G(he)344.285 658.8 Q F1(auto_r)2.613 E(esume)-.18 E F0 -.25(va)
1082 2.613 G .113(riable alters the w).25 F(ay)-.1 E .409
1083 (the shell treats simple command names: if job control is acti)72 670.8 R -.15
1084 (ve)-.25 G 2.909(,a).15 G .409(nd this v)335.516 670.8 R .409
1085 (ariable is set, single-w)-.25 F .409(ord simple)-.1 F .17(commands without re\
1086 directions cause the shell to \214rst look for a suspended job with that name \
1087 before start-)72 682.8 R(ing a ne)72 694.8 Q 2.5(wp)-.25 G(rocess.)118.13 694.8
1088 Q EP
1089 %%Page: 9 9
1090 %%BeginPageSetup
1091 BP
1092 %%EndPageSetup
1093 /F0 10/Times-Roman@0 SF 2.5(-9-)279.67 48 S/F1 10/Times-Bold@0 SF 2.5
1094 (4.3.6. Brace)72 84 R(Expansion)2.5 E F0 .653(Since sh of)97 99.6 R .653
1095 (fers no con)-.25 F -.15(ve)-.4 G .653(nient w).15 F .653
1096 (ay to generate arbitrary strings that share a common pre\214x or suf)-.1 F
1097 <8c78>-.25 E 1.893(\(pathname e)72 111.6 R 1.893
1098 (xpansion requires that the \214lenames e)-.15 F 1.892(xist\), bash implements)
1099 -.15 F/F2 10/Times-Italic@0 SF(br)4.392 E 1.892(ace e)-.15 F(xpansion)-.2 E F0
1100 4.392(,ac)C(apability)469 111.6 Q(pick)72 123.6 Q .496(ed up from csh.)-.1 F
1101 .496(Brace e)5.496 F .496(xpansion is similar to pathname e)-.15 F .496
1102 (xpansion, b)-.15 F .497(ut the strings generated need not)-.2 F 1.107
1103 (correspond to e)72 135.6 R 1.107(xisting \214les.)-.15 F 3.607(Ab)6.107 G
1104 1.107(race e)207.655 135.6 R 1.107(xpression consists of an optional)-.15 F F2
1105 (pr)3.606 E(eamble)-.37 E F0 3.606(,f)1.666 G(ollo)419.286 135.6 Q 1.106
1106 (wed by a pair of)-.25 F 2.809
1107 (braces enclosing a series of comma-separated strings, and an optional)72 147.6
1108 R F2(postamble)5.31 E F0 7.81(.T)1.666 G 2.81(he preamble is)440.06 147.6 R(pr\
1109 epended to each string within the braces, and the postamble is then appended t\
1110 o each resulting string:)72 159.6 Q/F3 10/Courier@0 SF 6($e)97 177.6 S
1111 (cho a{d,c,b}e)115 177.6 Q(ade ace abe)97 189.6 Q F1 2.5(4.3.7. Pr)72 219.6 R
1112 (ompt Customization)-.18 E F0 .077(One of the more popular interacti)97 235.2 R
1113 .376 -.15(ve f)-.25 H .076(eatures that bash pro).15 F .076
1114 (vides is the ability to customize the prompt.)-.15 F(Both)72 247.2 Q F1(PS1)
1115 3.305 E F0(and)3.305 E F1(PS2,)3.305 E F0 .805
1116 (the primary and secondary prompts, are e)3.305 F .805
1117 (xpanded before being displayed.)-.15 F -.15(Pa)5.805 G(rameter).15 E .324
1118 (and v)72 259.2 R .324(ariable e)-.25 F .324
1119 (xpansion is performed when the prompt string is e)-.15 F .323
1120 (xpanded, so the v)-.15 F .323(alue of an)-.25 F 2.823(ys)-.15 G .323(hell v)
1121 454.217 259.2 R(ariable)-.25 E .728(can be put into the prompt \(e.g.,)72 271.2
1122 R F1($SHL)3.228 E(VL)-.92 E F0 3.228(,w)C .728(hich indicates ho)258.564 271.2
1123 R 3.228(wd)-.25 G .729(eeply the current shell is nested\).)342.988 271.2 R
1124 (Bash)5.729 E 1.895
1125 (specially interprets characters in the prompt string preceded by a backslash.)
1126 72 283.2 R 1.895(Some of these backslash)6.895 F .874
1127 (escapes are replaced with the current time, the date, the current w)72 295.2 R
1128 .874(orking directory)-.1 F 3.374(,t)-.65 G .874(he username, and the)416.958
1129 295.2 R .781(command number or history number of the command being entered.)72
1130 307.2 R .78(There is e)5.781 F -.15(ve)-.25 G 3.28(nab).15 G .78
1131 (ackslash escape to)429.13 307.2 R .007
1132 (cause the shell to change its prompt when running as root after an)72 319.2 R
1133 F2(su)2.507 E F0 5.007(.B)C .008(efore printing each primary prompt,)360.388
1134 319.2 R .27(bash e)72 331.2 R .27(xpands the v)-.15 F(ariable)-.25 E F1(PR)2.77
1135 E(OMPT_COMMAND)-.3 E F0 .269(and, if it has a v)2.77 F .269(alue, e)-.25 F -.15
1136 (xe)-.15 G .269(cutes the e).15 F .269(xpanded v)-.15 F .269(alue as a)-.25 F
1137 .04(command, allo)72 343.2 R .041(wing additional prompt customization.)-.25 F
1138 -.15(Fo)5.041 G 2.541(re).15 G .041
1139 (xample, this assignment causes the current user)311.964 343.2 R(,)-.4 E .99
1140 (the current host, the time, the last component of the current w)72 355.2 R
1141 .989(orking directory)-.1 F 3.489(,t)-.65 G .989(he le)402.954 355.2 R -.15(ve)
1142 -.25 G 3.489(lo).15 G 3.489(fs)443.412 355.2 S .989(hell nesting,)454.121 355.2
1143 R(and the history number of the current command to be embedded into the primar\
1144 y prompt:)72 367.2 Q F3 6($P)97 385.2 S
1145 (S1='\\u@\\h [\\t] \\W\($SHLVL:\\!\)\\$ ')115 385.2 Q
1146 (chet@odin [21:03:44] documentation\(2:636\)$ cd ..)97 397.2 Q
1147 (chet@odin [21:03:54] src\(2:637\)$)97 409.2 Q F0 .619
1148 (The string being assigned is surrounded by single quotes so that if it is e)72
1149 430.8 R(xported,)-.15 E F1(SHL)3.119 E(VL)-.92 E F0 .619(will be updated)3.119
1150 F(by a child shell:)72 442.8 Q F3
1151 (chet@odin [21:13:35] src\(2:638\)$ export PS1)97 460.8 Q
1152 (chet@odin [21:17:40] src\(2:639\)$ bash)97 472.8 Q
1153 (chet@odin [21:17:46] src\(3:696\)$)97 484.8 Q F0(The)72 506.4 Q F1(\\$)2.5 E
1154 F0(escape is displayed as `)2.5 E(`)-.74 E F1($)A F0 1.48 -.74('' w)D
1155 (hen running as a normal user).74 E 2.5(,b)-.4 G(ut as `)342.08 506.4 Q(`)-.74
1156 E F1(#)A F0 1.48 -.74('' w)D(hen running as root.).74 E F1 2.5(4.3.8. POSIX)72
1157 530.4 R(Mode)2.5 E F0 .46(Although bash is intended to be POSIX.2 compliant, t\
1158 here are areas in which the def)97 546 R .46(ault beha)-.1 F .46(vior is)-.2 F
1159 1.168(not compatible with the standard.)72 558 R -.15(Fo)6.169 G 3.669(ru).15 G
1160 1.169(sers who wish to operate in a strict POSIX.2 en)238.85 558 R 1.169
1161 (vironment, bash)-.4 F .61(implements a)72 570 R F2 .61(POSIX mode)3.11 F F0
1162 5.61(.W)C .61(hen this mode is acti)199.42 570 R -.15(ve)-.25 G 3.109(,b).15 G
1163 .609(ash modi\214es its def)303.727 570 R .609(ault operation where it dif)-.1
1164 F(fers)-.25 E .066(from POSIX.2 to match the standard.)72 582 R .067
1165 (POSIX mode is entered when bash is started with the)5.066 F F1 .067(-o posix)
1166 2.567 F F0(option)2.567 E .382(or when)72 594 R F1 .382(set -o posix)2.882 F F0
1167 .381(is e)2.881 F -.15(xe)-.15 G 2.881(cuted. F).15 F .381
1168 (or compatibility with other GNU softw)-.15 F .381
1169 (are that attempts to be POSIX.2)-.1 F 5.752
1170 (compliant, bash also enters POSIX mode if either of the v)72 606 R(ariables)
1171 -.25 E F1(POSIX_PED)8.253 E(ANTIC)-.35 E F0(or)8.253 E F1(POSIXL)72 618 Q
1172 (Y_CORRECT)-.92 E F0 1.179(is set when bash is started or assigned a v)3.679 F
1173 1.178(alue during e)-.25 F -.15(xe)-.15 G 3.678(cution. When).15 F 1.178
1174 (bash is)3.678 F .218(started in POSIX mode, for e)72 630 R .218(xample, the)
1175 -.15 F F1(kill)2.718 E F0 -.2(bu)2.718 G(iltin').2 E(s)-.55 E F1<ad6c>2.718 E
1176 F0 .218(option beha)2.718 F -.15(ve)-.2 G 2.718(sd).15 G(if)370.166 630 Q .219
1177 (ferently: it lists the names of all)-.25 F 1.084(signals on a single line sep\
1178 arated by spaces, rather than listing the signal names and their corresponding)
1179 72 642 R(numbers.)72 654 Q .865(Some of the def)97 669.6 R .865(ault bash beha)
1180 -.1 F .865(vior dif)-.2 F .865
1181 (fers from other shells as a result of the POSIX standard.)-.25 F -.15(Fo)5.866
1182 G(r).15 E 1.16(instance, bash includes the)72 681.6 R F1(!)3.66 E F0(reserv)
1183 6.16 E 1.16(ed w)-.15 F 1.16(ord to ne)-.1 F -.05(ga)-.15 G 1.16
1184 (te the return status of a pipeline because it has been).05 F
1185 (de\214ned by POSIX.2.)72 693.6 Q
1186 (Neither sh nor ksh has implemented that feature.)5 E EP
1187 %%Page: 10 10
1188 %%BeginPageSetup
1189 BP
1190 %%EndPageSetup
1191 /F0 10/Times-Roman@0 SF 2.5(-1)277.17 48 S 2.5(0-)288 48 S/F1 10/Times-Bold@0
1192 SF 2.5(4.4. F)72 84 R(eatur)-.25 E(es Unique to ksh)-.18 E F0 .177
1193 (Ksh includes a number of features not in the currently-released v)97 99.6 R
1194 .178(ersion of bash, v)-.15 F .178(ersion 1.14.)-.15 F(Unless)5.178 E .822
1195 (noted, none of these features is in the POSIX.2 standard.)72 111.6 R .821
1196 (Where appropriate the equi)5.821 F -.25(va)-.25 G .821(lent bash features).25
1197 F(are noted.)72 123.6 Q F1 2.5(4.4.1. The)72 147.6 R(ksh Language)2.5 E F0
1198 2.955(An)97 163.2 S .955 -.25(ew c)112.175 163.2 T .455(ompound command folds)
1199 .25 F F1(test)2.955 E F0 .456(into the ksh language, delimited by the reserv)
1200 2.955 F .456(ed w)-.15 F(ords)-.1 E F1([[)2.956 E F0(and)2.956 E F1(]])72 175.2
1201 Q F0 5.726(.T)C .726(he syntax is identical to)92.996 175.2 R F1(test)3.225 E
1202 F0 .725(with a fe)3.225 F 3.225(wc)-.25 G .725
1203 (hanges: for instance, instead of)262.855 175.2 R F1<ad61>3.225 E F0(and)3.225
1204 E F1<ad6f>3.225 E F0(,)A F1(&&)3.225 E F0(and)3.225 E/F2 10/Symbol SF<efef>
1205 3.225 E F0(are)3.225 E 3.32(used. The)72 187.2 R -.1(wo)3.32 G .82(rds between)
1206 .1 F F1([[)3.32 E F0(and)3.32 E F1(]])3.32 E F0 .82(are not processed for w)
1207 3.32 F .82(ord splitting or \214lename generation.)-.1 F .82(The ne)5.82 F(w)
1208 -.25 E .926
1209 (command does pattern matching as well as string comparison, a la the)72 199.2
1210 R F1(case)3.425 E F0 3.425(command. This)3.425 F(ne)3.425 E 3.425(wc)-.25 G
1211 (ontrol)480.11 199.2 Q .165(structure does ha)72 211.2 R .465 -.15(ve t)-.2 H
1212 .165(he adv).15 F .166(antage of reducing common ar)-.25 F .166
1213 (gument problems encountered using test \(e.g.)-.18 F F1(test)2.666 E
1214 ("$string")72 223.2 Q F0 2.928(,w)C(here)125.748 223.2 Q F1($string)2.928 E F0
1215 -.15(ex)2.928 G .428(pands to).15 F F1<ad66>2.928 E F0 .428(\), b)B .428
1216 (ut at the cost of bloating the language.)-.2 F .427(The POSIX.2 test algo-)
1217 5.427 F 2.752(rithm that bash uses, along with some programmer care, alle)72
1218 235.2 R 2.752(viates those problems in a backw)-.25 F(ards-)-.1 E .854
1219 (compatible w)72 247.2 R .853(ay with no additions to the language.)-.1 F .853
1220 (The one capability of)5.853 F F1 .853([[ ]])3.353 F F0 .853(not a)3.353 F -.25
1221 (va)-.2 G .853(ilable in bash is its).25 F(ability to test whether an indi)72
1222 259.2 Q(vidual)-.25 E F1(set \255o)2.5 E F0(option is turned on or of)2.5 E(f.)
1223 -.25 E .339(Other parts of the ksh language are not common to bash.)97 274.8 R
1224 (The)5.34 E F1(\(\(...\)\))2.84 E F0(operator)5.34 E 2.84(,e)-.4 G(qui)419.33
1225 274.8 Q -.25(va)-.25 G .34(lent to).25 F F1 .34(let "...")2.84 F F0(,)A .197
1226 (is unique to ksh, as are the concept of co-processes and the)72 286.8 R F1
1227 (time)2.697 E F0 -.1(ke)2.696 G(yw)-.05 E .196
1228 (ord to time commands and pipelines.)-.1 F F1 2.5(4.4.2. Functions)72 310.8 R
1229 (and Aliases)2.5 E F0 1.022(The K)97 326.4 R 1.022(orn shell has)-.35 F/F3 10
1230 /Times-Italic@0 SF(autoloaded)3.522 E F0 3.522(functions. A)3.522 F 1.022
1231 (function mark)3.522 F 1.022(ed as)-.1 F F3(autoload)3.522 E F0 1.022
1232 (is not de\214ned until it is)5.188 F 1.042(\214rst e)72 338.4 R -.15(xe)-.15 G
1233 3.542(cuted. When).15 F 1.042(such a function is e)3.542 F -.15(xe)-.15 G 1.042
1234 (cuted, a search is made through the directories in).15 F F1(FP)3.541 E -.95
1235 (AT)-.74 G(H).95 E F0(\(a)3.541 E .27
1236 (colon-separated list of directories similar to)72 350.4 R F1 -.74(PA)2.77 G
1237 (TH)-.21 E F0 2.77(\)f)C .27(or a \214le with the same name as the function.)
1238 285.78 350.4 R .27(That \214le)5.27 F .548(is then read in as with the)72 362.4
1239 R F1(.)3.881 E F0 .547(command; presumably the function is de\214ned therein.)
1240 3.047 F .547(There is a pair of shell)5.547 F .886
1241 (functions included in the bash distrib)72 374.4 R .886(ution \()-.2 F F3 -.2
1242 (ex)C(amples/functions/autoload).2 E F0 5.886(\)t)C .886(hat pro)378.35 374.4 R
1243 .886(vide much of this func-)-.15 F
1244 (tionality without changing the shell itself.)72 386.4 Q .116
1245 (Ksh functions are scoped in such a w)97 402 R .116(ay that the en)-.1 F .116
1246 (vironment in which the)-.4 F 2.616(ya)-.15 G .116(re e)405.144 402 R -.15(xe)
1247 -.15 G .115(cuted is closer to a).15 F .827(shell script en)72 414 R 3.327
1248 (vironment. Bash)-.4 F .827(uses the POSIX.2 scoping rules, which mak)3.327 F
1249 3.327(et)-.1 G .827(he function e)392.517 414 R -.15(xe)-.15 G .828(cution en)
1250 .15 F(vi-)-.4 E 1.2(ronment an e)72 426 R 1.2(xact cop)-.15 F 3.7(yo)-.1 G 3.7
1251 (ft)174.86 426 S 1.199(he shell en)184.67 426 R 1.199
1252 (vironment with the replacement of the shell')-.4 F 3.699(sp)-.55 G 1.199
1253 (ositional paramters)426.421 426 R(with the function ar)72 438 Q 2.5
1254 (guments. K)-.18 F
1255 (orn shell functions do not share options or traps with the in)-.35 E -.2(vo)
1256 -.4 G(king shell.).2 E .451(Ksh has)97 453.6 R F3(tr)2.951 E(ac)-.15 E -.1(ke)
1257 -.2 G(d).1 E F0 .452(aliases, which alias a command name to its full pathname.)
1258 2.952 F .452(Bash has true command)5.452 F(hashing.)72 465.6 Q F1 2.5
1259 (4.4.3. Arrays)72 489.6 R F0 .246
1260 (Arrays are an aspect of ksh that has no real bash equi)97 505.2 R -.25(va)-.25
1261 G 2.746(lent. The).25 F 2.746(ya)-.15 G .246(re easy to create and manipulate:)
1262 371.42 505.2 R 1.637
1263 (an array is created automatically by using subscript assignment \()72 517.2 R
1264 F1(name)A F0([)A F3(inde)A(x)-.2 E F0(]=)A F1 -.1(va)C(lue).1 E F0 1.637
1265 (\), and an)B 4.137(yv)-.15 G(ariable)476.79 517.2 Q 1.967
1266 (may be referred to as an array)72 529.2 R 6.967(.K)-.65 G 1.967(sh arrays, ho)
1267 219.229 529.2 R(we)-.25 E -.15(ve)-.25 G 2.767 -.4(r, h).15 H -2.25 -.2(av e).4
1268 H(se)4.667 E -.15(ve)-.25 G 1.967(ral anno).15 F 1.967(ying limitations: the)
1269 -.1 F 4.466(ym)-.15 G 1.966(ay be)480.654 529.2 R(inde)72 541.2 Q -.15(xe)-.15
1270 G 3.498(do).15 G .998(nly up to 512 or 1024 elements, depending on ho)111.858
1271 541.2 R 3.498(wt)-.25 G .999(he shell is compiled, and there is only the)
1272 330.188 541.2 R(clumsy)72 553.2 Q F1 .223(set -A)2.723 F F0 .223
1273 (to assign a list of v)2.723 F .223(alues sequentially)-.25 F 5.223(.D)-.65 G
1274 .223(espite these limits, arrays are useful, if underutilized)293.31 553.2 R
1275 (by shell programmers.)72 565.2 Q F1 2.5(4.4.4. Builtin)72 589.2 R(Commands)2.5
1276 E F0 .112(Some of the b)97 604.8 R .112(uiltin commands ha)-.2 F .412 -.15
1277 (ve b)-.2 H .112(een e).15 F .112(xtended or are ne)-.15 F 2.612(wi)-.25 G
1278 2.613(nk)351.402 604.8 S 2.613(sh. The)364.015 604.8 R F1(print)2.613 E F0 -.2
1279 (bu)2.613 G .113(iltin w).2 F .113(as included)-.1 F .242(to w)72 616.8 R .242
1280 (ork around the incompatibilities and limitations of)-.1 F F1(echo)2.741 E F0
1281 5.241(.T)C(he)328.234 616.8 Q F1(whence)2.741 E F0 .241(command tells what w)
1282 2.741 F .241(ould hap-)-.1 F .418(pen if each ar)72 628.8 R .418
1283 (gument were typed as a command name.)-.18 F(The)5.418 E F1(cd)2.919 E F0 -.2
1284 (bu)2.919 G .419(iltin has been e).2 F .419(xtended to tak)-.15 F 2.919(eu)-.1
1285 G 2.919(pt)470.482 628.8 S 2.919(ot)481.181 628.8 S -.1(wo)491.88 628.8 S(ar)72
1286 640.8 Q 1.425(guments: if tw)-.18 F 3.925(oa)-.1 G -.18(rg)153.485 640.8 S
1287 1.424(uments are supplied, the second is substituted for the \214rst in the cu\
1288 rrent directory).18 F 2.294
1289 (name and the shell changes to the resultant directory name.)72 652.8 R 2.295
1290 (The ksh)7.294 F F1(trap)4.795 E F0 -.2(bu)4.795 G 2.295(iltin accepts).2 F F1
1291 (ERR)4.795 E F0(and)4.795 E F1(DEB)72 664.8 Q(UG)-.1 E F0 .15(as trap names.)
1292 2.65 F(The)5.15 E F1(ERR)2.65 E F0 .15(trap is e)2.65 F -.15(xe)-.15 G .15
1293 (cuted when a command f).15 F(ails;)-.1 E F1(DEB)2.65 E(UG)-.1 E F0 .15(is e)
1294 2.65 F -.15(xe)-.15 G .15(cuted after e).15 F -.15(ve)-.25 G(ry).15 E
1295 (simple command.)72 676.8 Q .05(The bash distrib)97 692.4 R .05
1296 (ution includes shell functions that implement)-.2 F F1(print)2.55 E F0(and)
1297 2.55 E F1(whence)2.55 E F0 .05(and the e)2.55 F .05(xtensions to)-.15 F F1(cd)
1298 72 704.4 Q F0(.)A EP
1299 %%Page: 11 11
1300 %%BeginPageSetup
1301 BP
1302 %%EndPageSetup
1303 /F0 10/Times-Roman@0 SF 2.5(-1)277.17 48 S 2.5(1-)288 48 S/F1 10/Times-Bold@0
1304 SF 2.5(4.4.5. Expansion)72 84 R F0 .282(The ksh \214lename generation \()97
1305 99.6 R/F2 10/Times-Italic@0 SF(globbing)A F0 2.782(\)f)C .282(acilities ha)
1306 262.45 99.6 R .581 -.15(ve b)-.2 H .281(een e).15 F .281(xtended be)-.15 F .281
1307 (yond their bash and sh coun-)-.15 F 3.68(terparts. In)72 111.6 R 1.181
1308 (this area, ksh can be thought of as)3.681 F F2 -.4(eg)3.681 G -.37(re).4 G(p)
1309 .37 E F0 1.181(to the bash)5.347 F F2(gr)3.681 E(ep)-.37 E F0 6.181(.K)1.666 G
1310 1.181(sh globbing of)382.406 111.6 R 1.181(fers things lik)-.25 F(e)-.1 E 1.018
1311 (alternation, the ability to match zero or more instances of a pattern, and th\
1312 e ability to match e)72 123.6 R 1.018(xactly one)-.15 F(occurrence of an)72
1313 135.6 Q 2.5(yo)-.15 G 2.5(fal)150.98 135.6 S(ist of patterns.)166.53 135.6 Q F1
1314 2.5(4.4.6. Startup)72 159.6 R(Files)2.5 E F0 .977(Ksh and bash e)97 175.2 R
1315 -.15(xe)-.15 G .977(cute startup \214les dif).15 F(ferently)-.25 E 5.977(.K)
1316 -.65 G .977(sh e)297.879 175.2 R(xpands)-.15 E F1(ENV)3.478 E F0 .978
1317 (and sources the \214le it names for)3.478 F -2.15 -.25(ev e)72 187.2 T 1.85
1318 (ry shell.).25 F 1.85(Bash sources)6.85 F F1($ENV)4.35 E F0 1.85
1319 (only in non-interacti)4.35 F 2.15 -.15(ve s)-.25 H 1.85(hells; interacti).15 F
1320 2.15 -.15(ve s)-.25 H 1.85(hells source \214x).15 F 1.85(ed \214les, as)-.15 F
1321 -.15(ex)72 199.2 S 1.285(plained in the pre).15 F 1.285(vious section.)-.25 F
1322 1.285(The POSIX standard has speci\214ed the ksh beha)6.285 F(vior)-.2 E 3.785
1323 (,s)-.4 G 3.785(ob)441.545 199.2 S 1.285(ash acts the)455.33 199.2 R
1324 (same as ksh if started with the)72 211.2 Q F1(\255posix)2.5 E F0(or)2.5 E F1
1325 (\255o posix)2.5 E F0(options.)2.5 E F1 2.5(4.4.7. History)72 235.2 R F0
1326 (Finally)97 250.8 Q 3.372(,t)-.65 G .872(he ksh history implementation dif)
1327 133.342 250.8 R .871(fers slightly from bash.)-.25 F .871
1328 (Each instance of bash k)5.871 F .871(eeps the)-.1 F .633
1329 (history list in memory and of)72 262.8 R .633(fers options to the)-.25 F F1
1330 (history)3.133 E F0 -.2(bu)3.133 G .634
1331 (iltin to write the list to or read it from a named).2 F 3.216(\214le. Ksh)72
1332 274.8 R -.1(ke)3.216 G .716
1333 (eps the history in a \214le, which it accesses each time a command is sa).1 F
1334 -.15(ve)-.2 G 3.215(dt).15 G 3.215(oo)426.445 274.8 S 3.215(rr)439.66 274.8 S
1335 (etrie)449.535 274.8 Q -.15(ve)-.25 G 3.215(df).15 G(rom)487.89 274.8 Q .338
1336 (the history)72 286.8 R 5.338(.K)-.65 G .338
1337 (sh history \214les may be shared among dif)129.246 286.8 R .338
1338 (ferent concurrent instances of ksh, which could be a)-.25 F
1339 (bene\214t to the user)72 298.8 Q(.)-.55 E F1 2.5(5. F)72 322.8 R(eatur)-.25 E
1340 (es in Bash-2.0)-.18 E F0 .657(The ne)97 338.4 R .657
1341 (xt release of bash, 2.0, will be a major o)-.15 F -.15(ve)-.15 G 3.157
1342 (rhaul. It).15 F .656(will include man)3.157 F 3.156(yn)-.15 G 1.156 -.25(ew f)
1343 419.532 338.4 T .656(eatures, for both).25 F .705(programming and interacti)72
1344 350.4 R 1.005 -.15(ve u)-.25 H 3.205(se. Redundant).15 F -.15(ex)3.205 G .705
1345 (isting functions will be remo).15 F -.15(ve)-.15 G 3.206(d. There).15 F .706
1346 (are se)3.206 F -.15(ve)-.25 G .706(ral cases).15 F 1.34(where bash treats a v)
1347 72 362.4 R 1.34(ariable specially to enable functionality a)-.25 F -.25(va)-.2
1348 G 1.34(ilable another w).25 F 1.34(ay \()-.1 F F1($nolinks)A F0(vs.)3.84 E F1
1349 1.34(set -o)3.84 F(ph)72 374.4 Q(ysical)-.15 E F0 2.5(,f)C(or e)115.19 374.4 Q
1350 (xample\); the special treatment of the v)-.15 E(ariable name will be remo)-.25
1351 E -.15(ve)-.15 G(d.).15 E F1 2.5(5.1. Arrays)72 398.4 R F0 .546(Bash-2.0 will \
1352 include arrays which are a superset of those in ksh, with the size limitations\
1353  remo)97 414 R -.15(ve)-.15 G(d.).15 E(The)72 426 Q F1(declar)3.086 E(e)-.18 E
1354 F0(,)A F1 -.18(re)3.086 G(adonly).18 E F0 3.086(,a)C(nd)174.768 426 Q F1
1355 (export)3.086 E F0 -.2(bu)3.086 G .586
1356 (iltins will accept options to specify arrays, and the).2 F F1 -.18(re)3.085 G
1357 (ad).18 E F0 -.2(bu)3.085 G .585(iltin will).2 F(ha)72 438 Q .81 -.15(ve a)-.2
1358 H 3.01(no).15 G .51(ption to read a list of w)110.99 438 R .51
1359 (ords and assign them directly to an array)-.1 F 5.51(.T)-.65 G .51
1360 (here will also be a ne)386.23 438 R 3.01(wa)-.25 G(rray)487.9 438 Q F2 .262
1361 (compound assignment)72 450 R F0 .262(syntax a)2.762 F -.25(va)-.2 G .262
1362 (ilable for assignment statements and the).25 F F1(declar)2.761 E(e)-.18 E F0
1363 -.2(bu)2.761 G 2.761(iltin. This).2 F(ne)2.761 E 2.761(ws)-.25 G(yntax)481.78
1364 450 Q .441(has the form)72 462 R F2(name)2.941 E F0(=\()A F2(value1)A F0(...)
1365 2.941 E F2(valueN)2.941 E F0 .441(\), where each)B F2(value)2.942 E F0 .442
1366 (has the form [)4.608 F F2(subscript)A F0(]=)A F2(string)A F0 5.442(.O)C .442
1367 (nly the)449.776 462 R F2(string)2.942 E F0 1.395(is required.)72 474 R 1.395
1368 (If the optional brack)6.395 F 1.395(ets and)-.1 F F2(subscript)3.894 E F0
1369 1.394(are included, that inde)3.894 F 3.894(xi)-.15 G 3.894(sa)388.714 474 S
1370 1.394(ssigned to, otherwise the)400.938 474 R(inde)72 486 Q 3.656(xo)-.15 G
1371 3.656(ft)102.726 486 S 1.156(he element assigned is the last inde)112.492 486 R
1372 3.657(xa)-.15 G 1.157(ssigned to by the statement plus one.)272.917 486 R(Inde)
1373 6.157 E 1.157(xing starts at)-.15 F 2.73(zero. The)72 498 R .23
1374 (same syntax is accepted by)2.73 F F1(declar)2.73 E(e)-.18 E F0 5.229(.I)C(ndi)
1375 269.159 498 Q .229(vidual array elements may be assigned to using the ksh)-.25
1376 F F2(name)72 510 Q F0([)A F2(subscript)A F0(]=)A F2(value)A F0(.)A F1 2.5
1377 (5.2. Dynamic)72 534 R(Loading)2.5 E F0 .348(On systems that support the)97
1378 549.6 R F2(dlopen)2.848 E F0 .349(\(3\) library function, bash-2.0 will allo)B
1379 2.849(wn)-.25 G .849 -.25(ew b)407.504 549.6 T .349(uiltins to be loaded).05 F
1380 .049(into a running shell from a shared object \214le.)72 561.6 R .049(The ne)
1381 5.049 F 2.549(wb)-.25 G .049(uiltins will ha)298.999 561.6 R .348 -.15(ve a)-.2
1382 H .048(ccess to the rest of the shell f).15 F(acil-)-.1 E .649(ities, b)72
1383 573.6 R .649(ut programmers will be subject to a fe)-.2 F 3.149(ws)-.25 G .649
1384 (tructural rules.)269.591 573.6 R .65(This will be pro)5.65 F .65
1385 (vided via a ne)-.15 F 3.15(wo)-.25 G .65(ption to)472.51 573.6 R F1(enable)72
1386 585.6 Q F0(.)A F1 2.5(5.3. Builtins)72 609.6 R F0 .889(Some of the e)97 625.2 R
1387 .889(xisting b)-.15 F .889(uiltins will change in bash-2.0.)-.2 F .888(As pre)
1388 5.888 F .888(viously noted,)-.25 F F1(declar)3.388 E(e)-.18 E F0(,)A F1(export)
1389 3.388 E F0(,)A F1 -.18(re)3.388 G(ad-).18 E(only)72 637.2 Q F0 2.873(,a)C(nd)
1390 100.153 637.2 Q F1 -.18(re)2.873 G(ad).18 E F0 .373(will accept ne)2.873 F
1391 2.873(wo)-.25 G .374(ptions to specify arrays.)206.288 637.2 R(The)5.374 E F1
1392 (jobs)2.874 E F0 -.2(bu)2.874 G .374(iltin will be able to list only stopped).2
1393 F .323(or running jobs.)72 649.2 R(The)5.322 E F1(enable)2.822 E F0 .322
1394 (command will tak)2.822 F 2.822(ean)-.1 G -.25(ew)282.84 649.2 S F1<ad73>3.072
1395 E F0 .322(option to restrict its actions to the POSIX.2)2.822 F F2(spe-)2.822 E
1396 (cial)72 661.2 Q F0 -.2(bu)3.14 G(iltins.).2 E F1(Kill)5.64 E F0 .64
1397 (will be able to list signal numbers corresponding to indi)3.14 F .64
1398 (vidual signal names.)-.25 F .64(The read-)5.64 F .703(line library interf)72
1399 673.2 R(ace,)-.1 E F1(bind)3.203 E F0 3.203(,w)C .703(ill ha)193.032 673.2 R
1400 1.003 -.15(ve a)-.2 H 3.203(no).15 G .703(ption to remo)243.951 673.2 R 1.003
1401 -.15(ve t)-.15 H .703(he binding for an).15 F 3.203(yk)-.15 G 1.002 -.15(ey s)
1402 398.032 673.2 T .702(equence \(which is not).15 F
1403 (the same as binding it to self-insert\).)72 685.2 Q .494(There will be tw)97
1404 700.8 R 2.994(on)-.1 G .994 -.25(ew b)177.196 700.8 T .495
1405 (uiltin commands in bash-2.0.).05 F(The)5.495 E F1(diso)2.995 E(wn)-.1 E F0
1406 .495(command will remo)2.995 F .795 -.15(ve j)-.15 H .495(obs from).15 F(bash')
1407 72 712.8 Q 3.445(si)-.55 G .945(nternal jobs table when job control is acti)
1408 103.225 712.8 R -.15(ve)-.25 G 5.945(.A).15 G(diso)303.25 712.8 Q .944
1409 (wned job will not be listed by the jobs com-)-.25 F .666(mand, nor will its e)
1410 72 724.8 R .666(xit status be reported.)-.15 F(Diso)5.667 E .667
1411 (wned jobs will not be sent a)-.25 F F1(SIGHUP)3.167 E F0 .667
1412 (when an interacti)3.167 F -.15(ve)-.25 G EP
1413 %%Page: 12 12
1414 %%BeginPageSetup
1415 BP
1416 %%EndPageSetup
1417 /F0 10/Times-Roman@0 SF 2.5(-1)277.17 48 S 2.5(2-)288 48 S .688(shell e)72 84 R
1418 3.187(xits. Most)-.15 F .687(of the shell')3.187 F 3.187(so)-.55 G .687
1419 (ptional or)205.423 84 R/F1 10/Times-Italic@0 SF(to)3.187 E -.1(gg)-.1 G(led).1
1420 E F0 .687(functionality will be folded into the ne)3.187 F(w)-.25 E/F2 10
1421 /Times-Bold@0 SF(shopt)3.187 E F0 -.2(bu)3.187 G(iltin.).2 E(Man)72 96 Q 3.714
1422 (yo)-.15 G 3.714(ft)103.894 96 S 1.214(he v)113.718 96 R 1.214
1423 (ariables which alter the shell')-.25 F 3.714(sb)-.55 G(eha)266.282 96 Q 1.214
1424 (vior when set \(re)-.2 F -.05(ga)-.15 G 1.214(rdless of their v).05 F 1.215
1425 (alue\) will be made)-.25 F 6(options settable with)72 108 R F2(shopt)8.5 E F0
1426 11(.E)C 6(xamples of such v)218.23 108 R 6(ariables include)-.25 F F2(allo)8.5
1427 E(w_null_glob_expansion)-.1 E F0(,)A F2(glob_dot_\214lenames)72 120 Q F0 2.5
1428 (,a)C(nd)163.67 120 Q F2(MAIL_W)2.5 E(ARNING)-1.2 E F0(.)A F2 2.5(5.4. V)72 144
1429 R(ariables and V)-.92 E(ariable Expansion)-.92 E F0 .047
1430 (Bash-2.0 will implement se)97 159.6 R -.15(ve)-.25 G .048(ral ne).15 F 2.548
1431 (wv)-.25 G .048(ariable e)252.988 159.6 R 2.548(xpansions. These)-.15 F .048
1432 (will answer se)2.548 F -.15(ve)-.25 G .048(ral of the most per).15 F(-)-.2 E
1433 .213(sistant requests for ne)72 171.6 R 2.713(wf)-.25 G 2.713(eatures. It)
1434 172.582 171.6 R .213(will be possible to `)2.713 F .212(`indirectly reference')
1435 -.74 F 2.712('av)-.74 G .212(ariable with an e)398.534 171.6 R(xpansion,)-.15 E
1436 (lik)72 183.6 Q 3.01(eu)-.1 G(sing)94.91 183.6 Q/F3 10/Courier@0 SF .51
1437 (eval \\$${name})3.01 F F0 .51(to reference a v)3.01 F .51(ariable named by)
1438 -.25 F F3(${name})3.01 E F0 5.51(.E)C .51(xpansions will be a)394.32 183.6 R
1439 -.25(va)-.2 G(ilable).25 E .462(to retrie)72 195.6 R .762 -.15(ve s)-.25 H .462
1440 (ubstrings of v).15 F .461(ariables in an)-.25 F F1(awk)2.961 E F0(-lik)A 2.961
1441 (em)-.1 G .461(anner: starting at a speci\214c inde)277.692 195.6 R .461
1442 (x, retrie)-.15 F .461(ving some num-)-.25 F .941
1443 (ber of characters or the rest of the string.)72 207.6 R .941
1444 (It will be possible to retrie)5.941 F 1.241 -.15(ve s)-.25 H .941
1445 (equences of array elements lik).15 F(e)-.1 E .354(this, too.)72 219.6 R .354
1446 (It w)5.354 F .354(ould be nice to ha)-.1 F .654 -.15(ve a w)-.2 H .354
1447 (ay to replace portions of a v).05 F .353
1448 (ariable matching a pattern the same w)-.25 F(ay)-.1 E(leading or trailing sub\
1449 strings are presently stripped; that capability may be a)72 231.6 Q -.25(va)-.2
1450 G(ilable.).25 E .453(Another ne)97 247.2 R 2.953(we)-.25 G .453
1451 (xpansion will pro)156.376 247.2 R .453(vide a w)-.15 F .454
1452 (ay to create strings containing arbitrary characters, which is)-.1 F(incon)72
1453 259.2 Q -.15(ve)-.4 G 1.636(nient in the current v).15 F 4.136(ersion. W)-.15 F
1454 1.635(ords of the form $')-.8 F F1(string)A F0 4.135('w)C 1.635(ill e)355.145
1455 259.2 R 1.635(xpand to)-.15 F F1(string)4.135 E F0 1.635(with backslash-)4.135
1456 F 1.231(escaped characters in)72 271.2 R F1(string)3.731 E F0 1.231
1457 (replaced as speci\214ed by the ANSI C standard.)3.731 F 1.232
1458 (As with other single-quoted)6.232 F
1459 (shell strings, the only character that may not appear in)72 283.2 Q F1(string)
1460 2.5 E F0(is a single quote.)2.5 E 1.436(The shell v)97 298.8 R 1.436
1461 (ariables will change also.)-.25 F 3.936(An)6.436 G 1.936 -.25(ew va)272.052
1462 298.8 T(riable).25 E F2(HISTIGNORE)3.936 E F0 1.435(will supersede)3.936 F F2
1463 (HISTCON-)3.935 E(TR)72 310.8 Q(OL)-.3 E F0(.)A F2(HISTIGNORE)5.327 E F0 .327
1464 (is the history analogy of)2.827 F F2(FIGNORE)2.828 E F0 2.828(:ac)C .328
1465 (olon-separated list of patterns specifying)339.938 310.8 R 1.082
1466 (commands to omit from the history list.)72 322.8 R 1.081
1467 (The special pattern '&' will match the pre)6.081 F 1.081
1468 (vious history line, to)-.25 F(pro)72 334.8 Q 1.568(vide the)-.15 F F2
1469 (HISTCONTR)4.068 E(OL)-.3 E F1(ignor)4.068 E(edups)-.37 E F0(beha)5.734 E(vior)
1470 -.2 E 6.568(.M)-.55 G(an)303.546 334.8 Q 4.069(yv)-.15 G 1.569
1471 (ariables which modify the shell')326.655 334.8 R 4.069(sb)-.55 G(eha)474.21
1472 334.8 Q(vior)-.2 E .395(will lose their special meaning.)72 346.8 R -1.11(Va)
1473 5.395 G .395(riables such as)1.11 F F2(notify)2.895 E F0(and)2.895 E F2(noclob)
1474 2.895 E(ber)-.1 E F0 .395(which pro)2.895 F .395(vide functionality a)-.15 F
1475 -.25(va)-.2 G(il-).25 E .931
1476 (able via other mechanisms will no longer be treated specially)72 358.8 R 5.931
1477 (.O)-.65 G .931(ther v)340.06 358.8 R .932(ariables will be folded into)-.25 F
1478 F2(shopt)3.432 E F0(.)A(The)72 370.8 Q F2(history_contr)5.519 E(ol)-.18 E F0
1479 (and)5.519 E F2(hostname_completion_\214le)5.519 E F0 -.25(va)5.519 G 3.019
1480 (riables, superseded by).25 F F2(HISTCONTR)5.518 E(OL)-.3 E F0(and)5.518 E F2
1481 (HOSTFILE)72 382.8 Q F0(respecti)2.5 E -.15(ve)-.25 G(ly).15 E 2.5(,w)-.65 G
1482 (ill be remo)185.12 382.8 Q -.15(ve)-.15 G(d.).15 E F2 2.5(5.5. Readline)72
1483 406.8 R F0(Naturally)97 422.4 Q 2.94(,t)-.65 G .44(here will be impro)142.34
1484 422.4 R -.15(ve)-.15 G .441(ments to readline as well.).15 F .441
1485 (All of the POSIX.2)5.441 F F1(vi)2.941 E F0 .441(-mode editing com-)B .33
1486 (mands will be implemented; missing commands lik)72 434.4 R 2.829(e`)-.1 G .329
1487 (m' to sa)290.599 434.4 R .629 -.15(ve t)-.2 H .329
1488 (he current cursor position \().15 F F1(mark)A F0 2.829(\)a)C .329(nd the)
1489 478.951 434.4 R .36(`@' command for macro e)72 446.4 R .36(xpansion will be a)
1490 -.15 F -.25(va)-.2 G 2.861(ilable. The).25 F .361
1491 (ability to set the mark and e)2.861 F .361(xchange the current)-.15 F .764
1492 (cursor position \()72 458.4 R F1(point)A F0 3.264(\)a)C .764
1493 (nd mark will be added to the readline emacs mode as well.)170.672 458.4 R .763
1494 (Since there are com-)5.764 F .196
1495 (mands to set the mark, commands to manipulate the re)72 470.4 R .197
1496 (gion \(the characters between the point and the mark\))-.15 F .111(will be a)
1497 72 482.4 R -.25(va)-.2 G 2.611(ilable. Commands).25 F(ha)2.611 E .411 -.15
1498 (ve b)-.2 H .11
1499 (een added to the readline emacs mode for more complete ksh compati-).15 F
1500 (bility)72 494.4 Q 2.5(,s)-.65 G(uch as the C-])101.36 494.4 Q F1(c)A F0
1501 (character search command.)2.5 E F2 2.5(5.6. Con\214guration)72 518.4 R F0 .318
1502 (Bash w)97 534 R .318
1503 (as the \214rst GNU program to completely autocon\214gure.)-.1 F .319
1504 (Its autocon\214guration mechanism pre-)5.319 F(dates)72 546 Q F1(autoconf)4.07
1505 E F0 4.07(,t)C 1.569
1506 (he current GNU con\214guration program, and needs updating.)140.97 546 R 1.569
1507 (Bash-2.0 may include an)6.569 F .603
1508 (autoconf-based con\214guration script, if necessary ne)72 558 R 3.103(wf)-.25
1509 G .603(unctionality can be added to autoconf, or its limita-)294.476 558 R
1510 (tions bypassed.)72 570 Q F2 2.5(5.7. Miscellaneous)72 594 R F0 1.632
1511 (The POSIX mode will be impro)97 609.6 R -.15(ve)-.15 G 4.131(di).15 G 4.131
1512 (nb)254.26 609.6 S 1.631(ash-2.0; it will pro)268.391 609.6 R 1.631
1513 (vide a more complete superset of the)-.15 F(POSIX standard.)72 621.6 Q -.15
1514 (Fo)5 G 2.5(rt).15 G(he \214rst time, bash will recognize the e)163.79 621.6 Q
1515 (xistance of the POSIX.2)-.15 E F1(special)2.5 E F0 -.2(bu)2.5 G(iltins.).2 E
1516 2.627(An)97 637.2 S .627 -.25(ew t)111.847 637.2 T .127(rap v).25 F(alue,)-.25
1517 E F2(DEB)2.627 E(UG)-.1 E F0 2.627(,w)C .128(ill be present, as in ksh.)218.405
1518 637.2 R .128(Commands speci\214ed with a)5.128 F F2(DEB)2.628 E(UG)-.1 E F0
1519 .128(trap will)2.628 F 1.908(be e)72 649.2 R -.15(xe)-.15 G 1.908
1520 (cuted after e).15 F -.15(ve)-.25 G 1.908(ry simple command.).15 F 1.908
1521 (Since this mak)6.908 F 1.908(es shell script deb)-.1 F 1.908
1522 (uggers possible, I hope to)-.2 F(include a bash deb)72 661.2 Q
1523 (ugger in the bash-2.0 release.)-.2 E F2 2.5(6. A)72 685.2 R -.1(va)-1 G
1524 (ilability).1 E F0 5.997(The current v)97 700.8 R 5.997(ersion of bash is a)
1525 -.15 F -.25(va)-.2 G 5.998(ilable for anon).25 F 5.998
1526 (ymous FTP from prep.ai.mit.edu as)-.15 F F1(/pub/gnu/bash-1.14.2.tar)72 712.8
1527 Q(.gz)-1.11 E F0(.)1.666 E EP
1528 %%Page: 13 13
1529 %%BeginPageSetup
1530 BP
1531 %%EndPageSetup
1532 /F0 10/Times-Roman@0 SF 2.5(-1)277.17 48 S 2.5(3-)288 48 S/F1 10/Times-Bold@0
1533 SF 2.5(7. Conclusion)72 84 R F0 .755(This paper has presented an o)97 99.6 R
1534 -.15(ve)-.15 G(rvie).15 E 3.255(wo)-.25 G 3.255(fb)259.27 99.6 S .755
1535 (ash, compared its features with those of other shells, and)270.855 99.6 R
1536 (hinted at features in the ne)72 111.6 Q(xt release, bash-2.0.)-.15 E .483
1537 (Bash is a solid replacement for sh.)97 127.2 R .483(It is suf)5.483 F .483
1538 (\214ciently portable to run on nearly e)-.25 F -.15(ve)-.25 G .484(ry v).15 F
1539 .484(ersion of)-.15 F/F2 9/Times-Roman@0 SF(UNIX)2.984 E F0 .514
1540 (from 4.3 BSD to SVR4.2, and se)72 139.2 R -.15(ve)-.25 G(ral).15 E F2(UNIX)
1541 3.013 E F0 -.1(wo)3.013 G(rkalik).1 E .513(es, and rob)-.1 F .513
1542 (ust enough to replace sh on most of those)-.2 F .771(systems, It is v)72 151.2
1543 R .771(ery close to POSIX.2-conformant in POSIX mode, and is getting f)-.15 F
1544 (aster)-.1 E 5.771(.I)-.55 G 3.272(ti)436.684 151.2 S 3.272(sn)445.516 151.2 S
1545 .772(ot, unfortu-)457.678 151.2 R(nately)72 163.2 Q 2.663(,g)-.65 G .163
1546 (etting smaller)105.953 163.2 R 2.663(,b)-.4 G .163(ut there are man)170.399
1547 163.2 R 2.663(yo)-.15 G .163(ptional features.)248.101 163.2 R .163(It is v)
1548 5.163 F .162(ery easy to b)-.15 F .162(uild a small subset to use as)-.2 F 2.5
1549 (ad)72 175.2 S(irect replacement for /bin/sh.)83.94 175.2 Q .909
1550 (Bash has thousands of users w)97 190.8 R .909(orldwide, all of whom ha)-.1 F
1551 1.209 -.15(ve h)-.2 H .91(elped to mak).15 F 3.41(ei)-.1 G 3.41(tb)409.34 190.8
1552 S(etter)420.53 190.8 Q 5.91(.A)-.55 G .91(nother testa-)453.38 190.8 R
1553 (ment to the bene\214ts of free softw)72 202.8 Q(are.)-.1 E F1 2.5(8. Refer)72
1554 226.8 R(ences)-.18 E F0 .432([1] S. R. Bourne, `)72 242.4 R .432(`UNIX T)-.74 F
1555 .432(ime-Sharing System:)-.35 F .431(The UNIX Shell')5.431 F(',)-.74 E/F3 10
1556 /Times-Italic@0 SF .431(Bell System T)2.931 F(ec)-.92 E .431(hnical J)-.15 F
1557 (ournal)-.25 E F0 2.931(,5)C(7\(6\),)484.84 242.4 Q
1558 (July-August, 1978, pp. 1971-1990.)72 254.4 Q .736([2] Morris Bolsk)72 270 R
1559 3.237(ya)-.15 G .737(nd Da)153.22 270 R .737(vid K)-.2 F(orn,)-.35 E F3 .737
1560 (The K)3.237 F .737(ornShell Command and Pr)-.4 F -.1(og)-.45 G -.15(ra).1 G
1561 .737(mming Langua).15 F -.1(ge)-.1 G F0 3.237(,P).1 G .737(rentice Hall,)
1562 453.833 270 R(1989.)72 282 Q .142([3] Bill Jo)72 297.6 R 1.442 -.65(y, A)-.1 H
1563 2.642(nI).65 G .141(ntroduction to the C Shell,)140.428 297.6 R F3 .141
1564 (UNIX User')2.641 F 2.641(sS)-.4 G .141(upplementary Documents)309.346 297.6 R
1565 F0 2.641(,U)C(ni)424.328 297.6 Q -.15(ve)-.25 G .141(rsity of Califor).15 F(-)
1566 -.2 E(nia at Berk)72 309.6 Q(ele)-.1 E 1.3 -.65(y, 1)-.15 H(986.).65 E .283
1567 ([4] IEEE,)72 325.2 R F3 .283(IEEE Standar)2.783 F 2.783(df)-.37 G .283
1568 (or Information T)179.692 325.2 R(ec)-.92 E(hnolo)-.15 E .283(gy -- P)-.1 F
1569 .283(ortable Oper)-.8 F .283(ating System Interface \(POSIX\) P)-.15 F(art)-.8
1570 E(2: Shell and Utilities)72 337.2 Q F0 2.5(,1)C(992.)165.06 337.2 Q F1 2.5
1571 (9. A)72 361.2 R(uthor Inf)-.5 E(ormation)-.25 E F0 .937(Chet Rame)97 376.8 R
1572 3.437(yi)-.15 G 3.437(sas)153.724 376.8 S(oftw)172.818 376.8 Q .936
1573 (are engineer w)-.1 F .936(orking at Case W)-.1 F .936(estern Reserv)-.8 F
1574 3.436(eU)-.15 G(ni)393.43 376.8 Q -.15(ve)-.25 G(rsity).15 E 5.936(.H)-.65 G
1575 3.436(eh)443.036 376.8 S .936(as a B.S. in)455.912 376.8 R .072
1576 (Computer Engineering and an M.S. in Computer Science, both from CWR)72 388.8 R
1577 2.573(U. He)-.4 F .073(has been w)2.573 F .073(orking on bash)-.1 F
1578 (for six years, and the primary maintainer for one.)72 400.8 Q EP
1579 %%Trailer
1580 end
1581 %%EOF