Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

シェル変数と初期値

変数を設定して、それをprintfで出すだけなら、以下のようなスクリプトで事足りるでしょう。

$ VAR="hoge"
$ printf "Value::%s\n" ${VAR}
Value::hoge

さて、ここで問題。
変数が空の場合一々判定して別のprintf文を作る必要があるのでしょうか?
答えはNO。
幸いにして、空だった場合の代用文字を入れるオプションがあります。

$ VAR=""
$ printf "Value::%s\n" ${VAR:Nothing}
Value::
$ printf "Value::%s\n" ${VAR:-Nothing}
Value::Nothing

さらに、そのまま変数に投入するオプションも。

$ printf "Value::%s\n" ${VAR:=Nothing}
Value::Nothing