问题: 我使用 crontab 做定时任务 。写了一个脚本如下 :
#!/bin/bash
cd ~/project/python/spider/spider
nohup pipenv run python main.py >> log.txt 2>&1 &
因为环境变量的问题,以上脚本并不能正常执行。 因此我添加了环境变量 :
#!/bin/bash
source $HOME/.bash_proifle
echo $PATH >> ~/hello.txt
cd ~/project/python/spider/spider
nohup pipenv run python main.py >> log.txt 2>&1 &
然而我发现使用 source $HOME/.bash_proifle 后,环境变量 $PATH 仍然没有改变。 我必须手动指定 PATH=/home/apple/.local/bin:/home/apple/bin:$PATH crontab 才能正常执行,如下代码 :
#!/bin/bash
PATH=/home/apple/.local/bin:/home/apple/bin:$PATH
cd ~/project/python/spider/spider
nohup pipenv run python main.py >> log.txt 2>&1 &
其中 ~/.bash_profile 内容如下 :
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.