shell之>/dev/null 2>&1”ITeyesohu - 牛牛娱乐

shell之>/dev/null 2>&1”ITeyesohu

2019-02-02 09:28:20 | 作者: 涵煦 | 标签: 规范,重定向,指令 | 浏览: 8427

https://ppp1013.blog.51cto.com/927700/271043 今天在自己的一个技能群中又被问道了这么一个问题,所以又浅显的解说了一下,做个记载,咱们看看解说是否清楚! shell中或许常常能看到: /dev/null 2 1 指令的成果能够经过% 的方法来界说输出 分化这个组合:“ /dev/null 2 1” 为五部分。 1: 代表重定向到哪里,例如:echo "123" /home/123.txt
2:/dev/null 代表空设备文件
3:2 表明stderr规范过错
4: 表明等同于的意思,2 1,表明2的输出重定向等同于1
5:1 表明stdout规范输出,体系默认值是1,所以" /dev/null"等同于 "1 /dev/null" 因而, /dev/null 2 1也能够写成“1 /dev/null 2 1” 那么本文标题的句子履行进程为:
1 /dev/null :首要表明规范输出重定向到空设备文件,也就是不输出任何信息到终端,说白了就是不显现任何信息。
2 1 :接着,规范过错输出重定向 到 规范输出,由于之前规范输出现已重定向到了空设备文件,所以规范过错输出也重定向到空设备文件。 说清楚了吗,咱们理解下吧! 趁便比照述说下这么用的优点!    最常用的方法有: command file 2 file  与command file 2 1 它们 有什么不同的当地吗?
      首要command file 2 file 的意思是将指令所发生的规范输出信息,和过错的输出信息送到file 中.command  file 2 file 这样的写法,stdout和stderr都直接送到file中, file会被翻开两次,这样stdout和stderr会相互掩盖,这样写适当使用了FD1和FD2两个一起去抢占file 的管道。
      而command file 2 1 这条指令就将stdout直接送向file, stderr 承继了FD1管道后,再被送往file,此刻,file 只被翻开了一次,也只使用了一个管道FD1,它包含了stdout和stderr的内容。
      从IO功率上,前一条指令的功率要比后边一条的指令功率要低,所以在编写shell脚本的时分,较多的时分咱们会command file 2 1 这样的写法。
版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表牛牛娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章