我想从失败的命令返回退出代码“0”。有没有更简单的方法,而不是:
function a() {
ls aaaaa 2>&1;
}
if ! $(a); then
return 0
else
return 5
fi
答案 0 :(得分:3)
只需将return 0
附加到函数以强制函数始终退出成功。
function a() {
ls aaaaa 2>&1
return 0
}
a
echo $? # prints 0
如果您希望以任何理由进行内联,可以将|| true
附加到命令中:
ls aaaaa 2>&1 || true
echo $? # prints 0
如果您希望反转退出状态,请在命令前添加!
! ls aaaaa 2>&1
echo $? # prints 0
! ls /etc/resolv.conf 2>&1
echo $? # prints 1
另外,如果你说明你想要达到的目标,我们或许可以引导你找到更好的答案。