使用tput写的shell菜单

#!/bin/bash

# 清空屏幕
tput clear

# 获取终端尺寸
rows=$(tput lines)
cols=$(tput cols)

# 计算菜单的位置和尺寸
menu_width=40
menu_height=10
menu_top=$(( (rows - menu_height) / 2 ))
menu_left=$(( (cols - menu_width) / 2 ))

# 设置绘制属性
tput bold
tput setaf 6  # 设置文本颜色为青色

# 绘制菜单边框
for ((i = 0; i < menu_height; i++)); do
    tput cup $((menu_top + i)) $menu_left
    for ((j = 0; j < menu_width; j++)); do
        if [ $i -eq 0 ] || [ $i -eq $((menu_height - 1)) ] || [ $j -eq 0 ] || [ $j -eq $((menu_width - 1)) ]; then
            echo -n "#"
        else
            echo -n " "
        fi
    done
done

# 绘制菜单标题
title="漂亮的菜单"
title_length=${#title}
title_left=$(( (menu_width - title_length) / 2 + menu_left ))
tput cup $((menu_top + 2)) $title_left
echo "$title"

# 绘制菜单选项
options=("选项 1" "选项 2" "选项 3" "退出")
num_options=${#options[@]}
options_top=$((menu_top + 4))
options_left=$((menu_left + 2))

for ((i = 0; i < num_options; i++)); do
    tput cup $((options_top + i)) $options_left
    echo "${options[i]}"
done

# 处理用户输入
tput cup $((options_top + num_options + 2)) $options_left
read -p "请输入选项编号: " choice

case $choice in
    1)
        echo "您选择了选项 1"
        ;;
    2)
        echo "您选择了选项 2"
        ;;
    3)
        echo "您选择了选项 3"
        ;;
    *)
        echo "退出菜单"
        ;;
esac

# 恢复绘制属性
tput sgr0

# 移动光标到屏幕底部
tput cup $rows 0

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

亦读

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值