Лучшее руководство по Shell основные операторы в 2024 году. В этом руководстве вы можете изучить Арифметические операторы,Операторы отношения,Логические операторы,Логические операторы,Строковые операторы,Файл Test Операторы,
Shell и других языков программирования, поддерживает множество операторов, в том числе:
Родной баш не поддерживает простые математические операции, но может быть достигнуто с помощью других команд, таких как AWK и выражение, выражение используется наиболее часто.
выраж является инструментом вычисления выражения, используйте его, чтобы завершить операцию оценки выражений.
Например, чтобы сложить два числа (обратите внимание на использование `анти-кавычки вместо одинарные кавычки '):
#!/bin/bash val=`expr 2 + 2` echo "两数之和为 : $val"
Выполните сценарий, вывод выглядит следующим образом:
两数之和为 : 4
Две вещи, чтобы отметить:
В следующей таблице перечислены общие арифметические операторы, предполагая 10 переменной, переменная Ь 20:
операторы | объяснение | примеров |
---|---|---|
+ | прибавление | `Expr $ а + $ b` результат 30. |
- | вычитание | `Expr $ а - $ b` результат -10. |
* | умножение | `Expr $ A \ * Результаты $ b` за 200. |
/ | разделение | `Expr $ б / $ результат A` 2. |
% | остаток | `Expr $ Ь% результата $ A` 0. |
= | присваивание | а = $ Ь переменной Ь будет присвоить значение а. |
== | Ровный. Используется для сравнения двух чисел, то же возвращение истинного. | [$ A == $ B] возвращает ложь. |
! = | Не равно. Используется для сравнения двух чисел не одни и те же возвращает истину. | [$ A! = $ B] возвращает истину. |
Примечание: Условное выражение должно быть заключено в квадратные скобки, и пробел, например:[$ а == $ Ь] неправильно и должно быть записано в виде[$ а == $ b].
Арифметические операторы примеры являются следующие:
#!/bin/bash # author:本教程 # url:www.w3write.com a=10 b=20 val=`expr $a + $b` echo "a + b : $val" val=`expr $a - $b` echo "a - b : $val" val=`expr $a \* $b` echo "a * b : $val" val=`expr $b / $a` echo "b / a : $val" val=`expr $b % $a` echo "b % a : $val" if [ $a == $b ] then echo "a 等于 b" fi if [ $a != $b ] then echo "a 不等于 b" fi
Выполните сценарий, вывод выглядит следующим образом:
a + b : 30 a - b : -10 a * b : 200 b / a : 2 b % a : 0 a 不等于 b
Примечание:
- Умножение знак (*) должны быть добавлены перед обратной косой черты (\) для достижения умножения;
- если ru., то ru. фи условно отчетность, последующая деятельность будет покрыта.
- В оболочке MAC синтаксиса выраж: $ ((выражение)), где выражение "*" нужно бежать символ "\" .
Относительные операторы поддерживают только цифровые, не поддерживает строку, если значение строки не является числом.
В следующей таблице перечислены наиболее часто используемые операторы сравнения, предполагая 10 переменной, переменная Ь 20:
операторы | объяснение | примеров |
---|---|---|
-eq | Детектирование ли два числа равны, равные возвращает TRUE. | [$ A $ -eq Ь] возвращает ложь. |
-ne | Детектирование ли два числа равны, не равно возвращает истину. | [$ A $ -ne Ь] возвращает истину. |
-gt | Левые больше числа обнаруженных справа, и если да, то он возвращает истину. | [$ A $ -gt Ь] возвращает ложь. |
-lt | Обнаружение число меньше, чем справа налево, и если да, то он возвращает истину. | [$ A $ -lt Ь] возвращает истину. |
-ge | Детектирование ли число равно справа от левой стороны большой, и если да, то он возвращает истину. | [$ A $ -ge Ь] возвращает ложь. |
-le | Является ли число обнаружения меньше или равна справа налево, если он есть, он возвращает истину. | [$ A $ -le Ь] возвращает истину. |
Реляционные операторы примеры являются следующие:
#!/bin/bash # author:本教程 # url:www.w3write.com a=10 b=20 if [ $a -eq $b ] then echo "$a -eq $b : a 等于 b" else echo "$a -eq $b: a 不等于 b" fi if [ $a -ne $b ] then echo "$a -ne $b: a 不等于 b" else echo "$a -ne $b : a 等于 b" fi if [ $a -gt $b ] then echo "$a -gt $b: a 大于 b" else echo "$a -gt $b: a 不大于 b" fi if [ $a -lt $b ] then echo "$a -lt $b: a 小于 b" else echo "$a -lt $b: a 不小于 b" fi if [ $a -ge $b ] then echo "$a -ge $b: a 大于或等于 b" else echo "$a -ge $b: a 小于 b" fi if [ $a -le $b ] then echo "$a -le $b: a 小于或等于 b" else echo "$a -le $b: a 大于 b" fi
Выполните сценарий, вывод выглядит следующим образом:
10 -eq 20: a 不等于 b 10 -ne 20: a 不等于 b 10 -gt 20: a 不大于 b 10 -lt 20: a 小于 b 10 -ge 20: a 小于 b 10 -le 20: a 小于或等于 b
В следующей таблице перечислены наиболее часто используемые логические операторы, предполагая 10 переменной, переменная Ь 20:
операторы | объяснение | примеров |
---|---|---|
! | Нефункционирующем, выражение истинно возвращает ложь, в противном случае она возвращает истину. | [! Ложь] возвращает истину. |
-о | Операция ИЛИ, есть истинное выражение возвращает истину. | [$ A -lt 20 -o $ B -gt 100] возвращает истину. |
-a | И операции, два выражения верны, прежде чем вернуться верно. | [$ A -lt 20 -a $ B -gt 100] возвращает ложь. |
Логические операторы примеры являются следующие:
#!/bin/bash # author:本教程 # url:www.w3write.com a=10 b=20 if [ $a != $b ] then echo "$a != $b : a 不等于 b" else echo "$a != $b: a 等于 b" fi if [ $a -lt 100 -a $b -gt 15 ] then echo "$a -lt 100 -a $b -gt 15 : 返回 true" else echo "$a -lt 100 -a $b -gt 15 : 返回 false" fi if [ $a -lt 100 -o $b -gt 100 ] then echo "$a -lt 100 -o $b -gt 100 : 返回 true" else echo "$a -lt 100 -o $b -gt 100 : 返回 false" fi if [ $a -lt 5 -o $b -gt 100 ] then echo "$a -lt 100 -o $b -gt 100 : 返回 true" else echo "$a -lt 100 -o $b -gt 100 : 返回 false" fi
Выполните сценарий, вывод выглядит следующим образом:
10 != 20 : a 不等于 b 10 -lt 100 -a 20 -gt 15 : 返回 true 10 -lt 100 -o 20 -gt 100 : 返回 true 10 -lt 100 -o 20 -gt 100 : 返回 false
Ниже приведено описание логического оператора Shell, предполагая 10 переменной, переменная Ь 20:
операторы | объяснение | примеров |
---|---|---|
&& | Логическое И | [[$ A -lt 100 && $ B -gt 100]] возвращает ложь |
|| | Логическое ИЛИ | [[$ A -lt 100 || $ B -gt 100]] Возвращает значение True |
Примеры логических операторов заключаются в следующем:
#!/bin/bash # author:本教程 # url:www.w3write.com a=10 b=20 if [[ $a -lt 100 && $b -gt 100 ]] then echo "返回 true" else echo "返回 false" fi if [[ $a -lt 100 || $b -gt 100 ]] then echo "返回 true" else echo "返回 false" fi
Выполните сценарий, вывод выглядит следующим образом:
返回 false 返回 true
В следующей таблице перечислены часто используемые строковые операторы, взятые в качестве переменной "ABC", переменная Ь "EFG":
операторы | объяснение | примеров |
---|---|---|
= | Обнаружение две строки равны, равные возвращает TRUE. | [$ A = $ Ь] возвращает ложь. |
! = | Детектирование ли две строки равны, не равны возвращает истину. | [$ A! = $ B] возвращает истину. |
-z | Детектирование ли длина строки равна 0 для 0 возвращает истину. | [-z $ A] возвращает ложь. |
-n | Детектирование ли длина строки равна 0, отлична от нуля возврата верно. | [-n $ A] возвращает истину. |
ул | Определение, является ли строка пустой, не пустой возвращает истину. | [$ A] возвращает истину. |
Строка Операторы примеры заключаются в следующем:
#!/bin/bash # author:本教程 # url:www.w3write.com a="abc" b="efg" if [ $a = $b ] then echo "$a = $b : a 等于 b" else echo "$a = $b: a 不等于 b" fi if [ $a != $b ] then echo "$a != $b : a 不等于 b" else echo "$a != $b: a 等于 b" fi if [ -z $a ] then echo "-z $a : 字符串长度为 0" else echo "-z $a : 字符串长度不为 0" fi if [ -n $a ] then echo "-n $a : 字符串长度不为 0" else echo "-n $a : 字符串长度为 0" fi if [ $a ] then echo "$a : 字符串不为空" else echo "$a : 字符串为空" fi
Выполните сценарий, вывод выглядит следующим образом:
abc = efg: a 不等于 b abc != efg : a 不等于 b -z abc : 字符串长度不为 0 -n abc : 字符串长度不为 0 abc : 字符串不为空
Тестовый файл оператор используется для обнаружения различных атрибутов файлов Unix.
Атрибут описано обнаружение следующим образом:
операторы | объяснение | примеров |
---|---|---|
-b файл | Обнаружение ли файл является файлом блочного устройства, и если да, то он возвращает истину. | [-b $ File] возвращает ложь. |
-c файл | Обнаружение ли файл является файлом символьного устройства, и если да, то он возвращает истину. | [-c $ File] возвращает ложь. |
-d файл | Обнаружение ли файл является каталогом, и если да, то он возвращает истину. | [-d $ File] возвращает ложь. |
-f файл | Определение является ли файл обычным файлом (ни один каталог или файл устройства), и если да, то он возвращает истину. | [-f $ File] возвращает истину. |
-g файл | Обнаружение ли файл имеет бит SGID, и если да, то он возвращает истину. | [-g $ File] возвращает ложь. |
-k файл | Детектирование имеет ли файл липкий бит (Липкий бит), и если да, то он возвращает истину. | [-k $ File] возвращает ложь. |
-p файл | Обнаружение ли файл является именованным каналом, и если да, то он возвращает истину. | [-p $ File] возвращает ложь. |
-u файл | Обнаружение ли файл имеет бит SUID, и если да, то он возвращает истину. | [-u $ File] возвращает ложь. |
-r файл | Он определяет, является ли файл для чтения, и если да, то возвращает истину. | [-r $ File] возвращает истину. |
-w файл | Обнаружение ли файл может быть записан, и если да, то он возвращает истину. | [-w $ File] возвращает истину. |
-x файл | Определение того, является ли исполняемый файл, и если да, то он возвращает истину. | [-x $ File] возвращает истину. |
-s файл | Детектирование пуст ли файл (размер файла больше, чем 0), не пусто возвращает истину. | [-s $ File] возвращает истину. |
-e файл | Обнаружить файл (включая каталог) существует, и если да, то он возвращает истину. | [-e $ File] возвращает истину. |
#!/bin/bash # author:本教程 # url:www.w3write.com file="/var/www/w3big/test.sh" if [ -r $file ] then echo "文件可读" else echo "文件不可读" fi if [ -w $file ] then echo "文件可写" else echo "文件不可写" fi if [ -x $file ] then echo "文件可执行" else echo "文件不可执行" fi if [ -f $file ] then echo "文件为普通文件" else echo "文件为特殊文件" fi if [ -d $file ] then echo "文件是个目录" else echo "文件不是个目录" fi if [ -s $file ] then echo "文件不为空" else echo "文件为空" fi if [ -e $file ] then echo "文件存在" else echo "文件不存在" fi
Выполните сценарий, вывод выглядит следующим образом:
文件可读 文件可写 文件可执行 文件为普通文件 文件不是个目录 文件不为空 文件存在