Bash 完全 CLI 交互式菜单

Bash 完全 CLI 交互式菜单

我知道有些程序可以制作 TUI(例如dialog, whiptail),允许在 bash 中进行选择。然而,我想要一个简单、漂亮、完全的 CLI 菜单(尽管实现起来可能并不简单)。

笔记:

  • 该计划应该不是清除终端(它应该保持当前终端内容完整)
  • 程序应该更改菜单的内容,而不是每次按键输入都吐出行

答案应该是 bash/shell 脚本。

给定一个字符串数组(本例中为 4):

options=(opt1 "option 2" another "option here")

我想构建一个菜单,其中突出显示所选选项(如果按下,将选择选项enter): 实施例1

如果用户按向上/向下箭头,程序应选择上一个/下一个项目并“循环”选项(当在第一个选项上按向上箭头时,选择将变为最后一个)。此示例显示按下向下箭头后的菜单: 实施例2

如果用户输入“opt”,菜单选择应仅显示以“opt”开头的选项,并将当前选择更改回第一项: 实施例3

这可能吗?如果是,请告诉我怎么做。另外,如果需要,我愿意添加任何描述。

答案1

原来有这个工具叫福子,这是一个模糊查找器。脚本应该是:

options=(opt1 "option 2" another "option here")
echo "Please choose an option:"
printf "%s\n" "${options[@]}" | fzy

这似乎是我想要的。

相关内容