為什麼「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

相關內容