如何将终端命令输出通过管道传输到Zenity Progress对话框文本?

时间:2019-02-20 12:54:10

标签: linux bash zenity

我有一个带有一些bash命令的简单应用,例如apt update,并且我想将其输出通过管道发送到zenity Progress对话框中的--text参数,我在使用类似谷歌的搜索后尝试了一些选项: >

gksudo apt update | xargs -L1 -I % zenity --progress --text=% --percentage=0 --auto-close --auto-kill 

但是我所得到的只是闪烁的窗口!

那么,如何使输出以进度百分比显示在zenity窗口中?

1 个答案:

答案 0 :(得分:1)

您不能使用进度百分比将输出显示在zenity窗口中,因为对于百分比计算,需要100%的信息,并且在此之前尚不知道{ {1}}命令将生成。

您可以做的是在apt update输出内容的同时显示一个动画进度条。由于管道的标准输出通常已完全缓冲,因此必须使用apt update更改缓冲:

stdbuf