Bash 스크립트: 배열과 함께 forinloop 사용

Bash 스크립트: 배열과 함께 forinloop 사용

forin 루프를 사용하여 배열의 모든 텍스트를 인쇄하는 스크립트를 만들려고 합니다. 첫 번째 텍스트만 인쇄됩니다. 도움이 필요하십니까?

#!/bin/bash
somearray=( p 5 6 j 050yh0k 0 hkofohkf 50 )
for k in somearray
do
echo ${somearray[k]}
done

답변1

배열의 모든 요소를 ​​얻으려면 생성자를 사용해야 합니다 ${var[@]}. 따라서 for배열의 모든 멤버를 반복하는 루프는 다음과 같습니다.

for element in "${somearray[@]}"; do
    echo "$element"
done

답변2

원래 시도한 것처럼 배열의 인덱스를 반복하려면 다음을 수행하십시오.

for k in "${!somearray[@]}"; do
    printf '%s\n' "${somearray[k]}"
done

관련 정보