私の Bash スクリプトは、MySQL から配列を作成します。
info_tmp=$(mysql --batch --silent -u root -ppassword database -e "SELECT id,info1,info2 FROM table WHERE id=1")
info=($(for i in $info_tmp;do echo $i;done))
info1=${info[1]}
私の問題は、データベースで info1 が空の文字列の場合、$info1 が info2 になることです。空の文字列を $info 配列に入れるにはどうすればよいですか?
Mysql Database:
Id | info1 | info2
1 | | data2
2 | data3 | data4
$info_tmp
1 data2
2 data3 data4
ご回答ありがとうございます
これは機能した最終的なコードです(@Barmar):
IFS="|"
info_tmp=$(mysql --batch --silent -u root -ppassword database -e "SELECT CONCAT_WS('|', id,info1,info2) FROM table WHERE id=1")
info=(${info_tmp// / })
info1=${info[1]}