如何从 bash 脚本获取彩色输出?

如何从 bash 脚本获取彩色输出?

当我grep从 gnome-terminal 内部执行时,我得到彩色输出 - 容易注意到的匹配、具有不同颜色的行号(-n)等

grep但是当我通过 bash 脚本执行完全相同的命令时,我得到了平面输出,没有颜色

有没有办法可以使用 bash 脚本获得彩色输出?

答案1

--color当我在 shell 脚本中运行 grep 时,使用该选项对我来说很有效。

这是您想要的一个例子。

grep -n --color=auto "PATTERN" FILE

答案2

这是一个小脚本,可以帮助您了解 tput 如何与 bash 配合使用

#!/bin/bash
#@auth kesavan.muthuvel
#@desc - bash with colors :)

B=`tput bold`           #BOLD
D=`tput dim`            #DIM
U=`tput sgr 0 1`        #UNDERLINE
U2=`tput smul`          #UNDERLINE2
NOU=`tput rmul`         #NO UNDERLINE
H=`tput smso`           #HIGHLIGHT
X=`tput sgr0`           #RESET
C='tput setaf '         #COLOR


for i in 0 1 2 3 4 5 6 7 ; do
        c=`$C$i` && echo $c${B}I${U}always$NOU $D love \
           ${U2}colors$NOU \& $c${H}GNU/Linux$X
done;

这将打印以下输出,格式如下大胆的、下划线、突出显示和颜色。

BASH 脚本使用文本格式和颜色进行打印

答案3

您是否尝试过将这些别名添加到您的~/.bashrc

alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'

相关内容