Pipable命令以彩色打印?

Modified on: Sun, 10 Jun 2018 05:35:23 +0800

我对bash脚本有点新,我想知道是否有一个程序或内置命令管道将以指定的颜色打印?或者是否有回声参数?

就像我能做的那样:

echo Hi | commandhere -arguement blue

它会以蓝色打印“Hi”吗?

作者:,TenorB

最佳答案

我不知道彩色打印本身的任何实用程序,但你可以使用这样的shell函数轻松完成:

# colorize stdin according to parameter passed (GREEN, CYAN, BLUE, YELLOW)
colorize(){
    GREEN="\033[0;32m"
    CYAN="\033[0;36m"
    GRAY="\033[0;37m"
    BLUE="\033[0;34m"
    YELLOW="\033[0;33m"
    NORMAL="\033[m"
    color=\$${1:-NORMAL}
    # activate color passed as argument
    echo -ne "`eval echo ${color}`"
    # read stdin (pipe) and print from it:
    cat
    # Note: if instead of reading from the pipe, you wanted to print
    # the additional parameters of the function, you could do:
    # shift; echo $*
    # back to normal (no color)
    echo -ne "${NORMAL}"
}
echo hi | colorize GREEN

如果您想查看其他颜色,请查看此列表
您可以从那里添加对任何颜色的支持,只需在此函数中创建一个具有正确名称和值的附加变量。

作者:elias

相关问答

添加新评论