当前位置:  技术问答>linux和unix

请教:> /dev/null 2>1& 这个命令是什么意思?

    来源: 互联网  发布时间:2017-01-21

    本文导语:  如题。  > /dev/null 2>1& 这个命令是什么意思? 看了一些帖子,大概知道 > /dev/null是屏蔽输出的意思。 后面的2>1&是什么意思呢?有什么作用? 谢谢! | http://bbs.chinaunix.net/viewthread.php?tid=218853&page=7#pid...

如题。  > /dev/null 2>1& 这个命令是什么意思?
看了一些帖子,大概知道 > /dev/null是屏蔽输出的意思。
后面的2>1&是什么意思呢?有什么作用?

谢谢!

|

|
> 是重定向,意思是把输出信息重新定向到后面的设备
/dev/null 像楼上说的,是一个黑洞,任何输出到它的信息都被丢弃

这儿的2和1都是文件描述符,1表示标准输出,2表示错误输出

2>&1 表示把错误输出定向到标准输出
如果>前面没用数字,缺省就是标准输出

>/dev/null 2>&1
整体就表示把某个命令的标准输出定向到空设备,错误输出定向到标准输出,其实也定向到了空设备

|
标准输出到/dev/null了,错误也到标准输出,那应该没信息显示了

|
有啊,/dev/null是黑洞,啥东西进去都没了。不过楼主写错了,是2>&1。

|
2>1& 是把 标准错误 重定向到 标准输出。

|
错误信息也追加到输出

|
[mike@RHEL6A scripts]$ more sh1.sh 
echo 'hello'
abc

[mike@RHEL6A scripts]$ ./sh1.sh 
hello
./sh1.sh: line 2: abc: command not found
[mike@RHEL6A scripts]$ more ./sh2.sh 
sh1.sh > /dev/null 2>1&
[mike@RHEL6A scripts]$ ./sh2.sh 
[mike@RHEL6A scripts]$ 

自己写两个最简单的例子运行一下就知道了

|


我还是比较菜这也没发现,照着楼主写的成了后台运行了

[mike@RHEL6A scripts]$ more sh2.sh 
sh1.sh > /dev/null 2>&1
[mike@RHEL6A scripts]$ ./sh2.sh 
[mike@RHEL6A scripts]$ 

|
哈哈,也可以看看传说中的“康神”是怎么写的:
http://hi.baidu.com/monyer/blog/item/004279893bcd6db50e244456.html

#!/bin/bash
OLDCONTENT=`find -type f -exec md5sum {} ; | md5sum`
svn up &> /dev/null
NEWCONTENT=`find -type f -exec md5sum {} ; | md5sum`

if [ "$NEWCONTENT" != "$OLDCONTENT" ]; then
  # reload updated configuration
fi


|
所有shell重定向我无所不通。。。其实这些玩意还是从编程角度记忆理解的才深刻。

重定向从微观角度来讲,只有2种:

1,描述符定向到文件
2,描述符定向到描述符

对于情况1: > /dev/null 

这里隐藏了一个默认参数,完整命令为: 1 > /dev/null 
其C实现为:fd=open("/dev/null",O_TRUNC|O_WRONLY|O_CREAT,mode); dup2(fd,1); close(fd);
之后写往1的数据就写入了/dev/null这个文件。

对于情况2: 2>&1 

它的意思用C实现为: dup2(1,2); close(1); 之后写往2的数据相当于写给1。

再高端点的:4>&1 写4相当于写给1, 4 这些前面各位都已经介绍了,&如果放在最后意思是让命令后台运行。

|
http://blog.csdn.net/userguanguan/article/details/6968141

这上面有详细的讲解,不过楼上几位讲得已经很清楚了.

|

会屏蔽输出
标准输出到/dev/null了,错误也到标准输出到/dev/null了
所以屏幕上就不会有输出了
有的脚本会有很多输出,屏幕就在那等待输出,可能会造成僵尸进程。。。
所以一般计划任务有需求这个都会根据脚本加上 > /dev/null 2>1&

    
 
 

您可能感兴趣的文章:

  • 请教unix常用命令命令问题
  • 请教:AIX命令中的procstack的命令显示的tid是线程ID吗
  • 请教:使用system(命令)或者exec(命令)启动一个进程执行命令,如何判断这个命令是否启动成功或正在运行?
  • 请教unix操作命令
  • 请教!Ubuntu下怎样在命令行下打开html文档啊?
  • 请教一下info命令是作什么用的?怎么用?
  • 请教redhat9下什么命令执行arp解析和逆向arp解析
  • 请教wget命令行的使用
  • 请教:使用什么命令查看导出的环境变量?
  • 请教一个命令行的使用
  • 散完全部分请教:linux下面有没有类似windows下面rasdial的命令
  • 请教iptables命令一则:如何封调一个ip地址30分钟
  • 请教::linux有没有命令可以做Ctrl+Z??
  • 请教各位老鸟,DOS下用什么命令可以看系统的配置信息??
  • 请教linux命令行的解析过程是怎样的
  • 请教FreeBSD下的Vi在命令模式下的编辑问题
  • 急!请教两个命令(操作目录)
  • 请教iproute命令的使用
  • 请教查看某个特定进程内存消耗情况的命令,急!
  • 请教:UNIX命令前加表示什么意思呢
  • 请教:$PWD 这个东西是什么意思啊?谢谢!
  • 请教:(static)静态变量和静态方法是什么意思?
  • 请教shell脚本中ls -la >ls.log <<!,中的"<<!"是什么意思?
  • 请教 stop: Unknown instance 错误是什么意思,怎么修复?
  • 请教一下这个参数的意思
  • 请教:在用lspci命令显示结果中,每一行结果结尾有(rev xx)之类字符,这个代表什么意思?
  • 请教高手:这句话是什么意思?
  • 请教 变量= { function:函数名};什么意思
  • 请教个问题:Process #4764 received signal 11, suspending 是什么意思?
  • 请教表达式"mylab: .long ."的意思?
  • 请教参考代码0c9代表什么意思?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请教,请教,这个问题是为什么????
  • 请教本地硬盘安装问题请教本地硬盘安装问题
  • ■请教■请教redhat最基本的问题!
  • 请教一个 shell 问题,我用下面这个 shell 语句总是失败,请教
  • 高分请教,各位大侠,请教一个问题,理论高手请进??谢谢
  • oracle iis7站长之家
  • 各位大虾,请教装了REDHAT9操作系统后,启动时无法引导到LINUX,请教该如何解决啊
  • 请教,请教,,,一定要看!!一定要看!!
  • 请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • :请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • 请教象我这样的硬盘应如何安装Linux,我昨天试装了,但有问题。(老问题了,也看了前面的帖子,但还是来请教,请多指教)
  • 请教这种循环的执行过程
  • 请教两个redhat9问题
  • 请教如何在指定目录下查找包含指定文字的文件
  • 请教局域网中如何通过ip地址得到主机名
  • 请教kdevelop的问题
  • 请教linux 下的adsl拨号问题.
  • 请教,如何用虚拟订机安装liux
  • 【请教】LINUX 下SNMP的MIB开发
  • 请教一个opengl的问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3