如何使用颜色区分命令和输出

如何使用颜色区分命令和输出

我必须使用颜色区分命令和输出

像这样

$ cat file-name (this should be in some color say like red)
some test in file OUTPUT (this output should be in some other color say like green) 

这样,如果命令的输出较大,我就可以轻松区分命令和它的输出

我必须让它对终端上输入的每个命令都起作用,如果可能的话,即使找不到命令也可以用不同的颜色打印出来

答案1

将其添加到您的~/.bashrc

        RED="\[\033[0;31m\]"
     YELLOW="\[\033[1;33m\]"
      GREEN="\[\033[0;32m\]"
       BLUE="\[\033[1;34m\]"
  LIGHT_RED="\[\033[1;31m\]"
LIGHT_GREEN="\[\033[1;32m\]"
       CYAN="\[\033[0;36m\]"
 LIGHT_CYAN="\[\033[1;36m\]"
      WHITE="\[\033[1;37m\]"
 LIGHT_GRAY="\[\033[0;37m\]"
 COLOR_NONE="\[\e[0m\]"

PS1="$PS1${LIGHT_RED}"
trap '[[ -t 1 ]] && tput sgr0' DEBUG

颜色代码变量不是必需的,但它们可以简化事情。 更改LIGHT_RED为其他颜色以满足您的需要。 效果:

红色的 蓝色的

您必须提供以下来源.bashrc才能使更改生效:

. .bashrc

LIGHT_RED由于我为终端设置的颜色配置文件,它对我来说并不是真正的浅红色。

资料来源:

  1. 如何停止 bash shell PS1 颜色在命令结束时停止?
  2. 带有 virtualenv 和 git branch 的 Bash 命令提示符(颜色)

答案2

你可以试试这个

grep --color=always . file-name

在这种情况下,点是必不可少的,它是匹配任何单个字符的正则表达式。

答案3

您可以使用 ANSI 转义序列来区分命令与其输出,如下所示:

echo -e "\e[31m"; echo "ls -al"; echo -e "\e[0m"; echo -e "\e[32m"; ls -al --color=never ; echo -e "\e[0m";

在此处输入图片描述

来源:http://misc.flogisoft.com/bash/tip_colors_and_formatting

相关内容