1

我需要编写一个脚本 - 最好是一个 bash 脚本 - 它将在 Unix 域套接字上侦听并将输出通过管道传输到日志文件,同时通过 FIFO 接收输入。FIFO/log 端应该模仿ii的风格。该脚本还能够监控来自 FIFO 的输入并对其做出反应(例如,对于“停止”功能)。

据我所知:

if [[ ! -p "in" ]]; then mkfifo "in"; fi

while true; do
  nc -Ul sock >> "out"
done

我被困在如何将 FIFO 中的输入输入到netcat. 当我添加< "in"并尝试从另一个外壳连接到套接字时,连接被拒绝。奇怪的是,当我用常规文件替换“in”时它工作得很好。

最简单/正确的方法是什么?

编辑:在整个while块上使用管道具有相同的效果。

4

1 回答 1

1

尝试使用一些“代理”来输入。例如“猫”:

if [[ ! -p "in" ]]; then mkfifo "in"; fi

(while true; do cat in; done) | (while true; do
  nc -Ul sock >> "out"
done)
于 2013-09-22T08:06:49.777 回答