Bash te permite colocar cadenas adyacentes, y terminarán pegadas.
Así que esto:
$ echo "Hello"', world!'
produce
Hello, world!
El truco consiste en alternar entre cadenas de comillas simples y dobles, según sea necesario. Desafortunadamente, rápidamente se vuelve muy desordenado. Por ejemplo:
$ echo "I like to use" '"double quotes"' "sometimes"
produce
I like to use "double quotes" sometimes
En su ejemplo, lo haría algo como esto:
$ 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
que produce el siguiente resultado:
load data local infile "'gfpoint.csv'" into table example FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY "'\n'" IGNORE 1 LINES
Es difícil ver lo que está pasando aquí, pero puedo anotarlo usando comillas Unicode. Lo siguiente no funcionará en bash: es solo para ilustración:
dbload=
' load data local infile "
' “ 'gfpoint.csv'
” ' " into
' “ table $dbtable FIELDS TERMINATED BY ',' ENCLOSED BY '
” ' "
' “ ' LINES
” ' TERMINATED BY "
' “ '\n'
” ' " IGNORE 1 LINES
'
Bash interpretará las citas como "''" en lo anterior. Las comillas como " '
terminarán en la variable resultante.
Si le doy el mismo tratamiento al ejemplo anterior, se ve así:
$ echo
“ I like to use
”
' "double quotes"
'
“ sometimes
”