[linux] Linux Bash에서 이중 앰퍼샌드 (&&)와 세미콜론 (;)의 차이점은 무엇입니까?

Linux Bash 에서 앰퍼샌드와 세미콜론의 차이점은 무엇입니까 ?

예를 들면

$ command1 && command2

vs

$ command1; command2



답변

&&연산자는 부울 AND 연산자 : 왼쪽이 0이 아닌 종료 상태, 운영자 반환 상태가 반환되며 오른쪽합니다 (단락)를 평가하지 않는 경우, 그렇지 않으면 오른쪽을 평가하고 종료 상태를 반환 . 이것은 일반적으로 성공적으로 command2실행 된 경우에만 실행되도록 하는 데 사용됩니다 command1.

;에 관계없이 첫 번째 성공 여부의 두 번째 명령을 실행할 수 있도록 토큰은, 명령을 분리한다.


답변

command1 && command2

command1 && command2실행 command2command1성공적으로 끝날 경우에만 실행됩니다. Unix 전문 용어에서 이는 종료 코드 / 반환 코드 가 0 임을 의미 합니다.

command1; command2

command1; command2실행 command2command1순차적으로 실행 됩니다. 명령의 성공 여부는 중요하지 않습니다.


답변

전자는 AND단락 평가를 사용 하는 간단한 논리 이고 후자는 단순히 두 명령을 구분합니다.

실제로 일어나는 일은 첫 번째 프로그램이 0이 아닌 종료 코드를 반환 할 때 전체 AND가 평가되고 FALSE두 번째 명령이 실행되지 않는다는 것입니다. 나중에는 단순히 두 가지를 순서대로 실행합니다.


답변