if 루프에서 두 개의 명령 종료 코드를 사용하여 테스트하는 방법은 무엇입니까?

if 루프에서 두 개의 명령 종료 코드를 사용하여 테스트하는 방법은 무엇입니까?

if 루프에서 추가 파이프 없이 두 개의 명령 존재 코드를 테스트하고 싶습니다.

이제 단일 명령을 사용할 수 있습니다.

if cmp -s file1 file2
then
....

하지만 두 개의 테스트를 추가하는 방법은 무엇입니까? 괜찮나요?

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"가 성공합니다. 이는 원하는 대로 되어야 합니다. 두 번째 테스트의 출력이 필요한 경우 첫 번째 테스트가 실패하면 실행되지 않으므로 이 작업을 수행하면 안 됩니다. 그렇지 않으면 이것은 좋은 전략처럼 보입니다.

관련 정보