我有一个bash脚本,它按顺序运行几个命令,如果返回非零的错误代码并显示行号以帮助查找命令,则停止。用调试退出主脚本的包装脚本
在每个命令之后,我运行一个函数(exitIfLastCommandReturnCodeNotZero),检查退出代码是否正常,如果不是,则显示行号和错误代码。例如:
..
cmd1 param1 param2 ; exitIfLastCommandReturnCodeNotZero $? $LINENO
cmd2 param1 param2 ; exitIfLastCommandReturnCodeNotZero $? $LINENO
cmd3 param1 param2 ; exitIfLastCommandReturnCodeNotZero $? $LINENO
..
这很好,但是有一个内置函数或脚本,它可以包装命令并给我相同的功能?例如:
..
wrapperScript cmd1 param1 param2
wrapperScript cmd2 param1 param2
wrapperScript cmd3 param1 param2
..
或甚至更好的'块'级功能,它运行所有命令并在一个命令失败时退出。例如:
WRAPPERSCRIPT_PSEUDOCODE {
..
cmd1 param1 param2
cmd2 param1 param2
cmd3 param1 param2
..
}
理想情况下,命令失败时的输出还应包括(除行号外)命令名称和参数。
你可能想'设置-E'这样的功能,子shell和命令替换继承的陷阱。 – 2011-02-23 17:21:19
这是辉煌的。 – zaf 2011-02-23 20:20:17