博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用shell创建一个简单的菜单bash select用法
阅读量:6216 次
发布时间:2019-06-21

本文共 1369 字,大约阅读时间需要 4 分钟。

  hot3.png

概述

写脚本的时候会碰到创建交互式菜单的情况,比如碰到写一个lnmp一键安装脚本的时候会让用户选择安装mysql的版本或者选择安装各种组件,总之在创建菜单是很常见的。

而select是bash的一种扩展应用,让用户可以在一组不同的值中选择,类似下面

This is a menu TestPlease Choose what you want1) bugger2) linux:#?

之后你就输入前面的菜单选择就是了

实例代码

#!/bin/bashecho "Please select your favorite linux distribution"linux_distributions="Ubutnu Fedora Centos Arch"select linux_distribution in $linux_distributions:do     echo "you selected $REPLY $linux_distribution"done

上面要注意几个地方,select这个循环内容里面包含的是选择之后要执行的东西REPLY这个变量就是你选择的菜单的号码,其实不难,比如再比如下面

#!/bin/bashubuntu(){    echo "This is ubuntu func"}fedora(){    echo "This is fedora func"}centos(){    echo "This is centos func"}arch(){    echo "This is arch func"}echo "Please select your favorite linux distribution"linux_distributions="Ubutnu Fedora Centos Arch"select linux_distribution in $linux_distributions:do     case $REPLY in    1) ubuntu    ;;    2) fedora    ;;    3) centos    ;;    4) arch    ;;    *) echo "please choose 1-4"    ;;    esacdone

执行结果

Please select your favorite linux distribution1) Ubutnu2) Fedora3) Centos4) Arch:#? 1This is ubuntu func#? 2This is fedora func#? 3This is centos func#? 4This is arch func#? 5please choose 1-4#? 6please choose 1-4#?

要注意的地方

select可能有的shell会报错,比如zsh ./test.sh: 9: ./test.sh: select: not found

其实只要指定shell去执行就可以

bash + 要执行的脚本

欢迎关注Bboysoul的博客 Have Fun

转载于:https://my.oschina.net/u/3778921/blog/2218995

你可能感兴趣的文章
使用ajax用户名密码登录后转发至WEB-INF下的方法
查看>>
JVM类加载机制详解(一)JVM类加载过程
查看>>
解决 Hudson 控制台输出乱码
查看>>
linux的文件操作
查看>>
centos systemctl 配置详解
查看>>
Git中三种文件状态及其转换
查看>>
规格模式取代sql查询代码
查看>>
javascript引用动态变量名的变量值
查看>>
实现struts2零配置流程
查看>>
用maven+springMVC创建一个项目 【转】
查看>>
Wireshark过滤规则实践第一篇:显示过滤器
查看>>
U-boot在S3C2440上的移植详解(五)--- yaffs2文件系统下载
查看>>
android通过okhttp访问自签名https网站(单向)
查看>>
[leetcode] Valid Sudoku
查看>>
【Homebrew】Error: Failure while executing: git config --local --replace-all homebrew.private true
查看>>
lua面向对象编程
查看>>
Cobbler极简教程
查看>>
rpm包安装过程中依赖问题“libc.so.6 is needed by XXX”解决方法
查看>>
js--页面元素位置
查看>>
[FindBugs分析记录]use of non-short-circuit logic
查看>>