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
”