ubuntuusers.de

MySQL-Ausgabe in einen dialog --menu pipen

Status: Ungelöst | Ubuntu-Version: Ubuntu 13.10 (Saucy Salamander)
Antworten |

hawk-d

Anmeldungsdatum:
2. April 2012

Beiträge: 32

Hallo zusammen,

erstmal die "Vorgeschichte": Ich wollte mir einen kleinen Snippetmanager für die Konsole schreiben. Der läuft auch soweit, ist allerdings nicht gerade eine Schönheit. Jetzt dachte ich mir wäre cool das ganze in Form von Shell-Dialogen zu machen.

Dabei stieß ich auf folgendes Problem:

Meine Snippets stehen in einer sql-table und ich möchte sie irgendwie in den Dialog bekommen, also habe ich versucht es reinzupipen.

for i in $(mysql ${MYSQL_CREDS} "SELECT title FROM category"); do echo "${i} \"FOO\" \\"; done | dialog --backtitle "CONSOLE SNIPPET MANAGER" --title "Choose a category" --cancel-label "Quit" --menu "Categories" 17 60 10

Folgende Fehlermeldung erscheint: Error: Expected at least 6 tokens for --menu, have 4.

Hat jemand Erfahrung mit dem erstellen dynamischer Bash-Dialoge?

Danke schonmal 😉

diesch Team-Icon

Avatar von diesch

Anmeldungsdatum:
18. Februar 2009

Beiträge: 5072

Wohnort: Brandenburg an der Havel

Standardmäßig liest dialog die Menü-Definition von der Kommandozeile und will da mindestens einen Menüeintrag haben, so dass nach --menu insgesamt mindestens 6 Parameter kommen müssen.

Mit dem Parameter --file kannst du dialog sagen, dass es Parameter aus einer Datei lesen soll, wobei \&0 für stdin steht.

1
2
3
for i in $(mysql ${MYSQL_CREDS} "SELECT title FROM category"); do 
    echo "${i} \"FOO\" \\"; 
done | dialog --backtitle "CONSOLE SNIPPET MANAGER" --title "Choose a category" --cancel-label "Quit" --menu "Categories" 17 60 10 --file \&0

sollte also funktionieren.

Antworten |