• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Linux shell select菜单选择实现代码

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

假设需要在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人参与评论

请发表评论

全部评论

专题导读
上一篇:
工作中使用Shell实用脚本发布时间:2022-02-11
下一篇:
Shell调用curl实现IP归属地查询的脚本发布时间:2022-02-11
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap