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)

你可能感兴趣的:(shell,参数,判断)