我正在尝试检测我在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脚本,或者如果它保持绿色则继续。如果有人知道如何做到这一点,将非常感激。
由于
答案 0 :(得分:1)
文字字符可以使用常规工具进行匹配;它实际上是显示删除它们的字符并改变显示颜色的终端。
output=$(javaprog)
if [[ $output == $'\e[32mThis prints in the color green.\e[0m' ]]; then
echo "Detected green output"
fi