shell中echo改变输出显示样式

echo -e "\033[32;49;1m [DONE] \033[39;49;0m"或echo -e "\e[32;49;1m [DONE] \033[39;49;0m"

输出结果 :[DONE]

文本终端的颜色可以使用“ANSI非常规字符序列”来生成。举例:

echo -e "\033[44;37;5m ME \033[0m COOL"

以上命令设置背景成为蓝色,前景白色,闪烁光标,输出字符“ME”,然后重新设置屏幕到缺省设置,输出字符 “COOL”。“e”是命令 echo 的一个可选项,它用于激活特殊字符的解析器。“\033”引导非常规字符序列。“m”意味着设置属性然后结束非常规字符序列,这个例子里真正有效的字符是 “44;37;5” 和“0”。

修改“44;37;5”可以生成不同颜色的组合,数值和编码的前后顺序没有关系。可以选择的编码如下所示:

编码 颜色/动作
0 重新设置属性到缺省设置
1 设置粗体
2 设置一半亮度(模拟彩色显示器的颜色)
4 设置下划线(模拟彩色显示器的颜色)
5 设置闪烁
7 设置反向图象
22 设置一般密度
24 关闭下划线
25 关闭闪烁
27 关闭反向图象
30 设置黑色前景
31 设置红色前景
32 设置绿色前景
33 设置棕色前景
34 设置蓝色前景
35 设置紫色前景
36 设置青色前景
37 设置白色前景
38 在缺省的前景颜色上设置下划线
39 在缺省的前景颜色上关闭下划线
40 设置黑色背景
41 设置红色背景
42 设置绿色背景
43 设置棕色背景
44 设置蓝色背景
45 设置紫色背景
46 设置青色背景
47 设置白色背景
49 设置缺省黑色背景

其他有趣的代码还有:

\033[2J  清除屏幕
\033[0q  关闭所有的键盘指示灯
\033[1q  设置“滚动锁定”指示灯 (Scroll Lock)
\033[2q  设置“数值锁定”指示灯 (Num Lock)
\033[3q  设置“大写锁定”指示灯 (Caps Lock)
\033[15:40H 把光标移动到第15行,40列
\007   发蜂鸣生beep

控制选项说明 :

\33[0m 关闭所有属性
\33[1m 设置高亮度
\33[4m 下划线
\33[5m 闪烁
\33[7m 反显
\33[8m 消隐
\33[30m -- \33[37m 设置前景色
\33[40m -- \33[47m 设置背景色
\33[nA 光标上移n行
\33[nB 光标下移n行
\33[nC 光标右移n行
\33[nD 光标左移n行
\33[y;xH设置光标位置
\33[2J 清屏
\33[K 清除从光标到行尾的内容
\33[s 保存光标位置
\33[u 恢复光标位置
\33[?25l 隐藏光标
\33[?25h 显示光标


有些时候,需要为Linux服务的配置截个图,然后打印出来,结果在字符界面下就只有黑色背景,白色字体,打印出来费墨~~改改背景可能好点。

首先要知道在linux中,一些常用的颜色代码:(这些颜色是ANSI标准颜色)
前景色:30黑 31红 32绿 33黄 34蓝 35紫 36青 37白
背景色:40黑 41红 42绿 43黄 44青 45蓝 46青 47白

前景颜色各数字是对应背景颜色减去10.

命令: echo -e "\033[background_number;foreground_numberm"
如设置白色背景黑色前景字体应该是 echo -e "\033[47;30m"

background_number=背景色
foreground_number=前景色
m要紧跟foreground_number,没有空格。

(说是白色背景,黑色字体。字体颜色我同意,可背景色咋看也不像是白色呀?o(∩_∩)o...)

\033 即退出键<esc>的ascii码(27),所以上面的命令也可写成如下形式
echo "^[[47;30m" 其中的“^[”是先按ctrl-V,然后再按<esc>键(就是键盘左上角的键)产生的。

这种方法只能暂时改变一下,logout一下就没有了。不过可以vi /root/.bashrc, 在后面加上刚才的命令。

echo -e '\033[47;30m'


用的是终端控制字符,比如这个,就是光标跳到第60列,然后显示一个OK

echo -en '\033[60G ' && echo OK

\033[就是终端转义字符开始,60G是命令。
echo的-e选项就是让echo不自己处理终端转义字符
内建命令echo 输出他的参数,以空格来分隔,以换行符来结束。返回值总为0。echo 使用的一
些选项:
-e:转义反斜杠字符。
-n:禁止换行。
echo 命令使用的转义序列

序列 意义
\a 闹铃
\b 退格
\c 强制换行
\e 退出
\f 清除屏幕
\n 新行
\r Carriage return.
\t 水平制表符
\v 垂直制表符
\ 反斜杠
$#传递到脚本的参数个数

$*传递到脚本的参数,与位置变量不同,此选项参数可超过9个

$$脚本运行时当前进程ID号,常用作临时变量的后缀。如hash.$$

$!后台运行的&最后一个进程的ID号

$@与$#相同,使用时加引号,并在引号中返回参数的个数

$-上一个命令的最后一个参数

$?最后命令的推出状态,0表示没有错误。其他任何值表示有错误。

一、 锁\开键盘代码
  代码定义:
    锁键盘:ESC[2h
    开键盘:ESC[2l
  应用:
  1.直接在键盘上顺序敲入Esc+[+2+h四键,键盘即被锁住。
  2.在C语言程序显示字符串中包含锁代码:printf(″%c[2h字串″,'\033')。
  3.在shell程序中用echo命令:echo″[[2h字串″.注Esc键在vi编辑器中输入方法为:Ctrl+v,然后按一下Esc键,在屏幕上显示[表示已输入。
  同样显示开锁代码则键盘被解锁。
  二、 删除字符代码
  代码定义:
  ESC[nX:清除光标右边n个字符,光标不动。
  ESC[K或ESC[OK;清除光标右边全部字符,光标不动。
  ESC[1K:清除光标左边全部字符,光标不动。
  ESC[2K:清除整行,光标不动。
  ESC[J或ESC[OJ:清除光标右下屏所有字符,光标不动。
  ESC[1J:清除光标左上屏所有字符,光标不动。
  ESC[2J或ESCc:清屏,光标移到左上角。
  ESC[nM:删除光标之下n行,剩下行往上移,光标不动。
  ESC[nP:删除光标右边n个字符,剩下部分左移,光标不动。
  应用:
  一般用于自己开发的编辑器中或涉及行编辑的应用程序中。
  三、 插入字符代码
  代码定义:
  ESC[n@:在当前光标处插入n个字符。
  ESC[nL:在当前光标下插入n行。
  应用:
  一般用于自己开发的编辑器中或涉及行编辑的应用程序中。
  四、 移动光标
  代码定义:
  ESC[nA:光标上移n行。
  ESC[nB:光标下移n行。
  ESC[nC:光标右移n个字符。
  ESC[nD:光标左移n个字符。
  ESC[n;mH :光标定位到第n行m列(类似代码ESC[n;mf)。
  应用:
  1.一般用于自己开发的编辑器中或涉及行编辑的应用程序中。
  2.用shell编辑的菜单程序中定位光标,如:
  echo″^[[10;30H请选择:[ ]^[[9C\c″,则先把光标定位到10行30列,然后显示″请选择[ ]″,最后光标右移9个符定位到中括号内等待用户响应。
  五、 定义字符显示属性代码
  代码定义:
  ESC[p;p;p;……m 其中属性值p可以是一个或多个,具体定义如下:
  p 含义
  0 清除所有属性
  1 高亮度显示
  4 下划线(如果硬件支持的话)
  5 闪烁(如果硬件支持的话)
  25 无闪烁
  7 反场(前背景交换)
  27 无反场
  8 隐藏(不显示)
  10 选择基本字体
  11 选择第一替代字体;让ASCII值小于32的字符显示时直接取自ROM芯片内
  12 选择第二替代字体;在作为ROM字符显示之前先压缩扩展高位ASCII码值
  30 前景黑色
  31 前景红色
  32 前景绿色
  33 前景褐色
  34 前景蓝色
  35 前景紫色
  36 前景蓝绿色
  37 前景白色
  38 开启下划线标志;白色前景用白色下划线
  39 关闭下划线标志
  40 背景黑色
  41 背景红色
  42 背景绿色
  43 背景褐色
  44 背景蓝色
  45 背景紫色
  46 背景蓝绿色
  47 背景白色
  应用:
  unix系统提供的setcolor命令是以行为单位改变颜色,在实际运用中有它的局限性,上面提到的控制代码在日常生活中用得最多,尤其适合于彩色弹出式立体菜单的设计。如我设计的中心机房值班程序,由于用了这些控制代码,界面非常友好。
  六、其它代码
  代码定义:
  ESC7:保存当前光标位置参数及字符属性。
  ESC8:恢复保存的光标位置参数及字符属性。
  \n :插入换行符
  \t :插入一个Tab键。
  \r :插入回车符。
  ^G :插入响铃符(pc嗽叭鸣叫一次),在vi中按Ctrl+g即可输入。
  \c :用于shell程序中,不换行。
  应用:
  1.用户界面设计。
  2.用于中心机房向储蓄柜面发通知的程序中(结合实达终端屏幕保存代码ESC[/n;mr__保存从n行到m行的内容,恢复代码ESC[/11)
  七、应用举例
  1.彩色立体菜单(shell语言):
  setcolor-b white
  clear
  while true
  do
  echo″
  [[8;20H[[34;43m┍—————————┒^[[47m
  [[9;20H[[34;43m | 1 日 间 业 务 | ^[[40m ^[[47m
  [[10;20H[[34;43m| 2 环 境 维 护 | ^[[40m ^[[47m
  [[11;20H[[34;43m| 请 选 择 [ ]| [[40m[[47m
  [[12;20H[[34;43m┕      ┛[[40m[[47m
  [[13;22H[[40m     ^[[47m
  echo″ ^[[11;40H\c″
  read acc
  done
  2.向储蓄所发通知(C语言):
  #include<stdio.h>;
  main()
  {
   printf(″%c7%c[/2;4r″,'\033',\033');
   printf(″%c[2;5H%c[2K 紧急通知 ″,' \033','\033');
  printf(″%c[3;5H%c[2K由于线路问题,今天不办新余市通存通兑业务“,’[033’,’\033’);
   printf(″%c[4;5H%c[2K 中心机房 1998.11.20%c8″,'\033','033','\033');
   fflush(stdout);
   sleep(10);
   printf “%c[/11″,’\033’);
  fflush(stdout);
  }
  说明:该程序首先保存光标位置,同时保存2至4行内容 ,接着定位光标到2行5列,清除该行原先内容,然后显示“紧急通知”字样,通知显示完后立即恢复光标位置,然后等待10秒钟后恢复屏幕原先内容 。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容

  • .bat脚本基本命令语法 目录 批处理的常见命令(未列举的命令还比较多,请查阅帮助信息) 1、REM 和 :: 2...
    庆庆庆庆庆阅读 7,937评论 1 19
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,310评论 0 5
  • echo要变换颜色的时候,要使用参数-e格式:echo -e "\033[字背景颜色;字体颜色m字符串\033[0...
    738bc070cd74阅读 516评论 0 0
  • 在Bash的命令行中敲man echo可以找到如下部分的内容: echo -e "\033[30m 黑色字 \03...
    uangianlap阅读 618评论 0 0
  • 前阵子我在朋友圈问,究竟还有多少人相信读书改变命运,得到的答案也无外乎信、不信抑或中立的因人而异。 说...
    CheungShaw阅读 224评论 0 0