Sortir d'une fonction en shell

Résolu
Bonjour à tous,

Je viens poser une question sûrement très simple.

Comme sortir d'une fonction telle que :

$HOME=/home/sacha

fonction() {
if [ -e $HOME ];then
echo $HOME existe !
else
echo $HOME n'existe pas, on va donc le créer
-> Sortir de la fonction, et aller dans la fonction create
fi
}

(Plusieurs fonctions)

create() {
mkdir $HOME
if [ -e $HOME ]; then
echo création réussie !
else
echo dommage !
fi
}


Voilà, ce n'est qu'un exemple pour illustrer le thème, mais en gros c'est ce que je cherche à faire.
Bien entendu je ne cherche pas à appeler une fonction (out en étant dans la même), mais bien à sortir de celle-ci.

Merci à vous :-)

Bonne journée



--
♪♪ Saachaa ♫
Contributeur CCM

5 réponses

  1. Contributeur
    Salut,

    En l'appelant tout simplement :
    fonction() {
    if [ -e $HOME ];then
    echo $HOME existe !
    else
    echo $HOME n'existe pas, on va donc le créer
    create
    fi
    } 

    ;-))
    0
    1. Salut Zipe,

      Marche pas déjà essayé :P
      0
    2. Contributeur
      Est-ce que la condition est avérée au moins ? Autrement dit est-ce que le "/home/sacha" n'existe pas ?
      0
    3. Ah oui oui, mais ce n'est qu'un exemple.

      Remplacer create par exit, et la fenêtre se ferme !

      Sinon, en laissant create, la fonction continue sans rien faire
      0
  2. Modérateur
    Re,

    La définition de la fonction doit précéder son premier appel. Il n'existe pas de méthode pour « déclarer » la fonction, comme en C par exemple. - Même source.

    J'ai simplifié l'exemple

    lami20j@debian-acer:~$ cat func.sh 
    #!/bin/bash
    
    f1 ()
    {
      echo "Je suis f1"
      f2
    }
    
    f2 ()
    {
      echo "Je suis f2"
    }
    
    f1  
    lami20j@debian-acer:~$ sh func.sh 
    Je suis f1
    Je suis f2


    0
    1. Salut,

      Je suis en train de regarder pour return, merci pour le lien.

      Je suis en train de regarder pour appeler la fonction, mais j'ai du mal...
      0
      1. Contributeur
        Affiche ton script en entier s'il te plaît, merci ;-)
        0
      2. Modérateur
        # Ici je définis la fonction f1
        
        f1 ()
        {
          echo "Je suis f1"
          f2 # ici j'essaie un appel à f2 - mais f1 ne connais pas encore f2
        }
        
        # ici je défini la fonction f2
        
        f2 ()
        {
          echo "Je suis f2"
        }
        
        f1  # ici f1 reconnaît f2


        Tu comprends maintenant?
        0
    2. Ahhhhhh, okay tout compris !

      Merci beaucoup pour votre aide ;-))
      0