erro 'operador binário condicional esperado' no ramo composto

1

Estou executando um programa desse tipo:

    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

É um erro de relatório

    $ 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'

Eu examinei cuidadosamente linha por linha.

Qual pode ser o problema?

    
por JawSaw 03.04.2018 / 07:29

2 respostas

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

Você terá que comparar com $int em ambas as comparações:

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

ou

if (( int >= min_val )) && (( int <= max_val )); then
    
por 03.04.2018 / 07:44
4

Seu -le não tem um operando à esquerda.

    
por 03.04.2018 / 07:39

Tags