2017-08-02 94 views
1

我有腳本我得到一個錯誤,也許有人知道這個問題!Bash腳本Gammu

#!/bin/bash 

i=0 

rez=$(mysql --user root -pxxxxx xxxxx -Bse "SELECT id,phone,email,date1 FROM xxx WHERE sms='NO' LIMIT 1;") 
echo $rez 
array=($(for i in $rez; do echo $i; done)) 
echo ${array[0]} 
echo ${array[1]} 
echo ${array[2]} 
echo ${array[3]} 
echo ${array[4]} 


#echo "Личные даные:"${array[2]}",пароль:"${array[3]}"@015 www.xxxx.ru" | sudo gammu sendsms TEXT "${array[1]}" -unicode 

rez2=$(mysql --user root -pxxxxx xxxx_crm -Bse "UPDATE xxx SET sms='YES' WHERE id='${array[0]'") 

exit 

我得到的錯誤

./send_sms.sh: line 19: unexpected EOF while looking for matching `'' 
./send_sms.sh: line 27: syntax error: unexpected end of file 

其指示

rez2=$(mysql --user root -paxxxxx xxxx_crm -Bse "UPDATE xxx SET sms='YES' WHERE id='${array[0]'") 
+2

考慮通過http://shellcheck.net/運行代碼,然後再問這裏。 –

+1

'array =($ rez)'將產生與嵌入式for循環相同的結果。 (可能會有細微的差別,但沒有一個特別好。) – chepner

回答

2
${array[0] 

缺少一個右括號。

${array[0]} 
+0

(這可能會導致這種錯位,不是嗎?) –

+0

但是,如果結果爲空,我可能不會去:#echo「Личныеданые:」 $ {array [2]}「,пароль:」$ {array [3]}「@ 015 www.xxxx.ru」| sudo gammu發送TEXT「$ {array [1]}」-unicode結束? –