我在很多shell例子里看到,有"2>&1 >/dev/null"的写法,例如“/usr/lib/acct/ckpacct > /dev/null 2>&1“有谁知道这"2>&1“的意思吗?
关于, & 1 更准确的说应该是文件描述符 1,而1 一般代表的就是STDOUT_FILENO,实际上这个操作就是一个dup2(2)调用.他标准输出到all_result ,然后复制标准输出到文件描述符2(STDERR_FILENO),其后果就是文件描述符1和2指向同一个文件表项,也可以说错误的输出被合并了
我还是不太明白,那个AWD是作用,还有其工作原理?请问楼上的兄弟能否再麻烦麻烦。
还有2>&1还是有点不懂。
0表示键盘输入
1表示屏幕输出
2表示错误输出
这个是不是一般用于屏蔽脚本运行时的错误提示?有时候我只用知道一个命令是成功还是失败,但是并不想显示错误结果,就可以用这个,是这样吗
检查一个命令执行是否成功,用$?来检查就行了。
在c程序中的stdout就输出成1,stderr就输出成2。
Usually,we use 1>/dev/null 2>&1 if you don't want to see the result of a command or run a command at back ground. So, i think , 2>&1 means stderr(2) go the same place(/dev/null) as stdout(1).