Shell脚本:如何添加数字的数字?

时间:2011-11-03 03:10:41

标签: shell int

我正在创建一个shell脚本,它从命令行获取一个数字(长度不重要)并将它们的数字加在一起。我以为我拥有它,但它不起作用,如果命令输入为345,则显示“0 + 3 + 4 + 5”,或者当我使用expr添加它们时显示变量。

#!/bin/bash
sum=0
i="$(expr length $1)"
s=$1

for i in $(seq 0 $((${#s} - 1))); do
    value=${s:$i:1}
    typeset -i value
    sum=$sum+$value
done
echo $sum

当我用sum ='expr $ sum + $ value'

替换它时也不起作用

任何想法?

2 个答案:

答案 0 :(得分:4)

您要找的是sum=$(($sum+$value))

答案 1 :(得分:0)

#!/bin/bash

expr $(echo $1| sed 's/./& + /g;s/..$//')

例如,如果参数为12345,则会将其转换为字符串1 + 2 + 3 + 4 + 5,并使用expr对其进行评估。