【发布时间】:2020-06-12 09:51:41
【问题描述】:
我有两个脚本。一个是 Python 脚本,如果一切都成功,那么它会打印 status=done,然后还有另一个名为“node-red”的服务。
现在如果它读取status=done,那么它会运行node-red。如果没有status-done,那么它会尝试再次运行 Python 脚本,直到收到status=done。
我该怎么做?
#!/bin/sh
python3 /home/pi/cryptoauthtools/python/examples/mikro_file.py
pid=$!
echo "Waiting for python script to execute"
if [ "${pid}" = "status=done" ]; then
echo Job 1 exited with status $?
node-red
fi
【问题讨论】:
-
你标记问题 bash,但不要写 sh-script!
-
您对
$!的使用没有意义。请参阅标题为Special Parameters 的段落。$!在后台扩展为最后一个命令的 PID,但您不会在后台启动任何内容。 -
IMO,这只是礼貌。通常,如果我们遇到问题,我们会发布到目前为止的内容,我们至少能做的就是让它没有语法错误。如果我们不能做到这一点,我们会问一个不同类型的问题:“为什么我会在这里遇到语法错误?”。如果我只是将一些看起来像是程序的单词拼凑在一起,这有点像在问:“我不知道怎么写,所以请为我写吧”。