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

Voici ce que j'essaie de réaliser:

function f1() {
  return 0
}

function f2() {
  return 0
}

if [[ f1 && f2 ]]; then
  echo "success"
else
  echo "fail"
fi
29
demandé sur chickeninabiscuit 2011-11-14 09:51:49

2 réponses

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
58
répondu Ignacio Vazquez-Abrams 2011-11-14 05:59:35

Oui. Vous pouvez le faire en vérifiant un retour au moyen d'echo (bien que ce ne soit pas un retour strict):

if [[ "$(f1)" == "whatever" ]] œuvres

Voir cette page pour plus d'informations sur les valeurs de retour de fonction. Il y a aussi quelques bons commentaires qui parlent spécifiquement des déclarations if.

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

3
répondu evan 2011-11-14 06:05:05