%!PS-Adobe-1.0 %%Creator: devps (Pipeline Associates, Inc.) %%CreationDate: Fri Sep 13 13:04:25 1996 %%Pages: (atend) %%DocumentFonts: (atend) /devps 180 dict def devps begin /res 10.000000 def /y_offset 843 def /X{exch}bind def /mm {transform round X round X itransform} bind def /r{rmoveto}bind def /m{moveto}bind def /l{lineto}bind def /rl{rlineto}bind def /st{stroke}bind def /gs{gsave}bind def /gr{grestore}bind def /cp{currentpoint}bind def /np{newpath}bind def /ct{curveto}bind def systemdict /setpacking known { /savepacking currentpacking def true setpacking } if /m0{0 0 moveto}bind def /xc{//res div}bind def /yc{//res neg div //y_offset add}bind def /lc{yc X xc X l st}bind def /mc{yc X xc X m}bind def /el{gs /a X def a div 1 X scale cp np a xc 2 div 0 360 arc st gr}bind def /ar{cp 7 2 roll np xc 5 1 roll atan 3 1 roll atan X arc st}bind def /sp{yc X xc X 6 2 roll yc X xc X 6 2 roll yc X xc X 6 2 roll ct}bind def /V{//res neg div //y_offset add currentpoint pop X m}bind def /H{//res div 0 transform X round X itransform pop currentpoint X pop moveto}bind def /h{//res div 0 r}bind def /v{//res neg div 0 X r}bind def /S{X H show}bind def /A{H //res div 1 index stringwidth pop sub 1 index length div 0 3 2 roll ashow}bind def /psize 10 def /height 0 def /cheight { height 0 ne { height } { psize } ifelse } bind def /slant 0 def /FF{findfont X dup 30 div 0 mm pop setlinewidth /psize X def [psize 0 cheight slant sin slant cos div mul cheight 0 0] makefont setfont}bind def /shade{gs /dy X def /dx X def np m 0 /dy rl /dx 0 rl 0 /dy neg rl /dx neg 0 rl closepath .9 setgray fill gr}bind def 1 setlinecap /resolution res 72 mul def /startFig { /SavedState save def userdict maxlength dict begin currentpoint transform DocumentInitState setmiterlimit setgray setdash setlinejoin setlinecap setlinewidth setmatrix itransform moveto /ury exch def /urx exch def /lly exch def /llx exch def /y exch 72 mul resolution div def /x exch 72 mul resolution div def currentpoint /cy exch def /cx exch def /sx x urx llx sub div def /sy y ury lly sub div def sx sy scale cx sx div llx sub cy sy div ury sub translate /DefFigCTM matrix currentmatrix def /initmatrix { DefFigCTM setmatrix } def /defaultmatrix { DefFigCTM exch copy } def /initgraphics { DocumentInitState setmiterlimit setgray setdash setlinejoin setlinecap setlinewidth setmatrix DefFigCTM setmatrix } def /showpage { initgraphics } def }bind def /clipFig { currentpoint 6 2 roll newpath 4 copy 4 2 roll moveto 6 -1 roll exch lineto exch lineto exch lineto closepath clip newpath moveto }bind def /doclip { llx lly urx ury clipFig } def /endFig { end SavedState restore }bind def /globalstart { fontnum psize slant height resolution currentpoint pagesave restore gsave }bind def /globalend { grestore moveto /resolution exch def /height exch def /slant exch def /psize exch def /fontnum exch def F /pagesave save def }bind def /fontnum 1 def systemdict /setpacking known { savepacking setpacking} if end /BP{ save mark devps begin m0 /DocumentInitState [ matrix currentmatrix currentlinewidth currentlinecap currentlinejoin currentdash currentgray currentmiterlimit ] cvx def }bind def /EP{ end cleartomark restore showpage}def /Encoding-1 256 array def 0 1 255 {Encoding-1 exch /.notdef put} for Encoding-1 8#301 StandardEncoding 8#101 26 getinterval putinterval %A-B Encoding-1 8#341 StandardEncoding 8#141 26 getinterval putinterval %a-b Encoding-1 8#241 StandardEncoding 8#301 16 getinterval putinterval %accents Encoding-1 8#373 StandardEncoding 8#365 1 getinterval putinterval %dotlessi Encoding-1 dup 8#41 /copyright put dup 8#42 /registered put dup 8#43 /trademark put dup 8#44 /logicalnot put dup 8#45 /Eth put dup 8#46 /eth put dup 8#47 /Thorn put dup 8#50 /thorn put dup 8#51 /brokenbar put dup 8#52 /degree put dup 8#53 /divide put dup 8#54 /multiply put dup 8#55 /minus put dup 8#56 /onehalf put dup 8#57 /onequarter put dup 8#60 /threequarters put dup 8#101 /Aacute put dup 8#102 /Acircumflex put dup 8#103 /Adieresis put dup 8#104 /Agrave put dup 8#105 /Aring put dup 8#106 /Atilde put dup 8#107 /Ccedilla put dup 8#110 /Eacute put dup 8#111 /Ecircumflex put dup 8#112 /Edieresis put dup 8#113 /Egrave put dup 8#114 /Iacute put dup 8#115 /Icircumflex put dup 8#116 /Idieresis put dup 8#117 /Igrave put dup 8#120 /Ntilde put dup 8#121 /Oacute put dup 8#122 /Ocircumflex put dup 8#123 /Odieresis put dup 8#124 /Ograve put dup 8#125 /Otilde put dup 8#126 /Scaron put dup 8#127 /Uacute put dup 8#130 /Ucircumflex put dup 8#131 /Udieresis put dup 8#132 /Ugrave put dup 8#133 /Ydieresis put dup 8#134 /Zcaron put dup 8#135 /aacute put dup 8#136 /acircumflex put dup 8#137 /adieresis put dup 8#140 /agrave put dup 8#141 /aring put dup 8#142 /atilde put dup 8#143 /ccedilla put dup 8#144 /eacute put dup 8#145 /ecircumflex put dup 8#146 /edieresis put dup 8#147 /egrave put dup 8#150 /iacute put dup 8#151 /icircumflex put dup 8#152 /idieresis put dup 8#153 /igrave put dup 8#154 /ntilde put dup 8#155 /oacute put dup 8#156 /ocircumflex put dup 8#157 /odieresis put dup 8#160 /ograve put dup 8#161 /otilde put dup 8#162 /scaron put dup 8#163 /uacute put dup 8#164 /ucircumflex put dup 8#165 /udieresis put dup 8#166 /ugrave put dup 8#167 /ydieresis put dup 8#170 /zcaron put pop /Enc-dict 30 dict def Enc-dict /tmpstr1 50 string put Enc-dict /tmpstr2 50 string put Enc-dict /tmpstr3 50 string dup (Encoding-) exch cvs pop put /AEnc-def { % arguments: the original font's name, encoding nr Enc-dict begin tmpstr2 cvs /Enc-no exch def % Remember the number in a string dup /OrigName exch def % remember the name findfont dup maxlength dict /newdict exch def % get dictionary for new font { exch dup /FID ne { exch newdict 3 1 roll put } { pop pop } % Ignore FID ifelse } forall newdict begin /Encoding tmpstr3 9 Enc-no putinterval tmpstr3 0 9 Enc-no length add getinterval cvn load def % Replace encoding currentdict /UniqueID known { /UniqueID UniqueID Enc-no cvi 49999 mul add def } if % Derive New UniqueID end % newdict /FNlength OrigName tmpstr1 cvs length def % convert name, remember length FNlength 1 add Enc-no length add string dup 0 OrigName tmpstr1 cvs putinterval dup FNlength (-) putinterval dup FNlength 1 add Enc-no putinterval dup 0 tmpstr1 0 FNlength getinterval putinterval % Add old name cvn dup newdict /FontName 3 2 roll put newdict definefont end % Enc-dict } def /Times-Roman 1 AEnc-def pop /R-1{/Times-Roman-1 FF}def /Times-Bold 1 AEnc-def pop /B-1{/Times-Bold-1 FF}def /R{/Times-Roman FF}def /B{/Times-Bold FF}def /I{/Times-Italic FF}def /Y{/Symbol FF}def %%EndProlog %%Page: 1 1 BP /slant 0 def /height 0 def 480 V 10 R 720(SH)S 857(\()S 899(1)S 957(\))S 2696(Eighth)S (Edition)296 2989 A 4990(SH)S 5127(\()S 5169(1)S 5227(\))S 960 V 9 R 720(N)S 722(NA)S 790(AM)S 858(ME)S 940(E)S 1080 V 10 R 1080(sh,)S 1229(.,)S 1314(break,)S 1598(case,)S 1832(cd,)S 1987(continue,)S 2393(eval,)S 2621(exec,)S 2866(exit,)S (export,)282 3077 A 3394(for,)S 3572(if,)S 3695(read,)S (readonly,)377 3930 A 4343(set,)S 4516(shift,)S 4756(trap,)S 4974(umask,)S 1200 V 1080(wait,)S 1304(while)S 10 R-1 1553(-)S 10 R 1635(shell)S 1368 V 9 R 720(S)S 722(SY)S 774(YN)S 842(NO)S 910(OP)S 978(PS)S 1030(SI)S 1082(IS)S 1115(S)S 1488 V 10 B 1080(sh)S 10 R 1213([)S 10 B-1 1247(-)S 10 B (eiknqstvxu)470 1304 A 10 R 1774(])S 1846([)S 10 B-1 1880(-)S 10 B 1937(c)S 10 I 2020(str)S 10 R 2126(])S 10 B 2198([)S 10 I 2232(\256le)S 10 R 2355(])S 1656 V 9 R 720(O)S 722(OP)S 790(PT)S 842(TI)S 900(IO)S 933(ON)S 1001(NS)S 1069(S)S 1776 V 10 B-1 1080(-)S 10 B 1137(c)S 10 R 1440(Execute)S 1790(the)S 1938(commands)S 2398(in)S 10 I 2501(str)S 1944 V 10 B-1 1080(-)S 10 B 1137(e)S 10 R 1440(Quit)S 1644(on)S 1769(error)S 2112 V 10 B-1 1080(-)S 10 B 1137(i)S 10 R 1440(Interactive)S 1897(mode;)S (ignore)257 2173 A 2455(QUIT,)S 2747(TERMINATE,)S 3381(INTERRUPT)S 2280 V 10 B-1 1080(-)S 10 B 1137(k)S 10 R (Look)212 1440 A 1677(for)S 1820(name=value)S 2338(everywhere)S 2834(on)S 2959(command)S 3380(line)S 2448 V 10 B-1 1080(-)S 10 B 1137(n)S 10 R 1440(Do)S 1588(not)S 1741(execute)S 2074(commands)S 2616 V 10 B-1 1080(-)S 10 B 1137(q)S 10 R 1440(Change)S 1772(q\257ag)S 1998(from)S 2219(sig_ign)S 2539(to)S (sig_del)290 2642 A 2784 V 10 B-1 1080(-)S 10 B 1137(s)S 10 R 1440(Read)S 1672(commands)S 2132(from)S 2353(standard)S (input)206 2719 A 2952 V 10 B-1 1080(-)S 10 B 1137(t)S 10 R 1440(Exit)S 1633(after)S 1844(reading)S 2171(and)S 2341(executing)S 2757(one)S 2927(command)S 3120 V 10 B-1 1080(-)S 10 B 1137(v)S 10 R 1440(Echo)S (input)206 1672 A 1903(lines)S 2118(as)S 2227(they)S 2425(are)S 2574(read)S 3288 V 10 B-1 1080(-)S 10 B 1137(x)S 10 R (Trace)231 1440 A 3456 V 10 B-1 1080(-)S 10 B 1137(u)S 10 R 1440(Unset)S 1700(variables)S 3624 V 9 R 720(E)S 722(EX)S 780(XA)S 848(AM)S 916(MP)S 998(PL)S 1050(LE)S 1108(ES)S 1166(S)S 3744 V 10 B 1080(sh)S 1200(script)S 10 R 2080(#)S 2155(Run)S 2347(a)S 2417(shell)S 2632(script)S 3912 V 9 R 720(D)S 722(DE)S 790(ES)S 848(SC)S 900(CR)S 962(RI)S 1024(IP)S 1057(PT)S 1109(TI)S 1167(IO)S 1200(ON)S 1268(N)S 4032 V 10 I 1080(Sh)S 10 R 1221(is)S 1329(the)S 1493(shell,)S 1749(which)S 2036(forms)S 2312(the)S 2476(user's)S 2758(main)S (interface)354 3000 A 3395(with)S 3615(the)S 3779(system.)S 4149(On)S 4313(startup,)S 4653(the)S 4817(shell)S 5048(reads)S 4152 V 1080(/etc/pro\256le)S 1553(and)S 1734($HOME/.pro\256le,)S 2458(if)S 2556(they)S 2765(exist,)S 3016(and)S 3197(executes)S 3580(any)S 3761(commands)S 4232(they)S 4441(contain.)S 4823(The)S 5016(Minix)S 4272 V 1080(shell)S 1296(has)S 1456(most)S 1678(of)S 1789(the)S 1939(features)S 2286(of)S 2397(the)S 2547(V7)S 2697(\(Bourne\))S 3088(shell,)S 3330(including)S 3736(redirection)S 4200(of)S (input)206 4311 A 4544(and)S 4716(output,)S 5024(pipes,)S 4392 V 1080(magic)S 1356(characters,)S (background)474 1821 A 2325(processes,)S 2766(and)S 2941(shell)S 3161(scripts.)S 3504(A)S 3607(brief)S 3828(summary)S 4232(follows,)S 4589(but)S 4747(whole)S (books)239 5022 A 4512 V 1080(have)S 1295(been)S (written)286 1510 A 1821(on)S 1946(shell)S 2161(programming)S 2733(alone.)S 4680 V 1080(Some)S 1334(of)S 1443(the)S 1591(more)S 1823(common)S 2199(notations)S 2592(are:)S 4848 V 1260(date)S 2700(#)S 2844(Regular)S 3188(command)S 4968 V 1260(sort)S 1436(<\256le)S 2700(#)S 2844(Redirect)S 10 I 3211(stdin)S 10 R 3431(\(standard)S (input\))240 3831 A 5088 V 1260(sort)S 1436(<\256le1)S 1722(>\256le2)S 2700(#)S 2844(Redirect)S 10 I 3211(stdin)S 10 R 3431(and)S 10 I (stdout)245 3601 A 5208 V 10 R 1260(cc)S 1375(\256le.c)S 1624(2>error)S 2700(#)S 2844(Redirect)S 10 I 3211(stderr)S 5328 V 10 R 1260(a.out)S 1483(>f)S 1624(2>&1)S 2700(#)S 2844(Combine)S 3237(standard)S 3603(output)S 3884(and)S 4054(standard)S 4420(error)S 5448 V 1260(sort)S 1436(<\256le1)S 1722(>>\256le2)S 2700(#)S 2844(Append)S 3187(output)S 3468(to)S 10 I 3571(\256le2)S 5568 V 10 R 1260(sort)S 1436(<\256le1)S 1722(>\256le2)S 1983(&)S 2700(#)S (Background)491 2844 A 3360(job)S 5688 V 1260(\(ls)S 10 R-1 1386(-)S 10 R 1443(l;)S 1524(a.out\))S 1781(&)S 2700(#)S 2844(Run)S 3036(two)S (background)474 3212 A 3711(commands)S 4171(sequentially)S 5808 V 1260(sort)S 1436(<\256le)S 1647(|)S 1692(wc)S 2700(#)S 2844(Two-process)S 3390(pipeline)S 5928 V 1260(sort)S 1436()S 2700(with)S 2904(no)S 3029(command)S 3450(name,)S 3718(modify)S 4033(shell)S 4248(I/O)S 5952 V 1260(exit)S 1436([n])S 2700(exit)S 2876(a)S 2946(shell)S 3161(program,)S 3552(with)S 3756(exit)S 3932(value)S 4175(n)S 6072 V (export)257 1260 A 1542([var])S (export)257 2700 A 2982(var)S 3136(to)S 3239(shell's)S 3527(children;)S 3910(list)S (exported)352 4058 A 4435(variables)S 6192 V 1260(pwd)S 2700(print)S 2915(the)S 3063(name)S 3306(of)S 3415(the)S 3563(current)S 3874(working)S 4234(directory)S 6312 V 1260(read)S 1459(var)S 2700(read)S 2899(a)S 2969(line)S 3145(from)S 3366(stdin)S 3586(and)S 3756(assign)S 4032(to)S 4135(var)S 6432 V (readonly)352 1260 A 1637([var])S 2700(make)S 2943(var)S (readonly;)380 3097 A 3502(list)S (readonly)352 3650 A 4027(variables)S 6552 V 1260(set)S 1397(-f)S 2700(set)S 2837(shell)S 3052(\257ag)S 3228(\(+f)S 3378(unsets)S 3654(\257ag\))S 6672 V 1260(set)S 1397(str)S 2700(set)S (positional)396 2837 A 3258(parameter)S 3687(to)S 3790(str)S 6792 V 1260(set)S 2700(show)S 2937(the)S 3085(current)S 3396(shell)S 3611(variables)S 6912 V 1260(shift)S 2700(reassign)S (positional)396 3055 A 3476(parameters)S 3944(\(except)S 4266(${0}\))S 4521(one)S 4691(left)S 7032 V 1260(times)S 2700(print)S (accumulated)509 2915 A 3449(user)S 3642(and)S 3812(system)S 4116(times)S 4359(for)S 4502(processes)S 7152 V 1260(trap)S 1442(arg)S 1596(sigs)S 2700(trap)S 2882(signals)S 3186(sigs)S 3367(and)S 3537(run)S 3696(arg)S 3850(on)S (receipt)275 3975 A 7272 V 1260(trap)S 2700(list)S 2848(trapped)S 3175(signals)S 7392 V 1260(umask)S 1547([n])S 2700(set)S 2837(the)S 2985(user)S 3178(\256le)S 3332(creation)S 3682(mask;)S 3947(show)S 4184(the)S 4332(current)S 4643(umask)S 7512 V 1260(wait)S 1459([n])S 2700(wait)S 2899(for)S 3042(process)S 3369(pid)S 3522(n;)S 3625(wait)S 3824(for)S 3967(all)S 4093(processes)S 7903 V 720(September)S 1176(13,)S (1996)200 1326 A 4990(Page)S 5211(2)S 8143 V EP %%Page: 3 3 BP /slant 0 def /height 0 def 480 V 10 R 720(SH)S 857(\()S 899(1)S 957(\))S 2696(Eighth)S (Edition)296 2989 A 4990(SH)S 5127(\()S 5169(1)S 5227(\))S 960 V 1080(The)S 1271(shell)S 1495(also)S 1691(contains)S 2060(a)S 2139(programming)S (language,)388 2720 A 3142(which)S 3422(has)S 3590(the)S 3747(following)S 4172(operators)S 4582(and)S 4762(\257ow)S 4976(control)S 1080 V 1080(statements:)S 1248 V 1260(#)S 2700(Comment)S 3600(The)S 3782(rest)S 3953(of)S 4062(the)S 4210(line)S 4386(is)S (ignored)307 4478 A 1368 V 1260(=)S 2700(Assignment)S 3600(Set)S 3754(a)S 3824(shell)S 4039(variable)S 1488 V 1260(&&)S 2700(Logical)S (AND)219 3056 A 3623(Execute)S (second)279 3996 A 4323(command)S 4767(only)S 4993(if)S 5104(\256rst)S 1608 V (succeeds)358 3600 A 1728 V 1260(||)S 2700(Logical)S 3056(OR)S 3623(Execute)S (second)279 3996 A 4323(command)S 4767(only)S 4993(if)S 5104(\256rst)S 1848 V 3600(fails)S 1968 V (\(...\))143 1260 A (Group)257 2700 A 3600(Execute)S 3953(enclosed)S 4333(commands)S 4796(before)S 5082(con-)S 2088 V 3600(tinuing)S 2256 V 1260(for)S 2700(For)S (loop)178 2865 A 3068(\(for)S (...)75 3245 A 3345(in)S (...)75 3448 A 3548(do)S (...)75 3673 A (done\))229 3773 A 2376 V 1260(case)S 2700(Case)S 2921(statement)S 3332(\(\(case)S (...)75 3599 A 3699(\))S (...)75 3758 A 3858(;;)S (...)75 3939 A 4039(esac\))S 2496 V 1260(esac)S 2700(Case)S 2921(statement)S 3332(end)S 2616 V 1260(while)S 2700(While)S (loop)178 2971 A 3174(\(while)S (...)75 3457 A 3557(do)S (...)75 3682 A (done\))229 3782 A 2736 V 1260(do)S 2700(Do/For/While)S (loop)178 3290 A 3493(start)S 3692(\(do)S (...)75 3851 A (until)184 3951 A (...\))109 4160 A 2856 V (done)195 1260 A 2700(For/While)S (loop)178 3139 A 3342(end)S 2976 V 1260(if)S (Conditional)474 2700 A 3199(statement)S 3610(\(if)S (...)75 3731 A 3831(else)S (...)75 4013 A 4113(elif)S (...)75 4273 A 4373(\256\))S 3096 V 1260(in)S 2700(For)S (loop)178 2865 A 3068(selection)S 3216 V 1260(then)S (Conditional)474 2700 A 3199(statement)S 3610(start)S 3336 V 1260(else)S (Conditional)474 2700 A 3199(statement)S 3610(alternative)S 3456 V 1260(elif)S (Conditional)474 2700 A 3199(statement)S 3610(end)S 3576 V (until)184 1260 A 2700(Do)S (loop)178 2848 A 3051(end)S 3696 V 1260(\256)S (Conditional)474 2700 A 3199(statement)S 3610(end)S 3864 V 9 R 720(S)S 722(SE)S 774(EE)S 832(E)S 913(A)S 915(AL)S 983(LS)S 1041(SO)S 1093(O)S 3984 V 10 B 1080(echo)S 10 R 1276(\(1\),)S 10 B 1444(expr)S 10 R 1640(\(1\),)S 10 B 1808(pwd)S 10 R 1993(\(1\),)S 10 B 2161(true)S 10 R 2341(\(1\).)S 7903 V 720(Page)S 941(3)S 4455(September)S 4911(13,)S (1996)200 5061 A 8143 V EP %%Trailer %%DocumentFonts: Times-Roman Times-Bold Times-Italic Symbol %%Pages: 3