Shell 의 for 와 while 순환 에 대한 상세 한 요약

순환
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
2.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
3.순환 제어 문

# break break .
# continue ,

좋은 웹페이지 즐겨찾기