문제
다음은 셸 변수를 선언한 후에 관련 내용을 확인하는 과정이다. (괄호) 안에 들어갈 명령어로 알맞은 것은?
① printenv ② unset ③ env ④ set
정답
4번
해설
정답: 4. a=1, b=2 처럼 export 하지 않은 셸(지역) 변수까지 모두 확인하려면 set 명령을 사용한다. set 은 환경변수와 셸 변수, 함수까지 함께 보여 준다.
오답 풀이
- 1번: printenv 는 환경(export 된) 변수만 출력하므로 export 하지 않은 a, b 는 보이지 않는다.
- 2번: unset 은 변수를 제거하는 명령으로 확인 용도가 아니다.
- 3번: env 도 환경변수만 출력하므로 지역 변수 a, b 는 확인되지 않는다.
- 4번: set 은 셸 변수까지 포함해 모두 출력하므로 옳다.
보충 개념 변수 확인: env/printenv 는 환경변수만, set 은 셸 변수+환경변수+함수까지 출력한다. export 는 셸 변수를 환경변수로 승격시켜 자식 프로세스에 상속되게 한다.