在shell脚本中调用函数

时间:2015-10-28 13:50:02

标签: linux bash shell

用户将输入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

1 个答案:

答案 0 :(得分:4)

您只需阅读$1 $2 $3等函数中的参数。

$#是参数总数

根据您的实现,您可能希望循环遍历@EitanReiner建议的n参数支持的参数。

使用$@完成。例如:

for param in "$@"
do
    echo "$param"
done

在你的情况下,由于你只得到3个参数,它可能会有点过分。无论如何,你应该检查你是否有3个参数。