Sortir d'une fonction en shell

Résolu
Utilisateur anonyme -  
 Utilisateur anonyme -
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. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    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. Utilisateur anonyme
       
      Salut Zipe,

      Marche pas déjà essayé :P
      0
    2. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Est-ce que la condition est avérée au moins ? Autrement dit est-ce que le "/home/sacha" n'existe pas ?
      0
    3. Utilisateur anonyme
       
      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. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    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
  3. Utilisateur anonyme
     
    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. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Affiche ton script en entier s'il te plaît, merci ;-)
      0
    2. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
       
      # 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
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. Utilisateur anonyme
     
    Ahhhhhh, okay tout compris !

    Merci beaucoup pour votre aide ;-))
    0