複合分岐における「予測条件付き二項演算子」エラー

複合分岐における「予測条件付き二項演算子」エラー

私は次のプログラムを実行しています。

    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

2つの比較で比較する必要があります$int

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

または、

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

おすすめ記事