ex61.sh

来自「BASH Shell 编程 经典教程 《高级SHELL脚本编程》中文版」· Shell 代码 · 共 70 行

SH
70
字号
#!/bin/bash# 将阿拉伯数字转化为罗马数字# 范围: 0 - 200# 比较粗糙, 但可以正常工作. # 扩展范围, 并且完善这个脚本, 作为练习. # 用法: 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 ()   # 在第一次调用函数前必须先定义它. {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       # 练习:       # -----       # 解释这个函数是如何工作的.        # 提示: 依靠不断的除, 来分割数字. }   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 + -
显示快捷键?