for、while、until之循环语句、break、continue两个特殊循环
一、for语句的结构
1.1、语法结构
读取不同的变量值,用来逐个执行同一组命令
语句结构:
for 变量名 in 取值列表
do
命令序列
done
for循环的过程就是遍历的过程
(1)遍历:
遍历(Traversal),是指沿着某条搜索路线,依次对树(或图)中每个节点均做一次访问
1.2、取值方法
for i in {1. .10} {1..10..2}
$(seq 1 10) $(seq 1 2 10)
for ((i=1; i<=10; i++)) ( (i=1; i<=10; i+=2) )
do
echo $i
done
for ((i=1; i<=10; i++) ) ;do echo $i;done
第一种取值方法
第二种取值方法
从文件中取值的方法:
二、while循环语句
while语句结构
重复测试某个条件,只要条件成立则反复执行
三、untli循环语句
until语句的结构
重复测试某个条件,只要条件不成立则反复执
until 条件测试操作
do
命令序列
done
举例1:使用until循环语句进行1-100的所有的整数的和的计算
[root@localhost ~]#vim test8.sh
#!/bin/bash
a=1
sum=0
until [ $a -gt 100 ] #反向思维,成立时退出,不成立时继续
do
sum=$[$sum+$a]
let a++
done
echo $sum
[root@localhost ~] #sh test8.sh
5050
举例1:使用until循环语句进行1-100的所有的整数的和的计算
[root@localhost ~]#vim test8.sh
#!/bin/bash
a=1
sum=0
until [ $a -gt 100 ] #反向思维,成立时退出,不成立时继续
do
sum=$[$sum+$a]
let a++
done
echo $sum
[root@localhost ~]#sh test8.sh
5050
四、continue和break
4.1、break和continue的区别和作用
break和continue都是用来控制循环结构的,主要是停止循
(1)、break
有时候我们想在某种条件出现的时候终止循环而不是等到循环条件为false才终止。
这时我们可以使用break来完成。break用于完全结束一个循环,跳出循环体执行循环后面的语句。
(2)、continue
continue和break有点类似,区别在于continue只是终止本次循环,接着还执行后面的循环,break则完全终止循环。
可以理解为continue是跳过当次循环中剩下的语句,执行下一次循环
4.2、break
1、break语句:
break语句用于终止整个循环的执行。
2、语法
break
将用于以下break语句退出循环:
break n
这里n指定的第n个封闭的循环退出
例子:
只要一变为5循环就终止:
[root@localhost ~#vim test9.sh
#!/bin/sh
a=0
while [ $a -lt 10 ]
do
echo $a
if [ $a -eq 5 ]
then
break
fi
a=`expr $a + 1`
done
[root@localhost ~#sh test9.sh #结果在5时结束
0
1
2
3
4
5
五、echo 相关的转义符
echo -n 表示不换行输出
echo -e 输出转义符,将转义后的内容输出到屏幕上
常用转义符:
\b 转义后相当于按退格键(backspace) ,但前提是"b"后面存在字符; "\b"表示删除前一个字符, "\bb"表示删除前两个字
符。
\c 不换行输出,在"\c"后面不存在字符的情况下,作用相当于echo-n;但是当"\c"后面仍然存在字符时, "\c"后面的字符将不会
被输出。
\n 换行,被输出的字符从"\n"处开始另起一行
\f 换行,但是换行后的新行的开头位置连接着上一行的行尾;
\v 与\f相同
\t 转以后表示插入tab,即横向制表符;
\r 光标移至行首,但不换行,相当于使用"\r"以后的字符覆盖"1r"之前同等长度的字符;但是当"r"后面不存在任何字符时,
"\r"前面的字符不会被覆盖
\\ 表示插入""本身: