2013-03-27 130 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