Bash 배열 길이는 항상 1을 제공합니다.

Bash 배열 길이는 항상 1을 제공합니다.

아래와 같이 bash 스크립트를 작성했습니다.

...file1.sh..

read samplearrrr;
echo "*******************"
echo ${#samplearrrr[@]}
echo "*******************"

터미널에서 이것을 ./file1.sh로 실행했고 입력은 23 45 67 88로 읽혔습니다.

출력의 길이는 항상 1입니다.

인터넷 검색을 시도했지만 해결책을 찾지 못했습니다.

답변1

코드는 단어를 단일 문자열로 변수로 읽습니다. 자동으로 배열로 변환되지 않습니다.

에서는 with를 사용 하여 값을 배열로 읽을 bash수 있습니다 .-aread

read -r -p 'enter array values: ' -a vals
printf 'I got %d values\n' "${#vals[@]}" 

관련 정보