shell脚本之颜色效果显示以及PS1颜色实战

在bash shell脚本中我们可以使用ASCII颜色来显示文本信息。

格式:33[31m hello 33[0m

  ##m:

    左侧#:这个#可以是3或者4,作用不一样。

      3:前景色

      4:背景色

    右侧#:颜色种类

      1,2,3,4,5,6,7

    前景和背景同时使用:33[##;##m hello 33[0m

  #m:

    加粗、闪烁等功能。

  多种控制符,可组合使用,彼此间使用分号隔开。

演示:

演示背景色

前景和背景同时使用

加粗、闪烁功能

实战演练:

给自己的Linux的PS1变量添加上颜色,比如:

1、首先是我们要给自己的PS1要显示的颜色部分添加值。

 export PS1='[33[31mu33[0m@33[32mh33[0m 33[35mW33[0m]$'

这样子设置真的很不错,达到了我们的需求,但是他是有问题的,就是比如当你在输入很长的字符串之后,你会发现bash不能自动换行显示,而是覆盖同一行的开头的部分,慢慢的往后覆盖掉一开始输入的内容,这是很不乐观的,否则当我们输入过长的内容时,显示内容是个问题怎么行呢?

初步判断是加上了颜色代码才出现这样的问题,这可能是在PS1环境变量中,颜色代码不适合直接添加至PS1中,所以我们需要进行改正,就是每个颜色代码后都加上 [ 和 ] 。

例如:

export PS1='[[33[31m]u[33[0m]@[33[32m]h[33[0m] [33[35m]W[33[0m]]$'

可以看出有多少个颜色代码就要加上多少个  [  和  ] 才行。这样子设置好之后,这个毛病就没有了,我们继续可以愉快的在终端输入长命令了。

原文地址:https://www.cnblogs.com/FengGeBlog/p/10424442.html