下のトラップに問題があるのでしょうか?
trap cleanup SIGINT
cleanup() {
echo "Exiting script ..."
}
echo
クリックしてもコマンドは表示されません。Ctrl+c
このコードスニペットは、無限ループを持つ大規模スクリプトの一番下にありますwhile
。
$ bash --version
GNU bash, version 4.3.48(1)-release (x86_64-pc-linux-gnu)
答え1
トラップは押すときに有効/装着する必要があります。Ctrl+Cそれ以外の場合(明らかに)トリガされません。この時点で関数も定義する必要があります。これは、コードをスクリプトの上部(最初の部分)に移動することを意味します。
また、おそらく次の関数を定義する必要があります。今後トラップを取り付けます。それ以外の場合、トラップがその間にトリガーされると、「見つかりません」エラーが発生します。
例:
#!/bin/bash
cleanup() { echo 'Exiting script ...'; }
trap cleanup SIGINT
sleep 300