SheLL#系统函数和echo颜色

   日期:2020-10-13     浏览:160    评论:0    
核心提示:shell编程调用系统函数库和调用颜色函数库在自己的shell脚本中调用系统自带函数库简单使用,命令行介绍/etc/init.d/functins文件是系统自带的函数库,我们在写shell脚本的时候,source /etc/init.d/functions就可以得到四个echo相关命令,使用这些命令可以让自己的脚本输出和系统的一样,先在命令行进行演示,source之后,输入echo进行tab补全,可以看到我们得到了failure passed success warning四种情况的系统输出格

shell编程调用系统函数库和调用颜色函数库

在自己的shell脚本中调用系统自带函数库

重要的是编程思想方法:

1、利用[[ ]]、&&、 ||符号进行对if条件判断进行替换,适合在一个大的if里面还需要进行if判断的情况
2、echo输出颜色脚本利用位置变量

简单使用,命令行介绍

/etc/init.d/functins文件是系统自带的函数库,我们在写shell脚本的时候,source /etc/init.d/functions就可以得到四个echo相关命令,使用这些命令可以让自己的脚本输出和系统的一样,先在命令行进行演示,source之后,输入echo进行tab补全,可以看到我们得到了failure passed success warning四种情况的系统输出格式的命令

[root@sun init.d]# source functions 
[root@sun init.d]# echo
echo   echo_failure  echo_passed   echo_success  echo_warning  
学会简单的用法,直接这样写
[root@sun init.d]# failure && echo "失败情况的系统输出"
失败情况的系统输出                                         [失败]
[root@sun init.d]# passed && echo "失败情况的系统输出"
失败情况的系统输出                                         [通过]
[root@sun init.d]# warning && echo "警告情况的系统输出"
警告情况的系统输出                                         [警告]
[root@sun init.d]# success && echo "成功情况的系统输出"
成功情况的系统输出                                         [  确定  ]

下面的是执行的有颜色的效果

简单使用,shell脚本示例

#!/bin/bash
# Author:kakaops
# Email:17852032278@139.com

# 示例success和failure在启动和停止服务中的应用
# 以nginx为例子,nginx的官方启动命令为nginx,官方停止命令为nginx -s stop

# 示例如何用&&和||替换需要多行的if判断

source /etc/init.d/functions
###################
# start函数
###################
start_nginx(){ 
    [[ $(netstat -auntpl |grep nginx|wc -l) > 0 ]] && failure && echo "Nginx is already running" && exit
    nginx
    ([ $? -eq 0 ] && success && echo "Nginx start sucessfully!") ||( failure && echo "Failed start nginx" ) 
}

###################
# stop函数
###################
stop_nginx(){ 
    [[ $(ss -auntpl |grep nginx |wc -l) == 0 ]] && failure && echo "Nginx is not running" && exit
    nginx -s stop
    ([ $? -eq 0 ] && success && echo "Nginx stop sucessfully!") || ( failure && echo "Failed stop nginx" )
}

case $1 in
    start)
        start_nginx
        ;;
    stop)
        stop_nginx
        ;;
    *)
        exit
        ;;
esac

自制echo的color.sh

echo改变当前终端的颜色(\e也可以是\033)
echo -e 颜色(-e是激活转义字符)
[root@sun ~]# echo -e “\e[1;31mThis is red text\e[0m”
用echo命令打印带有色彩的文字:
文字色:
echo -e “\e[1;31mThis is red text\e[0m”
\e[1;31m 将颜色设置为红色
\e[0m 将颜色重新置回
字体本身的颜色和文字背景色文字动作色码在分号左右没有要求,引号可以并列多个格式

字体前景色:
颜色码:重置=0,黑色=30,红色=31,绿色=32,黄色=33,蓝色=34,洋红=35,青色=36,白色=37
文字背景色:
echo -e “\e[1;42mGreed Background\e[0m”
颜色码:重置=0,黑色=40,红色=41,绿色=42,黄色=43,蓝色=44,洋红=45,青色=46,白色=47
文字动作:
echo -e “\e[37;31;5mMySQL Server Stop…\e[0m”
动作码:0 关闭所有属性、1 设置高亮度(加粗)、3 倾斜 、4 下划线、5 闪烁、7 反显、8 消隐

python print() 输出颜色和echo一样:-e换成 \033

color.sh的用法

在这个脚本里,只是设置颜色为高亮显示,别的参数,如果需要,自行添加,重要的是变思想方法

# 处理单行命令的颜色输出
function black(){ 
    echo -e "\e[1;30m$1\e[0m"
}
function red(){ 
    echo -e "\e[1;31m$1\e[0m"
}
function green(){ 
    echo -e "\e[1;32m$1\e[0m"
}
function yellow(){ 
    echo -e "\e[1;33m$1\e[0m"
}
function blue(){ 
    echo -e "\e[1;34m$1\e[0m"
}
function carmine(){ 
    echo -e "\e[1;35m$1\e[0m"
}
function cyan(){ 
    echo -e "\e[1;36m$1\e[0m"
}
function while(){ 
    echo -e "\e[1;37m$1\e[0m"
}

先在当shell执行一下,看看效果然后进行改进

可以用颜色打印输出一个文件


颜色打印一条命令的输出

上述验证,我们的color.sh脚本是可以行的,但脚本虽然很简单但是很长,改进一下

color.sh最终改进版本

function color(){ 
declare -A color_info
color_info=([black]=30 [red]=31 [green]=32 [yellow]=33 [blue]=34 [carmine]=35 [cyan]=36 [white]=37)
echo -e "\e[1;${color_info[$1]}m$2\e[0m"
}

调用的时候和上面有点区别,需要传递两个位置参数 $1、$2
命令行测试:

输出文件测试

命令输出测试

shell命令行可以用,在自己写的脚本里面source一下,用法一样,不再赘述

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服