一、for迴圈 語法一 for 變數 in 值1 值2 值3... do 程式 done 註:多個值之間只要“有空”,不只是空格,換行符、製表符等都行,比如讀取文件時,可以自動遍歷每一行。 示例1:遍歷固定的某些項 #!/bin/bash for time in morning noon after ...
一、for迴圈
語法一
for 變數 in 值1 值2 值3... do 程式 done
註:多個值之間只要“有空”,不只是空格,換行符、製表符等都行,比如讀取文件時,可以自動遍歷每一行。
示例1:遍歷固定的某些項
#!/bin/bash for time in morning noon afternoon evening do echo "This time is $time !" done
遍歷某個變數中的值
#!/bin/bash #解壓lamp目錄下的所有tar.gz壓縮包 cd /lamp ls *.tar.gz > ls.log for i in $(cat ls.log) do tar -zxf $i $> /dev/null done rm -rf /lamp/ls.log
語法二
for (( 初始值;迴圈控制條件;變數變化 )) do 程式 done
註:執行流程為,先運行“初始值”語句,然後執行迴圈體一次,然後執行“變數變化”語句,然後判斷是否符合“迴圈控制條件”,如果符合則繼續執行,否則退出for迴圈。
示例:
#!/bin/bash s=0 for (( i=1;i<=100;i=i+1 )) do s=$(( $s+$i )) done echo "The sum of 1+2+...+100 is: $s"
二、while迴圈
語法:
while [ 條件判斷式 ] do 程式 done
只要判斷式成立,迴圈就會一直繼續運行。
執行順序為,先判斷“條件判斷式”是否成立,如果成立則執行迴圈體,執行完後再次判斷“條件判斷式”,依次類推,直到”條件判斷式“不成立時退出迴圈。
示例:
#!/bin/bash i=1 s=0 while [ $i -le 100 ] do s=$(( $s+$i )) i=$(( $i+1 )) done echo "The sum is: $s"
三、until迴圈
語法:
until [ 條件判斷式 ] do 程式 done
與while迴圈正好相反,當條件判斷式成立時則退出迴圈。
執行順序為,先判斷“條件判斷式”是否成立,如果不成立則執行迴圈體,執行完後再次判斷“條件判斷式”,依次類推,直到”條件判斷式“成立時退出迴圈。
示例:
#!/bin/bash i=1 s=0 while [ $i -gt 100 ] do s=$(( $s+$i )) i=$(( $i+1 )) done echo "The sum is: $s"