这是我第一次发帖,我过去使用过这里的代码示例,并感谢您的帮助。
我目前有一个包含大量功能的大型Bash脚本,而且它正在增长,并且变得越来越难以管理。每个函数确实是一个完全独立的模块,为了便于开发,并且能够轻松地允许社区贡献的模块,而不需要集成每个模块,我想添加功能以具有单独的模块文件,主脚本将自动看,并加入。
目前我有:(超级简化)
script.sh
#! /bin/bash
function one {
stuff
}
function two {
different stuff
}
one
two
exit
但是我希望有一个自动检查目录的脚本(比如“modules /”),任何带有后缀.module(例如lights.module)的文件都会加载到菜单中(我的功能很好)已经是whiptail菜单系统。
我尝试了很多来自Google和stackoverflow的东西,但我似乎已经碰壁了。
我可以创建一个包含模块名称列表的文件 - 因此可以随意删除模块,它会显示在列表中:
for entry in /home/tony/scripts/test/modules/*
do
echo "$entry" >> modules.list # Append the name of present modules to the list of modules
done
但是如何让我的脚本知道这些模块名称,并对它们做一些事情(即将它们塞进一个whiptail菜单中,如果选中则调用它们。)
答案 0 :(得分:1)
您是否考虑过拥有一个文件夹,然后运行:
for module in somefolder/*.module; do
source $module
done
如果需要,您可以按所需的执行顺序按字母顺序对模块进行排序
答案 1 :(得分:0)