- 7.3. Операции сравнения
- Как сравнивать числа в оболочке Bash в Linux
- Операторы для Баш сравнения чисел
- Примеры в деталях операторов сравнения числа в Bash:
- 1. оператор -eq
- 2. оператор -ge
- 3. оператор -gt
- 4. оператор -le
- 5. оператор -lt
- 6. оператор -ne
- Операторы сравнения в UNIX shell
- Сравнение чисел
- Пример использования в IF
- Сравнение строк
- Пример использования в IF
- Несколько условий (логические операторы)
- Дополнительно
- Как написать IF в одну строку
- Арифметические операции
- Ошибка «Integer expression expected»
- Как сравнивать числа в оболочке Bash в Linux
- Операторы для Баш сравнения чисел
- Примеры в деталях операторов сравнения числа в Bash:
- 1. оператор -eq
- 2. оператор -ge
- 3. оператор -gt
- 4. оператор -le
- 5. оператор -lt
- 6. оператор -ne
- xandroskin blog | it or not it
- Структуры «И» / «ИЛИ»
- Инвертирование результата
- Сравнение чисел
- Сравнение строк
- Работа с файловой системой
7.3. Операции сравнения
сравнение целых чисел
if [ «$a» -eq «$b» ]
if [ «$a» -ne «$b» ]
if [ «$a» -gt «$b» ]
больше или равно
if [ «$a» -ge «$b» ]
if [ «$a» -lt «$b» ]
меньше или равно
if [ «$a» -le «$b» ]
меньше или равно (внутри двойных круглых скобок)
больше (внутри двойных круглых скобок)
больше или равно (внутри двойных круглых скобок)
сравнение строк
if [ «$a» = «$b» ]
if [ «$a» == «$b» ]
if [ «$a» != «$b» ]
Этот оператор используется при поиске по шаблону внутри [[ . ]].
меньше, в смысле величины ASCII-кодов
if [[ «$a» if [ «$a» \ » необходимо экранировать внутри [ ].
больше, в смысле величины ASCII-кодов
if [[ «$a» > «$b» ]]
if [ «$a» \> «$b» ]
Обратите внимание! Символ «>» необходимо экранировать внутри [ ].
См. Пример 25-6 относительно применения этого оператора сравнения.
строка «пустая» , т.е. имеет нулевую длину
строка не «пустая» .
-eq | сравнить цифры в bash для равенства, возвращает 0, если равно | if [ $a -eq $b ] then |
-ge | сравнения чисел в bash, если больше или равно. Результат возвращает 0, если больше или равно | if [ $a -ge $b ] then |
-gt | сравнивает числа в bash, если больше. | if [ $a -gt $b ] then |
-le | сравнивает числа в bash, если меньше или равно. | if [ $a -le $b ] then |
-lt | сравнивает числа в bash, если меньше. | if [ $a -lt $b ] then |
-ne | сравнивает числа в bash, если не равно или нет. | if [ $a -ne $b ] then |
Примеры в деталях операторов сравнения числа в Bash:
1. оператор -eq
Этот оператор сравнивает числа, будет проверять значение равно или нет. Если оно равно, то возвращается 0.
В приведенном выше примере мы взяли числа 2 и 3 в первый раз и система возвратила значение 1, однако, когда мы приняли одинаковые значения для а и б, переменная возвращает нулевое значение.
2. оператор -ge
Этот оператор сравнивает числа и проверяет значения на больше или равно. Если значение больше или равно, то он возвращаемое значение 0.
3. оператор -gt
Этот оператор сравнения чисел будет проверять число на большее. Если значение больше, то возвращает 0.
4. оператор -le
Этот оператор сравнения числа будет проверять значения на меньше или равно. Если оно меньше или равно, то возвращаемое значение 0.
5. оператор -lt
Этот оператор сравнения числа будет проверять значения на меньшее. Если число меньше, то возвращаемое значение 0.
6. оператор -ne
Этот оператор сравнения числа будет проверять значения на не равно. Если числа не равны, то возвращаемое значение равно 0.
Источник
Операторы сравнения в UNIX shell
Статья представляет из себя шпаргалку по операторам сравнения в системах на базе UNIX. Применимо к основным командным интерпретаторам — sh (Bourne Shell), bash (Bourne Again Shell), csh, tcsh и некоторым другим.
Сравнение чисел
Оператор | Описание | Пример |
---|---|---|
-eq | [ $x -eq $y ] Равно. Для результат True необходимо, чтобы x был равен y. | [ 1 -eq 2 ] — False [ 3 -eq 3 ] — True |
-ne | [ $x -ne $y ] Не равно. Оператор обратный -eq. | [ 1 -ne 2 ] — True [ 3 -ne 3 ] — False |
-gt | [ $x -gt $y ] Больше. То есть проверяет больше ли x чем y. | [ 1 -gt 2 ] — False [ 3 -gt 3 ] — False [ 5 -gt 4 ] — True |
-lt | [ $x -lt $y ] Меньше. Проверяет, что число в левой части (x) меньше числа в правой (y) | [ 1 -lt 2 ] — True [ 3 -lt 3 ] — False [ 5 -lt 4 ] — False |
-ge | [ $x -ge $y ] Больше или равно. | [ 1 -ge 2 ] — False [ 3 -ge 3 ] — True [ 5 -ge 4 ] — True |
-le | [ $x -le $y ] Меньше или равно. | [ 1 -le 2 ] — True [ 3 -le 3 ] — True [ 5 -le 4 ] — False |
Пример использования в IF
if [ $x -eq $y ]
then
echo ‘true’
else
echo ‘false’
fi
Сравнение строк
Оператор | Описание | Пример |
---|---|---|
= | [ «$a» = «$b» ] Равно. То есть строка a равна строке b. | [ ‘linux’ = ‘windows’ ] — False [ ‘unix’ = ‘unix’ ] — True |
!= | [ «$a» != «$b» ] Не равно. Оператор обратный =. | [ ‘linux’ != ‘windows’ ] — True [ ‘unix’ != ‘unix’ ] — False |
= |
$b ]] Содержит.
То есть в строке a есть b.
Обратите внимание, что для данного оператора используются двойные квадратные скобки.
‘windows’ ]] — False
[[ ‘unix’ =
‘ni’ ]] — True
Оператор проверяет, является ли строка b с нулевым размером.
[ -z » ] — True
Оператор обратный -z.
[ -n » ] — False
Оператор проверяет, является ли строка b не пустой.
[ » ] — False
Оператор проверяет, существует ли файл $file.
[ -f » ] — False
Пример использования в IF
if [ «$a» = «$b» ]
then
echo ‘true’
elif [[ «$a» =
$b ]]
then
echo ‘true’
else
echo ‘false’
fi
Несколько условий (логические операторы)
Оператор | Описание | Пример |
---|---|---|
-a | [ $x -eq $y -a $z -le $w ] Логическое И. В данном примере, проверяет, что (x равно y) И (z меньше или равно w) | [ 1 -eq 2 -a 3 -le 4 ] — False [ 5 -eq 5 -a 3 -le 4 ] — True [ 5 -eq 5 -a 6 -le 4 ] — False |
-o | [ $x -ne $y -o $z -ge $w ] Логическое ИЛИ. В данном примере, проверяет, что (x не равно y) ИЛИ (z больше или равно w) | [ 1 -eq 2 -o 3 -le 4 ] — True [ 5 -eq 5 -o 3 -le 4 ] — True [ 5 -eq 5 -o 6 -le 4 ] — True [ 1 -eq 2 -o 6 -le 4 ] — False |
Дополнительно
Как написать IF в одну строку
if [ $x -ne 0 ]; then echo 1; fi
if [ $x -ne 0 -a $y -eq 1 ]; then echo 1; else echo 2; fi
Арифметические операции
Расчет можно выполнить одним из следующих методов:
sum=$(( $sum1 + $sum2 + $sum3 ))
sum=`expr $sum1 + $sum2 + $sum3`
* где операции могут быть следующие:
- + — сложение;
- — — вычитание;
- * — умножение;
- / — деление;
- % — остаток от деления;
- = — приравнивание.
Ошибка «Integer expression expected»
Чаще всего, возникает при попытках использовать не тот оператор, например для строки -le (который должен использоваться для числа).
Примеры неправильного использования операторов:
Источник
Как сравнивать числа в оболочке Bash в Linux
Главное меню » Операционная система Linux » Как сравнивать числа в оболочке Bash в Linux
Операторы для Баш сравнения чисел
оператор | что делает | пример |
---|---|---|
-eq | сравнить цифры в bash для равенства, возвращает 0, если равно | if [ $a -eq $b ] then |
-ge | сравнения чисел в bash, если больше или равно. Результат возвращает 0, если больше или равно | if [ $a -ge $b ] then |
-gt | сравнивает числа в bash, если больше. | if [ $a -gt $b ] then |
-le | сравнивает числа в bash, если меньше или равно. | if [ $a -le $b ] then |
-lt | сравнивает числа в bash, если меньше. | if [ $a -lt $b ] then |
-ne | сравнивает числа в bash, если не равно или нет. | if [ $a -ne $b ] then |
Примеры в деталях операторов сравнения числа в Bash:
1. оператор -eq
Этот оператор сравнивает числа, будет проверять значение равно или нет. Если оно равно, то возвращается 0.
В приведенном выше примере мы взяли числа 2 и 3 в первый раз и система возвратила значение 1, однако, когда мы приняли одинаковые значения для а и б, переменная возвращает нулевое значение.
2. оператор -ge
Этот оператор сравнивает числа и проверяет значения на больше или равно. Если значение больше или равно, то он возвращаемое значение 0.
3. оператор -gt
Этот оператор сравнения чисел будет проверять число на большее. Если значение больше, то возвращает 0.
4. оператор -le
Этот оператор сравнения числа будет проверять значения на меньше или равно. Если оно меньше или равно, то возвращаемое значение 0.
5. оператор -lt
Этот оператор сравнения числа будет проверять значения на меньшее. Если число меньше, то возвращаемое значение 0.
6. оператор -ne
Этот оператор сравнения числа будет проверять значения на не равно. Если числа не равны, то возвращаемое значение равно 0.
Источник
xandroskin blog | it or not it
При создании shell-скриптов часто возникает необходимость проверки каких-то условий. Самым простым оператором для этого является if / then / else. Конструкцию if / then всегда необходимо заканчивать словом fi.
Принцип работы его заключается в следующем: проверяется условие в if, если выражение условия возвращает код завершения 0 (истинно), то выполняется оператор после then (оператор1); если код завершения отличен от нуля (ложно), то выполняется альтернативное действие после else (оператор2) или выход из условия fi в случае отсутствия необязательного условия else.
Условия могут быть вложенными друг в друга; условия могут состоять из нескольких выражений, объединенных логическими операциями И / ИЛИ. При написании условий рекомендуется использовать двойные квадратные кавычки [[,]] для обрамления выражений. В противном случае возникает ошибка интерпретатора, требующая экранирования знаков вроде «
Структуры «И» / «ИЛИ»
Инвертирование результата
Сравнение чисел
При сравнении чисел используются операторы, являющиеся англоязычными сокращениями:
Сравнение строк
При сравнении строк используются привычные операторы:
Кроме математических выражений, для строк доступны следующие условия:
Работа с файловой системой
Следующие условия помогут при работе с файлами:
Допускается отсутствие служебных слов if / then:
Допускается использование оператора test, который служит для проверки состояния файлов, сравнения строк и арифметических сравнений:
Источник