在我的脚本中,我需要将特殊命令与通常的stdout-stderr一起输出到预定义的文件描述符,并在没有创建文件的情况下监听另一个程序中的命令。
基本上它就像是使用管道重定向,但通过使用其他文件描述符或套接字或设备使用环形交叉口:
将stdout(1)重定向到stdin(0)的常用方法:
> program1 | program2
我需要什么(一些重定向,使用其他描述符,例如5):
> exec "open descr 5 <>5"
> program1 ??5?? & program2 <5 &
program1“知道”关于描述符号5并且只用fwrite(5, ...)
输出它,program2使用通常的stdin重定向。
如何在shell中进行环形转发重定向?
答案 0 :(得分:0)
你不能。处理信号量的唯一方法是使用fifo文件,但是你说你不想制作文件。您定义的文件描述符只存在于该shell中,因此任何子进程或其他程序都不会意识到它们。