📜  Linux 错误重定向(1)

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

Linux 错误重定向

在 Linux 终端中,当我们执行命令时,有时候会出现错误信息,这些错误信息通常会输出到标准错误输出(STDERR)中,而不是标准输出(STDOUT)中。为了更好地处理和调试程序,我们需要了解 Linux 中的错误重定向,即将标准错误输出导出到文件或标准输出中。

错误重定向符号

在 Linux 中,我们使用符号 >2> 来进行输出重定向,分别代表标准输出和标准错误输出。具体用法如下:

  • >:将标准输出导出到指定文件或管道中。
  • 2>:将标准错误输出导出到指定文件或管道中。

例如,我们想将 ls 命令的标准输出导出到 output.txt 文件中,可以使用以下命令:

ls > output.txt

如果我们想将 ls 命令的标准错误输出导出到 error.txt 文件中,可以使用以下命令:

ls 2> error.txt
合并标准输出与标准错误输出

有时候,我们需要将标准输出和标准错误输出同时导出到同一个文件中,我们可以使用 2>&1 符号即可实现。例如,以下命令将 ls 命令的标准输出和标准错误输出都导出到 output.txt 文件中:

ls > output.txt 2>&1

上述命令的意思是 2>&1 表示将标准错误输出重定向到标准输出上,也就是与 > 符号重定向标准输出到同一个文件中。

处理命令执行结果

有时候,我们需要知道执行命令的返回结果,并根据结果做相应的处理。在 Linux 中,我们可以使用 $? 来获取上一个命令的返回值,返回值通常为一个整数,0 表示成功,其他数字表示失败。

例如,以下命令将执行 ls 命令,并根据返回值输出不同的信息:

ls > /dev/null 2>&1  # 将标准输出与标准错误输出都重定向到空设备中,不输出到终端
if [ $? -eq 0 ]; then
  echo "执行成功"
else
  echo "执行失败"
fi

上述命令的意思是将 ls 命令的标准输出和标准错误输出都重定向到 /dev/null 设备中,然后根据返回值判断命令是否执行成功,并输出相应的信息。

结论

错误重定向是 Linux 中的一个重要功能,通过它我们可以将标准输出和标准错误输出导出到指定的文件或管道中,以便于更好地处理和调试程序。同时,我们也需要了解如何处理命令的返回值,以便在程序中根据返回值做出不同的处理。