web-dev-qa-db-ja.com

wc / catコマンドが見つかりません

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
5
hdf

@Tysonが指摘しているように、PATH変数が答えを保持します。

スクリプトでフルパスを使用することは、通常、良い習慣と考えられていることを指摘したいと思います。たとえば、wcを呼び出す代わりに、/usr/bin/wcを呼び出すことができます。上記の問題を解決するだけでなく、誰かが同じ名前を使用してPATHに入れた可能性のあるアプリケーションを実行しないようにするため、より安全です...これらの攻撃の名前は思い出せませんが、アイデアは得られます=)

4
jimm-cl