2013-09-24 3 views
0

Мне нужно выполнить вычисление (добавление/умножение) с помощью ввода командной строки. Пример: Я выполняю ниже ./calculation.sh 1 2 3 4 5. Он должен подвести итоги как 15. Любая идея для этого? Я пробовал с логикой ниже, но не мог этого сделать.Как добавить входы командной строки

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

ответ

2
OUTPUT=0 
for i in $*; do 
    OUTPUT=$(($OUTPUT + $i)) 
done 
echo $OUTPUT 
1

Попробуйте

set -x 
sum=0 
while [ $# -gt 0 ] 
do 
    sum=$(expr "$sum" + "$1") 
    shift 
done 
echo "sum: $sum" 

И это проще в Баш:

sum=0 
for i; do 
    ((sum += i)) 
done 
echo "sum: $sum" 
2
  1. Вы должны использовать переменную для сохранения результата expr. Более того, +1, похоже, не имеет большого смысла. Вероятно, вы захотели заменить это самой переменной.

  2. Вам нужно напечатать переменную в конце.

Try:

set -x 
res=0 
while [ $# -gt 0 ] 
do 
    res=`expr $1 + $res` 
    shift 
done 
echo $res 
+0

Спасибо чувак, это работает –

Смежные вопросы