【发布时间】:2015-03-21 01:30:32
【问题描述】:
我试图理解这种特殊的行为。基本上,我正在尝试 grep 命令的输出,同时仍保留第一行/标题。我在这里先向您的帮助表示感谢。
成功案例
ps -ef | { head -1; grep bash; }
输出:
UID PID PPID C STIME TTY TIME CMD
username 1008 1 0 Jan21 tty1 00:00:00 -bash
username 1173 1008 0 Jan21 tty1 00:00:00 -bash
失败案例
ls -tlrh / | { head -1; grep tmp; }
输出:
total 100K
(即:它忽略 /tmp 文件夹)
【问题讨论】:
-
到目前为止,两个答案都解决了问题,但我认为 OP 想了解为什么一个案例成功而另一个案例失败。这两个答案无法解释。我通过添加几个标签来编辑问题。我做组命令然后管道到另一个 cmd,但没有测试管道到命令组。有趣的问题+1 想知道原因。顺便说一句,如果您检查第二个失败案例
echo $?,则返回值为1,但是通过将2>&1添加到所有命令中,我看不到任何错误消息... -
我无法在我的系统上复制它...是否可能存在某种权限问题阻止非 root 用户读取
/或其他什么? -
@Kent。感谢您的编辑,是的,我想了解其背后的原因。我注意到它不仅限于这两个命令。我使用了 check_mk 监控,'cmk -D' 输出也给出了成功的结果。
标签: linux bash shell grep pipe