linux - 为什么我的 shell (sh) 变量在命令模式下没有导出?

标签 linux shell sh

如果我运行这样的 shell 命令,我导出的变量将不可见。

sh -c "export x=100; echo x is $x"

我希望它输出“x is 100”,但它只是说“x is”。如果我在交互模式下运行它,它会像预期的那样工作。

我的 shell 版本是:GNU bash,版本 3.2.51(1)-release (x86_64-suse-linux-gnu)

最佳答案

$x 由当前 shell 解释,而不是您正在启动的 sh shell。

用反斜杠转义:

sh -c "export x=100; echo x is \$x"

或者使用单引号来防止 shell 解释变量:

sh -c 'export x=100; echo x is $x'

关于linux - 为什么我的 shell (sh) 变量在命令模式下没有导出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36060306/

相关文章:

linux - Linux 和 Mac OS X 中的 .o 文件

linux - 如何通过管道传输 2 个命令来获取我所在国家/地区的 IP 地址?

linux - 我如何将pid写入文件

python - 需要一种方法来计算 python 脚本中 unix 命令的执行时间

bash - 如何在参数位于中间的位置创建别名?

shell脚本,如果无论如何都会执行

linux - 如何使用sed或awk处理指定列的内容?

linux - 如何开始开发和调试Linux Kernel?

linux - 文件夹名称 文件夹内

r - 指定在 R 中使用哪个 shell