2010-09-22 9 views
1
#!/bin/sh 
tar=$1 
if [ -f $tar ] 
then 
    tar xvf $tar 
else 
    exit 1 
fi 

... <more code> 

je besoin d'une conformation que le goudron est réellement passé avec succès, sinon annuler l'exécution du script.Comment vérifier si une commande shell exécutée correctement ou non?

L'extrait de fichier tar pourrait ne pas passer par parce

  • quelques problèmes avec tar commande
  • problèmes d'accès aux $tar

Do utilitaires Linux ont des valeurs de retour? Comment dois-je les utiliser ici?

Répondre

5

Vérifiez la variable $? après l'exécution d'une commande. Si tout est OK, il devrait être 0, positif autrement.

tar xvf $tar 
[ $? -ne 0 ] && exit 1 

Plus d'informations here.

+0

'$?' 'Ou $ &'? Aussi, où puis-je en savoir plus sur ces éléments de syntaxe ('$?' Etc)? – Moeb

+0

Désolé, '$?'. Merci pour l'indice. – eumiro

3

Ce

tar xvf "$tar" || exit 1 

ou cela (si vous voulez vérifier si le fichier vous-même existe)

[ -f "$tar" ] && tar xvf "$tar" || exit 1 
Questions connexes