33.3. Операции
сравнения: Альтернативные решения
Операции сравнения, выполняемые с помощью конструкции [[ ]], могут оказаться
предпочтительнее, чем [
]. Аналогично, при сравнении чисел, в более выгодном
свете представляется конструкция ((
)).
a=8
# Все, приведенные ниже, операции сравнения -- эквивалентны.
test "$a" -lt 16 && echo "да, $a < 16" # "И-список"
/bin/test "$a" -lt 16 && echo "да, $a < 16"
[ "$a" -lt 16 ] && echo "да, $a < 16"
[[ $a -lt 16 ]] && echo "да, $a < 16" # Внутри [[ ]] и (( )) переменные
(( a < 16 )) && echo "да, $a < 16" # не обязательно брать в кавычки.
city="New York"
# Опять же, все, приведенные ниже, операции -- эквивалентны.
test "$city" \< Paris && echo "Да, Paris больше, чем $city" # В смысле ASCII-строк.
/bin/test "$city" \< Paris && echo "Да, Paris больше, чем $city"
[ "$city" \< Paris ] && echo "Да, Paris больше, чем $city"
[[ $city < Paris ]] && echo "Да, Paris больше, чем $city" # Кавычки вокруг $city не обязательны.
# Спасибо S.C.