0

我是新手。请帮帮我

输出显示意外标记“do”附近的语法错误

代码是

if [ $# -eq 0 ];
then 
echo "Command line arguments are missing."
else
n=$1
sum=0
while[ $n -gt 0 ]
do
   rem=$(( $n % 10 ))
   sum=$(( $sum + $rem ))
   n=$(( $n / 10 ))
done 
echo "Sum of digit for given number is $sum "
fi
4

2 回答 2

0

[在and之前和之后放置空格]
您可以将while循环替换为

sum=$(( $(echo $1| sed 's/./&+/g; s/+$//' ) ))
于 2017-07-15T20:58:30.607 回答
0

后面的空格while。试试这个:

if [ $# -eq 0 ];
then
  echo Command line arguments are missing.
else
  n=$1
  sum=0
  while [ $n -gt 0 ];
  do
     rem=$(( $n % 10 ))
     sum=$(( $sum + $rem ))
     n=$(( $n / 10 ))
  done
  echo "Sum of digit for given number is  $sum"
fi
于 2017-07-14T13:51:11.223 回答