Shell脚本中判断变量为数字的3种方法

方法1:通过expr 计算变量与一个整数值相加,如果能正常执行则为整数,否则执行出错,$?将是非0的值

代码如下:

expr $args + 0 &>/dev/null

方法2:打印变量通过sed替换的方式,将变量中的数字替换为空,如果执行替换后变量为空,则为整数

代码如下:

echo $args | sed 's/[0-9]//g'

如果判断负数则再用sed过滤负号

代码如下:

echo $args | sed 's/[0-9]//g' | sed 's/-//g'

下面的脚本通过两个函数来实现数值判断。代码很简单,就不加注释了。

代码如下:

#!/bin/bash
usage(){
cat <<EOF
USEAGE:sh $0args1 args2
exit 1
EOF
}
checkInt(){
expr $1+ 0&>/dev/null
[ $? -ne 0] &
}
checkInt1(){
tmp=`echo $1|sed 's/[0-9]//g'`
[ -n "${tmp}"]&
}
[ $# -ne 2]&&usage
args1=$1
args2=$2
checkInt $args1
checkInt1 $args2
if[ $args1 -gt $args2 ];then
echo "yes,$args1 greate than $args2"
else
echo "no,$args1 less than $args2"
fi

(0)

相关推荐

  • Shell脚本中判断变量为数字的3种方法

    方法1:通过expr 计算变量与一个整数值相加,如果能正常执行则为整数,否则执行出错,$?将是非0的值 复制代码 代码如下: expr $args + 0 &>/dev/null 方法2:打印变量通过sed替换的方式,将变量中的数字替换为空,如果执行替换后变量为空,则为整数 复制代码 代码如下: echo $args | sed 's/[0-9]//g' 如果判断负数则再用sed过滤负号 复制代码 代码如下: echo $args | sed 's/[0-9]//g' | sed 's/-/

  • PHP中判断变量为空的几种方法小结

    1. isset功能:判断变量是否被初始化 说明:它并不会判断变量是否为空,并且可以用来判断数组中元素是否被定义过注意:当使用isset来判断数组元素是否被初始化过时,它的效率比array_key_exists高4倍左右 复制代码 代码如下: $a = '';$a['c'] = '';if (!isset($a)) echo '$a 未被初始化' . "";if (!isset($b)) echo '$b 未被初始化' . "";if (isset($a['c'])

  • PHP中判断变量为空的几种方法分享

    1. isset功能:判断变量是否被初始化  说明:它并不会判断变量是否为空,并且可以用来判断数组中元素是否被定义过  注意:当使用isset来判断数组元素是否被初始化过时,它的效率比array_key_exists高4倍左右 复制代码 代码如下: $a = '';$a['c'] = '';if (!isset($a)) echo '$a 未被初始化' . "";if (!isset($b)) echo '$b 未被初始化' . "";if (isset($a['c

  • shell脚本中echo显示内容带颜色的实现方法

    shell脚本中echo显示内容带颜色显示,echo显示带颜色,需要使用参数-e 格式如下: 复制代码 代码如下: echo -e "\033[字背景颜色:文字颜色m字符串\033[0m" 例如: 复制代码 代码如下: echo -e "\033[41;36m something here \033[0m" 其中41的位置代表底色, 36的位置是代表字的颜色 注: 1.字背景颜色和文字颜色之间是英文的"" 2.文字颜色后面有个m 3.字符串前后可

  • Shell脚本中判断输入参数个数的方法

    $#代表了命令行的参数数量,可以看以下实例: 复制代码 代码如下: if [ $# != 1 ] ; then echo "USAGE: $0 TABNAME" echo " e.g.: $0 CDR_CALL_20040701" exit 1; fi 位置参数 $1, $2,..., $N,$#代表了命令行的参数数量, $0代表了脚本的名字 -ne    不等于 ----------------------- shell 编程中使用到得if语句内判断参数 –b 当

  • Shell脚本中判断输入变量或者参数是否为空的方法

    1.判断变量 复制代码 代码如下: read -p "input a word :" word if  [ ! -n "$word" ] ;then     echo "you have not input a word!" else     echo "the word you input is $word" fi 2.判断输入参数 复制代码 代码如下: #!/bin/bash if [ ! -n "$1"

  • shell脚本中一键部署zookeeper集群服务的方法

    目录 一键部署zookeeper集群服务 1. 编写脚本情况分析 2. 脚本代码部分 3. 实验测试部分 一键部署zookeeper集群服务 1. 编写脚本情况分析 Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目. Zookeeper适合安装奇数台服务器. 脚本完成后将会产生:一个领导者(Leader) ,多个跟随者(Follower) 组成的集群. 此脚本默认的安装包为:apache-zookeeper-3.5.7-bin.tar.gz,如果使用其他版本,自

  • c#中判断字符串是不是数字或字母的方法

    一.判断字母 复制代码 代码如下: string str = Console.ReadLine();if (char.isLetter(str)){}else if (char.IsDigit(str)){} if(ch>='a'&&ch<='z') 小写字母if(ch>='A'&&ch<='Z') 大写字母数字也一样.判断汉字一般是输入 >255 因为汉字是大字符集二.判断输入的是不是数字 复制代码 代码如下: try{int n = 0;n

  • JavaScript判断是否为数字的4种方法及效率比较

    今天针对不同的数值判定方式在chrome上做了一个效率的对比,结果如下: 注意:通过正则表达式仅能用于字符串中的内容是否是纯数值,而不能用于判断是否是数值对象.放在此处仅用于对比. 其代码如下: var ret; var o = 1; var pattern = /^(-?\d*.?\d*)$/; var toStr = {}.toString; var array = {}; array["[object Number]"] = "number"; console

  • shell 脚本中常用的内置变量(Bash 内置变量)

    $FUNCNAME.$LINENO.$PWD FUNCNAME和LINENO 变量经常用于脚本的调试 FUNCNAME 表示当前函数的名字,作用范围仅限函数中使用,在函数外无值 LINENO 表示当前所在脚本中变量出现在的行号 PWD 表示当前目录, 对应于 pwd命令 现有个脚本 a.sh 内容如下 #!/bin/bash testa() { echo 'func='$FUNCNAME,$LINENO } testa echo 'lineno:'$LINENO echo 'xx:'$FUNCN

随机推荐