用户将输入3个数字,我想计算这些数字的罗马数值。我复制粘贴to_roman()函数,但它需要3个参数。我很困惑 。那么我在case语句中调用这个函数。我如何实现3个数字的这个函数?任何实施建议?shell脚本中的调用函数
to_roman() # Must declare function before first call to it.
{
number=$1
factor=$2
rchar=$3
let "remainder = number - factor"
while [ "$remainder" -ge 0 ]
do
echo -n $rchar
#echo $remainder
let "number -= factor"
let "remainder = number - factor"
done
return $number
}
to_roman $num 10 x
num=$?
to_roman $num 9 ix
num=$?
to_roman $num 5 v
num=$?
to_roman $num 4 iv
num=$?
to_roman $num 1 i
返回值不适用于shell函数中的数据;它们表示成功(0)或失败(一个非零值,其含义是特定于该函数的)。一个函数应该输出一个结果,它可以用命令替换来捕获:'num = $(to_roman $ num 10 x)'。 – chepner
[这个“Number to Roman”shell脚本是如何工作的可能的重复](http://stackoverflow.com/questions/19619021/how-does-this-number-to-roman-shell-script-work) –