Kva*_*ass 2 linux bash exec io-redirection process-substitution
在阅读了关于exec builtin如何在bash中工作的解释之后,我理解它的基本功能是在不分叉的情况下替换当前进程.它似乎也用于在当前进程中重定向I/O和关闭文件描述符,这让我感到困惑.这是一些无关的额外的事情exec吗?能否在"取代现有流程"的背景下理解?如果与流程替换相结合,它是如何工作的,例如exec 3< <(my program)?
这是做什么的exec:
open,dup2以及close系统调用像大多数操作> foopipe+ fork+ /dev/fd/*用于过程替代execve)替换为指定的程序(如果有)如果您没有指定要运行的程序,则只需跳过步骤2,因此所有重定向都会影响脚本的其余部分.
<(Process substitution)通过pipe+ fork+工作/dev/fd/:
/dev/fd/63一个特殊文件,该文件在打开时将返回FD 63.(试试echo <(ls))从那时起,它就像从任何其他文件重定向一样.你打开/dev/fd/63FD 3阅读,然后你最终从管道读取.exec因此不需要做任何特别的事情.
| 归档时间: |
|
| 查看次数: |
199 次 |
| 最近记录: |