shell脚本中的参数判断

最近在看ABS这本神作。
分享一下今天学到的东西。

需求:在练习最大公约数这个脚本的时候,需要判断输入的参数一定是整数,其他情况则正常退出。
实现:用求最大公约数这个例子来实现。

代码如下:
#!/bin/bash

# gcd.sh: 求最大公约数
# date: 2011.08.10
# modified: Nigel_Zeng
# license: GPL

# ------------------------
# 参数检查
# 规范用法
ARGS=2
E_BADARGS=65

if [ $# -ne "$ARGS" ]
then
echo "Usage: `basename $0` first-number second-number"
exit $E_BADARGS
fi
# ---------------------------
# 是否为整数
# =~ 表示后面要使用正则表达式
if [[ $1 =~ [0-9]+ && $2 =~ [0-9]+ ]]
then :
else
echo "This two parameters must be Interger.";exit $E_BADARGS
fi
# ---------------------------

gcd ()
{
dividend=$1
divisor=$2
remainder=1

until [ "$remainder" -eq 0 ]
do
let "remainder=$dividend % $divisor"
dividend=$divisor
divisor=$remainder
done
}

gcd $1 $2

echo; echo "GCD of $1 and $2 = $dividend"; echo

exit 0


说明:
“ =~ ”表示后面要使用正则表达式来判断,这个是重点。
if [[ $1 =~ [0-9]+ && $2 =~ [0-9]+ ]] 表示 第一个参数和第二个参数要是包含0-9的数。

感谢云惺给的帮助。

·····积少成多········fight


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值