Linux와 커맨드 라인 기초

$ false && echo A || echo B
$ true || echo C; echo D

위의 두 줄을 셸(shell)에서 실행했을 때 표시되는 문자로 올바른 것은?

  1. AD만
  2. BB와 D
  3. CB와 C와 D
정답과 해설 보기

정답: B. B와 D

명령은 종료할 때 종료 상태를 돌려주며, 0이 성공, 0 이외가 실패를 나타냅니다(직전의 값은 $?로 볼 수 있습니다). 'A && B'는 A가 성공했을 때만 B를, 'A || B'는 A가 실패했을 때만 B를 실행하며, ';'는 결과와 관계없이 다음을 실행합니다. 첫 번째 줄에서는 false가 실패하므로 echo A는 건너뛰어지고, 'false && echo A' 전체가 실패로 취급되어 || 뒤의 echo B가 실행됩니다. 두 번째 줄에서는 true가 성공하므로 echo C는 실행되지 않고, ';' 뒤의 echo D는 반드시 실행되므로 표시는 B와 D가 됩니다.

이 분야 연습하기 분야로 돌아가기

Linux와 커맨드 라인 기초의 다른 문제

  1. 위의 명령을 순서대로 실행했을 때, 두 echo의 출력으로 올바른 것은?
  2. 위와 같이 스크립트 s.sh를 인수를 붙여 실행했을 때의 출력으로 올바른 것은?
  3. 셸 스크립트에서 위의 if 조건이 참이 되는 경우로 올바른 것은?
  4. 위의 조작 후에 디렉터리에 있는 파일로 올바른 것은?
  5. 현재 디렉터리에 있는, 실행 권한이 붙은 스크립트 run.sh를 'run.sh'라고 입력하여 실행하려고 하면 'command not found'가 되고, './run.sh'라고 입력하면 실행할 수 있었다. 이유로 올바른 것은?