shell编程——流控制case和select

在shell编程里有时候需要出现交换界面,让使用者来选择要执行的功能,如下面所示,这时候就需要用到case和select进行配合

请选择功能:
1) 退出
2) 系统升级
3) 防火墙配置
4) tomcat部署
5) 待定
#? 

case语法:

case 变量 in
条件1)
   执行语句1;;
条件2)
   执行语句2;;
*)
   执行语句3;;
esac  #就是case倒着写

select语法:

select 变量 in 列表
do
  执行语句
  break #如果需要退出循环,可加break
done

以上面为例,要想实现此功能,脚本如下:

echo "请选择功能:"
select var in "退出" "系统升级" "防火墙配置" "tomcat部署"  
do                            
case $var in                  
    "退出")
      echo "谢谢使用!"
      exit 0;;
    "系统升级")
      echo "系统升级开始,请耐心等待.....";;
    "防火墙配置")
      echo "防火墙正在进行配置,请稍后.....";;
    "tomcat部署")
      echo "采集程序开始部署,请耐心等待....."
    *) #表示除前四种情况外都匹配这里
      echo "选项无效,请重新输入!";;
esac
break
done

需要注意的是,如果在脚本里加了把报错信息输出到文件的语句:exec 2>test.log
则只会显示如下:

[root@localhost ~]# sh select_run.sh 
请选择功能:

底下的选项就不会显示在屏幕上,这时就需要使用管道文件fifo解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值