ex61.sh
来自「Shall高级编程」· Shell 代码 · 共 70 行
SH
70 行
#!/bin/bash# Arabic number to Roman numeral conversion# Range: 0 - 200# It's crude, but it works.# Extending the range and otherwise improving the script is left as an exercise.# Usage: roman number-to-convertLIMIT=200E_ARG_ERR=65E_OUT_OF_RANGE=66if [ -z "$1" ]then echo "Usage: `basename $0` number-to-convert" exit $E_ARG_ERRfi num=$1if [ "$num" -gt $LIMIT ]then echo "Out of range!" exit $E_OUT_OF_RANGEfi to_roman () # Must declare function before first call to it.{number=$1factor=$2rchar=$3let "remainder = number - factor"while [ "$remainder" -ge 0 ]do echo -n $rchar let "number -= factor" let "remainder = number - factor"done return $number # Exercise: # -------- # Explain how this function works. # Hint: division by successive subtraction.} to_roman $num 100 Cnum=$?to_roman $num 90 LXXXXnum=$?to_roman $num 50 Lnum=$?to_roman $num 40 XLnum=$?to_roman $num 10 Xnum=$?to_roman $num 9 IXnum=$?to_roman $num 5 Vnum=$?to_roman $num 4 IVnum=$?to_roman $num 1 Iechoexit 0
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?