私が次の機能を持っているとしましょう:
#!/usr/bin/env bash
f(){
trap 'printf "\nAborting\n"; return 1' SIGINT
sleep 10
return 0
}
実行f
してその10秒待ってから実行すると
$ echo $?
> 0
それは予想されます。しかし、実行f
してヒットするとCtrl+c
、関数f
は中止されますが、
$ echo $?
> 0
の代わりに1
。私は適切にトラップしていないと思いますが、それを修正する方法はありません。