概要
diffコマンドを使用するとファイル間の差分を取得できるが、diffコマンドで差分がある場合の終了ステータスは0ではないため、後続する処理がある場合はそこでエラー終了してしまう。
そのためスクリプトに書いた一連の処理の中にdiffが含まれる場合は、差分があってもエラーとして扱われないようにする必要がある。
対処方法
以下のようなコードでfile_1.txt
とfile_2.txt
の間に差分が存在する場合、file_1.txt
とfile_3.txt
の差分を取得する前にエラー終了となる。
diff file_1.txt file_2.txt
diff file_1.txt file_3.txt
上記の場合でも処理を継続させるには終了ステータスを上書きする必要がある。
diff file_1.txt file_2.txt || true
diff file_1.txt file_3.txt || true
|| true
を後ろに付け加えると差分があった場合でも終了ステータスを0にしてくれる。