shell中使用>/dev/null 2>&1 丢弃信息

 

在一些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都不会有回显。

最新文章

  1. DedeCMS使用方法----如何将网站上传到服务器
  2. 【leetcode】Simplify Path
  3. javascript之小积累-匿名函数表达式的最佳实践
  4. SSH in Python
  5. 修改Mac系统的默认截图保存路径到指定目录
  6. clickheat简介
  7. 【Android开发学习笔记】【第四课】基础控件的学习
  8. sql截断日志
  9. linux系统环境变量.bash_profile/bashrc文件
  10. ADO.NET笔记——使用Connection连接数据库,使用Command对象的ExecuteReader()方法创建DataReader对象返回多行数据
  11. Android 自定义控件 EditText输入框两边加减按钮Button
  12. [转载]LVS快速搭建教程
  13. android开发注意点
  14. 后台运行之BackgroundWorker
  15. 小哈学Python第三课-字符集编码
  16. java MD5比较文件内容
  17. [Luogu1342] 请柬 - 最短路模板
  18. jeecg入门操作—模板配置(录入界面)
  19. JVM规范系列第5章:加载、链接与初始化
  20. React之生命周期

热门文章

  1. [SCOI2009] windy 数 (数位dp)
  2. [GZOI2017]配对统计
  3. C语言 自定义函数按行读入文件
  4. BAT的一些题
  5. CentOS安装配置Hadoop 1.2.1(伪分布模式)
  6. Java日期时间操作基础——包含JDK1.8时间操作新特性
  7. Freeswitch 安装爬坑记录1
  8. linux 实用指令文件目录类
  9. 日常Java 2021/9/27
  10. 学习java 7.19