博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux test、[]、[[]]总结及性能比较
阅读量:5771 次
发布时间:2019-06-18

本文共 1624 字,大约阅读时间需要 5 分钟。

  hot3.png

➜  time (for m in {1..100000}; do test -d .; done;)( for m in {1..100000}; do; test -d .; done; )  0.21s user 0.15s system 98% cpu 0.366 total➜  time (for m in {1..100000}; do [ -d . ]; done;)( for m in {1..100000}; do; [ -d . ]; done; )  0.23s user 0.15s system 98% cpu 0.388 total➜  time (for m in {1..100000}; do [[ -d . ]]; done;)( for m in {1..100000}; do; [[ -d . ]]; done; )  0.07s user 0.07s system 97% cpu 0.141 total➜      time (for m in {1..1000000}; do test -d .; done;)( for m in {1..1000000}; do; test -d .; done; )  2.24s user 1.51s system 95% cpu 3.927 total➜  time (for m in {1..1000000}; do [[ -d . ]]; done;)( for m in {1..1000000}; do; [[ -d . ]]; done; )  0.68s user 0.59s system 99% cpu 1.282 total➜  time (for m in {1..1000000}; do [[ -d . ]]; done;)( for m in {1..1000000}; do; [[ -d . ]]; done; )  0.70s user 0.60s system 99% cpu 1.310 total➜  time (for m in {1..1000000}; do [ -d . ]; done;)( for m in {1..1000000}; do; [ -d . ]; done; )  2.36s user 1.48s system 99% cpu 3.855 total➜  time (for m in {1..1000000}; do [ -d . ]; done;)( for m in {1..1000000}; do; [ -d . ]; done; )  2.42s user 1.50s system 99% cpu 3.938 total➜  time seq 1012345678910seq 10  0.00s user 0.00s system 69% cpu 0.003 total

注意:[]是test的精简表达式,在[] 表达式中,常见的>,<需要加转义字符,表示字符串大小比较,以acill码 位置作为比较。 不直接支持<>运算符,还有逻辑运算符|| && 它需要用-a[and] –o[or]表示

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

bash的条件表达式中有三个几乎等效的符号和命令:test,[]和[[]]。通常,大家习惯用if [];then这样的形式。而[[]]的出现,根据ABS所说,是为了兼容><之类的运算符。比较它们性能,发现[[]]是最快的。

不考虑对低版本bash和对sh的兼容的情况下,用[[]]是兼容性强,而且性能比较快,在做条件运算时候,可以使用该运算符。

转载于:https://my.oschina.net/ylchou/blog/523354

你可能感兴趣的文章
分布式配置中心disconf第一部(基本介绍)
查看>>
Scenario 9-Shared Uplink Set with Active/Active uplink,802.3ad(LACP)-Flex-10
查看>>
UML类图中的六种关系
查看>>
探寻Interpolator源码,自定义插值器
查看>>
一致性哈希
查看>>
mysql(待整理)
查看>>
使用PullToRefresh实现下拉刷新和上拉加载
查看>>
mysql
查看>>
2012年电信业八大发展趋势
查看>>
Web日志安全分析工具 v2.0发布
查看>>
JS重载
查看>>
python2和python3同安装在Windows上,切换问题
查看>>
php加速工具xcache的安装与使用(基于LNMP环境)
查看>>
android超链接
查看>>
redhat tomcat
查看>>
统计数据库大小
查看>>
IO流的学习--文件夹下文件的复制
查看>>
第十六章:脚本化HTTP
查看>>
EXCEL表中如何让数值变成万元或亿元
查看>>
Cisco PIX防火墙的安装流程
查看>>