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»