변수 내보내기
Coddy Terminal 여정의 기초 섹션에 포함된 레슨 — 82개 중 63번째.
MY_NAME="Alice" 같은 변수를 설정하면, 이는 현재 셸에만 존재합니다. 스크립트를 실행하거나 다른 프로그램을 시작하면 그 변수는 해당 프로그램에서 사용할 수 없습니다. 여기서 export가 등장합니다.
export 명령어는 변수를 모든 자식 프로세스에서 사용할 수 있게 만듭니다. 즉, 현재 셸에서 시작된 프로그램이나 스크립트가 이를 접근할 수 있다는 의미입니다:
export MY_NAME="Alice"기존 변수를 내보낼 수도 있습니다:
MY_NAME="Alice"
export MY_NAME두 가지 접근 방식 모두 동일한 결과를 달성합니다. 변수는 이후에 실행하는 모든 명령어에 전달되는 환경의 일부가 됩니다.
차이점을 확인하려면, $MY_NAME을 사용하려고 시도하는 스크립트를 실행해 보세요.
export가 없으면 스크립트는 아무것도 보지 못합니다. export가 있으면 스크립트가 해당 값에 접근할 수 있습니다.
이것이 바로 PATH와 HOME 같은 시스템 변수가 기본적으로 export되는 이유입니다. 이들은 실행하는 모든 프로그램에서 사용 가능해야 합니다.
env 출력에 나타나는지 확인하여 변수가 내보내졌는지 확인할 수 있습니다:
env | grep MY_NAME내보낸 변수는 터미널을 닫을 때 여전히 사라집니다. 다음 강의에서는 세션 간에 변수를 유지하는 방법에 대해 다룹니다.
챌린지
쉬움PROJECT라는 변수를 terminal-course 값으로 export한 후, env 출력을 필터링하여 새 변수만 표시되도록 export되었는지 확인하세요.
한 줄로 export를 사용하여 변수를 한 번에 설정하고 export할 수 있으며, env를 grep을 통해 파이프하여 찾을 수 있습니다.
출력은 다음과 같아야 합니다:
PROJECT=terminal-course힌트: 먼저
export PROJECT="terminal-course"를 실행한 후,env | grep PROJECT를 사용하여 환경에 나타나는지 확인하세요.
치트 시트
export 명령어는 변수를 자식 프로세스(현재 셸에서 시작된 프로그램 또는 스크립트)에서 사용할 수 있게 합니다:
export MY_NAME="Alice"기존 변수를 export할 수도 있습니다:
MY_NAME="Alice"
export MY_NAMEexport 없이 변수는 현재 셸에만 존재하며, 실행하는 스크립트나 프로그램에서 접근할 수 없습니다.
변수가 export되었는지 확인하려면 env 출력에 나타나는지 확인하세요:
env | grep MY_NAMEexport된 변수는 터미널을 닫으면 사라집니다.
직접 해보기
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.