shell流程控制

shell流程控制

if 判断

基本语法
if [ 条件判断式 ];then
程序
fi
或者
if [ 条件判断式 ]
then
程序
elif [条件判断式]

then
程序
fi

注意事项:****(1)[ 条件判断式 ],中括号和条件判断式之间 **必须有空格 **(2) 推荐使用第二种方式

应用实例

案例:请编写一个 shell 程序,如果输入的参数,大于等于 60,则输出 "及格了",如果小于 60, 则输出 "不及格"

1#!/bin/bash 2 3#案例:请编写一个 shell 程序,如果输入的参数,大于等于 60,则输出 "及格了",如果小于 60, 则输出 "不及格" 4if [ $1 -ge 60 ] 5then 6 echo "及格了" 7elif [ $1 -lt 60 ] 8then 9 echo "不及格" 10fi 11 12echo "-------------------------------" 13 14if [ $1 -ge 60 ];then 15 echo "分数ok" 16elif [ $1 -lt 60 ];then 17 echo "分数不ok" 18fi 19 20echo "-------------------------------" 21 22if [ $1 -ge 60 ] 23then 24 echo "分数够了" 25else 26 echo "分数不够" 27fi 28 29

**注意:**如果if [ $1 -ge 60 ] 和then写在同一行的话,记得要在[ $1 -ge 60 ]后面加上;分号,语法才不会报错,正确写法如下

if [ $1 -ge 60 ];then
还有一种写法也是正确的,就是不要把if [ $1 -ge 60 ]和then写在同一行,而是把then换行写,如果是把then换行写的话,

那if [ $1 -ge 60 ]后面就不用加;分号了

正确写法如下

if [ $1 -ge 60 ]
then

如下这种写法也是正确的,把then写到下一行,此时if [ $1 -ge 60 ]后面可以加;分号,也可以不加分号

if [ $1 -ge 60 ];

then

1#!/bin/bash 2 3#注意 4 5#[ $1 -ge 60 ]后面不写;分号,并且then和if写在同一行,看看语法会不会报错(经过测试,语法会报错) 6if [ $1 -ge 60 ] then 7 echo "及格了,再接再厉" 8elif [ $1 -lt 60 ] then 9 echo "不及格,要加油哦" 10fi 11 12#正确的第1种写法如下,如果你想把if [ $1 -ge 60 ]和then放在同一行写,那就在[ $1 -ge 60 ]后加 13#上;分号,如下 14 15if [ $1 -ge 60 ];then 16 echo "及格了,再接再厉" 17elif [ $1 -lt 60 ];then 18 echo "不及格,要加油哦" 19fi 20 21 22#正确的第2种写法如下,把then写到下一行,此时if [ $1 -ge 60 ]后面可以不用加;分号 23if [ $1 -ge 60 ] 24then 25 echo "及格了,再接再厉" 26elif [ $1 -lt 60 ] 27then 28 echo "不及格,要加油哦" 29fi 30 31 32#如下这种写法也是正确的,把then写到下一行,此时if [ $1 -ge 60 ]后面可以加;分号,也可以不加分号 33if [ $1 -ge 60 ]; 34then 35 echo "及格了,再接再厉" 36elif [ $1 -lt 60 ]; 37then 38 echo "不及格,要加油哦" 39fi 40 41#建议大家把这几种写法都试一试,我也是全部都是自己动手写了一遍,做个笔记,怕自己以后忘记,我记忆 42#力不太好 43

 

上一篇:powershell

代码交流 2021