这两行按预期工作:
$ 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"
有什么建议吗?
答案 0 :(得分:1)
$ env NEW=hello bash -c "echo $NEW"
你在这个参数上使用双引号来进行bash,所以参数中的$NEW
由当前shell扩展,不是 {{1}命令你执行。由于bash
未在当前shell中设置,因此该命令将扩展为$NEW
。
在参数上使用单引号来解决此问题:
bash -c "echo "