例1 循环ping192.168.110网段的所有主机
i=1 #定义变量
for i in {1..254} #变量取值范围
do
ping -c 2 -w 3 -i 0.3 192.168.110.$i $> /dev/null #ping指令 -c代表执行次数 -w代表超时时间 -i代表时间间隔 $i表示ip地址的最后一个字段取值为变量i /dev/null表示无底洞 即ping指令的输出直接丢弃不显示
if [ $? -eq 0 ] ;then #$?表示上一个指令的退出状态 如果不为0表示ping通 则显示该地址可达
echo "192.168.110.$i is yes"
else
echo "192.168.110.$i is no"
fi #fi是if语句的结束
let i++ #let用来操作表达式
done #for循环结束
例2 for批量创建用户
user=$`cat /opt/user.txt`
for i in $user #读取文件中的用户信息
do
useradd $i #添加用户
echo "1234" | passwd --stdin $i #更新用户密码
done
~
例3 创建存放1-100奇数的数组里
for ((i=0;i<=100;i++))
do
if [ $[$i%2] -eq 1 ] ;then #判断数据的奇偶 $i表示变量i -eq判断数据不相等
arr[$[$[$i-1]/2]]=$i #存放数据 $[]表示变量
fi
done
echo ${arr[*]}
例4 数组操作
num=(90 90 90 90 90 90 90 90 20 20) #数组定义
for ((i=0;i<=9;i++))
do
if [ $[num[$i]] -lt 60 ]#判断小于60
then
num[$i]=60
fi
done
echo ${num[*]} #*表示访问数组中所有的元素