小编Fer*_*cês的帖子

Bash脚本中的持久连接

我正在尝试使用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上,同一个监听服务器: …

bash fifo netcat

8
推荐指数
1
解决办法
1595
查看次数

标签 统计

bash ×1

fifo ×1

netcat ×1