擊可以讓你把相鄰的字符串,他們會剛剛結束了被粘在一起。
因此,這:
$ 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