9

以下のコマンドを使用して、いくつかの文字列を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 に特別なオプションはありますか??

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 に答える