【发布时间】:2020-10-13 09:32:06
【问题描述】:
为什么下面会在第二行删掉root这个词并倾斜输出,而不是对以下所有行保持一致?
# ps -ef | { head -n 1 ; sort ; } | head -n11
UID PID PPID C STIME TTY TIME CMD
470 2 0 Oct07 ? 00:00:00 [xfsaild/nvme4n1]
apache 10210 5801 0 Oct12 ? 00:04:04 /var/site/fastcgi.pl
apache 10211 5801 0 Oct12 ? 00:03:11 /var/site/fastcgi.pl
apache 10212 5801 0 Oct12 ? 00:03:35 /var/site/fastcgi.pl
apache 10265 5801 0 Oct12 ? 00:03:55 /var/site/fastcgi.pl
apache 10325 5801 0 Oct12 ? 00:03:50 /var/site/fastcgi.pl
apache 10328 5801 0 Oct12 ? 00:03:39 /var/site/fastcgi.pl
apache 10329 5801 0 Oct12 ? 00:02:59 /var/site/fastcgi.pl
apache 10330 5801 0 Oct12 ? 00:03:50 /var/site/fastcgi.pl
apache 11889 3815 0 Oct08 ? 00:33:11 /usr/sbin/httpd -k start
我希望输出能够打印出来:
# ps -ef | { head -n 1 ; sort ; } | head -n2
UID PID PPID C STIME TTY TIME CMD
root 470 2 0 Oct07 ? 00:00:00 [xfsaild/nvme4n1]
这似乎是一个竞态条件。有时当我运行它时它不会发生。
$ ps -ef | { head -n 1 ; sort ; } | head -n3
UID PID PPID C STIME TTY TIME CMD
avahi 1328 1 0 Oct12 ? 00:00:08 avahi-daemon: running [danied.local]
avahi 1401 1328 0 Oct12 ? 00:00:00 avahi-daemon: chroot helper
【问题讨论】:
-
您的问题不清楚。没有样本数据。它是不可重现的。
-
您的命令输出不是确定性的,由于双方都要求关闭管道的竞争条件,请查看以下示例。