for 迴圈用法

來源:互聯網
上載者:User

標籤:for 迴圈用法


for迴圈結構

文法1、

for 變數名 in 變數取值列表

do

指令集

done

提示:在此結構中“in 變數取值列表 ”可省略,省略時相當於in “[email protected]” 使用for i 就相當於使用 for i in "[email protected]" 

=========================

文法2、 類似C語言

for ((運算式1;運算式2;運算式3))

do

指令集

done


其中運算式1是初始變數

運算式2是條件,如果這個條件成立就,執行迴圈指令集

運算式3是對錶達式2的變數等進行操作,如自增,自減等

=========================


範例1. 輪詢列印下面名稱

[[email protected] 03]# cat for.sh                         |||                                    

#!/bin/sh                                          |||                                    

for i in lvnian01 lvnian02 lvnian03 lvnian04       |||                                    

do                                                 |||                                    

echo $i                                            |||                                    

done                                               |||                                    

[[email protected] 03]# sh for.sh                          |||                                    

lvnian01                                           |||                                    

lvnian02                                           |||                                    

lvnian03                                           |||                                    

lvnian04                                           |||                                    

[[email protected] 03]#                                    |||                                    

===========================                        |||    

[[email protected] 03]# cat for.sh 

#!/bin/sh

for i in `seq 10 20 100`

do

echo $i

done

##seq 上面的 第一個數字是初始值,第二個是間隔,第三個最大值,意思是從10開始輸出,輸出間隔為20,輸出的最大值不能超過100

[[email protected] 03]# sh for.sh  

10

30

50

70

90

[[email protected] 03]#                                

##################################################

範例2.開發指令碼實現進設定開機自啟動sshd rsyslog crond network sysstat等服務。

[[email protected] 03]# cat for.sh       

#!/bin/sh

for a in `chkconfig --list|awk ‘{print $1}‘`

do

 /sbin/chkconfig $a off

/sbin/chkconfig --list $a

done

for i in sshd rsyslog crond network sysstat

do

/sbin/chkconfig $i on

/sbin/chkconfig --list $i

done

[[email protected] 03]# sh for.sh       

abrt-ccpp       0:off   1:off   2:off   3:off   4:off   5:off   6:off

abrt-oops       0:off   1:off   2:off   3:off   4:off   5:off   6:off

abrtd           0:off   1:off   2:off   3:off   4:off   5:off   6:off

acpid           0:off   1:off   2:off   3:off   4:off   5:off   6:off

......

......

sshd            0:off   1:off   2:off   3:off   4:off   5:off   6:off

svnserve        0:off   1:off   2:off   3:off   4:off   5:off   6:off

sysstat         0:off   1:on    2:off   3:off   4:off   5:off   6:off

udev-post       0:off   1:on    2:off   3:off   4:off   5:off   6:off

sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off

rsyslog         0:off   1:off   2:on    3:on    4:on    5:on    6:off

crond           0:off   1:off   2:on    3:on    4:on    5:on    6:off

network         0:off   1:off   2:on    3:on    4:on    5:on    6:off

sysstat         0:off   1:on    2:on    3:on    4:on    5:on    6:off

[[email protected] 03]# 

#######################################

範例3 

求1+2+3+..+100和1+2+3+..+n之和

[[email protected] 03]# cat for.sh 

#!/bin/sh

for i in `seq 100`

do

let sum=sum+i

done

echo $sum

echo "=================="


for ((i=1;i<=$1;i++))

do

let sum1=sum1+i

done

echo $sum1

[[email protected] 03]# sh for.sh 10

5050

==================

55

[[email protected] 03]# 

#######################################

範例4 

批量在data目錄下處理10個檔案 touch1-10 

[[email protected] 03]# cat for.sh 

#!/bin/sh

[ ! -d ./data ] && mkdir ./data -p && cd ./data

for i in `seq 10`

do

 touch lvnian$i

done

[[email protected] 03]# 

====

[[email protected] 03]# ls          

for.sh  for01.sh  for02.sh  for03.sh  for04.sh  ran.sh  ziqidong.sh

[[email protected] 03]# sh for.sh 

[[email protected] 03]# ls 

data  for.sh  for01.sh  for02.sh  for03.sh  for04.sh  ran.sh  ziqidong.sh

[[email protected] 03]# ls data/

lvnian1  lvnian10  lvnian2  lvnian3  lvnian4  lvnian5  lvnian6  lvnian7  lvnian8  lvnian9

[[email protected] 03]#


#######################################

範例5

把上面的檔案名稱lvnian全部修改成xiaogao

[[email protected] 03]# cat for.sh 

#!/bin/sh

cd ./data

for i in `ls ./`

do

 mv $i  `echo $i | sed ‘s/lvnian/xiaogao/‘`

done


[[email protected] 03]# ls data/

lvnian1  lvnian10  lvnian2  lvnian3  lvnian4  lvnian5  lvnian6  lvnian7  lvnian8  lvnian9

[[email protected] 03]# sh for.sh 

[[email protected] 03]# ls data/  

xiaogao1  xiaogao10  xiaogao2  xiaogao3  xiaogao4  xiaogao5  xiaogao6  xiaogao7  xiaogao8  xiaogao9

[[email protected] 03]# 


#######################################

範例6

大量建立N個系統使用者使用者為user1-N,N是傳參,你需要多少個使用者N就是多少。密碼是隨機的10位任一字元。把帳號和密碼放在user.log檔案中

[[email protected] 03]# cat for.sh 

#!/bin/sh

num=$1

for n in `seq $num`

do

useradd user${n}

lvnian=`cat /dev/urandom |head -1|md5sum |cut -c 11-20 `

echo lvnian | passwd --stdin user${n}

echo "user${n} : --------------> $lvnian" >> user.log

done

[[email protected] 03]#

[[email protected] 03]# cat user.log 

user1 : --------------> a1c15b266d

user2 : --------------> c4fc6b0c66

user3 : --------------> 22bd804b11

user4 : --------------> 8f1313bfa8

user5 : --------------> 0f14a7eba1

user6 : --------------> 1aa00f757f

user7 : --------------> eb7feb075e

user8 : --------------> fc8336e658

user9 : --------------> 24748ac3bf

user10 : --------------> 3b7f6ca3f0

#######################################






本文出自 “奮鬥吧” 部落格,請務必保留此出處http://lvnian.blog.51cto.com/7155281/1701474

for 迴圈用法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.