在bash中将一些返回代码映射为零(成功)

时间:2014-06-30 08:47:01

标签: bash

我有一个shell脚本,它返回一堆不同的错误代码。有些是无害的,我想将它们视为成功,然后使用&&运行另一个命令(即所有在同一个列表命令中)。有没有办法做到这一点?

例如:

cmd1 && cmd2;

成功时cmd1返回0,无害错误返回1,真实错误返回2。我希望命令继续在0或1上执行。

3 个答案:

答案 0 :(得分:4)

你可以这样做

cmd1; (( $? < 2 )) && cmd2

答案 1 :(得分:1)

您只能使用&&继续0返回代码。

但是,您可以阅读返回代码并根据它做出不太严格的决定(使用if甚至&&):

/your/command; rc=$?
[ $rc -lt 2 ] && /your/continuation

答案 2 :(得分:0)

您也可以使用test

cmd1; test $? -lt 2 && cmd2