- ベストアンサー
シェルスクリプトのパス
#!/bin/bash と #!/bin/sh はどのように使い分けるんですか? http://www.ep.sci.hokudai.ac.jp/~inex/y2003/1031/script.html
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
別に使い分けなくても、常に #!/bin/bash で良いと思います。 sh にできて bash にできないことって無いでしょうから。 あえて使い分けるとしたら、 bash固有の機能を使いたいときは bash、 そうじゃなければ sh ってかんじでしょうか。 例えば、./hoge/piyo/ ってディレクトリがあって、 この下に foo、bar2つのディレクトリを新しく掘りたいとき sh だったら mkdir ./hoge/piyo/foo ./hoge/piyo/bar ってしなきゃいけないけど bash では mkdir ./hoge/piyo/{foo,bar} でOKとか。
その他の回答 (1)
- HOGERA3
- ベストアンサー率35% (50/139)
回答に対する補足No.1に対する回答です。 bash 固有の機能らしき部分は、 grep ^$USER: は sh だと grep "^$USER:" としないといけない(たぶん)ってぐらいでしょうか。 (""を省略していいなんてはじめて知った) 使い分けの理由は ---------- $ bash sample とすると... ---------- とbashを例に挙げたから #!/bin/bash にしたんじゃないでしょうか。 これが ---------- $ sh sample とすると... ---------- ってなってたら、ここも #!/bin/sh にしてたと思います。
お礼
サイトの説明の流れに沿って変更されたようですね。 ありがとうございました。
補足
上に書いた http://www.ep.sci.hokudai.ac.jp/~inex/y2003/1031/script.html では、最初に #!/bin/bash date echo "I am $USER." echo 'My login shell is ' | tr -d '\012' grep ^$USER: /etc/passwd | cut -d: -f 7 echo "Hey !!" 書かれています。 このソースではbash固有の機能は使われていますか? なぜそのサイトでは使い分けているか分かりませんか?