shell学习28:单项选择框,使用dialog

版权声明:欢迎转发,转发请标明出处 https://blog.csdn.net/weixin_39465823/article/details/88829827

没有dialog的,sudo apt-get install dialog安装一个。 

代码如下:

  1 #!/bin/bash
  2 #
  3 TMP="/tmp/radiolist.$$"
  4 subject="choose filesystem type"
  5 o_nums=3
  6 #
  7 EXT2="ext2"
  8 EXT3="ext3"
  9 EXT4="ext4"
 10 F_SYSTEM2="linux filesystem 2"
 11 F_SYSTEM3="linux filesystem 3"
 12 F_SYSTEM4="linux filesystem 4"
 13 #
 14 dialog --radiolist "$subject" 10 60 $o_nums "$EXT2" "$F_SYSTEM2" off "$EXT3" "$F_SYSTEM3" on "$EXT4" "$F_SYSTEM4" off 2>$TMP
 15 FSTYPE=$(cat $TMP)
 16 [ -z "$FSTYPE" ] && FSTYPE="ext3"
 17 rm -f $TMP
 18 echo "Your choosen the filesytem is $FSTYPE"

解释:

  --radiolist    <text> <height> <width> <list height> <tag1> <item1> <status1>...这个对照着来就是了。

3行,$$是当前脚本的PID(进程号)。

14行,该用引号就用引号,没有捷径,我试了,如果把"$EXT2" "$F_SYSTEM2" off "$EXT3" "$F_SYSTEM3" on "$EXT4" "$F_SYSTEM4" off写到一个变量里是不可以的。

14行,2>$TMP的作用是,标准错误输出到TMP中。(至于这种写法,具体不大清楚,有知道的,请留言,反正我这么写就可以)

16行,判断FSTYPE这个字符串长度是否为0,如果为0,则为真,然后为它设置一个默认值。

运行结果: 

如果用$?在dialog下面接受返回值,选择确定则返回0,选择取消则返回1. 

猜你喜欢

转载自blog.csdn.net/weixin_39465823/article/details/88829827