File: bash.1

package info (click to toggle)
manpages-pl 1%3A0.6-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 20,896 kB
  • ctags: 7
  • sloc: sh: 112; makefile: 59; perl: 32
file content (7821 lines) | stat: -rw-r--r-- 342,516 bytes parent folder | download
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
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698
3699
3700
3701
3702
3703
3704
3705
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716
3717
3718
3719
3720
3721
3722
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
3773
3774
3775
3776
3777
3778
3779
3780
3781
3782
3783
3784
3785
3786
3787
3788
3789
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3800
3801
3802
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
3963
3964
3965
3966
3967
3968
3969
3970
3971
3972
3973
3974
3975
3976
3977
3978
3979
3980
3981
3982
3983
3984
3985
3986
3987
3988
3989
3990
3991
3992
3993
3994
3995
3996
3997
3998
3999
4000
4001
4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
4209
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
4221
4222
4223
4224
4225
4226
4227
4228
4229
4230
4231
4232
4233
4234
4235
4236
4237
4238
4239
4240
4241
4242
4243
4244
4245
4246
4247
4248
4249
4250
4251
4252
4253
4254
4255
4256
4257
4258
4259
4260
4261
4262
4263
4264
4265
4266
4267
4268
4269
4270
4271
4272
4273
4274
4275
4276
4277
4278
4279
4280
4281
4282
4283
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
4304
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
4334
4335
4336
4337
4338
4339
4340
4341
4342
4343
4344
4345
4346
4347
4348
4349
4350
4351
4352
4353
4354
4355
4356
4357
4358
4359
4360
4361
4362
4363
4364
4365
4366
4367
4368
4369
4370
4371
4372
4373
4374
4375
4376
4377
4378
4379
4380
4381
4382
4383
4384
4385
4386
4387
4388
4389
4390
4391
4392
4393
4394
4395
4396
4397
4398
4399
4400
4401
4402
4403
4404
4405
4406
4407
4408
4409
4410
4411
4412
4413
4414
4415
4416
4417
4418
4419
4420
4421
4422
4423
4424
4425
4426
4427
4428
4429
4430
4431
4432
4433
4434
4435
4436
4437
4438
4439
4440
4441
4442
4443
4444
4445
4446
4447
4448
4449
4450
4451
4452
4453
4454
4455
4456
4457
4458
4459
4460
4461
4462
4463
4464
4465
4466
4467
4468
4469
4470
4471
4472
4473
4474
4475
4476
4477
4478
4479
4480
4481
4482
4483
4484
4485
4486
4487
4488
4489
4490
4491
4492
4493
4494
4495
4496
4497
4498
4499
4500
4501
4502
4503
4504
4505
4506
4507
4508
4509
4510
4511
4512
4513
4514
4515
4516
4517
4518
4519
4520
4521
4522
4523
4524
4525
4526
4527
4528
4529
4530
4531
4532
4533
4534
4535
4536
4537
4538
4539
4540
4541
4542
4543
4544
4545
4546
4547
4548
4549
4550
4551
4552
4553
4554
4555
4556
4557
4558
4559
4560
4561
4562
4563
4564
4565
4566
4567
4568
4569
4570
4571
4572
4573
4574
4575
4576
4577
4578
4579
4580
4581
4582
4583
4584
4585
4586
4587
4588
4589
4590
4591
4592
4593
4594
4595
4596
4597
4598
4599
4600
4601
4602
4603
4604
4605
4606
4607
4608
4609
4610
4611
4612
4613
4614
4615
4616
4617
4618
4619
4620
4621
4622
4623
4624
4625
4626
4627
4628
4629
4630
4631
4632
4633
4634
4635
4636
4637
4638
4639
4640
4641
4642
4643
4644
4645
4646
4647
4648
4649
4650
4651
4652
4653
4654
4655
4656
4657
4658
4659
4660
4661
4662
4663
4664
4665
4666
4667
4668
4669
4670
4671
4672
4673
4674
4675
4676
4677
4678
4679
4680
4681
4682
4683
4684
4685
4686
4687
4688
4689
4690
4691
4692
4693
4694
4695
4696
4697
4698
4699
4700
4701
4702
4703
4704
4705
4706
4707
4708
4709
4710
4711
4712
4713
4714
4715
4716
4717
4718
4719
4720
4721
4722
4723
4724
4725
4726
4727
4728
4729
4730
4731
4732
4733
4734
4735
4736
4737
4738
4739
4740
4741
4742
4743
4744
4745
4746
4747
4748
4749
4750
4751
4752
4753
4754
4755
4756
4757
4758
4759
4760
4761
4762
4763
4764
4765
4766
4767
4768
4769
4770
4771
4772
4773
4774
4775
4776
4777
4778
4779
4780
4781
4782
4783
4784
4785
4786
4787
4788
4789
4790
4791
4792
4793
4794
4795
4796
4797
4798
4799
4800
4801
4802
4803
4804
4805
4806
4807
4808
4809
4810
4811
4812
4813
4814
4815
4816
4817
4818
4819
4820
4821
4822
4823
4824
4825
4826
4827
4828
4829
4830
4831
4832
4833
4834
4835
4836
4837
4838
4839
4840
4841
4842
4843
4844
4845
4846
4847
4848
4849
4850
4851
4852
4853
4854
4855
4856
4857
4858
4859
4860
4861
4862
4863
4864
4865
4866
4867
4868
4869
4870
4871
4872
4873
4874
4875
4876
4877
4878
4879
4880
4881
4882
4883
4884
4885
4886
4887
4888
4889
4890
4891
4892
4893
4894
4895
4896
4897
4898
4899
4900
4901
4902
4903
4904
4905
4906
4907
4908
4909
4910
4911
4912
4913
4914
4915
4916
4917
4918
4919
4920
4921
4922
4923
4924
4925
4926
4927
4928
4929
4930
4931
4932
4933
4934
4935
4936
4937
4938
4939
4940
4941
4942
4943
4944
4945
4946
4947
4948
4949
4950
4951
4952
4953
4954
4955
4956
4957
4958
4959
4960
4961
4962
4963
4964
4965
4966
4967
4968
4969
4970
4971
4972
4973
4974
4975
4976
4977
4978
4979
4980
4981
4982
4983
4984
4985
4986
4987
4988
4989
4990
4991
4992
4993
4994
4995
4996
4997
4998
4999
5000
5001
5002
5003
5004
5005
5006
5007
5008
5009
5010
5011
5012
5013
5014
5015
5016
5017
5018
5019
5020
5021
5022
5023
5024
5025
5026
5027
5028
5029
5030
5031
5032
5033
5034
5035
5036
5037
5038
5039
5040
5041
5042
5043
5044
5045
5046
5047
5048
5049
5050
5051
5052
5053
5054
5055
5056
5057
5058
5059
5060
5061
5062
5063
5064
5065
5066
5067
5068
5069
5070
5071
5072
5073
5074
5075
5076
5077
5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
5285
5286
5287
5288
5289
5290
5291
5292
5293
5294
5295
5296
5297
5298
5299
5300
5301
5302
5303
5304
5305
5306
5307
5308
5309
5310
5311
5312
5313
5314
5315
5316
5317
5318
5319
5320
5321
5322
5323
5324
5325
5326
5327
5328
5329
5330
5331
5332
5333
5334
5335
5336
5337
5338
5339
5340
5341
5342
5343
5344
5345
5346
5347
5348
5349
5350
5351
5352
5353
5354
5355
5356
5357
5358
5359
5360
5361
5362
5363
5364
5365
5366
5367
5368
5369
5370
5371
5372
5373
5374
5375
5376
5377
5378
5379
5380
5381
5382
5383
5384
5385
5386
5387
5388
5389
5390
5391
5392
5393
5394
5395
5396
5397
5398
5399
5400
5401
5402
5403
5404
5405
5406
5407
5408
5409
5410
5411
5412
5413
5414
5415
5416
5417
5418
5419
5420
5421
5422
5423
5424
5425
5426
5427
5428
5429
5430
5431
5432
5433
5434
5435
5436
5437
5438
5439
5440
5441
5442
5443
5444
5445
5446
5447
5448
5449
5450
5451
5452
5453
5454
5455
5456
5457
5458
5459
5460
5461
5462
5463
5464
5465
5466
5467
5468
5469
5470
5471
5472
5473
5474
5475
5476
5477
5478
5479
5480
5481
5482
5483
5484
5485
5486
5487
5488
5489
5490
5491
5492
5493
5494
5495
5496
5497
5498
5499
5500
5501
5502
5503
5504
5505
5506
5507
5508
5509
5510
5511
5512
5513
5514
5515
5516
5517
5518
5519
5520
5521
5522
5523
5524
5525
5526
5527
5528
5529
5530
5531
5532
5533
5534
5535
5536
5537
5538
5539
5540
5541
5542
5543
5544
5545
5546
5547
5548
5549
5550
5551
5552
5553
5554
5555
5556
5557
5558
5559
5560
5561
5562
5563
5564
5565
5566
5567
5568
5569
5570
5571
5572
5573
5574
5575
5576
5577
5578
5579
5580
5581
5582
5583
5584
5585
5586
5587
5588
5589
5590
5591
5592
5593
5594
5595
5596
5597
5598
5599
5600
5601
5602
5603
5604
5605
5606
5607
5608
5609
5610
5611
5612
5613
5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
5865
5866
5867
5868
5869
5870
5871
5872
5873
5874
5875
5876
5877
5878
5879
5880
5881
5882
5883
5884
5885
5886
5887
5888
5889
5890
5891
5892
5893
5894
5895
5896
5897
5898
5899
5900
5901
5902
5903
5904
5905
5906
5907
5908
5909
5910
5911
5912
5913
5914
5915
5916
5917
5918
5919
5920
5921
5922
5923
5924
5925
5926
5927
5928
5929
5930
5931
5932
5933
5934
5935
5936
5937
5938
5939
5940
5941
5942
5943
5944
5945
5946
5947
5948
5949
5950
5951
5952
5953
5954
5955
5956
5957
5958
5959
5960
5961
5962
5963
5964
5965
5966
5967
5968
5969
5970
5971
5972
5973
5974
5975
5976
5977
5978
5979
5980
5981
5982
5983
5984
5985
5986
5987
5988
5989
5990
5991
5992
5993
5994
5995
5996
5997
5998
5999
6000
6001
6002
6003
6004
6005
6006
6007
6008
6009
6010
6011
6012
6013
6014
6015
6016
6017
6018
6019
6020
6021
6022
6023
6024
6025
6026
6027
6028
6029
6030
6031
6032
6033
6034
6035
6036
6037
6038
6039
6040
6041
6042
6043
6044
6045
6046
6047
6048
6049
6050
6051
6052
6053
6054
6055
6056
6057
6058
6059
6060
6061
6062
6063
6064
6065
6066
6067
6068
6069
6070
6071
6072
6073
6074
6075
6076
6077
6078
6079
6080
6081
6082
6083
6084
6085
6086
6087
6088
6089
6090
6091
6092
6093
6094
6095
6096
6097
6098
6099
6100
6101
6102
6103
6104
6105
6106
6107
6108
6109
6110
6111
6112
6113
6114
6115
6116
6117
6118
6119
6120
6121
6122
6123
6124
6125
6126
6127
6128
6129
6130
6131
6132
6133
6134
6135
6136
6137
6138
6139
6140
6141
6142
6143
6144
6145
6146
6147
6148
6149
6150
6151
6152
6153
6154
6155
6156
6157
6158
6159
6160
6161
6162
6163
6164
6165
6166
6167
6168
6169
6170
6171
6172
6173
6174
6175
6176
6177
6178
6179
6180
6181
6182
6183
6184
6185
6186
6187
6188
6189
6190
6191
6192
6193
6194
6195
6196
6197
6198
6199
6200
6201
6202
6203
6204
6205
6206
6207
6208
6209
6210
6211
6212
6213
6214
6215
6216
6217
6218
6219
6220
6221
6222
6223
6224
6225
6226
6227
6228
6229
6230
6231
6232
6233
6234
6235
6236
6237
6238
6239
6240
6241
6242
6243
6244
6245
6246
6247
6248
6249
6250
6251
6252
6253
6254
6255
6256
6257
6258
6259
6260
6261
6262
6263
6264
6265
6266
6267
6268
6269
6270
6271
6272
6273
6274
6275
6276
6277
6278
6279
6280
6281
6282
6283
6284
6285
6286
6287
6288
6289
6290
6291
6292
6293
6294
6295
6296
6297
6298
6299
6300
6301
6302
6303
6304
6305
6306
6307
6308
6309
6310
6311
6312
6313
6314
6315
6316
6317
6318
6319
6320
6321
6322
6323
6324
6325
6326
6327
6328
6329
6330
6331
6332
6333
6334
6335
6336
6337
6338
6339
6340
6341
6342
6343
6344
6345
6346
6347
6348
6349
6350
6351
6352
6353
6354
6355
6356
6357
6358
6359
6360
6361
6362
6363
6364
6365
6366
6367
6368
6369
6370
6371
6372
6373
6374
6375
6376
6377
6378
6379
6380
6381
6382
6383
6384
6385
6386
6387
6388
6389
6390
6391
6392
6393
6394
6395
6396
6397
6398
6399
6400
6401
6402
6403
6404
6405
6406
6407
6408
6409
6410
6411
6412
6413
6414
6415
6416
6417
6418
6419
6420
6421
6422
6423
6424
6425
6426
6427
6428
6429
6430
6431
6432
6433
6434
6435
6436
6437
6438
6439
6440
6441
6442
6443
6444
6445
6446
6447
6448
6449
6450
6451
6452
6453
6454
6455
6456
6457
6458
6459
6460
6461
6462
6463
6464
6465
6466
6467
6468
6469
6470
6471
6472
6473
6474
6475
6476
6477
6478
6479
6480
6481
6482
6483
6484
6485
6486
6487
6488
6489
6490
6491
6492
6493
6494
6495
6496
6497
6498
6499
6500
6501
6502
6503
6504
6505
6506
6507
6508
6509
6510
6511
6512
6513
6514
6515
6516
6517
6518
6519
6520
6521
6522
6523
6524
6525
6526
6527
6528
6529
6530
6531
6532
6533
6534
6535
6536
6537
6538
6539
6540
6541
6542
6543
6544
6545
6546
6547
6548
6549
6550
6551
6552
6553
6554
6555
6556
6557
6558
6559
6560
6561
6562
6563
6564
6565
6566
6567
6568
6569
6570
6571
6572
6573
6574
6575
6576
6577
6578
6579
6580
6581
6582
6583
6584
6585
6586
6587
6588
6589
6590
6591
6592
6593
6594
6595
6596
6597
6598
6599
6600
6601
6602
6603
6604
6605
6606
6607
6608
6609
6610
6611
6612
6613
6614
6615
6616
6617
6618
6619
6620
6621
6622
6623
6624
6625
6626
6627
6628
6629
6630
6631
6632
6633
6634
6635
6636
6637
6638
6639
6640
6641
6642
6643
6644
6645
6646
6647
6648
6649
6650
6651
6652
6653
6654
6655
6656
6657
6658
6659
6660
6661
6662
6663
6664
6665
6666
6667
6668
6669
6670
6671
6672
6673
6674
6675
6676
6677
6678
6679
6680
6681
6682
6683
6684
6685
6686
6687
6688
6689
6690
6691
6692
6693
6694
6695
6696
6697
6698
6699
6700
6701
6702
6703
6704
6705
6706
6707
6708
6709
6710
6711
6712
6713
6714
6715
6716
6717
6718
6719
6720
6721
6722
6723
6724
6725
6726
6727
6728
6729
6730
6731
6732
6733
6734
6735
6736
6737
6738
6739
6740
6741
6742
6743
6744
6745
6746
6747
6748
6749
6750
6751
6752
6753
6754
6755
6756
6757
6758
6759
6760
6761
6762
6763
6764
6765
6766
6767
6768
6769
6770
6771
6772
6773
6774
6775
6776
6777
6778
6779
6780
6781
6782
6783
6784
6785
6786
6787
6788
6789
6790
6791
6792
6793
6794
6795
6796
6797
6798
6799
6800
6801
6802
6803
6804
6805
6806
6807
6808
6809
6810
6811
6812
6813
6814
6815
6816
6817
6818
6819
6820
6821
6822
6823
6824
6825
6826
6827
6828
6829
6830
6831
6832
6833
6834
6835
6836
6837
6838
6839
6840
6841
6842
6843
6844
6845
6846
6847
6848
6849
6850
6851
6852
6853
6854
6855
6856
6857
6858
6859
6860
6861
6862
6863
6864
6865
6866
6867
6868
6869
6870
6871
6872
6873
6874
6875
6876
6877
6878
6879
6880
6881
6882
6883
6884
6885
6886
6887
6888
6889
6890
6891
6892
6893
6894
6895
6896
6897
6898
6899
6900
6901
6902
6903
6904
6905
6906
6907
6908
6909
6910
6911
6912
6913
6914
6915
6916
6917
6918
6919
6920
6921
6922
6923
6924
6925
6926
6927
6928
6929
6930
6931
6932
6933
6934
6935
6936
6937
6938
6939
6940
6941
6942
6943
6944
6945
6946
6947
6948
6949
6950
6951
6952
6953
6954
6955
6956
6957
6958
6959
6960
6961
6962
6963
6964
6965
6966
6967
6968
6969
6970
6971
6972
6973
6974
6975
6976
6977
6978
6979
6980
6981
6982
6983
6984
6985
6986
6987
6988
6989
6990
6991
6992
6993
6994
6995
6996
6997
6998
6999
7000
7001
7002
7003
7004
7005
7006
7007
7008
7009
7010
7011
7012
7013
7014
7015
7016
7017
7018
7019
7020
7021
7022
7023
7024
7025
7026
7027
7028
7029
7030
7031
7032
7033
7034
7035
7036
7037
7038
7039
7040
7041
7042
7043
7044
7045
7046
7047
7048
7049
7050
7051
7052
7053
7054
7055
7056
7057
7058
7059
7060
7061
7062
7063
7064
7065
7066
7067
7068
7069
7070
7071
7072
7073
7074
7075
7076
7077
7078
7079
7080
7081
7082
7083
7084
7085
7086
7087
7088
7089
7090
7091
7092
7093
7094
7095
7096
7097
7098
7099
7100
7101
7102
7103
7104
7105
7106
7107
7108
7109
7110
7111
7112
7113
7114
7115
7116
7117
7118
7119
7120
7121
7122
7123
7124
7125
7126
7127
7128
7129
7130
7131
7132
7133
7134
7135
7136
7137
7138
7139
7140
7141
7142
7143
7144
7145
7146
7147
7148
7149
7150
7151
7152
7153
7154
7155
7156
7157
7158
7159
7160
7161
7162
7163
7164
7165
7166
7167
7168
7169
7170
7171
7172
7173
7174
7175
7176
7177
7178
7179
7180
7181
7182
7183
7184
7185
7186
7187
7188
7189
7190
7191
7192
7193
7194
7195
7196
7197
7198
7199
7200
7201
7202
7203
7204
7205
7206
7207
7208
7209
7210
7211
7212
7213
7214
7215
7216
7217
7218
7219
7220
7221
7222
7223
7224
7225
7226
7227
7228
7229
7230
7231
7232
7233
7234
7235
7236
7237
7238
7239
7240
7241
7242
7243
7244
7245
7246
7247
7248
7249
7250
7251
7252
7253
7254
7255
7256
7257
7258
7259
7260
7261
7262
7263
7264
7265
7266
7267
7268
7269
7270
7271
7272
7273
7274
7275
7276
7277
7278
7279
7280
7281
7282
7283
7284
7285
7286
7287
7288
7289
7290
7291
7292
7293
7294
7295
7296
7297
7298
7299
7300
7301
7302
7303
7304
7305
7306
7307
7308
7309
7310
7311
7312
7313
7314
7315
7316
7317
7318
7319
7320
7321
7322
7323
7324
7325
7326
7327
7328
7329
7330
7331
7332
7333
7334
7335
7336
7337
7338
7339
7340
7341
7342
7343
7344
7345
7346
7347
7348
7349
7350
7351
7352
7353
7354
7355
7356
7357
7358
7359
7360
7361
7362
7363
7364
7365
7366
7367
7368
7369
7370
7371
7372
7373
7374
7375
7376
7377
7378
7379
7380
7381
7382
7383
7384
7385
7386
7387
7388
7389
7390
7391
7392
7393
7394
7395
7396
7397
7398
7399
7400
7401
7402
7403
7404
7405
7406
7407
7408
7409
7410
7411
7412
7413
7414
7415
7416
7417
7418
7419
7420
7421
7422
7423
7424
7425
7426
7427
7428
7429
7430
7431
7432
7433
7434
7435
7436
7437
7438
7439
7440
7441
7442
7443
7444
7445
7446
7447
7448
7449
7450
7451
7452
7453
7454
7455
7456
7457
7458
7459
7460
7461
7462
7463
7464
7465
7466
7467
7468
7469
7470
7471
7472
7473
7474
7475
7476
7477
7478
7479
7480
7481
7482
7483
7484
7485
7486
7487
7488
7489
7490
7491
7492
7493
7494
7495
7496
7497
7498
7499
7500
7501
7502
7503
7504
7505
7506
7507
7508
7509
7510
7511
7512
7513
7514
7515
7516
7517
7518
7519
7520
7521
7522
7523
7524
7525
7526
7527
7528
7529
7530
7531
7532
7533
7534
7535
7536
7537
7538
7539
7540
7541
7542
7543
7544
7545
7546
7547
7548
7549
7550
7551
7552
7553
7554
7555
7556
7557
7558
7559
7560
7561
7562
7563
7564
7565
7566
7567
7568
7569
7570
7571
7572
7573
7574
7575
7576
7577
7578
7579
7580
7581
7582
7583
7584
7585
7586
7587
7588
7589
7590
7591
7592
7593
7594
7595
7596
7597
7598
7599
7600
7601
7602
7603
7604
7605
7606
7607
7608
7609
7610
7611
7612
7613
7614
7615
7616
7617
7618
7619
7620
7621
7622
7623
7624
7625
7626
7627
7628
7629
7630
7631
7632
7633
7634
7635
7636
7637
7638
7639
7640
7641
7642
7643
7644
7645
7646
7647
7648
7649
7650
7651
7652
7653
7654
7655
7656
7657
7658
7659
7660
7661
7662
7663
7664
7665
7666
7667
7668
7669
7670
7671
7672
7673
7674
7675
7676
7677
7678
7679
7680
7681
7682
7683
7684
7685
7686
7687
7688
7689
7690
7691
7692
7693
7694
7695
7696
7697
7698
7699
7700
7701
7702
7703
7704
7705
7706
7707
7708
7709
7710
7711
7712
7713
7714
7715
7716
7717
7718
7719
7720
7721
7722
7723
7724
7725
7726
7727
7728
7729
7730
7731
7732
7733
7734
7735
7736
7737
7738
7739
7740
7741
7742
7743
7744
7745
7746
7747
7748
7749
7750
7751
7752
7753
7754
7755
7756
7757
7758
7759
7760
7761
7762
7763
7764
7765
7766
7767
7768
7769
7770
7771
7772
7773
7774
7775
7776
7777
7778
7779
7780
7781
7782
7783
7784
7785
7786
7787
7788
7789
7790
7791
7792
7793
7794
7795
7796
7797
7798
7799
7800
7801
7802
7803
7804
7805
7806
7807
7808
7809
7810
7811
7812
7813
7814
7815
7816
7817
7818
7819
7820
7821
.if  \n(zZ=1 .ig zZ
.\"
.\" MAN PAGE COMMENTS to
.\"
.\"	Chet Ramey
.\"	Case Western Reserve University
.\"	chet.ramey@case.edu
.\"
.\"	Last Change: Sun Feb  2 16:21:40 EST 2014
.\"
.\" bash_builtins, strip all but Built-Ins section
.if  \n(zY=1 .ig zY
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.\" This file is distributed under the same license as original manpage
.\" Copyright of the original manpage:
.\" Copyright © 1987-2010 Free Software Foundation, Inc. (GPL-3)
.\" Copyright © of Polish translation:
.\" Wojtek Kotwica (PTM) <wkotwica@post.pl>, 2000, 2002.
.\" Michał Kułach <michal.kulach@gmail.com>, 2012, 2013, 2014.
.TH BASH 1 "2 lutego 2014" "GNU Bash 4.3" 
.de  }1
.ds ]X \&\\*(]B\\
.nr )E 0
.if !"\\$1"" .nr )I \\$1n
.}f
.ll \\n(LLu
.in \\n()Ru+\\n(INu+\\n()Iu
.ti \\n(INu
.ie !\\n()Iu+\\n()Ru-\w\\*(]Xu-3p \{\\*(]X
.br\}
.el \\*(]X\h|\\n()Iu+\\n()Ru\c
.}f
..
.\"
.\" There's some problem with having a `@'
.\" in a tagged paragraph with the BSD man macros.
.\" It has to do with `@' appearing in the }1 macro.
.\" This is a problem on 4.3 BSD and Ultrix, but Sun
.\" appears to have fixed it.
.\" If you're seeing the characters
.\" `@u-3p' appearing before the lines reading
.\" `possible-hostname-completions
.\" and `complete-hostname' down in READLINE,
.\" then uncomment this redefinition.
.\"
.de  FN
\fI\|\\$1\|\fP
..
.\"
.\" File Name macro.  This used to be `.PN', for Path Name,
.\" but Sun doesn't seem to like that very much.
.\"
.SH NAZWA
bash \- GNU Bourne\-Again SHell
.SH SKŁADNIA
\fBbash\fP [\fIopcje\fP] [\fIłańcuch_polecenia\fP | \fIplik\fP]
.SH PRAWA\ AUTORSKIE
.if  n Bash is Copyright (C) 1989-2013 by the Free Software Foundation, Inc.
.if  t Bash is Copyright \(co 1989-2013 by the Free Software Foundation, Inc.
.SH OPIS
\fBBash\fP jest zgodnym z \fBsh\fP interpreterem języka poleceń, wykonującym
polecenia ze standardowego wejścia bądź z pliku.  Włączono doń również
przydatne cechy zaczerpnięte z powłoki \fIKorna\fP i powłoki \fIC\fP (\fBksh\fP i
\fBcsh\fP).
.PP
\fBBash\fP w zamierzeniu jest implementacją zgodną z POSIX\-ową specyfikacją
powłok i narzędzi \-\- IEEE POSIX Shell and Utilities specification (IEEE
Standard 1003.1). \fBBash\fP może być skonfigurowany w ten sposób, aby był
domyślnie zgodny z normą POSIX.
.SH OPCJE
Oprócz jednoznakowych opcji powłoki udokumentowanych w opisie wbudowanego
polecenia \fBset\fP, polecenia wbudowane mogą być użyte jako opcje przy
wywołaniu powłoki. Dodatkowo, \fBbash\fP przy wywołaniu interpretuje poniższe
opcje:
.PP
.PD 0
.TP  10
\fB\-c\fP
Jeśli występuje opcja \fB\-c\fP, to polecenia odczytywane są z pierwszego
argumentu, niebędącego opcją \fIłańcucha_polecenia\fP. Jeżeli po
\fIłańcuchu_polecenia\fP istnieją argumenty, to są one przypisywane do
argumentów pozycyjnych, poczynając od \fB$0\fP.
.TP 
\fB\-i\fP
Jeżeli występuje opcja \fB\-i\fP, to powłoka jest \fIinteraktywna\fP.
.TP 
\fB\-l\fP
Program \fBbash\fP będzie działał jakby został wywołany jako powłoka
zgłoszeniowa (patrz niżej
.SM
\fBWYWOŁANIE\fP).
.TP 
\fB\-r\fP
Jeżeli występuje opcja \fB\-r\fP, to powłoka staje się powłoką \fIokrojoną\fP
(restricted). Patrz poniżej \fBPOWŁOKA OKROJONA\fP.
.TP 
\fB\-s\fP
Jeśli występuje opcja \fB\-s\fP lub po przetworzeniu opcji nie pozostają żadne
argumenty, to polecenia odczytywane są ze standardowego wejścia. Opcja ta
umożliwia na ustawienie parametrów pozycyjnych podczas wywołania powłoki
interaktywnej.
.TP 
\fB\-D\fP
Na standardowym wyjściu wypisywana jest lista łańcuchów cytowanych
cudzysłowem poprzedzonych znakiem \fB$\fP.  Są to łańcuchy będące przedmiotem
tłumaczenia języka, gdy bieżącym ustawieniem regionalnym (locale) nie jest
\fBC\fP ani \fBPOSIX\fP.  Implikuje to opcję \fB\-n\fP; nie zostaną wykonane żadne
polecenia.
.TP 
\fB[\-+]O [\fP\fIopcja_shopt\fP\fB]\fP
\fIopcja_shopt\fP jest jedną z opcji powłoki akceptowanych przez polecenie
wbudowane \fBshopt\fP (zobacz
.SM
\fBWBUDOWANE POLECENIA POWŁOKI\fP poniżej).
Jeśli występuje \fIopcja_shopt\fP, to \fB\-O\fP nadaje wartość tej opcji, zaś \fB+O\fP
unieważnia ją.  Jeżeli nie podano \fIopcji_shopt\fP, to na standardowym wyjściu
wypisywane są nazwy i wartości opcji powłoki akceptowanych przez \fBshopt\fP.
Jeśli opcją wywołania jest \fB+O\fP, tworzone wyjście jest formatowane w taki
sposób, by można było wykorzystać je jako wejście.
.TP 
\fB\-\-\fP
Zapis \fB\-\-\fP sygnalizuje koniec opcji i wyłącza dalsze ich przetwarzanie.
Argumenty występujące po \fB\-\-\fP traktowane są jako nazwy plików i
argumenty. Argument \fB\-\fP jest równoważnikiem \fB\-\-\fP.
.PD
.PP
\fBBash\fP interpretuje także wiele opcji wieloznakowych.  Jeśli mają zostać
rozpoznane, opcje te muszą pojawić się w wierszu poleceń przed opcjami
jednoznakowymi,
.PP
.PD 0
.TP 
\fB\-\-debugger\fP
Ustawia profil debuggera do wykonania, przed uruchomieniem powłoki. Włącza
rozszerzony tryb debugowania (patrz opis opcji \fBextdebug\fP do wbudowanego
polecenia \fBshopt\fP poniżej).
.TP 
\fB\-\-dump\-po\-strings\fP
Równoważne \fB\-D\fP, ale wyjście jest w formacie pliku GNU \fIgettext\fP \fBpo\fP
(portable object).
.TP 
\fB\-\-dump\-strings\fP
Równoważnik \fB\-D\fP.
.TP 
\fB\-\-help\fP
Wyświetla na standardowym wyjściu komunikat o użytkowaniu i pomyślnie kończy
pracę.
.TP 
\fB\-\-init\-file\fP \fIplik\fP
.PD 0
.TP 
\fB\-\-rcfile\fP \fIplik\fP
.PD
Wykonuje polecenia z podanego \fIpliku\fP zamiast ze standardowego systemowego
pliku inicjującego \fB/etc/bash.bashrc\fP i osobistego pliku inicjującego
\fI~/.bashrc\fP, jeśli powłoka jest interaktywna.  Zobacz
.SM
\fBWYWOŁANIE\fP
poniżej.
.TP 
\fB\-\-login\fP
Równoważne \fB\-l\fP.
.TP 
\fB\-\-noediting\fP
Nie używa biblioteki GNU \fBreadline\fP do odczytu wierszy poleceń w trybie
interaktywnym.
.TP 
\fB\-\-noprofile\fP
Nie odczytuje ani ogólnosystemowego pliku startowego
.FN /etc/profile
ani żadnego z osobistych plików inicjujących \fI~/.bash_profile\fP,
\fI~/.bash_login\fP czy \fI~/.profile\fP.  Domyślnie, \fBbash\fP czyta te pliki gdy
jest wywołany jako powłoka zgłoszeniowa (zobacz
.SM
\fBWYWOŁANIE\fP
poniżej).
.TP 
\fB\-\-norc\fP
Nie odczytuje i nie wykonuje systemowego pliku inicjującego
\fI/etc/bash.bashrc\fP oraz osobistego pliku inicjującego \fI~/.bashrc\fP jeśli
powłoka jest interaktywna. Opcja ta jest domyślnie włączona, jeżeli powłokę
wywołano jako \fBsh\fP.
.TP 
\fB\-\-posix\fP
Zmienia zachowanie \fBbash\fP tam, gdzie domyślne działanie różni się od
standardu POSIX, tak by spełniać standard (\fItryb posix\fP). Więcej informacji
o tym, jak tryb posix wpływa na zachowanie powłoki można znaleźć w
dokumencie do którego odsyła
.SM
\fBZOBACZ TAKŻE\fP.
.TP 
\fB\-\-restricted\fP
Powłoka staje się okrojona (zobacz
.SM
\fBPOWŁOKA OKROJONA\fP poniżej).
.TP 
\fB\-\-verbose\fP
Równoważnik opcji \fB\-v\fP.
.TP 
\fB\-\-version\fP
Pokazuje na standardowym wyjściu informację o wersji tego egzemplarza
\fBbash\fP i pomyślnie kończy pracę.
.PD
.SH ARGUMENTY
Jeśli po przetworzeniu opcji pozostają jakieś argumenty, a nie podano ani
opcji \fB\-c\fP ani \fB\-s\fP, to zakłada się, że pierwszy argument jest nazwą pliku
zawierającego polecenia powłoki. Jeżeli \fBbash\fP został wywołany w taki
sposób, to \fB$0\fP przypisywana jest nazwa pliku z poleceniami, a parametrom
pozycyjnym pozostałe argumenty. \fBBash\fP odczytuje i wykonuje polecenia z
tego pliku, a następnie kończy pracę. Kod zakończenia \fBbash\fPa jest wówczas
kodem zakończenia ostatniego wykonanego polecenia skryptu. Jeśli nie
wykonano żadnego polecenia, to kod zakończenia wynosi 0. Najpierw wykonywana
jest próba otworzenia pliku w bieżącym katalogu, a następnie, jeśli się ona
nie powiedzie, powłoka przeszukuje katalogi w
.SM
\fBPATH\fP szukając
skryptu.
.SH WYWOŁANIE
\fIPowłoka zgłoszeniowa\fP (login shell) to taka, w której pierwszym znakiem
zerowego argumentu jest \fB\-\fP, lub taka, którą uruchomiono z opcją
\fB\-\-login\fP.
.PP
Powłoka \fIinteraktywna\fP to taka, którą uruchomiono bez argumentów innych niż
opcje i bez opcji \fB\-c\fP; zarówno jej standardowe wejście jak i wyjście
powiązane jest z terminalami (tak jak określiła to funkcja \fIisatty\fP(3)),
albo taka, którą uruchomiono z opcją \fB\-i\fP.
.SM
Jeśli \fBbash\fP jest
interaktywny, to ustawiane jest \fBPS1\fP zaś \fB$\-\fP zawiera \fBi\fP; pozwala to
skryptowi powłoki lub plikowi startowemu na sprawdzanie tego stanu.
.PP
Poniższe akapity opisują, jak \fBbash\fP wykonuje swoje pliki startowe.  Jeśli
któryś z tych plików istnieje, ale nie może być odczytany, to \fBbash\fP
zgłasza błąd. Tyldy (~) w nazwach plików interpretowane są według reguł
opisanych poniżej w części \fBInterpretacja tyld\fP sekcji
.SM
\fBINTERPRETACJA\fP.
.PP
Gdy \fBbash\fP wywoływany jest jako powłoka zgłoszeniowa lub jako powłoka
nie\-interaktywna z opcją \fB\-\-login\fP, w pierwszej kolejności czyta i wykonuje
polecenia z pliku \fI/etc/profile\fP, jeśli takowy istnieje.  Po odczytaniu
tego pliku, szuka \fI~/.bash_profile\fP, \fI~/.bash_login\fP i \fI~/.profile\fP, w
tej kolejności, po czym odczytuje i wykonuje polecenia z pierwszego
istniejącego i dającego się odczytać.  Można posłużyć się opcją
\fB\-\-noprofile\fP podczas uruchamiania powłoki, by zakazać takiego zachowania.
.PP
Podczas kończenia pracy powłoki zgłoszeniowej, \fBbash\fP czyta i wykonuje
polecenia z pliku \fI~/.bash_logout\fP, jeśli taki istnieje.
.PP
Jeżeli uruchamiana jest powłoka interaktywna nie będąca powłoką
zgłoszeniową, \fBbash\fP czyta i wykonuje polecenia z \fI/etc/bash.bashrc\fP i
\fI~/.bashrc\fP, jeśli takie pliki istnieją.  Może to być zakazane za pomocą
opcji \fB\-\-norc\fP.  Opcja \fB\-\-rcfile\fP \fIplik\fP wymusi odczyt i wykonanie
poleceń z \fIpliku\fP zamiast z \fI/etc/bash.bashrc\fP i \fI~/.bashrc\fP.
.PP
Jeśli \fBbash\fP startuje w trybie nie\-interaktywnym, na przykład w celu
uruchomienia skryptu powłoki, to szuka w środowisku zmiennej
.SM
\fBBASH_ENV\fP, interpretuje jej wartość, jeśli ją znalazł, i używa otrzymanej
wartości jako nazwy pliku do odczytania i wykonania.  \fBBash\fP zachowuje się
tak, jakby były wykonane następujące polecenia:
.sp .5
.RS
.if  t \f(CWif [ \-n "$BASH_ENV" ]; then . "$BASH_ENV"; fi\fP
.if  n if [ \-n "$BASH_ENV" ]; then . "$BASH_ENV"; fi
.RE
.sp .5
ale do szukania nazwy pliku nie jest używana wartość zmiennej
.SM
\fBPATH\fP.
.PP
Jeżeli \fBbash\fP wywołano pod nazwą \fBsh\fP, to próbuje on naśladować zachowanie
startowe historycznych wersji \fBsh\fP tak ściśle jak to jest możliwe, przy
równoczesnym spełnianiu standardu POSIX.  Wywołany jako powłoka interaktywna
lub powłoka nie\-interaktywna z opcją \fB\-\-login\fP, usiłuje na początku
odczytać i wykonać polecenia z \fI/etc/profile\fP i \fI~/.profile\fP, w tej
kolejności.  W celu zakazania tego zachowania można użyć opcji
\fB\-\-noprofile\fP.  Wywołany jako powłoka interaktywna pod nazwą \fBsh\fP, \fBbash\fP
poszukuje zmiennej
.SM
\fBENV\fP, interpretuje jej wartość, jeśli jest
zdefiniowana, i posługuje się otrzymaną wartością jako nazwą pliku, który ma
być odczytany i wykonany.  Ponieważ powłoka wywołana jako \fBsh\fP nie usiłuje
czytać ani wykonywać poleceń z jakichkolwiek innych plików startowych, opcja
\fB\-\-rcfile\fP nie ma żadnych skutków.  Powłoka nie\-interaktywna wywołana pod
nazwą \fBsh\fP nie próbuje czytać żadnych plików startowych.  Wywołany jako
\fBsh\fP, \fBbash\fP wchodzi w tryb \fIposix\fP po odczycie plików startowych.
.PP
Gdy \fBbash\fP uruchomiony jest w trybie \fIposix\fP, jak z opcją \fB\-\-posix\fP
wiersza poleceń, kieruje się standardem POSIX dla plików startowych.  W
trybie tym, powłoka interaktywna interpretuje zmienną
.SM
\fBENV\fP a
polecenia odczytywane i wykonywane są z pliku, którego nazwą jest
zinterpretowana wartość.  Nie są czytane inne pliki startowe.
.PP
\fBBash\fP usiłuje rozstrzygnąć, czy jest uruchomiony ze standardowym wejściem
podpiętym do połączenia sieciowego, przez demona powłoki zdalnej, zwykle
\fIrshd\fP lub przez bezpiecznego demona powłoki \fIsshd\fP.  Jeżeli stwierdzi, że
został uruchomiony w ten  sposób, to odczytuje i wykonuje polecenia z
\fI~/.bashrc\fP, jeśli plik ten istnieje i daje się czytać. Nie będzie tego
robił wywołany jako \fBsh\fP.  Można posłużyć się opcją \fB\-\-norc\fP, by zakazać
tego zachowania oraz opcją \fB\-\-rcfile\fP, by wymusić czytanie innego pliku,
ale ani \fIrshd\fP, ani \fIsshd\fP zazwyczaj nie wywołuje powłoki z tymi opcjami
ani nie pozwala na ich podanie.
.PP
Jeśli powłoka została uruchomiona z efektywnym id użytkownika (grupy) różnym
od id rzeczywistego, a nie podano opcji \fB\-p\fP, to nie są odczytywane żadne
pliki startowe, funkcje powłoki nie są dziedziczone ze środowiska, zmienne
.SM
\fBSHELLOPTSP\fP,
.SM
\fBBASHOPTS\fP,
.SM
\fBCDPATH\fP, i
.SM
\fBGLOBIGNORE\fP, jeśli jest takie występują w środowisku, są ignorowane a
efektywny identyfikator użytkownika jest ustawiany na jego identyfikator
rzeczywisty.  Jeśli przy wywołaniu podano opcję \fB\-p\fP, to zachowanie
startowe jest takie samo, ale nie jest resetowany efektywny id użytkownika.
.SH DEFINICJE
.PP
W pozostałej części tego dokumentu używane są poniższe definicje.
.PD 0
.TP 
\fBodstęp\fP
Spacja lub znak tabulacji.
.TP 
\fBsłowo\fP
Sekwencja znaków uważana przez powłokę za pojedynczą jednostkę. Znana też
jako \fBtoken\fP.
.TP 
\fBnazwa\fP
Jest to \fIsłowo\fP składające się wyłącznie ze znaków alfanumerycznych i
znaków podkreślenia, i rozpoczynające się znakiem alfabetycznym lub
podkreśleniem. Wspominane również jako \fBidentyfikator\fP.
.TP 
\fBmetaznak\fP
Znak, który, gdy nie jest cytowany, oddziela słowa. Jeden z poniższych:
.br
.RS
.PP
.if  t \fB|  &  ;  (  )  <  >  space  tab\fP
.if  n \fB|  & ; ( ) < > space tab\fP
.RE
.PP
.TP 
\fBoperator sterujący\fP
\fItoken\fP pełniący funkcję sterującą. Jest to jeden z poniższych symboli:
.RS
.PP
.if  t \fB||  &  &&  ;  ;;  (  )  |  |&    <newline>\fP
.if  n \fB|| & && ; ;; ( ) | |& <newline>\fP
.RE
.PD
.SH "SŁOWA ZASTRZEŻONE"
\fISłowa zastrzeżone\fP (reserved words) to takie, które mają dla powłoki
specjalne znaczenie.  Następujące słowa są rozpoznawane jako zastrzeżone,
gdy nie są cytowane i występują albo jako pierwsze słowo polecenia prostego
(zobacz
.SM
\fBGRAMATYKA POWŁOKI\fP poniżej) albo trzecie słowo poleceń
\fBcase\fP lub \fBfor\fP;
.if  t .RS
.PP
.B
.if  n ! case  coproc  do done elif else esac fi for function if in select then until while { } time [[ ]]
.if  t !    case    coproc    do    done    elif    else    esac    fi    for    function    if    in    select    then    until    while    {    }    time    [[    ]]
.if  t .RE
.SH "GRAMATYKA POWŁOKI"
.SS "Polecenia proste"
.PP
\fIPolecenie proste\fP jest sekwencją opcjonalnych przypisań zmiennych, po
której następują rozdzielane przez \fBodstęp\fP słowa i przekierowania, a
zakończoną \fIoperatorem sterującym\fP. Pierwsze słowo określa polecenie, jakie
ma zostać wykonane i jest przekazywane jako argument numer zero.  Pozostałe
słowa są przekazywane jako argumenty wywoływanego polecenia.
.PP
Wartością zwracaną \fIpolecenia prostego\fP jest jego kod zakończenia lub
128+\fIn\^\fP jeżeli polecenie przerwane jest sygnałem \fIn\fP.
.SS Potoki
.PP
\fIPotok\fP jest sekwencją jednego lub więcej poleceń rozdzielonych jednym z
operatorów kontrolnych \fB|\fP lub \fB|&\fP. Formatem potoku jest:
.RS
.PP
[\fBtime\fP [\fB\-p\fP]] [ ! ] \fIpolecenie\fP [ [\fB|\fP\(bv\fB|&\fP] \fIpolecenie2\fP ... ]
.RE
.PP
Standardowe wyjście z \fIpolecenia\fP połączone jest za pośrednictwem potoku ze
standardowym wejściem \fIpolecenia2\fP.  Połączenie to wykonywane jest przed
możliwymi przekierowaniami podanymi dla polecenia (zobacz poniżej
.SM
\fBPRZEKIEROWANIE\fP. Jeśli użyte jest \fB|&\fP, to standardowe wyjście błędów
\fIpolecenia\fP razem z jego standardowym wyjściem jest połączone ze
standardowym wejściem \fIpolecenia2\fP za pomocą potoku; jest to skrócona forma
\fB2>&1 |\fP. To bezpośrednie przekierowanie standardowego wyjścia błędów
jest przeprowadzane po wszystkich przekierowaniach określonych przez
polecenie.
.PP
Zwracanym kodem zakończenia potoku jest kod zakończenia ostatniego
polecenia, chyba że włączono opcję \fBpipefail\fP. W takim przypadku kod
zakończenia potoku jest wartością ostatniego (po prawej) polecenia, które
zakończyło się kodem niezerowym lub zero, jeśli wszystkie polecenia
zakończyły się powodzeniem. Jeżeli potok poprzedza zastrzeżone słowo \fB!\fP,
to kod zakończenia takiego potoku jest negacją (NOT) kodu zakończenia
ostatniego polecenia, zgodnie z powyższym opisem. Powłoka oczekuje na
zakończenie (terminate) wszystkich poleceń w potoku przed zwróceniem
wartości.
.PP
Jeżeli potok jest poprzedzony słowem zastrzeżonym \fBtime\fP, to po jego
zakończeniu podawany jest czas wykonywania, jak również czas użytkownika i
czas systemu zużyty na wykonanie.  Opcja \fB\-p\fP zmienia format tworzonych
wyników na określony przez POSIX. Jeśli powłoka znajduje się w \fItrybie
posix\fP, to nie rozpoznaje \fBtime\fP jako słowa zastrzeżonego, jeśli kolejny
token rozpoczyna się znakiem "\-". Do sformatowania łańcucha określającego,
jak powinna być wyświetlana informacja o czasach, można ustawić zmienną
.SM
\fBTIMEFORMAT\fP; zobacz opis
.SM
\fBTIMEFORMAT\fP w \fBZmienne powłoki\fP
poniżej.
.PP
Jeśli powłoka znajduje się w \fItrybie posix\fP, to po \fBtime\fP może wystąpić
znak nowego wiersza. W takim przypadku, powłoka wyświetla całkowity czas
użytkownika i systemu, skonsumowany przez powłokę i jej potomków. Zmienną
.SM
\fBTIMEFORMAT\fP można określić format informacji o czasie.
.PP
Każde polecenie w potoku uruchamiane jest jako odrębny proces (tj. w
podpowłoce).
.SS Listy
.PP
\fILista\fP jest potokiem lub sekwencją kilku potoków rozdzielonych jednym z
operatorów \fB;\fP, \fB&\fP, \fB&&\fP lub \fB\(bv\(bv\fP, i opcjonalnie zakończoną
jednym ze znaków \fB;\fP, \fB&\fP lub \fB<nowy\-wiersz>\fP.
.PP
Spośród tych operatorów listowych, \fB&&\fP i \fB\(bv\(bv\fP mają ten sam
priorytet, następujące po nich \fB;\fP i \fB&,\fP również mają równy między sobą
priorytet.
.PP
W zastępstwie średnika, w \fIliście\fP może pojawić się sekwencja jednego lub
więcej znaków nowego wiersza.
.PP
Jeśli polecenie zakończone jest operatorem sterującym \fB&\fP, to powłoka
wykonuje je w \fItle\fP (background) w podpowłoce.  Powłoka macierzysta nie
oczekuje na zakończenie polecenia, a zwracany kod wynosi 0. Polecenia
oddzielane znakiem średnika \fB;\fP wykonywane są sekwencyjnie; powłoka
oczekuje na zakończenie pracy przez każde z nich po kolei. Zwracany kod jest
kodem zakończenia ostatniego wykonanego polecenia.
.PP
Listy AND i OR są sekwencjami jednego lub więcej potoków oddzielonych
odpowiednio operatorami sterującymi \fB&&\fP i \fB||\fP. Listy AND i OR są
wykonywane z pozostawioną łącznością. Lista AND ma postać
.RS
.PP
\fIpolecenie1\fP \fB&&\fP \fIpolecenie2\fP
.RE
.PP
\fIpolecenie2\fP wykonywane jest wtedy, i tylko wtedy, gdy \fIpolecenie1\fP zwraca
zerowy kod zakończenia.
.PP
Lista OR ma postać
.RS
.PP
\fIpolecenie1\fP \fB\(bv\(bv\fP \fIpolecenie2\fP
.PP
.RE
.PP
\fIpolecenie2\fP jest wykonywane wtedy, i tylko wtedy, gdy \fIpolecenie1\fP zwraca
niezerowy kod zakończenia. Kod zwracany przez listy AND i OR jest kodem
zakończenia ostatniego wykonanego polecenia listy.
.SS "Polecenia złożone"
.PP
\fIPolecenie złożone\fP jest jednym z poniższych. W większości przypadków
\fIlista\fP w opisie polecenia może być oddzielona od reszty polecenie jedną
lub więcej znakami nowego wiersza, a po niej zamiast średnika może wystąpić
znak nowego wiersza.
.TP 
(\fIlista\fP)
\fILista\fP wykonywana jest w podpowłoce (patrz
.SM
\fBŚRODOWISKO\fP
\fBWYKONYWANIA\fP \fBPOLECEŃ\fP poniżej). Przypisania zmiennych i polecenia
wbudowane wpływające na środowisko powłoki nie zachowują swoich skutków po
zakończeniu polecenia. Zwracanym kodem jest kod zakończenia \fIlisty\fP.
.TP 
{ \fIlista\fP; }
\fILista\fP jest po prostu wykonywana w bieżącym środowisku powłoki.  \fILista\fP
musi być zakończona znakiem nowej linii lub średnika. Nazywane jest to
\fIpoleceniem grupowania\fP. Zwracanym kodem jest kod zakończenia \fIlisty\fP.
Należy pamiętać, że w przeciwieństwie do metaznaków \fB(\fP i \fB)\fP, \fB{\fP i \fB}\fP
są \fIsłowami zastrzeżonymi\fP i aby zostały rozpoznane muszą się pojawić tam,
gdzie dozwolone jest użycie słów zastrzeżonych.  Ponieważ nie powodują
podziału na słowa, muszą być oddzielone od \fIlisty\fP za pomocą białego znaku
lub innego metaznaku powłoki.
.TP 
((\fIwyrażenie\fP))
\fIWyrażenie\fP interpretowane jest zgodnie z zasadami opisanymi poniżej w
sekcji
.SM
\fBOBLICZANIE WYRAŻEŃ ARYTMETYCZNYCH\fP.  Jeśli wartość wyrażenia
jest niezerowa, to kodem zwracanym jest 0; w przeciwnym razie kodem
zwracanym jest 1. Jest to ściśle równoważne konstrukcji \fBlet
"\fP\fIwyrażenie\fP\fB"\fP.
.TP 
\fB[[\fP \fIwyrażenie\fP \fB]]\fP
Zwraca kod 0 lub 1 w zależności od interpretacji wyrażenia warunkowego
\fIwyrażenie\fP. Wyrażenia złożone są ze składowych (primaries)  opisanych
poniżej w opcji
.SM
\fBWYRAŻENIA WARUNKOWE\fP.  Na słowach pomiędzy \fB[[\fP a
\fB]]\fP nie są wykonywane rozwinięcia nazw plików ani podział na słowa; są
natomiast wykonywane: interpretacja tyld, parametrów i zmiennych,
interpretacja wyrażeń arytmetycznych, podstawianie wyników poleceń,
podstawianie wyników procesów i usunięcia cytowań. Operatory warunkowe,
takie jak \fB\-f\fP, nie mogą być cytowane, jeśli mają zostać rozpoznane jako
składowe.
.if  t .sp 0.5
.if  n .sp 1
Operatory \fB<\fP i \fB>\fP, gdy są używane z \fB[[\fP, sortują zgodnie z
porządkiem leksykograficznym, używając bieżącego ustawienia locale.
.PP
Proszę zapoznać się z wbudowanym poleceniem \fItest\fP (rozdział WBUDOWANE
POLECENIA POWŁOKI poniżej), aby dowiedzieć się jak obsługiwane są parametry
(np. sytuacja gdy ich nie podano).
.if  t .sp 0.5
.if  n .sp 1
Jeśli używane są operatory \fB==\fP i \fB!=\fP, to łańcuch po prawej stronie
operatora jest wzorcem i jest dopasowany zgodnie z opisanymi poniżej
regułami \fBDopasowania wzorca\fP, jakby włączono opcję powłoki
\fBextglob\fP. Operator \fB=\fP jest równoważny \fB==\fP. Jeśli włączono opcję
powłoki \fBnocasematch\fP, to przy dopasowaniu ignorowana jest wielkość
liter. Zwracaną wartością jest 0 gdy łańcuch pasuje (\fB==\fP) lub nie pasuje
(\fB!=\fP) i 1 w przeciwnym wypadku. Każda część wzorca może być cytowana, aby
wymusić jej dopasowanie jako łańcuch.
.if  t .sp 0.5
.if  n .sp 1
Dostępny jest dodatkowy operator dwuargumentowy \fB=~\fP, który ma ten sam
priorytet co \fB==\fP i \fB!=\fP. Gdy zostanie użyty, łańcuch po prawej stronie
operatora jest rozszerzonym wyrażeniem regularnym i jest odpowiednio
dopasowywany (jak przez \fIregex\fP(3)). Zwracaną wartością jest 0 gdy łańcuch
pasuje do wzorca i 1 w przeciwnym wypadku. Jeśli wyrażenie regularne ma
nieprawidłową składnię, zwracane jest 2. Jeśli włączono opcję powłoki
\fBnocasematch\fP, to przy dopasowaniu ignorowana jest wielkość liter. Każda
część wzorca może być cytowana, aby wymusić jej dopasowanie jako
łańcuch. Wyrażenia w nawiasach będące częścią wyrażeń\ regularnych muszą\ być
traktowane z dużą ostrożnością, ponieważ zwykłe znaki cytowania trasą\ swe
znaczenie między nawiasami. Jeśli wzorzec jest przechowywany w zmiennej
powłoki, zacytowanie go wymusza dopasowanie całego wzorca jako
łańcucha. Podłańcuch dopasowany przez podwyrażenie ujęte w nawiasy wewnątrz
wyrażenia regularnego, jest zapisywany w zmiennej tablicowej
.SM
\fBBASH_REMATCH\fP. Element
.SM
\fBBASH_REMATCH\fP z indeksem 0 jest częścią
łańcucha pasującą do całego wyrażenia regularnego. Element tej zmiennej z
indeksem \fIn\fP jest częścią łańcucha pasującą do \fIn\fP\-tego podwyrażenia
ujętego w nawiasy.
.if  t .sp 0.5
.if  n .sp 1
Wyrażenia można łączyć przy pomocy następujących operatorów, wymienionych w
kolejności malejącego priorytetu:
.if  t .sp 0.5
.if  n .sp 1
.RS
.PD 0
.TP 
\fB( \fP\fIwyrażenie\fP\fB )\fP
Zwraca wartość \fIwyrażenia\fP. Może służyć do unieważnienia zwykłej kolejności
operatorów.
.TP 
\fB! \fP\fIwyrażenie\fP
Prawda jeżeli \fIwyrażenie\fP jest fałszywe.
.TP 
\fIwyrażenie1\fP \fB&&\fP \fIwyrażenie2\fP
Prawda jeśli zarówno \fIwyrażenie1\fP jak i \fIwyrażenie2\fP są prawdziwe.
.TP 
\fIwyrażenie1\fP \fB||\fP \fIwyrażenie2\fP
Prawda jeśli choć jedno spośród \fIwyrażenie1\fP lub \fIwyrażenie2\fP jest
prawdziwe.
.PD
.LP
Operatory \fB&&\fP i \fB||\fP nie wykonują \fIwyrażenia2\fP jeżeli wartość
\fIwyrażenia1\fP wystarcza do określenia wartości, jaka zostanie zwrócona przez
całe wyrażenie warunkowe.
.RE
.TP 
\fBfor\fP \fInazwa\fP [ [ \fBin\fP [ \fIsłowo ...\fP ] ] ; ] \fBdo\fP \fIlista\fP ; \fBdone\fP
Interpretowane są słowa następujące po \fBin\fP, tworząc listę elementów.
Zmiennej \fInazwa\fP nadawana jest kolejno wartość każdego elementu tej listy i
każdorazowo wykonywana jest \fIlista\fP poleceń.  Jeżeli pominięto \fBin\fP
\fIsłowo\fP, to polecenie \fBfor\fP wykonuje \fIlistę\fP po jednym razie dla każdego
ustawionego parametru pozycyjnego (zobacz
.SM
\fBPARAMETRY\fP poniżej).
Zwracanym kodem jest kod zakończenia ostatniego wykonanego polecenia.  Jeśli
interpretacja elementów następujących po \fBin\fP daje w wyniku pustą listę, to
nie są wykonywane żadne polecenia i zwracany jest kod 0.
.TP 
\fBfor\fP (( \fIwyr1\fP ; \fIwyr2\fP ; \fIwyr3\fP )) ; \fBdo\fP \fIlista\fP ; \fBdone\fP
Na początku obliczane jest wyrażenie arytmetyczne \fIwyr1\fP, zgodnie z
zasadami opisanymi poniżej w
.SM
\fBOBLICZANIE WYRAŻEŃ ARYTMETYCZNYCH\fP.
Następnie wielokrotnie obliczane jest \fIwyr2\fP, aż do osiągnięcia przez nie
wartości zero.  Każdorazowo gdy obliczone \fIwyr2\fP jest niezerowe, wykonywana
jest \fIlista\fP i obliczane jest wyrażenie arytmetyczne \fIwyr3\fP.  Jeśli
pominięto któreś z wyrażeń, to zachowuje się ono tak, jakby przyjmowało
wartość 1.  Zwracanym kodem jest kod zakończenia ostatniego wykonanego
polecenia \fIlisty\fP, lub fałsz jeśli któreś z wyrażeń jest niepoprawne.
.TP 
\fBselect\fP \fInazwa\fP [ \fBin\fP \fIsłowo\fP ] ; \fBdo\fP \fIlista\fP ; \fBdone\fP
Interpretowana jest lista słów następujących po \fBin\fP, tworząc listę
elementów. Zestaw zinterpretowanych słów wypisywany jest na standardowym
wyjściu, każde poprzedzone liczbą kolejną. Jeśli pominięto \fBin\fP \fIsłowo\fP,
to wypisywane są parametry pozycyjne (zobacz
.SM
\fBPARAMETRY\fP poniżej).
Następnie wyświetlany jest znak zachęty
.SM
\fBPS3\fP i czytany jest wiersz
ze standardowego wejścia. Jeżeli wiersz składa się z liczby odpowiadającej
jednemu z wyświetlonych słów, to zmiennej \fInazwa\fP przypisywana jest wartość
tego słowa.  Jeśli wiersz jest pusty, słowa i zachęta wyświetlane są
ponownie. Jeżeli odczytano EOF, to polecenie kończy pracę. Każda inna
wartość powoduje, że \fInazwie\fP zostanie przypisany łańcuch pusty. Odczytany
wiersz zachowywany jest w zmiennej
.SM
\fBREPLY\fP.  \fIlista\fP wykonywana
jest po każdym wyborze, dopóki nie zostanie wykonane polecenie \fBbreak\fP.
Kodem zakończenia \fBselect\fP jest kod zakończenia ostatniego wykonanego
polecenia \fIlisty\fP lub zero jeśli nie wykonano żadnych poleceń.
.TP 
\fBcase\fP \fIsłowo\fP \fBin\fP [ [(] \fIwzorzec\fP [ \fB|\fP \fIwzorzec\fP ] ... ) \fIlista\fP ;; ] ... \fBesac\fP
Polecenie \fBcase\fP najpierw interpretuje \fIsłowo\fP i próbuje dopasować
uzyskany wynik każdego z \fIwzorców\fP po kolei, posługując się tymi samymi
regułami dopasowywania, co dla rozwijania nazw ścieżkowych (zobacz
\fBRozwijanie nazw ścieżkowych\fP poniżej). \fISłowo\fP jest interpretowane
zgodnie z interpretacją tyldy, podstawianiem parametrów i zmiennych,
podstawianiem wyrażeń arytmetycznych, wyników poleceń i wyników procesów
oraz usunięciem cytowań. Każdy sprawdzany \fIwzorzec\fP podlega interpretacji
tyldy, podstawianiu parametrów i zmiennych, podstawianiu wyrażeń
arytmetycznych, wyników poleceń i wyników procesów. Jeśli włączono opcję
powłoki \fBnocasematch\fP, to dopasowanie jest przeprowadzane bez uwzględniania
wielkości liter. Gdy znalezione zostanie dopasowanie, wykonywana jest
odpowiadająca mu \fIlista\fP. Jeśli użyto operatora \fB;;\fP, nie przeprowadza się
próby kolejnego dopasowania po znalezieniu pierwszego pasującego
wzorca. Użycie \fB;&\fP w miejsce \fB;;\fP powoduje kontynuowanie wykonywania z
powiązaną \fIlistą\fP, z następnym zestawem wzorców. Jeśli użyje się w zamian
\fB;;&\fP, to powłoka sprawdza następną listę wzorców twierdzenia (jeśli
istnieje) i wykonuje każdą powiązaną \fIlistę\fP w przypadku pomyślnego
dopasowania. Jeżeli żaden ze wzorców nie pasuje, to kodem zakończenia jest
zero. W przeciwnym razie jest on równy kodowi zakończenia ostatniego z
wykonanych poleceń \fIlisty\fP.
.TP 
\fBif\fP \fIlista\fP; \fBthen\fP \fIlista\fP; [ \fBelif\fP \fIlista\fP; \fBthen\fP \fIlista\fP; ] ... [ \fBelse\fP \fIlista\fP; ] \fBfi\fP
Wykonywana jest \fIlista\fP występująca po \fBif\fP.  Jeżeli jej kod zakończenia
jest zerowy, to wykonywana jest \fIlista\fP klauzuli \fBthen\fP. W przeciwnym
wypadku, wykonywana jest \fIlista\fP każdego \fBelif\fP po kolei; jeśli kod
zakończenia którejś wynosi 0, to wykonywana jest \fIlista\fP \fBthen\fP i
polecenie jest kończone. Jeżeli nie wystąpił żaden z powyższych przypadków,
to wykonywana jest \fIlista\fP występująca po klauzuli \fBelse\fP, jeśli takowa
istnieje. Kodem zakończenia jest kod ostatniego wykonanego polecenia listy
lub zero jeśli żaden z warunków nie okazał się prawdziwy.
.TP 
\fBwhile\fP \fIlista\-1\fP; \fBdo\fP \fIlista\-2\fP; \fBdone\fP
.PD 0
.TP 
\fBuntil\fP \fIlista\-1\fP; \fBdo\fP \fIlista\-2\fP; \fBdone\fP
.PD
Polecenie \fBwhile\fP wykonuje listę \fIlista\-2\fP w sposób ciągły dopóty, dopóki
ostatnie polecenie listy \fIlista\-1\fP nie zwróci kodu zakończenia równego
zero. Polecenie \fBuntil\fP działa podobnie do polecenia \fBwhile\fP, a jedyną
różnicą jest to, że test jest zanegowany \- \fIlista\-2\fP jest wykonywana tak
długo, aż ostatnie polecenie \fIlisty\-1\fP nie zwróci kodu zakończenia różnego
od zera. Kod wyjścia poleceń \fBwhile\fP i \fBuntil\fP jest kodem zakończenia
ostatniego polecenia wykonanego z \fIlisty\-2\fP lub zerem, jeśli żadne z nich
nie zostało wykonane.
.SS "Współprocesy (koprocesy)"
.PP
\fIWspółproces\fP jest poleceniem powłoki poprzedzonym słowem zastrzeżonym
\fBcoproc\fP. Współproces jest wykonywany w podpowłoce w sposób asynchroniczny,
jeśli polecenie zostało zakończone operatorem kontrolnym \fB&\fP, z ustawionym
dwustronnym potokiem pomiędzy wykonującą go powłoką a współprocesem.
.PP
Format współprocesu jest następujący:
.RS
.PP
\fBcoproc\fP [\fINAZWA\fP] \fIpolecenie\fP [\fIprzekierowania\fP]
.RE
.PP
W ten sposób tworzy jest współproces o nazwie \fINAZWA\fP. Jeśli nie podano
\fINAZWY\fP, domyślną jest \fBCOPROC\fP. \fINAZWA\fP nie może zostać podana, jeśli
\fIpolecenie\fP jest \fIpoleceniem prostym\fP (patrz powyżej), w przeciwnym
wypadku jest interpretowane jako pierwsze słowo polecenia prostego. Gdy
współproces jest wykonywany, powłoka tworzy zmienną tablicową (patrz
\fBTablice\fP poniżej) o nazwie \fINAZWA\fP w kontekście wykonywanej
powłoki. Standardowe wyjście \fIpolecenia\fP jest połączone potokiem z
deskryptorem pliku wykonywanej powłoki, a ten jest przypisany do
\fINAZWA\fP[0]. Standardowe wejście \fIpolecenia\fP jest połączone potokiem z
deskryptorem pliku wykonywanej powłoki, a ten jest przypisany do
\fINAZWA\fP[1]. Ten potok jest ustawiany przed wszystkimi przekierowaniami
podanymi z poleceniem (patrz
.SM
\fBPRZEKIEROWANIE\fP poniżej). Deskryptory
pliku mogą zostać użyte jako argumenty do poleceń powłoki i przekierowań,
korzystając ze standardowych interpretacji słów. Deskryptory plików nie są
dostępne w podpowłokach. Identyfikator procesu powłoki utworzonej do
wykonania współprocesu jest dostępny jako wartość zmiennej \fINAZWA\fP_PID. Do
czekania na zakończenie współprocesu można użyć wbudowanego polecenia
\fBwait\fP.
.PP
Ponieważ współproces jest tworzony jako polecenie asynchroniczne, polecenie
\fBcoproc\fP zawsze zwróci powodzenie. Zwracanym statusem współprocesu jest kod
zakończenia \fIpolecenia\fP.
.SS "Definiowanie funkcji powłoki"
.PP
Funkcja powłoki jest obiektem wywoływanym podobnie jako polecenie proste i
wykonującym polecenie złożone z nowym zestawem parametrów
pozycyjnych. Funkcje powłoki deklaruje się w następujący sposób:
.TP 
\fInazwa\fP () \fIpolecenie\-złożone\fP [\fIprzekierowanie\fP]
.PD 0
.TP 
\fBfunction\fP \fInazwa\fP [()] \fIpolecenie\-złożone\fP [\fIprzekierowanie\fP]
.PD
W ten sposób definiowana jest funkcja o nazwie \fInazwa\fP. Słowo zastrzeżone
\fBfunction\fP jest opcjonalne. Jeśli je podano, to nawiasy są
opcjonalne. \fICiałem\fP funkcji jest polecenie złożone \fIpolecenie\-złożone\fP
(patrz \fBPolecenia złożone\fP powyżej). Polecenie jest zwykle \fIlistą\fP poleceń
objętych nawiasami klamrowymi { i }, ale może to być dowolne z poleceń
wypisanych powyżej w rozdziale \fBPolecenia złożone\fP. \fIPolecenie\-złożone\fP
jest wykonywane ilekroć podano \fInazwę\fP jako nazwę polecenia prostego. W
\fItrybie_posix\fP \fInazwa\fP nie może być taka sama, jak jedno ze specjalnych
\fIsłów wbudowanych\fP POSIX. Wszystkie przekierowania (patrz
.SM
\fBPRZEKIEROWANIE\fP poniżej) podane podczas definiowania funkcji są wykonywane
gdy funkcja jest wykonywana. Kod zakończenia definicji funkcji wynosi zero,
chyba że wystąpił błąd składni, lub istnieje już funkcja tylko do odczytu o
tej samej nazwie. Podczas wykonywania, kodem wyjścia funkcji jest kod
zakończenia ostatniego polecenia wykonanego w jej ciele. Patrz również
.SM
\fBFUNKCJE\fP poniżej.
.SH KOMENTARZE
W powłoce nie\-interaktywnej lub w powłoce interaktywnej, w której włączono
opcję \fBinteractive_comments\fP do opcji wbudowanych \fBshopt\fP (zobacz
.SM
\fBWBUDOWANE POLECENIA POWŁOKI\fP poniżej) słowo rozpoczynające się od znaku
\fB#\fP powoduje, że słowo to i wszystkie pozostałe znaki w tym wierszu będą
ignorowane. Powłoka interaktywna bez włączonej opcji \fBinteractive_comments\fP
nie pozwala na komentarze. Opcja \fBinteractive_comments\fP jest domyślnie
włączona w powłokach interaktywnych.
.SH CYTOWANIE
\fICytowanie\fP służy do usuwania specjalnego znaczenia dla powłoki pewnych
znaków lub słów. Cytowanie można stosować do wyłączania specjalnego
traktowania znaków specjalnych, zapobiegania rozpoznawaniu słów
zastrzeżonych jako takich oraz do zapobiegania podstawianiu parametrów.
.PP
Każdy z \fImetaznaków\fP podanych powyżej w
.SM
\fBDEFINICJACH\fP posiada dla
powłoki specjalne znaczenie i musi być cytowany, jeśli ma oznaczać samego
siebie.
.PP
Gdy używane są funkcje interpretacji historii poleceń (patrz
.SM
\fBINTERPRETACJA HISTORII\fP), znak \fIinterpretacji historii\fP, zwykle \fB!\fP,
musi być cytowany, jeśli chce się uniknąć interpretacji historii.
.PP
Istnieją trzy mechanizmy cytowania: \fIznak specjalny\fP (escape character),
apostrofy (pojedyncze cudzysłowy) i cudzysłowy zwykłe (podwójne).
.PP
Niecytowany odwrotny ukośnik (\fB\e\fP) jest \fIznakiem specjalnym\fP.  Chroni on
przed interpretacją dosłowną wartość następującego po nim znaku, z wyjątkiem
<nowejlinii>. Jeśli pojawi się para \fB\e\fP<nowalinia> a sam
odwrotny ukośnik nie jest cytowany, to traktowana jest ona jak kontynuacja
wiersza (to znaczy, usuwana jest ze strumienia wejściowego i w efekcie
ignorowana).
.PP
Ujęcie znaków w apostrofy chroni dosłowne wartości każdego z nich. Apostrof
nie może pojawić się pomiędzy innymi apostrofami, nawet jeśli jest
poprzedzony odwrotnym ukośnikiem.
.PP
Ujęcie znaków w cudzysłowy chroni dosłowne wartości każdego z nich, za
wyjątkiem \fB$\fP, \fB`\fP i \fB\e\fP oraz, gdy włączone jest dopełnianie z historii,
\fB!\fP.  Znaki \fB$\fP i \fB`\fP zachowują swe specjalne znaczenie wewnątrz
cudzysłowów. Odwrotny ukośnik zachowuje specjalne znaczenie tylko, gdy
występuje po nim jeden z poniższych znaków: \fB$\fP, \fB`\fP, \^\fB"\fP\^, \fB\e\fP lub
\fB<nowalinia>\fP.  Cudzysłów może być cytowany wewnątrz cudzysłowów
przez poprzedzenie go odwrotnym ukośnikiem. Jeśli dopełnianie z historii
jest włączone, to będzie wykonane, chyba że znak \fB!\fP jest ujęty w
cudzysłowy lub cytowany odwrotnym ukośnikiem. Odwrotny ukośnik poprzedzający
\fB!\fP nie jest usuwany.
.PP
Parametry specjalne \fB*\fP i \fB@\fP posiadają specjalne znaczenie wewnątrz
cudzysłowów (zobacz
.SM
\fBPARAMETRY\fP poniżej).
.PP
Słowa postaci \fB$\fP'\fIłańcuch\fP' traktowane są specjalnie. Słowo takie
interpretowane jako \fIłańcuch\fP, w którym znaki poprzedzone odwrotnym
ukośnikiem zastępowane są według standardu ANSI C. Sekwencje specjalne z
odwrotnym ukośnikiem, jeśli występują, dekodowane są następująco:
.RS
.PD 0
.TP 
\fB\ea\fP
alarm (dzwonek)
.TP 
\fB\eb\fP
backspace
.TP 
\fB\ee\fP
.TP 
\fB\eE\fP
znak escape
.TP    
\fB\ef\fP
znak wysuwu strony (form feed)
.TP   
\fB\en\fP
znak nowego wiersza (new line)
.TP      
\fB\er\fP
powrót karetki (carriage return)
.TP 
\fB\et\fP
tabulacja pozioma (horizontal tab)
.TP    
\fB\ev\fP
tabulacja pionowa (vertical tab)
.TP 
\fB\e\e\fP
odwrotny ukośnik (backslash)
.TP 
\fB\e\(aq\fP
apostrof
.TP 
\fB\e"\fP
cudzysłów
.TP    
\fB\e\fP\fInnn\fP
ośmiobitowy znak, którego wartością jest ósemkowa liczba \fInnn\fP (jedna do
trzech cyfr)
.TP 
\fB\ex\fP\fIHH\fP
ośmiobitowy znak, którego wartością jest szesnastkowa liczba \fInnn\fP (jedna
lub dwie cyfry szesnastkowe)
.TP 
\fB\eu\fP\fIHHHH\fP
znak Unicode (ISO/IEC 10646) o wartości szesnastkowej \fIHHHH\fP (jedna do
czterech cyfr szesnastkowych)
.TP 
\fB\eU\fP\fIHHHHHHHH\fP
znak Unicode (ISO/IEC 10646) o wartości szesnastkowej \fIHHHHHHHH\fP (jedna do
ośmiu cyfr szesnastkowych)
.TP 
\fB\ec\fP\fIx\fP
znak kontrolny \fIx\fP
.PD
.RE
.LP
Przetłumaczony wynik jest pojedynczo cytowany, tak jakby nie było znaku
dolara.
.PP
Ujęty w cudzysłowy łańcuch poprzedzony znakiem dolara (\fB$\fP"\fIłańcuch\fP")
spowoduje, że łańcuch zostanie zinterpretowany zgodnie z bieżącymi
ustawieniami regionalnymi (locale). Jeśli ustawione są one na \fBC\fP lub
\fBPOSIX\fP, to znak dolara jest ignorowany. Jeżeli łańcuch jest tłumaczony i
zamieniany, to zastąpienie jest podwójnie cytowane.
.SH PARAMETRY
\fIParametr\fP jest elementem przechowującym wartości. Może on być \fInazwą\fP,
liczbą lub jednym ze znaków specjalnych podanych poniżej w sekcji
\fBParametry specjalne\fP.  Dla celów powłoki \fIzmienna\fP jest parametrem
oznaczanym przez \fInazwę\fP.  Zmienna posiada \fIwartość\fP i zero lub więcej
\fIatrybutów\fP.  Wartość atrybutom przypisuje się za pomocą polecenia
wbudowanego \fBdeclare\fP (zobacz opis tego polecenia poniżej, w sekcji
.SM
\fBWBUDOWANE POLECENIA POWŁOKI\fP).
.PP
Parametr jest ustawiony jeśli przypisano mu wartość. Łańcuch pusty jest
poprawną wartością. Po ustawieniu zmiennej, może być ona unieważniona
wyłącznie przez użycie wbudowanego polecenia \fBunset\fP (zobacz poniżej
.SM
\fBWBUDOWANE POLECENIA POWŁOKI\fP ).
.PP
Do \fIzmiennej\fP można wykonać przypisanie przy pomocy instrukcji postaci
.RS
.PP
\fInazwa\fP=[\fIwartość\fP]
.RE
.PP
Jeżeli nie podano \fIwartości\fP, to zmiennej przypisywany jest łańcuch
pusty. Wszystkie \fIwartości\fP przechodzą przez interpretację tyld,
podstawianie parametrów, interpretację zmiennych, podstawianie wyników
poleceń, interpretację wyrażeń arytmetycznych i usuwanie cytowań (zobacz
poniżej
.SM
\fBINTERPRETACJA\fP). Jeżeli zmienna ma ustawiony atrybut
\fBinteger\fP (całkowita), to \fIwartość\fP podlega interpretacjom wyrażeń
arytmetycznych, nawet jeśli nie użyto interpretacji $((...)). Zobacz poniżej
\fBInterpretacja wyrażeń arytmetycznych\fP. Nie jest wykonywane dzielenie na
słowa, z wyjątkiem \fB"$@"\fP, jak wyjaśniono to poniżej w sekcji \fBParametry
specjalne\fP.  Nie jest wykonywane rozwijanie nazw plików.  Instrukcje
przypisania mogą się też pojawiać jako argumenty poleceń wbudowanych
\fBalias\fP, \fBdeclare\fP, \fBtypeset\fP, \fBexport\fP, \fBreadonly\fP i \fBlocal\fP. W
\fItrybie posix\fP te słowa wbudowane mogą wystąpić w poleceniu po jednym lub
większej liczby wystąpień polecenia wbudowanego \fBcommand\fP i zachowują
właściwości instrukcji przypisania.
.PP
W kontekście, w którym instrukcja przypisania przypisuje wartość do zmiennej
powłoki lub do tablicy indeksowanej, operator += może posłużyć do dołączenia
lub dodania do poprzedniej wartości zmiennej. Gdy += jest stosowane do
zmiennej z ustawionym atrybutem \fIliczby całkowitej\fP, to wartość jest
obliczana jako wyrażenie arytmetyczne i dodawana do bieżącej wartości
zmiennej, która również jest obliczana. Gdy += jest stosowane do zmiennej
tablicowej używając przypisania złożonego (patrz \fBTablice\fP poniżej),
wartość zmiennej nie jest niszczona (jak to ma miejsce przy użyciu =), a
nowe wartości są dołączane do tablicy poczynając od indeksu większego o
jeden on maksymalnego indeksu tablicy (w przypadku tablic indeksowanych) lub
jest dodawana jako dodatkowa para klucz\-wartość (w przypadku tablic
asocjacyjnych). Gdy += jest stosowane do zmiennej łańcuch\-wartość, to
\fIwartość\fP jest interpretowana i dołączana do wartości zmiennej.
.PP
Zmiennej można przypisać atrybut \fInazwa referencyjna\fP (ang. nameref) za
pomocą opcji \fB\-n\fP przekazanej poleceniom wbudowanym \fBdeclare\fP lub \fBlocal\fP
(zob. opisy \fBdeclare\fP i \fBlocal\fP niżej) aby utworzyć \fInazwę referencyjną\fP
lub odniesienie do innej zmiennej. Pozwala to na pośrednie operowanie na
zmiennych. Gdy zmienna nazwy referencyjnej jest przywoływana lub
przypisywana, operacja ta jest w rzeczywistości wykonywana na zmiennej
określonej wartością zmiennej nazwy odniesienia. Nazwa referencyjna jest
często używana aby odnieść się do zmiennej, której nazwa jest przekazywana
jako argument do funkcji. Przykładowo nazwa zmiennej jest przekazywana do
funkcji powłoki w pierwszym argumencie, wykonując
.sp .5
.RS
.if  t \f(CWdeclare -n ref=$1\fP
.if  n declare -n ref=$1
.RE
.sp .5
wewnątrz funkcji tworzącej zmienną nazwy referencyjnej \fBref\fP, której
wartością jest nazwa zmiennej przekazana jako pierwszy argument. Odniesienie
lub przypisanie \fBref\fP jest traktowane jako odniesienie lub przypisania do
zmiennej, której nazwę przekazano jako \fB$1\fP. Jeśli zmienna kontrolujące
pętle \fBfor\fP ma atrybut nazwy referencyjnej, lista słów może być\ listą
zmiennych powłoki, a nazwa zostanie przypisana za każdemu słowu z listy, w
kolejności, przy wykonywaniu pętli. Zmienne tablicowe nie mogą otrzymać
atrybutu \fB\-n\fP, jednak do zmiennych nazw referencyjnych mogą odnosić się
zmienne tablicowe i wskaźniki zmiennych tablicowych. Nazwy referencyjne
można usunąć stosując opcję \fB\-n\fP do polecenia wbudowanego \fBunset\fP. W
przeciwnym razie, gdy \fBunset\fP jest wykonywane z nazwą referencyjną jako
argument, zmienna do której odnosi się nazwa referencyjna zostanie usunięta.
.SS "Parametry pozycyjne"
.PP
\fIParametr pozycyjny\fP to parametr określany cyfrą lub cyframi, innymi niż
pojedyncza cyfra 0.  Parametrom pozycyjnym nadawane są wartości argumentów
powłoki (w czasie jej wywołania). Wartości te mogą być ponownie nadawane
przy pomocy wbudowanego polecenia \fBset\fP.  Do parametrów pozycyjnych nie
można wykonać przypisania przy pomocy instrukcji przypisania.  Parametry
pozycyjne są tymczasowo zastępowane podczas wykonywania funkcji powłoki
(zobacz poniżej
.SM
\fBFUNKCJE\fP).
.PP
Jeżeli interpretowany jest parametr pozycyjny określany więcej niż jedną
cyfrą, to musi być ujęty w nawiasy (zobacz poniżej
.SM
\fBINTERPRETACJA\fP).
.SS "Parametry specjalne"
.PP
Powłoka kilka parametrów traktuje specjalnie. Do parametrów tych można się
wyłącznie odwoływać; nie jest dozwolone przypisywanie im wartości.
.PD 0
.TP 
\fB*\fP
Interpretowane jest jako parametry pozycyjne, począwszy od pierwszego. Gdy
interpretacja nie pojawia się wewnątrz cudzysłowów, każdy parametr pozycyjny
jest interpretowany jako oddzielne słowo. W kontekście w jakim występują, te
słowa ulegają\ kolejnemu podziałowi na słowa i rozwijaniu ścieżek. Gdy
interpretacja pojawia się wewnątrz cudzysłowów, to parametr ten
interpretowany jest jako pojedyncze słowo z wartościami każdego z parametrów
rozdzielonymi pierwszym znakiem zmiennej specjalnej
.SM
\fBIFS\fP.  To
znaczy, "\fB$*\fP" jest równoważne "\fB$1\fP\fIc\fP\fB$2\fP\fIc\fP\fB...\fP", gdzie \fIc\fP jest
pierwszym znakiem wartości zmiennej
.SM
\fBIFS\fP.  Jeżeli
.SM
\fBIFS\fP nie
jest ustawione, to parametry oddzielane są spacjami.  Jeśli
.SM
\fBIFS\fP
jest łańcuchem pustym, to parametry są ze sobą połączone bez rozdzielających
je separatorów.
.TP 
\fB@\fP
Interpretowane jako parametry pozycyjne, począwszy od pierwszego. Gdy
interpretacja pojawia się wewnątrz cudzysłowów, to każdy parametr
interpretowany jest jako odrębne słowo. To znaczy, "\fB$@\fP" jest równoważne
"\fB$1\fP" "\fB$2\fP" ... Jeśli wewnątrz słowa zachodzi interpretacja (ujęta w
cudzysłowy), to pierwszy zinterpretowany parametr jest łączony z początkiem
oryginalnego słowa, a interpretacja ostatniego parametru jest łączona z
końcem oryginalnego słowa. Jeśli nie ma żadnych parametrów pozycyjnych,
"\fB$@\fP" i \fB$@\fP interpretowane są jako nic (tj. są usuwane).
.TP 
\fB#\fP
Interpretowane jako liczba parametrów pozycyjnych, podana dziesiętnie.
.TP 
\fB?\fP
Interpretowane jako kod zakończenia ostatnio wykonanego potoku
pierwszoplanowego.
.TP 
\fB\-\fP
Interpretowane jako bieżące flagi opcji, takie jakie zostały podane podczas
wywołania, ustawione przy pomocy wbudowanego polecenia \fBset\fP lub ustawione
przez samą powłokę (tak jak opcja \fB\-i\fP).
.TP 
\fB$\fP
Interpretowany jest jako identyfikator procesu powłoki. W podpowłoce (),
interpretowany jest jako ID procesu bieżącej powłoki, nie zaś podpowłoki.
.TP 
\fB!\fP
Interpretowany jako ID procesu ostatnio wykonywanego polecenia tła, gdy jest
wykonywane jako polecenie asynchroniczne lub używając słowa wbudowanego
\fBbg\fP (zob. niżej
.SM
\fBKONTROLA ZADAŃ\fP).
.TP 
\fB0\fP
Interpretowany jako nazwa powłoki lub skryptu powłoki. Ustawiane jest to na
etapie inicjowania powłoki. Jeżeli \fBbash\fP wywoływany został z plikiem
poleceń, to \fB$0\fP ustawiane jest na nazwę tego pliku. Jeśli \fBbash\fP został
uruchomiony z opcją \fB\-c\fP, to \fB$0\fP jest ustawiane na pierwszy argument po
łańcuchu, jaki ma zostać wywołany, jeśli taki występuje. W przeciwnym
wypadku, ustawiany jest na nazwę pliku użytą do wywołania \fBbash\fP, jaką
podaje argument zerowy.
.TP 
\fB_\fP
Podczas uruchamiania powłoki, ustawiany na bezwzględną nazwę powłoki lub
wykonywanego skryptu powłoki przekazanego w liście argumentów.  Następnie,
interpretowany jest jako ostatni argument poprzedniego polecenia, po
interpretacji.  Ustawiany również na pełną nazwę pliku każdego polecenia
wykonanego i umieszczonego w środowisku eksportowanym do tego polecenia.
Podczas sprawdzania poczty parametr ten przechowuje nazwę aktualnie
sprawdzanego pliku poczty.
.PD
.SS "Zmienne powłoki"
.PP
Powłoka ustawia następujące zmienne:
.PP
.PD 0
.TP 
\fBBASH\fP
Interpretowane jako pełna nazwa pliku użyta do wywołania tego przebiegu
\fBbash\fP.
.TP 
\fBBASHOPTS\fP
Oddzielana dwukropkiem lista włączonych opcji powłoki. Każde słowo na liście
jest poprawnym argumentem do opcji \fB\-s\fP wbudowanego polecenia \fBshopt\fP
(patrz
.SM
\fBWBUDOWANE\ POLECENIA\ POWŁOKI\fP poniżej). Opcje pojawiające się
w
.SM
\fBBASHOPTS\fP są tymi, które są raportowane jako \fIwłączone\fP (on)
przez \fBshopt\fP. Jeśli ta zmienna występuje w środowisku podczas uruchamiania
\fBbash\fP, to każda opcja powłoki z listy będzie włączona przed odczytaniem
plików startowych. Ta zmienna jest tylko do odczytu.
.TP 
\fBBASHPID\fP
Zmienna przechowuje identyfikator bieżącego procesu \fBbash\fP. W określonych
przypadkach, takich jak sytuacja, gdy podpowłoki nie wymagają ponownej
inicjalizacji \fBbash\fP, różni się od \fB$$\fP.
.TP 
\fBBASH_ALIASES\fP
Zmienna tablicy asocjacyjnej, której wpisy odpowiadają wewnętrznej liście
aliasów zarządzanych przez wbudowane polecenie \fBalias\fP. Elementy dodawane
do tablicy pojawiają się na liście aliasów, usunięcie elementów tablicy
powoduje usunięcie aliasów z listy aliasów.
.TP 
\fBBASH_ARGC\fP
Zmienna tablicowa, której wartościami są liczby parametrów każdej ramki w
bieżącym stosie wywołania \fBbash\fP. Liczba parametrów bieżącego podprogramu
(funkcji powłoki lub skryptu wykonywanego przez \fB.\fP lub \fBsource\fP) znajduje
się na górze stosu. Gdy podprogram jest wykonywany, liczba przekazanych
parametrów jest przypisywana do
.SM
\fBBASH_ARGC\fP. Powłoka ustawia
.SM
\fBBASH_ARGC\fP wyłącznie w rozszerzonym trybie debugowania (patrz opis opcji
\fBextdebug\fP wbudowanego polecenie \fBshopt\fP poniżej).
.TP 
\fBBASH_ARGV\fP
Zmienna tablicowa zawierająca wszystkie parametry bieżącego stosu wywołania
\fBbash\fP. Ostatni parametr ostatniego wywołania podprogramu jest umieszczony
na wierzchołku stosu, natomiast pierwszy parametr pierwszego wywołania na
spodzie. Gdy podprogram jest wykonywany, liczba przekazanych parametrów jest
przypisywana do
.SM
\fBBASH_ARGV\fP. Powłoka ustawia
.SM
\fBBASH_ARGV\fP
wyłącznie w rozszerzonym trybie debugowania (patrz opis opcji \fBextdebug\fP
wbudowanego polecenie \fBshopt\fP poniżej).
.TP 
\fBBASH_CMDS\fP
Zmienna tablicy asocjacyjnej, której wpisy odpowiadają wewnętrznej liście
skrótów poleceń, zarządzanej przez wbudowane polecenie \fBhash\fP. Elementy
dodawane do tablicy pojawiają się na liście skrótów, usunięcie elementów
tablicy powoduje usunięcie ich z tablicy skrótów.
.TP 
\fBBASH_COMMAND\fP
Aktualnie wykonywane polecenie lub polecenie przeznaczone do wykonania,
chyba że powłoka wykonuje aktualnie polecenie będące wynikiem zadziałania
pułapki \- wówczas jest to polecenie wykonywane w czasie zadziałania pułapki.
.TP 
\fBBASH_EXECUTION_STRING\fP
Argument polecenia do opcji wywołania \fB\-c\fP.
.TP 
\fBBASH_LINENO\fP
Zmienna tablicowa, której wartościami są numery wierszy plików źródłowych, w
których przywołano każdy odpowiednik ze zmiennej
.SM
\fBFUNCNAME\fP. \fB${BASH_LINENO[\fP\fI$i\fP\fB]}\fP jest numerem wiersza w pliku
źródłowym (\fB${BASH_SOURCE[\fP\fI$i+1\fP\fB]}\fP), gdzie przywołano
\fB${FUNCNAME[\fP\fI$i\fP\fB]}\fP (lub \fB${BASH_LINENO[\fP\fI$i\-1\fP\fB]}\fP, jeśli odnosi
się do innej funkcji powłoki). Proszę użyć
.SM
\fBLINENO\fP, aby pobrać
bieżący numer wiersza.
.TP 
\fBBASH_REMATCH\fP
Zmienna tablicowa, której wartości są przypisywane operatorem
dwuargumentowym \fB=~\fP do polecenia warunkowego \fB[[\fP. Element o indeksie 0
jest częścią łańcucha pasującego do całego wyrażenia regularnego. Element o
indeksie \fIn\fP jest częścią łańcucha pasującego do \fIn\fP\-tego podwyrażenia
ujętego w nawiasy. Zmienna jest tylko do odczytu.
.TP 
\fBBASH_SOURCE\fP
Zmienna tablicowa, której wartościami są nazwy plików źródłowych, w których
zdefiniowano odpowiadające nazwy funkcji powłoki w zmiennej tablicowej
.SM
\fBFUNCNAME\fP. Funkcja powłoki \fB${FUNCNAME[\fP\fI$i\fP\fB]}\fP jest
zdefiniowana w pliku \fB${BASH_SOURCE[\fP\fI$i\fP\fB]}\fP i wywoływana z
\fB${BASH_SOURCE[\fP\fI$i+1\fP\fB]}.\fP.
.TP 
\fBBASH_SUBSHELL\fP
Zwiększana o jeden, wewnątrz każdej powłoki lub środowiska podpowłoki, gdy
powłoka rozpoczyna wykonywanie w tym środowisku. Wartością początkową jest
0.
.TP 
\fBBASH_VERSINFO\fP
Zmienna tablicowa tylko do odczytu, której elementy zawierają informacje o
wersji uruchomionego \fBbash\fP.  Wartości przypisane elementom tablicy są
następujące:
.sp .5
.RS
.TP  24
\fBBASH_VERSINFO[\fP0\fB]\fP
Główny numer wersji, wydanie (\fIrelease\fP).
.TP 
\fBBASH_VERSINFO[\fP1\fB]\fP
Poboczny numer wersji (\fIversion\fP).
.TP 
\fBBASH_VERSINFO[\fP2\fB]\fP
Poziom łat (patch level).
.TP 
\fBBASH_VERSINFO[\fP3\fB]\fP
Wersja kompilatu (build version).
.TP 
\fBBASH_VERSINFO[\fP4\fB]\fP
Status wydania (np. \fIbeta1\fP).
.TP 
\fBBASH_VERSINFO[\fP5\fB]\fP
Wartość
.SM
\fBMACHTYPE\fP.
.RE
.TP 
\fBBASH_VERSION\fP
Interpretowane jako łańcuch opisujący wersję uruchomionego \fBbash\fP.
.TP 
\fBCOMP_CWORD\fP
Indeks w \fB${COMP_WORDS}\fP słowa zawierającego bieżącą pozycję kursora.
Zmienna ta jest dostępna wyłącznie w funkcjach powłoki wywołanych przez
usługi programowalnego uzupełniania (zobacz poniżej \fBProgramowalne
uzupełnianie\fP).
.TP 
\fBCOMP_KEY\fP
Klawisz (lub ostatni klawisz w sekwencji klawiszy) użyty do wywołania
bieżącej funkcji uzupełniania.
.TP 
\fBCOMP_LINE\fP
Bieżący wiersz poleceń. Ta zmienna jest dostępna tylko w funkcjach powłoki i
poleceniach zewnętrznych wywoływanych przez usługi programowalnego
uzupełniania (zobacz poniżej \fBProgramowalne uzupełnianie\fP).
.TP 
\fBCOMP_POINT\fP
Indeks bieżącej pozycji kursora względem początku bieżącego polecenia.
Jeżeli kursor jest na końcu bieżącego polecenia, to wartość tej zmiennej
jest równa \fB${#COMP_LINE}\fP.  Ta zmienna jest dostępna tylko w funkcjach
powłoki i poleceniach zewnętrznych wywoływanych przez usługi programowalnego
uzupełniania (zobacz poniżej \fBProgramowalne uzupełnianie\fP).
.TP 
\fBCOMP_TYPE\fP
Ustawiana na wartość całkowitą odpowiadającą typowi uzupełnienia, którego
próbę przeprowadzono, które spowodowało wywołanie funkcji uzupełnienia:
\fITAB\fP, do normalnego uzupełnienia, \fI?\fP, do wypisywania uzupełnień po
udanej tabulacji, \fI!\fP, do wypisywania alternatyw częściowego uzupełnienia
słowa, \fI@\fP, do wypisania uzupełnień, jeśli słowo nie zostało zmodyfikowane
lub \fI%\fP, do uzupełnienia menu. Zmienna ta jest dostępna tylko w funkcjach
powłoki i zewnętrznych poleceniach wywołanych przez narzędzia
programowalnego uzupełnienia powłoki (patrz poniżej \fBProgramowalne
uzupełnienie\fP).
.TP 
\fBCOMP_WORDBREAKS\fP
Zestaw znaków traktowanych przez bibliotekę \fBreadline\fP jako separatory
słów, podczas przeprowadzania uzupełnień słów. Jeśli unieważniono
.SM
\fBCOMP_WORDBREAKS\fP, to traci swe specjalne właściwości, nawet jeżeli jest
następnie ponownie ustawiona.
.TP 
\fBCOMP_WORDS\fP
Zmienna tablicowa (patrz \fBTablice\fP poniżej) składająca się z pojedynczych
słów z aktualnego wiersza poleceń. Wiersz jest dzielony na słowa tak, jak
podzieliłby go \fBreadline\fP, używając
.SM
\fBCOMP_WORDBREAKS\fP, zgodnie z
opisem powyżej. Zmienna ta jest dostępna wyłącznie w funkcjach powłoki
wywołanych przez usługi programowalnego uzupełniania (zobacz poniżej
\fBProgramowalne uzupełnianie\fP).
.TP 
\fBCOPROC\fP
Zmienna tablicowa (patrz poniżej \fBTablice\fP) tworzona do zatrzymania
deskryptorów plików z wyjścia lub wejścia nienazwanych współprocesów (zobacz
\fBWspółprocesy (koprocesy)\fP powyżej).
.TP 
\fBDIRSTACK\fP
Zmienna tablicowa (zobacz \fBTablice\fP poniżej) zawierająca bieżącą zawartość
stosu katalogów. Katalogi pojawiają się na stosie w kolejności, w jakiej są
wyświetlane przez wbudowane \fBdirs\fP.  Przypisanie do elementów tej zmiennej
tablicowej może posłużyć do zmiany katalogów już występujących na stosie,
ale do dodania i usunięcia katalogów muszą być użyte wbudowane \fBpushd\fP i
\fBpopd\fP.  Przypisanie wartości tej zmiennej nie zmieni bieżącego katalogu.
Jeśli
.SM
\fBDIRSTACK\fP jest unieważnione, to traci swe specjalne
właściwości, nawet jeżeli jest następnie ponownie ustawione.
.TP 
\fBEUID\fP
Interpretowane jako efektywny identyfikator bieżącego użytkownika,
inicjowane przy uruchamianiu powłoki. Zmienna ta jest tylko do odczytu.
.TP 
\fBFUNCNAME\fP
Zmienna tablicowa zawierająca nazwy wszystkich funkcji powłoki obecnych w
stosie wywołań. Element z indeksem 0 jest nazwą aktualnie wykonywanej
funkcji powłoki. Najniższy element (tzn. z najwyższym numerem indeksu) to
.if  t \f(CW"main"\fP.
.if  n "main".
Zmienna istnieje tylko gdy wykonywana jest funkcja powłoki. Przypisania do
.SM
\fBFUNCNAME\fP nie odnoszą skutku i zwracają kod błędu. Jeśli
.SM
\fBFUNCNAME\fP jest unieważniona, to traci swe specjalne właściwości, nawet
jeśli jest następnie ponownie ustawiona.
.if  t .sp 0.5
.if  n .sp 1
Zmienna ta może zostać użyta razem z \fBBASH_LINENO\fP i \fBBASH_SOURCE\fP. Każdy
element \fBFUNCNAME\fP ma swój odpowiednik w \fBBASH_LINENO\fP i \fBBASH_SOURCE\fP
opisujący stos wywołania. Na przykład, \fB${FUNCNAME[\fP\fI$i\fP\fB]}\fP została
wywołana z pliku \fB${BASH_SOURCE[\fP\fI$i+1\fP\fB]}\fP w wierszu o numerze
\fB${BASH_LINENO[\fP\fI$i\fP\fB]}\fP. Wbudowane polecenie \fBcaller\fP wyświetla bieżący
stos wywołania używając tej informacji.
.TP 
\fBGROUPS\fP
Zmienna tablicowa zawierająca listę grup, których członkiem jest bieżący
użytkownik. Próby przypisywania wartości do
.SM
\fBGROUPS\fP nie odnoszą
efektu i zwracają kod błędu.  Jeżeli
.SM
\fBGROUPS\fP jest unieważnione, to
traci swe specjalne właściwości, nawet jeżeli jest następnie ponownie
ustawione.
.TP 
\fBHISTCMD\fP
Licznik historii (indeks na liście historii poleceń) bieżącego polecenia.
Jeżeli
.SM
\fBHISTCMD\fP jest unieważnione, to traci swe specjalne
właściwości, nawet jeżeli jest następnie ponownie ustawione.
.TP 
\fBHOSTNAME\fP
Automatycznie ustawiane na nazwę aktualnego hosta.
.TP 
\fBHOSTTYPE\fP
Automatycznie ustawiane na łańcuch unikalnie opisujący typ maszyny, na
której jest wykonywany \fBbash\fP.  Wartość domyślna zależy od systemu.
.TP 
\fBLINENO\fP
Przy każdym odwołaniu do tego parametru powłoka zastępuje jego wartość
liczbą dziesiętną reprezentującą aktualny kolejny numer wiersza (poczynając
od 1) skryptu lub funkcji. Nie zapewnia się, by wartość ta miała znaczenie
poza skryptem bądź funkcją.  Jeśli
.SM
\fBLINENO\fP jest unieważnione, to
traci swe specjalne właściwości, nawet jeżeli jest następnie ponownie
ustawione.
.TP 
\fBMACHTYPE\fP
Automatycznie ustawiane na łańcuch w pełni opisujący typ systemu, na którym
jest wykonywany \fBbash\fP, w standardowym formacie GNU \fIcpu\-firma\-system\fP.
Wartość domyślna zależy od systemu.
.TP 
\fBMAPFILE\fP
Zmienna tablicowa (patrz \fBTablice\fP poniżej) tworzona do zatrzymania tekstu
odczytywanego przez wbudowane polecenie \fBmapfile\fP, gdy nie podano nazwy
zmiennej.
.TP 
\fBOLDPWD\fP
Poprzedni katalog roboczy ustawiony poleceniem \fBcd\fP.
.TP 
\fBOPTARG\fP
Wartość ostatniego, będącego opcją, argumentu przetworzonego przez wbudowane
polecenie \fBgetopts\fP (zobacz poniżej
.SM
\fBWBUDOWANE POLECENIA POWŁOKI\fP).
.TP 
\fBOPTIND\fP
Numer (indeks) następnego argumentu, jaki ma zostać przetworzony przez
wbudowane polecenie \fBgetopts\fP (zobacz poniżej
.SM
\fBWBUDOWANE POLECENIA
POWŁOKI\fP).
.TP 
\fBOSTYPE\fP
Automatycznie ustawiane na łańcuch opisujący system operacyjny, w którym
jest wykonywany \fBbash\fP.  Wartość domyślna zależy od systemu.
.TP 
\fBPIPESTATUS\fP
Zmienna tablicowa (zobacz \fBTablice\fP poniżej) zwierająca listę kodów
zakończenia z procesów w ostatnio wykonywanym potoku pierwszoplanowym (który
może zawierać pojedyncze polecenie).
.TP 
\fBPPID\fP
Identyfikator procesu macierzystego powłoki. Zmienna ta jest tylko do
odczytu.
.TP 
\fBPWD\fP
Bieżący katalog roboczy, ustawiony poleceniem \fBcd\fP.
.TP 
\fBRANDOM\fP
Za każdym razem, gdy następuje odwołanie do tego parametru, generowana jest
całkowita liczba losowa z zakresu od 0 do 32767. Sekwencję liczb losowych
można zainicjować przypisując wartość do
.SM
\fBRANDOM\fP.  Jeżeli
.SM
\fBRANDOM\fP jest unieważniona, to traci swe specjalne właściwości, nawet
jeżeli jest następnie ponownie ustawiona.
.TP 
\fBREADLINE_LINE\fP
Zawartość bufora wiersza \fBrealine\fP, do użycia z
.if  t \f(CWbind -x\fP
.if  n "bind -x"
(patrz
.SM
\fBWBUDOWANE POLECENIA POWŁOKI\fP poniżej).
.TP 
\fBREADLINE_POINT\fP
Pozycja punktu wprowadzania w buforze wiersza \fBreadline\fP, do użycia z
.if  t \f(CWbind -x\fP
.if  n "bind -x"
(patrz
.SM
\fBWBUDOWANE POLECENIA POWŁOKI\fP poniżej).
.TP 
\fBREPLY\fP
Ustawiona na wiersz wejścia odczytany wbudowanym poleceniem \fBread\fP jeśli
nie podano żadnych jego argumentów.
.TP 
\fBSECONDS\fP
Każdorazowo, gdy występuje odwołanie do tego parametru, zwracana jest liczba
sekund, jakie upłynęły od wywołania powłoki. Jeżeli do
.SM
\fBSECONDS\fP
zostanie przypisana wartość, to wartość zwracana przez kolejne odwołania
jest równa liczbie sekund od czasu przypisania plus przypisana wartość.
Jeżeli
.SM
\fBSECONDS\fP jest unieważnione, to traci swe specjalne
właściwości, nawet jeżeli jest następnie ponownie ustawione.
.TP 
\fBSHELLOPTS\fP
Lista, rozdzielonych dwukropkami, włączonych opcji powłoki. Każde słowo
listy jest poprawnym argumentem opcji \fB\-o\fP wbudowanego polecenia \fBset\fP
(zobacz
.SM
\fBWBUDOWANE POLECENIA POWŁOKI\fP poniżej). Opcje pojawiające
się w
.SM
\fBSHELLOPTS\fP to te, które są zgłaszane jako włączone (\fIon\fP)
przez \fBset \-o\fP.  Jeśli zmienna ta istnieje w środowisku podczas
uruchamiania \fBbash,\fP to każda z opcji powłoki występująca na tej liście
zostanie włączona przed odczytem jakichkolwiek plików startowych.  Jest to
zmienna tylko do odczytu.
.TP 
\fBSHLVL\fP
Inkrementowana każdorazowo, gdy uruchamiane jest kolejne wystąpienie
\fBbash\fP.
.TP 
\fBUID\fP
Interpretowane jako identyfikator bieżącego użytkownika, inicjowane przy
uruchamianiu powłoki. Zmienna ta jest tylko do odczytu.
.PD
.PP
Poniższe zmienne są używane przez powłokę. W niektórych przypadkach \fBbash\fP
przypisuje im domyślne wartości; przypadki te są odnotowane niżej.
.PP
.PD 0
.TP 
\fBBASH_COMPAT\fP
Wartość używana do ustawienia poziomu kompatybilności powłoki. Opis różnych
poziomów kompatybilności i ich skutki znajduje się przy poleceniu wbudowanym
\fBshopt\fP w rozdziale \fBWBUDOWANE POLECENIA POWŁOKI\fP. Wartość może być liczbą
dziesiętną (np. 4.2) lub całkowitą (np. 42) określającą\ dany poziom
kompatybilności. Jeśli \fBBASH_COMPAT\fP jest nieustawione, lub przypisano mu
łańcuch pusty, to poziom kompatybilności jest ustawiony na domyślny dla
bieżącej\ wersji. Jeśli \fBBASH_COMPAT\fP ustawiono na wartość niebędącą
poprawnym poziomem kompatybilności, to powłoka wypisze komunikat o błędzie i
ustawi poziom kompatybilności na domyślny dla bieżącej wersji. Poprawne
poziomy kompatybilności są takie jak opcje kompatybilności akceptowane przez
polecenie wbudowane \fBshopt\fP opisane poniżej (np. \fBcompat42\fP oznacza, że
poprawnymi wersjami są 4.2 i 42). Bieżąca wersja również jest
poprawną\ wartością.
.TP 
\fBBASH_ENV\fP
Jeżeli parametr ten jest ustawiony podczas wykonywania przez \fBbash\fP
skryptu, to jego wartość interpretowana jest jako nazwa pliku zawierającego
polecenia do zainicjowania powłoki, jak w \fI~/.bashrc\fP.  Wartość
.SM
\fBBASH_ENV\fP podlega interpretacji parametrów, podstawianiu wyników poleceń i
interpretacjom wyrażeń arytmetycznych przed interpretacją jej jako nazwy
pliku.  Zmienna
.SM
\fBPATH\fP nie jest używana do znalezienia pliku o
powstałej w ten sposób nazwie.
.TP 
\fBBASH_XTRACEFD\fP
Jeśli ustawiono liczbę całkowitą odpowiadającą poprawnemu deskryptorowi
pliku, to \fBbash\fP zapisze wyjście stosu wygenerowane gdy
.if  t \f(CWset -x\fP
.if  n \fIset -x\fP
jest włączone do tego deskryptora pliku. Deskryptor pliku jest zamykany gdy
.SM
\fBBASH_XTRACEFD\fP jest usuwana lub przy przypisaniu nowej
wartości. Usunięcie
.SM
\fBBASH_XTRACEFD\fP lub przypisanie jej łańcucha
pustego powoduje wysłanie stosu na standardowe wyjście błędów. Proszę
zauważyć, że ustawienie
.SM
\fBBASH_XTRACEFD\fP na 2 (deskryptor pliku
wyjścia błędów), a następnie usunięcie jej spowoduje zamknięcie
standardowego wyjścia błędów.
.TP 
\fBCDPATH\fP
Ścieżka wyszukiwania dla polecenia \fBcd\fP.  Jest to lista rozdzielonych
dwukropkami katalogów, w których powłoka szuka katalogów docelowych podanych
przez polecenie \fBcd\fP.  Przykładową wartością jest
.if  t \f(CW".:~:/usr"\fP.
.if  n ".:~:/usr".
.TP 
\fBCHILD_MAX\fP
Ustawia liczbę wartości kodów wyjścia zakończonych procesów potomnych, które
ma zapamiętać powłoka. Bash nie pozwoli na zmniejszenie tej wartości poniżej
minimum określonego normą POSIX, istnieje również wartość maksymalna
(obecnie 8192), której nie można przekroczyć. Minimalna wartość jest zależna
od systemu.
.TP 
\fBCOLUMNS\fP
Używana przez polecenie wbudowane \fBselect\fP do wyznaczenia szerokości
terminala przy wypisywaniu list wyboru. Ustawiana automatycznie, gdy
włączono opcję \fBcheckwinsize\fP oraz w powłoce interaktywnej po otrzymaniu
.SM
\fBSIGWINCH\fP.
.TP 
\fBCOMPREPLY\fP
Zmienna tablicowa, z której \fBbash\fP czyta możliwe uzupełnienia tworzone
przez funkcję powłoki wywołaną przez usługę programowalnego uzupełniania
(zobacz poniżej \fBProgramowalne uzupełnianie\fP). Każdy element tablicy
zawiera jedno możliwe uzupełnienie.
.TP 
\fBEMACS\fP
Gdy \fBbash\fP znajdzie opisywaną zmienną w środowisku podczas uruchamiania
powłoki, z wartością ustawioną na
.if  t \f(CWt\fP,
.if  n "t",
to przyjmuje, że powłoka działa w buforze powłoki Emacsa i wyłącza edycję
wiersza.
.TP 
\fBENV\fP
Podobnie jak
.SM
\fBBASH_ENV\fP; używana gdy powłoka jest wywołana w trybie
POSIX.
.TP 
\fBFCEDIT\fP
Domyślny edytor dla wbudowanego polecenia \fBfc\fP.
.TP 
\fBFIGNORE\fP
Lista rozdzielonych dwukropkami przyrostków, jakie mają być ignorowane
podczas uzupełniania nazw plików (zobacz
.SM
\fBREADLINE\fP poniżej).  Nazwa
pliku o przyrostku pasującym do jednej z pozycji
.SM
\fBFIGNORE\fP wyłączana
jest z listy dopasowanych nazw plików.  Przykładową wartością jest
.if  t \f(CW".o:~"\fP.
.if  n ".o:~"
(cytowanie jest niezbędne przy przypisywaniu do tej zmiennej wartości
zawierającej tyldy).
.TP 
\fBFUNCNEST\fP
Gdy jest ustawiona na wartość numeryczną większą od zera, definiuje
maksymalny poziom zagnieżdżenia funkcji. Wywołania funkcji przekraczające
określony poziom będą powodowały przerwanie bieżącego polecenia.
.TP 
\fBGLOBIGNORE\fP
Lista rozdzielonych dwukropkami wzorców definiujących zestaw nazw plików,
jakie mają być ignorowane podczas rozwijania nazw plików.  Jeżeli plik
pasujący do wzorca rozwijającego nazwę ścieżkową pasuje również do któregoś
z wzorców w
.SM
\fBGLOBIGNORE\fP, to jest on usuwany z listy dopasowanych.
.TP 
\fBHISTCONTROL\fP
Lista rozdzielonych dwukropkami wartości, określającymi sposób zapisywania w
liście historii. Jeżeli posiada wartość \fIignorespace\fP, to wiersze
rozpoczynające się od znaku \fBspacji\fP nie są wprowadzane do listy
historii. Jeśli posiada wartość \fIignoredups\fP, to wiersze pasujące do
ostatniego wiersza historii nie są wprowadzane. Wartość \fIignoreboth\fP łączy
obie te możliwości. Wartość \fIerasedups\fP powoduje usunięcie z historii
wszystkich wcześniejszych wierszy, pasujących do bieżącego, przed zapisaniem
listy. Wszystkie wartości poza wymienionymi powyżej są ignorowane. Jeśli
zmienna ta nie jest zdefiniowana lub ma wartość inną od powyższych, to
wszystkie wiersze przeczytane przez analizator składni zachowywane są w
liście historii, stosownie do wartości \fBHISTIGNORE\fP. Drugi i kolejne
wiersze złożonego polecenia wielowierszowego nie są sprawdzane i są dodawane
do historii bez względu na wartość
.SM
\fBHISTCONTROL\fP.
.TP 
\fBHISTFILE\fP
Nazwa pliku, w którym zachowywana jest historia poleceń (zobacz
.SM
\fBHISTORIA\fP poniżej).  Wartością domyślną jest \fI~/.bash_history\fP. Jeśli
ustawienie tej zmiennej zostanie skasowane, to historia poleceń nie będzie
zachowana po zakończeniu pracy powłoki.
.TP 
\fBHISTFILESIZE\fP
Maksymalna liczba wierszy zawartych w pliku historii. Podczas przypisywania
wartości tej zmiennej, jeżeli jest to niezbędne, plik historii jest obcinany
tak, by nie zawierał więcej wierszy, przez usunięcie najstarszych
wpisów. Plik historii jest także obcinany do tego rozmiaru po zapisaniu go w
czasie kończenia pracy przez powłokę. Jeśli wartość wynosi 0, plik historii
jest obcinany do zera. Wartości nienumeryczne i wartości numeryczne mniejsze
niż zero wstrzymują obcinanie. Powłoka ustawia wartość domyślną do wartości
\fBHISTSIZE\fP po odczytaniu plików początkowych powłoki.
.TP 
\fBHISTIGNORE\fP
Lista rozdzielonych dwukropkami wzorców służących do decydowania, jakie
wiersze poleceń powinny być zachowane w liście historii. Każdy z wzorców
zakotwiczony jest na początku wiersza i musi pasować do całego wiersza (nie
jest dodawane żadne niejawne `\fB*\fP'). Każdy z wzorców sprawdzany jest z
bieżącym wierszem po wykonaniu kontroli określonych przez
.SM
\fBHISTCONTROL\fP.  Oprócz zwykłych znaków dopasowywania wzorców używanych
przez powłokę, `\fB&\fP' dopasowuje poprzedni wiersz historii. Literał `\fB&\fP'
można uzyskać poprzedzając go odwrotnym ukośnikiem; odwrotny ukośnik jest
usuwany przed próbą dopasowania. Druga i kolejne wiersze złożonego polecenia
wielowierszowego nie są sprawdzane i są dodawane do historii bez względu na
wartość \fBHISTIGNORE\fP.
.TP 
\fBHISTSIZE\fP
Liczba poleceń do zapamiętania w historii poleceń (zob.
.SM
\fBHISTORIA\fP
poniżej). Jeśli wartość wynosi 0, polecenia nie są zachowywane w
historii. Wartości numeryczne mniejsze niż zero powodują, że każde polecenie
jest zapamiętywane w historii (znosi limit). Powłoka ustawia wartość
domyślną 500 po odczytaniu plików początkowych powłoki.
.TP 
\fBHISTTIMEFORMAT\fP
Gdy ta zmienna jest ustawiona i nie jest pusta, jej wartość jest użyta jak
format łańcucha do \fIstrftime\fP(3), w celu wyświetlenia pieczątki czasowej
związanej z każdym wpisem historii, wyświetlanym przez wbudowane polecenie
\fBhistory\fP. Gdy zmienna jest ustawiona, pieczątki czasowe są zapisywane do
pliku historii, dzięki czemu mogą być zachowywane między sesjami
powłoki. Używany jest wówczas znak komentarza historii, aby odróżnić
pieczątki czasowe od pozostałych wierszy historii.
.TP 
\fBHOME\fP
Katalog domowy bieżącego użytkownika; domyślny argument wbudowanego
polecenia \fBcd\fP. Wartość tej zmiennej wykorzystywana jest też przy
wykonywaniu interpretacji tyld.
.TP 
\fBHOSTFILE\fP
Zawiera nazwę pliku o tym samym formacie co
.FN /etc/hosts
który powinien być czytany, gdy powłoka potrzebuje uzupełnić nazwę hosta.
Listę możliwych uzupełnień można zmieniać podczas pracy powłoki. Następnym
razem, gdy wykonywana jest próba uzupełnienia nazwy hosta \fBbash\fP dodaje
zawartość nowego pliku do już istniejącej listy.  Jeżeli
.SM
\fBHOSTFILE\fP
jest ustawione, ale nie posiada wartości, \fBbash\fP usiłuje uzyskać listę
możliwych uzupełnień nazw hostów czytając
.FN /etc/hosts
Gdy
.SM
\fBHOSTFILE\fP jest unieważniane, lista hostów jest czyszczona.
.TP 
\fBIFS\fP
Wewnętrzny Separator Pól (\fIInternal Field Separator\fP) używany do podziału
na słowa po interpretacjach i dzieleniu wierszy na słowa we wbudowanym
poleceniu \fBread\fP.  Jego domyślną wartością jest
,,<spacja><tabulacja><nowalinia>\*(rq.
.TP 
\fBIGNOREEOF\fP
Steruje działaniem powłoki interaktywnej przy otrzymaniu przez nią znaku
.SM
\fBEOF\fP jako jedynego znaku wejścia. Jeżeli jest ustawiona, to jej
wartość jest liczbą kolejnych znaków
.SM
\fBEOF\fP jakie muszą być wpisane
jako pierwsze znaki wiersza wprowadzania przed zakończeniem pracy przez
\fBbash\fP.  Jeśli zmienna ta istnieje, ale nie zawiera wartości numerycznej
lub nie ma wartości, to wartością domyślną jest 10. Jeżeli nie istnieje, to
.SM
\fBEOF\fP wskazuje powłoce koniec wprowadzanych danych.
.TP 
\fBINPUTRC\fP
Nazwa pliku startowego dla \fBreadline\fP, unieważniająca domyślny plik
.FN ~/.inputrc
(zobacz
.SM
\fBREADLINE\fP poniżej).
.TP 
\fBLANG\fP
Służy do wyznaczania kategorii locale dla wszystkich kategorii nie
wyszczególnionych przez zmienne rozpoczynające się od znaków \fBLC_\fP.
.TP 
\fBLC_ALL\fP
Zmienna ta unieważnia wartość
.SM
\fBLANG\fP i wszelkich innych zmiennych
\fBLC_\fP określających kategorie locale.
.TP 
\fBLC_COLLATE\fP
Ta zmienna wyznacza kolejność (collation order) używaną przy sortowaniu
wyników rozwijania nazw plików, decyduje też o zachowaniu wielu wyrażeń,
klas równoważnych i sekwencje sortowania (collating sequences) w rozwijaniu
nazw plików i dopasowywaniu wzorców.
.TP 
\fBLC_CTYPE\fP
Ta zmienna decyduje o interpretacji znaków i zachowaniu się klas znaków
wewnątrz rozwijania nazw plików i dopasowywania wzorców.
.TP 
\fBLC_MESSAGES\fP
Ta zmienna decyduje o ustawieniu locale używanym do tłumaczenia ujętych w
cudzysłowy łańcuchów poprzedzonych znakiem \fB$\fP.
.TP 
\fBLC_NUMERIC\fP
Ta zmienna określa kategorię locale używaną do formatowania liczb.
.TP 
\fBLINES\fP
Używana przez polecenie wbudowane \fBselect\fP do wyznaczenia długości kolumn
przy wypisywaniu list wyboru.  Ustawiana automatycznie gdy włączono opcję
\fBcheckwinsize\fP oraz w powłoce interaktywnej po otrzymaniu po otrzymaniu
.SM
\fBSIGWINCH\fP.
.TP 
\fBMAIL\fP
Jeżeli parametrowi temu jest przypisana nazwa pliku, a nie jest ustawiona
zmienna
.SM
\fBMAILPATH\fP, to \fBbash\fP informuje użytkownika o nadejściu
poczty do podanego pliku lub katalogu w formacie Maildir.
.TP 
\fBMAILCHECK\fP
Określa jak często (w sekundach) \fBbash\fP sprawdza pocztę. Domyślnie jest to
60 sekund. Gdy nadchodzi pora sprawdzenia poczty, powłoka wykonuje to przed
wyświetleniem głównej zachęty.  Jeśli zmienna ta nie jest ustawiona lub jest
ustawiona na wartość nie większą od zera lub zero, to powłoka wyłącza
sprawdzanie poczty.
.TP 
\fBMAILPATH\fP
Lista rozdzielonych dwukropkami nazw plików, w jakich ma być sprawdzana
poczta. Można podać komunikat, jaki ma zostać wyświetlony, gdy do danego
pliku przybędzie wiadomość pocztowa, przez oddzielenie nazwy pliku od
komunikatu znakiem '?'.  Użyte w tekście komunikatu, \fB$_\fP interpretowane
jest jako nazwa bieżącego pliku pocztowego.  Przykład:
.RS
.PP
\fBMAILPATH\fP=\(aq/var/mail/bfox?"You have mail":~/shell\-mail?"$_ has
mail!"\(aq
.PP
\fBBash\fP zapewnia tej zmiennej wartość domyślną, ale położenie plików
pocztowych użytkownika, jakim się posługuje zależy od systemu
(np. /var/mail/\fB$USER\fP).
.RE
.TP 
\fBOPTERR\fP
Jeżeli ustawiono na wartość 1, \fBbash\fP wyświetla komunikaty o błędach
generowanych przez wbudowane polecenie \fBgetopts\fP (zobacz
.SM
\fBWBUDOWANE\fP \fBPOLECENIA\fP \fBPOWŁOKI\fP poniżej).
.SM
\fBOPTERR\fP inicjowane
jest na 1 każdorazowo, gdy wywoływana jest powłoka lub wykonywany jest
skrypt powłoki.
.TP 
\fBPATH\fP
Ścieżka wyszukiwania poleceń. Jest to lista rozdzielanych dwukropkami
katalogów, w których powłoka szuka poleceń (zobacz
.SM
\fBWYKONYWANIE\fP
\fBPOLECEŃ\fP poniżej). Nazwa katalogu zerowej długości (pusta) oznacza katalog
bieżący. Pusty katalog można podać jako dwa złączone dwukropki lub
początkowy albo końcowy dwukropek. Domyślna ścieżka zależy od systemu i
ustawiana jest przez administratora instalującego \fBbash\fP.  Powszechną
wartością jest
.if  t \f(CW/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin\fP.
.if  n ``/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin''.
.TP 
\fBPOSIXLY_CORRECT\fP
Jeśli podczas uruchamiania \fBbash\fP w środowisku istnieje ta zmienna, to
powłoka przed odczytem plików startowych wchodzi w \fItryb posix\fP, tak jakby
przy jej wywołaniu podano opcję \fB\-\-posix\fP.  Jeśli zmienna ta zostanie
ustawiona podczas pracy powłoki, to \fBbash\fP włącza \fItryb posix\fP, tak jakby
zostało wykonane polecenie
.if  t \f(CWset -o posix\fP
.if  n \fIset -o posix\fP

.TP 
\fBPROMPT_COMMAND\fP
Jeżeli jest ustawiona, to jej wartość jest wykonywana jako polecenie przed
każdym wysłaniem zachęty głównej.
.TP 
\fBPROMPT_DIRTRIM\fP
Gdy jest ustawiona na liczbę większa od zera, jej wartość jest używana jako
liczba początkowych składowych katalogów do usunięcia podczas
interpretowania sekwencji specjalnych łańcucha zachęty \fB\ew\fP i \fB\eW\fP
(patrz poniżej
.SM
\fBZACHĘTA POWŁOKI\fP). Usuwane znaki są zastępowane
wielokropkiem.
.TP 
\fBPS1\fP
Wartość tego parametru jest interpretowana (zobacz poniżej
.SM
\fBZACHĘTA\fP)  i używana jako główny łańcuch zachęty. Jego wartością domyślną
jest "\fB\es\-\ev\e$ \fP".
.TP 
\fBPS2\fP
Wartość tego parametru jest interpretowana jak
.SM
\fBPS1\fP i używana jako
wtórny (secondary) łańcuch zachęty. Domyślnie jest to "\fB> \fP".
.TP 
\fBPS3\fP
Wartość tego parametru służy jako zachęta w poleceniu \fBselect\fP (zobacz
powyżej
.SM
\fBGRAMATYKA POWŁOKI\fP).
.TP 
\fBPS4\fP
Wartość tego parametru interpretowana jest jak
.SM
\fBPS1\fP i wypisywana
przed każdym poleceniem wyświetlanym przez \fBbash\fP podczas śledzenia
wykonywania.  Pierwszy znak
.SM
\fBPS4\fP, w razie potrzeby, powtarzany jest
wielokrotnie, by wskazać wiele poziomów zagnieżdżenia.  Domyślnie jest to
"\fB+ \fP".
.TP 
\fBSHELL\fP
Pełna ścieżka powłoki jest przechowywana w tej zmiennej środowiskowej. Jeśli
nie jest ustawiona podczas uruchamiania powłoki, \fBbash\fP przypisuje jej
wartość pełnej ścieżki powłoki zgłoszeniowej bieżącego użytkownika.
.TP 
\fBTIMEFORMAT\fP
Wartość tego parametru służy jako łańcuch formatu określającego, jak powinna
być wyświetlana informacja o czasach dla potoków poprzedzonych słowem
zastrzeżonym \fBtime\fP. Znak \fB%\fP rozpoczyna sekwencję specjalną, która jest
interpretowana jako wartość czasu lub inna informacja. Sekwencje specjalne i
ich znaczenie są następujące; nawiasy kwadratowe opisują części opcjonalne.
.sp .5
.RS
.PD 0
.TP  10
\fB%%\fP
Dosłowny znak \fB%\fP.
.TP 
\fB%[\fP\fIp\fP\fB][l]R\fP
Czas, jaki upłynął, w sekundach.
.TP 
\fB%[\fP\fIp\fP\fB][l]U\fP
Liczba sekund, jakie CPU zużył w trybie użytkownika.
.TP 
\fB%[\fP\fIp\fP\fB][l]S\fP
Liczba sekund, jakie CPU zużył w trybie systemowym.
.TP 
\fB%P\fP
Procent wykorzystania CPU, liczony jako (%U + %S) / %R.
.PD
.RE
.IP
Opcjonalne \fIp\fP jest cyfrą określającą \fIdokładność\fP (precision), liczbę
cyfr ułamkowych po kropce dziesiętnej.  Wartość zero powoduje, że nie będzie
wyświetlana ani kropka dziesiętna ani część ułamkowa.  Mogą być podane co
najwyżej trzy miejsca po kropce dziesiętnej; wartości \fIp\fP większe od 3
zmieniane są na 3.  Jeżeli nie podano \fIp\fP, to używana jest wartość 3.
.IP
Opcjonalne \fBl\fP określa dłuższy (longer) format wyników, zawierający minuty,
w postaci \fIMM\fPm\fISS\fP.\fIFF\fPs.  O tym, czy występuje ułamkowa część sekund
decyduje wartość \fIp\fP.
.IP
Jeżeli zmienna ta nie jest ustawiona, to \fBbash\fP działa tak, jakby miała ona
wartość \fB$\(aq\enreal\et%3lR\enuser\et%3lU\ensys\et%3lS\(aq\fP. Jeżeli jej
wartością jest pusty łańcuch, to nie jest wyświetlana żadna informacja o
czasach (timing).  Podczas wyświetlania łańcucha formatu dodawany jest
kończący znak nowej linii.
.PD 0
.TP 
\fBTMOUT\fP
Jeśli ustawione na wartość większą od zera, to
.SM
\fBTMOUT\fP jest
interpretowane jako domyślny czas oczekiwania wbudowanego \fBread\fP. Polecenie
\fBselect\fP kończy się, jeśli dane nie zostaną wprowadzone po liczbie
.SM
\fBTMOUT\fP sekund, jeżeli wejście pochodzi z terminala. W przypadku powłok
interaktywnych, wartość jest interpretowana jako liczba sekund określającą
czas, przez jaki powłoka ma czekać na wprowadzenie wiersza danych po
wyświetleniu głównej zachęty. \fBBash\fP kończy pracę po odczekaniu tego czasu
jeśli pełen wiersz danych nie pojawił się.
.TP 
\fBTMPDIR\fP
Jeśli jest ustawiona, \fBbash\fP używa jej wartości jako nazwy katalogu w
którym tworzy pliki tymczasowe do użytku powłoki.
.TP 
\fBauto_resume\fP
Zmienna ta steruje sposobem interakcji powłoki z użytkownikiem i sposobem
kontroli zadań. Jeżeli jest ustawiona, to jednowyrazowe polecenia proste bez
przekierowań traktowane są jako aspirujące do wznowienia istniejącego
zatrzymanego zadania. Nie pozwala się na żadną dwuznaczność; jeśli jest
więcej niż jedno zadanie rozpoczynające się od wpisanego łańcucha, wybierane
jest zadanie, do którego ostatnio sięgano.  \fINazwa\fP zatrzymanego zadania, w
tym kontekście, jest wierszem poleceń użytym do jego uruchomienia.  Jeśli
posiada wartość \fIexact\fP, to podany łańcuch musi pasować dokładnie do nazwy
zatrzymanego zadania; Jeśli jest ustawione na \fIsubstring\fP, to podany
łańcuch powinien pasować do podłańcucha nazwy zatrzymanego zadania.  Wartość
\fIsubstring\fP zapewnia funkcjonalność analogiczną do identyfikatora zadania
\fB%?\fP (zobacz
.SM
\fBSTEROWANIE ZADANIAMI\fP poniżej).  Jeśli ustawiono inną
wartość, to podany łańcuch musi być przedrostkiem nazwy zatrzymanego
zadania; zapewnia to funkcjonalność analogiczną do identyfikatora zadania
\fB%\fP.
.TP 
\fBhistchars\fP
Dwa lub trzy znaki sterujące interpretacją historii i podziałem na leksemy
(zobacz poniżej
.SM
\fBINTERPRETACJA HISTORII\fP).  Pierwszy znak jest
znakiem \fIinterpretacji historii\fP, sygnalizującym początek interpretacji
historii, zwykle `\fB!\fP'.  Drugi znak jest znakiem \fIszybkiego podstawiania\fP,
("quick substitution"), służącym jako skrót do powtórnego uruchamiania
poprzednio wprowadzonego polecenia, podstawiającym w poleceniu jeden łańcuch
za inny.  Domyślnym znakiem szybkiego podstawiania jest `\fB^\fP'.  Opcjonalny,
trzeci znak jest znakiem wskazującym, że pozostała część wiersza, w którym
występuje on jako pierwszy znak słowa, jest komentarzem.  Zwykle znakiem tym
jest `\fB#\fP'. Znak komentarza historii powoduje, że dla pozostałych słów
wiersza podstawianie historii jest pomijane.  Niekoniecznie powoduje to
traktowanie reszty wiersza jako komentarza przez analizator składni powłoki.
.PD
.SS Tablice
\fBBash\fP udostępnia indeksowane i asocjacyjne zmienne tablicowe
jednowymiarowe. Jako tablica może zostać użyta dowolna zmienna; wbudowane
\fBdeclare\fP jawnie zadeklaruje tablicę. Nie ma maksymalnego rozmiaru tablic,
ani wymagania, by wszystkie jej elementy były indeksowane czy przypisywane w
sposób ciągły. Do tablic indeksowanych można się odwołać przy pomocy liczb
całkowitych (w tym wyrażeń arytmetycznych), począwszy od zera; natomiast
tablice asocjacyjne używają konkretnych łańcuchów. Jeśli nie zaznaczono
inaczej, indeksy tablic indeksowanych muszą być nieujemnymi liczbami
całkowitymi.
.PP
Tablica indeksowana tworzona jest automatycznie jeśli wykonywane jest
przypisanie do jakiejś zmiennej przy pomocy składni
\fInazwa\fP[\fIwskaźnik\fP]=\fIwartość\fP.  \fIWskaźnik\fP tablicy traktowany jest jako
wyrażenie arytmetyczne, które musi po interpretacji dać liczbę. Chcąc jawnie
zadeklarować tablicę indeksowaną, użyj \fBdeclare \-a \fP\fInazwa\fP (zobacz
.SM
\fBWBUDOWANE\fP \fBPOLECENIA\fP \fBPOWŁOKI\fP poniżej).  \fBdeclare \-a
\fP\fInazwa\fP\fB[\fP\fIwskaźnik\fP\fB]\fP jest również akceptowane; \fIwskaźnik\fP jest
wówczas ignorowany.
.PP
Tablice asocjacyjne są tworzone za pomocą konstrukcji \fBdeclare \-A
\fP\fInazwa\fP.
.PP
Atrybuty mogą być podane do zmiennej tablicy przy użyciu \fBdeclare\fP i
\fBreadonly\fP. Każdy z atrybutów stosowany jest do wszystkich elementów
tablicy.
.PP
Przypisania do tablic wykonywane są przy pomocy przypisań złożonych postaci
\fInazwa\fP=\fB(\fPwartość\fI1\fP ... wartość\fIn\fP\fB)\fP, gdzie każda \fIwartość\fP ma
postać [\fIwskaźnik\fP]=\fIłańcuch\fP. Przypisania tablic indeksowanych nie
wymagają niczego oprócz \fIłańcucha\fP. Jeżeli podano opcjonalne nawiasy i
wskaźnik, to wartość jest przypisywana wskazanemu elementowi tablicy
indeksowanej; w przeciwnym wypadku wartość przypisywana jest elementowi o
indeksie o jeden większym od ostatniego elementu z przypisaną
wartością. Indeks jest liczony od zera.
.PP
Przy przypisywaniu do tablicy asocjacyjnej konieczne jest podanie wskaźnika.
.PP
Składnia ta jest akceptowana także przy poleceniu wbudowanym
\fBdeclare\fP. Pojedyncze elementy tablicy można przypisać za pomocą składni
\fInazwa\fP[\fIwskaźnik\fP]=\fIwartość\fP wprowadzonej powyżej. Jeśli \fIwskaźnik\fP da
po interpretacji liczbę mniejszą od zera, to jest używany jako przesunięcie
od maksymalnego indeksu tablicy plus jeden (wskaźnik \-1 odnosi się więc do
ostatniego elementu tablicy).
.PP
Do elementu tablicy można odwoływać się używając
${\fInazwa\fP[\fIwskaźnik\fP]}. Nawiasy są wymagane, by uniknąć konfliktów z
rozwijaniem nazw plików. Jeśli \fIwskaźnikiem\fP jest \fB@\fP lub \fB*\fP, to
powyższe słowo interpretowane jest jako wszystkie elementy \fInazwy\fP.
Wskaźniki te różnią się tylko wtedy, gdy słowo pojawia się w cudzysłowach.
Jeśli słowo ujęto w cudzysłowy, to ${\fInazwa\fP[*]} interpretowane jest jako
pojedyncze słowo o wartości wszystkich elementów tablicy rozdzielonych
pierwszym znakiem zmiennej specjalnej
.SM
\fBIFS\fP, zaś ${\fInazwa\fP[@]}
interpretuje każdy z elementów \fInazwa\fP jako odrębne słowo. Jeśli brak jest
elementów tablicy, to ${\fInazwa\fP[@]} interpretowane jest jako nic. Jeśli
wewnątrz słowa zachodzi interpretacja (ujęta w cudzysłowy), to pierwszy
zinterpretowany parametr jest łączony z początkiem oryginalnego słowa, a
interpretacja ostatniego parametru jest łączona z końcem oryginalnego
słowa. Jest to zachowanie analogiczne do interpretacji parametrów
specjalnych \fB*\fP i \fB@\fP (zobacz powyżej \fBParametry specjalne\fP).
${#\fInazwa\fP[\fIwskaźnik\fP]} interpretowane jest jako długość
${\fInazwa\fP[\fIwskaźnik\fP]}. Jeśli \fIwskaźnikiem\fP jest \fB*\fP lub \fB@\fP, to
interpretacją jest liczba elementów w tablicy. Odwoływania się do zmiennej
tablicowej bez podania wskaźnika jest równoważne odwołaniu do elementu numer
zero. Jeśli \fIwskaźnik\fP da po interpretacji liczbę mniejszą od zera, to jest
używany jako przesunięcie od maksymalnego indeksu tablicy plus jeden
(wskaźnik \-1 odnosi się więc do ostatniego elementu tablicy).
.PP
Zmienna tablicowa jest ustawiona, jeśli do wskaźnika przypisano
wartość. Łańcuch pusty jest poprawną wartością.
.PP
Można pozyskać zarówno Klucze (wskaźniki) tablicy jak i
wartości. ${\fB!\fP\fInazwa\fP[\fI@\fP]} i ${\fB!\fP\fInazwa\fP[\fI*\fP]} są interpretowane
jako wskaźniki przypisane do zmiennej \fInazwa\fP tablicy. expand to the
indices assigned in array variable \fIname\fP. Gdy zastosowany jest cudzysłów,
powłoka zachowuje się podobnie jak w przypadku interpretacji specjalnych
parametrów \fI@\fP i \fI*\fP w cudzysłowach.
.PP
Do niszczenia tablic służy wbudowane polecenie \fBunset\fP.  \fBunset\fP
\fInazwa\fP[\fIwskaźnik\fP] niszczy element tablicy o indeksie \fIwskaźnik\fP. Ujemne
wskaźniki tablic indeksowany są intepretowane zgodnie z opisem
powyżej. Konieczne jest zachowanie wzmożonej uwagi, aby zapobiec niechcianym
skutkom rozwijania nazw plików. Polecenie \fBunset\fP \fInazwa\fP, gdzie \fInazwa\fP
jest tablicą, lub \fBunset\fP \fInazwa\fP[\fIwskaźnik\fP], gdzie \fIwskaźnikiem\fP jest
\fB*\fP lub \fB@\fP, usuwa całą tablicę.
.PP
Każde z wbudowanych \fBdeclare\fP, \fBlocal\fP i \fBreadonly\fP akceptuje opcję \fB\-a\fP
do określania tablic indeksowanych i opcję \fB\-A\fP do określania tablic
asocjacyjnych. Jeśli podano obie opcje, to pierwszeństwo ma \fB\-A\fP. Polecenie
\fBread\fP akceptuje opcję \fB\-a\fP do przypisywania tablicy listy słów
przeczytanych ze standardowego wejścia.  \fBset\fP i \fBdeclare\fP wyświetlają
wartości tablicowe w sposób umożliwiający ponowne ich użycie w
przypisaniach.
.SH INTERPRETACJA
Interpretacja wykonywana jest na wierszu poleceń po jego podziale na słowa.
Istnieje siedem rodzajów wykonywanych interpretacji: \fIinterpretacja
nawiasów\fP (brace expansion), \fIinterpretacja tyld\fP (tilde expansion),
\fIpodstawianie parametrów i interpretacja zmiennych\fP (parameter and variable
expansion), \fIpodstawienie wyników poleceń\fP (command substitution),
\fIinterpretacja wyrażeń arytmetycznych\fP (arithmetic expansion), \fIpodział na
słowa\fP (word splitting)  i \fIrozwinięcie nazw plików\fP (pathname expansion).
.PP
Kolejność interpretacji: interpretacja nawiasów, interpretacja tyld,
interpretacja parametrów i zmiennych, interpretacja wyrażeń arytmetycznych i
podstawianie wyników poleceń (wykonywane od lewej do prawej), podział na
słowa i rozwijanie nazw ścieżek.
.PP
Na systemach potrafiących to obsłużyć, istnieje dodatkowa dostępna
interpretacja: \fIpodstawienie wyników procesów\fP (process substitution). Jest
to przeprowadzane w tym samym czasie, jak interpretacja tyld, parametrów,
zmiennych i wyrażeń\ arytmetycznych oraz poleceń.
.PP
Tylko interpretacja nawiasów, dzielenie na słowa i rozwinięcie nazw plików
mogą zmienić liczbę słów interpretowanego wyrażenia; pozostałe interpretacje
rozwijają pojedyncze słowo w pojedyncze słowo.  Jedynymi wyjątkami są
interpretacje "\fB$@\fP" i "\fB${\fP\fInazwa\fP\fB[@]}\fP" wyjaśnione powyżej (zobacz
.SM
\fBPARAMETRY\fP).
.SS "Interpretacja nawiasów"
.PP
\fIInterpretacja nawiasów\fP jest mechanizmem, przez który mogą być generowane
dowolne łańcuchy.  Mechanizm ten przypomina \fIrozwinięcia nazw plików\fP, ale
generowane nazwy plików nie muszą określać plików istniejących. Wzorce,
mające podlegać interpretacji nawiasów mają postać opcjonalnej \fIpreambuły\fP,
po której występują serie separowanych przecinkami łańcuchów pomiędzy parą
nawiasów klamrowych, po których następuje opcjonalny \fIdopisek\fP
(postscript).  Preambuła stanowi przedrostek dla każdego z łańcuchów
zawartych w nawiasach, a dopisek dodawany jest do każdego łańcucha
wynikowego, przy interpretacji od lewej do prawej.
.PP
Interpretacja nawiasów może być zagnieżdżana. Wyniki każdego
zinterpretowanego łańcucha nie są sortowane; zachowywana jest kolejność od
lewej do prawej. Na przykład, a\fB{\fPd,c,b\fB}\fPe interpretowane jest jako "ade
ace abe".
.PP
Sekwencja wyrażeń przyjmuje postać \fB{\fP\fIx\fP\fB..\fP\fIy\fP\fB[..\fP\fIkrok\fP\fB]}\fP,
gdzie \fIx\fP i \fIy\fP są albo liczbami całkowitymi, albo pojedynczymi znakami, a
opcjonalny \fIkrok\fP jest liczbą całkowitą. Gdy podane są liczby całkowite, to
wyrażenie jest rozwijane do wszystkich liczb pomiędzy \fIx\fP i \fIy\fP
(włącznie). Podane liczby mogą być poprzedzone \fI0\fP, które wymusza
identyczną szerokość każdej z wynikowych liczb. Gdy \fIx\fP lub \fIy\fP zaczynają
się zerem, to powłoka próbuje wymusić utworzenie liczb zawierających tę samą
liczbę cyfr, uzupełniając je zerami tam, gdzie zachodzi taka potrzeba. Gdy
podano znaki, wyrażenie jest rozwijane do wszystkich znaków, znajdujących
się leksykalnie (w domyślnych locale C) pomiędzy \fIx\fP a \fIy\fP
(włącznie). Proszę odnotować, że \fIx\fP i \fIy\fP muszą być tego samego typu. Gdy
podano krok, to jest on używany jako różnica pomiędzy poszczególnymi
wynikami. W zależności od podanych wartości, domyślnym krokiem jest 1 lub
\-1.
.PP
Interpretacja nawiasów wykonywana jest przed innymi rodzajami interpretacji,
a znaki o specjalnym znaczeniu dla innych interpretacji są zachowywane w
wyniku. Jest ściśle tekstowa. \fBBash\fP nie stosuje żadnej interpretacji
składniowej do kontekstu interpretacji czy tekstu pomiędzy nawiasami.
.PP
Poprawnie zbudowana interpretacja nawiasów musi zawierać niecytowany nawias
otwierający i zamykający i co najmniej jeden niecytowany przecinek.
Wszelkie niepoprawnie skonstruowane interpretacje nawiasów są pozostawiane
bez zmian.  \fB{\fP lub \fB,\fP można cytować przy pomocy odwrotnego ukośnika, co
chroni je przed przyjmowaniem za część wyrażenia nawiasowego.  Dla
uniknięcia konfliktu z interpretacją parametrów, łańcuch \fB${\fP nie jest
traktowany jako spełniający warunki interpretacji nawiasów.
.PP
Typowym zastosowaniem tej konstrukcji jest skrót, wtedy gdy wspólny
przedrostek łańcuchów do utworzenia jest dłuższy niż w powyżej podanym
przykładzie, np.:
.RS
.PP
mkdir /usr/local/src/bash/{old,new,dist,bugs}
.RE
lub
.RS
chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}
.RE
.PP
Interpretacja nawiasów wprowadza niewielką niezgodność z historycznymi
wersjami \fBsh\fP.  \fBsh\fP nie traktuje nawiasów otwierających i zamykających w
specjalny sposób gdy pojawiają się one jako część słowa, i zachowuje je w
wyniku.  W \fBbash\fP konsekwencją interpretacji nawiasów jest usuwanie
nawiasów ze słów.  Na przykład, słowo wprowadzone do \fBsh\fP jako \fIplik{1,2}\fP
pojawi się w identycznej postaci na wyjściu. To samo słowo po interpretacji
przez \fBbash\fP daje \fIplik1 plik2\fP.  Jeżeli pożądana jest ścisła zgodność z
\fBsh\fP, uruchom \fBbash\fP z opcją \fB+B\fP lub wyłącz interpretację nawiasów przy
pomocy opcji \fB+B\fP polecenia \fBset\fP (zobacz
.SM
\fBWBUDOWANE\fP \fBPOLECENIA\fP
\fBPOWŁOKI\fP poniżej).
.SS "Interpretacja tyldy"
.PP
Jeżeli słowo rozpoczyna się niecytowanym znakiem tyldy (`\fB~\fP'), to
wszystkie znaki poprzedzające pierwszy niecytowany ukośnik (lub wszystkie
znaki, gdy nie ma ukośnika) uważane są za \fIprzedrostek tyldy\fP
(tilde\-prefix).  Jeżeli żaden ze znaków w przedrostku tyldy nie jest
cytowany, to jego znaki następujące po znaku tyldy traktowane są jako
możliwa \fInazwa logowania\fP (login name).  Jeśli ta nazwa logowania jest
łańcuchem pustym, to tylda zastępowana jest wartością parametru powłoki
.SM
\fBHOME\fP.  Jeżeli
.SM
\fBHOME\fP nie jest ustawione, to podstawiany
jest za nie katalog domowy użytkownika uruchamiającego powłokę.  W
przeciwnym wypadku, przedrostek tyldy zastępowany jest katalogiem domowym
skojarzonym z określoną nazwą logowania.
.PP
Jeśli przedrostkiem tyldy jest `~+', to jest on zastępowany wartością
zmiennej
.SM
\fBPWD\fPpowłoki.  Jeśli przedrostkiem tyldy jest `~\-', to jest
on zastępowany wartością zmiennej powłoki
.SM
\fBOLDPWD\fP, jeśli jest ona
ustawiona.  Jeżeli występujące w przedrostku po tyldzie znaki składają się z
liczby \fIN\fP, opcjonalnie poprzedzonej przez `+' lub `\-', to przedrostek
tyldy zastępowany jest odpowiednim elementem stosu katalogów, jaki zostałby
wyświetlony przez wbudowane \fBdirs\fP, wywołane z przedrostkiem tyldy jako
argumentem.  Jeżeli w przedrostku tyldy znaki występujące po tyldzie
składają się z liczby bez początkowego `+' lub `\-', to przyjmowane jest `+'.
.PP
Jeśli nazwa logowania jest nieprawidłowa lub interpretacja tyldy nie
powiodła się, to słowo z tyldą pozostaje niezmienione.
.PP
Każde z przypisań do zmiennej sprawdzane jest na obecność niecytowanych
przedrostków tyldy występujących bezpośrednio po \fB:\fP lub \fB=\fP.  W tych
przypadkach również jest wykonywana jest interpretacja tyldy.  Na skutek
tego, można posługiwać się nazwami plików z tyldami w przypisaniach do
.SM
\fBPATH\fP,
.SM
\fBMAILPATH\fP i
.SM
\fBCDPATH\fP, a powłoka przypisze
zinterpretowaną wartość.
.SS "Podstawianie parametrów"
.PP
Znak `\fB$\fP' wprowadza podstawianie parametrów, podstawianie wyników poleceń
i interpretację wyrażeń arytmetycznych. Podlegająca interpretacji nazwa
parametru lub symbol mogą być ujęte w nawiasy klamrowe, które są opcjonalne,
ale służą do ochrony interpretowanej zmiennej przed znakami, jakie występują
bezpośrednio po niej, a które mogłyby zostać zinterpretowane jako część
nazwy.
.PP
Gdy używane są nawiasy, pasującym nawiasem kończącym jest pierwszy `\fB}\fP',
nie chroniony przez odwrotny ukośnik, nie znajdujący się wewnątrz cytowanego
łańcucha ani nie osadzony w wyrażeniu arytmetycznym, podstawieniu wyniku
polecenia czy podstawieniu parametru.
.PP
.PD 0
.TP 
${\fIparametr\fP}
Podstawiana jest wartość \fIparametru\fP. Nawiasy wymagane są gdy \fIparametr\fP
jest parametrem pozycyjnym o więcej niż jednej cyfrze, lub gdy po
\fIparametrze\fP występuje znak, który nie powinien być interpretowany jako
część jego nazwy. \fIParametr\fP jest parametrem powłoki opisanych powyżej
\fBPARAMETRY\fP lub odniesieniem do tablicy (\fBTablice\fP).
.PD
.PP
Jeżeli pierwszym znakiem \fIparametru\fP jest wykrzyknik, to rozpoczyna on
poziom zagnieżdżenia zmiennej pośredniej.  \fBBash\fP posługuje się wartością
zmiennej utworzonej z reszty \fIparametru\fP jako nazwą zmiennej; zmienna ta
jest następnie interpretowana a w dalszym podstawianiu używana jest
otrzymana wartość zamiast wartości samego \fIparametru\fP.  Znane jest to jako
\fIinterpretacja pośrednia\fP (indirect expansion).  Wyjątkami są interpretacja
${\fB!\fP\fIprzedrostek\fP\fB*\fP} i ${\fB!\fP\fInazwa\fP[\fI@\fP]} opisane poniżej. Aby
wprowadzić interpretację pośrednią, wykrzyknik musi występować bezpośrednio
po lewym nawiasie klamrowym.
.PP
W każdym z poniższych przypadków, \fIsłowo\fP podlega interpretacji tyldy,
podstawianiu parametrów, podstawianiu wyników poleceń i interpretacji
wyrażeń arytmetycznych.
.PP
Gdy nie przeprowadza interpretacji podłańcuchów, za pomocą opisanych poniżej
formuł (np. \fB:\-\fP) \fBbash\fP sprawdza czy parametr nie jest pusty lub
nieustawiony. Pominięcie dwukropka skutkuje sprawdzeniem jedynie tego, czy
parametr nie jest nieustawiony.
.PP
.PD 0
.TP 
${\fIparametr\fP\fB:\-\fP\fIsłowo\fP}
\fBUżywa wartości domyślnych\fP. Jeżeli \fIparametr\fP jest nieustawiony lub
pusty, to podstawiane jest zinterpretowane \fIsłowo\fP.  W przeciwnym razie,
podstawiana jest wartość \fIparametru\fP.
.TP 
${\fIparametr\fP\fB:=\fP\fIsłowo\fP}
\fBPrzypisuje wartości domyślne\fP.  Jeżeli \fIparametr\fP jest nieustawiony lub
pusty, to jest mu przypisywane zinterpretowane \fIsłowo\fP.  Następnie
podstawiana jest wartość \fIparametru\fP.  Nie można w ten sposób przypisywać
wartości parametrom pozycyjnym ani parametrom specjalnym.
.TP 
${\fIparametr\fP\fB:?\fP\fIsłowo\fP}
\fBWyświetla błąd jeśli pusty lub nieustawiony\fP.  Jeżeli \fIparametr\fP jest
nieustawiony lub pusty, to na standardowe wyjście błędów zapisywane jest
zinterpretowane \fIsłowo\fP (lub komunikat o takim wyniku, jeśli brak
\fIsłowa\fP).  Jeśli powłoka nie jest interaktywna, to kończy pracę.  W
przeciwnym wypadku, podstawiana jest wartość \fIparametru\fP.
.TP 
${\fIparametr\fP\fB:+\fP\fIsłowo\fP}
\fBUżywa wartości alternatywnej\fP.  Jeżeli \fIparametr\fP jest nieustawiony lub
pusty, to nic nie jest podstawiane, w przeciwnym razie podstawiane jest
zinterpretowane \fIsłowo\fP.
.TP 
${\fIparametr\fP\fB:\fP\fIprzesunięcie\fP}
.PD 0
.TP 
${\fIparametr\fP\fB:\fP\fIprzesunięcie\fP\fB:\fP\fIdługość\fP}
.PD
\fBInterpretacja podłańcuchów\fP. Interpretuje do \fIdługości\fP znaków wartości
\fIparametru\fP, poczynając od znaku określonego \fIprzesunięciem\fP. Jeśli
\fIparametrem\fP jest \fB@\fP, tablica indeksowana ze wskaźnikiem \fB@\fP lub \fB*\fP
lub nazwa tablicy asocjacyjnej, wynik różni się, zgodnie z poniższym
opisem. Jeśli nie poda się \fIdługości\fP, to interpretuje podłańcuch wartości
\fIparametru\fP poczynając od znaku określonego \fIprzesunięciem\fP i kończąc z
końcem wartości. \fIDługość\fP i \fIprzesunięcie\fP są wyrażeniami arytmetycznymi
(zob.
.SM
\fBOBLICZANIE WYRAŻEŃ ARYTMETYCZNYCH\fP poniżej).
.sp 1
Jeśli \fIprzesunięcie\fP wyniesie mniej niż zero, wartość jest używana jako
przesunięcie w znakach od końca wartości \fIparametru\fP. Jeśli \fIdługość\fP
wyniesie mniej niż zero, jest interpretowana jako przesunięcie w znakach od
końca wartości \fIparametru\fP, a nie jako liczba znaków, a interpretacja
będzie dotyczyć znaków pomiędzy \fIprzesunięciem\fP i tym wynikiem. Proszę
zauważyć, że ujemne przesunięcie musi być oddzielone od dwukropka
przynajmniej jedną spacją aby zapobiec pomyleniu z wyrażeniem \fB:\-\fP.
.sp 1
Jeśli \fIparametrem\fP jest \fB@\fP, to wynikiem jest \fIdługość\fP parametrów
pozycyjnych poczynając od \fIprzesunięcia\fP. Ujemne \fIprzesunięcie\fP jest
liczone w odniesieniu do parametru o jeden więcej niż największy parametr
pozycyjny, więc przesunięcie \-1 jest interpretowane jako ostatni parametr
pozycyjny. Jeśli \fIdługość\fP będzie mniejsza od zera wystąpi błąd
interpretacji.
.sp 1
Jeśli \fIparametr\fP jest nazwą tablicy indeksowanej z wskaźnikiem @ lub *, to
wynikiem jest \fIdługość\fP elementów tablicy poczynając od
${\fIparametr\fP[\fIprzesunięcie\fP]}. Jeśli \fIwskaźnik\fP da po interpretacji
liczbę mniejszą od zera, to jest używany jako przesunięcie od maksymalnego
indeksu tablicy plus jeden. Jeśli \fIdługość\fP będzie mniejsza od zera wystąpi
błąd interpretacji.
.sp 1
Interpretacja podłańcucha zastosowana do tablicy asocjacyjnej da w wyniku
niezdefiniowany rezultat.
.sp 1
Indeksowanie podłańcuchów zaczyna się od zera, chyba że używane są parametry
pozycyjne, wówczas indeksy liczy się domyślnie od 1. Jeśli \fIprzesunięcie\fP
wyniesie 0 i użyje się parametrów pozycyjnych, do listy włącza się na
początku \fB$0\fP.
.TP 
${\fB!\fP\fIprzedrostek\fP\fB*\fP}
.PD 0
.TP 
${\fB!\fP\fIprzedrostek\fP\fB@\fP}
.PD
\fBNazywa pasujący przedrostek\fP. Rozwija się w listę nazw tych zmiennych,
których nazwy rozpoczynają się od \fIprzedrostka\fP, rozdzielonych od siebie
pierwszym znakiem zmiennej specjalnej
.SM
\fBIFS\fP. Jeśli używane jest
\fI@\fP, a interpretacja jest ujęta w cudzysłowy, to każda nazwa zmiennej jest
interpretowana jako oddzielne słowo.
.TP 
${\fB!\fP\fInazwa\fP[\fI@\fP]}
.PD 0
.TP 
${\fB!\fP\fInazwa\fP[\fI*\fP]}
.PD
\fBLista kluczy z tablicy\fP. Jeśli \fInazwa\fP jest zmienną tablicową, jest
rozwijana do listy wskaźników (kluczy) tablicowych przypisanych do
\fInazwy\fP. Jeśli \fInazwa\fP nie jest tablicą, interpretowana jest do 0, jeśli
\fInazwa\fP jest ustawiona lub pozostaje pusta w przeciwnym wypadku. Gdy
używane jest \fI!\fP, a interpretacja jest ujęta w cudzysłowy, każdy klucz jest
rozwijany do oddzielnego słowa.
.TP 
${\fB#\fP\fIparametr\fP}
\fBDługość parametru\fP. Podstawiana jest długość, w znakach, wartości
\fIparametru\fP.  Jeżeli \fIparametrem\fP jest \fB*\fP lub \fB@\fP, wartość podstawiana
jest liczbą parametrów pozycyjnych.  Jeżeli \fIparametr\fP jest nazwą tablicy o
indeksowanej przez \fB*\fP lub \fB@\fP, wartość podstawiana jest liczbą elementów
tablicy.
.TP 
${\fIparametr\fP\fB#\fP\fIsłowo\fP}
.PD 0
.TP 
${\fIparametr\fP\fB##\fP\fIsłowo\fP}
.PD
\fBUsuwanie pasującego wzorca przedrostka\fP. \fISłowo\fP jest interpretowane
tworząc wzorzec, tak samo jak przy rozwijaniu nazw plików. Jeżeli wzorzec
pasuje do początku wartości \fIparametru\fP, to wynikiem interpretacji jest
zinterpretowana wartość \fIparametru\fP z usuniętym najkrótszym (przypadek
,,\fB#\fP\*(rq) lub najdłuższym (przypadek ,,\fB##\fP\*(rq) pasującym wzorcem.  Jeżeli
\fIparametrem\fP jest \fB@\fP lub \fB*\fP, to operacja usunięcia wzorca stosowana
jest do każdego po kolei parametru pozycyjnego, zaś wynikiem interpretacji
jest powstała lista.  Jeśli \fIparametr\fP jest zmienną tablicową indeksowaną
przez \fB@\fP lub \fB*\fP, to operacja usuwania wzorca jest przeprowadzana po
kolei na każdym elemencie tablicy, zaś wynikiem interpretacji jest powstała
lista.
.TP 
${\fIparametr\fP\fB%\fP\fIsłowo\fP}
.PD 0
.TP 
${\fIparametr\fP\fB%%\fP\fIsłowo\fP}
.PD
\fBUsuwanie pasującego wzorca przyrostka\fP. \fISłowo\fP jest interpretowane
tworząc wzorzec, tak samo jak przy rozwijaniu nazw plików. Jeżeli wzorzec
pasuje do końcowej części zinterpretowanego \fIparametru\fP, wynikiem
interpretacji jest zinterpretowana wartość \fIparametru\fP z usuniętym
najkrótszym (przypadek ,,\fB%\fP\*(rq) lub najdłuższym (przypadek ,,\fB%%\fP\*(rq)
pasującym wzorcem. Jeżeli \fIparametrem\fP jest \fB@\fP lub \fB*\fP, to operacja
usunięcia wzorca stosowana jest do każdego po kolei parametru pozycyjnego,
zaś wynikiem interpretacji jest  powstała lista. Jeśli \fIparametr\fP jest
zmienną tablicową indeksowaną przez \fB@\fP lub \fB*\fP, operacja usuwania wzorca
jest przeprowadzana po kolei na każdym elemencie tablicy, zaś wynikiem
interpretacji jest powstała lista.
.TP 
${\fIparametr\fP\fB/\fP\fIwzorzec\fP\fB/\fP\fIłańcuch\fP}
\fBZastępowanie wzorca\fP.  \fIWzorzec\fP jest interpretowany w identyczny sposób
jak to ma miejsce przy rozwijaniu nazw plików. \fIParametr\fP jest rozwijany, a
najdłuższe dopasowanie \fIwzorca\fP do jego wartości jest zastępowane
\fIłańcuchem\fP. Jeśli \fIwzorzec\fP rozpoczyna się \fB/\fP, to wszystkie dopasowania
\fIwzorca\fP są zastępowane \fIłańcuchem\fP. Normalnie, zastępowane jest tylko
pierwsze dopasowanie. Jeśli \fIwzorzec\fP rozpoczyna się \fB#\fP, to musi pasować
do początku zinterpretowanej wartości \fIparametru\fP. Jeśli zaczyna się \fB%\fP,
musi natomiast pasować do końca tej wartości. Jeśli \fIłańcuch\fP jest pusty,
wszystkie dopasowania \fIwzorca\fP są usuwane, a początkowy \fB/\fP \fIwzorca\fP może
zostać pominięty. Jeśli \fIparametrem\fP jest \fB@\fP lub \fB*\fP, to operacja
podstawiania jest przeprowadzana na każdym parametrze pozycyjnym z kolei, a
zinterpretowanym wynikiem jest powstała lista. Jeśli \fIparametr\fP jest
zmienną tablicową, w której jako indeks podano \fB@\fP lub \fB*\fP, to operacja
podstawiania jest przeprowadzana na każdym jej wpisie po kolei, a
zinterpretowanym wynikiem jest powstała lista.
.TP 
${\fIparametr\fP\fB^\fP\fIwzorzec\fP}
.PD 0
.TP 
${\fIparametr\fP\fB^^\fP\fIwzorzec\fP}
.TP 
${\fIparametr\fP\fB,\fP\fIwzorzec\fP}
.TP 
${\fIparametr\fP\fB,,\fP\fIwzorzec\fP}
.PD
\fBModyfikacja wielkości znaków\fP. Ta interpretacja modyfikuje wielkość
zawartych liter zgodnie z \fIparametrem\fP. \fIWzorzec\fP jest interpretowany w
taki sposób, jak czyni to rozwijanie nazw plików. Każdy znak w
interpretowanej wartości \fIparametru\fP jest sprawdzany ze \fIwzorcem\fP i jeśli
do niego pasuje, wielkość litery jest zmieniana. Wzorzec nie powinien
dopasowywać więcej niż jednego znaku. Operator \fB^\fP konwertuje małe litery
pasujące do \fIwzorca\fP na wielkie, operator \fB,\fP działa odwrotnie. \fB^^\fP i
\fB,,\fP konwertują każdy dopasowany znak interpretowanej wartości, natomiast
\fB^\fP i \fB,\fP konwertują jedynie jej pierwszy znak. Jeśli nie podano
\fIwzorca\fP, to przyjmuje się za niego \fB?\fP, co powoduje dopasowanie każdego
znaku. Jeśli \fIparametrem\fP jest \fB@\fP lub \fB*\fP, to operacja podstawiania
stosowana jest do każdego po kolei parametru pozycyjnego, zaś wynikiem
interpretacji jest powstała lista.  Jeśli \fIparametr\fP jest zmienną tablicową
indeksowaną przez \fB@\fP lub \fB*\fP, operacja podstawiania jest przeprowadzana
po kolei na każdym elemencie tablicy, zaś wynikiem interpretacji jest
powstała lista.
.SS "Podstawianie wyników poleceń"
.PP
\fIPodstawianie wyników poleceń\fP (command substitution) pozwala na
zastępowanie nazwy polecenia wyjściem (wynikiem) z jego działania.  Posiada
dwie postaci:
.RS
.PP
\fB$(\fP\fIpolecenie\fP\|\fB)\fP
.RE
lub
.RS
\fB\`\fP\fIpolecenie\fP\fB\`\fP
.RE
.PP
\fBBash\fP wykonuje interpretację wykonując \fIpolecenie\fP i zastępując
podstawiane polecenie jego utworzonym standardowym wyjściem, z usuniętymi
końcowymi znakami nowej linii.  Zawarte wewnątrz wyniku znaki nowej linii
nie są usuwane, ale mogą być usunięte podczas podziału na słowa.
Podstawienie wyniku polecenia \fB$(cat \fP\fIplik\fP\fB)\fP można zastąpić
równoważnym, ale szybszym \fB$(< \fP\fIplik\fP\fB)\fP.
.PP
Gdy używane jest podstawianie w starym stylu, z użyciem odwrotnych
apostrofów, odwrotny ukośnik zachowuje swe znaczenie dosłowne, z wyjątkiem
przypadków, gdy jest poprzedzony przez \fB$\fP, \fB`\fP lub \fB\e\fP.  Pierwszy
odwrotny apostrof (`) nie poprzedzony odwrotnym ukośnikiem kończy
podstawianie wyniku polecenia.  Podczas posługiwania się postacią
$(\^\fIpolecenie\fP\|), polecenie tworzą wszystkie znaki pomiędzy nawiasami;
żaden nie jest traktowany specjalnie.
.PP
Podstawianie wyników poleceń może być zagnieżdżane. W celu zagnieżdżenia
postaci z odwrotnymi apostrofami zabezpiecz wewnętrzne przed interpretacją
używając odwrotnych ukośników.
.PP
Jeżeli podstawianie pojawia się wewnątrz cudzysłowów, to na wynikach nie
jest przeprowadzany podział na słowa ani rozwinięcie nazw plików.
.SS "Interpretacja wyrażeń arytmetycznych"
.PP
Interpretacja wyrażeń arytmetycznych pozwala na obliczanie wyrażeń
arytmetycznych i podstawianie wyniku. Format interpretacji arytmetycznej:
.RS
.PP
\fB$((\fP\fIwyrażenie\fP\fB))\fP
.RE
.PP
Stary format \fB$[\fP\fIwyrażenie\fP\fB]\fP jest przestarzały i zostanie usunięty w
przyszłych wersjach basha.
.PP
\fIwyrażenie\fP traktowane jest tak, jakby było ujęte w cudzysłowy, ale
cudzysłów wewnątrz nawiasów nie jest traktowany specjalnie.  Wszystkie
tokeny w wyrażeniu podlegają interpretacji parametrów i zmiennych,
podstawianiu wyników poleceń i usuwaniu cudzysłowów. Wynik jest traktowany
jako wyrażenie arytmetyczne do obliczenia. Wyrażenia arytmetyczne mogą być
zagnieżdżane.
.PP
Interpretacja przeprowadzana jest zgodnie z zasadami podanymi poniżej w
sekcji
.SM
\fBOBLICZENIA ARYTMETYCZNE\fP.  Jeżeli \fIwyrażenie\fP jest
nieprawidłowe, \fBbash\fP wypisuje komunikat o niepowodzeniu i nie występuje
żadne podstawienie.
.SS "Podstawianie wyników procesów (Process substitution)"
.PP
\fIPodstawianie wyników procesów\fP obsługiwane jest na systemach obsługujących
potoki nazwane (\fIFIFO\fP) lub metodę \fB/dev/fd\fP nazywania otwartych plików.
Przybiera ono postać \fB<(\fP\fIlista\^\fP\fB)\fP lub \fB>(\fP\fIlista\^\fP\fB)\fP.
Proces \fIlista\fP uruchamiany jest z wejściem i wyjściem podłączonym do
\fIFIFO\fP lub jakiegoś pliku w \fB/dev/fd\fP. W wyniku interpretacji nazwa tego
pliku przesyłana jest jako argument bieżącego polecenia.  Jeżeli posłużono
się postacią \fB>(\fP\fIlista\^\fP\fB)\fP, zapis do pliku będzie stanowić wejście
dla \fIlisty\fP. Jeżeli posłużono się postacią \fB<(\fP\fIlista\^\fP\fB)\fP, plik
przekazany jako argument powinien zostać odczytany w celu uzyskania wyjścia
\fIlisty\fP.
.PP
Gdy jest to możliwe, podstawianie wyników procesu wykonywane jest
równocześnie z interpretacją parametrów i zmiennych, podstawianiem wyników
poleceń i interpretacją wyrażeń arytmetycznych.
.SS "Podział na słowa"
.PP
Powłoka przeszukuje wyniki interpretacji parametrów, podstawiania poleceń i
interpretacji wyrażeń arytmetycznych, które nie pojawiają się wewnątrz
cudzysłowów, w celu przeprowadzenia \fIpodziału na słowa\fP.
.PP
Powłoka traktuje każdy znak
.SM
\fBIFS\fP jak separator i dzieli na słowa
wyniki innych interpretacji, używając ich jako separatorów pól. Jeżeli
.SM
\fBIFS\fP nie jest ustawione lub jego wartością jest dokładnie
\fB<spacja><tab><nowalinia>\fP, wartość domyślna, to
sekwencje składające się ze \fB<spacji>\fP, \fB<tabulatora>\fP i
\fB<nowejlinii>\fP na początku i końcu wyników poprzednich
interpretacji są ignorowane, a do podziału na słowa służy dowolna sekwencja
znaków
.SM
\fBIFS\fP, jeżeli nie znajduje się na początku lub końcu.  Jeżeli
.SM
\fBIFS\fP posiada wartość inną niż domyślna, to sekwencje białych znaków
\fBspacji\fP i \fBtabulacji\fP są ignorowane na początku i końcu słowa, dopóki
biały znak występuje w wartości
.SM
\fBIFS\fP (biały znak
.SM
\fBIFS\fP).
Inne znaki w
.SM
\fBIFS\fP nie będące białymi znakami
.SM
\fBIFS\fP, łącznie
z dowolnymi przyległymi białymi znakami
.SM
\fBIFS\fP, ograniczają pole.
Sekwencja białych znaków
.SM
\fBIFS\fP jest również traktowana jako
ogranicznik.  Jeśli
.SM
\fBIFS\fP jest łańcuchem pustym, to nie występuje
podział na słowa.
.PP
Jawnie puste argumenty (\^\fB"\^"\fP lub \^\fB'\^'\fP\^) są pozostawiane.
Niecytowane argumenty puste niejawnie, wynikające z interpretacji parametrów
nie posiadających wartości, są usuwane.  Jeśli parametr bez wartości
interpretowany jest wewnątrz cudzysłowów, to wynikiem jest argument pusty i
jest on zachowywany.
.PP
Zauważ, że jeśli nie występuje interpretacja, to nie jest również wykonywany
podział.
.SS "Rozwijanie nazw plików (Pathname Expansion)"
.PP
Po podziale na słowa, jeżeli nie ustawiona została opcja \fB\-f\fP, przegląda
każde słowo w poszukiwaniu znaków \fB*\fP, \fB?\fP i \fB[\fP.  Jeśli pojawia się
jeden z nich, to słowo uważane jest za \fIwzorzec\fP i zastępowane jest
posortowaną alfabetycznie listą nazw plików pasujących do wzorca
(zob.
.SM
\fBDopasowanie wzorca\fP. Jeżeli nie znaleziono pasujących nazw a
wyłączona jest opcja \fBnullglob\fP powłoki, słowo pozostawiane jest bez
zmian. Jeżeli \fBnullglob\fP jest włączone, a nie znaleziono dopasowań, to
słowo jest usuwane. Jeśli ustawiona jest opcja \fBfailglob\fP powłoki i nie
znaleziono dopasowań, to wyświetlany jest komunikat o błędzie, a polecenie
nie jest wykonywane. Jeżeli włączona jest opcja \fBnocaseglob\fP powłoki, to
dopasowywanie wzorca wykonywane jest bez zwracania uwagi na wielkość
liter. Proszę zwrócić uwagę, ze gdy użyte są wyrażenia zakresowe, takie jak
[a\-z] (patrz niżej), mogą również zostać uwzględnione litery innej
wielkości, w zależności od ustawienia \fBLC_COLLATE\fP. Gdy do rozwinięcia nazw
plików używa się wzorca, to znak "\fB.\fP" na początku nazwy lub bezpośrednio
po ukośniku musi zostać dopasowany dosłownie, chyba że ustawiono opcję
\fBdotglob\fP powłoki.  Podczas dopasowywania nazwy pliku znak ukośnika musi
zawsze zostać dopasowany dosłownie.  W pozostałych przypadkach, kropka "\fB.\fP
nie jest traktowana specjalnie.  Zobacz poniżej opis \fBshopt\fP w sekcji
.SM
\fBWBUDOWANE\fP \fBPOLECENIA\fP \fBPOWŁOKI\fP, gdzie znajdziesz omówienie
opcji powłoki \fBnocaseglob\fP, \fBnullglob\fP, \fBfailglob\fP i \fBdotglob\fP.
.PP
Do ograniczenia zestawu nazw plików pasujących do \fIwzorca\fP można
wykorzystać zmienną powłoki
.SM
\fBGLOBIGNORE\fP.  Jeżeli
.SM
\fBGLOBIGNORE\fP jest ustawione, każda z pasujących nazw plików pasująca
również do jednego ze wzorców w
.SM
\fBGLOBIGNORE\fP jest usuwana z listy
dopasowań.  Nazwy plików "\fB.\fP" i "\fB..\fP" są zawsze ignorowane, nawet gdy
.SM
\fBGLOBIGNORE\fP jest ustawione. Jednakże, ustawienie
.SM
\fBGLOBIGNORE\fP skutkuje włączeniem opcji \fBdotglob\fP, tak że będą dopasowywane
wszystkie inne nazwy plików rozpoczynające się od kropki.  W celu uzyskania
starego zachowania, ignorującego nazwy zaczynające się "\fB.\fP", jednym ze
wzorców w
.SM
\fBGLOBIGNORE\fP należy zrobić "\fB.*\fP". Opcja \fBdotglob\fP jest
wyłączana, gdy kasowane jest
.SM
\fBGLOBIGNORE\fP.
.PP
\fBDopasowanie wzorca\fP
.PP
Każdy znak pojawiający się we wzorcu, różny od specjalnych znaków wzorca
opisanych poniżej, dopasowuje sam siebie. Znak NUL nie może wystąpić we
wzorcu. Odwrotny ukośnik cytuje następujący po nim znak; sam ukośnik jest
pomijany podczas dopasowania. Specjalne znaki wzorca muszą być cytowane,
jeżeli mają być dopasowane dosłownie.
.PP
Specjalne znaki wzorca mają następujące znaczenie:
.PP
.PD 0
.RS
.TP 
\fB*\fP
Dopasowuje dowolny łańcuch, łącznie z łańcuchem pustym. Jeśli włączona jest
opcja \fBglobstar\fP powłoki, a \fB*\fP jest użyte w kontekście rozwijania nazw
plików, to dwa złączone znaki \fB*\fP użyte w pojedynczym wzorcu dopasują
wszystkie pliki wraz z zerem lub więcej katalogów i podkatalogów. Jeśli po
dwóch gwiazdkach \fB*\fP wystąpi ukośnik \fB/\fP, to dopasowane będą wyłącznie
katalogi i podkatalogi.
.TP 
\fB?\fP
Dopasowuje dowolny pojedynczy znak.
.TP 
\fB[...]\fP
Dopasowuje jeden z ujętych w nawiasy kwadratowe znaków. Para znaków
rozdzielona myślnikiem opisuje \fIwyrażenie zakresu\fP; dopasowywany jest nim
dowolny znak, który przy sortowaniu leksykalnym, z zastosowaniem bieżącego
ustawienia locale i zestawu znaków, wypada między tymi dwoma znakami,
włącznie z nimi.  Jeżeli pierwszym znakiem występującym po \fB[\fP jest \fB!\fP
lub \fB^\fP, to dopasowywany jest dowolny znak nie zawarty w nawiasach.
Kolejność sortowania znaków w wyrażeniach zakresu określona jest przez
bieżące ustawienie locale i wartość zmiennej środowiskowej \fBLC_COLLATE\fP,
jeśli istnieje.  Znak \fB\-\fP można dopasować włączając go jako pierwszy lub
ostatni ze znaków zestawu.  Znak \fB]\fP można dopasować włączając go jako
pierwszy znak zestawu.
.br
.if  t .sp 0.5
.if  n .sp 1
Wewnątrz \fB[\fP i \fB]\fP, można podawać \fIklasy znaków\fP (character classes),
używając składni \fB[:\fP\fIklasa\fP\fB:]\fP, gdzie \fIklasa\fP jest jedną z poniższych
klas zdefiniowanych w standardzie POSIX:
.PP
.RS
.if  n \fBalnum alpha ascii blank cntrl digit graph lower print punct space upper word xdigit\fP
.if  t \fBalnum   alpha   ascii   blank   cntrl   digit   graph   lower   print   punct   space   upper   word   xdigit\fP
.br
Klasa znaków dopasowuje dowolny znak należący do tej klasy. Klasa znaków
\fBword\fP dopasowuje litery, cyfry i znak podkreślenia "_".
.br
.if  t .sp 0.5
.if  n .sp 1
Wewnątrz \fB[\fP i \fB]\fP, można podać \fIklasę równoważności\fP, używając składni
\fB[=\fP\fIz\fP\fB=]\fP, która dopasowuje wszystkie znaki o tej samej wadze
sortowania (zdefiniowaną w bieżącym ustawieniu locale) co znak \fIz\fP.
.br
.if  t .sp 0.5
.if  n .sp 1
Wewnątrz \fB[\fP i \fB]\fP, składnia \fB[.\fP\fIsymbol\fP\fB.]\fP dopasowuje symbol
sortowania (collating symbol) \fIsymbol\fP.
.RE
.RE
.PD
.PP
Jeżeli przy pomocy wbudowanego \fBshopt\fP włączono opcję \fBextglob\fP, to
rozpoznawane jest kilka rozszerzonych operatorów dopasowania wzorców.  W
poniższym opisie, \fIlista\-wzorców\fP jest listą złożoną z jednego lub więcej
wzorców rozdzielonych znakiem \fB|\fP.  Wzorce złożone można konstruować przy
pomocy jednego lub więcej poniższych pod\-wzorców:
.sp 1
.PD 0
.RS
.TP 
\fB?(\fP\^\fIlista\-wzorców\^\fP\fB)\fP
Dopasowuje zero lub jedno wystąpienie zadanych wzorców
.TP 
\fB*(\fP\^\fIlista\-wzorców\^\fP\fB)\fP
Dopasowuje zero lub więcej wystąpień zadanych wzorców
.TP 
\fB+(\fP\^\fIlista\-wzorców\^\fP\fB)\fP
Dopasowuje jedno lub więcej wystąpień zadanych wzorców
.TP 
\fB@(\fP\^\fIlista\-wzorców\^\fP\fB)\fP
Dopasowuje jeden z zadanych wzorców
.TP 
\fB!(\fP\^\fIlista\-wzorców\^\fP\fB)\fP
Dopasowuje cokolwiek prócz jednego z zadanych wzorców
.RE
.PD
.SS "Usunięcie cytowań"
.PP
Po poprzednich interpretacjach, wszystkie niecytowane wystąpienia znaków
\fB\e\fP, \fB\(aq\fP i \^\fB"\fP\^, które nie wynikły z jednej z powyższych
interpretacji, są usuwane.
.SH PRZEKIEROWANIE
Przed wykonaniem polecenia, jego wejście i wyjście mogą zostać
\fIprzekierowane\fP przy pomocy specjalnej notacji interpretowanej przez
powłokę. Przekierowania pozwalają deskryptorom plików poleceń na
powielanie, otwieranie, zamykanie, tworzenie odniesień do różnych plików
oraz mogą zmieniać pliki, które odczytuje polecenie i do którego
pisze. Przekierowań można też używać do modyfikowania deskryptorów plików w
środowiska wykonywania bieżącej powłoki. Poniższe operatory przekierowania
mogą występować przed lub pojawiać się gdziekolwiek wewnątrz \fIpolecenia
prostego\fP lub występować po \fIpoleceniu\fP. Przekierowania przetwarzane są w
kolejności występowania, od lewej do prawej.
.PP
Każde przekierowanie, które może być poprzedzone numerem deskryptora pliku,
może być w zamian poprzedzone słowem zapisanym następująco:
{\fInazwa\-zmiennej\fP}. W takim przypadku, dla każdego operatora
przekierowania, z wyjątkiem >&\- i <&\-, powłoka nada deskryptor pliku
większy lub równy 10 i przypisze go do \fInazwy\-zmiennej\fP. Jeśli >&\- lub
<&\- jest poprzedzone {\fInazwą\-zmiennej\fP}, to wartość \fInazwy\-zmiennej\fP
definiuje deskryptor pliku przeznaczony do zamknięcia.
.PP
W poniższych opisach, jeśli pominięto deskryptor pliku, a pierwszym znakiem
operatora przekierowania jest \fB<\fP, przekierowanie dotyczy standardowego
wejścia (deskryptor pliku 0).  Jeżeli pierwszym znakiem operatora
przekierowania jest \fB>\fP, przekierowanie dotyczy standardowego wyjścia
(deskryptor pliku 1).
.PP
Słowo następujące do operatorze przekierowania w poniższych opisach podlega,
chyba że podano inaczej, interpretacji nawiasów, interpretacji tyldy,
interpretacji parametrów i zmiennych, podstawianiu wyników poleceń,
interpretacji wyrażeń arytmetycznych, usuwaniu cytowań, rozwijaniu nazw
plików i podziałowi na słowa.  Jeśli zinterpretowane zostanie jako więcej
niż jedno słowo, to \fBbash\fP zgłosi błąd.
.PP
Zauważ, że kolejność przekierowań jest znacząca. Na przykład, polecenie
.RS
.PP
ls \fB>\fP dirlist 2\fB>&\fP1
.RE
.PP
kieruje zarówno standardowe wyjście jak i wyjście diagnostyczne (stderr)  do
pliku \fIdirlist\fP, podczas gdy polecenie
.RS
.PP
ls 2\fB>&\fP1 \fB>\fP dirlist
.RE
.PP
kieruje tylko standardowe wyjście do pliku \fIdirlist\fP, gdyż wyjście błędów
zostało zduplikowane jako standardowe wyjście przed przekierowaniem wyjścia
do \fIdirlist\fP.
.PP
\fBBash\fP obsługuje kilka nazw plików w sposób specjalny gdy są one użyte w
przekierowaniach. Opisano to w poniższej tablicy:
.RS
.PP
.PD 0
.TP 
\fB/dev/fd/\fP\fIfd\fP
Jeżeli \fIfd\fP jest poprawną liczbą całkowitą, to duplikowany jest deskryptor
pliku \fIfd\fP.
.TP 
\fB/dev/stdin\fP
Duplikowany jest deskryptor pliku 0.
.TP 
\fB/dev/stdout\fP
Duplikowany jest deskryptor pliku 1.
.TP 
\fB/dev/stderr\fP
Duplikowany jest deskryptor pliku 2.
.TP 
\fB/dev/tcp/\fP\fIhost\fP\fB/\fP\fIport\fP
Jeśli \fIhost\fP jest poprawną nazwą hosta lub adresem internetowym, a \fIport\fP
jest liczbą całkowitą określającą numer portu lub nazwą usługi, to \fBbash\fP
usiłuje otworzyć połączenie do odpowiedniego gniazda TCP.
.TP 
\fB/dev/udp/\fP\fIhost\fP\fB/\fP\fIport\fP
Jeśli \fIhost\fP jest poprawną nazwą hosta lub adresem internetowym, a \fIport\fP
jest liczbą całkowitą określającą numer portu lub nazwą usługi, to \fBbash\fP
usiłuje otworzyć połączenie do odpowiedniego gniazda UDP.
.PD
.RE
.PP
Nieudane otwarcie lub utworzenie pliku powoduje niepowodzenie
przekierowania.
.PP
Przekierowania używające deskryptorów plików, większych niż 9 muszą być
używane z dużą ostrożnością, gdyż mogą być w konflikcie z deskryptorami
plików używanymi wewnętrznie przez powłokę.
.PP
Proszę zauważyć, że wbudowane polecenie \fBexec\fP może tworzyć przekierowania
odnoszące się do bieżącej powłoki.
.SS "Przekierowanie wejścia"
.PP
Przekierowanie wejścia powoduje otwarcie do odczytu pliku, którego nazwa
wynika z interpretacji \fIsłowa\fP.  Odczyt będzie wykonywany z deskryptora
pliku \fIn\fP lub standardowego wejścia (zerowy deskryptor pliku) jeśli nie
podano \fIn\fP.
.PP
Ogólny format przekierowania wejścia:
.RS
.PP
[\fIn\fP]\fB<\fP\fIsłowo\fP
.RE
.SS "Przekierowanie wyjścia"
.PP
Przekierowanie wyjścia powoduje otwarcie do zapisu pliku, którego nazwa
wynika z interpretacji \fIsłowa\fP.  Zapis będzie wykonywany z deskryptora
pliku \fIn\fP lub standardowego wyjścia (deskryptor pliku 1) jeśli nie podano
\fIn\fP.  Jeżeli plik nie istnieje jest tworzony; jeżeli istnieje obcinany jest
do rozmiaru zerowego.
.PP
Ogólny format przekierowania wyjścia:
.RS
.PP
[\fIn\fP]\fB>\fP\fIsłowo\fP
.RE
.PP
Jeżeli operatorem przekierowania jest \fB>\fP, a została włączona opcja
\fBnoclobber\fP wbudowanego polecenia \fBset\fP, to przekierowanie nie powiedzie
się jeżeli plik o nazwie wynikającej z interpretacji \fIsłowa\fP istnieje i
jest zwykłym plikiem.  Jeżeli operatorem przekierowania jest \fB>|\fP, albo
operatorem jest \fB>\fP przy niewłączonej opcji \fBnoclobber\fP, to wykonywana
jest próba przekierowania, nawet jeśli plik \fIsłowo\fP istnieje.
.SS "Dołączanie przekierowanego wyjścia"
.PP
Przekierowanie wyjścia w ten sposób powoduje, że plik o nazwie wynikającej z
interpretacji \fIsłowa\fP zostanie otwarty do dołączania (append).  Dołączanie
będzie wykonywane z deskryptora pliku \fIn\fP lub standardowego wyjścia
(deskryptor pliku 1) jeśli nie podano \fIn\fP.  Jeżeli plik nie istnieje jest
tworzony.
.PP
Ogólny format dołączania wyjścia:
.RS
.PP
[\fIn\fP]\fB>>\fP\fIsłowo\fP
.RE
.PP
.SS "Przekierowanie standardowego wyjścia i wyjścia błędów"
.PP
\fBBash\fP pozwala, przy pomocy tej konstrukcji, przekierować standardowe
wyjście (deskryptor pliku 1) i standardowe wyjście błędów (deskryptor plików
2) do pliku, którego nazwą jest zinterpretowane \fIsłowo\fP.
.PP
Istnieją dwie postaci takiego przekierowania:
.RS
.PP
\fB&>\fP\fIsłowo\fP
.RE
i
.RS
\fB>&\fP\fIsłowo\fP
.RE
.PP
Spośród nich, zalecaną jest pierwsza forma.  Jest ona semantycznie
równoważna
.RS
.PP
\fB>\fP\fIsłowo\fP 2\fB>&\fP1
.RE
.PP
Przy używaniu drugiej postaci, \fIsłowo\fP nie może zostać zinterpretowane jako
liczba ani \fB\-\fP. Jeśli tak się stanie, zadziała inny operator przekierowania
(zob. \fBPowielanie deskryptorów plików\fP poniżej) z powodu kompatybilności
wstecznej.
.SS "Dołączanie standardowego wyjścia i wyjścia błędów"
.PP
Ta konstrukcja pozwala na dołączanie, standardowego wyjścia (deskryptor
pliku 1) i standardowego wyjścia błędów (deskryptor plików 2) do pliku,
którego nazwą jest zinterpretowane \fIsłowo\fP.
.PP
Format dołączania standardowego wyjścia i wyjścia błędów:
.RS
.PP
\fB&>>\fP\fIsłowo\fP
.RE
.PP
Jest to semantycznie równoważne
.RS
.PP
\fB>>\fP\fIsłowo\fP 2\fB>&\fP1
.RE
.PP
(zob. \fBPowielanie deskryptorów plików\fP poniżej).
.SS "Dokumenty włączone (Here Documents)"
.PP
Ten typ przekierowania instruuje powłokę, by czytała wejście z bieżącego
źródła aż do napotkania wiersza zawierającego tylko \fIsłowo\fP (bez żadnych
kończących odstępów).  Wszystkie wiersze przeczytane do tego momentu są
następnie używane jako standardowe wejście polecenia.
.PP
Format dokumentów włączonych jest następujący:
.RS
.PP
.nf
\fB<<\fP[\fB\-\fP]\fIsłowo\fP
        \fIdokument włączony\fP
\fIogranicznik\fP
.fi
.RE
.PP
Na \fIsłowie\fP nie jest wykonywana interpretacja parametrów ani zmiennych,
podstawiania wyników poleceń, rozwijanie nazw plików ani interpretacja
wyrażeń arytmetycznych.  Jeżeli jakieś znaki w \fIsłowie\fP są cytowane, to
\fIogranicznik\fP jest wynikiem usunięcia cytowań ze \fIsłowa\fP, a wiersze w
dokumencie włączonym nie są interpretowane.  Jeżeli \fIsłowo\fP nie jest
cytowane, wszystkie wiersze dokumentu włączonego podlegają interpretacji
parametrów, podstawianiu poleceń i interpretacji wyrażeń
arytmetycznych. Sekwencja \fB\e<nowalinia>\fP jest ignorowana, a do
cytowania znaków \fB\e\fP, \fB$\fP i \fB`\fP musi być użyte \fB\e\fP.
.PP
Jeżeli operatorem przekierowania jest \fB<<\-\fP, to wszystkie
początkowe znaki tabulacji są obcinane z wierszy wejściowych i wiersza
zawierającego \fIogranicznik\fP.  Pozwala to na ustawienie naturalnych wcięć
dla dokumentów włączonych w skryptach powłoki.
.SS "Łańcuchy włączone (Here Strings)"
Wariant dokumentów włączonych, którego format jest następujący:
.RS
.PP
.nf
\fB<<<\fP\fIsłowo\fP
.fi
.RE
.PP
\fISłowo\fP podlega interpretacji nawiasów, interpretacji tyldy, interpretacji
parametrów i zmiennych, podstawianiu wyników poleceń, interpretacji wyrażeń
arytmetycznych i usuwaniu cytowań. Rozwijanie nazw plików i podział na słowa
nie jest przeprowadzane. Wynik jest przekazywany poleceniu jako pojedynczy
łańcuch na jego standardowe wejście.
.SS "Powielanie deskryptorów plików"
.PP
Operator przekierowania
.RS
.PP
[\fIn\fP]\fB<&\fP\fIsłowo\fP
.RE
.PP
służy do powielania deskryptorów plików wejściowych.  Jeżeli \fIsłowo\fP
zinterpretowane zostanie jako jedna lub więcej cyfr, to deskryptor pliku
oznaczony przez \fIn\fP czyniony jest kopią tego deskryptora.  Jeżeli cyfry w
\fIsłowie\fP nie określają otwartego dla wejścia deskryptora, pojawia się błąd
przekierowania.  Jeżeli \fIsłowo\fP zinterpretowane jest jako \fB\-\fP, deskryptor
pliku \fIn\fP jest zamykany. Jeżeli \fIn\fP nie zostało określone, to stosowane
jest standardowe wejście (deskryptor pliku 0).
.PP
Operator
.RS
.PP
[\fIn\fP]\fB>&\fP\fIsłowo\fP
.RE
.PP
podobnie, służy do powielania deskryptorów standardowego wyjścia.  Jeżeli
nie określono \fIn\fP, stosowane jest standardowe wyjście (deskryptor pliku
1). Jeżeli cyfry w \fIsłowie\fP nie określają deskryptora pliku otwartego do
wyjścia, pojawia się błąd przekierowania. Jeżeli słowo zostanie
zinterpretowane jako \fB\-\fP, deskryptor pliku \fIn\fP jest zamykany. W przypadku
specjalnym, jeżeli pominięto \fIn\fP, a \fIsłowo\fP nie jest interpretowane jako
jedna lub więcej cyfr lub \fB\-\fP, to przekierowywane są standardowe wyjście i
standardowe wyjście błędów, jak opisano poprzednio.
.SS "Przenoszenie deskryptorów plików"
.PP
Operator przekierowania
.RS
.PP
[\fIn\fP]\fB<&\fP\fIsłowo\fP\fB\-\fP
.RE
.PP
przenosi deskryptor pliku \fIsłowo\fP do deskryptora pliku \fIn\fP lub, jeśli nie
podano \fIn\fP, na standardowe wejście (deskryptor pliku 0). \fISłowo\fP jest
zamykane po zduplikowaniu do \fIn\fP.
.PP
Podobnie, operator przekierowania
.RS
.PP
[\fIn\fP]\fB>&\fP\fIsłowo\fP\fB\-\fP
.RE
.PP
przenosi deskryptor pliku \fIsłowo\fP do deskryptora pliku \fIn\fP lub, jeśli nie
podano \fIn\fP, na standardowe wyjście (deskryptor pliku 1).
.SS "Otwieranie deskryptorów plików do odczytu i zapisu"
.PP
Operator przekierowania
.RS
.PP
[\fIn\fP]\fB<>\fP\fIsłowo\fP
.RE
.PP
powoduje, że plik o nazwie wynikłej z interpretacji \fIsłowa\fP zostanie
otwarty do odczytu i zapisu.  Odczyt i zapis będą wykonywane z deskryptora
pliku \fIn\fP lub standardowego wejścia (deskryptor pliku 0) jeśli nie podano
\fIn\fP.  Jeżeli plik nie istnieje, to jest tworzony.
.SH ALIASY
\fBAliasy\fP (czyli synonimy) pozwalają na zastąpienie słowa łańcuchem, gdy
zostanie ono użyte jako pierwsze słowo w poleceniu prostym.  Powłoka
utrzymuje listę aliasów, które mogą być ustawiane i unieważniane przy pomocy
wbudowanych poleceń \fBalias\fP i \fBunalias\fP (zobacz poniżej
.SM
\fBWBUDOWANE\fP \fBPOLECENIA\fP \fBPOWŁOKI\fP).  Dla pierwszego słowa każdego
polecenia, jeśli nie jest cytowane, następuje sprawdzenie, czy posiada ono
alias. Jeżeli tak, to słowo to jest zastępowane tekstem aliasu. Znaki \fB/\fP,
\fB$\fP, \fB\`\fP i \fB=\fP i wszystkie \fImetaznaki\fP powłoki oraz znaki cytowania
wypisane powyżej nie mogą być nazwą aliasu. Tekst zastępujący może zawierać
dowolne poprawne wejście powłoki, łącznie z \fImetaznakami\fP powłoki. Pierwsze
słowo tekstu zastępującego jest z kolei sprawdzane na aliasy, ale słowo
identyczne z interpretowanym właśnie aliasem nie jest interpretowane
powtórnie. Oznacza to, że można mieć alias \fBls\fP do \fBls \-F\fP, na przykład, a
\fBbash\fP nie będzie usiłował rekurencyjnie interpretować zastępującego
tekstu.  Jeżeli ostatnim znakiem wartości aliasu jest \fIodstęp\fP, to następne
słowo polecenia występujące po aliasie ma również sprawdzaną interpretację
aliasów.
.PP
Aliasy są tworzone i pokazywane poleceniem \fBalias\fP, a usuwane poleceniem
\fBunalias\fP.
.PP
Nie ma żadnego mechanizmu posługiwania się argumentami w tekście
zastępującym. Jeśli potrzebne są argumenty, powinna zostać użyta funkcja
powłoki (zobacz poniżej
.SM
\fBFUNKCJE\fP).
.PP
Aliasy nie są interpretowane, gdy powłoka nie jest interaktywna, chyba że
ustawiono opcję powłoki \fBexpand_aliases\fP przy pomocy \fBshopt\fP (zobacz opis
\fBshopt\fP w sekcji
.SM
\fBWBUDOWANE POLECENIA POWŁOKI\fP poniżej).
.PP
Reguły dotyczące definiowania i używania aliasów są nieco zagmatwane.
\fBBash\fP zawsze czyta co najmniej jeden pełny wiersz z wejścia przed
wykonaniem jakichkolwiek poleceń tego wiersza. Aliasy interpretowane są w
czasie odczytu polecenia, nie podczas jego wykonywania. Z tego powodu,
definicja aliasu występująca w tym samym wierszu, co inne polecenie nie
zadziała aż do przeczytania następnego wiersza wejścia.  Na polecenia
występujące po definicji aliasu, w tym samym wierszu, nowy alias nie ma
wpływu.  Zachowanie to ujawnia się także podczas wykonywania funkcji.
Aliasy interpretowane są w czasie odczytu definicji funkcji, nie zaś podczas
jej wykonywania, gdyż sama definicja funkcji stanowi polecenie złożone. W
skutek tego aliasy zdefiniowane w funkcji nie są dostępne, aż do chwili po
wykonaniu funkcji.  Dla bezpieczeństwa, zawsze umieszczaj definicje aliasów
w odrębnym wierszu i nie używaj \fBalias\fP w poleceniach złożonych.
.PP
Prawie w każdym zastosowaniu aliasy są wyparte przez funkcje powłoki.
.SH FUNKCJE
Punkcja powłoki, zdefiniowana jak opisano powyżej, w sekcji
.SM
\fBGRAMATYKA POWŁOKI\fP, przechowuje szereg poleceń do późniejszego wykonania.
Gdy nazwa funkcji powłoki używana jest jako nazwa polecenia prostego,
wykonywana jest lista poleceń związanych z tą nazwą funkcji.  Funkcje
wykonywane są w kontekście bieżącej powłoki; do ich interpretacji nie jest
tworzony żaden nowy proces (zauważ różnicę w stosunku do wykonania skryptu
powłoki).  Podczas wykonywania funkcji, przekazane jej argumenty stają się
parametrami pozycyjnymi. Aktualizowany jest specjalny parametr \fB#\fP, tak by
odzwierciedlał zmianę. Parametr pozycyjny \fB0\fP nie jest zmieniany.  Zmienna
.SM
\fBFUNCNAME\fP podczas wykonywania funkcji ustawiana jest na jej nazwę.
.PP
Wszystkie inne aspekty środowiska wykonywania powłoki są identyczne między
funkcją i jej wywołującym, z następującymi wyjątkami: pułapki (trap)
.SM
\fBDEBUG\fP i
.SM
\fBRETURN\fP (zobacz opis wbudowanego \fBtrap\fP poniżej, w
sekcji
.SM
\fBWBUDOWANE POLECENIA POWŁOKI\fP) nie są dziedziczone, chyba że
funkcja ma podany atrybut \fBtrace\fP (patrz opis wbudowanego \fBdeclare\fP
poniżej) lub opcja powłoki \fB\-o functrace\fP została włączona wbudowanym
\fBset\fP (w takim przypadku wszystkie funkcje dziedziczą pułapki \fBDEBUG\fP i
\fBRETURN\fP). Pułapka
.SM
\fBERR\fP nie jest dziedziczona, chyba że włączono
opcję \fB\-o errtrace\fP powłoki.
.PP
Zmienne lokalne dla funkcji mogą być deklarowane przy pomocy wbudowanego
polecenia \fBlocal\fP.  Zwykle zmienne i ich wartości są wspólne dla funkcji i
jej wołającego.
.PP
Jeśli zmienna \fBFUNCNEST\fP zostanie ustawiona na wartość liczbową większą od
0, to będzie definiować maksymalny poziom zagnieżdżenia funkcji. Wywołania
funkcji przekraczające ten poziom będą powodowały przerwanie całego
polecenia.
.PP
Jeżeli w funkcji wywoływane jest wbudowane polecenie \fBreturn\fP, funkcja
kończy działanie i wykonywanie wznawiane jest od następnego polecenia po
wywołaniu funkcji. Każda funkcja powiązana z pułapką \fBRETURN\fP jest
wykonywana przed wznowieniem wykonywania. Gdy funkcja kończy działanie,
parametrom pozycyjnym i parametrowi specjalnemu \fB#\fP przywracane są
wartości, jakie posiadały one przed wykonaniem funkcji.
.PP
Listę nazw i definicji funkcji można uzyskać przy pomocy opcji \fB\-f\fP
wbudowanych poleceń \fBdeclare\fP lub \fBtypeset\fP.  Opcja \fB\-F\fP poleceń
\fBdeclare\fP lub \fBtypeset\fP podaje same nazwy funkcji (i opcjonalnie plik
źródłowy oraz numer wiersza, jeśli włączono opcję powłoki \fBextdebug\fP).
Funkcje można eksportować, tak że będą one automatycznie zdefiniowane w
podpowłokach. Wykonuje się to przy pomocy opcji \fB\-f\fP wbudowanego polecenia
\fBexport\fP. Definicję funkcji można usunąć opcją \fB\-f\fP lub wbudowanym
\fBunset\fP. Proszę zauważyć, że funkcje i zmienne powłoki posiadające tę samą
nazwę mogą dać w wyniku wiele wpisów o identycznych nazwach w środowisku,
przekazywanym do potomków powłoki. Należy zachować ostrożność w przypadkach,
w których może to powodować problemy.
.PP
Funkcje mogą być rekurencyjne. Zmienna \fBFUNCNEST\fP może posłużyć do
ograniczenia głębokości stosu wywołań funkcji i liczby wywołań
funkcji. Domyślnie, nie ma narzuconego ograniczenia na liczbę rekurencyjnych
wywołań.
.SH "OBLICZANIE WYRAŻEŃ ARYTMETYCZNYCH"
Powłoka pozwala, pod pewnymi warunkami, na obliczanie wartości wyrażeń
arytmetycznych (zobacz wbudowane polecenie \fBlet\fP i \fBInterpretacja wyrażeń
arytmetycznych\fP).  Obliczenia wykonywane są na liczbach całkowitych o
ustalonej wielkości (fixed\-width), bez kontroli przepełnienia (overflow),
mimo iż dzielenie przez 0 jest przechwytywane i oznaczane jako błąd.
Operatory i ich priorytety oraz sposób ich dołączania są takie same jak w
języku C.  Poniższa lista operatorów pogrupowana jest w poziomy operatorów o
jednakowym priorytecie.  Poziomy podano w kolejności malejącego priorytetu.
.PP
.PD 0
.TP 
\fIid\fP\fB++ \fP\fIid\fP\fB\-\-\fP
post\-inkrementacja i post\-dekrementacja zmiennej
.TP 
\fB++\fP\fIid\fP\fB \-\-\fP\fIid\fP
pre\-inkrementacja i pre\-dekrementacja zmiennej
.TP 
\fB\- +\fP
jednoargumentowy minus i plus
.TP 
\fB! ~\fP
negacja logiczna i bitowa
.TP 
\fB**\fP
potęgowanie
.TP 
\fB* / %\fP
mnożenie, dzielenie, reszta z dzielenia
.TP 
\fB+ \-\fP
dodawanie, odejmowanie
.TP 
\fB<< >>\fP
lewo i prawostronne przesunięcie bitowe
.TP 
\fB<= >= < >\fP
porównanie
.TP 
\fB== !=\fP
równości i nierówność
.TP 
\fB&\fP
bitowa koniunkcja (AND)
.TP 
\fB^\fP
bitowa alternatywa wyłączna (XOR)
.TP 
\fB|\fP
bitowa alternatywa (OR)
.TP 
\fB&&\fP
logiczna koniunkcja (AND)
.TP 
\fB||\fP
logiczna alternatywa (OR)
.TP 
\fIwyraż\fP\fB?\fP\fIwyraż\fP\fB:\fP\fIwyraż\fP
operator warunkowy
.TP 
\fB= *= /= %= += \-= <<= >>= &= ^= |=\fP
przypisanie
.TP 
\fIwyraż1\fP\fB , \fP\fIwyraż2\fP
przecinek
.PD
.PP
Jako operandy dozwolone są zmienne powłoki; interpretacja parametrów
przeprowadzana jest przed obliczeniem wyrażenia.  Wewnątrz wyrażenia, do
zmiennych powłoki można się też odwoływać przez nazwę, bez użycia składni
interpretacji parametrów. Zmienna powłoki, która jest pusta lub nieustawiona
jest przyjmowana jako 0, gdy odwołuje się do jej nazwy bez używania składni
interpretacji parametrów. Gdy wystąpi odwołanie się do zmiennej lub gdy
przypisano wartość zmiennej, której nadano wcześniej atrybut \fIliczby
całkowitej\fP przy użyciu \fBdeclare \-i\fP, to jej wartość obliczana jest jako
wyrażenie arytmetyczne. Pusta wartość jest interpretowana jako 0. Zmienna
powłoki nie musi mieć włączonego atrybutu \fIliczby całkowitej\fP by mogła być
użyta w wyrażeniu.
.PP
Stałe z początkowym 0 interpretowane są jako liczby ósemkowe. Początkowe 0x
lub 0X oznacza liczbę szesnastkową. W pozostałych przypadkach liczby mają
postać [\fIpodstawa#\fP]n, gdzie opcjonalna \fIpodstawa\fP jest liczbą dziesiętną
pomiędzy 2 a 64 reprezentującą podstawę układu pozycyjnego, zaś \fIn\fP liczbą
w układzie o tej podstawie.  Jeśli pominięto \fIpodstawa#\fP, to używana jest
podstawa 10. Gdy poda się \fIn\fP, cyfry większe< niż 9 reprezentowane są
przez małe litery, wielkie litery, @ i _, w tej kolejności.  Jeżeli
\fIpodstawa\fP jest mniejsza bądź równa 36, to do zapisu liczb pomiędzy 10 a 35
można używać zamiennie małych i wielkich liter.
.PP
Operatory interpretowane są w kolejności priorytetu. Podwyrażenia w
nawiasach obliczane są jako pierwsze i mogą unieważnić podane wyżej reguły
priorytetów.
.SH "WYRAŻENIA WARUNKOWE"
Wyrażenia warunkowe używane są przez polecenie złożone \fB[[\fP oraz polecenia
wbudowane \fBtest\fP i \fB[\fP do testowania atrybutów pliku i wykonywania
porównań łańcuchowych i arytmetycznych.  Wyrażenia złożone są z poniższych
jedno\- i dwuargumentowych składowych.  Jeśli któryś z argumentów
\fIplikowych\fP jednej z składowych jest w postaci \fI/dev/fd/n\fP, to sprawdzany
jest deskryptor pliku \fIn\fP.  Jeżeli argument \fIplik\fP którejś składowej jest
jednym z \fI/dev/stdin\fP, \fI/dev/stdout\fP lub \fI/dev/stderr\fP, to sprawdzany
jest, odpowiednio, deskryptor 0, 1 lub 2.
.PP
Jeśli nie określono inaczej, składowe operujące na plikach podążają za
dowiązaniami symbolicznymi i działają na celu dowiązania, a nie na samym
dowiązaniu.
.if  t .sp 0.5
.if  n .sp 1
Gdy operatory \fB<\fP i \fB>\fP są używane z poleceniem \fB[[\fP, to sortują
zgodnie z porządkiem leksykograficznym, używając bieżącego ustawienia
locale. Polecenie \fBtest\fP sortuje korzystając z kolejności ASCII.
.sp 1
.PD 0
.TP 
\fB\-a \fP\fIplik\fP
Prawda jeśli \fIplik\fP istnieje.
.TP 
\fB\-b \fP\fIplik\fP
Prawda jeśli \fIplik\fP istnieje i jest blokowym plikiem specjalnym.
.TP 
\fB\-c \fP\fIplik\fP
Prawda jeśli \fIplik\fP istnieje i jest znakowym plikiem specjalnym.
.TP 
\fB\-d \fP\fIplik\fP
Prawda jeśli \fIplik\fP istnieje i jest katalogiem.
.TP 
\fB\-e \fP\fIplik\fP
Prawda jeśli \fIplik\fP istnieje.
.TP 
\fB\-f \fP\fIplik\fP
Prawda jeśli \fIplik\fP istnieje i jest plikiem zwykłym.
.TP 
\fB\-g \fP\fIplik\fP
Prawda jeśli \fIplik\fP istnieje i ma ustawiony bit set\-group\-id.
.TP 
\fB\-h \fP\fIplik\fP
Prawda jeśli \fIplik\fP istnieje i jest dowiązaniem symbolicznym.
.TP 
\fB\-k \fP\fIplik\fP
Prawda jeśli \fIplik\fP istnieje i ma ustawiony bit ochrony (sticky bit).
.TP 
\fB\-p \fP\fIplik\fP
Prawda jeśli \fIplik\fP istnieje i jest potokiem nazwanym (FIFO).
.TP 
\fB\-r \fP\fIplik\fP
Prawda jeśli \fIplik\fP istnieje i daje się czytać.
.TP 
\fB\-s \fP\fIplik\fP
Prawda jeśli \fIplik\fP istnieje i ma rozmiar większy niż zero.
.TP 
\fB\-t \fP\fIfd\fP
Prawda jeśli deskryptor pliku \fIfd\fP jest otwarty i odnosi się do terminala.
.TP 
\fB\-u \fP\fIplik\fP
Prawda jeśli \fIplik\fP istnieje i ma ustawiony bit set\-user\-id.
.TP 
\fB\-w \fP\fIplik\fP
Prawda jeśli \fIplik\fP istnieje i daje się doń zapisać.
.TP 
\fB\-x \fP\fIplik\fP
Prawda jeśli \fIplik\fP istnieje i jest wykonywalny.
.TP 
\fB\-G \fP\fIplik\fP
Prawda jeśli \fIplik\fP istnieje i jego właścicielem jest efektywny id grupy.
.TP 
\fB\-L \fP\fIplik\fP
Prawda jeśli \fIplik\fP istnieje i jest dowiązaniem symbolicznym.
.TP 
\fB\-N \fP\fIplik\fP
Prawda jeśli \fIplik\fP istnieje i został zmodyfikowany od czasu jego
ostatniego odczytu.
.TP 
\fB\-0 \fP\fIplik\fP
Prawda jeśli \fIplik\fP istnieje i jego właścicielem jest efektywny id
użytkownika.
.TP 
\fB\-S \fP\fIplik\fP
Prawda jeśli \fIplik\fP istnieje i jest gniazdem.
.TP 
\fIplik1\fP \-\fBef\fP \fIplik2\fP
Prawda jeśli \fIplik1\fP i \fIplik2\fP odnoszą się do tego samego urządzenia i
numeru i\-węzła.
.TP 
\fIplik1\fP \-\fBnt\fP \fIplik2\fP
Prawda, jeśli \fIplik1\fP jest nowszy (według daty modyfikacji) niż \fIplik2\fP
lub \fIplik1\fP istnieje a \fIplik2\fP nie.
.TP 
\fIplik1\fP \fB\-ot\fP \fIplik2\fP
Prawda, jeśli \fIplik1\fP jest starszy niż \fIplik2\fP lub \fIplik2\fP istnieje a
\fIplik1\fP nie.
.TP 
\fB\-o \fP\fInazwa_opcji\fP
Prawda jeśli opcja powłoki \fInazwa_opcji\fP jest włączona.  Zobacz zestawienie
opcji w opisie opcji \fB\-o\fP wbudowanego \fBset\fP, poniżej.
.TP 
\fB\-v \fP\fInazwa\-zmiennej\fP
Prawda, jeśli zmienna powłoki \fIzmienna\-powłoki\fP jest ustawiona (została jej
przypisana wartość).
.TP 
\fB\-R \fP\fInazwa\-zmiennej\fP
Prawda, jeśli zmienna powłoki \fIzmienna\-powłoki\fP jest ustawiona i jest nazwą
referencyjną.
.TP 
\fB\-z \fP\fIłańcuch\fP
Prawda jeśli długość \fIłańcucha\fP wynosi zero.
.TP 
\fIstring\fP
.PD 0
.TP 
\fB\-n \fP\fIłańcuch\fP
.PD
Prawda jeśli \fIłańcuch\fP ma długość niezerową.
.TP 
\fIłańcuch1\fP \fB==\fP \fIłańcuch2\fP
.PD 0
.TP 
\fIłańcuch1\fP \fB=\fP \fIłańcuch2\fP
.PD
Prawda, jeśli łańcuchy są sobie równe. \fB=\fP powinno być używane z poleceniem
\fBtest\fP, w celu zachowania zgodności z normą POSIX. Gdy używane jest z
poleceniem \fB[[\fP, przeprowadzane jest dopasowanie do wzorca, zgodnie z
opisem powyżej \fBPolecenia złożone\fP).
.TP 
\fIłańcuch1\fP \fB!=\fP \fIłańcuch2\fP
Prawda jeśli łańcuchy nie są równe.
.TP 
\fIłańcuch1\fP \fB<\fP \fIłańcuch2\fP
Prawda jeśli \fIłańcuch1\fP przy sortowaniu występowałby przed \fIłańcuchem2\fP
według bieżącego ustawienia locale.
.TP 
\fIłańcuch1\fP \fB>\fP \fIłańcuch2\fP
Prawda jeśli \fIłańcuch1\fP przy sortowaniu występowałby po \fIłańcuchu2\fP według
bieżącego ustawienia locale.
.TP 
\fIarg1 \fP\fBOP\fP\fI arg2\fP
.SM
\fBOP\fP jest jednym z \fB\-eq\fP, \fB\-ne\fP, \fB\-lt\fP, \fB\-le\fP, \fB\-gt\fP lub
\fB\-ge\fP.  Te arytmetyczne operatory dwuargumentowe zwracają prawdę jeśli
\fIarg1\fP jest odpowiednio równe (eq), nie równe (ne), mniejsze niż (lt),
mniejsze bądź równe (le), większe niż (gt) lub większe bądź równe (ge)
\fIarg2\fP.  \fIArg1\fP i \fIarg2\fP mogą być dodatnimi lub ujemnymi liczbami
całkowitymi.
.PD
.SH "INTERPRETACJA POLECEŃ PROSTYCH"
Gdy wykonywane jest polecenie proste, powłoka wykonuje następujące
interpretacje, przypisania i przekierowania, od lewej do prawej.
.IP 1.
Słowa oznaczone przez analizator składni jako przypisania zmiennych
(poprzedzające nazwę polecenia) i przekierowania zachowywane są do
późniejszego przetworzenia.
.IP 2.
Słowa, nie będące przypisaniami zmiennych ani przekierowaniami są
interpretowane. Jeżeli po interpretacji pozostaną jakieś słowa, to pierwsze
z nich przyjmowane jest za nazwę polecenia a pozostałe za argumenty.
.IP 3.
Wykonywane są przekierowania, jak opisano powyżej w sekcji
.SM
\fBPRZEKIEROWANIE\fP.
.IP 4.
W każdym przypisaniu zmiennej tekst po znaku równości \fB=\fP podlega
interpretacji tyldy, interpretacji parametrów, podstawianiu wyników poleceń,
interpretacji wyrażeń arytmetycznych i usuwaniu cudzysłowów, zanim zostanie
przypisany do zmiennej.
.PP
Jeżeli nie otrzymano żadnej nazwy polecenia, to przypisania zmiennych
dotyczą środowiska aktualnej powłoki. W przeciwnym razie, zmienne są
dodawane do środowiska wykonywanego polecenia i nie mają wpływu na
środowisko bieżącej powłoki. jeżeli któreś z przypisań usiłuje nadać wartość
zmiennej read\-only, pojawia się błąd, a polecenie kończy pracę z niezerowym
kodem.
.PP
Jeżeli nie otrzymano żadnej nazwy polecenia, wykonywane są przekierowania,
ale nie mają one wpływu na bieżące środowisko powłoki. Błąd przekierowania
powoduje, że polecenie kończy pracę z niezerowym kodem.
.PP
Jeżeli po interpretacji istnieje nazwa polecenia, to wykonywanie odbywa się
jak opisano poniżej. W przeciwnym wypadku, polecenie kończy pracę.  Jeżeli
jednym z wykonanych kroków było podstawienie wyników polecenia, to zwracany
kod zakończenia jest kodem ostatniego wykonanego podstawienia
polecenia. Jeśli nie wystąpiło podstawianie poleceń, to polecenie kończy
pracę z kodem zerowym.
.SH "WYKONYWANIE POLECEŃ"
Po podziale polecenia na słowa, jeśli jego wynikiem jest polecenie proste z
opcjonalną listą argumentów, podejmowane są poniższe akcje.
.PP
Jeśli polecenie nie zawiera ukośników, powłoka usiłuje je zlokalizować.
Jeżeli istnieje funkcja powłoki o tej nazwie, wywoływana jest ta funkcja,
jak opisano powyżej w sekcji
.SM
\fBFUNKCJE\fP.  Jeżeli nazwa nie pasuje do
funkcji, powłoka szuka jej na liście poleceń wbudowanych. Jeżeli znaleziono
pasujące, to jest ono wywoływane.
.PP
Jeżeli nazwa nie jest ani funkcją powłoki ani poleceniem wbudowanym i nie
zawiera ukośników, to \fBbash\fP przeszukuje każdy element z
.SM
\fBPATH\fP
usiłując znaleźć katalog zawierający plik wykonywalny o takiej nazwie.
\fBBash\fP posługuje się tablicą mieszającą (hash table) do zapamiętywania
pełnych nazw plików wykonywalnych (zobacz \fBhash\fP w
.SM
\fBWBUDOWANE\fP
\fBPOLECENIA\fP \fBPOWŁOKI\fP poniżej).  Pełne przeszukiwanie katalogów z
.SM
\fBPATH\fP wykonywane jest tylko wtedy, gdy polecenia nie znaleziono w tablicy
mieszającej. Jeżeli wyszukiwanie nie powiedzie się, powłoka szuka
zdefiniowanej funkcji powłoki o nazwie \fBcommand_not_found_handle\fP. Jeśli ta
funkcja istnieje, jest wywoływana z pierwotnym poleceniem i jego argumentami
użytymi jako jej argumenty, a kod wyjścia funkcji staje się kodem wyjścia
powłoki. Jeśli funkcja nie jest zdefiniowana, powłoka wypisuje komunikat o
błędzie i zwraca kod zakończenia równy 127.
.PP
Jeżeli poszukiwanie było pomyślne lub jeśli nazwa polecenia zawiera jeden
lub więcej ukośników, powłoka wykonuje zadany program w odrębnym środowisku
wykonania.  Argumentowi 0 przypisywana jest podana nazwa, a pozostałym
argumentom polecenia podane argumenty, jeśli były takowe.
.PP
Jeżeli wykonanie to nie powiedzie się, gdyż plik nie ma formatu
wykonywalnego, a nie jest katalogiem, to zakłada się, że jest on \fIskryptem
powłoki\fP, plikiem zawierającym polecenia powłoki.  Powoływana jest
podpowłoka do jego wykonania. Powłoka ta reinicjuje się, zatem efekt jest
taki, jakby do obsługi skryptu została wywołana nowa powłoka, z wyjątkiem
tego, że położenia poleceń zapamiętane przez rodzica (zobacz \fBhash\fP poniżej
w
.SM
\fBWBUDOWANE POLECENIA POWŁOKI\fP są zachowywane przez potomka.
.PP
Jeżeli program jest plikiem o zawartości rozpoczynającej się od \fB#!\fP, to
reszta pierwszego wiersza określa interpreter dla tego programu.  Powłoka
uruchamia podany interpreter na systemach operacyjnych, które same nie
obsługują tego formatu wykonywalnego. Argumenty dla interpretera składają
się z pojedynczego opcjonalnego argumentu występującego po nazwie
interpretera w pierwszym wierszu programu, następującej po nim nazwy
programu i następujących po niej argumentów polecenia, jeśli były takowe.
.SH "ŚRODOWISKO WYKONYWANIA POLECEŃ"
Powłoka posiada \fIśrodowisko wykonywania\fP (execution environment), na które
składają się:
.IP \(bu
otwarte pliki odziedziczone przez powłokę przy wywołaniu, zmodyfikowane
przez przekierowania przekazane do wbudowanego polecenia \fBexec\fP
.IP \(bu
bieżący katalog roboczy ustawiony przez \fBcd\fP, \fBpushd\fP lub \fBpopd\fP, albo
odziedziczony przez powłokę przy wywołaniu
.IP \(bu
maska trybu tworzonych plików ustawioną przez \fBumask\fP albo odziedziczoną po
rodzicu powłoki
.IP \(bu
bieżące pułapki ustawione przez \fBtrap\fP
.IP \(bu
parametry powłoki ustawione przez przypisania zmiennych przy pomocy \fBset\fP
albo odziedziczone ze środowiska rodzica powłoki
.IP \(bu
funkcje powłoki zdefiniowane podczas wykonywania lub odziedziczone ze
środowiska rodzica powłoki
.IP \(bu
opcje włączone przy wywołaniu (albo domyślnie albo przy pomocy argumentów
wiersza poleceń) albo przez \fBset\fP
.IP \(bu
opcje włączone przez \fBshopt\fP
.IP \(bu
aliasy powłoki zdefiniowane przy pomocy \fBalias\fP
.IP \(bu
różne id procesów, łącznie z identyfikatorami zadań tła, wartość \fB$$\fP i
wartość
.SM
\fB$PPID\fP
.PP
Gdy ma zostać wykonane polecenie proste inne niż funkcja powłoki lub
polecenie wbudowane, wywoływane jest w odrębnym środowisku wykonania,
składających się z poniższych elementów. Jeśli nie podano inaczej, wartości
dziedziczone są z powłoki.
.if  n .sp 1
.IP \(bu
otwarte pliki powłoki, plus modyfikacje i dodatki określone przez
przekierowania polecenia
.IP \(bu
bieżący katalog roboczy
.IP \(bu
maska trybu tworzonych plików
.IP \(bu
zmienne powłoki oznaczone do wyeksportowania, razem ze zmiennymi
wyeksportowanymi do polecenia, przekazane w środowisku
.IP \(bu
pułapki przechwycone przez powłokę resetowane są do wartości odziedziczonych
przez nią od rodzica, a pułapki ignorowane przez powłokę są ignorowane.
.PP
Polecenie wywołane w odrębnym środowisku nie może wpływać na środowisko
wykonywania powłoki.
.PP
Podstawienia wyników poleceń i polecenia asynchroniczne wywoływane są w
środowisku podpowłoki, które jest kopią środowiska powłoki, z wyjątkiem
tego, że pułapki przechwycone przez powłokę są resetowane do wartości, jakie
powłoka odziedziczyła po rodzicu podczas wywołania. Polecenia wbudowane
wywoływane jako część potoku również wykonywane są w środowisku
podpowłoki. Zmiany wykonane w środowisku podpowłoki nie mogą wpływać na
środowisko wykonywania powłoki.
.PP
Podpowłoki utworzone do wykonania podstawiania wyników poleceń dziedziczą
wartość opcji \fB\-e\fP z powłoki macierzystej. Jeśli \fBbash\fP nie działa w
trybie \fIposix\fP, to czyści opcję \fB\-e\fP w takich podpowłokach.
.PP
Jeżeli po poleceniu występuje \fB&\fP, a nie uaktywniono sterowania zadaniami,
to domyślnym standardowym wejściem dla tego polecenia jest pusty plik
\fI/dev/null\fP. W przeciwnym razie wywoływane polecenie dziedziczy deskryptory
plików po wołającej powłoce, zmodyfikowane przekierowaniami.
.SH ŚRODOWISKO
Podczas wywoływania program otrzymuje tablicę łańcuchów zwaną
\fIśrodowiskiem\fP (environment). Jest to lista par \fInazwa\fP\-\fIwartość\fP, o
postaci \fInazwa\fP=\fIwartość\fP.
.PP
Powłoka pozwala na manipulowanie środowiskiem na kilka sposobów. Przy
wywołaniu, przeszukuje ona własne środowisko i tworzy parametr dla każdej
znalezionej nazwy, automatycznie zaznaczając go do \fIwyeksportowania\fP do
procesów potomnych. Wykonywane polecenia dziedziczą środowisko.  Polecenia
\fBexport\fP i \fBdeclare \-x\fP pozwalają na dodawanie i usuwanie ze środowiska
parametrów i funkcji.  Jeżeli w środowisku zmieniana jest wartość parametru,
to nowa wartość staje się częścią środowiska, zastępując starą. Środowisko
dziedziczone przez każde wykonywane polecenie składa się z początkowego
środowiska powłoki, którego wartości mogą być w powłoce zmieniane, minus
ewentualne pary usunięte poleceniem \fBunset\fP, plus dodane poprzez polecenia
\fBexport\fP i \fBdeclare \-x\fP.
.PP
Środowisko dla dowolnego \fIpolecenia prostego\fP czy funkcji może być
tymczasowo powiększone przez poprzedzenie polecenia przypisaniem parametrów,
jak opisano powyżej w sekcji
.SM
\fBPARAMETRY\fP.  Te instrukcje przypisania
mają wpływ wyłącznie na środowisko postrzegane przez to polecenie.
.PP
Jeżeli ustawiona jest opcja \fB\-k\fP (zobacz poniżej opis wbudowanego polecenia
\fBset\fP), to \fIwszystkie\fP przypisania parametrów umieszczane są w środowisku
polecenia, a nie tylko te, które poprzedzają nazwę polecenia.
.PP
Gdy \fBbash\fP wywołuje polecenie zewnętrzne, zmienna \fB_\fP ustawiana jest na
pełną nazwę pliku polecenia i przekazywana temu poleceniu w jego środowisku.
.SH "KOD ZAKOŃCZENIA"
.PP
Kod zakończenia wykonanego polecenia jest wartością zwracaną przez wywołanie
systemowe \fIwaitpid\fP lub funkcję będącą jego odpowiednikiem. Kody
zakończenia mieszczą się w zakresie od 0 do 255, przy czym, jak wyjaśniono
poniżej, powłoka może używać wartości powyżej 125 w sposób specjalny. Kod
zakończenia z wbudowanych poleceń powłoki i poleceń złożonych również są
ograniczone do powyższego przedziału. W szczególnych przypadkach, powłoka
używa wartości specjalnych aby poinformować o konkretnym trybie błędu.
.PP
Dla celów powłoki, polecenie, które zakończyło pracę z zerowym kodem
zakończenia, powiodło się. Zerowy kod oznacza powodzenie. Niezerowy kod
oznacza niepowodzenie. Gdy polecenie kończy pracę z błędem krytycznym \fIN\fP,
\fIbash\fP posługuje się wartością 128+\fBN\fP jako kodem zakończenia.
.PP
Jeżeli nie znaleziono polecenia, proces potomny powołany do jego wykonania
zwraca kod 127. Jeżeli polecenie zostało znalezione, ale nie jest
wykonywalne, kod zakończenia wynosi 126.
.PP
Jeżeli polecenie nie powiodło się z powodu błędu podczas interpretacji lub
przekierowania, kod zakończenia jest większy od zera.
.PP
Wbudowane polecenia powłoki zwracają kod 0 (\fItrue\fP prawda) jeśli się
powiodły, i niezerowy (\fIfalse\fP fałsz) jeśli podczas ich wykonywania pojawił
się błąd.  Wszystkie polecenia wbudowane zwracają kod 2 dla wskazania
niepoprawnego użycia.
.PP
Sam \fBBash\fP zwraca kod zakończenia ostatniego wykonanego polecenia, chyba że
pojawi się błąd składni, wówczas kończy pracą z wartością niezerową. Zobacz
też poniżej polecenie wbudowane \fBexit\fP.
.SH SYGNAŁY
Gdy \fBbash\fP jest interaktywny, przy braku jakichkolwiek pułapek
(przechwytywania sygnałów), ignoruje on
.SM
\fBSIGTERM\fP (tak, że \fBkill 0\fP
nie zabija powłoki interaktywnej), a
.SM
\fBSIGINT\fP jest przechwytywany i
obsługiwany (tak, że wbudowane polecenie \fBwait\fP daje się przerwać).  We
wszystkich przypadkach, \fBbash\fP ignoruje
.SM
\fBSIGQUIT\fP.  Jeżeli działa
kontrola zadań, \fBbash\fP ignoruje
.SM
\fBSIGTTIN\fP,
.SM
\fBSIGTTOU\fP i
.SM
\fBSIGTSTP\fP.
.PP
Zadania synchroniczne uruchomione przez \fBbash\fP mają procedury obsługi
sygnałów (signal handlers) ustawione na wartości odziedziczone przez powłokę
po rodzicu. Jeżeli nie pracuje kontrola zadań, to polecenia asynchroniczne
ignorują również
.SM
\fBSIGINT\fP i
.SM
\fBSIGQUIT\fP.  Polecenia
uruchamiane wskutek podstawiania poleceń ignorują generowane z klawiatury
sygnały kontroli zadań
.SM
\fBSIGTTIN\fP,
.SM
\fBSIGTTOU\fP i
.SM
\fBSIGTSTP\fP.
.PP
Powłoka domyślnie kończy pracę po otrzymaniu
.SM
\fBSIGHUP\fP.  Przed
zakończeniem, powłoka interaktywna rozsyła otrzymany
.SM
\fBSIGHUP\fP do
wszystkich zadań, pracujących lub zatrzymanych.  Do zatrzymanych zadań
wysyłany jest
.SM
\fBSIGCONT\fP by upewnić się, że otrzymują
.SM
\fBSIGHUP\fP.  Chcąc uniknąć wysłania sygnału przez powłokę do konkretnego
zadania, należy usunąć je z tablicy zadań przy pomocy wbudowanego polecenia
\fBdisown\fP (zobacz poniżej
.SM
\fBWBUDOWANE POLECENIA POWŁOKI\fP)  lub
oznakować, by nie otrzymywało
.SM
\fBSIGHUP\fP, posługując się \fBdisown \-h\fP.
.PP
Jeżeli przy pomocy \fBshopt\fP została ustawiona opcja \fBhuponexit\fP powłoki,
\fBbash\fP wysyła
.SM
\fBSIGHUP\fP do wszystkich zadań, gdy kończy pracę
interaktywna powłoka zgłoszeniowa.
.PP
Gdy \fBbash\fP podczas oczekiwania na ukończenie polecenia otrzymuje sygnał,
dla którego ustawiono pułapkę, pułapka ta nie zostanie wykonana aż do
zakończenia pracy polecenia.  Gdy \fBbash\fP oczekuje na polecenie
asynchroniczne za pośrednictwem wbudowanego \fBwait\fP, odbiór sygnału, dla
którego ustawiono przechwytywanie spowoduje, że wbudowane \fBwait\fP
natychmiast skończy pracę z kodem większym od 128, po czym natychmiast
zostanie wywołana pułapka.
.SH "KONTROLA ZADAŃ"
\fIKontrola zadań\fP odnosi się do możliwości selektywnego zatrzymywania
(\fIzawieszania\fP \- suspend) wykonywania procesów i późniejszej kontynuacji
(\fIwznawiania\fP \- resume) ich wykonywania. Użytkownik zwykle wykorzystuje to
udogodnienie za pośrednictwem interaktywnego interfejsu obsługiwanego
wspólnie przez systemowy sterownik terminala i \fBbash\fP.
.PP
Powłoka kojarzy z każdym potokiem \fIzadanie\fP.  Przechowuje tablicę aktualnie
wykonywanych zadań, którą można przeglądać za pomocą polecenia \fBjobs\fP.  Gdy
\fBbash\fP uruchamia zadanie asynchronicznie (w \fItle\fP), wypisuje wiersz w
rodzaju:
.RS
.PP
[1] 25647
.RE
.PP
wskazujący, że zadanie to ma numer 1 a ID ostatniego procesu w potoku
związanym z zadaniem wynosi 25647.  Wszystkie procesy w jednym potoku należą
do tego samego zadania.  \fBBash\fP posługuje się abstrakcją (abstraction)
\fIzadania\fP jako podstawą kontroli zadań.
.PP
Dla ułatwienia implementacji interfejsu użytkownika do kontroli zadań,
system operacyjny utrzymuje pojęcie \fIID grupy procesów bieżącego terminala\fP
(current terminal process group ID).  Elementy tej grupy procesów (procesy,
których ID grupy procesów jest równy ID grupy procesów bieżącego terminala)
otrzymują generowane z klawiatury sygnały, takie jak
.SM
\fBSIGINT\fP.
Mówimy, że procesy te pracują \fIpierwszoplanowo\fP.  Procesy \fItła\fP to takie,
których ID grupy procesów różni się od terminala; procesy takie są odporne
na sygnały pochodzące z klawiatury.  Tylko procesom pierwszoplanowym wolno
czytać i, jeśli użytkownik ustawi \f(CWstty tostop\fP, pisać na terminal. Do
procesów tła usiłujących czytać z (i pisać do, jeśli działa \f(CWstty tostop\fP)
terminala wysyłany jest przez sterownik terminala sygnał
.SM
\fBSIGTTIN\fP
\fB(SIGTTOU)\fP, który, jeśli nie zostanie przechwycony, wstrzymuje proces.
.PP
Jeżeli system operacyjny, na którym działa \fBbash\fP obsługuje kontrolę zadań,
\fBbash\fP zawiera funkcje do jej wykorzystywania.  Naciśnięcie klawisza
\fIwstrzymania\fP (zwykle \fB^Z\fP, Control\-Z) podczas pracy procesu powoduje, że
proces ten zostanie zatrzymany a sterowanie zostanie zwrócone do \fBbash\fP.
Naciśnięcie klawisza \fIopóźnione wstrzymanie\fP (zwykle \fB^Y\fP, Control\-Y)
powoduje, że proces zostanie zatrzymywany gdy będzie usiłował czytać wejście
z terminala, a sterowanie powróci do \fBbash\fP.  Użytkownik może następnie
zmieniać stan takiego zadania, posługując się poleceniem \fBbg\fP do
kontynuacji zadania w tle, \fBfg\fP do kontynuacji na pierwszym planie lub
poleceniem \fBkill\fP do zabicia zadania.  \fB^Z\fP działa natychmiast i ma efekt
uboczny: powoduje odrzucenie oczekującego wyjścia i wprowadzonych, a
nieprzetworzonych naciśnięć klawiszy (typeahead).
.PP
Istnieje kilka sposobów wskazywania zadania w powłoce.  Znak \fB%\fP poprzedza
nazwę zadania. Zadanie numer \fIn\fP można wskazać jako \fB%n\fP.  Zadanie może
być też określone przez użycie przedrostka nazwy użytej do jego uruchomienia
lub podłańcucha, jaki występuje w jego wierszu poleceń.  Na przykład, \fB%ce\fP
odnosi się do zatrzymanego zadania \fBce\fP.  Jeśli przedrostek pasuje do
więcej niż jednego zadania, \fBbash\fP zgłasza błąd. Z drugiej strony, użycie
\fB%?ce\fP, wskazuje na zadanie zawierające podłańcuch \fBce\fP w swym wierszu
poleceń. Jeżeli łańcuch pasuje do więcej niż jednego zadania, \fBbash\fP
zgłasza błąd. Symbole \fB%%\fP i \fB%+\fP określają rozumiane przez powłokę
\fIbieżące zadanie\fP, będące ostatnim zadaniem zatrzymanym, gdy było na
pierwszym planie lub uruchomionym w tle.  Do \fIpoprzedniego zadania\fP można
odwoływać się przy pomocy \fB%\-\fP.  W wyjściu odnoszącym się do zadań
(np. wyjście polecenia \fBjobs\fP), bieżące zadanie jest zawsze zaznaczone
znakiem \fB+\fP, a zadanie poprzednie \fB\-\fP. Pojedynczy % (bez towarzyszącego
określenia zadania) również odnosi się do bieżącego zadania.
.PP
Do przywrócenia zadania na pierwszy plan można posłużyć się po prostu jego
nazwą: \fB%1\fP jest synonimem dla ,,\fBfg %1\fP\*(rq, przywracającego zadanie 1 z
tła na pierwszy plan.  Podobnie, ,,\fB%1 &\fP\*(rq wznawia zadanie 1 w tle,
równoważnie do ,,\fBbg %1\*(rq\fP\*(rq.
.PP
Powłoka natychmiast dowiaduje się czy zadanie zmieniło stan.  Normalnie,
\fBbash\fP czeka ze zgłoszeniem zmian do momentu, gdy ma wyświetlić zachętę, by
nie przerywać innego wyjścia. Jeżeli włączono opcję \fB\-b\fP wbudowanego
polecenia \fBset\fP, \fBbash\fP zgłasza takie zmiany natychmiast.  Dla każdego
kończącego pracę procesu potomnego wykonywana jest ewentualna pułapka
przechwytująca
.SM
\fBSIGCHLD\fP.
.PP
Jeżeli wykonano próbę zakończenia pracy \fBbash\fP przy istniejących
zatrzymanych zadaniach (lub, gdy włączono opcję powłoki \fBcheckjobs\fP
używając wbudowanego \fBshopt\fP, działających zadaniach), powłoka wypisuje
komunikat ostrzegawczy i, jeśli włączono opcję \fBcheckjobs\fP wypisuje zadania
wraz z ich stanem. Można wówczas posłużyć się poleceniem \fBjobs\fP do
sprawdzenia ich stanu. Jeżeli wykonywana jest druga próba zakończenia pracy
bez wystąpienia wtrąconego między nie polecenia, powłoka nie wypisuje
kolejnego ostrzeżenia a zatrzymane zadania są przerywane.
.SH "ZACHĘTA POWŁOKI"
Przy wykonywaniu interaktywnym \fBbash\fP wyświetla główny symbol zachęty
(primary prompt)
.SM
\fBPS1\fP kiedy jest gotowa na odczyt polecenia, zaś
wtórną (secondary) zachętę
.SM
\fBPS2\fP kiedy potrzebuje więcej danych z
wejścia do uzupełnienia polecenia.  \fBBash\fP pozwala na dostosowywanie tych
łańcuchów zachęty poprzez wstawianie wielu znaków specjalnych
rozpoczynających się odwrotnym ukośnikiem, które są dekodowane jak
następuje:
.RS
.PD 0
.TP 
\fB\ea\fP
znak dzwonka ASCII (07)
.TP 
\fB\ed\fP
data w formacie "DzieńTyg Miesiąc Dzień" (np. "Tue May 26")
.TP 
\fB\eD{\fP\fIformat\fP\fB}\fP
\fIformat\fP jest przekazywany do \fIstrftime\fP(3), a wynik jest wstawiany do
łańcucha zachęty. Pusty \fIformat\fP daje w wyniku czas w lokalnym
formacie. Nawiasy klamrowe są wymagane
.TP 
\fB\ee\fP
znak escape ASCII (033)
.TP 
\fB\eh\fP
nazwa hosta do pierwszej kropki `.'
.TP 
\fB\eH\fP
nazwa hosta
.TP 
\fB\ej\fP
liczba zadań aktualnie obsługiwanych przez powłokę
.TP 
\fB\el\fP
główna część nazwy urządzenia terminala powłoki
.TP 
\fB\en\fP
znak nowej linii
.TP 
\fB\er\fP
powrót karetki (carriage return)
.TP 
\fB\es\fP
nazwa powłoki, główna część nazwy \fB$0\fP (fragment występujący po ostatnim
ukośniku)
.TP 
\fB\et\fP
bieżący czas w formacie 24\-godzinnym GG:MM:SS
.TP 
\fB\eT\fP
bieżący czas w formacie 12\-godzinnym GG:MM:SS
.TP 
\fB\e@\fP
bieżący czas w 12\-godzinnym formacie am/pm
.TP 
\fB\eA\fP
bieżący czas w 24\-godzinnym formacie GG:MM
.TP 
\fB\eu\fP
nazwa bieżącego użytkownika (username)
.TP 
\fB\ev\fP
wersja programu \fBbash\fP (np. 2.00)
.TP 
\fB\eV\fP
wydanie \fBbash\fP, wersja+poziom łat (np., 2.00.0)
.TP 
\fB\ew\fP
bieżący katalog roboczy, z
.SM
\fB$HOME\fP zapisanym w skrócie tyldą (używa
wartości ze zmiennej
.SM
\fBPROMPT_DIRTRIM\fP)
.TP 
\fB\eW\fP
główna część nazwy bieżącego katalogu roboczego, z
.SM
\fB$HOME\fP zapisanym
w skrócie tyldą
.TP 
\fB\e!\fP
numer tego polecenia w historii
.TP 
\fB\e#\fP
numer polecenia tego polecenia
.TP 
\fB\e$\fP
jeżeli efektywnym UID jest 0, to \fB#\fP, w przeciwnym razie \fB$\fP
.TP 
\fB\e\fP\fInnn\fP
znak odpowiadający ósemkowej liczbie \fInnn\fP
.TP 
\fB\e\e\fP
odwrotny ukośnik
.TP 
\fB\e[\fP
początek sekwencji znaków niedrukowalnych, która może służyć do osadzenia w
zachęcie sekwencji sterujących terminalem
.TP 
\fB\e]\fP
koniec sekwencji znaków niedrukowalnych
.PD
.RE
.PP
Numer polecenia i numer w historii są zwykle różne: numer polecenia w
historii jest jego pozycją na liście historii, która może obejmować
polecenia odtworzone z pliku historii (zobacz poniżej
.SM
\fBHISTORIA\fP),
podczas gdy numer polecenia jest pozycją w sekwencji poleceń wykonanych w
obecnej sesji powłoki.  Po zdekodowaniu, łańcuch jest interpretowany poprzez
interpretację parametrów, podstawianie wyników poleceń, interpretację
wyrażeń arytmetycznych, interpretację łańcuchów i usuwanie cytowań, zgodnie
z wartością opcji \fBpromptvars\fP powłoki (zobacz opis polecenia \fBshopt\fP w
sekcji
.SM
\fBWBUDOWANE\fP \fBPOLECENIA\fP \fBPOWŁOKI\fP poniżej).
.SH READLINE
Jest to biblioteka obsługująca odczytywanie wejścia podczas posługiwania się
powłoką interaktywną, chyba że przy wywołaniu powłoki podano opcję
\fB\-\-noediting\fP.  Domyślnie, polecenia edycji wiersza są podobne do
występujących w macsie.  Dostępny jest także interfejs edycji wiersza w
stylu vi.  Edycja wiersza może zostać włączona w dowolnym czasie, przy
użyciu opcji \fB\-o emacs\fP lub \fB\-o vi\fP wbudowanego polecenia \fBset\fP. By
wyłączyć edycję wiersza po uruchomieniu powłoki, użyj opcji \fB+o emacs\fP lub
\fB+o vi\fP wbudowanego polecenia \fBset\fP (zobacz
.SM
\fBWBUDOWANE POLECENIA
POWŁOKI\fP poniżej).
.SS "Notacja Readline"
.PP
W tej sekcji, do zapisu naciśnięć klawiszy używana jest notacja w stylu
emacsa. Klawisze Control zapisywane są jako C\-\fIklawisz\fP, np., C\-n oznacza
Control\-N. Podobnie, \fImeta\fP klawisze zapisywane są jako M\-\fIklawisz\fP, zatem
M\-x oznacza Meta\-X.  (Na klawiaturach bez klawisza \fImeta\fP M\-\fIx\fP oznacza
ESC \fIx\fP, tj. naciśnij klawisz Escape a następnie klawisz \fIx\fP.  Czyni to
ESC \fIprzedrostkiem meta\fP (meta prefix).  Kombinacja M\-C\-\fIx\fP oznacza
ESC\-Control\-\fIx\fP, lub naciśnij klawisz Escape, następnie przytrzymaj klawisz
Control podczas naciskania klawisza \fIx\fP.)
.PP
Poleceniom readline można podawać numeryczne \fIargumenty\fP, które normalnie
działają jako licznik powtórzeń.  Czasami jednak, znaczący jest znak
argumentu. Przekazanie ujemnego argumentu poleceniu, które działa w przód
(np. \fBkill\-line\fP) powoduje, że będzie ono działać odwrotnym kierunku
(wstecz).  Polecenia, których zachowanie z argumentami odbiega od podanego
odnotowano poniżej.
.PP
Gdy polecenie opisano jako \fIusuwające\fP (killing) tekst, tekst ten jest
zachowywany to ewentualnego późniejszego odzyskania (\fIprzywołania\fP
yanking). Kolejne usunięcia powodują, że tekst jest zbierany w jedną całość,
którą można odzyskać naraz. Polecenia nie usuwające tekstu oddzielają
kawałki tekstu w stosie usuwania (killing ring).
.SS "Inicjalizacja Readline"
.PP
Readline dostosowywane jest przy pomocy poleceń umieszczanych w pliku
inicjującym (plik \fIinputrc\fP).  Nazwa tego pliku brana jest z wartości
zmiennej
.SM
\fBINPUTRC\fP.  Jeżeli zmienna ta nie jest ustawiona, domyślną
nazwą jest \fI~/.inputrc\fP.  Gdy startuje program używający biblioteki
readline, odczytywany jest plik inicjujący, po czym ustawiane są przypisania
klawiszy i zmienne.  Istnieje tylko kilka podstawowych konstrukcji
dozwolonych w pliku inicjacji readline.  Puste wiersze są ignorowane.
Wiersze rozpoczynające się od \fB#\fP są komentarzami.  Wiersze rozpoczynające
się od \fB$\fP wskazują konstrukcje warunkowe.  Inne wiersze wyznaczają
przypisania klawiszy i ustawienia zmiennych.
.PP
Domyślne przypisania klawiszy można zmienić przy pomocy pliku \fIinputrc\fP.
Inne programy posługujące się tą biblioteką mogą dodawać własne polecenia i
przypisania.
.PP
Na przykład, umieszczenie
.RS
.PP
M\-Control\-u: universal\-argument
.RE
lub
.RS
C\-Meta\-u: universal\-argument
.RE
w \fIinputrc\fP spowodowałoby, że M\-C\-u wywoływałoby polecenie readline
\fIuniversal\-argument\fP.
.PP
Rozpoznawane są następujące symboliczne nazwy znaków: \fIRUBOUT\fP, \fIDEL\fP,
\fIESC\fP, \fILFD\fP, \fINEWLINE\fP, \fIRET\fP, \fIRETURN\fP, \fISPC\fP, \fISPACE\fP i \fITAB\fP.
.PP
Oprócz nazw poleceń readline pozwala przypisywać klawisze do
łańcucha. Łańcuch ten zostanie wstawiony po naciśnięciu klawisza (\fImakro\fP).
.SS "Przypisania klawiszy Readline"
.PP
Składnia przypisań klawiszy sterujących w pliku \fIinputrc\fP jest
prosta. Wymagana jest wyłącznie nazwa polecenia lub tekst makra i sekwencja
klawiszy, do której powinno być przypisane. Klawisze mogą być podane na dwa
sposoby: jako symboliczna nazwa klawisza, może być z przedrostkami \fIMeta\-\fP
lub \fIControl\-\fP, lub jako sekwencja klawiszy.
.PP
Przy użyciu postaci \fBnazwa\-klaw\fP:\^\fInazwa\-funkcji\fP lub \fImakro\fP,
\fInazwa\-klaw\fP jest nazwą klawisza zapisaną w jęz.angielskim. Na przykład:
.sp
.RS
Control\-u: universal\-argument
.br
Meta\-Rubout: backward\-kill\-word
.br
Control\-o: "> output"
.RE
.LP
W powyższym przykładzie, \fIC\-u\fP przypisane jest do funkcji
\fBuniversal\-argument\fP, \fIM\-DEL\fP przypisane jest do funkcji
\fBbackward\-kill\-word\fP a \fIC\-o\fP przypisane do uruchamiania makra wyrażonego
po prawej (to jest, wstawiania tekstu
.if  t \f(CW> output\fP
.if  n ``> output''
w wiersz).
.PP
W drugiej postaci, \fB"sekw\-klaw"\fP:\^\fInazwa\-funkcji\fP lub \fImakro\fP,
\fBsekw\-klaw\fP różni się od \fBnazwa\-klaw\fP powyżej tym, że przez umieszczenie
sekwencji w cudzysłowach można podać łańcuchy oznaczające całą sekwencję
klawiszy. Można posłużyć się niektórymi kombinacjami klawiszy w stylu GNU
Emacs\-a, jak w poniższym przykładzie, nie są jednak rozpoznawane symboliczne
nazwy znaków:
.sp
.RS
"\eC\-u": universal\-argument
.br
"\eC\-x\eC\-r": re\-read\-init\-file
.br
"\ee[11~": "Klawisz funkcyjny 1"
.RE
.PP
W tym przykładzie, \fIC\-u\fP jest ponownie przypisane do funkcji
\fBuniversal\-argument\fP.  \fIC\-x C\-r\fP przypisane jest do funkcji
\fBre\-read\-init\-file\fP, zaś \fIESC [ 1 1 ~\fP przypisane jest do wstawienia
tekstu
.if  t \f(CWFunction Key 1\fP.
.if  n ``Function Key 1''.
.PP
Oto pełny zestaw sekwencji specjalnych w stylu GNU Emacs
.RS
.PD 0
.TP 
\fB\eC\-\fP
przedrostek control
.TP 
\fB\eM\-\fP
przedrostek meta
.TP 
\fB\ee\fP
znak escape
.TP 
\fB\e\e\fP
odwrotny ukośnik (backslash)
.TP 
\fB\e"\fP
dosłowny cudzysłów "
.TP 
\fB\e\(aq\fP
dosłowny apostrof \(aq
.RE
.PD
.PP
Oprócz sekwencji specjalnych w stylu GNU Emacsa, dostępny jest drugi zestaw
sekwencji z użyciem odwrotnego ukośnika:
.RS
.PD 0
.TP 
\fB\ea\fP
alarm (dzwonek)
.TP 
\fB\eb\fP
backspace
.TP 
\fB\ed\fP
delete
.TP 
\fB\ef\fP
znak wysuwu strony (form feed)
.TP 
\fB\en\fP
znak nowej linii
.TP 
\fB\er\fP
powrót karetki (carriage return)
.TP 
\fB\et\fP
tabulacja pozioma (horizontal tab)
.TP 
\fB\ev\fP
tabulacja pionowa (vertical tab)
.TP 
\fB\e\fP\fInnn\fP
ośmiobitowy znak, którego wartością jest ósemkowa liczba \fInnn\fP (jedna do
trzech cyfr)
.TP 
\fB\ex\fP\fIHH\fP
ośmiobitowy znak, którego wartością jest szesnastkowa liczba \fInnn\fP (jedna
lub dwie cyfry szesnastkowe)
.RE
.PD
.PP
Podczas wprowadzania tekstu makra, do wskazania jego definicji muszą być
użyte pojedyncze lub podwójne cudzysłowy.  Zakłada się, że tekst niecytowany
jest nazwą funkcji.  W ciele makra interpretowane są sekwencje specjalne z
użyciem odwrotnego ukośnika opisane powyżej. odwrotny ukośnik cytuje dowolny
inny znak w tekście makra, łącznie z " i \(aq.
.PP
\fBBash\fP umożliwia wyświetlanie i zmianę bieżących przypisań klawiszy
readline za pomocą wbudowanego polecenia \fBbind\fP.  Tryb edycji można
przełączać podczas używania interaktywnego przez posłużenie się opcją \fB\-o\fP
wbudowanego polecenia \fBset\fP (zobacz poniżej
.SM
\fBWBUDOWANE\fP
\fBPOLECENIA\fP \fBPOWŁOKI\fP).
.SS "Zmienne Readline"
.PP
Readline posiada zmienne, których można używać do dodatkowego dostosowania
jej zachowania. Zmienna może być ustawiana w pliku \fIinputrc\fP przy pomocy
instrukcji postaci
.RS
.PP
\fBset\fP \fInazwa\-zmiennej\fP \fIwartość\fP
.RE
.PP
Z wymienionymi niżej wyjątkami, zmienne readline mogą przyjmować wartości
\fBOn\fP lub \fBOff\fP (wielkość znaków nie ma znaczenia). Nierozpoznane nazwy
zmiennych są ignorowane. Gdy odczytywana jest wartość zmiennej, puste lub
wyzerowane wartości, "on" (bez względu na wielkość liter) i "1" są
równoważne \fBOn\fP. Wszystkie pozostałe wartości są równoważne \fBOff\fP. A oto
zmienne i ich wartości domyślne:
.PP
.PD 0
.TP 
\fBbell\-style (audible)\fP
Kontroluje, co dzieje się gdy readline chce użyć sygnału dźwiękowego
terminala. Jeśli ustawiona na \fBnone\fP, readline nigdy nie emituje sygnału.
Jeśli ustawiona na \fBvisible\fP, readline posługuje się "widzialnym dzwonkiem"
(visible bell), jeśli jest dostępny.  Jeżeli ustawiona na \fBaudible\fP,
readline usiłuje uzyskać sygnał dźwiękowy z terminala.
.TP 
\fBbind\-tty\-special\-chars (On)\fP
Jeśli ustawiona na \fBOn\fP, readline będzie próbował przypiąć znaki kontrolne
traktowane w sposób specjalny przez sterownik terminala jądra do ich
odpowiedników readline.
.TP 
\fBcolored\-stats (Off)\fP
Jeśli ustawiona na \fBOn\fP, readline wyświetli możliwe dopasowania za pomocą
używając kolorów wskazujących na ich typ pliku. Wzory kolorów są brane z
wartości zmiennej środowiskowej \fBLS_COLORS\fP.
.TP 
\fBcomment\-begin (,,#\*(rq)\fP
Łańcuch wstawiany, gdy wykonywane jest polecenie \fBinsert\-comment\fP
readline.  Polecenie to jest przypisane do \fBM\-#\fP w trybie emacs, zaś do
\fB#\fP w trybie vi.
.TP 
\fBcompletion\-ignore\-case (Off)\fP
Jeżeli ustawiona na \fBOn\fP, readline wykonuje dopasowywanie i uzupełnianie
nazw plików bez rozróżniania wielkości liter.
.TP 
\fBcompletion\-prefix\-display\-length (0)\fP
Długość (w znakach) wspólnego przedrostka listy możliwych uzupełnień, które
są wyświetlane bez modyfikacji. Gdy jest ustawiona na wartość większą od
zera, wspólne przedrostki dłuższe od tej wartości są zastępowane
wielokropkiem podczas wyświetlania dostępnych uzupełnień.
.TP 
\fBcompletion\-query\-items (100)\fP
Określa, kiedy użytkownik jest pytany o oglądanie takiej liczby możliwych
uzupełnień tworzonych przez polecenie \fBpossible\-completions\fP.  Może być
ustawiona na dowolną liczbę całkowitą większą lub równą zero.  Jeżeli liczba
możliwych uzupełnień jest większa bądź równa wartości tej zmiennej, to
użytkownik jest pytany czy chce je oglądnąć; w przeciwnym razie są one po
prostu pokazywane na terminalu.
.TP 
\fBconvert\-meta (On)\fP
Jeśli ustawione na \fBOn\fP, readline będzie zamieniał znaki z ustawionym ósmym
bitem na sekwencje klawiszy ASCII przez obcięcie ósmego bitu i poprzedzenie
znakiem escape (w efekcie, używając escape jako \fIprzedrostka meta\fP).
.TP 
\fBdisable\-completion (Off)\fP
Jeśli ustawione na \fBOn\fP, readline zabroni uzupełniania słów. Znaki
uzupełniania zostaną wstawione w wiersz tak, jakby zostały przypisane do
\fBself\-insert\fP.
.TP 
\fBediting\-mode (emacs)\fP
Kontroluje czy readline rozpoczyna pracę z zestawem przypisań klawiszy
podobnym do \fIemacs\fP czy do \fIvi\fP.  \fBediting\-mode\fP może być ustawiane albo
na \fBemacs\fP albo na \fBvi\fP.
.TP 
\fBecho\-control\-characters (On)\fP
Jeśli ustawione na \fBOn\fP, readline wyświetla znak odpowiadający sygnałowi
otrzymanemu z klawiatury, w systemach które informują o obsługiwaniu tej
właściwości.
.TP 
\fBenable\-keypad (Off)\fP
Gdy jest ustawione na \fBOn\fP, readline będzie usiłować włączyć numeryczny
blok klawiatury (application keypad) przy wywołaniu.  Niektóre systemy
potrzebują tego do włączenia klawiszy strzałek.
.TP 
\fBenable\-meta\-key (On)\fP
Gdy jest ustawiona na \fBOn\fP, readline próbuje włączyć dostępne modyfikujące
klawisze meta, o których obsługiwaniu zapewnia terminal, gdy są
wywoływane. Na wielu terminalach meta klawisz jest używany do wysyłania
znaków ośmiobitowych.
.TP 
\fBexpand\-tilde (Off)\fP
Jeżeli ustawione na \fBOn\fP, podczas próby uzupełniania słów readline wykonuje
interpretację tyldy.
.TP 
\fBhistory\-preserve\-point (Off)\fP
Ustawione na \fBon\fP powoduje, że kod obsługi historii poleceń usiłuje w
każdym wierszu poleceń odzyskanym za pomocą \fBprevious\-history\fP lub
\fBnext\-history\fP umieścić punkt (bieżącą pozycję kursora) w tym samym
miejscu.
.TP 
\fBhistory\-size (0)\fP
Ustawia maksymalną liczbę wpisów historii zapisywanych w liście
historii. Gdy jest ustawiona na zero, istniejące wpisy są usuwane, a nowe
nie są zapisywane. Gdy wartość jest mniejsza od zera, liczba wpisów w liście
historii jest nieograniczona. Domyślnie liczba wpisów w liście historii jest
nieograniczona.
.TP 
\fBhorizontal\-scroll\-mode (Off)\fP
Ustawione na \fBOn\fP powoduje, że readline do wyświetlania posługuje się
pojedynczym wierszem. Jeśli wejście jest dłuższe niż szerokość ekranu, to
jego zawartość jest wówczas przewijana w poziomie w pojedynczym wierszu
ekranu, zamiast zawijania do następnego wiersza.
.TP 
\fBinput\-meta (Off)\fP
Jeśli ustawiona na \fBOn\fP, readline dopuści ośmiobitowe wejście (to znaczy,
nie będzie obcinać ósmego bitu z odczytywanych znaków), bez względu na to,
co twierdzi terminal o możliwości obsługi. Nazwa \fBmeta\-flag\fP jest synonimem
tej zmiennej.
.TP 
\fBisearch\-terminators (,,C\-[C\-J\*(rq)\fP
Łańcuch znaków, który powinien przerywać wyszukiwanie krokowe (incremental
search) bez późniejszego wykonywania znaku jako polecenia.  Jeżeli zmiennej
tej nie nadano wartości, to wyszukiwanie krokowe będą przerywać \fIESC\fP i
\fIC\-J\fP.
.TP 
\fBkeymap (emacs)\fP
Ustawia bieżące mapowanie klawiatury readline. Zestawami poprawnych mapowań
są \fIemacs\fP, \fIemacs\-standard\fP, \fIemacs\-meta\fP, \fIemacs\-ctlx\fP, \fIvi\fP,
\fIvi\-command\fP i \fIvi\-insert\fP.  \fIvi\fP jest równoważnikiem dla \fIvi\-command\fP;
\fIemacs\fP jest równoważne \fIemacs\-standard\fP. Domyślną wartością jest
\fIemacs\fP; wartość \fBediting\-mode\fP również wpływa na domyślne mapowanie.
.TP 
\fBkeyseq\-timeout (500)\fP
Określa czas, jaki \fIreadline\fP poczeka na znak, gdy odczytuje wieloznaczną
sekwencję klawiszy (taką, która z dotychczasowego wejścia może
utworzyć\ kompletną sekwencję klawiszy lub może otrzymać dodatkowe wejście,
aby utworzyć kompletną, dłuższą sekwencję klawiszy). Jeżeli wejście nie
zostanie wprowadzone w trakcie czasu oczekiwania, \fIreadline\fP użyje krótszej
kompletnej sekwencji klawiszy. Wartość jest określona w milisekundach,
dlatego 1000 oznacza, że \fIreadline\fP poczeka sekundę na dodatkowe
wejście. Jeśli ta zmienna jest ustawiona na wartość mniejszą lub równą\ zero,
lub na wartość nienumeryczną, \fIreadline\fP poczeka na wciśnięcie dodatkowego
klawisza, aby zdecydować którą sekwencję klawiszy uzupełnić.
.TP 
\fBmark\-directories (On)\fP
Jeżeli ustawione na \fBOn\fP, to uzupełniane nazwy katalogów mają dołączany
końcowy ukośnik.
.TP 
\fBmark\-modified\-lines (Off)\fP
Jeżeli ustawione na \fBOn\fP, wiersze historii, które zostały zmienione
wyświetlane są z poprzedzającą je gwiazdką (\fB*\fP).
.TP 
\fBmark\-symlinked\-directories (Off)\fP
Gdy ustawiona na \fBOn\fP, uzupełniane nazwy będące dowiązaniami symbolicznymi
do katalogów, mają dodany znak ukośnika (przedmiot wartości
\fBmark\-directories\fP).
.TP 
\fBmatch\-hidden\-files (On)\fP
Ta zmienna, gdy jest ustawiona na \fBOn\fP, powoduje, że readline wykonując
uzupełnianie nazw plików dopasowuje pliki, których nazwy zaczynają się od
kropki `.' (pliki ukryte). Gdy ustawiona na \fBOff\fP, początkowa kropka w
nazwie jaka ma być uzupełniona, musi być wpisana przez użytkownika.
.TP 
\fBmenu\-complete\-display\-prefix (Off)\fP
Gdy ustawiona na \fBOn\fP, uzupełnianie menu wyświetla wspólny przedrostek
listy możliwych uzupełnień (który może być pusty) przed cyklicznym
przełączaniem się między pozycjami z listy.
.TP 
\fBoutput\-meta (Off)\fP
Jeżeli ustawione na \fBOn\fP, readline wyświetla znaki z ustawionym ósmym bitem
wprost zamiast jako sekwencje specjalne z meta\-przedrostkiem.
.TP 
\fBpage\-completions (On)\fP
Gdy ustawione na \fBOn\fP, readline używa wewnętrznego programu wyświetlającego
podobnego do \fImore\fP, do wyświetlania pełnego ekranu możliwych uzupełnień na
raz.
.TP 
\fBprint\-completions\-horizontally (Off)\fP
Jeżeli ustawione na \fBOn\fP, readline wyświetla dopasowane uzupełnienia w
kolejności alfabetycznej poziomo, zamiast w dół ekranu.
.TP  
\fBrevert\-all\-at\-newline (Off)\fP
Gdy ustawione na \fBOn\fP, readline anuluje wszystkie zmiany w wierszach
historii przed powrotem, gdy wykonywane jest \fBaccept\-line\fP. Domyślnie,
wiersze historii mogą zostać zmodyfikowane i zachować swe listy anulowań
poprzez odwołania do \fBreadline\fP.
.TP 
\fBshow\-all\-if\-ambiguous (Off)\fP
Zmienia to domyślne zachowanie funkcji uzupełniania. Jeżeli jest ustawione
na \fBon\fP, to słowa mające więcej niż jedno możliwe uzupełnienie powodują, że
natychmiast zostaną podane dopasowania zamiast wyemitowania sygnału
dźwiękowego.
.TP 
\fBshow\-all\-if\-unmodified (Off)\fP
Zmienna modyfikuje domyślne zachowanie funkcji uzupełnienia w sposób podobny
do \fBshow\-all\-if\-ambiguous\fP. Gdy jest ustawiona na \fBOn\fP, słowa które mają
więcej niż jedno możliwe uzupełnienie bez możliwych uzupełnień częściowych
(możliwe uzupełnienia nie posiadają wspólnego przedrostka), są wypisywane
natychmiast, bez wcześniejszego używania brzęczyka.
.TP 
\fBshow\-mode\-in\-prompt (Off)\fP
Jeśli jest ustawiona na \fBOn\fP, dodaje znak na początku znaku zachęty
wskazujący tryb edycji: emacs (\fB@\fP), wiersz polecenia vi (\fB:\fP) lub tryb
wstawiania vi (\fB+\fP).
.TP 
\fBskip\-completed\-text (Off)\fP
Gdy jest ustawiona na \fBOn\fP, modyfikuje domyślne zachowanie uzupełniania gdy
do wiersza wstawiane jest pojedyncze dopasowanie. Jest to aktywne tylko
podczas przeprowadzania uzupełnienia w środku słowa. Gdy jest włączona,
readline nie wstawia znaków z uzupełniania, które pasują do znaków w miejscu
wprowadzania w uzupełnianym słowie, dzięki czemu części słowa za kursorem,
nie są duplikowane.
.TP 
\fBvisible\-stats (Off)\fP
Jeżeli ustawione na \fBOn\fP, to przy wyświetlaniu możliwych uzupełnień do
nazwy pliku zostanie dołączony znak określający typ pliku wskazywany przez
\fIstat\fP(2).
.PD
.SS "Konstrukcje warunkowe Readline"
.PP
Readline implementuje udogodnienie podobne duchem do funkcji kompilacji
warunkowej preprocesora C, pozwalające na wykonywanie przypisań klawiszy i
ustawień zmiennych w zależności od wyniku testów. Używane są cztery
dyrektywy analizatora składni.
.IP \fB$if\fP
Konstrukcja \fB$if\fP pozwala na wykonanie przypisań klawiszy w oparciu o tryb
edycji, używany terminal lub aplikację korzystającą z readline. Tekst testu
rozciąga się do końca wiersza; do jego wydzielenia nie są wymagane żadne
znaki.
.RS
.IP \fBmode\fP
Postać \fBmode=\fP dyrektywy \fB$if\fP służy do sprawdzania czy readline jest w
trybie emacs czy vi. Może być wykorzystywana, na przykład, w połączeniu z
poleceniem \fBset keymap\fP, do ustawienia przypisań w mapowaniach
\fIemacs\-standard\fP i \fIemacs\-ctlx\fP tylko jeśli readline uruchamia się w
trybie emacs.
.IP \fBterm\fP
Postać \fBterm=\fP można wykorzystywać do włączenia specyficznych dla terminala
przypisań klawiszy, być może do przypisania wyjścia dla sekwencji klawiszy
funkcyjnych terminala. Słowo po prawej stronie \fB=\fP sprawdzane jest z
zarówno pełną nazwą terminala, jaki i częścią jego nazwy przed pierwszym
\fB\-\fP. Umożliwia to, na przykład, dopasowanie przez \fIsun\fP zarówno \fIsun\fP jak
i \fIsun\-cmd\fP.
.IP \fBaplikacja\fP
Konstrukcja \fBaplikacja\fP służy do włączania ustawień specyficznych dla
aplikacji. Każdy program korzystający z biblioteki readline ustawia nazwę
aplikacji (\fIapplication name\fP), a plik inicjujący może sprawdzić czy ma ona
jakąś szczególną wartość.  Może to być używane do przypisywania sekwencji
klawiszy funkcjom przydatnym w danym programie. Na przykład, poniższe
polecenie dodaje sekwencję klawiszy wykonującą w bash cytowanie bieżącego
lub poprzedniego słowa:
.sp 1
.RS
.nf
\fB$if\fP Bash
# Cytuj bieżące lub poprzednie słowo
"\eC\-xq": "\eeb\e"\eef\e""
\fB$endif\fP
.fi
.RE
.RE
.IP \fB$endif\fP
Polecenie to, jak widać w poprzednim przykładzie, kończy wykonywanie
polecenia \fB$if\fP.
.IP \fB$else\fP
Polecenia w tej gałęzi dyrektywy \fB$if\fP wykonywane są gdy nie powiedzie się
sprawdzenie warunku.
.IP \fB$include\fP
Dyrektywa ta pobiera jako argument pojedynczą nazwę pliku i odczytuje
polecenia i przypisania z tego pliku. Na przykład, poniższa dyrektywa
odczytałaby \fI/etc/inputrc\fP:
.sp 1
.RS
.nf
\fB$include\fP \^ \fI/etc/inputrc\fP
.fi
.RE
.SS Wyszukiwanie
.PP
Readline zapewnia polecenia do wyszukiwania w historii poleceń (zobacz
poniżej
.SM
\fBHISTORIA\fP)  wierszy zawierających zadany łańcuch.  Istnieją
dwa tryby wyszukiwania: \fIkrokowy\fP (incremental) i \fInie\-niekrokowy\fP
(non\-incremental).
.PP
Wyszukiwania krokowe rozpoczynają się przed zakończeniem wpisywania przez
użytkownika szukanego tekstu.  Po wpisaniu każdego znaków szukanego łańcucha
readline wyświetla następną pozycję historii pasującą do wpisanego do tej
pory łańcucha.  Wyszukiwanie krokowe wymaga tylko tylu znaków ile potrzebne
jest do znalezienia pożądanej pozycji historii.  Znaki występujące w
wartości zmiennej \fBisearch\-terminators\fP służą do przerwania wyszukiwania
krokowego.  Jeżeli zmienna ta nie ma przypisanej wartości, to wyszukiwanie
przerywają znaki Escape i Control\-J.  Control\-G porzuca wyszukiwanie krokowe
i przywraca pierwotny wiersz.  Gdy przerwie się wyszukiwanie, pozycja
historii zawierająca poszukiwany łańcuch staje się bieżącym wierszem.
.PP
W celu odnalezienia innych pasujących pozycji, należy nacisnąć odpowiednio
Control\-S lub Control\-R.  Wyszukuje to wstecz lub w przód kolejną pasującą
do dotychczas wpisanego łańcucha pozycję historii.  Wszystkie inne sekwencje
klawiszy przypisane do polecenia readline przerywają wyszukiwanie i wykonują
zadane polecenie.  Na przykład, znak \fInowej linii\fP przerywa wyszukiwanie i
akceptuje wiersz, wykonując skutkiem tego polecenie z listy historii.
.PP
Readline pamięta łańcuch użyty w ostatnim wyszukiwaniu krokowym. Jeżeli
Control\-R zostanie naciśnięte dwa razy, bez wprowadzenia pomiędzy
naciśnięciami innych znaków definiujących nowy łańcuch szukania, to
wykorzystywany jest uprzednio zapamiętany łańcuch.
.PP
Wyszukiwania nie\-krokowe czytają cały szukany łańcuch przed rozpoczęciem
wyszukiwania pasujących wierszy historii. Łańcuch może być wpisany przez
użytkownika lub być częścią zawartości bieżącego wiersza.
.SS "Nazwy poleceń Readline"
.PP
Poniżej podano listę nazw poleceń i domyślnych sekwencji klawiszy, do
których są one przypisane.  Nazwy poleceń bez towarzyszącej sekwencji
klawiszy są domyślnie nieprzypisane.  W poniższych opisach, \fIpunkt\fP oznacza
bieżącą pozycję kursora, zaś \fIzaznaczenie\fP do pozycji kursora zapamiętanej
przez polecenie \fBset\-mark\fP.  Tekst pomiędzy punktem a zaznaczeniem nazywany
jest \fIobszarem\fP.
.SS "Polecenia ruchu"
.PP
.PD 0
.TP 
\fBbeginning\-of\-line (C\-a)\fP
Przesuwa na początek bieżącego wiersza.
.TP 
\fBend\-of\-line (C\-e)\fP
Przesuwa na koniec wiersza.
.TP 
\fBforward\-char (C\-f)\fP
Przesuwa o znak w przód.
.TP 
\fBbackward\-char (C\-b)\fP
Przesuwa o znak wstecz.
.TP 
\fBforward\-word (M\-f)\fP
Przesuwa na koniec następnego słowa. Słowa złożone są ze znaków
alfanumerycznych (liter i cyfr).
.TP 
\fBbackward\-word (M\-b)\fP
Przesuwa na początek bieżącego, lub poprzedniego, słowa. Słowa złożone są ze
znaków alfanumerycznych (liter i cyfr).
.TP 
\fBshell\-forward\-word\fP
Przesuwa na koniec następnego słowa w przód. Słowa są oddzielone
niecytowanymi metaznakami powłoki.
.TP 
\fBshell\-backward\-word\fP
Przesuwa na początek bieżącego lub poprzedniego słowa w tył. Słowa są
oddzielone niecytowanymi metaznakami powłoki.
.TP 
\fBclear\-screen (C\-l)\fP
Czyści ekran pozostawiając bieżący wiersz na górze ekranu. Z argumentem,
odświeża bieżący wiersz bez czyszczenia ekranu.
.TP 
\fBredraw\-current\-line\fP
Odświeża bieżący wiersz.
.PD
.SS "Polecenia operujące na historii"
.PP
.PD 0
.TP 
\fBaccept\-line (Newline, Return)\fP
Akceptuje wiersz bez względu na to, gdzie znajduje się kursor. Jeżeli wiersz
ten nie jest pusty, to dodaje go do listy historii stosownie do stanu
zmiennej
.SM
\fBHISTCONTROL\fP.  Jeżeli wiersz jest zmienionym wierszem
historii, to odtwarza wiersz historii do stanu pierwotnego.
.TP 
\fBprevious\-history (C\-p)\fP
Sprowadza poprzednie polecenie z listy historii, przesuwając się wstecz
listy.
.TP 
\fBnext\-history (C\-n)\fP
Ściąga następne polecenie z listy historii, przesuwając się do przodu na
liście.
.TP 
\fBbeginning\-of\-history (M\-<)\fP
Przesuwa na pierwszy wiersz w historii.
.TP 
\fBend\-of\-history (M\->)\fP
Przesuwa na koniec historii wprowadzania, tj. obecnie wprowadzanego wiersza.
.TP 
\fBreverse\-search\-history (C\-r)\fP
Wyszukuje wstecz poczynając od bieżącego wiersza i przesuwając się, w razie
potrzeby, 'w górę' historii. Jest to wyszukiwanie krokowe.
.TP 
\fBforward\-search\-history (C\-s)\fP
Wyszukuje w przód poczynając od bieżącego wiersza i przesuwając się, w razie
potrzeby, 'w dół' historii. Jest to wyszukiwanie krokowe.
.TP 
\fBnon\-incremental\-reverse\-search\-history (M\-p)\fP
Wyszukuje wstecz poczynając od bieżącego wiersza posługując się
wyszukiwaniem nie\-krokowym podanego przez użytkownika łańcucha.
.TP 
\fBnon\-incremental\-forward\-search\-history (M\-n)\fP
Wyszukuje w przód poczynając od bieżącego wiersza posługując się
wyszukiwaniem nie\-krokowym podanego przez użytkownika łańcucha.
.TP 
\fBhistory\-search\-forward\fP
Wyszukuje w przód w historii łańcucha znaków pomiędzy początkiem bieżącego
wiersza a punktem.  Jest to wyszukiwanie nie\-krokowe.
.TP 
\fBhistory\-search\-backward\fP
Wyszukuje wstecz w historii łańcucha znaków pomiędzy początkiem bieżącego
wiersza a bieżącą pozycją kursora (\fIpunkt\fP).  Jest to wyszukiwanie
nie\-krokowe.
.TP 
\fByank\-nth\-arg (M\-C\-y)\fP
Wstawia pierwszy argument poprzedniego polecenia (zwykle drugie słowo z
poprzedniego wiersza) w punkt (bieżącą pozycję kursora). Z argumentem \fIn\fP,
wstawia \fIn\fP\-te słowo poprzedniego polecenia (słowa w poprzednim poleceniu
zaczynają się od słowa 0). Argument ujemny wstawia \fIn\fP\-te słowo od końca
poprzedniego polecenia. Po obliczeniu argumentu \fIn\fP, jest on wyodrębniany w
taki sposób, jak gdyby podano opcję interpretowania historii "!\fIn\fP".
.TP 
\fByank\-last\-arg (M\-.\^, M\-_\^)\fP
Wstawia ostatni argument poprzedniego polecenia (ostatnie słowo poprzedniej
pozycji historii). Z argumentem numerycznym, zachowuje się dokładnie tak,
jak \fByank\-nth\-arg\fP.  Kolejne wywołania \fByank\-last\-arg\fP przesuwają wstecz
listy historii, wstawiając po kolei ostatni argument (lub słowo określone
przez argument do pierwszego wywołania) każdego wiersza. Każdy argument
numeryczny podany do pomyślnego wywołania określa kierunek ruchu w
historii. Argument ujemny zmienia kierunek poruszania się (w tył lub w
przód). Możliwości interpretacji historii są używane do wyodrębnienia
ostatniego słowa, podobnie jak gdyby wybrano interpretację historii za
pomocą "!$".
.TP 
\fBshell\-expand\-line (M\-C\-e)\fP
Interpretuj wiersz, jak czyni to powłoka. Wykonuje to aliasy i interpretację
historii, jak również interpretację słów powłoki. Zobacz
.SM
\fBINTERPRETACJA HISTORII\fP poniżej.
.TP 
\fBhistory\-expand\-line (M\-^)\fP
Wykonuje interpretację powłoki w odniesieniu do bieżącego wiersza.  Zobacz
.SM
\fBINTERPRETACJA HISTORII\fP poniżej.
.TP 
\fBmagic\-space\fP
Wykonuje interpretację powłoki w odniesieniu do bieżącego wiersza i wstawia
spację.  Zobacz
.SM
\fBINTERPRETACJA HISTORII\fP poniżej.
.TP 
\fBalias\-expand\-line\fP
Wykonuje interpretację aliasów w odniesieniu do bieżącego wiersza.  Zobacz
.SM
\fBALIASY\fP powyżej.
.TP 
\fBhistory\-and\-alias\-expand\-line\fP
Wykonuje interpretację historii i aliasów w odniesieniu do bieżącego
wiersza.
.TP 
\fBinsert\-last\-argument (M\-.\^, M\-_\^)\fP
Synonim \fByank\-last\-arg\fP.
.TP 
\fBoperate\-and\-get\-next (C\-o)\fP
Akceptuje do wykonania bieżący wiersz i ściąga do edycji następny względem
bieżącego wiersz z historii. Argumenty są ignorowane.
.TP 
\fBedit\-and\-execute\-command (C\-xC\-e)\fP
Przywołuje edytor w bieżącym wierszu poleceń i wykonuje wynik jako polecenie
powłoki. \fBBash\fP stara się wywołać
.SM
\fB$VISUAL\fP,
.SM
\fB$EDITOR\fP i
\fIemacs\fP jako edytor, w tej kolejności.
.PD
.SS "Polecenia zmiany tekstu"
.PP
.PD 0
.TP 
\fIkoniec\-pliku\fP\fB (zwykle C\-d)\fP
Znak wskazujący koniec pliku, jak ustawiony np. przez
.if  t \f(CWstty\fP.
.if  n ``stty''.
Jeśli znak tej jest odczytany, gdy nie ma żadnych innych znaków w wierszu, a
punkt jest początkiem wiersza, Readline interpretuje to jako koniec wejścia
i zwraca
.SM
\fBEOF\fP.
.TP 
\fBdelete\-char (C\-d)\fP
Usuwa znak w tym punkcie. Jeżeli funkcja jest przypisana do tego samego
znaku, jak znak \fBEOF\fP tty, jak często bywa z \fBC\-d\fP, efekt jest opisany
powyżej.
.TP 
\fBbackward\-delete\-char (Rubout)\fP
Usuwa znak przed kursorem. Jeżeli podano argument numeryczny, zachowuje
usunięty tekst na stosie usunięć.
.TP 
\fBforward\-backward\-delete\-char\fP
Usuwa znak pod kursorem, chyba że kursor znajduje się na końcu wiersza,
wówczas usuwany jest znak przed kursorem.
.TP 
\fBquoted\-insert (C\-q, C\-v)\fP
Dodaje następny znak do wiersza dosłownie. W ten sposób wstawiane są znaki
takie, jak na przykład \fBC\-q\fP.
.TP 
\fBtab\-insert (C\-v TAB)\fP
Wstawia znak tabulacji.
.TP 
\fBself\-insert (a,\ b,\ A,\ 1,\ !,\ ...)\fP
Wstawia wpisany znak.
.TP 
\fBtranspose\-chars (C\-t)\fP
Zamienia miejscami znak sprzed punktu ze znakiem w punkcie, równocześnie
przesuwając punkt w przód. Jeżeli punkt jest na końcu wiersza to zamienia to
miejscami dwa znaki przed punktem. Argumenty ujemne nie skutkują.
.TP 
\fBtranspose\-words (M\-t)\fP
Zamienia miejscami słowo sprzed punktu ze słowem za punktem, przesuwając
równocześnie punkt za przesunięte sprzed niego słowo.  Jeżeli punkt jest na
końcu wiersza to zamienia to miejscami dwa ostanie słowa wiersza.
.TP 
\fBupcase\-word (M\-u)\fP
Zamienia na wielkie litery bieżące (lub następne) słowo. Z argumentem
ujemnym zamienia na wielkie litery poprzednie słowo, ale nie przesuwa
punktu.
.TP 
\fBdowncase\-word (M\-l)\fP
Zamienia na małe litery bieżące (lub następne) słowo. Z argumentem ujemnym
zamienia na małe litery poprzednie słowo, ale nie przesuwa punktu.
.TP 
\fBcapitalize\-word (M\-c)\fP
Zamienia na kapitaliki (pierwsza litera wielka, pozostałe małe) bieżące
(następne) słowo. Z argumentem ujemnym zamienia na kapitaliki poprzednie
słowo, ale nie przesuwa punktu.
.TP 
\fBoverwrite\-mode\fP
Przełącza tryb nadpisywania. Z jawnym, dodatnim argumentem liczbowym,
przełącza do trybu nadpisywania. Z jawnym, niedodatnim argumentem liczbowym,
przełącza do trybu wstawiania. Polecenie dotyczy jedynie trybu \fBemacs\fP,
tryb \fBvi\fP nadpisuje w inny sposób. Każde odwołania do \fIreadline()\fP jest
uruchamiane w trybie wstawiania. W trybie nadpisywania, znaki przypisane do
\fBself\-insert\fP zastępują tekst pod kursorem, zamiast przesuwać go w prawą
stronę. Znaki przypisane do \fBbackward\-delete\-char\fP zastępują znak przed
kursorem spacją. Domyślnie, to polecenie nie jest przypisane.
.PD
.SS "Usuwanie i wklejanie"
.PP
.PD 0
.TP 
\fBkill\-line (C\-k)\fP
Usuwa tekst od punktu do końca wiersza.
.TP 
\fBbackward\-kill\-line (C\-x Rubout)\fP
Usuwa wstecz do początku wiersza.
.TP 
\fBunix\-line\-discard (C\-u)\fP
.\" There is no real difference between this and backward-kill-line
Usuwa wstecz od punktu do początku wiersza. Usuwany tekst jest zachowywany
na stosie usunięć.
.TP 
\fBkill\-whole\-line\fP
Usuwa wszystkie znaki bieżącego wiersza, bez względu na położenie punktu.
.TP 
\fBkill\-word (M\-d)\fP
Usuwa od punktu do końca bieżącego słowa, lub jeśli użyte pomiędzy słowami,
do końca następnego słowa. Granice słów są takie same, jak używane przez
\fBforward\-word\fP.
.TP 
\fBbackward\-kill\-word (M\-Rubout)\fP
Usuwa słowo sprzed punktu. Granice słów są takie same, jak używane przez
\fBbackward\-word\fP.
.TP 
\fBshell\-kill\-word (M\-d)\fP
Usuwa od kursora do końca bieżącego słowa lub, jeśli kursor znajduje się
pomiędzy słowami, do końca następnego słowa. Granice słów są takie same, jak
używane przez \fBshell\-forward\-word\fP.
.TP 
\fBshell\-backward\-kill\-word (M\-Rubout)\fP
Usuwa słowo sprzed punktu. Granice słów są takie same, jak używane przez
\fBshell\-backward\-word\fP.
.TP 
\fBunix\-word\-rubout (C\-w)\fP
Usuwa słowo sprzed punktu, jako separatora słów używając białych znaków.
Usunięty tekst zachowywany jest na stosie usunięć.
.TP 
\fBunix\-filename\-rubout\fP
Usuwa słowo sprzed punktu, jako separatora słów używając białych znaków i
ukośnika.Usunięty tekst zachowywany jest na stosie usunięć.
.TP 
\fBdelete\-horizontal\-space (M\-\e)\fP
Usuwa wszystkie spacje i tabulatory wokół punktu.
.TP 
\fBkill\-region\fP
Usuwa tekst w bieżącym obszarze.
.TP 
\fBcopy\-region\-as\-kill\fP
Kopiuje tekst obszaru do bufora usuwania.
.TP 
\fBcopy\-backward\-word\fP
Kopiuje słowo sprzed punktu do bufora usuwania.  Granice słów są takie same,
jak dla \fBbackward\-word\fP.
.TP 
\fBcopy\-forward\-word\fP
Kopiuje słowo występujące po punkcie do bufora usuwania.  Granice słów są
takie same, jak dla \fBforward\-word\fP.
.TP 
\fByank (C\-y)\fP
Wkleja wierzchołek stosu usunięć do bufora w punkcie (w miejscu kursora).
.TP 
\fByank\-pop (M\-y)\fP
Obraca stos usunięć i wkleja nowy wierzchołek. Działa tylko następując po
\fByank\fP lub \fByank\-pop\fP.
.PD
.SS "Argumenty numeryczne"
.PP
.PD 0
.TP 
\fBdigit\-argument (M\-0, M\-1, ..., M\-\-)\fP
Dodaje tę cyfrę do już składanego argumentu lub rozpoczyna nowy argument.
M\-\- rozpoczyna argument ujemny.
.TP 
\fBuniversal\-argument\fP
Jest to inna metoda podawania argumentu.  Jeżeli po tym poleceniu występuje
jedna lub więcej cyfr, z opcjonalnym początkowym znakiem minus, to cyfry te
definiują argument.  Jeżeli po poleceniu występują cyfry, to powtórne
wykonanie \fBuniversal\-argument\fP kończy argument numeryczny, ale w przeciwnym
wypadku jest ignorowane.  W przypadku specjalnym, jeżeli bezpośrednio po tym
poleceniu występuje znak nie będący ani cyfrą ani znakiem minus, to argument
licznik dla następnego polecenia mnożony jest przez cztery.  Argument
licznik [zwykle powtórzeń] wynosi początkowo cztery, toteż wykonanie tej
funkcji po raz pierwszy nadaje mu wartość cztery, po raz drugi szesnaście, i
tak dalej.
.PD
.SS Uzupełnianie
.PP
.PD 0
.TP 
\fBcomplete (TAB)\fP
Usiłuje przeprowadzić uzupełnianie tekstu przed punktem.  \fBBash\fP próbuje
uzupełniania traktując tekst kolejno: jako zmienną (jeżeli tekst zaczyna się
od \fB$\fP), nazwę użytkownika (jeśli tekst zaczyna się od \fB~\fP), nazwę hosta
(jeśli tekst zaczyna się od \fB@\fP) lub polecenie (łącznie z aliasami i
funkcjami). Jeżeli żadne z powyższych nie daje dopasowania, to próbowane
jest uzupełnianie nazw plików.
.TP 
\fBpossible\-completions (M\-?)\fP
Pokazuje możliwe uzupełnienia tekstu przed punktem.
.TP 
\fBinsert\-completions (M\-*)\fP
Wstawia przed punktem wszystkie uzupełnienia tekstu, które zostałyby
wygenerowane przez \fBpossible\-completions\fP.
.TP 
\fBmenu\-complete\fP
Podobne do \fBcomplete\fP, ale zastępuje słowo, jakie ma zostać uzupełnione
pojedynczym uzupełnieniem z listy możliwych.  Powtarzane wykonanie
\fBmenu\-complete\fP powoduje krokowe przechodzenie przez listę możliwych
uzupełnień i wstawianie każdego z nich po kolei (zamiast uzupełnianego
słowa).  Na końcu listy uzupełnień emitowany jest sygnał dźwiękowy (zależny
od ustawienia \fBbell\-style\fP) i przywracany jest pierwotny tekst.  Argument
\fIn\fP przesuwa \fIn\fP pozycji w przód na liście dopasowań; do przesuwania się
wstecz można użyć argumentu ujemnego. Polecenie w zamierzeniu ma być
przypisane do klawisza \fBTAB\fP, ale domyślnie nie jest przypisane.
.TP 
\fBmenu\-complete\-backward\fP
Podobne do \fBmenu\-complete\fP, ale przemieszcza się wstecz po liście możliwych
uzupełnień, identycznie gdyby \fBmenu\-complete\fP podano ujemny argument. To
polecenie jest domyślnie nieprzypisane.
.TP 
\fBdelete\-char\-or\-list\fP
Usuwa znak pod kursorem, jeśli nie jest to początek bądź koniec wiersza (jak
\fBdelete\-char\fP). Na końcu wiersza, zachowuje się identycznie jak
\fBpossible\-completions\fP. To polecenie jest domyślnie nieprzypisane.
.TP 
\fBcomplete\-filename (M\-/)\fP
Usiłuje wykonać uzupełnianie nazw plików na tekście sprzed kursora.
.TP 
\fBpossible\-filename\-completions (C\-x /)\fP
Pokazuje możliwe uzupełnienia tekstu sprzed kursora, traktując go jak nazwę
pliku.
.TP 
\fBcomplete\-username (M\-~)\fP
Usiłuje wykonać uzupełnianie tekstu sprzed kursora, traktując go jak nazwę
użytkownika.
.TP 
\fBpossible\-username\-completions (C\-x ~)\fP
Pokazuje możliwe uzupełnienia tekstu sprzed kursora, traktując go jak nazwę
użytkownika.
.TP 
\fBcomplete\-variable (M\-$)\fP
Usiłuje wykonać uzupełnianie tekstu sprzed kursora, traktując go jak zmienną
powłoki.
.TP 
\fBpossible\-variable\-completions (C\-x $)\fP
Pokazuje możliwe uzupełnienia tekstu sprzed kursora, traktując go jak
zmienną powłoki.
.TP 
\fBcomplete\-hostname (M\-@)\fP
Usiłuje wykonać uzupełnianie tekstu sprzed kursora, traktując go jak nazwę
hosta.
.TP 
\fBpossible\-hostname\-completions (C\-x @)\fP
Pokazuje możliwe uzupełnienia tekstu sprzed kursora, traktując go jak nazwę
hosta.
.TP 
\fBcomplete\-command (M\-!)\fP
Usiłuje uzupełnić tekst sprzed punktu, traktując go jak nazwę polecenia.
Uzupełnianie polecenia próbuje dopasować tekst kolejno do aliasów, słów
zastrzeżonych, funkcji powłoki, poleceń wbudowanych powłoki i wreszcie nazw
plików wykonywalnych.
.TP 
\fBpossible\-command\-completions (C\-x !)\fP
Pokazuje możliwe uzupełnienia tekstu sprzed kursora, traktując go jak nazwę
polecenia.
.TP 
\fBdynamic\-complete\-history (M\-TAB)\fP
Usiłuje uzupełnić tekst sprzed kursora, w celu odnalezienia możliwych
uzupełnień porównując go z wierszami listy historii.
.TP 
\fBdabbrev\-expand\fP
Usiłuje wykonać uzupełnienie menu na tekście sprzed kursora, w celu
odnalezienia możliwych uzupełnień porównując go z wierszami listy historii.
.TP 
\fBcomplete\-into\-braces (M\-{)\fP
Wykonuje uzupełnianie nazwy pliku i wstawia listę możliwych uzupełnień ujętą
w nawiasy klamrowe, tak że jest ona dostępna dla powłoki (zobacz powyżej
\fBInterpretacja nawiasów\fP).
.PD
.SS "Makra klawiaturowe"
.PP
.PD 0
.TP 
\fBstart\-kbd\-macro (C\-x (\^)\fP
Rozpoczyna zachowywanie wpisywanych znaków w bieżącym makrze klawiaturowym.
.TP 
\fBend\-kbd\-macro (C\-x )\^)\fP
Zatrzymuje zachowywanie wpisywanych znaków w bieżącym makrze klawiaturowym i
przechowuje definicję.
.TP 
\fBcall\-last\-kbd\-macro (C\-x e)\fP
Ponownie wykonuje zdefiniowane makro klawiaturowe, powodując pojawianie się
znaków makra tak, jakby zostały wpisane z klawiatury.
.TP 
\fBprint\-last\-kbd\-macro ()\fP
Wypisuje ostatnie makro klawiaturowe, w formacie przeznaczonym do pliku
\fIinputrc\fP.
.PD
.SS Różne
.PP
.PD 0
.TP 
\fBre\-read\-init\-file (C\-x C\-r)\fP
Odczytuje zawartość pliku \fIinputrc\fP i dołącza wszystkie znalezione tam
przypisania klawiszy i zmiennych.
.TP 
\fBabort (C\-g)\fP
Zaniechuje bieżącego polecenia edycji i emituje sygnał dźwiękowy terminala
(zgodnie z ustawieniami \fBbell\-style\fP).
.TP 
\fBdo\-uppercase\-version (M\-a, M\-b, M\-\fP\fIx\fP\fB, ...)\fP
Jeżeli poprzedzony przedrostkiem meta znak \fIx\fP jest małą literą, uruchamia
plecenie, które jest przypisane do odpowiedniej wielkiej litery.
.TP 
\fBprefix\-meta (ESC)\fP
Poprzedza przedrostkiem meta następny wpisany znak.
.SM
\fBESC\fP \fBf\fP jest
równoważne \fBMeta\-f\fP.
.TP 
\fBundo (C\-_, C\-x C\-u)\fP
Krokowe cofnięcie operacji, pamiętane odrębnie dla każdego wiersza.
.TP 
\fBrevert\-line (M\-r)\fP
Cofa wszystkie zmiany wykonane na tym wierszu. Podobne do wykonania
polecenia \fBundo\fP wystarczająco wiele razy, by przywrócić wiersz do stanu
początkowego.
.TP 
\fBtilde\-expand (M\-&)\fP
Wykonuje interpretację tyldy w odniesieniu do bieżącego słowa.
.TP 
\fBset\-mark (C\-@, M\-<spacja>)\fP
stawia znacznik (mark) w bieżącym punkcie. Jeżeli podano argument
numeryczny, znacznik jest ustawiany na takiej pozycji.
.TP 
\fBexchange\-point\-and\-mark (C\-x C\-x)\fP
Zamień punkt ze znacznikiem. Aktualna pozycja kursora ustawiana jest na
zapamiętaną, a dotychczasowa pozycja zachowywana jako znacznik.
.TP 
\fBcharacter\-search (C\-])\fP
Odczytywany jest znak a punkt przesuwa się na następne wystąpienie tego
znaku. Licznik ujemny wyszukuje poprzednie wystąpienia.
.TP 
\fBcharacter\-search\-backward (M\-C\-])\fP
Odczytywany jest znak a punkt przesuwa się na poprzednie wystąpienie tego
znaku. Licznik ujemny wyszukuje kolejne wystąpienia.
.TP 
\fBskip\-csi\-sequence\fP
Odczytuje wystarczająco wiele znaków, aby pobrać sekwencje wielu klawiszy,
np. zdefiniowaną przez klawisze takie jak Home i End. Takie sekwencje
zaczynają się znacznikiem sekwencji kontrolnej (Control Sequence Indicator \-
CSI), z reguły ESC\-[. Jeśli taka sekwencja jest przypisana do "\e[", to
klawisze wchodzące w skład tej sekwencji nie będą działać (chyba że zostały
jawnie przypisane do polecenia readline) zamiast wstawiać niepowiązane znaki
do bufora edycyjnego. Domyślnie, to polecenie jest nieprzypisane, ale
przypisanie powinno przeważnie odnosić się do ESC\-[.
.TP 
\fBinsert\-comment (M\-#)\fP
Bez argumentu numerycznego, na początek bieżącego wiersza wstawiana jest
wartość zmiennej \fBcomment\-begin\fP readline. Jeśli podano numeryczny
argument, to polecenia działa jak przełącznik: jeśli znaki na początku
wiersza nie pasują do wartości \fBcomment\-begin\fP, to wartość jest wstawiana,
w przeciwnym wypadku znaki w \fBcomment\-begin\fP są usuwane z początku każdego
wiersza. W każdym przypadku wiersz jest akceptowany tak, jakby wprowadzono
znak nowej linii.  Domyślna wartość \fBcomment\-begin\fP powoduje, że polecenie
to czyni bieżący wiersz komentarzem powłoki. Jeśli numeryczny argument
powoduje usunięcie znaku komentarza, to dany wiersze będzie wykonany przez
powłokę.
.TP 
\fBglob\-complete\-word (M\-g)\fP
Słowo sprzed kursora jest traktowane jako wzorzec rozwijania nazw plików,
bez jawnego dodania gwiazdki (asterysku). Ten wzorzec może zostać użyty do
wygenerowania listy pasujących nazw plików do możliwych uzupełnień.
.TP 
\fBglob\-expand\-word (C\-x *)\fP
Słowo sprzed kursora traktowane jest jak wzorzec rozwijania nazw plików i
wstawiana jest lista pasujących nazw, zastępując słowo\-wzorzec. Jeśli podano
numeryczny argument, to przed rozwijaniem nazw plików dodawana jest gwiazdka
(asterysk).
.TP 
\fBglob\-list\-expansions (C\-x g)\fP
Wyświetlana jest lista rozwinięć, jakie zostałyby utworzone przez
\fBglob\-expand\-word,\fP a wiersz jest ponownie wyświetlany. Jeśli podano
numeryczny argument, to przed rozwijaniem nazw plików dodawana jest gwiazdka
(asterysk).
.TP 
\fBdump\-functions\fP
Wypisuje do strumienia wyjściowego readline wszystkie funkcje i ich
przypisania klawiszy. Jeżeli podano argument numeryczny, wyjście jest
formatowane w taki sposób, by można zrobić je częścią pliku \fIinputrc\fP.
.TP 
\fBdump\-variables\fP
Wypisuje do strumienia wyjściowego readline wszystkie ustawialne zmienne
readline i ich wartości. Jeżeli podano argument numeryczny, wyjście jest
formatowane w taki sposób, by można zrobić je częścią pliku \fIinputrc\fP.
.TP 
\fBdump\-macros\fP
Wypisuje wszystkie sekwencje klawiszy readline przypisane do makr i łańcuchy
jakie dają w wyniku.  Jeżeli podano argument numeryczny, wyjście jest
formatowane w taki sposób, by można zrobić je częścią pliku \fIinputrc\fP.
.TP 
\fBdisplay\-shell\-version (C\-x C\-v)\fP
Wyświetla informację o wersji aktualnego egzemplarza \fBbash\fP.
.PD
.SS "Programowalne uzupełnianie"
.PP
Gdy następuje próba uzupełnienia słowa dla argumentu polecenia, dla którego
zdefiniowano specyfikację uzupełniania (completion specification,
\fIcompspec\fP) przy pomocy wbudowanego polecenia \fBcomplete\fP (zobacz
.SM
\fBWBUDOWANE POLECENIA POWŁOKI\fP poniżej), wywoływane są usługi
programowalnego uzupełniania.
.PP
Po pierwsze, identyfikowana jest nazwa polecenia. Jeśli słowo polecenia jest
łańcuchem pustym (próba uzupełniania następuje na początku pustego wiersza),
używany jest każdy compspec zdefiniowany opcją \fB\-E\fP do \fBcomplete\fP. Jeżeli
dla tego polecenia zdefiniowano compspec, to compspec jest używane do
utworzenia listy możliwych uzupełnień słowa.  Jeżeli słowo polecenia jest
pełną nazwą ścieżkową, to najpierw szukane jest compspec dla pełnej nazwy.
Jeśli nie zostanie odnalezione, to następuje próba znalezienia compspec dla
części występującej po ostatnim ukośniku. Jeśli powyższe wyszukiwania nie
dają wyniku w compspec, to jako domyślne używane są compspec zdefiniowane
opcją \fB\-D\fP do \fBcomplete\fP.
.PP
Po odnalezieniu compspec, jest ono używane do utworzenia listy pasujących
słów.  Jeżeli compspec nie zostało znalezione, to wykonywane jest domyślne
uzupełnianie \fBbash\fPa, jak opisano powyżej w \fBUzupełnianie\fP.
.PP
Na początek, używane są akcje określone przez compspec. Zwracane są
wyłącznie dopasowania poprzedzone dopasowywanym słowem.  Gdy do uzupełniania
nazw plików lub katalogów użyto opcji \fB\-f\fP lub \fB\-d\fP, do filtrowania
dopasowań wykorzystywana jest zmienna powłoki
.SM
\fBFIGNORE\fP.
.PP
W następnej kolejności tworzone są ewentualne uzupełnienia określone przez
wzorzec rozwinięcia nazw plików opcji \fB\-G\fP.  Słowa tworzone przez wzorzec
nie muszą pasować do uzupełnianego słowa.  Zmienna powłoki
.SM
\fBGLOBIGNORE\fP nie jest używana do filtrowania dopasowań, ale zmienna
.SM
\fBFIGNORE\fP jest używana.
.PP
Następnie, brany jest pod uwagę łańcuch podany jako argument opcji \fB\-W\fP.
Łańcuch jest najpierw rozbijany przy zastosowaniu znaków ze zmiennej
specjalnej
.SM
\fBIFS\fP jako separatorów.  Honorowane jest cytowanie
powłoki.  Później każde ze słów interpretowane jest z wykorzystaniem
interpretacji nawiasów, interpretacji tyld, podstawiania parametrów,
interpretacji zmiennych i wyrażeń arytmetycznych i podstawiania wyników
poleceń, jak opisano powyżej w sekcji
.SM
\fBINTERPRETACJA\fP.  Wyniki są
rozbijane z zastosowaniem reguł opisanych powyżej w sekcji \fBPodział na
słowa\fP.  Wyniki interpretacji są dopasowywane przedrostkiem z uzupełnianym
słowem, a pasujące słowa stają się możliwymi uzupełnieniami.
.PP
Po utworzeniu tych dopasowań, wywoływana jest funkcja lub polecenie
określone opcjami \fB\-F\fP i \fB\-C\fP.  Podczas wywoływania polecenia czy funkcji,
zmiennym
.SM
\fBCOMP_LINE\fP,
.SM
\fBCOMP_POINT\fP,
.SM
\fBCOMP_KEY\fP i
.SM
\fBCOMP_TYPE\fP przypisywane są wartości, jak opisano to powyżej w
sekcji \fBZmienne powłoki\fP.  Jeżeli wywoływana jest funkcja powłoki,
ustawiane są również zmienne
.SM
\fBCOMP_WORDS\fP i
.SM
\fBCOMP_CWORD\fP.
Kiedy wywoływana jest funkcja czy polecenie, pierwszym argumentem (\fB$1\fP)
staje się nazwa polecenia, którego argumenty są uzupełniane, drugim
argumentem (\fB$2\fP) \-\- uzupełniane słowo, a trzecim słowem (\fB$3\fP)
poprzedzające w wierszu poleceń słowo aktualnie uzupełniane.  Nie jest
wykonywane żadne filtrowanie utworzonych uzupełnień stosownie do
uzupełnianego słowa. Funkcja czy polecenie mają pełną swobodę tworzenia
dopasowań.
.PP
W pierwszej kolejności wywoływana jest funkcja określona przez \fB\-F\fP.  Do
tworzenia dopasowań może ona korzystać z dowolnych możliwości powłoki,
łącznie z opisanym poniżej poleceniem wbudowanym \fBcompgen\fP. Funkcja musi
umieścić możliwe uzupełnienia w zmiennej tablicowej
.SM
\fBCOMPREPLY\fP,
jedno na element tablicy.
.PP
Następnie, wywoływane jest polecenie określone opcją \fB\-C\fP, działające w
środowisku równoważnym podstawianiu poleceń.  Powinno ono wypisać listę
uzupełnień, po jednym w wierszu, na standardowe wyjście.  Jeżeli jest to
niezbędne, do utworzenia znaku nowej linii można użyć odwróconego ukośnika.
.PP
Po utworzeniu wszelkich możliwych uzupełnień, do listy tej stosowany jest
filtr określony opcją \fB\-X\fP.  Filtr jest takim wzorcem, jak używany przy
rozwijaniu nazw ścieżkowych.  Znak \fB&\fP we wzorcu zastępowany jest tekstem
uzupełnianego słowa.  Literał \fB&\fP można otrzymać poprzedzając go odwrotnym
ukośnikiem; odwrotny ukośnik zostanie usunięty przed próbą dopasowania.
Wszystkie uzupełnienia pasujące do wzorca będą usunięte z listy.  Początkowy
\fB!\fP daje zaprzeczenie wzorca. Będą wówczas usuwane uzupełnienia nie
pasujące do wzorca.
.PP
Na koniec, do każdego elementu listy dodawane są przedrostek i przyrostek
określone opcjami \fB\-P\fP i \fB\-S\fP, a wynik zwracany jest do kodu uzupełniania
readline jako lista możliwych uzupełnień.
.PP
Jeśli poprzednio zastosowane działania nie utworzyły żadnych dopasowań, zaś
przy definiowaniu compspec podano opcję \fB\-o dirnames\fP polecenia
\fBcomplete\fP, to dokonywana jest próba uzupełnienia nazwy katalogu.
.PP
Jeśli do \fBcomplete\fP podano opcję \fB\-o plusdir\fP gdy istnieje zdefiniowane
compspec, to próba dopasowania nazw katalogów jest przeprowadzana, a
ewentualne dopasowania są dodawane do wyników innych akcji.
.PP
Domyślnie, jeżeli znaleziono compspec, to cokolwiek ono utworzy zwracane
jest do kodu uzupełniającego jako pełny zestaw możliwych uzupełnień.  Nie są
próbowane domyślne uzupełnienia \fBbash\fP, a domyślne uzupełnianie nazw
ścieżkowych przez readline jest wyłączone. Jeśli przy definiowaniu compspec
podano opcję \fB\-o bashdefault\fP, to jeżeli compspec nie utworzy żadnych
uzupełnień, wykonane zostanie domyślne uzupełnienia \fBbash\fP. Jeśli przy
definiowaniu compspec podano opcję \fB\-o default\fP polecenia \fBcomplete\fP, to
jeżeli compspec nie utworzy żadnych uzupełnień, wykonane zostanie domyślne
uzupełnianie z readline (i, jeśli próbowano domyślnych uzupełnień \fBbash\fP,
także one).
.PP
Gdy compspec informuje o żądaniu uzupełnienia nazwy katalogu, funkcje
programowalnego uzupełnienia wymuszają na readline dodanie ukośnika, do
uzupełnianych nazw będących dowiązaniami symbolicznymi do katalogów, które
są przedmiotem wartości zmiennej \fBmark\-direstories\fP readline, niezależnie
od ustawienia zmiennej \fBmark\-symlinked\-directories\fP readline.
.PP
Istnieje pewna obsługa uzupełnień modyfikowanych dynamicznie. Jest to
szczególnie użyteczne w kombinacji z domyślnym uzupełnianiem z opcją
\fBcomplete \-D\fP. W przypadku funkcji powłoki, wykonywanych jako
odpowiedzialne za uzupełnianie, możliwe jest poinformowanie że uzupełnienie
powinno być ponowione za pomocą kodu zakończenia równego 124. Jeśli funkcja
powłoki zwróci 124 i zmieni powiązany compspec poleceniem, którego próbę
uzupełnienia podjęto (podanego jako pierwszy argument gdy funkcja jest
wykonywana), programowalne uzupełnianie rozpoczyna od początku, próbując
znaleźć nowy compspec dla polecenia. Pozwala na ustawianie uzupełnień
budowanych dynamicznie po wykonanej próbie uzupełnienia, zamiast ładowania
ich wszystkich naraz.
.PP
Przykładowo, przyjmując że istnieje biblioteka składająca się z compspec,
każda przechowywana w pliku odpowiadającym nazwie polecenia, to następująca
domyślna funkcja uzupełnienia załaduje uzupełnienia dynamicznie:
.PP
\f(CW_completion_loader()\fP
.br
\f(CW{\fP
.br
\f(CW	. "/etc/bash_completion.d/$1.sh" >/dev/null 2>&1 && return 124\fP
.br
\f(CW}\fP
.br
\f(CWcomplete \-D \-F _completion_loader \-o bashdefault \-o default\fP
.br
\fP
.SH HISTORIA
Jeżeli włączona jest opcja \fB\-o history\fP wbudowanego polecenia \fBset\fP, to
powłoka zapewnia dostęp do \fIhistorii poleceń\fP, listy poleceń poprzednio
wprowadzonych.  Wartość zmiennej \fBHISTSIZE\fP wykorzystywana jest jako liczba
poleceń do zachowania na liście historii.  Zachowywany jest tekst ostatnich
.SM
\fBHISTSIZE\fP poleceń (domyślnie 500). Powłoka przechowuje każde
polecenie na liście przed podstawieniem wartości parametrów i zmiennych
(zobacz powyżej
.SM
\fBINTERPRETACJA\fP), ale przed wykonaniem interpretacji
historii, w zależności od wartości zmiennych powłoki
.SM
\fBHISTIGNORE\fP i
.SM
\fBHISTCONTROL\fP.
.PP
Przy uruchamianiu, historia inicjowana jest z pliku o nazwie wskazanej
zmienną
.SM
\fBHISTFILE\fP (domyślnie \fI~/.bash_history\fP). Plik o nazwie
wziętej z wartości
.SM
\fBHISTFILE\fP jest obcinany, jeśli zachodzi
potrzeba, by zawierał nie więcej wierszy niż określono to wartością zmiennej
.SM
\fBHISTFILESIZE\fP. Jeśli \fBHISTFILESIZE\fP jest nieustawione lub
ustawione na zero, wartość nienumeryczną lub wartość numeryczną mniejszą od
zera, plik historii nie jest obcinany. Gdy plik historii jest odczytywany,
wiersze zaczynające się od znaku komentarza historii, po którym występuje
bezpośrednio cyfra, są interpretowane jako czasy poprzedzającego
wcześniejszego historii. Czasy te mogą być opcjonalnie wyświetlane, w
zależności od wartości zmiennej
.SM
\fBHISTTIMEFORMAT\fP. Podczas kończenia
pracy powłoki z włączoną historią, ostatnie
.SM
\fB$HISTSIZE\fP wierszy
kopiowane jest z listy historii do
.SM
\fB$HISTFILE\fP.  Jeżeli włączona
jest opcja powłoki \fBhistappend\fP (zobacz opis \fBshopt\fP w sekcji
.SM
\fBWBUDOWANE\fP \fBPOLECENIA\fP \fBPOWŁOKI\fP poniżej), to wiersze są dodawane na
koniec pliku historii, w przeciwnym razie plik historii jest nadpisywany.
Jeżeli
.SM
\fBHISTFILE\fP nie jest ustawione lub plik historii nie daje się
zapisać, to historia nie jest zachowywana. Jeśli zmienna
.SM
\fBHISTTIMEFORMAT\fP jest ustawiona, to pieczątki czasowe oznaczone znakiem
komentarza historii są zapisywane do pliku historii, tak więc mogą być one
zachowywane pomiędzy sesjami powłoki. Znak historii komentarza jest
wykorzystywany w celu odróżnienia pieczątek czasowych od innych wierszy
historii. Po zapisaniu, plik historii jest obcinany, by nie zawierał więcej
niż
.SM
\fBHISTFILESIZE\fP wierszy. Jeśli
.SM
\fBHISTFILESIZE\fP nie jest
ustawione albo jest ustawione na null, wartość nienumeryczną lub wartość
numeryczną mniejszą od zera, to plik historii nie jest obcinany.
.PP
Do edycji lub ponownego wykonania części listy historii można korzystać z
wbudowanego polecenia \fBfc\fP (zobacz
.SM
\fBWBUDOWANE POLECENIA POWŁOKI\fP
poniżej).  Wbudowanego polecenia \fBhistory\fP można używać do wyświetlania lub
zmiany listy historii i manipulacji plikiem historii.  Podczas posługiwania
się edycją wiersza poleceń, w każdym z trybów edycji umożliwiających dostęp
do listy historii, dostępne są polecenia przeszukiwania.
.PP
Powłoka umożliwia kontrolę nad tym, jakie polecenia są zachowywane na
liście.  Można ustawić zmienne
.SM
\fBHISTCONTROL\fP i
.SM
\fBHISTIGNORE\fP,
co spowoduje, że powłoka będzie zachowywać tylko podzbiór wprowadzonych
poleceń.  Opcja powłoki \fBcmdhist\fP, jeżeli jest włączona, powoduje, że
powłoka będzie usiłować zachować każdy wiersz polecenia wielowierszowego w
tej samej pozycji historii, dodając, gdzie jest to niezbędne, średniki, by
zachować poprawność składni.  Opcja powłoki \fBlithist\fP powoduje, że powłoka
będzie zachowywać polecenia z osadzonymi znakami nowej linii zamiast
średników. Zobacz opis wbudowanego \fBshopt\fP poniżej, w sekcji
.SM
\fBWBUDOWANE POLECENIA POWŁOKI\fP, gdzie znajdziesz informacje o ustawianiu i
kasowaniu opcji powłoki.
.SH "INTERPRETACJA HISTORII"
.PP
Powłoka obsługuje funkcję interpretacji historii, podobną do interpretacji
historii w \fBcsh\fP.  Ta sekcja opisuje dostępne możliwości składni. Funkcja
ta jest domyślnie włączona dla powłok interaktywnych i może być wyłączona
przy pomocy opcji \fB+H\fP wbudowanego polecenia \fBset\fP (zobacz poniżej
.SM
\fBWBUDOWANE POLECENIA POWŁOKI\fP).  Powłoki nie\-interaktywne domyślnie nie
wykonują interpretacji historii.
.PP
Interpretacja historii wprowadza słowa z listy historii do strumienia
wejściowego, ułatwiając powtarzanie poleceń lub poprawianie szybkie błędów w
poprzednich poleceniach.
.PP
Interpretacja historii przeprowadzana jest bezpośrednio po przeczytaniu
pełnego wiersza, przed jego podziałem na słowa przez powłokę.  Odbywa się w
dwu częściach.  Pierwszą jest określenie, który wiersz z listy historii ma
zostać użyty podczas podstawiania.  Drugą stanowi wybór części tego wiersza
do włączenia w bieżący.  Wybrany z historii wiersz jest \fIzdarzeniem\fP
(event), a jego części na których wykonywane są działania są \fIsłowami\fP.
Dostępne są różne \fImodyfikatory\fP do manipulowania wybranymi słowami.
Wiersz rozbijany jest na słowa w ten sam sposób jak podczas odczytu wejścia,
tak że kilka słów separowanych \fImetaznakami\fP ujętych w cudzysłowy
traktowanych jest jak jedno słowo.  Interpretacja historii wprowadzana są
obecnością znaku rozwijającego historię, którym domyślnie jest \^\fB!\fP\^.
Cytować ten znak mogą wyłącznie odwrotny ukośnik (\^\fB\e\fP\^)  i pojedyncze
cudzysłowy.
.PP
Następujące znaki powstrzymują interpretację historii jeśli zostaną
znalezione bezpośrednio za znakiem interpretacji historii, nawet jeśli jest
niecytowany: spacja, tabulacja, znak nowego wiersza, znak powrotu karetki i
\fB=\fP. Jeśli włączono opcję powłoki \fBextglob\fP, to \fB(\fP również zapobiegnie
interpretacji.
.PP
Kilka opcji powłoki ustawianych przy pomocy \fBshopt\fP może służyć do
śledzenia działania interpretacji historii.  Jeżeli opcja \fBhistverify\fP
powłoki jest włączona (zobacz opis wbudowanego \fBshopt\fP)  i używane jest
\fBreadline\fP, to podstawienia historii nie są natychmiast przesyłane do
analizatora składni (parsera) powłoki.  Zamiast tego, zinterpretowany wiersz
jest ponownie ładowany do bufora edycyjnego \fBreadline\fP w celu dalszej
modyfikacji.  Jeżeli wykorzystywane jest \fBreadline\fP i włączona jest opcja
\fBhistreedit\fP, to zakończone niepowodzeniem podstawienie historii zostanie
ponownie załadowane do bufora edycyjnego \fBreadline\fP w celu poprawienia.
Opcją \fB\-p\fP wbudowanego polecenia \fBhistory\fP można posłużyć się do
oglądnięcia, co zrobi interpretacja historii przed jej zastosowaniem.  Opcji
\fB\-s\fP wbudowanego polecenia \fBhistory\fP można użyć w celu dodania poleceń na
koniec listy historii bez faktycznego ich wykonania, tak że będą dostępne
dla następnych przywołań.
.PP
Powłoka pozwala na kontrolowanie różnych znaków stosowanych przez mechanizm
interpretacji historii (zobacz opis \fBhistchars\fP powyżej, w sekcji \fBZmienne
powłoki\fP). Do oznaczania pieczątek czasowych, powłoka używa znaku komentarza
historii podczas zapisywania pliku historii.
.SS "Desygnatory zdarzeń (Event Designators)"
.PP
Desygnator zdarzenia jest odwołaniem do pozycji wiersza poleceń na liście
historii. O ile odwołanie nie jest absolutne, zdarzenia są relatywne w
stosunku do bieżącej pozycji w liście historii.
.PP
.PD 0
.TP 
\fB!\fP
Rozpoczyna podstawianie historii, z wyjątkiem sytuacji, gdy występuje po nim
odstęp, znak nowej linii, = lub ( (gdy włączono opcję powłoki \fBextglob\fP
używając wbudowanego \fBshopt\fP).
.TP 
\fB!\fP\fIn\fP
Wskazuje na \fIn\fP\-ty wiersz poleceń.
.TP 
\fB!\-\fP\fIn\fP
Wskazuje na wiersz poleceń bieżący minus \fIn\fP.
.TP 
\fB!!\fP
Wskazuje na poprzednie polecenie. jest to synonim `!\-1'.
.TP 
\fB!\fP\fIłańcuch\fP
Wskazuje na ostatnie poleceniem rozpoczynające się od \fIłańcucha\fP.
.TP 
\fB!?\fP\fIłańcuch\fP\fB[?]\fP
Wskazuje na ostatnie polecenie poprzedzające bieżącą pozycję w liście
historii, zawierające \fIłańcuch\fP.  Kończące \fB?\fP można pominąć jeśli
bezpośrednio po \fIłańcuchu\fP występuje znak nowej linii.
.TP 
\fB\d\s+2^\s-2\u\fP\fIłańcuch1\fP\fB\d\s+2^\s-2\u\fP\fIłańcuch2\fP\fB\d\s+2^\s-2\u\fP
Szybkie podstawianie. Powtarza ostatnie polecenie, wymieniając \fIłańcuch1\fP
na \fIłańcuch2\fP.  Równoważnik ,,!!:s/\fIłańcuch1\fP/\fIłańcuch\fP/\*(rq (zobacz
poniżej \fBModyfikatory\fP).
.TP 
\fB!#\fP
Cały wiersz poleceń wpisany do tego momentu.
.PD
.SS "Desygnatory słów (Word Designators)"
.PP
Desygnatory słów służą do wybierania ze zdarzenia żądanych słów.  Dwukropek
\fB:\fP oddziela określenie zdarzenia od desygnatora słowa. Może być pominięty
jeśli desygnator słowa rozpoczyna się od \fB^\fP, \fB$\fP, \fB*\fP, \fB\-\fP lub \fB%\fP.
Słowa numerowane są od początku wiersza, przy czym pierwsze ma numer 0
(zero).  Słowa są wstawiane do bieżącego wiersza, rozdzielane pojedynczymi
spacjami.
.PP
.PD 0
.TP 
\fB0 (zero)\fP
Słowo zerowe. Dla powłoki jest to słowo polecenia.
.TP 
\fIn\fP
\fIn\fP\-te słowo.
.TP 
\fB^\fP
Pierwszy argument. To znaczy, słowo 1.
.TP 
\fB$\fP
Ostatnie słowo. Jest to zwykle ostatni argument, ale jest interpretowany
jako zerowe słowo, gdy jest tylko jedno słowo w wierszu.
.TP 
\fB%\fP
Słowo dopasowane przez ostatnie wyszukanie `?\fIłańcuch\fP?'.
.TP 
\fIx\fP\fB\-\fP\fIy\fP
Zakres słów; `\-\fIy\fP' jest skróconym `0\-\fIy\fP'.
.TP 
\fB*\fP
Wszystkie słowa prócz zerowego. jest to synonim dla `\fI1\-$\fP'.  Nie jest
błędem użycie \fB*\fP jeśli w zdarzeniu jest tylko jedno słowo; w tym przypadku
zwracany jest łańcuch pusty.
.TP 
\fBx*\fP
Skrót od \fIx\-$\fP.
.TP 
\fBx\-\fP
Skrót od \fIx\-$\fP podobnie jak \fBx*\fP, ale pomija ostatnie słowo.
.PD
.PP
jeśli desygnator słowa podano bez określenia zdarzenia, za zdarzenie
przyjmowane jest poprzednie polecenie.
.SS Modyfikatory
.PP
Po opcjonalnym desygnatorze słowa może pojawić się sekwencja jednego lub
więcej poniższych modyfikatorów, każdy poprzedzony dwukropkiem `:'.
.PP
.PD 0
.PP
.TP 
\fBh\fP
Usuwa końcową składową nazwy pliku, pozostawiając tylko początek.
.TP 
\fBt\fP
Usuwa wszystkie początkowe składowe nazwy pliku, pozostawiając koniec.
.TP 
\fBr\fP
Usuwa kończący przyrostek postaci \fI.xxx\fP, pozostawiając główną część nazwy
(basename).
.TP 
\fBe\fP
Usuwa wszystko prócz końcowego przyrostka.
.TP 
\fBp\fP
Wypisuje nowe polecenie, ale go nie wykonuje.
.TP 
\fBq\fP
Cytuje podstawiane słowa, zabezpieczając je przed dalszym podstawianiem.
.TP 
\fBx\fP
Cytuje podstawiane słowa jak \fBq\fP, ale rozbija na słowa w miejscach
\fBodstępów\fP i znaków nowej linii.
.TP 
\fBs/\fP\fIstary\fP\fB/\fP\fInowy\fP\fB/\fP
Zastępuje \fInowym\fP pierwsze wystąpienie \fIstarego\fP w wierszu
zdarzenia. Zamiast / może zostać użyty dowolny ogranicznik.  Końcowy
ogranicznik jest opcjonalny jeżeli jest ostatnim znakiem wiersza
zdarzenia. Separator może być cytowany w \fInowym\fP i \fIstarym\fP przy pomocy
pojedynczego odwrotnego ukośnika. Jeżeli w \fInowym\fP pojawia się &, to jest
zastępowany \fIstarym\fP.  Pojedynczy odwrotny ukośnik będzie cytował &. Jeżeli
\fIstary\fP jest pusty, to ustawiany jest na ostatni podstawiany \fIstary\fP lub,
jeśli nie było poprzednich podstawień historii, ostatni \fIłańcuch\fP w
wyszukiwaniu \fB!?\fP\fIłańcuch\fP\fB[?]\fP.
.TP 
\fB&\fP
Powtarza poprzednie podstawienie.
.TP 
\fBg\fP
Powoduje, że zmiany zostaną zastosowane do całego wiersza zdarzenia.
Używany w połączeniu z `\fB:s\fP' (np. `\fB:gs/\fP\fIstary\fP\fB/\fP\fInowy\fP\fB/\fP')  lub
`\fB:&\fP'. Jeśli użyty z `\fB:s\fP', to zamiast / można posłużyć się dowolnym
separatorem, a ostatni separator jest opcjonalny jeżeli jest ostatnim
znakiem wiersza zdarzenia.
.TP 
\fBG\fP
Stosuje następujący po nim modyfikator "\fBs\fP" raz do każdego słowa w wierszu
zdarzenia.
.PD
.SH "WBUDOWANE POLECENIA POWŁOKI"
.\" start of bash_builtins
.zZ
.PP
Jeśli nie podano inaczej, każde z poleceń wbudowanych opisanych w niniejszej
sekcji jako akceptujące opcje poprzedzone \fB\-\fP akceptuje również symbol
\fB\-\-\fP określający koniec opcji. Wbudowane \fB:\fP, \fBtrue\fP, \fBfalse\fP i \fBtest\fP
nie akceptują opcji i nie traktują \fB\-\-\fP w sposób specjalny. Wbudowane
\fBexit\fP, \fBlogout\fP, \fBbreak\fP, \fBcontinue\fP, \fBlet\fP i \fBshift\fP akceptują i
przetwarzają argumenty zaczynające się od \fB\-\fP, bez wymogu podania
\fB\-\-\fP. Inne wbudowane polecenia, które akceptują argumenty, lecz nie są
opisane jako akceptujące opcje, interpretują argumenty zaczynające się od
\fB\-\fP jako opcje nieprawidłowe i wymagają \fB\-\-\fP, aby zapobiec takiej
interpretacji,
.sp .5
.PD 0
.TP 
\fB:\fP [\fIargumenty\fP]
.PD
Bez efektów; polecenie to nie robi niczego poza interpretacją \fIargumentów\fP
i wykonaniem ewentualnych podanych przekierowań. Zwracany jest zerowy kod
zakończenia.
.TP 
 \fB.\| \fP \fIplik\fP [\fIargumenty\fP]
.PD 0
.TP 
\fBsource\fP \fIplik\fP [\fIargumenty\fP]
.PD
Odczytuje i wykonuje polecenia z zadanego \fIpliku\fP w aktualnym środowisku
powłoki i zwraca kod zakończenia ostatniego wykonanego polecenia z tego
\fIpliku\fP.  Jeżeli nazwa \fIpliku\fP nie zawiera ukośnika, to do znalezienia
katalogu go zawierającego używana jest zmienna
.SM
\fBPATH\fP.  Plik
poszukiwany w
.SM
\fBPATH\fP nie musi być wykonywalny.  Jeśli \fBbash\fP nie
jest w \fItrybie posix\fP, wówczas jeżeli nie znaleziono pliku w
.SM
\fBPATH\fP, to przeszukiwany jest katalog bieżący.  Jeśli we wbudowanym
poleceniu \fBshopt\fP wyłączona jest opcja \fBsourcepath\fP, to
.SM
\fBPATH\fP nie
jest przeszukiwane.  jeśli podano jakieś \fIargumenty\fP, to stają się one
parametrami pozycyjnymi podczas wykonywania \fIpliku\fP. W przeciwnym razie
argumenty pozycyjne pozostają bez zmian.  Kod zakończenia jest kodem
ostatniego zakończonego przez skrypt polecenia (0 jeśli nie wykonano żadnego
polecenia), a fałszem jeżeli nie znaleziono \fIpliku\fP lub nie można go
odczytać.
.TP 
\fBalias\fP [\fB\-p\fP] [\fInazwa\fP[=\fIwartość\fP] ...]
\fBAlias\fP bez argumentów bądź z opcją \fB\-p\fP wypisuje na standardowym wyjściu
listę aliasów w postaci \fBalias\fP \fInazwa\fP=\fIwartość\fP.  Jeśli nie dostarczono
argumentów, to definiowany jest alias (synonim)  dla każdej \fInazwy\fP, dla
której podano \fIwartość\fP.  Początkowa spacja w \fIwartości\fP powoduje, że
podczas interpretacji aliasu następne słowo będzie sprawdzane na
podstawianie aliasów.  Dla każdej \fInazwy\fP z listy argumentów, dla której
nie podano \fIwartości\fP, wypisywana jest nazwa i wartość aliasu.  \fBAlias\fP
zwraca prawdę, chyba że podano \fInazwę\fP, dla której nie został zdefiniowany
żaden alias.
.TP 
\fBbg\fP [\fIspec_zad\fP]
Wznawia w tle zawieszone zadanie \fIspec_zad\fP, tak jakby zostało ono
uruchomione z \fB&\fP.  Jeśli \fIspec_zad\fP nie występuje, to używane jest
\fIbieżące zadanie\fP, określone tak, jak je pojmuje powłoka.  \fBbg\fP
\fIspec_zad\fP zwraca 0, chyba że uruchomiono je przy wyłączonej kontroli zadań
(job control) lub uruchomiono z włączoną kontrolą zadań, jeśli nie
znaleziono \fIspec_zad\fP lub uruchomiono bez kontroli zadań.
.TP 
\fBbind\fP [\fB\-m\fP \fImapa\-klawiszy\fP] [\fB\-lpsvPSVX\fP]
.PD 0
.TP 
\fBbind\fP [\fB\-m\fP \fImapa\-klawiszy\fP] [\fB\-q\fP \fIfunkcja\fP] [\fB\-u\fP \fIfunkcja\fP] [\fB\-r\fP \fIsekw_klaw\fP]
.TP 
\fBbind\fP [\fB\-m\fP \fImapa\-klawiszy\fP] \fB\-f\fP \fIplik\fP
.TP 
\fBbind\fP [\fB\-m\fP \fImapa\-klawiszy\fP] \fB\-x\fP \fIsekw_klaw\fP:\fIpolec_powłoki\fP
.TP 
\fBbind\fP [\fB\-m\fP \fImapa\-klawiszy\fP] \fIsekw_klaw\fP:\fInazwa_funkcji\fP
.TP 
\fBbind\fP \fIpolecenie\-readline\fP
.PD
Wyświetla bieżące ustawienia przypisań (bindings) klawiszy i funkcji
\fBreadline\fP lub przypisuje sekwencję klawiszy to funkcji lub makra
\fBreadline\fP.  Składnia tych przypisań jest identyczna jak dla \fI.inputrc\fP,
ale każde z przypisań musi być przesłane jako osobny argument; np.,
\&'"\eC\-x\eC\-r": re\-read\-init\-file'. Opcje, jeśli je podano, mają następujące
znaczenie:
.RS
.PD 0
.TP 
\fB\-m \fP\fImapa\-klawiszy\fP
Wykorzystuje \fImapę\-klawiszy\fP jako mapę klawiszy, do której mają być
zastosowane następne przypisania. Akceptowanymi nazwami \fImap\-klawiszy\fP są
\fIemacs\fP, \fIemacs\-standard\fP, \fIemacs\-meta\fP, \fIemacs\-ctlx\fP, \fIvi\fP,
\fIvi\-move\fP, \fIvi\-command\fP i \fIvi\-insert\fP.  \fIvi\fP równoważne jest
\fIvi\-command\fP; \fIemacs\fP jest równoważne \fIemacs\-standard\fP.
.TP 
\fB\-l\fP
Podaje nazwy wszystkich funkcji \fBreadline\fP.
.TP 
\fB\-p\fP
Wyświetla nazwy funkcji i przypisania w taki sposób, że mogą być ponownie
odczytane.
.TP 
\fB\-P\fP
Podaje bieżące przypisania i nazwy funkcji \fBreadline\fP.
.TP 
\fB\-s\fP
Wyświetla nazwy i wartości zmiennych \fBreadline\fP w taki sposób, że mogą być
ponownie odczytane.
.TP 
\fB\-S\fP
Wyświetla sekwencje klawiszy \fBreadline\fP przypisane do makr i łańcuchy jakie
one wysyłają.
.TP 
\fB\-v\fP
Wyświetla sekwencje klawiszy \fBreadline\fP przypisane do makr i łańcuchy jakie
one wysyłają w taki sposób, że mogą być ponownie odczytane.
.TP 
\fB\-V\fP
Podaje bieżące nazwy i wartości zmiennych \fBreadline\fP.
.TP 
\fB\-f \fP\fIplik\fP
Czyta przypisania klawiszy z \fIpliku\fP.
.TP 
\fB\-q \fP\fIfunkcja\fP
Podaje, które klawisze wywołują podaną \fIfunkcję\fP.
.TP 
\fB\-u \fP\fIfunkcja\fP
Odwołuje przypisania wszystkich klawiszy przypisanych do danej \fIfunkcji\fP.
.TP 
\fB\-r \fP\fIsekw_klaw\fP
Usuwa bieżące przypisania dla \fIsekwencji klawiszy\fP.
.TP 
\fB\-x \fP\fIsekw_klaw\fP\fB:\fP\fIpolec_powłoki\fP
Powoduje, że za każdym naciśnięciem \fIsekwencji klawiszy\fP zostanie wykonane
\fIpolecenie powłoki\fP. Gdy \fIpolecenie powłoki\fP jest wykonywane, powłoka
ustawia zmienną
.SM
\fBREADLINE_LINE\fP na zawartość bufora wiersza
\fBreadline\fP oraz zmienną \fBREADLINE_POINT\fP na bieżące położenie miejsca
wprowadzania znaków. Jeśli wykonywane polecenie zmienia wartość
.SM
\fBREADLINE_LINE\fP lub
.SM
\fBREADLINE_POINT\fP, to te nowe wartości zostaną
uwzględnione podczas edytowania.
.TP 
\fB\-X\fP
Wypisuje wszystkie sekwencje klawiszy przypisane do poleceń powłoki i
powiązane polecenia w formacie, który można użyć ponownie jako wejście.
.PD
.PP
Zwracana jest wartość 0, chyba że podano nierozpoznaną opcję lub pojawił się
błąd.
.RE
.TP 
\fBbreak\fP [\fIn\fP]
Opuszcza pętlę \fBfor\fP, \fBwhile\fP, \fBuntil\fP lub \fBselect\fP.  Jeżeli podano
\fIn\fP, przerywa działanie do \fIn\fP\-tego poziomu.  \fIn\fP musi być \(>=
1. Jeżeli \fIn\fP jest większe od liczby obejmujących polecenie pętli, to
kończone są wszystkie obejmujące pętle. Wartością zwracaną jest 0, chyba że
powłoka nie wykonuje pętli podczas wykonania \fBbreak\fP.
.TP 
\fBbuiltin\fP \fIwbudowane\fP [\fIargumenty\fP]
Wykonuje zadane polecenie wbudowane powłoki, przesyłając mu \fIargumenty\fP i
zwraca jego kod zakończenia.  Przydatne podczas definiowania funkcji o
nazwie tożsamej z nazwą wbudowanego polecenia powłoki, zachowując
funkcjonalność polecenia wbudowanego wewnątrz funkcji.  Wbudowane \fBcd\fP jest
powszechnie redefiniowane w ten sposób.  Kodem zakończenia jest fałsz jeśli
\fIwbudowane\fP nie jest wbudowanym poleceniem powłoki.
.TP 
\fBcaller\fP [\fIwyrażenie\fP]
Zwraca kontekst aktywnego wywołania podprogramu (funkcji powłoki lub skryptu
wykonywanego wbudowanymi poleceniami \fB.\fP lub \fBsource\fP). Bez \fIwyrażenia\fP,
\fBcaller\fP wyświetla numer wiersza i plik źródłowy bieżącego wywołania
podprogramu. Jeśli do \fIwyrażenia\fP przekazano nieujemną liczbę całkowitą, to
\fBcaller\fP wyświetla numer wiersza, nazwę podprogramu i plik źródłowy
związany z pozycją w bieżącym stosie wywołania. Te dodatkowe informacje mogą
być użyte np. do wyświetlenia stosu wywołania. Bieżąca ramka jest ramką
0. Zwracaną wartością jest 0, chyba że powłoka nie wykonuje wywołania
podprogramu lub \fIwyrażenie\fP nie odnosi się do prawidłowej pozycji w stosie
wywołania.
.TP 
\fBcd\fP [\fB\-L\fP|[\fB\-P\fP [\fB\-e\fP]] [\-@]] [\fIkatalog\fP]
Zmienia bieżący katalog roboczy na \fIkatalog\fP. Jeśli nie poda się
\fIkatalogu\fP, domyślnie jest to wartość zmiennej powłoki
.SM
\fBHOME\fP. Wszelkie dodatkowe argumenty po \fIkatalogu\fP są ignorowane. Zmienna
.SM
\fBCDPATH\fP definiuje ścieżkę przeszukiwań dla katalogu zawierającego
\fIkatalog\fP: każda nazwa katalogu w
.SM
\fBCDPATH\fP jest przeszukiwana pod
kątem \fIkatalogu\fP. Alternatywne nazwy katalogów w
.SM
\fBCDPATH\fP
rozdzielane są dwukropkiem (:). Pusta nazwa katalogu w
.SM
\fBCDPATH\fP jest
tym samym, co katalog bieżący, tj. "\fB.\fP". Jeżeli \fIkatalog\fP rozpoczyna się
ukośnikiem (/), to
.SM
\fBCDPATH\fP nie jest używane. Opcja \fB\-P\fP nakazuje
użycie fizycznej struktury katalogów podążając za dowiązaniami symbolicznymi
przy przechodzeniu przez \fIkatalog\fP i przed przetwarzaniem wystąpień \fI..\fP w
\fIkatalogu\fP (zobacz też opcja \fB\-P\fP wbudowanego polecenia \fBset\fP). Opcja
\fB\-L\fP wymusza podążanie za dowiązaniami symbolicznymi po przetworzeniu
wystąpień \fI..\fP w \fIkatalogu\fP. Jeśli w \fIkatalogu\fP pojawi się \fI..\fP, to jest
ono pzetwarzane przez usunięcie występującej zaraz przed nim składowej
ścieżki z \fIkatalogu\fP, aż do ukośnika rozpoczynającego \fIkatalog\fP. Jeśli z
\fB\-P\fP użyto opcji \fB\-e\fP, a bieżący katalog roboczy nie może zostać pomyślnie
określony po pomyślnej zmianie katalogu, to \fBcd\fP zwróci kod oznaczający
niepowodzenie. W systemach które to obsługują, opcja \fB\-@\fP przedstawia
atrybuty rozszerzone powiązane z plikiem jak i katalogiem. Argument \fB\-\fP
jest przetwarzany na
.SM
\fB$OLDPWD\fP przed przeprowadzeniem próby zmiany
katalogu.Jeśli użyta jest niepusta nazwa katalogu z
.SM
\fBCDPATH\fP lub
jeśli \fB\-\fP jest pierwszym argumentem, a zmiana katalogu odbyła się
pomyślnie, na standardowe wyjście wypisywana jest ścieżka absolutna do
nowego katalogu roboczego. Wartością zwracaną jest prawda jeśli pomyślnie
zmieniono katalog; w przeciwnym przypadku fałsz.
.TP 
\fBcommand\fP [\fB\-pVv\fP] \fIpolecenie\fP [\fIarg\fP ...]
Uruchamia \fIpolecenie\fP z \fIargumentami\fP zakazując zwykłego wyszukiwania
funkcji przez powłokę.  Wykonywane są wyłącznie polecenia wbudowane i
polecenia znalezione w
.SM
\fBPATH\fP.  Jeżeli podano opcję \fB\-p\fP,
wyszukiwanie \fIpolecenia\fP wykonywane jest przy użyciu domyślnej \fBPATH\fP,
która gwarantuje znalezienie wszystkich standardowych narzędzi.  Jeśli użyto
albo opcji \fB\-V\fP albo \fB\-v\fP, to wypisywany jest opis \fIpolecenia\fP.  Opcja
\fB\-v\fP powoduje, że zostanie wyświetlone pojedyncze słowo wskazujące
polecenie lub nazwę pliku, użyte do wywołania \fIpolecenia\fP; opcja \fB\-V\fP
tworzy bardziej obszerny opis.  Jeżeli podano opcję \fB\-V\fP lub \fB\-v\fP, to
kodem zakończenia jest 0 gdy odnaleziono \fIpolecenie\fP, zaś 1 gdy nie. Jeśli
nie podano żadnej z tych opcji i pojawił się błąd lub nie można znaleźć
\fIpolecenia\fP, to kod zakończenia wynosi 127. W przeciwnym wypadku kodem
zakończenia wbudowanego polecenia \fBcommand\fP jest kod zakończenia
\fIpolecenia\fP.
.TP 
\fBcompgen\fP [\fIopcja\fP] [\fIsłowo\fP]
Tworzy możliwe dopasowania uzupełnień dla \fIsłowa\fP zgodnie z \fIopcjami\fP,
które mogą być dowolnymi z opcji akceptowanych przez wbudowane polecenie
\fBcomplete\fP, z wyjątkiem \fB\-p\fP i \fB\-r\fP, i wypisuje dopasowania na
standardowe wyjście.  Przy stosowaniu opcji \fB\-F\fP lub \fB\-C\fP, różne zmienne
powłoki ustawiane przez usługi programowalnego uzupełniania, gdy są
dostępne, nie będą mieć użytecznych wartości.
.sp 1
Dopasowania będą tworzone w ten sam sposób, jakby kod uzupełniania
programowalnego tworzył je wprost ze specyfikacji uzupełniania z tymi samymi
flagami.  Jeżeli podano \fIsłowo\fP, to wyświetlone zostaną wyłącznie
uzupełnienia doń pasujące.
.sp 1
Wartością zwracaną jest prawda, chyba że podano niepoprawną opcję lub nie
zostały utworzone żadne dopasowania.
.TP 
\fBcomplete\fP [\fB\-abcdefgjksuv\fP] [\fB\-o\fP \fIopcjacomp\fP] [\fB\-DE\fP] [\fB\-A\fP \fIakcja\fP] [\fB\-G\fP \fIwzglob\fP] [\fB\-W\fP \fIlistasłów\fP] [\fB\-F\fP \fIfunkcja\fP] [\fB\-C\fP \fIpolecenie\fP]
.br
[\fB\-X\fP \fIwzfiltr\fP] [\fB\-P\fP \fIprzedrostek\fP] [\fB\-C\fP \fIprzyrostek\fP] \fInazwa\fP
[\fInazwa ...\fP]
.PD 0
.TP 
\fBcomplete\fP \fB\-pr\fP [\fB\-DE\fP] [\fInazwa\fP ...]
.PD
Określa, w jaki sposób będą uzupełniane argumenty dla każdej z \fInazw\fP.
Jeżeli podano opcję \fB\-p\fP, lub nie podano żadnych opcji, to wypisywane są
istniejące specyfikacje uzupełniania \- w sposób, który pozwala na ich
ponowne wykorzystanie jako wejścia.  Opcja \fB\-r\fP usuwa specyfikację
uzupełniania dla każdej z \fInazw\fP, lub jeśli \fInazw\fP nie podano, wszystkie
specyfikacje uzupełniania. Opcja \fB\-D\fP wskazuje, że pozostałe opcje i akcje
powinny dotyczyć "domyślnego" polecenia uzupełniania, to jest uzupełniania,
którego próbę podjęto na poleceniu o niezdefiniowanym wcześniej
uzupełnieniu. Opcja \fB\-E\fP oznacza, że pozostałe opcje i akcje powinny
dotyczyć "pustego" polecenia uzupełniania, tzn. uzupełniania, którego próbę
podjęto na pustym wierszu.
.sp 1
Proces stosowania tych specyfikacji uzupełnień podczas prób uzupełniania
słów omówiono powyżej w sekcji \fBProgramowalne uzupełnianie\fP.
.sp 1
Pozostałe opcje, jeśli je podano, mają niżej opisane znaczenie.  Argumenty
opcji \fB\-G\fP, \fB\-W\fP i \fB\-X\fP (i, jeśli to niezbędne, \fB\-P\fP i \fB\-S\fP) powinny
być cytowane dla ochrony przed interpretacją jaka wystąpi zanim zostanie
wywołane polecenie \fBcomplete\fP.
.RS
.PD 0
.TP  8
\fB\-o\fP \fIopcjacomp\fP
Wartość \fIopcjacomp\fP reguluje kilka aspektów zachowania się compspec
wykraczających poza zwykłe tworzenie uzupełnień.  \fIopcjacomp\fP przyjmuje
jedną z wartości:
.RS
.TP  8
\fBbashdefault\fP
Wykonuje pozostałe z domyślnych uzupełnień \fBbash\fP, jeśli compspec nie
utworzy żadnych dopasowań.
.TP  8
\fBdefault\fP
Stosuje domyślne uzupełnianie readline jeśli compspec nie utworzy żadnych
dopasowań.
.TP  8
\fBdirnames\fP
Wykonuje uzupełnianie nazw katalogów jeśli compspec nie utworzy żadnych
dopasowań.
.TP  8
\fBfilenames\fP
Powiadamia readline, że compspec tworzy nazwy plików, zatem może wykonać
przetwarzanie specyficzne dla takich nazw (jak dodanie ukośnika do nazw
katalogów czy usunięcie końcowych spacji). Zaprojektowane do stosowania z
funkcjami powłoki.
.TP  8
\fBnoquote\fP
Przekazuje readline, aby nie cytowało uzupełnianych słów, jeśli są nazwami
plików (domyślnie nazwy plików są cytowane).
.TP  8
\fBnospace\fP
Przekazuje readline, aby nie dodawało spacji (domyślnie) do uzupełnionych
słów, na końcu wiersza.
.TP  8
\fBplusdirs\fP
Po utworzeniu dopasowań zdefiniowanych przez compspec, przeprowadzana jest
próba dopasowania nazw katalogów, a ewentualne dopasowania są dodawane do
wyników innych akcji.
.RE
.TP  8
\fB\-A\fP \fIakcja\fP
\fIakcja\fP może być jedną z poniższych, tworzących listę możliwych dopasowań:
.RS
.TP  8
\fBalias\fP
Nazwy aliasów. Można też podać jako \fB\-a\fP.
.TP  8
\fBarrayvar\fP
Nazwy zmiennych tablicowych.
.TP  8
\fBbinding\fP
Nazwy przypisań klawiszy \fBreadline\fP.
.TP  8
\fBbuiltin\fP
Nazwy wbudowanych poleceń powłoki. Można też podać jako \fB\-b\fP.
.TP  8
\fBcommand\fP
Nazwy poleceń. Można też podać jako \fB\-c\fP.
.TP  8
\fBdirectory\fP
Nazwy katalogów. Można też podać jako \fB\-d\fP.
.TP  8
\fBdisabled\fP
Nazwy wyłączonych poleceń wbudowanych powłoki.
.TP  8
\fBenabled\fP
Nazwy włączonych poleceń wbudowanych powłoki.
.TP  8
\fBexport\fP
Nazwy wyeksportowanych zmiennych powłoki. Można też podać jako \fB\-e\fP.
.TP  8
\fBfile\fP
Nazwy plików. Można też podać jako \fB\-f\fP.
.TP  8
\fBfunction\fP
Nazwy funkcji powłoki.
.TP  8
\fBgroup\fP
Nazwy grup. Można też podać jako \fB\-g\fP.
.TP  8
\fBhelptopic\fP
Tematy pomocy akceptowane przez wbudowane polecenie \fBhelp\fP.
.TP  8
\fBhostname\fP
Nazwy hostów, pobrane z pliku określonego przez zmienną powłoki
.SM
\fBHOSTFILE\fP.
.TP  8
\fBjob\fP
Nazwy zadań, jeżeli aktywne jest sterowanie zadaniami. Można też podać jako
\fB\-j\fP.
.TP  8
\fBkeyword\fP
Zastrzeżone słowa powłoki. Można też podać jako \fB\-k\fP.
.TP  8
\fBrunning\fP
Nazwy działających zadań, jeżeli aktywne jest sterowanie zadaniami.
.TP  8
\fBservice\fP
Nazwy usług. Można też podać jako \fB\-s\fP.
.TP  8
\fBsetopt\fP
Dozwolone argumenty opcji \fB\-o\fP polecenia wbudowanego \fBset\fP.
.TP  8
\fBshopt\fP
Nazwy opcji powłoki, takie, jakie akceptuje polecenie wbudowane \fBshopt\fP.
.TP  8
\fBsignal\fP
Nazwy sygnałów.
.TP  8
\fBstopped\fP
Nazwy zatrzymanych zadań, jeśli aktywne jest sterowanie zadaniami.
.TP  8
\fBuser\fP
Nazwy użytkowników. Można też podać jako \fB\-u\fP.
.TP  8
\fBvariable\fP
Nazwy wszystkich zmiennych powłoki. Można też podać jako \fB\-v\fP.
.RE
.TP  8
\fB\-C\fP \fIpolecenie\fP
\fIpolecenie\fP jest wykonywane w środowisku podpowłoki, a jego wyjście jest
używane jako możliwe uzupełnienia.
.TP  8
\fB\-F\fP \fIfunkcja\fP
Funkcja powłoki \fIfunkcja\fP jest wykonywana w bieżącym środowisku
powłoki. Gdy funkcja jest wykonywana, pierwszy argument (\fB$1\fP) jest nazwą
polecenia, którego argumenty są uzupełniane, drugim argumentem (\fB$2\fP) jest
uzupełniane słowo, a trzecim (\fB$3\fP) jest słowo poprzedzające uzupełniane
słowo w bieżącym wierszu polecenia. Po zakończeniu, możliwe uzupełnienia są
pozyskiwane z wartości zmiennej tablicowej
.SM
\fBCOMPREPLY\fP.
.TP  8
\fB\-G\fP \fIwzglob\fP
Wzorzec rozwijania nazw plików \fIwzglob\fP jest rozwijany, tworząc listę
możliwych uzupełnień.
.TP  8
\fB\-P\fP \fIprzedrostek\fP
na początku każdego z możliwych uzupełnień, po zastosowaniu wszystkich
innych opcji, dodawany jest \fIprzedrostek\fP.
.TP  8
\fB\-S\fP \fIprzyrostek\fP
na końcu każdego z możliwych uzupełnień, po zastosowaniu wszystkich innych
opcji, dodawany jest \fIprzyrostek\fP.
.TP  8
\fB\-W\fP \fIlistasłów\fP
\fIlistasłów\fP jest rozbijana przy zastosowaniu znaków ze zmiennej specjalnej
.SM
\fBIFS\fP jako separatorów, a każde ze słów wynikowych jest
interpretowane.  Możliwe uzupełnienia są elementami listy wynikowej,
pasującymi do uzupełnianego słowa.
.TP  8
\fB\-X\fP \fIwzfiltr\fP
\fIwzfiltr\fP jest wzorcem używanym do rozwijania nazw plików.  Stosowany jest
do listy możliwych uzupełnień utworzonej przez poprzedzające go opcje i
argumenty, a każde pasujące do niego uzupełnienie jest usuwane z listy.
Początkowy \fB!\fP w \fIwzfiltr\fP powoduje negację wzorca; usuwane są wówczas
uzupełnienia nie pasujące do \fIwzfiltr\fP.
.PD
.PP
Wartością zwracana jest prawda, chyba że podano niepoprawną opcję, podano
bez argumentu \fInazwa\fP opcję inną niż \fB\-p\fP lub \fB\-r\fP, usiłowano usunąć
specyfikację uzupełniania dla \fInazwy\fP, dla której nie istnieje żadna
specyfikacja, albo też podczas dodawania specyfikacji uzupełniania wystąpił
błąd.
.RE
.TP 
\fBcompopt\fP [\fB\-o\fP \fIopcja\fP] [\fB\-DE\fP] [\fB+o\fP \fIopcja\fP] [\fInazwa\fP]
Modyfikuje opcje uzupełniania dla każdej \fInazwy\fP, zgodnie z \fIopcjami\fP lub
dla właśnie wykonywanego uzupełnienia, jeśli nie podano \fInazwy\fP. Jeśli nie
podano \fIopcji\fP, wyświetla opcje uzupełniania dla każdej \fInazwy\fP lub dla
bieżącego uzupełniania. Możliwymi wartościami \fIopcji\fP są opcje, które są
poprawne do wbudowanego polecenia \fBcomplete\fP. Opcja \fB\-D\fP oznacza, że
pozostałe opcje powinny być stosowane do "domyślnego" polecenia
uzupełniania, tzn. uzupełniania, którego próbę przeprowadzono dla polecenia,
dla którego nie zdefiniowano wcześniej uzupełnień. Opcja \fB\-E\fP oznacza, że
pozostałe opcje powinny być zastosowane do "pustego" polecenia uzupełniania,
tzn. uzupełnienia, którego próbę przeprowadzono na pustym wierszu.
.sp 1
Zwracaną wartością jest prawda, chyba że podano nieprawidłową opcję,
przeprowadzono próbę zmodyfikowania opcji dla \fInazwy\fP, dla której nie
istnieje specyfikacja uzupełniania lub wystąpił błąd wyjścia.
.TP 
\fBcontinue\fP [\fIn\fP]
Wznawia następną iterację obejmującej je pętli \fBfor\fP, \fBwhile\fP, \fBuntil\fP
lub \fBselect\fP.  Jeżeli podano \fIn\fP, wznawia \fIn\fP\-tą obejmującą pętlę.  \fIn\fP
musi być \(>= 1. Jeżeli \fIn\fP jest większe niż liczba obejmujących pętli,
to wznawiana jest ostatnia z pętli (,,najwyższa\*(rq). Wartość zwracana wynosi
0, chyba że powłoka nie wykonuje pętli podczas wykonywania \fBcontinue\fP.
.TP 
\fBdeclare\fP [\fB\-aAfFgilnrtux\fP] [\fB\-p\fP] [\fInazwa\fP[=\fIwartość\fP] ...]
.PD 0
.TP 
\fBtypeset\fP [\fB\-aAfFgilnrtux\fP] [\fB\-p\fP] [\fInazwa\fP[=\fIwartość\fP] ...]
.PD
Deklaruje zmienne i/lub nadaje im atrybuty.  Jeśli nie podano żadnych
\fInazw\fP, wyświetla wartości zmiennych.  Opcja \fB\-p\fP będzie wyświetlać
atrybuty i wartości każdej \fInazwy\fP. Gdy używane jest \fB\-p\fP z argumentami
\fInazwa\fP, ignorowane są dodatkowe opcje inne niż \fB\-f\fP lub \fB\-F\fP. Opcja
\fB\-p\fP podana bez argumentów \fInazwa\fP wyświetli atrybuty i wartości
wszystkich zmiennych posiadających atrybuty określone przez dodatkowe
opcje. Jeśli nie podano innych opcji z \fB\-p\fP, \fBdeclare\fP wyświetli atrybuty
i wartości wszystkich zmiennych powłoki. Opcja \fB\-f\fP ograniczy wyświetlanie
do funkcji powłoki. Opcja \fB\-F\fP zabrania wyświetlania definicji funkcji;
wypisywane są tylko nazwy i atrybuty funkcji.  Jeśli włączono opcję powłoki
\fBextdebug\fP przy użyciu \fBshopt\fP, to wyświetlane są również nazwa pliku
źródłowego i numer wiersza, w którym zdefiniowano funkcję. Opcja \fB\-F\fP
implikuje \fB\-f\fP. Opcja \fB\-f\fP wymusza tworzenie i modyfikację zmiennych na
poziomie globalnym, nawet gdy \fBdeclare\fP jest wykonywane w funkcji
powłoki. Jest ona ignorowana we wszystkich innych przypadkach. Poniższych
opcji można użyć do ograniczenia wyników do zmiennych o określonym atrybucie
lub do nadania zmiennym atrybutów:
.RS
.PD 0
.TP 
\fB\-a\fP
Każda z \fInazw\fP jest indeksowaną zmienną tablicową (zobacz \fBTablice\fP
powyżej).
.TP 
\fB\-A\fP
Każda z \fInazw\fP jest asocjacyjną zmienną tablicową (zobacz \fBTablice\fP
powyżej).
.TP 
\fB\-f\fP
Używa wyłącznie nazw funkcji.
.TP 
\fB\-i\fP
Zmienna jest traktowana jak całkowita; gdy zmiennej jest przypisywana
wartość, wykonywana jest interpretacja wyrażeń arytmetycznych (zobacz
.SM
\fBOBLICZANIE WYRAŻEŃ ARYTMETYCZNYCH\fP).
.TP 
\fB\-l\fP
Gdy zmiennej przypisano wartość, wszystkie wielkie litery są zamieniane na
małe. Przypisania za pomocą wielkich liter są wyłączone.
.TP 
\fB\-n\fP
Nadaje każdej \fInazwie\fP atrybut \fInazwa referencyjna\fP, czyniąc ją nazwą
referencyjną odnoszącą\ się\ do innej zmiennej. Ta inna zmienna jest
definiowana w \fIwartości\fP nazwy. Wszystkie odniesienia i przypisania do
\fInazwy\fP, z wyjątkiem zmiany samego atrybutu \fB\-n\fP są wykonywane na zmiennej
do której odnosi się \fIwartość\fP nazwy. Atrybutu \fB\-n\fP nie można zastosować
do zmiennych tablicowych.
.TP 
\fB\-r\fP
Powoduje, że dane \fInazwy\fP stają się tylko\-do\-odczytu (readonly).  Nazwom
tym nie można przypisać wartości następnymi poleceniami przypisania.  Nie
można też ich usunąć za pomocą unset.
.TP 
\fB\-t\fP
Nadaje każdej \fInazwie\fP atrybut \fItrace\fP. Funkcje z tym atrybutem dziedziczą
pułapki \fBDEBUG\fP i \fBRETURN\fP z wywołującej je funkcji. Atrybut ten nie ma
specjalnego znaczenia dla zmiennych.
.TP 
\fB\-u\fP
Gdy zmiennej przypisano wartość, wszystkie małe litery są zamieniane na
wielkie. Przypisania za pomocą małych liter są wyłączone.
.TP 
\fB\-x\fP
Zaznacza \fInazwę\fP do wyeksportowania przez środowisko do kolejnych poleceń.
.PD
.PP
Użycie `+' zamiast `\-' wyłącza atrybut, z wyjątkiem tego, że \fB+a\fP nie może
być używane do niszczenia zmiennej tablicowej. a \fB+r\fP nie usunie atrybutu
tylko do odczytu. Użyte w funkcji \fBdeclare\fP i \fBtypeset\fP powodują, że każda
z \fInazw\fP staje się lokalna, jak przy pomocy polecenia \fBlocal\fP, chyba że
podano opcję \fB\-g\fP. Przy używaniu \fB\-a\fP lub \fB\-A\fP oraz składni polecenia
złożonego do utworzenia zmiennych tablicowych, dodatkowe atrybuty nie dają
efektu aż do kolejnych przypisań. Jeśli po zmiennej występuje =\fIwartość\fP,
to wartość zmiennej jest ustawiana na \fIwartość\fP. Zwracana jest wartość 0,
chyba że napotkano niepoprawną opcję, próbę zdefiniowania funkcji przy
pomocy
.if  n ``\-f foo=bar'',
.if  t \f(CW\-f foo=bar\fP,
przypisania wartości zmiennej readonly, przypisania wartości zmiennej
tablicowej bez użycia składni przypisania złożonego (zobacz \fBTablice\fP
powyżej), jedna z \fInazw\fP nie jest poprawną nazwą zmiennej powłoki,
usiłowano wyłączyć status readonly dla zmiennej tylko do odczytu, wyłączyć
status tablicy dla zmiennej tablicowej albo próbowano wyświetlić
nieistniejącą funkcję przy pomocy \fB\-f\fP.
.RE
.TP 
\fBdirs\fP [\fB\-clpv\fP] [\fB+\fP\fIn\fP\fB] [\-\fP\fIn\fP\fB]\fP
Bez opcji wyświetla listę aktualnie zapamiętanych katalogów.  Domyślnie
wyświetlana jest ona w pojedynczym wierszu, z nazwami katalogów
rozdzielonymi spacjami.  Katalogi dodawane są do listy poleceniem \fBpushd\fP
polecenie \fBpopd\fP usuwa pozycje z listy.
.RS
.PD 0
.TP 
\fB\-c\fP
Czyści stos katalogów usuwając wszystkie jego pozycje.
.TP 
\fB\-l\fP
Tworzy listing używając pełnych ścieżek; domyślnie format listingu posługuje
się tyldą do oznaczania katalogu domowego.
.TP 
\fB\-p\fP
Wypisuje stos katalogów po jednej pozycji na wiersz.
.TP 
\fB\-v\fP
Wypisuje stos katalogów po jednej pozycji na wiersz, poprzedzając każdą z
nich jej pozycją (indeksem) w stosie.
.TP 
\fB+\fP\fIn\fP
Wyświetla \fIn\fPtą pozycję licząc od lewej na liście pokazywanej przez \fBdirs\fP
przy wywołaniu bez opcji; początkową jest zero.
.TP 
\fB\-\fP\fIn\fP
Wyświetla \fIn\fPtą pozycję licząc od prawej na liście pokazywanej przez
\fBdirs\fP przy wywołaniu bez opcji; początkową jest zero.
.PD
.PP
Wartością zwracaną jest 0, chyba że podano nieprawidłową opcję lub \fIn\fP
wskazuje poza koniec stosu katalogów.
.RE
.TP 
\fBdisown\fP [\fB\-ar\fP] [\fB\-h\fP] [\fIzadanie\fP ...]
Bez opcji, usuwa każde z podanych \fIzadań\fP z tablicy zadań aktywnych. Jeśli
nie podano \fIzadania\fP i nie użyto ani opcji \fB\-a\fP ani \fB\-r\fP, to używane jest
\fIzadanie bieżące\fP. Jeśli użyto opcji \fB\-h\fP, każde \fIzadanie\fP nie jest
usuwane z tablicy, ale jest jako takie zaznaczane, tak że do zadania nie
jest wysyłany sygnał
.SM
\fBSIGHUP\fP jeśli powłoka otrzymuje
.SM
\fBSIGHUP\fP. Jeżeli podano \fIzadanie\fP, opcja \fB\-a\fP oznacza usunięcie lub
zaznaczenie wszystkich zadań; opcja \fB\-r\fP bez argumentu \fIzadania\fP ogranicza
akcję do działających zadań. Wartością zwracaną jest 0, chyba że \fIzadanie\fP
nie określa poprawnego zadania.
.TP 
\fBecho\fP [\fB\-neE\fP] [\fIargument\fP ...]
Wyświetla \fIargument\fPy, rozdzielone spacjami, zakończone znakiem nowej
linii. Kodem zakończenia jest zawsze 0, chyba że wystąpi błąd zapisu.
Jeżeli podano \fB\-n\fP, to nie jest wysyłany kończący znak nowej linii.  Jeżeli
podano opcję \fB\-e\fP, włączana jest interpretacja podanych niżej znaków
specjalnych. Opcja \fB\-E\fP wyłącza interpretację tych znaków, nawet na
systemach, gdzie są one domyślnie interpretowane.  Do dynamicznego
sprawdzania, czy \fBecho\fP interpretuje domyślnie te znaki, czy nie, służy
opcja powłoki \fBxpg_echo\fP.  \fBecho\fP nie interpretuje \fB\-\-\fP jako oznaczenia
końca opcji.  \fBecho\fP interpretuje następujące sekwencje specjalne:
.RS
.PD 0
.TP 
\fB\ea\fP
alarm (dzwonek)
.TP 
\fB\eb\fP
backspace
.TP 
\fB\ec\fP
pomiń kończący znak nowej linii
.TP 
\fB\ee\fP
.TP 
\fB\eE\fP
znak escape
.TP 
\fB\ef\fP
znak wysuwu strony (form feed)
.TP 
\fB\en\fP
znak nowego wiersza (new line)
.TP 
\fB\er\fP
powrót karetki (carriage return)
.TP 
\fB\et\fP
tabulacja pozioma (horizontal tab)
.TP 
\fB\ev\fP
tabulacja pionowa (vertical tab)
.TP 
\fB\e\e\fP
odwrotny ukośnik (backslash)
.TP 
\fB\e0\fP\fInnn\fP
ośmiobitowy znak, którego wartością jest ósemkowa liczba \fInnn\fP (jedna do
trzech cyfr)
.TP 
\fB\ex\fP\fIHH\fP
ośmiobitowy znak, którego wartością jest szesnastkowa liczba \fInnn\fP (jedna
lub dwie cyfry szesnastkowe)
.TP 
\fB\eu\fP\fIHHHH\fP
znak Unicode (ISO/IEC 10646) o wartości szesnastkowej \fIHHHH\fP (jedna do
czterech cyfr szesnastkowych)
.TP 
\fB\eU\fP\fIHHHHHHHH\fP
znak Unicode (ISO/IEC 10646) o wartości szesnastkowej \fIHHHHHHHH\fP (jedna do
ośmiu cyfr szesnastkowych)
.PD
.RE
.TP 
\fBenable\fP [\fB\-a\fP] [\fB\-dnps\fP] [\fB\-f\fP \fIplik\fP] [\fInazwa\fP ...]
Włącza i wyłącza wbudowane polecenia powłoki.  Wyłączenie poleceń
wbudowanych umożliwia wykonanie polecenia dyskowego mającego tę samą nazwę,
co wbudowane, bez podawania jego pełnej nazwy ścieżkowej, mimo iż powłoka
normalnie szuka poleceń wbudowanych przed poleceniami dyskowymi.  Jeżeli
posłużono się opcją \fB\-n\fP, wyłączana jest każda z \fInazw\fP; w przeciwnym
razie \fInazwy\fP są włączone.  Na przykład, chcąc użyć pliku binarnego \fBtest\fP
znalezionego przez
.SM
\fBPATH\fP zamiast wersji wbudowanej w powłokę,
należy uruchomić
.if  t \f(CWenable -n test\fP.
.if  n ``enable -n test''.
Opcja \fB\-f\fP oznacza załadowanie nowego polecenia wbudowanego \fInazwa\fP z
obiektu dzielonego (shared object)  \fIplik\fP, na systemach obsługujących
dynamiczne ładowanie.  Opcja \fB\-d\fP usunie polecenie wbudowane załadowane
poprzednio przez \fB\-f\fP.  Jeżeli nie podano żadnych argumentów \fInazwa\fP lub
jeśli podano opcję \fB\-p\fP, wypisywana jest lista poleceń wbudowanych
powłoki.  Bez innych argumentów opcyjnych, lista ta składa się ze wszystkich
włączonych poleceń wbudowanych.  Jeśli podano \fB\-n\fP, wypisywane są tylko
wyłączone polecenia wbudowane.  Jeżeli podano \fB\-a\fP, wypisywana lista
zawiera wszystkie polecenia wbudowane, ze wskazaniem przy każdym czy jest
ono włączone czy też nie.  Jeżeli podano \fB\-s\fP, wyjście ograniczone jest do
POSIX\-owych ,,\fIspecjalnych\fP\*(rq poleceń wbudowanych.  Wartością zwracaną jest
0, chyba że \fInazwa\fP nie jest poleceniem wbudowanym powłoki lub wystąpił
błąd podczas ładowania nowego polecenia wbudowanego z obiektu dzielonego.
.TP 
\fBeval\fP [\fIargument\fP ...]
\fIArgumenty\fP są czytane i łączone w pojedyncze polecenie.  Polecenie to jest
następnie odczytywane i wykonywane przez powłokę, zaś jego kod zakończenia
jest zwracany jako wartość \fBeval\fP.  Jeżeli nie na żadnych \fIargumentów\fP,
lub wszystkie argumenty są puste, \fBeval\fP zwraca 0.
.TP 
\fBexec\fP [\fB\-cl\fP] [\fB\-a\fP \fInazwa\fP] [\fIpolecenie\fP [\fIargumenty\fP]]
Jeżeli podano \fIpolecenie\fP, zastępuje ono powłokę. Nie tworzony jest żaden
nowy proces. \fIArgumenty\fP stają się argumentami \fIpolecenia\fP. Jeśli podano
opcję \fB\-l\fP, umieszcza kreskę na początku zerowego argumentu przesyłanego do
\fIpolecenia\fP. Tak samo, jak robi to \fIlogin\fP(1). Opcja \fB\-c\fP powoduje, że
\fIpolecenie\fP zostanie wykonane z pustym środowiskiem. Jeżeli podano \fB\-a\fP,
powłoka przesyła do wykonywanego polecenia \fInazwę\fP jako zerowy
argument. Jeżeli \fIpolecenie\fP z jakiegoś powodu nie może zostać wykonane, to
powłoka nie\-interaktywna kończy pracę, chyba że włączona jest opcja powłoki
\fBexecfail,\fP wówczas zwraca niepowodzenie. Powłoka interaktywna zwraca
niepowodzenie jeśli plik nie może zostać wykonany. Jeżeli nie podano
\fIpolecenia\fP, przekierowania skutkują w bieżącej powłoce, a kodem
zakończenia jest 0. W przypadku błędu przekierowania kod zakończenia wynosi
1.
.TP 
\fBexit\fP [\fIn\fP]
Powoduje, że powłoka kończy pracę z kodem równym \fIn\fP. Jeśli pominięto \fIn\fP,
kodem zakończenia jest kod ostatniego wykonanego polecenia.  Przed końcem
pracy powłoki wykonywane jest przechwycenie sygnału
.SM
\fBEXIT\fP.
.TP 
\fBexport\fP [\fB\-fn\fP\^] [\fInazwa\fP[=\fIsłowo\fP]] ...
.PD 0
.TP 
\fBexport \-p\fP
.PD
Podane \fInazwy\fP zaznaczane są do automatycznego wyeksportowania do
środowiska następnych wykonywanych poleceń. Jeśli podano opcję \fB\-f\fP, to
\fInazwy\fP odnoszą się do funkcji. Jeżeli nie podano żadnych \fInazw\fP lub
jeżeli podano opcję \fB\-p\fP, to wypisywana jest lista nazw wszystkich
eksportowanych w tej powłoce zmiennych. Opcja \fB\-n\fP powoduje usunięcie cechy
eksportowania z podanych zmiennych. Jeśli po nazwie zmiennej występuje
=\fIsłowo\fP, to wartość zmiennej jest ustawiana na \fIsłowo\fP. \fBexport\fP zwraca
zerowy kod zakończenia, chyba że napotkano nieprawidłową opcję, jedna z
\fInazw\fP nie jest poprawną nazwą zmiennej powłoki lub podano \fB\-f\fP z
\fInazwą\fP, która nie jest funkcją.
.TP 
\fBfc\fP [\fB\-e\fP \fInazwa_e\fP] [\fB\-lnr\fP] [\fIpierwsze\fP] [\fIostatnie\fP]
.PD 0
.TP 
\fBfc\fP \fB\-s\fP [\fIwzorzec\fP=\fIzastąpienie\fP] [\fIpolecenie\fP]
.PD
W pierwszej postaci, wybiera zakres poleceń od \fIpierwszego\fP do
\fIostatniego\fP z listy historii i wypisuje lub edytuje oraz wykonuje je
ponownie. \fIPierwsze\fP i \fIostatnie\fP mogą być podawane jako łańcuch (do
odnalezienia ostatniego polecenia rozpoczynającego się tym łańcuchem) lub
jako liczba (indeks w liście historii, gdzie liczba ujemna używana jest jako
offset od numeru bieżącego polecenia), Jeżeli nie określono \fIostatniego\fP,
to jest ono ustawiane na bieżące polecenie w przypadku listowania (tak że
.if  n ``fc \-l \-10''
.if  t \f(CWfc \-l \-10\fP
wypisuje ostatnich 10 poleceń) i na \fIpierwsze\fP w pozostałych przypadkach.
Jeżeli nie określono \fIpierwszego\fP polecenia, to jest ono ustawiane na
poprzednie polecenie w przypadku edycji a na \-16 przy listowaniu.
.sp 1
Opcja \fB\-n\fP wstrzymuje wyświetlanie numerów poleceń podczas listowania.
Opcja \fB\-r\fP odwraca kolejność poleceń.  Jeżeli podano opcję \fB\-l\fP, to
polecenia listowane są na standardowym wyjściu. W przeciwnym razie dla pliku
zawierającego te polecenia wywoływany jest edytor podany przez \fInazwa_e\fP.
Jeżeli nie podano \fInazwa_e\fP, używana jest wartość
.SM
\fBFCEDIT\fP, a
wartość
.SM
\fBEDITOR\fP jeśli nie ustawiono
.SM
\fBFCEDIT\fP.  Jeżeli nie
ustawiono żadnej z nich, używany jest
.FN vi
Po zakończeniu edycji, wysyłane edytowane polecenia są wyświetlane przez
echo i wykonywane.
.sp 1
W drugiej postaci, \fIpolecenie\fP jest ponownie wykonywane po każdej wymianie
wystąpienia \fIwzorca\fP przez \fIzastąpienie\fP. \fIPolecenie\fP jest interpretowane
podobnie jak \fIpierwsze\fP powyżej. Przydatnym aliasem do wykorzystania z tą
formą jest
.if  n ``r="fc -s"'',
.if  t \f(CWr='fc \-s'\fP,
tak, że napisanie
.if  n ``r cc''
.if  t \f(CWr cc\fP
uruchamia ostatnie polecenie rozpoczynające się od
.if  n ``cc''
.if  t \f(CWcc\fP
a napisanie
.if  n ``r''
.if  t \f(CWr\fP
ponownie wykonuje ostatnie polecenie.
.sp 1
Jeżeli użyta została pierwsza postać, to wartością zwracaną jest 0, chyba że
napotkano nieprawidłową opcję lub \fIpierwszy\fP albo \fIostatni\fP określają
wiersze historii spoza zakresu.  Jeżeli podano opcję \fB\-e\fP, wartością
zwracaną jest wartość ostatniego wykonanego polecenia lub niepowodzenie
jeśli pojawił się błąd tymczasowego pliku poleceń.  Jeżeli użyta została
druga postać, to zwracanym kodem jest kod ponownie wykonanego polecenia,
chyba że \fIpolecenie\fP nie określa poprawnego wiersza poleceń \-\- wówczas
\fBfc\fP zwraca porażkę.
.TP 
\fBfg\fP [\fIzadanie\fP]
Wznawia \fIzadanie\fP na pierwszym planie i czyni je zadaniem bieżącym.  Jeżeli
nie podano \fIzadania\fP, używane jest \fIbieżące zadanie\fP w pojęciu powłoki.
Wartością zwracaną jest wartość polecenia umieszczonego na pierwszym planie,
lub porażka jeżeli \fBfb\fP uruchomiono przy wyłączonej kontroli zadań, lub
uruchomiono je przy włączonej kontroli zadań, ale \fIzadanie\fP nie określa
prawidłowego zadania lub \fIzadanie\fP określa zadanie, które zostało
uruchomione bez kontroli zadań.
.TP 
\fBgetopts\fP \fIłańcuch_opcji\fP \fInazwa\fP [\fIargumenty\fP]
\fBgetopts\fP używane jest przez procedury powłoki do analizy parametrów
pozycyjnych.  \fIŁańcuch opcji\fP zawiera znaki opcji, jakie mają być
rozpoznawane; jeżeli po znaku występuje dwukropek, to oczekuje się, że opcja
będzie posiadać argument, który powinien być od niej oddzielony białym
znakiem.  Jako znaki opcji nie mogą wystąpić dwukropek i znak zapytania.
Przy każdym wywołaniu \fBgetopts\fP umieszcza następną opcję w zmiennej powłoki
\fInazwa\fP, inicjując \fInazwę\fP jeśli nie istniała. Indeks następnego argumentu
do przetwarzania umieszczany jest w zmiennej
.SM
\fBOPTIND\fP.
.SM
\fBOPTIND\fP inicjowany jest na 1 za każdym razem, gdy wywoływana jest powłoka
lub skrypt powłoki. Gdy opcja wymaga argumentu, \fBgetopts\fP umieszcza go w
zmiennej
.SM
\fBOPTARG\fP.  Powłoka nie resetuje
.SM
\fBOPTIND\fP
automatycznie; musi być on resetowany ręcznie pomiędzy wielokrotnymi
odwołaniami do \fBgetopts\fP w tym samym wywołaniu powłoki, jeśli używany ma
być nowy zestaw parametrów.
.sp 1
Po napotkaniu końca opcji, \fBgetopts\fP kończy pracę zwracając wartość większą
od zera.
.SM
\fBOPTIND\fP ustawiane jest na indeks pierwszego argumentu nie
będącego opcją, zaś \fBnazwa\fP ustawiana jest na ?.
.sp 1
\fBgetopts\fP normalnie analizuje parametry pozycyjne, ale jeśli w
\fIargumentach\fP, podano więcej argumentów, to \fBgetopts\fP przetwarza je
zamiast parametrów pozycyjnych.
.sp 1
\fBgetopts\fP może zgłaszać błędy na dwa sposoby. Jeżeli pierwszym znakiem
\fIłańcucha opcji\fP jest dwukropek, to stosowane jest \fIciche\fP (silent)
zgłaszanie błędów. Przy zwykłej pracy komunikaty diagnostyczne wypisywane są
przy napotkaniu nieprawidłowych opcji lub brakujących argumentów opcji.
Jeżeli zmienna
.SM
\fBOPTERR\fP ustawiona jest na 0, nie będą wyświetlane
żadne komunikaty błędów, nawet jeśli pierwszym znakiem \fIłańcucha opcji\fP nie
jest dwukropek.
.sp 1
Przy napotkaniu nieprawidłowej opcji \fBgetopts\fP umieszcza ? w \fInazwie\fP i,
jeśli nie pracuje w trybie cichym, wypisuje komunikat błędu i kasuje
.SM
\fBOPTARG\fP.  Jeżeli \fBgetopts\fP pracuje w trybie cichym, to znaleziony znak
opcji umieszczany jest w
.SM
\fBOPTARG\fP i nie jest wypisywany żaden
komunikat diagnostyczny.
.sp 1
Jeśli nie znaleziono wymaganego argumentu, a \fBgetopts\fP nie pracuje w trybie
cichym, w \fInazwa\fP umieszczany jest znak zapytania (\^\fB?\fP\^), kasowane jest
.SM
\fBOPTARG\fP i wyświetlany jest komunikat błędu.  Jeżeli \fBgetopts\fP
pracuje w trybie cichym, to w \fInazwie\fP umieszczany jest dwukropek
(\^\fB:\fP\^), a
.SM
\fBOPTARG\fP ustawiane jest na znaleziony znak opcji.
.sp 1
\fBgetopts\fP zwraca prawdę, jeśli znaleziono określoną lub nie określoną
opcję.  Zwraca fałsz jeżeli napotkano koniec opcji lub pojawił się błąd.
.TP 
\fBhash\fP [\fB\-lr\fP] [\fB\-p\fP \fIplik\fP] [\fB\-dt\fP] [\fInazwa\fP]
Dla każdej \fInazwy\fP określana i zapamiętywana jest pełna nazwa plikowa
polecenia wyszukanego w katalogach \fB$PATH\fP. Jeżeli podano opcję \fB\-p\fP, nie
jest wykonywane przeszukanie ścieżki, a \fIplik\fP używane jest jako pełna
nazwa pliku polecenia.  Opcja \fB\-r\fP powoduje, że powłoka zapomina wszystkie
zapamiętane wcześniej miejsca. Opcja \fB\-d\fP powoduje, że powłoka zapomina
wszystkie zapamiętane wcześniej miejsca dla każdej \fInazwy\fP. Jeśli podano
opcję \fB\-t\fP, to wypisywana jest odpowiadająca \fInazwie\fP pełna nazwa pliku.
Jeżeli przy więcej niż jednym argumencie \fInazwy\fP podano \fB\-t\fP, to przed
każdą przechowywaną pełną nazwą wypisywana jest \fInazwa\fP.  Opcja \fB\-l\fP
powoduje wyświetlanie wyniku w formacie, który może zostać ponownie
wykorzystany jako wejście. Jeżeli nie podano żadnych argumentów, to
wypisywana jest informacja o zapamiętanych poleceniach.  Kodem zwracanym
jest prawda, chyba że nie odnaleziono \fInazwy\fP lub podano nieprawidłową
opcję.
.TP 
\fBhelp\fP [\fB\-dms\fP] [\fIwzorzec\fP]
Wyświetla pomocne informacje o poleceniach wbudowanych. Jeżeli podano
\fIwzorzec\fP, to \fBhelp\fP daje szczegółową pomoc dotyczącą wszystkich poleceń
pasujących do \fIwzorca\fP; w przeciwnym razie wypisywana jest pomoc dla
wszystkich poleceń wbudowanych i struktur sterujących powłoki.
.RS
.PD 0
.TP 
\fB\-d\fP
Wyświetla krótki opis dla każdego \fIwzorca\fP
.TP 
\fB\-m\fP
Wyświetla opis dla każdego \fIwzorca\fP w formacie podobnym do strony man
.TP 
\fB\-s\fP
Wyświetla jedynie krótkie podsumowanie użycia każdego \fIwzorca\fP
.PD
.PP
Kodem zakończenia jest 0, chyba nie nie dopasowano żadnego polecenia do
\fIwzorca\fP.
.RE
.TP 
\fBhistory [\fP\fIn\fP\fB]\fP
.PD 0
.TP 
\fBhistory\fP \fB\-c\fP
.TP 
\fBhistory \-d\fP \fIprzesunięcie\fP
.TP 
\fBhistory\fP \fB\-anrw\fP [\fIplik\fP]
.TP 
\fBhistory\fP \fB\-p\fP \fIarg\fP [\fIarg ...\fP]
.TP 
\fBhistory\fP \fB\-s\fP \fIarg\fP [\fIarg ...\fP]
.PD
Bez żadnych opcji, wyświetla listę historii poleceń z numerami wierszy.
Wiersze ukazane z \fB*\fP zostały zmienione. Argument \fIn\fP pokazuje jedynie
ostatnich \fIn\fP wierszy. Jeśli ustawiono zmienną powłoki
.SM
\fBHISTTIMEFORMAT\fP i nie jest ona pusta, to do wyświetlania pieczątek
czasowych związanych z każdym wyświetlanym wpisem historii używany jest
format łańcucha do \fIstrftime\fP(3). Pomiędzy formatowaną pieczątką czasową a
wierszem historii nie jest wstawiany odstęp. Jeżeli podano \fIplik\fP, to
używany jest on jako nazwa pliku historii; jeśli nie, to używana jest
wartość
.SM
\fBHISTFILE\fP.  Opcje, jeżeli je podano, mają następujące
znaczenie:
.RS
.PD 0
.TP 
\fB\-c\fP
Czyści listę historii usuwając wszystkie jej pozycje.
.TP 
\fB\-d\fP \fIprzesunięcie\fP
Usuwa wpis historii z pozycji \fIprzesunięcie\fP.
.TP 
\fB\-a\fP
Dodaje ,,nowe\*(rq wiersze (wprowadzone od początku bieżącej sesji \fBbash\fP)  do
pliku historii.
.TP 
\fB\-n\fP
Wczytuje do bieżącej listy wiersze jeszcze nie przeczytane z pliku
historii. Są to wiersze dołączone do pliku historii od chwili rozpoczęcia
bieżącej sesji pracy \fBbash\fP.
.TP 
\fB\-r\fP
Czyta zawartość pliku historii i dodaje ją do bieżącej listy historii.
.TP 
\fB\-w\fP
Zapisuje bieżącą listę historii do pliku historii, nadpisując jego
zawartość.
.TP 
\fB\-p\fP
Na zadanych \fIargumentach\fP wykonuje podstawianie historii (history
substitution). Wyświetla wyniki na standardowym wyjściu.  Nie zachowuje
wyników na liście.  Każdy z \fIargumentów\fP musi być cytowany, by wyłączyć
normalną interpretację historii.
.TP 
\fB\-s\fP
Zachowuje \fIargumenty\fP na liście historii jako pojedynczą pozycję. Przed
dodaniem \fIargumentów\fP z listy usuwane jest ostatnie polecenie.
.PD
.PP
Jeśli ustawiona jest zmienna
.SM
\fBHISTTIMEFORMAT\fP, to do pliku historii
zapisywana jest informacja o czasie związanym z każdym wpisem historii,
oznaczona znakiem komentarza historii. Gdy plik historii jest odczytywany,
wiersze zaczynające się znakiem komentarza historii, po którym występuje
bezpośrednio cyfra, są interpretowane jako czasy poprzedniego wiersza
historii. Wartością zwracaną jest 0, chyba że napotkano nieprawidłową opcję
lub podczas odczytu czy zapisu pliku historii pojawił się błąd, podano
niepoprawny argument \fIoffset\fP opcji \fB\-d\fP, lub nie powiodła się
interpretacja historii podanej jako argument \fB\-p\fP.
.RE
.TP 
\fBjobs\fP [\fB\-lnprs\fP] [ \fIzadanie\fP ... ]
.PD 0
.TP 
\fBjobs\fP \fB\-x\fP \fIpolecenie\fP [ \fIargumenty\fP ... ]
.PD
Pierwsza postać podaje aktywne zadania. Opcje mają następujące znaczenie:
.RS
.PD 0
.TP 
\fB\-l\fP
Oprócz zwykłej informacji podaje identyfikatory procesów.
.TP 
\fB\-n\fP
Wyświetla wyłącznie informację o zadaniach, które zmieniły status od chwili,
gdy użytkownik był ostatnio powiadamiany o ich statusie.
.TP 
\fB\-p\fP
Listuje tylko ID procesu lidera grupy procesów zadania.
.TP 
\fB\-r\fP
Wyświetla jedynie działające zadania.
.TP 
\fB\-s\fP
Wyświetla jedynie zatrzymane zadania.
.PD
.PP
Jeżeli podano \fIzadanie\fP, wyniki ograniczane są do informacji o tym
zadaniu.  Kodem zwracanym jest 0, chyba że napotkano nieprawidłową opcję lub
podano nieprawidłowe \fIzadanie\fP.
.PP
Jeżeli podano opcję \fB\-x\fP, to \fBjobs\fP zastępuje wszelkie \fIzadania\fP
znalezione w \fIpoleceniu\fP lub \fIargumentach\fP odpowiednim ID grupy procesów,
wykonuje \fIpolecenie\fP przesyłając mu \fIargumenty\fP, i zwraca jego kod
zakończenia.
.RE
.TP 
\fBkill\fP [\fB\-s\fP \fIsigspec\fP | \fB\-n\fP \fIsignum\fP | \fB\-\fP\fIsigspec\fP] [\fIpid\fP | \fIjobspec\fP] ...
.PD 0
.TP 
\fBkill\fP \fB\-l\fP [\fIsigspec\fP | \fIexit_status\fP]
.PD
Wysyła sygnały określony przez \fIsigspec\fP lub \fIsignum\fP do procesu
określonego przez \fIpid\fP lub \fIjobspec\fP.  \fIsigspec\fP jest albo nazwą
sygnału, jak np.
.SM
\fBSIGKILL\fP (z lub bez przedrostka
.SM
\fBSIG\fP)
albo numerem sygnału; \fIsignum\fP jest numerem sygnału. Jeśli nie podano
\fIsigspec\fP, to przyjmuje się
.SM
\fBSIGTERM\fP.  Opcja \fB\-l\fP listuje nazwy
sygnałów.  Jeżeli przy podanym \fB\-l\fP użyto jakichś argumentów, to listowane
są sygnały odpowiadające tym argumentom, a kodem zwracanym jest 0.  Argument
\fIexit_status\fP opcji \fB\-l\fP jest liczbą określającą numer sygnału lub kod
zakończenia procesu przerwanego przez sygnał.  \fBkill\fP zwraca prawdę, jeśli
przynajmniej jeden z sygnałów został pomyślnie przesłany, lub fałsz, jeśli
pojawił się błąd lub napotkano niepoprawną opcję.
.TP 
\fBlet\fP \fIarg\fP [\fIarg\fP ...]
Każdy \fIargument\fP jest wyrażeniem arytmetycznym, jakie ma zostać
zinterpretowane (zobacz
.SM
\fBOBLICZANIE WYRAŻEŃ ARYTMETYCZNYCH\fP).
Jeżeli ostatni z nich interpretowany jest jako zero, to \fBlet\fP zwraca 1; w
przeciwnym wypadku zwracane jest 0.
.TP 
\fBlocal\fP [\fIopcja\fP] [\fInazwa\fP[=\fIwartość\fP] ...]
Dla każdego argumentu tworzona jest zmienna lokalna o nazwie \fInazwa\fP i jest
jej przypisywana \fIwartość\fP.  \fIOpcją\fP może być każda z opcji akceptowanych
przez \fBdeclare\fP.  Gdy \fBlocal\fP używane jest wewnątrz funkcji, powoduje, że
zmienna \fInazwa\fP ma zasięg widzialności ograniczony do tej funkcji i jej
potomków.  Bez operandów, \fBlocal\fP wysyła listę zmiennych lokalnych na
standardowe wyjście. Błędem jest użycie \fBlocal\fP poza funkcją.  Zwracany
jest kod 0, chyba że \fBlocal\fP zostanie użyte poza funkcją lub podano
nieprawidłową \fInazwę\fP, albo \fInazwa\fP jest zmienną tylko do odczytu.
.TP 
\fBlogout\fP
Kończy pracę powłoki zgłoszeniowej.
.TP 
\fBmapfile\fP [\fB\-n\fP \fIliczba\fP] [\fB\-O\fP \fIindeks\fP] [\fB\-s\fP \fIliczba\fP] [\fB\-t\fP] [\fB\-u\fP \fIfd\fP] [\fB\-C\fP \fIwywoł\-zwr\fP] [\fB\-c\fP \fIwielkość\fP] [\fItablica\fP]
.PD 0
.TP 
\fBreadarray\fP [\fB\-n\fP \fIliczba\fP] [\fB\-O\fP \fIindeks\fP] [\fB\-s\fP \fIliczba\fP] [\fB\-t\fP] [\fB\-u\fP \fIfd\fP] [\fB\-C\fP \fIwywoł\-zwr\fP] [\fB\-c\fP \fIwielkość\fP] [\fItablica\fP]
.PD
Odczytuje wiersze ze standardowego wejścia do indeksowanej zmiennej
tablicowej \fItablica\fP lub, jeśli podano opcję \fB\-u\fP, z deskryptora pliku
\fIfd\fP. Domyślną \fItablicą\fP jest zmienna
.SM
\fBMAPFILE\fP Opcje, jeśli je
podano, mają następujące znaczenie:
.RS
.PD 0
.TP 
\fB\-n\fP
Kopiuje najwyżej \fIliczbę\fP wierszy. Gdy \fIliczba\fP wynosi 0, kopiowane są
wszystkie wiersze.
.TP 
\fB\-O\fP
Rozpoczyna przypisywanie do \fItablicy\fP od indeksu \fIindeks\fP. Domyślnym jest
0.
.TP 
\fB\-s\fP
Pomija pierwsze \fIliczba\fP wierszy.
.TP 
\fB\-t\fP
Usuwa końcowe znaki nowego wiersza z każdego odczytanego wiersza.
.TP 
\fB\-u\fP
Odczytuje wiersze z deskryptora pliku \fIfd\fP zamiast ze standardowego
wejścia.
.TP 
\fB\-C\fP
Oblicza \fIwywoł\-zwr\fP po każdym odczytaniu liczby \fIwielkość\fP wierszy. Opcja
\fB\-c\fP określa \fIwielkość\fP.
.TP 
\fB\-c\fP
Określa liczbę wierszy odczytanych pomiędzy każdym odwołaniem do
\fIwywoł\-zwr\fP.
.PD
.PP
Jeśli podano \fB\-C\fP bez \fB\-c\fP, to domyślną wielkością jest 5000. Gdy
wykonywane jest \fIwywoł\-zwr\fP, jako dodatkowe argumenty przekazywane są mu
indeks następnego elementu tablicy do przypisania i wiersza, który ma być
przypisy do tego elementu. \fIWywoł\-zwr\fP jest wykonywane po odczytaniu
wiersza, ale przed przypisaniem elementu tablicy.
.PP
Jeśli nie podano indeksu, \fBmapfile\fP wyczyści \fItablicę\fP przed przypisaniem
do niej wartości.
.PP
Polecenie \fBmapfile\fP zwraca sukces, chyba że podano nieprawidłową opcję lub
argument opcji, \fItablica\fP jest nieprawidłowa, nie da się do niej przypisać
wartości lub nie jest tablicą indeksowaną.
.RE
.TP 
\fBpopd\fP [\-\fBn\fP] [+\fIn\fP] [\-\fIn\fP]
Usuwa pozycje ze stosu katalogów. Bez argumentów, usuwa katalog z
wierzchołka stosu i wykonuje \fBcd\fP do nowego katalogu na wierzchołku.
Argumenty, jeśli występują, mają następujące znaczenie:
.RS
.PD 0
.TP 
\fB\-n\fP
Nie wykonuje zwykłej zmiany katalogu podczas usuwania katalogów ze stosu,
tak że zmieniany jest tylko stos.
.TP 
\fB+\fP\fIn\fP
Usuwa \fIn\fPtą pozycję, licząc od lewej, listy pokazywanej przez \fBdirs\fP,
zaczynając od zera. Na przykład
.if  n ``popd +0''
.if  t \f(CWpopd +0\fP
usuwa pierwszy katalog, a
.if  n ``popd +1''
.if  t \f(CWpopd +1\fP
drugi.
.TP 
\fB\-\fP\fIn\fP
Usuwa \fIn\fPtą pozycję, licząc od prawej, listy pokazywanej przez \fBdirs\fP,
zaczynając od zera. Na przykład
.if  n ``popd -0''
.if  t \f(CWpopd -0\fP
usuwa ostatni katalog, a
.if  n ``popd -1''
.if  t \f(CWpopd -1\fP
przedostatni.
.PD
.PP
Jeżeli polecenie \fBpopd\fP powiedzie się, to wykonywane jest również \fBdirs\fP,
a kodem zwracanym jest 0.  \fBpopd\fP zwraca fałsz jeśli napotkano
nieprawidłową opcję, stos katalogów jest pusty, podano nieistniejącą pozycję
stosu lub nie udała się zmiana katalogu.
.RE
.TP 
\fBprintf\fP [\fB\-v\fP \fIzmienna\fP] \fIformat\fP [\fIargumenty\fP]
Zapisuje sformatowane \fIargumenty\fP na standardowe wyjście przy pomocy
zadanego \fIformatu\fP. Opcja \fB\-v\fP przypisuje wynik do zmiennej \fIzmienna\fP
zamiast wyświetlać je na standardowe wyjściowe.
.sp 1
\fIformat\fP jest łańcuchem znakowym zawierającym trzy rodzaje obiektów: zwykłe
znaki, które są po prostu kopiowane na standardowe wyjście, sekwencje
specjalne, które są konwertowane i kopiowane na standardowe wyjście, i
specyfikacje formatu, z których każda powoduje wypisanie następnego
kolejnego \fIargumentu\fP.  Oprócz standardowych formatów \fIprintf\fP(1),
interpretuje on również następujące rozszerzenia:
.RS
.PD 0
.TP 
\fB%b\fP
powoduje, że \fBprintf\fP interpretuje sekwencje specjalne w odpowiednim
\fIargumencie\fP, (z wyjątkiem \fB\ec\fP, które przerywa wypisywanie, odwrotnych
ukośników w \fB\e\(aq\fP, \fB\e"\fP i \fB\e?\fP, które nie są usuwane i cytowań
ósemkowych zaczynających się od \fB\e0\fP, które mogą zawierać do czterech
cyfr).
.TP 
\fB%q\fP
powoduje, że \fBprintf\fP wysyła odpowiedni \fIargument\fP w formacie, jaki może
być ponownie wykorzystany jako wejście powłoki.
.TP 
\fB%(\fP\fIformat\-daty\fP\fB)T\fP
powoduje, że \fBprintf\fP wyświetla łańcuch daty/czasu jako rezultat użycia
\fIformatu\-daty\fP jako łańcucha formatu do \fIstrftime\fP(3). Powiązany
\fIargument\fP jest liczba całkowitą odpowiadającą liczbie sekund od początku
epoki [Uniksa]. Można użyć dwóch specjalnych wartości argumentu: \-1
reprezentuje bieżący czas, a \-2 odpowiada czasowi wywołania powłoki. Jeśli
nie poda się argumentu, konwersja przebiega tak, jak gdyby podano \-1. Jest
to wyjątek w zwyczajnym zachowaniu \fBprintf\fP.
.PD
.PP
Argumenty do specyfikacji formatu niebędących łańcuchami są traktowane jako
stałe C, z wyjątkiem początkowego znaku plus lub minus, który jest dozwolony
oraz przypadku gdy pierwszy znak jest pojedynczym lub podwójnym apostrofem,
gdy wartością jest wartość ASCII następującego po cudzysłowie znaku.
.PP
W razie potrzeby \fIformat\fP wykorzystywany jest ponownie, aż do obsłużenia
wszystkich \fIargumentów\fP.  Jeżeli \fIformat\fP wymaga większej ilości
\fIargumentów\fP niż podano, to dodatkowe specyfikacje formatu zachowują się
tak, jakby dostarczono im odpowiednio wartość zerową lub łańcuch pusty.
Zwracana jest wartość zero w przypadku powodzenia, niezerowa przy porażce.
.RE
.TP 
\fBpushd\fP [\fB\-n\fP] [+\fIn\fP] [\-\fIn\fP]
.PD 0
.TP 
\fBpushd\fP [\fB\-n\fP] [\fIkatalog\fP]
.PD
Dodaje katalog na wierzchołek stosu katalogów, albo obraca stos, czyniąc
nowy wierzchołek stosu bieżącym katalogiem roboczym.  Bez argumentów,
zamienia miejscami dwa najwyższe katalogi stosu [wierzchołek i następny] i
zwraca 0, chyba że stos jest pusty.  Argumenty, jeśli je podano, mają
następujące znaczenie:
.RS
.PD 0
.TP 
\fB\-n\fP
Nie wykonuje zwykłej zmiany katalogu podczas dodawania katalogów do stosu,
tak że zmieniany jest tylko stos.
.TP 
\fB+\fP\fIn\fP
Obraca stos, tak że \fIn\fPty katalog (licząc od lewej listy pokazywanej przez
\fBdirs\fP, poczynając od zera)  staje się wierzchołkiem.
.TP 
\fB\-\fP\fIn\fP
Obraca stos, tak że \fIn\fPty katalog (licząc od prawej listy pokazywanej przez
\fBdirs\fP, poczynając od zera)  staje się wierzchołkiem.
.TP 
\fIkatalog\fP
Odkłada \fIkatalog\fP na wierzchołek stosu, czyniąc go nowym bieżącym
katalogiem roboczym, jak gdyby podano go jako argument do polecenia
wbudowanego \fBcd\fP.
.PD
.PP
Jeżeli polecenie \fBpushd\fP powiodło się, to wykonywane jest również \fBdirs\fP.
Jeżeli używana jest pierwsza postać \fBpushd\fP, to zwracane jest 0, chyba że
nie udało się cd na \fIkatalog\fP.  Przy drugiej postaci, \fBpushd\fP zwraca 0,
chyba że stos katalogów jest pusty, podano nieistniejący element stosu lub
nie powiodła się zmiana katalogu na zadany nowy katalog bieżący.
.RE
.TP 
\fBpwd\fP [\fB\-LP\fP]
Wypisuje bezwzględną nazwę pliku bieżącego katalogu roboczego.  Pokazana
nazwa nie zawiera żadnych dowiązań symbolicznych jeśli podano opcję \fB\-P\fP
albo włączona jest opcja \fB\-o physical\fP wbudowanego polecenia \fBset\fP.  Jeśli
użyto opcji \fB\-L\fP, wypisana nazwa ścieżkowa może zawierać dowiązania
symboliczne.  Zwracany kod wynosi 0, chyba że podczas odczytu nazwy
bieżącego katalogu pojawi się błąd lub podano nieprawidłową opcję.
.TP 
\fBread\fP [\fB\-ers\fP] [\fB\-a\fP \fIanazwa\fP] [\fB\-d\fP \fIznak\-odst\fP] [\fB\-i\fP \fItekst\fP] [\fB\-n\fP \fInznaki\fP] [\fB\-N\fP \fInznaki\fP] [\fB\-p\fP \fIzachęta\fP] [\fB\-t\fP \fIczas\-oczek\fP] [\fB\-u\fP \fIfd\fP] [\fInazwa\fP ...]
Czytany jest pojedynczy wiersz ze standardowego wejścia lub z deskryptora
pliku \fIfd\fP podanego jako argument do opcji \fB\-u\fP, a jego pierwsze słowo
jest przypisywane do pierwszej \fInazwy\fP, drugie słowo do drugiej \fInazwy\fP i
tak dalej, przy czym pozostałe na koniec słowa i rozdzielające je separatory
przypisane zostaną do ostatniej \fInazwy\fP. Jeżeli ze standardowego wejścia
przeczytano mniej słów niż podanych zostało nazw, to pozostałym nazwom
przypisywane są puste wartości. Do podziału wiersza na słowa wykorzystywane
są znaki z
.SM
\fBIFS\fP, korzystając z tych samych zasad, jakich powłoka
używa do interpretacji (opisanych powyżej w rozdziale \fBPodział na
słowa\fP). Znaku odwrotnego ukośnika (\fB\e\fP) można użyć do usunięcia
specjalnego znaczenia następnego czytanego znaku oraz do oznaczenia
kontynuacji wiersza. Opcje, jeśli je podano, mają następujące znaczenie:
.RS
.PD 0
.TP 
\fB\-a \fP\fIanazwa\fP
Słowa są przypisywane do kolejnych indeksów zmiennej tablicowej \fIanazwa\fP,
poczynając od 0.  \fIanazwa\fP jest kasowana przed przypisaniem nowych
wartości.  Inne argumenty \fInazwa\fP są ignorowane.
.TP 
\fB\-d \fP\fIsep\fP
Pierwszy znak \fIsep\fP służy do zakończenia wiersza wejścia, zamiast znaku
nowej linii.
.TP 
\fB\-e\fP
Jeżeli standardowe wejście pochodzi z terminala, to do uzyskania wiersza
używane jest \fBreadline\fP (zobacz
.SM
\fBREADLINE\fP powyżej). Readline używa
bieżących (lub domyślnych, jeśli edycja wiersza nie była wcześniej aktywna)
ustawień edycyjnych.
.TP 
\fB\-i \fP\fItekst\fP
Gdy do odczytu wiersza jest używane \fBreadline\fP, \fItekst\fP jest umieszczany w
buforze edycyjnym przed rozpoczęciem edycji.
.TP 
\fB\-n \fP\fInznaki\fP
\fBread\fP powraca po przeczytaniu \fInznaki\fP znaków, zamiast czekać na cały
wiersz wejścia, ale przestrzega znaku odstępu jeśli odczytano mniej niż
\fInznaki\fP znaków przed odstępem.
.TP 
\fB\-N \fP\fInznaki\fP
Polecenie \fBread\fP powraca pod przeczytaniu dokładnie \fInznaków\fP, zamiast
czekać na cały wiersz wejścia, chyba że wystąpił koniec wiersza lub czas
oczekiwania \fBread\fP minął. Znaki odstępu napotkane w wejściu nie są
traktowane w sposób specjalny i nie powodują powrotu \fBread\fP, dopóki nie
zostanie przeczytanych \fInznaków\fP.
.TP 
\fB\-p \fP\fIzachęta\fP
Wyświetla \fIzachętę\fP (prompt) na standardowym wyjściu błędów, bez kończącego
znaku nowej linii, przed próbą odczytu wejścia.  Zachęta wyświetlana jest
tylko jeśli wejście pochodzi z terminala.
.TP 
\fB\-r\fP
Odwrotny ukośnik nie działa jako znak specjalny. Traktowany jest jako część
wiersza. W szczególności, para odwrotny ukośnik\-znak nowej linii nie może
być wykorzystana jako kontynuacja wiersza.
.TP 
\fB\-s\fP
Tryb cichy. Jeżeli wejście pochodzi z terminala, to znaki nie są powtarzane
(bez echa).
.TP 
\fB\-t \fP\fIczas\-oczek\fP
Powoduje, że \fBread\fP zwraca niepowodzenie, jeśli w ciągu \fIczas\-oczek\fP
sekund nie zostanie przeczytany pełny wiersz wejścia (lub określona liczba
znaków). \fICzas\-oczek\fP może być liczbą dziesiętną z częścią ułamkową po
znaku kropce. Opcja działa jedynie gdy \fBread\fP odczytuje wejście z
terminala, potoku lub innego pliku specjalnego, nie działa natomiast podczas
czytania ze zwykłych plików. Jeśli \fBread\fP przeterminuje się, \fBread\fP
zachowuje odczytane częściowe wejście do podanej zmiennej \fInazwa\fP. Jeśli
\fIczas\-oczek\fP ustawiono na 0, to \fBread\fP zwraca kod zakończenia natychmiast,
bez próby odczytu jakichkolwiek danych. Kodem zakończenia jest 0, jeśli
wejście jest dostępne na określonym deskryptorze pliku lub zwraca kod
niezerowy w przeciwnym wypadku. Kod zakończenia jest większy od 128, jeśli
przekroczono czas oczekiwania.
.TP 
\fB\-u \fP\fIfd\fP
Czyta wejście z deskryptora pliku \fIfd\fP.
.PD
.PP
Jeśli nie podano żadnych \fInazw\fP, odczytany wiersz przypisywany jest
zmiennej
.SM
\fBREPLY\fP.  Zwracany kod wynosi 0, chyba że napotkano koniec
pliku lub \fBread\fP przekroczy czas oczekiwania (w takim przypadku jest on
większy od 128) wystąpi błąd przypisania zmiennej (takich jak przypisanie do
zmiennej tylko do odczytu) lub jako argument do \fB\-u\fP podano nieprawidłowy
deskryptor pliku.
.RE
.TP 
\fBreadonly\fP [\fB\-aAf\fP] [\fB\-p\fP] [\fInazwa\fP[=\fIsłowo\fP] ...]
.PD
Podane \fInazwy\fP oznaczane są jako readonly; wartości tych \fInazw\fP nie mogą
być zmieniane następującymi później przypisaniami.  Jeśli podano opcję
\fB\-f\fP, oznaczane są funkcje o nazwach odpowiadających \fInazwom\fP.  Opcja
\fB\-a\fP ogranicza zmienne do tablic indeksowanych, a \fB\-A\fP do tablic
asocjacyjnych. Jeśli podano obie opcje, pierwszeństwo ma opcja \fB\-A\fP. Jeśli
nie podano argumentów \fInazw\fP lub jeśli podano opcję \fB\-p\fP, wypisywane jest
zestawienie wszystkich nazw o atrybucie readonly.  Inne opcje mogą zostać
użyte do ograniczenia wyniku do podzbioru nazw readonly. Opcja \fB\-p\fP
powoduje, że wyniki będą wyświetlane w formacie, który może być ponownie
wykorzystany jako wejście. Jeśli po nazwie zmiennej występuje =\fIsłowo\fP, to
wartość zmiennej jest ustawiana na \fIsłowo\fP. Zwracany jest kod równy 0,
chyba że napotkano nieprawidłową opcję, jedna z \fInazw\fP nie jest poprawną
nazwą zmiennej powłoki lub podano \fB\-f\fP z \fInazwą\fP, która nie jest funkcją.
.TP 
\fBreturn\fP [\fIn\fP]
Powoduje, że funkcja przerywa wykonywanie i zwraca wartość określoną przez
\fIn\fP do wywołującego. Jeśli pominięto \fIn\fP, kodem zakończenia jest kod
ostatniego polecenia wykonanego w ciele funkcji.  Jeżeli \fBreturn\fP zostanie
użyte poza funkcją, ale podczas wykonywania skryptu przez polecenie \fB.\fP
(\fBsource\fP), powoduje zatrzymanie wykonywania tego skryptu przez powłokę i
zwrócenie albo \fIn\fP albo kodu zakończenia ostatniego wykonanego w skrypcie
polecenia. Jeśli poda się \fIn\fP, zwracaną wartością jest 8 bitów najmniej
znaczących. Kod zakończenia jest niezerowy, jeśli \fBreturn\fP poda się
argument nienumeryczny lub jeżeli jest ono użyte poza funkcją i nie podczas
wykonywania skryptu przez \fB.\fP\^ lub \fBsource\fP. Wszystkie polecenia związane
z pułapką (trap) \fBRETURN\fP są wykonywane przez wznowieniem wykonywania po
powrocie do funkcji lub skryptu.
.TP 
\fBset\fP [\fB\-\-abefhkmnptuvxBCEHPT\fP] [\fB\-o\fP \fIopcja\fP] [\fIarg\fP ...]
.PD 0
.TP 
\fBset\fP [\fB+abefhkmnptuvxBCEHPT\fP] [\fB+o\fP \fIopcja\fP] [\fIarg\fP ...]
.PD
Bez opcji, wyświetlane są nazwa i wartość każdej ze zmiennych powłoki, w
formacie który może być ponownie wykorzystany jako wejście do ustawiania lub
ponownego ustawiania aktualnie ustawionych zmiennych. Zmienne tylko do
odczytu nie mogą być ponownie ustawiane. W trybie \fIposix\fP, wypisywane są
jedynie zmienne powłoki. Wyniki są sortowane zgodnie z bieżącymi
ustawieniami locale. Gdy podane są opcje, ustawiają one lub kasują atrybuty
powłoki. Argumenty pozostałe po przetworzeniu opcji traktowane są jako
wartości parametrów pozycyjnych i przypisywane, kolejno, do \fB$1\fP, \fB$2\fP,
\&\fB...\fP \fB$\fP\fIn\fP.  Opcje, jeśli je podano, mają następujące znaczenie:
.RS
.PD 0
.TP  8
\fB\-a\fP
Automatycznie zaznacza zmienione lub utworzone zmienne i funkcje do
wyeksportowania ich do środowiska kolejnych poleceń.
.TP  8
\fB\-b\fP
Natychmiast podaje status zakończonych zadań drugoplanowych, zamiast czynić
to przed następną podstawową zachętą. Działa tylko jeśli włączona jest
kontrola zadań.
.TP  8
\fB\-e\fP
Zakończ natychmiast, jeśli \fIpotok\fP (który może składać się z pojedynczego
\fIpolecenia prostego\fP), \fIlisty\fP lub \fIpolecenia złożonego\fP (zob.
.SM
\fBGRAMATYKA POWŁOKI\fP powyżej) kończy pracę z kodem niezerowym. Powłoka nie
kończy pracy jeśli polecenie, które się nie powiodło znajduje się zaraz za
słowem kluczowym \fBwhile\fP lub \fBuntil\fP, jest częścią tekstu po słowach
zastrzeżonych \fBif\fP lub \fBelif\fP, jest częścią listy \fB&&\fP lub \fB\(bv\(bv\fP,
jest częścią każdego poza ostatnim poleceniem potoku, lub wartość zwrócona
przez polecenie została odwrócona przez \fB!\fP. Jeśli polecenie złożone inne
niż podpowłoka zwróci niezerowy status z powodu niepowodzenia polecenia, gdy
\fB\-e\fP było ignorowane, powłoka nie wyjdzie. Przed zakończeniem pracy powłoki
wykonywana jest pułapka na sygnał \fBERR\fP, jeśli była ustawiona. Ta opcja
stosuje się do środowiska powłoki i oddzielnie do każdej podpowłoki
środowiska (zobacz
.SM
\fBŚRODOWISKO\fP \fBWYKONYWANIA\fP \fBPOLECEŃ\fP powyżej) i
może spowodować zakończenie podpowłok przed wykonaniem wszystkich poleceń w
podpowłoce.
.if  t .sp 0.5
.if  n .sp 1
Jeśli polecenie złożone lub funkcja powłoki jest wykonywana w kontekście, w
którym \fB\-e\fP jest ignorowane, to żadne z poleceń wykonywanych w poleceniu
złożonym lub ciele funkcji nie zostanie dotknięte ustawieniem \fB\-e\fP, nawet
jeśli \fB\-e\fP jest ustawione, a polecenie zwróci kod błędu. Jeśli polecenie
złożone lub funkcja powłoki ustawi \fB\-e\fP w trakcie wykonywania w kontekście,
w którym \fB\-e\fP jest ignorowane, to ustawienie nie odniesie żadnego skutku
dopóki polecenie złożone lub polecenie zawierające wywołanie funkcji nie
zakończy się.
.TP  8
\fB\-f\fP
Wyłącza rozwijanie nazw plików.
.TP  8 
\fB\-h\fP
Zapamiętuje położenie poleceń przy wyszukiwania ich do wykonania.  Domyślnie
włączone.
.TP  8
\fB\-k\fP
Wszystkie argumenty występujące w postaci instrukcji przypisania umieszczane
są w środowisku polecenia, nie zaś tylko te, które poprzedzają nazwę
polecenia.
.TP  8
\fB\-m\fP
Tryb monitorowania. Włączona jest kontrola zadań. Opcja ta jest domyślnie
włączona dla powłok interaktywnych na systemach ją obsługujących (zobacz
.SM
\fBSTEROWANIE ZADANIAMI\fP powyżej). Wszystkie procesy działają w
odrębnej grupie procesów. Gdy zadanie działające w tle zakończy się, powłoka
wypisuje wiersz zawierający jego kod zakończenia.
.TP  8
\fB\-n\fP
Odczytuje polecenia, ale nie ich nie wykonuje. Może być wykorzystane do
sprawdzenia błędów składni w skrypcie powłoki. Ignorowane przez powłoki
interaktywne.
.TP  8
\fB\-o \fP\fInazwa\-opcji\fP
\fINazwą\-opcji\fP może być jedna z poniższych:
.RS
.TP  8
\fBallexport\fP
To samo, co \fB\-a\fP.
.TP  8
\fBbraceexpand\fP
To samo, co \fB\-B\fP.
.TP  8
\fBemacs\fP
Użyj interfejsu edycji wiersza poleceń w stylu emacsa. Włączone domyślnie,
jeśli powłoka jest interaktywna, chyba że została uruchomiona z opcją
\fB\-\-noediting\fP. Wpływa to również na interfejs edycyjny używany przez \fBread
\-e\fP.
.TP  8
\fBerrexit\fP
To samo, co \fB\-e\fP.
.TP  8
\fBerrtrace\fP
To samo, co \fB\-E\fP.
.TP  8
\fBfunctrace\fP
To samo, co \fB\-T\fP.
.TP  8
\fBhashall\fP
To samo, co \fB\-h\fP.
.TP  8
\fBhistexpand\fP
To samo, co \fB\-H\fP.
.TP  8
\fBhistory\fP
Włącza historię poleceń, jak opisano powyżej w sekcji
.SM
\fBHISTORII\fP.
Opcja ta jest domyślnie włączona w powłokach interaktywnych.
.TP  8
\fBignoreeof\fP
Efekt jest taki, jakby zostało wykonane polecenie powłoki
.if  t \f(CWIGNOREEOF=10\fP
.if  n ``IGNOREEOF=10''
(zobacz powyżej \fBZmienne powłoki\fP).
.TP  8
\fBkeyword\fP
To samo, co \fB\-k\fP.
.TP  8
\fBmonitor\fP
To samo, co \fB\-m\fP.
.TP  8
\fBnoclobber\fP
To samo, co \fB\-C\fP.
.TP  8
\fBnoexec\fP
To samo, co \fB\-n\fP.
.TP  8
\fBnoglob\fP
To samo, co \fB\-f\fP.
.TP  8
\fBnolog\fP
Obecnie ignorowane.
.TP  8
\fBnotify\fP
To samo, co \fB\-b\fP.
.TP  8
\fBnounset\fP
To samo, co \fB\-u\fP.
.TP  8
\fBonecmd\fP
To samo, co \fB\-t\fP.
.TP  8
\fBphysical\fP
To samo, co \fB\-P\fP.
.TP  8
\fBpipefail\fP
Gdy ustawione, zwracana wartość potoku jest wartością ostatniego (po prawej)
polecenia, które zakończyło się z kodem niezerowym lub zero, gdy wszystkie
polecenia w potoku zakończyły się sukcesem. Opcja jest domyślnie wyłączona.
.TP  8
\fBposix\fP
Zmienia zachowanie \fBbash\fP tam, gdzie domyślne działanie różni się od
standardu POSIX, tak by spełniać standard (\fItryb posix\fP). Więcej informacji
o tym, jak tryb posix wpływa na zachowanie powłoki można znaleźć w
dokumencie do którego odsyła
.SM
\fBZOBACZ TAKŻE\fP.
.TP  8
\fBprivileged\fP
To samo, co \fB\-p\fP.
.TP  8
\fBverbose\fP
To samo, co \fB\-v\fP.
.TP  8
\fBvi\fP
Używa interfejsu edycji wiersza poleceń w stylu vi. Wpływa to również na
interfejs edycyjny używany przez \fBread \-e\fP.
.TP  8
\fBxtrace\fP
To samo, co \fB\-x\fP.
.sp .5
.PP
Jeżeli podano \fB\-o\fP bez \fInazwy\-opcji\fP, to wypisywane są wartości bieżących
opcji.  Jeżeli podano \fB+o\fP bez \fInazwy\-opcji\fP, na standardowym wyjściu
wyświetlana jest seria poleceń \fBset\fP potrzebnych do odtworzenia aktualnych
ustawień opcji.
.RE
.TP  8
\fB\-p\fP
Włącza tryb \fIuprzywilejowany\fP (privileged). W tym trybie pliki
.SM
\fB$ENV\fP i
.SM
\fB$BASH_ENV\fP nie są przetwarzane, funkcje powłoki nie są
dziedziczone ze środowiska, a zmienne
.SM
\fBSHELLOPTS,\fP
.SM
\fBBASHOPTS\fP,
.SM
\fBCDPATH\fP i
.SM
\fBGLOBIGNORE\fP, jeśli występują w
środowisku, są ignorowane.  Jeśli powłoka została uruchomiona z efektywnym
id użytkownika (grupy) różnym od id rzeczywistego a nie podano opcji \fB\-p\fP,
to podejmowane są opisane wyżej akcje a efektywny id użytkownika jest
ustawiany na identyfikator rzeczywisty. Jeżeli przy uruchamianiu podano
opcję \fB\-p\fP, to efektywny identyfikator użytkownika nie jest resetowany.
Wyłączenie tej opcji powoduje, że identyfikatory efektywne użytkownika i
grupy zostaną ustawione na identyfikatory rzeczywiste.
.TP  8
\fB\-t\fP
Kończy pracę po przeczytaniu i wykonaniu jednego polecenia.
.TP  8
\fB\-u\fP
Podczas interpretacji parametrów traktuje nieustawione zmienne i parametry
(poza parametrami specjalnymi "@" i "*") jako błąd.  Jeżeli wykonywana jest
próba interpretacji nieustawionej zmiennej, to powłoka wypisuje komunikat o
błędzie i, jeśli nie jest interaktywna, kończy pracę z niezerowym kodem.
.TP  8
\fB\-v\fP
Wypisuje wiersze wejściowe powłoki przy ich odczytywaniu.
.TP  8
\fB\-x\fP
Po interpretacji każdego \fIpolecenia prostego\fP, poleceń \fBfor\fP, \fBcase\fP i
\fBselect\fP lub polecenia arytmetycznego \fBfor\fP wyświetla zinterpretowaną
wartość
.SM
\fBPS4\fP, po której następuje polecenie i jego zinterpretowane
argumenty lub powiązana lista słów.
.TP  8
\fB\-B\fP
Powłoka wykonuje interpretacją nawiasów (zobacz \fBInterpretacja nawiasów\fP
powyżej). Domyślnie włączone.
.TP  8
\fB\-C\fP
Jeśli włączone, \fBbash\fP nie nadpisuje istniejącego pliku przy użyciu
operatorów przekierowania \fB>\fP, \fB>&\fP i \fB<>\fP.  Można to
ominąć tworząc pliki wyjściowe przy użyciu operatora przekierowania
\fB>|\fP zamiast \fB>\fP.
.TP  8
\fB\-E\fP
Gdy ustawiona, pułapka \fBERR\fP jest dziedziczona przez funkcje powłoki,
uzupełnienia poleceń i polecenia wykonywane w środowisku podpowłoki. Pułapka
\fBERR\fP normalnie nie jest dziedziczona w takich przypadkach.
.TP  8
\fB\-H\fP
Włącza zastępowanie historii w stylu \fB!\fP.  Opcja ta jest domyślnie włączona
dla powłoki interaktywnej.
.TP  8
\fB\-P\fP
Jeżeli jest ustawiona, to powłoka nie rozwiązuje dowiązań symbolicznych
podczas wykonywania poleceń zmieniających bieżący katalog roboczy, jak
\fBcd\fP. Używa zamiast tego fizycznej struktury katalogów. Domyślnie, \fBbash\fP
podąża za logicznym łańcuchem katalogów podczas wykonywania poleceń
zmieniających bieżący katalog roboczy.
.TP  8
\fB\-T\fP
Gdy ustawiona, pułapki \fBDEBUG\fP i \fBRETURN\fP są dziedziczone przez funkcje
powłoki, uzupełnienia poleceń i polecenia wykonywane w środowisku
podpowłoki. Pułapki \fBDEBUG\fP i \fBRETURN\fP nie są normalnie dziedziczone w
takich przypadkach.
.TP  8
\fB\-\-\fP
Jeżeli po tej opcji nie występują żadne argumenty, to parametry pozycyjne są
kasowane. W przeciwnym razie, parametry pozycyjne ustawiane są na
\fIargument\fPy, nawet jeśli niektóre z nich zaczynają się od znaku \fB\-\fP.
.TP  8
\fB\-\fP
Sygnalizuje koniec opcji, powodując przypisanie wszystkich pozostałych
\fIargument\fPów do parametrów pozycyjnych.  Opcje \fB\-x\fP i \fB\-v\fP są wyłączane.
Jeżeli nie ma \fIargumentów\fP, to parametry pozycyjne pozostają bez zmian.
.PD
.PP
Opcje są domyślnie wyłączone, chyba że wskazano inaczej.  Użycie + zamiast \-
spowoduje, że opcje te zostaną wyłączone.  Opcje mogą także zostać określone
jako argumenty wywołania powłoki.  Bieżący zestaw opcji można znaleźć w
\fB$\-\fP.  Zwracanym kodem jest zawsze prawda, chyba że napotkano nieprawidłową
opcję.
.RE
.TP 
\fBshift\fP [\fIn\fP]
Parametrom pozycyjnym od \fIn\fP+1 ... zmienia nazwy na \fB$1\fP
\&\fB....\fP. Parametry reprezentowane przez liczby \fB$#\fP w dół do \fB$#\fP\-\fIn\fP+1
są usuwane.  \fIn\fP musi być liczbą nieujemną mniejszą lub równą \fB$#\fP.
Jeżeli \fIn\fP wynosi 0, parametry nie są zmieniane.  Jeżeli nie podano \fIn\fP,
zakłada się, że wynosi 1.  Jeżeli \fIn\fP jest większe od \fB$#\fP, parametry
pozycyjne nie są zmieniane.  Kod zakończenia jest większy od zera jeżeli
\fIn\fP jest większe od \fB$#\fP lub mniejsze od zera; w przeciwnym wypadku 0.
.TP 
\fBshopt\fP [\fB\-pqsu\fP] [\fB\-o\fP] [\fInazwa_opcji\fP ...]
Przełącza wartości ustawień sterujących opcjonalnym zachowaniem
powłoki. Ustawieniami mogą być te wypisane poniżej lub, gdy użyje się opcji
\fB\-o\fP, ustawienia dostępne z opcją \fB\-o\fP do polecenia wbudowanego \fBset\fP.Bez
żadnych opcji, albo z opcją \fB\-p\fP, wyświetlana jest lista wszystkich
dających się ustawić opcji, ze wskazaniem dla każdej czy jest ona ustawiona
czy nie.  Opcja \fB\-p\fP powoduje, że wyniki będą wyświetlane w postaci dającej
się ponownie wykorzystać jako wejście.  Pozostałe opcje mają następujące
znaczenie:
.RS
.PD 0
.TP 
\fB\-s\fP
Włącz (ustaw) każdą \fInazwę_opcji\fP.
.TP 
\fB\-u\fP
Wyłącz (usuń) każdą \fInazwę_opcji\fP.
.TP 
\fB\-q\fP
Zaniechaj zwykłego wyświetlania (tryb cichy); zwracany kod wskazuje na to
czy \fInazwa_opcji\fP jest ustawiona czy nie ustawiona.  Jeżeli z \fB\-q\fP podano
wiele argumentów \fInazw_opcji\fP, to zwracanym kodem jest zero, gdy wszystkie
\fInazwy_opcji\fP są włączone; w przeciwnym razie kod jest niezerowy.
.TP 
\fB\-o\fP
Ogranicza wartości \fInazwy_opcji\fP do wartości zdefiniowanych dla opcji \fB\-o\fP
wbudowanego polecenia \fBset\fP.
.PD
.PP
Jeżeli użyto albo \fB\-s\fP albo \fB\-u\fP bez argumentów \fInazw_opcji\fP, \fBshopt\fP
pokazuje jedynie te opcji, które, odpowiednio, są ustawione bądź
nieustawione. Jeżeli nie wskazano inaczej, opcje \fBshopt\fP są domyślnie
wyłączone (nie ustawione).
.PP
Przy listowaniu opcji zwracany jest kod zerowy jeśli wszystkie
\fInazwy_opcji\fP są włączone, niezerowy w przeciwnym wypadku. Przy ustawianiu
lub kasowaniu opcji zwracany jest zerowy kod, chyba że \fInazwa_opcji\fP nie
jest poprawną opcją powłoki.
.PP
Lista opcji \fBshopt\fP obejmuje:
.if  t .sp .5v
.if  n .sp 1v
.PD 0
.TP  8
\fBautocd\fP
Jeśli jest ustawiona, nazwa polecenia będąca nazwą katalogu jest wykonywana
identycznie, jak gdyby była argumentem polecenia \fBcd\fP. Opcja ta jest
używana tylko w powłokach interaktywnych.
.TP  8
\fBcdable_vars\fP
Jeśli jest ustawiona, to nie będący katalogiem argument wbudowanego
polecenia \fBcd\fP uważany jest za nazwę zmiennej; wartością tej zmiennej jest
katalog, na który ma nastąpić zmiana.
.TP  8
\fBcdspell\fP
Jeśli jest ustawiona, to pomniejsze błędy w pisowni składowej katalogu w
poleceniu \fBcd\fP będą poprawiane.  Sprawdzenie takich błędów obejmuje znaki
zamienione miejscami, znaki pominięte i pojedyncze zbędne znaki. Jeżeli
znaleziono poprawkę, wypisywana jest poprawna nazwa pliku a polecenie
kontynuuje działanie. Opcja ta jest wykorzystywana tylko przez powłoki
interaktywne.
.TP  8
\fBcheckhash\fP
Jeśli jest ustawiona, \fBbash\fP sprawdza przed próbą wykonania polecenia
znalezionego w tablicy mieszającej, czy polecenie to istnieje. Jeżeli już
nie istnieje, to wykonywane jest zwykłe przeszukiwanie ścieżki.
.TP  8
\fBcheckjobs\fP
Jeśli jest ustawiona, \fBbash\fP wypisuje status każdego zatrzymanego i
działającego zadania, przed wyjściem z powłoki interaktywnej. Jeśli jakieś
zadanie działa, powoduje to odroczenia wyjścia do momentu, gdy zostanie
przeprowadzona druga próba wyjścia, bez uruchamiania dodatkowych poleceń
pomiędzy próbami (patrz
.SM
\fBKONTROLA ZADAŃ\fP powyżej). Powłoka zawsze
wstrzymuje wychodzenie, gdy jakiekolwiek zadanie jest zatrzymane.
.TP  8
\fBcheckwinsize\fP
Jeżeli jest ustawione, \fBbash\fP sprawdza rozmiar okna po każdym poleceniu i,
jeśli zachodzi potrzeba, aktualizuje wartość
.SM
\fBLINES\fP i
.SM
\fBCOLUMNS\fP.
.TP  8
\fBcmdhist\fP
Jeżeli jest ustawione, \fBbash\fP usiłuje zapisać wszystkie wiersze polecenia
wielowierszowego w tej samej pozycji historii. Pozwala to na łatwą ponowną
edycję poleceń obejmujących wiele wierszy.
.TP  8
\fBcompat31\fP
Gdy jest ustawiona, \fBbash\fP używa swego zachowania z wersji 3.1, respektując
argumenty cytowane do operatora \fB=~\fP polecenia warunkowego \fB[[\fP
orazporównywanie łańcuchów z uwzględnieniem locale, gdy używane są operatory
\fB<\fP i \fB>\fP polecenia warunkowego \fB[[\fP. Wersje do bash\-4.1 używają
kolejności ASCII i \fIstrcmp\fP(3); wersje od bash\-4.1 używają bieżącej
kolejności locale i \fIstrcoll\fP(3).
.TP  8
\fBcompat32\fP
Gdy jest ustawiona, \fBbash\fP używa swego zachowania z wersji 3.2, respektując
porównywanie łańcuchów z uwzględnieniem locale, gdy używane są operatory
\fB<\fP i \fB>\fP polecenia warunkowego \fB[[\fP (patrz poprzedni wpis
powyżej).
.TP  8
\fBcompat40\fP
Gdy jest ustawiona, \fBbash\fP używa swego zachowania z wersji 4.0, respektując
porównywanie łańcuchów z uwzględnieniem locale, gdy używane są operatory
\fB<\fP i \fB>\fP polecenia warunkowego \fB[[\fP (zob. opis \fBcompat31\fP) oraz
efekt przerywania listy poleceń. Bash w wersji 4.0 i późniejszych przerywa
listę jeśli powłoka otrzyma przerwanie; poprzednie wersje kontynuowały do
następnego polecenia w liście.
.TP  8
\fBcompat41\fP
Gdy ustawiona, \fBbash\fP, gdy jest w trybie \fIposix\fP, traktuje pojedyncze
cudzysłowy w interpretacji ujętej w podwójne cudzysłowy, jako znak
specjalny. Pojedynczy cudzysłów musi pasować (musi występować ich parzysta
liczba), a znaki pomiędzy pojedynczymi cudzysłowami są traktowane jako
cytowane. Jest to zachowanie trybu posix w wersji 4.1. Domyślne zachowania
basha pozostaje takie samo, jak w poprzednich wersjach.
.TP  8
\fBcompat42\fP
Gdy ustawiona, \fBbash\fP nie przeprowadza zamiany łańcuchów przy w
podstawianiu wzorców rozwijanych słów za pomocą usuwania cytowań.
.TP  8
\fBcomplete_fullquote\fP
Gdy ustawiona, \fBbash\fP cytuje wszystkie metaznaki powłoki w nazwach plików i
katalogów w trakcie wykonywania uzupełniania. Gdy nieustawiona, \fBbash\fP
usuwa metaznaki takie jak znak dolara z zestawu cytowanych znaków w
uzupełnianych nazwach plików, gdy te metaznaki pojawiają się w odniesieniach
do zmiennych powłoki, w słowach do uzupełnienia. Oznacza to, że znaki dolara
w nazwach zmiennych uzupełnianych do katalogów nie będą cytowane, jednak
znaki dolara pojawiające się w nazwach plików w ogóle nie będą
cytowane. Jest to aktywne tylko wówczas, gdy bash używa odwrotnego ukośnika
do cytowania uzupełnianych nazw plików. Zmienna ta jest domyslnie ustawiana,
co jest domyślnym zachowaniem basha w wersjach do 4.2.
.TP  8
\fBdirexpand\fP
Gdy ustawiona, \fBbash\fP zastępuje nazwy katalogów wynikami rozwijania słów
przy przeprowadzaniu uzupełnienia nazw plików. W ten sposób zmieniana jest
zawartość bufora edycji readline. Jeśli nie jest ustawiona, \fBbash\fP stara
się zachować treść wpisaną przez użytkownika.
.TP  8
\fBdirspell\fP
Jeżeli jest ustawiona, \fBbash\fP stara się poprawić pomyłki w nazwach
katalogów podczas uzupełniania słów, jeśli nazwa katalogu wprowadzonego
pierwotnie, nie istnieje.
.TP  8
\fBdotglob\fP
Jeżeli jest ustawione, to \fBbash\fP do wyników rozwinięcia nazw plików włącza
także nazwy plików rozpoczynające się kropką `.'.
.TP  8
\fBexecfail\fP
Jeżeli jest ustawione, to powłoka nie\-interaktywna nie zakończy pracy nie
mogąc wykonać pliku określonego jako argument wbudowanego polecenia
\fBexec\fP.  Powłoka interaktywna nie kończy pracy, jeśli \fBexec\fP zawiedzie.
.TP  8
\fBexpand_aliases\fP
Jeżeli jest ustawiona, aliasy są interpretowane jak opisano powyżej w
.SM
\fBALIASY\fP.  Opcja ta jest włączona domyślnie dla powłok interaktywnych.
.TP  8
\fBextdebug\fP
Gdy jest ustawiona, włączone jest zachowanie przeznaczone do użycia przez
debuggery:
.RS
.TP 
\fB1.\fP
Opcja \fB\-F\fP wbudowanego polecenia \fBdeclare\fP wyświetla nazwę pliku
źródłowego i numer wiersza odpowiadający każdej nazwie funkcji podanej jako
argument.
.TP 
\fB2.\fP
Jeśli polecenie uruchomione przez pułapkę \fBDEBUG\fP zwraca wartość niezerową,
kolejne polecenie jest pomijane i nie jest wykonywane.
.TP 
\fB3.\fP
Jeśli polecenie uruchamiane przez pułapkę \fBDEBUG\fP zwróci wartość 2, a
powłoka wykonywana w podprogramie (funkcja powłoki lub skrypt powłoki
wykonywany wbudowanymi \fB.\fP lub \fBsource\fP), to symulowane jest wywołanie do
\fBreturn\fP.
.TP 
\fB4.\fP
.SM
\fBBASH_ARGC\fP i
.SM
\fBBASH_ARGV\fP są aktualizowane zgodnie z opisem
w opisie tych zmiennych powyżej.
.TP 
\fB5.\fP
Włączone jest śledzenie funkcji: podstawianie poleceń, funkcje powłoki i
podpowłoki przywołane za pomocą \fB(\fP \fIpolecenie\fP \fB)\fP dziedziczą pułapki
\fBDEBUG\fP i \fBRETURN\fP.
.TP 
\fB6.\fP
Włączone jest śledzenie błędów: podstawianie poleceń, funkcje powłoki i
podpowłoki przywołane za pomocą \fB(\fP \fIpolecenie\fP \fB)\fP dziedziczą pułapkę
\fBERR\fP.
.RE
.TP  8
\fBextglob\fP
Jeśli jest włączona, włączane są rozszerzone funkcje dopasowywania wzorców
opisane powyżej w \fBRozwijanie nazw plików\fP.
.TP  8
\fBextquote\fP
Jeżeli jest włączona, cytowania \fB$\fP\(aq\fIłańcuch\fP\(aq and \fB$\fP"\fIłańcuch\fP"
są przeprowadzane wewnątrz interpretacji \fB${\fP\fIparametr\fP\fB}\fP ujętych w
podwójne cudzysłowy. Opcja jest domyślnie włączona.
.TP  8
\fBfailglob\fP
Jeśli jest włączona, wzorce do których nie dopasowano nazw plików podczas
rozwinięcia nazw plików, dają w wyniku błąd rozwinięcia (interpretacji).
.TP  8
\fBforce_fignore\fP
Jeśli jest ustawiona, przyrostki określone zmienną powłoki
.SM
\fBFIGNORE\fP
powodują ignorowanie słów podczas przeprowadzania uzupełniania słów nawet,
gdy ignorowane słowa są jedynymi dostępnymi uzupełnieniami. Proszę zapoznać
się z
.SM
\fBZMIENNE POWŁOKI\fP, aby uzyskać opis
.SM
\fBFIGNORE\fP. Opcja
jest domyślnie włączona.
.TP  8
\fBglobasciiranges\fP
Jeśli jest ustawiona, wyrażenia zakresu użyte we wzorcu dopasowującego
wyrażenia nawiasowe (zob.
.SM
\fBDopasowanie wzorca\fP powyżej) zachowują
się jak w tradycyjnym locale C przy przeprowadzaniu porównań. Znaczy to, że
sekwencja sortowania bieżącego locale nie jest brana pod uwagę, więc \fBb\fP
nie jest sortowane między \fBA\fP i \fBB\fP, a wielkie i małe znaki ASCII
są\ sortowane razem.
.TP  8
\fBglobstar\fP
Gdy jest ustawiona, wzorzec \fB**\fP używany w kontekście rozwijania nazw
plików, dopasowuje wszystkie pliki i zero lub więcej katalogów i
podkatalogów. Jeśli po wzorcu występuje \fB/\fP, to dopasowywane są jedynie
katalogi i podkatalogi.
.TP  8
\fBgnu_errfmt\fP
Jeżeli jest ustawiona, komunikaty błędów powłoki są wypisywane w
standardowym formacie błędów GNU.
.TP  8
\fBhistappend\fP
Jeżeli jest ustawiona, to do pliku o nazwie wskazanej zmienną
.SM
\fBHISTFILE\fP podczas kończenia pracy przez powłokę dodawana jest lista
historii, zamiast nadpisywania tego pliku listą.
.TP  8
\fBhistreedit\fP
Jeżeli jest ustawione, a używane jest \fBreadline\fP, to użytkownik ma
możliwość ponownej edycji nieudanego podstawienia historii historii.
.TP  8
\fBhistverify\fP
Jeżeli jest ustawione, a używane jest \fBreadline\fP, to wyniki podstawiania
historii nie są natychmiast przesyłane do analizatora powłoki. Zamiast tego,
wiersz wynikowy ładowany jest do bufora edycyjnego \fBreadline\fP, pozwalając
na dalsze zmiany.
.TP  8
\fBhostcomplete\fP
Jeżeli jest ustawione, a używane jest \fBreadline\fP, \fBbash\fP będzie usiłować
wykonać uzupełnianie nazwy hosta podczas uzupełniania słowa zawierającego
\fB@\fP (zobacz \fBUzupełnianie\fP w
.SM
\fBREADLINE\fP powyżej).  Domyślnie
włączone.
.TP  8
\fBhuponexit\fP
Jeżeli jest ustawione, to \fBbash\fP wyśle
.SM
\fBSIGHUP\fP do wszystkich zadań
podczas kończenia pracy interaktywnej powłoki zgłoszeniowej.
.TP  8
\fBinteractive_comments\fP
Jeśli jest włączone, pozwala by słowo rozpoczynające się od \fB#\fP powodowało
pominięcie tego słowa i wszystkich pozostałych znaków wiersza w powłoce
interaktywnej (zobacz powyżej
.SM
\fBKOMENTARZE).\fP Opcja domyślnie
włączona.
.TP  8
\fBlastpipe\fP
Jeśli jest ustawiona, a kontrola zadań nie jest aktywna, powłoka uruchamia
ostatnie polecenie potoku, który nie jest wykonywany w tle, w bieżącym
środowisku powłoki.
.TP  8
\fBlithist\fP
Jeśli jest ustawione, a włączona jest opcja \fBcmdhist\fP, to polecenia
wielowierszowe zachowywane są w historii w miarę możliwości z osadzonymi
znakami nowej linii zamiast przy użyciu średników jako separatorów.
.TP  8
\fBlogin_shell\fP
Powłoka ustawia tę opcję jeśli zostanie uruchomiona jako zgłoszeniowa
(zobacz
.SM
\fBWYWOŁANIE\fP powyżej).  Ta wartość nie może być zmieniona.
.TP  8
\fBmailwarn\fP
Jeżeli jest ustawione, zaś do pliku, w którym sprawdza pocztę \fBbash\fP
sięgano od czasu ostatniego sprawdzania, to zostanie wyświetlony komunikat
,,The mail in \fIplikpoczty\fP has been read\*(rq (Poczta w \fIplikpoczty\fP została
przeczytana).
.TP  8
\fBno_empty_cmd_completion\fP
Jeśli jest ustawione, i stosowane jest \fBreadline\fP, to \fBbash\fP nie będzie
usiłował szukać w \fBPATH\fP możliwych uzupełnień, gdy próba uzupełniania
wystąpi w pustym wierszu.
.TP  8
\fBnocaseglob\fP
Jeśli zostało ustawione, to \fBbash\fP przy rozwijaniu nazw plików dopasowuje
je nie zwracając uwagi na wielkość liter (zobacz \fBRozwijanie nazw plików\fP
powyżej).
.TP  8
\fBnocasematch\fP
Gdy jest ustawiona, \fBbash\fP dopasowuje wzorce ignorując wielkość liter,
podczas wykonywania dopasowania, w czasie wykonywania poleceń warunkowych
\fBcase\fP lub \fB[[\fP.
.TP  8
\fBnullglob\fP
Jeśli jest ustawione, to, \fBbash\fP pozwala by wzorce nie dopasowujące żadnych
plików (zobacz \fBRozwijanie nazw plików\fP powyżej)  rozwijały się w łańcuch
pusty, zamiast na same siebie.
.TP  8
\fBprogcomp\fP
Jeżeli jest ustawione, to włączone są usługi programowalnego uzupełniania
(zobacz powyżej \fBProgramowalne uzupełnianie\fP). Domyślnie włączone.
.TP  8
\fBpromptvars\fP
Jeżeli jest ustawione, to łańcuchy zachęty podlegają interpretacji zmiennych
i podstawianiu parametrów po interpretacji zachęty opisanej w
.SM
\fBZACHĘTA\fP powyżej. Opcja ta jest domyślnie włączona.
.TP  8
\fBrestricted_shell\fP
Powłoka ustawia tę opcję jeśli została uruchomiona w trybie okrojonym
(zobacz
.SM
\fBPOWŁOKA OKROJONA\fP poniżej).  Wartość ta nie może być
zmieniona.  Nie jest ona resetowana podczas odczytu plików startowych,
pozwalając im na odkrycie czy powłoka jest okrojona czy nie.
.TP  8
\fBshift_verbose\fP
Jeżeli jest ustawiona, to wbudowane \fBshift\fP wypisuje komunikat o błędzie
gdy liczba przesunięć (przez shift) przekracza liczbę parametrów
pozycyjnych.
.TP  8
\fBsourcepath\fP
Jeśli jest ustawiona, to polecenie wbudowane \fBsource\fP (\fB.\fP) posługuje się
wartością
.SM
\fBPATH\fP do znalezienia katalogu zawierającego plik podany
jako argument.  Opcja domyślnie włączona.
.TP  8
\fBxpg_echo\fP
Jeżeli jest ustawiona, to dla wbudowanego polecenia \fBecho\fP włączane jest
domyślne interpretowanie sekwencji specjalnych z odwrotnym ukośnikiem.
.RE
.PD
.TP 
\fBsuspend\fP [\fB\-f\fP]
Zawiesza wykonywanie tej powłoki do otrzymania przez nią sygnału
.SM
\fBSIGCONT\fP.  Opcja \fB\-f\fP mówi, by nie narzekać, jeśli użyto \fBsuspend\fP w
powłoce zgłoszeniowej; po prostu zawiesić mimo to. Kodem zwracanym jest 0,
chyba że powłoka jest powłoką zgłoszeniową i nie podano opcji \fB\-f\fP, lub gdy
nie jest włączona kontrola zadań.
.TP 
\fBtest\fP \fIwyraż\fP
.PD 0
.TP 
\fB[\fP \fIwyraż\fP \fB]\fP
Zwraca kod 0 (prawda) lub 1 (fałsz) w zależności od interpretacji wyrażenia
warunkowego \fIwyraż\fP.  każdy operator i operand musi być odrębnym
argumentem.  Wyrażenia składając się ze składowych opisanych powyżej w
.SM
\fBWYRAŻENIA\fP \fBWARUNKOWE\fP. \fBtest\fP nie akceptuje żadnych opcji, ani
nie akceptuje i nie ignoruje argumentu \fB\-\-\fP jako wskaźnika końca opcji.
.if  t .sp 0.5
.if  n .sp 1
Wyrażenia mogą być łączone przy użyciu poniższych operatorów, podanych w
kolejności malejącego priorytetu. Ich interpretacja zależy od liczby
argumentów; patrz niżej. Priorytet operatorów jest używany gdy występuje
pięć argumentów lub więcej.
.RS
.PD 0
.TP 
\fB! \fP\fIwyraż\fP
Prawda jeśli \fIwyraż\fP jest fałszem.
.TP 
\fB( \fP\fIwyraż\fP\fB )\fP
Zwraca wartość \fIwyraż\fP.  Może być stosowane do obejścia zwykłej kolejności
operatorów.
.TP 
\fIwyraż1\fP \-\fBa\fP \fIwyraż2\fP
Prawda jeśli oba: \fIwyraż1\fP i \fIwyraż2\fP są prawdziwe.
.TP 
\fIwyraż1\fP \-\fBo\fP \fIwyraż2\fP
Prawda jeśli \fIwyraż1\fP lub \fIwyraż2\fP jest prawdziwe.
.PD
.PP
\fBtest\fP i \fB[\fP interpretują wyrażenia warunkowe posługując się zestawem
reguł opartych o liczbę argumentów.
.if  t .sp 0.5
.if  n .sp 1
.PD 0
.TP 
0 argumentów
Wyrażenie jest fałszywe.
.TP 
1 argument
Wyrażenie jest prawdziwe wtedy i tylko wtedy gdy argument nie jest pusty
(null).
.TP 
2 argumenty
Jeśli pierwszym argumentem jest \fB!\fP, to wyrażenie jest prawdziwe wtedy i
tylko wtedy gdy drugi argument jest pusty. Jeśli pierwszy argument jest
jednym z jednoargumentowych operatorów warunkowych podanych powyżej w
.SM
\fBWYRAŻENIA WARUNKOWE\fP, to wyrażenie jest prawdziwe jeżeli test
jednoargumentowy jest prawdziwy.  Jeżeli pierwszy argument nie jest
poprawnym jednoargumentowym operatorem warunkowym, to wyrażenie ma wartość
fałsz.
.TP 
3 argumenty
Następujące warunki są stosowane w wypisanej kolejności. Jeżeli drugi
argument jest jednym z dwuargumentowych operatorów warunkowych podanych
powyżej w
.SM
\fBWYRAŻENIA WARUNKOWE\fP, to wynik wyrażenia jest wynikiem
dwuargumentowego testu z zastosowaniem pierwszego i trzeciego argumentu jako
operandów. Operatory \fB\-a\fP i \fB\-o\fP są uważane za dwuargumentowe, jeśli
występują trzy argumenty. Jeśli pierwszym argumentem jest \fB!\fP, to wartość
stanowi negację testu dwuargumentowego przy użyciu drugiego i trzeciego
argumentu.  Jeśli pierwszym argumentem jest dokładnie \fB(\fP a trzecim
argumentem dokładnie \fB)\fP, to wynik jest jednoargumentowym testem drugiego
argumentu.  W pozostałych przypadkach wyrażenie jest fałszywe.
.TP 
4 argumenty
Jeśli pierwszym argumentem jest \fB!\fP, to wynik jest negacją
trójargumentowego wyrażenia złożonego z pozostałych argumentów.  W
przeciwnym wypadku, wyrażenie jest poddawanie analizie składni i
interpretowane zgodnie z priorytetami przy zastosowaniu reguł podanych
powyżej.
.TP 
5 lub więcej argumentów
Wyrażenie jest poddawanie analizie składni i interpretowane zgodnie z
priorytetami przy zastosowaniu reguł podanych powyżej.
.if  t .sp 0.5
.if  n .sp 1
.LP
Gdy operatory \fB<\fP i \fB>\fP są używane z \fBtest\fP lub \fB[\fP, sortują
zgodnie z porządkiem leksykograficznym używając kolejności ASCII.
.RE
.PD
.TP 
\fBtimes\fP
Wypisuje sumaryczne czasy użytkownika i systemu dla powłoki i procesów z
niej uruchomionych. Kodem zwracanym jest 0.
.TP 
\fBtrap\fP [\fB\-lp\fP] [\fIargument\fP] [\fIsigspec\fP ...]
Polecenie \fIargument\fP ma zostać odczytane i wykonane, gdy powłoka otrzyma
sygnał(y)  \fIsigspec\fP.  Jeśli nie występuje \fIargument\fP (i występuje
pojedynczy \fIsigspec\fP) lub jest to \fB\-\fP, to wszystkie podane sygnały
resetowane są do swych wartości pierwotnych (wartości, jakie miały przy
wejściu do powłoki).  Jeżeli \fIargument\fP jest łańcuchem pustym, to sygnał
określony przez każde \fIsigspec\fP jest ignorowany przez powłokę i polecenia,
jakie ona wywołuje.  Jeżeli nie wystąpił \fIargument\fP a podano \fB\-p\fP,
wyświetlane są polecenia związane z przechwyceniem każdego z sygnałów
\fIsigspec\fP.  Jeżeli nie podano żadnych argumentów lub jeśli podano tylko
\fB\-p\fP, to \fBtrap\fP wypisuje listę poleceń związanych z każdym z numerów
sygnałów.  Każde \fB\-l\fP powoduje wypisanie przez powłokę listy nazw sygnałów
i odpowiadających im nazw. Każdy \fIsigspec\fP jest albo nazwą sygnału
zdefiniowaną w <\fIsignal.h\fP> albo numerem sygnału.  Wielkość liter
nazw sygnałów nie ma znaczenia, a przedrostek
.SM
\fBSIG\fP jest opcjonalny.
.if  t .sp 0.5
.if  n .sp 1
Jeżeli \fIsigspec\fP jest sygnałem
.SM
\fBEXIT\fP (0), to polecenie \fIargument\fP
wykonywane jest przy kończeniu pracy przez powłokę. Jeżeli \fIsigspec\fP jest
równe
.SM
\fBDEBUG\fP, to polecenie \fIargument\fP wykonywane jest po każdym
\fIpoleceniu prostym\fP, poleceniach \fIfor\fP, \fIcase\fP i \fIselect\fP, każdym
poleceniem arytmetycznym \fIfor\fP i przed wykonaniem pierwszego polecenia w
funkcji powłoki (zobacz
.SM
\fBGRAMATYKA POWŁOKI\fP powyżej). Proszę
zapoznać się z opisem opcji \fBextdebug\fP do wbudowanego \fBshopt\fP, aby
dowiedzieć się więcej na temat jej wpływu na pułapkę \fBDEBUG\fP. Jeśli
\fIsigspec\fP to
.SM
\fBRETURN\fP, to polecenie \fIargument\fP jest wykonywane
zawsze, gdy funkcja powłoki lub skrypt wykonywany wbudowanymi \fB.\fP lub
\fBsource\fP kończą swe wykonanie.
.if  t .sp 0.5
.if  n .sp 1
Jeśli \fIsigspec\fP jest
.SM
\fBERR\fP, wówczas polecenie \fIargument\fP
wykonywane gdy potok (mogący składać się z jednego polecenia prostego),
lista, lub polecenie złożone zwróci niezerowy kod zakończenia. Pułapka
zastawiona na
.SM
\fBERR\fP nie jest wykonywana gdy polecenie, które
zakończyło się niepowodzeniem jest występuje bezpośrednio po słowach
kluczowych \fIwhile\fP lub \fIuntil\fP, jest częścią testu instrukcji \fIif\fP,
częścią poleceń wykonywanych w listach \fB&&\fP lub \fB||\fP z wyjątkiem polecenia
za ostatnim \fB&&\fP lub \fB||\fP, dowolnym poleceniem w potoku z wyjątkiem
ostatniego lub jeśli wartość zwracana przez to polecenie jest wstawiana za
pomocą \fB!\fP. Identyczne warunki są przestrzegane przez opcję \fBerrexit\fP.
.if  t .sp 0.5
.if  n .sp 1
Sygnały ignorowane przy wejściu do powłoki nie mogą być przechwycone ani
zresetowane.  W procesie potomnym, podczas jego tworzenia, sygnały
przechwycone resetowane są do swych wartości pierwotnych.  Zwracanym kodem
jest fałsz jeśli którykolwiek z \fIsigspec\fP jest nieprawidłowy; w przeciwnym
razie \fBtrap\fP zwraca true.
.TP 
\fBtype\fP [\fB\-aftpP\fP] \fInazwa\fP [\fInazwa\fP ...]
Bez opcji wskazuje, jak powinna być interpretowana każda z \fInazw\fP, jeśli
zostanie użyta jako nazwa polecenia.  Jeżeli użyto opcji \fB\-t\fP, to \fBtype\fP
wypisuje łańcuch będący jednym z \fIalias\fP, \fIkeyword\fP, \fIfunction\fP,
\fIbuiltin\fP lub \fIfile\fP, jeśli \fInazwa\fP jest odpowiednio aliasem,
zastrzeżonym słowem powłoki, funkcją, poleceniem wbudowanym lub plikiem
dyskowym.  Jeśli nie znaleziono \fInazwy\fP, to nie jest wypisywane nic i jako
kod zakończenia zwracany jest fałsz.  Jeśli posłużono się opcją \fB\-p\fP to
\fBtype\fP zwraca albo nazwę pliku dyskowego, który zostałby wykonany jeśli
\fInazwa\fP zostałaby podana jako nazwa polecenia, albo nic jeśli
.if  t \f(CWtype -t name\fP
.if  n ``type -t name''
nie zwróciłoby \fIfile\fP. Opcja \fB\-P\fP wymusza na
.SM
\fBPATH\fP wyszukiwanie
każdego \fIname\fP, nawet jeśli
.if  t \f(CWtype -t name\fP
.if  n ``type -t name''
nie zwróciłoby \fIfile\fP. Jeśli polecenie zostało zapamiętane poleceniem hash,
to \fB\-p\fP i \fB\-P\fP wypisuje jego wartość, który niekoniecznie jest plikiem
pojawiającym się jako pierwszy w
.SM
\fBPATH\fP. Jeśli użyto opcji \fB\-a\fP, to
\fBtype\fP wypisuje wszystkie miejsca zawierające plik wykonywalny o nazwie
\fInazwa\fP. Aliasy i funkcje są uwzględniane wyłącznie jeśli nie podano
również opcji \fB\-p\fP. Tablica zapamiętanym poleceń nie jest sprawdzana, jeśli
użyto \fB\-a\fP. Opcja \fB\-f\fP przesłania funkcję wyszukiwania powłoki jak
wbudowanym \fBcommand\fP. \fBtype\fP zwraca prawdę jeśli odnaleziono wszystkie
argumenty i fałsz, gdy któregoś z nich nie odnaleziono.
.TP 
\fBulimit\fP [\fB\-HSTabcdefilmnpqrstuvx\fP [\fIlimit\fP]]
Zapewnia kontrolę nad zasobami dostępnymi powłoce i procesów jakie ona
uruchamia, na systemach umożliwiających taką kontrolę.  Opcje \fB\-H\fP i \fB\-S\fP
określają, że dla danego zasobu ustawiane jest twarde (hard) lub miękkie
(soft) ograniczenie. Ograniczenie twarde nie może być zwiększane przez
zwykłego użytkownika po ustawieniu; ograniczenie miękkie może być zwiększane
aż do wartości ograniczenia twardego. Jeśli nie podano ani \fB\-H\fP ani \fB\-S\fP,
to ustawiane jest zarówno ograniczenie miękkie jak i twarde.  Ograniczenie
\fIlimit\fP może być liczbą w jednostkach określonych dla zasobu lub jedną ze
specjalnych wartości: \fBhard\fP, \fBsoft\fP lub \fBunlimited\fP, oznaczających
odpowiednio: bieżące twarde ograniczenie, bieżące miękkie ograniczenie oraz
brak ograniczenia.  Jeżeli pominięto \fIlimit\fP, wypisywana jest bieżąca
wartość ograniczenia miękkiego danego zasobu, chyba że podano opcję
\fB\-H\fP. Gdy podano więcej niż jedno określenie zasobu, przed wartością
wypisywana jest nazwa ograniczenia i jednostka miary.  Inne opcje
interpretowane są następująco:
.RS
.PD 0
.TP 
\fB\-a\fP
Podawane są wszystkie bieżące ograniczenia
.TP 
\fB\-b\fP
Maksymalny rozmiar bufora gniazda
.TP 
\fB\-c\fP
Maksymalny rozmiar tworzonych plików core
.TP 
\fB\-d\fP
Maksymalny rozmiar segmentu danych procesu
.TP 
\fB\-e\fP
Maksymalny priorytet planisty ("nice")
.TP 
\fB\-f\fP
Maksymalny rozmiar plików zapisywanych przez powłokę i jej potomków
.TP 
\fB\-i\fP
Maksymalna liczba oczekujących sygnałów
.TP 
\fB\-l\fP
Maksymalny rozmiar, jaki może zostać zablokowany w pamięci
.TP 
\fB\-m\fP
Maksymalny rozmiar części rezydentnej (wiele systemów nie przestrzega tego
limitu)
.TP 
\fB\-n\fP
Maksymalna liczba otwartych deskryptorów pliku (większość systemów nie
pozwala na ustawianie tej wartości)
.TP 
\fB\-p\fP
Rozmiar potoku w blokach 512\-bajtowych (może nie być ustawione)
.TP 
\fB\-q\fP
Maksymalny rozmiar kolejek komunikatów POSIX, w bajtach
.TP 
\fB\-r\fP
Maksymalny priorytet rzeczywisty planisty
.TP 
\fB\-s\fP
Maksymalny rozmiar stosu
.TP 
\fB\-t\fP
Maksymalny czas CPU w sekundach
.TP 
\fB\-u\fP
Maksymalna liczba procesów dostępnych dla pojedynczego użytkownika
.TP 
\fB\-v\fP
Maksymalna wielkość pamięci wirtualnej dostępna dla powłoki i, w niektórych
systemach, dla jej potomków.
.TP 
\fB\-x\fP
Maksymalna liczba plików blokad
.TP 
\fB\-T\fP
Maksymalna liczba wątków
.PD
.PP
Jeżeli podano \fIlimit\fP i nie użyto opcji \fB\-a\fP, to \fIlimit\fP staje się nową
wartością ograniczenia zadanego zasobu. Jeżeli nie podano żadnej opcji, to
zakłada się opcję \fB\-f\fP. Wartości podawane są przyrostowo co 1024\-bajty, z
wyjątkiem \fB\-t\fP, podawanego w sekundach, \fB\-p\fP, w jednostkach 512\-bajtowych
bloków, oraz \fB\-T\fP, \fB\-b\fP, \fB\-n\fP, and \fB\-u\fP, będących wartościami bez
miana. Zwracanym kodem jest 0, chyba że podano nieprawidłową opcję lub
argument albo podczas ustawiania nowego ograniczenia wystąpił błąd.
.RE
.TP 
\fBumask\fP [\fB\-p\fP] [\fB\-S\fP] [\fItryb\fP]
Maska praw dostępu dla plików tworzonych przez użytkownika ustawiana jest na
\fItryb\fP.  Jeżeli \fItryb\fP rozpoczyna się od cyfry, jest interpretowany jako
liczba ósemkowa; w przeciwnym razie interpretowany jest jako maska w trybie
symbolicznym, podobnie jak akceptowane przez \fIchmod\fP(1).  Jeżeli pominięto
\fItryb\fP wypisywana jest aktualna wartość maski.  Opcja \fB\-S\fP powoduje, że
maska zostanie wypisana w postaci symbolicznej; domyślne wyjście jest w
postaci liczby ósemkowej.  Jeżeli podano opcję \fB\-p\fP i pominięto \fItryb\fP, to
wyjście ma postać, która może być powtórnie wykorzystana jako wejście.
Kodem zwracanym jest 0 jeśli pomyślnie zmieniono tryb lub nie podano
argumentu \fItryb\fP, zaś fałsz w pozostałych sytuacjach.
.TP 
\fBunalias\fP [\-\fBa\fP] [\fInazwa\fP ...]
Usuwa każdą z \fInazw\fP z listy zdefiniowanych aliasów. Jeżeli podano \fB\-a\fP,
to usuwane są definicje wszystkich aliasów. Zwracanym kodem jest prawda,
chyba że podana \fInazwa\fP nie jest zdefiniowanym aliasem.
.TP 
\fBunset\fP [\-\fBfv\fP] [\-\fBn\fP] [\fInazwa\fP ...]
Dla każdej \fInazwy\fP, usuwa odpowiadającą jej wartość lub funkcję. Jeżeli
podano opcję \fB\-v\fP, to każda z \fInazw\fP odnosi się do zmiennej
powłoki. Zmienne read\-only nie mogą być kasowane. Jeżeli podano \fB\-f\fP, to
każda z \fInazw\fP wskazuje na funkcję powłoki, a definicja funkcji jest
usuwana. Jeśli podano opcję \fB\-n\fP, a \fInazwa\fP jest zmienną\ z parametrem
\fInazwa referencyjna\fP, to zostanie usunięta \fInazwa\fP zamiast zmiennej
referencyjnej. \fB\-n\fP nie daje efektu, jeśli podano opcję \fB\-f\fP. Jeśli nie
podano żadnych opcji, każda z \fInazw\fP odnosi się do zmiennej; jeśli nie ma
zmiennej o tej nazwie, to usunięte zostaną funkcje z tą\ nazwą. Każda z
usuniętych zmiennych lub funkcji usuwana jest ze środowiska przesyłanego
następnym poleceniom.  Jeśli usunięta zostanie któraś ze zmiennych
.SM
\fBCOMP_WORDBREAKS\fP,
.SM
\fBRANDOM\fP,
.SM
\fBSECONDS\fP,
.SM
\fBLINENO\fP,
.SM
\fBHISTCMD\fP,
.SM
\fBFUNCNAME\fP,
.SM
\fBGROUPS\fP, lub
.SM
\fBDIRSTACK\fP, to traci ona swe specjalne właściwości, nawet jeśli zostanie
następnie ponownie ustawiona. Kodem zakończenia jest prawda, chyba że
\fInazwa\fP nie istnieje lub jest readonly.
.TP 
\fBwait\fP [\fB\-n\fP] [\fIn ...\fP]
Czeka na każdy podany proces potomny i zwraca jego kod zakończenia.  \fIn\fP
może być identyfikatorem procesu lub określeniem zadania; jeśli podano
określenie zadania, to nastąpi oczekiwanie na wszystkie procesy w potoku
tego zadania.  Jeżeli nie podano \fIn\fP, następuje oczekiwanie na wszystkie
aktualnie aktywne procesy potomne i zwracany jest kod zerowy. Jeśli podano
opcję \fB\-n\fP, to \fBwait\fP czeka na zakończenie każdego zadania i zwraca jego
kod zakończenia. Jeśli \fIn\fP określa nieistniejący proces lub zadanie, to
zwracany jest kod 127.  W pozostałych przypadkach zwracany jest kod
zakończenia ostatniego procesu lub zadania na jakie czekano.
.if  \n(zZ=1 .ig zZ
.\" bash_builtins
.SH "POWŁOKA OKROJONA"
.\" rbash.1
.zY
.PP
Jeśli \fBbash\fP uruchomiony jest pod nazwą \fBrbash\fP, lub przy jego wywołaniu
posłużono się opcją \fB\-r\fP, to staje się powłoką okrojoną (restricted).
Powłoka okrojona służy do ustawienia środowiska lepiej kontrolowanego niż
powłoka standardowa. Zachowuje się ona identycznie jak \fBbash\fP z wyjątkiem
tego, że poniższe nie są dozwolone lub nie są wykonywane:
.IP \(bu
zmiana katalogów przy pomocy \fBcd\fP
.IP \(bu
ustawianie lub kasowanie wartości
.SM
\fBSHELL\fP,
.SM
\fBPATH\fP,
.SM
\fBENV\fP lub
.SM
\fBBASH_ENV\fP
.IP \(bu
podawanie nazw poleceń zawierających \fB/\fP
.IP \(bu
podawanie nazw plików zawierających \fB/\fP jako argumentu wbudowanego
polecenia \fB.\fP (kropka).
.IP \(bu
podawanie nazwy pliku zawierającej ukośnik jako argument do opcji \fB\-p\fP
wbudowanego polecenia \fBhash\fP.
.IP \(bu
importowanie definicji funkcji ze środowiska powłoki przy uruchamianiu
.IP \(bu
analiza wartości
.SM
\fBSHELLOPTS\fP ze środowiska powłoki przy uruchamianiu
.IP \(bu
przekierowywanie wyjścia przy pomocy operatorów >, >|, <>,
>&, &> i >>
.IP \(bu
posługiwanie się wbudowanym poleceniem \fBexec\fP w celu zastąpienia powłoki
innym poleceniem
.IP \(bu
dodawanie lub usuwanie poleceń przy pomocy opcji \fB\-f\fP i \fB\-d\fP wbudowanego
polecenia \fBenable\fP
.IP \(bu
używanie wbudowanego polecenia \fBenable\fP do włączania wyłączonych
wbudowanych poleceń powłoki
.IP \(bu
podawanie opcji \fB\-p\fP wbudowanego polecenia \fBcommand\fP
.IP \(bu
wyłączanie trybu okrojonego za pomocą \fBset +r\fP lub \fBset +o restricted\fP.
.PP
Powyższe ograniczenia wymuszane są po przeczytaniu plików uruchomieniowych.
.PP
.ie  \n(zY=1 Jeśli wykonywane polecenie okaże się skryptem powłoki,
.el \{ Jeśli wykonywane polecenie okaże się skryptem powłoki
(patrz
.SM
.B "WYKONYWANIE POLECEŃ"
powyżej), to 
\}
\fBrbash\fP wyłącza wszelkie ograniczenia w powłoce zrodzonej do wykonania
skryptu.
.if  \n(zY=1 .ig zY
.\" end of rbash.1
.SH "ZOBACZ TAKŻE"
.PD 0
.TP 
\fIBash Features\fP, Brian Fox i Chet Ramey
.TP 
\fIThe Gnu Readline Library\fP, Brian Fox i Chet Ramey
.TP 
\fIThe Gnu History Library\fP, Brian Fox i Chet Ramey
.TP 
\fIPortable Operating System Interface (POSIX) Part 2: Shell and Utilities\fP, IEEE \-\-
http://pubs.opengroup.org/onlinepubs/9699919799/
.TP 
http://tiswww.case.edu/~chet/bash/POSIX \-\- opis trybu posix
.TP 
\fIsh\fP(1), \fIksh\fP(1), \fIcsh\fP(1)
.TP 
\fIemacs\fP(1), \fIvi\fP(1)
.TP 
\fIreadline\fP(3)
.PD
.SH PLIKI
.PD 0
.TP 
.FN /bin/bash
Plik wykonywalny powłoki \fBbash\fP
.TP 
.FN /etc/profile
Ogólnosystemowy plik inicjujący, wykonywany dla powłok zgłoszeniowych
.TP 
.FN /etc/bash.bashrc
Ogólnosystemowy plik startowy dla powłoki interaktywnej
.TP 
.FN /etc/bash.bash.logout
Ogólnosystemowy plik porządkujący dla powłoki zgłoszeniowej, wykonywany
podczas kończenia przez nią pracy
.TP 
.FN ~/.bash_profile
Osobisty plik inicjujący, wykonywany dla powłok zgłoszeniowych
.TP 
.FN ~/.bashrc
Indywidualny plik startowy dla powłoki trybu interaktywnego
.TP 
.FN ~/.bash_logout
Indywidualny plik porządkujący dla powłoki zgłoszeniowej, wykonywany podczas
kończenia przez nią pracy
.TP 
.FN ~/.inputrc
Indywidualny plik inicjujący do \fIreadline\fP
.PD
.SH AUTORZY
Brian Fox, Free Software Foundation
.br
bfox@gnu.org
.PP
Chet Ramey, Case Western Reserve University
.br
chet.ramey@case.edu
.SH "ZGŁOSZENIA BŁĘDÓW"
Jeśli znajdziesz w \fBbash\fP błąd, powinieneś go zgłosić. Ale najpierw
powinieneś upewnić się, że rzeczywiście jest to błąd i że pojawia się w
najświeższej wersji \fBbash\fP jaką masz. Jest ona zawsze dostępna pod adresem
\fIftp://ftp.gnu.org/pub/gnu/bash/\fP.
.PP
Po ustaleniu, że błąd faktycznie istnieje, użyj polecenia \fIbashbug\fP do
wysłania zgłoszenia błędu.  Jeśli masz poprawkę usuwającą problem, zachęcamy
do przesłania jej również! Sugestie i `filozoficzne' zgłoszenia błędów mogą
być przesyłane [w języku angielskim] do \fIbug\-bash@gnu.org\fP lub wysyłane na
grupę dyskusyjną \fBgnu.bash.bug\fP.
.PP
WSZYSTKIE zgłoszenia błędów powinny zawierać:
.PP
.PD 0
.TP  20
Numer wersji \fBbash\fP
.TP 
Sprzęt i system operacyjny
.TP 
Użyty kompilator
.TP 
Opis błędnego zachowania
.TP 
Krótki skrypt lub przepis na uzyskanie błędu
.PD
.PP
\fIbashbug\fP wstawia pierwsze trzy pozycje automatycznie do szablonu jaki
udostępnia w celu wypełnienia zgłoszenia błędów.
.PP
Komentarze i zgłoszenia błędów dotyczące tej strony podręcznika [oryginału]
powinny być kierowane na adres \fIchet.ramey@case.edu\fP.
.SH BŁĘDY
.PP
Jest za duży i zbyt wolny.
.PP
Istnieje trochę subtelnych różnic pomiędzy \fBbash\fP a tradycyjnymi wersjami
\fBsh\fP, głównie z powodu specyfikacji
.SM
\fBPOSIX\fP.
.PP
Aliasy w niektórych zastosowaniach wprawiają w zakłopotanie.
.PP
Poleceń wbudowanych powłoki i funkcji nie można zatrzymywać/wznawiać.
.PP
Polecenia złożone i sekwencje poleceń postaci `a ; b ; c' nie są obsługiwane
przychylnie przy próbie wstrzymania procesu. Gdy proces jest zatrzymany,
powłoka natychmiast wykonuje następne polecenie sekwencji.  Wystarcza
umieszczanie sekwencji poleceń wewnątrz nawiasów by wymusić wykonanie ich
przez podpowłokę, która może być zatrzymana jako całość.
.PP
Zmienne tablicowe nie mogą być (na razie) eksportowane.
.PP
Może istnieć tylko jeden aktywny współproces w danym czasie.
.zZ
.zY
.SH TŁUMACZENIE
Autorami polskiego tłumaczenia niniejszej strony podręcznika man są:
Wojtek Kotwica (PTM) <wkotwica@post.pl>
i
Michał Kułach <michal.kulach@gmail.com>.
.PP
Polskie tłumaczenie jest częścią projektu manpages-pl; uwagi, pomoc, zgłaszanie błędów na stronie http://sourceforge.net/projects/manpages-pl/. Jest zgodne z wersją \fB 4.3 \fPoryginału.