PDA

View Full Version : [bash] script di shell


gepeppe
09-03-2008, 14:20
Salve, ho fatto un piccolo script di shell, che ogni volta che viene avviato, mi fa un backup di una cartella, quindi uso i comandi cp, rm, mkdir. Ecco un esempio:

#!/bin/sh

#Elimino il contenuto della cartella
rm -r /home/peppe/backup

#risalvo il tutto
mkdir /home/peppe/backup
cp -r /home/peppe/A/* /home/peppe/backup

Ora come faccio a far uscire un messaggio di errore se uno dei 3 comandi non ha dato esito positivo (es se la cartella nn esiste, o la copia nn č andata abuon fine)???

grazie

thehuge
09-03-2008, 17:28
Puoi usare la variabile $? che contiene in ogni momento il codice di errore dell'ultimo comando eseguito sulla shell corrente (se il comando č andato a buon fine esso contiene il valore 0).

Nel tuo esempio io farei cosė:
#!/bin/sh
#Elimino il contenuto della cartella
rm -r /home/peppe/backup
err=$?
if ! [[ $err -eq 0 ]]; then
echo "ERRORE $err" 1>&2
return $err
fi

#risalvo il tutto
mkdir /home/peppe/backup
err=$?
if ! [[ $err -eq 0 ]]; then
echo "ERRORE $err" 1>&2
return $err
fi

cp -r /home/peppe/A/* /home/peppe/backup
err=$?
if ! [[ $err -eq 0 ]]; then
echo "ERRORE $err" 1>&2
return $err
fi