Bash memungkinkan Anda untuk menempatkan string secara berdekatan, dan mereka hanya akan terpaku bersama.
Jadi ini:
$ echo "Hello"', world!'
menghasilkan
Hello, world!
Caranya adalah dengan mengganti antara string tunggal dan ganda seperti yang diminta. Sayangnya, dengan cepat menjadi sangat berantakan. Sebagai contoh:
$ echo "I like to use" '"double quotes"' "sometimes"
menghasilkan
I like to use "double quotes" sometimes
Dalam contoh Anda, saya akan melakukannya seperti ini:
$ 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
yang menghasilkan output berikut:
load data local infile "'gfpoint.csv'" into table example FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY "'\n'" IGNORE 1 LINES
Sulit untuk melihat apa yang terjadi di sini, tetapi saya dapat menjelaskannya menggunakan kutipan Unicode. Berikut ini tidak akan berfungsi dalam bash - itu hanya untuk ilustrasi:
dbload=
' load data local infile "
' “ 'gfpoint.csv'
' " into
' table $dbtable FIELDS TERMINATED BY ',' ENCLOSED BY '
' "
' ' LINES
' TERMINATED BY "
' '\n'
' " IGNORE 1 LINES
' ' ' ' ' ' ' ' ' ' '
Kutipan seperti "''" di atas akan ditafsirkan oleh bash. Kutipan seperti " '
akan berakhir pada variabel yang dihasilkan.
Jika saya memberikan perlakuan yang sama dengan contoh sebelumnya, sepertinya ini:
$ echo
“ I like to use
"
' "double quotes"
'
" sometimes
"