変数の宣言後に実行するとデフォルトで「コマンドが見つかりません」となる

変数の宣言後に実行するとデフォルトで「コマンドが見つかりません」となる

次のコードが機能しないのはなぜですか?

#!/bin/sh
PATH=$PWD/Info
defaults read $PATH

実行するたびに

./script: 行 3: デフォルト: コマンドが見つかりません

1行でやるとうまくいきます

defaults read $PWD/Info

それは大丈夫です。ただ興味があるだけです。

答え1

特別な変数であるを変更しているためです$PATH。シェルは実行可能プログラムの検索に PATH を使用します。 はdefaultsおそらくそのうちの 1 つですが、そのフォルダーを PATH から削除すると、シェルはそれを実行できなくなります。

答え2

パスを置き換えるのではなく、パスに追加します。

PATH=$PWD/Info:$PATH

関連情報