bash脚本中的多选菜单
发布时间:2020-12-15 18:44:20 所属栏目:安全 来源:网络整理
导读:我是一个bash新手,但我想创建一个脚本,我希望允许用户从选项列表中选择多个选项. 基本上我想要的是类似于下面的例子: #!/bin/bash OPTIONS="Hello Quit" select opt in $OPTIONS; do if [ "$opt" = "Quit" ]; then echo done exit elif [ "$opt" = "Hello"
我是一个bash新手,但我想创建一个脚本,我希望允许用户从选项列表中选择多个选项.
基本上我想要的是类似于下面的例子: #!/bin/bash OPTIONS="Hello Quit" select opt in $OPTIONS; do if [ "$opt" = "Quit" ]; then echo done exit elif [ "$opt" = "Hello" ]; then echo Hello World else clear echo bad option fi done (来自http://www.faqs.org/docs/Linux-HOWTO/Bash-Prog-Intro-HOWTO.html#ss9.1) 但是我的脚本会有更多选项,我想允许选择倍数.所以这样的事情: 1)选项1 对他们选择的那些反馈意见也很好,例如,他们已经选择的标志旁边加上标志.例如,如果您选择“1”,我想要翻页以清除并重新打印: 1) Option 1 + 2) Option 2 3) Option 3 4) Option 4 5) Done 然后,如果您选择“3”: 1) Option 1 + 2) Option 2 3) Option 3 + 4) Option 4 5) Done 此外,如果他们再次选择(1)我希望它“取消选择”选项: 1) Option 1 2) Option 2 3) Option 3 + 4) Option 4 5) Done 最后当按下Done时,我想要在程序退出之前选择要显示的列表,如果当前状态是: 1) Option 1 2) Option 2 + 3) Option 3 + 4) Option 4 + 5) Done 按5应打印: Option 2,Option 3,Option 4 …脚本终止. 所以我的问题 – 这是否可能在bash中,如果有的话,是否有人能够提供代码示例? 任何建议将不胜感激.
我想你应该看看
dialog或
whiptail.
编辑: 这是一个使用您问题中的选项的示例脚本: #!/bin/bash cmd=(dialog --separate-output --checklist "Select options:" 22 76 16) options=(1 "Option 1" off # any option can be set to default to "on" 2 "Option 2" off 3 "Option 3" off 4 "Option 4" off) choices=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) clear for choice in $choices do case $choice in 1) echo "First Option" ;; 2) echo "Second Option" ;; 3) echo "Third Option" ;; 4) echo "Fourth Option" ;; esac done (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |