Debian Almquist shell (dash)は、Debian版Almquist Shell(ash)の意で、軽量かつPOSIX互換を目指すUnixシェルである。基本的な特徴はashと共通であり、そちらの記事を参照のこと。この記事では主としてDebian版に固有な点や、Debianにおける用途について述べる。

1997年初頭にHerbert XuによってNetBSD版ashをベースにLinux版として書かれた。その後2002年に「dash」に改名された。

bashよりもシェルスクリプトの実行が高速であり、依存するライブラリが少ない。またアップグレードの問題やディスク破損に対する信頼性は高いと考えられているhttp://packages.debian.org/dash。dashは以下の用途で使用されることを想定している: フロッピーディスクへのインストール用シェル スーパユーザー専用のシェル /bin/sh の代替 シェルスクリプトがPOSIX互換の文法を正しく使用しているかのチェックのためのテスト環境

Debianは 5.0 (コードネーム: lenny)から、デフォルトの/bin/shをdashに置き換えたRelease goals for Debian LennyRelease Update: architecture status, release goal status, BSPs。

Ubuntuも2006年10月にリリースされた6.10からデフォルトの/bin/shはdashであるDash as /bin/sh in Ubuntu 6.10。Ubuntuでは、多くのスクリプトがbashの使用を明示しないままbash固有の機能を使用していることが、dashへの移行作業の際に発覚したUbuntu bug #61463: script that are using bash could be broken with the new symlinkUbuntu bug #141481: dash as #!/bin/sh introduces countless incompatibilities。エラーを回避するため、bash前提のスクリプトには、dashで適切に動作するような改変、もしくは、明示的にbashを使用するように宣言する(すなわち、スクリプトのシバン行に「#!/usr/bin/env bash」というかたちでbashの使用を指示する)改変を加えた。

脚注

外部リンク Dash home Debian package overview Debian bugs tagged goal-dash Debian、Ubuntuでは/bin/shがデフォルトでDashとなっている。 Dash mailing list archive Shells in Debian