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