如何创建一个菜单Bash脚本

331 阅读2分钟

在Bash脚本中,似乎有各种各样的方法来接受来自用户的数据。另一方面,允许参与者输入,可能会引起一些问题。主要的困难是数据的完整性,这就需要考虑到所有潜在的输入。为Bash代码创建一个多选面板是解决所有这些问题的一个简单方法。要使用这种方法,你可以构建一个简单的、预定义的选择集,用户可以从中选择。在这个简短的教程中,我们将看看如何在Bash脚本中制作一个基本的众多选项菜单,通过Ubuntu 20.04系统终端使用选择结构和case条款。

例子01

首先,让我们通过一个简单的例子来阐述,看看用户如何在Ubuntu 20.04系统的bash脚本中创建一个菜单。我们在Ubuntu 20.04桌面屏幕上借助 "Ctrl+Alt+T "命令的快捷方式打开了终端外壳。终端将在几秒钟内被打开。

终端成功启动后,为此使用 "touch "指令创建一个名为 "menu.sh "的新bash文件。我们在shell中使用 "nano "指令在GNU Nano编辑器中打开它,就像下面的输出图片一样。

$ touch menu.sh
$ nano menu.sh

由于该文件是在Nano编辑器中打开的,让我们做一个bash代码来创建一个菜单。首先,在文件的顶部添加bash支持,即 "#!/bin/bash"。这里使用了内置变量 "PS3 "来要求用户输入其选择。

该变量将保存用户的选择号码,并在选择结构中利用它。然后,我们使用 "select "结构从一个使用索引号的字符串数组中获取值,即用户选择的选择。如果选择匹配,do语句将显示用户选择的值,并在终端上显示用户选择的索引号。这里使用了"i"变量迭代器来获取数值,而内置的"i "变量迭代器来获取数值,而内置的"REPLY "变量则用来获取索引选项。

用 "Ctrl+S "键将新创建的bash代码保存在文件中,用 "Ctrl+X "快捷键退出该文件。现在我们已经回到了终端。让我们运行新制作的bash文件来看看结果。

为此,使用 "bash "命令,同时输入文件名,如下所示。输出首先在终端显示5个选项。用户必须选择其中的一个。第一次,用户选择了3,得到了 "William "这个数值,第二次在终端shell中输入数值1后得到了 "John"。通过 "Ctrl+Z "快捷键退出运行。

$ bash menu.sh

例子02

正如你所看到的,上面的例子并没有涉及到在选择菜单时退出的选项。所以,在我们的下一个例子中,我们也将涵盖退出选项。为了更新代码,打开bash文件 "menu.sh"。打开后,你不需要改变bash支持和 "PS3 "变量,因为它们将继续被使用。

另一方面,你需要添加额外的代码行。我们将创建一个菜单,让我们的用户进行数学运算。为此目的,我们将利用 "选择 "结构中的case语句。在 "PS3 "变量之后,我们声明了一个字符串的列表,其中有5个不同的值。列表中的每个值都代表1个数学运算。

你可以看到,列表中还包含了 "退出 "选项,以便在被用户选中后退出菜单。列表将被作为一个菜单使用。这里使用了选择结构。这个选择结构使用值,即 "PS3 "值,从一个列表中搜索选项,即 "cal"。

在从列表中搜索选项后,案件选项将与索引号列出的选项相匹配。然后,case语句中的特定选项将被执行,并将进行计算。如果用户输入了1,"Sum "案例将被执行。在每个案例中,有两个读语句被用来进行计算。之后,echo语句将利用两个变量对两个变量进行所需的操作并显示。sum案例到此结束,其他案例将被启动。

如果用户输入2,"提交 "案例将被执行,计算用户输入的两个整数的减法,使用"-"运算符。当用户输入3的时候,"Div "选项将被执行,使用"/"号对两个整数进行除法。当用户将4作为输入时,第4个选项将被调用,并使用 "*"运算符进行乘法运算。

最后,当用户输入5时,选择语句将执行 "退出 "情况。Quit案例将显示菜单已经存在的信息,并在其中的break关键字的帮助下停止代码的进一步执行。如果用户输入了错误的选项号码,即1到5以外的号码,它将显示用户输入了无效的选择的信息。

当你运行该代码时,它将显示5个菜单选项。用户添加了1作为其选择,并进入了 "Sum "案例。然后,添加了两个整数,并得到了两个整数的计算之和。所以,所有其他的选项都已经执行了。最后,退出选项被调用以退出菜单。

$ bash menu.sh

总结

这篇文章包含了非常简单易懂的说明,在bash脚本的帮助下,在终端创建一个菜单。我们使用了选择结构、case语句、PS3变量和列表来实现高质量的结果。