如何从失败的命令返回退出代码0

时间:2016-03-21 11:52:18

标签: linux bash shell unix

我想从失败的命令返回退出代码“0”。有没有更简单的方法,而不是:

function a() {
  ls aaaaa 2>&1;
}

if ! $(a); then
  return 0
else
  return 5
fi

1 个答案:

答案 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

另外,如果你说明你想要达到的目标,我们或许可以引导你找到更好的答案。