通过 netcat 收听的一条线路

通过 netcat 收听的一条线路

我在终端外壳中有这样一个衬垫:

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

我只想继续监听端口 3000。但从语法上看,bash 工作似乎需要换行符?

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

有没有办法在一行上做到这一点?这里发生了什么事?

答案1

阅读 shell(例如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

答案2

答案是一个分号:

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

相关内容