• ベストアンサー

配列に空のデータを代入させない方法

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

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.1

param+=(${val:+"$val"}) ${val:+"$val"} というのは、if "$val"== "" then 空 else "$val" というような意味です。

inshin
質問者

お礼

なるほど。if文に展開するとすごくわかりやすいです。 ありがとうございました。

関連するQ&A