如何将终端输出输出到Zenity进度对话框文本



我有一个带有bash命令的简单应用,例如 apt update,我想将其输出输出到zenity进度对话框中的 --text参数,我在搜索搜索后尝试了一些选项,例如:

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

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

那么,如何以进度百分比在Zenity窗口中出现输出?

您不能使输出出现在带有进度百分比的Zenity窗口中,因为对于一个百分比计算,需要100%的信息,而这里是事先不知道apt update命令将生成多少输出。

您可以做的是在apt update输出某些内容时拥有一个动画进度栏。由于对管道的标准输出通常完全缓冲,因此必须使用stdbuf更改缓冲:

gksudo stdbuf -oL apt update | zenity --progress --pulsate --auto-close --auto-kill

最新更新