有没有办法在程序输出n行后停止它?

问题描述 投票:0回答:1

我尝试了以下方法,但仍然等待程序完成执行

lnx>someprogram | sed -n '1,10p'

也许管道可能不是解决这个问题的正确方法。如有任何反馈,我们将不胜感激!

问候, 普济

linux pipe
1个回答
0
投票

sed
为每一行执行脚本。
-n
只是默认不打印该行,脚本仍然执行。

我认为在 Bash 中最简单的方法:

head -n 10 < <(someprogram)

进程替换

<(...)
内的命令由 Bash 设置,并且当“主”命令
head -n 10
退出时也由 Bash 终止。

不是在 Bash 中,在 POSIX sh 中,你需要自己实现

<(...)
-
mkfifo
,分叉进程,读取 10 行,终止进程并等待。

© www.soinside.com 2019 - 2024. All rights reserved.