bashで単純な関数ファクトリが可能なら?
たとえば、function_factory func1 func2 func3
何もせずに渡された名前だけを持つ 3 つの関数を作成します。
これらの生成された関数はexport -f function_name
、の同じ環境で確実に使用できるように、like を使用してエクスポートする必要がありますfunction_factory
。
多分あなたは使うことができますeval
:
function generate_hello {
eval "function say_hello_to_$1 { echo hello $1; }"
}
次に実行します。
$ generate_hello world
$ say_hello_to_world
hello world
それは次のようなものかもしれません:
#!/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