私は5秒間スリープする単純なPythonスクリプトを持っています。スクリプトをバックグラウンドで実行しています。sleep関数を呼び出す前に、小さなprintステートメントがあります。しかし、手動でEnterキーを押さない限り、プロンプトを返すことはできません。印刷ステートメットにコメントすると、プロンプトが返されます。ただし、どちらの場合もスクリプトはバックグラウンドになります。
import time
print("going to sleep")
time.sleep(5)
printステートメントを含むスクリプトを実行すると、プロンプトが返されません。
USER-M-L0DD:Downloads user$python3 sleep.py &
[1] 10993
USER-M-L0DD:Downloads user$ going to sleep
プロンプトを元に戻すには、ここで手動でEnterキーを押す必要があります。
printステートメントなしで実行すると、プロンプトが返されます。
USER-M-L0DD:Downloads user$ python3 sleep.py &
[1] 11588
USER-M-L0DD:Downloads user$
これは予想されます。プロンプトが返されます。それはあなたの顔を見つめています:
USER-M-L0DD:Downloads user$python3 sleep.py &
[1] 10993
USER-M-L0DD:Downloads user$ going to sleep
^^^^^^^^^^^^^^^^^^^^^^^^^^^^ < Look: there is your prompt
何が起こるかというと、Pythonスクリプトが実行されると、その出力もコンソールに送信され、プロンプトの後に出力されます。しかし、シェルはまだそこに座って入力を待っています。
printステートメントがないと、コンソールに何も出力されないため、プロンプトの後に追加の出力は表示されません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加