Bash检测bash中的彩色文本输出

时间:2016-03-30 18:38:34

标签: java linux bash shell colors

我正在尝试检测我在bash脚本中运行的命令是否以特定颜色输出到终端。我的Java代码中有一些打印语句,它们根据输出内容以特定颜色输出。

使用以下代码完成:

//ANSI color codes for output
public static final String ANSI_RED = "\u001B[31m";
public static final String ANSI_GREEN = "\u001B[32m";
public static final String ANSI_RESET = "\u001B[0m";

System.out.println(ANSI_GREEN + "This prints in the color green." + ANSI_RESET);

有没有办法在bash中检测到这种颜色差异?我希望能够在输出为红色时停止bash脚本,或者如果它保持绿色则继续。如果有人知道如何做到这一点,将非常感激。

由于

1 个答案:

答案 0 :(得分:1)

文字字符可以使用常规工具进行匹配;它实际上是显示删除它们的字符并改变显示颜色的终端。

output=$(javaprog)
if [[ $output == $'\e[32mThis prints in the color green.\e[0m' ]]; then
    echo "Detected green output"
fi