Shell脚本:如果语句评估错误

问题描述

我在shell脚本的for循环中有一个简单的if语句

#!/bin/bash


params=(2 3)
for i in "${params[@]}"
do
    echo "$i"
    cpus=1
    if [[ $i>20 ]]; then
        echo "wrong! : $i"
        cpus=20
    else
        cpus=$i
    fi
    echo "param-in: $i"
    #do something
done

当我执行代码时,当$i>20时它会将TRUE评估为i=3。为什么会这样?

解决方法

>执行字符串比较;您想要整数比较。请改用-gt