众所周知的文件描述符是标准输入stdin、标准输出stdout、标准错误stderr,我们可以重定位这些文件描述符关联文件的内容到另外一个文件文件描述符。 1. Linux Shell 命令的标准输入、标准输出、标准错误 当我们在编写 shell 脚本时,我们会非常频繁地操作执行命令的标准输入stdin、标准输出stdout、标准错误stderr。过滤 shell...
一、shell输入/输出重定向 重定向命令列表如下: 注意:需要注意的是文件描述符 0 通常是标准输入(STDIN),1 是标准输出(STDOUT),2 是标准错误输出(STDERR)。 1、输出重定向 重定向一般通过在命令间插入特定的符号来实现。特别的,这些符号的语法如下所示: command1>file1 1. 上面这个命令执行command1然后将输出的...
当我们想要丢弃所有输出时,正确的方法是先重定向stdout到/dev/null,然后再将stderr重定向到stdout。这样,所有的输出都不会显示在终端上。 在编写Shell脚本或执行命令时,理解和正确使用I/O流的重定向是非常重要的。它不仅可以帮助我们控制脚本的输出内容,而且还能够在需要的时候对错误信息进行适当的处理。在脚本中正确...
要将stderr重定向到stdout并将错误消息发送到与标准输出相同的文件,请使用以下命令: command > file 2>&1 > file将stdout重定向到file,2>&1将stderr重定向到stdout的当前位置。 重定向的顺序很重要。例如,以下示例仅将stdout重定向到file。以下这种情况是因为stderr重定向到stdout,然后stdout重定向到了file。 com...
你可以使用与脚本中重定向STDOUT 和STDERR 相同的方法来将STDIN从键盘重定向到其他位置。exec 命令允许你将STDIN 重定向到Linux系统上的文件中: exec0< testfile 这个命令会告诉shell它应该从文件testfile 中获得输入,而不是STDIN。 #!/bin/bashexec0<$HOME/testwhilereadlinedoechofile line:$linedone ...
从系统编程的角度来理解,输出重定向"command > file"就是:command命令输出数据,向stdout或stderr输出(write)数据,Linux Shell把这些数据重新定向(open)输出(write)到file文件中。也就是说:输出重定向就是对stdout或stderr进行重定向。而输入重定向“command < file”,则是把Linux Shell把文件打开(open)...
重定向标准输出和标准错误到同一文件中,共有两种方式可以实现。首先让我们使用传统方法,它适用于老版本的shell :ls -l /bin/usr > ls-output.txt 2>&1 首先,我们将stdout重定向到ls-output.txt文件,然后用2>&1的符号将文件描述符2 stderr重定向到文件描述符1 stdout 中。需要注意重定向的顺序,重定向...
标准错误文件(stderr):stderr的文件描述符为2,Unix程序会向stderr流中写入错误信息。 默认情况下,command > file 将 stdout 重定向到 file,command < file 将stdin 重定向到 file。 如果希望 stderr 重定向或追加到 file,可以按照如下语法: command 2> file #重定向 ...
只重定向错误 STDERR文件描述符被设成2。可以选择只重定向错误消息,将该文件描述符值放在重定向符号前。该值必须紧紧地放在重定向符号前,否则不会工作。 ls -al badfile 2> test2 cat test2 示例 现在运行该命令,错误消息不会出现在屏幕上了。该命令生成的任何错误消息都会保存在输出文件中。用这种方法,shell会...