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. Ahhhhhh, okay tout compris !

    Merci beaucoup pour votre aide ;-))
    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. 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. 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