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

Posted

tags:

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

情况描述:当时写一个使用单分支if语句和read读入实现整数大小比较

当时写的脚本如下

#! /bin/bash
read -p "ple input second number:" a1 b1
expr 10 + $a1 &>/dev/null
RETVAL1=$?
expr 10 + $b1 &>/dev/null
RETVAL2=$?
if [ $RETVAL1 -ne 0 -o $RETVAL2 -ne 0 ]
then
echo "ple input two int number"
exit 1
fi
if [ "$a1" -gt "$b1" ] ; then
echo "$a1">"$b1"
exit 1
fi
if [ "$a1" -ge "$b1" ] ;then
echo "$a1"="$b1"
exit 1
fi
if [ "$a1" -lt "$b1" ] ;then
echo "$a1" < "$b1"
exit 1
fi

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

测试结果不符合逻辑

shell脚本判断2个整数大小比较出现逻辑错误_双引号_02

修改后如下代码

#! /bin/bash
read -p "ple input second number:" a1 b1
expr 10 + $a1 &>/dev/null
RETVAL1=$?
expr 10 + $b1 &>/dev/null
RETVAL2=$?
if [ $RETVAL1 -ne 0 -o $RETVAL2 -ne 0 ]
then
echo "ple input two int number"
exit 1
fi
if [ "$a1" -gt "$b1" ] ; then
echo "$a1>$b1"
exit 1
fi
if [ "$a1" -ge "$b1" ] ;then
echo "$a1=$b1"
exit 1
fi
if [ "$a1" -lt "$b1" ] ;then
echo "$a1 < $b1"
exit 1
fi

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

测试结果如下

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


反思总结:一个小小的标点符号不正确就会导致整个代码逻辑都不正确;

echo “后面用双引号括起里面的字符”


以上是关于shell脚本判断2个整数大小比较出现逻辑错误的主要内容,如果未能解决你的问题,请参考以下文章

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

编写shell脚本,实现如下功能:(1)从命令行读入2个整数;(2)对两个数进行大小比较;(3)在屏幕上输出

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

shell中字符串比较,整数大小比较

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

如何在 shell 脚本中对整数比较进行逻辑或运算?