Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Almquist shell
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
=={{anchor|dash}}Dash == {{Infobox software | name = Debian Almquist shell (DASH) | logo = | screenshot = | caption = | developer = Herbert Xu | released = {{Start date and age|1997|07|15}} | latest release version = 0.5.12 | latest release date ={{Start date and age|2022|12|11}} | programming language = [[C (programming language)|C]] | operating system = [[Linux]], [[Android (operating system)|Android]] | platform = | genre = [[Unix shell]] | license = [[BSD licenses|3-clause BSD license]] with mksignames under [[GNU GPL]]<ref>{{cite web |last1=Xu |first1=Herbert |title=COPYING |url=https://git.kernel.org/pub/scm/utils/dash/dash.git/tree/COPYING?h=v0.5.12 |website=The Linux Kernel Archives |access-date=23 December 2023}}</ref> | website = {{URL|gondor.apana.org.au/~herbert/dash/}} | repo = {{URL|git.kernel.org/pub/scm/utils/dash/dash.git}} }} In 1997 Herbert Xu ported <code>ash</code> from NetBSD to [[Debian|Debian Linux]]. In September 2002, with release 0.4.1, this port was renamed to '''Dash''' ('''Debian Almquist shell'''). Xu's main priorities are POSIX conformance and slim implementation.<ref name=vars/> Like its predecessor, Dash implements support for neither [[internationalization and localization]] nor [[Variable-width encoding|multi-byte character encoding]] (both required in POSIX).{{Citation needed|date=March 2023}} Line editing and history support based on [[GNU Readline]] is optional ({{code|--with-libedit}}). === Adoption in Debian and Ubuntu === {{anchor|Slimness}}Because of its slimness, [[Ubuntu (operating system)|Ubuntu]] decided to adopt Dash as the default <code>/bin/sh</code><ref name="Debian">{{cite web | url=https://wiki.debian.org/Shell | title=Non-interactive Shell | website=[[Debian]] Wiki | date=2020-01-13 | access-date=2020-02-29}}</ref><ref name="Ubuntu">{{cite web | url=https://wiki.ubuntu.com/DashAsBinSh | title=Dash as /bin/sh | website=[[Ubuntu (operating system)|Ubuntu]] Wiki | date=2017-12-16 | access-date=2020-02-29}}</ref> in October 2006 with version 6.10. The reason for using Dash is faster [[shell script]] execution,<ref>{{cite book | author=Neal Krawetz | title=Ubuntu: Powerful Hacks and Customizations | year=2011 | publisher=[[John Wiley & Sons]] | pages=178 | url=https://books.google.com/books?id=h_zclqESvu8C&pg=PT178 | isbn=9781118080382}}</ref> especially during startup of the operating system, compared to previous versions of Debian and Ubuntu that used Bash for this purpose, although [[Bash (Unix shell)|Bash]] is still the default login shell for interactive use.<ref>{{cite book | author1=Christopher Negus | author2=Francois Caen | title=Ubuntu Linux Toolbox | publisher=John Wiley & Sons | year=2011 | url=https://books.google.com/books?id=L_IXUtw_w-AC&pg=PA49 | pages=49 | isbn=9781118079140}}</ref> A result of the shift is that many [[shell script]]s were found making use of [[Bash (Unix shell)|Bash]]-specific functionalities ("bashisms") without properly declaring it in the [[shebang (Unix)|shebang]] line.<ref>{{cite web | url=https://bugs.launchpad.net/ubuntu/+source/dash/+bug/61463 | title=Script that are using bash could be broken with the new symlink | author=Egil Hasting | date=2006-09-20 | publisher=[[Launchpad (website)|Launchpad]] | access-date=2020-02-29}}</ref><ref>{{cite web | url=https://bugs.launchpad.net/ubuntu/+source/dash/+bug/141481 | title=dash as #!/bin/sh introduces countless incompatibilities | author=comotion | date=2007-09-21 | publisher=Launchpad | access-date=2020-02-29}}</ref> The problem was first spotted in Ubuntu and the maintainers decided to make all the scripts comply with the [[POSIX]] standard. The changes were later upstreamed to Debian, which eventually adopted Dash as its default {{code|/bin/sh}} too in Debian 6 (Squeeze), released in February 2011.<ref name="Debian"/> 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 ({{code|local}}, {{code|echo -n}}, {{code|test -a / -o}}).<ref name=deb>{{cite web |title=10. Files |url=https://www.debian.org/doc/debian-policy/ch-files.html#scripts |website=Debian Policy Manual v4.5.0.2}}</ref><ref>{{man|1|checkbashisms|ManKier}}</ref> A similar transition has happened in Slackware Linux, although its version of {{code|ash}} is only partially based on Dash.<ref name=vars/> ===Embedded Linux=== Ash (mainly the Dash fork) is also fairly popular in [[embedded Linux]] systems. Dash version 0.3.8-5 was incorporated into [[BusyBox]], the catch-all executable often employed in this area. Modern BusyBox versions support additional [[Bash (Unix shell)|Bash]] features which are enabled in modern distributions like [[Alpine Linux]], [[Tiny Core Linux]] and Linux-based [[Router (computing)|router]] firmware such as [[OpenWrt]], [[Tomato (firmware)|Tomato]] and [[DD-WRT]].
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
Almquist shell
(section)
Add topic