for迴圈
for 變數名 in 列表
do命令 1
命令 2
done
當變數值在列表裡,for迴圈即執行一次所有命令,使用變數名訪問列表中取值。命令可為任何有效的shell命令和語句。變數名為任何單詞。in列表用法是可選的,如果不用它, for迴圈使用命令列的位置引數。in列表可以包含替換、字串和檔名,下面看一些例子。
/home/l/g/tomotoboy/for >cat fortest
#!/bin/sh
#for_i
for loop in 1 2 3 4 5 6
doecho $loop
done
#forlist
for loop in "orange red blue grey"
doecho $loop
done
#forls
for loop in `ls`
doecho $loop
done
#forparam
for params
doecho "you supplied $params as command line option"
echo $params
done
for params in "$@"
doecho "you supplied $params as command line option"
echo $params
done
#forcommand
for loop
dofind `pwd` -name $loop -print
done
/home/l/g/tomotoboy/for >fortest fortest12
3456
orange red blue grey
fortest
you supplied fortest as command line option
fortest
you supplied fortest as command line option
fortest
使用for迴圈連線伺服器
因為for迴圈可以處理列表中的取值,現設變數為網路伺服器名稱,並使用for迴圈連線每一伺服器。
done多檔案轉換
匹配所有以.sed結尾檔案並將其轉換為大寫。這裡使用了 l s和cat命令。l s用於查詢出相關檔案,cat用於將之管道輸出至trr命令。目標擴充套件名為.uc,注意在for迴圈中使用l s命令時反引號的用法。
多sed刪除操作
下面的例子中,sed用於刪除所有空檔案,並將輸出導至以 . hold.為副檔名的新檔案,mv將這些檔案移至初始檔案中。
#!/bin/sh
#forsed
for files in `ls *.sed`
dosed -e "/^$/d" $files > $files.hold
mv $files.hold $files
done
迴圈計數
前面討論expr時指出,迴圈時如果要加入計數,使用此命令。下面使用 l s在for迴圈中列出檔案及其數目。
/home/l/g/tomotoboy >cat forcount
#!/bin/sh
#forcount
count=0
for files in *
docount=`expr $count + 1`
done
echo "there are $count files in `pwd` we need to process"
控制流結構
1.if then else 語句 if 條件1 then 命令1 elif 條件2 then 命令2 else 命令3 fiif語句必須以單詞fi終止,elif 和 else為可選項。簡單的if語句 if 條件 then 命令 fi使用if語句時,then必須在新行,否則會產生錯誤,如果不分行,必...
shell指令碼中的控制流結構
控制結構包括 流控制和迴圈 流控制 if then else,測試結果或者為真 0 或者為假 1 迴圈 for until while 一 if then else 語句 格式 if 條件1 then命令1 elif條件2 then 命令2 else 命令3 fi 簡單的格式 if 條件 then ...
python控制流教程 python控制流
1.if.elif.else 語法 if 判斷條件 語句.elif 判斷條件 語句.else 語句.elif語句可以有0個或多個 2.while和for迴圈 while 判斷條件 語句.for iterating var in sequence statements s 可以在while迴圈體中巢狀...