Sophie

Sophie

distrib > Mandriva > 9.1 > i586 > by-pkgid > f1098342ec4a2b28475e34123ce17201 > files > 68

howto-html-it-9.1-0.5mdk.noarch.rpm

<!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: Varie</TITLE>
 <LINK HREF="Bash-Prog-Intro-HOWTO-11.html" REL=next>
 <LINK HREF="Bash-Prog-Intro-HOWTO-9.html" REL=previous>
 <LINK HREF="Bash-Prog-Intro-HOWTO.html#toc10" REL=contents>
</HEAD>
<BODY>
<A HREF="Bash-Prog-Intro-HOWTO-11.html">Avanti</A>
<A HREF="Bash-Prog-Intro-HOWTO-9.html">Indietro</A>
<A HREF="Bash-Prog-Intro-HOWTO.html#toc10">Indice</A>
<HR>
<H2><A NAME="s10">10. Varie</A>         </H2>

<H2><A NAME="ss10.1">10.1 Leggere l'input dell'utente con read</A>
       </H2>

<P> In molte occasioni potresti voler richiedere l'utente un certo input,
Ci sono diversi modi per raggiungere tale scopo. Eccone uno:
<BLOCKQUOTE><CODE>
<PRE>
                #!/bin/bash
                echo Please, enter your name
                read NAME
                echo "Hi $NAME!"
        
</PRE>
</CODE></BLOCKQUOTE>
<P> Come variante, puoi ottenere valori multipli con read, questo esempio
dovrebbe chiarire il concetto.
<BLOCKQUOTE><CODE>
<PRE>
                #!/bin/bash
                echo Please, enter your firstname and lastname
                read FN LN 
                echo "Hi! $LN, $FN !"
        
</PRE>
</CODE></BLOCKQUOTE>
<P>
<H2><A NAME="ss10.2">10.2 Valutazione aritmetica</A>
         </H2>

<P> Dalla riga di comando (o da una shell) prova questo:
<P> echo 1 + 1
<P> Se ti aspettavi di vedere '2' sarai dispiaciuto. Che fare se vuoi che
BASH processi dei numeri che hai? Ecco la soluzione:
<P> echo $((1+1))
<P> Questo produrr&agrave; un output pi&ugrave; 'logico'. Questo per valutare espressione
aritmetica. Puoi ottenere lo stesso risultato con qualcosa come:
<P> echo $[1+1]
<P>
<P> Se hai bisogno di usare le frazioni, o operazioni pi&ugrave; complesse ("more
math", ndt), o semplicemente perch&eacute; ne hai voglia, puoi utilizzare bc per 
processare le espressioni aritmetiche.
<P> Se eseguissi "echo $[3/4]" al prompt dei comandi, mi restituirebbe 0 
poich&eacute; bash usa solamente interi in fase di risposta. Eseguendo
"echo 3/4|bc -l", ti restituirebbe un pi&ugrave; adeguato 0.75.
<H2><A NAME="ss10.3">10.3 Trovare bash         </A>
</H2>

<P> Da un messaggio di mike (vedi Grazie a) 
<P> tu usi sempre #!/bin/bash .. potresti fornire un esempio di come
<P> scoprire dove si trovi bash.
<P> `locate bash' &egrave; preferibile, ma non tutte le macchine hanno locate.
<P> `find ./ -name bash' dalla root directory (quella indicata con /,
<P> ndt) funziona, in genere.
<P> Suggerimenti su dove cercare:
<P>         ls -l /bin/bash
<P>         ls -l /sbin/bash
<P>         ls -l /usr/local/bin/bash
<P>         ls -l /usr/bin/bash
<P>         ls -l /usr/sbin/bash
<P>         ls -l /usr/local/sbin/bash
<P> (non me vengono in mente altri al momento. (l'ho trovata nella
<P> maggior parte di questi posti in sistemi diversi).
<P> Puoi provare anche 'which bash'.
<H2><A NAME="ss10.4">10.4 Prendere il valore di ritorno da un programma</A>
        </H2>

<P> Nella bash, il valore di ritorno di un programma &egrave; memorizzato in
variabile speciale chiamata $?.
<P> Questo mostra come catturare il valore restituito da un programma; faccio
conto che la directory <I>dada</I> non esista. (Anche questo &egrave; stato suggerito
da mike)
<BLOCKQUOTE><CODE>
<PRE>
        #!/bin/bash
        cd /dada &amp;> /dev/null
        echo rv: $?
        cd $(pwd) &amp;> /dev/null
        echo rv: $?
        
</PRE>
 
</CODE></BLOCKQUOTE>
<H2><A NAME="ss10.5">10.5 Catturare l'output di un programma          </A>
</H2>

<P> Questo piccolo script mostra tutte le tabelle da tutti i database
(assumendo che tu abbia MySQL installato). 
Inoltre, considera la possibilit&agrave; di modificare il comando 'mysql' per
aggiungere uno username ed una password validi.
<BLOCKQUOTE><CODE>
<PRE>
        #!/bin/bash
        DBS=`mysql -uroot  -e"show databases"`
        for b in $DBS ;
        do
                mysql -uroot -e"show tables from $b"
        done
        
</PRE>
</CODE></BLOCKQUOTE>
<H2><A NAME="ss10.6">10.6 File a sorgenti multipli</A>
        </H2>

<P> Puoi usare pi&ugrave; di un file per volte tramite il comando source. 
<P> __TO-DO__
<HR>
<A HREF="Bash-Prog-Intro-HOWTO-11.html">Avanti</A>
<A HREF="Bash-Prog-Intro-HOWTO-9.html">Indietro</A>
<A HREF="Bash-Prog-Intro-HOWTO.html#toc10">Indice</A>
</BODY>
</HTML>