bash でシェル変数が(nullかどうかではなくて)定義されているかを判定したいと思って、調べたのですが、エレガントな方法がみつかりませんでした。 最初は、 if [ "${VAR:-UNDEF}" = "UNDEF" ] ; then ... fi だろうかと思ったのですが、VAR="" の時も真となってしまうので、微妙に違いました。それと、実際には無いはずとしても VAR="UNDEF" だったら、意図しない状況になってしまうのが引っかかります。処理内容によってはセキュリティホールのタネにもなるのではないか。 書籍調査/ネット検索の末に、 if ! set | grep -m 1 -q ^VAR= ; then ... # VARが未定義の場合に行う処理を記述 fi とするしかなさそうなのですが、もっとエレガントな方法は無いものでしょうかね。現在のマシンでは大した処理コストではないで