我只是想知道為什麼我們需要使用這個命令
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