在Bash中创建交互式菜单


文档摘要

在 Bash 中创建交互式菜单 在本教程中,我将向您展示如何在 Bash 中创建一个多选菜单,以便用户可以选择要执行的操作! 我们将重用上一章中的部分代码,因此如果您尚未阅读,请务必先阅读。 功能规划 让我们再次从脚本的主要功能开始: 检查当前磁盘使用率 检查当前 CPU 使用率 检查当前 RAM 使用率 检查确切的内核版本 如果您手边没有该脚本,这里是脚本本身: 接下来,我们将构建一个菜单,允许用户选择要执行的功能。 当然,您可以根据需要调整现有功能或添加新功能。 添加一些颜色 为了让菜单更“易读”且一目了然,我们将添加一些颜色函数。 在脚本的开头添加以下颜色函数: 您可以按如下方式使用颜色函数: 上述代码会输出字符串 ,并且文本颜色为蓝色!

在 Bash 中创建交互式菜单

在本教程中,我将向您展示如何在 Bash 中创建一个多选菜单,以便用户可以选择要执行的操作!

我们将重用上一章中的部分代码,因此如果您尚未阅读,请务必先阅读。

功能规划

让我们再次从脚本的主要功能开始:

  • 检查当前磁盘使用率
  • 检查当前 CPU 使用率
  • 检查当前 RAM 使用率
  • 检查确切的内核版本

如果您手边没有该脚本,这里是脚本本身:

#!/bin/bash ## # BASH menu script that checks: # - Memory usage # - CPU load # - Number of TCP connections # - Kernel version ## server_name=$(hostname) function memory_check() { echo "" echo "Memory usage on ${server_name} is: " free -h echo "" } function cpu_check() { echo "" echo "CPU load on ${server_name} is: " echo "" uptime echo "" } function tcp_check() { echo "" echo "TCP connections on ${server_name}: " echo "" cat /proc/net/tcp | wc -l echo "" } function kernel_check() { echo "" echo "Kernel version on ${server_name} is: " echo "" uname -r echo "" } function all_checks() { memory_check cpu_check tcp_check kernel_check }

接下来,我们将构建一个菜单,允许用户选择要执行的功能。

当然,您可以根据需要调整现有功能或添加新功能。

添加一些颜色

为了让菜单更“易读”且一目了然,我们将添加一些颜色函数。

在脚本的开头添加以下颜色函数:

## # Color Variables ## green='\e[32m' blue='\e[34m' red='\e[31m' clear='\e[0m' ## # Color Functions ## ColorGreen(){ echo -ne $green$1$clear } ColorBlue(){ echo -ne $blue$1$clear }

您可以按如下方式使用颜色函数:

echo -ne $(ColorBlue 'Some text here')

上述代码会输出字符串 Some text here,并且文本颜色为蓝色!

添加菜单

最后,为了添加我们的菜单,我们将为菜单选项创建一个带有 case 语句的独立函数:

menu(){ echo -ne " My First Menu $(ColorGreen '1)') Memory usage $(ColorGreen '2)') CPU load $(ColorGreen '3)') Number of TCP connections $(ColorGreen '4)') Kernel version $(ColorGreen '5)') Check All $(ColorGreen '0)') Exit $(ColorBlue 'Choose an option:') " read a case $a in 1) memory_check ; menu ;; 2) cpu_check ; menu ;; 3) tcp_check ; menu ;; 4) kernel_check ; menu ;; 5) all_checks ; menu ;; 0) exit 0 ;; *) echo -e "${red}Wrong option.${clear}"; menu ;; esac }

代码快速回顾

首先,我们使用一些颜色输出菜单选项:

echo -ne " My First Menu $(ColorGreen '1)') Memory usage $(ColorGreen '2)') CPU load $(ColorGreen '3)') Number of TCP connections $(ColorGreen '4)') Kernel version $(ColorGreen '5)') Check All $(ColorGreen '0)') Exit $(ColorBlue 'Choose an option:') "

然后,我们读取用户的答案并将其存储在名为 $a 的变量中:

read a

最后,我们使用 case 语句,根据 $a 的值触发不同的函数:

case $a in 1) memory_check ; menu ;; 2) cpu_check ; menu ;; 3) tcp_check ; menu ;; 4) kernel_check ; menu ;; 5) all_checks ; menu ;; 0) exit 0 ;; *) echo -e "${red}Wrong option.${clear}"; menu ;; esac

最后,我们需要调用菜单函数以实际打印菜单:

# Call the menu function menu

测试脚本

最终,您的脚本将如下所示:

#!/bin/bash ## # BASH menu script that checks: # - Memory usage # - CPU load # - Number of TCP connections # - Kernel version ## server_name=$(hostname) function memory_check() { echo "" echo "Memory usage on ${server_name} is: " free -h echo "" } function cpu_check() { echo "" echo "CPU load on ${server_name} is: " echo "" uptime echo "" } function tcp_check() { echo "" echo "TCP connections on ${server_name}: " echo "" cat /proc/net/tcp | wc -l echo "" } function kernel_check() { echo "" echo "Kernel version on ${server_name} is: " echo "" uname -r echo "" } function all_checks() { memory_check cpu_check tcp_check kernel_check } ## # Color Variables ## green='\e[32m' blue='\e[34m' red='\e[31m' clear='\e[0m' ## # Color Functions ## ColorGreen(){ echo -ne $green$1$clear } ColorBlue(){ echo -ne $blue$1$clear } menu(){ echo -ne " My First Menu $(ColorGreen '1)') Memory usage $(ColorGreen '2)') CPU load $(ColorGreen '3)') Number of TCP connections $(ColorGreen '4)') Kernel version $(ColorGreen '5)') Check All $(ColorGreen '0)') Exit $(ColorBlue 'Choose an option:') " read a case $a in 1) memory_check ; menu ;; 2) cpu_check ; menu ;; 3) tcp_check ; menu ;; 4) kernel_check ; menu ;; 5) all_checks ; menu ;; 0) exit 0 ;; *) echo -e "${red}Wrong option.${clear}"; menu ;; esac } # Call the menu function menu

要测试脚本,创建一个名为 .sh extension, for example: menu.sh 的新文件,然后运行它:

bash menu.sh

您将得到如下输出:

My First Menu 1) Memory usage 2) CPU load 3) Number of TCP connections 4) Kernel version 5) Check All 0) Exit Choose an option:

您可以从列表中选择不同的选项,每个数字都会调用脚本中的不同函数:

漂亮的 Bash 交互式菜单

结论

现在您已经知道如何创建 Bash 菜单,并将其集成到您的脚本中,以便用户可以选择不同的选项!

{notice} 此内容最初发布在 DevDojo.com 上。

免责声明
本文件由基于人工智能的机器翻译服务翻译而成。尽管我们力求翻译准确,但请注意,自动翻译可能包含错误或不准确之处。应以原始语言版本的文件为准。对于关键信息,建议使用专业人工翻译。对于因使用本翻译而产生的任何误解或误读,我们概不负责。


发布者: 作者: 转发
评论区 (0)
U