如果我运行这样的 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/