当运行某些行对脚本完成不太重要的脚本时,如何取消特定命令而不终止整个脚本?
通常我会调用Ctrl+ c,但是当我使用该脚本执行此操作时,整个脚本会过早结束。有没有办法(例如放置在脚本中的选项)允许Ctrl+c仅用于手头的命令?
一点背景:我有我作为它的一部分~/.bash_profile运行ssh-add,但如果我取消它,我希望ssh-add在显示的“错误 130”之后得到回声行,以提醒我在任何连接之前手动运行它。
我认为您正在寻找陷阱:
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
Run Code Online (Sandbox Code Playgroud)
输出:
./foo
foo
foo
foo
^C foo terminated # here ctrl+c pressed
bar
bar
...
Run Code Online (Sandbox Code Playgroud)
foo执行函数直到按下Ctrl+ C,然后继续执行,在本例中为函数bar.
| 归档时间: |
|
| 查看次数: |
258 次 |
| 最近记录: |