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
語法結構:
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
語法結構:
unil ... 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"