wc
およびcat
コマンドを使用する簡単なbashスクリプトを実行しようとしています。スクリプトはこれで失敗します:
wc: command not found
またはこれ(wcを使用する文字列にコメントした後):
cat: command not found
何が起こっているのかわかりません。まったく同じコードフラグメントを含む同様のスクリプトは、完璧に機能します。両方のスクリプトは同じ条件で使用されます。その上、
machine:~ user$ which wc
/usr/bin/wc
そして
machine:~ user$ which cat
/bin/cat
@Tysonが指摘しているように、PATH
変数が答えを保持します。
スクリプトでフルパスを使用することは、通常、良い習慣と考えられていることを指摘したいと思います。たとえば、wc
を呼び出す代わりに、/usr/bin/wc
を呼び出すことができます。上記の問題を解決するだけでなく、誰かが同じ名前を使用してPATHに入れた可能性のあるアプリケーションを実行しないようにするため、より安全です...これらの攻撃の名前は思い出せませんが、アイデアは得られます=)