发送退出代码而不退出脚本

灾变

假设我有 2 个服务器。假设我正在这 2 个服务器上按顺序执行操作(for 循环),并在 3 个场景中传递退出代码:

2 servers success: exit 0
2 servers fail: exit 1
1 server fail 1 server success: exit 0

目前,我使用它exit 1向 AutoSys(我们有自动化作业)返回一个退出代码,以在出现故障时指示失败,并exit 0指示成功。

然而,这也会退出脚本,所以无论我在哪里有这个命令,脚本都会停止执行。

这是目前的3个场景我有,但是,我们希望最后的方案来改变精细1 server fail 1 server success: exit 01 server fail 1 server success: exit 1如果一台服务器发生故障,其中,即使其它服务器成功,发送失败代码。

如果第一个服务器成功而第二个服务器失败,这通常可以工作,因为无论如何这是脚本的结尾,所以退出很好。但是在第一个服务器出现故障但还有另一台服务器可以运行该操作的情况下,它将退出而不让该操作在 server2 上运行。

所以我需要一种方法来退出 1(失败)而不结束脚本操作

js2010

我在 .bat 文件中做这样的事情。您可以通过退出编号判断哪个作业出错。这有点像在整数中设置位。

$err = 0

# 1st job
if (-not $?) { $err += 1 }

# 2nd job
if (-not $?) { $err += 2 }

# 3rd job
if (-not $?) { $err += 4 }

exit $err

也许您可以使用 $error 做一些事情,但它包含在 powershell 进程中运行的所有脚本的错误。

这是我最近一直在使用的另一种方法。您无法判断哪个命令产生了错误,但您可以判断整个脚本中有多少错误。

$errorcount = $Error.Count

Get-Childitem foo1
Get-Childitem foo2
Get-Childitem foo3

exit $Error.Count - $errorcount

然后,如果所有 3 个都不存在,$LASTEXITCODE 将是 3。或者 %errorlevel%。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

不退出 shell 脚本

来自分类Dev

为什么(退出1)不退出脚本?

来自分类Dev

TCSH脚本不退出

来自分类Dev

CasperJS脚本永不退出

来自分类Dev

在脚本中退出bash命令而不退出脚本

来自分类Dev

在脚本中退出bash命令而不退出脚本

来自分类Dev

困惑为什么脚本不退出

来自分类Dev

代码不退出外部for循环

来自分类Dev

代码不退出外部for循环

来自分类Dev

从菜单中调用退出脚本而不退出菜单

来自分类Dev

从菜单中调用退出脚本而不退出菜单

来自分类Dev

子脚本之一失败时不退出bash脚本

来自分类Dev

春季申请不退出

来自分类Dev

不退出递归函数

来自分类Dev

摩卡咖啡不退出

来自分类Dev

春季申请不退出

来自分类Dev

替代不退出的“头”?

来自分类Dev

循环不退出

来自分类Dev

SQL连接不退出

来自分类Dev

线程不退出

来自分类Dev

为什么此bash脚本不退出?

来自分类Dev

保留源外壳脚本而不退出终端

来自分类Dev

在javascript中,以下代码为何不退出循环?

来自分类Dev

在javascript中,以下代码为何不退出循环?

来自分类Dev

将退出代码读入脚本

来自分类Dev

捕获Expect脚本的退出代码

来自分类Dev

bash:从函数返回退出代码并从中打印出来,但不退出代码

来自分类Dev

在bash中,退出脚本而不退出外壳,或者从子外壳中导出/设置变量

来自分类Dev

在不退出终端的情况下退出错误句柄功能中的外壳脚本