Portál AbcLinuxu, 7. května 2025 22:10
var=$(dialog --ascii-lines --menu "Hlavní menu" 0 100 0 \ 1 "Obsluha Apache" \ 2 "Obsluha MySQL" \ 3 "Obsluha PHP" 2>&1 >/dev/tty)Když ale nechci nic posílat do nějakého dev/tty (coz ani nevim co to presne je, jen jsem dohledal, ze se to tam posila pri nejake chybe) tak to proste smazu a v ten moment je script nefunkcni
var=$(dialog --ascii-lines --menu "Hlavní menu" 0 100 0 \ 1 "Obsluha Apache" \ 2 "Obsluha MySQL" \ 3 "Obsluha PHP")Poradí někdo správný zapis ? Díky
Řešení dotazu:
var=$(dialog --ascii-lines --stdout --menu "Hlavní menu" 0 100 0 \ 1 "Obsluha Apache" \ 2 "Obsluha MySQL" \ 3 "Obsluha PHP")
dialog --ascii-lines --menu "Hlavní menu" 0 100 0 \ 1 "Obsluha Apache" \ 2 "Obsluha MySQL" \ 3 "Obsluha PHP"Jak bych pak mohl třeba pomocí "case" rozlišit to na co se kliklo? Děkuji
case $var in 1) echo "Indian"; ;; 2) echo "Muj dotazovaci jazyk"; ;; 3) echo "PHP: hypertextovy preprocesor"; ;; *) echo "Vsechno vedle"; ;; esac
DATA=("Obsluha Apache" "Obsluha MySQL" "Obsluha PHP") DATA2=(apache mysql php) var=$(dialog --ascii-lines --stdout --menu "Hlavní menu" 0 100 0 \ for i in ${!DATA[*]} do $i")" ${DATA[$i]} done) case $var in for i in ${!DATA2[*]} do $i")" ${DATA2[$i]};; done esac
var=$(dialog --ascii-lines --stdout --menu "Hlavní menu" 0 100 0 \ apache "Obsluha Apache" \ mysql "Obsluha MySQL" \ php "Obsluha PHP") $var
#!/bin/bash declare -A descriptions=( [apache]="Obsluha Apache" \ [mysql]="Obsluha MySQL" \ [php]="Obsluha PHP"); menuItems=""; for key in ${!descriptions[@]}; do menuItems="$(echo $menuItems $key \"${descriptions[$key]}\")"; done; echo $menuItems; menuItems="dialog --ascii-lines --stdout --menu \"Hlavní menu\" 0 100 0 $menuItems"; var=$(eval $menuItems); echo "Volba: $var";
menuItems="$menuItems $key \"${descriptions[$key]}\"";
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.