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
这是我用来编辑各种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