在crontab脚本中是否不能使用source关键字导入环境变量文件?
发表于 : 2008-11-24 10:12
# ~me/.bashrc
if [ -d ${HOME} ]; then
source ${HOME}/.bashrc.java.env
source ${HOME}/.bashrc.cvs.env
source ${HOME}/.bashrc.mysql.env
fi
===============================
# ~me/bin/test.sh
HOME=`ls -d me`
source ${HOME}/.bashrc
echo \$MYSQL_HOME=${MYSQL_HOME}
===============================
----------------------------------
$ source ~me/.bashrc
$ echo ${MYSQL_HOME}
/opt/mysql/mysql5
----------------------------------
$ bash ~/bin/test.sh
$MYSQL_HOME=/opt/mysql/mysql5
----------------------------------
但是如果用crontab执行该脚本 (/bin/bash /home/me/bin/test.sh > /tmp/test.log 2 > /tmp/test.err)
$ cat /tmp/test.log
$MYSQL_HOME=
if [ -d ${HOME} ]; then
source ${HOME}/.bashrc.java.env
source ${HOME}/.bashrc.cvs.env
source ${HOME}/.bashrc.mysql.env
fi
===============================
# ~me/bin/test.sh
HOME=`ls -d me`
source ${HOME}/.bashrc
echo \$MYSQL_HOME=${MYSQL_HOME}
===============================
----------------------------------
$ source ~me/.bashrc
$ echo ${MYSQL_HOME}
/opt/mysql/mysql5
----------------------------------
$ bash ~/bin/test.sh
$MYSQL_HOME=/opt/mysql/mysql5
----------------------------------
但是如果用crontab执行该脚本 (/bin/bash /home/me/bin/test.sh > /tmp/test.log 2 > /tmp/test.err)
$ cat /tmp/test.log
$MYSQL_HOME=