在linux shell中使用for遍历产生的递增数字序列的N种方法

使用seq产生

[bash]for i in seq 1 100;do
echo $i
done[/bash]

使用条件循环

[bash]for((i=1;i<100;i++));do
echo $i
done[/bash]

使用while循环

[bash]i=1
while(($i<100));do
echo $i
i=expr $i + 1
done[/bash]

i=expr $i + 1还可以改为i=$(($i+1))加快运算速度(看shell支持与否)

最慢的方法

[bash]
for i in {1..100};do
echo $i
done[/bash]


实例 批量添加路由表:

[bash]#!/bin/bash
#print the route rulers for cczu
#to make this take effect ,pass it to shell with a pipe
#eg: route-cczu.sh |sh
#via:[email protected]
igw=219.230.149.1

for ip in {144..159};do
echo route add -net 219.230.$ip.0 netmask 255.255.255.0 gw $igw dev eth0
done

for ip in {65..79};do
echo route add -net 211.65.$ip.0 netmask 255.255.255.0 gw $igw dev eth0
done

for ip in seq 1 65;do
echo route add -host 211.65.64.$ip gw $igw dev eth0
done

for((ip=16;ip<=20;ip++));do
echo route add -net 172.$ip.0.0 netmask 255.255.0.0 gw $igw dev eth0
done
[/bash]

chmod +x route-cczu.sh
./route-cczu.sh |sh

Author Info :
  • From:在linux shell中使用for遍历产生的递增数字序列的N种方法
  • URL:https://blog.ihipop.com/2010/11/1845.html
  • Please Reserve This Link,Thanks!
  • 《在linux shell中使用for遍历产生的递增数字序列的N种方法》上有1条评论

    发表回复

    您的电子邮箱地址不会被公开。 必填项已用 * 标注