我构建了一个很小的菜单,用于在bash终端中使用多个选项,以通过数字键选择。
#!/bin/bash
PS3='Teleport to ... '
options=("→ option 1" "→ option 2" "Quit")
select opt in "${options[@]}"
do
case $opt in
"→ option 1")
echo "option 1"
break
;;
"→ option 2")
echo "option 2"
break
;;
"Quit")
break
;;
*) echo invalid option
break
;;
esac
done
目前,我仍然需要通过按 enter 来确认选择。是否可以直接使脚本响应第一个按键的输入?
read -n 1
读取一个字符。但是,您不能将select
与之一起使用,因此您必须自己编写while
循环。
是的,使用bash
(而不是sh
!),您可以使用以下内容:
_KEY=
read -d '' -sn1 _KEY