Invocarea căsuțelor de tip dialog este posibilă pe orice distribuție de linux. În urma unei solicitări venite din partea unui membru VIP al forumului deschid acest thread despre linux shell script cu dialog. Rețineți că pentru a asigura funcționarea scriptului trebuie să ne asigurăm că avem instalat pachetul dialog.
Pentru a instala pachetul dialog pe Debian sau Ubuntu executați în terminal:
Cod: Selectaţi tot
$ sudo apt-get update
$ sudo apt-get install l dialog
Cod: Selectaţi tot
$ sudo yum install dialog
Pentru acest exemplu am gândit o interfață meniu cu mai multe căsuțe dialog. Detalii:
1. Generarea unei interfețe dialog de tip meniu cu următoarele opțiuni:
- Afișează informații de sistem
- Afișează spațiu disk
- Afișează calendar
- Calculator
2. Prima căsuță de dialog afișează rezultatul secvenței 1)
Cod: Selectaţi tot
result=$(echo "Nume masina: $HOSTNAME \nDetalii funtionare:\n `uptime`";)
display_result "Informatii de sistem"
Cod: Selectaţi tot
result=$(df -h)
display_result "Spatiu disk"
Cod: Selectaţi tot
result=$(cal)
display_result "Afiseaza Calendar"
Cod: Selectaţi tot
calculator=bc
$calculator
Cod: Selectaţi tot
#!/bin/bash
# Dialog shell script - Forum Specialistul IT
DIALOG_CANCEL=1
DIALOG_ESC=255
HEIGHT=0
WIDTH=0
calculator=bc
display_result() {
dialog --title "$1" \
--no-collapse \
--msgbox "$result" 0 0
}
while true; do
exec 4>&1
selection=$(dialog \
--backtitle "Dialog shell script - Forum Specialistul IT" \
--title "Meniu" \
--clear \
--cancel-label "Iesire" \
--menu "Alegeti o optiune:" $HEIGHT $WIDTH 4 \
"1" "Afiseaza informatii de sistem" \
"2" "Afiseaza spatiu disk" \
"3" "Afiseaza calendar" \
"4" "Calculator" \
2>&1 1>&4)
exit_status=$?
exec 4>&-
case $exit_status in
$DIALOG_CANCEL)
clear
echo "Sesiune incheiata."
exit
;;
$DIALOG_ESC)
clear
echo "Sesiune anulata." >&2
exit 1
;;
esac
case $selection in
0 )
clear
echo "Sesiune incheiata."
;;
1 )
result=$(echo "Nume masina: $HOSTNAME \nDetalii funtionare:\n `uptime`";)
display_result "Informatii de sistem"
;;
2 )
result=$(df -h)
display_result "Spatiu disk"
;;
3 )
result=$(cal)
display_result "Afiseaza Calendar"
;;
4 )
$calculator
;;
esac
done
Cod: Selectaţi tot
$ chmod u+x dialog.sh
Cod: Selectaţi tot
$ ./dialog.sh
Vă mulțumesc