2012-06-30 27 views
7

Tôi đang sử dụng lệnh dưới đây để gửi một số chuỗi tới máy chủ nghe udp.vấn đề dòng mới với netcat

echo "A 192.168.192.168" | nc -u 192.168.2.1 1234

nhưng máy chủ đang nhận đuôi '\ n' trong chuỗi lặp lại.

Tôi đã cố gắng bên dưới lệnh quá, nhưng thất bại

echo "Một 192.168.192.168" | nc -uC 192.168.2.1 1234

Làm cách nào để xóa ký tự dòng mới? Tôi có tùy chọn đặc biệt nào trong nc ??

+0

Bỏ phiếu để mở lại vì có vẻ như kiến ​​thức đáng giá để có. – lpapp

Trả lời

5

Hãy thử sử dụng

echo -n 

nên

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

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

+0

đã nhận được nó thonx thân yêu thnx – JohnG

9

echo thường cung cấp -n cờ. Đây không phải là tiêu chuẩn.

string Chuỗi được ghi vào đầu ra tiêu chuẩn. Nếu toán hạng đầu tiên là -n, hoặc nếu bất kỳ toán hạng nào có dấu gạch chéo ngược ('\') char‐ acter, kết quả sẽ được xác định thực hiện.

Trên các hệ thống tuân thủ XSI, nếu toán hạng đầu tiên là -n, nó sẽ được coi là một chuỗi chứ không phải tùy chọn.


tôi sẽ đề nghị sử dụng printf

printf "A 192.168.192.168" | nc -u 192.168.2.1 1234 

printf doesnt thêm một dòng mới trừ khi nó được nói đến, và đó là hành vi tiêu chuẩn.

+0

Tôi chưa bao giờ nghe nói rằng tùy chọn '-n' trên echo không phải là tiêu chuẩn, bạn có thể vui lòng xây dựng trên nó? Mỗi hệ thống Linux/Unix tôi đã sử dụng trong những năm qua đã có điều này. – Levon

+0

xem 'man 1p echo' trang người dùng POSIX cho' echo'. Ngoài ra, 'echo' thường được gọi là một nội trang hệ vỏ và không phải là thực thi thực tế trong'/bin/echo'. Dưới _Bash_ ví dụ, xem những gì echo cung cấp với 'help echo' – c00kiemon5ter

+0

Chỉ cần cố gắng' help echo' dưới 'bash' trên hệ thống Linux của tôi và nó đã cho' -n \t không nối thêm một dòng mới'. Và thực tế, có khả năng ai sẽ gặp phải 'echo -n' * không * làm việc? – Levon