之前看过关于linux重定向命令,其实理解好了以下这条命令,0(标准输入)、1(标准输出)、2(错误输出)就可以理解差不多了,命令如下:
/a.out > outfile 2>&1和./a.out 2> &1 >outfile
借此网上查阅了许多博客资料。个人觉得说的比较好的是http://blog.chinaunix.net/uid-25909722-id-2912890.html这篇文章。
结合上面的文章,博主总结关于linux命令重定向需要注意的几点:
1)linux shell命令执行是自左向右的,这个是分析命令执行的基础。
2)’>‘==’1>‘,即ls xxx>log和ls xxx 1>log
是一样的。不过错误输出2就需要显式指出。ls xxx 2>error
3)结合1)和2),就不难理解./a.out > outfile 2>&1
和./a.out 2> &1 >outfile
两条命令了:
./a.out > outfile 2>&1
我们按照自左向右理解,执行到./a.out > outfile,简单的标准输出到outfile,容易理解;需要注意此时标准输出1已经重定向到文件outfile,而不是屏幕了。而后执行2>&1,将标准错误重定向到标准输出,此时标准输出已经到outfile,所以标准错误信息也会重定向到outfile。总结下就是1、2均重定向到outfile。
./a.out 2> &1 >outfile
同样按照自左向右理解,执行到./a.out 2> &1 ,此时a.out的执行标准错误信息重定向到&1,即屏幕。(这点与上面的命令不同,因为标准输出1并没有做重定向,依然是屏幕),而后执行>outfile,即1>outfile,将a.out标准输出结果重定向到outfile。这条命令总结下就是,2重定向到屏幕,1重定向到文件outfile,二者不同。
本人第一次写博客,还是需要纪念一下滴·~~~~O(∩_∩)O哈哈~