Linux重定向问题
假设文件in不存在,请说明下列命令的执行结果有何区别?$cat0<in1>out2>err$cat1>out0<in2>err$cat2>err0<in1>out$cat...
假设文件in不存在,请说明下列命令的执行结果有何区别?
$ cat 0<in 1>out 2>err
$ cat 1>out 0<in 2>err
$ cat 2>err 0<in 1>out
$ cat 2>err 1>out 0<in 展开
$ cat 0<in 1>out 2>err
$ cat 1>out 0<in 2>err
$ cat 2>err 0<in 1>out
$ cat 2>err 1>out 0<in 展开
1个回答
展开全部
前两个命令出错,因为对“不存在的文件in进行读操作”在“重定向出错信息的操作”之前,故一旦出错,由shell直接报错,不会重定向到err文件中。
第三第四个命令有效,因为先有2>err重定向声明,所以之后发生的“标准错误信息”全部定向到err文件,那么若先执行0<in,出错信息录入err;若先是1>out,shell检索下一命令参数,出错,中断,信息重定向。总之,三、四命令结束后,当前路径生成err和out两个文件,其中err中记录一条in文件不存在的标准出错信息。
第三第四个命令有效,因为先有2>err重定向声明,所以之后发生的“标准错误信息”全部定向到err文件,那么若先执行0<in,出错信息录入err;若先是1>out,shell检索下一命令参数,出错,中断,信息重定向。总之,三、四命令结束后,当前路径生成err和out两个文件,其中err中记录一条in文件不存在的标准出错信息。
参考资料: http://baike.baidu.com/view/2173319.htm?fr=ala0_1
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询