我是新手。请帮我解决这个问题
输出显示意外令牌附近的语法错误'做'
代码是
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
答案 0 :(得分: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
答案 1 :(得分:0)
在[
和]
之前和之后放置空格。
您可以用
sum=$(( $(echo $1| sed 's/./&+/g; s/+$//' ) ))