【发布时间】:2013-10-22 12:17:27
【问题描述】:
我正在使用 gawk,我想知道是否可以输出脚本的行。我查看了 gawk 的手册并找到了有关 auto-set variables 的信息,但没有列出像 __LINE__ 这样的信息。谢谢
在这里澄清一下,我的意思是 awk 脚本的实际行,而不是我正在阅读的输入。所以如果我这样做cat foo | script.awk 我正在寻找script.awk 中的行号。如果可能的话,基本上我想在我的脚本中显示发生错误的行号。
【问题讨论】:
-
awk-interpreter 非常擅长告诉您在哪一行发生了错误,例如
awk: avg.awk:20: ^ syntax error。你会用这个做什么? -
@Fredrik 我不关心那些错误,我的意思是我的脚本中的错误我必须做
print "exiting on error!"; exit 1; -
将退出代码更改为唯一的代码,这样您就可以通过搜索来轻松识别该行,例如
exit 42。 Shell 将每个大于 0 的退出代码解释为失败,因此您的所有&&和||、$?都将按预期工作。 -
你试过 dgawk,GNU awk 4.x 中的集成调试器吗?
-
@Fredrik 谢谢,但我正在寻找可以自动获取行号的东西。我有很多地方程序可能会因错误而终止。