我试图将两个节目“stich”在一起。第一个程序,我可以根据需要更改,生成带有一些数据的输出。第二个程序无法更改,并希望读取第一个程序生成的数据。
第二个程序传出一个文件,我不能使用管道。我不想每隔x秒重新生成一次文件。
在linux上有没有办法创建一个“假”文件,每次打开读取时都会获取第一个程序输出?这对第二个计划是透明的。保险丝可行吗?
答案 0 :(得分:2)
如果您使用的是bash
,则可以use process substitution:
program2 <(program1)
如果您没有使用具有进程替换的shell,则可以使用命名管道。
mkfifo /tmp/pipe
program1 > /tmp/pipe &
program2 /tmp/pipe
许多需要输入文件名参数的程序也允许该文件名为-
,它们将其解释为标准输入。这允许你管道:
program1 | program2 -