Bashスクリプトのディレクトリの違い

Bashスクリプトのディレクトリの違い

2つのアーカイブ(jarファイル)を2つのディレクトリに展開し、2つのフォルダを比較するbashスクリプトがあります。違いをファイ​​ルにパイプしたいので、bashファイルでこれを行います。

diff -r $originalJarExtracted $assembledJarExtracted >target/$diffList

これが動作している間、スクリプトも停止し、それ以降のすべてのエントリは実行されません。出力をファイルにパイプし、スクリプトが引き続き実行されるようにdiffを取得するにはどうすればよいですか? diffの情報とマニュアルページを見ましたが、うまくいきませんでした。ところで、私はMacでスクリプトを実行しています。

ちなみに、スクリプトは次のようになります。羽ハブから

ベストアンサー1

推測:スクリプトはset -e(同義語set -o errexit:)で実行されています。これにより、コマンドがゼロ以外の状態(通常は失敗を示す)を返すと、シェルは終了します。そうであれば、違いが見つかるとステータス1が返され、違いが見つかるとdiff終了します。diffこれが問題の場合は、行を次に変更します。

diff -r "$originalJarExtracted" "$assembledJarExtracted" >"target/$diffList" ||
[ $? -eq 1 ]

diffこれにより、スクリプトは0(差分なし)または1(差分)以外の状態が返された場合、つまりファイルの欠落などのエラーがある場合にのみ終了します。

おすすめ記事