2015-07-22 1 views
1

J'ai un script shell exécutant un script python. Dans le cas d'un code de sortie différent de zéro, je voudrais quitter le script csh actuel. L'exemple de code ci-dessous dans le script csh ne semble pas fonctionner.Quitter le script csh basé sur le code d'erreur précédent

./pythonfile.py 
if $? != 0 then 
    echo 'Something went wrong!' $? 
    exit 1 
endif 

Répondre

2

La plupart des versions csh sont en fait tcsh. Dans tcsh, les deux$? et $status devraient fonctionner. En regardant le fichier Fixes, il semble que cela a été le cas depuis 1992 ...

Le problème dans votre code, est que l'instruction if remplace la valeur des variables $status/$?; vous devez utiliser une variable intermédiaire pour stocker le code de sortie.

false 
set code = $? 
if $code != 0 then 
    echo 'Something went wrong! ' $code 
    exit 1 
endif