처음으로

리눅스마스터 1급

2017년 03월 11일 기출문제

11. 다음 셸 스크립트의 실행 결과로 알맞은 것은?

6.gif

*해설

<문제 해설>
echo에 쓰인 작은 따옴표(')는 문자 그대로 받아드리라는 의미입니다.
쉘의 명령으로 처리하라는 큰 따옴표(")가 쓰였다면 스크립트의 결과는 3이 됩니다.

sh 명령을 통해 스크립트를 디버깅한 결과는 다음과 같습니다.
+ aaa=(1 2 3 4)
+ echo '${aaa[1+1]}'
${aaa[1+1]}

헷갈릴 수 있는 오답에 대해 설명하자면,

aaa=(1 2 3 4) 는 배열입니다.
aaa : 배열 명
aaa=(1 2 3 4) : 4개의 칸으로 된 aaa라는 배열에 순서대로 1, 2, 3, 4의 값을 할당하라.

배열의 순서는 0부터 시작합니다.
(1 2 3 4)의 순서는 각 0, 1, 2, 3 번째가 됩니다.

배열 명 옆 대괄호 안의 숫자는 배열의 칸 순서를 의미합니다.
aaa[0]의 값은 1
aaa[1]의 값은 2
aaa[2]의 값은 3
aaa[3]의 값은 4

그러므로 aaa[1+1]은 aaa[2]이며,
echo ${aaa[1+1]} 을 실행하면
aaa[2]의 값(aaa배열의 세 번째 값) '3'이 출력되게 됩니다.
공유
해설보기
정답보기
<<이전
다음>>
목록
서버에 요청 중입니다. 잠시만 기다려 주십시오...