GNU/Linux >> Linux Esercitazione >  >> Linux

Script di shell con funzione e parametro come variabili?

ho uno script di shell in cui il nome della funzione e i suoi parametri sono archiviati in variabili. non so come chiamarlo. L'ho provato con eval e senza, ma niente funziona correttamente.

esempio del mio codice:

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

}

Quando la funzione stessa non è una variabile, lo script funziona correttamente.

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

Ma voglio chiamare una funzione in modo dinamico.

Come posso farlo?

Grazie e saluti

Danloc

Risposta accettata:

Si tratta di dove metti la definizione della funzione. Se dichiari la funzione prima che venga chiamata, puoi chiamarla anche per variabile. Prova questo:

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. Registra il tuo terminale con script e scriptreplay

  2. Comportamento imprevisto di uno script di shell?

  3. Lo script della shell si blocca sul comando di posta?

  4. Funzioni nelle variabili Shell?

  5. Modifica lo script della shell mentre è in esecuzione

Come definire e utilizzare le funzioni in Linux Shell Script

Come utilizzare le variabili negli script della shell

Cosa significa `:-` in uno script di shell?

Possibile script misto shell e python?

Libreria di output di script di shell colorata

Automatizza mysql_secure_installation con il comando echo tramite uno script di shell