首页 > 解决方案 > bash -c 变量没有被分配

问题描述

我正在尝试执行以下命令:

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

并且只打印一个空行。

如果我不执行相同的命令bash -c

$ var='test' && echo $var 
test

$var正在打印分配给的值。有人可以解释为什么我不能在第一个示例中分配变量吗?

标签: linuxbashshell

解决方案


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

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

$var运行时if为空。您可以使用以下方法验证行为

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

切换引号:

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

推荐阅读