2022. 9. 19. 11:19ㆍLinux
중괄호를 사용하면 명령어를 입력할 때 반복적인 문장을 간결하게 처리할 수 있습니다.
중괄호는 점점(..)과 쉼표(,)를 조합해서 문장을 처리할 수 있습니다.
# echo A{1,2,3,4}B
결과
A1B A2B A3B A4B
# echo A{1..4}B
결과가 A{1,2,3,4}B 와 동일합니다.
A1B A2B A3B A4B
# echo {1},{2}
중괄호 안에 쉼표가 없다면 의미가 없습니다.
#echo {1,2},{3}
2 x 1 로 2번 반복하는 모습입니다.
#echo {1,2},{3,4}
2 x 2로 4번 반복하는 모습입니다.
#echo A{1,2},{3,4}B
위의 결과에 앞뒤로 A, B만 붙은 모습입니다.
# echo {A{1,2},{3,4}B}
A, B에 중괄호를 씌워 놓으니 사이에 있던 쉼표에 의해 각각 나타나는 모습입니다.
그리고 사이쉼표에 의해 앞 중괄호가 먼저 발동합니다.
구구단을 한번 만들어 보겠습니다.
# echo {1..9}x{1..9}
구구단 txt파일을 한번 만들어 보겠습니다.
# touch {1..9}x{1..9}.txt
삭제 역시 생성과 동일합니다.
이번에는 명령어를 한줄에 연속해서 입력할 수 있는 기능에 대해서 알아보겠습니다.
- ; 앞의 명령어가 실패해도 다음 명령어 실행
- $? 이전 명령어 성공여부 확인
- && 앞의 명령어가 성공했다면 다음 명령어 실행
- || 앞의 명령어가 성공했다면 다음 명령어 실행안함(&&와 반대)
- & 앞의 명령어 백그라운드로 돌리고 동시에 다음 명령어 실행
- {} 명령의 그룹핑
1. ; 은 명령어 성공여부에 상관없이 다음 명령어를 실행합니다.
실패한 경우먼저 보겠습니다.
# cd /test;echo run!
/test라는 디렉토리가 존재하지 않아서 cd /test는 실패하지만 run!이 실행됐습니다.
성공경우를 보겠습니다.
# mkdir /test; cd /test
순서대로 잘 실행돼서 현재 경로가 /test로 설정된 모습입니다.
2. $? 바로 전에 실행한 명령어가 성공했으면 0, 실패는 0 외의 숫자가 나타납니다.
# mkdir /test
# echo $?
# rmdir /test
# echo $?
/test 디렉토리가 존재하는데 또 /test 디렉을 만드려 하니 실패했습니다.
echo의 결과로 0이 아닌 1이 뜸으로써 실패한 것을 알 수 있습니다.
rmdir 명령어로 /test 디렉을 지우는데 성공했습니다.
echo의 결과로 0이 뜸으로써 성공한 것을 알 수 있습니다.
3. &&는 앞의 명령이 성공해야 뒤의 명령을 실행합니다.
# cd /test && echo success!
/test 디렉토리로 이동이 실패해서 success! 가 뜨지 않습니다.
# mkdir /test && echo success!
/test 디렉토리 생성이 성공해서 success!가 뜹니다.
4. || 는 앞의 명령이 성공했다면 다음 명령을 실행하지 않습니다. &&와 반대입니다.
# cd /test && echo success!
# mkdir /test && echo success!
&& 시나리오와 동일하지만 결과는 반대입니다.
5. &는 앞의 명령을 백그라운드로 돌리고 동시에 다음 명령어를 실행해줍니다.
# mkdir /test & cd /test
# cd /test
/test라는 집을 지으면서 집에 들어가 살 수 없기 때문에 cd 명령어는 실패한 모습입니다.
이어서 cd /test 명령어를 입력하면 집을 다 지은후이기 때문에 성공적으로 현재위치를 변경했습니다.
6. 이번엔 중괄호로{} 연속된 명령의 성공여부를 통합하는 실습을 해보겠습니다.
# mkdir /test && { cd /test ; echo success; } || echo fail
# mkdir /test && { cd /test ; echo success; } || echo fail
동일한 명령을 연속해서 실행했는데 echo 출력 결과가 다릅니다.
첫번째는 /test 디렉생성을 성공해서 이동 후 success를 출력하고 성공했으니 || 뒤의 내용은 실행하지 않습니다.
두번째는 /test 디렉생성을 실패해서 || 뒤의 내용은 실행하여 fail이 출력됐습니다.
끝!
'Linux' 카테고리의 다른 글
10. LVM으로 디스크 관리 (3) | 2022.09.24 |
---|---|
9. 기본적인 디스크이론과 관리 (3) | 2022.09.19 |
7. 사용자 관련 설정 파일들 /etc/shadow, etc/skel, etc/default/useradd, etc/login.defs (3) | 2022.09.16 |
6. 사용자 및 그룹 관리 (3) | 2022.09.13 |
5. 파일 속성, 권한과 ACL (3) | 2022.09.13 |