いくつかの機能を備えた Bourne Shell スクリプトがあり、次の方法で呼び出すことができます。
my.sh <func_name> <param1> <param2>
内部でfunc_name()
は、 と で呼び出されparam1
ますparam2
。
help
パラメーターがなくても、使用可能なすべての関数を一覧表示する関数を作成したいと考えています。
質問: スクリプト内からスクリプト内のすべての関数名のリストを取得するにはどうすればよいですか?
それを解析して関数パターンを探す必要を避けたいと思います。間違えやすい。
更新:コード。自分のhelp()
機能を次のようにしたいmain()
- コードに追加された機能は、自動的にヘルプに追加されます。
#!/bin/sh
# must work with "set -e"
foo ()
{
echo foo: -$1-$2-$3-
return 0
}
# only runs if there are parameters
# exits
main ()
{
local cmd="$1"
shift
local rc=0
$cmd "$@" || rc=$?
exit $rc
}
if [[ "$*" ]]
then
main "$@"
die "how did we get here?"
fi