Re: RE [ssfr] Récupérer $1 dans une fonction

[ Thread Index | Date Index | More debianworld.org/shellscript-fr Archives ]


Ludovic Cesar wrote:

Salut,

Ne faudrait'il pas matcher ta variable $1 dans une autre variable pour qu'elle soit interprètée dans ta fonction ?

_Comme cela:_

<script>
#!/bin/bash

VAR1=$1
function hello {
                 echo "\$1 vaut $VAR1"
                 }

                 hello
</script>

Il doit y avoir surement une raison du pourquoi le "$1" n'est pas interprété comme tel dans la fonction, genre un parmaètre que l'ont pourrai passer à la fonction. Mais je n'en suit pas sûr. Mais quelqu'un pourra surement nous expliquer cela ;-)


Ludo


Salut la liste,

Une question vraiment bête mais dont je n'arrive pas à trouver la
solution ...

Soit le script test.sh. Je veux l'appeler via :

./test.sh un_argument

avec

<script>
#!/bin/bash

function hello {
                echo "\$1 vaut $1"
}

hello
</script>

La sortie donne :

$1 vaut


Donc $1 n'est pas repris par la fonction hello. Ma question est donc
comment récupérer $1 dans cette fonction ?


Merci d'avance de me faire dire "Ah c'était aussi c.. que ça !"

Bonne semaine

--
steve

---


Hello

$1 est utilisé pour l'appel de fonction lui-même.
('set' permet de modifier/définir les paramètres positionnels).

cluster1:/ # function prout { echo $1; }
cluster1:/ # prout bla
bla
cluster1:/ # set truc
cluster1:/ # prout $1
truc


Il faut donc passer $1 en paramètre à ta fonction.
De plus, $1 est local à la fonction. Tu retrouves donc la valeur "initiale" au retour de l'appel:

cluster1:/ # set truc; prout bla; echo $1
bla
truc


Philippe


---


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/