netcat的新行问题

时间:2012-06-30 12:14:44

标签: linux unix

我使用下面的命令向udp监听服务器发送一些字符串。

  

echo“A 192.168.192.168”| nc -u 192.168.2.1 1234

但是服务器在回显的字符串中收尾'\ n'。

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

  

echo“A 192.168.192.168”| nc -uC 192.168.2.1 1234

如何删除那个尾随的新行字符? 我在nc ??

中有任何特殊选项吗?

2 个答案:

答案 0 :(得分:10)

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

  

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

     

在符合XSI的系统上,如果第一个操作数是-n,则应将其视为字符串,而不是选项。


我建议使用printf

printf "A 192.168.192.168" | nc -u 192.168.2.1 1234

printf除非被告知,否则不附加新行,这是标准行为。

答案 1 :(得分:5)

尝试使用

echo -n

所以

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

echo man page说:-n do not output the trailing newline