2012-10-01 3 views
0

질문이 있습니다. 내 if 문이 true 인 경우 elif 수표를 건너 뛰고 fi으로 바로 가거나 elif 진술을 확인합니까? 스크립트의linux if/elif/fi 명령

예 :

if [ argument1 || argument2 ] 
    then 
      do something. 
elif [ argument2 || argument3 ] 
    then 
      do something. 
elif [ argument2 || argument4 ] 
    then 
      do somthing. 
else 
      do somthing else. 
fi 

내 질문은 처음 if 문이 사실이라면 내 elif 문은 아직 확인하려는 것 인. 내 elif 진술은 내 첫 번째 elif 진술은 확인했다 싶습니다. true 등 ... 기본적으로 모든 내 ifelif 문을 모두 확인하는 것이 좋습니다.

NB. 나는 내 elifif 진술로 바꿀 수 있다는 것을 깨닫고 이것은 모든 if 진술이 검사 될 것이기 때문에 내 문제를 해결할 것입니다. 그러나이 질문은 또한 호기심이없고 ifelif 진술에 대한 더 나은 지식을 가지고 있습니다.

자세한 정보가 필요하면 알려주십시오.

+2

다른 점은 이것입니다. 모든 실제 명령을 실행하는 경우에만 사용할 수 있습니다. – raam86

+0

'[condition || 조건]'이 유효하지 않으면'[['. '[[조건 || 조건]]''그렇지 않으면'[condition] || [조건]'. – jordanm

+0

아 맞아! 고맙다. 나는 약간의 스크립트 테스트를하는 동안 이것을 깨달았다. :) –

답변

3

elif 이전 문구 중 하나가 일치하면 문을 검사하지 않습니다. elif은 "else if"의 약자입니다. 이전 조건이 일치하지 않으면이 다른 조건을 검사해야 함을 의미합니다.

당신이 말한대로, 당신은 단지 if 진술을 사용하여 당신의 유스 케이스에 사용할 수 있습니다.

+0

정보 주셔서 감사합니다 :) –

1

조건이 충족되면 if 문이 종료되고 나머지 elif 조건은 검사되지 않습니다.

예 :

if echo foo 
then 
    echo "in foo" 
elif echo bar 
then 
    echo "in bar" 
fi 

인쇄

foo 
in foo 

당신이 그 (것)들을 모두 확인하려면

는 다음과 같은 경우 명령문이 제안한 여러으로 그것을 깰 필요가있다.