内联计算 bash/zsh 个表达式

Evaluate bash/zsh expressions inline

我知道可以做类似

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

但是当我尝试做类似

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

它失败了。

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

P.S 我正在使用 zsh shell.

diff 命令需要文件名作为参数,而不是字符串。类似于:

diff file1 file2

不是:

diff "$string1" "$string2"

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

diff <(pip freeze) requirements.txt

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

尝试

diff =(pip freeze) requirements.txt