뺄셈을 시도하기 위해 배열을 사용하고 있습니다. 그러나 내 스크립트가 배열의 총 개수를 알려주면 그 앞에 음수 기호가 있습니다. 어떤 제안이 있으십니까?
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이므로 결과는 정확합니다.