netcat을 통해 한 줄 듣기 [닫기]

netcat을 통해 한 줄 듣기 [닫기]

터미널 쉘에 다음과 같은 라이너가 있습니다.

 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

답변2

대답은 세미콜론입니다.

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

관련 정보