Avanti Indietro Indice

10. Varie

10.1 Leggere l'input dell'utente con read

In molte occasioni potresti voler richiedere l'utente un certo input, Ci sono diversi modi per raggiungere tale scopo. Eccone uno:

                #!/bin/bash
                echo Please, enter your name
                read NAME
                echo "Hi $NAME!"
        

Come variante, puoi ottenere valori multipli con read, questo esempio dovrebbe chiarire il concetto.

                #!/bin/bash
                echo Please, enter your firstname and lastname
                read FN LN 
                echo "Hi! $LN, $FN !"
        

10.2 Valutazione aritmetica

Dalla riga di comando (o da una shell) prova questo:

echo 1 + 1

Se ti aspettavi di vedere '2' sarai dispiaciuto. Che fare se vuoi che BASH processi dei numeri che hai? Ecco la soluzione:

echo $((1+1))

Questo produrrà un output più 'logico'. Questo per valutare espressione aritmetica. Puoi ottenere lo stesso risultato con qualcosa come:

echo $[1+1]

Se hai bisogno di usare le frazioni, o operazioni più complesse ("more math", ndt), o semplicemente perché ne hai voglia, puoi utilizzare bc per processare le espressioni aritmetiche.

Se eseguissi "echo $[3/4]" al prompt dei comandi, mi restituirebbe 0 poiché bash usa solamente interi in fase di risposta. Eseguendo "echo 3/4|bc -l", ti restituirebbe un più adeguato 0.75.

10.3 Trovare bash

Da un messaggio di mike (vedi Grazie a)

tu usi sempre #!/bin/bash .. potresti fornire un esempio di come

scoprire dove si trovi bash.

`locate bash' è preferibile, ma non tutte le macchine hanno locate.

`find ./ -name bash' dalla root directory (quella indicata con /,

ndt) funziona, in genere.

Suggerimenti su dove cercare:

ls -l /bin/bash

ls -l /sbin/bash

ls -l /usr/local/bin/bash

ls -l /usr/bin/bash

ls -l /usr/sbin/bash

ls -l /usr/local/sbin/bash

(non me vengono in mente altri al momento. (l'ho trovata nella

maggior parte di questi posti in sistemi diversi).

Puoi provare anche 'which bash'.

10.4 Prendere il valore di ritorno da un programma

Nella bash, il valore di ritorno di un programma è memorizzato in variabile speciale chiamata $?.

Questo mostra come catturare il valore restituito da un programma; faccio conto che la directory dada non esista. (Anche questo è stato suggerito da mike)

        #!/bin/bash
        cd /dada &> /dev/null
        echo rv: $?
        cd $(pwd) &> /dev/null
        echo rv: $?
        

10.5 Catturare l'output di un programma

Questo piccolo script mostra tutte le tabelle da tutti i database (assumendo che tu abbia MySQL installato). Inoltre, considera la possibilità di modificare il comando 'mysql' per aggiungere uno username ed una password validi.

        #!/bin/bash
        DBS=`mysql -uroot  -e"show databases"`
        for b in $DBS ;
        do
                mysql -uroot -e"show tables from $b"
        done
        

10.6 File a sorgenti multipli

Puoi usare più di un file per volte tramite il comando source.

__TO-DO__


Avanti Indietro Indice