다음 명령은 포트 수신기를 생성합니다.
nc –l 5500 &
다음과 같이:
[root@xyz ~]# netstat -anlp | grep 5500
tcp 0 0 0.0.0.0:5500 0.0.0.0:* LISTEN
21085/nc
100개의 포트 리스너를 생성하고 싶습니다.
그러나 구문은 다음과 같습니다.
$ for i in {10000..10100}; do nc -l $i &; done
오류가 발생합니다.
bash: syntax error near unexpected token `;'
테스트를 위해 n개의 포트 리스너를 생성하는 방법은 무엇입니까?
테스트가 완료된 후 이러한 포트 수신기를 어떻게 제거할 수 있습니까?
답변1
에서 언급했듯이채팅는 &
과 같은 명령문 종결자 ;
이므로 ;
앞에 done
나타나서는 안 됩니다 .
for i in {10000..10100}; do nc -l "$i" & done
또는,
for i in {10000..10100}; do
nc -l "$i" &
done
nc
를 사용하여 모든 프로세스를 종료할 수 있습니다 pkill nc
.
또는 각 프로세스의 PID를 nc
배열에 저장하고 해당 배열을 사용하여 프로세스를 종료합니다.
pids=()
for i in {10000..10100}; do
nc -l "$i" & pids+=("$!")
done
후에:
kill "${pids[@]}"
분명히 이는 nc
명령의 PID가 다른 프로세스에 의해 회수되지 않았다고 가정합니다.
roaima가 댓글에서 지적했듯이 중괄호 확장은 {10000..10100}
100이 아닌 101 숫자로 확장됩니다.