linux的while 循环和 for 循环代码实例介绍,linuxwhile


script中有三种循环,也可以分成两类循环,分别是 while 循环和 for 循环。

1、while 循环

while循环中有分为两种循环,分别是whiel do done和until do done两种

while [ condition ]  #condition左右两侧有空格
do                   #循环开始
    程序段
done 

当condion 满足条件时,即是为真实循环继续,条件不满足时跳出循环

until [ condition ]
do 
    程序段
done

until do done的方式与while的方式正好相反,当condition条件成立时,跳出循环,否则持续进行

#!/bin/bash
#program:
#       This program shows "Hello World!" in your screen
#History:
#205/08/3 rhx First Release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

s=0
i=1
while [ "$i" != "100" ]
do 
    i=$(($i+1))
	s=$(($s+$i))
done
echo "The result of '1+2+3+...+100' is --> $s"

注意:数值运算上,var=$((运算内容))

前100个数求和:

\

2、for循环

for var in con1 con2 con3 ...
do   
    程序段
done
#!/bin/bash
#program:
#       This program shows "Hello World!" in your screen
#History:
#205/08/3 rhx First Release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

s=0
i=0
for i in $(seq 1 100)
do 
    i=$(($i+1))
	s=$(($s+$i))
done
echo "The result of '1+2+3+...+100' is --> $s"

\

注意:这里的 (seq 1 100) 表示sequence序列

for 循环对数值的处理

内层括号条件左右两侧没有必须要求有空格,但是书写脚本的时候尽量左右两侧加上空格

for (( initialvalue; limitvalue;step ))
do 
    程序段
done
#!/bin/bash
#program:
#       This program shows "Hello World!" in your screen
#History:
#205/08/3 rhx First Release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

nu=100
i=0
for (( i=1;i<=$nu;i=i+1))
do 
	s=$(($s+$i))
done
echo "The result of '1+2+3+...+100' is --> $s"

\

3、shell追踪与调试

shell在执行之前,最担心的是出现语法错误,如何调试呢?

[root @loacalhost ~]#sh [-nvx] scripts.sh

参数解析:

-n 不执行script,仅仅检查语法的问题

-v 在执行script之前,先将script的内容输出到屏幕上

-x 将使用到的script内容显示到屏幕上,这个是很有的参数

[root @loacalhost ~]#sh [-nvx] scripts.sh

\

相关内容