我正在使用ZSH。 为什么最后一个命令不输出任何内容?
$ cat create_foo.sh
foo=bar
$ source create_foo.sh && echo $foo
bar
$ unset foo
$ bash -c "source create_foo.sh && echo $foo"
从上一条命令中我没有任何输出。
答案 0 :(得分:4)
因为$foo
被双引号中的空字符串代替。
您需要使用单引号或转义$
符号:
$ bash -c 'source create_foo.sh && echo $foo'
bar
$ bash -c "source create_foo.sh && echo \$foo"
bar