shell脚本--if,for,while循环

shell脚本中基本的三种循环

一丶讲循环之前,需要了解shell脚本中 条件测试的用法和比较的用法

条件测试 [ ] test

1.字符串的比较
== 判断是否相等
[ a == b ] 或 test a == b
!= 判断是否不相等
[ a != b ] 或 test a != b
-z 判断是否为空
[ -z $a ]

2.数字的比较
-eq 等于
-ne 不等于
-gt 大于
-ge 大于等于
-lt 小于
-le 小于等于
有点难记 所以个人总结了一下 带e的都有等于 带g的都有大于 带l 的 都有小于

3.文件的判断
-e 判断文件是否存在,不关心文件类型
-f 判断文件是否存在,且类型必须是普通文件
-d 判断文件是否存在,且类型必须是目录
判断当前用户是否拥有相关权限:
-r 是否有读 对管理员判断无效
-w 是否有写 对管理员判断无效
-x 是否能执行
这个应该很好记 权限类型什么的经常用到

4.逻辑判断
&& 并且 之前任务成功,才执行之后任务
|| 或者 之前任务失败,才执行之后任务
; 前后无逻辑关系, 执行完前面任务,继续执行后面的

二丶下面进入我们的循环

if循环—if循环中有三种分支

if 单分支

格式:
if 条件测试 ;then
命令序列
fi

#!/bin/bash
if  [ 1 == 1 ];then
        echo "一等于一"
fi

if 双分支

格式:
if 条件测试 ; then
命令序列1
else
命令序列2
fi

#!/bin/bash
if  [ $1 -gt 10 ];then
        echo "这个数大于10"
else
        echo "这个数小于等于10"
fi
if 多分支

格式:
if 条件测试1 ; then
命令序列1
elif 条件测试2 ;then
命令序列2

else
命令序列n
fi

#!/bin/bash
x=$[RANDOM%10]
read -p "请输入一个0-9之间的数字:" n
if [ $x -eq $n ];then
	echo "恭喜你猜对了"
elif [ $n -gt $x ]; then
	echo "你猜大了"
else
	echo "你猜小了"
fi

for循环

for循环 需要注意两个地方

1.循环的次数
2.循环过程中调用的变量

for 循环

格式:
for 变量名 in 值1 值2 值3…
do
循环任务
done

#!/bin/bash

for  a   in {1..3}
  do
	echo  $a
done 

while 条件测试
do
命令序列
done

比如这个猜数游戏

#!/bim/bash
a=0                        #设置一个变量
x=$[RANDOM%100]	 #生成一个随机数给x   这里取100的余数 所以范围是0-99
while :
do 
	read -p "请输入一个0-99的数字:"  n   
	if [ $x -eq $n ];then            #-eq   等于的意思
		echo "恭喜你猜对了"
		let a++
		echo  "你一共猜了$a次"
		exit
	elif [ $n -lt $x ];then           #-lt   小于的意思
		echo "小了"
		let a++
	else
		echo "大了"
		let a++
	fi
done

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值