for語法格式
for var in list;do
commands
done
其中list可以包含:
1) 直接寫
for alpha in a b c d;do2)變數echo $alpha
done
list="a b c d"在shell執行的時候會進行變數替換,上面的list變數替換之後,for迴圈的形式和1中的形式一模一樣。但是如果為$list加上了引號,即如果寫為下面的形式:for alpha in $list;do
echo $alpha
done
list="a b c d"shell變數替換之後為:for alpha in "$list";do
echo $list
done
list="a b c d"這時輸出就只有一行a b c d。for alpha in "a b c d";do
echo $list
done
3)shell命令
for alpha in `cat alpha.txt`;do假設alpha.txt檔案裡面的內容就是a b c d,那麼通過使用``符先將檔案內容讀出,再進行迭代,結果和1一樣echo $alpha
done
4)讀取檔案目錄
for file in $home/a/*;do上面的**先進行萬用字元glob擴充套件,假設目錄a下有2個檔案1.txt, 2.txt,乙個資料夾b,那麼經過擴充套件之後實際為:echo $file
done
for file in $home/a/1.txt $home/a/2.txt $home/a/b;do此時file的值依次為$home/a/1.txt,$home/a/2.txt, $home/a/b。echo $file
done
但是假設a不是乙個目錄,是乙個檔案,此時萬用字元擴充套件會失敗,此時file的值直接就是$home/a/*。
這裡還需要注意的乙個地方是,這裡進行的是shell glob的擴充套件,因此擴充套件的時候不能越過檔案邊界,換句歡說,如果b目錄下面還有檔案,這些檔案是無法擴充套件出來的,即擴充套件無法越過資料夾b
ifsfor迴圈當中,list的被如何分割就是由ifs決定的,預設情形下,ifs的值是:
tab空格
換行你可以重新給ifs賦值,:
ifs=: #此時分隔符為:c風格的for迴圈ifs=:; #此時分隔符為:和;
for (( i = 0; i < 10; i++ ));do
commands
done
這裡的風格和c中一樣,其中的變數i可以是任何變數
while 迴圈
while command;do
commands
done
其中的command可以是shell command,也可以test condition。如果command的返回值為0或者測試成立,則執行,否則不執行。
這裡需要注意的是,while可以使用多個條件,但是只有最後乙個條件起作用:
var=100在這段**中,雖然第乙個條件一開始就不成立,但是起作用的是最後乙個條件,因此,這是乙個無線迴圈while [ $var -lt 0 ];[ $var -gt 0 ];do
echo $var
done
until迴圈
until command;do
commnds
done
和while一樣,唯一不同的是如果command返回0,則不執行,否則就執行
shell shell指令碼實戰 for迴圈
總結前言 迴圈語句常用於重複執行一條命令或一組命令等,直到達到結束條件後,則終止執行。在shell中常見的迴圈命令有while until for和select等 今天我們來 第乙個迴圈語句,for迴圈。for迴圈介紹 for迴圈語句與while迴圈語句類似,但for迴圈語句主要用於有限次的迴圈場景...
python中的while true 迴圈語句
d mima name input 請輸入您的使用者名稱 if name in d password input 請輸入您的密碼 if password in mima print 進入系統 else print 您輸入的密碼錯誤,請重新輸入 else print 您輸入的使用者名稱不正確,請重新輸...
js中while死迴圈語句 js中的迴圈語句
js中的迴圈語句可分為三種 1.while 2.do while 3.for。while的語法為 while exp 裡的語句,然後繼續判斷exp,直到exp的結果為false為止,若exp的結果為false,則跳過這條迴圈語句,執行接下來的 需要注意的是在 裡的語句必須存在對exp的結果產生影響的...