[Linux] Логические операторы и логические операторы в оболочке

обзор

Логические операторы в [[]] используют && и ||, что рекомендуется.
Логические операторы в [] используют -a (указывает и), -o (указывает или)

[[]]форма

Суть логических операций заключается в том, что обе стороны оператора представляют собой два истинных и ложных условия суждения, которые можно использовать для определения того, является ли содержимое строкой или числом.

Далее представлены логические операторы Shell.Предположим, что переменная a равна 10, а переменная b равна 20. Обратите внимание, что пример 双括号:

оператор иллюстрировать пример
&& Логическое И [[ $a -lt 100 && $b -gt 100 ]] возвращает ложь
|| Логическое ИЛИ [[ $a -lt 100 || $b -gt 100 ]] возвращает истину

Пример:

#!/bin/bash


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

[] форма

В одинарных скобках могут выполняться логические операции, но также могут быть включены логическое И, логическое или синтаксическое.

В следующей таблице перечислены часто используемые логические операторы, предполагая, что переменная a равна 10, а переменная b равна 20:

оператор иллюстрировать пример
! Не операция, вернуть false, если выражение истинно, иначе вернуть true. [ !false ] возвращает истину.
Операция ИЛИ возвращает истину, если одно из выражений истинно. [ $a -lt 20 -o $b -gt 100 ] возвращает истину.
И операция, оба выражения истинны, чтобы вернуть истину. [ $a -lt 20 -a $b -gt 100 ] возвращает ложь.

Пример:

#!/bin/bash
# author:菜鸟教程
# url:www.runoob.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 小于 100 且 $b 大于 15 : 返回 true"     #执行打印 
else
   echo "$a 小于 100 且 $b 大于 15 : 返回 false"
fi
if [ $a -lt 100 -o $b -gt 100 ]
then
   echo "$a 小于 100 或 $b 大于 100 : 返回 true"       #执行打印 
else
   echo "$a 小于 100 或 $b 大于 100 : 返回 false"
fi
if [ $a -lt 5 -o $b -gt 100 ]
then
   echo "$a 小于 5 或 $b 大于 100 : 返回 true"
else
   echo "$a 小于 5 或 $b 大于 100 : 返回 false"        #执行打印 
fi

Supongo que te gusta

Origin blog.csdn.net/m0_45406092/article/details/129101034
Recomendado
Clasificación