这是我为操作系统类(class)准备的作业... 该程序对一个数字的所有数字求和并返回总和,例如123 1+2+3 = 6 我在 for 语句中有错误,但我不知道我做错了什么......请帮忙!
#!/bin/sh
read number
len=${#number}
cont=0
for(( i = 0 ; i < $len; i++ ))
do
cont=expr `$cont + number%10`
number=`$number / 10`
done
echo "$cont"
终端给我错误 ./ej.sh: 5: Syntax error: Bad for loop variable
最佳答案
1) 将 shebang 写为/bin/bash
2) 表达式中不需要美元符号
3) 你应该用反引号将整个 expr 包起来
#!/bin/bash
read number
len=${#number}
cont=0
for (( i = 0 ; i < len; i++ )); do
cont=`expr $cont + $number % 10`
number=`expr $number / 10`
done
echo "$cont"
关于linux - shell 中的 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7198765/