<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <HTML> <HEAD> <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9"> <TITLE>BASH Programming - Introduction HOWTO: Interfacce utente</TITLE> <LINK HREF="Bash-Prog-Intro-HOWTO-10.html" REL=next> <LINK HREF="Bash-Prog-Intro-HOWTO-8.html" REL=previous> <LINK HREF="Bash-Prog-Intro-HOWTO.html#toc9" REL=contents> </HEAD> <BODY> <A HREF="Bash-Prog-Intro-HOWTO-10.html">Avanti</A> <A HREF="Bash-Prog-Intro-HOWTO-8.html">Indietro</A> <A HREF="Bash-Prog-Intro-HOWTO.html#toc9">Indice</A> <HR> <H2><A NAME="s9">9. Interfacce utente</A> </H2> <H2><A NAME="ss9.1">9.1 Utilizzo di select per la creazione di semplici menù</A> </H2> <P> <BLOCKQUOTE><CODE> <PRE> #!/bin/bash OPTIONS="Hello Quit" select opt in $OPTIONS; do if [ "$opt" = "Quit" ]; then echo done exit elif [ "$opt" = "Hello" ]; then echo Hello World else clear echo bad option fi done </PRE> </CODE></BLOCKQUOTE> <P> Se lanci questo script vedrai che si tratta di quel che i programmatori sognano per i menù testuali. Probabilmente noterai che è molto simile al costrutto 'for', solo che invece di eseguire il ciclo per ogni 'parola' in $OPTIONS, richiede input all'utente. <P> <H2><A NAME="ss9.2">9.2 Usare la riga di comando</A> </H2> <P> <BLOCKQUOTE><CODE> <PRE> #!/bin/bash if [ -z "$1" ]; then echo usage: $0 directory exit fi SRCD=$1 TGTD="/var/backups/" OF=home-$(date +%Y%m%d).tgz tar -cZf $TGTD$OF $SRCD </PRE> </CODE></BLOCKQUOTE> <P> <P> Ciò che fa questo script ti dovrebbe essere chiaro. L'espressione nella prima condizionale controlla se il programma ha ricevuto un argomento ($1) e ed esce in caso negativo, mostrando all'utente un breve messaggio di utilizzo. A questo punto il resto dello script dovrebbe esserti chiaro. <HR> <A HREF="Bash-Prog-Intro-HOWTO-10.html">Avanti</A> <A HREF="Bash-Prog-Intro-HOWTO-8.html">Indietro</A> <A HREF="Bash-Prog-Intro-HOWTO.html#toc9">Indice</A> </BODY> </HTML>