linux test 比较大小,Linux test、[]、[[]]总结及性能比较

➜  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 10

1

2

3

4

5

6

7

8

9

10

seq 10  0.00s user 0.00s system 69% cpu 0.003 total

注意:[]是test的精简表达式,在[] 表达式中,常见的>,运算符,还有逻辑运算符|| && 它需要用-a[and] –o[or]表示

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值