shell脚本循环--for循环
程序员文章站
2022-07-10 11:19:14
...
语法结构:
for 变量名 [ in 取值列表 ]
do
循环体
done
{
}&(脚本里面有一条命令特别慢 可以用{ }& 让他进入后台执行 也叫高并发)
自动循环创建10个用户
for i in {1..10}
#(i 就是个变量 也可以是别的 in 后面 取值范围有很多种写法)
do
useradd "user$i"
done
--------------------------------------------------
for i in $(seq 1 10) (seq 数数的)
也可以哦
for i in `seq 10`
通过用户列表文件创建用户
#!/bin/bash
for user in `cat $1` (读取文件的内容 ·` cat $1`(位置变量) 在执行的脚本后面 跟上文件名就行)
do
useradd $user
echo "$user is created"
done
[[email protected] ~]# sh user.sh user.txt
或者
#!/bin/bash
for user in `cat user.txt`
do
useradd $user
echo "$user is created"
done
[[email protected] ~]# sh user.sh
ping测试在线主机
通过循环工具,探测全网主机。将在线主机记录在文本中。
规定好网段
#!/bin/bash
#ping
for i in {2..254}
do
{
ip=192.168.100.$i
ping -c1 $ip &>/dev/null
if [ $? -eq 0 ] ;then
echo "$ip up" >> up.txt
else
echo "$ip down" >>down.txt
fi
}&
done
由用户输入网段
#!/bin/bash
#ping
read -p "请输入你要测试的网段:" ipip
for i in {2..254}
do
{
ip=$ipip$i
ping -c1 $ip &>/dev/null
if [ $? -eq 0 ] ;then
echo "$ip up" >>up.txt
else
echo "$ip down" >>down.txt
fi
}&
done
从文件读取网段
[[email protected] scripts]# cat ip.txt
172.16.8.100
172.16.8.4
172.16.100.254
#!/bin/bash
#执行前清空文件
>up.txt
>down.txt
for ips in `cat ip.txt`
#(读取文件的内容 ·` cat $1`(位置变量) 在执行的脚本后面 跟上文件名就行)
do
{
ping -c1 $ips &>/dev/null
if [ $? -eq 0 ] ;then
echo "$ips up" >> up.txt
else
echo "$ips down" >>down.txt
fi
}&
done
上一篇: Java基础06:变量、常量、作用域
下一篇: shell自动交互之expect脚本_转