复合分支中出现错误“预期条件二元运算符”

复合分支中出现错误“预期条件二元运算符”

我正在运行这样一个程序:

    min_val=1
    max_val=100
    int=50  
    if [[ "$int" =~ ^-?[0-9]+$ ]]; then
        if [[ "$int" -ge "$min_val" && -le "$max_val" ]]; then
            echo "$int is within $min_val to $max_val."
        else
            echo "$int is out of range."
        fi
    else
        echo "int is not an integer." >&2
        exit 1
    fi

就报错了

    $ bash test_integer3.sh
    test_integer3.sh: line 12: conditional binary operator expectedtest_integer3.sh: 
    line 12: syntax error near `"$max_val"'test_integer3.sh: 
    line 12: `    if [[ "$int" -ge "$min_val" && -le "$max_val" ]]; then'

我逐行仔细地检查了。

可能是什么问题?

答案1

if [[ "$int" -ge "$min_val" && -le "$max_val" ]]; then

您必须$int在两个比较中进行比较:

if [[ "$int" -ge "$min_val" ]] && [[ "$int" -le "$max_val" ]]; then

或者,

if (( int >= min_val )) && (( int <= max_val )); then

答案2

你的-le没有左操作数。

相关内容