在一些Shell脚本中,特别是Crontab的脚本中,经常会看到 >/dev/null 2>&1这样的写法。

其实这个很好理解。我们分两部分解释。

1.  >/dev/null

大家知 “>”(右尖括号) 在unix/linux shell 中表示 输入到 的意思,就是把”>”左边的内容输入到”>”右边。

比如:echo text>1.txt 就把“text”这个文本输入到1.txt这个文件中。

那么 “/dev/null” 又是个什么东东呢?它代表一个空设备,即不存在的设备。也就是说,抛弃”>”左边的内容,不进行输出。

2.    2>&1

这个其实是三个部分组成的:2, >&, 1 。我们先来搞清楚这里的2和1是什么意思。在/usr/include/unistd.h中,你可以找到如下代码。

#define STDIN_FILENO    0   #define STDOUT_FILENO   1   #define STDERR_FILENO   2

这是三种不同的流。

2代表stderr.

1代表sdtout.

而 &> 则表示把符号左边的内容以符号右边的形式输出。

2&>1 就是把,把stderr做为stdout输出。

现在我们结合这两个部分来看。2&>1定义了把stderr做为标准的stdout流输出,然后stdout的内容全部写入/dev/null,也就是说被舍弃掉。

结论就是,无论执行的是什么命令,哪怕运行中出现了error都不会有回显。

shell中使用>/dev/null 2>&1 丢弃信息的更多相关文章

  1. [转帖]shell 中的>/dev/null 2>&1 是什么鬼?

    shell 中的>/dev/null 2>&1 是什么鬼? http://blog.jobbole.com/109355/ 背景 我们经常能在shell脚本中发现>/dev/ ...

  2. Shell中 2>/dev/null

    1.文件描述符 Linux系统预留可三个文件描述符:0.1和2,他们的意义如下所示: 0——标准输入(stdin) 1——标准输出(stdout) 2——标准错误(stderr) 标准输出——stdo ...

  3. Shell中的>/dev/null 2>&1 与 2>&1 >/dev/null 与&>/dev/null 的区别

    默认情况下,总是有三个文件处于打开状态,标准输入(键盘输入).标准输出(输出到屏幕).标准错误(也是输出到屏幕),它们分别对应的文件描述符是0,1,2 .那么我们来看看下面的几种重定向方法的区别: & ...

  4. Shell中的 >/dev/null 2>&1

    默认情况下,总是有三个文件处于打开状态,标准输入(键盘输入).标准输出(输出到屏幕).标准错误(也是输出到屏幕),它们分别对应的文件描述符是0,1,2 .那么我们来看看下面的几种重定向方法的区别: 1 ...

  5. 【shell】使用 /dev/null crontab

    1.linux组成kernel.shell.工具程序有sh.bash 一个例子 !#/bin/bash echo '' 执行之前chmod +x 执行./ 2.一个小窍门 cp /dev/null / ...

  6. linux中Shell标准输出错误 >/dev/null 2>&1 分析【转】

    Shell中可能经常能看到:>/dev/null  2>&1 eg:sudo kill -9 `ps -elf |grep -v grep|grep $1|awk '{print ...

  7. shell里的/dev/null 2>&1详解

    shell中可能经常能看到: >/dev/null 2>&1 命令意思是:标准输出stdout 和标准错误输出stderr 也重定向到空设备文件,即不显示输出信息 分解这个组合:“ ...

  8. 1>/dev/null 2>&1 & 意思解析

    原文:https://jingyan.baidu.com/article/6dad5075334e26a123e36e31.html 用 /dev/null 2>&1 这样的写法.这条命 ...

  9. shell中>/dev/null 2>&1

    本文转自http://www.kissyu.org/ 背景 我们经常能在shell脚本中发现>/dev/null 2>&1这样的语句.以前的我并没有去深入地理解这段命令的作用,照搬 ...

随机推荐

  1. [ERROR] Failed to execute goal org.codehaus.mojo:gwt-maven-plugin:2.5.0-rc1:compile (default) on project zeus-web: Command 解决

    在编译maven项目,打包maven packeage -Dmaven.test.skip=TRUE时,报错“[ERROR] Failed to execute goal org.codehaus.m ...

  2. 编写一个shell脚本来编译并运行java代码

    概述 编译和运行java分别要用到javac命令和java命令,虽然可以使用IDE(比如eclipse,InteliJ,NetBean...),按一下快捷键就可以实现编译并运行,但是,在之前还要配置一 ...

  3. Docker attach

    Description Attach local standard input, output, and error streams to a running container Usage dock ...

  4. MySQL服务器监控注意事项

    当开发,测试,生产的数据库环境配置不一致(比如:配置字符集不同)时而导致特殊现象时,可以从Navicat的<工具>-<服务器监控>-<变量>里查找原因.

  5. Oracle18c Exadata 版本安装介质安装失败。

    下载下来的介质安装失败 白费一早上的功夫.. 一会儿问问云和恩墨的人呢.. INFO: [-- ::] Skipping line: 复制数据库文件 INFO: [-- ::] Skipping li ...

  6. 数据类型+内置方法 python学习第六天

    元组 用途:不可变的列表,能存多个值,但多个值只有取的需求而没有改的需求. 定义方式:在()内用逗号分隔开多个元素,可以存放任意类型的值. names=(‘alex’,’blex’,’clex’) 强 ...

  7. 关于flask自带web应用服务器Werkzeug 使用requests请求时出现的错误。

    先说明一下当时的情况,下午遇到一个需求需要先从jd那边拿到图片然后上传到本地的cdn服务器来获取对应的ident 和地址. 于是就需要首先拿到京东的图片url,然后按照图片url去请求图片到内存然后再 ...

  8. html 響應式web設計

    RWD(響應式web設計)可以根據尺寸大小傳遞網頁,對於平板和移動設備是必須的. <html lang="en-US"> lang表示頁面的主要語言.http://ww ...

  9. Python调用C++类

    http://blog.csdn.net/liyuan_669/article/details/25361655 C++导出类到Python http://blog.csdn.net/arnozhan ...

  10. Navicat的使用技巧

    1.快速查找表:选中一个数据库,然后在右侧会弹出如下的搜索框,搜索表名即可 2.快速清空表的内容:在窗口选中一张表,右键,选择“清空表”