[已解决]sh-bash编程疑难求助
发表于 : 2013-01-10 12:16
sh-bash编程疑难求助:
1. 参数输入不齐或缺少参数时,如何判定并退出程序?
2. 如何实现求整运算?
应用目的:
通过 emacs-locale.zh_CN 把当前 Emacs 菜单切换为简体中文/英文界面
完整的主程序见这里: viewtopic.php?f=17&t=212467
命令行:
$sudo emacs-locale.zh_CN -g 24 zh_CN
对应变量: $0 $1 $2 $3
代码如下:
1. 参数输入不齐或缺少参数时,如何判定并退出程序?
2. 如何实现求整运算?
应用目的:
通过 emacs-locale.zh_CN 把当前 Emacs 菜单切换为简体中文/英文界面
完整的主程序见这里: viewtopic.php?f=17&t=212467
命令行:
$sudo emacs-locale.zh_CN -g 24 zh_CN
对应变量: $0 $1 $2 $3
代码如下:
#!/bin/sh
#
## 已解决 1
## 如果未输入变量 $3 ,提示变量错误并退出程序
if [ "$#" -lt 3 ];then
echo "bad argument or argument not enouth. Quit."
exit 1 ;
fi
## 1 结束
## 已解决 2
# 将输入的 Emacs 子版本号通过求整运算,得到主版本号
VAR_MAJOR_VER=$(echo "scale=0; $2 / 1" | bc)
## 2 结束
#
## 原方案 2 (已废弃):
case "$2" in
22 | 22.1 | 22.2 | 22.3)VAR_MAJOR_VER=22 ;;
23 | 23.1 | 23.2 | 23.3 | 23.4)VAR_MAJOR_VER=23 ;;
24 | 24.1 | 24.2 | 24.3)VAR_MAJOR_VER=24 ;;
*)VAR_MAJOR_VER='*' ;;
esac
## 原方案 2 结束
echo "translate Emacs version '$2' to language '$3'..."
echo "updating /etc/emacs${VAR_MAJOR_VER}/site-start.d/86*.el ..."
echo "..."