Crontab启动一个屏幕

我在crontab中用shell脚本启动了一个屏幕,当我进入屏幕时,左边变成了“ sh-4.1# ”。 当我直接修改脚本时,它是正常的“ [root @ localhost data] ”。 发生了什么?

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中运行它。

这是因为在cron中没有使用的环境variables。

特别是在你的情况下,variables是PS1。

在脚本中设置这个variables,它将起作用。

像这样的东西:

 #!/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 

这将设置你的提示“嗨”。 把它改成你想要的。