多くのpythonスクリプトを呼び出すために使用しているシェルスクリプトがあります。シェル スクリプトにトラップを追加して、ctrl+c をキャッチして終了しました。しかし、Python スクリプトが実行されているときに ctrl+c を押すと、実行されていた Python スクリプトのブロックも表示されます! 私はそれを望んでいません。Python スクリプトに KeyboardInterrupt を追加するのがより良い方法であることはわかっていますが、それには多くの労力がかかります。ctrl+c を押すと、スクリプトの実行を制御してサイレントに終了するようなソリューションが必要です。
例: a.sh:
control_c() {
echo
echo 'Keyboard Interrupt'
exit
}
trap control_c INT
python b.py
b.py:
from time import sleep
sleep(50)
a.sh を実行して ctrl+c を押したときに、次のような python ブロックを表示したくありません。
^CTraceback (most recent call last):
File "b.py", line 3, in <module>
sleep(50)
KeyboardInterrupt
Keyboard Interrupt
シンプルな「キーボード割り込み」メッセージで終了したい。