zoukankan      html  css  js  c++  java
  • Shell标准输出、标准错误 >/dev/null 2>&1

    Shell中可能经常能看到:>/dev/null  2>&1 

    eg:sudo kill -9 `ps -elf |grep -v grep|grep $1|awk '{print $4}'` 1>/dev/null 2>/dev/null

    命令的结果可以通过%>的形式来定义输出

    /dev/null 代表空设备文件

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

    那么本文标题的语句:

    1>/dev/null 首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,说白了就是不显示任何信息。

    2>&1 接着,标准错误输出重定向等同于 标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。


    2>&1写在后面的原因

    格式:command > file 2>&1   ==  command  1> file 2>&1

    首先是command > file将标准输出重定向到file中, 2>&1 是标准错误拷贝了标准输出,也就是同样被重定向到file中,最终结果就是标准输出和错误都被重定向到file中。

    如果改成: command 2>&1 >file

    2>&1 标准错误拷贝了标准输出的行为,但此时标准输出还是输出到终端。当 >file 后,标准输出才被重定向到file,但标准错误仍然保留了先前的设置,即保持输出到终端

  • 相关阅读:
    利用dockerfile定制镜像
    发布Docker 镜像到dockerhub
    Docker 停止容器
    133. Clone Graph
    132. Palindrome Partitioning II
    131. Palindrome Partitioning
    130. Surrounded Regions
    129. Sum Root to Leaf Numbers
    128. Longest Consecutive Sequence
    127. Word Ladder
  • 原文地址:https://www.cnblogs.com/52php/p/5675250.html
Copyright © 2011-2022 走看看