반달가면 이글루에서 백업 - http://bahndal.egloos.com/625577
리눅스 bash shell에서 특정 명령어의 결과를 변수에 할당하거나 다른 명령어의 인자(argument)로 사용하고 싶을 때 역따옴표(`)를 사용하게 된다.
# ls 명령의 결과 출력에서 마지막 줄을 변수 x에 할당
x=`ls | tail -1`
그런데, 역따옴표 안에 다시 역따옴표를 사용하고 싶은 경우가 생겼을 경우에는 대신에 "$(명령어)" 형태를 사용하면 되겠다. 기능은 역따옴표와 동일하나 중첩해서(nest) 사용할 수 있다.
# ls 명령의 결과 출력에서 마지막 줄을 변수 x에 할당
x=$(ls | tail -1)
예시가 좀 억지스럽긴 한데 겹쳐서 사용하는 경우를 만들어 보자면 아래와 같이 해 볼 수 있을 것이다.
# 문자열 "txt"를 출력해서 grep의 인자로 사용하고, ls 명령 출력에서 txt를 포함한 결과중 마지막 줄을 변수 x에 할당
x=$(ls | grep $(echo "txt") | tail -1)
$((...)) 이런 식으로 괄호 두개를 묶어서 사용하는 경우와 혼동하지 않도록 주의하자. 이중괄호는 정수 계산이나 변수값 증가/감소에 사용된다. (이에 관한 내용은 이전 게시물을 참고하자. 여기로)
728x90
'bash script' 카테고리의 다른 글
[bash: sed] 슬래시(/)가 포함된 문자열 대체하기 (0) | 2023.10.11 |
---|---|
[bash: cut] 필드 구분자(delimiter)가 없는 경우 출력 억제하기 (0) | 2023.10.11 |
[bash: csplit] 설정한 기준에 따라 텍스트 파일 분할하기 (1) | 2023.10.10 |
[bash: awk] 다수의 문자열을 검색하여 일치하는 부분만 출력하기(match, substr) (1) | 2023.10.10 |
[bash: sed] 특정 행부터 파일 마지막까지 출력하기 (0) | 2023.09.15 |