为什么“ A = 3; A = 4 echo $ A”在Bash中产生3(而不是4)?

时间:2019-11-05 13:11:27

标签: linux bash

如果我理解正确,语法

Var=<something> command 

在将Var设置为“ something”后应运行命令。那为什么"A=3; A=4 echo $A"会在我的bash中产生3个?

2 个答案:

答案 0 :(得分:7)

bash中的变量是在执行开始之前而不是执行期间进行评估的,因此我们对命令进行了预处理:

A=4 echo $A

$A被评估为A的当前值,并在执行以下操作之前将其替换为:

A=4 echo 3

然后才执行它,A将值更改为4,并打印3。

答案 1 :(得分:0)

这是因为您没有在第二个变量赋值之后放置分号。

请尝试以下操作:

A=3; A=4; echo $A