スクリプトが関数を定義するだけで他に何もしない場合は、最初に source
を使用して現在のシェルのコンテキスト内でスクリプトを実行できます または .
コマンドを実行してから、単に関数を呼び出します。 help source
を参照 詳細については、
次のコマンドは、最初に関数をコンテキストに登録してから呼び出します:
. ./myScript.sh && function_name
まあ、他の答えは正しいですが、確かに何か他のことを行うことができます.bashスクリプトにアクセスできる場合は、それを変更して、最後に特別なパラメータ "[email protected]"
を配置するだけです。 -これは、指定したコマンドラインの引数に展開され、「単独」であるため、シェルはそれらを逐語的に呼び出そうとします。ここで、関数名を最初の引数として指定できます。例:
$ cat test.sh
testA() {
echo "TEST A $1";
}
testB() {
echo "TEST B $2";
}
"[email protected]"
$ bash test.sh
$ bash test.sh testA
TEST A
$ bash test.sh testA arg1 arg2
TEST A arg1
$ bash test.sh testB arg1 arg2
TEST B arg2
洗練のために、最初にコマンドが存在し、関数であることを確認できます:
# Check if the function exists (bash specific)
if declare -f "$1" > /dev/null
then
# call arguments verbatim
"[email protected]"
else
# Show a helpful error
echo "'$1' is not a known function name" >&2
exit 1
fi