1
據我所知,這是可以做到的東西一樣評估的bash/zsh中表達直列
echo `ls` "foobar"
echo $(ls) "foobar"
但是當我嘗試做一些像
diff `pip freeze` requirements.txt
diff $(pip freeze) requirements.txt
失敗。
缺少什麼我在這裏?謝謝!
P.S我正在使用zsh
shell。
據我所知,這是可以做到的東西一樣評估的bash/zsh中表達直列
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"
如果你想diff的兩個命令的輸出(或你的情況的命令對靜態文件的輸出),您可以使用process substitution:
diff <(pip freeze) requirements.txt
的<()
將的pip freeze
輸出重定向到一個文件在/dev/fd[0-9]
。此文件名將傳遞到diff
。
嘗試
diff =(pip freeze) requirements.txt
我沒能得到,在我的'zsh'的設置工作,但那個曾在'bash'確定。謝謝。 – nunos
我在'zsh'試過'diff <(echo foo)<(echo bar)',它工作正常。你正在使用哪個版本的'zsh'? – hek2mgl
我使用的是'5.0.7'版本。我得到這個錯誤'錯誤:/ dev/fd/11:不支持的文件類型致命:不能散列/ dev/fd/11'。 – nunos