Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
bash中的聚合故障代码_Bash - Fatal编程技术网

bash中的聚合故障代码

bash中的聚合故障代码,bash,Bash,我有一个脚本,它有多个阶段,每个阶段都可能失败,但脚本可以继续运行 具体地说,我生成一些json,并检查差异是否正确。差异可能是错误的,但它并没有阻止json的下一阶段的产生 如何聚合diff的故障代码,以便在任何diff返回>1时返回1,否则返回零,而不在故障发生时立即结束 基本上,它只是将|折叠到结果代码上,但我似乎找不到一个好方法来|带有返回代码的字符串 骨架: main_result=0 for s in stage1 stage2 stage3; do diff <(ge

我有一个脚本,它有多个阶段,每个阶段都可能失败,但脚本可以继续运行

具体地说,我生成一些json,并检查差异是否正确。差异可能是错误的,但它并没有阻止json的下一阶段的产生

如何聚合diff的故障代码,以便在任何diff返回>1时返回1,否则返回零,而不在故障发生时立即结束

基本上,它只是将
|
折叠到结果代码上,但我似乎找不到一个好方法来
|
带有返回代码的字符串

骨架:

main_result=0
for s in stage1 stage2 stage3; do
    diff <(generate-stuff) expected-$stage
    result=$?
    # something like main_result=$main_result || $result
done

exit $main_result
main\u结果=0
对于阶段1阶段2阶段3中的s;做
diff逻辑or可按以下方式执行:

main_result=$((main_result || result))
逻辑or可以按以下方式执行:

main_result=$((main_result || result))

您要查找的是
$(())
,说明如下:

结果:

0
1
所以你需要做的就是

main_result=$((main_result || $?))

您要查找的是
$(())
,说明如下:

结果:

0
1
所以你需要做的就是

main_result=$((main_result || $?))

你的意思是
diff returned>1
还是等于1?@anubhava我的意思是
>1
。从手册页上看,如果输入相同,退出状态为0;如果输入不同,退出状态为1;如果输入有问题,退出状态为2。
这会使问题变得更加复杂。只要将
main_result
设置为1,如果生成的文件之一不是您所期望的:
diff您真的是说
diff returned>1
还是等于1?@anubhava我真的是说
>1
。从手册页上看,如果输入相同,退出状态为0;如果输入不同,退出状态为1;如果输入有问题,退出状态为2。
这会使问题变得更加复杂。只要将
main\u result
设置为1,如果生成的文件之一不是您所期望的:
diff