我有一个脚本runonce.sh,它通过cron调用另一个脚本setup.sh。我们认为这种情况是“未设置TERM环境变量”的理想情况。在runonce.sh脚本的输出中可以看到。
现在我面临的问题是另一个第三个简单脚本 - upgradeAndTest.sh,当调用setup.sh时,那个时候也“TERM环境变量未设置”。在upgradeAndTest.sh脚本的输出中可以看到。为什么会这样..?
另外,如果我在调用脚本中将setup.sh的stderr重定向到stdout,那么“TERM环境变量也未设置”。在控制台上显示。
任何人都可以帮我从调用脚本的stdout中删除这一行吗??
答案 0 :(得分:26)
通过cron
运行需要终端的程序可能会导致问题;它由cron
运行时没有终端。
如有疑问,请确保在脚本中设置变量,方法是添加一行:
export TERM=${TERM:-dumb}
如果已设置环境变量TERM
,则这是一个无操作。如果不是,则将终端设置为具有最小功能的标准终端 - 这满足了抱怨TERM
未设置的程序。