在shell或者perl中改变字体或背景的颜色

2019-09-23 09:40:51王旭

在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的时候显示的那个;


#!/bin/bash
#PS3=”Select a script language (1-4): ”
select i in perl php python shell exit
do
case $i in
perl) echo “I like perl”;;
php) echo “php is good”;;
python) echo “xiangjun like python”;;
shell) echo “shell is my favourite”;;
exit) exit;;
esac
done

[root@vps tmp]$bash select.sh
1) perl
2) php
3) python
4) shell
5) exit
#? 1
I like perl
#?

默认是”#?”,呵呵,我们在脚本中改变一下


#!/bin/bash
PS3=”Select a script language (1-4): “
select i in perl php python shell exit
do
case $i in
perl) echo “I like perl”;;
php) echo “php is good”;;
python) echo “xiangjun like python”;;
shell) echo “shell is my favourite”;;
exit) exit;;
esac
done

[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)那个提示符;


Select a script language (1-4): 5
[root@vps tmp]$bash -x select.sh
+ PS3='Select a script language (1-4): ‘
+ select i in perl php python shell exit

就是那个”+”了,我们重置下;


[root@vps tmp]$export PS4=”>>”
[root@vps tmp]$bash -x select.sh
>>PS3='Select a script language (1-4): ‘
>>select i in perl php python shell exit

好了,回忆了一些基础知识之后,回到我们的话题上来:,我们以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的版本信息