Shell 프로 그래 밍 - 10 - Shell 의 순환 문
while 구문
기초 문법
while
do
语句
done
while 순환 읽 기 파일
exec < FILE
while read line
do
command
done
cat FILEPATH/FILE | while read line
do
command
done
while read line
do
command
done < FILE
while 예시
1. 숫자 인쇄
[root@localhost Test]# cat while.sh
#!/bin/bash
a=$1
while [ ${a} -ge 0 ]
do
echo "Current number is:" ${a}
a=$((a-1))
done
[root@localhost Test]# bash while.sh 5
Current number is: 5
Current number is: 4
Current number is: 3
Current number is: 2
Current number is: 1
Current number is: 0
2. 파일 읽 기
# 读取网卡配置文件
[root@localhost Test]# cat readnet.sh
#!/bin/bash
while read line
do
echo ${line}
done < /etc/sysconfig/network-scripts/ifcfg-ens5f1
[root@localhost Test]# bash readnet.sh
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens5f1
UUID=dbab37df-749f-4cf5-b0a9-c9d7e6632f44
DEVICE=ens5f1
ONBOOT=yes
IPADDR=192.168.8.8
NETMASK=255.255.255.0
GATEWAY=192.168.8.1
until 구문
기초 문법
until
do
语句
done
until 문장의 문법 은 while 와 비슷 합 니 다. until 은 조건 식 이 성립 되 지 않 을 때 순환 실행 명령 에 들 어가 고 조건 식 이 성립 될 때 순환 을 종료 합 니 다.until 의 응용 장면 이 비교적 절약 되 어 이해 하면 된다.
until... 까지 예시
[root@localhost Test]# cat until.sh
#!/bin/bash
a=$1
until [ ${a} -ge 10 ]
do
echo "Current number is:" ${a}
a=$((a-1))
if [ $a -lt 0 ]
then
break
fi
done
[root@localhost Test]# bash until.sh 5 # 不满足条件时,进入循环体
Current number is: 5
Current number is: 4
Current number is: 3
Current number is: 2
Current number is: 1
Current number is: 0
[root@localhost Test]# bash until.sh 50 # 满足条件时,则不进入循环体
[root@localhost Test]#
for 문장
* 8195 ° for 순환 문 구 는 while 순환 시구 와 유사 하지만 for 순환 문 구 는 주로 유한 한 순환 장면 에 사용 되 고 while 는 무한 순환 장면, 예 를 들 어 데 몬 과 같은 장면 입 니 다.
기초 문법
1. 첫 번 째 형식
for var in list
do
语句
done
이 구조 에서 in list 는 생략 할 수 있 습 니 다.생략 할 때 in "$@"즉 for var in "$@"에 해당 합 니 다.
2. 두 번 째 형식
for((ex1;exp2;exp3))
do
语句
done
이런 격식 은 C 류 의 풍격 으로, 여러분 도 비교적 많이 보 실 수 있 습 니 다.
for 예시
1. 데이터 인쇄
[root@localhost Test]# cat for.sh
#!/bin/bash
echo "first format for sentense "
for i in {1..5}
do
echo ${i}
done
echo "second format for sentense"
for((j=1;j<=5;j++))
do
echo ${j}
done
[root@localhost Test]# bash for.sh
first format for sentense
1
2
3
4
5
second format for sentense
1
2
3
4
5
2. 파일 이름 인쇄
[root@localhost Test]# cat printfilename.sh
#!/bin/bash
path=$1
for filename in $(ls $1)
do
echo ${filename}
done
[root@localhost Test]# bash printfilename.sh "/root/Test/"
caseif.sh
case.sh
compareNum.sh
eval.sh
exec.sh
for.sh
if.sh
para.sh
ping.sh
printfilename.sh
readnet.sh
shift.sh
testPID.sh
testposition.sh
until.sh
while.sh
selection 구문
선택 메뉴 를 만 드 는 데 사 용 됩 니 다.selection 순환 문 구 를 가 진 스 크 립 트 를 실행 할 때 출력 은 숫자 순서 목록 에 따라 목록 옵션 을 표시 하고 프롬프트 (기본 값 은\#?) 를 표시 하 며 사용자 가 선택 할 때 까지 기 다 립 니 다.
기초 문법
select var in list
do
语句
done
1. 이 구조 에서 in list 는 생략 할 수 있 습 니 다. 생략 은 in "$@"즉 selectvar in "$@"2 와 같 습 니 다. select 와 for 순환 이 다른 것 은 select 순환 이 실 행 된 후에 메뉴 옵션 이 사용자 의 선택 을 기다 리 고 모든 변수 목록 을 자동 으로 순환 하지 않 습 니 다. 사용자 가 입력 한 것 은 메뉴 항목 앞의 숫자 번호 일 뿐 해당 하 는 번 호 를 입력 할 때마다 순환 을 실행 합 니 다.변수 뒤에 대응 하 는 목록 선택 이 끝 날 때 까지
select 예제
1. 디 렉 터 리 파일 선택
[root@localhost Test]# cat select.sh
#!/bin/bash
select file in $(ls $1)
do
echo "Current file is:"${file}
done
[root@localhost Test]# bash select.sh /root/Test
1) caseif.sh 7) if.sh 13) shift.sh
2) case.sh 8) para.sh 14) testPID.sh
3) compareNum.sh 9) ping.sh 15) testposition.sh
4) eval.sh 10) printfilename.sh 16) until.sh
5) exec.sh 11) readnet.sh 17) while.sh
6) for.sh 12) select.sh
#? 2
Current file is:case.sh
#? 3
Current file is:compareNum.sh
#? 19
Current file is:
#?
순환 인 터 럽 트 제어
프로 그래 밍 기초 가 있 는 어린이 신발 은 순환 체 에 어떤 것 이 나타 나 면 우 리 는 순환 체 를 미리 중단 할 수 있다 는 것 을 잘 알 고 있다.Shell 에서 자주 사용 하 는 순환 중단 제 어 는 break, contine, exit, return 이 있 습 니 다.
break/continue: if, for, while 등 조건 과 순환 문 에 자주 사용 되 며, 프로 세 스 의 방향 을 제어 합 니 다. 모든 문 구 를 종료 하고 현재 스 크 립 트 를 종료 하 는 데 사용 되 며, 이전 프로그램 이나 명령 의 실행 상태 return: exit 와 유사 하지만, return 은 함수 내부 에서 함수 의 실행 상태 값 을 되 돌려 주 는 데 만 적 용 됩 니 다.
상기 상세 한 설명 은 다음 과 같다.
명령 하 다.
해명 하 다.
break n
n: 순환 하 는 층수 뛰 기;n 을 생략 하면 전체 순환 에서 벗 어 납 니 다.
continu n
n: n 층 으로 물 러 나 계속 순환 하기;n 을 생략 하면 이번 순환 을 건 너 뛰 고 다음 순환 을 계속 합 니 다.
exit n
현재 셸 프로 세 스 종료 하기;n: 지난번 프로그램 에서 실 행 된 상태 반환 값, n 을 생략 하면 $를 사용 할 수 있 습 니까?실행 상태 값 가 져 오기
return n
함수 의 반환 값 에 사용 되 며 함수 의 실행 이 정확 한 지 판단 할 수 있 습 니 다.
순환 인 터 럽 트 제어 예시
1. break 예제
[root@localhost Test]# cat break.sh
#!/bin/bash
for(( i=1;i
2. contine 예제
[root@localhost Test]# cat continue.sh
#!/bin/bash
for(( i=1;i
3. exit 예제
[root@localhost Test]# cat exit.sh
#!/bin/bash
for(( i=1;i
순환 문 총화
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.