일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Compression
- nvidia
- 딥러닝
- CuDNN
- flash_memory
- DRAM
- CUDA
- Semiconductor
- kubernetes
- FPGA
- jhDNN
- GPU
- quantum_computing
- SpMM
- dnn
- 클라우드
- stl
- convolution
- Qubit
- sycl
- 양자역학의공준
- POD
- HA
- 반도체
- 반도체기초
- deep_learning
- cloud
- jhVM
- 쿠버네티스
- C++
- Today
- Total
Computing
[Linux] 터미널 커맨드라인 한줄에 여러 명령어 한번에 실행시키기 본문
Linux 터미널에서 여러 명령어를 순차적으로 실행시켜야 하는 경우가 있다. 예를 들면 폴더를 만들고, 그 폴더에 git을 통해 프로젝트를 다운로드받고, 다운로드받은 프로젝트를 빌드하는 경우를 생각해보자. 일반적으로 [mkdir] 명령어를 통해 폴더를 만들고, [git] 명령어를 통해 프로젝트를 다운받고, 그 이후 [make] 등의 build 명령어를 실행시켜 빌드를 할 것이다.
이때 [git] 명령어가 끝날 때까지 기다린 후 [make] 명령어를 직접 처줘야하는데, 문제는 [git] 명령어가 오래 걸리면 나의 대기시간이 길어진다. 이럴 경우 명령어들을 순차적으로 실행하도록 shell script를 짤 수도 있지만, 터미널 커맨드라인에서 여러 명령어를 순차적으로 한번에 실행시킬 수도 있다.
커맨드라인 한줄에 여러 명령어를 순차적으로 실행시키는 방법은 다음 3가지가 있다:
1) ;
# cmd1; cmd2; cmd3
mkdir hello ; git clone https://abc.com ; make
cmd1, cmd2, cmd3를 순차적으로 실행시킨다. 이때 앞선 cmd가 어떻게 끝나던 상관없이 다음 cmd를 실행한다.
2) &&
# cmd1 && cmd2 && cmd3
mkdir hello && git clone https://abc.com && make
앞서 실행된 cmd가 성공적으로 끝나야 다음 cmd를 실행한다. 명령어(=CLI 프로그램)의 exit code가 0이면 명령어는 성공적으로 끝난 것이다.
3) ||
# cmd1 || cmd2 || cmd3
mkdir hello || echo "Failed"
앞서 실행된 cmd가 실패하여야 다음 cmd를 실행한다. 명령어의 exit code가 0이 아닌 다른 숫자이면 명령어는 실패한 것이다.
활용
&& 와 || 을 이용해 다음과 같은 표현이 가능하다.
cmd && <성공 시 cmd> || <실패 시 cmd>
예를 들어 어떤 프로그램의 exit code가 0이면 [Succeeded]를, 1이면 [Failed]를 출력하도록 다음과 같이 작성할 수 있다.
# python cmd.py의 Exit code가 1이면
$ python cmd.py && echo "Succeeded" || echo "Failed"
Failed
# python cmd.py의 Exit code가 0이면
$ python cmd.py && echo "Succeeded" || echo "Failed"
Succeeded
'이것저것 > CSE' 카테고리의 다른 글
터미널 종료 후에도 프로그램 계속 실행 방법 (Background 실행, nohup, SIGHUP) (0) | 2023.05.11 |
---|---|
HTTPS 통신 간단 정리 (비대칭키, SSL 인증서 개념) (0) | 2023.02.27 |