2014-10-27 209 views
0

我得到一些mysql的信息從殼這樣的:意外結束

#!/bin/bash 
keyOrPass=$1 
intercom=$2 
flat=$3 
number=$4 
mysql -ulogin -ppassword db_name << EOF 
select codeGuestEmail, codePrivateEmail from mbus_clients WHERE flat=$flat and domophone=$intercom; 
EOF 

我發現一些教程此解決方案,但它說: 檢查對應於你的MySQL服務器手冊在'EOF'附近使用正確語法的版本 有什麼問題?我怎樣才能完成mysql會話? http://www.cyberciti.biz/faq/using-mysql-in-shell-scripts/這裏是我找到解決方案的教程示例。
UPDATE爲EOF添加不同的引號不起作用。

在查詢

回答

1

通過帶有引號的動態變量..

select codeGuestEmail, codePrivateEmail from mbus_clients WHERE flat='$flat' and domophone='$intercom'; 

或嘗試用這種

select codeGuestEmail, codePrivateEmail from mbus_clients WHERE flat=${flat} and domophone=${intercom}; 
+0

第一變體不與我的變種而且幫助我得到了你的第一個唐正確的結果't – 2014-10-27 10:10:53

+0

第二個變體的作品,但仍然EOF錯誤。 – 2014-10-27 10:11:49

+0

您還可以採用另一種方法,將sql編寫在單獨的文件中並設置動態變量,如'set @intercom = $ {intercom}',然後從該shell腳本中調用sql文件 – 2014-10-27 10:13:45