输出带颜色的shell

xiaoxiao2021-02-28  40

在shell中使用echo命令输出带颜色的文本名称       echo - 显示一行文本概要       echo [选项]... [字符串]...描述       向标准输出输出字符串。       -n     不输出换行符       -e     打开反斜杠ESC转义       -E     取消反斜杠ESC转义 (默认)       --help 显示帮助       --version 显示版本大致就这样吧。注意要输出颜色必须有 -e 选项。然后说一下重点:ANSI控制码在输出有颜色文本方面应用。-e 用来开启echo中的转义\e 或 \033 来输出Esc符号设置颜色的格式: \e[背景色;前景色;高亮m               \033 [背景色;前景色;高亮m 恢复默认为 \e[0m其中背景色可以被以下数字替换第一个参数:0 透明(使用终端颜色),1 高亮 40 黑, 41 红, 42 绿, 43 黄, 44 蓝 45 紫, 46 青绿, 47白(灰)第二个参数:前景色(也就是文本的颜色)可以被以下数字替换30 黑 31 红, 32 绿, 33 黄, 34 蓝, 35 紫, 36 青绿, 37 白(灰)第三个参数:高亮是1,不高亮是0第四个参数为m:注意m后面紧跟字符串。实例:1,输出红色字体  abc ,背景色不变,以下三个效果一样echo -e '\033[0;31;1m abc \033[0m'echo -e "\e[1;31m      abc  \e[0m" echo -e "\e[0;31;1m    abc  \e[0m" 2,输出黄色字体  abc ,红色背景色,以下三个效果一样echo -e '\033[41;33;1m abc \033[0m'echo -e "\e[41;33m      abc  \e[0m" echo -e "\e[41;33;1m    abc  \e[0m" 30 黑 31 红, 32 绿, 33 黄, 34 蓝, 35 紫, 36 青绿, 37 白(灰) echo -e "\e[1;30m skyapp exist \e[0m" //黑色 echo -e "\e[1;31m skyapp exist \e[0m" //红色 echo -e "\e[1;32m skyapp exist \e[0m" //绿色 echo -e "\e[1;33m skyapp exist \e[0m" //黄色 echo -e "\e[1;34m skyapp exist \e[0m" //蓝色 echo -e "\e[1;35m skyapp exist \e[0m" //紫色 echo -e "\e[1;36m skyapp exist \e[0m" //青绿 echo -e "\e[1;37m skyapp exist \e[0m"  //白(灰)嵌入式中用一下方法: echo -e " ^[ [1;30m skyapp exist  ^[ [0m" //黑色 echo -e " ^[ [1;31m skyapp exist  ^[ [0m" //红色 echo -e " ^[ [1;32m skyapp exist  ^[ [0m" //绿色 echo -e " ^[ [1;33m skyapp exist  ^[ [0m" //黄色 echo -e " ^[ [1;34m skyapp exist  ^[ [0m" //蓝色 echo -e " ^[ [1;35m skyapp exist  ^[ [0m" //紫色 echo -e " ^[ [1;36m skyapp exist  ^[ [0m" //青绿 echo -e " ^[ [1;37m skyapp exist  ^[ [0m"  //白(灰) 注意:^[  的输入方法是ctrl+v键,再按ESC键 然后给几个比较强大的脚本函数1 cfont#by zuoyang http://hi.baidu.com/test/cfont(){while (($#!=0))do        case $1 in                -b)                        echo -ne " ";                ;;                -t)                        echo -ne "\t";                ;;                -n)     echo -ne "\n";                ;;                -black)                        echo -ne "\033[30m";                ;;                -red)                        echo -ne "\033[31m";                ;;                -green)                        echo -ne "\033[32m";                ;;                -yellow)                        echo -ne "\033[33m";                ;;                -blue)                        echo -ne "\033[34m";                ;;                -purple)                        echo -ne "\033[35m";                ;;                -cyan)                        echo -ne "\033[36m";                ;;                -white|-gray) echo -ne "\033[37m";                ;;                -reset)                        echo -ne "\033[0m";                ;;                -h|-help|--help)                        echo "Usage: cfont -color1 message1 -color2message2 ...";                        echo "eg:       cfont -red [ -blue message1message2 -red ]";                ;;                *)                echo -ne "$1"                ;;        esac        shiftdone}使用方法是cfont -颜色 字符串...如:cfont -cyan abc注意使用时要换行需要加入 -n 选项。想要恢复默认的要加入 -reset选项。2颜色码表#!/bin/bashT='gYw' # The test textechoecho "        default 40m     41m     42m     43m     44m     45m     46m47m"## FGs 为前景(foreground)色, BG 为背景(background)色for FGs in '    m' '   1m' ' 30m' '1;30m' ' 31m' '1;31m' ' 32m' '1;32m' '33m' '1;33m' ' 34m' '1;34m' ' 35m' '1;35m' ' 36m' '1;36m' ' 37m' '1;37m'        do        FG=$(echo $FGs|tr -d ' ')        echo -en " $FGs \033[$FG $T "        for BG in 40m 41m 42m 43m 44m 45m 46m 47m;                do                echo -en " \033[$FG\033[$BG $T \033[0m"        done        echodoneecho没了,就这样吧。 如何在脚本文件中控制输出的颜色  (效果不太好)比如echo "Error."我想让Error显示为红色--------------------------echo  '^[[40;31m显示内容'注意:^[  的输入方法是ctrl+v键,再按ESC键第二个 [  是直接输入 [ 的;前的数字是背景色,后面为前景色背景色:40黑41红42绿43黄44青45蓝46青47白前景色:30黑31红32绿33黄34蓝35紫36青37白http://jianzhouzhao.spaces.live.com/Blog/cns!4231E07B7DE2C479!235.entry(转)google了好久,终于搞明白了怎么输出带颜色的文本。   首先熟悉一下echo命令 名称 echo - 显示一行文本 概要 echo [选项]... [字符串]... 描述 向标准输出输出字符串。 -n 不输出换行符 -e 打开反斜杠ESC转义 -E 取消反斜杠ESC转义 (默认) --help 显示帮助 --version 显示版本 大致就这样吧。 注意要输出颜色必须有 -e 选项。 然后说一下重点:ANSI控制码在输出有颜色文本方面应用。 -e 用来开启echo中的转义 \e 或 \033 来输出Esc符号 设置颜色的格式: \e[背景色;前景色;高亮m 恢复默认为 \e[0m 其中背景色可以被以下数字替换 0 透明(使用终端颜色), 40 黑, 41 红, 42 绿, 43 黄, 44 蓝 45 紫, 46 青绿, 47白(灰) 前景色(也就是文本的颜色)可以被以下数字替换 30 黑 31 红, 32 绿, 33 黄, 34 蓝, 35 紫, 36 青绿, 37 白(灰) 高亮是1,不高亮是0 注意m后面紧跟字符串。 比如 lonelycorn@untbook:~$ echo -e '\033[0;33;1mabc\033[0m' 输出 abc 然后给几个比较强大的脚本函数 1 cfont #by zuoyang http://hi.baidu.com/test/ cfont() { while (($#!=0)) do case $1 in -b) echo -ne " "; ;; -t) echo -ne "\t"; ;; -n) echo -ne "\n"; ;; -black) echo -ne "\033[30m"; ;; -red) echo -ne "\033[31m"; ;; -green) echo -ne "\033[32m"; ;; -yellow) echo -ne "\033[33m"; ;; -blue) echo -ne "\033[34m"; ;; -purple) echo -ne "\033[35m"; ;; -cyan) echo -ne "\033[36m"; ;; -white|-gray) echo -ne "\033[37m"; ;; -reset) echo -ne "\033[0m"; ;; -h|-help|--help) echo "Usage: cfont -color1 message1 -color2 message2 ..."; echo "eg: cfont -red [ -blue message1 message2 -red ]"; ;; *) echo -ne "$1" ;; esac shift done } 使用方法是 cfont -颜色 字符串... 如: cfont -cyan abc 注意使用时要换行需要加入 -n 选项。想要恢复默认的要加入 -reset选项。 2颜色码表 #!/bin/bash T='gYw' # The test text echo echo " default 40m 41m 42m 43m 44m 45m 46m 47m" ## FGs 为前景(foreground)色, BG 为背景(background)色 for FGs in ' m' ' 1m' ' 30m' '1;30m' ' 31m' '1;31m' ' 32m' '1;32m' ' 33m' '1;33m' ' 34m' '1;34m' ' 35m' '1;35m' ' 36m' '1;36m' ' 37m' '1;37m' do FG=$(echo $FGs|tr -d ' ') echo -en " $FGs \033[$FG $T " for BG in 40m 41m 42m 43m 44m 45m 46m 47m; do echo -en " \033[$FG\033[$BG $T \033[0m" done echo done echo 没了,就这样吧。
转载请注明原文地址: https://www.6miu.com/read-2621713.html

最新回复(0)