📜  Linux 错误重定向

📅  最后修改于: 2022-05-13 01:57:29.887000             🧑  作者: Mango

Linux 错误重定向

重定向是 Linux 中的一项功能,可用于在命令执行期间更改标准输入设备(键盘)或标准输出设备(屏幕)。任何 Linux 命令的基本过程都是接受输入并给出输出,但可以使用重定向技术更改标准/输入和输出。

错误重定向

Linux 中主要有两种类型的输出流——标准输出标准错误。重定向运算符(命令 > 文件)只重定向标准输出,因此,标准错误仍然显示在终端上。默认标准错误是屏幕。标准错误也可以重定向,这样错误消息就不会混淆程序的输出。 '2' 表示程序的标准错误。

2> 标准错误

'2>' 将输出的错误重定向到文件。错误消息被重定向并显示干净的输出。该运算符的语法如下:



command 2> file

考虑一个例子:

eccho "gfg" 2>file.txt
echo "gfg" 2>file.txt

没有作为 echo 的命令,因此将显示错误消息。但是如果使用 2>file.txt ,那么错误将被重定向到 file.txt 并且屏幕上不会显示任何错误。 cat 命令可用于显示名为 file.txt 的文件的内容,该文件是前一个命令的错误消息。在执行第二个命令时,gfg 会显示,因为 echo 是 Linux 中要显示的命令。因此, 2> 不会重定向标准输出。

2>stderr 错误重定向”srcset=”https://media.geeksforgeeks.org/wp-content/uploads/20201125214826/1.png,”sizes=”100vw”width=”445″></figure> <p style = 2>&1

当使用 2>& 时,标准错误和标准输出都被重定向到同一个文件。

Syntax:
command > file 2>&

考虑一个例子:

eccho "gfg" >error.txt 2>&1
echo "gfg" >error.txt 2>&1

没有作为 echo 的命令,因此错误消息被重定向到文件 error.txt 并且没有显示错误。第二个命令 echo “gfg” 是正确的,但仍然没有显示输出,因为标准输出也被重定向到文件 error.txt。可以使用 cat 命令在每一步之后显示文件的内容。

注意: >& 可用于重定向标准输出和标准错误,但并非所有 shell 都支持它。 sh 和 ksh 不支持 >& 而 bash 和 zsh 支持。