执行流控制
执行流控制就是语句,执行流的默认情况是从上到下。
vim westos.sh
echo 1
sleep 1
echo 2
sleep 1 ##sleep就是等待几秒就输出
echo 3
for
-
作用:为循环执行动作
-
语句结构
for 定义变量 do 使用变量,执行动作 done 结束标志
-
for 语句的基本格式
1、for USER in 1 2 3 ##1 2 3这是列表 do echo $USER done date cal
2、
for USER in {1..10} ##这是连续选择 do echo $USER done
3、
for USER in `seq 1 3 10` ##seq是一个命令,所以要用` 。特点就是有步长。步长是3 do echo $USER done
4、
for ((USER=1;USER<10;USER++)) ##这是运算的方式 do echo $USER done
-
练习题:
1、 ping.sh ,检测教室中10-20的主机,哪一个是开着的。打开的话就显示172 is up,把开着主机的列表表示出来。for ip in 172.25.254.{10..20} do ping -c1 -w1 $ip &> /dev/null && echo "$ip is up" done
2、10秒的一个倒计时
for SEC in {10..1}
do
echo -ne "After $SEC is end! \r"
sleep 1
done
3、检测用户是否存在
有一个文件,如文件userlist,里面都是我们的用户列表,执行脚本会把这个里面的所有用户都建立出来。用户存在的话就表明,用户存在,用户不存在就建立并表示用户已建立。
[ -z $1 ] && {
echo "Error: please input userlist file following script"
exit
}
for USERNAME in `cat $1`
do
id $USERNAME &> /dev/null &&{
echo "$USERNAME is exist"
}||{
useradd $USERNAME
echo "$USERNAME is created"
exit
}
done