[bash: $()] 역따옴표(`)를 중첩해서 사용하고 싶을 경우 리눅스 bash script

리눅스 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)

$((...)) 이런 식으로 괄호 두개를 묶어서 사용하는 경우와 혼동하지 않도록 주의하자. 이중괄호는 정수 계산이나 변수값 증가/감소에 사용된다. (이에 관한 내용은 이전 게시물을 참고하자. 여기로)



덧글

댓글 입력 영역
* 비로그인 덧글의 IP 전체보기를 설정한 이글루입니다.

Google Analytics


B-Side


adsense(w160_h600)2

통계 위젯 (화이트)

1441045
3392
1828172

ad_widget_2