【发布时间】:2021-12-06 21:13:05
【问题描述】:
while 循环运行良好。
但是想知道是否有一种方法可以同时运行文件中的所有行,然后通过同一组命令运行变量,而不是等待每个接口 3 秒?
while read line; do
before=$(snmpwalk -v2c -c public 1.1.1.1 .1.3.6.1.2.1.2.2.1.16.$line | awk '{print $4}')
sleep 3
after=$(snmpwalk -v2c -c public 1.1.1.1 .1.3.6.1.2.1.2.2.1.16.$line | awk '{print $4}')
res=$(bc <<< "$after-$before")
zxc=$(echo "$res * 8 * 100 / (1000000000 * 3) " | bc)
per=$(echo "scale=1; 100 * $zxc / (1000) " | bc)
done < intfile.txt
感谢
【问题讨论】:
-
将您的处理代码重建为 1 个脚本。然后在后台调用这个 1 脚本,每行作为参数。因此,您的 while 循环将启动与 intfile.txt 中的行数一样多的处理脚本实例。
标签: bash while-loop