Shell中的迴圈

2021-07-25 07:41:34 字數 2286 閱讀 3503

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...