如果我理解正确,语法
Var=<something> command
在将Var设置为“ something”后应运行命令。那为什么"A=3; A=4 echo $A"
会在我的bash中产生3个?
答案 0 :(得分:7)
bash中的变量是在执行开始之前而不是执行期间进行评估的,因此我们对命令进行了预处理:
A=4 echo $A
$A
被评估为A
的当前值,并在执行以下操作之前将其替换为:
A=4 echo 3
然后才执行它,A
将值更改为4,并打印3。
答案 1 :(得分:0)
这是因为您没有在第二个变量赋值之后放置分号。
请尝试以下操作:
A=3; A=4; echo $A