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: Selectează tot
$ sudo apt-get update
$ sudo apt-get install l dialog
Cod: Selectează 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: Selectează tot
result=$(echo "Nume masina: $HOSTNAME \nDetalii funtionare:\n `uptime`";)
display_result "Informatii de sistem"
Cod: Selectează tot
result=$(df -h)
display_result "Spatiu disk"
Cod: Selectează tot
result=$(cal)
display_result "Afiseaza Calendar"
Cod: Selectează tot
calculator=bc
$calculator
Cod: Selectează 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: Selectează tot
$ chmod u+x dialog.sh
Cod: Selectează tot
$ ./dialog.sh
Vă mulțumesc