用戶將輸入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) –