티스토리 뷰

ls나 cat 등 터미널 명령어의 결과를 배열에 저장하고 사용해야 하는 경우가 종종 있습니다.


shell script에서 일반적인 배열은 아래와 같이 사용합니다.

AAA=("aa" "bb" "cc")


그리고 읽을 때는 아래처럼 읽겠죠?

echo ${AAA[0]}, ${AAA[1]}


그럼 이제 터미널 명령어의 경우를 살펴봅시다.


터미널 명령어의 결과를 변수로 받는 일반적인 방법인 BBB=$(echo "aa bb cc") 처럼 사용할 경우 결과는 엉뚱합니다.


echo ${BBB[0]}로 출력해 봤을때 결과로 aa를 기대하지만, 실제로는 aa bb cc가 출력 됩니다.


결과를 일반적인 배열로 받기 위해서는 아래처럼 한번 더 괄호로 감싸줘야 합니다.

BBB=($(echo "aa bb cc"))


앞으로는 여기에 응용해서 ls나 cat같은 명령어도 적용할 수 있겠습니다.



PS

공백으로 구분이 아닌 다른 구분자를 원하는 경우에는 IFS를 사용하면 되겠죠?

댓글
댓글쓰기 폼