linux bash使用的一个问题

来源:百度知道 编辑:UC知道 时间:2024/06/07 22:48:19
v1=abc echo $v1
v1=abc;echo $v1
我知道第2条是把两个命令先后分别执行,但第一条呢?shell是怎样处理?为什么不提示出错?而且赋值又不成功?

空格分隔开的两部分也会被解析为两个命令,不过与分号隔离的不同之处在于它们是并发执行的。由于并发执行,echo $v1的时候,变量v1还没有被赋值,因此执行的话不会有结果,也不会有错误提示。
你逐行执行以下命令试试:
v2=123
v1=abc echo $v2
echo $v1
可以看到第二行中的v1赋值和echo $v2其实都是成功的。