下面的命令用于按照GNU手册复制输入文件描述符:
exec 6<&0但是,当我像这样更改重定向操作符时,即使文件描述符'0‘指向stdin,该命令仍然有效:
exec 6>&0有人能解释一下背后的原因吗?
发布于 2016-12-17 09:16:52
Bash对<&和>&做了完全相同的事情,即它使用dup()系统调用来创建文件描述符的副本。
当文件描述符被用于读取或写入与打开文件的方式相反的时候,任何由于试图写入文件而导致的错误都会发生。
最初,交互式Bash为读写打开了/dev/tty,作为文件描述符0、1和2。
参见Unix & Linux上的执行3<&1是做什么的,在这里,用户cuonglm费力地使用strace记录这种行为。
https://askubuntu.com/questions/861548
复制相似问题