• 脚本内容
#!/bin/bash# portRange="80-81"    # 可用于读取配置文件
# rangeStart=$(echo ${portRange} | awk -F '-' '{print $1}')
# rangeEnd=$(echo ${portRange} | awk -F '-' '{print $2}')rangeStart=$1
rangeEnd=$2if [ $1 -le $2 ]; thenecho "123" > /dev/null
elseecho "error: please check port range"exit
fiPORT=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`# 严谨写法 -- 修改时间 2022-07-22TCPListeningnum=`netstat -an | grep ":$1 " | awk '/^tcp.*/ && $NF == "LISTEN" {print $0}' | wc -l`UDPListeningnum=`netstat -an | grep ":$1 " | awk '/^udp.*/ && $NF == "0.0.0.0:*" {print $0}' | wc -l`(( Listeningnum = TCPListeningnum + UDPListeningnum ))if [ $Listeningnum == 0 ]; thenecho "0"elseecho "1"fi
}# 指定区间随机数
function random_range {shuf -i $1-$2 -n1
}# 得到随机端口
function get_random_port {templ=0while [ $PORT == 0 ]; dotemp1=`random_range $1 $2`if [ `Listening $temp1` == 0 ] ; thenPORT=$temp1fidoneecho "port=$PORT"
}# main
get_random_port ${rangeStart} ${rangeEnd};
  • 运行示例
# 一个端口
sh test.sh 10001 10001
port=10001
# 端口范围
sh test.sh 10001 10020
port=10009
# 错误区间
sh test.sh 10020 10001
error: please check port range

参考

  • Shell获取指定区间随机未占用的端口号

Linux Shell 获取端口范围内可用端口相关推荐

  1. Linux shell获取时间和时间间隔(ms级别)

    说明:在进行一些性能测试的时候,有时候我们希望能计算一个程序运行的时间,有时候可能会自己写一个shell脚本方便进行一些性能测试的控制(比如希望能运行N次取平均值等),总之,这其中有一个需求可能就是获 ...

  2. linux获取文件的md5,linux shell 获取文件md5的命令linux操作系统 -电脑资料

    下面我给各位朋友总结一下在linux中利用shell命令来获取文件md5及遍历目录下所有文件的md5的例子,希望此例子对各位同学会有所帮助, 获取文件的MD5值: $ md5sum linuxmint ...

  3. linux shell获取当前执行路径

    linux shell 获取当前正在执行脚本的绝对路径 basepath=$(cd `dirname $0`; pwd) project_path=$(cd `dirname $0`; pwd) pr ...

  4. php做端口转发,利用PHP和linux shell在ubuntu服务器实现自动端口转发

    前言: 在用动态ip分配协议的网络环境下远程控制自己的主机最烦的就是ip会经常改变,而安装teamviewer这些软件又没有用rdp那么快速,所以经常开机后第一件事就是把ip地址记下来,然后再从其他机 ...

  5. linux的shell键盘输入,linux shell获取键盘输入

    linux shell从键盘获取输入 代码1: #!/bin/bash #提示"Input your choice:",把用户的输入保存入变量choice_user中 read - ...

  6. [内网端口映射]内网端口映射ubuntu

    理解: "你家在1个小区里B栋2410室,你朋友来找你,找到小区门口,不知道你住哪层哪号?就问守门的保安,保安很客气的告诉了他你家详细门牌,所以你朋友很轻松的找到了你家.这个过程就是外网访问 ...

  7. Linux Shell获取参数的方法

    传参用法 Linux Shell 如何获取参数的方法 $# 是传给脚本的参数个数 $0 是脚本本身的名字 $1 是传递给该shell脚本的第一个参数 $2 是传递给该shell脚本的第二个参数 $@ ...

  8. linux shell 获取环境变量,bash shell中的环境变量

    环境变量--bash shell使用环境变量来存储系统相关数据,并允许将数据存储在内存中. 环境变量分为:全局环境变量 本地环境变量 目录全局环境变量 本地环境变量 设置全局环境变量 删除环境变量 P ...

  9. linux shell 获取表,bash - 如何获取shell脚本中目录中的文件列表?

    bash - 如何获取shell脚本中目录中的文件列表? 我试图使用shell脚本获取目录的内容. 我的脚本是: for entry in `ls $search_dir`; do echo $ent ...

最新文章

  1. 300英雄服务器维护多久,300英雄7月19日停机更新公告
  2. DAY02 WINDOWS Ghost系统的备份与还原以及不同虚拟机的通信的实现
  3. 【MongoDB】Window启动和配置
  4. ncnn源码编译安装
  5. JDBC批量操作批量增加批量修改
  6. java线程池应用的好处_java高级应用:线程池全面解析
  7. 微会动微信现场互动:如何通过7步分析法建立用户视角?
  8. SQL Server之索引
  9. JavaTPoint Java 中文教程【翻译完成】
  10. IDEA怎么导入一个maven项目
  11. 最强大的数据恢复软件
  12. Activity启动模式singleTask模式
  13. vue项目实现文字转换成语音播放功能
  14. 学习残差神经网络(ResNet)
  15. select函数使用方法
  16. 声表面波传感器的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  17. “海外围猎场”里的中国游戏玩家
  18. 抖音美妆账号一条视频涨粉14.2w,合适刚玩短视频的你丨国仁网络
  19. NRF51802 PIN对PIN兼容NRF51822,主要的区别在于功耗
  20. PSO粒子群算法调节PID控制器参数

热门文章

  1. Tortoise Git 切换远程分支
  2. 安卓_第三方QQ授权登录
  3. ECCV | 达摩院基于局部平坦性的流形学习框架DLME
  4. asm.js 和 Emscripten 入门教程
  5. html中置顶的命令行是啥,html之长文本框置顶
  6. 推导B树的最大高度和最小高度得出B树的高度范围
  7. 蓝桥杯题目练习 提升篇 [蓝桥杯2019初赛]迷宫
  8. 让宝宝更聪明的40个日常培养方法
  9. 提示:‘for‘ loop can be replaced with enhanced ‘for‘
  10. apache 403 forbid 解决方案