写入进程侦听消息的stdin

时间:2018-03-04 07:01:23

标签: bash shell ipc stdin file-descriptor

说我开始使用以下过程:

#!/usr/bin/env bash

while read line; do
 echo "stdin message: $line"
done < "/dev/stdin"

显然这个过程正在侦听要写入其stdin的数据。另一个进程如何写入它?

2 个答案:

答案 0 :(得分:1)

这取决于进程stdin的连接方式。如果它是命名管道,则它们写入管道文件。如果它是伪tty,它们会写入相应的主设备。

在大多数其他情况下,通常不可能。

答案 1 :(得分:1)

使用Linux:在while循环之前添加:

echo $$

在另一个shell中,使用PID(例如12345),如下所示:

echo "hello" >/proc/12345/fd/1