문제
다음 ( 괄호 ) 안에 출력되는 내용으로 알맞은 것은?
① lin ② USER ③ ihduser ④ 아무것도 출력되지 않는다.
정답
3번
해설
정답: 3. 사용자가 설정한 변수는 소문자 user(=lin)인데, echo 로 출력한 것은 대문자 $USER 이다. USER 는 현재 로그인 사용자명을 담는 환경변수이므로, 프롬프트의 사용자 ihduser 가 출력된다. 변수 이름의 대소문자는 구분된다.
오답 풀이
- 1번: lin 은 소문자 변수 user 의 값이지 $USER 의 값이 아니다(셸 변수는 대소문자를 구분한다).
- 2번: USER 라는 문자열 자체가 출력되는 것이 아니라 그 변수의 값이 치환되어 출력된다.
- 3번: 환경변수 $USER 는 로그인 사용자명 ihduser 를 담고 있으므로 옳다.
- 4번: $USER 에는 값(ihduser)이 들어 있어 빈 출력이 아니다.
보충 개념 셸 변수 이름은 대소문자를 구분한다. user 와 USER 는 서로 다른 변수이며, USER 는 현재 사용자명을 담는 표준 환경변수다.