シェルスクリプトで変数が未定義であるかどうかの確認の仕方
未定義の確認方法
スクリプト内で変数$tadokoroが定義されているかどうかを確認するには以下の様に書いてあげたら良い
if [ "${tadokoro:-UNDEF}" = "UNDEF"]; then #$tadokoroが未定義だったらここの処理が走る fi
構文内容
・if分の隣にある[](角括弧、ブランケット)
これはshellのtestコマンドの事で条件判定ができる。
["文字列A" = "文字列B"] は文字列Aと文字列Bが等しい時にTRUEを返す
・"${tadokoro:-UNDEF}"の部分
シェルの変数展開というものらしい。ここでいうと
変数$tadokoroがNULLまたは未定義の時にこの${tadokoro:-UNDEF}の箇所はUNDEFに置換される。
上の二つを組み合わせ$tadokoroが未定義の時の判定ができるという寸法
この構文と出会って2時間ほどこれもうわかんねぇな状態だったけど何とか下の記事を見つけて理解することが出来た。
なんでか自分が使ってる教科書の変数展開の":"が抜けてる。
2か所あって2か所とも抜けてる。。。