「set -o nounset」を使用するときにBashで変数が設定されているかどうかをテストする 質問する

「set -o nounset」を使用するときにBashで変数が設定されているかどうかをテストする 質問する

次のコードは、バインドされていない変数エラーで終了します。nounsetset -oオプションを使用しながら、これを修正するにはどうすればよいですか?

#!/bin/bash

set -o nounset

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

echo "whatever"

ベストアンサー1

#!/bin/bash

set -o nounset


VALUE=${WHATEVER:-}

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

echo "whatever"

この場合、が設定されていないVALUE場合は空の文字列になります。 展開を使用していますが、これは「パラメータ展開」で調べることができます。WHATEVER{parameter:-word}man bash

おすすめ記事