Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1550 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [RESOLU] Pb dans une fonction pour retourner une chaine de caracteres

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[RESOLU] Pb dans une fonction pour retourner une chaine de caracteres

n°1042339
cosca14
Posté le 16-05-2008 à 10:14:14  profilanswer
 

Bonjour,  
 
Je réalise actuellement un script shell et j'ai un souci pour retourner une chaine de caractère à partir d'une fonction. En fait, j'ai créé une fonction permettant de vérifier la présence d'un fichier dans le répertoire courant. Si le fichier n'est pas présent, je redemande de saisir à nouveau le nom du fichier.  
 
Voici ma fonction :  
 
VERIF_PRESENCE_FICHIER()
{
 
        echo "Quel est le nom du fichier ? "
        read fichier
 
        while ( test ! -f $fichier )
        do
                echo "le fichier \"$fichier\" n'existe pas. Merci de saisir le bon nom du fichier : "
                read fichier
        done
 
      return $fichier
}
 
Mon appel à la fonction est de la manière suivante :  
 
local fic=$(VERIF_PRESENCE_FICHIER)
echo $fic
 
Malheureusement, mon script bloque et il m'est impossible d'afficher le nom du fichier retourner par la fonction.  
 
Auriez-vous une lumière ?  
 
Cordialement,  
 
Olivier


Message édité par cosca14 le 16-05-2008 à 11:54:58
mood
Publicité
Posté le 16-05-2008 à 10:14:14  profilanswer
 

n°1042347
wedgeant
Da penguin inside
Posté le 16-05-2008 à 10:23:09  profilanswer
 

c'est normal, une fonction en shell ne retourne jamais autre chose qu'un nombre entier correspondant au code retour :spamafote:
 
pour résoudre ton pb, faut considérer la variable finale de ta fonction comme une variable globale :spamafote:


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
n°1042380
cosca14
Posté le 16-05-2008 à 11:32:13  profilanswer
 

J'ai déclaré la variable globale au début de mon script de cette manière :  
fichier=""
 
et à la fin de ma fonction je retourne $fichier  
Ensuite, j'appel ma fonction de la façon suivante :  
 
fichier=$(VERIF_PRESENCE_FICHIER)
 
Mais mon script bloque toujours, je ne comprend pas trop, est-ce mon return qui est mauvais ?  

n°1042390
cosca14
Posté le 16-05-2008 à 11:53:29  profilanswer
 

En fait, je viens de comprendre. J'arrive à retourner une chaine en utilisant une variable globale

n°1042392
wedgeant
Da penguin inside
Posté le 16-05-2008 à 11:57:30  profilanswer
 

oui, je t'ai dis que tu ne pouvais pas retourner autre chose qu'un nombre entier correspondant au code retour de ton traitement.

 

et c'est pas la peine de pré-déclarer ta variable, tu appelles ta fonction et ensuite tu regardes le contenu de ta variable:

 

VERIF_PRESENCE_FICHIER
echo $fichier


et c'est tout :spamafote:


Message édité par wedgeant le 16-05-2008 à 11:57:57

---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [RESOLU] Pb dans une fonction pour retourner une chaine de caracteres

 

Sujets relatifs
[resolu] thunderbird: Lien permanent sur signature(résolu): données endomagées et ilisibles..
[ Resolu ] Theme Emerald Comment l'activé ?[linux] Conky, température cpu, ventillateurs
[POSTFIX] [Résolu] Limiter la fréquence d'envoi.[RESOLU] [POSTFIX] probleme de configuration
Problème Open office et codage des caractères : fichiers bloquésThunderbird et fonction agenda synchronisé
comment compiler gcc en 64 bits :'( [Gentoo] [Résolu](RÉSOLU) Photoshop sur OSX, ne s'ouvre plus ?
Plus de sujets relatifs à : [RESOLU] Pb dans une fonction pour retourner une chaine de caracteres


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR