gpt4 book ai didi

linux - 循环IO重定向

转载 作者:太空宇宙 更新时间:2023-11-04 10:18:18 25 4
gpt4 key购买 nike

我有一个进程,我在我的 shell 上启动它打印出数据,我有一个 python 脚本来计算它并将其返回给进程。我该怎么做?

我知道使用 pipe> 可以在一方面帮助我,但我怎样才能实现双向重定向?

类似于:my_process |我的脚本 | my_process 合法吗?

我想要发生的事情:

  1. 从 shell 启动进程
  2. 进程将数据发送到我的脚本(而不是将其打印到 STDOUT)
  3. 我的脚本返回处理的答案(而不是将其打印到标准输出)
  4. 回到第2步

最佳答案

它可以用 FIFO 模拟(或者如果您使用的是 python,您可以使用管道系统调用创建自己的管道,并根据您的安排重定向它们)。

一些示例代码:

#!/bin/sh
#note: the resource management and error handling here is not very clean or robust
mkfifo fifo0 fifo1
exec 3<>fifo0
exec 4<>fifo1
rm -f fifo0 fifo1
many()
{
i=0
while [ $i -lt $1 ]; do
echo -n x
i=$((i+1))
done
echo
}
proc1()
{
ulimit_p=$(ulimit -p)
while :; do
echo proc1_msg
echo >&2 proc1_written=proc1_msg
read var
echo >&2 proc1_read=$var
sleep 1
done
}

proc2()
{
while :; do
read var
echo >&2 proc2_read=$var
echo proc2_msg
echo >&2 proc2_written=proc2_msg
done
}
pid=0
trap 'echo kill $pid; kill $pid; exit 130' INT
proc1 <&3 >&4 & pid=$!
proc2 <&4 >&3

关于linux - 循环IO重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45080515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com