shell脚本之if,case语句与for循环

一、if语句

if [ 条件 ]

then

命令1 命令2

…..

else

if [ 条件 ]

then

命令1 命令2

….

else

命令1 命令2

…..

fi

fi

 

if语句实例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
vim a.sh                                     #创建脚本文件,注意必须.sh结尾
脚本内容:
#!/bin/bash                                  #脚本解释器
read -p  "请输入你的成绩进行判断(0-100): " key  #读取用户输入的内容为变量key
if [ $key -ge 91 -a  $key -le 100   ]        #条件1:如果key大于等于91且小于等于100则执行then
then                                         #key符合条件1执行此then
echo "你的成绩为优秀"
elif [ $key -ge 81 -a $key -le 90    ]      #条件2:如果key大于等于81且小于等于90则执行then
then                                       
echo "你的成绩为良好"
elif [ $key -ge 60 -a $key -le 80    ]      #条件3:如果key大于等于60且小于等于80则执行then
then                                       
echo "你的成绩为及格"
elif [ $key -lt 60  ]                       #条件4:如果key大于等于60且小于等于80则执行then
then                                       
echo "你的成绩为不及格"                 
else                                        #key不符合上述任何条件则执行else
echo "输入错误,请输入0-100的正整数"
fi                                          #结束语fi
chmod +x a.sh                               #脚本添加执行权限
bash   a.sh                                 #使用shell执行脚本,也可使用路径方式执行

  

 

 

 

 二、case语句

case 变量 in

值1) 命令1 命令2

….. 最后命令 !!

值2) 命令1 命令2

…… 最后命令 ;;

esac

 

 case使用方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/bin/bash
while true
do
    read -r -p "Are You Sure? [Y/n] " input
    case $input in
        [yY][eE][sS]|[yY])
            echo "Yes"
            exit 1
            ;;
        [nN][oO]|[nN])
            echo "No"
            exit 1         
            ;;
        *)
            echo "Invalid input..."
            ;;
    esac
done

  

 

 

 

三、for循环

for 变量 in

循环列表

do

命令1 命令2

….

最后命令

done

 

for循环例子

1
2
3
4
5
6
7
#!/bin/bash
sum=0
for i in {1..100}
do
let sum=$i+$sum
done
echo sum=$sum

  

 

 

 

四、while循环

while   [ 判断条件] 使用while循环满足条件执行do,不满足不执行 

do       

执行动作   while循环执行动作

done         while循环结束标志

 

 

五、循环99乘法表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
9*9乘法表
第一步:
vim 99.sh             
脚本内容:
#!/bin/bash
for i in {1..9}        #for循环9次从i=1开始
do
echo -n "*"            #每循环一次打印一个*,echo  -n参数表示不换行
done                   #此for循环语句结束
bash  99.sh           
执行结果:
*********
第二步:
vim 99.sh          
脚本内容:
#!/bin/bash
for  in  {1..9}     #添加打印列循环,循环9次从j=1开始 
do                     #j循环时做do中的内容   
    for i in {1..9}    #第一步for循环内容不变
    do
    echo -n "*"
    done
echo                   #列循环每循环一次打印一行空格进行换行
done                   bash  99.sh          
执行结果:
*********
*********
*********
*********
*********
*********
*********
*********
*********
第三步:
vim 99.sh            
脚本内容:
#!/bin/bash
for  in  {1..9}     #列循环内容不变 
do                        
    for i in `seq $j`  #修改行循环i的取值范围为展开变量j,即当j=1时i取值只有1,所以循环一次。当
                       j=2时,i取值为1和2,所以i=1和i=2各循环一次,循环2次。以此类推到j=9
    do
    echo -n "*"
    done
echo                  
done                  
bash  99.sh            #调用shell执行脚本
执行结果:
*
**
***
****
*****
******
*******
********
*********
第四步:
vim 99.sh            
脚本内容:
#!/bin/bash
for  in  {1..9}    
do
    for i in `seq $j`
    do
    echo -ne "$j*$i=$[ $j*$i ]\t"   #行输出内容修改为9*9算式和结果。$[ ]表示计算里面的正整数结
                              果,echo -e参数表示调用转义符,\t表示制表符即循环时输出一个tab键
    done
echo                  
done                  
bash  99.sh           
输出结果:
1*1=1  
2*1=2   2*2=4  
3*1=3   3*2=6   3*3=9  
4*1=4   4*2=8   4*3=12  4*4=16 
5*1=5   5*2=10  5*3=15  5*4=20  5*5=25 
6*1=6   6*2=12  6*3=18  6*4=24  6*5=30  6*6=36 
7*1=7   7*2=14  7*3=21  7*4=28  7*5=35  7*6=42  7*7=49 
8*1=8   8*2=16  8*3=24  8*4=32  8*5=40  8*6=48  8*7=56  8*8=64 
9*1=9   9*2=18  9*3=27  9*4=36  9*5=45  9*6=54  9*7=63  9*8=72  9*9=81

  

 

本文作者:twistfate123

本文链接:https://www.cnblogs.com/trist-commot/p/17070105.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   twistfate123  阅读(142)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.