Knowledge (XXG)

Almquist shell

Source 📝

932: 134: 511:
too. As a result, Debian policy was amended to allow script developers to assume a largely POSIX-compliant shell, save for the extensions merged into Dash for convenience (
252:, most scripts seem to use at least some bash-specific syntax. The Slackware setup scripts are a notable exception, since ash is the shell used on the install disks. 1177: 472:
execution, especially during startup of the operating system, compared to previous versions of Debian and Ubuntu that used Bash for this purpose, although
1028: 437: 816: 789: 236:
A lightweight (92K) Bourne compatible shell. Great for machines with low memory, but does not provide all the extras of shells like
200:
on 30 May 1989. It was described as "a reimplementation of the System V shell most features of that shell, plus some additions".
1167: 666: 175: 260:
Myriad forks have been produced from the original ash release. These derivatives of ash are installed as the default shell (
503:
line. The problem was first spotted in Ubuntu and the Ubuntu maintainers decided to make all the scripts comply with the
1172: 1136: 576: 357: 289: 1021: 751: 481: 461: 341: 67: 601: 687: 441: 1162: 288:
feature differed from POSIX. That version of the shell was replaced in MINIX 3.3. Android used ash until
957: 163: 1157: 1014: 781: 507:
standard. The changes were later upstreamed to Debian, which eventually adopted Dash as its default
837: 543:, the catch-all executable often employed in this area, and is used in distributions like DSLinux, 364: 133: 98: 879: 552: 281: 86: 974: 1118: 1103: 1068: 1053: 812: 785: 775: 644: 560: 496: 473: 237: 216: 858: 806: 1073: 833: 376: 348: 188: 74: 1098: 548: 484:
starting with the 6.10 release in October 2006. Dash replaced Bash and became the default
212: 931: 1113: 536: 500: 91: 1151: 273: 219: 1058: 544: 523:). A similar transition has happened in Slackware Linux, although their version of 492: 469: 445: 381: 215:
mechanisms, because Almquist felt that such functionality should be moved into the
171: 285: 208: 925: 625: 114: 1083: 1037: 476:
is still the default login shell for interactive use. Dash became the default
369: 310: 159: 103: 36: 1088: 1078: 597: 499:-specific functionalities ("bashisms") without properly declaring it in the 396: 293: 248:. Runs most shell scripts compatible with the Bourne shell. Note that under 226: 197: 79: 17: 898: 1001: 984: 967: 949: 908: 1123: 1063: 980: 556: 540: 433:). Xu's main priorities are POSIX conformance and slim implementation. 385: 265: 746: 1093: 997: 963: 720: 605: 564: 422: 269: 253: 193: 444:(both required in POSIX). Line editing and history support based on 945: 904: 504: 425:. In September 2002, with release 0.4.1, this port was renamed to 353: 277: 249: 204: 834:"Script that are using bash could be broken with the new symlink" 225:
The following is extracted from the ash package information from
1108: 715: 241: 207:
standard's specification of the Unix shell, ash did not provide
167: 1010: 1006: 991: 602:"v19i001: A reimplementation of the System V shell, Part01/08" 245: 939: 859:"dash as #!/bin/sh introduces countless incompatibilities" 436:
Like its predecessor, Dash implements support for neither
535:
Ash (mainly the Dash fork) is also fairly popular in
539:
systems. Dash version 0.3.8-5 was incorporated into
524: 520: 516: 512: 508: 449: 391: 375: 363: 347: 337: 319: 309: 109: 97: 85: 73: 63: 45: 35: 488:in Debian 6 (Squeeze), released in February 2011. 284:. MINIX 3.2 used the original ash version, whose 231: 203:Fast, small, and virtually compatible with the 174:, it replaced the original Bourne shell in the 178:versions of Unix released in the early 1990s. 1022: 468:in 2006. The reason for using Dash is faster 8: 304: 186:ash was first released via a posting to the 166:in the late 1980s. Initially a clone of the 30: 1029: 1015: 1007: 930: 303: 132: 29: 805:Christopher Negus; Francois Caen (2011). 777:Ubuntu: Powerful Hacks and Customizations 741: 739: 710: 708: 222:. However, current variants support it. 588: 619: 617: 615: 196:news group, approved and moderated by 811:. John Wiley & Sons. p. 49. 464:decided to adopt Dash as the default 438:internationalization and localization 7: 1178:Text-oriented programming languages 491:A result of the shift is that many 596:Almquist, Kenneth (May 30, 1989). 233:ash (Kenneth Almquist's ash shell) 25: 527:is only partially based on Dash. 292:, at which point it switched to 667:"Android's shell and utilities" 626:"Ash (Almquist Shell) Variants" 1: 884:Debian Policy Manual v4.5.0.2 665:Elliott Hughes (2018-06-20). 608:newsgroup, comp.sources.unix. 456:Adoption in Debian and Ubuntu 442:multi-byte character encoding 1137:Comparison of command shells 577:Comparison of command shells 305:Debian Almquist shell (DASH) 832:Egil Hasting (2006-09-20). 1194: 417:In 1997 Herbert Xu ported 1132: 1044: 692:The Linux Kernel Archives 645:"TEST versus Portability" 643:Thomas E. Dickey (2015). 495:were found making use of 460:Because of its slimness, 256:uses ash as its /bin/sh. 1168:Cross-platform software 857:comotion (2007-09-21). 716:"Non-interactive Shell" 384:with mksignames under 325:; 27 years ago 258: 162:originally written by 51:; 35 years ago 27:Lightweight Unix shell 782:John Wiley & Sons 774:Neal Krawetz (2011). 431:Debian Almquist shell 808:Ubuntu Linux Toolbox 382:3-clause BSD license 1173:Scripting languages 306: 282:Linux distributions 158:) is a lightweight 32: 323:July 15, 1997 1145: 1144: 1000:General Commands 983:General Commands 966:General Commands 907:General Commands 747:"Dash as /bin/sh" 555:firmware such as 415: 414: 141: 140: 49:May 30, 1989 16:(Redirected from 1185: 1031: 1024: 1017: 1008: 995: 994: 978: 977: 961: 960: 943: 942: 934: 929: 928: 926:Official website 911: 902: 901: 899:checkbashisms(1) 894: 888: 887: 876: 870: 869: 867: 866: 854: 848: 847: 845: 844: 829: 823: 822: 802: 796: 795: 771: 765: 764: 762: 761: 743: 734: 733: 731: 730: 712: 703: 702: 700: 698: 683: 677: 676: 674: 673: 662: 656: 655: 653: 651: 640: 634: 633: 624:Mascheck, Sven. 621: 610: 609: 593: 551:and Linux-based 526: 522: 518: 514: 510: 487: 479: 467: 451: 420: 411: 408: 406: 404: 402: 400: 398: 349:Operating system 333: 331: 326: 307: 263: 192: 164:Kenneth Almquist 137: 136: 129: 126: 124: 122: 120: 118: 116: 75:Operating system 59: 57: 52: 41:Kenneth Almquist 33: 21: 1193: 1192: 1188: 1187: 1186: 1184: 1183: 1182: 1148: 1147: 1146: 1141: 1128: 1040: 1035: 990: 989: 973: 972: 956: 955: 952:– User Commands 938: 937: 924: 923: 920: 915: 914: 897: 896: 895: 891: 878: 877: 873: 864: 862: 856: 855: 851: 842: 840: 831: 830: 826: 819: 804: 803: 799: 792: 784:. p. 178. 773: 772: 768: 759: 757: 745: 744: 737: 728: 726: 714: 713: 706: 696: 694: 685: 684: 680: 671: 669: 664: 663: 659: 649: 647: 642: 641: 637: 623: 622: 613: 595: 594: 590: 585: 573: 549:Tiny Core Linux 533: 485: 477: 465: 458: 421:from NetBSD to 418: 395: 329: 327: 324: 320:Initial release 302: 261: 213:command history 187: 184: 170:variant of the 146:(also known as 131: 113: 55: 53: 50: 46:Initial release 28: 23: 22: 15: 12: 11: 5: 1191: 1189: 1181: 1180: 1175: 1170: 1165: 1160: 1150: 1149: 1143: 1142: 1140: 1139: 1133: 1130: 1129: 1127: 1126: 1121: 1116: 1111: 1106: 1101: 1096: 1091: 1086: 1081: 1076: 1071: 1066: 1061: 1056: 1051: 1045: 1042: 1041: 1036: 1034: 1033: 1026: 1019: 1011: 1005: 1004: 987: 970: 953: 935: 919: 918:External links 916: 913: 912: 889: 871: 849: 824: 817: 797: 790: 766: 735: 704: 678: 657: 635: 611: 587: 586: 584: 581: 580: 579: 572: 569: 537:embedded Linux 532: 531:Embedded Linux 529: 457: 454: 450:--with-libedit 413: 412: 393: 389: 388: 379: 373: 372: 367: 361: 360: 351: 345: 344: 339: 335: 334: 321: 317: 316: 313: 301: 298: 280:, and in some 183: 180: 144:Almquist shell 139: 138: 111: 107: 106: 101: 95: 94: 92:Cross-platform 89: 83: 82: 77: 71: 70: 65: 61: 60: 47: 43: 42: 39: 31:Almquist shell 26: 24: 14: 13: 10: 9: 6: 4: 3: 2: 1190: 1179: 1176: 1174: 1171: 1169: 1166: 1164: 1163:1989 software 1161: 1159: 1156: 1155: 1153: 1138: 1135: 1134: 1131: 1125: 1122: 1120: 1117: 1115: 1112: 1110: 1107: 1105: 1102: 1100: 1097: 1095: 1092: 1090: 1087: 1085: 1082: 1080: 1077: 1075: 1072: 1070: 1067: 1065: 1062: 1060: 1057: 1055: 1052: 1050: 1047: 1046: 1043: 1039: 1032: 1027: 1025: 1020: 1018: 1013: 1012: 1009: 1003: 999: 996: –  993: 988: 986: 982: 979: –  976: 971: 969: 965: 962: –  959: 954: 951: 947: 944: –  941: 936: 933: 927: 922: 921: 917: 910: 906: 903: –  900: 893: 890: 885: 881: 875: 872: 860: 853: 850: 839: 835: 828: 825: 820: 818:9781118079140 814: 810: 809: 801: 798: 793: 791:9781118080382 787: 783: 779: 778: 770: 767: 755: 753: 748: 742: 740: 736: 724: 722: 717: 711: 709: 705: 693: 689: 686:Xu, Herbert. 682: 679: 668: 661: 658: 646: 639: 636: 631: 630:www.in-ulm.de 627: 620: 618: 616: 612: 607: 603: 599: 592: 589: 582: 578: 575: 574: 570: 568: 566: 562: 558: 554: 550: 546: 542: 538: 530: 528: 506: 502: 498: 494: 493:shell scripts 489: 483: 475: 471: 463: 455: 453: 448:is optional ( 447: 443: 439: 434: 432: 428: 424: 410: 394: 390: 387: 383: 380: 378: 374: 371: 368: 366: 362: 359: 355: 352: 350: 346: 343: 340: 336: 322: 318: 314: 312: 308: 299: 297: 295: 291: 287: 283: 279: 275: 274:DragonFly BSD 271: 267: 257: 255: 251: 247: 243: 239: 234: 230: 228: 223: 221: 218: 214: 210: 206: 201: 199: 195: 191:.sources.unix 190: 181: 179: 177: 173: 169: 165: 161: 157: 153: 149: 145: 135: 128: 112: 108: 105: 102: 100: 96: 93: 90: 88: 84: 81: 78: 76: 72: 69: 66: 62: 48: 44: 40: 38: 34: 19: 1048: 892: 883: 874: 863:. Retrieved 852: 841:. Retrieved 827: 807: 800: 776: 769: 758:. Retrieved 756:. 2017-12-16 750: 727:. Retrieved 725:. 2020-01-13 719: 695:. Retrieved 691: 681: 670:. Retrieved 660: 648:. Retrieved 638: 629: 591: 545:Alpine Linux 534: 521:test -a / -o 490: 470:shell script 459: 446:GNU Readline 435: 430: 426: 423:Debian Linux 416: 311:Developer(s) 259: 235: 232: 224: 209:line editing 202: 185: 172:Bourne shell 155: 151: 147: 143: 142: 37:Developer(s) 18:Dash (shell) 1158:Unix shells 1038:Unix shells 880:"10. Files" 861:. Launchpad 697:23 December 290:Android 4.0 1152:Categories 1084:PowerShell 865:2020-02-29 843:2020-02-29 760:2020-02-29 729:2020-02-29 672:2020-02-29 583:References 370:Unix shell 338:Written in 330:1997-07-15 315:Herbert Xu 168:System V.4 160:Unix shell 121:/~mascheck 104:Unix shell 64:Written in 56:1989-05-30 838:Launchpad 688:"COPYING" 598:Rich Salz 405:/~herbert 227:Slackware 198:Rich Salz 80:Unix-like 1114:Thompson 1074:Hamilton 1049:Almquist 650:March 1, 571:See also 217:terminal 123:/various 87:Platform 981:FreeBSD 975:dash(1) 958:dash(1) 940:dash(1) 600:(ed.). 557:OpenWrt 541:BusyBox 517:echo -n 509:/bin/sh 501:shebang 486:/bin/sh 478:/bin/sh 466:/bin/sh 392:Website 386:GNU GPL 377:License 358:Android 328: ( 266:FreeBSD 262:/bin/sh 182:History 148:A Shell 117:.in-ulm 110:Website 54: ( 1094:Qshell 1059:Bourne 1002:Manual 998:NetBSD 985:Manual 968:Manual 964:Debian 950:Manual 909:Manual 815:  788:  752:Ubuntu 721:Debian 606:Usenet 565:DD-WRT 561:Tomato 553:router 482:Ubuntu 462:Ubuntu 399:.apana 397:gondor 270:NetBSD 254:NetBSD 244:, and 220:driver 194:Usenet 130:  992:sh(1) 948:User 946:Linux 905:Linux 513:local 505:POSIX 407:/dash 354:Linux 278:MINIX 264:) on 250:Linux 229:v14: 205:POSIX 1119:Wish 1109:tcsh 1104:sash 1079:Korn 1069:fish 1054:Bash 813:ISBN 786:ISBN 754:Wiki 723:Wiki 699:2023 652:2020 563:and 497:Bash 474:Bash 440:nor 427:Dash 401:.org 365:Type 300:Dash 294:mksh 286:test 242:tcsh 238:bash 189:comp 154:and 125:/ash 99:Type 1124:Zsh 1089:PWB 1064:csh 525:ash 480:in 452:). 419:ash 403:.au 246:zsh 211:or 176:BSD 152:ash 119:.de 115:www 1154:: 1099:rc 882:. 836:. 780:. 749:. 738:^ 718:. 707:^ 690:. 628:. 614:^ 604:. 567:. 559:, 547:, 519:, 515:, 356:, 296:. 276:, 272:, 268:, 240:, 156:sh 150:, 1030:e 1023:t 1016:v 886:. 868:. 846:. 821:. 794:. 763:. 732:. 701:. 675:. 654:. 632:. 429:( 409:/ 342:C 332:) 127:/ 68:C 58:) 20:)

Index

Dash (shell)
Developer(s)
C
Operating system
Unix-like
Platform
Cross-platform
Type
Unix shell
www.in-ulm.de/~mascheck/various/ash/
Edit this on Wikidata
Unix shell
Kenneth Almquist
System V.4
Bourne shell
BSD
comp
Usenet
Rich Salz
POSIX
line editing
command history
terminal
driver
Slackware
bash
tcsh
zsh
Linux
NetBSD

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.