module/a.awk
function sum(a, b) { return a + b }
module/b.awk
function sum(a, b) { return a * b }
main.awk
END{ print sum(3,4); }
调用方式:
echo "" | igawk -f main.awk -f module/a.awk # 打印 7 echo "" | igawk -f main.awk -f module/b.awk # 打印 12
这样也能体现接口的一种理念:让main.awk里的代码依赖接口(sum函数) 而控制不同模块文件的加载控制行为,但是这样的方式似乎仍然不够灵活,我们想要的是由逻辑驱动的行为选择,而不是一开始就指定好,那么继续尝试