赞
踩
Linux的shell中利用select实现菜单选择
select循环主要用于创建菜单,按数字顺序排列的菜单项将显示在标准错误上,并显示PS3 提示符,等待用户输入。用户输入菜单列表中的某个数字,执行相应的命令。
select是个"无限循环",因此要用break命令退出循环,或用exit 命令终止脚本。
select 经常和case 联合使用。
补充:
case和select结构在技术上说并不是循环, 因为它们并不对可执行代码块进行迭代。
但是和循环相似的是,它们也依靠在代码块顶部或底部的条件判断来决定程序的分支。
格式:
select variable [in list]
do
TT class="REPLACEABLE" >command...
break
done
案例1:
提示用户输入选择的内容,放在变量列表中。
注意:select命令使用PS3提示符
#!/bin/bash
#select 案例
#auth:odysee
#设置提示符字串
PS3="请选择您喜欢的生物:"
echo "=========================="
select thing in "cat" "dog" "girl"
do
echo
echo "您喜欢的生物是:${thing}"
echo "bye!"
echo "=========================="
#如果这里没有break将不停循环进行选择
break
done
执行脚本
案例2:
利用select和case模拟菜单
#!/bin/bash
#利用select和case模拟实现一个菜单
#auth:odysee
PS3="请输入选项:"
select number in "install" "uninstall" "update" "exit"
do
case $number in
"install")
echo "installing...";;
"uninstall")
echo "uninstalling...";;
"update")
echo "updating...";;
"exit")
break;;
*)
echo "no selection!!!"
esac
done
clear
执行脚本
测试完成
关于案例1有一个弊端,就是输入非指定数字未做判断。
欢迎大家给予宝贵的意见或者建议。
欢迎大家补充或者共享一些其他的方法。
感谢支持。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。