`
dengqsintyt
  • 浏览: 291614 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Shell的标准输出、标准错误 >/dev/null 2>&1

 
阅读更多

        在经常写shell脚本时,经常看到:>/dev/null 2>&1

        如,        

netstat -nlp | grep 9780 | awk '{print $7}' | awk -F "/" '{print $1}' 1>/dev/null 2>/dev/null

            

          解释:

  •          > 代表重定向到哪里,例如:echo "test" > /home/test.txt
  •            1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"
  •          2 表示stderr标准错误
  •          & 表示等同于的意思,2>&1,表示2的输出重定向等同于1

           那么,上面语句的意思是:

  •          1>/dev/null 首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,说白了就是不显示任何信息。
  •              2>&1 接着,标准错误输出重定向等同于 标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。

              总结:               

command < filename			把标准输入重定向到filename文件中
command 0< filename			把标准输入重定向到filename文件中

command > filename			把标准输出重定向到filename文件中(覆盖)
command 1> fielname			把标准输出重定向到filename文件中(覆盖)

command >> filename			把标准输出重定向到filename文件中(追加)
command 1>> filename			把标准输出重定向到filename文件中(追加)

command 2> filename			把标准错误重定向到filename文件中(覆盖)
command 2>> filename			把标准输出重定向到filename文件中(追加)

command > filename 2>&1			把标准输出和标准错误一起重定向到filename文件中(覆盖)
command >> filename 2>&1		把标准输出和标准错误一起重定向到filename文件中(追加)

command < filename >filename2		把标准输入重定向到filename文件中,把标准输出重定向
                                                        到filename2文件中
command 0< filename 1> filename2	把标准输入重定向到filename文件中,把标准输出重定向
                                                        到filename2文件中

   

              重定向的使用有如下规律:             

1)标准输入0、输出1、错误2需要分别重定向,一个重定向只能改变它们中的一个。
2)标准输入0和标准输出1可以省略。(当其出现重定向符号左侧时)
3)文件描述符在重定向符号左侧时直接写即可,在右侧时前面加&。
4)文件描述符与重定向符号之间不能有空格!

 

 

 

分享到:
评论

相关推荐

    shell中1小于/dev/null 2大于&amp;1的含义

    在Shell脚本编程中,`&gt;/dev/null 2&gt;&1` 是一个常见的命令行操作,它的目的是将命令的输出(包括标准输出和标准错误)都重定向到一个特殊的地方——`/dev/null`,通常被称为“黑洞”或者“空设备文件”。这个文件的...

    详解shell中&gt;/dev/null 2&gt;&1到底是什么

    然而,如果你误将命令写成`2&gt;&1 &gt;/dev/null`,那么标准错误会被重定向到标准输出,而标准输出再被重定向到`/dev/null`。这意味着所有错误信息会被丢弃,而正常的输出也会被丢弃,这可能导致你在调试脚本时错过重要的...

    shell中1小于/dev/null 2大于1的含义

    shell中可能经常能看到:&gt;/dev/null 2&gt;&1 命令的结果可以通过%&gt;的形式来定义输出 /dev/null 代表空设备文件 &gt; 代表重定向到哪里,例如:echo “123” &gt; /home/123.txt 1 表示stdout标准输出,系统默认值是1,所以”&gt;...

    详解nohup /dev/null 2&gt;&1 含义的使用

    在 `nohup /mnt/Nand3/H2000G &gt;/dev/null 2&gt;&1 &` 这个例子中,`&gt;/dev/null` 表示将标准输出(文件描述符 1)重定向到 `/dev/null`,这是一个特殊的设备文件,任何写入它的数据都会被丢弃,相当于“黑洞”。`2&gt;&1` ...

    Bash中文件描述符的详细介绍

    3. 隐藏命令的错误输出:`command 2&gt;/dev/null`,这会将错误信息丢弃,不显示在终端。 掌握文件描述符的使用,对于编写复杂的Bash脚本和高效管理Linux系统至关重要。通过熟练运用文件描述符,你可以更灵活地控制...

    高级Bash脚本编程指南.docx

    同时,也可以用来禁止标准错误,如`rm $badname 2&gt; /dev/null`,这样即使删除的文件不存在,也不会显示错误信息。如果想同时忽略标准输出和错误输出,可以使用`2&gt;/dev/null &gt;/dev/null`。 此外,`/dev/null`还可以...

    linux shell 中 2>1的含义

    linux shell 中”2&gt;&1″的含义 脚本: nohup /mnt/Nand3/H2000G &gt;/dev/null 2&gt;&1 & 对于& 1 更准确的说应该是文件描述符 1,而1 一般代表的就是STDOUT_FILENO,实际上这个操作就是一个dup2(2)调用.他标准输出到all_...

    Linux 命令 shell 重定向 >

    - `2&gt;&1` 表示将错误输出(2)重定向到标准输出(1),这样错误信息也会被输出到屏幕或指定的文件。 - `&&gt; filename` 是一个简化的形式,它同时将标准输出和错误输出都重定向到`filename`。 4. **输出打印不显示*...

    【Shell学习】扫描局域网IP方法.txt

    - `&&gt;/dev/null`: 将ping命令的所有标准输出和错误输出重定向到`/dev/null`,这样就不会在屏幕上显示任何不必要的信息。 - `if ... then ... else ... fi`: 根据ping命令的返回值判断目标IP是否可达。如果目标主机...

    详解linux下nohup日志输出过大问题解决方案

    例如,`nohup ./execute.sh &gt; /home/xxx/log.log 2&gt;&1 &`会将标准输出和标准错误都重定向到`/home/xxx/log.log`文件中,而不是默认的`nohup.out`。 针对日志文件过大问题,可以采取以下策略: 1. 定期分割日志:...

    一文学会重定向.zip

    8. **重定向标准错误到标准输出**:`2&gt;&1`表示将错误输出与标准输出合并。例如,`command 2&gt;&1 &gt; all_output.txt`将所有输出(包括错误)都写入all_output.txt。 9. **历史记录重定向**:在shell脚本中,`exec`命令...

    linux下输入输出重定向.docx

    例如,mysh &gt; /dev/null 2&gt;&1 就可以忽略标准输出和错误输出。 在 IO 重定向中,我们需要了解基本概念,包括 FD(File Descriptor)、STDIN、STDOUT 和 STDERR 等。FD 是一个文件描述符,shell 的 FD 通常为 10个,...

    vim编辑器中掌握输入输出重定向与管道命令的应用

    在某些情况下,我们可能希望丢弃命令的错误输出,如`grep delegate /etc/* 2&gt;/dev/null`,这会过滤掉grep因权限问题无法打开文件时的错误提示,让屏幕只显示匹配的搜索结果。 了解并熟练运用输入输出重定向和管道...

    shell模块总结(修订版7.7)(1)1

    - `&&gt;/dev/null`:将标准输出和标准错误输出都重定向到黑洞。 14. 用户配置文件: - `~/.bashrc`:用户每次打开新终端时加载,只对当前用户有效,常用于定义变量。 15. 系统配置文件: - `/etc/profile`:所有...

    shell中的source命令的巧妙用法

    - `2&gt;&1 &gt;/dev/null`:先将标准错误输出(2)重定向到标准输出(1),然后再将标准输出重定向到`/dev/null`。这样,所有输出,包括错误,都不会显示在屏幕上,而是被丢弃。 4. **逻辑运算符`&&`和`||`** - `&&`:...

    linux下的shell项目知识累积.pdf

    在Shell脚本中,`echo`命令用于打印信息到标准输出,`&gt;`用于重定向输出,`&gt;&gt;`用于追加输出。转义字符`\`用来防止特殊字符被Shell解释。例如,如果你想在脚本中使用`#`作为文本而不是注释,你需要在前面加上反斜杠,...

    shell程序设计.docx

    在脚本中,`/dev/null &gt; files`清空文件,`files &gt; /dev/null`将文件内容丢弃。 4. **优化Shell脚本**: - `test_shell_2`脚本增加了权限检查,只有当用户以root身份运行时,脚本才会继续执行,否则显示错误信息并...

    Linux——shell编程基础

    - 示例:`find / -name test &gt; /dev/null 2&gt;&1` 的含义是搜索根目录下的名为 "test" 的文件,并将输出重定向到空设备文件 `/dev/null`,同时将错误输出也重定向到同一位置。 #### 五、Shell 变量管理 - **变量...

    linux中shell变量.pdf

    而`2&gt;&1`将标准错误(错误输出)重定向到标准输出的同一位置,即也重定向到`/dev/null`,这样所有输出(包括错误信息)都不会显示在屏幕上。 在Shell编程中,`if`语句用于条件判断。`if [ condition ]; then`结构...

Global site tag (gtag.js) - Google Analytics