Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
paramètre modifié en sortie de fonction
Envoyé par: numahel

Bonjour,

Dans mon script shell j'ai une fonction qui sert à demander un paramètre à l'aide de read, et si rien n'est rentré retourne le paramètre par défaut.
ça marche très bien avec cygwin, mais dès que je lance ce scripts en vrai sous unix, mon paramètre est transformé à l'arrivée !

voilà la fonction:

# Fonction parametre_demande()
# ---------------------------------------------------------------------------
# teste la valeur entrée, si aucune valeur entrée retourne la valeur par défaut (parametre $1)

parametre_demande()
{
echo "Entrez $2 (par défaut: $1)";
read paramloc;
if test -z $paramloc
then
paramloc=$1;
fi
return $paramloc;
}


et l'appel à cette fonction dans le programme principal:

anneedef=`date -u +%Y`;

# Année
parametre_demande $anneedef "l'année";
annee=$?;

dans la fonction tout va bien, paramloc a bien pour valeur "2004", mais ensuite dans le programme je retrouve annee égal à "212" ...

merci de votre aide ...



petit pinguin deviendra grand ....

Poste le Wednesday 5 May 2004 14:01:29
Répondre     Citer    
Re: paramètre modifié en sortie de fonction
Envoyé par: numahel

bon, finalement j'ai contourné le pb:
en fait, le shell ne prends les variables qu'en integer, sur 2 octets ... donc forcément 2004, ça fait un long integer ça ...
du coup, je ne prends que deux digit pour l'année (le petit y au lieu du grand dans la commande date), et je rajoute 20 devant la variable pour en avoir 4 (pour un nom de fichier avec l'année sur 4 digit).
et voilà ...



petit pinguin deviendra grand ....

Poste le Wednesday 5 May 2004 15:38:45
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
paramètre modifié en sortie de fonction
Pour poser vos questions sur les scripts shell, le Perl, le C, etc... Attention : nous ne sommes pas des spécialistes du dev, ce forum est juste pour de petites aides ponctuelles concernant le développement et les outils de développement.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons