帮我用shell写一个方向键控制的菜单
时间: 2023-10-25 21:09:07 浏览: 37
好的,可以参考下面的代码,运行时可以通过上下方向键来选择列表项,通过回车键来确认选择。
```
#!/bin/bash
# 定义菜单列表和默认选项
OPTIONS=("选项1" "选项2" "选项3" "退出")
DEFAULT_OPTION=0
# 获取列表长度
LEN=${#OPTIONS[@]}
# 设置光标位置
CURRENT=$DEFAULT_OPTION
# 显示菜单
select_option() {
clear
echo "使用上下箭头选择菜单项,然后按回车键确认选择:"
for ((i=0;i<$LEN;i++)); do
if [ $i -eq $CURRENT ];
then echo "> ${OPTIONS[$i]}";
else echo " ${OPTIONS[$i]}";
fi
done
}
# 轮询键盘输入
while true; do
select_option
read -sn3 key # 读取3个字符
if [[ $key = $'\e[A' ]]; then # 上箭头
((CURRENT--))
if [ $CURRENT -lt 0 ]; then
CURRENT=$((LEN-1))
fi
elif [[ $key = $'\e[B' ]]; then # 下箭头
((CURRENT++))
if [ $CURRENT -ge $LEN ]; then
CURRENT=0
fi
elif [[ $key = "" ]]; then # 空格键或回车键
if [ $CURRENT -eq $((LEN-1)) ]; then # 如果选择退出
exit 0
else
echo "你选择了: ${OPTIONS[$CURRENT]}"
break
fi
fi
done
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)