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番目のテストの出力が必要な場合、最初のテストが失敗した場合は実行されないため、これを実行しないでください。そうでなければ、これは良い戦略のように見えます。