unix改变shell显示颜色
编写shell脚本的时候。通过改变shell的显示颜色,不但可以改变使用shell终端的体验,并且更为有用的是,可以通过改变显示内容的颜色来区分正常输出。warning和error等不同关注级别的输出内容。
1、转义序列(Escape sequence)
简单地说。就是转义序列可以改变电脑和外设的状态。这里用的就是利用转义字符来改变显示器的显示颜色。
2、echo命令
echo命令中有-e选项。通过这个选项。能够在该条命令中开启对反斜杠转义的解释。后面的选项中追加适当的转义序列能够改变echo命令输出的显示颜色。echo中文字显示颜色相关的參数主要有三个Style,Frontground和Background。每一个參数有7个值详细的格式例如以下:
Style Foreground Background
1st Digit 2nd Digit 3rd Digit
0 - Reset 30 - Black 40 - Black
1 - FG Bright 31 - Red 41 - Red
2 - Unknown 32 - Green 42 - Green
3 - Unknown 33 - Yellow 43 - Yellow
4 - Underline 34 - Blue 44 - Blue
5 - BG Bright 35 - Magenta 45 - Magenta(洋红色)
6 - Unknown 36 - Cyan 46 - Cyan(蓝绿色)
7 - Reverse 37 - White 47 - White
通过将命令echo -e "\e[Style;Foreground;BackgroundmTHINGSTOPRINT"中的Style、Foreground和Background换成上面的数字就能够改变后面THINGSTOPRINT的显示颜色。比方。$ echo -e "\e[1;32;43mHello World! "的执行结果如图1。
图1
注:这里之所以Hello World!最后的叹号后面加一个空格,是由于unix shell中叹号是保留字符,用来调用历史命令。比方!cmd就运行上一条运行过的cmd开头的命令。而!cmd:p则是仅仅是将上一条cmd开头的命令唤出显示出来。而不运行。
能够发现这种话,兴许全部行的shell显示颜色都会被改变,这往往不是我们想要的,所以一般来说,我们会在这种命令的末尾将这些显示设置给Reset。同一时候。为了不被上一次命令影响,也会在之前设置style的值来进行開始设置之前的reset。(当然,假设要将style设置成underline或者FGorBG Bright之类的值得时候。就没法在開始设置之前进行reset了,可是,最后的reset是不管怎样都是必要的,除非你想接下来全部的显示一直採用当前的设置。)以下几条命令的执行结果例如以下图2。
命令:
echo -e "\e[1;32;43mHello World! \e[0m"
echo -e "\e[0;32;43mHello World! \e[0m"
echo -e "\e[4;32;43mHello World! \e[0m"
echo -e "\e[5;32;43mHello World! \e[0m"
3、打印全部显示效果的脚本
脚本test.sh的内容:
#/bin/bash
for TYLE in 0 1 2 3 4 5 6 7;
do
for FG in 30 31 32 33 34 35 36 37;
do
for BG in 40 41 42 43 44 45 46 47;
do
CTRL="\033[${STYLE};${FG};${BG}m"
echo -en "${CTRL}"
echo -n "${STYLE};${FG};${BG}"
echo -en "\033[0m"
done
echo
done
echo
done
#Reset
echo -e "\033[0m"
注:这里改脚本中用到了echo的-n选项。它的作用就是控制不要再输出内容的后面追加换行,与之相应的仅仅有一个echo的命令就是简单地输出一个空行。达到换行的目的。
sh test.sh执行该脚本,就能够看到彩虹般的结果。如图3(结果有点长,这里仅仅截取了一部分)。
图3 彩虹
unix改变shell显示颜色的更多相关文章
- iOS7中修改StatusBar的显示颜色
iOS7中修改StatusBar的显示颜色 效果图如下: 在iOS7中想手动修改statusBar的颜色,第一步需要做的就是在plist文件中设置View controller-based statu ...
- 汇编题目:在DOS下,按F1键后改变当前屏幕的显示颜色
我们都知道int9中断是键盘的按键中断程序,按下键盘触发int9中断,不懂int9中断的请自己去百度查查说明和用法 利用中断任务安装一个新的int 9中断例程,功能:在DOS下,按F1键后改变当前屏幕 ...
- VUE Node模式下,如何改变菜单的颜色,如何将超长文字缩略显示,在鼠标进入后展开全部显示,鼠标移出则恢复缩略显示
VUE Node模式下,如何改变菜单的颜色,如何将超长文字缩略显示,在鼠标进入后展开全部显示,鼠标移出则恢复缩略显示: “事件”引起变量值的变化,系统引擎自动根据变量值的变化刷新页面 在VUE Nod ...
- linux shell简单快捷方式与通配符(元字符)echo -e文本显示颜色
1.shell常用快捷方式 ^R 搜索历史命令^D 退出^A 光标移动到命令行最前^E 光标移动到命令行最后^L 清屏^U 光标之前删除^K 光标之后删除^Y 撤销^S 锁屏^Q 解锁 2.多条命令执 ...
- UNIX系统的显示时间何时会到达尽头
本文分为三个小块: 一.UNIX系统中时间的存储形式: 二. time_t 的最大值是多少: 三. 将time_t 的最大值转化为真实世界的时间: #---------------------# # ...
- PowerShell_零基础自学课程_2_Powershell与Cmd以及Unix/Linux Shell
上篇文章我说道,windows为了改变用户对其console界面的诟病,于是就从windows vista开始,计划要改变这种局面,于是就有 了Powershell的出现. 1.兼容shell命令 ...
- easyui的datagrid改变整行颜色
easyui的datagrid改变单元格颜色方法1:https://www.cnblogs.com/raitorei/p/10395233.html easyui的datagrid改变单元格颜色方法2 ...
- easyui的datagrid改变单元格颜色
另一种方法:https://www.cnblogs.com/raitorei/p/10395233.html easyui的datagrid改变整行颜色:https://www.cnblogs.com ...
- UNIX系统的显示时间何时会到尽头
本文转载自:http://www.cnblogs.com/dfcao/p/expertCprogramming_intr0.html 本文分为三个小块: 一.UNIX系统中时间的存储形式: 二. ti ...
随机推荐
- 九度oj 题目1482:玛雅人的密码 清华大学机试
题目描述: 玛雅人有一种密码,如果字符串中出现连续的2012四个数字就能解开密码.给一个长度为N的字符串,(2=<N<=13)该字符串中只含有0,1,2三种数字,问这个字符串要移位几次才能 ...
- 九度oj 1004
题目1004:Median 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:17536 解决:4860 题目描述: Given an incre ...
- 【bzoj3307】雨天的尾巴 权值线段树合并
题目描述 N个点,形成一个树状结构.有M次发放,每次选择两个点x,y,对于x到y的路径上(含x,y)每个点发一袋Z类型的物品.完成所有发放后,每个点存放最多的是哪种物品. 输入 第一行数字N,M接下来 ...
- [LOJ#516]「LibreOJ β Round #2」DP 一般看规律
[LOJ#516]「LibreOJ β Round #2」DP 一般看规律 试题描述 给定一个长度为 \(n\) 的序列 \(a\),一共有 \(m\) 个操作. 每次操作的内容为:给定 \(x,y\ ...
- wireshark推荐书籍
1 wireshark数据包分析实战 有中文版 2 wireshark网络分析 英文版 3 TCP/IP协议栈详解卷一
- 如何发布自己的服务---zookeeper
人肉告知的方式:如果你发现你的服务一台机器不够,要再添加一台,这个时候就要告诉调用者我现在有两个ip了,你们要轮询调用来实现负载均衡:调用者咬咬牙改了,结果某天一台机器挂了,调用者发现服务有一半不可用 ...
- Dumb Bones(uva 10529)
题意:给定n,表示要放n个骨牌,每次放下骨牌,有可能向左倒的概率为pl,向右倒的概率为pr,如果倒下,会将那一侧的骨牌全部推倒,可以选择位置先后放骨牌,问说一种放骨牌次数最少的期望是多少. /* 设d ...
- Java基础加强-(注解,动态代理,类加载器,servlet3.0新特性)
1. Annotation注解 1.1. Annotation概述 Annotation是JDK 5.0以后提供对元数据的支持,可以在编译.加载和运行时被读取,并执行相应的处理.所谓Annota ...
- gitlab 安装遇到 fatal:does not appear to be a git repository fatal: Could not read from remote repository. 问题
Cloning into 'door_lock_bsp'... git@192.168.1.5's password: fatal: 'door_lock/door_lock_bsp.git' do ...
- Lua开发环境搭建(Mac OS X)
1. 安装Rudix Rudix: http://rudix.org curl -O https://raw.githubusercontent.com/rudix-mac/rpm/2015.4/ru ...