2016-07-27 12 views
0

Ich habe den folgenden Befehl in einem BASH-Skript. Wie kann ich überprüfen, ob der Befehl das Hochladen der Datei abgeschlossen hat?BASH, wie auf mysql LOAD DATEN LOCAL INFILE zu vervollständigen

$(mysql -h "${1}" --user="${2}" --password="${3}" -D"${4}" --skip-column-names --local-infile=1 -e "LOAD DATA LOCAL INFILE '$tempFile' INTO TABLE $tableName FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' ") 
+1

Das Skript wird nicht auf den nächsten Befehl weitergehen, bis dieser Befehl ausgeführt wird beendet. –

+1

Sie brauchen (oder wollen) keine Befehlsersetzung, wenn Sie nur einen Befehl ausführen möchten. Lassen Sie die '$ (...)' fallen. – chepner

Antwort

0

Sie können die Abfrage ausführen und dann den Status überprüfen, indem Sie auf $? suchen:

mysql -h "${1}" --user="${2}" --password="${3}" -D"${4}" --skip-column-names --local-infile=1 -e "LOAD DATA LOCAL INFILE '$tempFile' INTO TABLE $tableName FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' " 
if [ $? ... ]; then do_something 
+0

Sie müssen selten '$?' Prüfen. Nur 'wenn! mysql ...; dann ". – Kusalananda