Posté par totof2000 .
En réponse au message Commande if à écrire.
Évalué à 2.
Dernière modification le 28 décembre 2015 à 11:50.
Hello.
Quand tu exécutes une commande en shell, le système te retourne un code retour. La convention sous Unix veut qu'un processus qui a réussi retourne le code 0. Ce code retour est accessible via la variable d'environnement $?
Exemple :
$ mkdir toto
$ cd toto
$ ls
$ echo $?
0
Quand une commande échoue, elle retourne un code différent de 0 (le code retour est en général documenté dans les pages man). Exemple : je vais lister un fichier/repertoire qui n'existe pas :
ls ./titi
ls: impossible d'accéder à ./titi: Aucun fichier ou dossier de ce type
echo $?
2
En ce qui concerne les tests avec if, voir ce cours qui est assez bien fait. En testant le code de retour de la variable d'environnement $?, tu devrais pouvoir t'en sortir.
Ah, petit détail : j'ai pour habitude dans mes scripts de sauvegarder le code retour de la commande à tester juste après que celle-ci ait été exécuté. En effet, la variable $? est mise à jour à chaque exécution de commande. en gros, je fais un truc du genre :
ls ./titi
ret=$?if[$ret !=0]then
...
Sinon, il faut tester de suite la variable $? et être sur que personne n'ajoutera de commande entre la commande que tu veux tester et le test if.
[^] # Re: exercice d'entrainement
Posté par totof2000 . En réponse au message Commande if à écrire. Évalué à 2. Dernière modification le 28 décembre 2015 à 11:50.
Hello.
Quand tu exécutes une commande en shell, le système te retourne un code retour. La convention sous Unix veut qu'un processus qui a réussi retourne le code 0. Ce code retour est accessible via la variable d'environnement $?
Exemple :
Quand une commande échoue, elle retourne un code différent de 0 (le code retour est en général documenté dans les pages man). Exemple : je vais lister un fichier/repertoire qui n'existe pas :
En ce qui concerne les tests avec if, voir ce cours qui est assez bien fait. En testant le code de retour de la variable d'environnement $?, tu devrais pouvoir t'en sortir.
Ah, petit détail : j'ai pour habitude dans mes scripts de sauvegarder le code retour de la commande à tester juste après que celle-ci ait été exécuté. En effet, la variable $? est mise à jour à chaque exécution de commande. en gros, je fais un truc du genre :
Sinon, il faut tester de suite la variable $? et être sur que personne n'ajoutera de commande entre la commande que tu veux tester et le test if.