aboutsummaryrefslogtreecommitdiffstats
path: root/doc/article.ps
blob: 3aadf2f30e877bb76d3539d09e5ec2b3a4a7f11b (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
%!PS-Adobe-3.0
%%Creator: groff version 1.16.1
%%CreationDate: Mon Nov 19 13:06:55 2001
%%DocumentNeededResources: font Times-Bold
%%+ font Times-Italic
%%+ font Times-Roman
%%+ font Courier
%%DocumentSuppliedResources: procset grops 1.16 1
%%Pages: 11
%%PageOrder: Ascend
%%Orientation: Portrait
%%EndComments
%%BeginProlog
%%BeginResource: procset grops 1.16 1
/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
/MANUAL{
statusdict begin/manualfeed true store end
}bind 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
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 \255 The GNU shell*)227.904 123 Q/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/F2 10/Times-Bold@0 SF 2.5(1. Intr)72 207 R
(oduction)-.18 E(Bash)97 222.6 Q/F3 10/Times-Roman@0 SF .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.)-3.404 F 1.075
(The name is an acron)72 234.6 R 1.075(ym for the \231Bourne-Ag)-.15 F
1.075(ain SHell\232, a pun on Ste)-.05 F 1.375 -.15(ve B)-.25 H 1.075
(ourne, the author of the direct).15 F .206(ancestor of the current)72
246.6 R/F4 8/Times-Roman@0 SF(UNIX)2.706 E F3 2.706<ae73>C(hell)-2.706 E
F1(/bin/sh)2.706 E F3 2.706(,w)C .205(hich appeared in the Se)-2.706 F
-.15(ve)-.25 G .205(nth Edition Bell Labs Research v).15 F(er)-.15 E(-)
-.2 E(sion of)72 258.6 Q/F5 9/Times-Roman@0 SF(UNIX)2.5 E F3(.)A .387
(Bash is an)97 274.2 R F2(sh)2.887 E F3 .387
(\255compatible shell that incorporates useful features from the K)B
.388(orn shell \()-.35 F F2(ksh)A F3 2.888(\)a)C .388(nd the C)-2.888 F
.023(shell \()72 286.2 R F2(csh)A F3 .023
(\), described later in this article.)B .022
(It is ultimately intended to be a conformant implementation of the)
5.022 F 3.568(IEEE POSIX Shell and Utilities speci\214cation \(IEEE W)72
298.2 R 3.568(orking Group 1003.2\).)-.8 F 3.569(It of)8.569 F 3.569
(fers functional)-.25 F(impro)72 310.2 Q -.15(ve)-.15 G(ments o).15 E
-.15(ve)-.15 G 2.5(rs).15 G 2.5(hf)-2.5 G(or both interacti)-2.5 E .3
-.15(ve a)-.25 H(nd programming use.).15 E .697
(While the GNU operating system will most lik)97 325.8 R .697
(ely include a v)-.1 F .697(ersion of the Berk)-.15 F(ele)-.1 E 3.197
(ys)-.15 G .696(hell csh, Bash)-3.197 F .015(will be the def)72 337.8 R
.015(ault shell.)-.1 F(Lik)5.015 E 2.515(eo)-.1 G .015(ther GNU softw)
-2.515 F .016(are, Bash is quite portable.)-.1 F .016
(It currently runs on nearly e)5.016 F -.15(ve)-.25 G(ry).15 E -.15(ve)
72 349.8 S .523(rsion of).15 F F4(UNIX)3.023 E F3 .523(and a fe)3.023 F
3.023(wo)-.25 G .523
(ther operating systems \255 an independently-supported port e)-3.023 F
.523(xists for OS/2, and)-.15 F .706
(there are rumors of ports to DOS and W)72 361.8 R(indo)-.4 E .706
(ws NT)-.25 F 5.706(.P)-.74 G .706(orts to)-5.706 F F5(UNIX)3.206 E F3
(-lik)A 3.206(es)-.1 G .706(ystems such as QNX and Minix)-3.206 F
(are part of the distrib)72 373.8 Q(ution.)-.2 E .405
(The original author of Bash w)97 389.4 R .405(as Brian F)-.1 F .405
(ox, an emplo)-.15 F .405(yee of the Free Softw)-.1 F .405(are F)-.1 F
2.905(oundation. The)-.15 F(cur)2.905 E(-)-.2 E(rent de)72 401.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)-2.5 E -.15(ve)-.25 G(rsity).15 E(.)-.65 E F2 2.5(2. What')72
425.4 R 2.5(sP)-.37 G(OSIX, anyway?)-2.5 E F1(POSIX)97 441 Q F3 .343
(is a name originally coined by Richard Stallman for a f)2.843 F .343
(amily of open system standards based)-.1 F(on)72 453 Q F5(UNIX)3.24 E
F3 5.74(.T)C .74(here are a number of aspects of)-5.74 F F5(UNIX)3.24 E
F3 .74(under consideration for standardization, from the basic)3.24 F
.192(system services at the system call and C library le)72 465 R -.15
(ve)-.25 G 2.692(lt).15 G 2.692(oa)-2.692 G .192
(pplications and tools to system administration and)-2.692 F 2.5
(management. Each)72 477 R(area of standardization is assigned to a w)
2.5 E(orking group in the 1003 series.)-.1 E 2.814
(The POSIX Shell and Utilities standard has been de)97 492.6 R -.15(ve)
-.25 G 2.814(loped by IEEE W).15 F 2.813(orking Group 1003.2)-.8 F .254
(\(POSIX.2\).\210 It concentrates on the command interpreter interf)72
504.6 R .253(ace and utility programs commonly e)-.1 F -.15(xe)-.15 G
(cuted).15 E 1.112(from the command line or by other programs.)72 516.6
R 1.112(An initial v)6.112 F 1.113
(ersion of the standard has been appro)-.15 F -.15(ve)-.15 G 3.613(da)
.15 G(nd)-3.613 E .365(published by the IEEE, and w)72 528.6 R .365
(ork is currently underw)-.1 F .365(ay to update it.)-.1 F .365
(There are four primary areas of w)5.365 F(ork)-.1 E
(in the 1003.2 standard:)72 540.6 Q 21.5<8341>72 556.2 S .835
(spects of the shell')-21.5 F 3.335(ss)-.55 G .835
(yntax and command language.)-3.335 F 3.335(An)5.835 G .835
(umber of special b)-3.335 F .835(uiltins such as)-.2 F F2(cd)3.335 E F3
(and)3.335 E F2(exec)97 568.2 Q F3 .545(are being speci\214ed as part o\
f the shell, since their functionality usually cannot be implemented)
3.046 F(by a separate e)97 580.2 Q -.15(xe)-.15 G(cutable;).15 E 21.5
<8341>72 595.8 S .926
(set of utilities to be called by shell scripts and applications.)
-18.074 F .927(Examples are programs lik)5.927 F(e)-.1 E F1 .927
(sed, tr)3.427 F(,)-1.11 E F3(and)97 607.8 Q F1(awk.)2.797 E F3 .297
(Utilities commonly implemented as shell b)5.297 F .296
(uiltins are described in this section, such as)-.2 F F2(test)2.796 E F3
(and)97 619.8 Q F2(kill)3.422 E F3 5.922(.A)C 3.422(ne)-5.922 G .922
(xpansion of this section')-3.572 F 3.423(ss)-.55 G .923
(cope, termed the User Portability Extension, or UPE, has)-3.423 F
(standardized interacti)97 631.8 Q .3 -.15(ve p)-.25 H(rograms such as)
.15 E F1(vi)2.5 E F3(and)2.5 E F1(mailx;)2.5 E F3 21.5<8341>72 647.4 S
.288(group of functional interf)-18.712 F .287(aces to services pro)-.1
F .287(vided by the shell, such as the traditional)-.15 F/F6 10
/Courier@0 SF(system\(\))2.787 E F3 3.289(Cl)97 659.4 S .789
(ibrary function.)-3.289 F .789(There are functions to perform shell w)
5.789 F .789(ord e)-.1 F .79(xpansions, perform \214lename e)-.15 F
(xpan-)-.15 E .324(sion \()97 671.4 R F1(globbing)A F3 .324
(\), obtain v)B .323(alues of POSIX.2 system con\214guration v)-.25 F
.323(ariables, retrie)-.25 F .623 -.15(ve v)-.25 H .323(alues of en)-.1
F(viron-)-.4 E(ment v)97 683.4 Q(ariables \()-.25 E F6(getenv\(\))A F3
(\), and other services;).833 E .32 LW 144 691.4 72 691.4 DL F4
(*An earlier v)72 703.2 Q
(ersion of this article appeared in The Linux Journal.)-.12 E(\210IEEE,)
72 715 Q/F7 8/Times-Italic@0 SF 1.231(IEEE Standar)3.231 F 3.231(df)
-.296 G 1.231(or Information T)-3.231 F(ec)-.736 E(hnolo)-.12 E 1.231
(gy -- P)-.08 F 1.231(ortable Oper)-.64 F 1.232
(ating System Interface \(POSIX\) P)-.12 F 1.232(art 2:)-.64 F
(Shell and Utilities)72 725 Q F4 2(,1)C(992.)-2 E EP
%%Page: 2 2
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF(-2-)282.17 48 Q 21.5<8341>72 84 S
(suite of \231de)-19 E -.15(ve)-.25 G(lopment\232 utilities such as).15
E/F1 10/Times-Italic@0 SF(c89)2.5 E F0(\(the POSIX.2 v)2.5 E(ersion of)
-.15 E F1(cc)2.5 E F0(\), and)A F1(yacc.)2.5 E F0 .483
(Bash is concerned with the aspects of the shell')97 99.6 R 2.983(sb)
-.55 G(eha)-2.983 E .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
111.6 R 3.938(wc)-.25 G 1.438(ontrol and program e)-3.938 F -.15(xe)-.15
G 1.438(cution con-).15 F 1.284
(structs, I/O redirection and pipelining, ar)72 123.6 R 1.284
(gument handling, v)-.18 F 1.284(ariable e)-.25 F 1.284
(xpansion, and quoting.)-.15 F(The)6.285 E F1(special)3.785 E F0 -.2(bu)
72 135.6 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)-3.176 F .7(as being part of the shell; e)72 147.6 R .7
(xamples of these are)-.15 F/F2 10/Times-Bold@0 SF -2.3 -.15(ev a)3.201
H(l).15 E F0(and)3.201 E F2(export)3.201 E F0 5.701(.O)C .701
(ther utilities appear in the sections of)-5.701 F .256(POSIX.2 not de)
72 159.6 R -.2(vo)-.25 G .256(ted to the shell which are commonly \(and\
 in some cases must be\) implemented as b).2 F(uiltin)-.2 E .213
(commands, such as)72 171.6 R F2 -.18(re)2.713 G(ad).18 E F0(and)2.713 E
F2(test)2.713 E F0 5.213(.P)C .213
(OSIX.2 also speci\214es aspects of the shell')-5.213 F 2.713(si)-.55 G
(nteracti)-2.713 E .513 -.15(ve b)-.25 H(eha).15 E .214(vior as part)-.2
F .598(of the UPE, including job control and command line editing.)72
183.6 R .598(Interestingly enough, only)5.598 F F1(vi)3.098 E F0 .598
(-style line edit-)B(ing commands ha)72 195.6 Q .3 -.15(ve b)-.2 H
(een standardized;).15 E F1(emacs)2.5 E F0
(editing commands were left out due to objections.)2.5 E 1.128
(While POSIX.2 includes much of what the shell has traditionally pro)97
211.2 R 1.129(vided, some important things)-.15 F(ha)72 223.2 Q .344
-.15(ve b)-.2 H .044(een omitted as being \231be).15 F .044
(yond its scope.)-.15 F 5.043<9a54>-.7 G .043
(here is, for instance, no mention of a dif)-5.043 F .043
(ference between a)-.25 F F1(lo)72 235.2 Q(gin)-.1 E F0 1.445
(shell and an)3.945 F 3.945(yo)-.15 G 1.445(ther interacti)-3.945 F
1.745 -.15(ve s)-.25 H 1.446
(hell \(since POSIX.2 does not specify a login program\).).15 F 1.446
(No \214x)6.446 F(ed)-.15 E(startup \214les are de\214ned, either \255 \
the standard does not mention)72 247.2 Q F1(.pr)2.5 E(o\214le)-.45 E F0
(.)A F2 2.5(3. Basic)72 271.2 R(Bash featur)2.5 E(es)-.18 E F0 1.448
(Since the Bourne shell pro)97 286.8 R 1.448
(vides Bash with most of its philosophical underpinnings, Bash inherits)
-.15 F .64(most of its features and functionality from sh.)72 298.8 R
.641(Bash implements all of the traditional sh \215o)5.641 F 3.141(wc)
-.25 G .641(ontrol con-)-3.141 F .8(structs \()72 310.8 R F1(for)A F0(,)
A F1(if)3.3 E F0(,)A F1(while)3.3 E F0 3.3(,e)C 3.3(tc.\). All)-3.3 F
.799(of the Bourne shell b)3.3 F .799
(uiltins, including those not speci\214ed in the POSIX.2)-.2 F .536
(standard, appear in Bash.)72 322.8 R(Shell)5.536 E F1(functions)3.036 E
F0 3.036(,i)C .536(ntroduced in the SVR2 v)-3.036 F .537
(ersion of the Bourne shell, are similar)-.15 F .779
(to shell scripts, b)72 334.8 R .779
(ut are de\214ned using a special syntax and are e)-.2 F -.15(xe)-.15 G
.779(cuted in the same process as the calling).15 F 2.841(shell. Bash)72
346.8 R .341(has shell functions which beha)2.841 F .641 -.15(ve i)-.2 H
2.841(naf).15 G .341(ashion upw)-2.941 F .342
(ard-compatible with sh functions.)-.1 F .342(There are)5.342 F 1.447
(certain shell v)72 358.8 R 1.446
(ariables that Bash interprets in the same w)-.25 F 1.446
(ay as sh, such as)-.1 F F2(PS1)3.946 E F0(,)A F2(IFS)3.946 E F0 3.946
(,a)C(nd)-3.946 E F2 -.74(PA)3.946 G(TH)-.21 E F0 6.446(.B)C(ash)-6.446
E 1.423(implements essentially the same grammar)72 370.8 R 3.924(,p)-.4
G 1.424(arameter and v)-3.924 F 1.424(ariable e)-.25 F 1.424
(xpansion semantics, redirection, and)-.15 F 1.06
(quoting as the Bourne shell.)72 382.8 R 1.06(Where dif)6.06 F 1.06
(ferences appear between the POSIX.2 standard and traditional sh)-.25 F
(beha)72 394.8 Q(vior)-.2 E 2.5(,B)-.4 G(ash follo)-2.5 E(ws POSIX.)-.25
E 1.608(The K)97 410.4 R 1.608(orn Shell \()-.35 F F2(ksh)A F0 4.108
(\)i)C 4.108(sad)-4.108 G 1.608
(escendent of the Bourne shell written at A)-4.108 F 1.609
(T&T Bell Laboratories by)-1.11 F(Da)72 422.4 Q 1.059(vid K)-.2 F 3.559
(orn\207. It)-.35 F(pro)3.559 E 1.059
(vides a number of useful features that POSIX and Bash ha)-.15 F 1.359
-.15(ve a)-.2 H 3.558(dopted. Man).15 F 3.558(yo)-.15 G 3.558(ft)-3.558
G(he)-3.558 E(interacti)72 434.4 Q 1.312 -.15(ve f)-.25 H 1.012
(acilities in POSIX.2 ha).05 F 1.312 -.15(ve t)-.2 H 1.012
(heir roots in the ksh: for e).15 F 1.013
(xample, the POSIX and ksh job control)-.15 F -.1(fa)72 446.4 S .513
(cilities are nearly identical. Bash includes features from the K).1 F
.513(orn Shell for both interacti)-.35 F .813 -.15(ve u)-.25 H .513
(se and shell).15 F 3.905(programming. F)72 458.4 R 1.405
(or programming, Bash pro)-.15 F 1.405(vides v)-.15 F 1.405
(ariables such as)-.25 F F2(RANDOM)3.905 E F0(and)3.905 E F2(REPL)3.905
E(Y)-.92 E F0 3.905(,t)C(he)-3.905 E F2(typeset)3.905 E F0 -.2(bu)72
470.4 S .398(iltin, the ability to remo).2 F .698 -.15(ve s)-.15 H .398
(ubstrings from v).15 F .398
(ariables based on patterns, and shell arithmetic.)-.25 F F2(RANDOM)
5.397 E F0 -.15(ex)72 482.4 S .489
(pands to a random number each time it is referenced; assigning a v).15
F .49(alue to)-.25 F F2(RANDOM)2.99 E F0 .49(seeds the random)2.99 F
.055(number generator)72 494.4 R(.)-.55 E F2(REPL)5.055 E(Y)-.92 E F0
.054(is the def)2.554 F .054(ault v)-.1 F .054(ariable used by the)-.25
F F2 -.18(re)2.554 G(ad).18 E F0 -.2(bu)2.554 G .054(iltin when no v).2
F .054(ariable names are sup-)-.25 F .742(plied as ar)72 506.4 R 3.243
(guments. The)-.18 F F2(typeset)3.243 E F0 -.2(bu)3.243 G .743
(iltin is used to de\214ne v).2 F .743(ariables and gi)-.25 F 1.043 -.15
(ve t)-.25 H .743(hem attrib).15 F .743(utes such as)-.2 F F2 -.18(re)
3.243 G(ad-).18 E(only)72 518.4 Q F0 5.512(.B)C .512
(ash arithmetic allo)-5.512 F .512(ws the e)-.25 F -.25(va)-.25 G .511
(luation of an e).25 F .511
(xpression and the substitution of the result.)-.15 F .511(Shell v)5.511
F(ari-)-.25 E .222
(ables may be used as operands, and the result of an e)72 530.4 R .222
(xpression may be assigned to a v)-.15 F 2.722(ariable. Nearly)-.25 F
.222(all of)2.722 F(the operators from the C language are a)72 542.4 Q
-.25(va)-.2 G(ilable, with the same precedence rules:).25 E/F3 10
/Courier@0 SF 6($e)97 560.4 S(cho $\(\(3 + 5 * 32\)\))-6 E(163)97 572.4
Q F0 -.15(Fo)72 594 S 3.24(ri).15 G(nteracti)-3.24 E 1.04 -.15(ve u)-.25
H .74(se, Bash implements ksh-style aliases and b).15 F .74
(uiltins such as)-.2 F F2(fc)3.24 E F0 .74(\(discussed belo)3.24 F .74
(w\) and)-.25 F F2(jobs)3.24 E F0(.)A .291(Bash aliases allo)72 606 R
2.791(was)-.25 G .291(tring to be substituted for a command name.)-2.791
F(The)5.291 E 2.791(yc)-.15 G .291(an be used to create a mnemonic)
-2.791 F .568(for a)72 618 R/F4 9/Times-Roman@0 SF(UNIX)3.068 E F0 .568
(command name \()3.068 F F3 .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 \()-3.067 F F3(alias)A .255
(news='xterm -g 80x45 -title trn -e trn -e -S1 -N &')72 630 R F0 .255
(\), or to ensure that a command)B(is in)72 642 Q -.2(vo)-.4 G -.1(ke).2
G 2.5(dw).1 G(ith a basic set of options \()-2.5 E F3
(alias ls="/bin/ls -F")A F0(\).)A .293(The C shell \()97 657.6 R F2(csh)
A F0 .293(\)\207, originally written by Bill Jo)B 2.792(yw)-.1 G .292
(hile at Berk)-2.792 F(ele)-.1 E 1.592 -.65(y, i)-.15 H 2.792(sw).65 G
.292(idely used and quite popular)-2.792 F 1.499(for its interacti)72
669.6 R 1.799 -.15(ve f)-.25 H 3.999(acilities. Bash).05 F 1.499
(includes a csh-compatible history e)3.999 F 1.5
(xpansion mechanism \(\231! history\232\),)-.15 F .019(brace e)72 681.6
R .018(xpansion, access to a stack of directories via the)-.15 F F2
(pushd)2.518 E F0(,)A F2(popd)2.518 E F0 2.518(,a)C(nd)-2.518 E F2(dirs)
2.518 E F0 -.2(bu)2.518 G .018(iltins, and tilde e).2 F(xpansion,)-.15 E
1.293(to generate users' home directories.)72 693.6 R -.35(Ti)6.294 G
1.294(lde e).35 F 1.294(xpansion has also been adopted by both the K)
-.15 F 1.294(orn Shell and)-.35 F .32 LW 144 708.2 72 708.2 DL/F5 8
/Times-Roman@0 SF(\207Morris Bolsk)72 720 Q 2(ya)-.12 G(nd Da)-2 E
(vid K)-.16 E(orn,)-.28 E/F6 8/Times-Italic@0 SF(The K)2 E
(ornShell Command and Pr)-.32 E -.08(og)-.36 G -.12(ra).08 G
(mming Langua).12 E -.08(ge)-.08 G F5 2(,P).08 G(rentice Hall, 1989.)-2
E EP
%%Page: 3 3
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF(-3-)282.17 48 Q(POSIX.2.)72 84 Q .148
(There were certain areas in which POSIX.2 felt standardization w)97
99.6 R .149(as necessary)-.1 F 2.649(,b)-.65 G .149(ut no e)-2.849 F
.149(xisting imple-)-.15 F 1.598(mentation pro)72 111.6 R 1.598
(vided the proper beha)-.15 F(vior)-.2 E 6.598(.T)-.55 G 1.598(he w)
-6.598 F 1.597(orking group in)-.1 F -.15(ve)-.4 G 1.597
(nted and standardized functionality in).15 F .674
(these areas, which Bash implements.)72 123.6 R(The)5.674 E/F1 10
/Times-Bold@0 SF(command)3.174 E F0 -.2(bu)3.174 G .674(iltin w).2 F
.674(as in)-.1 F -.15(ve)-.4 G .674
(nted so that shell functions could be).15 F .996(written to replace b)
72 135.6 R .996(uiltins; it mak)-.2 F .996(es the capabilities of the b)
-.1 F .995(uiltin a)-.2 F -.25(va)-.2 G .995(ilable to the function.).25
F .995(The reserv)5.995 F(ed)-.15 E -.1(wo)72 147.6 S 1.731
(rd \231!\232 w).1 F 1.731(as added to ne)-.1 F -.05(ga)-.15 G 1.731
(te the return v).05 F 1.731(alue of a command or pipeline; it w)-.25 F
1.732(as nearly impossible to)-.1 F -.15(ex)72 159.6 S .286
(press \231if not x\232 cleanly using the sh language.).15 F .286
(There e)5.286 F .286(xist multiple incompatible implementations of the)
-.15 F F1(test)72 171.6 Q F0 -.2(bu)3.163 G .663
(iltin, which tests \214les for type and other attrib).2 F .664
(utes and performs arithmetic and string comparisons.)-.2 F .5
(POSIX considered none of these correct, so the standard beha)72 183.6 R
.5(vior w)-.2 F .5(as speci\214ed in terms of the number of)-.1 F(ar)72
195.6 Q .412(guments to the command.)-.18 F .412(POSIX.2 dictates e)
5.412 F .412(xactly what will happen when four or fe)-.15 F .412(wer ar)
-.25 F .412(guments are)-.18 F(gi)72 207.6 Q -.15(ve)-.25 G 5.01(nt).15
G(o)-5.01 E F1(test)5.01 E F0 5.01(,a)C 2.51(nd lea)-5.01 F -.15(ve)-.2
G 5.01(st).15 G 2.51(he beha)-5.01 F 2.51(vior unde\214ned when more ar)
-.2 F 2.51(guments are supplied.)-.18 F 2.51(Bash uses the)7.51 F
(POSIX.2 algorithm, which w)72 219.6 Q(as concei)-.1 E -.15(ve)-.25 G
2.5(db).15 G 2.5(yD)-2.5 G -.2(av)-2.5 G(id K).2 E(orn.)-.35 E F1 2.5
(3.1. F)72 243.6 R(eatur)-.25 E(es not in the Bour)-.18 E(ne Shell)-.15
E F0 .718(There are a number of minor dif)97 259.2 R .719
(ferences between Bash and the v)-.25 F .719
(ersion of sh present on most other)-.15 F -.15(ve)72 271.2 S .874
(rsions of).15 F/F2 9/Times-Roman@0 SF(UNIX)3.374 E F0 5.873(.T)C .873
(he majority of these are due to the POSIX standard, b)-5.873 F .873
(ut some are the result of Bash)-.2 F .386
(adopting features from other shells.)72 283.2 R -.15(Fo)5.386 G 2.886
(ri).15 G .386(nstance, Bash includes the ne)-2.886 F 2.886<7799>-.25 G
.386(!\232 reserv)-2.886 F .386(ed w)-.15 F .386(ord, the)-.1 F F1
(command)2.886 E F0 -.2(bu)72 295.2 S .116(iltin, the ability of the).2
F F1 -.18(re)2.616 G(ad).18 E F0 -.2(bu)2.615 G .115
(iltin to correctly return a line ending with a backslash, symbolic ar)
.2 F(guments)-.18 E .798(to the)72 307.2 R F1(umask)3.298 E F0 -.2(bu)
3.298 G .798(iltin, v).2 F .798(ariable substring remo)-.25 F -.25(va)
-.15 G .798(l, a w).25 F .799(ay to get the length of a v)-.1 F .799
(ariable, and the ne)-.25 F 3.299(wa)-.25 G(lgo-)-3.299 E(rithm for the)
72 319.2 Q F1(test)2.5 E F0 -.2(bu)2.5 G
(iltin from the POSIX.2 standard, none of which appear in sh.).2 E 1.225
(Bash also implements the \231$\(...\)\232 command substitution syntax,\
 which supersedes the sh `...` con-)97 334.8 R 2.851(struct. The)72
346.8 R .351(\231$\(...\)\232 construct e)2.851 F .351(xpands to the ou\
tput of the command contained within the parentheses, with)-.15 F .664
(trailing ne)72 358.8 R .664(wlines remo)-.25 F -.15(ve)-.15 G 3.164
(d. The).15 F .664(sh syntax is accepted for backw)3.164 F .664
(ards compatibility)-.1 F 3.164(,b)-.65 G .664
(ut the \231$\(...\)\232 form is)-3.364 F(preferred because its quoting\
 rules are much simpler and it is easier to nest.)72 370.8 Q .772
(The Bourne shell does not pro)97 386.4 R .772
(vide such features as brace e)-.15 F .772
(xpansion, the ability to de\214ne a v)-.15 F(ariable)-.25 E .283
(and a function with the same name, local v)72 398.4 R .282
(ariables in shell functions, the ability to enable and disable indi-)
-.25 F .547(vidual b)72 410.4 R .547
(uiltins or write a function to replace a b)-.2 F .547
(uiltin, or a means to e)-.2 F .547
(xport a shell function to a child pro-)-.15 F(cess.)72 422.4 Q .32
(Bash has closed a long-standing shell security hole by not using the)97
438 R F1($IFS)2.82 E F0 -.25(va)2.82 G .32(riable to split each w).25 F
(ord)-.1 E 1.254(read by the shell, b)72 450 R 1.254
(ut splitting only the results of e)-.2 F 1.255
(xpansion \(ksh and the 4.4 BSD sh ha)-.15 F 1.555 -.15(ve \214)-.2 H
-.15(xe).15 G 3.755(dt).15 G 1.255(his as)-3.755 F 2.907(well\). Useful)
72 462 R(beha)2.907 E .407(vior such as a means to abort e)-.2 F -.15
(xe)-.15 G .407(cution of a script read with the \231.).15 F 2.906<9a63>
-.7 G .406(ommand using the)-2.906 F F1 -.18(re)72 474 S(tur).18 E(n)
-.15 E F0 -.2(bu)2.742 G .242(iltin or automatically e).2 F .242
(xporting v)-.15 F .243(ariables in the shell')-.25 F 2.743(se)-.55 G
-.4(nv)-2.743 G .243(ironment to children is also not present).4 F .969
(in the Bourne shell.)72 486 R .968(Bash pro)5.968 F .968
(vides a much more po)-.15 F .968(werful en)-.25 F .968
(vironment for both interacti)-.4 F 1.268 -.15(ve u)-.25 H .968
(se and pro-).15 F(gramming.)72 498 Q F1 2.5(4. Bash-speci\214c)72 522 R
-.25(Fe)2.5 G(atur).25 E(es)-.18 E F0 .491(This section details a fe)97
537.6 R 2.991(wo)-.25 G 2.991(ft)-2.991 G .491(he features which mak)
-2.991 F 2.991(eB)-.1 G .491(ash unique.)-2.991 F .492(Most of them pro)
5.491 F .492(vide impro)-.15 F -.15(ve)-.15 G(d).15 E(interacti)72 549.6
Q 1.182 -.15(ve u)-.25 H .882(se, b).15 F .882(ut a fe)-.2 F 3.382(wp)
-.25 G .882(rogramming impro)-3.382 F -.15(ve)-.15 G .882
(ments are present as well.).15 F .882(Full descriptions of these fea-)
5.882 F(tures can be found in the Bash documentation.)72 561.6 Q F1 2.5
(4.1. Startup)72 585.6 R(Files)2.5 E F0 .161(Bash e)97 601.2 R -.15(xe)
-.15 G .161(cutes startup \214les dif).15 F .161
(ferently than other shells.)-.25 F .162(The Bash beha)5.161 F .162
(vior is a compromise between)-.2 F .29
(the csh principle of startup \214les with \214x)72 613.2 R .29
(ed names e)-.15 F -.15(xe)-.15 G .29
(cuted for each shell and the sh \231minimalist\232 beha).15 F(vior)-.2
E(.)-.55 E 2.955(An interacti)72 625.2 R 3.255 -.15(ve i)-.25 H 2.955
(nstance of Bash started as a login shell reads and e).15 F -.15(xe)-.15
G(cutes).15 E/F3 10/Times-Italic@0 SF(~/.bash_pr)5.456 E(o\214le)-.45 E
F0 2.956(\(the \214le)5.456 F .954(.bash_pro\214le in the user')72 637.2
R 3.454(sh)-.55 G .953(ome directory\), if it e)-3.454 F 3.453
(xists. An)-.15 F(interacti)3.453 E 1.253 -.15(ve n)-.25 H .953
(on-login shell reads and e).15 F -.15(xe)-.15 G(cutes).15 E F3
(~/.bashr)72 649.2 Q(c)-.37 E F0 5.641(.A)C(non-interacti)-2.5 E .942
-.15(ve s)-.25 H .642(hell \(one be).15 F .642(gun to e)-.15 F -.15(xe)
-.15 G .642(cute a shell script, for e).15 F .642
(xample\) reads no \214x)-.15 F .642(ed startup)-.15 F .342(\214le, b)72
661.2 R .342(ut uses the v)-.2 F .342(alue of the v)-.25 F(ariable)-.25
E F1($ENV)2.842 E F0 2.841(,i)C 2.841(fs)-2.841 G .341
(et, as the name of a startup \214le.)-2.841 F .341
(The ksh practice of read-)5.341 F(ing)72 673.2 Q F1($ENV)3.114 E F0
.614(for e)3.114 F -.15(ve)-.25 G .614(ry shell, with the accompan).15 F
.615(ying dif)-.15 F .615(\214culty of de\214ning the proper v)-.25 F
.615(ariables and functions)-.25 F .721(for interacti)72 685.2 R 1.021
-.15(ve a)-.25 H .721(nd non-interacti).15 F 1.021 -.15(ve s)-.25 H .721
(hells or ha).15 F .721(ving the \214le read only for interacti)-.2 F
1.02 -.15(ve s)-.25 H .72(hells, w).15 F .72(as considered)-.1 F .158
(too comple)72 697.2 R 2.658(x. Ease)-.15 F .158(of use w)2.658 F .158
(on out here.)-.1 F(Interestingly)5.158 E 2.658(,t)-.65 G .158(he ne)
-2.658 F .159(xt release of ksh will change to reading)-.15 F F1($ENV)
2.659 E .32 LW 144 705.2 72 705.2 DL/F4 8/Times-Roman@0 SF .559
(\207Bill Jo)72 717 R 1.599 -.52(y, A)-.08 H 2.559(nI).52 G .559
(ntroduction to the C Shell,)-2.559 F/F5 8/Times-Italic@0 SF .558
(UNIX User')2.558 F 2.558(sS)-.32 G .558(upplementary Documents)-2.558 F
F4 2.558(,U)C(ni)-2.558 E -.12(ve)-.2 G .558(rsity of California at).12
F(Berk)72 727 Q(ele)-.08 E 1.04 -.52(y, 1)-.12 H(986.).52 E EP
%%Page: 4 4
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF(-4-)282.17 48 Q(only for interacti)72 84 Q .3
-.15(ve s)-.25 H(hells.).15 E/F1 10/Times-Bold@0 SF 2.5(4.2. New)72 108
R(Builtin Commands)2.5 E F0 1.02(There are a fe)97 123.6 R 3.52(wb)-.25
G 1.02(uiltins which are ne)-3.72 F 3.52(wo)-.25 G 3.52(rh)-3.52 G -2.25
-.2(av e)-3.52 H 1.02(been e)3.72 F 1.02(xtended in Bash.)-.15 F(The)
6.02 E F1(enable)3.52 E F0 -.2(bu)3.52 G 1.02(iltin allo).2 F(ws)-.25 E
-.2(bu)72 135.6 S .824(iltin commands to be turned on and of).2 F 3.324
(fa)-.25 G(rbitrarily)-3.324 E 5.824(.T)-.65 G 3.324(ou)-6.624 G .824
(se the v)-3.324 F .824(ersion of)-.15 F/F2 10/Times-Italic@0 SF(ec)
3.324 E(ho)-.15 E F0 .825(found in a user')3.324 F 3.325(ss)-.55 G
(earch)-3.325 E .625(path rather than the Bash b)72 147.6 R(uiltin,)-.2
E/F3 10/Courier@0 SF .625(enable -n echo)3.125 F F0(suf)3.125 E 3.125
(\214ces. The)-.25 F F1(help)3.124 E F0 -.2(bu)3.124 G .624(iltin pro).2
F .624(vides quick synopses)-.15 F .703(of the shell f)72 159.6 R .704
(acilities without requiring access to a manual page.)-.1 F F1(Builtin)
5.704 E F0 .704(is similar to)3.204 F F1(command)3.204 E F0 .704
(in that it)3.204 F .342(bypasses shell functions and directly e)72
171.6 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
183.6 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)-2.573 E 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 2.858(stack, respecti)72 195.6 R -.15(ve)-.25 G(ly).15 E 5.358(,a)
-.65 G(nd)-5.358 E F1(dirs)5.358 E F0 2.858(lists the stack contents.)
5.358 F 2.858(On systems that allo)7.858 F 5.358<778c>-.25 G 2.857
(ne-grained control of)-5.358 F 1.339(resources, the)72 207.6 R F1
(ulimit)3.839 E F0 -.2(bu)3.839 G 1.339
(iltin can be used to tune these settings.).2 F F1(Ulimit)6.34 E F0
(allo)3.84 E 1.34(ws a user to control, among)-.25 F 1.086
(other things, whether core dumps are to be generated, ho)72 219.6 R
3.586(wm)-.25 G 1.086(uch memory the shell or a child process is)-3.586
F(allo)72 231.6 Q .496(wed to allocate, and ho)-.25 F 2.996(wl)-.25 G
(ar)-2.996 E .496(ge a \214le created by a child process can gro)-.18 F
4.296 -.65(w. T)-.25 H(he).65 E F1(suspend)2.996 E F0 .497(command will)
2.997 F .744(stop the shell process when job control is acti)72 243.6 R
-.15(ve)-.25 G 3.243(;m).15 G .743(ost other shells do not allo)-3.243 F
3.243(wt)-.25 G(hemselv)-3.243 E .743(es to be stopped)-.15 F(lik)72
255.6 Q 2.717(et)-.1 G(hat.)-2.717 E F1 -.74(Ty)5.217 G(pe,).74 E F0
.217(the Bash answer to)2.717 F F1(which)2.717 E F0(and)2.717 E F1
(whence,)2.717 E F0(sho)2.717 E .218(ws what will happen when a w)-.25 F
.218(ord is typed as a)-.1 F(command:)72 267.6 Q F3 6($t)97 285.6 S
(ype export)-6 E(export is a shell builtin)97 297.6 Q 6($t)97 309.6 S
(ype -t export)-6 E(builtin)97 321.6 Q 6($t)97 333.6 S(ype bash)-6 E
(bash is /bin/bash)97 345.6 Q 6($t)97 357.6 S(ype cd)-6 E
(cd is a function)97 369.6 Q(cd \(\))97 381.6 Q({)97 393.6 Q
(builtin cd ${1+"$@"} && xtitle $HOST: $PWD)121 405.6 Q(})97 417.6 Q F0
-1.11(Va)72 439.2 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 451.2 R -.15(xe)-.15 G 1.15
(cuted based on a user').15 F 3.65(ss)-.55 G 1.15(earch path.)-3.65 F
1.15(Some of this functionality has been)6.15 F
(adopted by POSIX.2 and folded into the)72 463.2 Q F1(command)2.5 E F0
(utility)2.5 E(.)-.65 E F1 2.5(4.3. Editing)72 487.2 R(and Completion)
2.5 E F0 .682(One area in which Bash shines is command line editing.)97
502.8 R .682(Bash uses the)5.682 F F2 -.37(re)3.182 G(adline).37 E F0
.681(library to read and)3.181 F .942(edit lines when interacti)72 514.8
R -.15(ve)-.25 G 5.942(.R).15 G .942(eadline is a po)-5.942 F .942
(werful and \215e)-.25 F .942(xible input f)-.15 F .943
(acility that a user can con\214gure to)-.1 F(indi)72 526.8 Q .732
(vidual tastes.)-.25 F .732(It allo)5.732 F .732(ws lines to be edited \
using either emacs or vi commands, where those commands)-.25 F .2
(are appropriate.)72 538.8 R .2
(The full capability of emacs is not present \255 there is no w)5.2 F .2
(ay to e)-.1 F -.15(xe)-.15 G .2(cute a named command).15 F 1.15
(with M-x, for instance \255 b)72 550.8 R 1.15(ut the e)-.2 F 1.149
(xisting commands are more than adequate.)-.15 F 1.149
(The vi mode is compliant)6.149 F
(with the command line editing standardized by POSIX.2.)72 562.8 Q 1.69
(Readline is fully customizable.)97 578.4 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 590.4 Q .028
(ws users to de\214ne additional k)-.25 F .327 -.15(ey b)-.1 H .027
(indings using a startup \214le.).15 F(The)5.027 E F2(inputr)2.527 E(c)
-.37 E F0 .027(\214le, which def)2.527 F .027(aults to the \214le)-.1 F
F2(~/.inputr)72 602.4 Q(c)-.37 E F0 3.002(,i)C 3.002(sr)-3.002 G .503(e\
ad each time readline initializes, permitting users to maintain a consi\
stent interf)-3.002 F .503(ace across a)-.1 F .893(set of programs.)72
614.4 R .893(Readline includes an e)5.893 F .893(xtensible interf)-.15 F
.892(ace, so each program using the library can add its)-.1 F -.25(ow)72
626.4 S 3.56(nb).25 G 1.06(indable commands and program-speci\214c k)
-3.56 F 1.361 -.15(ey b)-.1 H 3.561(indings. Bash).15 F 1.061
(uses this f)3.561 F 1.061(acility to add bindings that)-.1 F
(perform history e)72 638.4 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 654 R .706
(ariables which further tune its beha)-.25 F(vior)-.2 E 5.706(.V)-.55 G
.706(ariables e)-6.816 F .706(xist to control)-.15 F .157
(whether or not eight-bit characters are directly read as input or con)
72 666 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 678 Q .082
(ed k)-.15 F .382 -.15(ey s)-.1 H .081(equence consists of the characte\
r with the eighth bit zeroed, preceded by the).15 F F2(meta-pr)2.581 E
(e\214x)-.37 E F0(character)72 690 Q 3.233(,u)-.4 G .733
(sually escape, which selects an alternate k)-3.233 F -.15(ey)-.1 G .734
(map\), to decide whether to output characters with).15 F .624
(the eighth bit set directly or as a meta-pre\214x)72 702 R .624(ed k)
-.15 F .924 -.15(ey s)-.1 H .623
(equence, whether or not to wrap to a ne).15 F 3.123(ws)-.25 G .623
(creen line)-3.123 F 1.196
(when a line being edited is longer than the screen width, the k)72 714
R -.15(ey)-.1 G 1.196(map to which subsequent k).15 F 1.496 -.15(ey b)
-.1 H(indings).15 E .531(should apply)72 726 R 3.031(,o)-.65 G 3.031(re)
-3.031 G -.15(ve)-3.281 G 3.031(nw).15 G .531
(hat happens when readline w)-3.031 F .531(ants to ring the terminal')
-.1 F 3.03(sb)-.55 G 3.03(ell. All)-3.03 F .53(of these v)3.03 F
(ariables)-.25 E EP
%%Page: 5 5
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF(-5-)282.17 48 Q
(can be set in the inputrc \214le.)72 84 Q .284
(The startup \214le understands a set of C preprocessor)97 99.6 R(-lik)
-.2 E 2.785(ec)-.1 G .285(onditional constructs which allo)-2.785 F
2.785(wv)-.25 G(ariables)-3.035 E .12(or k)72 111.6 R .42 -.15(ey b)-.1
H .119(indings to be assigned based on the application using readline, \
the terminal currently being used, or).15 F .338(the editing mode.)72
123.6 R .338(Users can add program-speci\214c bindings to mak)5.338 F
2.838(et)-.1 G .338(heir li)-2.838 F -.15(ve)-.25 G 2.838(se).15 G 2.838
(asier: I)-2.838 F(ha)2.838 E .639 -.15(ve b)-.2 H .339(indings that).15
F(let me edit the v)72 135.6 Q(alue of)-.25 E/F1 10/Times-Bold@0 SF($P)
2.5 E -.95(AT)-.74 G(H).95 E F0(and double-quote the current or pre)2.5
E(vious w)-.25 E(ord:)-.1 E/F2 10/Courier@0 SF 6(#M)97 153.6 S
(acros that are convenient for shell interaction)-6 E($if Bash)97 165.6
Q 6(#e)97 177.6 S(dit the path)-6 E
("\\C-xp": "PATH=${PATH}\\e\\C-e\\C-a\\ef\\C-f")97 189.6 Q 6(#p)97 201.6
S(repare to type a quoted word -- insert open and close double)-6 E 6
(#q)97 213.6 S(uotes and move to just after the open quote)-6 E
("\\C-x\\"": "\\"\\"\\C-b")97 225.6 Q 6(#Q)97 237.6 S
(uote the current or previous word)-6 E("\\C-xq": "\\eb\\"\\ef\\"")97
249.6 Q($endif)97 261.6 Q F0 .322(There is a readline command to re-rea\
d the \214le, so users can edit the \214le, change some bindings, and b\
e)72 283.2 R(gin)-.15 E(to use them almost immediately)72 295.2 Q(.)-.65
E .851(Bash implements the)97 310.8 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 322.8 Q F0 .25(is used in se)2.75 F -.15(ve)
-.25 G .25(ral w).15 F 2.75(ays. In)-.1 F/F3 10/Times-Italic@0 SF(list)
2.75 E F0 .25(mode, it can display the current k)2.75 F .55 -.15(ey b)
-.1 H .25(indings, list all the readline edit-).15 F .149(ing directi)72
334.8 R -.15(ve)-.25 G 2.649(sa).15 G -.25(va)-2.849 G .149
(ilable for binding, list which k).25 F -.15(ey)-.1 G 2.649(si).15 G
-1.9 -.4(nv o)-2.649 H .349 -.1(ke a g).4 H -2.15 -.25(iv e).1 H 2.65
(nd).25 G(irecti)-2.65 E -.15(ve)-.25 G 2.65(,o).15 G 2.65(ro)-2.65 G
.15(utput the current set of k)-2.65 F -.15(ey)-.1 G .042(bindings in a\
 format that can be incorporated directly into an inputrc \214le.)72
346.8 R(In)5.041 E F3(batc)2.541 E(h)-.15 E F0 .041
(mode, it reads a series of)2.541 F -.1(ke)72 358.8 S 2.858(yb)-.05 G
.359(indings directly from a \214le and passes them to readline.)-2.858
F .359(In its most common usage,)5.359 F F1(bind)2.859 E F0(tak)2.859 E
.359(es a sin-)-.1 F 1.117(gle string and passes it directly to readlin\
e, which interprets the line as if it had just been read from the)72
370.8 R(inputrc \214le.)72 382.8 Q(Both k)5 E .3 -.15(ey b)-.1 H
(indings and v).15 E(ariable assignments may appear in the string gi)
-.25 E -.15(ve)-.25 G 2.5(nt).15 G(o)-2.5 E F1(bind)2.5 E F0(.)A .53
(The readline library also pro)97 398.4 R .53(vides an interf)-.15 F .53
(ace for)-.1 F F3(wor)3.03 E 3.03(dc)-.37 G(ompletion)-3.03 E F0 5.53
(.W)C .53(hen the)-5.53 F F3(completion)3.03 E F0(character)3.03 E 1.261
(\(usually T)72 410.4 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 422.4 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 .358
(characters are inserted directly)72 434.4 R 2.858(,o)-.65 G .358(therw\
ise the common pre\214x of the set of \214lenames is added to the curre\
nt)-2.858 F -.1(wo)72 446.4 S 3.199(rd. A).1 F .699(second T)3.199 F
.699(AB character entered immediately after a non-unique completion cau\
ses readline to list)-.93 F 1.814
(the possible completions; there is an option to ha)72 458.4 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)-6.813 F(vides)-.15 E .482
(hooks so that applications can pro)72 470.4 R .482
(vide speci\214c types of completion before the def)-.15 F .483
(ault \214lename completion)-.1 F .132(is attempted.)72 482.4 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 494.4
R .37(uiltins, shell reserv)-.2 F .37(ed w)-.15 F .37
(ords, shell functions, and)-.1 F -.15(exe)72 506.4 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 genera\
lly quite good at determining what type of completion to attempt.)72
518.4 Q F1 2.5(4.4. History)72 542.4 R F0 .144
(Access to the list of commands pre)97 558 R .144(viously entered \(the)
-.25 F F3 .144(command history)2.644 F F0 2.644(\)i)C 2.644(sp)-2.644 G
(ro)-2.644 E .144(vided jointly by Bash)-.15 F .078
(and the readline library)72 570 R 5.077(.B)-.65 G .077(ash pro)-5.077 F
.077(vides v)-.15 F .077(ariables \()-.25 F F1($HISTFILE)A F0(,)A F1
($HISTSIZE)2.577 E F0 2.577(,a)C(nd)-2.577 E F1($HISTCONTR)2.577 E(OL)
-.3 E F0 2.577(\)a)C(nd)-2.577 E(the)72 582 Q F1(history)2.89 E F0(and)
2.89 E F1(fc)2.89 E F0 -.2(bu)2.89 G .39
(iltins to manipulate the history list.).2 F .391(The v)5.391 F .391
(alue of)-.25 F F1($HISTFILE)2.891 E F0 .391(specifes the \214le where)
2.891 F .49(Bash writes the command history on e)72 594 R .489
(xit and reads it on startup.)-.15 F F1($HISTSIZE)5.489 E F0 .489
(is used to limit the number)2.989 F .642(of commands sa)72 606 R -.15
(ve)-.2 G 3.142(di).15 G 3.142(nt)-3.142 G .642(he history)-3.142 F(.)
-.65 E F1($HISTCONTR)5.642 E(OL)-.3 E F0(pro)3.142 E .642
(vides a crude form of control o)-.15 F -.15(ve)-.15 G 3.142(rw).15 G
.642(hich com-)-3.142 F .025(mands are sa)72 618 R -.15(ve)-.2 G 2.525
(do).15 G 2.525(nt)-2.525 G .025(he history list: a v)-2.525 F .025
(alue of)-.25 F F3(ignor)2.525 E(espace)-.37 E F0 .025(means to not sa)
2.525 F .324 -.15(ve c)-.2 H .024(ommands which be).15 F .024
(gin with a)-.15 F .927(space; a v)72 630 R .927(alue of)-.25 F F3
(ignor)3.427 E(edups)-.37 E F0 .927(means to not sa)3.427 F 1.228 -.15
(ve c)-.2 H .928(ommands identical to the last command sa).15 F -.15(ve)
-.2 G(d.).15 E F1($HIST)5.928 E(-)-.92 E(CONTR)72 642 Q(OL)-.3 E F0 -.1
(wa)3.778 G 3.778(sn).1 G(amed)-3.778 E F1($history_contr)3.778 E(ol)
-.18 E F0 1.278(in earlier v)3.778 F 1.278
(ersions of Bash; the old name is still accepted for)-.15 F(backw)72 654
Q .575(ards compatibility)-.1 F 5.575(.T)-.65 G(he)-5.575 E F1(history)
3.075 E F0 .575
(command can read or write \214les containing the history list and dis-)
3.075 F .167(play the current list contents.)72 666 R(The)5.167 E F1(fc)
2.667 E F0 -.2(bu)2.667 G .167(iltin, adopted from POSIX.2 and the K).2
F .167(orn Shell, allo)-.35 F .167(ws display and)-.25 F(re-e)72 678 Q
-.15(xe)-.15 G .58
(cution, with optional editing, of commands from the history list.).15 F
.58(The readline library of)5.58 F .58(fers a set of)-.25 F 1.255(comma\
nds to search the history list for a portion of the current input line \
or a string typed by the user)72 690 R(.)-.55 E(Finally)72 702 Q 2.535
(,t)-.65 G(he)-2.535 E F3(history)2.535 E F0(library)2.535 E 2.535(,g)
-.65 G .036(enerally incorporated directly into the readline library)
-2.535 F 2.536(,i)-.65 G .036(mplements a f)-2.536 F .036(acility for)
-.1 F 1.023(history recall, e)72 714 R 1.022(xpansion, and re-e)-.15 F
-.15(xe)-.15 G 1.022(cution of pre).15 F 1.022(vious commands v)-.25 F
1.022(ery similar to csh \(\231bang history\232, so)-.15 F
(called because the e)72 726 Q
(xclamation point introduces a history substitution\):)-.15 E EP
%%Page: 6 6
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF(-6-)282.17 48 Q/F1 10/Courier@0 SF 6($e)97 84 S
(cho a b c d e)-6 E 6(abcde)97 96 S 6($!)97 108 S 6(!fghi)-6 G
(echo a b c d e f g h i)97 120 Q 6(abcdefghi)97 132 S 6($!)97 144 S(-2)
-6 E(echo a b c d e)97 156 Q 6(abcde)97 168 S 6($e)97 180 S(cho !-2:1-4)
-6 E(echo a b c d)97 192 Q 6(abcd)97 204 S F0 1.456
(The command history is only sa)72 225.6 R -.15(ve)-.2 G 3.957(dw).15 G
1.457(hen the shell is interacti)-3.957 F -.15(ve)-.25 G 3.957(,s).15 G
3.957(oi)-3.957 G 3.957(ti)-3.957 G 3.957(sn)-3.957 G 1.457(ot a)-3.957
F -.25(va)-.2 G 1.457(ilable for use by shell).25 F(scripts.)72 237.6 Q
/F2 10/Times-Bold@0 SF 2.5(4.5. New)72 261.6 R(Shell V)2.5 E(ariables)
-.92 E F0 .59(There are a number of con)97 277.2 R -.15(ve)-.4 G .589
(nience v).15 F .589(ariables that Bash interprets to mak)-.25 F 3.089
(el)-.1 G .589(ife easier)-3.089 F 5.589(.T)-.55 G .589(hese include)
-5.589 F F2(FIGNORE)72 289.2 Q F0 3.973(,w)C 1.473
(hich is a set of \214lename suf)-3.973 F<8c78>-.25 E 1.474
(es identifying \214les to e)-.15 F 1.474
(xclude when completing \214lenames;)-.15 F F2(HOSTTYPE)72 301.2 Q F0
2.932(,w)C .432
(hich is automatically set to a string describing the type of hardw)
-2.932 F .431(are on which Bash is cur)-.1 F(-)-.2 E .335(rently e)72
313.2 R -.15(xe)-.15 G(cuting;).15 E F2(command_oriented_history)2.835 E
F0 2.835(,w)C .335(hich directs Bash to sa)-2.835 F .635 -.15(ve a)-.2 H
.336(ll lines of a multiple-line com-).15 F 1.071(mand such as a)72
325.2 R/F3 10/Times-Italic@0 SF(while)3.571 E F0(or)3.571 E F3(for)3.571
E F0 1.071(loop in a single history entry)3.571 F 3.57(,a)-.65 G(llo)
-3.57 E 1.07(wing easy re-editing; and)-.25 F F2(IGNOREEOF)3.57 E F0(,)A
.747(whose v)72 337.2 R .747(alue indicates the number of consecuti)-.25
F 1.047 -.15(ve E)-.25 H .747(OF characters that an interacti).15 F
1.048 -.15(ve s)-.25 H .748(hell will read before).15 F -.15(ex)72 349.2
S 1.432(iting \255 an easy w).15 F 1.432(ay to k)-.1 F 1.432
(eep yourself from being logged out accidentally)-.1 F 6.432(.T)-.65 G
(he)-6.432 E F2(auto_r)3.932 E(esume)-.18 E F0 -.25(va)3.932 G(riable)
.25 E .571(alters the w)72 361.2 R .571
(ay the shell treats simple command names: if job control is acti)-.1 F
-.15(ve)-.25 G 3.071(,a).15 G .571(nd this v)-3.071 F .571
(ariable is set, sin-)-.25 F(gle-w)72 373.2 Q .239(ord simple commands \
without redirections cause the shell to \214rst look for and restart a \
suspended job)-.1 F(with that name before starting a ne)72 385.2 Q 2.5
(wp)-.25 G(rocess.)-2.5 E F2 2.5(4.6. Brace)72 409.2 R(Expansion)2.5 E
F0 .653(Since sh of)97 424.8 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 2.124(\(\214lename e)72 436.8 R 2.124
(xpansion requires that the \214lenames e)-.15 F 2.123
(xist\), Bash implements)-.15 F F3(br)4.623 E 2.123(ace e)-.15 F
(xpansion)-.2 E F0 4.623(,ac)C(apability)-4.623 E(pick)72 448.8 Q .773
(ed up from csh.)-.1 F .774(Brace e)5.773 F .774
(xpansion is similar to \214lename e)-.15 F .774(xpansion, b)-.15 F .774
(ut the strings generated need not)-.2 F 1.211(correspond to e)72 460.8
R 1.211(xisting \214les.)-.15 F 3.711(Ab)6.211 G 1.211(race e)-3.711 F
1.211(xpression consists of an optional)-.15 F F3(pr)3.71 E(eamble)-.37
E F0 3.71(,f)C(ollo)-3.71 E 1.21(wed by a pair of)-.25 F 2.938
(braces enclosing a series of comma-separated strings, and an optional)
72 472.8 R F3(postamble)5.438 E F0 7.938(.T)C 2.938(he preamble is)
-7.938 F(prepended to each string within the braces, and the postamble \
is then appended to each resulting string:)72 484.8 Q F1 6($e)97 502.8 S
(cho a{d,c,b}e)-6 E(ade ace abe)97 514.8 Q F0 .306(As this e)72 536.4 R
.306(xample demonstrates, the results of brace e)-.15 F .305
(xpansion are not sorted, as the)-.15 F 2.805(ya)-.15 G .305
(re by \214lename e)-2.805 F(xpan-)-.15 E(sion.)72 548.4 Q F2 2.5
(4.7. Pr)72 572.4 R(ocess Substitution)-.18 E F0 .457
(On systems that can support it, Bash pro)97 588 R .457(vides a f)-.15 F
.457(acility kno)-.1 F .458(wn as)-.25 F F3(pr)2.958 E .458
(ocess substitution)-.45 F F0 5.458(.P)C .458(rocess sub-)-5.458 F .347
(stitution is similar to command substitution in that its speci\214cati\
on includes a command to e)72 600 R -.15(xe)-.15 G .346(cute, b).15 F
.346(ut the)-.2 F .181(shell does not collect the command')72 612 R
2.681(so)-.55 G .181(utput and insert it into the command line.)-2.681 F
(Rather)5.181 E 2.681(,B)-.4 G .182(ash opens a pipe)-2.681 F 1.861
(to the command, which is run in the background.)72 624 R 1.861
(The shell uses named pipes \(FIFOs\) or the)6.861 F F3(/de)4.361 E
(v/fd)-.15 E F0 .961(method of naming open \214les to e)72 636 R .962(x\
pand the process substitution to a \214lename which connects to the pip\
e)-.15 F .104(when opened.)72 648 R .103
(This \214lename becomes the result of the e)5.104 F 2.603
(xpansion. Process)-.15 F .103(substitution can be used to com-)2.603 F
(pare the outputs of tw)72 660 Q 2.5(od)-.1 G(if)-2.5 E(ferent v)-.25 E
(ersions of an application as part of a re)-.15 E(gression test:)-.15 E
F1 6($c)97 678 S(mp <\(old_prog\) <\(new_prog\))-6 E EP
%%Page: 7 7
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF(-7-)282.17 48 Q/F1 10/Times-Bold@0 SF 2.5
(4.8. Pr)72 84 R(ompt Customization)-.18 E F0 2.229
(One of the more popular interacti)97 99.6 R 2.529 -.15(ve f)-.25 H
2.229(eatures that Bash pro).15 F 2.23
(vides is the ability to customize the)-.15 F 3.234(prompt. Both)72
111.6 R F1($PS1)3.234 E F0(and)3.234 E F1($PS2,)3.234 E F0 .734
(the primary and secondary prompts, are e)3.234 F .733
(xpanded before being displayed.)-.15 F -.15(Pa)72 123.6 S .804
(rameter and v).15 F .804(ariable e)-.25 F .805
(xpansion is performed when the prompt string is e)-.15 F .805
(xpanded, so an)-.15 F 3.305(ys)-.15 G .805(hell v)-3.305 F(ariable)-.25
E .729(can be put into the prompt \(e.g.,)72 135.6 R F1($SHL)3.228 E(VL)
-.92 E F0 3.228(,w)C .728(hich indicates ho)-3.228 F 3.228(wd)-.25 G
.728(eeply the current shell is nested\).)-3.228 F(Bash)5.728 E 1.895(s\
pecially interprets characters in the prompt string preceded by a backs\
lash.)72 147.6 R 1.895(Some of these backslash)6.895 F .874
(escapes are replaced with the current time, the date, the current w)72
159.6 R .874(orking directory)-.1 F 3.373(,t)-.65 G .873
(he username, and the)-3.373 F .78
(command number or history number of the command being entered.)72 171.6
R .781(There is e)5.781 F -.15(ve)-.25 G 3.281(nab).15 G .781
(ackslash escape to)-3.281 F .007
(cause the shell to change its prompt when running as root after an)72
183.6 R/F2 10/Times-Italic@0 SF(su)2.507 E F0 5.007(.B)C .007
(efore printing each primary prompt,)-5.007 F .305(Bash e)72 195.6 R
.305(xpands the v)-.15 F(ariable)-.25 E F1($PR)2.805 E(OMPT_COMMAND)-.3
E F0 .305(and, if it has a v)2.805 F .306(alue, e)-.25 F -.15(xe)-.15 G
.306(cutes the e).15 F .306(xpanded v)-.15 F .306(alue as)-.25 F 3.735
(ac)72 207.6 S 1.235(ommand, allo)-3.735 F 1.234
(wing additional prompt customization.)-.25 F -.15(Fo)6.234 G 3.734(re)
.15 G 1.234(xample, this assignment causes the current)-3.884 F(user)72
219.6 Q 2.917(,t)-.4 G .417
(he current host, the time, the last component of the current w)-2.917 F
.417(orking directory)-.1 F 2.917(,t)-.65 G .418(he le)-2.917 F -.15(ve)
-.25 G 2.918(lo).15 G 2.918(fs)-2.918 G .418(hell nest-)-2.918 F(ing, a\
nd the history number of the current command to be embedded into the pr\
imary prompt:)72 231.6 Q/F3 10/Courier@0 SF 6($P)97 249.6 S
(S1='\\u@\\h [\\t] \\W\($SHLVL:\\!\)\\$ ')-6 E
(chet@odin [21:03:44] documentation\(2:636\)$ cd ..)97 261.6 Q
(chet@odin [21:03:54] src\(2:637\)$)97 273.6 Q F0 .146(The string being\
 assigned is surrounded by single quotes so that if it is e)72 295.2 R
.146(xported, the v)-.15 F .146(alue of)-.25 F F1($SHL)2.646 E(VL)-.92 E
F0(will)2.646 E(be updated by a child shell:)72 307.2 Q F3
(chet@odin [21:17:35] src\(2:638\)$ export PS1)97 325.2 Q
(chet@odin [21:17:40] src\(2:639\)$ bash)97 337.2 Q
(chet@odin [21:17:46] src\(3:696\)$)97 349.2 Q F0
(The \\$ escape is displayed as \231)72 370.8 Q F1($)A F0 2.5<9a77>C
(hen running as a normal user)-2.5 E 2.5(,b)-.4 G(ut as \231)-2.7 E F1
(#)A F0 2.5<9a77>C(hen running as root.)-2.5 E F1 2.5(4.9. File)72 394.8
R(System V)2.5 E(iews)-.37 E F0 .029(Since Berk)97 410.4 R(ele)-.1 E
2.529(yi)-.15 G .029
(ntroduced symbolic links in 4.2 BSD, one of their most anno)-2.529 F
.03(ying properties has been)-.1 F .764(the \231w)72 422.4 R .764
(arping\232 to a completely dif)-.1 F .764
(ferent area of the \214le system when using)-.25 F F1(cd)3.263 E F0
3.263(,a)C .763(nd the resultant non-intu-)-3.263 F(iti)72 434.4 Q .704
-.15(ve b)-.25 H(eha).15 E .405(vior of \231)-.2 F F1 .405(cd ..)B F0
2.905(\232. The)B/F4 9/Times-Roman@0 SF(UNIX)2.905 E F0 -.1(ke)2.905 G
.405(rnel treats symbolic links).1 F F2(physically)2.905 E F0 5.405(.W)C
.405(hen the k)-5.405 F .405(ernel is translating)-.1 F 3.223(ap)72
446.4 S .723(athname in which one component is a symbolic link, it repl\
aces all or part of the pathname while pro-)-3.223 F .668
(cessing the link.)72 458.4 R .668
(If the contents of the symbolic link be)5.668 F .669
(gin with a slash, the k)-.15 F .669(ernel replaces the pathname)-.1 F
.219(entirely; if not, the link contents replace the current component.)
72 470.4 R .219(In either case, the symbolic link is visible.)5.219 F
.058(If the link v)72 482.4 R .058(alue is an absolute pathname, the us\
er \214nds himself in a completely dif)-.25 F .059
(ferent part of the \214le sys-)-.25 F(tem.)72 494.4 Q .704(Bash pro)97
510 R .704(vides a)-.15 F F2(lo)3.203 E(gical)-.1 E F0(vie)3.203 E 3.203
(wo)-.25 G 3.203(ft)-3.203 G .703(he \214le system.)-3.203 F .703
(In this def)5.703 F .703(ault mode, command and \214lename com-)-.1 F
.522(pletion and b)72 522 R .522(uiltin commands such as)-.2 F F1(cd)
3.022 E F0(and)3.022 E F1(pushd)3.022 E F0 .522
(which change the current w)3.022 F .522(orking directory transpar)-.1 F
(-)-.2 E .127(ently follo)72 534 R 2.627(ws)-.25 G .127
(ymbolic links as if the)-2.627 F 2.627(yw)-.15 G .127(ere directories.)
-2.627 F(The)5.126 E F1($PWD)2.626 E F0 -.25(va)2.626 G .126
(riable, which holds the shell').25 F 2.626(si)-.55 G .126(dea of)-2.626
F .366(the current w)72 546 R .366(orking directory)-.1 F 2.866(,d)-.65
G .367
(epends on the path used to reach the directory rather than its ph)
-2.866 F .367(ysical loca-)-.05 F
(tion in the local \214le system hierarch)72 558 Q 3.8 -.65(y. F)-.05 H
(or e).5 E(xample:)-.15 E F3 6($c)97 576 S 6(d/)-6 G(usr/local/bin)-6 E
6($e)97 588 S(cho $PWD)-6 E(/usr/local/bin)97 600 Q 6($p)97 612 S(wd)-6
E(/usr/local/bin)97 624 Q 6($/)97 636 S(bin/pwd)-6 E
(/net/share/sun4/local/bin)97 648 Q 6($c)97 660 S 6(d.)-6 G(.)-6 E 6($p)
97 672 S(wd)-6 E(/usr/local)97 684 Q 6($/)97 696 S(bin/pwd)-6 E
(/net/share/sun4/local)97 708 Q 6($c)97 720 S 6(d.)-6 G(.)-6 E EP
%%Page: 8 8
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF(-8-)282.17 48 Q/F1 10/Courier@0 SF 6($p)97 84 S
(wd)-6 E(/usr)97 96 Q 6($/)97 108 S(bin/pwd)-6 E(/usr)97 120 Q F0 .3(On\
e problem with this, of course, arises when programs that do not unders\
tand the shell')72 141.6 R 2.8(sl)-.55 G .3(ogical notion of)-2.8 F .217
(the \214le system interpret \231..)72 153.6 R 2.718<9a64>-.7 G(if)
-2.718 E(ferently)-.25 E 5.218(.T)-.65 G .218
(his generally happens when Bash completes \214lenames containing)-5.218
F(\231..)72 165.6 Q 3.384<9a61>-.7 G .884
(ccording to a logical hierarch)-3.384 F 3.384(yw)-.05 G .884
(hich does not correspond to their ph)-3.384 F .883(ysical location.)
-.05 F -.15(Fo)5.883 G 3.383(ru).15 G .883(sers who)-3.383 F
(\214nd this troublesome, a corresponding)72 177.6 Q/F2 10
/Times-Italic@0 SF(physical)2.5 E F0(vie)2.5 E 2.5(wo)-.25 G 2.5(ft)-2.5
G(he \214le system is a)-2.5 E -.25(va)-.2 G(ilable:).25 E F1 6($c)97
195.6 S 6(d/)-6 G(usr/local/bin)-6 E 6($p)97 207.6 S(wd)-6 E
(/usr/local/bin)97 219.6 Q 6($s)97 231.6 S(et -o physical)-6 E 6($p)97
243.6 S(wd)-6 E(/net/share/sun4/local/bin)97 255.6 Q/F3 10/Times-Bold@0
SF 2.5(4.10. Inter)72 285.6 R(nationalization)-.15 E F0 .145
(One of the most signi\214cant impro)97 301.2 R -.15(ve)-.15 G .145
(ments in v).15 F .145(ersion 1.13 of Bash w)-.15 F .145
(as the change to \231eight-bit clean-)-.1 F 2.933(liness\232. Pre)72
313.2 R .433(vious v)-.25 F .432
(ersions used the eighth bit of characters to mark whether or not the)
-.15 F 2.932(yw)-.15 G .432(ere quoted when)-2.932 F 1.495(performing w)
72 325.2 R 1.495(ord e)-.1 F 3.995(xpansions. While)-.15 F 1.495
(this did not af)3.995 F 1.496
(fect the majority of users, most of whom used only)-.25 F(se)72 337.2 Q
-.15(ve)-.25 G 1.236(n-bit ASCII characters, some found it con\214ning.)
.15 F(Be)6.236 E 1.236(ginning with v)-.15 F 1.236
(ersion 1.13, Bash implemented a)-.15 F(dif)72 349.2 Q .02(ferent quoti\
ng mechanism that did not alter the eighth bit of characters.)-.25 F
.021(This allo)5.021 F .021(wed Bash to manipulate)-.25 F .427
(\214les with \231odd\232 characters in their names, b)72 361.2 R .427
(ut did nothing to help users enter those names, so v)-.2 F .426
(ersion 1.13)-.15 F 1.458
(introduced changes to readline that made it eight-bit clean as well.)72
373.2 R 1.458(Options e)6.458 F 1.458(xist that force readline to)-.15 F
.744(attach no special signi\214cance to characters with the eighth bit\
 set \(the def)72 385.2 R .744(ault beha)-.1 F .744(vior is to con)-.2 F
-.15(ve)-.4 G .744(rt these).15 F .641(characters to meta-pre\214x)72
397.2 R .641(ed k)-.15 F .941 -.15(ey s)-.1 H .642
(equences\) and to output these characters without con).15 F -.15(ve)-.4
G .642(rsion to meta-pre-).15 F<8c78>72 409.2 Q .008(ed sequences.)-.15
F .007(These changes, along with the e)5.007 F .007(xpansion of k)-.15 F
-.15(ey)-.1 G .007(maps to a full eight bits, enable readline to).15 F
-.1(wo)72 421.2 S(rk with most of the ISO-8859 f).1 E
(amily of character sets, used by man)-.1 E 2.5(yE)-.15 G
(uropean countries.)-2.5 E F3 2.5(4.11. POSIX)72 445.2 R(Mode)2.5 E F0
.584(Although Bash is intended to be POSIX.2 conformant, there are area\
s in which the def)97 460.8 R .584(ault beha)-.1 F(vior)-.2 E .463
(is not compatible with the standard.)72 472.8 R -.15(Fo)5.463 G 2.962
(ru).15 G .462(sers who wish to operate in a strict POSIX.2 en)-2.962 F
.462(vironment, Bash)-.4 F .505(implements a)72 484.8 R F2 .505
(POSIX mode)3.005 F F0 5.505(.W)C .505(hen this mode is acti)-5.505 F
-.15(ve)-.25 G 3.005(,B).15 G .505(ash modi\214es its def)-3.005 F .505
(ault operation where it dif)-.1 F(fers)-.25 E .267
(from POSIX.2 to match the standard.)72 496.8 R .266
(POSIX mode is entered when Bash is started with the)5.267 F F3(-posix)
2.766 E F0(option.)2.766 E .149(This feature is also a)72 508.8 R -.25
(va)-.2 G .149(ilable as an option to the).25 F F3(set)2.649 E F0 -.2
(bu)2.649 G(iltin,).2 E F3 .149(set -o posix)2.649 F F0 5.149(.F)C .149
(or compatibility with other GNU)-5.299 F(softw)72 520.8 Q 4.02(are tha\
t attempts to be POSIX.2 compliant, Bash also enters POSIX mode if the \
v)-.1 F(ariable)-.25 E F3($POSIXL)72 532.8 Q(Y_CORRECT)-.92 E F0 5.824
(is set when Bash is started or assigned a v)8.324 F 5.825
(alue during e)-.25 F -.15(xe)-.15 G(cution.).15 E F3($POSIX_PED)72
544.8 Q(ANTIC)-.35 E F0 .27
(is accepted as well, to be compatible with some older GNU utilities.)
2.77 F .27(When Bash is)5.27 F .506(started in POSIX mode, for e)72
556.8 R .506(xample, it sources the \214le named by the v)-.15 F .507
(alue of)-.25 F F3($ENV)3.007 E F0 .507(rather than the \231nor)3.007 F
(-)-.2 E(mal\232 startup \214les, and does not allo)72 568.8 Q 2.5(wr)
-.25 G(eserv)-2.5 E(ed w)-.15 E(ords to be aliased.)-.1 E F3 2.5(5. New)
72 592.8 R -.25(Fe)2.5 G(atur).25 E(es and Futur)-.18 E 2.5(eP)-.18 G
(lans)-2.5 E F0 1.632(There are se)97 608.4 R -.15(ve)-.25 G 1.632
(ral features introduced in the current v).15 F 1.631(ersion of Bash, v)
-.15 F 1.631(ersion 1.14, and a number)-.15 F .241
(under consideration for future releases.)72 620.4 R .242
(This section will brie\215y detail the ne)5.242 F 2.742(wf)-.25 G .242
(eatures in v)-2.742 F .242(ersion 1.14 and)-.15 F(describe se)72 632.4
Q -.15(ve)-.25 G(ral features that may appear in later v).15 E(ersions.)
-.15 E F3 2.5(5.1. New)72 656.4 R -.25(Fe)2.5 G(atur).25 E
(es in Bash-1.14)-.18 E F0 .884(The ne)97 672 R 3.384(wf)-.25 G .884
(eatures a)-3.384 F -.25(va)-.2 G .884(ilable in Bash-1.14 answer se).25
F -.15(ve)-.25 G .883(ral of the most common requests for enhance-).15 F
2.931(ments. Most)72 684 R(notably)2.931 E 2.931(,t)-.65 G .432(here is\
 a mechanism for including non-visible character sequences in prompts, \
such)-2.931 F .136
(as those which cause a terminal to print characters in dif)72 696 R
.135(ferent colors or in standout mode.)-.25 F .135(There w)5.135 F .135
(as noth-)-.1 F .558(ing pre)72 708 R -.15(ve)-.25 G .558
(nting the use of these sequences in earlier v).15 F .559(ersions, b)
-.15 F .559(ut the readline redisplay algorithm assumed)-.2 F
(each character occupied ph)72 720 Q(ysical screen space and w)-.05 E
(ould wrap lines prematurely)-.1 E(.)-.65 E EP
%%Page: 9 9
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF(-9-)282.17 48 Q .13(Readline has a fe)97 84 R
2.63(wn)-.25 G .63 -.25(ew va)-2.63 H .13(riables, se).25 F -.15(ve)-.25
G .13(ral ne).15 F 2.63(wb)-.25 G .13
(indable commands, and some additional emacs mode)-2.63 F(def)72 96 Q
.918(ault k)-.1 F 1.218 -.15(ey b)-.1 H 3.418(indings. A).15 F(ne)3.418
E 3.418(wh)-.25 G .919(istory search mode has been implemented: in this\
 mode, readline searches)-3.418 F .336(the history for lines be)72 108 R
.336(ginning with the characters between the be)-.15 F .336
(ginning of the current line and the cursor)-.15 F(.)-.55 E .555(The e)
72 120 R .556(xisting readline incremental search commands no longer ma\
tch identical lines more than once.)-.15 F(File-)5.556 E 1.979
(name completion no)72 132 R 4.479(we)-.25 G 1.979(xpands v)-4.629 F
1.979(ariables in directory names.)-.25 F 1.978(The history e)6.978 F
1.978(xpansion f)-.15 F 1.978(acilities are no)-.1 F(w)-.25 E 1.449
(nearly completely csh-compatible: missing modi\214ers ha)72 144 R 1.749
-.15(ve b)-.2 H 1.449(een added and history substitution has been).15 F
-.15(ex)72 156 S(tended.).15 E(Se)97 171.6 Q -.15(ve)-.25 G .474
(ral of the features described earlier).15 F 2.973(,s)-.4 G .473(uch as)
-2.973 F/F1 10/Times-Bold@0 SF .473(set -o posix)2.973 F F0(and)2.973 E
F1($POSIX_PED)2.973 E(ANTIC)-.35 E F0 2.973(,a)C .473(re ne)-2.973 F
2.973(wi)-.25 G(n)-2.973 E -.15(ve)72 183.6 S .106(rsion 1.14.).15 F
.106(There is a ne)5.106 F 2.606(ws)-.25 G .106(hell v)-2.606 F
(ariable,)-.25 E F1(OSTYPE)2.606 E F0 2.606(,t)C 2.606(ow)-2.606 G .106
(hich Bash assigns a v)-2.606 F .106(alue that identi\214es the v)-.25 F
(er)-.15 E(-)-.2 E 1.38(sion of)72 195.6 R/F2 9/Times-Roman@0 SF(UNIX)
3.88 E F0(it')3.88 E 3.879(sr)-.55 G 1.379(unning on \(great for puttin\
g architecture-speci\214c binary directories into the)-3.879 F F1($P)
3.879 E -.95(AT)-.74 G(H).95 E F0(\).)A -1 -.8(Tw o)72 207.6 T -.25(va)
6.215 G 2.915(riables ha).25 F 3.215 -.15(ve b)-.2 H 2.915(een renamed:)
.15 F F1($HISTCONTR)5.416 E(OL)-.3 E F0(replaces)5.416 E F1
($history_contr)5.416 E(ol)-.18 E F0 5.416(,a)C(nd)-5.416 E F1
($HOSTFILE)5.416 E F0(replaces)72 219.6 Q F1
($hostname_completion_\214le)2.521 E F0 5.021(.I)C 2.521(nb)-5.021 G
.021(oth cases, the old names are accepted for backw)-2.521 F .02
(ards compatibil-)-.1 F(ity)72 231.6 Q 5.788(.T)-.65 G .788(he ksh)
-5.788 F/F3 10/Times-Italic@0 SF(select)3.288 E F0 .788
(construct, which allo)3.288 F .788
(ws the generation of simple menus, has been implemented.)-.25 F(Ne)
5.788 E(w)-.25 E 1.496(capabilities ha)72 243.6 R 1.796 -.15(ve b)-.2 H
1.496(een added to e).15 F 1.495(xisting v)-.15 F(ariables:)-.25 E F1
($auto_r)3.995 E(esume)-.18 E F0 1.495(can no)3.995 F 3.995(wt)-.25 G
(ak)-3.995 E 3.995(ev)-.1 G 1.495(alues of)-4.245 F F3 -.2(ex)3.995 G
(act).2 E F0(or)3.995 E F3(sub-)3.995 E(string)72 255.6 Q F0 4.843(,a)C
(nd)-4.843 E F1($HISTCONTR)4.843 E(OL)-.3 E F0 2.343(understands the v)
4.843 F(alue)-.25 E F3(ignor)4.844 E(eboth)-.37 E F0 4.844(,w)C 2.344
(hich combines the tw)-4.844 F 4.844(op)-.1 G(re)-4.844 E(viously)-.25 E
1.556(acceptable v)72 267.6 R 4.056(alues. The)-.25 F F1(dirs)4.056 E F0
-.2(bu)4.056 G 1.556(iltin has acquired options to print out speci\214c\
 members of the directory).2 F 3.062(stack. The)72 279.6 R F1($nolinks)
3.062 E F0 -.25(va)3.062 G .562(riable, which forces a ph).25 F .562
(ysical vie)-.05 F 3.062(wo)-.25 G 3.062(ft)-3.062 G .563
(he \214le system, has been superseded by the)-3.062 F F1<ad50>72 291.6
Q F0 .494(option to the)2.994 F F1(set)2.994 E F0 -.2(bu)2.994 G .494
(iltin \(equi).2 F -.25(va)-.25 G .494(lent to).25 F F1 .494(set -o ph)
2.994 F(ysical)-.15 E F0 .493(\); the v)B .493
(ariable is retained for backw)-.25 F .493(ards compati-)-.1 F(bility)72
303.6 Q 5.196(.T)-.65 G .196(he v)-5.196 F .196
(ersion string contained in)-.15 F F1($B)2.696 E(ASH_VERSION)-.3 E F0
(no)2.696 E 2.696(wi)-.25 G .196(ncludes an indication of the patch le)
-2.696 F -.15(ve)-.25 G 2.696(la).15 G(s)-2.696 E .85(well as the \231b)
72 315.6 R .85(uild v)-.2 F 3.35(ersion\232. Some)-.15 F .85
(little-used features ha)3.35 F 1.15 -.15(ve b)-.2 H .85(een remo).15 F
-.15(ve)-.15 G 3.35(d: the).15 F F1(by)3.35 E(e)-.1 E F0(synon)3.35 E
.85(ym for)-.15 F F1(exit)3.35 E F0(and)3.35 E(the)72 327.6 Q F1($NO_PR)
3.498 E(OMPT_V)-.3 E(ARS)-1.35 E F0 -.25(va)3.498 G .998
(riable are gone.).25 F .998(There is no)5.998 F 3.498(wa)-.25 G 3.498
(no)-3.498 G -2.19 -.18(rg a)-3.498 H .998
(nized test suite that can be run as a).18 F(re)72 339.6 Q
(gression test when b)-.15 E(uilding a ne)-.2 E 2.5(wv)-.25 G
(ersion of Bash.)-2.65 E 1.696(The documentation has been thoroughly o)
97 355.2 R -.15(ve)-.15 G 1.696(rhauled: there is a ne).15 F 4.196(wm)
-.25 G 1.695(anual page on the readline)-4.196 F .467(library and the)72
367.2 R F3(info)2.967 E F0 .467
(\214le has been updated to re\215ect the current v)2.967 F 2.968
(ersion. As)-.15 F(al)2.968 E -.1(wa)-.1 G .468(ys, as man).1 F 2.968
(yb)-.15 G .468(ugs as possi-)-3.168 F(ble ha)72 379.2 Q .3 -.15(ve b)
-.2 H(een \214x).15 E(ed, although some surely remain.)-.15 E F1 2.5
(5.2. Other)72 403.2 R -.25(Fe)2.5 G(atur).25 E(es)-.18 E F0 1.68
(There are a fe)97 418.8 R 4.18(wf)-.25 G 1.68
(eatures that I hope to include in later Bash releases.)-4.18 F 1.68
(Some are based on w)6.68 F(ork)-.1 E(already done in other shells.)72
430.8 Q .958(In addition to simple v)97 446.4 R .959(ariables, a future\
 release of Bash will include one-dimensional arrays, using)-.25 F .206
(the ksh implementation of arrays as a model.)72 458.4 R .205
(Additions to the ksh syntax, such as)5.205 F F3(varname)2.705 E F0 .205
(=\( ... \) to assign)B 2.587(al)72 470.4 S .087(ist of w)-2.587 F .088
(ords directly to an array and a mechanism to allo)-.1 F 2.588(wt)-.25 G
(he)-2.588 E F1 -.18(re)2.588 G(ad).18 E F0 -.2(bu)2.588 G .088
(iltin to read a list of v).2 F .088(alues directly)-.25 F .092
(into an array)72 482.4 R 2.592(,w)-.65 G .092(ould be desirable.)-2.692
F(Gi)5.092 E -.15(ve)-.25 G 2.592(nt).15 G .092(hose e)-2.592 F .092
(xtensions, the ksh)-.15 F F1 .092(set \255A)2.592 F F0 .091
(syntax may not be w)2.591 F .091(orth support-)-.1 F(ing \(the)72 494.4
Q F1<ad41>2.5 E F0(option assigns a list of v)2.5 E(alues to an array)
-.25 E 2.5(,b)-.65 G(ut is a rather peculiar special case\).)-2.7 E .76
(Some shells include a means of)97 510 R F3(pr)3.26 E -.1(og)-.45 G -.15
(ra).1 G(mmable).15 E F0 -.1(wo)3.26 G .76
(rd completion, where the user speci\214es on a per).1 F(-)-.2 E .163
(command basis ho)72 522 R 2.663(wt)-.25 G .163(he ar)-2.663 F .163(gum\
ents of the command are to be treated when completion is attempted: as \
\214le-)-.18 F .194(names, hostnames, e)72 534 R -.15(xe)-.15 G .194
(cutable \214les, and so on.).15 F .195
(The other aspects of the current Bash implementation could)5.195 F .482
(remain as-is; the e)72 546 R .482(xisting heuristics w)-.15 F .481
(ould still be v)-.1 F 2.981(alid. Only)-.25 F .481
(when completing the ar)2.981 F .481(guments to a simple)-.18 F
(command w)72 558 Q(ould the programmable completion be in ef)-.1 E
(fect.)-.25 E .479(It w)97 573.6 R .479(ould also be nice to gi)-.1 F
.779 -.15(ve t)-.25 H .479(he user \214ner).15 F .479
(-grained control o)-.2 F -.15(ve)-.15 G 2.98(rw).15 G .48
(hich commands are sa)-2.98 F -.15(ve)-.2 G 2.98(do).15 G .48(nto the)
-2.98 F 1.786(history list.)72 585.6 R 1.786(One proposal is for a v)
6.786 F 1.786(ariable, tentati)-.25 F -.15(ve)-.25 G 1.786(ly named).15
F F1(HISTIGNORE)4.286 E F0 4.285(,w)C 1.785(hich w)-4.285 F 1.785
(ould contain a)-.1 F .496(colon-separated list of commands.)72 597.6 R
.496(Lines be)5.496 F .496
(ginning with these commands, after the restrictions of)-.15 F F1($HIST)
2.997 E(-)-.92 E(CONTR)72 609.6 Q(OL)-.3 E F0(ha)2.65 E .45 -.15(ve b)
-.2 H .15(een applied, w).15 F .15
(ould not be placed onto the history list.)-.1 F .15
(The shell pattern-matching capa-)5.15 F(bilities could also be a)72
621.6 Q -.25(va)-.2 G(ilable when specifying the contents of).25 E F1
($HISTIGNORE)2.5 E F0(.)A .729(One thing that ne)97 637.2 R .729
(wer shells such as)-.25 F F1(wksh)3.229 E F0 .729(\(also kno)3.229 F
.729(wn as)-.25 F F1(dtksh)3.23 E F0 3.23(\)p)C(ro)-3.23 E .73
(vide is a command to dynami-)-.15 F 1.189
(cally load code implementing additional b)72 649.2 R 1.189
(uiltin commands into a running shell.)-.2 F 1.188(This ne)6.188 F 3.688
(wb)-.25 G 1.188(uiltin w)-3.888 F(ould)-.1 E(tak)72 661.2 Q 2.875(ea)
-.1 G 2.875(no)-2.875 G .375
(bject \214le or shared library implementing the \231body\232 of the b)
-2.875 F .375(uiltin \()-.2 F F3(xxx_b)A(uiltin\(\))-.2 E F0 .375
(for those f)2.875 F(amiliar)-.1 E .052
(with Bash internals\) and a structure containing the name of the ne)72
673.2 R 2.552(wc)-.25 G .051(ommand, the function to call when the)
-2.552 F(ne)72 685.2 Q 3.458(wb)-.25 G .958(uiltin is in)-3.658 F -.2
(vo)-.4 G -.1(ke).2 G 3.458(d\().1 G .959
(presumably de\214ned in the shared object speci\214ed as an ar)-3.458 F
.959(gument\), and the docu-)-.18 F 1.352
(mentation to be printed by the)72 697.2 R F1(help)3.851 E F0 1.351
(command \(possibly present in the shared object as well\).)3.851 F
1.351(It w)6.351 F(ould)-.1 E(manage the details of e)72 709.2 Q
(xtending the internal table of b)-.15 E(uiltins.)-.2 E EP
%%Page: 10 10
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF(-10-)279.67 48 Q 3.291(Af)97 84 S 1.291 -.25
(ew o)-3.291 H .791(ther b).25 F .791(uiltins w)-.2 F .791
(ould also be desirable: tw)-.1 F 3.291(oa)-.1 G .791(re the POSIX.2)
-3.291 F/F1 10/Times-Bold@0 SF(getconf)3.292 E F0 .792
(command, which prints)3.292 F 1.412(the v)72 96 R 1.412
(alues of system con\214guration v)-.25 F 1.411
(ariables de\214ned by POSIX.2, and a)-.25 F F1(diso)3.911 E(wn)-.1 E F0
-.2(bu)3.911 G 1.411(iltin, which causes a).2 F 1.347
(shell running with job control acti)72 108 R 1.647 -.15(ve t)-.25 H
3.847<6f99>.15 G(for)-3.847 E 1.347
(get about\232 one or more background jobs in its internal jobs)-.18 F
3.465(table. Using)72 120 R F1(getconf)3.465 E F0 3.465(,f)C .965(or e)
-3.465 F .965(xample, a user could retrie)-.15 F 1.264 -.15(ve a v)-.25
H .964(alue for)-.1 F F1($P)3.464 E -.95(AT)-.74 G(H).95 E F0 .964
(guaranteed to \214nd all of the)3.464 F .884
(POSIX standard utilities, or \214nd out ho)72 132 R 3.385(wl)-.25 G
.885
(ong \214lenames may be in the \214le system containing a speci\214ed)
-3.385 F(directory)72 144 Q(.)-.65 E 1.521
(There are no implementation timetables for an)97 159.6 R 4.021(yo)-.15
G 4.021(ft)-4.021 G 1.52(hese features, nor are there concrete plans to)
-4.021 F(include them.)72 171.6 Q(If an)5 E(yone has comments on these \
proposals, feel free to send me electronic mail.)-.15 E F1 2.5
(6. Re\215ections)72 195.6 R(and Lessons Lear)2.5 E(ned)-.15 E F0 .433
(The lesson that has been repeated most often during Bash de)97 211.2 R
-.15(ve)-.25 G .433(lopment is that there are dark corners).15 F .181
(in the Bourne shell, and people use all of them.)72 223.2 R .18
(In the original description of the Bourne shell, quoting and)5.181 F
.073(the shell grammar are both poorly speci\214ed and incomplete; subs\
equent descriptions ha)72 235.2 R .373 -.15(ve n)-.2 H .073
(ot helped much.).15 F 1.856(The grammar presented in Bourne')72 247.2 R
4.356(sp)-.55 G 1.856(aper describing the shell distrib)-4.356 F 1.855
(uted with the Se)-.2 F -.15(ve)-.25 G 1.855(nth Edition of).15 F/F2 9
/Times-Roman@0 SF(UNIX)72 259.2 Q F0 2.5<8769>C 2.5(ss)-2.5 G 2.5(of)
-2.5 G(ar of)-2.6 E 2.5(ft)-.25 G(hat it does not allo)-2.5 E 2.5(wt)
-.25 G(he command)-2.5 E/F3 10/Courier@0 SF(who|wc)2.5 E F0 5(.I)C 2.5
(nf)-5 G(act, as T)-2.6 E(om Duf)-.8 E 2.5(fs)-.25 G(tates:)-2.5 E 1.375
(Nobody really kno)97 274.8 R 1.375(ws what the Bourne shell')-.25 F
3.875(sg)-.55 G 1.375(rammar is.)-3.875 F(Ev)6.376 E 1.376(en e)-.15 F
1.376(xamination of the source)-.15 F(code is little help.\210)97 286.8
Q .382(The POSIX.2 standard includes a)72 302.4 R/F4 10/Times-Italic@0
SF(yacc)2.882 E F0 .382
(grammar that comes close to capturing the Bourne shell')2.882 F 2.882
(sb)-.55 G(eha)-2.882 E(vior)-.2 E(,)-.4 E -.2(bu)72 314.4 S 3.246(ti).2
G 3.246(td)-3.246 G(isallo)-3.246 E .747(ws some constructs which sh ac\
cepts without complaint \255 and there are scripts out there that)-.25 F
.501(use them.)72 326.4 R .501(It took a fe)5.501 F 3.001(wv)-.25 G .501
(ersions and se)-3.151 F -.15(ve)-.25 G .501(ral b).15 F .5
(ug reports before Bash implemented sh-compatible quoting,)-.2 F .279
(and there are still some \231le)72 338.4 R -.05(ga)-.15 G .279
(l\232 sh constructs which Bash \215ags as syntax errors.).05 F .28
(Complete sh compatibility)5.28 F(is a tough nut.)72 350.4 Q 1.231
(The shell is bigger and slo)97 366 R 1.231(wer than I w)-.25 F 1.231
(ould lik)-.1 F 1.23(e, though the current v)-.1 F 1.23
(ersion is substantially f)-.15 F(aster)-.1 E .086(than pre)72 378 R
(viously)-.25 E 5.086(.T)-.65 G .087
(he readline library could stand a substantial re)-5.086 F 2.587
(write. A)-.25 F .087(hand-written parser to replace the)2.587 F
(current)72 390 Q F4(yacc)2.978 E F0 .478(-generated one w)B .477
(ould probably result in a speedup, and w)-.1 F .477(ould solv)-.1 F
2.977(eo)-.15 G .477(ne glaring problem:)-2.977 F(the)5.477 E .384
(shell could parse commands in \231$\(...\)\232 constructs as the)72 402
R 2.884(ya)-.15 G .385
(re entered, rather than reporting errors when the)-2.884 F
(construct is e)72 414 Q(xpanded.)-.15 E 1.064(As al)97 429.6 R -.1(wa)
-.1 G 1.064(ys, there is some chaf).1 F 3.564(ft)-.25 G 3.564(og)-3.564
G 3.564(ow)-3.564 G 1.064(ith the wheat.)-3.564 F 1.063
(Areas of duplicated functionality need to be)6.063 F .382(cleaned up.)
72 441.6 R .382(There are se)5.382 F -.15(ve)-.25 G .382
(ral cases where Bash treats a v).15 F .382
(ariable specially to enable functionality a)-.25 F -.25(va)-.2 G
(ilable).25 E .185(another w)72 453.6 R .185(ay \()-.1 F F1($notify)A F0
(vs.)2.684 E F1 .184(set -o notify)5.184 F F0(and)2.684 E F1($nolinks)
2.684 E F0(vs.)2.684 E F1 .184(set -o ph)2.684 F(ysical)-.15 E F0 2.684
(,f)C .184(or instance\); the special treatment)-2.684 F 3.421(of the v)
72 465.6 R 3.421(ariable name should probably be remo)-.25 F -.15(ve)
-.15 G 5.921(d. A).15 F(fe)5.921 E 5.921(wm)-.25 G 3.422
(ore things could stand remo)-5.921 F -.25(va)-.15 G 3.422(l; the).25 F
F1($allo)72 477.6 Q(w_null_glob_expansion)-.1 E F0(and)4.112 E F1
($glob_dot_\214lenames)4.112 E F0 -.25(va)4.111 G 1.611
(riables are of particularly questionable v).25 F(alue.)-.25 E(The)72
489.6 Q F1($[...])3.977 E F0 1.477(arithmetic e)3.977 F -.25(va)-.25 G
1.478(luation syntax is redundant no).25 F 3.978(wt)-.25 G 1.478
(hat the POSIX-mandated)-3.978 F F1($\(\(...\)\))3.978 E F0 1.478
(construct has)3.978 F .326(been implemented, and could be deleted.)72
501.6 R .326(It w)5.326 F .326(ould be nice if the te)-.1 F .326
(xt output by the)-.15 F F1(help)2.825 E F0 -.2(bu)2.825 G .325
(iltin were e).2 F(xter)-.15 E(-)-.2 E .061
(nal to the shell rather than compiled into it.)72 513.6 R .062
(The beha)5.062 F .062(vior enabled by)-.2 F F1
($command_oriented_history)2.562 E F0 2.562(,w)C(hich)-2.562 E 1.125
(causes the shell to attempt to sa)72 525.6 R 1.424 -.15(ve a)-.2 H
1.124(ll lines of a multi-line command in a single history entry).15 F
3.624(,s)-.65 G 1.124(hould be)-3.624 F(made the def)72 537.6 Q
(ault and the v)-.1 E(ariable remo)-.25 E -.15(ve)-.15 G(d.).15 E F1 2.5
(7. A)72 561.6 R -.1(va)-1 G(ilability).1 E F0 .047
(As with all other GNU softw)97 577.2 R .047(are, Bash is a)-.1 F -.25
(va)-.2 G .047(ilable for anon).25 F .047(ymous FTP from)-.15 F F4(pr)
2.547 E(ep.ai.mit.edu:/pub/gnu)-.37 E F0 1.05(and from other GNU softw)
72 589.2 R 1.05(are mirror sites.)-.1 F 1.049(The current v)6.049 F
1.049(ersion is in)-.15 F F4(bash-1.14.1.tar)3.549 E(.gz)-1.11 E F0
1.049(in that directory)3.549 F(.)-.65 E(Use)72 601.2 Q F4(ar)5.965 E
-.15(ch)-.37 G(ie).15 E F0 3.465(to \214nd the nearest archi)5.965 F
3.766 -.15(ve s)-.25 H 5.966(ite. The).15 F 3.466(latest v)5.966 F 3.466
(ersion is al)-.15 F -.1(wa)-.1 G 3.466(ys a).1 F -.25(va)-.2 G 3.466
(ilable for FTP from).25 F F4(bash.CWR)72 613.2 Q -.25(U.)-.4 G
(Edu:/pub/dist.).25 E F0(Bash documentation is a)5 E -.25(va)-.2 G
(ilable for FTP from).25 E F4(bash.CWR)2.5 E -.25(U.)-.4 G
(Edu:/pub/bash.).25 E F0 1.169(The Free Softw)97 628.8 R 1.169(are F)-.1
F 1.169(oundation sells tapes and CD-R)-.15 F 1.168
(OMs containing Bash; send electronic mail to)-.4 F F3
(gnu@prep.ai.mit.edu)72 640.8 Q F0(or call)2.5 E F3(+1-617-876-3296)2.5
E F0(for more information.)2.5 E .694(Bash is also distrib)97 656.4 R
.694(uted with se)-.2 F -.15(ve)-.25 G .694(ral v).15 F .694(ersions of)
-.15 F F2(UNIX)3.194 E F0 .694(-compatible systems.)B .695
(It is included as /bin/sh)5.694 F .948(and /bin/bash on se)72 668.4 R
-.15(ve)-.25 G .948(ral Linux distrib).15 F .948
(utions \(more about the dif)-.2 F .948
(ference in a moment\), and as contrib)-.25 F(uted)-.2 E .32 LW 144
676.4 72 676.4 DL/F5 8/Times-Roman@0 SF .781
(\207S. R. Bourne, \231UNIX T)72 688.2 R .781(ime-Sharing System:)-.28 F
.781(The UNIX Shell\232,)4.781 F/F6 8/Times-Italic@0 SF .78
(Bell System T)2.78 F(ec)-.736 E .78(hnical J)-.12 F(ournal)-.2 E F5
2.78(,5)C .78(7\(6\), July-)-2.78 F(August, 1978, pp. 1971-1990.)72
698.2 Q<8854>72 710 Q .431(om Duf)-.64 F .431
(f, \231Rc \255 A Shell for Plan 9 and)-.2 F/F7 7/Times-Roman@0 SF(UNIX)
2.432 E F5(systems\232,)2.432 E F6(Pr)2.432 E .432
(oc. of the Summer 1990 EUUG Confer)-.36 F(ence)-.296 E F5 2.432(,L)C
(on-)-2.432 E(don, July)72 720 Q 2(,1)-.52 G(990, pp. 21-33.)-2 E EP
%%Page: 11 11
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF(-11-)279.67 48 Q(softw)72 84 Q(are in BSDI')-.1
E 2.5(sB)-.55 G(SD/386* and FreeBSD.)-2.5 E .598(The Linux distrib)97
99.6 R .598(ution deserv)-.2 F .598(es special mention.)-.15 F .598
(There are tw)5.598 F 3.099(oc)-.1 G .599
(on\214gurations included in the stan-)-3.099 F .733(dard Bash distrib)
72 111.6 R .732(ution: a \231normal\232 con\214guration, in which all o\
f the standard features are included, and a)-.2 F .519(\231minimal\232 \
con\214guration, which omits job control, aliases, history and command \
line editing, the directory)72 123.6 R .886(stack and)72 135.6 R/F1 10
/Times-Bold@0 SF(pushd/popd/dirs,)3.386 E F0 .886(process substitution,\
 prompt string special character decoding, and the)3.386 F/F2 10
/Times-Italic@0 SF(select)3.385 E F0 3.368(construct. This)72 147.6 R
.868(minimal v)3.368 F .869
(ersion is designed to be a drop-in replacement for the traditional)-.15
F/F3 9/Times-Roman@0 SF(UNIX)3.369 E F0(/bin/sh,)3.369 E
(and is included as the Linux /bin/sh in se)72 159.6 Q -.15(ve)-.25 G
(ral packagings.).15 E F1 2.5(8. Conclusion)72 183.6 R F0 .8
(Bash is a w)97 199.2 R(orth)-.1 E 3.3(ys)-.05 G .8(uccessor to sh.)-3.3
F .8(It is suf)5.8 F .8(\214ciently portable to run on nearly e)-.25 F
-.15(ve)-.25 G .8(ry v).15 F .8(ersion of)-.15 F F3(UNIX)3.299 E F0 .31
(from 4.3 BSD to SVR4.2, and se)72 211.2 R -.15(ve)-.25 G(ral).15 E F3
(UNIX)2.81 E F0 -.1(wo)2.81 G(rkalik).1 E 2.81(es. It)-.1 F .311(is rob)
2.81 F .311(ust enough to replace sh on most of those)-.2 F 1.515
(systems, and pro)72 223.2 R 1.515(vides more functionality)-.15 F 6.515
(.I)-.65 G 4.015(th)-6.515 G 1.515(as se)-4.015 F -.15(ve)-.25 G 1.515
(ral thousand re).15 F 1.515(gular users, and their feedback has)-.15 F
(helped to mak)72 235.2 Q 2.5(ei)-.1 G 2.5(ta)-2.5 G 2.5(sg)-2.5 G
(ood as it is today \255 a testament to the bene\214ts of free softw)
-2.5 E(are.)-.1 E .32 LW 144 708.2 72 708.2 DL/F4 8/Times-Roman@0 SF
(*BSD/386 is a trademark of Berk)72 720 Q(ele)-.08 E 2(yS)-.12 G(oftw)-2
E(are Design, Inc.)-.08 E EP
%%Trailer
end
%%EOF