[英]Read the last line of output of a bash command
我想读取bash命令的当前输出行。 我知道我可以用cmd | tail -1
cmd | tail -1
,但我想将其作为单独的命令(tint2可执行文件)作为进度表来运行。
例如:
我有一个python程序,它在下载图像时输出Downloaded x out of y
,我想将输出作为shell变量获取。
要么:
也许我正在运行pacman -Syy
,我想要
extra 420.6 KiB 139K/s 00:09 [#####-----------------] 24%
这可能吗?
编辑:终端中正在运行某些内容。 我想要一个在前一个终端中输出命令最后输出的命令,也许输入了一个pid。
您可以使用tee
将内容写入终端和一些日志文件。
可以说您的python程序如下所示
function mypython {
for i in 10 30 40 50 80 90 120 150 160 180 190 200; do
(( progress = (100 * i + 50) / 200 ))
printf "extra xx Kb, total %-3d of 200 (%d %%)\n" $i ${progress}
sleep 1
done
}
您可以重定向或tee
输出到一个tmp文件:(mypython> /tmp/robert.out)或(mypython |三通/tmp/robert.out)
在另一个窗口中,您可以获取带有tail -1 /tmp/robert.out的最后一行
当您只想查看进度时,您可能想要使最后一行覆盖上一行。
mypython | while read -r line; do
printf "Progress of mypython: %s\r" "${line}"
done
当这是您想要的时,您可能想要更改python程序
printf "...\r" ...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.