内联评估bash / zsh表达式

时间:2015-04-17 10:33:05

标签: bash zsh

我知道可以做像

这样的事情
echo `ls` "foobar"
echo $(ls) "foobar"

但当我尝试做类似

的事情时
diff `pip freeze` requirements.txt
diff $(pip freeze) requirements.txt

失败了。

我在这里缺少什么?谢谢!

P.S我正在使用zsh shell。

2 个答案:

答案 0 :(得分:7)

diff命令确实需要文件名作为参数,而不是字符串。类似的东西:

diff file1 file2

diff "$string1" "$string2"

如果要对两个命令的输出进行区分(或者在您的情况下是对静态文件输出命令),可以使用process substitution:

diff <(pip freeze) requirements.txt

<()会将pip freeze的输出重定向到/dev/fd[0-9]的文件中。然后,此文件名将传递给diff

答案 1 :(得分:0)

尝试

diff =(pip freeze) requirements.txt