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

(写于2011-08-10 15:35:54)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值