如何删除“TERM环境变量未设置”

时间:2013-10-17 11:40:10

标签: bash shell cron

我有一个脚本runonce.sh,它通过cron调用另一个脚本setup.sh。我们认为这种情况是“未设置TERM环境变量”的理想情况。在runonce.sh脚本的输出中可以看到。

现在我面临的问题是另一个第三个简单脚本 - upgradeAndTest.sh,当调用setup.sh时,那个时候也“TERM环境变量未设置”。在upgradeAndTest.sh脚本的输出中可以看到。为什么会这样..?

另外,如果我在调用脚本中将setup.sh的stderr重定向到stdout,那么“TERM环境变量也未设置”。在控制台上显示。

任何人都可以帮我从调用脚本的stdout中删除这一行吗??

1 个答案:

答案 0 :(得分:26)

通过cron运行需要终端的程序可能会导致问题;它由cron运行时没有终端。

如有疑问,请确保在脚本中设置变量,方法是添加一行:

export TERM=${TERM:-dumb}

如果已设置环境变量TERM,则这是一个无操作。如果不是,则将终端设置为具有最小功能的标准终端 - 这满足了抱怨TERM未设置的程序。