用户将输入3个数字,我想计算这些数字的罗马值。我复制粘贴to_roman()函数,但它接受3个参数。我糊涂了 。然后我在case语句中调用此函数。如何为3个数字实现此函数?任何实施建议?
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
答案 0 :(得分:4)
您只需阅读$1 $2 $3
等函数中的参数。
$#
是参数总数
根据您的实现,您可能希望循环遍历@EitanReiner建议的n参数支持的参数。
使用$@
完成。例如:
for param in "$@"
do
echo "$param"
done
在你的情况下,由于你只得到3个参数,它可能会有点过分。无论如何,你应该检查你是否有3个参数。