41 votes

Dans bash, pouvez-vous utiliser un appel de fonction comme condition dans une instruction if ?

voici ce que j'essaye d'atteindre :

 function f1() {
  return 0
}

function f2() {
  return 0
}

if [[ f1 && f2 ]]; then
  echo "success"
else
  echo "fail"
fi

78voto

Ignacio Vazquez-Abrams Points 312628

Vous n'utilisez pas [[ (ou [ ) lors de l'exécution d'une commande et de la vérification du code de résultat.

 if f1 && f2 ; then
  echo "success"
else
  echo "fail"
fi

5voto

evan Points 4825

Oui. Vous pouvez le faire en vérifiant par rapport à un retour au moyen d'écho (bien que pas un retour strict):

if [[ "$(f1)" == "whatever" ]] fonctionne

Consultez cette page pour en savoir plus sur les valeurs de retour des fonctions. Il contient également quelques bons commentaires concernant spécifiquement les déclarations if.

http://www.linuxjournal.com/content/return-values-bash-functions

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X