diff -q file_1 File_2 || echo "success" && diff -q file_3 File_4 || echo "success"
このコマンドを使用しましたが、必要な正しいロジックではなく、いくつかのメソッドを編集する必要がありました。
file_3 File_4とは異なり、echoは2回実行されるため、一度file_1
File_2
だけ実行する必要があり、file_1 File_2またはfile_3 File_4ファイルが異なる場合はecho "success"
一度だけ実行する必要があります。
答え1
段落評価に固執する場合は、コマンドのグループ化を使用してください{}
。
{ diff -q f1 f2 && diff -q f3 f4 ;} && echo 'Matched' || echo 'Different'
サブシェル()
も機能します:
( diff -q f1 f2 && diff -q f3 f4 ) && echo 'Matched' || echo 'Different'
diff
出力を望まない場合:
{ diff -q f1 f2 && diff -q f3 f4 ;} >/dev/null && echo 'Matched' || echo 'Different'
( diff -q f1 f2 && diff -q f3 f4 ) >/dev/null && echo 'Matched' || echo 'Different'
if
ファイルを簡単に識別できるように、より明確にするために構文に入れることをお勧めします。
if diff -q f1 f2 >/dev/null; then
if diff -q f3 f4 >/dev/null; then
echo 'All Matched'
else
echo 'f3 and f4 are Different'
fi
else
echo 'f1 and f2 Different'
fi