martedì 24 maggio 2011

Script per shell - funzioni...

Se nella scrittura di uno script vi accorgete di usare in più punti lo stesso set di istruzioni già scritto in precedente è arrivato il momento di scrivere una funzione e richiamare la stessa laddove occorre! Il codice sotteso a una funzione viene richiamato nello script facendo riferimento al nome dato alla funzione. La sintassi da seguire è la seguente:
function nome_funzione() {
...
}
La definizione di una funzione va fatta all'inizio dello script o comunque prima del suo impiego nello script. Per una funzione le variabili $1, $2, etc... non identificano gli argomenti passati allo script ma quelli passati alla funzione stessa! Una funzione ritorna al chiamante il suo codice di stato attraverso l'istruzione return (se presente). Una funzione, infine, può chiamare al suo interno altre funzioni, come nell'esempio:
#!/bin/bash
#Uso di funzioni...

range_time=4

function ping() {
echo "ping..."
wait_time=`expr $RANDOM % $range_time`
sleep $wait_time
pong
}

function pong() {
echo "pong..."
wait_time=`expr $RANDOM % $range_time`
sleep $wait_time
ping
}

#Pronti per il loop...
ping
Con $RANDOM viene generato un numero intero casuale, variabile da 0 a 32767. Nello script, usando il valore generato da $RANDOM come argomento di sleep, viene limitato l'intervallo attraverso l'operatore % (che ne fissa i valori nell'intervallo 0,$range_time-1).

Nessun commento:

Posta un commento