为什么“ x = 5 echo $ {x}”不输出任何内容?

时间:2019-04-28 16:26:31

标签: shell sh

我目前正在尝试使自己熟悉Shell行和命令执行。

有人可以向我解释以下行为吗?为什么在命令前有分隔符的情况下,shell仅注册一个赋值变量?不能在同一命令中进行分配吗?

sh-3.2$ x=5 echo ${x}


sh-3.2$ x=5; echo ${x}

5

sh-3.2$ x=5 && echo ${x}

5

1 个答案:

答案 0 :(得分:0)

如果没有分隔符,则将x运行时(仅在单个命令期间)将echo设置为 environment 变量, 定义一个shell变量,用于在命令启动之前评估扩展(在x=5; echo "$x"情况下就是这种情况)。

但是,echo不会根据定义的环境变量来更改其输出(除了有时非常具体的环境变量意在修改其行为-POSIXLY_CORRECT等),因此没有可见效果。