1. ホーム
  2. bash

[解決済み] bash で "set -o nounset" を使用したときに変数が設定されているかどうかをテストする。

2022-05-14 07:33:11

質問

次のコードは、unbound variable errorで終了します。これを修正する方法。 set -o を使用しながら、どのようにこれを修正しますか?

#!/bin/bash

set -o nounset

if [ ! -z ${WHATEVER} ];
 then echo "yo"
fi

echo "whatever"

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

#!/bin/bash

set -o nounset


VALUE=${WHATEVER:-}

if [ ! -z ${VALUE} ];
 then echo "yo"
fi

echo "whatever"

この場合 VALUE が空文字列である場合 WHATEVER が設定されていない場合は空文字になります。私たちは {parameter:-word} の展開で調べることができます。 man bash の下にある "パラメータ展開" を参照してください。