diff options
author | Stephen Hemminger <stephen.hemminger@vyatta.com> | 2010-04-09 16:13:32 -0700 |
---|---|---|
committer | Stephen Hemminger <stephen.hemminger@vyatta.com> | 2010-04-09 16:15:01 -0700 |
commit | 2d698b6e42d8dca191ac795ef5dba3bf62496eec (patch) | |
tree | ac5e0b67043c50f49160e9fe407435706cf30444 /doc/rose94.ps | |
parent | f1250933e4a2ac09a3d0b25b3877068e12f44da5 (diff) | |
download | vyatta-bash-2d698b6e42d8dca191ac795ef5dba3bf62496eec.tar.gz vyatta-bash-2d698b6e42d8dca191ac795ef5dba3bf62496eec.zip |
Integrate bash 3.2 version
This is merge of current Debian stable (Lenny) version of Bash
with Vyatta changes.
Diffstat (limited to 'doc/rose94.ps')
-rw-r--r-- | doc/rose94.ps | 1581 |
1 files changed, 0 insertions, 1581 deletions
diff --git a/doc/rose94.ps b/doc/rose94.ps deleted file mode 100644 index 1fff283..0000000 --- a/doc/rose94.ps +++ /dev/null @@ -1,1581 +0,0 @@ -%!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 |