[英]How writing a shell script to add enough zeros to have six digits for each number?
[英]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.