Linuxシェルでは先頭行に「#!/bin/bash」と書くべきです。
省略すると「スクリプトファイル」ではなく「ファイル内容のコマンドの羅列」がデフォルトのシェルプログラムに送信されます。そのためpsコマンドやtopコマンドで、シェルを特定することが困難になります。
例えば、test.shというシェルを「./test.sh」と実行したときに、「#!/bin/bash」を書いた場合と書かない場合でpsコマンドとtopマンドで、以下のような違いが現れます。
また「#!/bin/sh」と書いているシェルを見かけることがあります。しかし多くのLinuxシステムでは実体として「/bin/sh」を使用しておらず、「/bin/bash」を使用しています。
「#!/bin/sh」と書いておきながら実際には「/bin/bash」を使用した環境で開発しており、気がつかないうちに「/bin/sh」では使えないコマンドを書いているということもあるかも知れません。そしてそのシェルを、別のマシンで動かそうとしたときに動かないという現象が発生しかねません。このようなことを防ぐ為にもLinuxシェルでは「#!/bin/bash」と書くべきです。
もちろんUNIX系もしくは特定のLinux環境で、本当に明示的に「/bin/sh」だけを使いたい場合にはそのように書くべきです。
まとめると以下になります。
この理由から、Linuxシェルでは先頭行に「#!/bin/bash」と書くべきです。
2011/09/12
|
Knowledge >