如何使 bash 命令回显线变为绿色

How to make bash command echo lines green

我有一个 bash 脚本,它打开了命令回显 (set -x)。我希望回显行以绿色文本打印,但实际命令的输出采用默认颜色。我可以使用 $PS4 来获得绿色,但我没有看到在每次回显后将其关闭的方法,所以结果是所有输出都变成绿色。

试试这个:

#!/bin/bash
exec 3<> >(sed -e "s/.*/\o033[0;32m&\o033[0m/")
BASH_XTRACEFD=3
set -x
...

(我相信需要 bash 4.1;如果您愿意,可以使用 awk 或 perl 或 bash 内置函数而不是 sed)