GNU/Linux >> Tutoriels Linux >  >> Linux

Script Shell avec fonction et paramètre comme variables ?

J'ai un script shell où le nom de la fonction et ses paramètres sont stockés dans des variables. Je ne sais pas comment l'appeler. J'ai essayé avec eval et sans, mais rien ne fonctionne correctement.

exemple de mon code :

VarFunction="Testfunc1"
VarName="Peter"
VarLastname="Lustig"
VarText="Is a really lucky guy!n Maybe he knows some funny Stuff?"

eval ${VarFunction} "$VarName" "$VarLastname" "$VarText"


Testfunc1() {
     Name=$1
     LastName=$2
     Text=$3

     echo $Name 
     echo $Lastname
     echo $Text

}

Lorsque la fonction elle-même n'est pas une variable, le script fonctionne correctement.

Testfunc1 "$VarName" "$VarLastname" "$VarText"

Mais je veux appeler une fonction dynamiquement.

Comment puis-je faire cela ?

Merci et salutations

Danloc

Réponse acceptée :

C'est à peu près là où vous mettez la définition de la fonction. Si vous déclarez la fonction avant qu'elle ne soit appelée, vous pouvez l'appeler même par variable. Essayez ceci :

VarFunction="Testfunc1"
VarName="Peter"
VarLastname="Lustig"
VarText="Is a really lucky guy!n Maybe he knows some funny Stuff?"
Testfunc1() {
     Name=$1
     LastName=$2
     Text=$3

     echo $Name 
     echo $Lastname
     echo $Text 
}
${VarFunction} "$VarName" "$VarLastname" "$VarText"

Linux
  1. Enregistrez votre terminal avec script et scriptreplay

  2. Dans Bash, quand créer un alias, quand créer un script et quand écrire une fonction ?

  3. Exécution du script avec ". » Et avec « source » ?

  4. Que signifie `:-` dans un script shell ?

  5. Comportement inattendu d'un script shell ?

Comment définir et utiliser des fonctions dans Linux Shell Script

Comment utiliser des variables dans les scripts Shell

Bibliothèque de sortie de script shell coloré

Ajouter une ligne au fichier /etc/hosts avec le script shell

Clarification concernant le comportement du script shell avec le tube

Créer des modèles avec Linux dans un script Shell ?