Python을 통해 웹 서버를 시작하고 싶습니다. 성공하면 기본 브라우저에서 페이지를 열고(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
1초 이상 걸리면 여전히 실패할 수 있습니다. 이 가능성을 문서화하세요.