首页 > 其他分享 >select-创建菜单

select-创建菜单

时间:2022-12-04 19:31:21浏览次数:43  
标签:菜单 创建 echo --- 命令 输入 序号 select

1、描述

主要作用就是创建菜单,默认提示符是#?,可以修改PS3来控制提示符  (cat生成菜单的方式被称为here文档)

select --> 也是循环的一种,它默认把数字或者序号对应的命令列出来,每输入一个数字或者序号,则会执行该数字或者序号对应的命令,执行完以后不退出脚本并且提示再次输入数字或者序号,如果用户需求执行完一个命令就退出,可以在每个判断下面加一个exit

REPLY变量记录了输入的内容,类似read不加变量时临时存放的值一样

2、实例

# 实例1: 执行完命令不退出脚本
#!/bin/bash
PS3="Please select a number: " # 自定义该程序的命令提示符(只限于该程序,系统的用PS1和PS2)定制自己需要的命令提示符
echo "Please chose number, 1: run w, 2:run top 3:run free, 4:run quit" # 让用户输入一个数字,并定义了输入1、2、3、4执行哪些相对应的命令
echo # 此echo用于换行
select i in w top free quit # 等同于for循环定义执行多个命令,而select会把多个命令列出来,然后根据用户输入的数字或者序号执行相对应的命令
do
case "$i" in # 判断用户输入的数字或者序号对照下面相对应的命令去执行
w) w ;;
top) top ;;
free) free ;;
quit) exit ;;
*) echo "Please input a number(1-4)."
esac
done

# 实例2: 从数组打印内容
#!/bin/bash
fruits=("apple" "pear" "orange" "watermelon")
PS3="======> Pkease guess which >> "
select i in ${fruits[@]}
do
echo $i
done

1) apple
2) pear
3) orange
4) watermelon
======> Pkease guess which >> 1
apple
======> Pkease guess which >> pear

======> Pkease guess which >> 2
pear

[root@ /cdly/awk]# echo ${fruits[@]}
apple pear orange watermelon

# 实例3: 获取REPLY值
[root@ /cdly/awk]# select i in aa bb cc; do echo "$i ---> ${REPLY}"; done
1) aa
2) bb
3) cc
#? 1
aa ---> 1
#? 2
bb ---> 2
#? 3
cc ---> 3
#? 4
---> 4
#? nimenhao
---> nimenhao

标签:菜单,创建,echo,---,命令,输入,序号,select
From: https://blog.51cto.com/cdly/5910030

相关文章