我在crontab中用shell脚本启动了一个屏幕,当我进入屏幕时,左侧变成了“sh-4.1#“。当我直接运行脚本时,它很正常”[root@localhost 数据]“。 发生了什么?
Shell 脚本:
#!/bin/bash
cd /data
scr_name="test"
pid=`screen -ls | grep -w $scr_name`
if [ -z "$pid" ];
then
screen -dmS $scr_name
fi
crontab 是:
*/1 * * * * /bin/bash -l /data/test.sh
笔记:它在CENTOS5.5中可以运行,但在CENTOS6.3中不能运行,现在我想在CENTOS6.3中运行它。
答案1
这是因为环境变量在 cron 中没有得到使用。
具体来说,在您的情况下,变量是 PS1。
在脚本中设置这个变量它就会起作用。
像这样:
#!/bin/bash
scr_name="test"
/bin/env
export PS1=hi
pid=`screen -ls | grep -w $scr_name`
if [ -z "$pid" ];
then
screen -dmS $scr_name
fi
这会将您的提示设置为“hi”。只需将其更改为您想要的值即可。