summaryrefslogtreecommitdiff
path: root/doc/rose94.ps
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rose94.ps')
-rw-r--r--doc/rose94.ps1581
1 files changed, 1581 insertions, 0 deletions
diff --git a/doc/rose94.ps b/doc/rose94.ps
new file mode 100644
index 0000000..1fff283
--- /dev/null
+++ b/doc/rose94.ps
@@ -0,0 +1,1581 @@
+%!PS-Adobe-3.0
+%%Creator: groff version 1.08
+%%DocumentNeededResources: font Times-Bold
+%%+ font Times-Italic
+%%+ font Times-Roman
+%%+ font Courier
+%%+ font Symbol
+%%DocumentSuppliedResources: procset grops 1.08 0
+%%Pages: 13
+%%PageOrder: Ascend
+%%Orientation: Portrait
+%%EndComments
+%%BeginProlog
+%%BeginResource: procset grops 1.08 0
+/setpacking where{
+pop
+currentpacking
+true setpacking
+}if
+/grops 120 dict dup begin
+/SC 32 def
+/A/show load def
+/B{0 SC 3 -1 roll widthshow}bind def
+/C{0 exch ashow}bind def
+/D{0 exch 0 SC 5 2 roll awidthshow}bind def
+/E{0 rmoveto show}bind def
+/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def
+/G{0 rmoveto 0 exch ashow}bind def
+/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/I{0 exch rmoveto show}bind def
+/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def
+/K{0 exch rmoveto 0 exch ashow}bind def
+/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/M{rmoveto show}bind def
+/N{rmoveto 0 SC 3 -1 roll widthshow}bind def
+/O{rmoveto 0 exch ashow}bind def
+/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/Q{moveto show}bind def
+/R{moveto 0 SC 3 -1 roll widthshow}bind def
+/S{moveto 0 exch ashow}bind def
+/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/SF{
+findfont exch
+[exch dup 0 exch 0 exch neg 0 0]makefont
+dup setfont
+[exch/setfont cvx]cvx bind def
+}bind def
+/MF{
+findfont
+[5 2 roll
+0 3 1 roll
+neg 0 0]makefont
+dup setfont
+[exch/setfont cvx]cvx bind def
+}bind def
+/level0 0 def
+/RES 0 def
+/PL 0 def
+/LS 0 def
+/PLG{
+gsave newpath clippath pathbbox grestore
+exch pop add exch pop
+}bind def
+/BP{
+/level0 save def
+1 setlinecap
+1 setlinejoin
+72 RES div dup scale
+LS{
+90 rotate
+}{
+0 PL translate
+}ifelse
+1 -1 scale
+}bind def
+/EP{
+level0 restore
+showpage
+}bind def
+/DA{
+newpath arcn stroke
+}bind def
+/SN{
+transform
+.25 sub exch .25 sub exch
+round .25 add exch round .25 add exch
+itransform
+}bind def
+/DL{
+SN
+moveto
+SN
+lineto stroke
+}bind def
+/DC{
+newpath 0 360 arc closepath
+}bind def
+/TM matrix def
+/DE{
+TM currentmatrix pop
+translate scale newpath 0 0 .5 0 360 arc closepath
+TM setmatrix
+}bind def
+/RC/rcurveto load def
+/RL/rlineto load def
+/ST/stroke load def
+/MT/moveto load def
+/CL/closepath load def
+/FL{
+currentgray exch setgray fill setgray
+}bind def
+/BL/fill load def
+/LW/setlinewidth load def
+/RE{
+findfont
+dup maxlength 1 index/FontName known not{1 add}if dict begin
+{
+1 index/FID ne{def}{pop pop}ifelse
+}forall
+/Encoding exch def
+dup/FontName exch def
+currentdict end definefont pop
+}bind def
+/DEFS 0 def
+/EBEGIN{
+moveto
+DEFS begin
+}bind def
+/EEND/end load def
+/CNT 0 def
+/level1 0 def
+/PBEGIN{
+/level1 save def
+translate
+div 3 1 roll div exch scale
+neg exch neg exch translate
+0 setgray
+0 setlinecap
+1 setlinewidth
+0 setlinejoin
+10 setmiterlimit
+[]0 setdash
+/setstrokeadjust where{
+pop
+false setstrokeadjust
+}if
+/setoverprint where{
+pop
+false setoverprint
+}if
+newpath
+/CNT countdictstack def
+userdict begin
+/showpage{}def
+}bind def
+/PEND{
+clear
+countdictstack CNT sub{end}repeat
+level1 restore
+}bind def
+end def
+/setpacking where{
+pop
+setpacking
+}if
+%%EndResource
+%%IncludeResource: font Times-Bold
+%%IncludeResource: font Times-Italic
+%%IncludeResource: font Times-Roman
+%%IncludeResource: font Courier
+%%IncludeResource: font Symbol
+grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72 def/PL
+792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron/scaron/zcaron
+/Ydieresis/trademark/quotesingle/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/space
+/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft
+/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four
+/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C
+/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
+/bracketright/circumflex/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q
+/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase
+/guillemotleft/guillemotright/bullet/florin/fraction/perthousand/dagger
+/daggerdbl/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut
+/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash
+/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen/brokenbar
+/section/dieresis/copyright/ordfeminine/guilsinglleft/logicalnot/minus
+/registered/macron/degree/plusminus/twosuperior/threesuperior/acute/mu
+/paragraph/periodcentered/cedilla/onesuperior/ordmasculine/guilsinglright
+/onequarter/onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde
+/Adieresis/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute
+/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls
+/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla/egrave/eacute
+/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve
+/oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex
+/udieresis/yacute/thorn/ydieresis]def/Courier@0 ENC0/Courier RE/Times-Roman@0
+ENC0/Times-Roman RE/Times-Italic@0 ENC0/Times-Italic RE/Times-Bold@0 ENC0
+/Times-Bold RE
+%%EndProlog
+%%Page: 1 1
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 12/Times-Bold@0 SF(Bash, the Bour)210.99 123 Q(ne\255Again Shell)-.18 E/F1
+10/Times-Italic@0 SF(Chet Rame)263.85 147 Q(y)-.3 E(Case W)221.72 159 Q
+(estern Reserve Univer)-.92 E(sity)-.1 E -.15(ch)250.425 171 S(et@po.cwru.edu)
+.15 E(ABSTRA)264.535 213 Q(CT)-.3 E/F2 10/Times-Roman@0 SF .019(An o)133 237 R
+-.15(ve)-.15 G(rvie).15 E 2.519(wo)-.25 G 2.519(f/)191.918 237 S .018
+(bin/sh\255compatible shells is presented, as well as an introduction to)
+200.547 237 R .128(the POSIX.2 shell and tools standard.)108 249 R .128
+(These serv)5.128 F 2.628(ea)-.15 G 2.628(sa)318.562 249 S 2.628(ni)329.52 249
+S .128(ntroduction to bash.)339.928 249 R 2.628(Ac)5.128 G(ompar)439.32 249 Q
+(-)-.2 E .188(ison of bash to sh and ksh is presented, as well as a discussion\
+ of features unique to bash.)108 261 R(Finally)108 273 Q 3.178(,s)-.65 G .678
+(ome of the changes and ne)145.258 273 R 3.178(wf)-.25 G .678
+(eatures to appear in the ne)268.486 273 R .678(xt bash release will be)-.15 F
+(discussed.)108 285 Q/F3 10/Times-Bold@0 SF 2.5(1. Intr)72 321 R(oduction)-.18
+E(Bash)97 336.6 Q F2 .904(is the shell, or command language interpreter)3.404 F
+3.404(,t)-.4 G .904(hat will appear in the GNU operating system.)316.032 336.6
+R .782(The name is an acron)72 348.6 R .782(ym for the `)-.15 F(`Bourne\255Ag)
+-.74 E .782(ain SHell')-.05 F .782(', a pun on Ste)-.74 F 1.082 -.15(ve B)-.25
+H .783(ourne, the author of the direct).15 F .212(ancestor of the current)72
+360.6 R/F4 9/Times-Roman@0 SF(UNIX)2.712 E F2 2.712<8773>C(hell)199.131 360.6 Q
+F1(/bin/sh)2.712 E F2 2.712(,w)C .212(hich appeared in the Se)256.505 360.6 R
+-.15(ve)-.25 G .211(nth Edition Bell Labs Research v).15 F(er)-.15 E(-)-.2 E
+(sion of)72 372.6 Q F4(UNIX)2.5 E F2([1].).833 E .191(Bash is an)97 388.2 R F3
+(sh)2.691 E F2 .192
+(\255compatible shell that incorporates useful features from the K)B .192
+(orn shell \()-.35 F F3(ksh)A F2 .833(\)[)C .192(2] and the)-.833 F 2.767(Cs)72
+400.2 S .267(hell \()85.327 400.2 R F3(csh)A F2 .833(\)[)C .267
+(3], described later in this article.)-.833 F .266
+(It is ultimately intended to be a conformant implementation)5.267 F 1.965
+(of the IEEE POSIX Shell and T)72 412.2 R 1.966(ools speci\214cation \(IEEE W)
+-.8 F 1.966(orking Group 1003.2\).)-.8 F 1.966(It of)6.966 F 1.966
+(fers functional)-.25 F(impro)72 424.2 Q -.15(ve)-.15 G(ments o).15 E -.15(ve)
+-.15 G 2.5(rs).15 G 2.5(hf)155.28 424.2 S(or both interacti)166.11 424.2 Q .3
+-.15(ve a)-.25 H(nd programming use.).15 E .802
+(While the GNU operating system will most lik)97 439.8 R .801(ely include a v)
+-.1 F .801(ersion of the Berk)-.15 F(ele)-.1 E 3.301(ys)-.15 G .801
+(hell csh, bash)448.238 439.8 R .108(will be the def)72 451.8 R .108
+(ault shell.)-.1 F(Lik)5.108 E 2.608(eo)-.1 G .108(ther GNU softw)199.658 451.8
+R .108(are, bash is quite portable.)-.1 F .109(It currently runs on nearly e)
+5.109 F -.15(ve)-.25 G(ry).15 E -.15(ve)72 463.8 S .367(rsion of).15 F F4(UNIX)
+2.867 E F2 .367(and a fe)2.867 F 2.867(wo)-.25 G .367
+(ther operating systems \255 an independently-supported port e)187.933 463.8 R
+.366(xists for OS/2, and)-.15 F .706(there are rumors of ports to DOS and W)72
+475.8 R(indo)-.4 E .706(ws NT)-.25 F 5.706(.P)-.74 G .706(orts to)295.97 475.8
+R F4(UNIX)3.206 E F2(-lik)A 3.206(es)-.1 G .706(ystems such as QNX and Minix)
+372.979 475.8 R(are part of the distrib)72 487.8 Q(ution.)-.2 E .51
+(The original author of bash w)97 503.4 R .51(as Brian F)-.1 F .509
+(ox, an emplo)-.15 F .509(yee of the Free Softw)-.1 F .509(are F)-.1 F 3.009
+(oundation. The)-.15 F(cur)3.009 E(-)-.2 E(rent de)72 515.4 Q -.15(ve)-.25 G
+(loper and maintainer is Chet Rame).15 E 1.3 -.65(y, a v)-.15 H(olunteer who w)
+.45 E(orks at Case W)-.1 E(estern Reserv)-.8 E 2.5(eU)-.15 G(ni)458.91 515.4 Q
+-.15(ve)-.25 G(rsity).15 E(.)-.65 E F3 2.5(2. What)72 539.4 R(is a shell?)2.5 E
+F2 1.241(At its base, a shell is simply a macro processor that e)97 555 R -.15
+(xe)-.15 G 1.242(cutes commands.).15 F(A)6.242 E F4(UNIX)3.742 E F2 1.242
+(shell is both a)3.742 F .189(command interpreter)72 567 R 2.688(,w)-.4 G .188
+(hich pro)167.787 567 R .188(vides the user interf)-.15 F .188
+(ace to the rich set of)-.1 F F4(UNIX)2.688 E F2 .188
+(utilities, and a programming)2.688 F .751(language, allo)72 579 R .752
+(wing these utilitites to be combined.)-.25 F .752
+(The shell reads commands either from a terminal or a)5.752 F 2.52
+(\214le. Files)72 591 R .019
+(containing commands can be created, and become commands themselv)2.52 F 2.519
+(es. These)-.15 F(ne)2.519 E 2.519(wc)-.25 G(ommands)465.11 591 Q(ha)72 603 Q
+.395 -.15(ve t)-.2 H .095(he same status as system commands in directories lik)
+.15 F(e)-.1 E F3(/bin)2.595 E F2 2.595(,a)C(llo)342.575 603 Q .096
+(wing users or groups to establish cus-)-.25 F(tom en)72 615 Q(vironments.)-.4
+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
+654.6 S .426(hell allo)111.036 654.6 R .426(ws e)-.25 F -.15(xe)-.15 G .426
+(cution of).15 F F4(UNIX)2.926 E F2 .426
+(commands, both synchronously and asynchronously)2.926 F 5.425(.T)-.65 G(he)
+460.165 654.6 Q F1 -.37(re)2.925 G(dir).37 E(ec-)-.37 E(tion)72 666.6 Q F2 .334
+(constructs permit \214ne-grained control of the input and output of those com\
+mands, and the shell allo)2.833 F(ws)-.25 E .559(control o)72 678.6 R -.15(ve)
+-.15 G 3.058(rt).15 G .558(he contents of their en)126.697 678.6 R(vironment.)
+-.4 E F4(UNIX)5.558 E F2 .558(shells also pro)3.058 F .558
+(vide a small set of b)-.15 F .558(uilt-in commands)-.2 F(\()72 690.6 Q F1 -.2
+(bu)C(iltins).2 E F2 4.611(\)i)C 2.112
+(mplementing functionality impossible \(e.g.,)115.861 690.6 R F3(cd)4.612 E F2
+(,)A F3(br)4.612 E(eak)-.18 E F2(,)A F3(continue)4.612 E F2 4.612(,a)C(nd)
+399.074 690.6 Q F3(exec)4.612 E F2 4.612(\)o)C 4.612(ri)444.948 690.6 S(ncon)
+455.67 690.6 Q -.15(ve)-.4 G(nient).15 E .32 LW 76 700.6 72 700.6 DL 80 700.6
+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
+700.6 92 700.6 DL 100 700.6 96 700.6 DL 104 700.6 100 700.6 DL 108 700.6 104
+700.6 DL 112 700.6 108 700.6 DL 116 700.6 112 700.6 DL 120 700.6 116 700.6 DL
+124 700.6 120 700.6 DL 128 700.6 124 700.6 DL 132 700.6 128 700.6 DL 136 700.6
+132 700.6 DL 140 700.6 136 700.6 DL 144 700.6 140 700.6 DL/F5 8/Times-Roman@0
+SF 2<8755>72 710.6 S(NIX is a trademark of X/OPEN)83.776 710.6 Q EP
+%%Page: 2 2
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF 2.5(-2-)279.67 48 S(\()72 84 Q/F1 10/Times-Bold@0 SF
+(history)A F0(,)A F1(getopts)3.505 E F0(,)A F1(kill)3.505 E F0 3.505(,o)C(r)
+172.795 84 Q F1(pwd)3.505 E F0 3.505(,f)C 1.005(or e)207.305 84 R 1.005
+(xample\) to obtain via separate utilities.)-.15 F 1.005
+(Shells may be used interac-)6.005 F(ti)72 96 Q -.15(ve)-.25 G
+(ly or non-interacti).15 E -.15(ve)-.25 G 2.5(ly: the).15 F 2.5(ya)-.15 G
+(ccept input typed from the k)207.42 96 Q -.15(ey)-.1 G
+(board or from a \214le.).15 E F1 2.5(2.2. Pr)72 120 R(ogramming Language)-.18
+E F0 .501(While e)97 135.6 R -.15(xe)-.15 G .501
+(cuting commands is essential, most of the po).15 F .501(wer \(and comple)-.25
+F .502(xity\) of shells is due to their)-.15 F .05
+(embedded programming languages.)72 147.6 R(Lik)5.049 E 2.549(ea)-.1 G .349
+-.15(ny h)245.398 147.6 T(igh-le).15 E -.15(ve)-.25 G 2.549(ll).15 G .049
+(anguage, the shell pro)303.276 147.6 R .049(vides v)-.15 F .049
+(ariables, \215o)-.25 F 2.549(wc)-.25 G(ontrol)480.11 147.6 Q
+(constructs, quoting, and functions.)72 159.6 Q .475
+(The basic syntactic element is a)97 175.2 R/F2 10/Times-Italic@0 SF .475
+(simple command)2.975 F F0 5.475(.A)C .475
+(simple command consists of an optional set of)315.405 175.2 R -.25(va)72 187.2
+S .525(riable assignments, a command w).25 F .525
+(ord, and an optional list of ar)-.1 F 3.024(guments. Operators)-.18 F .524
+(to redirect input and)3.024 F(output may appear an)72 199.2 Q
+(ywhere in a simple command.)-.15 E(Some e)5 E(xamples are:)-.15 E/F3 10
+/Courier@0 SF(who)97 211.2 Q(trn -e -S1 -N)97 223.2 Q(ls -l /bin > binfiles)97
+235.2 Q(make > make.out 2>make.errs)97 247.2 Q F0 2.518(Ap)97 262.8 S .018
+(ipeline is a sequence of tw)111.738 262.8 R 2.518(oo)-.1 G 2.518(rm)230.056
+262.8 S .018(ore commands separated by the character)243.684 262.8 R/F4 10
+/Symbol SF<ef>2.519 E F0 5.019(.T)C .019(he standard output)430.082 262.8 R
+(of the \214rst command is connected to the standard input of the second.)72
+274.8 Q(Examples of pipelines include:)5 E F3(who | wc -l)97 286.8 Q
+(ls -l | sort +3nr)97 298.8 Q F0 .578
+(Simple commands and pipelines may be combined into)97 314.4 R F2(lists)3.078 E
+F0 5.578(.A)C .578(list is a sequence of pipelines sepa-)360.002 314.4 R .289
+(rated by one of)72 326.4 R F1(;)2.789 E F0(,)A F1(&)2.789 E F0(,)A F1(&&)2.789
+E F0 2.789(,o)C(r)185.103 326.4 Q F4<efef>2.789 E F0 2.789(,a)C .289
+(nd optionally terminated by)210.831 326.4 R F1(;)2.789 E F0(,)A F1(&)2.789 E
+F0 2.789(,o)C 2.789(ran)352.555 326.4 S -.25(ew)370.903 326.4 S 2.789
+(line. Commands).25 F .289(separated by)2.789 F F1(;)72 338.4 Q F0 .336(are e)
+2.836 F -.15(xe)-.15 G .336(cuted sequentially; the shell w).15 F .335
+(aits for each to complete in turn.)-.1 F .335(If a command is terminated by)
+5.335 F F1(&)2.835 E F0(,)A .007(the shell e)72 350.4 R -.15(xe)-.15 G .007
+(cutes it in the).15 F F2(bac)2.507 E(kgr)-.2 E(ound)-.45 E F0 2.508(,a)1.666 G
+.008(nd does not w)236.076 350.4 R .008(ait for it to \214nish.)-.1 F .008
+(If tw)5.008 F 2.508(oc)-.1 G .008(ommands are separated by)397.616 350.4 R F1
+(&&)72 362.4 Q F0 3.008(,t)C .508(he second command e)96.948 362.4 R -.15(xe)
+-.15 G .508(cutes only if the \214rst command succeeds.).15 F 3.007(As)5.508 G
+.507(eparator of)383.575 362.4 R F4<efef>3.007 E F0 .507(causes the sec-)3.007
+F(ond command to e)72 374.4 Q -.15(xe)-.15 G(cute only if the \214rst f).15 E
+2.5(ails. Some)-.1 F -.15(ex)2.5 G(amples are:).15 E F3(who ; date)97 386.4 Q
+(cd /usr/src || exit 1)97 398.4 Q(cd "$@" && xtitle $HOST: $PWD)97 410.4 Q F0
+1.36(The shell programming language pro)97 426 R 1.361(vides a v)-.15 F 1.361
+(ariety of \215o)-.25 F 3.861(wc)-.25 G 1.361(ontrol structures.)353.276 426 R
+(The)6.361 E F1 -.25(fo)3.861 G(r).25 E F0(command)3.861 E(allo)72 438 Q .654
+(ws a list of commands to be e)-.25 F -.15(xe)-.15 G .654
+(cuted once for each w).15 F .654(ord in a w)-.1 F .654(ord list.)-.1 F(The)
+5.654 E F1(case)3.154 E F0 .654(command allo)3.154 F .654(ws a)-.25 F .627
+(list to be e)72 450 R -.15(xe)-.15 G .628(cuted if a w).15 F .628
+(ord matches a speci\214ed pattern.)-.1 F(The)5.628 E F1(while)3.128 E F0(and)
+3.128 E F1(until)3.128 E F0 .628(commands e)3.128 F -.15(xe)-.15 G .628
+(cute a list of).15 F 1.559
+(commands as long as a guard command completes successfully or f)72 462 R 1.559
+(ails, respecti)-.1 F -.15(ve)-.25 G(ly).15 E 6.559(.T)-.65 G(he)440.892 462 Q
+F1(if)4.059 E F0(command)4.059 E(allo)72 474 Q(ws e)-.25 E -.15(xe)-.15 G
+(cution of dif).15 E(ferent command lists depending on the e)-.25 E
+(xit status of a guard command.)-.15 E(A)97 489.6 Q F2 .385(shell function)
+2.885 F F0 .385(associates a list of commands with a name.)2.885 F .386
+(Each time the name is used as a simple)5.385 F .938(command, the list is e)72
+501.6 R -.15(xe)-.15 G 3.438(cuted. This).15 F -.15(exe)3.438 G .938
+(cution tak).15 F .938(es place in the current shell conte)-.1 F .937
+(xt; no ne)-.15 F 3.437(wp)-.25 G .937(rocess is)468.903 501.6 R 2.5
+(created. Functions)72 513.6 R(may ha)2.5 E .3 -.15(ve t)-.2 H(heir o).15 E
+(wn ar)-.25 E(gument lists and local v)-.18 E(ariables, and may be recursi)-.25
+E -.15(ve)-.25 G(.).15 E .722(The shell language pro)97 529.2 R .722(vides v)
+-.15 F .722(ariables, which may be both set and referenced.)-.25 F 3.222(An)
+5.722 G .722(umber of special)435.906 529.2 R 1.02
+(parameters are present, such as)72 541.2 R F1($@)3.519 E F0 3.519(,w)C 1.019
+(hich returns the shell')231.257 541.2 R 3.519(sp)-.55 G 1.019
+(ositional parameters \(command-line ar)333.103 541.2 R(gu-)-.18 E(ments\),)72
+553.2 Q F1($?)2.906 E F0 2.906(,t)C .406(he e)122.812 553.2 R .406
+(xit status of the pre)-.15 F .406(vious command, and)-.25 F F1($$)2.906 E F0
+2.906(,t)C .406(he shell')322.436 553.2 R 2.906(sp)-.55 G .406(rocess I.D.)
+368.248 553.2 R .407(In addition to pro)5.406 F(vid-)-.15 E .129
+(ing special parameters and user)72 565.2 R .129(-de\214ned v)-.2 F .129
+(ariables, the shell permits the v)-.25 F .128(alues of certain v)-.25 F .128
+(ariables to control)-.25 F .16(its beha)72 577.2 R(vior)-.2 E 5.16(.S)-.55 G
+.16(ome of these v)131.57 577.2 R .16(ariables include)-.25 F F1(IFS)2.661 E F0
+2.661(,w)C .161(hich controls ho)284.202 577.2 R 2.661(wt)-.25 G .161
+(he shell splits w)361.375 577.2 R(ords,)-.1 E F1 -.74(PA)2.661 G(TH)-.21 E F0
+2.661(,w)C(hich)486.78 577.2 Q .392
+(tells the shell where to look for commands, and)72 589.2 R F1(PS1)2.892 E F0
+2.892(,w)C .392(hose v)297.01 589.2 R .392
+(alue is the string the shell uses to prompt for)-.25 F 3.371(commands. There)
+72 601.2 R .871(are a fe)3.371 F 3.371(wv)-.25 G .871(ariables whose v)196.645
+601.2 R .871(alues are set by the shell and normally only referenced by)-.25 F
+(users;)72 613.2 Q F1(PWD)3.663 E F0 3.663(,w)C 1.163(hose v)135.706 613.2 R
+1.163(alue is the pathname of the shell')-.25 F 3.662(sc)-.55 G 1.162(urrent w)
+313.068 613.2 R 1.162(orking directory)-.1 F 3.662(,i)-.65 G 3.662(so)421.894
+613.2 S 1.162(ne such v)434.446 613.2 R(ariable.)-.25 E -1.11(Va)72 625.2 S
+.008(riables can be used in nearly an)1.11 F 2.509(ys)-.15 G .009(hell conte)
+219.37 625.2 R .009(xt and are particularly v)-.15 F .009
+(aluable when used with control struc-)-.25 F(tures.)72 637.2 Q .583
+(There are se)97 652.8 R -.15(ve)-.25 G .583(ral shell).15 F F2 -.2(ex)3.083 G
+(pansions).2 E F0 5.583(.A)C -.25(va)254.298 652.8 S(riable).25 E F2(name)3.083
+E F0 .583(is e)3.083 F .582(xpanded to its v)-.15 F .582(alue using ${)-.25 F
+F2(name)A F0 .582(}, where)B 1.387(the braces are optional.)72 664.8 R 1.387
+(There are a number of parameter e)6.387 F 1.388(xpansions a)-.15 F -.25(va)-.2
+G 3.888(ilable. F).25 F 1.388(or e)-.15 F 1.388(xample, there are)-.15 F(${)72
+676.8 Q F2(name)A F0<3aad>A F2(wor)A(d)-.37 E F0 .891(}, which e)B .891
+(xpands to)-.15 F F2(wor)3.391 E(d)-.37 E F0(if)3.391 E F2(name)3.391 E F0 .891
+(is unset or null, and the in)3.391 F -.15(ve)-.4 G .89(rse ${).15 F F2(name)A
+F0(:+)A F2(wor)A(d)-.37 E F0 .89(}, which)B -.15(ex)72 688.8 S 1.203(pands to)
+.15 F F2(wor)3.703 E(d)-.37 E F0(if)3.703 E F2(name)3.703 E F0 1.203
+(is set and not null.)3.703 F F2 1.203(Command substitution)6.203 F F0(allo)
+3.703 E 1.204(ws the output of a command to)-.25 F .918
+(replace the command name.)72 700.8 R .918(The syntax is `)5.918 F F2(command)A
+F0(`.)A F2(Command)5.918 E F0 .918(is e)3.418 F -.15(xe)-.15 G .918
+(cuted and it and the backquotes).15 F .299
+(are replaced by its output, with trailing ne)72 712.8 R .299(wlines remo)-.25
+F -.15(ve)-.15 G(d.).15 E F2 -.8(Pa)5.299 G .299(thname e).8 F(xpansion)-.2 E
+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
+(to a set of \214lenames.)72 724.8 R -.8(Wo)6.586 G 1.586(rds are re).8 F -.05
+(ga)-.15 G 1.586(rded as patterns, in which the characters).05 F F1(*)4.086 E
+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
+1.885 -.15(ve s)-.2 H(pecial).15 E EP
+%%Page: 3 3
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF 2.5(-3-)279.67 48 S 2.845(meaning. W)72 84 R .346(ords\
+ containing these special characters are replaced with a sorted list of matchi\
+ng pathnames.)-.8 F(If a w)72 96 Q
+(ord generates no matches, it is left unchanged.)-.1 E/F1 10/Times-Italic@0 SF
+(Quoting)97 111.6 Q F0 .85(is used to remo)3.35 F 1.15 -.15(ve t)-.15 H .85
+(he special meaning of characters or w).15 F 3.35(ords. It)-.1 F .85
+(can disable special treat-)3.35 F .314
+(ment for shell operators or other special characters, pre)72 123.6 R -.15(ve)
+-.25 G .315(nt reserv).15 F .315(ed w)-.15 F .315
+(ords from being recognized as such,)-.1 F .683(and inhibit v)72 135.6 R .683
+(ariable e)-.25 F 3.183(xpansion. The)-.15 F .683
+(shell has three quoting mechanisms:)3.183 F 3.183(ab)5.683 G .683
+(ackslash preserv)387.413 135.6 R .682(es the literal)-.15 F -.25(va)72 147.6 S
+.417(lue of the ne).25 F .417(xt character)-.15 F 2.917(,ap)-.4 G .417
+(air of single quotes preserv)196.712 147.6 R .417(es the literal v)-.15 F .418
+(alue of each character between the)-.25 F 1.426
+(quotes, and a pair of double quotes preserv)72 159.6 R 1.425
+(es the literal meaning of enclosed characters while allo)-.15 F(wing)-.25 E
+(some e)72 171.6 Q(xpansions.)-.15 E 1.054(Some of the commands b)97 187.2 R
+1.054(uilt into the shell are part of the programming language.)-.2 F(The)6.055
+E/F2 10/Times-Bold@0 SF(br)3.555 E(eak)-.18 E F0(and)3.555 E F2(continue)72
+199.2 Q F0 1.175(commands control loop e)3.675 F -.15(xe)-.15 G 1.175
+(cution as in the C language.).15 F(The)6.175 E F2 -2.3 -.15(ev a)3.675 H(l).15
+E F0 -.2(bu)3.675 G 1.174(iltin allo).2 F 1.174(ws a string to be)-.25 F .204
+(parsed and e)72 211.2 R -.15(xe)-.15 G .204(cuted as a command.).15 F F2 -.65
+(Wa)5.205 G(it).65 E F0 .205
+(tells the shell to pause until the processes speci\214ed as ar)2.705 F
+(guments)-.18 E(ha)72 223.2 Q .3 -.15(ve ex)-.2 H(ited.).15 E F2 2.5
+(2.3. Interacti)72 247.2 R .2 -.1(ve F)-.1 H(eatur)-.15 E(es)-.18 E F0 .51
+(Shells ha)97 262.8 R .81 -.15(ve b)-.2 H -.15(eg).15 G .51(un of).15 F .51
+(fering features geared speci\214cally for interacti)-.25 F .81 -.15(ve u)-.25
+H .51(se rather than to augment the).15 F .76(programming language.)72 274.8 R
+.761(These interacti)5.76 F 1.061 -.15(ve f)-.25 H .761
+(eatures include job control, command line editing, history and).15 F(aliases.)
+72 286.8 Q .626(Job control is a f)97 302.4 R .626(acility pro)-.1 F .626
+(vided jointly by the shell and the)-.15 F/F3 9/Times-Roman@0 SF(UNIX)3.125 E
+F0 -.1(ke)3.125 G .625(rnel that allo).1 F .625(ws users to selec-)-.25 F(ti)72
+314.4 Q -.15(ve)-.25 G .344
+(ly stop \(suspend\) and restart \(resume\) processes.).15 F .345
+(Each pipeline e)5.345 F -.15(xe)-.15 G .345
+(cuted by the shell is referred to as a).15 F F1(job)72 326.4 Q F0 2.989(.J)C
+.488(obs may be suspended and restarted in either the fore)94.159 326.4 R .488
+(ground, where the)-.15 F 2.988(yh)-.15 G -2.25 -.2(av e)397.148 326.4 T .488
+(access to the terminal,)3.188 F .833(or background, where the)72 338.4 R 3.333
+(ya)-.15 G .834(re isolated and cannot read from the terminal.)189.312 338.4 R
+-.8(Ty)5.834 G .834(ping the).8 F F1(suspend)3.334 E F0(character)5 E .459(whi\
+le a process is running stops that process and returns control to the shell.)72
+350.4 R .459(Once a job is suspended, the)5.459 F .392
+(user manipulates the job')72 362.4 R 2.892(ss)-.55 G .392(tate, using)184.118
+362.4 R F2(bg)2.892 E F0 .393(to continue it in the background,)2.892 F F2(fg)
+2.893 E F0 .393(to return it to the fore)2.893 F(ground)-.15 E .891(and a)72
+374.4 R -.1(wa)-.15 G .891(it its completion, or).1 F F2(kill)3.391 E F0 .891
+(to send it a signal.)3.391 F(The)5.89 E F2(jobs)3.39 E F0 .89
+(command lists the status of jobs, and)3.39 F F2(wait)3.39 E F0 .407
+(will pause the shell until a speci\214ed job terminates.)72 386.4 R .407
+(The shell pro)5.407 F .407(vides a number of w)-.15 F .407
+(ays to refer to a job,)-.1 F(and will notify the user whene)72 398.4 Q -.15
+(ve)-.25 G 2.5(rab).15 G(ackground job terminates.)220.18 398.4 Q -.4(Wi)97 414
+S .956(th the adv).4 F .956(ent of more po)-.15 F .956
+(werful terminals and terminal emulators, more sophisticated interaction)-.25 F
+.253(than that pro)72 426 R .253(vided by the)-.15 F F3(UNIX)2.753 E F0 -.1(ke)
+2.754 G .254(rnel terminal dri).1 F -.15(ve)-.25 G 2.754(ri).15 G 2.754(sp)
+293.592 426 S 2.754(ossible. Some)305.236 426 R .254(shells of)2.754 F .254
+(fer command line editing,)-.25 F 1.141
+(which permits a user to edit lines of input using f)72 438 R(amiliar)-.1 E F1
+(emacs)3.64 E F0(or)3.64 E F1(vi)3.64 E F0 1.14
+(-style commands before submitting)B .02(them to the shell.)72 450 R .02
+(Editors allo)5.02 F 2.52(wc)-.25 G .02(orrections to be made without ha)206.31
+450 R .021(ving to erase back to the point of error)-.2 F 2.521(,o)-.4 G(r)
+500.67 450 Q .135(start the line ane)72 462 R 3.935 -.65(w. C)-.25 H .135
+(ommand line editors run the g).65 F .135(amut from a small \214x)-.05 F .134
+(ed set of commands and k)-.15 F .434 -.15(ey b)-.1 H(ind-).15 E
+(ings to input f)72 474 Q(acilities which allo)-.1 E 2.5(wa)-.25 G
+(rbitrary actions to be bound to a k)217.2 474 Q .3 -.15(ey o)-.1 H 2.5(rk).15
+G .3 -.15(ey s)379.88 474 T(equence.).15 E .145(Modern shells also k)97 489.6 R
+.145(eep a history)-.1 F 2.645(,w)-.65 G .146
+(hich is the list of commands a user has typed.)243.49 489.6 R .146(Shell f)
+5.146 F .146(acilities are)-.1 F -.2(av)72 501.6 S .368(ailable to recall pre)
+-.05 F .367(vious commands and use portions of old commands when composing ne)
+-.25 F 2.867(wo)-.25 G 2.867(nes. The)467.253 501.6 R 1.456
+(command history can be sa)72 513.6 R -.15(ve)-.2 G 3.957(dt).15 G 3.957
+(oa\214)207.522 513.6 S 1.457
+(le and read back in at shell startup, so it persists across sessions.)230.436
+513.6 R .675(Shells which pro)72 525.6 R .675
+(vide both command editing and history generally ha)-.15 F .974 -.15(ve e)-.2 H
+.674(diting commands to interacti).15 F -.15(ve)-.25 G(ly).15 E(step forw)72
+537.6 Q(ard and backw)-.1 E(ard through the history list.)-.1 E .013
+(Aliases allo)97 553.2 R -5.012 2.513(wa s)-.25 H .014
+(tring to be substituted for a command name.)164.28 553.2 R(The)5.014 E 2.514
+(yc)-.15 G .014(an be used to create a mnemonic)373.396 553.2 R .568(for a)72
+565.2 R F3(UNIX)3.068 E F0 .568(command name \()3.068 F/F4 10/Courier@0 SF .568
+(alias del=rm)B F0 .568(\), to e)B .567(xpand a single w)-.15 F .567
+(ord to a comple)-.1 F 3.067(xc)-.15 G .567(ommand \()432.603 565.2 R F4(alias)
+A .255(news='xterm -g 80x45 -title trn -e trn -e -S1 -N &')72 577.2 R F0 .255
+(\), or to ensure that a command)B(is in)72 589.2 Q -.2(vo)-.4 G -.1(ke).2 G
+2.5(dw).1 G(ith a basic set of options \()122.41 589.2 Q F4
+(alias ls="/bin/ls -F")A F0(\).)A F2 2.5(3. The)72 613.2 R
+(POSIX Shell Standard)2.5 E F1(POSIX)97 628.8 Q F0 .239
+(is a name originally coined by Richard Stallman for a f)4.405 F .239
+(amily of open system standards based)-.1 F(on)72 640.8 Q F3(UNIX)3.239 E F0
+5.739(.T)C .74(here are a number of aspects of)122.079 640.8 R F3(UNIX)3.24 E
+F0 .74(under consideration for standardization, from the basic)3.24 F .192
+(system services at the system call and C library le)72 652.8 R -.15(ve)-.25 G
+2.692(lt).15 G 2.692(oa)290.16 652.8 S .191
+(pplications and tools to system administration and)302.292 652.8 R 2.5
+(management. Each)72 664.8 R(area of standardization is assigned to a w)2.5 E
+(orking group in the 1003 series.)-.1 E 3.602(The POSIX Shell and T)97 680.4 R
+3.602(ools standard has been de)-.8 F -.15(ve)-.25 G 3.603(loped by IEEE W).15
+F 3.603(orking Group 1003.2)-.8 F -1.667(\(POSIX.2\) [4].)72 692.4 R 2.799
+(It concentrates on the command interpreter interf)7.799 F 2.799
+(ace and utility programs commonly)-.1 F -.15(exe)72 704.4 S 2.345
+(cuted from the command line or by other programs.).15 F 2.345(An initial v)
+7.345 F 2.345(ersion of the standard has been)-.15 F(appro)72 716.4 Q -.15(ve)
+-.15 G 2.915(da).15 G .414(nd published by the IEEE, and w)116.265 716.4 R .414
+(ork is currently underw)-.1 F .414(ay to update it.)-.1 F .414
+(There are four primary)5.414 F(areas of w)72 728.4 Q
+(ork in the 1003.2 standard:)-.1 E EP
+%%Page: 4 4
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF 2.5(-4-)279.67 48 S 21.5<8341>72 84 S .835
+(spects of the shell')104.22 84 R 3.335(ss)-.55 G .835
+(yntax and command language.)192 84 R 3.335(An)5.835 G .835(umber of special b)
+338.095 84 R .835(uiltins such as)-.2 F/F1 10/Times-Bold@0 SF(cd)3.335 E F0
+(and)3.335 E F1(exec)97 96 Q F0 .545(are being speci\214ed as part of the shel\
+l, since their functionality usually cannot be implemented)3.046 F
+(by a separate e)97 108 Q -.15(xe)-.15 G(cutable;).15 E 21.5<8341>72 123.6 S
+.73(set of utilities to be called by shell scripts and applications.)107.45
+123.6 R .731(Examples are programs lik)5.731 F(e)-.1 E/F2 10/Times-Italic@0 SF
+2.397(sed, tr)3.231 F(,)-1.11 E F0(and)97 135.6 Q F2(awk.)2.853 E F0 .352
+(Utilities commonly implemented as shell b)4.519 F .352
+(uiltins are described in this section, such as)-.2 F F1(test)2.852 E F0(and)97
+147.6 Q F1(kill)3.422 E F0 5.922(.A)C 3.422(ne)144.404 147.6 S .922
+(xpansion of this section')157.116 147.6 R 3.423(ss)-.55 G .923
+(cope, termed the User Portability Extension, or UPE, has)268.586 147.6 R
+(standardized interacti)97 159.6 Q .3 -.15(ve p)-.25 H(rograms such as).15 E F2
+(vi)2.5 E F0(and)4.166 E F2(mailx;)2.5 E F0 21.5<8341>72 175.2 S .926
+(group of functional interf)107.646 175.2 R .926(aces to services pro)-.1 F
+.926(vided by the shell, such as the traditional)-.15 F F2(system)3.425 E F0(C)
+5.091 E .507(library function.)97 187.2 R .507
+(There are functions to perform shell w)5.507 F .508(ord e)-.1 F .508
+(xpansions, perform \214lename e)-.15 F(xpansion)-.15 E(\()97 199.2 Q F2
+(globbing)A F0 .58(\), obtain v)B .58
+(alues of POSIX.2 system con\214guration v)-.25 F .58(ariables, retrie)-.25 F
+.88 -.15(ve v)-.25 H .58(alues of en)-.1 F(vironment)-.4 E -.25(va)97 211.2 S
+(riables \().25 E F2 -.1(ge)C(ten).1 E(v\(\))-.4 E F0(\), and other services;)
+.833 E 21.5<8341>72 226.8 S(suite of `)106.72 226.8 Q(`de)-.74 E -.15(ve)-.25 G
+(lopment').15 E 2.5('u)-.74 G(tilities such as)209.54 226.8 Q F2(c89)2.5 E F0
+(\(the POSIX.2 v)4.166 E(ersion of)-.15 E F2(cc)2.5 E F0(\), and)A F2(yacc.)2.5
+E F0 .483(Bash is concerned with the aspects of the shell')97 242.4 R 2.983(sb)
+-.55 G(eha)301.597 242.4 Q .484(vior de\214ned by POSIX.2.)-.2 F .484
+(The shell command)5.484 F 1.439
+(language has of course been standardized, including the basic \215o)72 254.4 R
+3.938(wc)-.25 G 1.438(ontrol and program e)359.688 254.4 R -.15(xe)-.15 G 1.438
+(cution con-).15 F 1.145(structs, I/O redirection and pipelining, ar)72 266.4 R
+1.145(gument handling, v)-.18 F 1.145(ariable e)-.25 F 1.146
+(xpansion, and quoting.)-.15 F(The)6.146 E F2(special)3.646 E F0 -.2(bu)72
+278.4 S .676(iltins, which must be implemented as part of the shell to pro).2 F
+.676(vide the desired functionality)-.15 F 3.176(,a)-.65 G .676(re speci\214ed)
+457.504 278.4 R .7(as being part of the shell; e)72 290.4 R .7
+(xamples of these are)-.15 F F1 -2.3 -.15(ev a)3.201 H(l).15 E F0(and)3.201 E
+F1(export)3.201 E F0 5.701(.O)C .701(ther utilities appear in the sections of)
+352.034 290.4 R .256(POSIX.2 not de)72 302.4 R -.2(vo)-.25 G .256(ted to the s\
+hell which are commonly \(and in some cases must be\) implemented as b).2 F
+(uiltin)-.2 E(commands, such as)72 314.4 Q F1 -.18(re)2.5 G(ad).18 E F0(and)2.5
+E F1(test)2.5 E F0(.)A .972(POSIX.2 also speci\214es aspects of the shell')97
+330 R 3.473(si)-.55 G(nteracti)286.016 330 Q 1.273 -.15(ve b)-.25 H(eha).15 E
+.973(vior as part of the UPE, including job)-.2 F .233
+(control, command line editing, and history)72 342 R 5.233(.I)-.65 G .233
+(nterestingly enough, only)253.849 342 R F2(vi)2.733 E F0 .233
+(-style line editing commands ha)B -.15(ve)-.2 G(been standardized;)72 354 Q F2
+(emacs)2.5 E F0(editing commands were left out due to objections.)2.5 E .148
+(There were certain areas in which POSIX.2 felt standardization w)97 369.6 R
+.149(as necessary)-.1 F 2.649(,b)-.65 G .149(ut no e)420.643 369.6 R .149
+(xisting imple-)-.15 F 1.598(mentation pro)72 381.6 R 1.598
+(vided the proper beha)-.15 F(vior)-.2 E 6.598(.T)-.55 G 1.598(he w)251.56
+381.6 R 1.597(orking group in)-.1 F -.15(ve)-.4 G 1.597
+(nted and standardized functionality in).15 F .228(these areas.)72 393.6 R(The)
+5.228 E F1(command)2.728 E F0 -.2(bu)2.728 G .228(iltin w).2 F .228(as in)-.1 F
+-.15(ve)-.4 G .228(nted so that shell functions could be written to replace b)
+.15 F(uiltins;)-.2 E 1.663(it mak)72 405.6 R 1.663
+(es the capabilities of the b)-.1 F 1.663(uiltin a)-.2 F -.25(va)-.2 G 1.663
+(ilable to the function.).25 F 1.663(The reserv)6.663 F 1.663(ed w)-.15 F 1.663
+(ord `)-.1 F(`!')-.74 E 4.163('w)-.74 G 1.663(as added to)455.685 405.6 R(ne)72
+417.6 Q -.05(ga)-.15 G .915(te the return v).05 F .915
+(alue of a command or pipeline; it w)-.25 F .916(as nearly impossible to e)-.1
+F .916(xpress `)-.15 F .916(`if not x')-.74 F 3.416('c)-.74 G(leanly)479.56
+417.6 Q .904(using the sh language.)72 429.6 R .904(There e)5.904 F .904
+(xist multiple incompatible implementations of the)-.15 F F1(test)3.403 E F0
+-.2(bu)3.403 G .903(iltin, which tests).2 F .28
+(\214les for type and other attrib)72 441.6 R .281
+(utes and performs arithmetic and string comparisons.)-.2 F .281
+(POSIX considered none)5.281 F .868(of these correct, so the standard beha)72
+453.6 R .868(vior w)-.2 F .868(as speci\214ed in terms of the number of ar)-.1
+F .867(guments to the com-)-.18 F 3.803(mand. POSIX.2)72 465.6 R 1.303
+(dictates e)3.803 F 1.303(xactly what will happen when four or fe)-.15 F 1.303
+(wer ar)-.25 F 1.303(guments are gi)-.18 F -.15(ve)-.25 G 3.803(nt).15 G(o)
+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
+-.15(ve)-.2 G 4.531(st).15 G 2.031(he beha)103.951 477.6 R 2.031
+(vior unde\214ned when more ar)-.2 F 2.031(guments are supplied.)-.18 F 2.03
+(Bash uses the POSIX.2 algorithm,)7.031 F(which w)72 489.6 Q(as concei)-.1 E
+-.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
+E(orn.)-.35 E 1.128
+(While POSIX.2 includes much of what the shell has traditionally pro)97 505.2 R
+1.129(vided, some important things)-.15 F(ha)72 517.2 Q .58 -.15(ve b)-.2 H .28
+(een omitted as being `).15 F(`be)-.74 E .28(yond its scope.)-.15 F 4.26 -.74
+('' T)-.7 H .28(here is, for instance, no mention of a dif).74 F .28
+(ference between)-.25 F(a)72 529.2 Q F2(lo)3.354 E(gin)-.1 E F0 .854
+(shell and an)5.02 F 3.354(yo)-.15 G .854(ther interacti)167.956 529.2 R 1.154
+-.15(ve s)-.25 H .854(hell \(since POSIX.2 does not specify a login program\).)
+.15 F .855(No \214x)5.855 F(ed)-.15 E
+(startup \214les are de\214ned, either \255 the standard does not mention)72
+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
+(Comparison)2.5 E F0 .693(This section compares features of bash, sh, and ksh \
+\(the three shells closest to POSIX compliance\).)97 580.8 R .245(Since ksh an\
+d bash are supersets of sh, the features common to all three are co)72 592.8 R
+-.15(ve)-.15 G .245(red \214rst.).15 F .245(Some of the fea-)5.245 F 1.198
+(tures bash and ksh contain which are not in sh will be discussed.)72 604.8 R
+(Ne)6.198 E 1.198(xt, features unique to bash will be)-.15 F 2.866(listed. The)
+72 616.8 R .366(\214rst three sections pro)2.866 F .366(vide a progressi)-.15 F
+-.15(ve)-.25 G .366(ly more detailed o).15 F -.15(ve)-.15 G(rvie).15 E 2.866
+(wo)-.25 G 2.866(fb)395.706 616.8 S 2.866(ash. Finally)406.902 616.8 R 2.866
+(,f)-.65 G .366(eatures of)464.484 616.8 R(ksh-88 \(the currently-a)72 628.8 Q
+-.25(va)-.2 G(ilable v).25 E(ersion\) not in sh or bash will be presented.)-.15
+E F1 2.5(4.1. Common)72 652.8 R -.25(Fe)2.5 G(atur).25 E(es)-.18 E F0 .021
+(All three shells ha)97 668.4 R .321 -.15(ve t)-.2 H .021
+(he same basic feature set, which is essentially that pro).15 F .02
+(vided by sh and described)-.15 F 1.026(in an)72 680.4 R 3.526(ys)-.15 G 3.526
+(hm)105.012 680.4 S 1.027
+(anual page. Bash and ksh are both sh supersets, and so all three pro)121.318
+680.4 R 1.027(vide the command inter)-.15 F(-)-.2 E .714
+(preter and programming language described earlier)72 692.4 R 3.214(.T)-.55 G
+.714(he shell grammar)291.506 692.4 R 3.214(,s)-.4 G .714(yntax, \215o)371.568
+692.4 R 3.214(wc)-.25 G .714(ontrol, redirections,)424.686 692.4 R(and b)72
+704.4 Q(uiltins implemented by the Bourne shell are the baseline for subsequen\
+t discussion.)-.2 E EP
+%%Page: 5 5
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/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
+84 R(eatur)-.25 E(es in bash and ksh)-.18 E F0 .458(Ksh and bash ha)97 99.6 R
+.758 -.15(ve s)-.2 H -2.15 -.25(ev e).15 H .459(ral features in common be).25 F
+.459(yond this base le)-.15 F -.15(ve)-.25 G 2.959(lo).15 G 2.959(ff)387.814
+99.6 S(unctionality)397.433 99.6 Q 5.459(.S)-.65 G .459(ome of this)458.082
+99.6 R(is due to the POSIX.2 standard.)72 111.6 Q(Other functions ha)5 E .3
+-.15(ve b)-.2 H(een implemented in bash using ksh as a guide.).15 E F1 2.5
+(4.2.1. V)72 135.6 R(ariables and V)-.92 E(ariable Expansion)-.92 E F0 .097
+(Bash and ksh ha)97 151.2 R .396 -.15(ve a)-.2 H .096(ugmented v).15 F .096
+(ariable e)-.25 F 2.596(xpansion. Arithmetic)-.15 F .096(substitution allo)
+2.596 F .096(ws an e)-.25 F .096(xpression to be)-.15 F -.25(eva)72 163.2 S .6
+(luated and the result substituted.).25 F .6(Shell v)5.6 F .6
+(ariables may be used as operands, and the result of an e)-.25 F(xpres-)-.15 E
+.41(sion may be assigned to a v)72 175.2 R 2.91(ariable. Nearly)-.25 F .41
+(all of the operators from the C language are a)2.91 F -.25(va)-.2 G .41
+(ilable, with the).25 F(same precedence rules:)72 187.2 Q/F2 10/Courier@0 SF 6
+($e)97 205.2 S(cho $\(\(3 + 5 * 32\)\))115 205.2 Q(163)97 217.2 Q F0 -1.11(Va)
+72 238.8 S 1.445(riables may be declared as)1.11 F/F3 10/Times-Italic@0 SF
+(inte)3.945 E -.1(ge)-.4 G(r).1 E F0 3.945(,w)1.666 G 1.446
+(hich causes arithmetic e)240.956 238.8 R -.25(va)-.25 G 1.446
+(luation to be performed on the v).25 F(alue)-.25 E(whene)72 250.8 Q -.15(ve)
+-.25 G 2.5(rt).15 G(he)115.75 250.8 Q 2.5(ya)-.15 G(re assigned to.)136.98
+250.8 Q .483(There are ne)97 266.4 R 2.983(we)-.25 G .483
+(xpansions to obtain the length of a v)162.179 266.4 R(ariable')-.25 E 2.982
+(sv)-.55 G .482(alue and to remo)352.19 266.4 R .782 -.15(ve s)-.15 H .482
+(ubstrings match-).15 F .063(ing speci\214ed patterns from the be)72 278.4 R
+.063(ginning and end of v)-.15 F .063(ariable v)-.25 F 2.563(alues. A)-.25 F
+(ne)2.563 E 2.563(wf)-.25 G .064(orm of command substitution,)383.249 278.4 R
+F1($\()72 290.4 Q F3(list)A F1(\))A F0 2.5(,i)C 2.5(sm)103.67 290.4 S
+(uch easier to nest than `)117.84 290.4 Q F3(list)A F0 2.5(`a)C
+(nd has simpli\214ed quoting rules.)235.04 290.4 Q .082(There are ne)97 306 R
+2.582(wv)-.25 G .082(ariables to control the shell')161.436 306 R 2.581(sb)-.55
+G(eha)284.333 306 Q(vior)-.2 E 2.581(,a)-.4 G .081(nd additional v)323.244 306
+R .081(ariables set or interpreted spe-)-.25 F 1.038(cially by the shell.)72
+318 R F1(RANDOM)6.038 E F0(and)3.538 E F1(SECONDS)3.538 E F0(are)3.539 E F3
+(dynamic)3.539 E F0 -.25(va)3.539 G 3.539(riables: their).25 F -.25(va)3.539 G
+1.039(lues are generated afresh).25 F 1.022(each time the)72 330 R 3.522(ya)
+-.15 G 1.022(re referenced.)140.176 330 R F1(RANDOM)6.022 E F0 1.021
+(returns a dif)3.521 F 1.021(ferent random number each time it is referenced,)
+-.25 F(and)72 342 Q F1(SECONDS)3.138 E F0 .638
+(returns the number of seconds since the shell w)3.138 F .638
+(as started or the v)-.1 F .639(ariable w)-.25 F .639(as assigned to,)-.1 F
+1.448(plus an)72 354 R 3.948(yv)-.15 G 1.448(alue assigned.)115.606 354 R F1
+(PWD)6.448 E F0(and)3.948 E F1(OLDPWD)3.947 E F0 1.447
+(are set to the current and pre)3.947 F 1.447(vious w)-.25 F 1.447
+(orking directories,)-.1 F(respecti)72 366 Q -.15(ve)-.25 G(ly).15 E(.)-.65 E
+F1(TMOUT)5.604 E F0 .604(controls ho)3.104 F 3.104(wl)-.25 G .604
+(ong the shell will w)226.436 366 R .604(ait at a prompt for input.)-.1 F(If)
+5.604 E F1(TMOUT)3.104 E F0 .605(is set to a)3.105 F -.25(va)72 378 S 1.168
+(lue greater than zero, the shell e).25 F 1.168(xits after w)-.15 F 1.168
+(aiting that man)-.1 F 3.668(ys)-.15 G 1.167(econds for input.)337.478 378 R F1
+(REPL)6.167 E(Y)-.92 E F0 1.167(is the def)3.667 F(ault)-.1 E -.25(va)72 390 S
+.991(riable for the).25 F F1 -.18(re)3.491 G(ad).18 E F0 -.2(bu)3.491 G .991
+(iltin; if no v).2 F .992(ariable names are supplied as ar)-.25 F .992
+(guments, the line read is assigned to)-.18 F F1(REPL)72 402 Q(Y)-.92 E F0(.)A
+F1 2.5(4.2.2. New)72 426 R(and Modi\214ed Builtins)2.5 E F0 .652(Both shells e)
+97 441.6 R .651(xpand the basic sh set of b)-.15 F .651(uiltin commands.)-.2 F
+F1(Let)5.651 E F0(pro)3.151 E .651(vides a w)-.15 F .651
+(ay to perform arithmetic)-.1 F 2.767(on shell v)72 453.6 R 5.268
+(ariables. Shell)-.25 F 2.768(programmers use)5.268 F F1(typeset)5.268 E F0
+2.768(\(bash includes)5.268 F F1(declar)5.268 E(e)-.18 E F0 2.768(as a synon)
+5.268 F 2.768(ym\) to assign)-.15 F(attrib)72 465.6 Q .295(utes such as)-.2 F
+F3 -.2(ex)2.795 G(port).2 E F0(and)4.461 E F3 -.37(re)2.795 G(adonly).37 E F0
+.295(to v)4.461 F(ariables.)-.25 E F1(Getopts)5.295 E F0 .294
+(is used by shell scripts to parse script options)2.795 F .962(and ar)72 477.6
+R 3.462(guments. The)-.18 F F1(set)3.462 E F0 .962(command has a ne)3.462 F
+3.462(wo)-.25 G(ption)266.446 477.6 Q F1<ad6f>3.463 E F0 .963(which tak)3.463 F
+.963(es option names as ar)-.1 F 3.463(guments. Option)-.18 F 1.28
+(names are synon)72 489.6 R 1.28(yms for the other set options \(e.g.,)-.15 F
+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)
+375.97 489.6 S(ro)388.08 489.6 Q 1.28(vide ne)-.15 F 3.78(wf)-.25 G 1.28
+(unctionality \()440.78 489.6 R F1(-o)A(notify)72 501.6 Q F0 3.348(,f)C .849
+(or e)106.178 501.6 R 3.349(xample\). The)-.15 F F1 -.18(re)3.349 G(ad).18 E F0
+-.2(bu)3.349 G .849(iltin tak).2 F .849(es a ne)-.1 F(w)-.25 E F1<ad72>3.349 E
+F0 .849(option to specify that a line ending in a backslash)3.349 F
+(should not be continued.)72 513.6 Q F1 2.5(4.2.3. T)72 537.6 R(ilde Expansion)
+-.18 E F0 -.35(Ti)97 553.2 S .252(lde e).35 F .251
+(xpansion is a feature adopted from the C shell.)-.15 F 2.751(At)5.251 G .251
+(ilde character at the be)331.172 553.2 R .251(ginning of a w)-.15 F .251
+(ord is)-.1 F -.15(ex)72 565.2 S(panded to either).15 E F1($HOME)2.5 E F0
+(or the home directory of another user)2.5 E 2.5(,d)-.4 G
+(epending on what follo)345.84 565.2 Q(ws the tilde.)-.25 E F1 2.5
+(4.2.4. Interacti)72 589.2 R .2 -.1(ve I)-.1 H(mpr).1 E -.1(ove)-.18 G(ments).1
+E F0 .789(The most noticable impro)97 604.8 R -.15(ve)-.15 G .789(ments o).15 F
+-.15(ve)-.15 G 3.289(rs).15 G 3.289(ha)263.385 604.8 S .789
+(re geared for interacti)276.114 604.8 R 1.089 -.15(ve u)-.25 H 3.29(se. Ksh)
+.15 F .79(and bash pro)3.29 F .79(vide job)-.15 F .882(control in a v)72 616.8
+R .882(ery similar f)-.15 F .882
+(ashion, with the same options to enable and disable it \()-.1 F F1 .881
+(set -o monitor)B F0 3.381(\)a)C .881(nd the)478.399 616.8 R(same b)72 628.8 Q
+(uiltin commands to manipulate jobs \()-.2 E F1(jobs/fg/bg/kill/wait)A F0(\).)A
+.866(Command line editing, with emacs and vi-style k)97 644.4 R 1.166 -.15
+(ey b)-.1 H .866(indings, is a).15 F -.25(va)-.2 G .866(ilable in both shells.)
+.25 F .866(The Bash)5.866 F F3 -.37(re)72 656.4 S(adline).37 E F0 1.578
+(library is considerably more sophisticated than the ksh editing library:)5.744
+F 1.577(it allo)6.577 F 1.577(ws arbitrary k)-.25 F -.15(ey)-.1 G 1.867
+(bindings, macros, a per)72 668.4 R 1.868(-user customization \214le \()-.2 F
+F3(~/.inputr)A(c)-.37 E F0 1.868(\), a number of v)B 1.868
+(ariables to further customize)-.25 F(beha)72 680.4 Q(vior)-.2 E 3.538(,a)-.4 G
+1.038(nd a much lar)116.868 680.4 R 1.038
+(ger set of bindable editing commands.)-.18 F 1.037
+(The ksh editing library pro)6.037 F 1.037(vides a small)-.15 F<8c78>72 692.4 Q
+(ed command set and only clumsy macros.)-.15 E .706(Both shells of)97 708 R
+.706(fer access to the command history)-.25 F 5.706(.T)-.65 G .706
+(he in-line editing options ha)307.278 708 R 1.006 -.15(ve d)-.2 H(ef).15 E
+.706(ault k)-.1 F 1.006 -.15(ey b)-.1 H(ind-).15 E .624
+(ings to access the history list.)72 720 R(The)5.624 E F1(fc)3.124 E F0 .624
+(command is pro)3.124 F .624(vided to re-e)-.15 F -.15(xe)-.15 G .623(cute pre)
+.15 F .623(vious commands and display)-.25 F EP
+%%Page: 6 6
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF 2.5(-6-)279.67 48 S(the contents of the history list.)
+72 84 Q/F1 10/Times-Bold@0 SF 2.5(4.2.5. Miscellaneous)72 108 R
+(Changes and Impr)2.5 E -.1(ov)-.18 G(ments).1 E F0 .707(Other impro)97 123.6 R
+-.15(ve)-.15 G .707(ments include aliases, the).15 F F1(select)3.207 E F0 .708
+(shell language construct, which supports the genera-)3.207 F 1.298
+(tion and presentation of simple menus, and e)72 135.6 R 1.298
+(xtensions to the)-.15 F F1(export)3.798 E F0(and)3.798 E F1 -.18(re)3.798 G
+(adonly).18 E F0 -.2(bu)3.798 G 1.298(iltins which allo).2 F(w)-.25 E -.25(va)
+72 147.6 S .017(riables to be assigned v).25 F .017
+(alues at the same time the attrib)-.25 F .017(utes are set.)-.2 F -.8(Wo)5.018
+G .018(rd splitting has changed:).8 F .018(if tw)5.018 F 2.518(oo)-.1 G(r)
+500.67 147.6 Q .158(more adjacent w)72 159.6 R .157
+(ord splitting characters occur)-.1 F 2.657(,b)-.4 G .157
+(ash and ksh will generate null \214elds; sh mak)264.893 159.6 R .157
+(es runs of mul-)-.1 F .339
+(tiple \214eld separator charactors the same as a single separator)72 171.6 R
+5.339(.B)-.55 G .34(ash and ksh split only the results of e)330.89 171.6 R
+(xpan-)-.15 E(sion, rather than e)72 183.6 Q -.15(ve)-.25 G(ry w).15 E
+(ord as sh does, closing a long-standing shell security hole.)-.1 E 1.234
+(Shell functions in bash and ksh may ha)97 199.2 R 1.534 -.15(ve l)-.2 H 1.234
+(ocal v).15 F 3.734(ariables. V)-.25 F 1.234(ariables declared with)-1.11 F F1
+(typeset)3.734 E F0 1.234(\(or the)3.734 F .001(bash synon)72 211.2 R(ym,)-.15
+E F1(local)2.501 E F0 .001(\), ha)B .301 -.15(ve a s)-.2 H .001
+(cope restricted to the function and its descendents, and may shado).15 F 2.502
+(wv)-.25 G(ariables)472.9 211.2 Q(de\214ned by the in)72 223.2 Q -.2(vo)-.4 G
+(king shell.).2 E(Local v)5 E(ariables are remo)-.25 E -.15(ve)-.15 G 2.5(dw)
+.15 G(hen a function completes.)317.75 223.2 Q F1 2.5(4.3. F)72 247.2 R(eatur)
+-.25 E(es Unique to bash)-.18 E F0(Naturally)97 262.8 Q 2.895(,b)-.65 G .395
+(ash includes features not in sh or ksh.)144.515 262.8 R .395
+(This section discusses some of the features which)5.395 F(mak)72 274.8 Q 2.986
+(eb)-.1 G .486(ash unique.)101.546 274.8 R .486(Most of them pro)5.486 F .486
+(vide impro)-.15 F -.15(ve)-.15 G 2.986(di).15 G(nteracti)288.098 274.8 Q .787
+-.15(ve u)-.25 H .487(se, b).15 F .487(ut a fe)-.2 F 2.987(wp)-.25 G .487
+(rogramming impro)394.653 274.8 R -.15(ve)-.15 G(ments).15 E
+(are present as well.)72 286.8 Q
+(Full descriptions of these features can be found in the bash documentation.)5
+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
+(xe)-.15 G .281(cutes startup \214les dif).15 F .281
+(ferently than other shells.)-.25 F .281(The bash beha)5.281 F .28
+(vior is a compromise between)-.2 F .116
+(the csh principle of startup \214les with \214x)72 338.4 R .116(ed names e)
+-.15 F -.15(xe)-.15 G .116(cuted for each shell and the sh `).15 F
+(`minimalist')-.74 E 2.616('b)-.74 G(eha)472.26 338.4 Q(vior)-.2 E(.)-.55 E
+2.956(An interacti)72 350.4 R 3.256 -.15(ve i)-.25 H 2.956
+(nstance of bash started as a login shell reads and e).15 F -.15(xe)-.15 G
+(cutes).15 E/F2 10/Times-Italic@0 SF(~/.bash_pr)5.455 E(o\214le)-.45 E F0 2.955
+(\(the \214le)7.121 F F2(.bash_pr)72 362.4 Q(o\214le)-.45 E F0 .835
+(in the user')5 F 3.335(sh)-.55 G .835(ome directory\), if it e)187.385 362.4 R
+3.335(xists. An)-.15 F(interacti)3.335 E 1.135 -.15(ve n)-.25 H .835
+(on-login shell reads and e).15 F -.15(xe)-.15 G(cutes).15 E F2(~/.bashr)72
+374.4 Q(c)-.37 E F0 5.538(.A)1.666 G(non-interacti)127.422 374.4 Q .838 -.15
+(ve s)-.25 H .538(hell \(one be).15 F .538(gun to e)-.15 F -.15(xe)-.15 G .538
+(cute a shell script, for e).15 F .537(xample\) reads no \214x)-.15 F .537
+(ed startup)-.15 F .139(\214le, b)72 386.4 R .139(ut uses the v)-.2 F .139
+(alue of the v)-.25 F(ariable)-.25 E F1(ENV)2.639 E F0 2.639(,i)C 2.639(fs)
+253.361 386.4 S .139(et, as the name of a startup \214le.)263.22 386.4 R .139
+(The ksh practice of reading)5.139 F F1($ENV)72 398.4 Q F0 .69(for e)3.19 F
+-.15(ve)-.25 G .69(ry shell, with the accompan).15 F .689(ying dif)-.15 F .689
+(\214culty of de\214ning the proper v)-.25 F .689(ariables and functions for)
+-.25 F(interacti)72 410.4 Q .946 -.15(ve a)-.25 H .646(nd non-interacti).15 F
+.946 -.15(ve s)-.25 H .646(hells or ha).15 F .646
+(ving the \214le read only for interacti)-.2 F .946 -.15(ve s)-.25 H .646
+(hells, w).15 F .646(as considered too)-.1 F(comple)72 422.4 Q(x.)-.15 E F1 2.5
+(4.3.2. New)72 446.4 R(Builtin Commands)2.5 E F0 1.119(There are a fe)97 462 R
+3.619(wb)-.25 G 1.118(uiltins which are ne)170.986 462 R 3.618(wo)-.25 G 3.618
+(rh)268.528 462 S -2.25 -.2(av e)280.476 462 T 1.118(been e)3.818 F 1.118
+(xtended in bash.)-.15 F(The)6.118 E F1(enable)3.618 E F0 -.2(bu)3.618 G 1.118
+(iltin allo).2 F(ws)-.25 E -.2(bu)72 474 S .736
+(iltin commands to be turned on and of).2 F 3.236(fa)-.25 G(rbitrarily)250.198
+474 Q 5.736(.T)-.65 G 3.237(ou)298.644 474 S .737(se the v)311.881 474 R .737
+(ersion of)-.15 F F2(ec)3.237 E(ho)-.15 E F0 .737(found in a user')4.903 F
+3.237(ss)-.55 G(earch)482.35 474 Q .013(path rather than the bash b)72 486 R
+(uiltin,)-.2 E/F3 10/Courier@0 SF .013(enable -n echo)2.513 F F0(suf)2.513 E
+2.513(\214ces. The)-.25 F F1(help)2.513 E F0 -.2(bu)2.513 G .013(iltin pro).2 F
+.013(vides quick synopses of)-.15 F 1.382(the shell f)72 498 R 1.382
+(acilities without requiring access to a manual page.)-.1 F F1(Builtin)6.382 E
+F0 1.383(is similar to)3.882 F F1(command)3.883 E F0 1.383(in that it)3.883 F
+.342(bypasses shell functions and directly e)72 510 R -.15(xe)-.15 G .342
+(cutes b).15 F .342(uiltin commands.)-.2 F .342
+(Access to a csh-style stack of directories)5.342 F .072(is pro)72 522 R .073
+(vided via the)-.15 F F1(pushd)2.573 E F0(,)A F1(popd)2.573 E F0 2.573(,a)C(nd)
+211.197 522 Q F1(dirs)2.573 E F0 -.2(bu)2.573 G(iltins.).2 E F1(Pushd)5.073 E
+F0(and)2.573 E F1(popd)2.573 E F0 .073(insert and remo)2.573 F .373 -.15(ve d)
+-.15 H .073(irectories from the).15 F .094(stack, respecti)72 534 R -.15(ve)
+-.25 G(ly).15 E 2.594(,a)-.65 G(nd)154.448 534 Q F1(dirs)2.594 E F0 .094
+(lists the stack contents.The)2.594 F F1(suspend)2.594 E F0 .094
+(command will stop the shell process when)2.594 F 1.329(job control is acti)72
+546 R -.15(ve)-.25 G 3.829(;m).15 G 1.329(ost other shells do not allo)169.136
+546 R 3.829(wt)-.25 G(hemselv)294.64 546 Q 1.33(es to be stopped lik)-.15 F
+3.83(et)-.1 G(hat.)421.31 546 Q F1 -.74(Ty)6.33 G(pe,).74 E F0 1.33(the bash)
+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)
+2.5 E(ws what will happen when a w)-.25 E(ord is typed as a command:)-.1 E F3 6
+($t)97 576 S(ype export)115 576 Q(export is a shell builtin)97 588 Q 6($t)97
+600 S(ype -t export)115 600 Q(builtin)97 612 Q 6($t)97 624 S(ype bash)115 624 Q
+(bash is /bin/bash)97 636 Q 6($t)97 648 S(ype cd)115 648 Q(cd is a function)97
+660 Q(cd \(\))97 672 Q({)97 684 Q(builtin cd "$@" && xtitle $HOST: $PWD)121 696
+Q(})97 708 Q EP
+%%Page: 7 7
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF 2.5(-7-)279.67 48 S -1.11(Va)72 84 S .682
+(rious modes tell what a command w)1.11 F .681(ord is \(reserv)-.1 F .681(ed w)
+-.15 F .681(ord, alias, function, b)-.1 F .681(uiltin, or \214le\) or which v)
+-.2 F(er)-.15 E(-)-.2 E 1.15(sion of a command will be e)72 96 R -.15(xe)-.15 G
+1.15(cuted based on a user').15 F 3.65(ss)-.55 G 1.15(earch path.)305.7 96 R
+1.15(Some of this functionality has been)6.15 F
+(adopted by POSIX.2 and folded into the)72 108 Q/F1 10/Times-Bold@0 SF(command)
+2.5 E F0(utility)2.5 E(.)-.65 E F1 2.5(4.3.3. Editing)72 132 R(and Completion)
+2.5 E F0 .682(One area in which bash shines is command line editing.)97 147.6 R
+.682(Bash uses the)5.682 F/F2 10/Times-Italic@0 SF -.37(re)3.182 G(adline).37 E
+F0 .682(library to read and)4.848 F .102(edit lines when interacti)72 159.6 R
+-.15(ve)-.25 G 5.102(.R).15 G .103(eadline is a po)191.438 159.6 R .103
+(werful and \215e)-.25 F .103(xible input f)-.15 F .103
+(acility that a user can con\214gure to his)-.1 F 2.506(tastes. It)72 171.6 R
+(allo)2.506 E .006(ws lines to be edited using either emacs or vi commands, wh\
+ere those commands are appropri-)-.25 F 2.994(ate. The)72 183.6 R .494
+(full capability of emacs is not present \255 there is no w)2.994 F .495
+(ay to e)-.1 F -.15(xe)-.15 G .495(cute a named command with M-x,).15 F .222
+(for instance \255 b)72 195.6 R .222(ut the e)-.2 F .222
+(xisting commands are more than adequate.)-.15 F .221
+(The vi mode is compliant with the com-)5.222 F
+(mand line editing standardized by POSIX.2.)72 207.6 Q 1.69
+(Readline is fully customizable.)97 223.2 R 1.691
+(In addition to the basic commands and k)6.69 F 1.991 -.15(ey b)-.1 H 1.691
+(indings, the library).15 F(allo)72 235.2 Q .83
+(ws users to de\214ne additional k)-.25 F 1.13 -.15(ey b)-.1 H .83
+(indings using a startup \214le.).15 F(The)5.83 E F2(inputr)3.329 E(c)-.37 E F0
+.829(\214le, which def)4.995 F .829(aults to the)-.1 F(\214le)72 247.2 Q F2
+(~/.inputr)4.287 E(c)-.37 E F0 4.287(,i)1.666 G 4.287(sr)137.43 247.2 S 1.788(\
+ead each time readline initializes, permitting users to maintain a consistent \
+interf)148.937 247.2 R(ace)-.1 E .547(across a set of programs.)72 259.2 R .546
+(Readline includes an e)5.546 F .546(xtensible interf)-.15 F .546
+(ace, so each program using the library can)-.1 F .23(add its o)72 271.2 R .23
+(wn bindable commands and program-speci\214c k)-.25 F .531 -.15(ey b)-.1 H
+2.731(indings. Bash).15 F .231(uses this f)2.731 F .231
+(acility to add bindings)-.1 F(that perform history e)72 283.2 Q
+(xpansion or shell w)-.15 E(ord e)-.1 E(xpansions on the current input line.)
+-.15 E .707(Readline interprets a number of v)97 298.8 R .706
+(ariables which further tune its beha)-.25 F(vior)-.2 E 5.706(.V)-.55 G .706
+(ariables e)408.432 298.8 R .706(xist to control)-.15 F .157
+(whether or not eight-bit characters are directly read as input or con)72 310.8
+R -.15(ve)-.4 G .158(rted to meta-pre\214x).15 F .158(ed k)-.15 F .458 -.15
+(ey s)-.1 H .158(equences \(a).15 F(meta-pre\214x)72 322.8 Q 1.575(ed k)-.15 F
+1.875 -.15(ey s)-.1 H 1.575
+(equence consists of the character with the eighth bit zeroed, preceded by the)
+.15 F F2(meta-)4.074 E(pr)72 334.8 Q(e\214x)-.37 E F0(character)4.45 E 2.784
+(,u)-.4 G .284(sually escape, which selects an alternate k)145.374 334.8 R -.15
+(ey)-.1 G .285(map\), to decide whether to output characters).15 F .485
+(with the eighth bit set directly or as a meta-pre\214x)72 346.8 R .485(ed k)
+-.15 F .784 -.15(ey s)-.1 H .484(equence, whether or not to wrap to a ne).15 F
+2.984(ws)-.25 G(creen)482.35 346.8 Q .157
+(line when a line being edited is longer than the screen width, the k)72 358.8
+R -.15(ey)-.1 G .158(map to which subsequent k).15 F .458 -.15(ey b)-.1 H
+(indings).15 E .531(should apply)72 370.8 R 3.031(,o)-.65 G 3.031(re)133.802
+370.8 S -.15(ve)144.353 370.8 S 3.031(nw).15 G .531
+(hat happens when readline w)168.894 370.8 R .531(ants to ring the terminal')
+-.1 F 3.03(sb)-.55 G 3.03(ell. All)399.37 370.8 R .53(of these v)3.03 F
+(ariables)-.25 E(can be set in the inputrc \214le.)72 382.8 Q .284
+(The startup \214le understands a set of C preprocessor)97 398.4 R(-lik)-.2 E
+2.785(ec)-.1 G .285(onditional constructs which allo)329.49 398.4 R 2.785(wv)
+-.25 G(ariables)472.9 398.4 Q .12(or k)72 410.4 R .42 -.15(ey b)-.1 H .119(ind\
+ings to be assigned based on the application using readline, the terminal curr\
+ently being used, or).15 F .316(the editing mode.)72 422.4 R .317
+(Users can add program-speci\214c bindings to mak)5.317 F 2.817(et)-.1 G .317
+(heir li)352.808 422.4 R -.15(ve)-.25 G 2.817(se).15 G 2.817(asier: here)
+396.922 422.4 R .317(are bindings to)2.817 F(edit the v)72 434.4 Q(alue of)-.25
+E F1 -.74(PA)2.5 G(TH)-.21 E F0(and double-quote the current or pre)2.5 E
+(vious w)-.25 E(ord:)-.1 E/F3 10/Courier@0 SF 6(#M)97 452.4 S
+(acros that are convenient for shell interaction)115 452.4 Q($if Bash)97 464.4
+Q 6(#e)97 476.4 S(dit the path)115 476.4 Q
+("\\C-xp": "PATH=${PATH}\\e\\C-e\\C-a\\ef\\C-f")97 488.4 Q 6(#p)97 500.4 S
+(repare to type a quoted word -- insert open and close double quotes)115 500.4
+Q 6(#a)97 512.4 S(nd move to just after the open quote)115 512.4 Q
+("\\C-x\\"": "\\"\\"\\C-b")97 524.4 Q 6(#Q)97 536.4 S
+(uote the current or previous word)115 536.4 Q("\\C-xq": "\\eb\\"\\ef\\"")97
+548.4 Q($endif)97 560.4 Q F0 .322(There is a readline command to re-read the \
+\214le, so users can edit the \214le, change some bindings, and be)72 582 R
+(gin)-.15 E(to use them almost immediately)72 594 Q(.)-.65 E .851
+(Bash implements the)97 609.6 R F1(bind)3.351 E F0 -.2(bu)3.351 G .851
+(iltin for more dyamic control of readline than the startup \214le permits.).2
+F F1(Bind)72 621.6 Q F0 .167(is used in se)2.667 F -.15(ve)-.25 G .167(ral w)
+.15 F 2.667(ays. In)-.1 F F2(list)2.667 E F0 .167
+(mode, it can display the current k)4.333 F .466 -.15(ey b)-.1 H .166
+(indings, list all the readline edit-).15 F .149(ing directi)72 633.6 R -.15
+(ve)-.25 G 2.649(sa).15 G -.25(va)132.798 633.6 S .149
+(ilable for binding, list which k).25 F -.15(ey)-.1 G 2.649(si).15 G -1.9 -.4
+(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
+(irecti)345.3 633.6 Q -.15(ve)-.25 G 2.65(,o).15 G 2.65(ro)385.04 633.6 S .15
+(utput the current set of k)396.02 633.6 R -.15(ey)-.1 G .526(bindings in a fo\
+rmat that can be incorporated directly into an inputrc \214le.)72 645.6 R(In)
+5.526 E F2(batc)3.026 E(h)-.15 E F0 .526(mode, it reads a series)4.692 F .71
+(of k)72 657.6 R 1.01 -.15(ey b)-.1 H .71
+(indings directly from a \214le and passes them to readline.).15 F .71
+(In its most common usage,)5.71 F F1(bind)3.21 E F0(tak)3.21 E .71(es a)-.1 F
+.534(single string and passes it directly to readline, which interprets the li\
+ne as if it had just been read from the)72 669.6 R(inputrc \214le.)72 681.6 Q
+(Both k)5 E .3 -.15(ey b)-.1 H(indings and v).15 E
+(ariable assignments can appear in the string gi)-.25 E -.15(ve)-.25 G 2.5(nt)
+.15 G(o)424.4 681.6 Q F1(bind)2.5 E F0(.)A .401(The readline library also pro)
+97 697.2 R .402(vides an interf)-.15 F .402(ace for)-.1 F F2(wor)2.902 E 2.902
+(dc)-.37 G(ompletion)328.546 697.2 Q F0 5.402(.W)C .402(hen the)385.888 697.2 R
+F2(completion)2.902 E F0(character)4.568 E 1.261(\(usually T)72 709.2 R 1.261
+(AB\) is typed, readline looks at the w)-.93 F 1.26
+(ord currently being entered and computes the set of \214le-)-.1 F .523
+(names of which the current w)72 721.2 R .523(ord is a v)-.1 F .523
+(alid pre\214x.)-.25 F .524
+(If there is only one possible completion, the rest of the)5.523 F EP
+%%Page: 8 8
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF 2.5(-8-)279.67 48 S .358
+(characters are inserted directly)72 84 R 2.858(,o)-.65 G .358(therwise the co\
+mmon pre\214x of the set of \214lenames is added to the current)205.232 84 R
+-.1(wo)72 96 S 3.199(rd. A).1 F .699(second T)3.199 F .699(AB character entere\
+d immediately after a non-unique completion causes readline to list)-.93 F
+1.814(the possible completions; there is an option to ha)72 108 R 2.113 -.15
+(ve t)-.2 H 1.813(he list displayed immediately).15 F 6.813(.R)-.65 G 1.813
+(eadline pro)436.517 108 R(vides)-.15 E .482
+(hooks so that applications can pro)72 120 R .482
+(vide speci\214c types of completion before the def)-.15 F .483
+(ault \214lename completion)-.1 F .132(is attempted.)72 132 R .132
+(This is quite \215e)5.132 F .132(xible, though it is not completely user)-.15
+F 2.632(-programmable. Bash,)-.2 F .132(for e)2.632 F .132(xample, can)-.15 F
+.37(complete \214lenames, command names \(including aliases, b)72 144 R .37
+(uiltins, shell reserv)-.2 F .37(ed w)-.15 F .37(ords, shell functions, and)-.1
+F -.15(exe)72 156 S .424(cutables found in the \214le system\), shell v).15 F
+.424(ariables, usernames, and hostnames.)-.25 F .423
+(It uses a set of heuristics)5.424 F(that, while not perfect, is generally qui\
+te good at determining what type of completion to attempt.)72 168 Q/F1 10
+/Times-Bold@0 SF 2.5(4.3.4. History)72 192 R F0 .255
+(Access to the list of commands pre)97 207.6 R .255(viously entered \(the)-.25
+F/F2 10/Times-Italic@0 SF .255(command history)2.755 F F0 2.756(\)i)C 2.756(sp)
+399.236 207.6 S(ro)410.882 207.6 Q .256(vided jointly by bash)-.15 F .095
+(and the readline library)72 219.6 R 5.094(.B)-.65 G .094(ash pro)178.928 219.6
+R .094(vides v)-.15 F .094(ariables \()-.25 F F1(HISTFILE)A F0(,)A F1(HISTSIZE)
+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
+(\)a)C .094(nd the)479.186 219.6 R F1(history)72 231.6 Q F0(and)2.825 E F1(fc)
+2.825 E F0 -.2(bu)2.825 G .325(iltins to manipulate the history list.).2 F .325
+(The v)5.325 F .325(alue of)-.25 F F1(HISTFILE)2.825 E F0 .326
+(specifes the \214le where bash)2.826 F .128(writes the command history on e)72
+243.6 R .128(xit and reads it on startup.)-.15 F F1(HISTSIZE)5.128 E F0 .128
+(is used to limit the number of com-)2.628 F .346(mands sa)72 255.6 R -.15(ve)
+-.2 G 2.846(di).15 G 2.846(nt)129.002 255.6 S .346(he history)139.628 255.6 R
+(.)-.65 E F1(HISTCONTR)5.346 E(OL)-.3 E F0(pro)2.846 E .346
+(vides a crude form of control o)-.15 F -.15(ve)-.15 G 2.846(rw).15 G .346
+(hich commands are)425.548 255.6 R(sa)72 267.6 Q -.15(ve)-.2 G 2.905(do).15 G
+2.905(nt)102.325 267.6 S .405(he history list: a v)113.01 267.6 R .405(alue of)
+-.25 F F2(ignor)2.905 E(espace)-.37 E F0 .405(means to not sa)4.571 F .705 -.15
+(ve c)-.2 H .405(ommands which be).15 F .405(gin with a space; a)-.15 F -.25
+(va)72 279.6 S .339(lue of).25 F F2(ignor)2.839 E(edups)-.37 E F0 .339
+(means to not sa)4.505 F .64 -.15(ve c)-.2 H .34
+(ommands identical to the last command sa).15 F -.15(ve)-.2 G(d.).15 E F1
+(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
+F1(history_contr)3.15 E(ol)-.18 E F0 .65(in earlier v)3.15 F .649
+(ersions of bash; the old name is still accepted for backw)-.15 F .649
+(ards com-)-.1 F(patibility)72 303.6 Q 5.723(.T)-.65 G(he)121.803 303.6 Q F1
+(history)3.223 E F0 .724(command can read or write \214les containing the hist\
+ory list and display the current)3.223 F .895(list contents.)72 315.6 R(The)
+5.895 E F1(fc)3.395 E F0 -.2(bu)3.395 G .895
+(iltin, adopted from POSIX.2 and the K).2 F .894(orn Shell, allo)-.35 F .894
+(ws display and re-e)-.25 F -.15(xe)-.15 G(cution,).15 E .461
+(with optional editing, of commands from the history list.)72 327.6 R .462
+(The readline library of)5.462 F .462(fers a set of commands to)-.25 F .657(se\
+arch the history list for a portion of the current input line or a string type\
+d by the user)72 339.6 R 5.657(.F)-.55 G(inally)445.836 339.6 Q 3.157(,t)-.65 G
+(he)476.403 339.6 Q F2(his-)3.157 E(tory)72 351.6 Q F0(library)4.196 E 2.53(,g)
+-.65 G .03(enerally incorporated directly into the readline library)128.346
+351.6 R 2.53(,i)-.65 G .03(mplements a f)350.636 351.6 R .031
+(acility for history recall,)-.1 F -.15(ex)72 363.6 S .594(pansion, and re-e)
+.15 F -.15(xe)-.15 G .594(cution of pre).15 F .594(vious commands v)-.25 F .594
+(ery similar to csh \(`)-.15 F .593(`bang history')-.74 F .593
+(', so called because)-.74 F(the e)72 375.6 Q
+(xclamation point introduces a history substitution\):)-.15 E/F3 10/Courier@0
+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
+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
+($!)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
+($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
+S F0 1.456(The command history is only sa)72 535.2 R -.15(ve)-.2 G 3.957(dw).15
+G 1.457(hen the shell is interacti)232.599 535.2 R -.15(ve)-.25 G 3.957(,s).15
+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
+1.457(ot a)386.905 535.2 R -.25(va)-.2 G 1.457(ilable for use by shell).25 F
+(scripts.)72 547.2 Q F1 2.5(4.3.5. New)72 571.2 R(Shell V)2.5 E(ariables)-.92 E
+F0 .701(There are a number of con)97 586.8 R -.15(ve)-.4 G .701(nience v).15 F
+.701(ariables that bash interprets to mak)-.25 F 3.2(el)-.1 G .7(ife easier)
+402.76 586.8 R 5.7(.T)-.55 G .7(hese include)453.59 586.8 R F1(FIGNORE)72 598.8
+Q F0 3.973(,w)C 1.473(hich is a set of \214lename suf)132.363 598.8 R<8c78>-.25
+E 1.474(es identifying \214les to e)-.15 F 1.474
+(xclude when completing \214lenames;)-.15 F F1(HOSTTYPE)72 610.8 Q F0 3.03(,w)C
+.53(hich is automatically set to a string describing the type of hardw)139.21
+610.8 R .53(are on which bash is cur)-.1 F(-)-.2 E .76(rently e)72 622.8 R -.15
+(xe)-.15 G(cuting;).15 E F1(OSTYPE)3.26 E F0 3.26(,t)C 3.26(ow)191.76 622.8 S
+.76(hich bash assigns a v)207.24 622.8 R .761(alue that identi\214es the v)-.25
+F .761(ersion of)-.15 F/F4 9/Times-Roman@0 SF(UNIX)3.261 E F0(it')3.261 E 3.261
+(sr)-.55 G(unning)476.22 622.8 Q 1.354
+(on \(great for putting architecture-speci\214c binary directories into the)72
+634.8 R F1 -.74(PA)3.854 G(TH)-.21 E F0 1.354(\); and)B F1(IGNOREEOF)3.854 E F0
+3.854(,w)C(hose)485.67 634.8 Q -.25(va)72 646.8 S .062
+(lue indicates the number of consecuti).25 F .362 -.15(ve E)-.25 H .062
+(OF characters that an interacti).15 F .362 -.15(ve s)-.25 H .062
+(hell will read before e).15 F .062(xiting \255)-.15 F .114(an easy w)72 658.8
+R .113(ay to k)-.1 F .113(eep yourself from being logged out accidentally)-.1 F
+5.113(.T)-.65 G(he)344.285 658.8 Q F1(auto_r)2.613 E(esume)-.18 E F0 -.25(va)
+2.613 G .113(riable alters the w).25 F(ay)-.1 E .409
+(the shell treats simple command names: if job control is acti)72 670.8 R -.15
+(ve)-.25 G 2.909(,a).15 G .409(nd this v)335.516 670.8 R .409
+(ariable is set, single-w)-.25 F .409(ord simple)-.1 F .17(commands without re\
+directions cause the shell to \214rst look for a suspended job with that name \
+before start-)72 682.8 R(ing a ne)72 694.8 Q 2.5(wp)-.25 G(rocess.)118.13 694.8
+Q EP
+%%Page: 9 9
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF 2.5(-9-)279.67 48 S/F1 10/Times-Bold@0 SF 2.5
+(4.3.6. Brace)72 84 R(Expansion)2.5 E F0 .653(Since sh of)97 99.6 R .653
+(fers no con)-.25 F -.15(ve)-.4 G .653(nient w).15 F .653
+(ay to generate arbitrary strings that share a common pre\214x or suf)-.1 F
+<8c78>-.25 E 1.893(\(pathname e)72 111.6 R 1.893
+(xpansion requires that the \214lenames e)-.15 F 1.892(xist\), bash implements)
+-.15 F/F2 10/Times-Italic@0 SF(br)4.392 E 1.892(ace e)-.15 F(xpansion)-.2 E F0
+4.392(,ac)C(apability)469 111.6 Q(pick)72 123.6 Q .496(ed up from csh.)-.1 F
+.496(Brace e)5.496 F .496(xpansion is similar to pathname e)-.15 F .496
+(xpansion, b)-.15 F .497(ut the strings generated need not)-.2 F 1.107
+(correspond to e)72 135.6 R 1.107(xisting \214les.)-.15 F 3.607(Ab)6.107 G
+1.107(race e)207.655 135.6 R 1.107(xpression consists of an optional)-.15 F F2
+(pr)3.606 E(eamble)-.37 E F0 3.606(,f)1.666 G(ollo)419.286 135.6 Q 1.106
+(wed by a pair of)-.25 F 2.809
+(braces enclosing a series of comma-separated strings, and an optional)72 147.6
+R F2(postamble)5.31 E F0 7.81(.T)1.666 G 2.81(he preamble is)440.06 147.6 R(pr\
+epended to each string within the braces, and the postamble is then appended t\
+o each resulting string:)72 159.6 Q/F3 10/Courier@0 SF 6($e)97 177.6 S
+(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
+(ompt Customization)-.18 E F0 .077(One of the more popular interacti)97 235.2 R
+.376 -.15(ve f)-.25 H .076(eatures that bash pro).15 F .076
+(vides is the ability to customize the prompt.)-.15 F(Both)72 247.2 Q F1(PS1)
+3.305 E F0(and)3.305 E F1(PS2,)3.305 E F0 .805
+(the primary and secondary prompts, are e)3.305 F .805
+(xpanded before being displayed.)-.15 F -.15(Pa)5.805 G(rameter).15 E .324
+(and v)72 259.2 R .324(ariable e)-.25 F .324
+(xpansion is performed when the prompt string is e)-.15 F .323
+(xpanded, so the v)-.15 F .323(alue of an)-.25 F 2.823(ys)-.15 G .323(hell v)
+454.217 259.2 R(ariable)-.25 E .728(can be put into the prompt \(e.g.,)72 271.2
+R F1($SHL)3.228 E(VL)-.92 E F0 3.228(,w)C .728(hich indicates ho)258.564 271.2
+R 3.228(wd)-.25 G .729(eeply the current shell is nested\).)342.988 271.2 R
+(Bash)5.729 E 1.895
+(specially interprets characters in the prompt string preceded by a backslash.)
+72 283.2 R 1.895(Some of these backslash)6.895 F .874
+(escapes are replaced with the current time, the date, the current w)72 295.2 R
+.874(orking directory)-.1 F 3.374(,t)-.65 G .874(he username, and the)416.958
+295.2 R .781(command number or history number of the command being entered.)72
+307.2 R .78(There is e)5.781 F -.15(ve)-.25 G 3.28(nab).15 G .78
+(ackslash escape to)429.13 307.2 R .007
+(cause the shell to change its prompt when running as root after an)72 319.2 R
+F2(su)2.507 E F0 5.007(.B)C .008(efore printing each primary prompt,)360.388
+319.2 R .27(bash e)72 331.2 R .27(xpands the v)-.15 F(ariable)-.25 E F1(PR)2.77
+E(OMPT_COMMAND)-.3 E F0 .269(and, if it has a v)2.77 F .269(alue, e)-.25 F -.15
+(xe)-.15 G .269(cutes the e).15 F .269(xpanded v)-.15 F .269(alue as a)-.25 F
+.04(command, allo)72 343.2 R .041(wing additional prompt customization.)-.25 F
+-.15(Fo)5.041 G 2.541(re).15 G .041
+(xample, this assignment causes the current user)311.964 343.2 R(,)-.4 E .99
+(the current host, the time, the last component of the current w)72 355.2 R
+.989(orking directory)-.1 F 3.489(,t)-.65 G .989(he le)402.954 355.2 R -.15(ve)
+-.25 G 3.489(lo).15 G 3.489(fs)443.412 355.2 S .989(hell nesting,)454.121 355.2
+R(and the history number of the current command to be embedded into the primar\
+y prompt:)72 367.2 Q F3 6($P)97 385.2 S
+(S1='\\u@\\h [\\t] \\W\($SHLVL:\\!\)\\$ ')115 385.2 Q
+(chet@odin [21:03:44] documentation\(2:636\)$ cd ..)97 397.2 Q
+(chet@odin [21:03:54] src\(2:637\)$)97 409.2 Q F0 .619
+(The string being assigned is surrounded by single quotes so that if it is e)72
+430.8 R(xported,)-.15 E F1(SHL)3.119 E(VL)-.92 E F0 .619(will be updated)3.119
+F(by a child shell:)72 442.8 Q F3
+(chet@odin [21:13:35] src\(2:638\)$ export PS1)97 460.8 Q
+(chet@odin [21:17:40] src\(2:639\)$ bash)97 472.8 Q
+(chet@odin [21:17:46] src\(3:696\)$)97 484.8 Q F0(The)72 506.4 Q F1(\\$)2.5 E
+F0(escape is displayed as `)2.5 E(`)-.74 E F1($)A F0 1.48 -.74('' w)D
+(hen running as a normal user).74 E 2.5(,b)-.4 G(ut as `)342.08 506.4 Q(`)-.74
+E F1(#)A F0 1.48 -.74('' w)D(hen running as root.).74 E F1 2.5(4.3.8. POSIX)72
+530.4 R(Mode)2.5 E F0 .46(Although bash is intended to be POSIX.2 compliant, t\
+here are areas in which the def)97 546 R .46(ault beha)-.1 F .46(vior is)-.2 F
+1.168(not compatible with the standard.)72 558 R -.15(Fo)6.169 G 3.669(ru).15 G
+1.169(sers who wish to operate in a strict POSIX.2 en)238.85 558 R 1.169
+(vironment, bash)-.4 F .61(implements a)72 570 R F2 .61(POSIX mode)3.11 F F0
+5.61(.W)C .61(hen this mode is acti)199.42 570 R -.15(ve)-.25 G 3.109(,b).15 G
+.609(ash modi\214es its def)303.727 570 R .609(ault operation where it dif)-.1
+F(fers)-.25 E .066(from POSIX.2 to match the standard.)72 582 R .067
+(POSIX mode is entered when bash is started with the)5.066 F F1 .067(-o posix)
+2.567 F F0(option)2.567 E .382(or when)72 594 R F1 .382(set -o posix)2.882 F F0
+.381(is e)2.881 F -.15(xe)-.15 G 2.881(cuted. F).15 F .381
+(or compatibility with other GNU softw)-.15 F .381
+(are that attempts to be POSIX.2)-.1 F 5.752
+(compliant, bash also enters POSIX mode if either of the v)72 606 R(ariables)
+-.25 E F1(POSIX_PED)8.253 E(ANTIC)-.35 E F0(or)8.253 E F1(POSIXL)72 618 Q
+(Y_CORRECT)-.92 E F0 1.179(is set when bash is started or assigned a v)3.679 F
+1.178(alue during e)-.25 F -.15(xe)-.15 G 3.678(cution. When).15 F 1.178
+(bash is)3.678 F .218(started in POSIX mode, for e)72 630 R .218(xample, the)
+-.15 F F1(kill)2.718 E F0 -.2(bu)2.718 G(iltin').2 E(s)-.55 E F1<ad6c>2.718 E
+F0 .218(option beha)2.718 F -.15(ve)-.2 G 2.718(sd).15 G(if)370.166 630 Q .219
+(ferently: it lists the names of all)-.25 F 1.084(signals on a single line sep\
+arated by spaces, rather than listing the signal names and their corresponding)
+72 642 R(numbers.)72 654 Q .865(Some of the def)97 669.6 R .865(ault bash beha)
+-.1 F .865(vior dif)-.2 F .865
+(fers from other shells as a result of the POSIX standard.)-.25 F -.15(Fo)5.866
+G(r).15 E 1.16(instance, bash includes the)72 681.6 R F1(!)3.66 E F0(reserv)
+6.16 E 1.16(ed w)-.15 F 1.16(ord to ne)-.1 F -.05(ga)-.15 G 1.16
+(te the return status of a pipeline because it has been).05 F
+(de\214ned by POSIX.2.)72 693.6 Q
+(Neither sh nor ksh has implemented that feature.)5 E EP
+%%Page: 10 10
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF 2.5(-1)277.17 48 S 2.5(0-)288 48 S/F1 10/Times-Bold@0
+SF 2.5(4.4. F)72 84 R(eatur)-.25 E(es Unique to ksh)-.18 E F0 .177
+(Ksh includes a number of features not in the currently-released v)97 99.6 R
+.178(ersion of bash, v)-.15 F .178(ersion 1.14.)-.15 F(Unless)5.178 E .822
+(noted, none of these features is in the POSIX.2 standard.)72 111.6 R .821
+(Where appropriate the equi)5.821 F -.25(va)-.25 G .821(lent bash features).25
+F(are noted.)72 123.6 Q F1 2.5(4.4.1. The)72 147.6 R(ksh Language)2.5 E F0
+2.955(An)97 163.2 S .955 -.25(ew c)112.175 163.2 T .455(ompound command folds)
+.25 F F1(test)2.955 E F0 .456(into the ksh language, delimited by the reserv)
+2.955 F .456(ed w)-.15 F(ords)-.1 E F1([[)2.956 E F0(and)2.956 E F1(]])72 175.2
+Q F0 5.726(.T)C .726(he syntax is identical to)92.996 175.2 R F1(test)3.225 E
+F0 .725(with a fe)3.225 F 3.225(wc)-.25 G .725
+(hanges: for instance, instead of)262.855 175.2 R F1<ad61>3.225 E F0(and)3.225
+E F1<ad6f>3.225 E F0(,)A F1(&&)3.225 E F0(and)3.225 E/F2 10/Symbol SF<efef>
+3.225 E F0(are)3.225 E 3.32(used. The)72 187.2 R -.1(wo)3.32 G .82(rds between)
+.1 F F1([[)3.32 E F0(and)3.32 E F1(]])3.32 E F0 .82(are not processed for w)
+3.32 F .82(ord splitting or \214lename generation.)-.1 F .82(The ne)5.82 F(w)
+-.25 E .926
+(command does pattern matching as well as string comparison, a la the)72 199.2
+R F1(case)3.425 E F0 3.425(command. This)3.425 F(ne)3.425 E 3.425(wc)-.25 G
+(ontrol)480.11 199.2 Q .165(structure does ha)72 211.2 R .465 -.15(ve t)-.2 H
+.165(he adv).15 F .166(antage of reducing common ar)-.25 F .166
+(gument problems encountered using test \(e.g.)-.18 F F1(test)2.666 E
+("$string")72 223.2 Q F0 2.928(,w)C(here)125.748 223.2 Q F1($string)2.928 E F0
+-.15(ex)2.928 G .428(pands to).15 F F1<ad66>2.928 E F0 .428(\), b)B .428
+(ut at the cost of bloating the language.)-.2 F .427(The POSIX.2 test algo-)
+5.427 F 2.752(rithm that bash uses, along with some programmer care, alle)72
+235.2 R 2.752(viates those problems in a backw)-.25 F(ards-)-.1 E .854
+(compatible w)72 247.2 R .853(ay with no additions to the language.)-.1 F .853
+(The one capability of)5.853 F F1 .853([[ ]])3.353 F F0 .853(not a)3.353 F -.25
+(va)-.2 G .853(ilable in bash is its).25 F(ability to test whether an indi)72
+259.2 Q(vidual)-.25 E F1(set \255o)2.5 E F0(option is turned on or of)2.5 E(f.)
+-.25 E .339(Other parts of the ksh language are not common to bash.)97 274.8 R
+(The)5.34 E F1(\(\(...\)\))2.84 E F0(operator)5.34 E 2.84(,e)-.4 G(qui)419.33
+274.8 Q -.25(va)-.25 G .34(lent to).25 F F1 .34(let "...")2.84 F F0(,)A .197
+(is unique to ksh, as are the concept of co-processes and the)72 286.8 R F1
+(time)2.697 E F0 -.1(ke)2.696 G(yw)-.05 E .196
+(ord to time commands and pipelines.)-.1 F F1 2.5(4.4.2. Functions)72 310.8 R
+(and Aliases)2.5 E F0 1.022(The K)97 326.4 R 1.022(orn shell has)-.35 F/F3 10
+/Times-Italic@0 SF(autoloaded)3.522 E F0 3.522(functions. A)3.522 F 1.022
+(function mark)3.522 F 1.022(ed as)-.1 F F3(autoload)3.522 E F0 1.022
+(is not de\214ned until it is)5.188 F 1.042(\214rst e)72 338.4 R -.15(xe)-.15 G
+3.542(cuted. When).15 F 1.042(such a function is e)3.542 F -.15(xe)-.15 G 1.042
+(cuted, a search is made through the directories in).15 F F1(FP)3.541 E -.95
+(AT)-.74 G(H).95 E F0(\(a)3.541 E .27
+(colon-separated list of directories similar to)72 350.4 R F1 -.74(PA)2.77 G
+(TH)-.21 E F0 2.77(\)f)C .27(or a \214le with the same name as the function.)
+285.78 350.4 R .27(That \214le)5.27 F .548(is then read in as with the)72 362.4
+R F1(.)3.881 E F0 .547(command; presumably the function is de\214ned therein.)
+3.047 F .547(There is a pair of shell)5.547 F .886
+(functions included in the bash distrib)72 374.4 R .886(ution \()-.2 F F3 -.2
+(ex)C(amples/functions/autoload).2 E F0 5.886(\)t)C .886(hat pro)378.35 374.4 R
+.886(vide much of this func-)-.15 F
+(tionality without changing the shell itself.)72 386.4 Q .116
+(Ksh functions are scoped in such a w)97 402 R .116(ay that the en)-.1 F .116
+(vironment in which the)-.4 F 2.616(ya)-.15 G .116(re e)405.144 402 R -.15(xe)
+-.15 G .115(cuted is closer to a).15 F .827(shell script en)72 414 R 3.327
+(vironment. Bash)-.4 F .827(uses the POSIX.2 scoping rules, which mak)3.327 F
+3.327(et)-.1 G .827(he function e)392.517 414 R -.15(xe)-.15 G .828(cution en)
+.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
+(ft)174.86 426 S 1.199(he shell en)184.67 426 R 1.199
+(vironment with the replacement of the shell')-.4 F 3.699(sp)-.55 G 1.199
+(ositional paramters)426.421 426 R(with the function ar)72 438 Q 2.5
+(guments. K)-.18 F
+(orn shell functions do not share options or traps with the in)-.35 E -.2(vo)
+-.4 G(king shell.).2 E .451(Ksh has)97 453.6 R F3(tr)2.951 E(ac)-.15 E -.1(ke)
+-.2 G(d).1 E F0 .452(aliases, which alias a command name to its full pathname.)
+2.952 F .452(Bash has true command)5.452 F(hashing.)72 465.6 Q F1 2.5
+(4.4.3. Arrays)72 489.6 R F0 .246
+(Arrays are an aspect of ksh that has no real bash equi)97 505.2 R -.25(va)-.25
+G 2.746(lent. The).25 F 2.746(ya)-.15 G .246(re easy to create and manipulate:)
+371.42 505.2 R 1.637
+(an array is created automatically by using subscript assignment \()72 517.2 R
+F1(name)A F0([)A F3(inde)A(x)-.2 E F0(]=)A F1 -.1(va)C(lue).1 E F0 1.637
+(\), and an)B 4.137(yv)-.15 G(ariable)476.79 517.2 Q 1.967
+(may be referred to as an array)72 529.2 R 6.967(.K)-.65 G 1.967(sh arrays, ho)
+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
+H(se)4.667 E -.15(ve)-.25 G 1.967(ral anno).15 F 1.967(ying limitations: the)
+-.1 F 4.466(ym)-.15 G 1.966(ay be)480.654 529.2 R(inde)72 541.2 Q -.15(xe)-.15
+G 3.498(do).15 G .998(nly up to 512 or 1024 elements, depending on ho)111.858
+541.2 R 3.498(wt)-.25 G .999(he shell is compiled, and there is only the)
+330.188 541.2 R(clumsy)72 553.2 Q F1 .223(set -A)2.723 F F0 .223
+(to assign a list of v)2.723 F .223(alues sequentially)-.25 F 5.223(.D)-.65 G
+.223(espite these limits, arrays are useful, if underutilized)293.31 553.2 R
+(by shell programmers.)72 565.2 Q F1 2.5(4.4.4. Builtin)72 589.2 R(Commands)2.5
+E F0 .112(Some of the b)97 604.8 R .112(uiltin commands ha)-.2 F .412 -.15
+(ve b)-.2 H .112(een e).15 F .112(xtended or are ne)-.15 F 2.612(wi)-.25 G
+2.613(nk)351.402 604.8 S 2.613(sh. The)364.015 604.8 R F1(print)2.613 E F0 -.2
+(bu)2.613 G .113(iltin w).2 F .113(as included)-.1 F .242(to w)72 616.8 R .242
+(ork around the incompatibilities and limitations of)-.1 F F1(echo)2.741 E F0
+5.241(.T)C(he)328.234 616.8 Q F1(whence)2.741 E F0 .241(command tells what w)
+2.741 F .241(ould hap-)-.1 F .418(pen if each ar)72 628.8 R .418
+(gument were typed as a command name.)-.18 F(The)5.418 E F1(cd)2.919 E F0 -.2
+(bu)2.919 G .419(iltin has been e).2 F .419(xtended to tak)-.15 F 2.919(eu)-.1
+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
+640.8 Q 1.425(guments: if tw)-.18 F 3.925(oa)-.1 G -.18(rg)153.485 640.8 S
+1.424(uments are supplied, the second is substituted for the \214rst in the cu\
+rrent directory).18 F 2.294
+(name and the shell changes to the resultant directory name.)72 652.8 R 2.295
+(The ksh)7.294 F F1(trap)4.795 E F0 -.2(bu)4.795 G 2.295(iltin accepts).2 F F1
+(ERR)4.795 E F0(and)4.795 E F1(DEB)72 664.8 Q(UG)-.1 E F0 .15(as trap names.)
+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
+(cuted when a command f).15 F(ails;)-.1 E F1(DEB)2.65 E(UG)-.1 E F0 .15(is e)
+2.65 F -.15(xe)-.15 G .15(cuted after e).15 F -.15(ve)-.25 G(ry).15 E
+(simple command.)72 676.8 Q .05(The bash distrib)97 692.4 R .05
+(ution includes shell functions that implement)-.2 F F1(print)2.55 E F0(and)
+2.55 E F1(whence)2.55 E F0 .05(and the e)2.55 F .05(xtensions to)-.15 F F1(cd)
+72 704.4 Q F0(.)A EP
+%%Page: 11 11
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF 2.5(-1)277.17 48 S 2.5(1-)288 48 S/F1 10/Times-Bold@0
+SF 2.5(4.4.5. Expansion)72 84 R F0 .282(The ksh \214lename generation \()97
+99.6 R/F2 10/Times-Italic@0 SF(globbing)A F0 2.782(\)f)C .282(acilities ha)
+262.45 99.6 R .581 -.15(ve b)-.2 H .281(een e).15 F .281(xtended be)-.15 F .281
+(yond their bash and sh coun-)-.15 F 3.68(terparts. In)72 111.6 R 1.181
+(this area, ksh can be thought of as)3.681 F F2 -.4(eg)3.681 G -.37(re).4 G(p)
+.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
+1.181(sh globbing of)382.406 111.6 R 1.181(fers things lik)-.25 F(e)-.1 E 1.018
+(alternation, the ability to match zero or more instances of a pattern, and th\
+e ability to match e)72 123.6 R 1.018(xactly one)-.15 F(occurrence of an)72
+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
+2.5(4.4.6. Startup)72 159.6 R(Files)2.5 E F0 .977(Ksh and bash e)97 175.2 R
+-.15(xe)-.15 G .977(cute startup \214les dif).15 F(ferently)-.25 E 5.977(.K)
+-.65 G .977(sh e)297.879 175.2 R(xpands)-.15 E F1(ENV)3.478 E F0 .978
+(and sources the \214le it names for)3.478 F -2.15 -.25(ev e)72 187.2 T 1.85
+(ry shell.).25 F 1.85(Bash sources)6.85 F F1($ENV)4.35 E F0 1.85
+(only in non-interacti)4.35 F 2.15 -.15(ve s)-.25 H 1.85(hells; interacti).15 F
+2.15 -.15(ve s)-.25 H 1.85(hells source \214x).15 F 1.85(ed \214les, as)-.15 F
+-.15(ex)72 199.2 S 1.285(plained in the pre).15 F 1.285(vious section.)-.25 F
+1.285(The POSIX standard has speci\214ed the ksh beha)6.285 F(vior)-.2 E 3.785
+(,s)-.4 G 3.785(ob)441.545 199.2 S 1.285(ash acts the)455.33 199.2 R
+(same as ksh if started with the)72 211.2 Q F1(\255posix)2.5 E F0(or)2.5 E F1
+(\255o posix)2.5 E F0(options.)2.5 E F1 2.5(4.4.7. History)72 235.2 R F0
+(Finally)97 250.8 Q 3.372(,t)-.65 G .872(he ksh history implementation dif)
+133.342 250.8 R .871(fers slightly from bash.)-.25 F .871
+(Each instance of bash k)5.871 F .871(eeps the)-.1 F .633
+(history list in memory and of)72 262.8 R .633(fers options to the)-.25 F F1
+(history)3.133 E F0 -.2(bu)3.133 G .634
+(iltin to write the list to or read it from a named).2 F 3.216(\214le. Ksh)72
+274.8 R -.1(ke)3.216 G .716
+(eps the history in a \214le, which it accesses each time a command is sa).1 F
+-.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
+(etrie)449.535 274.8 Q -.15(ve)-.25 G 3.215(df).15 G(rom)487.89 274.8 Q .338
+(the history)72 286.8 R 5.338(.K)-.65 G .338
+(sh history \214les may be shared among dif)129.246 286.8 R .338
+(ferent concurrent instances of ksh, which could be a)-.25 F
+(bene\214t to the user)72 298.8 Q(.)-.55 E F1 2.5(5. F)72 322.8 R(eatur)-.25 E
+(es in Bash-2.0)-.18 E F0 .657(The ne)97 338.4 R .657
+(xt release of bash, 2.0, will be a major o)-.15 F -.15(ve)-.15 G 3.157
+(rhaul. It).15 F .656(will include man)3.157 F 3.156(yn)-.15 G 1.156 -.25(ew f)
+419.532 338.4 T .656(eatures, for both).25 F .705(programming and interacti)72
+350.4 R 1.005 -.15(ve u)-.25 H 3.205(se. Redundant).15 F -.15(ex)3.205 G .705
+(isting functions will be remo).15 F -.15(ve)-.15 G 3.206(d. There).15 F .706
+(are se)3.206 F -.15(ve)-.25 G .706(ral cases).15 F 1.34(where bash treats a v)
+72 362.4 R 1.34(ariable specially to enable functionality a)-.25 F -.25(va)-.2
+G 1.34(ilable another w).25 F 1.34(ay \()-.1 F F1($nolinks)A F0(vs.)3.84 E F1
+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
+(xample\); the special treatment of the v)-.15 E(ariable name will be remo)-.25
+E -.15(ve)-.15 G(d.).15 E F1 2.5(5.1. Arrays)72 398.4 R F0 .546(Bash-2.0 will \
+include arrays which are a superset of those in ksh, with the size limitations\
+ remo)97 414 R -.15(ve)-.15 G(d.).15 E(The)72 426 Q F1(declar)3.086 E(e)-.18 E
+F0(,)A F1 -.18(re)3.086 G(adonly).18 E F0 3.086(,a)C(nd)174.768 426 Q F1
+(export)3.086 E F0 -.2(bu)3.086 G .586
+(iltins will accept options to specify arrays, and the).2 F F1 -.18(re)3.085 G
+(ad).18 E F0 -.2(bu)3.085 G .585(iltin will).2 F(ha)72 438 Q .81 -.15(ve a)-.2
+H 3.01(no).15 G .51(ption to read a list of w)110.99 438 R .51
+(ords and assign them directly to an array)-.1 F 5.51(.T)-.65 G .51
+(here will also be a ne)386.23 438 R 3.01(wa)-.25 G(rray)487.9 438 Q F2 .262
+(compound assignment)72 450 R F0 .262(syntax a)2.762 F -.25(va)-.2 G .262
+(ilable for assignment statements and the).25 F F1(declar)2.761 E(e)-.18 E F0
+-.2(bu)2.761 G 2.761(iltin. This).2 F(ne)2.761 E 2.761(ws)-.25 G(yntax)481.78
+450 Q .441(has the form)72 462 R F2(name)2.941 E F0(=\()A F2(value1)A F0(...)
+2.941 E F2(valueN)2.941 E F0 .441(\), where each)B F2(value)2.942 E F0 .442
+(has the form [)4.608 F F2(subscript)A F0(]=)A F2(string)A F0 5.442(.O)C .442
+(nly the)449.776 462 R F2(string)2.942 E F0 1.395(is required.)72 474 R 1.395
+(If the optional brack)6.395 F 1.395(ets and)-.1 F F2(subscript)3.894 E F0
+1.394(are included, that inde)3.894 F 3.894(xi)-.15 G 3.894(sa)388.714 474 S
+1.394(ssigned to, otherwise the)400.938 474 R(inde)72 486 Q 3.656(xo)-.15 G
+3.656(ft)102.726 486 S 1.156(he element assigned is the last inde)112.492 486 R
+3.657(xa)-.15 G 1.157(ssigned to by the statement plus one.)272.917 486 R(Inde)
+6.157 E 1.157(xing starts at)-.15 F 2.73(zero. The)72 498 R .23
+(same syntax is accepted by)2.73 F F1(declar)2.73 E(e)-.18 E F0 5.229(.I)C(ndi)
+269.159 498 Q .229(vidual array elements may be assigned to using the ksh)-.25
+F F2(name)72 510 Q F0([)A F2(subscript)A F0(]=)A F2(value)A F0(.)A F1 2.5
+(5.2. Dynamic)72 534 R(Loading)2.5 E F0 .348(On systems that support the)97
+549.6 R F2(dlopen)2.848 E F0 .349(\(3\) library function, bash-2.0 will allo)B
+2.849(wn)-.25 G .849 -.25(ew b)407.504 549.6 T .349(uiltins to be loaded).05 F
+.049(into a running shell from a shared object \214le.)72 561.6 R .049(The ne)
+5.049 F 2.549(wb)-.25 G .049(uiltins will ha)298.999 561.6 R .348 -.15(ve a)-.2
+H .048(ccess to the rest of the shell f).15 F(acil-)-.1 E .649(ities, b)72
+573.6 R .649(ut programmers will be subject to a fe)-.2 F 3.149(ws)-.25 G .649
+(tructural rules.)269.591 573.6 R .65(This will be pro)5.65 F .65
+(vided via a ne)-.15 F 3.15(wo)-.25 G .65(ption to)472.51 573.6 R F1(enable)72
+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
+.889(xisting b)-.15 F .889(uiltins will change in bash-2.0.)-.2 F .888(As pre)
+5.888 F .888(viously noted,)-.25 F F1(declar)3.388 E(e)-.18 E F0(,)A F1(export)
+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)
+100.153 637.2 Q F1 -.18(re)2.873 G(ad).18 E F0 .373(will accept ne)2.873 F
+2.873(wo)-.25 G .374(ptions to specify arrays.)206.288 637.2 R(The)5.374 E F1
+(jobs)2.874 E F0 -.2(bu)2.874 G .374(iltin will be able to list only stopped).2
+F .323(or running jobs.)72 649.2 R(The)5.322 E F1(enable)2.822 E F0 .322
+(command will tak)2.822 F 2.822(ean)-.1 G -.25(ew)282.84 649.2 S F1<ad73>3.072
+E F0 .322(option to restrict its actions to the POSIX.2)2.822 F F2(spe-)2.822 E
+(cial)72 661.2 Q F0 -.2(bu)3.14 G(iltins.).2 E F1(Kill)5.64 E F0 .64
+(will be able to list signal numbers corresponding to indi)3.14 F .64
+(vidual signal names.)-.25 F .64(The read-)5.64 F .703(line library interf)72
+673.2 R(ace,)-.1 E F1(bind)3.203 E F0 3.203(,w)C .703(ill ha)193.032 673.2 R
+1.003 -.15(ve a)-.2 H 3.203(no).15 G .703(ption to remo)243.951 673.2 R 1.003
+-.15(ve t)-.15 H .703(he binding for an).15 F 3.203(yk)-.15 G 1.002 -.15(ey s)
+398.032 673.2 T .702(equence \(which is not).15 F
+(the same as binding it to self-insert\).)72 685.2 Q .494(There will be tw)97
+700.8 R 2.994(on)-.1 G .994 -.25(ew b)177.196 700.8 T .495
+(uiltin commands in bash-2.0.).05 F(The)5.495 E F1(diso)2.995 E(wn)-.1 E F0
+.495(command will remo)2.995 F .795 -.15(ve j)-.15 H .495(obs from).15 F(bash')
+72 712.8 Q 3.445(si)-.55 G .945(nternal jobs table when job control is acti)
+103.225 712.8 R -.15(ve)-.25 G 5.945(.A).15 G(diso)303.25 712.8 Q .944
+(wned job will not be listed by the jobs com-)-.25 F .666(mand, nor will its e)
+72 724.8 R .666(xit status be reported.)-.15 F(Diso)5.667 E .667
+(wned jobs will not be sent a)-.25 F F1(SIGHUP)3.167 E F0 .667
+(when an interacti)3.167 F -.15(ve)-.25 G EP
+%%Page: 12 12
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/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
+3.187(xits. Most)-.15 F .687(of the shell')3.187 F 3.187(so)-.55 G .687
+(ptional or)205.423 84 R/F1 10/Times-Italic@0 SF(to)3.187 E -.1(gg)-.1 G(led).1
+E F0 .687(functionality will be folded into the ne)3.187 F(w)-.25 E/F2 10
+/Times-Bold@0 SF(shopt)3.187 E F0 -.2(bu)3.187 G(iltin.).2 E(Man)72 96 Q 3.714
+(yo)-.15 G 3.714(ft)103.894 96 S 1.214(he v)113.718 96 R 1.214
+(ariables which alter the shell')-.25 F 3.714(sb)-.55 G(eha)266.282 96 Q 1.214
+(vior when set \(re)-.2 F -.05(ga)-.15 G 1.214(rdless of their v).05 F 1.215
+(alue\) will be made)-.25 F 6(options settable with)72 108 R F2(shopt)8.5 E F0
+11(.E)C 6(xamples of such v)218.23 108 R 6(ariables include)-.25 F F2(allo)8.5
+E(w_null_glob_expansion)-.1 E F0(,)A F2(glob_dot_\214lenames)72 120 Q F0 2.5
+(,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
+R(ariables and V)-.92 E(ariable Expansion)-.92 E F0 .047
+(Bash-2.0 will implement se)97 159.6 R -.15(ve)-.25 G .048(ral ne).15 F 2.548
+(wv)-.25 G .048(ariable e)252.988 159.6 R 2.548(xpansions. These)-.15 F .048
+(will answer se)2.548 F -.15(ve)-.25 G .048(ral of the most per).15 F(-)-.2 E
+.213(sistant requests for ne)72 171.6 R 2.713(wf)-.25 G 2.713(eatures. It)
+172.582 171.6 R .213(will be possible to `)2.713 F .212(`indirectly reference')
+-.74 F 2.712('av)-.74 G .212(ariable with an e)398.534 171.6 R(xpansion,)-.15 E
+(lik)72 183.6 Q 3.01(eu)-.1 G(sing)94.91 183.6 Q/F3 10/Courier@0 SF .51
+(eval \\$${name})3.01 F F0 .51(to reference a v)3.01 F .51(ariable named by)
+-.25 F F3(${name})3.01 E F0 5.51(.E)C .51(xpansions will be a)394.32 183.6 R
+-.25(va)-.2 G(ilable).25 E .462(to retrie)72 195.6 R .762 -.15(ve s)-.25 H .462
+(ubstrings of v).15 F .461(ariables in an)-.25 F F1(awk)2.961 E F0(-lik)A 2.961
+(em)-.1 G .461(anner: starting at a speci\214c inde)277.692 195.6 R .461
+(x, retrie)-.15 F .461(ving some num-)-.25 F .941
+(ber of characters or the rest of the string.)72 207.6 R .941
+(It will be possible to retrie)5.941 F 1.241 -.15(ve s)-.25 H .941
+(equences of array elements lik).15 F(e)-.1 E .354(this, too.)72 219.6 R .354
+(It w)5.354 F .354(ould be nice to ha)-.1 F .654 -.15(ve a w)-.2 H .354
+(ay to replace portions of a v).05 F .353
+(ariable matching a pattern the same w)-.25 F(ay)-.1 E(leading or trailing sub\
+strings are presently stripped; that capability may be a)72 231.6 Q -.25(va)-.2
+G(ilable.).25 E .453(Another ne)97 247.2 R 2.953(we)-.25 G .453
+(xpansion will pro)156.376 247.2 R .453(vide a w)-.15 F .454
+(ay to create strings containing arbitrary characters, which is)-.1 F(incon)72
+259.2 Q -.15(ve)-.4 G 1.636(nient in the current v).15 F 4.136(ersion. W)-.15 F
+1.635(ords of the form $')-.8 F F1(string)A F0 4.135('w)C 1.635(ill e)355.145
+259.2 R 1.635(xpand to)-.15 F F1(string)4.135 E F0 1.635(with backslash-)4.135
+F 1.231(escaped characters in)72 271.2 R F1(string)3.731 E F0 1.231
+(replaced as speci\214ed by the ANSI C standard.)3.731 F 1.232
+(As with other single-quoted)6.232 F
+(shell strings, the only character that may not appear in)72 283.2 Q F1(string)
+2.5 E F0(is a single quote.)2.5 E 1.436(The shell v)97 298.8 R 1.436
+(ariables will change also.)-.25 F 3.936(An)6.436 G 1.936 -.25(ew va)272.052
+298.8 T(riable).25 E F2(HISTIGNORE)3.936 E F0 1.435(will supersede)3.936 F F2
+(HISTCON-)3.935 E(TR)72 310.8 Q(OL)-.3 E F0(.)A F2(HISTIGNORE)5.327 E F0 .327
+(is the history analogy of)2.827 F F2(FIGNORE)2.828 E F0 2.828(:ac)C .328
+(olon-separated list of patterns specifying)339.938 310.8 R 1.082
+(commands to omit from the history list.)72 322.8 R 1.081
+(The special pattern '&' will match the pre)6.081 F 1.081
+(vious history line, to)-.25 F(pro)72 334.8 Q 1.568(vide the)-.15 F F2
+(HISTCONTR)4.068 E(OL)-.3 E F1(ignor)4.068 E(edups)-.37 E F0(beha)5.734 E(vior)
+-.2 E 6.568(.M)-.55 G(an)303.546 334.8 Q 4.069(yv)-.15 G 1.569
+(ariables which modify the shell')326.655 334.8 R 4.069(sb)-.55 G(eha)474.21
+334.8 Q(vior)-.2 E .395(will lose their special meaning.)72 346.8 R -1.11(Va)
+5.395 G .395(riables such as)1.11 F F2(notify)2.895 E F0(and)2.895 E F2(noclob)
+2.895 E(ber)-.1 E F0 .395(which pro)2.895 F .395(vide functionality a)-.15 F
+-.25(va)-.2 G(il-).25 E .931
+(able via other mechanisms will no longer be treated specially)72 358.8 R 5.931
+(.O)-.65 G .931(ther v)340.06 358.8 R .932(ariables will be folded into)-.25 F
+F2(shopt)3.432 E F0(.)A(The)72 370.8 Q F2(history_contr)5.519 E(ol)-.18 E F0
+(and)5.519 E F2(hostname_completion_\214le)5.519 E F0 -.25(va)5.519 G 3.019
+(riables, superseded by).25 F F2(HISTCONTR)5.518 E(OL)-.3 E F0(and)5.518 E F2
+(HOSTFILE)72 382.8 Q F0(respecti)2.5 E -.15(ve)-.25 G(ly).15 E 2.5(,w)-.65 G
+(ill be remo)185.12 382.8 Q -.15(ve)-.15 G(d.).15 E F2 2.5(5.5. Readline)72
+406.8 R F0(Naturally)97 422.4 Q 2.94(,t)-.65 G .44(here will be impro)142.34
+422.4 R -.15(ve)-.15 G .441(ments to readline as well.).15 F .441
+(All of the POSIX.2)5.441 F F1(vi)2.941 E F0 .441(-mode editing com-)B .33
+(mands will be implemented; missing commands lik)72 434.4 R 2.829(e`)-.1 G .329
+(m' to sa)290.599 434.4 R .629 -.15(ve t)-.2 H .329
+(he current cursor position \().15 F F1(mark)A F0 2.829(\)a)C .329(nd the)
+478.951 434.4 R .36(`@' command for macro e)72 446.4 R .36(xpansion will be a)
+-.15 F -.25(va)-.2 G 2.861(ilable. The).25 F .361
+(ability to set the mark and e)2.861 F .361(xchange the current)-.15 F .764
+(cursor position \()72 458.4 R F1(point)A F0 3.264(\)a)C .764
+(nd mark will be added to the readline emacs mode as well.)170.672 458.4 R .763
+(Since there are com-)5.764 F .196
+(mands to set the mark, commands to manipulate the re)72 470.4 R .197
+(gion \(the characters between the point and the mark\))-.15 F .111(will be a)
+72 482.4 R -.25(va)-.2 G 2.611(ilable. Commands).25 F(ha)2.611 E .411 -.15
+(ve b)-.2 H .11
+(een added to the readline emacs mode for more complete ksh compati-).15 F
+(bility)72 494.4 Q 2.5(,s)-.65 G(uch as the C-])101.36 494.4 Q F1(c)A F0
+(character search command.)2.5 E F2 2.5(5.6. Con\214guration)72 518.4 R F0 .318
+(Bash w)97 534 R .318
+(as the \214rst GNU program to completely autocon\214gure.)-.1 F .319
+(Its autocon\214guration mechanism pre-)5.319 F(dates)72 546 Q F1(autoconf)4.07
+E F0 4.07(,t)C 1.569
+(he current GNU con\214guration program, and needs updating.)140.97 546 R 1.569
+(Bash-2.0 may include an)6.569 F .603
+(autoconf-based con\214guration script, if necessary ne)72 558 R 3.103(wf)-.25
+G .603(unctionality can be added to autoconf, or its limita-)294.476 558 R
+(tions bypassed.)72 570 Q F2 2.5(5.7. Miscellaneous)72 594 R F0 1.632
+(The POSIX mode will be impro)97 609.6 R -.15(ve)-.15 G 4.131(di).15 G 4.131
+(nb)254.26 609.6 S 1.631(ash-2.0; it will pro)268.391 609.6 R 1.631
+(vide a more complete superset of the)-.15 F(POSIX standard.)72 621.6 Q -.15
+(Fo)5 G 2.5(rt).15 G(he \214rst time, bash will recognize the e)163.79 621.6 Q
+(xistance of the POSIX.2)-.15 E F1(special)2.5 E F0 -.2(bu)2.5 G(iltins.).2 E
+2.627(An)97 637.2 S .627 -.25(ew t)111.847 637.2 T .127(rap v).25 F(alue,)-.25
+E F2(DEB)2.627 E(UG)-.1 E F0 2.627(,w)C .128(ill be present, as in ksh.)218.405
+637.2 R .128(Commands speci\214ed with a)5.128 F F2(DEB)2.628 E(UG)-.1 E F0
+.128(trap will)2.628 F 1.908(be e)72 649.2 R -.15(xe)-.15 G 1.908
+(cuted after e).15 F -.15(ve)-.25 G 1.908(ry simple command.).15 F 1.908
+(Since this mak)6.908 F 1.908(es shell script deb)-.1 F 1.908
+(uggers possible, I hope to)-.2 F(include a bash deb)72 661.2 Q
+(ugger in the bash-2.0 release.)-.2 E F2 2.5(6. A)72 685.2 R -.1(va)-1 G
+(ilability).1 E F0 5.997(The current v)97 700.8 R 5.997(ersion of bash is a)
+-.15 F -.25(va)-.2 G 5.998(ilable for anon).25 F 5.998
+(ymous FTP from prep.ai.mit.edu as)-.15 F F1(/pub/gnu/bash-1.14.2.tar)72 712.8
+Q(.gz)-1.11 E F0(.)1.666 E EP
+%%Page: 13 13
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF 2.5(-1)277.17 48 S 2.5(3-)288 48 S/F1 10/Times-Bold@0
+SF 2.5(7. Conclusion)72 84 R F0 .755(This paper has presented an o)97 99.6 R
+-.15(ve)-.15 G(rvie).15 E 3.255(wo)-.25 G 3.255(fb)259.27 99.6 S .755
+(ash, compared its features with those of other shells, and)270.855 99.6 R
+(hinted at features in the ne)72 111.6 Q(xt release, bash-2.0.)-.15 E .483
+(Bash is a solid replacement for sh.)97 127.2 R .483(It is suf)5.483 F .483
+(\214ciently portable to run on nearly e)-.25 F -.15(ve)-.25 G .484(ry v).15 F
+.484(ersion of)-.15 F/F2 9/Times-Roman@0 SF(UNIX)2.984 E F0 .514
+(from 4.3 BSD to SVR4.2, and se)72 139.2 R -.15(ve)-.25 G(ral).15 E F2(UNIX)
+3.013 E F0 -.1(wo)3.013 G(rkalik).1 E .513(es, and rob)-.1 F .513
+(ust enough to replace sh on most of those)-.2 F .771(systems, It is v)72 151.2
+R .771(ery close to POSIX.2-conformant in POSIX mode, and is getting f)-.15 F
+(aster)-.1 E 5.771(.I)-.55 G 3.272(ti)436.684 151.2 S 3.272(sn)445.516 151.2 S
+.772(ot, unfortu-)457.678 151.2 R(nately)72 163.2 Q 2.663(,g)-.65 G .163
+(etting smaller)105.953 163.2 R 2.663(,b)-.4 G .163(ut there are man)170.399
+163.2 R 2.663(yo)-.15 G .163(ptional features.)248.101 163.2 R .163(It is v)
+5.163 F .162(ery easy to b)-.15 F .162(uild a small subset to use as)-.2 F 2.5
+(ad)72 175.2 S(irect replacement for /bin/sh.)83.94 175.2 Q .909
+(Bash has thousands of users w)97 190.8 R .909(orldwide, all of whom ha)-.1 F
+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
+S(etter)420.53 190.8 Q 5.91(.A)-.55 G .91(nother testa-)453.38 190.8 R
+(ment to the bene\214ts of free softw)72 202.8 Q(are.)-.1 E F1 2.5(8. Refer)72
+226.8 R(ences)-.18 E F0 .432([1] S. R. Bourne, `)72 242.4 R .432(`UNIX T)-.74 F
+.432(ime-Sharing System:)-.35 F .431(The UNIX Shell')5.431 F(',)-.74 E/F3 10
+/Times-Italic@0 SF .431(Bell System T)2.931 F(ec)-.92 E .431(hnical J)-.15 F
+(ournal)-.25 E F0 2.931(,5)C(7\(6\),)484.84 242.4 Q
+(July-August, 1978, pp. 1971-1990.)72 254.4 Q .736([2] Morris Bolsk)72 270 R
+3.237(ya)-.15 G .737(nd Da)153.22 270 R .737(vid K)-.2 F(orn,)-.35 E F3 .737
+(The K)3.237 F .737(ornShell Command and Pr)-.4 F -.1(og)-.45 G -.15(ra).1 G
+.737(mming Langua).15 F -.1(ge)-.1 G F0 3.237(,P).1 G .737(rentice Hall,)
+453.833 270 R(1989.)72 282 Q .142([3] Bill Jo)72 297.6 R 1.442 -.65(y, A)-.1 H
+2.642(nI).65 G .141(ntroduction to the C Shell,)140.428 297.6 R F3 .141
+(UNIX User')2.641 F 2.641(sS)-.4 G .141(upplementary Documents)309.346 297.6 R
+F0 2.641(,U)C(ni)424.328 297.6 Q -.15(ve)-.25 G .141(rsity of Califor).15 F(-)
+-.2 E(nia at Berk)72 309.6 Q(ele)-.1 E 1.3 -.65(y, 1)-.15 H(986.).65 E .283
+([4] IEEE,)72 325.2 R F3 .283(IEEE Standar)2.783 F 2.783(df)-.37 G .283
+(or Information T)179.692 325.2 R(ec)-.92 E(hnolo)-.15 E .283(gy -- P)-.1 F
+.283(ortable Oper)-.8 F .283(ating System Interface \(POSIX\) P)-.15 F(art)-.8
+E(2: Shell and Utilities)72 337.2 Q F0 2.5(,1)C(992.)165.06 337.2 Q F1 2.5
+(9. A)72 361.2 R(uthor Inf)-.5 E(ormation)-.25 E F0 .937(Chet Rame)97 376.8 R
+3.437(yi)-.15 G 3.437(sas)153.724 376.8 S(oftw)172.818 376.8 Q .936
+(are engineer w)-.1 F .936(orking at Case W)-.1 F .936(estern Reserv)-.8 F
+3.436(eU)-.15 G(ni)393.43 376.8 Q -.15(ve)-.25 G(rsity).15 E 5.936(.H)-.65 G
+3.436(eh)443.036 376.8 S .936(as a B.S. in)455.912 376.8 R .072
+(Computer Engineering and an M.S. in Computer Science, both from CWR)72 388.8 R
+2.573(U. He)-.4 F .073(has been w)2.573 F .073(orking on bash)-.1 F
+(for six years, and the primary maintainer for one.)72 400.8 Q EP
+%%Trailer
+end
+%%EOF