grep 的返回值:
0 表示找到目标
1 表示没找到目标
其它值另有用途, 比如2表示正则表达式本身有误。
但 返回1的还有一种情况, 就是grep想向标准输出写东西, 但却写不了。如
echo asdf | grep asdf >&3
就会返回1.
这有什么关系! 有关系, 在C中, 有时短平快又安全的提供一个功能时, 通过system来调用一个外部命令是一个捷径。 但是, 在一个daemon程序中, 往往STDOUT, STDERR, STDIN 都已被关闭, 这样简单的通过grep来过滤字符串时就会出错。 安全的办法是
program | grep string >& /dev/null
阅读(974) | 评论(0) | 转发(0) |