条件判断
单分支:
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
循环结构
- 当型结构:for循环,while循环
- 直到型结构:until循环
for循环
- 列表for循环
- 不带列表的for循环
- 类似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