目录
引言:在shell编程中,除了选择判断之外,对一些特殊情况需要进行循环操作,比如遍历目录文件,批量添加用户等操作,都需要循环操作
语法格式:
for 变量名 in 取值列表
do
命令
done
for i in {1..9};do echo $i;done
{1..9}为取值范围1到9
echo $i 输出当前的取值
for((i=1;i<=9;i++));do echo $i;done
使用(())双括号,可以支持C语言的一些命令
i=1;i<=9;i++ #i初始值为1,如果i小于等于9时执行循环,每次循环后+1
for i in `seq 9`;do echo $i;done
seq 5 与{1..9}效果一样
for i in `seq 5`;do echo "hello world";done
使用变量i 循环5次
每次执行echo "hello world"命令
使用for循环遍历当前目录
二.for循环脚本
利用for循环,实现的简单脚本
2.1测试主机状态
检测局域网内,主机存活状态
#!/bin/bash
for IP in `cat /root/for/ip.txt` #ip文件为存放ip地址的
do
ping -c 3 -i 0.2 -w 3 $IP &>/dev/null #-c 3 ping3次主机 -i 0.2ping主机间隔 -w 3ping主机超时间隔
if [ $? -eq 0 ];then
echo "host $IP is up"
else echo "host $IP is down"
2.2乘法表
#!/bin/bash
for ((i=1;i<=9;i++)) #此处也可以写 for i in {1..9}
do
for ((j=1;j<=i;j++)) #此处也可写 for j in `seq $i`
do echo -n -e "$j*$i=$[j*i]\t" #-n不换行输出;-e使用\转义符;\t横向制表;若不用-e,则\t为普通字符
done
echo
done
1.for循环在实际生成中应用非常多,避免人工重复的去操作某个事情
2.for循环中的列表支持正则表达式
3.for循环中使用(()),双括号内支持C语言的命令
4.for循环中的变量,只是循环去取值列表中取值,然后进行do操作,所以取值列表中的参数个数,决定了循环的次数