【发布时间】:2013-01-29 11:35:16
【问题描述】:
在 mawk 中除以零时得到六个不同的结果:
$ echo | awk '{print -1/0 }' ; echo $?
-inf
0
$ echo | awk '{print 0/0 }' ; echo $?
-nan
0
$ echo | awk '{print 1/0 }' ; echo $?
inf
0
$ echo | awk '{printf ("%i\n", -1/0) }' ; echo $?
-2147483647
0
$ echo | awk '{printf ("%i\n", 0/0) }' ; echo $?
-2147483647
0
$ echo | awk '{printf ("%i\n", 1/0) }' ; echo $?
2147483647
0
我得到每个案例的“成功”退出代码。
- 为什么会这样?
- 我能做些什么呢?我是否总是必须在进行除法之前检查零除数,还是有什么方法可以依靠 awk 的错误处理和退出代码?
【问题讨论】:
标签: error-handling awk divide-by-zero