티스토리 뷰
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를 사용하면 되겠죠?
'개발 > Shell Script' 카테고리의 다른 글
[sh] 복수 개의 파일 이름 변경 (8) | 2016.06.14 |
---|---|
[sh] 디렉토리 사이즈 확인 (2) | 2016.02.26 |
[sh] expect prompt와 shell script 안에서의 expect 차이 (4) | 2016.01.20 |
[sh] 문자열 포함 여부 검사 (0) | 2015.12.15 |
[sh] "$*" 과 "$@"의 차이 (2) | 2015.11.30 |
댓글
최근에 올라온 글
최근에 달린 댓글
글 보관함
- Total
- Today
- Yesterday