bash脚本 - 使用printf以彩色输出

时间:2014-11-11 19:09:59

标签: bash

嗨,大家好我正在做一个项目,但我想用彩色显示输出文字。

#!/bin/bash
printf "%s" "this is in red";
printf "%s" "this is in default color";
exit 0

这是一个例子,我将如何显示"这是红色"红色并将其余输出文本保留为默认颜色?

我查看了一些例子,但它们都是为了echo而且它对printf没有用,或者我真的必须使用echo来使它工作吗?

任何帮助都会很棒。感谢

2 个答案:

答案 0 :(得分:3)

尝试以下示例

#!/bin/bash
printf "\x1b[31m\"this is in red\"\x1b[0m\n";
printf "this is in default color\n";

输出如下:

enter image description here

答案 1 :(得分:3)

通过将ANSI转义序列发送到终端来指示终端以不同颜色显示以下文本来实现颜色。 printf可以轻松生成必要的字符序列,因为它将({1}}解释为ASCII转义字符。

具体来说,通过打印序列\e(即5个字符:ASCII 27(转义),\e[31m[,{{1}告诉终端开始显示红色字符}和3)。要告诉终端使用默认颜色(无论终端是什么),输出1。把它放在一起:

m