Shell-Skript - Syntax error: Unterminated quoted string
Hallo
Ich schreibe ein Skript das eine CSV-Datei in eine mySQL Datenbank schieben soll.
Bekomme nach start des Skrips im Terminal ständig diesen Fehler:
6: ./meinskript.sh: Syntax error: Unterminated quoted string
Hier der Code:
Kann mir da jemand helfen?
Danke!
Ich schreibe ein Skript das eine CSV-Datei in eine mySQL Datenbank schieben soll.
Bekomme nach start des Skrips im Terminal ständig diesen Fehler:
6: ./meinskript.sh: Syntax error: Unterminated quoted string
Hier der Code:
#! /bin/sh
mysql --user=root --password=12345
-e "USE xxxx;" -e "CREATE TABLE xxxx LIKE xxxxxx;"
-e "INSERT INTO xxxxxx SELECT * FROM xxxxxx;"
-e "TRUNCATE TABLE xxxxxxx;"
-e "LOAD DATA LOCAL INFILE /home/myuser/Schreibtisch/'Datei.csv' REPLACE INTO TABLE xxxxx CHARACKTER SET 'utf8' FIELDS TERMINATED BY ';' ENCLOSED BY '"' LINES TERMINATED BY '\n'; \"
Kann mir da jemand helfen?
Danke!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 361729
Url: https://administrator.de/forum/shell-skript-syntax-error-unterminated-quoted-string-361729.html
Ausgedruckt am: 15.01.2025 um 11:01 Uhr
12 Kommentare
Neuester Kommentar
Da fehlt etwas escaping
Gruß Sepp
-e "LOAD DATA LOCAL INFILE '/home/myuser/Schreibtisch/Datei.csv' REPLACE INTO TABLE xxxxx CHARACTER SET 'utf8' FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n';"
Nimm mal die einfachen Hochkommas um den Dateinamen Datei.csv raus, hab mich schon gewundert warum dort welche stehen.
Und CHARACKTER ist wohl auch falsch geschrieben.
Brille aufsetzen oder mal Kaffee trinken gehen .... und vielleicht mal selbst dahinter klemmen statt jeden Furz zu erfragen.
Und CHARACKTER ist wohl auch falsch geschrieben.
Brille aufsetzen oder mal Kaffee trinken gehen .... und vielleicht mal selbst dahinter klemmen statt jeden Furz zu erfragen.
Na dann solltest du mal dringend diese Seite lesen
https://dev.mysql.com/doc/refman/8.0/en/load-data.html
Ich habs dir doch oben extra mit den single slashes richtig geändert ...
https://dev.mysql.com/doc/refman/8.0/en/load-data.html
Ich habs dir doch oben extra mit den single slashes richtig geändert ...
Hi,
welchen meinst du ?
Den aus der Startfrage !?
Ich gehe mal davon aus, denn mir will nicht in den Kopf das es überhaupt anläuft...
und die Anderen es noch nicht angesprochen habe
Das Slash am Ende der ersten 3 Zeilen besagt, das es auf der nächsten Zeile weiter geht ! (In der letzten ist keine mehr weil danach keine zu dem Befel gehörende Zeile kommt)
Alternativ kannst du auch alles in eine Zeile schrieben... ist dann nur ziemlich unleserlich.
Diese Frage ist doch auch von dir SQL Befehle über Linux-Shell
So wäre es einfacher, wenn du da mal nach schaust.
~Arano
welchen meinst du ?
Den aus der Startfrage !?
Ich gehe mal davon aus, denn mir will nicht in den Kopf das es überhaupt anläuft...
und die Anderen es noch nicht angesprochen habe
mysql --user=name --password=geheim \
-e "STATEMENT" \
-e "STATEMENT" \
-e "STATEMENT"
Alternativ kannst du auch alles in eine Zeile schrieben... ist dann nur ziemlich unleserlich.
Diese Frage ist doch auch von dir SQL Befehle über Linux-Shell
So wäre es einfacher, wenn du da mal nach schaust.
~Arano
Ja das ist natürlich Voraussetzung, da hat er wohl zwischenszeitlich seinen Beitrag überarbeitet , denn am Anfang sah der von ihm gespostete Script noch ganz anders aus .
Naja lassen wir ihn mal was üben .
Naja lassen wir ihn mal was üben .