bash脚本的奇怪输出

bash脚本的奇怪输出,bash,cron,output,Bash,Cron,Output,我已将bash脚本作为cron在CentOS 6上成功运行 sh /a/mem1.sh >/a/mem1.txt; if [ -s /a/mem1.txt ] ; then mail -s "Server Low Memory" < /a/mem1.txt server@example.com ; fi 所以我收到了两封电子邮件——一封是正常的脚本输出,另一封是奇怪的输出,如上所述 我逐行检查了里面的脚本命令-一切正常,没有任何错误或警告。 谷歌帮不了多少忙。 提前感谢您的提示,它

我已将bash脚本作为cron在CentOS 6上成功运行

sh /a/mem1.sh >/a/mem1.txt; if [ -s /a/mem1.txt ] ; then mail -s "Server Low Memory" < /a/mem1.txt server@example.com ; fi
所以我收到了两封电子邮件——一封是正常的脚本输出,另一封是奇怪的输出,如上所述

我逐行检查了里面的脚本命令-一切正常,没有任何错误或警告。 谷歌帮不了多少忙。
提前感谢您的提示,它可能是什么以及如何解决它。

该脚本中正在运行
tput
(可能是为了在可能的情况下对输出着色),CentOS 7在cron环境中显然没有设置
TERM
值,因此
tput
正在抱怨它


从脚本中删除对
tput
的调用,或者通过cron为该进程的
TERM
设置一个值,或者在调用中添加
-T
标志以强制特定的术语类型。

cron是在发送第二封电子邮件还是
邮件
在发送?@anubhava谢谢,已尝试,没有帮助-似乎来自Etan Reisner的想法更接近,但我需要理解下面的语法。我们重写脚本,仅在stdout是终端时使用tput,正如它本来应该做的那样。您的解释非常符合逻辑,我觉得这里有一个解决方案。但是如何设置TERM或-T标志语法对我来说还是很具体的。我在脚本中有这样的命令,比如
free=$(free-mt | grep Total | awk'{print$4}')
vmstat 2-n1
ps aux>/tmp/
date+%Y-%m-%d-%H-%m-%S
\u ps-aux
如何重写它们?这些命令都不会在任何地方使用
tput
。这就是整个剧本吗?该脚本是否运行其他脚本?脚本是否源于shell启动文件?请查看我在那里使用的命令列表-我已经编辑了上面的问题,我可以为每个命令添加TERM或-T以用于过期。给我看一个语法示例
tput: No value for $TERM and no -T specified
tput: No value for $TERM and no -T specified
tput: No value for $TERM and no -T specified