BASH - 将标准输出和标准错误重定向到同一文件

重定向标准输出和标准错误

我们通常使用>进行重定向,要追加到现有文件,我们将使用“>>”。

$echo "onitroad.com" > new-file.txt
AND
$echo "onitroad.com" >> existing-file.txt

使用这些命令,将重定向标准输出,并在屏幕上显示标准错误。

重定向标准错误,我们可以使用2>
这将使标准输出显示在我们的屏幕上,并将所有错误消息发送到文件。

$echo "onitroad.com" 2> new-file.txt
  • 要将标准输出和标准错误重定向到同一文件,请使用以下命令语法。具体来说,添加“2>&1”到常规命令的结尾。
$echo "onitroad.com" > new-file.txt 2>&1
  • 实现此功能的稍微易于更简单的方法是使用“&”运算符。请注意,这在Bash和ZSH中工作正常,但不是其他shell,因此使用前一个示例与其他系统最大兼容。
$echo "onitroad.com" &> new-file.txt
  • 要将标准输出和标准错误添加到已存在的文件,请使用上面的相同语法,但使用“>>”“重定向运算符”。
$echo "onitroad.com" >> existing-file.txt 2>&1
  • 要从终端中抑制标准输出和标准错误,请避免生成文件,我们可以将其中两者重定向到/dev/null
$echo "onitroad.com" > /dev/null 2>&1
  • 要将标准输出重定向到一个文件,并将标准错误重定向到其他文件,请使用以下语法。
$echo "onitroad.com" 2> std-err.txt 1> std-out.txt
  • 如果要将标准输出和标准错误重定向到同一文件,同时也会在终端中看到它们,我们可以从TEE命令获得一点帮助。
$echo "onitroad.com" 2>&1 | tee new-file.txt
  • 如果我们希望在屏幕上看到标准输出和标准错误,请在将它们添加到同一文件时,我们可以使用使用TEE-a(添加)选项。
$echo "onitroad.com" 2>&1 | tee -a existing-file.txt
日期:2020-07-07 20:54:29 来源:oir作者:oir