환경 변수에 따른 조건부 할당 ( $MYAPP_ENV) 에 의존하도록

bash 스크립트에서 값이 외부 전역 환경 변수 ( $MYAPP_ENV) 에 의존하도록 로컬 변수를 할당합니다 .

if [ "$MYAPP_ENV" == "PROD" ]
then
    SERVER_LOGIN=foobar123@prod.example.com
else
    SERVER_LOGIN=foobar987@test.example.com
fi

위 과제를 작성하는 더 짧은 (아직 깨끗한) 방법이 있습니까? (아마 일종의 조건부 연산자 / 인라인 경우 사용)



답변

케이스 / 스위치를 사용 bash하여이를 수행 할 수도 있습니다 .

case "$MYAPP_ENV" in
 PROD) SERVER_LOGIN="foobar123@prod.example.com" ;;
    *) SERVER_LOGIN="foobar987@test.example.com" ;;
esac

또는이 방법 :

[ "$MYAPP_ENV" = PROD ] &&
   SERVER_LOGIN=foobar123@prod.example.com ||
   SERVER_LOGIN=foobar987@test.example.com

답변

시험:

[ condition ] && var=value_when_true || var=value_when_false

과제가 숫자이면 bash삼항 연산을 사용할 수 있습니다 .

(( assign_condition ? value_when_true : value_when_false ))

답변

&&||연산자를 사용할 수 있습니다

[ "$MYAPP_ENV" == "PROD" ] && SERVER_LOGIN=foobar123@prod.example.com || SERVER_LOGIN=foobar987@test.example.com