bash -c变量未分配

时间:2019-05-03 14:49:49

标签: linux bash shell

我正在尝试执行以下命令

 $ bash -c "var='test' && echo $var"

,仅打印空白行。

如果我在没有bash -c的情况下执行了同一命令

$ var='test' && echo $var 
test
正在打印分配给$ var的

值。有人可以解释为什么我不能在第一个示例中分配变量吗?

1 个答案:

答案 0 :(得分:6)

双引号扩展变量,因此您的命令扩展为

bash -c "var='test' && echo"

如果$var在运行时为空。您可以使用

验证行为
var=hey
bash -c "var='test' && echo $var"

切换引号:

bash -c 'var="test" && echo $var'