源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2020-10-11 02:44 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:在shell或者perl中改变字体或背景的颜色
在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的时候显示的那个;
[u]复制代码[/u] 代码如下:
#!/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 #? 默认是”#?”,呵呵,我们在脚本中改变一下
[u]复制代码[/u] 代码如下:
#!/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)那个提示符;
[u]复制代码[/u] 代码如下:
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
就是那个”+”了,我们重置下;
[u]复制代码[/u] 代码如下:
[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时,提示符为:# ,普通用户则为:$ 我们可以自由的发挥我们的默认提示符该是什么样子了,下面不要偏离我们的主题,我们的主题是颜色; [img]http://files.jb51.net/file_images/article/201404/2014040917315434.jpg[/img] [b]那么它的语法是什么呢? [/b]\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 白色 语法说明的都告诉你了,接下来就是你自由发挥了; 在脚本中如何使用,先来个例子再说; [img]http://files.jb51.net/file_images/article/201404/2014040917315435.jpg[/img] 好了,不过如果不想影响我们后面的颜色的话,我们最好在关闭的时候这么写:\e[0m [img]http://files.jb51.net/file_images/article/201404/2014040917315436.png[/img] 又闪烁又改变颜色的来一个: echo -e '\e[35;5;1mFor Example:\e[0m' 35是颜色,5代表闪烁,1代表前景色,当中用“;”分开,顺序倒是无所谓啦;\e 可以写成 \033; 那么在perl中呢?这个我们是借助Term::ANSIColor这个模块的:
[u]复制代码[/u] 代码如下:
#!/usr/bin/perl use strict; use Term::ANSIColor; print color 'bold red'; print "Hello word\n"; print color 'reset';
[img]http://files.jb51.net/file_images/article/201404/2014040917315437.jpg[/img] 这样写的话挺麻烦的,写个函数算了:
[u]复制代码[/u] 代码如下:
#!/usr/bin/perl use strict; use Term::ANSIColor; sub ColorMessage{ my($colors,$messages) = @_; print color "bold $colors"; print "$messages \n"; print color 'reset'; } ColorMessage('green','Hello word ');
[img]http://files.jb51.net/file_images/article/201404/2014040917315438.jpg[/img]
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部