击可以让你把相邻的字符串,他们会刚刚结束了被粘在一起。
因此,这:
$ echo "Hello"', world!'
产生
Hello, world!
诀窍是根据需要单和双引号字符串之间交替。不幸的是,它很快变得非常混乱。例如:
$ echo "I like to use" '"double quotes"' "sometimes"
产生
在你的榜样,我会做这样的事情:
$ dbtable=example
$ dbload='load data local infile "'"'gfpoint.csv'"'" into '"table $dbtable FIELDS TERMINATED BY ',' ENCLOSED BY '"'"'"' LINES "'TERMINATED BY "'"'\n'"'" IGNORE 1 LINES'
$ echo $dbload
产生以下的输出:
load data local infile "'gfpoint.csv'" into table example FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY "'\n'" IGNORE 1 LINES
这是很难看到这里发生了什么,但我可以使用Unicode引号标注。下面将不会在bash工作 - 它只是为了说明:
dbload=
'load data local infile "
'‘'gfpoint.csv'
’' " into
'‘table $dbtable FIELDS TERMINATED BY ',' ENCLOSED BY '
’' "
'‘' LINES
’' TERMINATED BY "
'‘'\n'
’' " IGNORE 1 LINES
'
上面的“''”等引号将被bash解释。像" '
这样的引号最终会出现在结果变量中。
如果我给同等待遇,以前面的例子,它看起来像这样:
$ echo
“I like to use
”
“"double quotes"
”
“sometimes
”
你应该熟悉[SQL注入](HTTP的概念:// EN。 wikipedia.org/wiki/SQL_injection),然后再开始编写这样的代码。 – Daenyth 2010-09-30 21:10:22
另请参阅http://mywiki.wooledge.org/BashFAQ/050 – 2013-11-13 13:38:25
[单引号字符串内转义单引号]的可能重复(http://stackoverflow.com/questions/1250079/escaping-single-quotes-单引号内的字符串) – kenorb 2015-02-28 20:50:54