Linux 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语句使用。

(0)

相关推荐

  • Linux 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" &

  • Linux shell实现HTTP服务示例代码

    一.前言 使用代理服务器 HAProxy 对 Mysql 做负载均衡是常用方案,为提高可用性,当某个 Mysql 出现问题时,例如服务器故障了,或者数据复制中断了,最好可以让 HAProxy 马上知道,然后停止向其转发请求 HAProxy 如何知道 Mysql 是否有问题呢? 二.解决思路 (1)编写一个shell脚本,检查 mysql 的状态,然后输出结果,例如状态正常时,返回状态码200及正确信息,否则返回状态码503及错误信息 (2)实现一个HTTP服务,有请求连接后,调用上面的检查脚本,

  • Linux 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" &

  • jQuery实现非常实用漂亮的select下拉菜单选择效果

    本文实例讲述了jQuery实现非常实用漂亮的select下拉菜单选择效果.分享给大家供大家参考,具体如下: 先来看如下运行效果截图: 在线演示地址如下: http://demo.jb51.net/js/2015/js-select-chose-style-menu-codes/ 具体代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtm

  • js实现Select头像选择实时预览代码

    本文实例讲述了js实现Select头像选择实时预览代码.分享给大家供大家参考.具体如下: 这里演示js实现Select头像选择,实时预览效果,在留言或评论的时候,让用户简易的选择头像,以前最常见的方式是使用单选框,当然使用其它的形式也可以,比如今天这个Select,下拉选框选择头像,也是不错的体验. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-select-ico-pic-view-codes/ 具体代码如下: <!DOCTYPE ht

  • linux shell中实现循环日期的实例代码

    下面通过一段代码给大家介绍linux shell中实现循环日期,具体代码如下所示: #!/usr/bin/env bash start_date="20180726" end_date="20180830" while [ "$start_date" -le "$end_date" ]; do stat_date=`date -d "$start_date" +%Y-%m-%d` echo $stat_da

  • linux shell流程控制语句实例讲解(if、for、while、case语句实例)

    一.shell条件语句(if用法) if语句结构[if/then/elif/else/fi] 复制代码 代码如下: if 条件测试语句 then action [elif 条件 action else action ] fi 如果对于:条件测试语句不是很清楚,可以参考:linux shell 逻辑运算符.逻辑表达式详解shell命令,可以按照分号分割,也可以按照换行符分割.如果想一行写入多个命令,可以通过"';"分割.如: 复制代码 代码如下: [chengmo@centos5 ~]$

  • Linux shell脚本基础学习详细介绍(完整版)第1/2页

    Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提. 1. Linux 脚本编写基础 ◆1.1 语法基本介绍1.1.1 开头程序必须以下面的行开始(必须方在文件的第一行):#!/bin/sh符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在这个例子中我们使用/bin/sh来执行程序.当编辑好脚本时,如果要执行该脚本,还必须使其可执行.要使脚本可执行:编译

  • Linux Shell编程绘制国际象棋棋盘

    这两天在学习一些shell编程的知识,在做到一道国际象棋的题目时,觉得有些意思,就将它写成博客. 先来看看国际象棋棋盘长啥样: 仔细想了会棋盘的分布规则,这个问题肯定有很多思路,我自己想到的是规则是 1.将棋盘行数作为一个大循环,循环8次,每次循环根据行号的奇偶来确定格子颜色的次序: 2.在单个行中,循环8次并判断列的奇偶数来确定打印颜色 以上思路能够打印出最简单的棋盘,但是shell中一个空格的显示形状并非正方形,而且是空格的高度大于宽度.因此需要在单个棋盘的行的打印循环外在加一层控制打印空格

  • Linux Shell 脚本编程入门教程

    从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁.用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操作.在Linux GUI日益完善的今天,在系统管理等领域,Shell编程仍然起着不可忽视的作用.深入地了解和熟练地掌握Shell编程,是每一个Linux用户的必修 功课之一. Linux的Shell种类众多,常见的有:Bourne Shell(/usr/bin/sh或/bin/sh).Bourne

随机推荐