同一行中命令与重定向符会不会有优先级的问题?

sh/bash/dash/ksh/zsh等Shell脚本
回复
fengruozhuo
帖子: 11
注册时间: 2009-09-12 16:53

同一行中命令与重定向符会不会有优先级的问题?

#1

帖子 fengruozhuo » 2012-11-26 21:34

最近在学习shell 在看数据重定向的时候写了如下的命令:
cat /etc/passwd > t1
sort -t ':' -k 3 -n -r t1 > t1
发现t1中的数据并没有按照规则被排序而是被清空了,查询资料知道是重定向符“>”对存在的t1会先清空,那么sort就无意义了。
但问题也在这里,难道在这一行中“>”拥有较高“优先级”先对t1做了判定然后将其清空? 不知到这里怎么理解才是,请各位大神指教。谢谢!
头像
YeLee
论坛版主
帖子: 26406
注册时间: 2008-08-13 8:48
系统: Fundu i64
来自: 东海硇州,一双管钥。
联系:

Re: 同一行中命令与重定向符会不会有优先级的问题?

#2

帖子 YeLee » 2012-11-26 22:01

这个不解释,你加个tee在后面不就行了吗?谁叫你把输出源和输入源都设定为同一个文件的? :em20 :em20 :em20
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
zhangxiaofir
帖子: 53
注册时间: 2010-12-09 23:54

Re: 同一行中命令与重定向符会不会有优先级的问题?

#3

帖子 zhangxiaofir » 2012-11-27 9:00

为什么不用管道符?

代码: 全选

cat /etc/passwd|sort -t ':' -k 3 -n -r > t1
头像
yaoms
帖子: 4952
注册时间: 2007-10-19 14:51
来自: 深圳

Re: 同一行中命令与重定向符会不会有优先级的问题?

#4

帖子 yaoms » 2012-11-27 9:12

zhangxiaofir 写了:为什么不用管道符?

代码: 全选

cat /etc/passwd|sort -t ':' -k 3 -n -r > t1
就是,管道好,一条搞定,简洁优雅~ :em05
Nothing 有事请发邮件到 yms541 AT gmail.com
alias 爱慕颇雷尔='mplayer'
fengruozhuo
帖子: 11
注册时间: 2009-09-12 16:53

Re: 同一行中命令与重定向符会不会有优先级的问题?

#5

帖子 fengruozhuo » 2012-11-28 1:04

zhangxiaofir, 谢谢 学习了
tusooa
帖子: 6548
注册时间: 2008-10-31 22:12
系统: 践兔
联系:

Re: 同一行中命令与重定向符会不会有优先级的问题?

#6

帖子 tusooa » 2012-12-23 21:00

如果输入和输出都定成同一文件,你就得到一个空文件。

代码: 全选

] ls -ld //
回复