30 배쉬 루프 예

루프의 세 가지 유형은 다양한 목적을 위해 배쉬에 사용됩니다. 이것들은 루프 동안 및 루프까지입니다. 이러한 루프의 다른 용도는이 문서에서 30 다른 예제를 사용 하 여 설명 합니다.

배쉬 루프 사용:

  1. 루프에 사용하여 목록의 항목을 읽기
  2. 루프에 사용하여 배열 읽기
  3. 루프에 사용하여 공백이 있는 문자열 값 목록 읽기
  4. {시작에서 루프에 사용..끝..증가}범위
  5. {시작에서 루프에 사용..끝..증가}범위 뒤로 이동
  6. 3 부분으로 루프 및 조건 카운터에 사용
  7. 3 부분으로 루프 및 쉼표로 여러 조건 및 작업에 사용
  8. 루프에 무한 사용
  9. 조건부 중단 및 계속으로 루프 사용
  10. 루프에 사용
  11. 찾기 명령
  12. 에서 출력을 읽으려면
  13. 루프에 사용하여 디렉토리의 파일 이름을 재귀 적으로 읽기
  14. 조건
  15. 루프에 사용하여 디렉토리의 파일 이름을 재귀 적으로 읽기 파일이 존재
  16. 패키지 목록 명령의 출력을 기반으로 루프에 사용
  17. 루프에 사용하여 파일의 각 줄을 읽기
  18. 루프에 사용 조건부 일치를 기반으로 파일의 각 줄을 읽기
  19. 카운터와 루프 동안 사용
  20. 사용자 입력과 루프 동안 사용 및 종료 메뉴에서 종료를 선택하면
  21. 사용자 입력에 따라 루프까지 종료

  22. 루프
  23. 루프
  24. 루프
  25. 루프
  26. 루프
  27. 루프
  28. 루프 및 레코드 출력을 사용하여 배치 모드에서 맨 위로 실행

루프에 사용하여 목록의 항목을 읽기

‘대상’루프의 가장 간단한 사용은 문자열 또는 숫자 데이터 목록을 읽는 것입니다. 숫자 데이터 목록은 다음 예제에서 인 루프를 사용하여 반복됩니다. 여기서 네 개의 숫자가 변수에서 읽히고 루프의 각 단계에서$엔 인쇄됩니다. 다음 스크립트로 배쉬 파일을 만들고 터미널에서 실행합니다.

#!10 11 17 25
수행
#각 숫자 인쇄
에코”번호는$엔”
완료

출력:

스크립트를 실행합니다.

$ 배쉬 for1.sh

스크립트를 실행한 후 다음 출력이 나타납니다.

맨 위로 이동

루프에 사용

배열을 읽으려면 모든 배열 변수에는 포인 루프를 사용하여 매우 쉽게 반복 할 수있는 데이터 목록이 포함되어 있습니다. 다음 예제에서는 문자열 데이터 배열을 읽기 위한 사용 루프를 보여 줍니다. 여기서 각 배열 값은 변수 인$언어로 가져오고 각 반복의 언어를 기반으로 메시지를 인쇄합니다.

#!이 경우 웹 프로그래밍 언어 인 경우 웹 프로그래밍 언어 인 경우 웹 프로그래밍 언어 인 경우 웹 프로그래밍 언어 인 경우 웹 프로그래밍 언어 인 경우 웹 프로그래밍 언어 인 경우 웹 프로그래밍 언어 인 경우 웹 프로그래밍 언어 인 경우 웹 프로그래밍 언어 인 경우 웹 프로그래밍 언어 인 경우 웹 프로그래밍 언어 인 경우 웹 프로그래밍 언어 인 경우 웹 프로그래밍 언어 인 경우 웹 프로그래밍 언어 인 경우 웹 프로그래밍 언어 인 경우 웹 프로그래밍 언어 인 경우 웹 프로그래밍 언어 인 경우 웹 프로그래밍 언어 인 경우:

스크립트를 실행합니다.

$ 배쉬 for2.sh

스크립트를 실행한 후 다음 출력이 나타납니다.

맨 위로 이동

루프에 사용 공백이 있는 문자열 값 목록을 읽으려면

문자열 목록을 포인 루프에서 읽고 문자열 값에 공백이 포함된 경우 문자열 값이 작은따옴표 또는 큰따옴표로 인용되지 않으면 공백에 따라 값이 단어로 분할됩니다. 다음 예제에서는 공백이 있는 문자열 값 목록을 위한 루프에서 읽을 수 있는 방법을 보여 줍니다. 여기서 목록의 한 값에는 공백이 포함되며 출력의 공백과 함께 인쇄됩니다.

#!각 문자열을 인쇄 할
에코”운영 체제-$운영 체제”
완료

출력:

스크립트를 실행합니다.

$ 배쉬 for3.sh

여기서 문자열 값인’리눅스 민트’가 제대로 인쇄됩니다.

{시작에서 루프를 사용하여 맨 위로

로 이동하십시오..끝..증가}범위

에 대한 루프의 또 다른 용도는 범위 배열을 읽는 것입니다. 다음 예제에서는 루프를 사용하여 각 단계에서 5 씩 증가하는 10 에서 30 까지의 데이터 범위를 읽습니다. 다음으로 스크립트는 10 으로 나눌 수있는 범위의 숫자를 인쇄합니다.

#!/빈/배쉬
#{10 의 숫자에 대해 루프
를 사용하여 범위를 읽습니다..30..5}

#번호를 10 으로 나눌 수 있는지 또는
이 아닌지를 확인하십시오.%10==0 ))
이 스크립트는 다음과 같은 방식으로 작동합니다.이 스크립트는 다음과 같은 방식으로 작동합니다.

$ 배쉬 4.스크립트 실행 후 다음 출력이 나타납니다.

{시작에서 루프를 사용하여 맨 위로

로 이동하십시오..끝..증가}범위 뒤로 이동

범위의 시작 값이 범위의 끝 값보다 큰 포인 루프를 사용하여 데이터 범위를 뒤로 읽을 수 있습니다. 다음 예제에서는 범위가 50 에서 시작하여 30 으로 끝납니다. $숫자 값은 루프의 각 단계에서 10 씩 감소합니다. 스크립트는 5 와 10 으로 나눌 수있는 범위의 숫자를 인쇄합니다.

#!/빈/배쉬
에코”다음 숫자는 5 와 10 으로 나눌 수 있습니다”
#루프
를 사용하여 범위를 읽습니다..30..10}

#번호를 5 와 10 으로 나눌 수 있는지 또는
이 아닌지를 확인하십시오.%5==0 && $숫자%10==0 ))
다음 예제에서는 다음과 같이 설명합니다.”

출력:

스크립트를 실행합니다.

$ 배쉬 for5.sh

스크립트를 실행한 후 다음 출력이 나타납니다.

맨 위로 이동

3 부분으로 루프 및 조건 카운터

배쉬는 다른 표준 프로그래밍 언어와 같은 세 부분으로 루프를 지원합니다. 첫 번째 부분에는 초기화가 포함되고 두 번째 부분에는 종료 조건이 포함되며 세 번째 부분에는 증가 또는 감소 작업이 포함됩니다. 이 루프는 주로 반복 횟수가 이전에 정의 된 경우에 사용됩니다. 다음 예제에서는 루프에 대해 50 번 반복하고 1 에서 50 의 합을 계산합니다. 합계의 결과는 출력으로 인쇄됩니다.

#!다음 값을 사용하여 합계 값을 추가하십시오 엔
((합계=$합계+$엔))
완료
#결과 인쇄
에코”1 에서 50 의 합계는$합계입니다”

출력:

스크립트를 실행합니다.

$ 배쉬 for6.sh

1 에서 50 의 합이 출력에 표시됩니다.

맨 위로 이동

3 부분으로 된 루프 및 쉼표가있는 여러 조건 및 작업에 사용

세 부분으로 된 루프의 경우 여러 초기화,종료 조건 및 작업으로 정의 할 수 있습니다. 다음 예제에서는 이러한 유형의 루프를 사용하는 방법을 보여 줍니다. 여기서$엑스 과$와이 변수는 5 와 25 로 초기화됩니다. 루프는$의 값이 20 보다 작거나 같고$의 값이 5 보다 클 때까지 계속됩니다. 루프의 각 반복에서$엑스 값은 5 씩 증가하고$와이 값은 5 씩 감소합니다. 각 단계에서$엑스 및$와이의 현재 값은 출력으로 인쇄됩니다.

#!/bin/bash
#Loop 반복됩 두 가지 조건에 따라
한((x=5,y=25 일;x<=20 && y>5;x+=5,y=5))
do
echo”현재 가치의 x=$x,y=$y”
done

출력:

스크립트를 실행합니다.

$ 배쉬 for7.sh

스크립트를 실행한 후 다음 출력이 나타납니다.

맨 위로 이동

루프

에 무한 사용 종료 조건없이 루프가 정의되면 루프는 무한 루프로 작동합니다. 다음 예제는 초기화,종료 및 동작 부분을 포함하지 않는 루프에 대한 무한 사용을 보여줍니다. 이 루프 유형은 이중 세미콜론(;;)으로 정의됩니다. 다음 스크립트는 사용자가 입력으로’종료’를 입력 할 때까지 루프를 계속합니다. 스크립트는 1 에서 20 까지의 숫자를 인쇄하여 입력으로 사용합니다.”

#!이 경우 무한 루프를 선언 할 수 있습니다. ; ;))
do
#을 입력
echo”사이의 숫자를 입력합니다 1 20″
읽 n
#설정 종료 상태 루프의
그리고
echo”프로그램을 종료”
출 0
fi
#확인하수 범위를
경우(($n<1||$n>20))
그리고
에코”수의 범위”
다른
에코”수은$n”
fi
done

출력:

스크립트를 실행합니다.

$ 배쉬 8.여기서 6 은 유효한 숫자인 첫 번째 입력으로,22 는 유효하지 않은 숫자인 두 번째 입력으로,종료는 스크립트를 종료한 세 번째 입력으로 가져옵니다.

맨 위로 이동

조건부 중단과 함께 루프에 사용 하 고 계속

‘계속’문은 어떤 조건에 따라 루프의 일부(들)을 생략 하는 데 사용 되 고’중단’문은 어떤 조건에 따라 루프를 종료 하는 데 사용 됩니다. 다음 예제에서는 루프에 대 한 이러한 문을 사용 하 여 보여 줍니다. 여기서 루프는 문자열 데이터 목록을 읽는 데 사용되며 목록의 각 값은 변수 인$음식에 저장됩니다. $음식의 값이’수프’때 그 값을 인쇄하지 않고 루프를 계속합니다. $음식의 값이’파스타’일 때 루프를 종료합니다. $음식에’수프’와’파스타’이외의 값이 포함되어 있으면 값이 인쇄됩니다. 따라서 스크립트는 목록에서 두 값을 출력으로 인쇄합니다.

#!/빈/배쉬
#피자 수프 버거 파스타 국수의 음식에 대한 목록
로 루프를 선언
수행
#계속에 대한 조건 설정

계속
#휴식 조건 설정
엘리프
다음
휴식
기타
에코”$음식은 내가 좋아하는”

완료

출력:

스크립트를 실행합니다.

$ 배쉬 for9.sh

여기서 두 값은 목록에서 생략됩니다. ‘수프’는 계속 문에 인쇄되지 않고’파스타’는 중단 문에 인쇄되지 않습니다.

맨 위로 이동

루프를 사용하여

파일 이름을 글로브하여 파일 이름을 읽거나 파일의 특정 내용을 글로브를 사용하여 검색 할 수 있습니다. 그것은 어떤 파일 이름을 일치하거나 파일의 내용을 검색하기위한 와일드 카드 문자의 다른 유형을 사용합니다. 현재 위치의 확장자를 가진 모든 파일은 다음 예제에서 인쇄하여 검색합니다. 스크립트를 실행하면 일치하는 모든 파일 이름이 출력으로 줄 바꿈없이 인쇄됩니다.

#!/빈/배쉬
#루프는 모든 텍스트 파일을 검색하고 각 파일 이름을$파일
에 저장합니다.이 문제를 해결하려면 다음 단계를 따르세요./:/:/:/:/:/:/:/:/:/:/:/:/:/:/:/:/:/:/:/:/:/:/:/:/:/:/:/:/:/:/:/:/:/:/:/:/:/:/:/:/:/:/:/:/:/:/:

$ 배쉬 for110.sh

맨 위로 이동

찾기 명령에서 출력을 읽으려면 루프에 사용

‘찾기’명령은 배쉬에서 다른 목적으로 사용됩니다. 다음 예에서’찾기’명령은 현재 위치에서 모든 텍스트 파일 이름을 읽는 데 사용됩니다. 여기,’-이름’옵션은 대소 문자를 구분 검색에 사용할 수 있습니다. 그래서,스크립트는 현재 위치의 그 파일 이름을 인쇄 하는’.어떤 이름으로 확장. 각 줄에서$파일의 값을 인쇄합니다.

#!
#에서 파일에 대한 디렉토리
의 파일을 읽습니다.이 예제에서는 다음과 같이 설명합니다.;

출력:

스크립트를 실행합니다.

$ 배쉬 11.스크립트 실행 후 다음 출력이 나타납니다.

맨 위로 이동

루프에 사용하여 디렉토리의 파일 이름을 재귀 적으로 읽기

‘찾기’명령을 사용하여 특정 디렉토리의 모든 파일과 하위 폴더를 읽을 수 있습니다. 다음 예제에서는’찾기’명령을 사용하여’내 디렉토리’디렉토리 아래의 모든 파일 이름과 디렉토리를 읽습니다. 이 예제에서는 파일 이름 값을 앞의 예제와 같이’줄 바꿈’으로 인쇄하는 데 사용됩니다.

#!다음 예제에서는 필드 구분 기호 집합에 대해 설명합니다.;이 예제에서는 다음과 같은 예제들을 사용할 수 있습니다.:::::::::::::::::::::::::::::;

출력:

스크립트를 실행합니다.

$ 배쉬 for12.sh

스크립트를 실행한 후 다음 출력이 나타납니다.

맨 위로 이동

루프에 대 한 사용 조건

‘찾기’명령을 사용 하 여’루프’와 함께 재귀적으로 디렉터리의 파일 이름을 읽기 솜+

어떤 조건에 따라 디렉터리의 특정 파일 이름을 인쇄 하는 데 사용할 수 있습니다. ‘찾기’명령은 다음 예제의 조건과 함께 사용됩니다. 내 디렉토리의 텍스트 파일 이름 만 검색합니다. 여기에서’-이름 없음’옵션은 대소 문자를 구분하지 않는 검색을위한’찾기’명령과 함께 사용됩니다. 즉,확장자를 가진 모든 파일이 일치하고 출력으로 인쇄됩니다. 이 예제에서는 파일 이름 값을 앞의 예제와 같이’줄 바꿈’으로 인쇄하는 데 사용됩니다.

#!모든 텍스트 파일을 읽을 수 있습니다.
#파일 이름에 대한 디렉토리
의 모든 텍스트 파일을 읽을 수 있습니다.이 예제에서는 다음과 같이 설명합니다.;

출력:

다음 명령을 실행하여 파일 및 폴더 목록을 표시합니다.

$ 이 스크립트는 다음과 같습니다.

$ 배쉬 13.6808>

출력에 표시된 디렉터리에 세 개의 텍스트 파일이 있습니다.

맨 위로 이동

파일이 존재할 때까지 루프 실행

다음 예제에서는 무한 루프를 사용하여 파일 이름이 존재하는지 여부를 확인합니다. 이 스크립트에서 파일 이름은 루프의 각 반복에서 입력으로 받아 파일 이름이 현재 위치에 존재하는지 여부를 테스트합니다. 파일 이름이 존재하는 경우 다음 스크립트는”파일이 존재”를 인쇄하고 그렇지 않으면 메시지를 인쇄하여 루프를 종료합니다 루프를 계속,’파일이 존재하지 않습니다’.

#!(;;))에 대한 무한 루프
정의
#파일 이름 입력
에코”파일 이름 입력”
파일 읽기
#파일이 존재하는지 확인

에코”파일 이름이 존재하지 않습니다”
종료 0
기타
에코”파일이 존재”

완료

출력:

스크립트를 실행합니다.

$ 배쉬 loop14.sh

기존 파일 이름은 첫 번째 입력으로 지정되고 존재하지 않는 파일 이름은 스크립트를 종료한 두 번째 출력으로 지정됩니다.

맨 위로 이동

패키지 목록 명령의 출력을 기반으로 루프에 사용

시스템에 설치된 패키지에 대한 정보는 명령으로 검색 할 수 있습니다. ‘용’루프는 다음 예제에서 패키지 목록 명령에서 설치된 패키지 정보를 읽고 각 줄에 각 패키지 정보를 인쇄하는 데 사용됩니다. 위의 예와 같이’줄 바꿈’을 사용하여$줄의 값을 인쇄하는 데 사용됩니다.

# 필드 구분 기호 설정
;이 예제에서는 다음과 같은 예제들을 사용할 수 있습니다://///////////////////////////////;

출력:

스크립트를 실행합니다.

$ 배쉬 for15.sh

출력에 설치된 패키지 목록이 표시됩니다.

맨 위로 이동

루프에 사용하여 파일의 행을 읽기

배쉬에서 파일을 읽는 방법에는 여러 가지가 있습니다. ‘고양이’명령은 파일을 읽기 위해 다음 예에서 사용,임시.티에스트 파일의 각 줄은 변수,$줄에 저장하고 루프에 대한 각 반복에 줄을 인쇄합니다. 위의 예와 같이’줄 바꿈’을 사용하여$줄의 값을 인쇄하는 데 사용됩니다.

#!이 예제에서는 다음과 같은 예제들을 사용할 수 있습니다.이 예제에서는 다음과 같이 설명합니다.;

출력:

스크립트를 실행합니다.

$ 배쉬 16.쉬

맨 위로 이동

조건부 일치

와 파일의 라인을 읽을 루프에 사용 파일에서 특정 라인을 인쇄 할 경우에만 다음 파일을 읽는 데 사용되는 루프 내부에 추가해야합니다. 다음 예제에서는’평일’의 각 줄의 서식이 지정된 출력을 인쇄합니다.조건에 따라’파일. 파일의 어떤 줄 값,’일요일’이 포함 된 경우 그것은 그렇지 않으면’작업 일’메시지를 인쇄합니다’휴일’메시지를 인쇄합니다.

# 파일 읽기
에서 줄에$(고양이 평일.문자열 데이터와 값을 비교
경우
에코”$라인은 휴일”
다른
에코”$라인은 작업 일입니다”
파이
완료

출력:

스크립트를 실행합니다.

$ 배쉬 for17.sh

스크립트를 실행한 후 다음 출력이 나타납니다.

맨 위로 이동

사용 카운터

$카운터 변수가있는 루프는 루프의 반복을 제어하기 위해 모든 루프를 사용합니다. 다음 예제에서는 카운터와 함께 루프 동안 사용을 보여 줍니다. 여기서$카운터는 1 로 초기화되고 루프는 5 번 반복되고 각 반복에서$카운터 값을 인쇄합니다. $카운터는 루프의 종료 조건에 도달하기 위해 각 단계에서 1 씩 증가합니다.

#!/빈/배쉬
#초기화 카운터
카운터=1
#루프를 5 회 반복
동안
에코”카운터 값=$카운터”
((카운터++))
완료

출력:

스크립트를 실행합니다.

$ 배쉬 루프 18.쉬

맨 위로 이동

사용자 입력과 루프 동안 사용하여 메뉴에서 종료를 선택하면 종료

‘동안’루프는 5 옵션의 메뉴를 표시하는 다음 예에서 사용된다. 처음 네 가지 옵션은 사용자의 입력을 기반으로 네 가지 산술 연산을 수행하는 데 사용되며 마지막 옵션은 스크립트에서 종료하는 데 사용됩니다. 메뉴는 입력으로 두 개의 숫자를 제공 한 후 나타납니다. 사용자가’1’을 선택하면 입력 번호가 추가됩니다. 사용자가’2’를 선택하면 두 번째 입력 번호는 첫 번째 입력 번호에서 차감됩니다. 사용자가’3’을 선택하면 입력 번호가 곱해지고 사용자가’4’를 선택하면 첫 번째 입력 번호가 두 번째 입력 번호로 나뉩니다.

#!
#무한 루프를 선언
참 동안

#메뉴를 표시합니다
에코”1. 추가”
에코”2. 빼기”
에코”3. 곱셈”
에코”4. 부문”
에코”5. “종료”
에코 엔”에서 임의의 번호를 선택 :”
읽기 입력
#선택한 값에 따라 작업을 수행
경우]
다음
((결과=엔 1+엔 2))
다음
((결과=엔 1-엔 2))
다음
((결과=엔 1*$엔 2))

스크립트를 실행합니다.

$ 배쉬 loop19.sh

옵션 2 와 5 를 선택하면 다음 출력이 나타납니다.

이 프로그램은 자바 바이트코드 프로그램의 갯수를 카운트하고,스크립트의 메인 형식을 합계냅니다,그리고 확인되지 않은 실행 텍스트 파일을 찾습니다.. 다음 예제에서는 잠시 동안 루프에서 사용 되는 함수를 사용 하 여 보여 줍니다. 여기에 세 가지 옵션 값이 사용됩니다. 이 두 가지 유형이 있습니다. 이러한 옵션에 대해 세 가지 다른 메시지가 인쇄됩니다.

#!/빈/배쉬
#옵션을 읽고 변수
에 저장하는 동안”호”옵션을 얻습니다.; 이 옵션을 선택하면 프로세스가 중단되고 프로세스가 중단되고 프로세스가 중단되고 프로세스가 중단되고 프로세스가 중단되고 프로세스가 중단되고 프로세스가 중단되고 프로세스가 중단되고 프로세스가 중단되고 프로세스가 중단되고 프로세스가 중단되고 프로세스가 중단되고 프로세스가 중단되고 프로세스가 중단되고 프로세스가 중단되고 프로세스가 중단되고 프로세스가 중단되고 프로세스가 중단되고 프로세스가 중단되고 프로세스가 중단되고 프로세스가 중단되고 프로세스가 중단되고 프로세스가 중단되고 프로세스가 중단되고 프로세스가 중단되고 프로세스가 중단되고 프로세스가 중단되고 프로세스가 중단되고 프로세스가 중단되고 프로세스가 중단되고 프로세스가 중단되고 프로세스가 중단되고 프로세스가 중단되고 프로세스가 중단되고 프로세스가 중단되고 프로세스가 중단되고 프로세스가 중단되고 프로세스가 중단되고 프로세스가 중단되고 프로세스가 중단되고 프로세스가 중단되고 프로세스가 중단되고 프로세스가 중단되고 프로세스가 중단되고 프로세스가 중단되고 프로세스가 중단되고 프로세스가 중단되고 프로세스가 중단되고”
;;
\? 이 옵션을 사용하면 스크립트를 실행할 수 있습니다.이 옵션을 사용하면 스크립트를 실행할 수 있습니다.

$ 배쉬 loop20.sh -아크

잘못된 옵션을 사용하여 스크립트를 실행합니다.

$ 배쉬 루프 20.쉬

맨 위로 이동

카운터 루프 때까지 사용

루프 전에 표시된 루프와 같은 카운터와 함께 사용할 수 있습니다. 다음 예제에서는 카운터와 함께 루프까지 사용을 보여 줍니다. 여기서$카운터 변수는 1 로 초기화된 루프의 반복을 제어하는 데 사용됩니다. 때까지 루프는$의 값이 5 에 반대 할 때까지 계속됩니다. 따라서 루프는 6 번 반복하고 각 단계에서 값$카운터를 인쇄합니다. $카운터는 루프의 종료 조건에 도달하기 위해 각 단계에서 1 씩 감소합니다.

#!((카운터–))
완료

출력:

스크립트 실행.

$ 배쉬 loop21.sh

맨 위로 이동

사용자 입력에 따라 루프 때까지 종료

모든 루프는 특정 조건에 따라 종료됩니다. 사용자 입력에 따라 루프를 종료 할 수있는 방법은 다음 예제에 나와 있습니다. 종료 조건에 따르면,루프는$수의 값이 50 보다 클 때 종결될 것입니다. $번호 값은 루프 내에서 증가되지 않습니다. 그래서.,루프는 50 개 이상의 숫자가 입력으로 취해질 때까지 사용자로부터 입력을 계속합니다.

#!/빈/배쉬
#초기화 번호
번호=0
#숫자 데이터의 패턴 설정
패턴=’^+$’
#
읽기 번호
#입력 값이 숫자인지
이 아닌지 확인하십시오! [
다음
에코”오류: 그렇지 않으면
에코”$번호를 입력했습니다”
파이
완료

출력:

스크립트를 실행합니다.

$ 배쉬 loop22.sh

스크립트는 입력 값 4 에 대해 루프를 다시 반복하고 입력 값에 대한 오류 메시지를 표시하고 입력 값 54 에 대한 루프를 종료합니다.

루프

루프가 다른 루프 내에서 선언 될 때 중첩 된 루프를 사용하여 맨 위로

로 이동 한 다음 무한 루프라고합니다. 다음 예제에서는 루프 동안 중첩된 사용을 보여 줍니다. 여기서 첫 번째 동안 루프는 2 번 반복되고 두 번째 동안 첫 번째 루프 내부의 루프는 세 번 반복됩니다. 루프의 총 반복은 2,000,000=6 번입니다. $나는 과$제이 변수는 이러한 루프의 반복을 제어하는 데 사용되며 각 단계에서 이러한 변수의 값은 출력으로 인쇄됩니다.

#!/bin/bash
#초기화 i j
i=1
j=1
#설정 종료를 위한 조건 나는
do
#설정 종료를 위한 조건 j
do
#인쇄의 현재 값을 나와 j
printf”i=%d,j=%d\n”$i$j
((j++))
done
j=1
((i++))
done

출력:

스크립트를 실행합니다.

$ 배쉬 loop23.sh

맨 위로 이동

스크립트

에서 시작된 백그라운드 작업 대기/루프까지 사용’&’기호를 사용하여 백그라운드에서 모든 프로세스를 실행할 수 있습니다. 이 예제에서는 절전 명령에 지정된 시간에 따라 루프를 종료하고 루프를 종료할 때까지 백그라운드에서 프로세스를 실행하는 방법을 보여 줍니다. 루프를 종료하는 데 사용됩니다. 루프는 백그라운드 프로세스를 시작하고”출력”이라는 텍스트 파일에 출력을 작성합니다.1 초 동안. 그 후,루프의 종료 조건이 확인되고 거짓이 반환됩니다. 그런 다음 스크립트는”잠자는 중…”이라는 메시지를 인쇄하고 3 초 후에 스크립트를 종료합니다.

#!종료 조건을 설정
에코”백그라운드 프로세스가 실행 중입니다”;
#1 초 동안 기다립니다
절전 1;
((씨엔++))
완료>출력.”잠자기 상태”에서”잠자기 상태”를 선택합니다…”
수면 3

출력:

스크립트를 실행합니다.

$ 배쉬 loop24.sh

스크립트의 출력을 확인하십시오.

$ 고양이 출력.2015 년

이 명령은 시스템의 실행 중인 모든 프로세스에 대한 정보를 가져오는 데 사용됩니다. 그것은 모든 실행 중인 프로세스에 대 한 세부 정보를 제공 합니다. 다음 예제에서는 잠시 루프를 사용하여’아파치’와 관련된 실행중인 프로세스 정보를 읽는 방법을 보여줍니다. 예를 들어,각 프로세스의 개행을 위해 각 프로세스의 개행을 인쇄하는 데 사용됩니다. 그런 다음 사용자가 아무 키나 눌러 스크립트를 종료할 때까지 기다립니다.

#!2015 년 12 월 1 일,2015 년 12 월 1 일,2015 년 12 월 1 일,2015 년 12 월 1 일,2015 년 12 월 1 일,2015 년 12 월 1 일,2015 년 12 월 1 일,2015 년 12 월 1 일,2015 년 12 월 1 일,2015 년 12 월 1 일,2015 년 12 월 1 일,2015 년 12 월 1 일,2015 년 12 월 1 일,2015 년 12 월 1 일,2015 년..”}”
1 초 동안 대기
잠자기 1
#아무 키나 눌러 루프를 종료하십시오.
에코”아무 키나 눌러 종료”
읽었을 경우………………………………………6808>

출력:

스크립트를 실행합니다.

$ 배쉬 루프 25.’아파치’를 기반으로 실행 중인 모든 프로세스의 피드가 출력에 표시됩니다.

맨 위로 이동

루프를 사용하여 파일의 문자열을 검색하고

종료 월이라는 파일을 만듭니다.아래의 배쉬 스크립트를 테스트하기 위해 다음과 같은 내용으로

월.

January
February
March
April
May
June
July
August
September
October
November
December

‘루프는 달을 읽을 수있는 다음 예에서 사용되는 동안.라인 별 파일 라인. 어떤 줄에 값이 포함 된 경우,’6 월’다음은 인쇄됩니다”여름 휴가를 즐길 수”스크립트에서 종료 그렇지 않으면$라인의 값을 인쇄합니다.

#!/빈/배쉬
#파일 이름을
파일 이름=”월을 읽도록 설정합니다.”8722>다음
에코”여름 휴가를 즐길 수”
종료 0
다른
에코$라인
인터넷
인터넷
인터넷
인터넷
인터넷
인터넷
인터넷
인터넷
인터넷
인터넷
인터넷
인터넷
인터넷
인터넷
인터넷
인터넷
인터넷
인터넷
인터넷
인터넷
인터넷
인터넷
인터넷

완료<$파일 이름

출력:

스크립트를 실행합니다.

$ 배쉬 loop26.sh

여기서’6 월’은 파일 월에 존재합니다.루프를 종료합니다. 따라서’6 월’이후의 다른 달 이름은 루프에서 읽지 않습니다.

맨 위로 가기

결합 bash 컬 데이터를 평가하는 URL

데이터 전송할 수 있습니다 또는 모든 네트워크 서버에서 사용하여’컬’명령으로 지원되는 프로토콜을 다음과 같 HTTP,FTP,TELNET,etc. 이 명령 줄 도구입니다. 다음 예제에서는’컬’명령을 사용하여 루프를 사용하여 데이터를 평가하는 방법을 보여 줍니다. 이 경우,루프의 목록을 읽고 컬의 각 링 값을 전달하고 링에서 수신 된 데이터를 인쇄 할 것이다.

#!/bin/bash
#서 URL 목록에서
한 url”yahoo.com””youtube.com”
do
#인쇄 HTTP 응답 코드에 대한 각 URL
echo$url;컬-v-m5-s$1″$url”|grep HTTP/1.1;
done

출력:

스크립트를 실행합니다.

$ 배쉬 루프 27.쉬

이 명령을 사용하여 네트워크 상에서 데이터를 읽고 쓸 수 있습니다. ‘노스캐롤라이나’명령은’넷캣’명령을 실행하기 위해 배쉬에서 사용된다. 다음 예제에서는 루프 동안’노스 캐롤라이나’명령의 사용을 보여줍니다. 여기서 스크립트는 노스캐롤라이나 명령을 사용하여 포트 1234 와 연결을 시도하고 연결할 수 있으면 다른 터미널에 메시지를 인쇄합니다. 당신은 연결을 만들기 위해 명령,’노스 캐롤라이나 로컬 호스트 1234’를 실행하는 다른 터미널 창 또는 탭을 열어야합니다. 연결을 설정 한 후 한 터미널에서 다른 터미널로 메시지를 전송할 수 있습니다.

#!/빈/배쉬
에코”포트 1234 에서 수신 중입니다…수신된 메시지가”종료”
인 경우 루프를 종료하십시오.
에코”안녕”
중단
이 작업을 수행하는 방법은 다음과 같습니다.이 문제를 해결하는 방법은 무엇입니까?1234)

산출:

터미널에서 스크립트를 실행하여 포트 1234 에서 수신 대기 시작합니다.

$ 배쉬 loop28.sh

그런 다음 다른 터미널을 열고 다음 명령을 실행하여

첫 번째 터미널과 통신하십시오.

$ 노스캐롤라이나 1234

그것은 두 번째 터미널에 환영 메시지가 표시됩니다. 사용자가 두 번째 터미널에 무언가를 입력하면 첫 번째 터미널에 표시됩니다. 사용자가 두 번째 터미널에서’종료’를 입력하면 스크립트는 첫 번째 터미널에서’안녕’이라는 메시지를 표시하여 종료됩니다.

당신은 어떤 웹 사이트가 라이브인지 여부를 확인할 수 있습니다. ‘핑’명령은’google.com’다음 예에서 인터넷 연결이 작동 여부를 확인합니다. 루프가 스크립트에서 5 번 반복하고 핑을 시도하는 동안 google.com. 서버가 응답하면”인터넷이 작동 중입니다”를 인쇄하고 루프를 종료합니다. 루프가 5 번 반복되고 서버 응답을받지 못하면”인터넷 연결 없음”이 인쇄됩니다.

#!/빈/배쉬
#카운터 설정
카운트=5
동안]
수행
#핑 시도 google.com
google.com
#상태 코드를 확인
경우]
다음
에코”인터넷이 작동 중입니다”
종료 0
인터넷
#감소 카운터
((카운트–))
완료
에코”인터넷 연결 없음”

산출:

스크립트를 실행합니다.

$ 배쉬 loop29.sh

인터넷 연결이 제대로 작동하면 비슷한 출력을 얻을 수 있습니다.

맨 위로 이동

루프와 기록 출력을 사용하여 배치 모드에서 맨 위로 실행

‘맨’명령은 시스템 자원의 사용을 검사 다른 작업을 관리하고 실행중인 프로세스를 모니터링하는 데 사용되는 리눅스 관리 도구입니다. 당신은 루프를 사용하여 배치 모드에서’최고’명령을 실행하고 텍스트 파일에 레코드를 저장할 수있는 방법은 다음 예에 나와 있습니다. 이 옵션은 배치 모드에서’최고’명령을 시작하는 데 사용되며,-피 옵션은 모니터링 할 프로세스 아이디를 설정하는 데 사용됩니다. ‘상단’명령의 출력은 출력에 저장됩니다.파일.

#!이 작업을 수행 할 때,이 작업을 수행 할 때,이 작업을 수행 할 때,이 작업을 수행 할 때,이 작업을 수행 할 때,이 작업을 수행 할 때,이 작업을 수행 할 때,이 작업을 수행 할 때,이 작업을 수행 할 때,이 작업을 수행 할 때,이 작업을 수행 할 때,이 작업을 수행 할 때,이 작업을 수행 할 때,이 작업을 수행 할 때,완료

출력:

먼저 다음 명령을 실행하여 실행중인 프로세스 목록을 찾습니다.

$ 추신

이제 스크립트를 실행하십시오.

$ 배쉬 loop30.sh

다음 명령을 실행하여 스크립트 출력을 봅니다.

$ 고양이 출력.2015 년

맨 위로 이동

결론

루프는 간단하거나 복잡한 작업의 다른 유형을 수행하는 다양한 방법으로 배쉬에 사용할 수 있습니다. 목록 또는 배열 가져 오기,파일 읽기 또는 명령 출력 등과 같은 다른 작업을 위해 세 가지 유형의 루프를 배쉬에서 사용할 수있는 방법 매우 간단한 예제를 사용하여이 문서에 표시됩니다. 이 예제는 독자가 배쉬 루프의 사용을보다 명확하게 이해하는 데 도움이되기를 바랍니다.

답글 남기기

이메일 주소는 공개되지 않습니다.

More: