2

bashで単純な関数ファクトリが可能なら?

たとえば、function_factory func1 func2 func3何もせずに渡された名前だけを持つ 3 つの関数を作成します。

これらの生成された関数はexport -f function_name、の同じ環境で確実に使用できるように、like を使用してエクスポートする必要がありますfunction_factory

4

3 に答える 3

1

多分あなたは使うことができますeval

function generate_hello {
  eval "function say_hello_to_$1 { echo hello $1; }"
}

次に実行します。

$ generate_hello world
$ say_hello_to_world
hello world
于 2013-05-29T10:20:20.477 に答える
0

それは次のようなものかもしれません:

#!/bin/bash

function function_factory()
{
  while [ $# -ne 0 ]
  do
    eval "
    function $1()
{
  echo \"my name is $1\"
}
"
    shift
  done
}

function_factory fun1 fun2 fun3

fun1
fun3

出力:

$ ./test 
my name is fun1
my name is fun3
于 2013-05-29T10:20:58.433 に答える