Linux:for语句的基本用法举例

创建100个用户,密码dushan 

#/bin/bash
for i in `seq 1 100`;
do
    useradd user$i &>/dev/null
    echo dushan | passwd --stdin user$i &>/dev/null
    passwd -e user$i &>/dev/null
done

删除:for i in {1..100};do userdel -r user$i;done


后台扫描哪些ip是up哪些是down,up的存文件

#/bin/bash
> /data/iplist.log
net=172.20.129
for i in {1..254};do
    { if ping -c1 -w1 $net.$i &> /dev/null ;then
            echo $net.$i is up
            echo $net.$i >> /data/iplist.log
    else
            echo $net.$i is down
    fi } &
done
wait

输入一个网段,扫描哪些是开机的

#/bin/bash
> /data/iplist.log
read -p "please input the network:(192.168.0.0): " net
net=echo $net|cut -d. -f1-3
for i in {1..254};do
{ if ping -c1 -w1 $net.$i &> /dev/null ;then
echo $net.$i is up
echo $net.$i >> /data/iplist.log
else
echo $net.$i is down
fi } &
done
wait

输入ip和netmask,得出idnet

#/bin/bash
read -p "input the ip: " ip
read -p "input the netmask: " netmask
for i in {1..4};do
net=`echo $ip |cut -d. -f$i`
mask=`echo $netmask |cut -d. -f$i`
if [ $i -eq 1 ];then
netid=$[net&mask]
else
netid=$netid.$[net&mask]
fi
done
echo netid=$netid

优化

#/bin/bash
read -p "input the ip: " ip
read -p "input the netmask: " netmask
for i in {1..4};do
net=`echo $ip |cut -d. -f$i`
mask=`echo $netmask |cut -d. -f$i`
subnetid=$[net&mask]
if [ $i -eq 1 ];then
netid=$subnetid
else
netid=$netid.$subnetid
fi
done
echo netid=$netid

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值