답변:
VotePedro="Vote for Pedro"
votePedroArray=(${VotePedro})
votePedroArray=("Vote" "For" "Pedro")
길이 3의 배열을 제공합니다 .이 컨텍스트 ${VotePedro}
와 동일 $VotePedro
합니다. 개별 배열 요소에 액세스하려면 질문에서 for 루프에 대한 것과 유사한 대괄호를 사용할 수 있습니다. 예를 들어 ${votePedroArray[0]}
배열의 첫 번째 요소입니다 (이 예의 경우 "투표")
예를 들어 변수 확장을 인용 부호없이 그대로두면 $VotePedro
다음 단계가 수행됩니다.
IFS
변수 값의 문자입니다 . 기본적으로 공백, 탭 및 줄 바꿈입니다.따라서 IFS
와일드 카드 확장을 끄고 값이 따옴표 이외의 문자열 인 변수를 확장 하여 문자열을 공백으로 구분 된 요소 (기본값 인 ) 로 분할 할 수 있습니다 .
VotePedro="Vote for Pedro"
set -f
votePedroArray=($VotePedro)
set +f
for i in "${votePedroArray[@]}"; do …
사용 시점에서 직접 분할을 수행 할 수 있습니다. 이것은 배열이없는 sh와 같은 쉘에서도 작동합니다.
VotePedro="Vote for Pedro"
set -f
for i in ${votePedro}; do
set +f
…
done
set +f