我正在尝试使用bash创建持久连接.在终端1上,我保持netcat作为服务器运行:
$ nc -vlkp 3000
Listening on [0.0.0.0] (family 0, port 3000)
Run Code Online (Sandbox Code Playgroud)
在终端2上,我创建了一个fifo并保留了一只猫:
$ mkfifo fifo
$ cat > fifo
Run Code Online (Sandbox Code Playgroud)
在终端3上,我将fifo作为客户端netcat的输入:
$ cat fifo | nc -v localhost 3000
Connection to localhost 3000 port [tcp/*] succeeded!
Run Code Online (Sandbox Code Playgroud)
在4号航站楼,我发送任何我想要的东西:
$ echo command1 > fifo
$ echo command2 > fifo
$ echo command3 > fifo
Run Code Online (Sandbox Code Playgroud)
回到终端1,我看到收到的命令:
$ nc -vlkp 3000
Listening on [0.0.0.0] (family 0, port 3000)
Connection from [127.0.0.1] port 3000 [tcp/*] accepted (family 2, sport 41722)
command1
command2
command3
Run Code Online (Sandbox Code Playgroud)
一切顺利.但是当我把它放在脚本中时(我称之为fifo.sh),bash无法写入fifo:
在终端1上,同一个监听服务器: …