netcatで1行聞く[閉じる]

netcatで1行聞く[閉じる]

ターミナルシェルには次のライナーがあります。

 while true; do echo foo | nc -l 3000 done;

ポート3000で引き続きリッスンしたいです。しかし、構文的にbashが機能するには改行文字が必要なようですか?

 while true; do 
     echo foo | nc -l 3000 
 done;

一行にする方法はありますか?ここで何が起こっているのでしょうか?

ベストアンサー1

bashコマンド構文を理解するには、シェル(例)のマニュアルページを読んでください。この「問題」はnetcat

ループの一般的な構文whileは次のとおりです。

while sleep 1
do
    echo "I want to read 'man bash'"
done

しかし、で書くことができますwhile sleep 1; do echo "I want to read 'man bash'"; done

またはマニュアルに記載されているように:while list-1; do list-2; done

おすすめ記事