当前位置 主页 > 服务器问题 > win服务器问题汇总 >

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

    栏目:win服务器问题汇总 时间:2019-10-26 10:21

    在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的版本信息
    \w :完整的工作目录名称。家目录会以 ~代替
    \W :利用basename取得工作目录名称,所以只会列出最后一个目录
    \# :下达的第几个命令
    \$ :提示字符,如果是root时,提示符为:# ,普通用户则为:$
    我们可以自由的发挥我们的默认提示符该是什么样子了,下面不要偏离我们的主题,我们的主题是颜色;