【问题标题】:Can I use variable as the comparison operator?我可以使用变量作为比较运算符吗?
【发布时间】:2020-08-14 08:07:07
【问题描述】:

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

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

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

哪种方法我都可以。

【问题讨论】:

    标签: linux bash shell variables conditional-statements


    【解决方案1】:

    你为什么不只是测试*它?对的,这是可能的。 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
    

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

    【讨论】:

    • 如果我想比较小数怎么办?
    猜你喜欢
    • 2021-09-11
    • 2023-03-30
    • 1970-01-01
    • 2011-10-21
    • 1970-01-01
    • 2021-04-06
    • 1970-01-01
    • 2011-10-16
    • 2011-05-29
    相关资源
    最近更新 更多