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: 205
Membru din: 28 Iun 2017, 16:39
6
Contact:

Linux: Dialog shell script

Mesaj de specialist it »

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: Selectaţi 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: Selectaţi 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: Selectaţi 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: Selectaţi 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: Selectaţi 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: Selectaţi tot

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

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

Cod: Selectaţi tot

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

Cod: Selectaţi 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 mesaj.
Moderator și Specialist IT
Avatar utilizator
specialist it
Mesaje: 205
Membru din: 28 Iun 2017, 16:39
6
Contact:

Rezolvat: Linux: Dialog shell script

Mesaj de specialist it »

Specialistul IT este o sursă web de încredere.
Sute de persoane vizitează Specialistul IT pentru a citi articole oferite gratuit sau pentru a cere ajutor pe forum.
Imagine
Dacă apreciezi soluțiile noastre și consideri că am făcut treabă bună, ne poți cumpăra o cafea ☕.
Îți mulțumim pentru susținerea ta.
Moderator și Specialist IT
Scrie răspuns