Shell 入门教程十九:逻辑运算符的使用

逻辑运算符有三个,分别是:非运算、或运算、与运算。

  • !:非运算符。
  • -o:或运算符。
  • -a:与运算符。

因为 Shell 中并没有布尔类型,所以非运算符主要是对表达式取反。

#!/bin/bash
# author:陈树义
# site:www.chenshuyi.com
a=10
b=20
# 非运算
if !(( a == b ))
then
   echo "a is not equal to b" 
fi
# 或运算
if [ $a -lt 100 -o $b -gt 100 ]
then
   echo "a < 100 or b > 100" 
fi
# 与运算
if [ $a -lt 100 -a $b -gt 15 ]
then
   echo "a < 100 and b > 15" 
fi

值得注意的是,因为 Shell 语言并没有布尔型。所以如果你尝试在非运算符后面跟上一个「布尔值」,那么你会得到错误的结果。

#!/bin/bash
# author:陈树义
# site:http://www.shuyi.me

result=true
if [ !$result ]
then 
  echo "Hello"
fi

按照我们的理解,上面的例子应该不会打印出 Hello 字符,但实际结果是会打印。这是因为 Shell 中根本就没有布尔类型的值,所以 if 表达式中的字符串会被当成是一个字符串,字符串肯定就是 true 了,所以就会打印 Hello。其实如果我们随便输入一串字符,结果还是会输出 Hello。

相关文章

系ubuntu 下面打开终端输入:sudo apt-get install sendmail...
依家我有1个软件goagent目录(大家懂得) 放在/home/gateman/...
其实我想讲的是 cp -L关于-L参数的解释:-L, --dereferenc...
原地址:http://www.rjgc.net/control/content/content.php?...
chroot,即 change root directory (更改 root 目录)。在 li...
简单解析下, stdin就是标准输入, stdout就是标准。举个例子...