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."
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."
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
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"
查询shell脚本错误方式
sh[-nvx] scripts.sh
-n 不执行脚本
–v 执行脚本前把其内容输出到屏幕上
-x 跟踪脚本执行
作业(当堂提交)
利用shell脚本实现前1000个数的和的求解。
修改 【for …do…done的数值处理】部分的脚本,跳过数字里面包含3的,然后求和。
说明:
$i == *3* #代表第i个数字里包含3