我知道可以做这样的事情
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