GNU/Linux >> Znalost Linux >  >> Linux

Shell skript s funkcí a parametrem jako proměnnými?

Mám shell skript, kde je název funkce a její parametry uloženy v proměnných. nevím jak to nazvat. Zkoušel jsem to s eval i bez, ale nic nefunguje správně.

příklad mého kódu:

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

}

Když funkce sama o sobě není proměnná, skript funguje dobře.

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

Ale chci funkci volat dynamicky.

Jak to mohu udělat?

Děkuji a zdravím

Danloc

Přijatá odpověď:

Jde o to, kam vložíte definici funkce. Pokud funkci deklarujete před jejím voláním, můžete ji volat i pomocí proměnné. Zkuste toto:

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. Jak definovat a používat funkce v Linux Shell Script

  2. V Bash, kdy alias, kdy skript a kdy napsat funkci?

  3. Spuštění skriptu s „. “ A se „zdrojem“?

  1. Co znamená `:-` ve skriptu Shell?

  2. Neočekávané chování skriptu Shell?

  3. Skript Shell visí na příkazu Mail?

  1. Funkce v proměnných Shell?

  2. Upravte skript shellu, když je spuštěn

  3. Bash Shell Script - Zkontrolujte, zda nemáte příznak a zjistěte jeho hodnotu