6 실행 결과는 다음과 같습니다.
터미널 |
gilbut@ubuntu2404:~/script$ ./for-basic.sh
number 2 4 6 8 10 in quoted NUMS variable
|
변수에 큰따옴표를 사용하지 않았을 때와 전혀 다른 결과가 나옵니다. 왜 이런 결과가 나올까요?
for 문은 목록의 항목별로 반복합니다. 각 항목은 공백 문자로 구분되고, 각각 문자열로 인식됩니다. Bash에서 항목을 구분하는 공백 문자는 기본적으로 공백(space), 탭(tab), 개행(newline)입니다. NUMS 변수의 초기 설정은 그대로이나 for 문의 목록 부분에서 변수를 사용할 때 변수를 큰따옴표로 묶었습니다. 변수를 큰따옴표로 묶으면 변수를 사용할 때 변수에 포함된 공백 문자까지 하나의 문자열로 인식합니다. 그래서 for 문의 첫 번째 반복에서 i 변수에는 ‘2 4 6 8 10’이라는 문자열을 저장해 이러한 결과가 나온 것입니다.