PDA

Visualizza la versione completa : script bash controllo esecuzione comando


maurelio79
27-01-2008, 18:08
Ciao a tutti, sto cercando di fare uno script che converta file video da avi a mpeg e viceversa.

Quello che non riesco a fare vedere se il comando avvenuto con successo oppure no e quindi visualizzare un messaggio: vi posto lo script


comando=`xterm -e ffmpeg -i $TYPE $WORKDIR/$output.avi`
if [ "$comando" != "0" ]; then
kdialog --msgbox "Errore"
else
kdialog --msgbox "Lavoro eseguito correttamente"
fi

Il risultato sempre "Errore".

Che io sappia un comando se viene eseguito correttamente ritorna 0.

Dove sbaglio? Chiedo scusa ma la mia competenza abbastanza limitata.

Ciao a tutti.

hfish
27-01-2008, 18:18
con quel codice controlli che il valore della variabili comando sia != da 0, cosa vera, in quanto hai inizializzato la variabile comando con del codice...

maurelio79
27-01-2008, 18:28
Molte grazie per la risposta.

Capito. Come devo fare per capire se il comando stato eseguito correttamente?

Grazie.

mxa
27-01-2008, 18:44
direi che dopo averlo eseguito controlli che $? sia uguale a 0.
Potrei sbagliarmi per.

maurelio79
27-01-2008, 18:57
Provato, non va lo stesso.


if [ $? == 0 ]; then
kdialog --msgbox "Lavoro eseguito correttamente"
else
kdialog --msgbox "Errore"
fi

Mi restituisce sempre "Lavoro eseguito correttamente" , anche quando l'operazione non avviene per nulla.

hfish
27-01-2008, 19:15
Originariamente inviato da maurelio79
Provato, non va lo stesso.


if [ $? == 0 ]; then
kdialog --msgbox "Lavoro eseguito correttamente"
else
kdialog --msgbox "Errore"
fi

Mi restituisce sempre "Lavoro eseguito correttamente" , anche quando l'operazione non avviene per nulla.

prova a mettere il comando direttamente come condizione tra le quadre

maurelio79
27-01-2008, 20:43
if [ `xterm -e ffmpeg -i $TYPE $WORKDIR/$output.mpeg` ]; then
kdialog --msgbox "Lavoro eseguito correttamente\n$?"
else
kdialog --msgbox "Errore"
fi

In questo caso mi restituisce sempre "Errore"

Sto impazzendo......

Loading