if 문에서 && 연산자 사용


84

세 가지 변수가 있습니다.

VAR1="file1"
VAR2="file2"
VAR3="file3"

다음 &&과 같이 if 문에서 and ( ) 연산자 를 사용하는 방법 :

if [ -f $VAR1 && -f $VAR2 && -f $VAR3 ]
   then ...
fi

이 코드를 작성하면 오류가 발생합니다. 올바른 방법은 무엇입니까?

답변:


172

따라서 표현이 작동하도록 하려면 &&for 변경 -a이 트릭을 수행합니다.

다음과 같이 정확합니다.

 if [ -f $VAR1 ] && [ -f $VAR2 ] && [ -f $VAR3 ]
 then  ....

또는 좋아

 if [[ -f $VAR1 && -f $VAR2 && -f $VAR3 ]]
 then  ....

또는

 if [ -f $VAR1 -a -f $VAR2 -a -f $VAR3 ]
 then  ....

이 질문에서 더 자세한 내용을 찾을 수 있습니다 bash : if 문의 다중 단항 연산자test, [및 [[의 차이점은 무엇입니까? .


14
주의 POSIX는 사용 권장 &&||단일 브래킷을 통해 표기법 -a-o당신이 필요로하는 경우 읽기 어색하고 어려운 얻을 수 있습니다 특히 이후, 그렇지 않으면 두 번째 그래서 첫 번째 표기 휴대용 코드 이동을 작성하는 경우를, 세 번째를 건너 식을 그룹화합니다.
Adrian Frühwirth 2013 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.