Test d'égalité sur return
Résolu
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour, bonsoir,
Voici ma fonction :
Le souci est que je n'arrive jamais à valider la condition... même si "$?" vaut deux cela ne fonctionne pas...
J'aimerais bien un coup de main :-)
Voici ma fonction :
_getstruct() { if [ ! -e "$1" ]; then return 0 elif [ -f "$1" ]; then return 1 elif [ -d "$1" ]; then return 2 else return 0 fi } FIRST=$(_getstruct "/home/sacha") echo $? if [ $? -eq 2 ] ;then echo "this is a dir";fi
Le souci est que je n'arrive jamais à valider la condition... même si "$?" vaut deux cela ne fonctionne pas...
J'aimerais bien un coup de main :-)
A voir également:
- Test d'égalité sur return
- Test performance pc - Guide
- Test disque dur - Télécharger - Informations & Diagnostic
- Test steam deck oled - Guide
- Test composant pc - Guide
- Test batterie pc - Guide
2 réponses
Salut,
C'est normal, le test est fait sur le code retour de la commande "echo $?" et non sur celui de la fonction.
Pour ça il faut stocker ton code retour :
C'est normal, le test est fait sur le code retour de la commande "echo $?" et non sur celui de la fonction.
Pour ça il faut stocker ton code retour :
FIRST=$(_getstruct "$1") retval=$? echo ${retval} if [ "${retval}" -eq 2 ] ;then echo "this is a dir";fi
zipe31
Messages postés
36402
Date d'inscription
Statut
Contributeur
Dernière intervention
6 430
Ou tout simplement commenter le echo :