Bash, dizeleri bitişik olarak yerleştirmenize izin verir ve sadece birbirine yapıştırılırlar.
Yani bu:
$ echo "Hello"', world!'
üretir
Hello, world!
İşin püf noktası, tek ve çift tırnaklı dizeler arasında gerektiği gibi geçiş yapmaktır. Ne yazık ki, çabuk dağınık hale geliyor. Örneğin:
$ echo "I like to use" '"double quotes"' "sometimes"
üretir
I like to use "double quotes" sometimes
Örneğinizde, böyle bir şey yapardım:
$ 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
Aşağıdaki çıktıyı üreten:
load data local infile "'gfpoint.csv'" into table example FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY "'\n'" IGNORE 1 LINES
Burada neler olduğunu görmek zor, ancak Unicode alıntılarını kullanarak açıklama ekleyebilirim. Aşağıdakiler bash'de çalışmaz - sadece örnekleme amaçlıdır:
dbload=' load data local infile "' “ 'gfpoint.csv'” ' " into' “ table $dbtable FIELDS TERMINATED BY ',' ENCLOSED BY '” ' "' “ ' LINES” ' TERMINATED BY "' “ '\n'” ' " IGNORE 1 LINES'
Yukarıdaki "" "gibi alıntılar bash tarafından yorumlanacaktır. Like tırnaklar " 'sonuçta ortaya çıkan değişken ile sonuçlanır
Daha önceki örneğe aynı tedaviyi verirseniz, şöyle görünür:
$ echo“ I like to use” ' "double quotes"' “ sometimes”