while…do…done(不定循环)

语法:

while [判断式]

do #do是循环的开始

程序段

done #done是循环的结束

语法解释:当条件满足时,进入循环,直到条件不满足结束。

例子:

#!/bin/bash
while [ "$yn" != "y" -a "$yn" != "Y" ]
do
    read -p "Please input y/Y to stop this program:" yn
done
echo "OK! your input the correct answer."


循环语句(Linux网络服务器 25)_数据库

until…do…done(不定循环)

语法:

until [判断式]

do #do是循环的开始

程序段

done #done是循环的结束

语法解释:当条件满足时,终止循环,否则持续进入循环,运行程序段。

例子:

#!/bin/bash
until [ "$yn" == "y" -o "$yn" == "Y" ]
do
    read -p "Please input y/Y to stop this program:" yn
done
echo "OK! your input the correct answer."


循环语句(Linux网络服务器 25)_bash_02

for …in…do…done(固定循环)

语法:

for i in con1 con2 con3 ……

do #do是循环的开始

程序段

done #done是循环的结束

语法解释:第一次循环i的内容为con1,第二次i的内容是con2,……

例子:

#!/bin/bash
for animal in dog cat elephant panda
do
    echo "There are ${animal}s..."
done


循环语句(Linux网络服务器 25)_服务器_03

for …do…done的数值处理

语法:

for ((初始值;限制值;执行步长))

do #do是循环的开始

程序段

done #done是循环的结束

初始值:某个变量再循环当中的起始值,直接以类似i=1的方式设置好;

限制值:当变量的值在这个限制值的范围内时,继续执行循环,如i<100;

执行步长:每执行一次循环变量的变换量,如i=i+1,步长为1。

例子:

#!/bin/bash
read -p "please input a number:" nu
sum=0
for ((i=1;i<=$nu;i=i+1))
do
    if [ "$i" == "10" -o "$i" == "20" ];then
        continue
    fi
    sum=$(($sum+$i))
done
echo "the sum  of first  $nu is: $sum"


循环语句(Linux网络服务器 25)_数据库_04

查询shell脚本错误方式
sh[-nvx] scripts.sh

-n 不执行脚本

–v 执行脚本前把其内容输出到屏幕上

-x 跟踪脚本执行

作业(当堂提交)
利用shell脚本实现前1000个数的和的求解。
修改 【for …do…done的数值处理】部分的脚本,跳过数字里面包含3的,然后求和。

说明:

$i == *3* #代表第i个数字里包含3