「export $Path=$Path:dir」が機能しないのはなぜですか?

「export $Path=$Path:dir」が機能しないのはなぜですか?

なぜこのコマンドを使う必要があるのか​​疑問に思います

export Path=$Path:dir

なぜコマンドは次のようではないのか

export $Path=$Path:dir/dir'

答え1

ドル記号$アクセス変数を設定するのではなく、変数を印刷するのです。これを簡単に確認する方法は、変数を印刷してみることです。

test="Hello"
echo test
# prints 'test'
echo $test
# prints 'Hello'
$test="Bye"
# Not allowed

答え2

こうすると:

VAR=value

bash は、変数が存在しない場合は、VAR を「値」に設定して変数を作成します。

次のように書くと:

$VAR=value

次に、bash はこれを実行し、$VAR を現在の値に置き換えます。たとえば、$VAR の値が x だった場合、次のようになります。

x=var

実行されるコマンドとして. 「コマンドが見つかりません」と表示されるのはそのためです

ただし、次のようにして bash にこれを再解釈するように指示することができますeval

VAR2=x
VAR=VAR2
echo $VAR2
x

eval $VAR=y
echo $VAR2
y

関連情報