web-dev-qa-db-ja.com

netcat経由で接続し、bashスクリプトでメッセージを送信します

次のようなbashスクリプトを書いているとき:

#!/bin/bash

nc localhost [pseudoport]
echo "test"

サーバーに接続しますが、「test」というテキストは送信しません。

で動作します

#!/bin/bash

echo "test" | nc localhost [pseudoport]

ここでの問題は、何かを受信した後に接続が終了することです。

複数のメッセージを送信するにはどうすればよいですか?私の場合、固定プリアンブルの後に可変データが続きますか?

2
OcK

私はここでこれを行う方法を見つけました: netcatを使用してソケットにコマンドを送信

送信したいメッセージをテキストファイル(msg.txtと言う)に入れてから、

nc localhost [pseudoport] < msg.txt

テキストファイルは次のようになります。

message1
message2
message3
...

すべてのメッセージは新しい行にある必要があります。

私が投稿したリンクは、ここで行われている方法でこれを行う必要がある理由をよりよく説明しています(重複記事には説明がありません)。

1
OcK