Portál AbcLinuxu, 7. listopadu 2025 00:20
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 0díky za pomoc
Řešení dotazu:
Předpokládám, že hledáte toto:
dialog --menu --file /root/sls/a.menu 0 0 0
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
Zatím děkuji uctivě
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 
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žkaDíky
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.
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é ?
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"
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.