Shell中的for和while迴圈詳細總結

2021-08-06 07:15:26 字數 2142 閱讀 7210

shell中的for和while迴圈詳細總結

這篇文章主要介紹了shell中的for和while迴圈詳細總結,本文講解了for迴圈的數字段形式、詳細列出、對檔案進行迴圈,while迴圈的三種使用場合等內容,需要的朋友可以參考下

一、for迴圈

1.數字段形式

複製**

**如下:

for i in do

echo $i

done

2.詳細列出(字元且項數不多)

複製**

**如下:

for file in 1 2 3 4 5 

do echo $file 

done

3.對存在的檔案進行迴圈

複製**

**如下:

for shname in `ls *.sh`

do name=`echo "$shname" | awk -f. ''`           

echo $name

done

4.查詢迴圈(ls資料量太大的時候也可以用這種方法)

複製**

**如下:

for shname in `find . -type f -name "*.sh"`

do name=`echo "$shname" | awk -f/ ''`          

echo $name

done

5.((語法迴圈--有點像c語法,但記得雙括號

複製**

**如下:

for((i=1;i<100;i++)) do

if((i%3==0))

then

echo $i

continue fi

done

6.seq形式 起始從1開始

複製**

**如下:

for i in `seq 100` do

if((i%3==0))

then

echo $i

continue fi

done

二、while迴圈

1.while迴圈注意為方括號,且注意空格

複製**

**如下:

min=1

max=100

while [ $min -le $max ] do

echo $min

min=`expr $min + 1`

done  

2.雙括號形式,內部結構有點像c的語法,注意賦值:i=$(($i+1))

複製**

**如下:

i=1

while(($i<100)) do

if(($i%4==0))

then

echo $i fi

i=$(($i+1))

done

3.從配置檔案讀取,並可以控制程序數量

複製**

**如下:

max_run_num=8

cat cfg/res_card_partition.cfg |grep -v '^$'|grep -v "#" | grep -v grep |while read partition 

do        

nohup sh inv_res_card_process.sh $partition >log/rescard$partition.log 2>&1 &               

while [ 1 -eq 1 ] do

psnum=`ps -ef | grep "inv_res_card_process" | grep -v "grep" | wc -l`

if [ $psnum -ge $max_run_num ]

then

sleep 5

else

break

fi                                        

done                

done

三.迴圈控制語句 

複製**

**如下:

# break 命令不執行當前迴圈體內break下面的語句從當前迴圈退出. 

# continue 命令是程式在本循體內忽略下面的語句,從迴圈頭開始執行

shell指令碼 迴圈的使用(for和while)

迴圈往往使用兩種,for迴圈和while迴圈。1 for迴圈 bin bash for迴圈的使用方式 方式一 for i in seq 10 do echo hello i done 方式二 for j in a b c d do echo world j done 方式三 for k 1 k 10...

Python入門筆記 迴圈for和while

while 迴圈 在給定的判斷條件為 true 時執行迴圈體,否則退出迴圈體。for 迴圈 重複執行語句 巢狀迴圈 你可以在while迴圈體中巢狀for迴圈 break 語句 在語句塊執行過程中終止迴圈,並且跳出整個迴圈 continue 語句 在語句塊執行過程中終止當前迴圈,跳出該次迴圈,執行下一...

shell中的 , 和 的使用

假設我們定義了乙個變數為 file dir1 dir2 dir3 my.file.txt 可以用 分別替換得到不同的值 刪掉第乙個 及其左邊的字串 dir1 dir2 dir3 my.file.txt 刪掉最後乙個 及其左邊的字串 my.file.txt 刪掉第乙個 及其左邊的字串 file.txt...