[英]Git - pre-commit hook error color
我的预提交挂钩可压缩/编译css / js文件。 发生错误时,我仅使用echo
输出错误,然后exit 1
。 但是,写入控制台的文本为白色,因此不容易看到何时发生错误。
还有另一种写入控制台的方法(errOut?),它将使文本变为红色 ?
解决此问题的最佳方法是为钩子输出着色,而不是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"
注意:需要将-e
与echo
使用-它指定解释特殊字符,例如颜色和换行符。 ( http://ss64.com/bash/echo.html )
像这样自定义bash可能是一个好主意:
0 ;) $ cat ~/.bashrc
PS1="\[\033[01;37m\]\$? \$(if [[ \$? == 0 ]]; then echo \"\[\033[01;32m\];)\"; else echo \"\[\033[01;31m\];(\"; fi) $(if [[ ${EUID} == 0 ]]; then echo
'\[\033[01;31m\]\h'; else echo '\[\033[01;32m\]\u@\h'; fi)\[\033[01;34m\] \w \$\[\033[00m\] "
如果最后一个命令没有错误完成,它将显示绿色的笑脸;),如果失败则显示红色的悲伤脸;(例如,):
0 ;) $ cat 1.sh
#!/bin/bash
exit 1
0 ;) $ ./1.sh
1 ;( $
0 ;( $ cat 1.sh
#!/bin/bash
exit 0
0 ;) $ ./1.sh
0 ;) $
您可以根据需要自定义输出。
这个例子是从这里拿来的
更新资料
对于Windows的Git 2.5
if ! \$?; then
PS1="\[\e[1;32m\]Nice Work!\n\[\e[0;32m\]\u@\h \[\e[0;33m\]\w\[\e[0;37m\]\n\$ "
else
PS1="\[\e[1;31m\]Something is wrong!\n\[\e[0;32m\]\u@\h \[\e[0;33m\]\w\[\e[0;37m\]\n\$ "
fi
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.