文章目录
- 序言
- 1. select in语句及其语法
- 2. select in和case语句相结合
- 3. 执行界面示例
序言
- shell脚本实现简单的终端交互功能,根据用户不同输入执行不同功能脚本
1. select in语句及其语法
-
select in是shell独有的一种循环,非常适合终端交互场景
-
该语句可以显示出带编号的菜单,用户输入不同的编号就可以选择不同菜单,并执行不同功能
-
select in语法:
select variable in value_list do statements done
- variable 表示变量,value_list 表示取值列表,in 是 shell 中的关键字
-
语法解释:
运行到 select 语句后,取值列表 value_list 中的内容会以菜单的形式显示出来, 用户输入菜单编号,就表示选中了某个值,这个值就会赋给变量variable, 然后再执行循环体中的 statements;
-
每次循环时 select 都会要求用户输入菜单编号,并使用环境变量 PS3 的值作为提示符,PS3 的默认值为#?,修改 PS3 的值就可以修改提示符;见2. 中的例子
-
CTRL + D可以结束select in循环
2. select in和case语句相结合
- 一个压缩tar包 | 推送tar包到远程仓库的脚本
#! /bin/bash
function compress()
{...}
function push()
{...}
function compress_and_push()
{...}
PS3="选择你想执行的操作: "
select operation in "制作tar包" "推送tar包" "制作并推送tar包"
do
case $operation in
"制作tar包")
read -p "请输入包名, 如xxx.tar.gz: " pkg_name
compress $pkg_name
break
;;
"推送tar包")
read -p "请输入包名, 如xxx.tar.gz: " pkg_name
push $pkg_name
break
;;
"制作并推送tar包")
read -p "请输入包名, 如xxx.tar.gz: " pkg_name
compress_push $pkg_name
break
;;
*)
echo "输入错误,请重新输入"
esac
done
3. 执行界面示例
【参考文章】
[1]. select in语法说明 (语法说明)
[2]. select in语句实例
created by shuaixio, 2024.03.30