인쇄되지 않은 배열의 합계

인쇄되지 않은 배열의 합계

배열의 합계를 인쇄하는 스크립트를 만들려고 하는데 결과가 "Sum: 0"으로 표시됩니다.

이것은 지금까지 내 스크립트입니다.

이 문제를 해결하는 데 도움을 주시면 대단히 감사하겠습니다.

#! /bin/bash

declare -a array1={1 2 3 4}

#read array 
read -a array1

#set sum to zero 
sum=0

#loop for sum in array

for i in ${array1[@]}; do

  let sum+=$i

done

#print

echo "Sum: $sum"

답변1

(…)Bash에는 배열이 필요합니다.
배열이 선언된 경우 배열을 읽을 필요가 없습니다.
확장이 ${array[@]}올바르게 작동하려면 따옴표가 필요합니다.

declare -a array1=(1 2 3 4)

sum=0
for i in "${array1[@]}"; do
  ((sum+=$i))
done
echo "Sum: $sum"

관련 정보