Linux: Dialog shell script

Rezolvări și soluții valide pentru diferite cazuri IT. Aici găsiți tutoriale it, tips and tricks și alte informații utile. Nu uita, Like and Share!
Avatar utilizator
specialist it
Mesaje: 110
Membru din: 28 Iun 2017, 16:39
Aprecieri acordate: 4 ✔
Aprecieri primite: 59 ✔
Contact:

Linux: Dialog shell script

Mesaj de specialist it » 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:

Cod: Selectează tot

$ sudo apt-get update
$ sudo apt-get install l dialog
În mod similar pentru a instala pachetul dialog pe CentOS sau Red Hat Linux executați în terminal:

Cod: Selectează tot

$ sudo yum install dialog
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
interfata_meniu-dialog.png
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"
afiseaza-informatii-sistem.png
3. Următoarea căsuță de dialog afișează rezultatul secventei 2)

Cod: Selectează tot

result=$(df -h)
display_result "Spatiu disk"
afiseaza-spatiu-disk.png
4. Următoarea căsuță de dialog afișează rezultatul secventei 3 )

Cod: Selectează tot

result=$(cal)
display_result "Afiseaza Calendar"
afiseaza-calendar.png
5. Ultima opțiune este rezervată pentru a invoca calculatorul bc în afara secvenței dialog:

Cod: Selectează tot

calculator=bc
$calculator
calculator.png
Mai jos regăsiți scriptul shell folosit pentru acest exemplu:

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
După ce ați salvat scriptul nu uitați să acordați permisiunile necesare.

Cod: Selectează tot

$ chmod u+x dialog.sh
Apoi rulați scriptul:

Cod: Selectează tot

$ ./dialog.sh
Pentru propuneri de tutoriale, vă rog să contactați echipa Specialistul IT.

Vă mulțumesc
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui subiect.


Moderator Unic - Forum Specialistul IT

Scrie răspuns

Utilizatori online

Utilizatori care navighează pe acest forum: Nici un utilizator înregistrat și 0 vizitatori

Subiecte active