如何在命令行中从脚本运行“子功能”?例如:
#script_1.sh
main_function() {
sub_function() {
echo "hello world"
}
}
我尝试获取此文件并从另一个脚本调用该函数:
#script_2.sh
source script_1.sh
sub_function
但是我得到了
script_2.sh: line 3: sub_function: command not found
虽然我希望得到hello world
。
答案 0 :(得分:5)
如此定义sub_function
将在调用function
后定义。
所以:
#script_1.sh
function() {
sub_function() {
#cmd
}
}
#script_2.sh
source script_1.sh
function
sub_function
...应该有效...除了你应该重命名函数,因为它是一个保留字
答案 1 :(得分:4)
您的问题中缺少的步骤是首先调用function
- 其操作是定义sub_function
。
请注意,sub_function
不以任何方式“归属于”function
- 其定义只是运行function
的副作用。
P.S。我假设你并没有真正试图称之为function
- 这是bash中的保留字。