for 循环语句实战:
- for循环语句主要用于对某个数据域进行循环读取、对文件进行遍历,通常用于需要循环某个文件或者列表。其语法格式以for…do开头,done结尾。语法格式如下:
for 变量名 in (表达式)
do
执行语句
done
for循环语句shell脚本案例如下:
(1)打印www.baidu.com www.jd.com www.taobao.com
#!/bin/bash
#2020年7月22日16:58:03
#for test
#########################
for i in www.baidu.com www.jd.com www.taobao.com
do
echo $i
done
[root@localhost ~]# sh for1.sh
www.baidu.com
www.jd.com
www.taobao.com
(2)循环打印1至100数字,seq表示列出数据范围
#!/bin/bash
#2020年7月22日17:14:06
#########################
for i in `seq 1 100`
do
echo "NUM is $i"
done
[root@localhost ~]# sh for2.sh
NUM is 1
NUM is 2
....
NUM is 99
NUM is 100
(3)for循环求1-100的总和:
#!/bin/bash
#2020年7月22日17:20:45
#auto sum 1 100
#by author xiao yu er
####################################
n=0
for NUM in `seq 1 100`
do
n="$[n+NUM]"
done
echo $n
或者:----------------------
n=0
for ((i=1;i<=100;i++))
do
n=`expr $i + $n`
done
echo $n
或者:------------------
n=0
for i in {1..100}
do
n=`expr $i + $n`
done
echo $n
#验证:
[root@localhost ~]# sh for3.sh
5050
While循环语句实战
- While循环语句与for循环功能类似,主要用于对某个数据域进行循环读取、对文件进行遍历,通常用于需要循环某个文件或者列表,满足循环条件会一直循环,不满足则退出循环,其语法格式以while…do开头,done结尾。语法格式如下:
while (表达式)
do
执行语句1
done
While循环语句Shell脚本编程案例如下:
(1) 循环打印BAT企业官网,read指令用于读取行或者读取变量
#!/bin/bsh
#2020年7月22日19:24:46
#################################
while read LINE
do
echo $LINE
done<ys.txt
vim ys.txt
www.baidu.com
www.jd.com
www.taobao.com
[root@localhost ~]# sh while1.sh
www.baidu.com
www.jd.com
www.taobao.com
(2) While无限每秒输出Hello World:
#!/bin/bash
#2020年7月22日19:30:01
###################################3
while sleep 1
do
echo -e "\033[32mhello world\033[0m"
done
[root@localhost ~]# sh while2.sh
hello world
hello world
hello world
hello world
(3) 循环打印1至100数字,expr用于运算逻辑工具:
#!/bin/bash
#2020年7月22日19:33:32
#################################
i=1
while ((i<=100))
do
echo $i
i=`expr $i + 1`
done
[root@localhost ~]# sh while3.sh
1
2
3
...
100
(4) While循环求1-100的总和:
#!/bin/bash
###########################
i=1
j=0
while ((i<=100))
do
j=`expr $i + $j`
((i++))
done
echo $j
[root@localhost ~]# sh while4.sh
5050
循环中断及退出
exit:退出脚本
break:退出循环,继续执行循环之后的任务
continue:退出当前循环,继续下一次循环
例1
#!/bin/bash
#2020年7月23日21:44:01
################################
#打印1到10当打印5时跳过5打印6
for i in `seq 1 10`
do
if [ $i -eq 5 ];then
continue
fi
echo $i
done
echo "Hello World!!! "
或者:---------------------------
#!/bin/bash
#2020年7月23日21:48:10
###############################
i=0
while ((i<10))
do
i=`expr $i + 1`
if [ $i -eq 5 ];then
continue
fi
echo $i
done
echo "Hello World!!! "
[root@localhost 2020-07-23]# sh for1.sh
1
2
3
4
6
7
8
9
10
Hello World!!!
例2:
#!/bin/bash
#2020年7月23日21:48:10
###############################
i=0
while ((i<10))
do
i=`expr $i + 1`
if [ $i -eq 5 ];then
break 这里是输出的5就退出循环
fi
echo $i
done
echo "Hello World!!! "
[root@localhost 2020-07-23]# sh while1.sh
1
2
3
4
Hello World!!!
从这里可以看得出来输出4时退出循环然后输出hello world
例3:
#!/bin/bash
#2020年7月23日21:48:10
###############################
i=0
while ((i<10))
do
i=`expr $i + 1`
if [ $i -eq 5 ];then
exit 这里是输出的5就退出脚本
fi
echo $i
done
echo "Hello World!!! "
[root@localhost 2020-07-23]# sh while1.sh
1
2
3
4