bash流程控制

条件判断

单分支:

1.if

if 表达式;then
 操作
 fi

实例1:
判断控制台输入的数字是否大于7,如果大于7就在控制台打印出you are right!

sudo vim test.sh
#!/bin/bash
read -p "Imput num:" a
if [ $a -gt 7 ];then
  echo "you are right!"
fi
:wq

在这里插入图片描述
2.case语句

case 变量名 in)
操作
esac

实例2:
是用case实现实例1:

sudo vim testcase.sh
#!/bin/bash
read -p "Input num:" a
case $a in
7)
  echo "you are right!"
esac
:wq

多分支

1.elif/else

if 表达式1 ;then
操作1
elif 表达式2;then
操作2
elif 表达式3;then
操作3
...
else
操作4
fi

实例1:
判断输入的值与7对比的大小情况

sudo vim test2.sh
#!/bin/bash
read -p "Input num:" a
if [ $a -gt 7 ];then
  echo "you are right!"
elif [ $a -eq 7 ];then
  echo "This number is equal to 7"
else
  echo "This number is less than 7"
fi
:wq

在这里插入图片描述
2.case

case 变量值 in
值1)
操作1
;;
值2)
操作2
;;
...
*)
操作3
;;
esac

实例2:
判断输入的月份属于哪个季度

sudo vim case.sh
#!/bin/bash
read -p "Input the month:" a
case $a in
1|2|3)
  echo "This is the first quarter";;
4|5|6)
  echo "This is the second quarter";;
7|8|9)
  echo "This is the third quarter";;
10|11|12)
  echo "This is the fourth quarter";;
*)
  echo "Input error";;
esac
:wq

在这里插入图片描述

循环结构

  1. 当型结构:for循环,while循环
  2. 直到型结构:until循环

for循环

  1. 列表for循环
  2. 不带列表的for循环
  3. 类似c语言风格的for循环

1.列表for循环

for 循环变量 in 列表
do
	操作
done

实例1:
用for循环的方式输出1到10:

sudo vim loop.sh
#!/bin/bash
for i in {1..10}
do
  echo $i
 done
 :wq
 

在这里插入图片描述
实例2:
用for循环计算1到10 的和

sudo vim sum.sh
#!/bin/bash
sum=0
for n in {1..10}
do
	let "sum+=n"
done
echo "sum is: $sum"
:wq

在这里插入图片描述
2.不带列表的for循环

for 循环变量
do
操作
done

实例3:
使用for循环打印出从控制台输入的参数

sudo vim nolist.sh
#!/bin/bash
for a
do
echo $a
done

在这里插入图片描述
3.类似c语言风格的for循环
实例4:
实现计算1到10的和

sudo vim sum.sh
#!/bin/bash
sum=0
for((n=1;n<=10;n++));
do
  let "sum+=n"
done
echo "sum is :$sum"

在这里插入图片描述

while循环

while 判断表达式
do
  操作
done

实例5:使用while循环计算1到10的和

sudo vim sum.sh
#!/bin/bash
sum=0
num=1
while $num<=10
do
  

until循环

until与while的不同是until在表达式不成立时,进入循环,条件成立,终止循环,与while刚好相反

until 判断表达式
do
操作
done

实例6:使用until循环计算1到10的和

sudo vim sumuntil.sh
#!/bin/bash
sum=0
num=1
until (($num > 10))
do
	let "sum+=num"
	let "num++"
done
echo "the sum is $sum"	
:wq

在这里插入图片描述

select循环

select 变量名 in [菜单取值列表]
do
	操作
done

实例7:
编写脚本打印多个字符串

sudo vim select.sh
#!/bin/bash
select str in Hello world lcc
do
	echo $str
done

在这里插入图片描述
实例8:
打印我们在当前目录下的文件名或者目录名


sudo vim select2.sh
#!/bin/bash
PS3="select a num:"
select dir in `ls /home/lcc`
do
	echo -e "you seleted:\n $dir"
done
:wq

在这里插入图片描述

循环控制

1.break:强制跳出所有循环,终止整个循环的执行。
实例9:
从1打印到10,当等于7时跳出打印:

sudo vim break.sh
#!/bin/bash
num=0 
while [ $num -lt 10 ]
do
	echo $num
	if [ $num -gt 7 ]
	then 
		break
	fi
		num++
done
:wq

在这里插入图片描述
2.continue:用于强制跳出循环,只要是跳出当前循环,不会跳出所有循环,后面的循环可以依旧执行。
实例10:
循环打印1到10,等于7时不打印,其他正常打印。

sudo vim continue.sh
#!/bin/bash
for num in {1..10}
do
	if [ $num -eq 7 ]
	then
		continue
	fi
	echo $num
done
:wq

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值