반응형
쉘 스크립트에서 환경 변수를 설정하는 여러 가지 방법
1 환경 변수 등록
환경 변수를 직접 등록하는 방법입니다. 스크립트에서 직접 환경 변수를 설정합니다. 이렇게 하면 스크립트가 실행될 때 해당 환경 변수가 설정되어 있습니다.
- 스크립트 편집
vim myscript.sh
#!/bin/bash
# 직접 환경 변수 등록
export MY_VARIABLE="some_value"
# 환경 변수 사용
echo "환경 변수 값: $MY_VARIABLE"
- 스크립트 실행
./myscript.sh
$ ./myscript.sh
환경 변수 값: some_value
2 .env 파일
.env 파일을 사용하여 환경 변수를 설정하는 방법입니다. 이 파일에 환경 변수를 등록하고, 스크립트에서 해당 파일을 읽어 환경 변수를 설정합니다. 이 스크립트를 실행할 때 .env 파일에 등록된 환경 변수를 사용할 수 있습니다.
- 스크립트 편집
vim myscript.sh
#!/bin/bash
# .env 파일 로드
if [ -f .env ]; then
source .env
echo "환경 변수가 로드되었습니다."
else
echo ".env 파일을 찾을 수 없습니다."
exit 1
fi
# 환경 변수 사용
echo "환경 변수 값: $MY_VARIABLE"
- .env 편집
vim .env
MY_VARIABLE=some_value
- 스크립트 실행
./myscript.sh
$ ./myscript.sh
환경 변수가 로드되었습니다.
환경 변수 값: some_value
3 명령행 인자(arguments)
명령행 인자를 사용하여 스크립트 실행 시에 환경 변수 값을 전달하는 방법입니다.
- 스크립트 편집
vim myscript.sh
#!/bin/bash
# 명령행 인자에서 환경 변수 값 가져오기
MY_VARIABLE=$1
# 환경 변수 사용
echo "환경 변수 값: $MY_VARIABLE"
- 스크립트 실행
이 스크립트를 실행할 때 인자를 전달하여 환경 변수 값을 설정할 수 있습니다.
./myscript.sh some_value
$ ./myscript2.sh some_value
환경 변수 값: some_value
위의 예제에서는 some_value가 $1에 전달되어 환경 변수로 사용됩니다.
이러한 방법들 중 어떤 것을 선택할지는 사용 사례와 보안 요구 사항에 따라 다를 수 있습니다. 명령행 인자는 외부에서 직접 제공되며, .env 파일은 설정 파일을 사용하는 것으로, 각각의 장단점이 있습니다.
728x90
- myscript.sh 스크립트 파일 편집
vim myscript.sh
#!/bin/bash
# 환경 변수 파일 로드
if [ -f .env ]; then
source .env
echo "환경 변수가 로드되었습니다."
else
echo "환경 변수 파일을 찾을 수 없습니다."
MY_SECRET_USERNAME=${1:-shelluser123}
MY_SECRET_PASSWORD=${2:-shellpassword123}
#exit 1
fi
# 가져온 정보 사용
echo "사용자 이름: $MY_SECRET_USERNAME"
echo "비밀번호: $MY_SECRET_PASSWORD"
- 스크립트 권한 부여
chmod +x myscript.sh
- 직접 환경 변수를 사용하여 변수 값을 전달하는 방법
$ ./myscript.sh
환경 변수 파일을 찾을 수 없습니다.
사용자 이름: shelluser123
비밀번호: shellpassword123
- .env(환경 설정) 파일를 사용하여 변수 값을 전달하는 방법
$ ./myscript.sh
환경 변수가 로드되었습니다.
사용자 이름: envfileuser123
비밀번호: envfilepasswd123
- 명령행 인자를 사용하여 변수 값을 전달하는 방법
$ ./myscript.sh commanduser123 commandpassword123
환경 변수 파일을 찾을 수 없습니다.
사용자 이름: commanduser123
비밀번호: commandpassword123
728x90
반응형
'스크립트' 카테고리의 다른 글
SSH 공개 키를 복사하는 스크립트 (0) | 2024.02.05 |
---|---|
ICMP Ping 테스트를 수행하는 Python 스크립트 (0) | 2024.01.14 |
쉘 스크립트에서 중요한 정보를 환경 변수에 저장하고 스크립트에서 사용하는 방법 (0) | 2023.11.20 |
쉘 스크립트의 명령행 인자(arguments)를 사용하는 방법 (0) | 2023.11.20 |
MHA master_ip_online_change 스크립트 수정 (0) | 2023.09.12 |