如何从script_1.ksh调用script_2.ksh中的Unix子例程sub_1()?
问题解答
你给出的script_2.sub_1()写法在ksh中是无效的,无法直接调用另一个脚本里的子例程,正确的实现方式如下:
步骤1:在script_1.ksh中导入script_2.ksh
要使用其他脚本里的函数,首先需要将目标脚本的内容加载到当前Shell环境中,使用source或.命令(两者等价):
#!/bin/ksh # 导入script_2.ksh,若不在同一目录需指定绝对/相对路径 . script_2.ksh
步骤2:直接调用子例程
导入完成后,就可以直接调用sub_1函数了:
#!/bin/ksh . script_2.ksh sub_1
注意事项
- 确保script_2.ksh中的
sub_1函数是全局可访问的(未定义在局部作用域内) - 若两个脚本不在同一目录,需指定script_2.ksh的完整路径,例如
. /home/user/scripts/script_2.ksh - 导入脚本时会执行脚本内的所有顶级代码,若script_2.ksh有无需执行的初始化逻辑,建议用条件判断区分直接运行和被导入的场景
内容的提问来源于stack exchange,提问作者mikcutu
相关产品推荐
相关产品推荐

