标题"应该";足够
为了他人的利益,我会自己发布一个解决方案,因为当时我找不到一个简单、通用的解决方案。
if func1 "$arg1" && func2 "$arg2"; then
echo 'both succeeded'
fi
if func1 "$arg1" || func2 "$arg2"; then
echo 'at least one succeeded'
fi
if ! func1 "$arg1" && ! func2 "$arg2"; then
echo 'both failed'
fi
if ! func1 "$arg1" || ! func2 "$arg2"; then
echo 'at least one failed'
fi
关键点是:
- Bash认为函数返回值
0
表示true
,1
或另一个整数表示false
- 必须使用布尔逻辑运算符
&&
和||
- 测试故障时,还要注意在
!
和函数之间留出空间