쉘 스크립트 OR 연산자 질문

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

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

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

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

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

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • a || b

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

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

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

    • (•́ ✖ •̀)
      알 수 없는 사용자

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

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)