版权声明:欢迎转发,转发请标明出处 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.