为终端预先定义颜色?


13

我试图记住如何在.bashrc文件中预定义颜色,以便${RED}例如在执行时可以调用它们。

我不记得这样做是否正确,但如果我记得的话,就是这样。

NC="\033[0;0;0m"      # no color or formatting
RED="\033[1;49;91m"   # color red
BLU="\033[1;49;94m"   # color blue
GRN="\033[1;49;32m"   # color green

我还记得,另一个正在使用,function因此可以随时随地使用。我确实有一个文件向我展示了如何执行此操作,但是我丢失了该文件,该文件显示了如何执行此操作,我不记得它如何进行。

Answers:


12

您可以在~/.bashrc下面定义一个函数

showred(){
    export RED='\033[1;49;91m'
    export NC='\033[0;0;0m'
    echo -e $RED"$@"$NC
}

来源~/.bashrc. ~/.bashrc或打开一个新终端并尝试。

在此处输入图片说明

另外,您还可以使用echoprintf以下方法在终端上编写内容时以彩色书写,

在此处输入图片说明


这似乎是一种更友好,更清洁的方法。


3

您可能已经看过$'...'语法,该语法使Shell解释反斜杠序列:

NC=$'\e[0m'       # no color or formatting
RED=$'\e[1;31m'   # color red
GRN=$'\e[1;32m'   # color green
BLU=$'\e[1;34m'   # color blue

使用tput的另一种方法:

NC=$(tput sgr0)                  # no color or formatting
RED=$(tput bold; tput setaf 1)   # color red
GRN=$(tput bold; tput setaf 2)   # color green
BLU=$(tput bold; tput setaf 4)   # color blue

您可以在souravc的答案中将它们与包装器功能结合使用。你不需要-e

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.