Bash: 管道输出到后台进程?

Bash: Pipe output into background process?

我想将一个进程置于后台,然后多次向其传输数据。例如:

cat &                    # The command I want to write into
cat_pid=$!               # Getting the process id of the cat process

echo hello | $cat_pid    # This line won't work, but shows what I want to
                         #   do: write into the stdin of the cat process

所以我有 PID,我该如何写入该进程?我愿意以不同的方式启动 cat 进程。

此外,我在 Mac,所以我不能使用 /proc :(

mkfifo .pipe
cat < .pipe &
echo hello > .pipe

首先,创建一个管道:

$ mkfifo pipe

其次,使用来自管道的输入启动你的 cat 进程:

$ cat <pipe &
[1] 4997

现在,向管道发送数据:

$ echo "this is a test" >pipe
$ this is a test