有趣的脚本(比较2个整数大小,禁止使用if判断)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有趣的脚本(比较2个整数大小,禁止使用if判断)相关的知识,希望对你有一定的参考价值。


实现以定义变量,脚本传参以及read读入的方式比较2个整数

read方式:

#!/bin/bash
read -p "pls input two num:" a b
#测试字符串是否为0
[ -z "$a" ] || [ -z "$b" ] &&{     #-z:检测字符串长度是否为0,为0返回 true。
echo "pls input two num again:"
exit 1
}
expr $a + 0 &>/dev/null
RETVAL1=$?
expr $b + 0 &>/dev/null
RETVAL2=$?
test $RETVAL1 -eq 0 -a $RETVAL2 -eq 0||{ #-a:与运算,两个表达式都为 true 才返回 true。
echo "Pls input two num again: "
exit 2
}
[ $a -lt $b ] && {
echo "$a < $b"
exit 0
}
[ $a -eq $b ] && {
echo "$a = $b"
exit 0
}
[ $a -gt $b ] && {
echo "$a > $b"
exit 0
}


验证奇迹的时刻:
[[email protected] ~]# sh test1.sh 
Pls input two num:1 2
1 < 2
[[email protected] ~]# sh test1.sh 
Pls input two num:1 1    
1 = 1
[[email protected] ~]# sh test1.sh 
Pls input two num:3 1
3 > 1

脚本传参:

#!/bin/bash
a=$1
b=$2
[ -z "$a" ] || [ -z "$b" ] && {
  echo "pls input two num again:"
  exit 1
}
expr $a + 0 &>/dev/null
RETVAL1=$?
expr $b + 0 &>/dev/null
RETVAL2=$?
test $RETVAL1 -eq 0 -a $RETVAL2 -eq 0 || {
  echo "pls input two num again:"
  exit 2
}
[ $a -lt $b ] && {
echo "$a < $b"
exit 0
}
[ $a -eq $b ] && {
echo "$a = $b"
exit 0
}
[ $a -gt $b ] && {
echo "$a > $b"
exit 0
}



验证奇迹的时刻:
[[email protected] ~]# sh test1.sh 2 3
2 < 3
[[email protected] ~]# sh test1.sh 1 1
1 = 1

定义变量:

#!/bin/bash
a=1
b=1
[ -z "$a" ] || [ -z "$b" ] && {
  echo "pls input two num again:"
  exit 1
}
expr $a + 0 &>/dev/null
RETVAL1=$?
expr $b + 0 &>/dev/null
RETVAL2=$?
test $RETVAL1 -eq 0 -a $RETVAL2 -eq 0 || {
  echo "pls input two num again:"
  exit 2
}
[ $a -lt $b ] && {
echo "$a < $b"
exit 0
}
[ $a -eq $b ] && {
echo "$a = $b"
exit 0
}
[ $a -gt $b ] && {
echo "$a > $b"
exit 0
}

验证奇迹的时刻:
[[email protected] ~]# sh test1.sh 
1 = 1




本文出自 “小菜鸟” 博客,请务必保留此出处http://baishuchao.blog.51cto.com/12918589/1941188

以上是关于有趣的脚本(比较2个整数大小,禁止使用if判断)的主要内容,如果未能解决你的问题,请参考以下文章

shell脚本-比较两个整数大小

shell脚本判断2个整数大小比较出现逻辑错误

比较两个整数的大小

linux shell 如何比较两个整数的大小

脚本应用

3.Shell字符串对比