0

我需要使用命令行输入执行计算(加法/乘法)。例如:我正在执行以下./calculation.sh 1 2 3 4 5. 它必须将输出总结为 15。对此有什么想法吗?我已经尝试过以下逻辑,但无法做到。

set -x
while [ $# -gt 0 ]
do
    expr $1 + 1
    shift
done
4

3 回答 3

2
  1. 您需要使用一个变量来保存expr. 此外,+1似乎没有多大意义。您可能想用变量本身替换它。

  2. 您需要在最后打印变量。

尝试:

set -x
res=0
while [ $# -gt 0 ]
do
    res=`expr $1 + $res`
    shift
done
echo $res
于 2013-09-24T05:48:37.637 回答
2
OUTPUT=0 
for i in $*; do
    OUTPUT=$(($OUTPUT + $i)) 
done
echo $OUTPUT
于 2013-09-24T05:48:41.397 回答
1

尝试

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"
于 2013-09-24T05:47:07.830 回答