LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 6485|回复: 18

如何在脚本中应用dialog命令

[复制链接]
发表于 2003-5-9 01:03:51 | 显示全部楼层 |阅读模式
偶然发现一个实用程序--dialog,俺研究ing...
把它帖出来,看看如何美化美化枯燥的脚本文件,有会用的兄弟教教大家伙儿,
javalee//home/javalee>dialog
cdialog (ComeOn Dialog!) version 0.9b-20020519

* Display dialog boxes from shell scripts *

Usage: dialog <options> { --and-widget <options> }
where options are "common" options, followed by "box" options

Special options:
  [--create-rc "Ifile"]
Common options:
  [--aspect <ratio>] [--backtitle <backtitle>] [--beep] [--beep-after]
  [--begin <y> <x>] [--cancel-label <str>] [--clear] [--cr-wrap]
  [--default-item <str>] [--defaultno] [--exit-label <str>]
  [--help-button] [--help-label <str>] [--ignore] [--item-help]
  [--max-input <n>] [--no-cancel] [--no-collapse] [--no-kill]
  [--no-shadow] [--ok-label <str>] [--print-maxsize] [--print-size]
  [--print-version] [--separate-output] [--separate-widget <str>]
  [--shadow] [--size-err] [--sleep <secs>] [--stderr] [--stdout]
  [--tab-correct] [--tab-len <n>] [--timeout <secs>] [--title <title>]
  [--trim] [--version]
Box options:
  --calendar     <text> <height> <width> <day> <month> <year>
  --checklist    <text> <height> <width> <list height> <tag1> <item1> <status1>...
  --fselect      <filepath> <directory> <height> <width>
  --gauge        <text> <height> <width> [<percent>]
  --infobox      <text> <height> <width>
  --inputbox     <text> <height> <width> [<init>]
  --menu         <text> <height> <width> <menu height> <tag1> <item1>...
  --msgbox       <text> <height> <width>
  --passwordbox  <text> <height> <width> [<init>]
  --radiolist    <text> <height> <width> <list height> <tag1> <item1> <status1>...
  --tailbox      <file> <height> <width>
  --tailboxbg    <file> <height> <width>
  --textbox      <file> <height> <width>
  --timebox      <text> <height> <width> <hour> <minute> <second>
  --yesno        <text> <height> <width>

Auto-size with height and width = 0. Maximize with height and width = -1.
Global-auto-size if also menu_height/list_height = 0.
详细的解释请man一下吧~~~
发表于 2003-5-9 09:47:25 | 显示全部楼层
dialog的确很不错。
其实freebsd和slackware linux的安装程序就是用dialog做的,可以用来做一下参考。
发表于 2003-5-9 13:17:05 | 显示全部楼层
好东西!!

需要Ncurses支持么?
 楼主| 发表于 2003-5-27 02:09:35 | 显示全部楼层

这是一个用dialog显示进度条的例子

值得研究研究...
javalee//home/javalee/lx>cat pro
#!/bin/ksh
#
n=$(perl -e 'print join(" ",1..100)')
for i in $n
do
print $i
print " "
done|dialog --gauge demo 6 36
发表于 2003-5-29 10:06:37 | 显示全部楼层
最初由 flaboy 发表
好东西!!

需要Ncurses支持么?


当然,不过你可以静态编译它.我在FreeBSD下静态编译下来有318K,Linux下没有试.
发表于 2003-5-29 10:20:53 | 显示全部楼层
还有一个Xdialog,使用方法和dialog一样。只要把脚本里所有的dialog改成Xdialog,就有X界面了。比较爽。要是脚本前面加一个判断,那就能自动运行合适的界面。
发表于 2003-5-29 14:20:32 | 显示全部楼层
最初由 tram 发表
还有一个Xdialog,使用方法和dialog一样。只要把脚本里所有的dialog改成Xdialog,就有X界面了。比较爽。要是脚本前面加一个判断,那就能自动运行合适的界面。


需不需要X支持呢?
 楼主| 发表于 2003-5-29 14:44:42 | 显示全部楼层
Xdialog是不是必须下载吧~~,我的RH8里没有,那个inputbox的用法我觉得很麻烦,再研究研究......
发表于 2003-5-29 14:44:44 | 显示全部楼层
xdialog是gtk的,所以要X环境。。

判断这样就行
if [ ${TERM} != "xterm" ]; then
DIALOG=dialog;
else
DIALOG=Xdialog;
fi

${DIALOG} --title "test"  --yesno "Dialog is fun" 10 30

btw, kde里面有个kdialog,这个也不错
 楼主| 发表于 2003-5-29 15:20:59 | 显示全部楼层
这里,有个例子,一个查看分区信息的脚本,
http://www.linuxsir.cn/bbs/showt ... 15&pagenumber=2
这里是关于dialog的站点:
http://hightek.org/dialog/
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表