shell迴圈語句與函式

2021-10-10 12:00:10 字數 1544 閱讀 6941

讀取不同的變數值,用來逐個執行同乙個組命令

for	變數名	in	取值列表

do 命令序列

done

使用for迴圈語句時,需要指定乙個變數以及可能取值的列表,針對每個不同的取值重複執行相同的命令序列,直到變數值用完退出迴圈。在這裡,「取值列表」稱為for語句的執行條件,其中包括多個屬性相同的物件需要預先指定(如通訊錄,ip黑名單)

舉例:

#!/bin/bash

#新增新使用者

ulist=$(

cat/root/users.txt)

for uname in $ulist

doif

[$uname==`grep $uname

/etc/passwd | awk -f: ''` ]

then echo

"姓名重複!"

fiuseradd $uname

echo 123456 | passwd --stdin $uname &> /dev/null

done

重複某個條件只要條件成立則反覆執行

while	條件測試操作

do 命令序列

done

for迴圈語句非常實用與列表物件無規律,且列表**已固定(如某個列表檔案)的場合而對於要求控制迴圈次數,操作物件按數字順序編號,按特定條件執行重複操作等情況,則更適合使用另一種迴圈——while語句

舉例:

#!/bin/bash

#猜**

price=$(

(random%100+1)

)while true

do read -p "請輸入你猜測的**:" int

if[$int

-eq$price

] then echo

"猜對了"

break

elif [

$int

-lt$price

] then echo

"太低了"

else

echo

"太高了"

fidone

重複測試某個條件,只要條件不成立則反覆執行

until	條件測試操作

do 命令序列

done

until迴圈與while迴圈類似,while迴圈能實現的指令碼until同樣也可以實現,但區別是while迴圈在條件為真時連續迴圈,而until則是在條件為假的時候執行迴圈

舉例:

#!/bin/bash

#計算1~100的總和

i=0sum=0

until[$i

-eq 100 ]

do let "i=$i+1"

;let "sum=$sum+$i"

done

echo

"1~100的和是$sum"

函式的作用範圍

函式的引數

引數的表示方法

遞迴函式

教你shell中的迴圈語句與函式

1 建立列表使用者並設定初始密碼123456 bin bash ulist cat root users.txt for uname in ulist doif uname grep uname etc passwd awk f then echo 姓名重複 fiuseradd uname echo...

shell程式設計之迴圈語句與函式(用法)

2.2 while迴圈語句 2.3 continue和break 三 shell函式 四 shell陣列 格式 case 變數值 in 模式1 命令序列1 模式2 命令序列2 預設命令序列 esac 示例 case 控制指令 in start 啟動xx服務 stop 停止xx服務 顯示服務指令碼的用...

shell迴圈語句

一般的迴圈結構 for 變數名 in 列表 do 迴圈體done 迴圈執行機制 依次將列表中的元素賦值給變數名,每次賦值後執行一次迴圈體,直到列表中的元素耗盡,迴圈結束 一般的迴圈結構 while condition do 迴圈體done condition 迴圈控制條件 進入迴圈之前,先做一次判 ...