더북(TheBook)

2.3.2 변수에 대해 오해하기 쉬운 것

다음과 같이 echo 명령을 사용해 변수의 값을 출력해보자.

$ echo $HOME
/home/smith

이 결과만 보면, 마치 echo 명령이 변수 값을 알아와서 화면에 출력한 것처럼 느껴진다. 하지만 실제로는 그렇지 않다. echo 명령은 변수에 대해 아무것도 알 수 없다. 단지 인수로 받은 값을 화면에 출력할 뿐이다. 실제로는 echo가 실행되기 전에 셸이 변수명을 평가해 변수의 값으로 치환하고 이를 echo에 인수로 전달한다. echo 명령의 입장에서는 다음과 같이 호출된 것이다.

$ echo /home/smith

이 점을 이해하는 것이 매우 중요하다. 앞으로 더욱 복잡한 명령을 사용하게 될 것이기 때문이다. 명령을 실행하기에 앞서, 명령에 포함된 변수(패턴 등 다른 것도 마찬가지지만)를 평가하는 주체는 셸이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.