🏠 | 💻 IT | Linux | Bash |

Операторы сравнения Bash

Бинарные операторы сравнения сравнивают две переменные или величины.

Для сравнения строк используются одни операторы сравнения для чисел другие.

Сравнение чисел

-eq

is equal to - равняется

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

-ne

is not equal to - не равняется

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

-gt

is greater than

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

-eq

is equal to - равняется

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

-ge

is greater than or equal to

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

-lt

is less than

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

-le

is less than or equal to

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

<

is less than (within double parentheses)

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

<=

is less than or equal to (within double parentheses)

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

>

is greater than (within double parentheses)

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

>=

is greater than or equal to (within double parentheses)

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

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

=

is equal to - равняется

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

Caution Note the whitespace framing the =. if [ "$a"="$b" ] is not equivalent to the above.

==

is not equal to - не равняется

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

This is a synonym for =. Note The == comparison operator behaves differently within a double-brackets test than within single brackets. [[ $a == z* ]] # True if $a starts with an "z" (pattern matching). [[ $a == "z*" ]] # True if $a is equal to z* (literal matching). [ $a == z* ] # File globbing and word splitting take place. [ "$a" == "z*" ] # True if $a is equal to z* (literal matching). # Thanks, Stéphane Chazelas

!=

is not equal to - не равняется

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

This operator uses pattern matching within a [[ ... ]] construct.

<

is less than, in ASCII alphabetical order

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

Note that the "<" needs to be escaped within a [ ] construct.

>

is greater than, in ASCII alphabetical order

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

Note that the ">" needs to be escaped within a [ ] construct. See Example 27-11 for an application of this comparison operator.

-z

string is null, that is, has zero length

String='' # Zero-length ("null") string variable.

if [ -z "$String" ] then echo "\$String is null." else echo "\$String is NOT null." fi # $String is null.

-n

string is not null.

Caution The -n test requires that the string be quoted within the test brackets. Using an unquoted string with ! -z, or even just the unquoted string alone within test brackets (see Example 7-6) normally works, however, this is an unsafe practice. Always quote a tested string.

Статьи о Bash
Bash
Bash Scripting
if else: Условные операторы
Цикл while
date
Переход на новую строку
Арифметические операции
Передать файл или пароль по SFTP в Bash скрипте
Ошибки Bash
Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящуюю по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: