아래와 같이 bash 스크립트를 작성했습니다.
...file1.sh..
read samplearrrr;
echo "*******************"
echo ${#samplearrrr[@]}
echo "*******************"
터미널에서 이것을 ./file1.sh로 실행했고 입력은 23 45 67 88로 읽혔습니다.
출력의 길이는 항상 1입니다.
인터넷 검색을 시도했지만 해결책을 찾지 못했습니다.
답변1
코드는 단어를 단일 문자열로 변수로 읽습니다. 자동으로 배열로 변환되지 않습니다.
에서는 with를 사용 하여 값을 배열로 읽을 bash
수 있습니다 .-a
read
read -r -p 'enter array values: ' -a vals
printf 'I got %d values\n' "${#vals[@]}"