[LINUX] 다중명령어(; / && / ||)

ming·2021년 12월 31일
0

리눅스

목록 보기
3/6

다중명령어

다중 명령어에 의한 CLI장점

다중명령어은 CLI의 큰 장점중하나이다. 명령어의 성공여부에 따라 그 동작을 제어할 수 있다.

세미콜론 ;

세미콜론으로 명령어를 구분하게 되면 단순하게 한의 명렁어 라인에서 여러 명령어를 실행한다. 명령어의 성공여부는 중요하지 않으며 단순하게 앞 명령어부터 순차적으로 실행 하게 된다.

mkdir test; cd test




앰퍼샌드 &

mkdir test & cd test

앰퍼샌드로 명령어를 구분하게 되면 앞의 명령어는 백그라운드로 실행되고 즉시 뒤의 명령어를 실행하게 된다. 첫 명령어가 백그라운드에서 실행되기 때문에 test디렉토리가 생성되기 전에 다음 명령어가 실행 되어 버린다. 그래서 앰퍼샌드 즉 백그라운드 작업을 실행 할때는 뒤의 명령어가 앞의 명령어의 결과에 종속되면 안된다.




버티컬 바 |

ls -al | grep test  

위의 명령어는 ls명령어를 통해서 모든 파일들의 목록을 표시하고 grep명령어를 통해서 그 목록중에 test라는 문자열이 포함된 라인만 출력해주는 것이다. 이와 같이 뒤의 명령어 앞의 명령어의 결과를 파이프를 통해 쉽게 전달 할 수 있다.




더블 앰퍼샌드 (&&)

더블 앰퍼신드로 명령어를 연결하게 되면 앞의 명령어가 실패할 경우 뒤의 명령어를 실행하지 않는다.

sudo apt-get update && sudo apt-get upgrade -y

apt-get명령어는 패키지의 설치와 삭제 업데이트 등을 관리할 수 있는 명령어이다. 따라서 앞의 명령어는 apt-get update로 패키지 업데이트의 목록을 불러오는 것이고, 뒤의 apt-get upgrade 명령어는 목록을 통하여 업데이트를 실제로 진행하는 것이다. 따라서 앞의 update가 실패할 경우 뒤의 명령어가 실행되면 의미가 없다. 즉 앞의 명령어의 성공여부가 뒤의 명령어를 실행할 때 영향이 크다면 더블 앰퍼샌드를 사용하여 연결해주면 굉장히 유용하다.




더블 버티컬 바 ||

더블 버티컬바로 명령어를 연결하게 되면, 앞에 있는 명령어가 성공하면 뒤에 있는 명령어를 실행하지 않는다.

rmdir test || sudo rmdir test

위와 같은 경우 사용할 수 있다. 만약에 앞의 명령어가 실행이 되면 뒤의 명령어는 필요하지 않을 경우이다. 위의 예시는 앞에서는 관리자 권한이 없이 test라는 폴더를 삭제한다. 이 명령어가 실패한다면, test라는 폴더를 sudo를 통해여 관리자 권한으로 삭제시켜 주는 것이다. 따라서 앞의 명령어가 성공하지 못하면 뒤의 명령어가 실행되야 하는 경우에 사용하면 유용하다.

출처 - https://hyoje420.tistory.com/30

profile
To be

0개의 댓글