for 變數名 in 列表
do 命令1
命令2done
當變數值在列表裡,for迴圈即執行依次所有命令,使用變數名訪問列表中取值。
命令可為任何有效的shell命令和語句。變數名為任意單詞。
in 列表 用法是可選擇,如果不用它,for迴圈使用命令列的位置引數。
in 列表 可以包含替換($)、字串和檔名
#!/bin/bash
for i in12
345do
echo
$idone
#!/bin/bash
for i in
"aaa bbb ccc "
#只是乙個值,只有一次迴圈
doecho
$idone
echo
"你看出來效果不一樣了嗎"
#是三個值的集合。三次迴圈
for i in aaa bbb ccc
doecho
$idone
#!/bin/bash
for loop in `cat myfile`
doecho
$idone
注意 :* in後為 命令 反引號
* 列印檔案內容按照 行+空格 為一行
#!/bin/bash
#for_noin03.sh
i=1j=1
k=1for param
doecho
"param i #$ j #$ k #$ is $param"
i=$[ $i + 1 ]//中括號四則運算
j=$(expr $j + 2)//expr表示式需要用單反引號或者$()四則運算
k=$((k + 3))//雙小括號四則運算
done
while 命令 (可以是乙個命令也可以是多個,做條件測試)
do 命令1
命令2...done
注:在while和do之間雖然通常是乙個命令,但可以放幾個命令。多個命令之間用分號隔開!命令通常用作測試條件。
#!/bin/bash
#while01
echo
"ctrl+d quit"
while
echo -n "please enter you name:"; read name
doecho
"yeah, you name: $name";
done
#!/bin/bash
#while02
while
read line
doecho
$line
done
< names.txt
注意:如果從檔案中讀入變數,do
命令1命令2
done
條件可以為任意測試條件,測試發生在迴圈末尾,因此迴圈至少執行一次。
#!/bin/sh
#until_mom 監控分割槽
part="/backup"
look_out=`df | grep "$part" | awk '' | sed 's/%//g' `
echo
$look_out;
until [ "$look_out"
-gt"90" ]
doecho
-e"filesystem $part is nearly full " | mail root
look_out=`df | grep "$part" | awk '' | sed 's/%//g' `
sleep 3600
done
#!/bin/bash
#until_mom 枷鎖檔案
until [ ! -f a.lock ]
doecho
"check a.lock exist"
sleep 2
done
echo
注意:continue命令類似於break命令,只有一點重要差別,它不會跳出迴圈,只是跳出這個迴圈步驟!
總結:break跳出 continue跳過
Shell中的迴圈
工作中,我們經常會有重複進行某乙個動作的需求。有的需求是知道重複某個操作多少次,有的是不知道需要重複多少次。所以我們需要根據不同的需求來判斷到底需要使用哪種迴圈控制語句,主要包含 for迴圈,while迴圈,until迴圈。以下一次進行說明。一.until迴圈 until迴圈主要寫法如下,說明 當c...
shell中的迴圈
例如 for i 1 i 10 i do echo expr i 4 done 將1到10,依次乘以4,然後列印出來。這裡順便提一下,shell裡面表示式的計算,可以有其他形式 for i 1 i 10 i do echo i 4 done for i 1 i 10 i do echo i 4 do...
shell中的迴圈結構
shell中的迴圈結構有 for,while和until while和until的語法結構 設計思路基本一致,因此歸為一類討論 for for迴圈有兩種形態 1.列表形態,形如 for var in varlist do command 1 command n done 其思路是 用var依次讀取v...