Bash
執行 diff <(cat old) <(cat new) 時使用什麼 fd?
如果我做:
diff <(cat old) <(cat new)
鋤頭在內部對 diff 程序有效嗎?我如何用 bash 腳本做同樣的事情?
你可以自己試試:
echo <(echo) <(echo)
Diff 只是從兩個文件中讀取。
如果您想將其
<(...)
用作 bash 腳本的參數,請記住您不能“倒回”文件(或重新打開)。所以一旦你讀了它,它就消失了。您可以使用read
它來逐行處理它,您可以使用grep
它或其他任何東西。如果您需要多次處理它,請將其內容保存到變數中input=$(cat "$1"; printf x) # The "x" keeps the trailing empty lines. input=${input%x}
或將其複製到臨時文件並反复閱讀:
tmp=$(mktemp) cat "$1" > "$tmp"