$prod
CI 파이프라인에 셸 스크립트를 배포하고 있는데 CI에는 , $dev
, 세 가지 환경 변수가 정의되어 있습니다 $test
.
내 스크립트는 배포 유형에 따라 올바른 문자열 값을 반환합니다.
#!/bin/sh
my_env = // the checking logic
# the value of my_env is a string value of one of 'prod', 'dev' or 'test'
my_env
또는 값을 가리키도록 스크립트에서 변수를 동적으로 생성하는 방법을 알고 싶습니다 . 실제 값이 아닌 문자열 값만 저장하기 때문에 할 수 없다는 뜻입니다.$prod
$dev
$test
$my_env
dev
$dev
답변1
당신은 할 수 없습니다: 그것은 변수가 작동하는 방식이 아닙니다.
그러나 쉘 함수를 호출하여 변수 사용을 대체할 수 있습니다. 이것은 간단하지만 사용하는 쉘에 따라 다릅니다. 안타깝게도 기호는 /bin/shell
이를 알려주지 않습니다.
zsh의 경우 다음과 같습니다.
check_env() {
# do your checking
print "prod" # or "test" or whatever
}
...
if [[ "$(check_env)" = "prod" ]] {
rm -rf /
}