Forum Programmation.shell && et ||

Posté par  .
Étiquettes : aucune
0
4
mar.
2006
bonjour,
si j'ai bien compris ce que je connais du shell, ça:

commande;
if [ $?=0 ]
then
commande....

ça reviens à
commande && commande

commande;
if [ $?=1 ]
then
commande ....

reviens à
commande || commande

donc la question est .... :
est-il possible de faire ça:
commande;
if [ $?=0 ]
then
gnagnagna
elif [ $?=1 ]
then
gnagnagna
...

avec && et || ??
est-ce qu'on peux rendre simultané ou plutôt parallèle && et || ?
merci
  • # Oui

    Posté par  (site web personnel) . Évalué à 5.

    Le plus courant c'est commande1 && commande2 || commande3 mais si commande2 foire ca execute aussi commande3 donc plutot commande1 && (commande2; true) || commande3.
  • # Le code d'erreur peut être différent de 1

    Posté par  . Évalué à 3.

    La convention est qu'un programme ait un code de sortie de:
    - 0 s'il se termine bien
    - différent de 0 en cas d'erreur, le code utilisé sert à différencier les causes d'erreur.

    Ton test if [ $? = 1 ] ne teste donc pas tous les cas de sortie en erreur. Il vaudrait mieux faire if [ $? != 0 ].
    • [^] # Re: Le code d'erreur peut être différent de 1

      Posté par  . Évalué à 1.

      merci c'est cool!

      pour if [ $? = 1 ] c'est vrai j'ai pas fait la différence entre les différents codes d'erreurs mais y'a quoi 1 et 2 c'est tout? (tant qu'à faire, ça correspond à quelles erreurs ?)
      • [^] # Re: Le code d'erreur peut être différent de 1

        Posté par  . Évalué à 3.

        ben ca depends du programme,
        certains peuvent en renvoyer une dixaine... (pour signifier ce qui ne va pas)
        en general on trouve ces info dans la doc du logiciel en question (man ?)
        • [^] # Re: Le code d'erreur peut être différent de 1

          Posté par  . Évalué à 1.

          ok. je pensais qu'il y avait peut-être une convention pour les codes d'erreurs...

          et dans un script shell, on spécifie les codes d'erreurs comme ça :
          exit n ;
          (ou n différent de 0)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.