概述
1.分支语句
条件分支
条件分支共有以下三种:
- 1.if … then
格式如下:
if [ ... ]; then
expression
fi
如果存在多个判断条件时,可以使用||
,&&
表示与和非:
if [ ... ] && [ ... ]; then
expression
fi
这种方式表示:当条件满足时,进入if中执行,fi是if的反写,表示if结束。
要注意的是,方括号前面和后面,必须加一个空格,否则报错。
- 2.if … then … else … fi
格式表示如下:
if [...]; then
...
else
...
fi
这种方式表示:当条件满足时,进入if语句中,否则进入else语句中。
- 3.if … then … elif … else … fi
其格式如下:
if [condition1]; then
...
elif [condition2]; then
...
else
...
fi
这种方式表示:当满足条件1时进入if语句中执行,不再执行elif和else语句中的内容;如果不满足condition1,但满足condition2,则进入elif语句中执行;如果都不满足,则执行else语句中的内容。
比如,在以下脚本中,接收一个整数,并判断是否为奇数:
#!/bin/bash
#!/bin/bash
declare -i number
read -p "please enter a number:" number
if [ -n "$number" ]; then
echo "you enter nuber is $number"
if [ "$((number%2))" == 0 ]; then
echo "this number is oushu"
elif [ "$number" -gt 2 ]; then
echo "this nuber is biger than 2"
else
echo "this is a jishu"
fi
fi
还有一个比较经典的题目:分别有1,2,5分三种硬币,有几种方式能组合为1毛?
#!/bin/bash
times=0;
for ((i=0;i<=10;i++))
do
for((j=0;j<=5;j++))
do
for((k=0;k<=2;k++))
do
if [ $((i+2*j+5*k)) -eq 10 ];then
times=$(($times+1))
fi
done
done
done
echo "1,2,5组成1元,可以有"${times}" 种方式."
$(())用于整数运算.
case … in … esac
case语句用于多重分支判断中,格式如下:
case $variable in
"case1")
.......
;;
"case2")
.......
;;
"case3")
......
;;
*)
......
;;
esac
以上格式总结如下:
- 1.每个模式使用双引号扩起来,并且使用
)
结尾; - 2.每个模式使用双分号作为结束标记;
- 3.
*
表示默认模式,好比其他语言中的default
关键字,当不满足以上模式时,进入默认模式中去。 - 3.使用case的反写
esac
表示case的结尾;
比如以下示例:
#!/bin/bash
read -p "Please enter a word,and let me tell you the animal:" word
case $word in
"p")
echo "p is PIG"
;;
"d")
echo "d is DOG"
;;
"c")
echo "c is CAT"
;;
*)
echo "uh~~~ i dont know what you mean."
;;
esac
2.循环语句
while…do…done循环
while循环表示当条件成立时,就开始循环,条件不成立时结束循环,do...done
之间为循环体,其格式为:
while [condition]
do
...
done
如计算1-100的数的和:
#!/bin/bash
# 当i==100 时,不再循环
while [ "$i" != 100 ]
do
i=$(($i+1))
sum=$(($sum+$i))
done
echo "the 1+...+100 result is:$sum"
until…do…done循环
until循环恰恰和while循环相反,表示当条件成立时,就终止循环,同样地,do…done之间为循环体,其格式为:
until [ condition ]
do
...
done
用until来计算1-100的数的和:
#!/bin/bash
# 当 i==100时,终止循环
until [ "$i" == 100 ]
do
i=$(($i+1))
sum=$(($sum+$i))
done
echo "the result 1+...+100 is $sum"
for循环
while循环和until循环可以看做是不定循环,因为不确定他们的循环次数,那么for循环就可以看做是固定循环了,因为只会根据给定的循环条件进行循环,其格式有两种,分别如下:
- 第一种形式
for var in con1 con2 con3 ...
do
......
done
- 第二种形式
for (( 初始值;限制值;执行步长))
do
......
done
比如下面这个很简单的示例:
#!/bin/bash
for number in 1 2 3 4 5
do
echo "get $number"
done
或者可以这样:
#!/bin/bash
for ((i=0; i<10; i=i+1))
do
sum=$(($sum+i))
done
echo "the result of 1+...+10 is $sum "
无限循环
通常无限循环有以下三种格式:
- 第一种:
while :
型
# :表示true
while :
do
......
done
- 第二种:
while true
型
while true
do
......
done
- 第三种:
for ((;;))
型
for ((;;))
跳出循环
跳出循环有两种方式:
- break:终止执行所有循环
- continue:终止该次循环,进行下次循环
最后
以上就是优美石头为你收集整理的[Linux] shell 学习(四) 分支语句和循环语句1.分支语句2.循环语句的全部内容,希望文章能够帮你解决[Linux] shell 学习(四) 分支语句和循环语句1.分支语句2.循环语句所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复