Whiptail 是一种工具,可让您从 shell 脚本显示对话框。 这使您的 shell 脚本看起来更酷、更专业,同时仍提供广泛的功能。
在本模块中,我们将学习如何使用 鞭尾 在你的 shell 脚本中使它们更好!
安装鞭尾
安装whiptail非常简单。 要安装它,只需键入:
$ sudo apt install whiptail
鞭尾盒
Whiptail 有很多不同的盒子类型供您选择。 在这里,我们讨论了whiptail 提供的一些更重要的功能:
1. 添加是/否框
生成这样一个框的语法是:
$ whiptail --yesno [TEXT] [HEIGHT] [WIDTH]
是/否框允许您根据用户的选择控制执行流程:
如果用户选择是,则whiptail 返回值1,否则,如果用户选择否,则返回值0。如果whiptail 遇到错误或用户未指定选择就退出,则返回-1。
2. 消息框
生成消息框的语法是:
$ whiptail --msgbox [TEXT] [HEIGHT] [WIDTH]
消息框与是/否框非常相似,只是它只带有一个确定按钮。 按提示存在 Enter 并且 shell 脚本继续执行。
3. 输入框
输入框是whiptail 的一些最重要的功能。 创建输入框的语法是:
$ whiptail --inputbox [TEXT] [HEIGHT] [WIDTH] [INIT]
它还启用滚动,以便在输入字符串长于对话框宽度的情况下,输入字段将被滚动。 它还允许我们指定一个字符串 (INIT),我们可以用它来初始化我们的输入框。 它还允许用户在输入错误的情况下借助退格键对输入进行更正。
默认情况下,它将消息打印到 标准错误 但是您也可以将输出存储在一个变量中,然后在您的 shell scipts 中使用它!
4. 密码箱
密码框与输入框非常相似,只是您输入的任何内容都不会反映给用户。 它的 synatx 也类似于输入框:
$ whiptail --passwordbox [TEXT] [HEIGHT] [WIDTH] [INIT]
您还可以使用 INIT 指定一个“默认密码”,这并不是真正推荐的。
4. 菜单框
顾名思义,菜单框为您提供了一个可供选择的选项列表。 相同的语法是:
$ whiptail --menu [TEXT] [HEIGHT] [WIDTH] [MENU HEIGHT] [TAG] [ITEM]
在这里,我们还需要指定 MENU HEIGHT,它决定了 Prompt 菜单上将显示多少项。 然后我们需要指定一个 ITEM 和一个 TAG,用于识别该项目。 您可以指定任意数量,因为whiptail 允许滚动
退出时,whiptail 会打印出选定的 TAG 到 标准错误.
5. 其他箱子
仍然有许多不同的盒子可用于鞭尾,例如:
- 信息框
- 清单框
- 单选框
- 仪表盒
您可以通过使用 man 命令来全面了解这些:
$ man whiptail
鞭尾选项
您可以使用 flags 进一步自定义whiptail promts:
- -清除 :退出时屏幕将被清除为屏幕属性。 如果启用了备用屏幕切换,这在 xterm(和后代)中不起作用,因为在这种情况下,俚语写入(并清除)备用屏幕。
- –defaultno :对话框将打开,光标位于“否”按钮上。
- –是按钮 [TEXT] :更改是按钮的文本
- – 无按钮 [TEXT] : 更改无按钮的文本
- – 在项目中 :菜单、清单和单选列表小部件将仅显示标签,而不是项目字符串。 菜单小部件仍然需要指定一些项目,但清单和单选单只需要标签和状态。
- – 标签 :不要在菜单、清单和单选列表小部件中显示标签。
- –输出-FD [FD] : 将whiptail 直接输出到特定的文件描述或者
- -标题 [TEXT] : 设置框的标题
结论
因此,在本模块中,我们学习了如何有效地使用whiptail 来创建有效的shell 脚本。 这为您的 shell 脚本提供了非常专业的外观和更好的用户体验。 您甚至可以通过它的手册页进一步探索该工具!