awk的接口实现方案1

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函数) 而控制不同模块文件的加载控制行为,但是这样的方式似乎仍然不够灵活,我们想要的是由逻辑驱动的行为选择,而不是一开始就指定好,那么继续尝试

原文地址:https://www.cnblogs.com/code-style/p/3259775.html