控制流結構 for

2021-08-30 03:54:07 字數 2029 閱讀 5230

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迴圈體中巢狀...