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
    } 

    ;-))
    1. Salut Zipe,

      Marche pas déjà essayé :P
    2. Contributeur
      Est-ce que la condition est avérée au moins ? Autrement dit est-ce que le "/home/sacha" n'existe pas ?
    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
  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


    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...
      1. Contributeur
        Affiche ton script en entier s'il te plaît, merci ;-)
      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?
    2. Ahhhhhh, okay tout compris !

      Merci beaucoup pour votre aide ;-))