分页: 1 / 1

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

发表于 : 2012-11-26 21:34
fengruozhuo
最近在学习shell 在看数据重定向的时候写了如下的命令:
cat /etc/passwd > t1
sort -t ':' -k 3 -n -r t1 > t1
发现t1中的数据并没有按照规则被排序而是被清空了,查询资料知道是重定向符“>”对存在的t1会先清空,那么sort就无意义了。
但问题也在这里,难道在这一行中“>”拥有较高“优先级”先对t1做了判定然后将其清空? 不知到这里怎么理解才是,请各位大神指教。谢谢!

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

发表于 : 2012-11-26 22:01
YeLee
这个不解释,你加个tee在后面不就行了吗?谁叫你把输出源和输入源都设定为同一个文件的? :em20 :em20 :em20

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

发表于 : 2012-11-27 9:00
zhangxiaofir
为什么不用管道符?

代码: 全选

cat /etc/passwd|sort -t ':' -k 3 -n -r > t1

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

发表于 : 2012-11-27 9:12
yaoms
zhangxiaofir 写了:为什么不用管道符?

代码: 全选

cat /etc/passwd|sort -t ':' -k 3 -n -r > t1
就是,管道好,一条搞定,简洁优雅~ :em05

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

发表于 : 2012-11-28 1:04
fengruozhuo
zhangxiaofir, 谢谢 学习了

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

发表于 : 2012-12-23 21:00
tusooa
如果输入和输出都定成同一文件,你就得到一个空文件。