gpt4 book ai didi

linux - 如何在 bash shell 脚本中添加另一个 "for"循环?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:44:26 26 4
gpt4 key购买 nike

Bash shell script.sh 轮询目标 OID 的网络范围,更改第 4 个八位组 10.46.32.x。我想扩展轮询的范围,包括第 3 个八位字节 10.46.x.x

如何为第 3 个八位字节添加另一个 “for” 循环?

#!/bin/bash
# snmpget command poll the network range for certain OIDs

for (( i=254; $i; i=$i-1 )) do
host=10.46.32.$i;
snmpget -v 2c -c public -t 0.5 -r 1 $host iso.3.6.1.2.1.2.2.1.6.1 iso.3.6.1.2.1.2.2.1.6.2;
done;
read -p 'press Enter to continue...'

编辑:2 个循环

#!/bin/bash
# snmpget command poll the network range for certain OIDs

for i4th (( i=254; $i; i=$i-1 )) do
for i3th (( i=254; $i; i=$i-1 )) do
host=10.46.$i3rd.$i4th;
snmpget -v 2c -c public -t 0.5 -r 1 $host iso.3.6.1.2.1.2.2.1.6.1 iso.3.6.1.2.1.2.2.1.6.2;
done;
read -p 'press Enter to continue...'

最佳答案

如果您要求嵌套的 for 循环,那么简单地在其中定义一个怎么样?您也可以使用大括号扩展代替传统的 C 风格循环

for octet4th in {254..1..1}; do
for octet3rd in {254..1..1}; do
host=10.46.$octet3rd.$octet4th
done
done

通过执行 {254..1..1},您不需要编写完整长度的传统循环,它只需一次减少一个(最后一个 1) 到值 1。您可以尝试运行一个简单的测试,方法是执行 echo {10..1..1} 以了解其工作原理。

关于linux - 如何在 bash shell 脚本中添加另一个 "for"循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50525451/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com