シェルスクリプトをCtl+cで止める方法

[code]

    #!/bin/sh
    param_list=("param1" "param2" "param3")
    for param in "${param_list[@]}"
    do
      python sample.py $param
    done
    
[/code]

以上のように、ファイルにコマンドライン引数を渡してfor文で実行した際に、Ctl+c一回ではループから抜けられません。どのようにしたらよいでしょうか。




PythonインタプリタがデフォルトでSIGINTシグナルをトラップしてPython内の例外として扱っているからではないでしょうか。

OSのデフォルトの動作にするには、Pythonスクリプト中でハンドラにSIG_DFLを設定するとか。

[code]

    import signal
    signal.signal(signal.SIGINT, signal.SIG_DFL)
    
[/code]

