キーボード入力なしで/dev/tcp応答を印刷する

キーボード入力なしで/dev/tcp応答を印刷する

次のコマンドを使用してTCPソケットで送受信します。

exec 3<>/dev/tcp/localhost/port
echo -e "textcommand\r" >&3
cat <&3
exec 3<&-;exec 3>&-

cat <&3行は端末のlocalhostからの応答を示しますが、コマンドラインに戻るにはCtrl + dまたはCtrl + cを使用する必要があります。キーボードの対話なしでlocalhostの応答をどのように印刷してコマンドラインに戻すことができますか?

編集する

(echo -en "textcommand\r"; sleep 1) | telnet localhost port

上記の代替案として。ここで見つける:https://stackoverflow.com/a/24204924/5900282

編集2

ここにも同様の質問があります。Bash /dev/tcp ファイル記述子を介して Fluke 1620a からデータをキャプチャ

ベストアンサー1

使用timeout:

exec 3<>/dev/tcp/localhost/port
echo -e "textcommand\r" >&3
timeout 0.2 cat <&3
exec 3<&-; exec 3>&-

おすすめ記事