当APP_ENV
“prod”为DATABASE_DISABLE_MIGRATIONS
空时;在任何其他情况下,它应该是true
except DATABASE_DISABLE_MIGRATIONS
为空或 null。换句话说,必须尊重它的值,并且只有在未设置它时才应进行自动分配。
原来的DATABASE_DISABLE_MIGRATIONS |
APP_ENV |
新的DATABASE_DISABLE_MIGRATIONS |
---|---|---|
空或空 | 任何 | 保留原有价值 |
非零长度字符串 | 任何 | 保留原有价值 |
未设置 | “产品” | 空的 |
未设置 | 空或不是“prod” | “真的” |
我正在开始学习 shell (POSIX),并且我已经使用以下代码成功完成了此任务:
#!/bin/sh
if [ "${DATABASE_DISABLE_MIGRATIONS+set}" != set ]; then
: ${DATABASE_DISABLE_MIGRATIONS:=$( [ "$APP_ENV" = "prod" ] || echo "true" )}
fi
# Just for debug (not meant to be in the single-line assignment of course)
if [ -z "$DATABASE_DISABLE_MIGRATIONS" ]; then
echo "Empty value, migrations ENABLED"
else
echo …
Run Code Online (Sandbox Code Playgroud)