0. 循环(loop)
今天,终于学习到循环啦~什么是循环?
循环 可以不断的执行某个程序段落,直到用户设定的条件达成为止。
而根据循环的次数是否固定,又可以分为不定循环和固定循环,这篇文章里学习while do done
和 until do done
两种不定循环。
1. while do done
1.1 认识 while do done
while do done
功能直译就是:
当condition条件成立时,就进行循环,直到condition的条件不成立才停止
-
while do done
语法结构:
1.2 while do done 实战
~~还是通过一些实例来理解吧~~
- shell 撰写要求:
-- 要让使用者输入yes 或 YES 才结束程序的执行,否则就一直告知用户输入字符串
-- 使用while do done
语法
-- shell 命名yes_to_stop.sh
vi yes_to_stop.sh
输入如下代码:
#!/bin/bash
while [ "${input}" != "YES" -a "${input}" != "yes" ] # -a指 and
do
read -p "Please input "YES" or “yes” to stop this program:" input
done
echo "OK! you input the correct answer."
2. Until do done
2.1 认识 Until do done
Until do done
功能直译:
当condition条件成立时,就终止循环,而若condition不成立,便持续循环得执行程序段
-
Until do done
语法结构:
2.2 Until do done
实战
使用 Until循环写yes_to_stop.sh,命名为yes_to_stop-2.sh
vi yes_to_stop-2.sh
写入如下代码:
#!/bin/bash
until [ "${input}" = "YES" -o "${input}" = "yes" ] # -o指or
do
read -p "Please input "YES" or "yes" :" input
done
echo "great, you are right"
3.利用循环做数值运算
计算1+2+3 ... +100的总和 ,这里使用while循环
vi cal_1_100.sh
输入如下代码:
#!/bin/bash
s=0 # 这是加总的数值变数
i=0 # 这是累计的数值,亦即是 1,2,3 ...
while [ "${i}" != "100" ]
do
i=$(($i+1)) #每次i都会增加1
s=$(($s+$i)) #每次都会加总一次
done
echo "The result of '1+2+3+...+100' is ==> $s"