[Tutorials] 今天突发奇想,shell脚本能否调用外部文件写的函数,还真的可以
Tofloor
poster avatar
酷谷的谷子
deepin
2025-07-22 15:22
Author

2025-07-22 15-23-59 创建的截图.png
2025-07-22 15-19-33 创建的截图.png
今天突发奇想,shell脚本能否调用外部文件写的函数,问了一下AI还真可以,具有功能的函数文件无需可执行权限,也不需要后缀名。

这个功能真的非常实用而且没有兼容性问题

更具AI的说明行函数文件不需要添加文件头 #!/bin/bash

Reply Favorite View the author
All Replies
wlly-lzh
deepin
2025-07-22 15:50
#1

沙发

Reply View the author
晚秋(lateautumn)
Moderator
2025-07-22 17:34
#2

厉害applaud

Reply View the author
安洛
deepin
2025-07-22 19:15
#3

.source 都可以,这个命令相当于在当前上下文中执行指定文件,如果对应文件里面定义了函数,自然就能在后续调用了。除此之外,还可以定义环境变量之类。需要注意的是,如果对应的文件中包含执行语句,那么语句也会被执行。这可能会导致意外执行没有可执行权限的文件。

一种非常常见的用法是修改 bashrc 添加环境变量或者自定义函数之后,source ~/.bashrc 就可以立即生效,不需要重启 shell。python 的 venv,conda也有类似的用于 source 的脚本,可以激活对应虚拟环境。

Reply View the author
酷谷的谷子
deepin
2025-07-22 22:34
#4
安洛

.source 都可以,这个命令相当于在当前上下文中执行指定文件,如果对应文件里面定义了函数,自然就能在后续调用了。除此之外,还可以定义环境变量之类。需要注意的是,如果对应的文件中包含执行语句,那么语句也会被执行。这可能会导致意外执行没有可执行权限的文件。

一种非常常见的用法是修改 bashrc 添加环境变量或者自定义函数之后,source ~/.bashrc 就可以立即生效,不需要重启 shell。python 的 venv,conda也有类似的用于 source 的脚本,可以激活对应虚拟环境。

是的所谓的函数文件本质上还是一个shell脚本 bash 123.sh是可以执行的,函数文件里不能执行函数和直接执行的命令

Reply View the author