1. ホーム
  2. バッシュ

[解決済み】環境変数が存在するかどうかを確認し、その値を取得する方法は?重複

2022-05-01 03:21:09

質問

私はシェルスクリプトを書いています。このシェルスクリプトでは、デフォルト値を取る変数と、環境変数の値を取る変数があります。ただし、環境変数が存在する必要はない。

例えば、スクリプトを実行する前に、次のような操作を行ったとする。

export DEPLOY_ENV=dev

この環境変数を検索して、その値をスクリプト内の変数に格納するようにスクリプトに指示するには、どうすればよいでしょうか。さらに、この環境変数が存在しない場合は、デフォルトの変数を格納するようにスクリプトに指示するには、どうすればよいのでしょうか?

どのように解決するのですか?

[ -z "${DEPLOY_ENV}" ] があるかどうかをチェックします。 DEPLOY_ENV は長さが0に等しい。だから、実行できるのです。

if [[ -z "${DEPLOY_ENV}" ]]; then
  MY_SCRIPT_VARIABLE="Some default value because DEPLOY_ENV is undefined"
else
  MY_SCRIPT_VARIABLE="${DEPLOY_ENV}"
fi

# or using a short-hand version

[[ -z "${DEPLOY_ENV}" ]] && MyVar='default' || MyVar="${DEPLOY_ENV}"

# or even shorter use

MyVar="${DEPLOY_ENV:-default_value}"