我需要使用命令行输入执行计算(加法/乘法)。例如:我正在执行以下./calculation.sh 1 2 3 4 5
. 它必须将输出总结为 15。对此有什么想法吗?我已经尝试过以下逻辑,但无法做到。
set -x
while [ $# -gt 0 ]
do
expr $1 + 1
shift
done
我需要使用命令行输入执行计算(加法/乘法)。例如:我正在执行以下./calculation.sh 1 2 3 4 5
. 它必须将输出总结为 15。对此有什么想法吗?我已经尝试过以下逻辑,但无法做到。
set -x
while [ $# -gt 0 ]
do
expr $1 + 1
shift
done
您需要使用一个变量来保存expr
. 此外,+1
似乎没有多大意义。您可能想用变量本身替换它。
您需要在最后打印变量。
尝试:
set -x
res=0
while [ $# -gt 0 ]
do
res=`expr $1 + $res`
shift
done
echo $res
OUTPUT=0
for i in $*; do
OUTPUT=$(($OUTPUT + $i))
done
echo $OUTPUT
尝试
set -x
sum=0
while [ $# -gt 0 ]
do
sum=$(expr "$sum" + "$1")
shift
done
echo "sum: $sum"
它在 bash 中更简单:
sum=0
for i; do
(( sum += i ))
done
echo "sum: $sum"