#!/bin/bash
–# @Desc 此腳本用於獲取一個指定區間且未被佔用的隨機端口號
-# @Author Hellxz [email protected]
PORT=0
#判斷當前端口是否被佔用,沒被佔用返回0,反之1
function Listening {
TCPListeningnum=netstat -an | grep ":$1 " | awk '$1 == "tcp" && $NF == "LISTEN" {print $0}' | wc -l
UDPListeningnum=netstat -an | grep ":$1 " | awk '$1 == "udp" && $NF == "0.0.0.0:*" {print $0}' | wc -l
(( Listeningnum = TCPListeningnum + UDPListeningnum ))
if [ $Listeningnum == 0 ]; then
echo “0”
else
echo “1”
fi
}
#指定區間隨機數
function random_range {
shuf -i $1-$2 -n1
}
#得到隨機端口
function get_random_port {
templ=0
while [ $PORT == 0 ]; do
temp1=random_range $1 $2
if [ Listening $temp1
== 0 ] ; then
PORT=PORT"
}
get_random_port 1 10000; #這裏指定了1~10000區間,從中任取一個未佔用端口號
參考:https://www.cnblogs.com/hellxz/p/11288745.html