2011-11-03 71 views
1

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

#!/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 

还当我的额头= '$ expr的总和+ $值'

任何想法取代它不起作用?

回答

4

你在找什么是sum=$(($sum+$value))

0
#!/bin/bash 

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

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