HOME PAGE  |   CONTATTI |   COLLABORA |  ASP  |  PHP  |  HTML |  CSS |  PERL |  JAVA |  TCP/IP  |  RETI  |  LINUX |  MANUALI SPAZIO WEB
PROGRAMMAZIONE

Linguaggio C++

Linguaggio C

Assembler

Java

Perl

LINGUAGGI WEB

Html

Asp

Php

Css

Javascript

GUIDE DI BASE

Internet

Computer

Hardware

Linux




 

UN VESTITO PER GLI SCRIPT DI SHELL: DIALOG/XDIALOG

A cura di: Francesco Celebrini - www.tutorialpc.it
Nota: E' permessa la pubblicazione di questa guida su altri siti lasciando intatto il contenuto, questa nota e il link al sito


Da alcuni elevato a forma d'arte, da altri considerato un "semplice linguaggio di scripting", lo scripting della shell di Linux rimane comunque, da qualsiasi lato lo si guardi, uno strumento potente e indispensabile per l'amministratore di sistema e per l'utente evoluto.
Probabilmente alcuni di voi che lo utilizzano da tempo lo considereranno un linguaggio completo per le funzioni che deve svolgere, il che è certamente vero!
Ma potrebbe darsi il caso in cui un'interfaccia grafica, seppur semplice e minimale, possa agevolare alcune operazioni (raggruppare alcuni comandi usati di frequente in un menù, installare un programma con parecchie opzioni di installazione, ecc..).
In questi casi vi vengono in aiuto DIALOG e XDIALOG, due strumenti che dotano gli script di una GUI; per la precisione Dialog è basato sul terminale mentre Xdialog è un programma per X11.
In sostanza, quello che fanno questi programmi è visualizzare diversi tipi di caselle di dialogo (casella di interrogazione con pulsanti di risposta "si" e "no", lista scorrevole di scelte, caselle di testo, ecc..).


Questo breve articolo illustrerà solo alcuni esempi molto semplici.
Del resto, se volete approfondire ci sono i siti http://hightek.org/dialog/ (per Dialog) e http://xdialog.dyns.net (per Xdialog) dai quali potete scaricare i programmi stessi e la documentazione, c'è il comando dialog+invio da terminale, un discreto numero di esempi nella directory /usr/share/doc/dialog-0.9b/samples (almeno per quanto riguarda Red Hat 9) e l'immancabile pagina man.


Vediamo ora il primo esempio.
Aprite un file di testo vuoto e inserite il seguente contenuto:

# INIZIO SCRIPT #
#!/bin/bash
dialog --title "titolo" --backtitle "titolo di fondo" --yesno "Ti piace Dialog?" 0 0; \
# utilizziamo qui una casella di interrogazione con i pulsanti di risposta "si" e "no",
# diamo un titolo e un titolo di fondo,
# il doppio zero finale (altezza e larghezza) indica che la finestra viene
# dimensionata automaticamente (provate a dargli qualche valore numerico)

case $? in
0) echo "benissimo!" ;;
1) echo "peccato..." ;;
255) echo "uscita con il tasto ESC" ;;
esac
# nel caso in cui si seleziona il pulsante "si" viene stampato a monitor
# il messaggio "benissimo!"
# nel caso in cui si seleziona il pulsante "no" viene stampato a monitor
# il messaggio "peccato..."
# nel caso in cui premiamo il tasto ESC viene stampato a monitor
# il messaggio "uscita con il tasto ESC"
# FINE SCRIPT #

Salvate il file con il nome, ad es., script,
modificate i permessi (es.: chmod 700 script),
lanciatelo (es.: ./script) e vedete i risultati.
Semplice.....ma non molto utile direi.


Ecco allora un altro esempio, con Xdialog questa volta e quindi utilizzabile da ambiente grafico, che io utilizzo per avviare la connessione a internet con il modem adsl speedtouch usb.
Create il file avvia_connessione contenente il seguente codice:

# INIZIO SCRIPT #
#!/bin/bash
Xdialog --yesno "Vuoi connetterti a internet?" 0 0; \
case $? in
0) modem_run -m -f /usr/share/speedtouch/mgmt.o; pppd call adsl; ifconfig ppp0;;
1) exit;;
esac
# FINE SCRIPT #


Per disconnettersi create il file ferma_connessione con il seguente codice:

# INIZIO SCRIPT #
#!/bin/bash
Xdialog --yesno "Vuoi disconnetterti da internet?" 0 0; \
case $? in
0) killall ppp0;;
1) exit;;
esac
# FINE SCRIPT #


E veniamo all'ultimo esempio.
Supponiamo di voler creare un menù che contiene alcuni comandi e operazioni utilizzati di frequente.
Il contenuto dello script sarà il seguente:

# INIZIO SCRIPT #
#!/bin/bash
dialog --menu "Menù di scelta" 0 0 0 \
# creiamo un menù di scelta
# il triplo 0 finale (altezza, larghezza, altezza menù) indica che la finestra
# viene dimensionata automaticamente

1 "Backup" \
2 "Avvia ambiente grafico" \
3 "Esci" 2> /tmp/menu.$$
# le opzioni selezionate vengono mostrate come standard error e redirette nel file
# temporaneo menu.$$ che in seguito viene eliminato


opt=`cat /tmp/menu.$$`
# il simbolo ` si ottiene premendo ALT+96 da tastiera in codice ascii

rm -rf /tmp/menu.$$
case $opt in
1) tar -cvzf /root/backup.tar.gz /home; read;;
2) startx;;
3) exit;;
esac
# per ogni voce di menù viene eseguito il comando indicato
# FINE SCRIPT #


A voi approfondire l'argomento.


 

Torna al menù principale


Nuova pagina 1


 

CREARE UNA RETE

Rete Peer To Peer

Rete client/server

Connettere due Pc

Lista completa

GUIDE PRATICHE

Partizionare l'HD

Comprimere i file

Recupero file

Formattazione

Statistiche

News nel tuo sito

Notizie dal web

Lista completa

 

 

Abbiamo cambiato indirizzo, troverai il nuovo sito all'url

manuali.tutorialpc.it

 

HOME PAGE   -   CONTATTI   -   COLLABORA   -  PRIVACY  -   HOSTING   -   DOMINI

© Copyright 2002-2011. Tutto il materiale che potete visionare in questo sito è dei rispettivi proprietari.

  Tutorialpc non si assume responsabilità per eventuali errori degli autori. 

Risoluzione consigliata 800x600 pixel