Shell条件判断流程控制

Shell条件判断流程控制

判断语句

基本语法

[ condition ](注意 condition 前后要有空格)
#非空返回 true,可使用$?验证(0 为 true,>1 为 false)

应用实例
[ hadoop ] 返回 true
[ ] 返回 false
[ condition ] && echo OK || echo notok 条件满足,执行后面的语句

判断语句

常用判断条件

  1. = 字符串比较
  2. 两个整数的比较
    -lt 小于
    -le 小于等于 little equal
    -eq 等于
    -gt 大于
    -ge 大于等于
    -ne 不等
  3. 按照文件权限进行判断
    -r 有读的权限
    -w 有写的权限
    -x 有执行的权限
  4. 按照文件类型进行判断
    -f 文件存在并且是一个常规的文件
    -e 文件存在
    -d 文件存在并是一个目录

应用实例
案例 1:“ok"是否等于"ok”
判断语句:使用 =
案例 2:23 是否大于等于 22
判断语句:使用 -ge
案例 3:/home/oper.sh 目录中的文件是否存在
判断语句: 使用 -f

在这里插入图片描述
在这里插入图片描述

if 判断
基本语法

if [ 条件判断式 ]
then
代码
fi

或者 , 多分支

if [ 条件判断式 ]
then
代码
elif [条件判断式]
then
代码
fi

注意事项:[ 条件判断式 ],中括号和条件判断式之间必须有空格

案例:请编写一个 shell 程序,如果输入的参数,大于等于 60,则输出 “及格了”,如果小于 60,则输出 “不及格”
在这里插入图片描述
在这里插入图片描述

case 语句
基本语法

case $变量名 in
“值 1”)
如果变量的值等于值 1,则执行程序 1
;;
“值 2”)
如果变量的值等于值 2,则执行程序 2
;;
…省略其他分支…
*)
如果变量的值都不是以上的值,则执行此程序
;;
esac

案例 :当命令行参数是 1 时,输出 “周一”, 是 2 时,就输出"周二", 其它情况输出 “other”
在这里插入图片描述
在这里插入图片描述

for 循环
基本语法 1

for 变量 in 值 1 值 2 值 3…
do
程序/代码
done

基本语法 2

for (( 初始值;循环控制条件;变量变化 )
do
程序/代码
done

案例 1 :打印命令行输入的参数 [这里可以看出$* 和 $@ 的区别]
在这里插入图片描述
在这里插入图片描述
案例 2 :从 1 加到 100 的值输出
在这里插入图片描述
在这里插入图片描述

while 循环
基本语法 1

while [ 条件判断式 ]
do
程序 /代码
done
注意:while 和 [有空格,条件判断式和 ]也有空格

案例 :从命令行输入一个数 n,统计从 1+…+ n 的值是多少
在这里插入图片描述
在这里插入图片描述

read 读取控制台输入
基本语法

read(选项)(参数)
选项:
-p:指定读取值时的提示符;
-t:指定读取值时等待的时间(秒),如果没有在指定的时间内输入,就不再等待了。。
参数
变量:指定读取值的变量名

案例 1:读取控制台输入一个 NUM1 值
案例 2:读取控制台输入一个 NUM2 值,在 10 秒内输入
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值