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

Abs*_*cDo 4 bash

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

    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
Run Code Online (Sandbox Code Playgroud)

它报告错误

    $ 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'
Run Code Online (Sandbox Code Playgroud)

我逐行仔细检查过。

可能是什么问题?

Kus*_*nda 5

if [[ "$int" -ge "$min_val" && -le "$max_val" ]]; then
Run Code Online (Sandbox Code Playgroud)

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

if [[ "$int" -ge "$min_val" ]] && [[ "$int" -le "$max_val" ]]; then
Run Code Online (Sandbox Code Playgroud)

或者,

if (( int >= min_val )) && (( int <= max_val )); then
Run Code Online (Sandbox Code Playgroud)