shell 逻辑运算符、逻辑表达式用法详解
[root@localhost ~]# [ 1 -eq 1 ] && echo 'ok'
-eq 等于 应用于:整型比较
注意:所有字符 与逻辑运算符直接用“空格”分开,不能连到一起。
精简表达式
> 大于 应用于:整型比较 在[] 中,不能使用 表示字符串
5. 逻辑的『和(and)』『或(or)』
[root@localhost ~]# [ 2 -gt 1 -a 3 -lt 4 ] && echo 'ok'
-p 侦测是否为程序间传送信息的 name pipe 或是 FIFO
-le 小于或等于 应用于:整型比较
ok
-s 侦测是否为『非空白档案』
-z 空字符串
-d 常用!侦测『目录』是否存在
1. 关于档案与目录的侦测逻辑卷标!
[root@localhost ~]# [ 1 -eq 1 ] && echo 'ok'
[root@localhost ~]# test 1 = 1 && echo 'ok'
-c 侦测是否为一个『 character 档案』
二、逻辑表达式
使用方法:test EXPRESSION
$ time (for m in {1..100000}; do [[ -d . ]];done;)
ok
[[]] 表达式
注意:[[]] 运算符只是[]运算符的扩充。能够支持<,>符号运算不需要转义符,它还是以字符串比较大小。里面支持逻辑运算符:|| &&
-g 侦测是否具有『 SGID 』的属性一、逻辑运算符
复制代码 代码示例:
< 小于 应用于:整型比较 在[] 中,不能使用 表示字符串ok
!= 不等于 应用于:整型或字符串比较 如果在[] 中,只能是字符串
[root@localhost ~]# test 1 -eq 1 && echo 'ok'
-r 侦测是否为可读的属性
复制代码 代码示例:
介绍下shell的逻辑运算符。
2. 关于程序的逻辑卷标!
[root@localhost ~]$ [[ 2 < 3 ]] && echo 'ok'
-n 非空字符串
-a 双方都成立(and) 逻辑表达式 –a 逻辑表达式
real 0m0.658s
sys 0m0.100s 通常,大家习惯用if [];then这样的形式。而[[]]的出现,根据ABS所说,是为了兼容><之类的运算符。
三、性能比较
ok
-ge 大于或等于 应用于:整型比较
[root@localhost ~]# test -d /etc/ && echo 'ok'
|| 逻辑的 OR 的意思
user 0m0.558s
user 0m0.524s
不考虑对低版本bash和对sh的兼容的情况下,用[[]]是兼容性强,而且性能比较快,在做条件运算时,可以使用该运算符。
-ne 不等于 应用于:整型比较-o 单方成立(or) 逻辑表达式 –o 逻辑表达式
-nt 第一个档案比第二个档案新
ok
ok
$ time (for m in {1..100000}; do [ -d . ];done;)
复制代码 代码示例:
-b 侦测是否为一个『 block 档案』-S 侦测是否为一个『 socket 标签档案』
-G 侦测是否由 GID 所执行的程序所拥有
user 0m0.275s
[root@localhost ~]# if test 1 = 1 ; then echo 'ok'; fi
-ef 第一个档案与第二个档案为同一个档案( link 之类的档案)
[root@localhost ~]$ [[ 2 < 3 && 4 > 5 ]] && echo 'ok'
[] 表达式
如:
-bash: 2: No such file or directory
bash的条件表达式中有三个几乎等效的符号和命令:test,[]和[[]]。
-e 侦测『某个东西』是否存在! -x 侦测是否为可执行的属性
复制代码 代码示例:
[root@localhost ~]# [ 2 -gt 1 && 3 -lt 4 ] && echo 'ok'
-L 侦测是否为一个『 symbolic link 的档案』
[root@localhost ~]# [ 2 < 1 ] && echo 'ok'
注意:在[] 表达式中,常见的>,<需要加转义字符,表示字符串大小比较,以acill码 位置作为比较。 不直接支持<>运算符,还有逻辑运算符|| && 它需要用-a[and] –o[or]表示。
&& 逻辑的 AND 的意思
-f 常用!侦测『档案』是否存在 eg: if [ -f filename ]
运算符号 代表意义
= 等于 应用于:整型或字符串比较 如果在[] 中,只能是字符串
以下是比较它们性能,发现[[]]是最快的。
sys 0m0.085s -ot 第一个档案比第二个档案旧
-lt 小于 应用于:整型比较
4. 两个档案之间的判断与比较 ;例如[ test file1 -nt file2 ]
$ time (for m in {1..100000}; do test -d .;done;)
ok
[root@localhost ~]# [ 2 \< 1 ] && echo 'ok'
ok逻辑卷标 表示意思
-w 侦测是否为可以写入的属性
3. 关于档案的属性侦测!
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://www.juheyunku.com/jiaob/shell/6616.shtml
相关文章
热门TAG
命令 外链 企业网站 白帽 php 织梦教程 dedecms修改内容 javascript 织梦 功能 标签 调用 详解 技巧 权重 服务器 网站流量 Dedecms 织梦cms HTML tags标签 python jquery教程 jquery windows 蜘蛛 搜索引擎 网站收录 JSP 实例解析最新文章
-
PHP生成奖状
时间:2021-01-06
-
python实现输入五个数并求
时间:2021-01-06
-
php检测网站是否正常打开
时间:2021-01-05
-
python怎么右对齐
时间:2021-01-05
-
Python3爬虫入门之Python3的安
时间:2021-01-05
-
如何用PHP接收http请求头信
时间:2021-01-05
-
数据库怎么连接用php写的
时间:2021-01-05
-
php后缀怎么打开
时间:2021-01-05
热门文章
-
解析shell字段分隔符的用法(图文)
时间:2020-12-22
-
Python3爬虫进阶:MongoDB存储(非关系型数
时间:2020-12-29
-
如何在Linux或者UNIX下调试Bash Shell脚本
时间:2020-12-22
-
关于php中匿名函数与回调函数的详解
时间:2020-12-29
-
php文档怎么打开
时间:2020-12-29
-
php检测网站是否正常打开
时间:2021-01-05
-
PHP PHP_EOL 换行符
时间:2020-12-29
-
python实现输入五个数并求平均值
时间:2021-01-06
-
浅谈Linux Shell的管道与重定向
时间:2020-12-23
-
如何检测Django是否安装成功
时间:2020-12-29
