2013-03-27 124 views
0

我有以下腳本:字符串函數

#!/bin/bash 

function MySQLQuery() 
{ 
     echo $1 
     #mysql -u root -p << EOF 
     #$1 
     #EOF 
} 
MySQLQuery "SELECT * FROM kunden;" 

但輸出是:SELECT install.sh FROM kunden。 它將*替換爲腳本的名稱。 我該如何預防?

還是有什麼更好的辦法呢?

問候, 文斯

回答

3

再說什麼@Ansgar建議,(MySQLQuery 'SELECT * FROM kunden;'),您還需要附上$1參數報價一樣:

echo "$1"

這應該是竅門

+0

它的工作原理。謝謝! :d – Vince 2013-03-27 09:47:10

0

您需要防止globbing。將字符串放在單引號中:

MySQLQuery 'SELECT * FROM kunden;' 

並在函數內部雙引號參數。

+0

我也試過。但是輸出仍然是一樣的:SELECT install.sh FROM kunden; – Vince 2013-03-27 09:30:42

+0

如果參數沒有在那裏引用,'*'將在函數內部擴展。 – chepner 2013-03-27 14:36:03