在shell下提到终端的颜色的时候不得不提到几个提示符变量:
PS1:默认提示符,也就是远程登上系统之后,打开终端,我们天天见到的那个熟悉的提示符;
[root@vps ~]$echo $PS1
[/u@/h /W]$
PS2:就是我们命令一行写不完在我们命令行下我们打上”/”,另起一行所显示的那个;
[root@vps ~]$echo “hello” /
> “world”
hello world
[root@vps ~]$echo $PS1
[/u@/h /W]$
PS3:就是我们在shell脚本中要用select的时候显示的那个;
[root@vps tmp]$bash select.sh
1) perl
2) php
3) python
4) shell
5) exit
#? 1
I like perl
#?
默认是”#?”,呵呵,我们在脚本中改变一下
[root@vps tmp]$bash select.sh
1) perl
2) php
3) python
4) shell
5) exit
Select a script language (1-4): 3
xiangjun like python
Select a script language (1-4):
变了吧,哈哈。
PS4:我们调试shell脚本我们会bash -x myscripts.sh (或者在脚本中set -x)那个提示符;
就是那个”+”了,我们重置下;
好了,回忆了一些基础知识之后,回到我们的话题上来:,我们以PS1为例说明一下:
那这个变量是在哪里设置的呢?在我们目前的redhat(当然包括centos了)是在/etc/bashrc文件中的:
[ "$PS1" = "//s-//v///$ " ] && PS1=”[/u@/h /W]//$ ”
那这些/w /u 分别代表什么意思呢?分别如下:
/d :代表日期,格式为weekday month date,例如:”Mon Aug 1″
/H :完整的主机名称。例如:我的机器名称为:fc4.linux,则这个名称就是fc4.linux
/h :仅取主机的第一个名字,如上例,则为fc4,.linux则被省略
/t :显示时间为24小时格式,如:HH:MM:SS
/T :显示时间为12小时格式
/A :显示时间为24小时格式:HH:MM
/u :当前用户的账号名称
/v :BASH的版本信息
/w :完整的工作目录名称。家目录会以 ~代替
/W :利用basename取得工作目录名称,所以只会列出最后一个目录
/# :下达的第几个命令
/$ :提示字符,如果是root时,提示符为:# ,普通用户则为:$
我们可以自由的发挥我们的默认提示符该是什么样子了,下面不要偏离我们的主题,我们的主题是颜色;
那么它的语法是什么呢?
/e[ ――表示颜色的提示的起始位置
x;ym ――表示颜色的代码。颜色的代码在下面有说明(当然可以连着写多个,之间用";"分开,比如 1;5;35m)
/e[m ――表示代颜色的提示的结束位置
x的取值为:
0 OFF
1 高亮显示
4 underline
5 闪烁
7 反白显示
8 不可见
y的取值:
前景 背景 颜色
---------------------------------------
30 40 黑色
31 41 色
32 42 色
33 43 色
34 44 色
35 45 紫 色
36 46 青 色
37 47 白色
语法说明的都告诉你了,接下来就是你自由发挥了;
在脚本中如何使用,先来个例子再说;
好了,不过如果不想影响我们后面的颜色的话,我们最好在关闭的时候这么写:/e[0m
又闪烁又改变颜色的来一个:
echo -e '/e[35;5;1mFor Example:/e[0m'
35是颜色,5代表闪烁,1代表前景色,当中用“;”分开,顺序倒是无所谓啦;/e 可以写成 /033;
那么在perl中呢?这个我们是借助Term::ANSIColor这个模块的:
新闻热点
疑难解答