문제
다음 중 ( 괄호 ) 안에 들어갈 명령의 결과로 알맞은 것은?
① 아무것도 출력되지 않는다. ② $user ③ ihduser ④ kaitman
정답
3번
해설
정답: 3. 사용자가 정의한 변수는 소문자 user 이고, echo 로 출력하는 것은 대문자 환경변수 $USER 이다. 변수명은 대소문자를 구분하므로 user(=kaitman)와 USER 는 서로 다른 변수다. $USER 에는 현재 로그인 사용자명인 ihduser 가 들어 있어 "ihduser"가 출력된다.
오답 풀이
- 1번: $USER 는 로그인 시 자동 설정되는 환경변수라 값이 비어 있지 않으므로 빈 출력이 아니다.
- 2번: echo 가 변수를 치환하므로 문자열 "$user" 가 그대로 출력되지 않는다.
- 3번: $USER 는 현재 사용자명 ihduser 를 담고 있어 "ihduser"가 출력되므로 옳다.
- 4번: kaitman 은 소문자 변수 user 의 값이며, $USER(대문자)와는 별개라 출력되지 않는다.
보충 개념 셸은 변수명을 대소문자로 구분한다. USER, HOME, PATH 등 대문자 환경변수는 로그인 시 자동 설정된다. 사용자가 임의로 user=... 를 정의해도 기존 $USER 환경변수에는 영향을 주지 않는다.