2015-12-24 4 views
1

Je ne suis pas vraiment familier avec TCSHTcsh Exécuter la commande si la commande a été exécutée

Je voudrais lancer un command2 si un command1 a été entré dans la coquille, quelque chose comme ceci:

if command1 then 
    echo "Command succeeded" 
    command2 
else 
    echo "Command failed" 
fi 

J'ai essayé ce code mais cela ne fonctionne pas. La deuxième étape serait de lire et d'imprimer dans un fichier une partie de variable que command1 a modifiée (en faisant une sorte d'historique seulement pour certaines variables).

+0

Je ne suis pas d'accord ... Je pense que d'essayer des choses et de voir ce qui se passe est une bonne façon d'apprendre une langue. Lire est utile, mais n'ayez pas peur d'essayer des choses et de voir ce qui se passe. Vous obtenez des idées et apprenez de cette façon. – DavidR

Répondre

0

Vous pouvez utiliser $? pour obtenir le code de sortie de la dernière commande.

#!/bin/tcsh 

# command below can fail or succeed 
command1 

if ($? == 0) then 
command2 
else 
echo "command1 failed" 
endif 
+0

Merci pour votre réponse, ma situation est, si commande1 est entré. comme vous avez écrit la commande1 s'exécutera quand même. Oublié de mentionner, je voudrais l'avoir dans mon cshrc.custom – cily

+0

OK, juste pour bien faire les choses. Voulez-vous exécuter command_2 au cas où quelqu'un exécuterait command_1? Peut-être que l'alias sera une solution ici? alias cmd 'command_1; command_2 ' – mko