GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Shell-Skript mit Funktion und Parameter als Variablen?

Ich habe ein Shell-Skript, in dem der Funktionsname und seine Parameter in Variablen gespeichert sind. Ich weiß nicht, wie ich es nennen soll. Ich habe es mit eval und ohne versucht, aber nichts funktioniert richtig.

Beispiel für meinen 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

}

Wenn die Funktion selbst keine Variable ist, funktioniert das Skript einwandfrei.

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

Aber ich möchte eine Funktion dynamisch aufrufen.

Wie kann ich das tun?

Danke und Grüße

Danloc

Akzeptierte Antwort:

Hier geht es darum, wo Sie die Funktionsdefinition ablegen. Wenn Sie die Funktion deklarieren, bevor sie aufgerufen wird, können Sie sie sogar per Variable aufrufen. Versuchen Sie Folgendes:

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. Zeichnen Sie Ihr Terminal mit Skript und Skriptwiederholung auf

  2. Was bedeutet „:-“ in einem Shell-Skript?

  3. Unerwartetes Verhalten eines Shell-Skripts?

  4. Shell-Skript ändert Verzeichnis mit Variable

  5. Zeile mit Shell-Skript an die Datei /etc/hosts anhängen

So definieren und verwenden Sie Funktionen in Linux Shell Script

So verwenden Sie Variablen in Shell-Skripten

Bearbeiten Sie das Shell-Skript, während es ausgeführt wird

Gemischtes Shell- und Python-Skript möglich?

Bash-Shell-Skript - Suchen Sie nach einem Flag und holen Sie sich seinen Wert

Farbige Shell-Script-Ausgabebibliothek