【原创】分享下Linux Shell中常用的字体颜色代码【附PHP源码和Shell源码】

blogdaren 2018-09-11 抢沙发 320人次

开源项目:

金牛座已经在github放置开源项目:CustomTerminalColor,下文仅仅是演练展示,与开源项目无关。

问题背景:

1、PHP-CLI编程环境中经常要对一些字符串的输出属性进行定制,其中用的最频繁的就是颜色定制,这是依赖于Linux环境而实现的。

2、文中只列举了常用的颜色代码,方便我们随时核查,其他的属性值请参考相关手册。

3、关于源码分别给出了PHP版和Shell版,代码很简单,另演示中有动态效果,静态的效果图看不出,自己调试吧。

直接上效果图:

33.png

PHP版源代码:

<?php
/**
 * @script   shellColor.php
 * @brief    Shell常用字符串颜色对照表
 * @author   blogdaren<blogdaren@163.com>
 * @version  1.0.0
 * @modify   2018-09-11
 */

class Shell
{
    /**
     * @brief    echoForegroundColor    
     *
     * @return   string
     */
    static public function echoForegroundColor()
    {
        $color  = "===================【Shell】字体的前景色代码范围【30-37】===================" . PHP_EOL;
        $color .= "\033[30m 我是黑色字 \033[0m" . PHP_EOL;
        $color .= "\033[31m 我是红色字 \033[0m" . PHP_EOL;
        $color .= "\033[32m 我是绿色字 \033[0m" . PHP_EOL;
        $color .= "\033[33m 我是黄色字 \033[0m" . PHP_EOL;
        $color .= "\033[34m 我是蓝色字 \033[0m" . PHP_EOL;
        $color .= "\033[35m 我是紫色字 \033[0m" . PHP_EOL;
        $color .= "\033[36m 我是天蓝字 \033[0m" . PHP_EOL;
        $color .= "\033[37m 我是白色字 \033[0m" . PHP_EOL;
        $color .= PHP_EOL;

        return $color;
    }

    /**
     * @brief    echoBackgroundColor    
     *
     * @return   string
     */
    static public function echoBackgroundColor()
    {
        $color  = "===================【Shell】字体的背景色代码范围【40-47】===================" . PHP_EOL;
        $color .=  "\033[40;37m 我是黑底白色字   \033[0m" . PHP_EOL;
        $color .=  "\033[41;36m 我是红底天蓝字   \033[0m" . PHP_EOL;
        $color .=  "\033[42;35m 我是绿底紫色字   \033[0m" . PHP_EOL;
        $color .=  "\033[43;34m 我是黄底蓝色字   \033[0m" . PHP_EOL;
        $color .=  "\033[44;33m 我是蓝底黄色字   \033[0m" . PHP_EOL;
        $color .=  "\033[45;32m 我是紫底绿色字   \033[0m" . PHP_EOL;
        $color .=  "\033[46;31m 我是天蓝底红色字 \033[0m" . PHP_EOL;
        $color .=  "\033[47;30m 我是白底黑色字   \033[0m" . PHP_EOL;
        $color .= PHP_EOL;

        return $color;
    }

    /**
     * @brief    echoExtendColor    
     *
     * @return   string
     */
    static public function echoExtendColor()
    {
        $color  =  "===================【Shell】字体的扩展修饰代码【Shell】===================" . PHP_EOL;
        $color .=  "\033[1m\033[33m 我是黄色字,并且高亮显示 \033[0m"  . PHP_EOL;
        $color .=  "\033[4m\033[33m 我是黄色字,并且以下划线显示 \033[0m"  . PHP_EOL;
        $color .=  "\033[5m\033[33m 我是黄色字,并且闪烁显示 \033[0m"  . PHP_EOL;
        $color .=  "\033[7m\033[33m 我原来是黄色字,现在前景色和背景色调换了,发现没?\033[0m"  . PHP_EOL;
        $color .=  "\033[?25l\033[32m 仔细看看,光标已处于隐藏状态 \033[?25l\033[0m"  . PHP_EOL;
        $color .=  "\033[?25h\033[34m 仔细看看,光标已处于显示状态 \033[?25h\033[0m"  . PHP_EOL;
        $color .= PHP_EOL;

        return $color;
    }

    /**
     * @brief    echoAllColor   
     *
     * @return   string
     */
    static public function getAllColor()
    {
        $color  = PHP_EOL;
        $color .= Shell::echoForegroundColor();
        $color .= Shell::echoBackgroundColor();
        $color .= Shell::echoExtendColor();

        return $color;
    }
}

echo Shell::getAllColor();

Shell版源代码:

#!/bin/sh
echo ""
echo "===================【Shell】字体的前景色代码范围【30-37】===================" 
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 "===================【Shell】字体的背景色代码范围【40-47】===================" 
echo -e "\033[40;37m 我是黑底白色字   \033[0m" 
echo -e "\033[41;36m 我是红底天蓝字   \033[0m" 
echo -e "\033[42;35m 我是绿底紫色字   \033[0m"
echo -e "\033[43;34m 我是黄底蓝色字   \033[0m"
echo -e "\033[44;33m 我是蓝底黄色字   \033[0m"
echo -e "\033[45;32m 我是紫底绿色字   \033[0m"
echo -e "\033[46;31m 我是天蓝底红色字 \033[0m"
echo -e "\033[47;30m 我是白底黑色字   \033[0m"
echo ""

echo "===================【Shell】字体的扩展修饰代码【Shell】===================" 
echo -e "\033[1m\033[33m 我是黄色字,并且高亮显示 \033[0m" 
echo -e "\033[4m\033[33m 我是黄色字,并且以下划线显示 \033[0m" 
echo -e "\033[5m\033[33m 我是黄色字,并且闪烁显示 \033[0m" 
echo -e "\033[7m\033[33m 我原来是黄色字,现在前景色和背景色调换了,发现没?\033[0m" 
echo -e "\033[?25l\033[32m 仔细看看,光标已处于隐藏状态 \033[?25l\033[0m" 
echo -e "\033[?25h\033[34m 仔细看看,光标已处于显示状态 \033[?25h\033[0m" 
echo ""

版权声明:除非注明,本文由( blogdaren )原创,转载请保留文章出处。

本文链接:【原创】分享下Linux Shell中常用的字体颜色代码【附PHP源码和Shell源码】

发表评论:

您的昵称:
电子邮件:
个人主页: