[转帖]shell带颜色的脚本

shell,颜色,脚本 · 浏览次数 : 0

小编点评

```bash #!/bin/bash # 设置颜色变量 INFO_COLOR="green" ERROR_COLOR="red" # 定义检查mysql状态的函数 function check_mysql(){ # 使用rpm命令检查mysql安装状态 rpm -qa | grep mysql &> /dev/null # 如果安装成功,输出绿色提示信息 if [ $? -eq 0 ];then echo -e "$INFO_COLOR mysql已经安装" # 否则,输出红色提示信息 else echo -e "$ERROR_COLOR mysql没有安装" fi } # 定义检查k8s状态的函数 function check_k8s(){ # 使用kubectl命令检查k8s状态 kubectl get node &> /dev/null # 如果状态成功,输出绿色提示信息 if [ $? -eq 0 ];then echo -e "$INFO_COLOR k8s状态正常" # 否则,输出红色提示信息 else echo -e "$ERROR_COLOR k8s状态异常" fi } # 定义检查mysql和k8s状态的最后执行结果函数 function check_mysqlcheck_k8s(){ check_mysql check_k8s } # 检查mysql和k8s状态并输出结果 check_mysqlcheck_k8s ``` **使用方法:** 1. 将脚本保存为 `mysql_k8s_status.sh` 文件。 2. 确保脚本具有执行权限:`chmod +x mysql_k8s_status.sh`。 3. 在运行脚本之前,请确保你的系统上安装了mysql和k8s。 4. 启动脚本:`./mysql_k8s_status.sh`。 **注意:** * 脚本中使用的颜色变量可根据需求修改。 * 脚本将输出最近一次检查的mysql和k8s状态信息。

正文

https://www.cnblogs.com/fengzi7314/p/14139319.html

 

我们在写shell脚本的时候为了使输出出来的信息更加醒目一点,可以给不同状态的字体显示不同的颜色,如下:

我在这里最先定义了2个函数,log.info和log.err,一个输出正常信息为绿色,一个输出异常信息为红色,随后又定义了2个函数,分别检查mysql和k8s状态,如果检查ok我们就调用info函数,如果检查失败就调用err函数,最后输出结果可以看下图,这样显得更加醒目,更加友好一些。

复制代码
#!/bin/bash

function log.info()
{ 
  echo "==================================="
  echo -e "\e[1;32m $1 \e[0m"
  echo "==================================="
}

function log.err()
{
  echo "==================================="
  echo -e "\e[1;31m $1 \e[0m"
  echo "==================================="
}
function check_mysql()
{
    rpm -qa | grep mysql &> /dev/null
    if [ $? -eq 0 ];then
        log.info "mysql已经安装"
    else
        log.err "mysql没有安装"
    fi
}
function check_k8s()
{
    kubectl get node &> /dev/null
    if [ $? -eq 0 ];then
        log.info "k8s状态正常"
    else
        log.err "k8s状态异常"
    fi
}
check_mysql
check_k8s
复制代码

如果想让脚本在人性化一点,把时间也打印出来,方便日后查看日志的报错时间,可以按照如下脚本:

复制代码
#!/bin/bash
function print_log()
{
    log_level=$1
    log_msg=$2
    current_time=`echo $(date +%F%n%T)`
    echo $log_level | grep -i "info" &> /dev/null && echo -e "$current_time \e[1;32m [$log_level] \e[0m $log_msg"
    echo $log_level | grep -i "error" &> /dev/null && echo -e "$current_time \e[1;31m [$log_level] \e[0m $log_msg"
    
}


function check_mysql()
{
    rpm -qa | grep mysql &> /dev/null
    if [ $? -eq 0 ];then
        print_log INFO "mysql已经安装"
    else
        print_log ERROR "mysql没有安装"
    fi
}
function check_k8s()
{
    kubectl get node &> /dev/null
    if [ $? -eq 0 ];then
        print_log INFO "k8s状态正常"
    else
        print_log ERROR "k8s状态异常"
    fi
}
check_mysql
check_k8s
复制代码

最后的执行结果为:

 

这里只是给大家提供一种写脚本的思路,这个脚本属于热插拔的,真正项目当中可以那过来稍加修改就可以使用

 此外颜色还可以有多种选择,如下:

复制代码
echo -e "\033[30m 黑色字 \033[0m"
echo -e "\033[31m 红色字 \033[0m"
echo -e "\033[32m 绿色字 \033[0m"
echo -e "\033[33m 黄色字 \033[0m"
echo -e "\033[34m 蓝色字 \033[0m"
echo -e "\033[35m 紫色字 \033[0m"
echo -e "\033[36m 天蓝字 \033[0m"
echo -e "\033[37m 白色字 \033[0m"
echo -e "\033[40;37m 黑底白字 \033[0m"
echo -e "\033[41;37m 红底白字 \033[0m"
echo -e "\033[42;37m 绿底白字 \033[0m"
echo -e "\033[43;37m 黄底白字 \033[0m"
echo -e "\033[44;37m 蓝底白字 \033[0m"
echo -e "\033[45;37m 紫底白字 \033[0m"
echo -e "\033[46;37m 天蓝底白字 \033[0m"
echo -e "\033[47;30m 白底黑字 \033[0m"

与[转帖]shell带颜色的脚本相似的内容:

[转帖]shell带颜色的脚本

https://www.cnblogs.com/fengzi7314/p/14139319.html 我们在写shell脚本的时候为了使输出出来的信息更加醒目一点,可以给不同状态的字体显示不同的颜色,如下: 我在这里最先定义了2个函数,log.info和log.err,一个输出正常信息为绿色,一个输

[转帖]shell脚本之awk命令——按列求平均值、最大值、最小值

文章目录 写在前面awk求平均值awk求最大值awk求最小值awk求极值、均值的实际应用 写在前面 awk命令求极值和均值需要熟悉该命令的基本用法,如果你不熟悉该命令,请先阅读shell脚本之awk命令——分隔符介绍一文。本篇博文带你熟悉求平均值、最大值、最小值的方法,并以实际的应用带你进一步掌握a

[转帖]使用 Shell 运算进行进制转换 16进制转10进制

使用 Shell 运算进行进制转换 工作时候常常遇到一些问题,拿到的数字是16进制的,但是运算的时候是10进制的,shell可以很方便的处理这类的进制转换问题,一种情况是使用 Shell 运算把一个数字从给定的进制转换位十进制。如果数字以运算展开式的形式提供,那么假定它带有十进制符号,除非 它前面带

[转帖]shell脚本循环查询数据库实现数据输出到csv

https://blog.csdn.net/m0_46897923/article/details/125906115?spm=1001.2014.3001.5501 可以利用这个思路高点事情吧.. 一、shell脚本和数据文件 1.shell脚本 cat data.txt|while read l

[转帖]shell 篇 用上今天分享的快捷键以后,我早下班了一小时

每次看着别人操作 shell 的时候,快捷键用得飞起,尤其是那个快速搜索历史命令,避免低效的↑↓键切换历史命令,很装逼有木有。。 废话不多说,下面是我整理的常用快捷键,真的可以提高自己的工作效率的,很不错!~ 一、常用快捷键小技巧 以下快捷键,都是一些常用的,记住这些命令,你的工作效率就会大大提升。

[转帖]Shell 中的 expect 命令

https://www.cnblogs.com/chenjo/p/12892894.html 目录 expect 介绍 expect 安装 expect 语法 自动拷贝文件到远程主机 示例一 示例二 示例三 示例四 expect 介绍 借助 expect 处理交互的命令,可以将交互过程如 ssh 登

[转帖]Shell mount的命令

1. 简介 挂载:Linux中所有的可读取设备(硬盘、光盘、U盘、软盘、移动硬盘等)都必须挂载之后才可以使用,系统硬盘分区是Linux系统开机自动挂载的,所有的可读取设备都有一个设备文件名,挂载指的就是将设备文件名和挂载点(任意一个空目录)连接起来。 2. 查询挂载和自动挂载 mount 或 mou

[转帖]Shell 基础

https://www.cnblogs.com/linuxk/p/10495887.html 目录 Shell基础入门 1、什么是Shell? 2、Shell脚本的结构 3、Shell的变量 3.1.自定义环境变量 3.2.普通变量 3.3.位置参数变量 3.4、状态变量 4、条件测试和比较 4.1

[转帖]shell中大写小转换

https://www.cnblogs.com/byfboke/p/14272195.html 用tr需要新增变量,用declare或typeset需要在变量赋值前或者赋值后单独声明,都有些麻烦 此方法为bash 4.0以后新增,bash 4.0 2009年发布 $ test="abcDEF" #

[转帖]shell中1>&2、2>&1和&>filename重定向的含义和区别

https://blog.yelvlab.cn/archives/414/ 在 shell 程式中,最常使用的 FD (file descriptor) 大概有三个, 分别是: 0 是一个文件描述符,表示标准输入(stdin) 1 是一个文件描述符,表示标准输出(stdout) 2 是一个文件描述符