Shell脚本中脚本间函数如何调取?

学识吧 2022-05-29 02:47:48 99阅读

Hello!大家好,我是阿广,今天小编来分享一下“Shell脚本中脚本间函数如何调取?”这篇文章,我们每天分享有用的知识,下面小编就来分享一下吧,大家一起来学习吧!(⊃‿⊂)

原料/工具

Ubuntu 18.04

Shell,SecureCTR 7.0

方法/步骤

第1步

首先,需要先任意创建两个简单脚本,其中test_main.sh作为主调用脚本,内容如下图所示。

Shell脚本中脚本间函数如何调取? 第1张

第2步

test_sub.sh作为被调用脚本,内容如下图所示。

Shell脚本中脚本间函数如何调取? 第2张

第3步

准备完成脚本后,修改test_main.sh,其中加入fork方式调用test_sub.sh的语句,如果有调用该脚本的权限,则直接使用./test_sub.sh的方式,如果没有权限,则用命令sh test_sub.sh,如下图所示。

Shell脚本中脚本间函数如何调取? 第3张

第4步

运行test_main.sh,查看运行结果,可以得出fork方式下,调用脚本可以正常运行,但是无法调用其中的函数。

Shell脚本中脚本间函数如何调取? 第4张

第5步

修改test_main.sh,采用exec方式调用test_sub.sh,并添加测试语句。exec调用语句为exec ./test_sub.sh,如下图所示。

Shell脚本中脚本间函数如何调取? 第5张

第6步

运行test_main.sh,查看运行结果,可以得出exec方式下,调用脚本只能执行到exec ./test_sub.sh命令,而不会继续往下执行。

Shell脚本中脚本间函数如何调取? 第6张

第7步

修改test_main.sh,采用source方式调用test_sub.sh,调用语句为. ./test_sub.sh,注意有空格,如下图所示。

Shell脚本中脚本间函数如何调取? 第7张

第8步

运行test_main.sh,查看运行结果,可以得出source方式下,test_main.sh可以正常调取test_sub.sh中的函数。

Shell脚本中脚本间函数如何调取? 第8张

第9步

总结:

    1.fork方式相当于新开一个Shell执行线程执行被调用的Shell,调用Shell不能获取到被调用Shell中 的变量或函数;

    2.exec方式,调用Shell程序会停在调用另外一个Shell的命令行,不会再往下执行;

    3.source方式,可以正常获取被调用Shell中的变量及函数;

    因此,自定义函数在脚本间的调取时,需要用source方式进行调取;

温馨提示

以上就是“Shell脚本中脚本间函数如何调取?”的全部内容了,小编已经全部分享给大家了,希望大家能学到新的知识!最后,小编希望以上分享的内容对大家有所帮助,如果觉得还不错就给小编点个赞吧!(⊃‿⊂)

目录[+]