Tests and Comparisons: Alternatives

Advanced Bash-Scripting Guide:
Prev | Chapter 36. Miscellany | Next

# 36.3. Tests and Comparisons: Alternatives

For tests, the [[ ]] construct may be more appropriate than `[ ]`. Likewise, arithmetic comparisons might benefit from the (( )) construct.

    a=8

    # All of the comparisons below are equivalent.
    test "$a" -lt 16 && echo "yes, $a < 16"         # "and list"
    /bin/test "$a" -lt 16 && echo "yes, $a < 16"
    [ "$a" -lt 16 ] && echo "yes, $a < 16"
    [[ $a -lt 16 ]] && echo "yes, $a < 16"          # Quoting variables within
    (( a < 16 )) && echo "yes, $a < 16"             # [[ ]] and (( )) not necessary.

    city="New York"
    # Again, all of the comparisons below are equivalent.
    test "$city" \< Paris && echo "Yes, Paris is greater than $city"
                                      # Greater ASCII order.
    /bin/test "$city" \< Paris && echo "Yes, Paris is greater than $city"
    [ "$city" \< Paris ] && echo "Yes, Paris is greater than $city"
    [[ $city < Paris ]] && echo "Yes, Paris is greater than $city"
                                      # Need not quote $city.

    # Thank you, S.C.

Prev | Home | Next
Shell Wrappers | Up | Recursion: a script calling itself