可以以读写模式打开文件,并与之交互:
exec 4<> myfile
reader < myfile
writer >> myfile
以下代码也可以工作,并且更简单:
reader <> myfile
writer >> myfile
这使我相信<>
在读取版模式下打开文件,但是当用作重定向时,表现为<
。我可以找到有关<>
行为的唯一信息与exec
的使用有关。我在任何地方都找不到任何文档有关其行为是否实际定义为重定向,或者是否取决于实现。
在任何地方的POSIX规范中定义了此行为?它是便携式的吗?
来自2017年IEEE标准" shell命令语言":
2.7.7打开用于阅读和写作的文件描述符
重定向操作员:
[n]&lt;&gt; word
应导致其名称是为读取和写入n的读取和写入的文件,如果未指定n,则用n表示的文件描述符或标准输入。如果文件不存在,则应创建。
因此,任何符合的外壳都应尊重出口重定向。