たまたまに溜まった何か  2021/07/10更新

シェルスクリプトで変数が未定義であるかどうかの確認の仕方


未定義の確認方法

スクリプト内で変数$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時間ほどこれもうわかんねぇな状態だったけど何とか下の記事を見つけて理解することが出来た。

【シェル芸人への道】Bashの変数展開と真摯に向き合う


なんでか自分が使ってる教科書の変数展開の":"が抜けてる。

2か所あって2か所とも抜けてる。。。


タイトルとURLをコピーしました