使用 echo 来向控制台输出指定的颜色
echo -e '\e[44;33;1m colors \e[0m'
在echo输出时使用ESC序列来控制输出的颜色和样式
-e 用来开启echo中的转义
\e 或 \033 来输出Esc符号
设置颜色 \e[4背景色;3前景色;高亮m
Esc[background;foreground;1m
恢复默认 \e[0m
Esc[0m
Foreground colors: 30=black, 31=red, 32=green, 33=yellow, 34=blue 35=purple, 36=turquoise, 37=white
Background colors: 0=transparent, 40=back, 41=red, 42=green, 43=yellow, 44=blue 45=purple, 46=turquoise, 47=white
原文
-- http://www.linuxforum.net/forum/showflat.php?Cat=&Board=vrml&Number=624453&page=0&view=collapsed&sb=5&o=31&fpart=
-- http://www.linuxforum.net/forum/files/345507-colors.txt
如果需要在shell脚本里打印不同颜色的字符,可以使用ESC序列。
echo -e '\e[44;33;1m colors \e[0m'
echo -e表示启用\字符转义;\e即打印ESC控制符;[固定格式;44设置
背景为蓝色;33设置前景为白色;1设置加亮显示;m固定格式;colors
要打印的字符串;\e[0m设回开始的shell环境颜色设置。
连起来就是打印背景蓝色、前景高亮白色的字符串colors。
#! /bin/bash
# show colors (version 2)
FG='30 31 32 33 34 35 36 37'
BG='40 41 42 43 44 45 46 47'
NORMALSTR=' Normal '
BOLDSTR=' Bold '
echo
# Row Title
echo -n " "
for i in $FG ; do
echo -n " ${i} "
done
echo
# Row Title Line
echo -n "== "
for i in $FG ; do
echo -n " ========"
done
echo
# Color Map
for i in $BG ; do
echo -n "${i} "
for j in $FG ; do
echo -ne "\e[${j};${i}m${NORMALSTR}"
done
echo -e '\e[0m'
echo -ne " "
for j in $FG ; do
echo -ne "\e[${j};${i};1m${BOLDSTR}"
done
echo -e '\e[0m'
done
echo
没有评论:
发表评论