Portál AbcLinuxu, 11. května 2025 04:42

Dotaz: Jak načíst položky do dialogu

21.2.2013 18:44 Lukeš
Jak načíst položky do dialogu
Přečteno: 211×
Odpovědět | Admin
Ahoj, neví někdo jak načíst do dialogu položky přímo ze souboru?

zkoušel jsem to takto ale nic nefunguje a na netu jsou příklady jen pomocí array.
dialog --menu "$(< /root/sls/a.menu)" 0 0 0
dialog --menu "$(cat /root/sls/a.menu)" 0 0 0
dialog --menu "$(echo /root/sls/a.menu)" 0 0 0
díky za pomoc

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

21.2.2013 19:23 myšák | skóre: 26 | blog: EmentuX | Ostrava
Rozbalit Rozbalit vše Re: Jak načíst položky do dialogu
Odpovědět | | Sbalit | Link | Blokovat | Admin

Předpokládám, že hledáte toto:

dialog --menu --file /root/sls/a.menu 0 0 0
Je nesmírně těžké být idiotem, konkurence je obrovská...
Řešení 1× (myšák)
21.2.2013 19:30 myšák | skóre: 26 | blog: EmentuX | Ostrava
Rozbalit Rozbalit vše Re: Jak načíst položky do dialogu
Odpovědět | | Sbalit | Link | Blokovat | Admin

Respektive lépe takto: :-)

dialog --title "Testovací menu" --menu "Vyber položku:" 0 0 0 --file /root/sls/a.menu

kdy obsah souboru a.menu vypadá např. takto:

1 Položka č.1
2 Položka č.2
3 Položka č.3
4 Položka č.4
Je nesmírně těžké být idiotem, konkurence je obrovská...
21.2.2013 19:46 Lukeš
Rozbalit Rozbalit vše Re: Jak načíst položky do dialogu
Hned na to mrknu pane myšáku ;-) Zatím děkuji uctivě ;-)
21.2.2013 19:55 Lukeš
Rozbalit Rozbalit vše Re: Jak načíst položky do dialogu
Tak to funguje naprosto super, můžete mi prozradit kde jste so tohle dočetl? v Manu o tom není ani zmínka. Ještě jednou moc děkuji
21.2.2013 20:05 myšák | skóre: 26 | blog: EmentuX | Ostrava
Rozbalit Rozbalit vše Re: Jak načíst položky do dialogu

Tak to asi čteme každý jiný man dialog. V tom "mém" se totiž píše:

OPTIONS

...


The "--file" option tells dialog to read parameters from the file named as its value.

dialog --file parameterfile

Ale uznávám, že z toho nemusí být úplně pochopitelné, že to platí i pro položky v menu ;-)

Je nesmírně těžké být idiotem, konkurence je obrovská...
21.2.2013 20:37 Lukeš
Rozbalit Rozbalit vše Re: Jak načíst položky do dialogu
Tak to jsem četl ale o menu ani čárky :-( Ihmo, a jde nějak udělat v tom souboru ze kterého se to načíta nějaké vlastní dělítko/znak aby nemusel dávat člověk všechno do závorek? Příklad
místo tohoto
"01" "První položka"
"02" "Druhá položka"

tohle
01+První položka
02+Druhá položka
Díky
22.2.2013 07:53 myšák | skóre: 26 | blog: EmentuX | Ostrava
Rozbalit Rozbalit vše Re: Jak načíst položky do dialogu

Evidentně bude nezbytné, abych tady doplnil ještě zbytek toho odstavce z man dialog :-)

Blanks not within double-quotes are discarded (use backslashes to quote single characters). The result is inserted into the command-line, replacing "--file" and its option value. Interpretation of the command-line resumes from that point. If parameterfile begins with "&", dialog interprets the following text as a file descriptor number rather than a filename.

Jinými slovy, odpověď na váš dotaz zní: "Ne, protože obsah souboru musí odpovídat syntaxi příkazu dialog, resp. tomu, v jaké podobě očekává zadané parametry."

Nicméně nevidím důvod, proč by parametry s uvozovkami byly výrazně komplikovanější než bez nich. Je to pouze záležitost vhodně zpracovaného výstupu z "čehosi", co vám plní ten soubor pro menu.

Je nesmírně těžké být idiotem, konkurence je obrovská...
pepe_ avatar 21.2.2013 19:55 pepe_ | skóre: 48
Rozbalit Rozbalit vše Re: Jak načíst položky do dialogu

Tak sem zkoušel    dialog --title "Testovací menu" --menu "Vyber položku:" 0 0 0 --file ./list.mnu

 

 

a list.mnu  :

 

 

A "Chroot ke stávajícímu systému"
S "Reinstalace zavaděče"
D "Příkazový řádek obecně"
F "Instalace"
G "Restart"

 

 

funguje.  Jak ale výsledek dostat do proměnné ?

21.2.2013 20:17 myšák | skóre: 26 | blog: EmentuX | Ostrava
Rozbalit Rozbalit vše Re: Jak načíst položky do dialogu

Netvrdím, že je to jediná varianta, ale obvykle používám "tempfile", tedy cosi jako:

#!/bin/bash
INPUT=/tmp/menu.$$

dialog --title "Testovací menu" --menu "Vyberte položku:" 0 0 0 1 "Položka č.1" 2 "Položka č.2" 3 "Položka č.3" 2>"${INPUT}"

selected=$(<"${INPUT}")

echo "Vybral jste položku: $selected"
Je nesmírně těžké být idiotem, konkurence je obrovská...

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.