Mit Bash können Sie Strings nebeneinander platzieren, die dann einfach zusammengeklebt werden.
Also dies:
echo "Hello"', world!'
produziert
Hello, world!
Der Trick besteht darin, je nach Bedarf zwischen Zeichenfolgen in einfachen und doppelten Anführungszeichen zu wechseln. Leider wird das schnell sehr unübersichtlich. Zum Beispiel:
echo "I like to use" '"double quotes"' "sometimes"
produziert
I like to use "double quotes" sometimes
In Ihrem Beispiel würde ich es etwa so machen:
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
was die folgende Ausgabe ergibt:
load data local infile "'gfpoint.csv'" into table example FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY "'\n'" IGNORE 1 LINES
Es ist schwer zu erkennen, was hier vor sich geht, aber ich kann es mit Unicode-Anführungszeichen kommentieren. Das Folgende wird in der Bash nicht funktionieren - es dient nur zur Veranschaulichung:
dbload=
' load data local infile "
'" 'gfpoint.csv'
"' " into
'" table $dbtable FIELDS TERMINATED BY ',' ENCLOSED BY '
"' "
'" ' LINES
"' TERMINATED BY "
'" '\n'
"' " IGNORE 1 LINES
'
Die Anführungszeichen wie " ' ' " im obigen Text werden von der Bash interpretiert. Die Anführungszeichen wie " '
in die resultierende Variable einfließen wird.
Wenn ich das frühere Beispiel genauso behandle, sieht es wie folgt aus:
echo
" I like to use
" ' "double quotes"
' " sometimes
"