• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Gelöst Leerzeichen in Variable für dialog maskieren

OsunSeyi

Hacker
Hallo,
...bin nicht ganz sicher, ob der Titel das Problem trifft:

Bash:
ITEMS=" 1 'hallo Du ' 2 'bist nett'"

    dialog --title ""  --menu "" 0 0 0 1 'hallo Du ' 2 'bist nett'
    dialog --title ""  --menu "" 0 0 0  $ITEMS

Ersteres wird natürlich korrekt von 'dialog' ausgegeben:
1 hallo Du
2 bist nett

Nur ich bekomme das selbe nicht hin, wenn ich es in der Variable '$ITEMS' übergeben will...
Kein "Rum"-Quotieren hat mir bisher die Lösung gebracht...

Wie kann ich das hinbekommen?
 
OP
OsunSeyi

OsunSeyi

Hacker
Ich glaube, ich hab's gefunden:
Bash:
    eval "dialog --title ''  --menu '' 0 0 0 $ITEMS"

:cool:

Ich finde das cool...

Bash:
function DIALOG ()
 { eval "dialog $BOX_OPT --title '"$BOX_TITLE"' --menu '"$BOX_MSG"' $BOX_SIZE $BOX_ITEMS"   ;}
 
 # fortan genügt für alle Boxen:
 
    BOX_SIZE='0 0 0'   # am Anfang bereits festgelegt
    BOX_OPT='--stdout --colors --no-tags --no-cancel --no-lines'   # dito

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Eine (von weiteren) Boxen bauen:

   BOX_TITLE='Titel'
     BOX_MSG='Nachricht'
BOX_ITEMS=' 1 " Menü öffnen "\
        2 " beenden     "'

    VAL=$(DIALOG)

Das macht die Sache doch übersichtlicher!
Ok, das hübsche Setzen von Code gelingt mir hier nicht so...
 
Zuletzt bearbeitet:
Oben