LinuxのShebangについて質問です。 ShellScriptのShebangを書くときにシェルの場所を書くと思いますが 「#! /bin/bash」が正しい書き方であると思いますが

補足

「#! /usr/bin/bash」と書くのは間違いですか?

Linux系10閲覧

ベストアンサー

0

回答ありがとうございます。 なるほどなるほど。シンボリックリンクという事ですか。 今fileコマンドで形式を調べたのですがシンボリックリンクと表記されていませんでしたが本当にそうなのでしょうか? 誤作動の件は言った人に聞こうと思います。

画像

ThanksImg質問者からのお礼コメント

返信遅れましたm(__)m /binを調べてらシンボリックリンクということが分かりました! /bin/bashがシンボリックリンクではなくて、/binがシンボリックリンクだったという事ですね。解決しました。ありがとうございました。

お礼日時:6/17 3:22

その他の回答(1件)

0

/usr/bin/bashだとシステムレベルでインストールされたものではなく、何らかの理由で違うバージョンを使いたくてインストールしている可能性がある。 あと下手したらマルウェアとかに感染していたりする事も。 ポータビリティを第一にするのなら、sebangは#!/usr/bin/env bashとすると、PATHで指定されている一番最初に見つかったbashを使う。 前述した様にbashはその気になれば複数のバージョンを混在してインストールできる。 その場合、バージョンによっては新たな機能が追加されていたりする。 そういった時に違うパスのバージョンのbashを指定していたりすると、誤作動を防げる。

私の知識不足で質問に対する回答が良く分からないのですが 違うバージョンというのは一般的な(システムレベルの)bashのバージョンと違うバージョンということですか? ちなみにWindowsに仮想的に作ったものでディストロはKaliLinuxで既存のサービスしか入っていないと思うんですよね。 それで「/usr」から始まる書き方はShebangの書き方としては間違っているのですか?一般的には違うけど私のはなぜか/usrに入っているので私のLinuxではあっているという事ですか? 誤作動というのは違うバージョンの機能が誤って作動することですか?