bash - 停止循环内的命令但继续循环

bash - 停止循环内的命令但继续循环

我正在运行这样的循环:

for ip in 10.0.0.1 10.0.0.2 10.0.0.3; do traceroute $ip; done

我希望能够在当前跟踪路由变得无聊时(在达到最大 30 跳之前)终止当前跟踪路由,然后转到下一个跟踪路由。但是当我按Ctrl+时c,它会终止整个for循环。

我想我需要的是一种结束 current 的方法traceroute,或者发送循环 a continue

这个问题这个正在做类似的事情,但情况更复杂。仅从提示符运行内容时是否有合理的方法来执行此操作?

答案1

使用陷阱:

trap "echo ctr+c pressed" INT TERM;for ip in 10.0.0.1 10.0.0.2 10.0.0.3; do traceroute $ip; done

相关内容