我正在尋求一種方法來按名稱調用awk
函數,即通過使用用戶輸入的字符串。在Awk中,如何通過使用字符串名稱來調用函數?
我的目標是取代了很多這樣的代碼......
if (text == "a") a(x)
if (text == "b") b(x)
if (text == "c") c(x)
...任何一種方式使用字符串名稱這樣的事情分派給該函數:
send(text, x)
在其他語言中,這種效果有時被描述爲反射,消息發送或動態分派,或者按名稱獲取函數指針。
我正在尋找一種方法來使用gawk
,理想情況下也使用POSIX便攜式awk
。
感謝埃德,這是完美的。你有沒有建議如何使用純POSIX而不是gawk? (對於這個腳本,POSIX可移植性是幾個月內的目標)。 – joelparkerhenderson
是的,等待5年POSIX趕上gawk :-)。不,對不起,在POSIX中沒有好的辦法。 –