首页 > 解决方案 > Ping 子网但使用 bash 跳过范围内的一些 IP

问题描述

我有一个简单的 for 循环,它使用 ssh 获取子网上的主机名。是否可以让它在同一个循环中跳过一定数量的 IP?这是我使用的:

for i in 192.168.138.{1..254}; do ssh $i "hostname -s";done

我想跳过 192.168.138.80 到 100。我试过以下没有运气。

for i in 192.168.138.{1..79..101..254}; do ssh $i "hostname -s";done

或者

for i in 192.168.138.{1..79}{101..254}; do ssh $i "hostname -s";done

我有什么办法可以在一个班轮中做到这一点?

标签: bashloops

解决方案


花括号语法(序列表达式)可以像这样嵌套:

for i in {{1..79},{101..254}}; do ssh 192.168.138."$i" "hostname -s"; done

推荐阅读