为什么导出关键字在第二种情况下不起作用?

为什么导出关键字在第二种情况下不起作用?

考虑以下命令:

export set value=7
echo $value
export set value=70|echo $value

现在我们得到的输出:

7

7

但是,第二种情况不应该是 70 吗?

有人会解释我所缺少的东西。

答案1

管道中的每个命令都在其自己的 shell 中执行,因此您export set value=70在无法修改父 shell 的子 shell 中运行,因此echo $value看不到更改值的尝试。

另外,对于 POSIX shellset不需要分配给变量,你可以这样做export value=70

相关内容