首页 > 系统相关 >ubuntu select控制语句不退出

ubuntu select控制语句不退出

时间:2023-07-15 23:11:49浏览次数:50  
标签:语句 选择 ## break mode rel ubuntu msg select

解决方法:
如果用户想跳出选择循环,需要在循环体中根据条件在每个分支后增加break语句。

1.用 case 判断:

用字符串选择分支:

msg_info "请选择 dev 更新到哪个 Release 分支,数字(其他数字手动输入): "
select mode in "code" "go" "java"
do
  case ${mode} in
    "code")
        # msg_ok "选择了: ${mode}"
        rel="code"
        break  ## 不写 break ,选择后不会退出
    ;;
    "go")
        # msg_ok "选择了: ${mode}"
        rel="go"
        break  ## 不写 break ,选择后不会退出
    ;;
    "java")
        # msg_ok "选择了: ${mode}"
        rel="java"
        break  ## 不写 break ,选择后不会退出
    ;;
    *)
        ## 让用户自己输入值
        read -p "请输入 dev 更新到哪个 Release 分支: " rel
    ;;
  esac
done  ## select END

用数字选择分支:

msg_info "请选择 dev 更新到哪个 Release 分支,数字(其他数字手动输入): "
select mode in "code" "go" "java"
do
  case ${REPLY} in
    1)
        # msg_ok "选择了: ${mode}"
        rel="code"
        break  ## 不写 break ,选择后不会退出
    ;;
    2)
        # msg_ok "选择了: ${mode}"
        rel="go"
        break  ## 不写 break ,选择后不会退出
    ;;
    3)
        # msg_ok "选择了: ${mode}"
        rel="java"
        break  ## 不写 break ,选择后不会退出
    ;;
    *)
        ## 让用户自己输入值
        read -p "请输入 dev 更新到哪个 Release 分支: " rel
        break  ## 不写 break ,选择后不会退出
    ;;
  esac
done  ## select END

REPLY:是获取 select 循环对应的数字序号的环境变量。


2.用 if 语句判断选择:

msg_info "请选择 dev 更新到哪个 Release 分支,数字(其他数字手动输入): "
select mode in "code" "go" "java"
do
  if [ "code" = "${mode}" ]; then
      msg_ok "选择了: ${mode}"
      rel="code"
      break  ## 不写 break ,选择后不会退出
  elif [ "go" = "${mode}" ]; then
      msg_ok "选择了: ${mode}"
      rel="go"
  elif [ "java" = "${mode}" ]; then
      msg_ok "选择了: ${mode}"
      rel="java"
  else
      ## 让用户自己输入值
      read -p "请输入 dev 更新到哪个 Release 分支: " rel
      break  ## 不写 break ,选择后不会退出
  fi
done  ## select END





参考:
《跟老男孩学Linux运维》P242
https://www.jb51.net/article/70314.htm




标签:语句,选择,##,break,mode,rel,ubuntu,msg,select
From: https://www.cnblogs.com/wutou/p/17557159.html

相关文章

  • ubuntu history 历史命令条数设置 显示日期
    Linux版本中,支持查看历史命令。0.前言Linux不同的发行版的设置的文件也不一样。Ubuntu:vim~/.bashrcCentOS:vim~/.bashrc或vim/etc/profile下面命令告诉你,历史命令保存在哪个文件:echo$HISTFILE历史命令保存在:~/.bash_history文件中1.修改默认历史条数1)查......
  • Ubuntu学习:获取ip地址
    参考:https://www.howtouseubuntu.com/network/ubuntu-command-terminal-find-ip-address-in-ubuntu/当使用命令行在Ubuntu系统上获取IP地址时,以下是几个示例:使用ip命令获取IP地址:$ipaddrshow示例输出:1:lo:<LOOPBACK,UP,LOWER_UP>mtu65536qdiscnoqueuestateUNKN......
  • Perl学习笔记3_条件语句循环
    1.条件语句:if(boolean_expr0){#expr0为true时执行}elsif(boolean_expr1){#expr1为true时执行}else{#没条件匹配时执行}unless(boolean_expr0){#expr0为false时执行}elsif(boolean_expr1){#expr1为true时执行}else{#没......
  • Perl学习笔记4_命令行运行perl语句
    命令行选项例子:catfile.txt|perl-ne'$a+=s/pattern//g;END{print"$a\n"}'作用:计算文件file.txt中匹配“pattern”的个数。解释:1.cat显示文件内容,通过管道将内容送给perl程序处理;如果使用perl-e''file.txt的方式,file.txt将会被修改。使用管道,可以保证原文件......
  • mysql杀掉语句
    如何实现MySQL杀掉语句介绍MySQL的"杀掉语句"指的是终止正在执行的SQL语句,通常用来取消长时间运行或者错误的查询。作为一名经验丰富的开发者,我将指导你如何实现杀掉MySQL语句的步骤和相应的代码。流程下面是实现MySQL杀掉语句的步骤及相应代码的展示:步骤代码说明1......
  • mysql三表连接查询sql语句
    实现MySQL三表连接查询SQL语句的步骤在MySQL中,我们可以通过使用JOIN关键字来实现多个表的连接查询。具体而言,三表连接查询是指同时连接三张表,根据表之间的关联关系进行数据的查询。下面是实现MySQL三表连接查询SQL语句的步骤:步骤一:建立三张表在进行三表连接查询之前,首先需要建立......
  • SQLServer 查询语句指定排序规则(查询时区分大小写)
    SQLServer查询语句指定排序规则(查询时区分大小写)介绍可以使用COLLATE子句将字符表达式应用于某个排序规则。为字符文本和变量分配当前数据库的默认排序规则。为列引用分配列的定义排序规则。COLLATE定义数据库或表列的排序规则,或应用于字符串表达式时的排序规则强制转换......
  • 利用U盘给Intel NUC重装Ubuntu20.04系统
    背景因为社团里刚好有一个被玩坏的IntelNUC,我又刚好对此感兴趣,于是学长就交给我这一项任务,让我给这台NUC刷机。目录NUC刷机基本上简单分为四步一、格式化U盘二、下载Ubuntu20.04系统镜像三、将系统镜像写入U盘,制成启动盘四、把启动盘里的系统整到NUC里,重装系统,完成刷机。......
  • Windows子系统Ubuntu或虚拟机Ubuntu通过编译源码的方式安装wine8.0.1
    wine源码编译安装下载源码源码链接为:wine源码本文以8.1.1版本为例,下载的源码包为:wine-8.11.tar.xz拷贝包到Ubuntu使用xftp或其他工具,将压缩包拷贝到ubuntu下的home/$username/目录解包tar-Jxfwine-8.11.tar.xz //xz格式的包或tar-xvfyour_tar_file.tar //tar格式......
  • SQL语句执行顺序
    selectdistinct查询列表(要查的字段)from左边的表们s连接类型(left|inner)join右边的表们son连接条件where筛选条件groupby分组的列表(按什么字段分组)havinghaving_conditionorderby排序的字段limitlimitnumber;1f......