我需要使用命令行输入执行计算(加法/乘法)。
举个例子:我正在执行下面的./calculation.sh 1 2 3 4 5
。它必须将输出总结为15.任何想法?我已尝试使用以下逻辑但无法实现。
set -x
while [ $# -gt 0 ]
do
expr $1 + 1
shift
done
答案 0 :(得分:2)
您需要使用变量来保存expr
的结果。而且,+1
似乎没有多大意义。您可能希望用变量本身替换它。
您需要在最后打印变量。
尝试:
set -x
res=0
while [ $# -gt 0 ]
do
res=`expr $1 + $res`
shift
done
echo $res
答案 1 :(得分:2)
OUTPUT=0
for i in $*; do
OUTPUT=$(($OUTPUT + $i))
done
echo $OUTPUT
答案 2 :(得分: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"