2

私の 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]}
4

2 に答える 2