【发布时间】: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
我想使用一个变量作为比较运算符。可能吗?比如:
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
你为什么不只是测试*它?对的,这是可能的。 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),而不是在它们之间。
【讨论】: