【问题】zenity --progress的工作原理?

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
cnkilior
论坛版主
帖子: 4979
注册时间: 2007-08-05 17:40
送出感谢: 0
接收感谢: 5 次

【问题】zenity --progress的工作原理?

#1

帖子 cnkilior » 2008-09-25 10:25

可以用

代码: 全选

for ((i=0;i<=100;i++));do echo $i; sleep 1;done |zenity --progress --progress
使zenity显示程序进度。
似乎是zenity预先知道了i的范围进度条才按比例向前移动。不论i的范围多大都可以(不过偶尔会出错误)

如果把前面的角本换成功能一样c程序,并用tee多向重定向,可以偶尔观察到进度条完了,而程序没完。而且进度条是略晚于程序运行(不知是否错觉,当然zenity肯定和程序同时运行,但zenity显示进度条就不知道是不是立刻了)

----------------
于是我就想zenity --progress的工作原理是什么?


---------------
附一段shell进度脚本:

代码: 全选

sleep 100& while [ -e /proc/$! ];do echo -n '.';sleep 1;done
回复

回到 “Shell脚本”