문자열 목록을 통한 Bash 루프

Bash Loop Through List Strings



문자열 또는 배열 또는 요소 시퀀스의 목록은 다음을 사용하여 반복할 수 있습니다. ~을위한 bash에서 루프. for 루프로 Bash의 문자열 목록을 반복하는 방법은 다양한 bash 스크립트 예제를 사용하여 이 자습서에 나와 있습니다. 초보자가 bash 프로그래밍이라면 다음 튜토리얼을 읽을 수 있습니다. BASH For 루프 예제 이 튜토리얼을 시작하기 전에.

'라는 이름의 bash 파일을 만듭니다. for_list1.sh '를 입력하고 다음 스크립트를 추가합니다. 공백이 있는 문자열 값은 for 루프 내에서 사용됩니다. 기본적으로 문자열 값은 공백으로 구분됩니다. For 루프는 문자열을 단어로 분할하고 개행을 추가하여 각 단어를 인쇄합니다.

#!/bin/bash
# for 루프를 사용하여 공백이 있는 문자열 읽기
~을위한~에나는 프로그래밍을 좋아한다
~하다
던졌다 $값
완료

산출:

$세게 때리다for_list1.sh

예-2: for 루프를 사용하여 문자열 변수 반복

'라는 이름의 bash 파일을 만듭니다. for_list2.sh '를 입력하고 다음 스크립트를 추가합니다. 변수에 텍스트를 할당하고, StringVal for 루프를 사용하여 이 변수의 값을 읽습니다. 이 예제도 이전 예제와 같이 작동하며 변수 값을 공백에 따라 단어로 나눕니다.

#!/bin/bash
# 값으로 문자열 변수 정의
StringVal='리눅신트에 오신 것을 환영합니다'

# for 루프를 사용하여 문자열 변수를 반복합니다.
~을위한시간~에 $StringVal;~하다
던졌다 $ 시간
완료

산출:

$세게 때리다for_list2.sh

예-3: 문자열 값의 배열 반복

'라는 이름의 bash 파일을 만듭니다. for_list3.sh '를 입력하고 다음 스크립트를 추가합니다. 문자열 값의 배열은 이 스크립트에서 type으로 선언됩니다. 공백을 포함하는 배열의 두 값은 리눅스 민트 그리고 레드햇 리눅스 . 이 스크립트는 이러한 값을 여러 단어로 분할하고 별도의 값으로 인쇄하여 출력을 생성합니다. 그러나 이것은 적절한 출력이 아닙니다. 이러한 유형의 문제에 대한 솔루션은 다음 예에 나와 있습니다.

#!/bin/bash

# 유형의 문자열 배열 선언
선언하다 -에게 문자열 배열=('리눅스 민트' '페도라' '레드햇 리눅스' '우분투' '데비안' )

# for 루프를 사용하여 문자열 배열을 반복합니다.
~을위한시간~에 ${문자열 배열[@]};~하다
던졌다 $ 시간
완료

산출:

$세게 때리다for_list3.sh

예-4: 여러 단어의 문자열 값을 단일 값으로 인쇄

'라는 이름의 bash 파일을 만듭니다. for_list4.sh '를 입력하고 다음 스크립트를 추가합니다. 이 예에서 배열 변수의 모든 요소는 문자열 배열 두 단어의 값을 포함합니다. 분할하지 않고 각 값을 인쇄하고 이전 예제의 문제를 해결하려면 배열 변수를 큰따옴표 for 루프 내에서.

#!/bin/bash

# 유형이 있는 문자열 배열 선언
선언하다 -에게 문자열 배열=('윈도우 XP' '윈도우 10' '윈도우 ME' '윈도우 8.1'
'윈도우 서버 2016' )

# 공백으로 배열 값 읽기
~을위한시간~에 '${문자열 배열[@]}';~하다
던졌다 $ 시간
완료

산출:

$세게 때리다for_list4.sh

예-5: '*'를 사용하여 배열의 문자열 값 반복

'라는 이름의 bash 파일을 만듭니다. for_list5.sh ' 다음 코드로. 여기서 '*' 기호는 배열의 모든 문자열 값을 읽는 데 사용됩니다. 첫 번째 for 루프는 배열 값을 여러 줄로 표시하는 데 사용되고 두 번째 for 루프는 배열 값을 한 줄로 표시하는 데 사용됩니다.

#!/bin/bash

#문자열 배열 선언
언어 배열=('PHP' '자바' '씨 #' '씨++' '비비넷' '파이썬' '펄')

# 배열 값을 줄로 인쇄
던졌다 '모든 요소를 ​​새 줄에 인쇄'
~을위한발1~에 ${언어 배열[*]};~하다
던졌다 $ val1
완료

던졌다 ''

# 배열 값을 한 줄로 출력
던졌다 '모든 요소를 ​​한 줄로 인쇄'
~을위한발2~에 '${언어 배열[*]}';~하다
던졌다 $val2
완료
던졌다 ''

산출:

$세게 때리다for_list5.sh

예-6: 쉼표로 구분된 문자열 값 반복

'라는 이름의 새 bash 파일을 만듭니다. for_list6.sh' 다음 코드로. 여기, 반점 (,) 문자열 값을 분할하는 데 사용됩니다. IFS 변수는 필드 구분자를 설정하는 데 사용됩니다.

#!/bin/bash
데이터 목록=' HTML5, CCS3, 부트스트랩, 제이쿼리 '
Field_Separator=$IFS

# 문자열 목록의 내부 필드 구분자로 쉼표를 설정합니다.
IFS=,
~을위한시간~에 $데이터 목록;
~하다
던졌다 $ 시간
완료

IFS=$Field_Separator

산출:

$세게 때리다for_list6.sh

예-7: 여러 string형 배열을 함께 읽기

'라는 이름의 bash 파일을 만듭니다. for_list7.sh '를 입력하고 다음 스크립트를 추가합니다. 이 예에서는 두 개의 문자열 배열이 정의되어 다른 배열로 결합됩니다. 외부 for 루프는 결합된 배열을 읽는 데 사용되며 내부 for 루프는 각 내부 배열을 읽는 데 사용됩니다.

#! /bin/sh
str_array1=('마젠토 2.2.4' '우커머스')
str_array2=('코드이그나이터' '라라벨')
결합시키다=(str_array1 str_array2)
~을위한관리~에 ${결합[@]}
~하다
평가 '${'의 val$ ar 항목'[@]}'; 에코 '$val';완료'
완료

산출:

$세게 때리다for_list7.sh

예-8: 패턴을 사용하여 문자열 목록 읽기

라는 이름의 새 bash 파일을 만듭니다. for_list8.sh 다음 코드로. 여기, '/, /' 패턴은 쉼표를 기반으로 문자열 값을 분할하는 데 사용됩니다.

#! /bin/sh

# 문자열 변수 목록 정의
문자열 목록=워드프레스,줌라,마젠토

# 쉼표를 구분 기호로 사용하고 패턴으로 적용
~을위한시간~에 ${문자열 목록//,/ }
~하다
던졌다 $ 시간
완료

산출:

$세게 때리다for_list8.sh

이 튜토리얼의 예제가 for 루프 문자열 목록을 반복하려면 이 주제에 대한 비디오를 보려면 아래를 참조하십시오.