Dialog

dialog
1.dialog在Linux中用来实现模拟小窗口
语法格式如下:
dialog --common-options --box t ype "Text" Height Width --box-specific-option
--common-option选项是用来设置dialog背景色、标题、等
--boxtype用来指定dialog参数的,dialog至少有三个参数:
Text标题或内容,
height高度,
width宽度
另外还有--begin y x用来指定一个dialog的box位置在这个屏幕上显示的坐标位
--colors给“\Z”和“\Zn” 添加颜色的之间的内容添加颜色的
--defaultno代表yes/no的默认值
--default-item string设置box的默认项时前边的是默认项
--insecure设置窗口密码但不安全,通常以“*”号显示出来
--timeout指定一个超时时间
--nook隐藏ok按钮选项框
--no-shadow去掉阴影
--ok-label string重读ok按钮标签
1)例: dialog --backtitle “The first dialog box”  --title “Hello” --yesno “Is this your first dialog box?”  10 30
--backtitle表示背景显示的标题
--title表使box的标题
--yesno表示所选框
10表示box的高度
30表示box的宽度
显示如下图
box选项如下图:
widget窗口元素,窗口类型具体描述如下图
dialog --msgbox  text height width 形式:
2)例 dialog --title Testing --colors --msgbox “ Z3This is a test Zn”  5   1  30  2>dialog.out
--msgbox显示一段信息或要求后用户只能去选择“ok”按钮了
显示如下图所示:
  
3)看到“This is a test“已经变红色了
dialog --yesno  text height width 形式:
dialog --title “Delete a file”  --no-shadow --yesno “Delete the file /tmp/test.txt?”  10 30显示如下图:
可看到阴影已消失了
4)   dialog --inputbox  text height width 形式
dialog --title “Input your name”  --inputbox “Please input your name:” 10 30  2> /tmp/name.txt
  其中 2>   清空/tmp/name.txt文件的内容,并保存标准错误输出的内容到指/tmp/name.txt
 --inputbox表输入文本
显示如下图所示
5) dialog --textbox  file height width 形式:
dialog --title “The fstab” --textbox /etc/fstab  1 6   60用文本形式输出/etc/fstab的信息,显示具体如图:
6) dialog --menu  text height width  menu-height tag1 item1 tag2 item2 … 格式:
dialog --title “pick a choice” --menu “Choose one” 12 35 5 1 “Display the disk usage” 2 “Display the meminfo” 3 “Exit”
 --menu用来指定按钮选项的
 如下图
 看到出现了1,2,3三个选择
7) dialog --fselect  filepath height width  形式:
dialog --title “Pick one file” --fselect /root/  8  40
如下图:
8) dialog --gauge  text height width  [<percent>]
  --gause用来指定文件的传输情况的
例:Vim  gauge.sh
   #!/bin/bash
#
let PERCENT=0                       ##用let定义一个整数变量
(
for I in /etc/*                          ##用for-do-done循环语句 
do
  if [ $PERCENT -gt 100 ];then           ##用if-then-else循环语句,如果大于100则跳出循环
     break
  else
     cp -r $I /tmp/test 2> /dev/null          ##否则就递归复制/etc/*到文件/tmp/test/中并将错误信息放到/dev/null中
     echo 'XXX'                               ##用来显示即将复制文件名的
     echo "copy the file $I..."
     echo 'XXX'
     echo $PERCENT                           
   fi
   PERCENT=$[ $PERCENT+1 ]               
   sleep 1                                   ##每复制一次歇一秒
done ) | dialog --title "Copying..." --gauge "Starting to copy files..." 6 60 0
~
bash gauge.sh(执行)
结果如图下所示    
  
例Vim  gauge2.sh
 #!/bin/bash
#
let PERCENT=0
let I=1
(
while [ $I -le 254 ]; do
  echo "XXX"
  if  ping -c1 -w1 192.168.0.$I &> /dev/null ;then    ##每一秒ping一个地址
    echo "Ha, 192.168.0.${I} is online."             ##如果成功则显此信息示
  else
    echo -e "Sorry, 192.168.0.$I is not online."         ##否则显示不在线
  fi
  echo "XXX"
  let "I++"
  let "PERCENT=100*$I/254"               ##把100的百分比分成
  echo $PERCENT                          254份,当$I为值时对应的百分比为$PERCENT
  #sleep 1
done ) | dialog --title "Pinging..." --gauge "Start to ping..." 7 60 0 
bash  -n  gauge.sh(检查语法是否正确)
bash  gauge2.sh    (用bash执行)
显示如下图:
                      
9) dialog --form text height width formheight [ label y x item y x flen ilen ] ... 形式 
   --form插入表单
   flen 定义输出显示时的区域的宽度
   ilen定义数据可输入的宽度
dialog --title "Add a user" --form "Please input the infomation of new user:" 12 40 4 "Username:" 1 1 "" 1 15 15 0  "Full name:" 2 1 "" 2 15 15 0 "Home Dir:" 3 1 "" 3 15 15 0 "Shell:" 4   
如图:
 
 10) dialog  --passwordbox text height width [init]
--insecure  形式
--passwordbox为用户添加密码(默认用“*”来显示输入的值
dialog  --passwordbox text  10 20
    如下图
   
 

你可能感兴趣的:(职场,dialog,休闲)