bash 控制台上的菜单

Menus on the console in bash

这是我用来编辑各种conf文件的功能。它可以工作并且很简单,但我想知道是否可以扩展它以使用光标键 select 所需的文件。我相信命令 select 可以做一些非常奇特的扩展,也许这是一个选项?或者更好的方法可能只是让输出与下面相同,但 select 无需全屏即可(但由于控制台的性质,这可能是不可能的?)。例如,如果我做 info grep,我希望选项可以 select 像那里带下划线的菜单项一样(即比 select 菜单简单得多,但也很好奇请参阅简单的 select 选项)。

viconf ()
{
    COLUMNS=12;
    printf -v PS3 '\n%s ' 'Select option: ';
    printf "Edit config file:\n\n";
    select x in ~/.bashrc ~/.bash_profile ~/.bash_login ~/.profile ~/.custom ~/.inputrc ~/.vimrc;
    do
        vim $x;
        break;
    done
}

不,select 命令没有 select 离子。 您需要编写自己的函数才能使用菜单。

此外,如何在 bash

中获取按键也不是一个琐碎的问题

但是你可以尝试使用现有的项目,例如对话框: https://linux.die.net/man/1/dialog

如果你想用纯 shell 编写你的东西,你可以在 github 中查看我的 jks-manager。我写了一些程序来检测按键并在纯 posix shell 中做一些导航之王 我的工具只需要来自 jdk 的 sed、grep 和 keytool 即可使用 java 密钥库: https://github.com/sfkulyk/jks-manager