我知道可以做像
这样的事情echo `ls` "foobar"
echo $(ls) "foobar"
但当我尝试做类似
的事情时diff `pip freeze` requirements.txt
diff $(pip freeze) requirements.txt
失败了。
我在这里缺少什么?谢谢!
P.S我正在使用zsh
shell。
答案 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