Git - 预提交钩子错误颜色

Red*_*pia 0 git stdout stderr pre-commit-hook

我的预提交钩子压缩/编译css/js文件.当发生错误时,我只是echo用来输出错误然后exit 1.但是,写入控制台的文本是WHITE,因此在发生错误时不容易看到.

是否有另一种方法可以写入控制台(errOut?),使文本变为RED

Red*_*pia 9

处理此问题的最佳方法是着色您的钩子输出而不是PS1提示,如下所示:

red='\033[0;31m'
green='\033[0;32m'
yellow='\033[0;33m'
no_color='\033[0m'

echo -e "\n${yellow}Executing pre-commit hook${no_color}\n"

... do your hook stuff ...

if [[ something bad happens ]]; then
    >&2 echo -e "\n${red}ERROR - Something BAD happened!\n${no_color}"
    exit 1
fi

echo -e "${green}Git hook was SUCCESSFUL!${no_color}\n"
Run Code Online (Sandbox Code Playgroud)

注意:需要使用-ewith echo- 它指定解释特殊字符,如颜色和新行.(http://ss64.com/bash/echo.html)