用于shell输入输出重定向的辅助管道

时间:2016-04-21 23:40:37

标签: bash shell scripting io-redirection

在我的脚本中,我需要将特殊命令与通常的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中进行环形转发重定向?

1 个答案:

答案 0 :(得分:0)

你不能。处理信号量的唯一方法是使用fifo文件,但是你说你不想制作文件。您定义的文件描述符只存在于该shell中,因此任何子进程或其他程序都不会意识到它们。