分页: 1 / 1

[已解决]sh-bash编程疑难求助

发表于 : 2013-01-10 12:16
careone
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

代码如下:
#!/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 "..."

Re: sh-bash编程疑难求助

发表于 : 2013-01-10 12:21
YeLee
参数个数检查倒可以试一下$#,至于数学的问题,表示不是很了解,bc做一些基本运算倒是还可以。

Re: sh-bash编程疑难求助

发表于 : 2013-03-19 12:14
careone
感谢2楼 YeLee 兄的提示!问题已解决,1楼已更新