📜  bash ignore stderr - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:59:28.228000             🧑  作者: Mango

Bash忽略标准错误(Ignore STDERR)

在Bash中,输出通常被分为两种类型:标准输出(STDOUT)和标准错误(STDERR)。标准输出用于常规输出,例如打印文本或结果。标准错误则用于打印错误和警告消息。通常,这些消息都输出到终端窗口中。

在某些情况下,我们可能想忽略标准错误消息,而只关注标准输出。这可以通过将STDERR重定向到/dev/null来实现。/dev/null是一个特殊的文件,其作用是将所有写入该文件的数据都完全丢弃。

让我们来看一个简单的例子。假设我们有一个名为test.sh的Bash脚本,其中有一个将结果写入标准输出和标准错误的命令:

#!/bin/bash

echo "Hello, world!" # 正确消息
echo "Oops, something went wrong..." >&2 # 错误消息

当我们运行这个脚本时,它会输出以下内容:

Hello, world!
Oops, something went wrong...

现在,如果我们想忽略标准错误并只输出Hello, world!,可以通过以下方式实现:

./test.sh 2>/dev/null

在此命令中,“2”代表标准错误,因此我们将其重定向到/dev/null中,以便将其完全忽略。如果我们运行此命令,它将只输出以下内容:

Hello, world!

有时,您可能希望忽略所有输出,包括标准输出和标准错误。这可以通过将STDOUT和STDERR都重定向到/dev/null来实现:

./test.sh >/dev/null 2>&1

在此命令中,“1”代表标准输出,“2”代表标准错误。我们使用>&操作符将标准错误重定向到标准输出。然后,我们将标准输出重定向到/dev/null,以便将其完全忽略。如果我们运行此命令,它将没有任何输出。

因此,在Bash中,忽略标准错误可能非常有用。使用重定向操作符可以轻松地实现此目的。