Shell脚本之for循环、while循环,if语句、case语句
1. for循环
一般格式:
格式1:
 for((条件))
 do   
     动作
 done
格式2:
 for  变量名  in  范围
 do   
      动作
 done
1
2
3
4
5
6
7
8
9
10
11
12
13
14
实验:
##1. 输出数字:1-5
[root@localhost ~]# vim for01.sh
1
###################
#!/bin/bash
for i in {1…5}
do
echo $i
done
[root@localhost ~]# sh for01.sh 
1
2
3
4
5
1
2
3
4
5
6
##2.将输出数字:1-6 并且 间隔为2
[root@localhost ~]# vim for02.sh
1
###################
#!/bin/bash
for NUM in seq 1 2 6 ## 2表示步长
do
echo $NUM
done
[root@localhost ~]# sh for02.sh 
1
3
5
1
2
3
4
检测所有1-60的ip网络通信状态	
[root@localhost mnt]# vim ip_check.sh 
1
#####################
#!/bin/bash
for((i=1;i<=60;i++))
do
ping -c1 -w1 172.25.254.KaTeX parse error: Expected 'EOF', got '&' at position 15: i > /dev/null &̲& echo 172.25.2…i is UP || echo 172.25.254.$i is DOWN
sleep 1
done
注释:
/dev/null ##将冗余的输出信息导入到垃圾箱中
sleep 1 ##每秒刷新一次
&& ##表示若能与主机能进行通信则输出…UP
|| ##表示若不能与主机进行通信则输出…DOWN
[root@localhost mnt]# sh ip_check.sh
1
2. while循环
一般格式:
while  条件
do             ##满足条件则执行动作
    动作
done
1
2
3
4
实验:
[root@localhost ~]# vim while.sh
1
###################
while true ## 死循环,若没有外界条件的干扰,则会一直循环不停止
do
echo -n uptime
echo -ne “\r” ## -e表示解析 ,-r表示回车,即覆盖上一秒的输出信息
sleep 1 ## 每秒刷新一次
done
[root@localhost ~]# sh while.sh
^C:37:17 up 58 min, 3 users, load average: 0.14, 0.05, 0.06
1
2
批量创建用户并给其设定密码为123	
##非交互式设定用户密码
[root@localhost mnt]# echo "123" | passwd student --stdin
[root@localhost mnt]# ls /home
student
[root@localhost mnt]# vim user.sh 
1
2
3
4
4. if语句
if语句的一般形式:
(1).单个条件
if 条件             ##满足条件则执行命令1,否则执行命令2 
then  命令1
elif  命令2
 
 
(2).多个条件
if    条件1
then       执行命令1
elif   条件2
then       执行命令2
.....
else       执行命令3
fi
几种常见的退出方式:
  
   exit             ##退出当前脚本
   break            ##退出当前循环
   continue         ##提前退出当前循环,进入下一次循环
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
实验:
5. case语句
一般用于多个条件的判断
1) case语句的一般格式
 case 变量名 in
           常量1)           ##可以用于判断多个条件;当常量1与变量名相同时,执行命令1,以此类推
           命令1
           ;;
           常量2)    
           命令2
 esac
1
2
3
4
5
6
7
2) if语句与case语句的区别
 if语句中的条件判断是从上到下顺序依次判断  
 case语句中的条件判断是同步的
--------------------- 
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号