我在Bash中构建了一个简单的选择菜单.它当前正在水平显示菜单(带标签),如下所示:
1) Create a VM from scratch 3) Command-line Usage
2) Management Menu 4) Quit
Run Code Online (Sandbox Code Playgroud)
我希望列表看起来像这样:
1) Create a VM from scratch
2) Management Menu
3) Command-line Usage
4) Quit
Run Code Online (Sandbox Code Playgroud)
更新:这是我的代码:
PS3="Please choose a valid option : "
OPTIONS=("Create a VM from scratch" "Management Menu" "Command-line Usage" "Quit")
select opt in "${OPTIONS[@]}"; do
case $opt in
"Create a VM from scratch")
createit
exit
;;
"Management Menu")
mgmtmenu
exit
;;
"Command-line Usage ")
help
;;
"Quit")
exit
;;
*) echo invalid option;;
esac
done
Run Code Online (Sandbox Code Playgroud)
如何在每个选项上显示选择菜单?
Bash定义了一个$COLUMNS
读取的环境变量select
.
正如bash中所见man
:
Run Code Online (Sandbox Code Playgroud)COLUMNS Used by the select compound command to determine the terminal width when printing selection lists. Automatically set if the checkwinsize option is enabled or in an interactive shell upon receipt of a SIGWINCH.