Computer >> 컴퓨터 >  >> 프로그래밍 >> Bash 프로그래밍

Bash 스크립트에서 export로 환경 변수 설정하는 방법 [하우투]

이 튜토리얼에서는 Bash/셸 스크립트에서 export 키워드를 사용해 환경 변수를 설정하는 방법을 소개합니다.

일반적으로 Bash/셸 스크립트에서 선언한 변수는 해당 스크립트가 실행되는 동안에만 존재합니다.

변수를 다른 곳에서도 사용하려면 환경 변수(environmental variable)로 설정해야 합니다. 환경 변수로 만들면 스크립트 외부의 명령어 실행 시에도 변수를 사용할 수 있습니다. 예를 들어, 스크립트 실행이 끝난 후에도 명령줄에서 해당 변수에 접근할 수 있습니다.

바로 이 작업을 export 키워드가 수행합니다. 사용 방법을 하나씩 살펴보겠습니다.

환경 변수란 무엇인가?

환경 변수는 일반 변수와 거의 같은 방식으로 작동하지만, 어디서든 사용할 수 있다는 점이 다릅니다. 즉, 스크립트 내부뿐 아니라 명령줄에서도, 그리고 실행 중인 다른 프로그램에서도 접근할 수 있습니다.

사실 시스템에는 이미 수많은 환경 변수가 정의되어 있습니다. 대표적인 예로, 홈 디렉터리 경로는 $HOME 환경 변수를 읽으면 확인할 수 있습니다.

현재 설정된 모든 환경 변수는 env 명령어로 확인할 수 있습니다:

env

export로 환경 변수 설정하기

다음 스크립트인 testScript.sh는 환경 변수를 하나 설정한 뒤 종료됩니다:

#!/bin/bash
export MY_ENV_VAR="Save the environment!"

위 스크립트를 실행해 보겠습니다:

sh ./testScript.sh

스크립트가 종료된 후에도 MY_ENV_VAR 변수를 계속 사용할 수 있습니다. 다음 명령어로 직접 확인할 수 있습니다:

echo $MY_ENV_VAR

환경 변수가 성공적으로 설정되었으며, 이제 시스템 전체에서 사용할 수 있습니다.

printenv 명령어로도 특정 환경 변수를 확인할 수 있습니다:

printenv MY_ENV_VAR

재부팅 후에도 유지하기

export로 설정한 환경 변수는 컴퓨터를 재부팅하면 사라진다는 점에 유의해야 합니다. 환경 변수를 영구적으로 설정하려면 ~/.bashrc 파일에 선언해야 합니다.

~/.bashrc 파일은 로그인할 때마다 자동으로 실행되는 스크립트입니다. 이 파일에 export 구문을 추가해 두면, 로그인할 때마다 해당 환경 변수가 세션에 등록됩니다.

nano ~/.bashrc

위 명령어는 nano 텍스트 편집기로 파일을 여는 것입니다. 파일 맨 끝에 export 구문을 추가하면 재부팅 후에도 변수가 그대로 유지됩니다:

export MY_ENV_VAR="Save the environment!"

편집 내용을 저장한 뒤, 로그아웃했다가 다시 로그인하거나 아래 명령어를 실행하면 변경 사항을 즉시 적용할 수 있습니다:

source ~/.bashrc

시스템 전체 환경 변수 설정

앞서 설명한 방법으로 설정한 환경 변수는 현재 사용자에게만 적용됩니다. 관리자 권한이 있고 모든 사용자와 프로세스에서 변수를 사용할 수 있게 하려면, 대신 /etc/environment 파일에 추가해야 합니다:

sudo nano /etc/environment

이 파일에는 export 키워드 없이 KEY=VALUE 형식으로 한 줄씩 작성하면 됩니다. 이렇게 하면 시스템의 모든 사용자가 해당 환경 변수를 사용할 수 있습니다.