シェルスクリプトで未定義変数の確認

以下の形でできる

if [ "${hoge-undefined}" = "undefined ]; then
  echo "hoge is not defined"
fi

${var-value}と書くことで、変数varに値があればその値を、値がなければvalueという値を返す
なので${hoge-undefined}がundefinedを返すなら元々$hogeは未定義だったことがわかる