셸 프로 그래 밍 (3) - for 순환, while 순환, break, continue, exit
순환
일련의 명령 을 반복 해서 실행 하 는 것 은 프로 그래 밍 에서 흔히 볼 수 있다.일반적으로 특정한 조건 에 도달 할 때 까지 명령 을 반복 해 야 합 니 다. 예 를 들 어 특정한 디 렉 터 리 에 있 는 모든 파일, 시스템 에 있 는 모든 사용자 또는 특정한 텍스트 파일 의 모든 줄 을 처리 해 야 합 니 다.
흔히 볼 수 있 는 두 가지 순환 은 스 크 립 트 에서 보편적으로 사용 된다.
for 순환 while 순환
문법: for 변수 이름 in 조건;do …; done
for var in list
do
commands
done
list ,
예제 1: for 순환 으로 1 - 100 의 구 화 를 작성 합 니 다.
생각:
[root@xavi ~]# !vim
vim sum01.sh
#!/bin/bash
sum=0
for i in `seq 1 100`
do
sum=$[ $sum+$i ]
echo $i
done
echo $sum
예제 2: 디 렉 터 리 나 파일 을 옮 겨 다 니 기
#!/bin/bash
cd /etc/ // , , ,
for a in `ls /etc/` // /etc
do
if [ -d $a ] //
then
ls -d $a // , +
fi
done
[root@xavi ~]# !vim
vim for02.sh
#!/bin/bash
cd /etc/
for a in `ls /etc/`
do
[ -d $a ] && ls $a
# ,
if [ -d $a ]
then
echo $a
ls $a
fi
done
~
특수 for 순환 예제: list 순환 시 스페이스 바 나 리 턴 부 호 를 구분자 로 합 니 다.
[root@xavi ~]# mkdir xavi
[root@xavi ~]# cd xavi/
[root@xavi xavi]# ls
[root@xavi xavi]# touch 1 2
[root@xavi xavi]# touch 3\ 4.txt
[root@xavi xavi]# ls
1 2 3 4.txt
[root@xavi xavi]# for i in `ls ./`; do echo $i ; done
1
2
3
4.txt // 3 4.txt
2. while 순환
문법:
while test command
do
other commands
done
사례 1: 시스템 부하 모니터링 스 크 립 트 작성
#!/bin/bash
while : //: , ture,
do
load=`w|head -1|awk -F 'load average: ' '{print $2}'|cut -d. -f1`
if [ $load -gt 10 ]
then
top|mail -s "load is high: $load" [email protected]
fi
sleep 30
// , 30 。 sleep 30 。 。。。
done
사례 2: 사용자 와 의 상호작용 을 통 해 하나의 값 을 얻 고 판단 한다.
사용자 가 입력 한 숫자 를 출력 합 니 다.
#!/bin/bash
while :
do
read -p "Please input a number: " n
if [ -z "$n" ]
then
echo "you need input sth."
continue
fi
n1=`echo $n|sed 's/[0-9]//g'`
if [ -n "$n1" ] // -n = ! -z ,
then
echo "you just only input numbers."
continue
fi
break
done
echo $n
3. break 의 용법
예시:
#! /bin/bash
for i in `seq 1 5`
do
echo $i
if [ $i == 3 ]
then
break
fi
echo $i
done
echo aaa
실행 절 차 는 다음 과 같다.
[root@xavi xavi]# sh -x break.sh
++ seq 1 5
+ for i in '`seq 1 5`'
+ echo 1
1
+ '[' 1 == 3 ']'
+ echo 1
1
+ for i in '`seq 1 5`'
+ echo 2
2
+ '[' 2 == 3 ']'
+ echo 2
2
+ for i in '`seq 1 5`'
+ echo 3
3
+ '[' 3 == 3 ']'
+ break
+ echo aaaa
aaaa
브레이크 를 만나면 현재 순환 에서 벗 어 나 다음 단계 로 넘 어 가 는 것 이다.
4. continue 의 용법:
contine 아래 코드 를 무시 하고 다음 순환 을 진행 합 니 다.
#! /bin/bash
for i in `seq 1 5`
do
echo $i
if [ $i == 3 ]
then
continue
fi
echo $i
done
echo aaa
실행 결 과 는 다음 과 같 습 니 다.
1
1
2
2
3
4
4
5
5
aaa
contine 까지 실 행 될 때 아래 의 모든 문 구 는 무시 한 다 는 것 이다.다음 for 순환 을 직접 진행 하 였 습 니 다.
5. exit 전체 스 크 립 트 종료
#! /bin/bash
for i in `seq 1 5`
do
echo $i
if [ $i == 3 ]
then
exit
fi
echo $i
done
echo aaa
실행 절 차 는 다음 과 같다.
++ seq 1 5
+ for i in '`seq 1 5`'
+ echo 1
1
+ '[' 1 == 3 ']'
+ echo 1
1
+ for i in '`seq 1 5`'
+ echo 2
2
+ '[' 2 == 3 ']'
+ echo 2
2
+ for i in '`seq 1 5`'
+ echo 3
3
+ '[' 3 == 3 ']'
+ exit
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C의 루프컴퓨터에는 일련의 명령을 반복적으로 수행할 수 있는 능력이 있습니다. 이것은 기본 조건이 만족될 때까지 프로그램의 특정 부분을 특정 횟수 또는 무한 반복하는 것을 포함합니다. 루프의 메서드 WHILE 루프: C 프로...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.