当前位置: 首页 > 面试题库 >

重击忽略特定命令的错误

霍书
2023-03-14
问题内容

我正在使用以下选项

set -o pipefail
set -e

在bash脚本中停止执行错误。我有大约100行脚本正在执行,并且我不想检查脚本中每一行的返回码。

但是对于一个特定的命令,我想忽略该错误。我怎样才能做到这一点?


问题答案:

解决方案:

particular_script || true

例:

$ cat /tmp/1.sh
particular_script()
{
    false
}

set -e

echo one
particular_script || true
echo two
particular_script
echo three

$ bash /tmp/1.sh
one
two

three 将永远不会打印。

另外,我想补充一点,当pipefail打开时,如果管道中的命令之一具有非零退出代码(pipefail关闭该命令必须是最后一个),shell认为整个管道具有非零退出代码就足够了。

$ set -o pipefail
$ false | true ; echo $?
1
$ set +o pipefail
$ false | true ; echo $?
0


 类似资料:
  • 我想创建一个SpringWebClient,它忽略一个特定的HTTP错误。来自WebClient的文档。检索(): 默认情况下,4xx和5xx响应会导致WebClientResponseException。要自定义错误处理,请使用ResponseSpec。onStatus(谓词、函数)处理程序。 我希望通过WebClient实例的所有调用都忽略特定的HTTP错误。这就是为什么onState()对我

  • 我有一个bash脚本,我想全局启用set-e。 但是,与其一直禁用它并重新启用它,我想知道是否有一种方法可以有时选择性地禁用错误处理。例如,从systemd运行的命令可以在前面加上一个减号来忽略错误。bash有等效的吗? e. g. 由于需要启用/禁用很多,我不想继续执行以下操作:

  • 使用ESLint是否可以忽略整个目录的一个特定规则? 在我的例子中,我想忽略为一个名为的目录

  • 我试图爬过craiglist的论坛类别。组织机构(https://forums.craigslist.org/).我的蜘蛛: 我通过错误回调收到以下消息: [失败实例:Traceback:: /usr/local/lib/python2.7/site-packages/twisted/internet/defer.py: 455:回调 /usr/local/lib/python2.7/site-p

  • 问题内容: 有人能想到一种忽略Java双击附带的单击的好方法吗? 我希望每种行为都有不同的行为,例如: 单击可在点击点上绘制十字准线 双击选择屏幕上的对象,但应该 不是 搽点击点十字线 …有人能想到一种方法吗?某种计时器设置可能是?一个想法赞赏:-) <免责声明> …而且是的,我知道我正在犯一个最令人发指的可用性/ UI伪装。 问题答案: 实际上,您需要在MouseAdapter的重写mouseC