【shell】select in实现终端交互场景

序言

  • 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语句实例

扫描二维码关注公众号,回复: 17513956 查看本文章

created by shuaixio, 2024.03.30

猜你喜欢

转载自blog.csdn.net/baidu_35692628/article/details/137186791