Je voudrais écrire une fonction que je peux appeler à partir d'un script avec de nombreuses variables différentes. Pour certaines raisons, j'ai beaucoup de mal à faire ça. Les exemples que j'ai lus utilisent toujours une variable globale mais cela ne rendrait pas mon code beaucoup plus lisible pour autant que je puisse voir.
Exemple d'utilisation prévue:
#!/bin/bash
#myscript.sh
var1=$1
var2=$2
var3=$3
var4=$4
add(){
result=$para1 + $para2
}
add $var1 $var2
add $var3 $var4
# end of the script
./myscript.sh 1 2 3 4
J'ai essayé d'utiliser $1
et tel dans la fonction, mais il suffit ensuite de celui global à partir duquel le script entier a été appelé. Fondamentalement, ce que je recherche est quelque chose comme $1
, $2
et ainsi de suite, mais dans le contexte local d'une fonction. Comme vous le savez, les fonctions fonctionnent dans n'importe quel langage approprié.
echo $1
etecho $2
en elle.result =
parresult=$(($1 + $2))
et ajoutez-leecho $result
après et cela fonctionne correctement, $ 1 et $ 2 sont vos arguments de fonctions.Réponses:
Pour appeler une fonction avec des arguments:
La fonction fait référence aux arguments passés par leur position (pas par leur nom), c'est-à-dire $ 1, $ 2, etc. $ 0 est le nom du script lui-même.
Exemple:
Production
la source
Dans le script principal, $ 1, $ 2, représente les variables comme vous le savez déjà. Dans les indices ou les fonctions, les $ 1 et $ 2 représenteront les paramètres, passés aux fonctions, en tant que variables internes (locales) pour ces indices.
la source