我使用下面的命令将一些字符串发送到udp监听服务器.
回声"A 192.168.192.168"| nc -u 192.168.2.1 1234
但是服务器在echoed字符串中的尾随'\n'.
我也试过下面的命令,但失败了
回声"A 192.168.192.168"| nc -uC 192.168.2.1 1234
如何删除那个尾随的新行字符?我在nc有什么特别的选择吗?
c00*_*ter 11
echo通常提供-n旗帜.这不是标准的.
string 要写入标准输出的字符串.如果第一个操作数是-n,或者如果任何操作数包含反斜杠('\')字符,则结果是实现定义的.
在符合XSI的系统上,如果第一个操作数是-n,则应将其视为字符串,而不是选项.
我建议使用 printf
printf "A 192.168.192.168" | nc -u 192.168.2.1 1234
Run Code Online (Sandbox Code Playgroud)
printf 除非被告知,否则不会添加新行,这是标准行为.
尝试使用
echo -n
Run Code Online (Sandbox Code Playgroud)
所以
echo -n "A 192.168.192.168" | nc -u 192.168.2.1 1234
Run Code Online (Sandbox Code Playgroud)
echo man page说: -n do not output the trailing newline