복합 분기에서 "예상 조건부 이항 연산자" 오류

복합 분기에서 "예상 조건부 이항 연산자" 오류

저는 다음과 같은 프로그램을 실행하고 있습니다.

    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왼쪽 피연산자가 없습니다.

관련 정보