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
再検索