免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 3988 | 回复: 23
打印 上一主题 下一主题

[系统管理] 一个Shell方面的问题 ! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-05-21 18:16 |只看该作者 |倒序浏览
   最近看了下shell十三问, 对于其中有几个例子 虽然可以上机操作知道结果, 但是对于结果怎么来的不是很理解!!!
  1. root@machine:/codeTest# echo "abc" > file
  2. root@machine:/codeTest# cat < file > file
  3. root@machine:/codeTest# cat file
  4. root@machine:/codeTest#
复制代码
为什么结果是file被清空了,  没有数据显示!  

  接着  下面这个结果又是啥呢.... 过程又是怎么样子的哩!~
  1. root@machine:/codeTest# echo "abc" > file
  2. root@machine:/codeTest# cat < file >> file
复制代码

论坛徽章:
0
2 [报告]
发表于 2012-05-22 17:58 |只看该作者
啥意思....

论坛徽章:
34
亥猪
日期:2015-03-20 13:55:11戌狗
日期:2015-03-20 13:57:01酉鸡
日期:2015-03-20 14:03:56未羊
日期:2015-03-20 14:18:30子鼠
日期:2015-03-20 14:20:14丑牛
日期:2015-03-20 14:20:31辰龙
日期:2015-03-20 14:35:34巳蛇
日期:2015-03-20 14:35:56操作系统版块每日发帖之星
日期:2015-11-06 06:20:00操作系统版块每日发帖之星
日期:2015-11-08 06:20:00操作系统版块每日发帖之星
日期:2015-11-19 06:20:00黄金圣斗士
日期:2015-11-24 10:43:13
3 [报告]
发表于 2012-05-22 20:28 |只看该作者
cat < file > file 这个是因为 先清理 file,再给它放进去东西吧

论坛徽章:
0
4 [报告]
发表于 2012-05-22 22:42 |只看该作者

cat < file1 > file2 的意思很简单的。
拆分命令分析 如下
cat < file1 :就是打印file1文件的内容到屏幕。
     > file2 :把file1的内容重定向到file2里,“>”覆盖 “>>”追加。
简单的说 就是把file1的内容覆盖写进file2 里去。 结果为 file1 与 file2 文件内容完全一样。

论坛徽章:
0
5 [报告]
发表于 2012-05-23 17:11 |只看该作者
lxxpsp2007 发表于 2012-05-22 22:42
cat < file1 > file2 的意思很简单的。
拆分命令分析 如下
cat < file1 :就是打印file1文件的内容到屏幕 ...

   你觉得你切中要害了么?

论坛徽章:
0
6 [报告]
发表于 2012-05-23 17:49 |只看该作者
可以拆分实验一下哦:
echo "abc" > file
cat  file 肯定显示为abc 对吧
把cat < file > file拆分称为 cat < file 和 >file
cat <file 结果为abc
之后为"abc">file 对吧 此时看看结果 肯定为空
因为shell不知道abc是个啥东西 结果肯定报错误信息 是不作为下一个命令输入的
所以结果为空 把"空">file  结果就肯定为"空"
不知道这样结果对不对

论坛徽章:
0
7 [报告]
发表于 2012-05-23 20:49 |只看该作者
其实shell十三问已经有答案了:
“前面提到:$ cat < file > file 之後原本有內容的檔案結果卻被洗掉了﹗
要理解這一現像其實不難,這只是 priority 的問題而已:
* 在 IO Redirection 中,stdout 與 stderr 的管道會先準備好,才會從 stdin 讀
進資料。

也就是說,在上例中,> file 會先將 file 清空,然後才讀進 < file ,
但這時候檔案已經被清空了,因此就變成讀不進任何資料了...”

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
8 [报告]
发表于 2012-05-24 04:45 |只看该作者
回复 6# yuchangtao110


>的优先级比<高
>会首先把文件清空
<就读不到东西了

论坛徽章:
0
9 [报告]
发表于 2012-05-24 11:06 |只看该作者
那为什么不执行file > file   之后 cat < "file >file"而是执行 >file ;cat <file 如何切割的 回复 8# Shell_HAT


   

论坛徽章:
0
10 [报告]
发表于 2012-05-24 11:46 |只看该作者
回复 9# yuchangtao110


    file > file           你自己看看 这命令对吗         
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP