我需要编写一个脚本 - 最好是一个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"
并尝试从另一个shell连接到套接字时,连接被拒绝。奇怪的是,当我用常规文件替换“in”时,它工作得很好。
最简单/最正确的方法是什么?
修改:在整个while
块上使用管道具有相同的效果。
答案 0 :(得分:1)
尝试使用一些“代理”输入。例如“cat”:
if [[ ! -p "in" ]]; then mkfifo "in"; fi
(while true; do cat in; done) | (while true; do
nc -Ul sock >> "out"
done)