linux env命令无法按预期工作?

linux env命令无法按预期工作?,linux,env,Linux,Env,这两条线按预期工作: $ 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" 这里对bash的参数使用双引号,因此参数中的$NEW由当前shell展开,而不是由正在执行的bash命令展开。由于当前shell

这两条线按预期工作:

$ 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"
这里对bash的参数使用双引号,因此参数中的
$NEW
由当前shell展开,而不是由正在执行的
bash
命令展开。由于当前shell中未设置
$NEW
,因此命令扩展为
bash-c“echo”

在参数上使用单引号解决此问题:

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

那它不起作用呢?
$ env NEW=hello bash -c 'echo $NEW'
hello