内联计算 bash/zsh 表达式



我知道可以做这样的事情

echo `ls` "foobar"
echo $(ls) "foobar"

但是当我尝试做类似的事情时

diff `pip freeze` requirements.txt
diff $(pip freeze) requirements.txt

它失败了。

我在这里错过了什么?谢谢!

附言我正在使用zsh外壳。

diff 命令确实需要文件名,因为它是参数,而不是字符串。像这样:

diff file1 file2

不是

diff "$string1" "$string2"

如果要比较两个命令的输出(或者在您的情况下针对静态文件的命令输出),可以使用进程替换

diff <(pip freeze) requirements.txt

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

尝试

diff =(pip freeze) requirements.txt

最新更新