我想通过 Python 启动一个 Web 服务器。成功后,我想在默认浏览器中打开页面(在 macOS 上,您可以使用命令执行此操作open
),然后我想再次恢复之前的脚本。
这不起作用:
#!/usr/bin/env bash
cd wwwroot
python3 -m http.server &
open http://0.0.0.0:8000
fg 1
我无法使用jobs
, 并打开 URL,然后运行 Python 脚本。但是,我不想重新加载该 URL 的页面。 Python 将继续运行,直到被Ctrl+C.
也许,当Python还没有准备好时,open
命令需要有一个命令......sleep
答案1
经过一番实验,这似乎$!
就是你想要的变量。例子:
(sleep 1 && open http://0.0.0.0:8000) &
disown $!
python3 -m http.server
确保sleep
(嗯,至少很可能)服务器在open
执行之前已启动并运行。然而,如果python3 -m http.server
花费的时间超过一秒,仍然有可能失败- 请务必记录这种可能性。