如何在Bash中运行子函数

Rob*_*lot 1 bash shell

如何在命令行中从脚本运行"子功能"?例:

#script_1.sh
main_function() {
    sub_function() {
         echo "hello world"
    }
}
Run Code Online (Sandbox Code Playgroud)

我试图获取此文件并从另一个脚本调用该函数:

#script_2.sh
source script_1.sh

sub_function
Run Code Online (Sandbox Code Playgroud)

但我明白了

script_2.sh: line 3: sub_function: command not found
Run Code Online (Sandbox Code Playgroud)

虽然我期望得到hello world.

Hri*_*lov 5

这样定义sub_function将在function被调用后定义.所以:

#script_1.sh
function() {
    sub_function() {
         #cmd
        }
}

#script_2.sh
source script_1.sh
function
sub_function
Run Code Online (Sandbox Code Playgroud)

...应该工作...除了你应该重命名函数,因为它是一个保留字