Linux: Dialog shell script
Scris: 16 Feb 2018, 11:34
Salut,
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:
În mod similar pentru a instala pachetul dialog pe CentOS sau Red Hat Linux executați în terminal:
Rețineți că pentru instalare dialog aveți nevoie de userul root.
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)
3. Următoarea căsuță de dialog afișează rezultatul secventei 2)
4. Următoarea căsuță de dialog afișează rezultatul secventei 3 )
5. Ultima opțiune este rezervată pentru a invoca calculatorul bc în afara secvenței dialog:
Mai jos regăsiți scriptul shell folosit pentru acest exemplu:
După ce ați salvat scriptul nu uitați să acordați permisiunile necesare.
Apoi rulați scriptul:
Pentru propuneri de tutoriale, vă rog să contactați echipa Specialistul IT.
Vă mulțumesc
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