执行流语句
执行流就是在脚本中记录的命令执行的顺序,默认的脚本执行顺序是从上到下依次执行
1.for循环语句
for语句的作用为循环执行指定动作,语句结构如下:
for # 定义变量
do # 对变量的动作
done # 结束标志
(1) for语句使用罗列方法定义变量
for WESTOS in westos linux redhat
do echo $WESTOS
done
(2)in后跟连续变量
for WESTOS in {
1..10}
do echo $WESTOS
done
(3)in后使用seq连续选择命令定义变量
seq 1 10 将会顺序显示1-10数字
seq 1 2 10 意思是1-10之间每间隔2取一次值,则会显示1 3 5 7 9
即
for WESTOS in $(seq 1 2 10)
do echo $WESTOS
done
实验1
for语句写脚本批量测试同网段主机(30-40):
#!/bin/bash
for ens in 172.25.254.{
40..50}
do
ping -c1 -w1 $ens &> /dev/null && {
echo $ens is up
}||{
echo $ens is down
}
done
效果如图:所有测试结果会依次显示出来
这里只有一台主机40开着,所以只有一台检测为up
测试主机ping通不通的时候,必须要加-c表示次数-w表示时间,否则指令不结束,脚本不出结果
脚本练习:
vim user_list 写一个用户列表文件,如:user1 user2 user3 sh user.sh user_list
执行脚本时,$1为你的用户列表文件 要求:
文件不存在时报错,文件存在则检测文件中指定用户列表中的用户是否存在,存在显示存在,不存在直接建立用户
#!/bin/bash
[ -z "$1" ] && {
echo "Errow :Please input filename fllowing $0: "
exit
}
[ ! -e "$1" ] && {
echo "Errow: $1 is not exist !!"
exit