Shell: $?返回值的问题

 
grep是根据是否有匹配得到返回0和1.
但是awk只要能运行,不管是否有匹配的行,都会返回0.
 
例子01
$ grep Include *.c
$ echo $?
1
$ grep include *.c
hello.c:#include
hello.c:#include
$ echo $?
0
 
例子02
$ awk '/include/{n++}; END {print n+0}' *.c
7
$ echo $?
0
$ awk '/Include/{n++}; END {print n+0}' *.c
0
$ echo $?
0
 
看来还真是没有什么规律,一切都要经过检验才行.
 
请使用浏览器的分享功能分享到微信等