Advanced Bash-Scripting Guide: Искусство программирования на языке сценариев командной оболочки | ||
---|---|---|
Назад | Глава 33. Разное | Вперед |
Операции сравнения, выполняемые с помощью конструкции [[ ]], могут оказаться предпочтительнее, чем [ ]. Аналогично, при сравнении чисел, в более выгодном свете представляется конструкция (( )).
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.