Bash 收到数据后,如何关闭netcat连接?

Bash 收到数据后,如何关闭netcat连接?,bash,netcat,Bash,Netcat,netcat的一个非常简单的用法如下: #/垃圾箱/垃圾箱 echo“hello world”>original.txt base64 original.txt>encoded.txt cat encoded.txt | nc-l-p 1234-q 0 #/垃圾箱/垃圾箱 nc localhost 1234-q 0>received.txt base64-d received.txt>decoded.txt rm received.txt encoded.txt 回音“已发送:” md5sum

netcat
的一个非常简单的用法如下:

#/垃圾箱/垃圾箱
echo“hello world”>original.txt
base64 original.txt>encoded.txt
cat encoded.txt | nc-l-p 1234-q 0
#/垃圾箱/垃圾箱
nc localhost 1234-q 0>received.txt
base64-d received.txt>decoded.txt
rm received.txt encoded.txt
回音“已发送:”
md5sum original.txt
回音“已接收:”
md5sum decoded.txt
rm decoded.txt original.txt
这将创建一个文件,将其编码为base64,通过netcat发送,然后对其进行解码,最后使用校验和比较来比较发送和接收的内容是否相同

在我之前使用的Kali Linux机器上,执行第二个脚本后,
netcat
连接关闭,但在家里尝试Ubuntu时,情况并非如此。我需要使用
Ctrl+D
手动关闭连接


如何使连接在收到此数据后关闭?

我认为为
nc
添加
-c
标志应该可以做到这一点。另外,您确定要使用Bourne shell而不是Bash吗?我建议把你的shebang改成
#/bin/bash