【发布时间】:2014-10-20 04:16:47
【问题描述】:
当我手动运行 bash 脚本时,输出会以使用 tput 指定的颜色附加我的日志文件。当我将 bash 脚本作为 cronjob 运行时,输出会失去颜色。谢谢。
【问题讨论】:
-
能否展示脚本的相关部分?
-
当我运行 echo $TERM 时,我得到了 xterm。如何更改 crontab 以使用带颜色的 xterm?
当我手动运行 bash 脚本时,输出会以使用 tput 指定的颜色附加我的日志文件。当我将 bash 脚本作为 cronjob 运行时,输出会失去颜色。谢谢。
【问题讨论】:
您的cron 环境几乎可以肯定只是没有指定支持颜色的终端类型,因此tput 没有返回任何内容。
比较:
$ echo $TERM
xterm-256color
$ printf %q\\n "$(tput setaf 5)"
$'\E[35m'
$ printf %q\\n "$(TERM=dumb tput setaf 5)"
''
【讨论】:
export TERM=xterm 或您想为其设置的任何其他值,或使用-T 标志到tput 告诉它要使用哪个terminfo 条目。
我将 TERM=xterm export TERM 放在 bash_profile 文件中,并且颜色正常。
【讨论】: