如果运行的脚本行对脚本的完成不太重要,那么如何取消特定的命令而不杀死整个脚本?
通常,我会调用Ctrl+ c,但是当我对该脚本执行此操作时,整个脚本会过早结束。有没有办法(例如,放置在脚本内的选项)允许Ctrl+c仅用于手头的命令?
有一点背景:我必须~/.bash_profile
将其ssh-add
作为其中的一部分来运行,但是如果我取消它,我希望得到显示“错误130”之后的回显行,ssh-add
以提醒我在进行任何连接之前手动运行它。
我认为您正在寻找陷阱:
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,然后继续执行,在这种情况下为function bar
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句