Diff

如果錯誤-n$d我_FC你的_−n$d一世FFC你rr-n $diffCurr: 爭論太多

  • November 10, 2016

我一直在使用下面的程式碼好一段時間,但現在我得到一個錯誤

java Editor < "input/editor$i.in" > "tmp/editor$i.out"
diffCurr="$(diff "tmp/editor$i.out" "output/editor$i.out")"
if [ -n $diffCurr ]

錯誤(發生在上述程式碼段的最後一行):

[: 爭論太多

怎麼了?我正在嘗試測試差異結果是否為空(即文件中的相同內容)

無需將 的輸出放入diff變數中,因為您可以根據 的退出狀態判斷文件是否不同diff,例如

if diff -q file1 file2 >/dev/null 2>&1; then
       # files are equal
else
       # files differ, or an error occurred
fi

diff``0如果文件沒有差異,則返回成功 ( )。根據需要調整邏輯。

在可能的情況下測試命令的退出狀態幾乎總是優於通過命令替換檢查或解析輸出。

為了完整起見,原始範例的錯誤發生是因為您沒有"$diffCurr"在該if行中引用,因此它經歷了“單詞拆分”成多個單詞 - 因此“參數太多”。

引用自:https://unix.stackexchange.com/questions/22337