首页 > 系统相关 >Shell 脚本实现上下键选择文本

Shell 脚本实现上下键选择文本

时间:2024-02-02 20:45:37浏览次数:23  
标签:脚本 选项 Shell option index selected choices 文本 Option

#!/bin/bash


# 函数:显示选择列表并返回用户选择的选项
# 参数:
#   $1 - 选项数组
# 返回值:
#   用户选择的选项
# 定义选择函数
select_option() {
  choices=("$@")  # 将选项数组声明为全局变量
  selected=0      # 初始化选择索引

  while true; do
    clear
    for index in "${!choices[@]}"; do
      if [ $index -eq $selected ]; then
        printf "\033[31m> ${choices[$index]}\033[0m\n"  # 高亮显示选中的选项
      else
        echo "  ${choices[$index]}"
      fi
    done

    read -n1 -s key  # 读取单个按键并保持输入的隐私

    case "$key" in
      A)  # 上箭头
        if [ $selected -gt 0 ]; then
          selected=$((selected - 1))
        fi
        ;;
      B)  # 下箭头
        if [ $selected -lt $(( ${#choices[@]} - 1 )) ]; then
          selected=$((selected + 1))
        fi
        ;;
      "")  # 回车键
        break
        ;;
    esac
  done

  # 打印最终结果日志
  selected_option="${choices[$selected]}"
  echo "最终选择:$selected_option"
}

# 定义选项数组
options=("Option 1" "Option 2" "Option 3" "Option 4")

# 调用选择函数,并将选项数组作为参数传入
select_option "${options[@]}"

# 显示用户选择的选项
echo "你选择了:$selected_option"

 

标签:脚本,选项,Shell,option,index,selected,choices,文本,Option
From: https://www.cnblogs.com/tedblog/p/18003791

相关文章

  • Linux基础47 Ansible之ad-hoc, 命令模块(command, shell, script), 软件管理模块(yum,
    Ansible之ad-hoc一、什么是ad-hoc1.什么是ad-hocad-hoc简而言之就是“临时命令”,执行完即结束,并不会保存2.ad-hoc使用场景可以用作查看远程机器的进程,或者磁盘,或者拷贝文件3.ad-hoc命令使用[root@m01~]#ansibleweb01-mshell-a'free-m'web01|CHANGED|rc=......
  • 从TF-IDF 到BM25, BM25+,一文彻底理解文本相关度
    相关性描述的是⼀个⽂档和查询语句匹配的程度。我们从搜索引擎召回时,肯定希望召回相关性高的数据,那么如何来量化相关度呢。首先,我们定义,一个文档doc,由多个词语term组成。最早,通过最简单的TF-IDF来衡量。TF-IDF朴素的思想,相关度应该是词语权重、文档权重的融合。词频TF(Ter......
  • Shell中set -e和if语句的组合使用
    shell脚本开头加上set-e命令后,在运行过程中如果出现返回值为非零,整个脚本就可以立刻退出。假如脚本中有if判断,很可能if条件的返回值是不为0的。一开始我是把hadoopfs-test-d$hdfs_folder单独写一行的,由于folder不存在,所以脚本直接退出。所以遇到这种情况,需要把有可能是结......
  • 油猴脚本某创力文档-某人文库免费文档下载
    描述这是一个用于Tampermonkey或其他支持用户脚本的浏览器扩展的油猴脚本。看到论坛经常有小伙伴们需要下载某创力文档-某人文库一些免费文档,但是相关网站浏览体验不好各种广告,各种登录验证,需要很多步骤才能下载文档,该脚本就是为了解决您的烦恼而诞生,尽可能做到自动化。安装......
  • NLP自然语言处理—主题模型LDA案例:挖掘人民网留言板文本数据|附代码数据
    全文链接:http://tecdat.cn/?p=2155最近我们被客户要求撰写关于NLP自然语言处理的研究报告,包括一些图形和统计输出。随着网民规模的不断扩大,互联网不仅是传统媒体和生活方式的补充,也是民意凸显的地带。领导干部参与网络问政的制度化正在成为一种发展趋势,这种趋势与互联网发展的时......
  • 跟着微软官方学习Powershell-在 PowerShell 中发现命令
    1、说明PowerShell预安装了大量命令。若要有效地使用PowerShell命令,您需要了解它们的工作原理。例如,你需要知道命令所采用的参数,以及可以使用多种方法来调用命令。它还有助于了解命令返回的内容、返回的类型以及命令的属性。通过了解这些事项,你可以配置如何显示帮助。此外,还......
  • mozhe靶场: WebShell文件上传漏洞分析溯源(第5题) 题解(使用哥斯拉)
    哥斯拉由java编写,可以在linux上使用.个人认为比冰蝎好用,用冰蝎连不上这个靶场,但是哥斯拉可以连的上.github搜哥斯拉就能下载首先登陆后台,弱口令adminadmin点击添加文章,尝试上传一句话木马(一句话木马可以点击哥斯拉的生成)webshell.asp<%evalrequest("pass")%>......
  • 文本框文字换行
    容器为块元素css样式添加:text-overflow:ellipsis;word-wrap:break-word; 实现效果: 代码:<viewclass="message-box"><imageclass="avatar"/><viewclass='text-box'><textclass="text">你好你好你好......
  • phpMyAdmin 未授权Getshell
    前言做渗透测试的时候偶然发现,phpmyadmin少见的打法,以下就用靶场进行演示了。0x01漏洞发现环境搭建使用metasploitable2,可在网上搜索下载,搭建很简单这里不多说了。发现phpmyadmin,如果这个时候无法登陆,且也没有前台的漏洞,可以继续在这个phpmyadmin目录下做文章。发现setup......
  • shell语句快捷用法
    bat去掉文件名字中的(1)@echooffsetlocalenabledelayedexpansionset"search=(1)"set"replace="for%%fin(*)do(set"filename=%%~nf"set"extension=%%~xf"set"newfilename=!filename:%search%=%replace%!"ren&......