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

演示效果:
在这里插入图片描述

#!/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"

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值