Skip to content

Latest commit

 

History

History
131 lines (68 loc) · 4.21 KB

Операции сравнения в bash.md

File metadata and controls

131 lines (68 loc) · 4.21 KB

Операции сравнения

Сравнение целых чисел

  • -eq

    равно

    if [ "$a" -eq "$b" ]

  • -ne

    не равно

    if [ "$a" -ne "$b" ]

  • -gt

    больше

    if [ "$a" -gt "$b" ]

  • -ge

    больше или равно

    if [ "$a" -ge "$b" ]

  • -lt

    меньше

    if [ "$a" -lt "$b" ]

  • -le

    меньше или равно

    if [ "$a" -le "$b" ]

  • <

    меньше (внутри двойных круглых скобок)

    (("$a" < "$b"))

  • <=

    меньше или равно (внутри двойных круглых скобок)

    (("$a" <= "$b"))

  • >

    больше (внутри двойных круглых скобок)

    (("$a" > "$b"))

  • >=

    больше или равно (внутри двойных круглых скобок)

    (("$a" >= "$b"))

Сравнение строк

  • =

    равно

    if [ "$a" = "$b" ]

  • ==

    равно

    if [ "$a" == "$b" ]

    Синоним оператора=

     [[ $a == z* ]]    # истина, если $a начинается с символа "z" (сравнение по шаблону)
     [[ $a == "z*" ]]  # истина, если $a равна z*
    
     [ $a == z* ]      # имеют место подстановка имен файлов и разбиение на слова
     [ "$a" == "z*" ]  # истина, если $a равна z*
  • !=

    не равно

    if [ "$a" != "$b" ]

    Этот оператор используется при поиске по шаблону внутри [[ ... ]].

  • <

    меньше, в смысле величины ASCII-кодов

    if [[ "$a" < "$b" ]]

    if [ "$a" \< "$b" ]

    Обратите внимание! Символ"<"необходимо экранировать внутри [ ].

  • >

    больше, в смысле величины ASCII-кодов

    if [[ "$a" > "$b" ]]

    if [ "$a" \> "$b" ]

    Обратите внимание! Символ">"необходимо экранировать внутри [ ].

    См. Пример 25-6 относительно применения этого оператора сравнения.

  • -z

    строка "пустая", т.е. имеет нулевую длину

  • -n

    строка не "пустая".

Caution

Оператор -n требует, чтобы строка была заключена в кавычки внутри квадратных скобок. Как правило, проверка строк, не заключенных в кавычки, оператором ! -z, или просто указание строки без кавычек внутри квадратных скобок (см. Пример 7-6), проходит нормально, однако это небезопасная, с точки зрения отказоустойчивости, практика. Всегда заключайте проверяемую строку в кавычки. [1]


bash