쉘 스크립트 OR 연산자 질문

조회수 43회
service ssh status > /dev/null || sudo service ssh start

리눅스 cli 상에서 SSH 서비스를 실행시키는 스크립트인데

가운데 || 연산자는 OR잖아요?

이게 어떤 조건문도 아니고 명령어 두 개 사이에 || 연산자가 들어가면 어떻게 동작하는 건가요?

실제로 실행시켜 보면 그냥 SSH가 시작되는 것 말고 딱히 눈에 띄는 건 없네요.

1 답변

  • 좋아요

    4

    싫어요
    채택 취소하기

    a || b

    a 명령어를 우선 실행시킨 후, 그 명령어의 종료 상태가 0이 아닌 경우에만 b를 실행합니다.

    역사적 전통 같은건데, 프로그램은 끝까지 의도된 대로 동작한 경우에는 종료 상태 0을 반환하고, 어떤 예외 조건 등으로 도중에 종료시키는 경우에는 종료 상태를 0 이외의 숫자를 반환하는 관습이 있습니다.

    a를 실행시킨 후에 이게 정상적으로 동작하지 않았을 때에만 b가 실행된다고 기억하시면 되겠습니다.

답변을 하려면 로그인이 필요합니다.

Hashcode는 개발자들을 위한 무료 QnA 사이트입니다. 계정을 생성하셔야만 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 계정을 생성하셔야만 글을 작성하실 수 있습니다.