我使用以下选项

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开启时,

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

Linux相关问答推荐

Linux打开/dev/tran/n是否与复制相同?

使用Bash从文件名中删除日期名称

Docker运行错误:exec/app/backend/server:没有这样的文件或目录

为什么当凭证助手设置为存储 SSH 远程存储库时 git pull 不使用 .git-credentials

使用 AWK 过滤 Linux 输出

有没有办法定义自定义隐式 GNU Make 规则?

nohup 是否可以跨管道工作?

Linux 进程在后台 - 在作业(job)中 Stopped停止?

使用 C/C++ (GCC/G++) 在 Linux 中的套接字编程中发送和接收文件

exec 系统调用(如 exec 和 execve)系列的功能有什么区别?

列出当前目录和所有子目录中特定大小的文件

命令列出除 . (点)和..(点点)

如何仅打印 hexdump 中的十六进制值,而不打印行号或 ASCII 表?

什么是适用于 Linux 的好的 Prolog IDE?

为什么两次使用 grep 时没有显示输出?

如何在 Linux 中使用单行命令获取 Java 版本

如何使用 bash 在文件中间添加一行文本?

限制程序在 Linux 中运行的时间

当父进程被杀死时,使用 fork() 创建的子进程是否会自动被杀死?

用curl编译php,curl安装在哪里?