
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