代码:$echo "some text here">file
$cat < file
some text here
$cat < file > file.back
$cat < file.back
some text here
$cat < file >file
$cat < file
这是一篇文章上的,重点是说明为什么最后 $ cat < file 会输出空白
书上的解释:根据 I/O优先级,在stdout 与 stderr 的管道准备好了 才会将stdin读入。
因此 $cat
根据执行的优先级,file.back 不应该也是空白文档吗,为什么会有输出?
还请大侠多指教,在这先谢谢啦
相思爱文 于 2012-08-27 10:19:32发表:
[i=s] 本帖最后由 相思爱文 于 2012-9-3 07:36 编辑 [/i]
tmp&&cat < tmp > file
$cat < file >file
这样的命令是错误的
需要执行类似功能,就加个临时文件
cat
$cat < file > file.back
把文件file内容做为输入,最终结果输出到file.back,不加> file.back则输出到屏幕
I/O优先级之类不用考虑,按顺序执行。
linux是为了应用,不是为了考试。有些特殊例题,了解一下就可以,应用时尽量避免。
深入原理,就要读源代码,还要依赖具体环境。