我必须使用颜色区分命令和输出
像这样
$ 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
由于我为终端设置的颜色配置文件,它对我来说并不是真正的浅红色。
资料来源:
答案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";