我可以使用变量作为比较运算符吗?

问题描述

我想使用一个变量作为比较运算符。可能吗?像这样:

x=10
y=20
t="<"
res=`expr $x $y $t`

x=10
y=20
t="-lt"
if [ $x $y $t ]; then
    ..
fi

我认为哪种方法都行。

解决方法

您为什么不仅仅进行测试*?对的,这是可能的。 Shell是解释性语言。命令test[是别名)与其他任何命令一样接受参数。这些也可以是变量。

示例:

#!/usr/bin/env sh

x=10
y=20
t="-lt"

if [ $x $t $y ]; then
    echo "a"
fi

if [ $y $t $x ]; then
    echo "b"
else
    echo "c"
fi

t="-ge"

if [ $y $t $x ]; then
    echo "d"
fi

输出:

a
c
d

*您的示例不起作用,因为您在值(变量$t$x)之后(而不是在它们之间)后面有运算符(变量$y)。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...