我正在尝试执行以下命令
$ bash -c "var='test' && echo $var"
,仅打印空白行。
如果我在没有bash -c
的情况下执行了同一命令
$ var='test' && echo $var
test
正在打印分配给$ var的值。有人可以解释为什么我不能在第一个示例中分配变量吗?
答案 0 :(得分:6)
双引号扩展变量,因此您的命令扩展为
bash -c "var='test' && echo"
如果$var
在运行时为空。您可以使用
var=hey
bash -c "var='test' && echo $var"
切换引号:
bash -c 'var="test" && echo $var'