繁体   English   中英

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

[英]Shell Script: How do I add the digits of a number?

我正在创建一个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'替换它时也不起作用

有任何想法吗?

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

#!/bin/bash

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM