Bash 退出选项可取消当前(和所有后续)脚本



当我编写bash脚本时,我尝试逻辑地组织它们,在某些情况下,我有一个调用其他脚本(slaves(的脚本(master(。 在主站中,如果出现问题,我只需将exit与适当的错误消息一起使用,一切都会停止。但是,在从属脚本中,使用exit失败将阻止该从站继续,控制权交还给主站,主站只是继续执行的下一部分。

是否有一个选项(或者可能是另一个完全命令(可以停止从站和主站? 我想知道也许当主节点最初启动时,我以某种方式抓住了它正在运行的 PID,然后在所有后续测试中,如果我需要完全终止,那么我会使用kill PID#之类的东西(我想我可以在主站和从站中使用(。

从另一个角度考虑,将使用从属和主站内的"出口 1",在调用每个从站脚本后测试$?,如果不是 0,则停止?

这两种方法中的任何一种都是正确的方法吗?

当从属脚本返回时,返回存储在 $?。只需检查返回的内容,如果是错误代码,则只需退出主脚本即可。

请让我知道我如何进一步提供帮助。

最新更新