Linux shell select菜单选择实现代码

 更新时间:2021年07月28日 13:34:17   投稿:mdxy-dxy  
主要介绍了Bash Shell中的select命令简单使用示例,通常用于流程控制功能的实现,需要的朋友可以参考下

假设需要在shell下实现一个菜单,估计会使用 循环和read实现交互,在学习中发现一个select可在shell下很方便的实现这种交互菜单

1. select 语法

select var in ...
do
	#your code
done

2. 示例

#! /bin/bash
 
echo "what is your favorite color :" 
select color in "red" "blue" "green" "white" "black"
 do
     echo "you choose is $color"
     break
 done

Bash Shell中的select命令简单使用示例

前言

今天刚好写了一个自动化打包脚本,再次使用到了bash shell,好幸福的感觉。这里主要是想介绍一下select命令,这个命令
可以帮助我们完成菜单选择功能。

格式
我今天也是第一次使用select流程控制,在php、Java、C这些语言中并没有实现select功能。Bash Shell中,select格式如
下:

select $var in ${list[@]}
do
statements that can use $var
done

在select执行时,会根据list数组给出选择菜单,用户选择后的结果保存在$var变量中,然后执行statements语句。执行完成
后,再次给出菜单,等待用户选择。如果用户想跳出选择循环,需要在循环体中根据条件增加break语句。
示例
给出一个select的示例,大家可以参考:

#!/bin/bash
fruits=(
"apple"
"pear"
"orange"
"watermelon"
)
echo "Please guess which fruit I like :"
select var in ${fruits[@]}
do
if [ $var = "apple" ]; then
echo "Congratulations, you are my good firend!"
break
else
echo "Try again!"
fi
done

例子2

#!/bin/sh

select ch in "begin" "end" "exit"
do
    case $ch in
    "begin")
        echo "start something"
        ;;
    "end")
        echo "stop something"
        ;;
    "exit")
        echo "exit"
        break;
        ;;
    *)
        echo "ignorant"
        ;;
    esac
done;

运行效果:

yuxuecheng@linux:~/shellSource> ./select_test.sh
1) begin
2) end
3) exit
#? 1
start something
#? 2
stop something
#? 4
ignorant
#? begin
ignorant
#? 3
exit

说明:select是循环选择,一般与case语句使用。

相关文章

  • Shell脚本之文件批量创建与修改的简单方法

    Shell脚本之文件批量创建与修改的简单方法

    有时需要将文件内容进行修改,如果文件数量不多可以一个一个修改,那么如果文件数量很多一个一个修改很麻烦,这篇文章主要给大家介绍了关于Shell脚本之文件批量创建与修改的相关资料,需要的朋友可以参考下
    2021-06-06
  • Shell脚本一键安装Nginx服务自定义Nginx版本

    Shell脚本一键安装Nginx服务自定义Nginx版本

    这篇文章主要为大家介绍了Shell脚本一键安装Nginx服务,用户可自定义Nginx版本的脚本示例,有需要的朋友可以借鉴参考下,希望能够参考下
    2022-03-03
  • shell sleep睡眠命令的具体使用

    shell sleep睡眠命令的具体使用

    本文主要介绍了shell sleep睡眠命令的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • scp 将数据从一台linux服务器复制到另一台linux服务器

    scp 将数据从一台linux服务器复制到另一台linux服务器

    这篇文章主要介绍了scp 将数据从一台linux服务器复制到另一台linux服务器,需要的朋友可以参考下
    2017-09-09
  • Shell脚本实现的基于SVN的代码提交量统计工具

    Shell脚本实现的基于SVN的代码提交量统计工具

    这篇文章主要介绍了Shell脚本实现的基于SVN的代码提交量统计工具,本文直接给出实现脚本代码,需要的朋友可以参考下
    2015-06-06
  • nginx日志切割shell脚本

    nginx日志切割shell脚本

    nginx的日志文件没有rotate功能。如果你不处理,日志文件将变得越来越大,还好我们可以写一个nginx日志切割脚本来自动切割日志文件
    2014-03-03
  • shell脚本中set -e选项作用范围小结

    shell脚本中set -e选项作用范围小结

    本文主要介绍了shell脚本中set -e选项作用范围小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • putty实现自动登录的方法(ssh和ssh2)

    putty实现自动登录的方法(ssh和ssh2)

    这篇文章主要介绍putty实现自动登录的方法,需要的朋友可以参考下
    2013-02-02
  • Shell编程指南

    Shell编程指南

    这里汇总了一下关于shell编程的相关知识点,由简入深,非常的不错,这里推荐给大家
    2014-12-12
  • Linux shell数组循环的实例详解

    Linux shell数组循环的实例详解

    这篇文章主要介绍了Linux shell数组循环的实例详解的相关资料,这里举例说明如何实现shell数组循环,需要的朋友可以参考下
    2017-08-08

最新评论