Sortir d'une fonction en shell

Résolu/Fermé
Utilisateur anonyme - 9 déc. 2011 à 09:40
 Utilisateur anonyme - 9 déc. 2011 à 11:00
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


5 réponses

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
9 déc. 2011 à 09:42
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
Utilisateur anonyme
9 déc. 2011 à 09:49
Salut Zipe,

Marche pas déjà essayé :P
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
9 déc. 2011 à 09:51
Est-ce que la condition est avérée au moins ? Autrement dit est-ce que le "/home/sacha" n'existe pas ?
0
Utilisateur anonyme
9 déc. 2011 à 09:53
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
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
9 déc. 2011 à 09:52
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
9 déc. 2011 à 10:05
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
Utilisateur anonyme
9 déc. 2011 à 10:19
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
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
9 déc. 2011 à 10:24
Affiche ton script en entier s'il te plaît, merci ;-)
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
9 déc. 2011 à 10:26
# 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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
9 déc. 2011 à 11:00
Ahhhhhh, okay tout compris !

Merci beaucoup pour votre aide ;-))
0