【shell】shell脚本颜色显示函数

    科技2022-07-11  76

    # cat echo.sh 

    #########################################################

    #!/bin/bash

    Green_Success(){

            echo '=================================================';

            printf '\033[1;32;40m[success]  %b\033[0m\n' "$1";

    }

    Yellow_Warnning(){

            echo '=================================================';

            printf '\033[1;33;40m[warnning]  %b\033[0m\n' "$1";

    }

    Red_Error(){

            echo '=================================================';

            printf '\033[1;31;40m[error]  %b\033[0m\n' "$1";

            exit 1;

    }

    Green_Success "成功"

    Yellow_Warnning "警告"

    Red_Error "错误"

    #########################################################

     

    printf 命令中%b是什么意思?

    相对应的参数被视为含有要被处理的转义序列之字符串。

    %b 是开启转义,后面输出字符串中若含有转义字符会进行转义。

     

     

    # cat  echo.sh

    ##################################################

    #!/bin/bash

    function green_echo () {

            local what=$*

            echo -e "\e[1;32m[success] ${what} \e[0m"

    }

    function yellow_echo () {

            local what=$*

            echo -e "\e[1;33m[warnning] ${what} \e[0m"

    }

    function red_echo () {

            local what=$*

            echo -e "\e[1;31m[error] ${what} \e[0m"

            exit 1

    }

    green_echo "成功"

    yellow_echo "警告"

    red_echo "失败"

    ##################################################

     

     

    Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数

    $* 和 $@ 的区别

    $* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号(" ")包含时,都以"$1" "$2" … "$n" 的形式输出所有参数。

    但是当它们被双引号(" ")包含时,"$*" 会将所有的参数作为一个整体,以"$1 $2 … $n"的形式输出所有参数;"$@" 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数。

     

     

    参考

     

    shell 输出带颜色文本函数

    https://blog.51cto.com/gccmx/1331709

    http://blog.chinaunix.net/uid-24946452-id-343963.html

     

    Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数

    https://www.cnblogs.com/davygeek/p/5670212.html

    Processed: 0.040, SQL: 8