Ich verwende die Bash-Shell unter CentOS 7. Ich möchte eine MySQL-Abfrage über ein Shell-Skript ausführen und jede Ergebniszeile durchlaufen. Wenn 4 Zeilen zurückgegeben würden, dachte ich, ich könnte die vier Zeilen in einem Array wie folgt erfassen:
query="select p.id, p.ebook_id, es.id FROM ...";
echo "$query" > /tmp/query.sql
mysql -u user --password=pass db_id < /tmp/query.sql > /tmp/query.csv
linesIN=`cat /tmp/query.csv | sed 's/\t/,/g'`
arraylength=${#linesIN[@]}
echo $arraylength
$arraylength
Wird jedoch immer ausgegeben 1
, obwohl mehrere Ergebniszeilen zurückgegeben werden. Wie kann ich das oben Gesagte ändern, um ein Array von Ergebnissen korrekt zu erstellen, wobei jedes Element im Array eine Zeile aus der Ergebnismenge darstellt?
--batch
für Ihrenmysql
Aufruf verwenden? Dafür ist es da.