我有三个文件,名为一、二、三。
其中一项包含:
1
3
2
两个包含:
4
6
5
三包含:
7
9
8
当我发出以下命令时:
$sort < One < Two < Three
我得到输出:
7
8
9
但是当我发出以下命令时:
$sort One Two Three
我得到输出:
1
2
3
4
5
6
7
8
9
谁能解释一下这里到底发生了什么吗?为什么第一个命令中不考虑 1 和 2 的输入?
您的命令与以下内容相同:
sort 0<1 0<2 0<3
(文件描述符0是标准输入)
重定向按照它们出现的顺序从左到右进行处理。
sort
命令本身无法看到任何这些文件。
bash
打开文件1
,2
,3
at file descriptor 0
逐个。
所以最右边的一个会覆盖左边的。
终于,sort
读自file descriptor 0
绑定到文件3
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)