dash
読み:ディーエイシェル
外語:dash: Debian Almquist shell

 Debianやその派生(Ubuntu含む)で使われている、Kenneth Almquist作のシェル(ash)の拡張版シェル
目次

概要
 Linuxの多くのディストリビューションでは多機能なbashが人気だが、DebianやUbuntuでは、bashとは系統の異なるash系のシェルであるdashを開発し採用している。
 シェルスクリプトの機能もashの系統であるため、bashとは一部について非互換である。

悲しい運命

叩かれる運命
 Linux用のシェルスクリプトとは、結局のところbashで動作するシェルスクリプトと同義である。
 Linux界隈では、1行目に「#!/bin/bash」ではなく「#!/bin/sh」と書きながら、/bin/sh では動作しないようなスクリプトがよく書かれている。
 bashでしか動作しないなら1行目は「#!/bin/bash」と書かねばならない。bashとdashの両方をインストールしてあれば、普段は高速なdash、bashでしか動作しないスクリプトはbash、という切り替えが可能である。しかし、そうではない行儀の悪いスクリプトが無数に存在した。
 結果、「DebianやUbuntuではシェルスクリプトが正常に動作しない」などと言われてしまう、残念な結果となってしまった。

消される運命
 bash をインストールした後、/bin/sh のシンボリックリンクを一旦消して、再度リンク先を /bin/bash にしたシンボリックリンク /bin/sh を作れば、スクリプトは正常に動作するようになる。
 しかし面倒な場合、GUIで設定できる。
 まず、dashかbashかを確認する。
 ls -l /bin/sh
 出力結果がdashであれば、以下を実行し、dashを使わない設定である <いいえ> を選択する。
 sudo dpkg-reconfigure dash
 bashになったかどうかを再度確認する。
 ls -l /bin/sh

再検索