美文网首页Linux生物信息学与算法我用 Linux
【Shell笔记>操作符】不用if也能进行条件判断?

【Shell笔记>操作符】不用if也能进行条件判断?

作者: 王诗翔 | 来源:发表于2018-07-28 22:49 被阅读21次

今天看到Shell中与操作符&&与或操作符||的含义时发现它们跟我在其他一些语言(比如R和Python)中有点不太一样:

  • 逻辑“与”的运算符号是&&,它表示当前面的命令执行成功后才会执行它后面的命令
  • 逻辑“或”,它在 Linux 系统中的运算符号为||,表示当前面的命令执行失败后才会执行它后面的命令

认真注意下,虽然一般看来使用结果和两者为真皆为真的与操作,以及两者任意为真则为真的或操作效果一致,但Shell中这两者二元操作符只有左侧为真或为假时才执行后面的命令,这实际上提供了一种条件判断的实现。

看命令代码:

[root@linuxprobe Desktop]# [ 10 -gt 10 ] && echo "yes" || echo "no"
no
[root@linuxprobe Desktop]# [ 10 -eq 10 ] && echo "yes" || echo "no"
yes

第1条语句可以视为以下if语句的精简版

[root@linuxprobe Desktop]# if [ 10 -gt 10 ]; then
> echo "yes"
> else
> echo "no"
> fi
no

有意思吧?!&&接条件为真时的操作,而||接为假时的操作。

不过值得注意的是不能执行多条命令,而且&&||不能反过来:

[root@linuxprobe Desktop]# [ 10 -gt 10 ] || echo "no" && echo "yes"
no
yes

根据我在文章一开始提到两个运算符的含义,想想是为什么呢?欢迎在下方留言讨论。

相关文章

  • 【Shell笔记>操作符】不用if也能进行条件判断?

    今天看到Shell中与操作符&&与或操作符||的含义时发现它们跟我在其他一些语言(比如R和Python)中有点不太...

  • MongoDB 条件操作符

    MongoDB中条件操作符有: (>) 大于 - $gt (<) 小于 - $lt (>=) 大于等于 - $gt...

  • MongoDB query notes

    基础 无条件查询: (多)条件查询 条件操作符 $lt $lte $gt $gte $ne $in 包含 $...

  • swift ??理解

    概念 ??这个操作符可以快速的对nil进行条件判断。这个操作符可以判断:在左侧的值是 非nil的Optional值...

  • Linux shell

    linux shell中的条件判断 bash [] 符号[]俩个符号左右都要有空格分隔内部操作符与操作变量之间要有...

  • 9.Shell编程二:Shell条件判断

    Shell条件判断

  • MongoDB 条件操作符

    1.比较操作符: 基本语法对象的键值对为:{key:num}而使用条件操作符则为:{key:{$gt:num}} ...

  • 【JavaScript的条件操作符】

    条件操作符:(?: ) 条件操作符:(表达式1 ? 表达式2 : 表达式3 ); 先进行表达式1的判断,如果表达式...

  • shell条件判断

    数字条件判断 num_1, num_2 相等: if [ num_1 -eq num_2 ] 不相等: i...

  • shell 条件判断

    if...the判断方式 单个条件式时 多重复杂条件判断式 多重判断 例子 时间区间计算脚本 看书的一些学习笔记

网友评论

    本文标题:【Shell笔记>操作符】不用if也能进行条件判断?

    本文链接:https://www.haomeiwen.com/subject/dhmamftx.html