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
1秒以上かかると失敗します。この可能性を文書化してください。