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