我知道可以做类似的事情
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
.
关于bash - 内联评估 bash/zsh 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29696811/