쉘 스크립트의 동적 변수 이름

쉘 스크립트의 동적 변수 이름

$prodCI 파이프라인에 셸 스크립트를 배포하고 있는데 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_envdev$dev

답변1

당신은 할 수 없습니다: 그것은 변수가 작동하는 방식이 아닙니다.

그러나 쉘 함수를 호출하여 변수 사용을 대체할 수 있습니다. 이것은 간단하지만 사용하는 쉘에 따라 다릅니다. 안타깝게도 기호는 /bin/shell이를 알려주지 않습니다.

zsh의 경우 다음과 같습니다.

check_env() {
   # do your checking
   print "prod"  # or "test" or whatever
}

...

if [[ "$(check_env)" = "prod" ]] {
   rm -rf /
}

관련 정보