배열에서 값 빼기

배열에서 값 빼기

뺄셈을 시도하기 위해 배열을 사용하고 있습니다. 그러나 내 스크립트가 배열의 총 개수를 알려주면 그 앞에 음수 기호가 있습니다. 어떤 제안이 있으십니까?

elif [ "$OP" = "Subtraction" ]; then
    echo "Please enter the number of values you would like to perform $OP"
    read num
        while [[ $num -gt $i ]]; do
            echo "Enter your value"
            read value
            let total=$total-$value
            let valuearr[$i]=$value
            let i=$i+1
        done
        echo "You entered ${valuearr[*]}, and asked me to perform $OP. The answer is $total."

답변1

이것을 미리 설정 i=1하고 total=0테스트를 -ge다음으로 변경하면 작동하는 것 같습니다.

OP=Subtraction
if [ "$OP" = "Subtraction" ]; then
    echo "Please enter the number of values you would like to perform $OP"
    read num
    i=1
    total=0
        while [[ $num -ge $i ]]; do
            echo "Enter your value"
            read value
            let total=$total-$value
            let valuearr[$i]=$value
            let i=$i+1
        done
        echo "You entered ${valuearr[*]}, and asked me to perform $OP. The answer is $total."
fi

$ bash x
Please enter the number of values you would like to perform Subtraction
3
Enter your value
1
Enter your value
2
Enter your value
4
You entered 1 2 4, and asked me to perform Subtraction. The answer is -7.

설정하지 않으면 출력의 한 요소가 i=1누락됩니다 . 이는 변수가 다른 곳에서 사용되는 경우에 좋은 코드입니다.${valuearr[*]}total=0

분명히 0-1-2-4 == -7이므로 결과는 정확합니다.

관련 정보