如何在for循环中使用expr?

时间:2013-04-11 04:02:38

标签: shell for-loop

我是脚本新手,我需要使用for循环为我的类编写脚本。该脚本应该允许您在命令行提示符下键入数字,然后它将对它们求和并给出答案。我一直得到一个expr:语法错误,我也认为我在for循环的部分问题。

echo 'Please enter some numbers:'
read ;
for i in echo $read ;
do expr + 
done

我知道有很多错误,但我无法弄清楚。

2 个答案:

答案 0 :(得分:1)

#!/bin/sh
if [ "$#" -lt 2 ]
then
  echo 'sum.sh [numbers]'
  exit
fi

for number
do
  let total+=number
done
echo $total

示例:

$ sum.sh
sum.sh [numbers]

$ sum.sh 2
2

$ sum.sh 2 2 3
7

答案 1 :(得分:0)

expr需要在它们之间使用空格分隔的数字来执行任何操作。

read one another
expr "$one" + "$another"

此时,我希望您的教授希望您发现如何一次循环一个输入,并运行expr以添加您在循环的前一次迭代期间累积的总和。

对于任何真实世界,您最好使用dcbc,或者,使用Awk或适当的脚本语言。