Bash позволяет размещать строки рядом друг с другом, и в итоге они будут склеены.
Итак, это:
$ echo "Hello"', world!'
производит
Hello, world!
Хитрость заключается в чередовании одинарных и двойных кавычек по мере необходимости. К сожалению, это быстро становится очень грязным. Например:
$ echo "I like to use" '"double quotes"' "sometimes"
производит
I like to use "double quotes" sometimes
В вашем примере я бы сделал это примерно так:
$ 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
который производит следующий вывод:
load data local infile "'gfpoint.csv'" into table example FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY "'\n'" IGNORE 1 LINES
Трудно увидеть, что здесь происходит, но я могу аннотировать это с помощью кавычек Unicode. Следующее не будет работать в bash - это просто для иллюстрации:
dbload=
' load data local infile "
' “ 'gfpoint.csv'
'' " into
'“ table $dbtable FIELDS TERMINATED BY ',' ENCLOSED BY '
”' "
'“ ' LINES
”' TERMINATED BY "
'“ '\n'
”' " IGNORE 1 LINES
'
Кавычки, подобные «'» в приведенном выше, будут интерпретироваться bash. Подобные кавычки " '
окажутся в результирующей переменной.
Если я приведу ту же обработку в предыдущем примере, это будет выглядеть так:
$ echo
« I like to use
»
« "double quotes"
»
« sometimes
»