【发布时间】:2017-04-17 07:46:10
【问题描述】:
挑战是将给定数字的位数相加,直到结果只有一位。假设数字是“999”(9+9+9=27, 2+7=9)。这就是我到现在为止所做的。
#!/bin/bash
set +m
shopt -s lastpipe
NUMBER=999
DIGITS=`echo "${#NUMBER}"`
FINALSUM=0
if [ "$DIGITS" -gt 0 ] && [ "$DIGITS" -gt 1 ]; then
grep -o . <<< "${NUMBER}" | while read DIGIT; do
declare -x FINALSUM="$(($FINALSUM+$DIGIT))"
done
echo $FINALSUM
else
echo $SOMA
fi
【问题讨论】:
-
那么问题出在哪里?不工作吗?
标签: bash while-loop do-while