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

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

wcコマンドを使用する簡単な bash スクリプトを実行しようとしていますcat。スクリプトは次のように失敗します:

wc: command not found

またはこれ(wc を使用する文字列をコメントした後):

cat: command not found

何が起こっているのか全く分かりません。全く同じコード断片を含む類似のスクリプトは完璧に動作します。両方のスクリプトは同じ条件で使用されます。その上、

machine:~ user$ which wc
/usr/bin/wc

そして

machine:~ user$ which cat
/bin/cat

答え1

@Tyson が指摘したように、PATH変数には答えが保持されます。

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

関連情報