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
»