Python 스타일 for in 루프의 사용법은 다음과 같습니다.
- VALUE_LIST에서 변수
- do
- statements
- done
variable은 변수, value_list는 값 목록, in은 Shell의 키워드입니다.
- in value_list 부분은 생략 할 수 있습니다. 생략 된 효과는 $ @에서와 동일합니다.이 기사의 마지막에있는 " value_list using special variables " 에 대해 자세히 설명합니다.
각 루프는 value_list에서 값을 가져와 변수 변수에 할당 한 다음 루프 본문 (do와 done 사이의 부분)을 입력하여 루프 본문에서 명령문을 실행합니다. value_list의 모든 값을 가져올 때까지 루프가 끝납니다.
루프 내 쉘의 예 :
- #! / bin / bash
- sum = 0
- for n in 1 2 3 4 5 6
- do
- echo $ n
- (( sum + = n ))
- done
- echo "합은" $ sum
실행 결과 :
1
2
3
4
5
6
합이 21
★ value_list에 대한 설명
value_list에는 다양한 형태가 있으며, 특정 값을 직접 제공 할 수도 있고, 범위를 제공 할 수도 있고, 명령 결과를 사용할 수도 있고, 와일드 카드를 사용할 수도 있습니다. 아래에서 하나씩 설명합니다.
1) 특정 값을 직접 제공
특정 값이 직접적으로 키워드의 후에 주어질 수 있으며, 다수의 값은 같은 공간에 의해 분리되는 1 2 3 4 5, "abc" "390" "tom"등등
위의 코드에서 값 목록으로 숫자 집합이 사용됩니다. 값 목록으로 문자열 집합을 사용하는 방법을 보여 드리겠습니다.
- #! / bin / bash
- for str in "C 언어"
- do
- echo $ str
- done
운영 결과 :
C 언어
2) 값 범위 제공
값 범위를 제공하는 특정 형식은 다음과 같습니다.
- {start..end}
시작은 시작 값을 의미하고 끝은 끝 값을 의미합니다. 중간에는 세 개의 점이 아니라 두 개의 점이 사용됩니다. 저자의 실제 측정에 따르면이 형식은 숫자와 문자 만 지원합니다.
예를 들어 1에서 100까지의 합계를 계산하려면 다음을 수행하십시오.
- #! / bin / bash
- sum = 0
- for n in { 1 .. 100 }
- do
- (( sum + = n ))
- done
- echo $ sum
실행 결과 :
5050
예 를 들어 A에서 z까지의 모든 문자를 출력합니다.
- #! / bin / bash
- for C in {A .. Z}
- do
- printf "% c" $ c
- done
출력 결과 :
ABCDEFGHIJKLMNOPQRSTUVWXYZ [] ^ _ ʻabcdefghijklmnopqrstuvwxyz
ASCII 코드 테이블에 따라 Shell이 출력되는 것을 확인할 수 있습니다.
3) 명령 실행 결과 사용
백틱 ``또는 $()두 가지 모두를 사용하여 명령의 실행 결과를 얻을 수 있습니다. " 셸 변수 "섹션에서 자세히 설명하고 두 가지의 장단점을 비교했습니다. $()혼동을 일으키기 쉽지 않기 때문에이 섹션 에서이 양식을 사용 합니다.
예를 들어 1에서 100까지의 모든 짝수 합계를 계산하려면 다음을 수행하십시오.
- #! / bin / bash
- sum = 0
- for n in $ ( seq 2 2 100 )
- do
- (( sum + = n ))
- done
- echo $ sum
연산 결과 :
2550
seq는 특정 범위의 정수를 생성하는 데 사용되는 Linux 명령어이며 스텝 크기를 설정할 수 있습니다. 이해하지 못하는 독자는 바이두를 직접 부탁드립니다. seq 2 2 1002에서 시작하여 매번 2 씩 증가하고 100에서 끝나는 것을 의미합니다.
다른 예를 들어, 현재 디렉토리에있는 모든 쉘 스크립트 파일을 나열하십시오.
- #! / bin / bash
- for filename in $ ( ls *.sh )
- do
- echo $ filename
- done
실행 결과 :
demo.sh
test.sh
abc.sh
ls는 현재 디렉토리의 모든 파일을 나열하는 데 사용되는 Linux 명령입니다. *.sh즉 , 일치하는 접미사가있는 파일 .sh, 즉 셸 스크립트 파일입니다.
4) Shell 와일드 카드 사용
쉘 와일드 카드는 일반적으로 텍스트가 아닌 디렉토리 나 파일을 일치시키는 데 사용되는 단순화 된 정규식으로 간주 할 수 있습니다. 이해하지 못하는 독자는 " Linux 쉘 와일드 카드 (글롭 패턴) " 를 클릭하십시오 .
쉘 와일드 카드를 사용하면 ls 명령을 사용하지 않고도 현재 디렉토리의 모든 스크립트 파일을 표시 할 수 있습니다. 다음 코드를 참조하십시오.
- #! / bin / bash
- for filename in *.sh
- do
- echo $ filename
- done
작업 결과 :
demo.sh
test.sh
abc.sh
5) 특수 변수 사용
쉘에는 $ #, $ *, $ @, $ ?, $$ 등과 같은 많은 특수 변수가 있습니다. (모르는 독자는 " 쉘 특수 변수 " 를 클릭하십시오 .) value_list에서 사용할 수 있습니다.
- #! / bin / bash
- function func () {
- for str in $@
- do
- echo $ str
- done
- }
- func C++ Java Python C#
연산 결과 :
C++
Java
Python
C#
사실 value_list도 생략 할 수 있으며 생략 후의 효과는 $@. 아래 데모를 참조하십시오.
- #! / bin / bash
- function func () {
- for str
- do
- echo $ str
- done
- }
- func C++ Java Python C#
실행 결과 :
C++
Java
Python
C#
'Linux' 카테고리의 다른 글
쉘 중단 및 루프에서 계속 자세한 설명 (0) | 2020.10.14 |
---|---|
루프 세부 사항에서 쉘 선택 (0) | 2020.10.13 |
루프 용 C 언어 스타일 (0) | 2020.10.13 |
루프 동안 쉘 자세한 설명 (0) | 2020.10.13 |
명세서 상세 설명의 쉘 케이스 (0) | 2020.10.13 |