【发布时间】:2022-01-05 05:00:44
【问题描述】:
我有一个 Bash 脚本,其中调用了两个 Python 脚本。在使用 crontab 时,Bash 脚本运行得很好,但 Python 脚本不做任何事情,就好像它们没有被调用或解释一样。我知道这一切都可以用 Python 完成,但我想学习一些 Bash,所以我决定将它们混合使用。
问题可能是什么?很难找到答案,因为没有人会混合使用 Bash 和 Python,因为它绝对不是有用的东西。
我的 crontab 是这样的:
10 * * * * cd ~/directory && /bin/bash ~/directory/script.sh >> output.txt
通过查看我使用 Bash 创建的 log.txt 文件(代码如下),我可以看到 Python 没有做任何事情
Bash 脚本如下所示:
#! /bin/bash
...
var=$(python3 app.py)
...
now=$(date + ...)
echo $now $var >> log.txt
代码在终端中运行良好,我还有一个 venv 和环境变量,所以我不知道这会有多大影响。
(我将 output.txt 放在 crontab 中只是为了调试,如果程序正常工作,我只会在脚本中使用 log.txt)。
【问题讨论】:
-
哪个目录包含
app.py和哪个python3? -
app.py和script.sh在同一目录,python3在usr/bin/
-
这可能会有所帮助:How to debug a bash script?
-
这可能会有所帮助:将
>> output.txt替换为>> output.txt 2>&1。 -
感谢您的帮助。显然环境变量没有被读取或者包有一些错误,所以问题肯定出在 venv 或环境变量中。现在我只需要找到它