2009年4月7日星期二

zenity,小巧方便的对话框工具

写shell的时候需要大量的echo一些东东出来看,从来不敢想弹出个对话框跟用户交互,有了zenity这个小工具这个想法很容易就实现了。

首先来个进度条的
把这句方到shell命令行执行一下
declare -i i=1; while [ $i != 101 ]; do usleep 10000; echo $i; i=$i+1;
done | zenity --progress
是不是超级酷
进度条启动以后会读取标准输入
根据标准输入的数字就可以动态显示进度条了


最常用的还有--entry、--file-selection、--question等
一般来说只要用户选择了'确定'
那么zenity的返回值就是0
否则就是非零
这个返回值对脚本的判断很有用
zenty还可以接收用户输入并返回给shell
例如
uname=`zenity --entry --text="what's your name?"`; if [ $? == 0 ]; then
echo $uname; fi #如果用户输入了名字就打印他的名字,否则不打印

其他的还有很多
敲zenity --help可以得到这些输出
--calendar Display calendar dialog
--entry Display text entry dialog
--error Display error dialog
--info Display info dialog
--file-selection Display file selection dialog
--list Display list dialog
--notification Display notification
--progress Display progress indication dialog
--question Display question dialog
--warning Display warning dialog
--text-info Display text information dialog
--display=DISPLAY X display to use

没有评论: