2012-06-30 17 views
7

Estoy utilizando el comando below para enviar algunas cadenas al servidor de escucha udp.nuevo problema de línea con netcat

echo "A 192.168.192.168" | nc -u 192.168.2.1 1234

pero el servidor está siguiendo '\ n' en la cadena repetida.

He tratado a continuación comando también, pero no

echo "Un 192.168.192.168" | nc -uC 192.168.2.1 1234

¿Cómo puedo eliminar ese nuevo carácter de línea? ¿Tengo alguna opción especial en nc?

+0

Votando para reabrir, ya que parece que vale la pena tener conocimientos valiosos. – lpapp

Respuesta

5

Intente utilizar

echo -n 

por lo

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

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

+0

lo tengo querido levon thnx – JohnG

9

echo por lo general proporciona -n bandera. Esto no es estándar.

cadena Una cadena que se escribirá en la salida estándar. Si el primer operando es -n, o si alguno de los operandos contiene una barra diagonal inversa ('\') char- acter, los resultados están definidos por la implementación.

En sistemas conformes con XSI, si el primer operando es -n, se tratará como una cadena, no como una opción.


se recomienda usar printf

printf "A 192.168.192.168" | nc -u 192.168.2.1 1234 

printf duerma añadir una nueva línea a menos que se le dice que, y es el comportamiento estándar.

+0

Nunca he escuchado que la opción '-n' en echo no es estándar, ¿pueden detallarlo? Cada sistema Linux/Unix que he usado a lo largo de los años ha tenido esto. – Levon

+0

ver 'man 1p echo' la página de manual de POSIX para' echo'. Además, el 'echo' generalmente invocado es un shell incorporado y no el ejecutable real bajo'/bin/echo'. Bajo _Bash_ por ejemplo, vea qué eco proporciona 'help echo' – c00kiemon5ter

+0

Acabo de probar' help echo' bajo 'bash' en mi sistema Linux y dio' -n \t no anexe una nueva línea'. Y de manera realista, ¿qué tan probable es que alguien se encuentre con 'echo -n' * not * working? – Levon

Cuestiones relacionadas