shell指令碼之顏色效果顯示以及PS1顏色實戰

2022-03-22 04:40:44 字數 1237 閱讀 9592

在bash shell指令碼中我們可以使用ascii顏色來顯示文字資訊。

格式:\033\[31m hello \033[0m

##m:

左側#:這個#可以是3或者4,作用不一樣。

3:前景色

4:背景色

右側#:顏色種類

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

前景和背景同時使用:\033[##;##m hello \033[0m

#m:加粗、閃爍等功能。

多種控制符,可組合使用,彼此間使用分號隔開。

演示:

演示背景色

前景和背景同時使用

加粗、閃爍功能

實戰演練:

給自己的linux的ps1變數新增上顏色,比如:

1、首先是我們要給自己的ps1要顯示的顏色部分新增值。

export ps1='[\033[31m\u\033[0m@\033[32m\h\033[0m \033[35m\w\033[0m]\$'
這樣子設定真的很不錯,達到了我們的需求,但是他是有問題的,就是比如當你在輸入很長的字串之後,你會發現bash不能自動換行顯示,而是覆蓋同一行的開頭的部分,慢慢的往後覆蓋掉一開始輸入的內容,這是很不樂觀的,否則當我們輸入過長的內容時,顯示內容是個問題怎麼行呢?

初步判斷是加上了顏色**才出現這樣的問題,這可能是在ps1環境變數中,顏色**不適合直接新增至ps1中,所以我們需要進行改正,就是每個顏色**後都加上 \[ 和 \] 。

例如:

export ps1='[\[\033[31m\]\u\[\033[0m\]@\[\033[32m\]\h\[\033[0m\]

\[\033[35m\]\w\[\033[0m\]]\$'

可以看出有多少個顏色**就要加上多少個  \[  和  \] 才行。這樣子設定好之後,這個毛病就沒有了,我們繼續可以愉快的在終端輸入長命令了。

shell指令碼顯示字型顏色

shell指令碼中echo顯示內容帶顏色顯示,echo顯示帶顏色,需要使用引數 e 格式如下 echo e 033 字背景顏色 文字顏色m字串 033 0m 例如 echo e 033 41 36m something here 033 0m 其中41的位置代表底色,36的位置是代表字的顏色 注 s...

shell指令碼之顏色

當我們書指令碼的時候,會想要把其中的某些部分進行重點的提示,這就涉及到怎麼把字元標記顯示不同的顏色。常用的顏色有 黑色 033 30m 033 0m 紅色 033 31m 033 0m 綠色 033 32m 033 0m 黃色 033 33m 033 0m 藍色 033 34m 033 0m 紫色 ...

shell指令碼 echo命令的顏色顯示

shell指令碼中echo命令列印彩色輸出需要使用引數 e,格式如下 echo e e 字背景顏色 文字顏色m字串 e 0m 例如 echo e e 41 36m hello world.e 0m 輸出以41 紅 為背景色和36 天藍色 為字型顏色的hello world.如果不想設定背景顏色,使用...