2010-10-19 41 views
2

S'il vous plaît résister à l'envie de me dire de ne pas utiliser c-shell. Je suis en train d'écrire un script c-shell et j'ai besoin d'exécuter un diff entre deux fichiers (générés dans le script). Comment puis-je lancer diff et renvoyer son statut (en cas d'échec, retourner 1, sinon 0)?Échec si diff est trouvé (c-shell)

Répondre

3

Dans C shell, vous pouvez utiliser la variable $status pour obtenir le statut de sortie de la commande.

% echo 'hi' > foo 
% echo 'ho' > bar 
% diff foo foo 
% echo $status 
0 
% diff foo bar > /dev/null 
% echo $status 
1 

Dans un script, vous pouvez faire quelque chose comme:

set f1=foo 
set f2=bar 
diff $f1 $f2 > /dev/null     
if ($status == 0) then 
     echo 'no diff' 
else 
     echo 'diff' 
endif 
+0

C'est décent. N'est-ce pas comme prévu pour vous? –