为什么'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

相关内容