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 + -
显示快捷键?