パッチを適用する前にファイルがパッチされているかどうかはわかりますか?
スクリプトでこれを行う必要があります。どんなアイデアがありますか?
ベストアンサー1
はい、オプションをpatch
使用して実行する--dry-run
と失敗または成功し、終了状態で確認できます。
しかし、より一般的な(そしてエラーが少ない)方法で-R
、パッチ全体を復元できる場合にのみ「適用」と見なされる可能性があるため、「逆」を意味するオプションを使用して実行する必要があるかもしれません。そうしないと(「-R」なし)、元のファイルの一部が変更され、失敗する可能性があります。簡単な例は次のとおりです。
if ! patch -R -p0 -s -f --dry-run <patchfile; then
patch -p0 <patchfile
fi
patch
(stdoutとstderrを上記のコードスニペットにリダイレクトして完全に沈黙することを好むかもしれません/dev/null
)