在Awk中,如何使用字符串名称调用函数?
发布时间:2020-12-14 01:26:51 所属栏目:Linux 来源:网络整理
导读:我正在寻找一种通过名称调用awk函数的方法,即使用用户输入的字符串. 我的目标是替换这样的很多代码…… if (text == "a") a(x)if (text == "b") b(x)if (text == "c") c(x) …通过使用类似这样的字符串名称以任何方式分派给函数: send(text,x) 在其他语言中
我正在寻找一种通过名称调用awk函数的方法,即使用用户输入的字符串.
我的目标是替换这样的很多代码…… if (text == "a") a(x) if (text == "b") b(x) if (text == "c") c(x) …通过使用类似这样的字符串名称以任何方式分派给函数: send(text,x) 在其他语言中,这种效果有时被描述为反射,消息发送或动态分派,或者按名称获取函数指针. 我正在寻找一种方法来使用gawk,理想情况下也使用POSIX移动awk. 解决方法
使用GNU awk 4.0或更高版本为
Indirect Function Calls:
$cat tst.awk function foo() { print "foo() called" } function bar() { print "bar() called" } BEGIN { var = "foo" @var() var = "bar" @var() } $awk -f tst.awk foo() called bar() called (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |