답변:
&&연산자 사용
cmd1 && cmd2 && cmd3
shellscripting에서 &&와 ||연산자 C. 된 논리 연산자의 최적화 된 구현 후 모델링 &&수단 및 조작자 및 ||수단 OR. 유닉스는 C와 밀접하게 관련되어 있으며 C에서는 논리 연산자의 두 번째 피연산자가 결과가 첫 번째 피연산자로부터 이미 알려진 경우 평가되지 않습니다. 예를 들면 "false && x"이다 false어떤을 위해 x, 그래서 평가를 할 필요가 없습니다 x(특히 x함수 호출됩니다) 비슷합니다 "true || x". 이를 단락 시맨틱 이라고도 합니다.
유닉스에서는 명령의 반환 값을 "성공적인 완료"진실 값으로 해석하는 것이 일반적입니다. 종료 코드 0은 true(성공), 0이 아닌 의미 false(실패)를 의미 합니다. 따라서 첫 번째 명령이 cmd1 && cmd2리턴 되면 "false"(제로가 아닌 종료 상태, 실패를 나타냄) 복합 명령의 상태는 실패입니다. 따라서 cmd1 && cmd2 "execute cmd1, ANDNN (실패하지 않은 경우) " 으로 해석 cmd2됩니다. 질문에서 기본적으로 원하는 것은 무엇입니까?
OR :와 마찬가지로 cmd1 || cmd2"execute cmd1, OR IF failure "로 해석 될 수 있습니다 cmd2.
팁 : 더 긴 체인을 사용하려면 스크립트를 &&넣는 것이 set -e좋습니다. 기본적으로 세미콜론 은 몇 가지 특수한 경우 ;로로 바뀝니다 &&.
||
A || B[단락] 논리 A OR B와 동일 합니다. A || B인 성공을 때 A이었다 성공 , 또는 때 A이었다 실패 했지만 B이었다 성공 ; 하고 A || B있다 실패 할 때 A이었다 실패를 하고 B있었다 failure. 와 마찬가지로 &&논리 AND를 따릅니다.
;기본적으로 일반 규칙 (또는 줄 바꿈)이 수행하는 작업입니다. 대략 말하기 로 set -e변 합니다. [기본값]은 다음과 같이 말합니다 : run , no-matter-what run . ;&&set +eA; BAB