2021년 1월 27일 수요일

단락 연산자(short-circuit operator)

 리눅스에서 명령어를 연속 해서 사용 할 때가 있다.

보통 || 와 &&을 사용한다. 이를 단락 연산자(short-circuit operator)라고 한다.

첫번째 명령어를 실행하고 곧이어 두번째 명령어를 실행하는 역할이다.


예제는 다음과 같다.

[root@localhost ~]# true || echo 'ok'
[root@localhost ~]# false || echo ok
ok
[root@localhost ~]#

||는 앞의 명령어 성공하면 뒤의 echo 'ok'는 실행하지 않는다.
앞의 명령이 실패하면 뒤의 echo 'ok' 명령를 실행한다.

&&은 ||과 반대이다. 앞의 명령이 성공하면 뒤의 명령을 실행한다.
앞의 명령이 실패하면 뒤의 명령을 실행하지 않는다.

[root@localhost ~]# true && echo 'ok'
ok
[root@localhost ~]# false && echo 'ok'
[root@localhost ~]#

앞 명령어와 상관없이 실행하고자 할 때는 ;를 쓴다.
[root@localhost ~]# echo '1ok'; echo '2ok'
1ok
2ok
[root@localhost ~]#