bash - 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
我有什么办法可以在一个班轮中做到这一点?
解决方案
花括号语法(序列表达式)可以像这样嵌套:
for i in {{1..79},{101..254}}; do ssh 192.168.138."$i" "hostname -s"; done
推荐阅读
- javascript - 同一个对象的引用怎么不能相等?
- ios - 如何为视图提供固定位置,使其不受 SwiftUI 中滚动的影响
- sensors - 哪个版本的 Xbox 与 Kinect SDK 2.0 兼容
- cookies - 获取 CouchDB 以使用 cookie 进行身份验证
- django - 如果 DEBUG = False (WARNING:django.request:Not Found: /media/cache/),Django 无法加载媒体图像
- javascript - 如何迭代 JSON 数组并从异步箭头函数添加数据?
- oracle - 将 Nifi ExecuteSQLRecord 与参数化 SQL 语句一起使用?
- spring-security-oauth2 - Spring OIDC 支持 JWKS 旋转
- flutter - “构建失败,出现异常。” 在尝试使用 sqflite 或 path_provider 时颤抖
- python - 我怎样才能让 python 总是检查时间?