【问题标题】:Why bash does not call python script?为什么bash不调用python脚本?
【发布时间】:2017-04-23 17:41:40
【问题描述】:

我有以下 Bash 脚本:

#!/bin/bash

DATE=$(date +"%Y-%m-%d_%H%M")

raspistill -vf -hf -o /home/pi/camera/$DATE.jpg

python script.py

为什么 bash 脚本不调用script.py?也许命令raspistill 杀死主进程?

【问题讨论】:

  • 我确信script_py中没有错误。只是print("OK")
  • 或者可能是bash需要等待python脚本才能完成执行?
  • 直到raspistill 完成后才会执行python 命令,然后bash 脚本在python script.py 完成之前不会退出。如果您不确定发生了什么,请尝试将set -x 添加到您想要获取更多详细信息的代码块上方,bash 将在执行每个命令之前打印每个命令,并扩展所有变量等,所以您'将能够真正看到正在发生的事情
  • raspistill 可能不会杀死脚本;更有可能的是,它在没有用户干预的情况下不会退出,因此脚本正在等待它完成,然后才能继续运行python 脚本。您可能希望使用raspistill ... & 在后台运行命令,与python script.py 并行运行。
  • 正如所写,我们只能猜测问题是什么,或者是否存在问题。请阅读stackoverflow.com/help/mcve 并改进您的 Q,以便我们为您提供帮助。祝你好运。

标签: linux bash centos


【解决方案1】:

尝试在您的 Bash 脚本中添加一些调试语句。例如:

#!/bin/bash

DATE=$(date +"%Y-%m-%d_%H%M")

raspistill -vf -hf -o /home/pi/camera/$DATE.jpg

echo "Before script.py";
python script.py
echo "After script.py";

这将为 Bash 脚本中的执行提供一些初始反馈。

【讨论】:

    猜你喜欢
    • 2014-09-18
    • 1970-01-01
    • 1970-01-01
    • 2021-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-31
    相关资源
    最近更新 更多