linux - shell 中的 for 循环

标签 linux shell ubuntu

这是我为操作系统类(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/

相关文章:

c++ - Ubuntu 18 上 ORB_SLAM3 的安装错误

linux - 如何从内核写入只读文件?

Apache错误的本地主机位置

mysql - phpMyAdmin - 错误缺少 json 扩展

perl - 使用ssh在远程服务器上执行内联脚本时保护管道字符

linux - Bash 子 shell 之谜

Linux:在脚本中运行二进制文件

linux - 在 perl 套接字编程中如何从客户端发送数据并从服务器接收数据以及如何获取客户端进程数和客户端 ID?

linux - 并行运行 bash shell 并等待

linux - AIX 上 "set -o errexit"的意外行为