O Bash permite que você coloque seqüências de caracteres adjacentes, e elas acabam sendo coladas.
Então, é isso:
$ echo "Hello"', world!'
produz
Hello, world!
O truque é alternar entre cadeias simples e duplas, conforme necessário. Infelizmente, rapidamente fica muito confuso. Por exemplo:
$ echo "I like to use" '"double quotes"' "sometimes"
produz
I like to use "double quotes" sometimes
No seu exemplo, eu faria algo assim:
$ 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 produz a seguinte saída:
load data local infile "'gfpoint.csv'" into table example FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY "'\n'" IGNORE 1 LINES
É difícil ver o que está acontecendo aqui, mas posso anotá-lo usando aspas Unicode. O seguinte não funciona no bash - é apenas para ilustração:
dbload=
' load data local infile "
' 'gfpoint.csv'
' " into
' table $dbtable FIELDS TERMINATED BY ',' ENCLOSED BY '
' "
' “ ' LINES
” ' TERMINATED BY "
' '\n'
' " IGNORE 1 LINES
' ' ' ' ' ' '
As aspas como "''" acima serão interpretadas por bash. As aspas como " '
vão acabar na variável resultante.
Se eu der o mesmo tratamento ao exemplo anterior, ele ficará assim:
$ echo
“ I like to use
”
' "double quotes"
'
“ sometimes
”