比如 tar zxvf abc.tar.gz | zenity –progress
即使用户点击了zenity的窗口的取消菜单,tar 进程是不会自己终止的,
因为tar 进程还在运行,脚本也不会运行到下一行。
目前找到的第一种解决方法是
tar zxvf abc.tar.gz | zenity –progress &
#让他们去后台执行
#这样进入下面的循环
RUNNING=0
while [ $RUNNING -eq 0 ]
do
if [ -z "$(pidof zenity)" ]
then
pkill tar
RUNNING=1
fi
done
当然,问题有很多,比如还有别的zenity在运行,或者别的tar 在运行,都会出问题。。。
另外还有CPU问题
第二种解决方法,可能是最简单,且正确的了:
foo | (if `zenity –progress –auto-close –text=’In progress’ –title=’In progress’`;
then
echo ‘Job completed’
else
killall `basename $0`
exit
fi)
参考:https://bugs.launchpad.net/ubuntu/+source/zenity/+bug/220656
固定链接: http://liubin.nanshapo.com/2010/04/24/%e5%a6%82%e4%bd%95%e5%9c%a8%e5%8f%96%e6%b6%88zenity-progress-%e4%b9%8b%e5%90%8e%e6%9d%80%e6%ad%bb%e4%b8%bb%e8%bf%9b%e7%a8%8b/ | 其实我是一个程序员
最新评论