<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//IT">
<HTML>
<HEAD>
 <META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 <META NAME="GENERATOR" CONTENT="lfparser_2.29">
 <META NAME="LFCATEGORY" CONTENT="UNIXBasics">
 <TITLE>lf267, UNIXBasics: (X)dialog: Shell parlanti</TITLE>
<style type="text/css">
<!--
 td.top {font-family: Arial,Geneva,Verdana,Helvetica,sans-serif; font-size:12 }
 pre { font-family:monospace,Courier }
 p.cl { color:#EE9500 }
 a.nodec { text-decoration:none }
 p.trans { font-size:8pt; text-align:right }
 p.clbox { width:50%; alignment:center; background-color:#FFD700; 
           border-style:none; border-width:medium; border-color:#FFD700; 
           padding:0.5cm;  text-align:center }
 p.code { width:80%; alignment:center; background-color:#aedbe8; 
          border-style:none; border-width:medium; border-color:#aedbe8; 
          padding:0.1cm;  text-align:left }
 p.foot { background-color:#AAAAAA; color:#FFFFFF; border-style:none; 
          border-width:medium; border-color:#AAAAAA; padding:0.5cm ; 
          margin-top:0.1cm; margin-right:1cm; margin-left:1cm; 
          text-align:center }
 .mark  { background-color:#e6e6ff }
-->
</style>
 
</HEAD>
<BODY bgcolor="#ffffff" text="#000000">
 <!-- this is generated html code. NEVER use this file for your
 translation work. Instead get the file with the same article number
 and .meta.shtml in its name. Translate this meta file and then
 use lfparser program to generate the final article -->
 <!-- lfparser can be obtained from http://www.linuxfocus.org/~guido/dev/lfparser.html -->

<!-- this is used by a number of tools:
 =LF=AUTHOR:  Katja and Guido Socher
 =LF=CAT___: UNIXBasics
 =LF=TITLE_: (X)dialog: Shell parlanti
 =LF=NUMBER: 267
 =LF=ANAME_: article267.shtml
 -->

<!-- 2pdaIgnoreStart -->

<!-- start navegation bar -->
 <!-- top navegation bar -->
 <TABLE summary="topbar_1" cellspacing="0" cellpadding="0" border="0" align="center" width="90%">
   <TR bgcolor="#2e2292">
     <TD class="top"><TABLE summary="topbar_1_logo" cellspacing="0" cellpadding="0" border="0" width=
       "100%">
         <TR><TD width="319"><IMG src="../../common/images/logolftop_319x45.gif"
           alt="[LinuxFocus-icon]" width="319" height="45" align="left" 
           border="0"></TD>

           <TD class="top">
             <TABLE summary="topbar_1_links" width="100%">
               <TR align="right">
                 <TD class="top"><A class="nodec" href="../index.shtml"><FONT color=
                 "#DDDDDD" size="2">Home</FONT></A> &nbsp;|&nbsp; <A class=
                 "nodec" href="../map.html"><FONT color=
                 "#DDDDDD" size="2">Mappa</FONT></A> &nbsp;|&nbsp; <A class=
                 "nodec" href="../indice.html"><FONT color=
                 "#DDDDDD" size="2">Indice</FONT></A> &nbsp;|&nbsp; <A class="nodec" href="../Search/index.shtml"><FONT color=
                 "#DDDDDD" size="2">Cerca</FONT></A> </TD>
               </TR>

               <TR align="right">
                 <TD class="top">
                   <HR width="100%" noshade size="1">
                 </TD>
               </TR>
             </TABLE>
           </TD>
         </TR>
       </TABLE>
     </TD>
   </TR>
 </TABLE>
 <!-- end top navegation bar -->
 <!-- blue bar -->
 <TABLE summary="topbar_2" cellspacing="0" cellpadding="0" border="0" align="center"
 width="90%">
   <TR bgcolor="#00ffff">
     <TD><IMG src="../../common/images/transpix.gif" width="1" height=
     "2" alt=""></TD>
   </TR>
 </TABLE>
 <!-- end blue bar -->
 <!-- bottom navegation bar -->
 <TABLE summary="topbar_3" cellspacing="0" cellpadding="0" border="0" align="center"
 width="94%">
   <TR bgcolor="#000000">
     <TD>
       <TABLE summary="topbar_3_links" cellspacing="0" cellpadding="1" border="0" width=
       "100%">
         <TR align="center">
           <TD WIDTH="20%"><A class="nodec" href="../News/index.shtml"><FONT color=
           "#FFFFFF">News</FONT></A> </TD>
           <TD WIDTH="5%"><FONT color="#FFFFFF">|</FONT> </TD>
           <TD WIDTH="20%"><A class="nodec" href="../Archives/index.html"><FONT color=
           "#FFFFFF">Archivo</FONT></A> </TD>
           <TD WIDTH="5%"><FONT color="#FFFFFF">|</FONT> </TD>
           <TD WIDTH="20%"><A class="nodec" href="../Links/index.html"><FONT color=
           "#FFFFFF">Link</FONT></A> </TD>
           <TD WIDTH="5%"><FONT color="#FFFFFF">|</FONT> </TD>
           <TD WIDTH="20%"><A class="nodec" href="../aboutus.html"><FONT color=
           "#FFFFFF">Cose LF</FONT></A> </TD>
         </TR>
       </TABLE>
     </TD>
   </TR>
 </TABLE>
 <!-- end bottom navegation bar -->
<!-- stop navegation bar -->

<!-- SSI_INFO -->

<!-- tr_staticssi include virtual -->
<!-- tr_staticssi exec cmd -->
<!-- addedByLfdynahead ver 1.4 --><TABLE ALIGN="right" border=0><TR><TD ALIGN="right"><FONT SIZE="-1" FACE="Arial,Helvetica">Questo documento &egrave; disponibile in: <A href="../../English/November2002/article267.shtml">English</a> &nbsp;<A href="../../Castellano/November2002/article267.shtml">Castellano</a> &nbsp;<A href="../../ChineseGB/November2002/article267.shtml">ChineseGB</a> &nbsp;<A href="../../Deutsch/November2002/article267.shtml">Deutsch</a> &nbsp;<A href="../../Francais/November2002/article267.shtml">Francais</a> &nbsp;<A href="../../Italiano/November2002/article267.shtml">Italiano</a> &nbsp;<A href="../../Nederlands/November2002/article267.shtml">Nederlands</a> &nbsp;<A href="../../Russian/November2002/article267.shtml">Russian</a> &nbsp;<A href="../../Turkce/November2002/article267.shtml">Turkce</a> &nbsp;</FONT></TD></TR></TABLE><br>
 


<!-- SSI_INFO STOP -->
<!-- 2pdaIgnoreStop -->

<!-- SHORT BIO ABOUT THE AUTHOR -->
<TABLE ALIGN=LEFT BORDER=0  WIDTH="190" summary="about the author">
<TR>
<TD>

<!-- 2pdaIgnoreStart -->
<!-- PALM DOC -->
<TABLE BORDER=0 hspace=4 vspace=4 summary="pda download"> <TR> <TD>
<font size=1> <img src="../../common/images/2doc.gif" width=34 align=left border=0 height=22 alt="convert to palm"><a href="http://cgi.linuxfocus.org/cgi-bin/2ztxt">Convert to GutenPalm</a><br>or <a href="http://cgi.linuxfocus.org/cgi-bin/2pda">to PalmDoc</a></font>
</TD> </TR> </TABLE>
<!-- END PALM DOC -->
<!-- 2pdaIgnoreStop -->
<br>
<img src="../../common/images/KatjaAndGuido.jpg" alt="[Photo of the Authors]" height="150" width="168">
<BR>    Katja and Guido Socher <br> <small>&lt;katja(at)linuxfocusorg, %20guido(at)linuxfocus.org&gt;</small>
<BR><BR>
<I>About the authors:</I><BR>


Katja &egrave; la redattrice per la Germania di LinuxFocus. Ama Tux, i film &amp;
photography e adora il mare. La sua pagina personale la trovate <a href="http://linuxfocus.org/%7Ekatja/">qui</a>.
Guido &egrave; un fan di lunga data di Linux; gli piace Linux perch&egrave; &egrave; stato creato da
gente onesta e disponibile.Questo &egrave; uno dei motivi per i quali si parla di opensource.
La sua homepage si trova su <a href="http://linuxfocus.org/%7Eguido/"> linuxfocus.org/~guido</a>.

<!-- TRANSLATED TO it -->
<BR><BR><I>Tradotto in Italiano da:</I><BR>
Kikko <small>&lt;kikko(at)linuxfocus.org&gt;</small>
<br>
<!-- TRANSLATED TO STOP -->
<BR><i>Contenuto</i>:
<UL>
  <LI><A HREF="#267lfindex0">Introduzione</A></LI>
  <LI><A HREF="#267lfindex1">Approccio ad (X)dialog...</A></LI>
  <LI><A HREF="#267lfindex2">Come funziona</A></LI>
  <LI><A HREF="#267lfindex3">Un esempio pratico</A></LI>
  <LI><A HREF="#267lfindex4">Pi&ugrave; applicazioni </A></LI>
  <LI><A HREF="#267lfindex5">Conclusioni</A></LI>
  <LI><A HREF="#267lfindex6">Dove trovare Xdialog e dialog?</A></LI>
  <LI><A HREF="#267lfindex7">Riferimenti</A></LI>
  <LI><A HREF="http://cgi.linuxfocus.org/cgi-bin/lftalkback?anum=267&amp;lang=en">Discussioni su quest'articolo</A></LI>
</UL>

</TD></TR></TABLE>
<!-- HEAD OF THE ARTICLE -->
<br>&nbsp;
<H2>(X)dialog: Shell parlanti</H2>
 <img src="../../common/images/article267/shelltalk.jpg" width="200"
height="202" alt="[Illustration]" hspace="10">
<!-- ABSTRACT OF THE ARTICLE -->
<P><i>Premessa</i>:
<P>

     Xdialog e dialog sono due classici strumenti che dotano i vostri script
per la shell di una interfaccia grafica (GUI). <br>
Per comprendere quest'articolo avrete bisogno di qualche nozione basilare di programmazione.
Per iniziare a conoscere i fondamenti della programmazione della shell potreste
leggere il nostro articolo <a href="../September2001/article216.shtml">
Shell Programming</a>.

<br>
<br><!-- HR divider --><center><font color="#8282e0"><b>_________________ _________________ _________________</b></font></center><br> 
<!-- BODY OF THE ARTICLE -->


<A NAME="267lfindex0">&nbsp;</A>
<H2>Introduzione</H2>

     La shell UNIX costituisce un ambiente molto fertile di per s&egrave; stesso
e lavora benissimo anche senza un'interfaccia grafica.<br>
Tuttavia, talvolta, per alcuni utenti &egrave; di grossa importanza trovarsi di
fronte a finestre di dialogo. Un esempio potrebbe essere l'interfaccia di installazione
di un programma. Avere parecchie opzioni di installazione e poter scegliere la
directory di installazione...
<A NAME="267lfindex1">&nbsp;</A>
<H2>Approccio ad (X)dialog...</H2>

     Con dialog e Xdialog potrete creare delle applicazioni grafiche digitando
giusto qualche riga di codice. Dialog &egrave; un programma basato sul terminale
puro e semplice, mentre Xdialog &egrave; un programma per X11.<br>
Ecco un esempio: <br>
Potete ridigitare (o fare un copia/incolla) le seguenti linee in una shell (xterm,
konsole,....):
<p class="code">bash<br>
     Xdialog --yesno "Do you want to learn more about Xdialog?" 0 0;\<br>
     case $? in<br>
      0)<br>
      echo "Result: Yes chosen.";;<br>
      1)<br>
      echo "Result: No chosen.";;<br>
      255)<br>
      echo "ESC pressed.";;<br>
     esac<br>
     </p>
     Il riquadro che vi apparir&agrave; avr&agrave; pi&ugrave; o meno quest'aspetto:
<br>

<center>       <br>
      <img src="../../common/images/article267/yesno.gif" width=
      "274" height="95" alt="[yes/no Xdialog]">
     </center>
     <br>
Se usate dialog invece che Xdialog (eliminate la X nella seconda linea dello script
sopraesposto) otterrete un'applicazione basata su curses che funziona all'interno
di xterm e che non apre una nuova finestra. In qualche caso questo &egrave; pi&ugrave;
appropriato per uno script di shell creato appositamente per la finestra di terminale.
E' particolarmente indicato nel caso in cui vogliate avviarlo da remoto avendo
un certo numero di host tra il vostro computer e l'host remoto: non sarebbe infatti
possibile un rooting IP diretto. In questo caso dialog funzionerebbe ma non potrebbe
far partire un'applicazione X11 come invece potrebbe fare Xdialog. <br>

<center>       <br>
      <img src="../../common/images/article267/yesno_noX.gif"
      width="440" height="340" alt="[yes/no dialog]">
     </center>
     <br>
Quello qui sopra &egrave; un esempio carino ma senza grossa utilit&agrave; di
dialog/Xdialog, tuttavia dimostra quanto sia semplice programmare una semplice
finestra di dialogo. Esistono finetre di dialogo molto pi&ugrave; complesse e
interessanti. Son possibili effetti tridimensionali, calendari, menu, filemanager,
barre di avanzamento, riquadri di testo, di avvisi e di password... Potete digitare
<p class="code"><a href="../../common/src/article267/dialog_help.html">
dialog --help</a><br>
  oppure<br>
     <a href="../../common/src/article267/Xdialog_help.html">
Xdialog --help</a><br>
     </p>
     per avere una lista delle finestre disponibili. Xdialog ha qualche riquadro
in pi&ugrave; di dialog.
<A NAME="267lfindex2">&nbsp;</A>
<H2>Come funziona</H2>

 	     I riquadri di dialog vengono configurati da linea di comando.
<p class="code">dialog --yesno "text string" &lt;height&gt;     &lt;width&gt;</p>
 	 	Una volta digitato &quot;dialog&quot; o &quot;Xdialog&quot; dovrete scrivere
il nome del box che avete scelto, pi&ugrave; i suoi parametri specifici. <br>
<br>
Il box &quot;yesno&quot; (si - no) ammette tre variabili. Quella &lt;heigh&gt;
(altezza) e &lt;width&gt; (larghezza) possono essere settate a zero se si vuole
che la dimensione del box sia scelta automaticamente a seconda dello spazio che
sar&agrave; occupato dal testo al suo interno.<b> </b>L'esito viene restituito
come &quot;exit status&quot; nella variabile "$?" dello script. Se vengono restituiti
anche altri esiti come ad esempio i nomi delle opzioni selezionate, allora verranno
mostrati come standard error. Gli Standard error normalmente son stampati a schermo
ma possono essere rediretti con "&gt;2".<br>
     <br>
Un esempio semplice ma efficace.
<A NAME="267lfindex3">&nbsp;</A>
<H2>Un esempio pratico</H2>

     Creiamo adesso una applicazione in cui Xdialog/dialog forniscono un qualche
vantaggio su un normale script per shell: un menu in cui si possa selezionare
tra differenti ISP (Internet Service Providers) quello con cui si vuole iniziare
la connessione ad Internet. Questo script richiede, per poter funzionare, lo script
&quot;ppp-on/ppp-off&quot; descritto nell'articolo del marzo 2001 chiamato <a href="../../March2001/article192.shtml">
Usare diversi ISP per il vostro accesso ad Internet</a>. Lo script si chiama <a href="../../common/src/article267/pppdialout.txt">pppdialout</a>
e mostra diversi menu a seconda che si sia o meno connessi. <!-- translators: please do _not_ translate this script -->
<pre>
#!/bin/sh
#
#DIALOG=Xdialog
DIALOG=dialog
#
# name of your default isp:
defaultisp=maxnet
#
error()
{
    echo "$1"
    exit 2
}
help()
{
  cat &lt;&lt;HELP
pppdialout -- select an ISP and dial out.
All available ISPs must have a config file in /etc/ppp/peers

pppdialout executes the ppp-on/ppp-off scripts as described
in http://linuxfocus.org/English/March2001/article192.shtml

pppdialout, copyright gpl, http://linuxfocus.org/English/November2002
HELP
  exit 0
}

# parse command line:
while [ -n "$1" ]; do
case $1 in
    -h) help;shift 1;; # function help is called
    --) shift;break;; # end of options
    -*) echo "error: no such option $1. -h for help";exit 1;;
    *)  break;;
esac
done

tempfile=/tmp/pppdialout.$$
trap "rm -f $tempfile" 1 2 5 15

# check if we have a ppp network interface
if /sbin/ifconfig | grep '^ppp' &gt; /dev/null; then
    # we are already online
    $DIALOG --title "go offline" --yesno "Click YES to \
                     terminate the ppp connection" 0 0
    rval="$?"
    clear
    if [ "$rval" = "0" ]; then
        echo "running /etc/ppp/scripts/ppp-off ..."
        /etc/ppp/scripts/ppp-off
    fi
else
    # no ppp connection found, go online
    # get the names of all available ISP by listing /etc/ppp/peers
    for f in `ls /etc/ppp/peers`; do
        if [ -f "/etc/ppp/peers/$f" ]; then
            isplist="$isplist $f =="
        fi
    done
    [ -z "$isplist" ]&amp;&amp;error "No isp def found in /etc/ppp/peers"
    #
    $DIALOG --default-item "$defaultisp" --title "pppdialout"  \
         --menu "Please select one of\
    the following ISPs for dialout" 0 0 0 $isplist 2&gt; $tempfile
    rval="$?" # return status, isp name will be in $tempfile
    clear
    if [ "$rval" = "0" ]; then
        isp=`cat $tempfile`
        echo "running /etc/ppp/scripts/ppp-on $isp..."
        /etc/ppp/scripts/ppp-on "$isp"
    else
        echo "Cancel..."
    fi
    rm -f $tempfile
fi
# end of pppdialout
</pre>


<p><b>Come funziona lo script:</b><br>
  All'inizio definisce qualche funzione, errori ed help e poi controlla gli argomenti
  da linea di comando e viene definito un nome per il file temporaneo (/tmp/pppdialout.$$).
  $$ &egrave; il nome del processo corrente e consiste in un numero unico per
  ogni computer. L'espressione &quot;trap&quot; &egrave; eseguita se il programma
  viene chiuso in modo anomalo (ad esepio se l'utente clicca ctrl-c) a cancella
  il file temporaneo. Dopo controlla se siamo ancora in linea o meno (comando:
  /sbin/ifconfig | grep '^ppp'). Se siamo ancora in linea allora apre una yesno-box,
  come quella che abbiamo gi&agrave; visto prima, e chiede all'utente se vuol
  continuare offline. Se non siamo pi&ugrave; online si apre la finestra-menu.
  Qui abbiamo la lista di tutti gli ISP disponibili contenuti nel file /etc/ppp/peers
  (ls /etc/ppp/peers). La sintassi del menu box &egrave;:</p>
<p class="code">dialog --menu "text" &lt;height&gt;     &lt;width&gt; &lt;menu
height&gt; &lt;tag1&gt;     &lt;description&gt; ...</p>
     I parametri&lt;height&gt;, &lt;width&gt; e &lt;menu height&gt; vengono nuovamente
settati a zero (in modo da avere un dimensionamento automatico) e quindi il programma
aspetta che vengano immessi due parametri (&lt;tag1&gt; &lt;description&gt;).
Non forniremo una descrizione dettagliata, perci&ograve; per qualcuno potrebbero
essere discorsi di difficile comprensione. I dati nella variabile isplist dovrebbero
risultare qualcosa del genere:
<p class="code">isp1 == isp2 == isp3 ==</p>
     Il risultato della scelta fatta dall'utente viene stampata da (X)dialog sullo
standard error. Il comando di shell "2&gt; $tmpfile" lo scrive nel tmpfile. Il
menu box offre anche la possibilit&agrave; di cancellare. Quindi dobbiamo controllare
$? (exit status) per capire quale pulsante &egrave; stato premuto. <br>
     <br>
Ok, basta teoria. Qui vediamo come dovrebbe sembrare il tutto. <br>
<br>

<center>
  ... con una bella GTK GUI con Xdialog:<br>
<br>
      <img src="../../common/images/article267/xdialog_1.gif"
      width="292" height="167" alt="[pppdialout with xdialog]">
<br>
      <img src="../../common/images/article267/xdialog_2.gif"
      width="274" height="95" alt="[pppdialout with xdialog]">
<br>
<br>
  ... con la finestra di dialogo basata sulle curses nel terminale:<br>
<br>
      <img src="../../common/images/article267/dialog_1.gif" width=
      "503" height="353" alt="[pppdialout with dialog]">
<br>
      <img src="../../common/images/article267/dialog_2.gif" width=
      "503" height="353" alt="[pppdialout with dialog]">
<br>
       <br>
     </center>

<A NAME="267lfindex4">&nbsp;</A>
<H2>Pi&ugrave; applicazioni </H2>

     Abbiamo un'altro programmino pronto per voi. Si chiama mktgz ed utilizza
la checklist box di Xdialog. La finestra di dialogo per terminale non ha una checklist,
perci&ograve; mktgz funziona solo con Xdialog. Potete usare mktgz per creare pacchetti
tar.gz.
<p class="code">mktgz yourpackage .</p>
     Questo comando mostra tutti i file nella directory corrente (".") e potete
selezionarna altre da includere nel vostro pacchetto vostropacchetto.tar.gz. Potete
scaricare <a href="../../common/src/article267/mktgz.txt"> qui (mktgz.txt)</a>
mktgz. Non ci addentreremo nelle linee di codice perch&egrave; quello che avete
letto qui dovrebbe bastarvi per capire da soli il contenuto di questo script.
<br>
   <br>
Xdialog e dialog hanno una directory chiamata "samples" dove troverete molti pi&ugrave;
esempi (Redhat 7.3 li raccoglie sotto la cartella /usr/share/doc/Xdialog-2.0.5/samples).
Considerate, tuttavia, che alcune samples non son delle mere applicazioni demo
ma eseguono dei compiti ben precisi.
<A NAME="267lfindex5">&nbsp;</A>
<H2>Conclusioni</H2>

      Xdialog e dialog offrono un numero consistente di dialog boxes. Non tutte
queste finestre di dialogo son sempre applicabili a qualsiasi script di shell.
La shell stessa costituisce un &quot;ambiente&quot; molto versatile e potente.
Completare un percorso ad un file pu&ograve; essere molto pi&ugrave; conveniente
e veloce in shell con il tasto TAB, piuttosto che cercare quello stesso file cliccando
nelle cartelle contenute in una finestra grafica. In particolare la possibilit&agrave;
offerta da pipeline e dalla combinazione dei comandi rende la shell uno strumento
insuperabile. Qualcosa tipo:
<pre>grep -i "somestring" file.txt | sort | uniq | wc -l<br></pre>
<small>(per chi non avesse abbastanza esperienza con le shell UNIX: Questo comando
conta quante linee del file file.txt contengono il termine &quot;somestring&quot;)</small><br>
Tale articolazione di pipeline &egrave; possibile poich&egrave; tutti i comandi
son controllati dagli argomenti di linea di comando. In altre parole: chiedono
in continuazione all'utente se voglia continuare.<br>
Comunque ci son applicazioni dove le finestre di dialogo sono realmente utili.
Xdialog e dialog son molto facili da usare ma certamente non quanto una applicazione
grafica. Essi colmano il dislivello tra uno script per shell ASCII e una applicazione
grafica.<br>

<A NAME="267lfindex6">&nbsp;</A>
<H2>Dove trovare Xdialog e dialog?</H2>

     I CD della vostra distribuzione Linux sono il primo posto dove dovreste cercare
dialog e Xdialog. Potrebbe anche darsi che siano gi&agrave; installati sul vostro
computer (chiedete al vostro computer: ad esempio rpm -qil Xdialog, dpkg -L Xdialog).
La homepage di Xdialog &egrave;:<br>
     <a href="http://www.chez.com/godefroy/">http://www.chez.com/godefroy/</a><br>
e dialog si trova su<br>
     <a href="http://hightek.org/dialog/">http://hightek.org/dialog/</a><br>
Nel caso in cui non li abbiate trovati installati o nei vostri CD potrete anche
cercarli nei loro siti ufficiali.
<A NAME="267lfindex7">&nbsp;</A>
<H2>Riferimenti</H2>


<ul>
       <li>Xdialog: <a href="http://www.chez.com/godefroy/">http://www.chez.com/godefroy/</a><br>
        dialog: <a href="http://hightek.org/dialog/">http://hightek.org/dialog/</a><br>
        </li>

  <li>Xdialog documentazione: <a href="http://www.chez.com/godefroy/doc/index.html">
    http://www.chez.com/godefroy/doc/index.html</a><br>
        </li>

  <li> Altri articoli di LinuxFocus:<br>

    <ul>
       <li><a href="../../March2001/article192.shtml">
     Using different ISPs for your Internet access</a><br>
      </li>
              <li><a href="../../September2001/article216.shtml">
       Shell Programming</a><br>
      </li>

    </ul>
 </li>
        <li><a href="../../common/src/article267/pppdialout.txt">
pppdialout       script</a></li>
        <li><a href="../../common/src/article267/mktgz.txt">
mktgz       script</a></li>

</ul>
     <!-- vim: set sw=2 ts=2 et tw=74: -->



<!-- 2pdaIgnoreStart -->
<A NAME="talkback">&nbsp;</a>
<h2>Discussioni su quest'articolo</h2>
ogni articolo possiede una sua pagina di discussione, da questa pagina puoi inviare un commento o leggere quelli degli altri lettori:
<center>
<table border="0"  CELLSPACING="2" CELLPADDING="1" summary="tb-button-outerpart">
 <tr BGCOLOR="#C2C2C2"><td align=center>
  <table border="3"  CELLSPACING="2" CELLPADDING="1" summary="tb-button">
   <tr BGCOLOR="#C2C2C2"><td align=center>
    <A href="http://cgi.linuxfocus.org/cgi-bin/lftalkback?anum=267&amp;lang=en"><b>&nbsp;pagina di discussione&nbsp;</b></a>
   </td></tr></table>
</td></tr></table>
</center>

<HR size="2" noshade>
<!-- ARTICLE FOOT -->
<CENTER><TABLE WIDTH="98%" summary="footer">
<TR><TD ALIGN=CENTER BGCOLOR="#9999AA" WIDTH="50%">
<A HREF="../../common/lfteam.html">Webpages maintained by the LinuxFocus Editor team</A>
<BR><FONT COLOR="#FFFFFF">&copy;  Katja and Guido Socher, <a href="../../common/copy.html">FDL</a> <BR><a href="http://www.linuxfocus.org">LinuxFocus.org</a></FONT>
<BR><a href="http://cgi.linuxfocus.org/cgi-bin/lfcomment?lang=it&amp;article=article267.shtml" target="_TOP">Click here to report a fault or send a comment to LinuxFocus</A><BR></TD>
<TD BGCOLOR="#9999AA">
<!-- TRANSLATION INFO -->
<font size=2>Translation information:</font>
<TABLE summary="translators">
  <tr><td><font size="2">en --&gt; -- :  Katja and Guido Socher <small>&lt;katja(at)linuxfocusorg, %20guido(at)linuxfocus.org&gt;</small></font></td></tr>
  <tr><td><font size="2">en --&gt; it: Kikko &lt;kikko(at)linuxfocus.org&gt;</font></td></tr>
</TABLE>
</TD>
</TR></TABLE></CENTER>
<p><font size=1>2002-12-27, generated by lfparser version 2.29</font></p>
<!-- 2pdaIgnoreStop -->
</BODY>
</HTML>