ifループで2つのコマンド終了コードを使ってテストする方法は?

ifループで2つのコマンド終了コードを使ってテストする方法は?

ifループで追加のパイプなしで2つのコマンドプレゼンスコードをテストしたいと思います。

これで単一のコマンドを使用できます。

if cmp -s file1 file2
then
....

しかし、2つのテストを追加する方法は?大丈夫ですか?

if cmp -s file1 file2 && test -f file3
then
...

以下は私にはうまくいきません。

if [ $(cmp -s file1 file2) -a $(test -f file3) ]
then
...

ベストアンサー1

if cmp -s file1 file2 && test -f file3
then
...

書かれているように、両方のテストのいずれかが失敗すると「if」は失敗し、両方のテストが成功すると「if」は成功します。これは必要に応じて行う必要があります。 2番目のテストの出力が必要な場合、最初のテストが失敗した場合は実行されないため、これを実行しないでください。そうでなければ、これは良い戦略のように見えます。

おすすめ記事