当前位置:  操作系统/服务器>linux

linux shell 逻辑运算符、逻辑表达式详细介绍

    来源: 互联网  发布时间:2014-10-15

    本文导语:  一、逻辑运算符 逻辑卷标 表示意思 1. 关于档案与目录的侦测逻辑卷标! -f 常用!侦测『档案』是否存在 eg: if [ -f filename ] -d 常用!侦测『目录』是否存在 -b 侦测是否为一个『 block 档案』 -c 侦测是否为一个『 ch...

一、逻辑运算符

逻辑卷标 表示意思 1. 关于档案与目录的侦测逻辑卷标! -f 常用!侦测『档案』是否存在 eg: if [ -f filename ] -d 常用!侦测『目录』是否存在 -b 侦测是否为一个『 block 档案』 -c 侦测是否为一个『 character 档案』 -S 侦测是否为一个『 socket 标签档案』 -L 侦测是否为一个『 symbolic link 的档案』 -e 侦测『某个东西』是否存在! 2. 关于程序的逻辑卷标! -G 侦测是否由 GID 所执行的程序所拥有 -O 侦测是否由 UID 所执行的程序所拥有 -p 侦测是否为程序间传送信息的 name pipe 或是 FIFO (老实说,这个不太懂!) 3. 关于档案的属性侦测! -r 侦测是否为可读的属性 -w 侦测是否为可以写入的属性 -x 侦测是否为可执行的属性 -s 侦测是否为『非空白档案』 -u 侦测是否具有『 SUID 』的属性 -g 侦测是否具有『 SGID 』的属性 -k 侦测是否具有『 sticky bit 』的属性 4. 两个档案之间的判断与比较 ;例如[ test file1 -nt file2 ] -nt 第一个档案比第二个档案新 -ot 第一个档案比第二个档案旧 -ef 第一个档案与第二个档案为同一个档案( link 之类的档案) 5. 逻辑的『和(and)』『或(or)』 && 逻辑的 AND 的意思 || 逻辑的 OR 的意思
运算符号 代表意义 = 等于 应用于:整型或字符串比较 如果在[] 中,只能是字符串 != 不等于 应用于:整型或字符串比较 如果在[] 中,只能是字符串 < 小于 应用于:整型比较 在[] 中,不能使用 表示字符串 > 大于 应用于:整型比较 在[] 中,不能使用 表示字符串 -eq 等于 应用于:整型比较 -ne 不等于 应用于:整型比较 -lt 小于 应用于:整型比较 -gt 大于 应用于:整型比较 -le 小于或等于 应用于:整型比较 -ge 大于或等于 应用于:整型比较 -a 双方都成立(and) 逻辑表达式 –a 逻辑表达式 -o 单方成立(or) 逻辑表达式 –o 逻辑表达式 -z 空字符串 -n 非空字符串
二、逻辑表达式

test 命令

使用方法:test EXPRESSION

如:

代码如下:

[root@localhost ~]# test 1 = 1 && echo 'ok'
ok
[root@localhost ~]# test -d /etc/ && echo 'ok'
ok
[root@localhost ~]# test 1 -eq 1 && echo 'ok'
ok
[root@localhost ~]# if test 1 = 1 ; then echo 'ok'; fi
ok


注意:所有字符 与逻辑运算符直接用“空格”分开,不能连到一起。

精简表达式

代码如下:

[] 表达式
[root@localhost ~]# [ 1 -eq 1 ] && echo 'ok'
ok
[root@localhost ~]# [ 2 < 1 ] && echo 'ok'
-bash: 2: No such file or directory
[root@localhost ~]# [ 2 < 1 ] && echo 'ok'
[root@localhost ~]# [ 2 -gt 1 -a 3 -lt 4 ] && echo 'ok'
ok
[root@localhost ~]# [ 2 -gt 1 && 3 -lt 4 ] && echo 'ok'
-bash: [: missing `]'

注意:在[] 表达式中,常见的>, 5 ]] && echo 'ok'
ok


注意:[[]] 运算符只是[]运算符的扩充。能够支持符号运算不需要转义符,它还是以字符串比较大小。里面支持逻辑运算符:|| &&

三、性能比较

bash的条件表达式中有三个几乎等效的符号和命令:test,[]和[[]]。通常,大家习惯用if [];then这样的形式。而[[]]的出现,根据ABS所说,是为了兼容>

    
 
 

您可能感兴趣的文章:

  • linux 无法分逻辑盘
  • 请问Linux有没有主分区和逻辑分区这个么一个说法呢!一般比较主流的应该怎么分呢?
  • 在linux下如何挂载windows的vfat逻辑分区啊 ??
  • linux 如何查看逻辑卷
  • linux内存管理虚拟地址 逻辑地址 交换分区(swp)
  • linux 下对strlen做逻辑判断的问题.
  • Windows下的FAt32格式的逻辑分区为什么在Linux 下不能识别!!
  • 谁知道在分区的时候linux swap是作为主分区还是逻辑分区,linux ext2呢??急!急!急!
  • 求教linux下 主分区和逻辑分区之间如何转换
  • 请问,如果我把现在的win2000的一个逻辑分区删了,用这个空间建一个swap和/来装linux,且把lilo装到mbr上,lilo能正常引导这两个OS么?
  • 我xp系统上原本有1个主分和1个扩展分区,装linux我从逻辑分区F盘里面划出50G出来。把50G分成 20+20,
  • 《操作系统原理linux篇》逻辑地址,线性地址 物理地址
  • linux shell中 if else以及大于、小于、等于逻辑表达式介绍
  • linux 下面向磁盘逻辑结构的信息隐藏系统
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Linux c++ boost库正则表达式用法
  • 关于linux下的正表达式
  • linux bash shell命令:文本搜索工具grep正则表达式元字符集(基本集)
  • linux下有什么函数可以处理正则表达式?
  • linux grep 正则表达式 求解释
  • linux如何匹配正则表达式
  • Linux find命令的搜索路径可否使用正则表达式
  • LINUX正则表达式 空格问题
  • linux 正则表达式
  • 请问linux下有哪些轻量级的正则表达式库,我在一个应用中使用
  • linux正侧表达式过滤的问题
  • 100分求助linux下与grep有关的正则表达式匹配问题
  • 关于LINUX下面AWK的正则表达式,求解答,在线等
  • 我如何能得到字符串中的关系表达式运算后的值?(linux 下,用 c++)
  • 麻烦解释一下Linux下正则表达式元字符( )的意思?
  • 问两个linux c的正则表达式语法问题:贪婪模式和位置指定
  • linux 正则表达式深度解析
  • Linux 正则表达式详解
  • linux shell 正则表达式(BREs,EREs,PREs)差异比较
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 在虚拟机上安装的linux上,能像真的linux系统一样开发linux程序么?
  • 关于LINUX下面AWK的正则表达式,求解答,在线等 iis7站长之家
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • Linux c字符串中不可打印字符转换成16进制
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux
  • linux命令大全详细分类介绍及常用linux命令文档手册下载
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在没有linux的盘,只有DOS启动盘)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3