2009年10月15日木曜日

Ubuntu /bin/sh -> /bin/dash → /bin/bash 切り替え

Ubuntu の /bin/sh は、bash のシンボリックリンクではなく、dash (Debian Almquist Shell)になっています。
dash は、ほぼ、bourne shell に近い動きをします。
ちなみに、Fedora は bash のシンボリックリンクです。

世の中には、シェルスクリプトの先頭に #!/bin/sh と書いておきながら、
bash でしか動作しないコードを含んでいるものもあります。

正しくは、そのシェルスクリプトで #!/bin/bash と書き換えるべきなのですが、
それも難しい場合があります。

# 入手したソースコードが、そうなっていたとか (あるある)。

そんなときは、以下のコマンドで dash から bash に切り替えます。

# dpkg-reconfigure dash

動くはずのシェルスクリプトが、動かない場合は、ここを疑ってみると良いです。

● /bin/sh, bash, dash, dpkg-reconfigure, 切り替え

0 件のコメント: