shell 程式設計 for迴圈

2021-10-01 18:48:12 字數 3897 閱讀 7659

for迴圈和while迴圈類似,但是for主要用於執行次數有限的迴圈,而不是守護程序和無限迴圈。for語常見的語法有兩種,下面是例子:

第一種是for為變數取值型,語法如下:

for 變數名 in 變數取值列表

do 指令

done

for 變數名 in 變數取值列表;do

指令done

此語法我們稱之為c語言型for迴圈語句,其語法結構如下:

for((exp1;exp2;exp3))

do 指令

done

for關鍵字後的雙括號內是三個表示式,第乙個是變數初始化(例如:i=0),第二個為變數的範圍(例如:i<100),第三個為變數自增或自減(例如:i++)

for n in `seq 10`;do

touch `openssl rand -hex 10 | cut -c 1-10`_oldchang.html

done

執行結果

[root@shell ~/html]# sh html.sh

[root@shell ~/html]# ls

213cbf897a_oldchang.html 717e95ca97_oldchang.html ba301f9c67_oldchang.html e6d8e4b6a0_oldchang.html

288109aaa5_oldchang.html 73f570e1fe_oldchang.html c9f7206526_oldchang.html html.sh

47cdb14eee_oldchang.html 953d2d26c4_oldchang.html d3e4a618ef_oldchang.html

2、 使用for迴圈,將上面檔名中的oldchang改為oldduan,並將副檔名全部大寫,使用三種方法

for file in `ls`;do

mv $file $_oldduan.html

done

執行結果

[root@shell ~/html]# sh mv.sh

[root@shell ~/html]# ls

213cbf897a_oldduan.html 717e95ca97_oldduan.html ba301f9c67_oldduan.html e6d8e4b6a0_oldduan.html

288109aaa5_oldduan.html 73f570e1fe_oldduan.html c9f7206526_oldduan.html html.sh_oldduan.html

47cdb14eee_oldduan.html 953d2d26c4_oldduan.html d3e4a618ef_oldduan.html

還可使用

ls |awk -f'_' ''|bash

rename "oldchang.html" "oldduan.html" *.html

3、 使用for迴圈和if,篩選出以下單詞中字元數大於等於6的單詞:i am teacher oldchang and i like eating and sleeping

for n in $1;do                        

if [ "$" -gt 6 ];then

echo $n

fidone

執行結果

[root@shell ~/html]# sh   danchi.sh 'i am teacher oldchang and i like eating and sleeping'

teacher

oldchang

sleeping

還可用使用

[root@shell ~/html]# echo $

8[root@shell ~/html]# echo $a|wc -l

8[root@shell ~/html]# expr length $a

8[root@shell ~/html]# echo $a|awk ''

8

4、 for迴圈列印99乘法表

for ((a=1;a<=9;a++));do

for ((n=1;n<=$a;n++));do

let mun=$a*$n

echo -en "$a*$n=$mun\t"

done

echo

done

執行結果

[root@shell /server/scripts]# sh chengfabiao2.sh

1*1=1

2*1=2 2*2=4

3*1=3 3*2=6 3*3=9

4*1=4 4*2=8 4*3=12 4*4=16

5*1=5 5*2=10 5*3=15 5*4=20 5*5=25

6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36

7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49

8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64

9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81

for ((a=9;a>=1;a--));do       

for ((n=1;n<=$a;n++));do

let mun=$a*$n

echo -en "$a*$n=$mun\t

done

echo

done

執行結果

[root@shell /server/scripts]# sh chengfabiao2.sh

9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81

8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64

7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49

6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36

5*1=5 5*2=10 5*3=15 5*4=20 5*5=25

4*1=4 4*2=8 4*3=12 4*4=16

3*1=3 3*2=6 3*3=9

2*1=2 2*2=4

1*1=1

1、 給出乙個網段,如10.0.0.0/24,如何判斷網段內的所有ip是否能聯通

for ((a=0;a<=254;a++));do

&

done

wait

{}的作用是把指令碼放在後台.!wait 是指令碼執行完自己退出指令碼

執行結果

[root@shell ~/html]# sh ping.sh

10.0.0.7

shell程式設計 for迴圈

列表迴圈 1.已知次數 語法 用花括號定義迴圈次數 for variable in do command command done for variable in a b c do command command done 案例 輸出1到5 for i in doecho idone 列印1到50的...

shell程式設計 迴圈

二 shell迴圈 while until 三 expect for i in do useradd user i done bin bash ping ip.txt 清空記錄文字 for i in do 後台執行 done wait 等待前乙個程式執行完畢。在執行下乙個命令。echo finish...

shell指令碼程式設計 迴圈(for迴圈)

知識回顧 建立shell指令碼規則 執行指令碼 變數測試 運算if 單分支 雙分支 多分支 例項 剪刀石頭布 檢測主機是否存活 判斷成績 迴圈 for while case 分支編寫 學習shell注意 shell是一門只針對於linux的指令碼語言 知識放空 重點是學習語法結構 for迴圈 語法結...