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 j 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 j 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 j 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 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步