Qiitaで知ったけどこの構文便利だね。
${VAL+:} false
↑これで$VAL変数が空文字だろうが定義されてさえいれば真,そうでなけば偽。
今まで[ -n ]と[ "x$VAL" = "$VAL:-x" ]とか組み合わせてたけどこれでスッキリ解決。
コマンド呼び出しも少なくなるから微妙に処理速度も上がるだろうし。

ただ難点は,test構文を用いた方法より遥かに難読になること。${VAL+:} false←これで何をやってるかなんて注釈がないと分からん。