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

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

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

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

时间: 2024-12-29 11:39:43

Linux test、[]、[[]]总结及性能比较的相关文章

Linux的系统级性能剖析工具-perf

一直在找个靠谱且易用的性能分析工具,perf 貌似是很符合要求的,先给出阿里整理的几篇文档: Linux的系统级性能剖析工具-perf-1.pdf Linux的系统级性能剖析工具-perf-2.pdf Linux的系统级性能剖析工具-perf-3.pdf Perf在Linux性能评估中的应用_v3.pdf Linux的系统级性能剖析工具-perf,布布扣,bubuko.com

Linux服务器的那些性能参数指标

Linux服务器的那些性能参数指标 一个基于Linux操作系统的服务器运行的同时,也会表征出各种各样参数信息.通常来说运维人员.系统管理员会对这些数据会极为敏感,但是这些参数对于开发者来说也十分重要,尤其当你的程序非正常工作的时候,这些蛛丝马迹往往会帮助快速定位跟踪问题. 这里只是一些简单的工具查看系统的相关参数,当然很多工具也是通过分析加工/proc./sys下的数据来工作的,而那些更加细致.专业的性能监测和调优,可能还需要更加专业的工具(perf.systemtap等)和技术才能完成哦.毕竟

linux Centos下搭建性能监控Spotlight on Unix

公司要做压力测试,有Linux服务器一台,系统Centos6.5,为了直观的展示系统性能,更好的去分析服务器,故要搭建一个监控.闲言休讲,直奔主题. 首先,Linux服务器一台:系统Centos6.5 其次,在我的笔记本上安装监控软件客户端 软件下载地址链接: 链接:http://pan.baidu.com/s/14Vwlw     密码:tmw4 配置spotlight登陆用户,注意spotlight默认不能使用root用户进行连接,需要用户自己创建一个具有root权限的用户.具体方法新建账号

红帽Linux 6评测:桌面性能比肩Ubuntu

Red Hat发布了Red Hat Enterprise Linux 6,这是近3年来最主要的一次更新.上一个主要版本RHEL 5是2007年5月发布的,使用的是2.6.18内核,虽然增量更新增加了许多内核更新和新特性,但RHEL 5也开始迈入老年.不过我们也不用担心,RHEL 5承诺有10年的维护期,这意味着RHEL 6中新引入的许多功能也会出现在未来7年RHEL 5的更新中,例如在64位平台上,RHEL最大可以扩展支持128个处理器核心和2TB主内存.有人可能会觉得奇怪,但想想RHEL 6要

Linux 服务器的那些性能参数指标

一个基于 Linux 操作系统的服务器运行的同时,也会表征出各种各样参数信息.通常来说运维人员.系统管理员会对这些数据会极为敏感,但是这些参数对于开发者来说也十分重要,尤其当你的程序非正常工作的时候,这些蛛丝马迹往往会帮助快速定位跟踪问题. 这里只是一些简单的工具查看系统的相关参数,当然很多工具也是通过分析加工 /proc./sys 下的数据来工作的,而那些更加细致.专业的性能监测和调优,可能还需要更加专业的工具(perf.systemtap 等)和技术才能完成哦.毕竟来说,系统性能监控本身就是

Linux预热之网络性能问题

一. CPU性能评估 1.vmstat  [-V]  [-n]  [depay  [count]] -V : 打印出版本信息,可选参数 -n : 在周期性循环输出时,头部信息仅显示一次 delay : 两次输出之间的时间间隔 count : 按照delay指定的时间间隔统计的次数.默认是1 如:vmstat 1 3 [email protected]:~$ vmstat 1 3 procs -----------memory---------- ---swap-- -----io---- -sy

linux环境常用的性能监控和协助开发调试工具(附tcpdump常见使用方式)

linux有诸多优秀的工具帮助我们分析服务器各项性能指标和协助开发调试工作.下面只列举比较基础的命令,且一般是集成在linux环境中而不需再次安装的命令.更多更详细的命令可以参考 https://github.com/brendangregg/perf-tools A.CPU进程相关 常用工具列举下:uptime.ps.top.mpstat.pidstat等 uptime: 查看系统运行时间,平均负载等.Load > # of CPUs may mean CPU saturation ps:可查

Linux系统CPU的性能监控及调优

前言: 性能优化是一个老生常谈的话题,典型的性能问题如页面响应慢.接口超时,服务器负载高.并发数低,数据库频繁死锁等.尤其是在“糙快猛”的互联网开发模式大行其道的今天,随着系统访问量的日益增加和代码的臃肿,各种性能问题开始纷至沓来. 在系统层面能够影响应用性能的一般包括三个因素:CPU.内存和IO,今天,我们先谈谈CPU性能的监控以及调优. CPU性能监控 当程序响应变慢的时候,首先使用top.vmstat.ps等命令查看系统的cpu使用率是否有异常,从而可以判断出是否是cpu繁忙造成的性能问题

linux查看磁盘读写性能(iostat命令)的方法

在linux中查看或监控磁盘的读写性能,可以用到iostat命令,本节介绍下其具体用法. 1. 硬盘读写性能 #查看TPS和吞吐量信息 iostat -d -k 1 10 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 14.54 417.21 368.06 15719357562 13867444535 dm-0 104.60 415.64 366.87 15660312829 13822621684 dm-1 0.69 1.57 1.1

Linux磁盘I/O性能监控之iostat详解

iostat 监视I/O子系统 iostat是I/O statistics(输入/输出统计)的缩写,用来动态监视系统的磁盘操作活动. 1. 命令格式 iostat[参数][时间][次数] 2. 命令功能 通过iostat方便查看CPU.网卡.tty设备.磁盘.CD-ROM 等等设备的活动情况, 负载信息. 3. 命令参数 -C 显示CPU使用情况 -d 显示磁盘使用情况 -k 以 KB 为单位显示 -m 以 M 为单位显示 -N 显示磁盘阵列(LVM) 信息 -n 显示NFS 使用情况 -p[磁