程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 更多關於編程 >> Shell中的for和while循環詳細總結

Shell中的for和while循環詳細總結

編輯:更多關於編程

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

      一、for循環

      1.數字段形式

      代碼如下:

      for i in {1..10}

      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. '{print $1}'`

      echo $name

      done

      4.查找循環(ls數據量太大的時候也可以用這種方法)

      代碼如下:

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

      do

      name=`echo "$shname" | awk -F/ '{print $2}'`

      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 命令是程序在本循體內忽略下面的語句,從循環頭開始執行

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved