[Gelöst] MySQL in Shell-Script verwenden

Hinweis: In dem Thema [Gelöst] MySQL in Shell-Script verwenden gibt es 3 Antworten. Der letzte Beitrag () befindet sich ganz unten auf dieser Seite.
  • Hi Leute,


    ich versuch gerade über ein Bash-Script eine Mysql-Abfrage zu machen. Und zwar möchte ich alle Einträge einer Tabelle ausgeben lassen über ein bash-script.


    Für die Abfrage verwende ich folgenden Code:

    SQL
    sql=`echo "SELECT * FROM tabelle" | mysql -u user -p pass database`


    Jetzt will ich aber die ganzen Einträge in der Shell ausgeben lassen und zwar jeden Eintrag in eine Zeile, eigentlich genauso wie wenn man die Abfrage über den mysql-Client machen würden. Meine Tabelle hat 6 Spalten, wenn ich die ausgabe über eine for-schleife mache, wird pro zeile nur ein spalteneintrag ausgegeben, ich möchte aber 1 Eintrag mit den 6 Spalteninhalten in einer Zeile. Ist das irgendwie möglich, wenn ja könntet ihr mir sagen wie?


    Danke schon mal im voraus.

    Einmal editiert, zuletzt von chiller33 ()

    Für den Inhalt des Beitrages 64442 haftet ausdrücklich der jeweilige Autor: chiller33

  • Code
    sql="$(echo "SELECT * FROM tabelle" | mysql -u user -p pass database)"
    
    
    while read line; do
        echo "$line"
    done < <(echo "$sql")


    Innerhalb der Schleife hast du nun Zugriff auf die einzelnen Zeilen (symbolisiert durch: echo "$line"). Man beachte die Quotierungen.


    Eleganter ist:

    Code
    while read line; do
        echo "$line"
    done < <(echo "SELECT * FROM tabelle" | mysql -u user -p pass database)

    Für den Inhalt des Beitrages 64446 haftet ausdrücklich der jeweilige Autor: Easy