スクリプトの完了に重要ではない特定のスクリプト行を実行するときにスクリプト全体を終了せずに特定のコマンドをキャンセルするにはどうすればよいですか?
Ctrl通常 + を呼び出しますcが、このスクリプトでこれを行うと、スクリプト全体が早く終了します。現在のコマンドに対してのみCtrl+を許可する方法(スクリプト内に配置されたオプションなど)はありますか?c
いくつかの背景知識:~/.bash_profile
実行中のssh-add
項目がありますが、キャンセルした場合は、ssh-add
「エラー130」が表示された後にエコラインを表示して、接続が確立される前に手動で実行するように思い出させたいと思います。
ベストアンサー1
私の考えでは、あなたはトラップを探していると思います。
trap terminate_foo SIGINT
terminate_foo() {
echo "foo terminated"
bar
}
foo() {
while :; do
echo foo
sleep 1
done
}
bar() {
while :; do
echo bar
sleep 1
done
}
foo
出力:
./foo
foo
foo
foo
^C foo terminated # here ctrl+c pressed
bar
bar
...
foo
Ctrl+を押すまで関数を実行してCから実行を続けます。この場合は関数ですbar
。