advnced bash中的一个例子提到
我的推导过程
dividend=10
divisor=20
until里面的运算步骤为
remainder=$dividend % $divisor=10 % 20 =0
dividend=$divisor=20
remainder等于0了,循环结束,那么结果为$dividend=20?
明显不对呀?
附上脚本源码
#!/bin/bash
ARGS=2
E_BADARGS=65
if [ $# -ne "$ARGS" ]
then
echo "Usage: `basename $0` first-number second-number"
exit $E_BADARGS
fi
gcd ()
{
dividend=$1
divisor=$2
remainder=1
until [ "$remainder" -eq 0 ]
do
let "remainder = $dividend % $divisor"
dividend=$divisor
divisor=$remainder
done
}
gcd $1 $2
echo; echo "GCD of $1 and $2 = $dividend"; echo
exit 0
我的推导过程
dividend=10
divisor=20
until里面的运算步骤为
remainder=$dividend % $divisor=10 % 20 =0
dividend=$divisor=20
remainder等于0了,循环结束,那么结果为$dividend=20?
明显不对呀?
附上脚本源码
#!/bin/bash
ARGS=2
E_BADARGS=65
if [ $# -ne "$ARGS" ]
then
echo "Usage: `basename $0` first-number second-number"
exit $E_BADARGS
fi
gcd ()
{
dividend=$1
divisor=$2
remainder=1
until [ "$remainder" -eq 0 ]
do
let "remainder = $dividend % $divisor"
dividend=$divisor
divisor=$remainder
done
}
gcd $1 $2
echo; echo "GCD of $1 and $2 = $dividend"; echo
exit 0