gpt4 book ai didi

python - 我在 shell 脚本中运行一个程序。我怎么知道它是否已加载? (Linux)

转载 作者:太空宇宙 更新时间:2023-11-04 12:30:56 24 4
gpt4 key购买 nike

我编写了一个运行 python 程序的 shell 脚本。然后我想使用 xdotool 将文件加载到程序中。现在这是我的代码:

#!/bin/bash
cd ~/Folder
python program.py &
sleep 10
WID=$(xdotool search --onlyvisible program)
....

我真的不喜欢只等待 10 秒以便加载程序的解决方案。有没有更好的办法?

最佳答案

这真的取决于。如果program.py应该完成然后继续 xdotool那么你可能想使用 &&而不是 & .单&意味着您希望命令执行然后尽快移动到下一个命令,而不是等待它完成。双人间&&意味着您想等待执行完成,然后只有在零错误退出时才继续。您也可以只删除 &或使用 ;如果你想运行下一个命令而不考虑 program.py的成功。这是我的意思:

#!/bin/bash
cd ~/Folder
python program.py &&
WID=$(xdotool search --onlyvisible program)
...

如果program.py应该在您运行 xdotool 时继续运行命令,但你需要 program.py在继续之前进入某种就绪状态,那么您就可以使用 & , 但你需要监控 program.py不知何故,并从中得到一个可以继续的信号。一种古老的方法是简单地让 program.py创建/触摸/编辑文件,并在检测到该文件时继续。一种更高级的方法是使用网络套接字或类似方法,但如果您真的不需要做任何花哨的事情,我建议您不要这样做。不管怎样,如果你做program.py创建一个信号文件,比如 /tmp/.program_signalfile ,当一切准备就绪时,您所要做的就是:

#!/bin/bash
cd ~/Folder
python program.py &
until [ -f /tmp/.program_signal_file ]
do
sleep 1
done
WID=$(xdotool search --onlyvisible program)
rm /tmp/.program_signal_file
...

在最后一个解决方案中 program.pyxdotool两者同时运行。如果这就是您要找的。

关于python - 我在 shell 脚本中运行一个程序。我怎么知道它是否已加载? (Linux),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43312236/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com