Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

シェル変数と初期値

変数を設定して、それを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