9

我正在使用以下命令将一些字符串发送到 udp 侦听服务器。

回声“A 192.168.192.168” | 数控-u 192.168.2.1 1234

但服务器在回显字符串中出现尾随'\n'。

我也尝试过以下命令,但失败了

回声“A 192.168.192.168” | 数控-uC 192.168.2.1 1234

如何删除尾随的换行符?我在 nc 中有什么特殊的选择吗?

4

2 回答 2

13

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

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

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


我建议使用printf

printf "A 192.168.192.168" | nc -u 192.168.2.1 1234

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

于 2012-06-30T12:19:08.610 回答
7

尝试使用

echo -n

所以

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

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

于 2012-06-30T12:18:16.763 回答