📜  bash stderr null - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:13:36.967000             🧑  作者: Mango

Bash stderr null

在 Bash 脚本中,有时候我们只需要在标准输出中打印消息,而不需要在标准错误输出中显示任何消息。这种情况下,我们可以将标准错误输出 "重定向"(redirect)到 /dev/null ,这是一个特殊的设备文件,它允许我们将任何写入它的内容"扔掉",不让它输出到命令行。

语法

用于将标准错误输出重定向到 null 的语法如下:

command 2>/dev/null

这将会将 command 命令的标准错误输出重定向到 /dev/null

这里的数字 2 代表标准错误输出(stderr),这是在 Bash 中的默认值,因为标准输出的数字是 1。在特定的情况下,我们可能需要将标准输出重定向到 null。这时候,语法如下:

command >/dev/null 2>&1

这个语法中,1 的含义是标准输出。我们将标准输出重定向到 /dev/null,然后将标准错误输出指向到标准输出,由于标准输出被重定向到 null,所以标准错误输出也会被重定向到 null。

示例

假设我们有一个被称为 my_script.sh 的 Bash 脚本,它输出一条错误消息到标准错误,以及一条通知消息到标准输出。

#!/bin/bash

echo "This is a notification"
echo "This is an error message" >&2

我们可以运行这个脚本来查看输出:

$ ./my_script.sh
This is a notification
This is an error message

现在,如果我们想要只看到通知消息,我们可以将标准错误输出重定向到 null:

$ ./my_script.sh 2>/dev/null
This is a notification

同时,我们也可以将标准输出和标准错误输出都重定向到 null:

$ ./my_script.sh >/dev/null 2>&1

这时候,我们不会看到任何输出。

结论

在 Bash 脚本中,将标准错误输出重定向到 null 是一种非常有用的技巧,可以使我们只看到系统中最重要的消息,而不让输出被淹没在大量的信息流中。