GNU/Linux >> Linux の 問題 >  >> Linux

関数とパラメータを変数として持つシェルスクリプト?

関数名とそのパラメーターが変数に格納されているシェルスクリプトを入手しました。どう呼べばいいのかわからない。 evalを使用して、または使用せずに試しましたが、正しく機能しません。

私のコードの例:

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

}

関数自体が変数でない場合、スクリプトは正常に機能します。

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

しかし、関数を動的に呼び出したいのです。

どうすればそれができますか?

ありがとうと挨拶

ダンロック

承認された回答:

これは、関数定義を配置する場所についてです。関数を呼び出す前に宣言すると、変数でも呼び出すことができます。これを試してください:

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. 「でスクリプトを実行します。 」と「ソース」で?

  2. `:-`はシェルスクリプトで何を意味しますか?

  3. シェルスクリプトの予期しない動作?

  1. シェル変数の関数?

  2. 実行中にシェルスクリプトを編集する

  3. 混合シェルと python スクリプトは可能ですか?

  1. Bash シェル スクリプト - フラグをチェックしてその値を取得する

  2. 変数でディレクトリを変更するシェルスクリプト

  3. シェルスクリプトを使用して /etc/hosts ファイルに行を追加します