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