当使用-c调用时,Bash传播变量

时间:2018-08-10 10:30:13

标签: bash

我正在使用ZSH。 为什么最后一个命令不输出任何内容?

$ cat create_foo.sh 
foo=bar

$ source create_foo.sh && echo $foo
bar

$ unset foo

$ bash -c "source create_foo.sh && echo $foo"

从上一条命令中我没有任何输出。

1 个答案:

答案 0 :(得分:4)

因为$foo被双引号中的空字符串代替。

您需要使用单引号或转义$符号:

$ bash -c 'source create_foo.sh && echo $foo'
bar

$ bash -c "source create_foo.sh && echo \$foo"
bar