質問: シェルスクリプトで次のように配列paramにデータを代入するとき、$valが空だった場合、そのまま配列にも空のデータが作られてしまいます。「"」をつけなければ空のデータが代入されることはないのですが、その場合、$valにスペースが含まれていると複数のデータに分かれてしまいます。 param+=("$val") 配列に空のデータを代入させたくない場合、代入前に$valのデータをチェックするしか方法はないのでしょうか。 よろしくお願いいたします。
回答: ``` param+=(${val:+"$val"}) ``` `:+`については`man bash`の`Parameter Expansion`の項を参照。