こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

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

投稿日時 - 2017-02-13 07:52:47

QNo.9293284

暇なときに回答ください

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

param+=(${val:+"$val"})

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

投稿日時 - 2017-02-13 23:02:33

お礼

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

投稿日時 - 2017-02-13 23:18:12

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)