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,但标准错误仍然保留了先前的设置,即保持输出到终端

  • 相关阅读:
    Linux-KVM, QEMU, Virtualbox, VMWare
    Linux环境下查看CPU是否支持VT虚拟化
    (OK) Phoronix Test Suite
    GNS3: Qemu or VirtualBox?
    Android x86 On Qemu
    ARC Welder——Android 模拟器——App Runtime for Chrome
    Running Android apps using Docker and ARC Welder
    使用Docker编译Android(AOSP)
    Android —— releases of AOSP
    (OK) install android-x86-5.1 on virtualbox
  • 原文地址:https://www.cnblogs.com/52php/p/5675250.html
Copyright © 2011-2022 走看看