什么是" -le"在shell脚本?

时间:2016-01-15 09:12:49

标签: linux shell if-statement conditional-statements

我正在经历this code。我想知道是什么意思 以下代码段中的-le

if [ $stage -le 2 ]; then

在其中一个问题中,它表示-le代表<=字符串,但这是在Perl中。这里也一样吗?

此外,我想知道$stage变量是否会自动更新。它在开始时已初始化为0,但稍后会如何增加?

3 个答案:

答案 0 :(得分:6)

  

-le检查左操作数的值是否小于或等于   (<=)右操作数的值,如果是,则条件变为真。

考虑:

$a=10
$b=20

然后[ $a -le $b ]为真。

答案 1 :(得分:2)

如上所述in the documentation

  

整数比较

     

(...)

     

-lt :小于

if [ "$a" -lt "$b" ]

因此,$a$b(在您的情况下为$stage2)的值解释为整数并执行比较。如果第一个元素小于或等于第二个元素,则测试成功,then部分将被执行。

正如文档后面所述,人们也可以使用<=

  

<= :小于或等于(在双括号内)

(("$a" <= "$b"))

然后使用双括号(如文档中所述)。

答案 2 :(得分:2)

-le小于或等于:

if [ $stage -le 2 ];

与:

相同
stage <= 2