【发布时间】:2012-10-27 09:48:20
【问题描述】:
我在 bash shell 中执行带有星号的 MySQL 语句:
query=`cat <<EndOfMySQL
INSERT tmp_table
SELECT * FROM table
;
EndOfMySQL
`
echo $query
echo $query | mysql database
问题是星号被当前目录中的文件列表替换,查询就出错了。如何避免这种行为?我使用反引号还是$() 都没有关系。我希望有一些像\* 这样的转义序列,但至少这个不起作用。
【问题讨论】:
-
为什么
\*不起作用?你面临的问题是什么? -
@KingsIndian 这样它就可以像
SELECT \* FROM table一样简单地打印出来。 -
您需要
set -f- 请参阅下面的答案。