【问题标题】:linux env command does not work as expected?linux env 命令不能按预期工作?
【发布时间】:2015-03-04 23:37:27
【问题描述】:

这两行按预期工作:

$ env NEW=hello bash -c "env | grep hello"
NEW=hello
$ env NEW=hello bash -c "echo $PATH"
/bin:/usr/bin

但我不知道为什么以下不起作用(如预期的那样)。

$ env NEW=hello bash -c "echo $NEW"

有什么建议吗?

【问题讨论】:

  • 不行怎么办?

标签: linux env


【解决方案1】:
$ env NEW=hello bash -c "echo $NEW"

您在此处对 bash 的参数使用双引号,因此参数中的 $NEW 由您当前的 shell 扩展,不是由您正在执行的 bash 命令扩展.由于您当前的 shell 中没有设置 $NEW,因此该命令扩展为 bash -c "echo "

在参数上使用单引号来解决这个问题:

$ env NEW=hello bash -c 'echo $NEW'
hello

【讨论】:

    猜你喜欢
    • 2018-09-16
    • 2012-03-14
    • 2013-10-25
    • 2015-06-24
    • 1970-01-01
    • 2015-08-17
    • 2021-11-25
    • 2020-05-23
    • 2016-09-29
    相关资源
    最近更新 更多