我怎样才能在封面脚本中创建精选食物选择?

我正在开发一个简单的bash脚本,我打算在其中创建一个精选食物选择,类似于:

$./script

echo "Choose your option:"

1) Option 1  
2) Option 2  
3) Option 3  
4) Quit  

而且根据客户的选择,我希望实施各种活动。 我是一个覆盖脚本noob的bash,我看了一些解决方案的互联网,但实际上并没有真正具体的东西。

0
2019-05-05 10:19:17
资源 分享
答案: 4

目前在serverfault地址中有相同的查询。 那里的补救措施使用了鞭尾

0
2019-05-08 11:02:57
资源

假设您打算使用简单的shell手稿食物选择(没有花哨的UI),请从http://www.tldp.org/LDP/abs/html/testbranch.html检查食物选择实例。

0
2019-05-08 10:54:08
资源
#!/bin/bash
# Bash Menu Script Example

PS3='Please enter your choice: '
options=("Option 1" "Option 2" "Option 3" "Quit")
select opt in "${options[@]}"
do
    case $opt in
        "Option 1")
            echo "you chose choice 1"
            ;;
        "Option 2")
            echo "you chose choice 2"
            ;;
        "Option 3")
            echo "you chose choice $REPLY which is $opt"
            ;;
        "Quit")
            break
            ;;
        *) echo "invalid option $REPLY";;
    esac
done

在需要select循环退出的任何地方添加break声明。 如果未执行break,则重新呈现select声明漏洞以及食物选择。

在第三种方案中,我包含了由select声明设置的变量,以表明您可以访问这些值。 如果你选择它,肯定会导致:

you chose choice 3 which is Option 3

您可以看到$REPLY包含您在提示符下输入的字符串。 它被用作数组${options[@]}的索引,就好像数组是基于1的一样。 变量$opt具有数组中该索引的字符串。

请记住,选择可以直接在select声明中直接检查清单,类似于:

select opt in foo bar baz 'multi word choice'

但是由于选择中的房间,你不能将这样的清单放在标量变量中。

如果您在文档中选择,您还可以使用文档全局:

select file in *.tar.gz
0
2019-05-08 06:09:18
资源

由于这是针对Ubuntu的,因此您需要使用设置的后端debconf来使用。 您可以通过以下方式找出debconf后端:

sudo -s "echo get debconf/frontend | debconf-communicate"

如果它之后声称“对话”,则很可能使用whiptaildialog。 在Lucid上它是whiptail

如果不尽如人意,请使用丹尼斯威廉姆森澄清的bash“select”。

0
2019-05-07 23:08:55
资源