netcat新行问题

我正在使用下面的命令发送一些string到udp侦听服务器。

回声“A 192.168.192.168”| nc -u 192.168.2.1 1234

但是服务器正在以回显string的forms得到'\ n'。

我也尝试了下面的命令,但是失败了

回声“A 192.168.192.168”| nc -uC 192.168.2.1 1234

如何删除尾随的新行字符? 我有什么特别的select在NC?

Solutions Collecting From Web of "netcat新行问题"

echo通常提供-n标志。 这不是标准的。

字符串要写入标准输出的字符串。 如果第一个操作数是-n,或者任何操作数包含反斜杠('\')字符,则结果是实现定义的。

在符合XSI的系统上,如果第一个操作数是-n,那么它应该被视为一个字符串,而不是一个选项。


我会建议使用printf

 printf "A 192.168.192.168" | nc -u 192.168.2.1 1234 

除非被告知,否则printf不会追加新行,而是标准行为。

尝试使用

 echo -n 

所以

 echo -n "A 192.168.192.168" | nc -u 192.168.2.1 1234 

回声手册页说: -n do not output the trailing newline