test 等价 [

专有命令[ ( 左中括号, 特殊字符). 这个命令与test命令等价, 并且出于效率上的考虑,
这是一个内建命令. 这个命令把它的参数作为比较表达式或者作为文件测试, 并且根据比较的结
果来返回一个退出状态码(0 表示真, 1表示假).

if test condition-true结构与if [ condition-true ] 完全相同. 左中括号,
[ , 是 调用test命令的标识. 而关闭条件判断用的的右中括号, ]
,在if/test结构中并不是严格必需
的, 但是在Bash的新版本中必须要求使用.

 

test命令在Bash中是内建命令, 用来测试文件类型, 或者用来比较字符串. 因此, 在Bash
脚本中, test命令并不会调用外部的/usr/bin/test 中的test命令, 这是sh-utils工具包中
的一部分. 同样的, [ 也并不会调用/usr/bin/[ , 这是/usr/bin/test 的符号链接.

shell> type test
test is a shell builtin
shell> type :
: is a shell builtin
shell> type '['
[ is a shell builtin
shell> type '[['
[[ is a shell keyword
shell> type ']'
bash: type: ]: not found
shell> type ']]'
]] is a shell keyword

 

test, /usr/bin/test, [ ] , 和/usr/bin/[ 都是等价命令

[[ ]]结构比[ ] 结构更加通用. 这是一个扩展的test命令, 是从ksh88 中引进的.在版本2.02的Bash中, 引入了这个扩展命令!

Bash把[[ $a -lt $b ]] 看作一个单独的元素, 并且返回一个退出状态码. 注意[[是一个关键字, 并不是一个命令.

[[和]]之间所有的字符都不会发生文件名扩展或者单词分割, 但是会发生参数扩展命令替换.

使用[[ ... ]]条件判断结构, 而不是[ ... ], 能够防止脚本中的许多逻辑错误. 比如,
&&, ||, <, 和> 操作符能够正常存在于[[ ]]条件判断结构中, 但是如果出现在[ ]结构中的话, 会报错.

 

时间: 2024-11-02 15:45:34

test 等价 [的相关文章

案例分析:跳出率的大小是否等价于网站的页面质量高低

我想很多seoer朋友刚开始从事seo工作的时候都跟笔者一样经常看到关于网站的用户的友好体验.页面质量高低等等词,然后判断这些的标准因素之一就是我们网站的跳出率的高低.网站的跳出率高就被挂上你的网站的用户体验差,网站的页面查.的确跳出率是可以反映出页面的质量,但是凡事都有另一面问题,并不一定跳出率高就等价于网站的页面质量差.对此笔者将在下文的一个例子中分析为什么笔者会这么说. 在笔者开始分析自己的观点之前,我们有必要先了解一下对于跳出率的定义?我们一般会把一个访客进入你的网站,其后关闭你的网站,

等价和类似关系

针对继承可能会产生这样的一个争论:继承只能改善原基础类的函数吗?若答案是肯定的,则衍生类型就是与基础类完全相同的类型,因为都拥有完全相同的接口.这样造成的结果就是:我们完全能够将衍生类的一个对象换成基础类的一个对象!可将其想象成一种"纯替换".在某种意义上,这是进行继承的一种理想方式.此时,我们通常认为基础类和衍生类之间存在一种"等价"关系--因为我们可以理直气壮地说:"圆就是一种几何形状".为了对继承进行测试,一个办法就是看看自己是否能把它们套

UVa 562 Dividing coins (0-1背包&amp;amp;等价转化)

562 - Dividing coins Time limit: 3.000 seconds http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=503 It's commonly known that the Dutch have invented copper-wire. Two Dutch men were

jQuery函数的等价原生函数代码

 我们针对常用的jQuery方法以及其等价原生方法的性能做了一些测试(1, 2, 3). 我知道你在想什么.原生方法明显要比jQuery方法快,因为jQuery方法要处理浏览器兼容以及其他一些事情.是的,我完全赞成.写这篇文章并不是出于反对使用jQuery,但如果你针对的是现代浏览器,那么使用原生方法会使性能有很大的提升. 许多开发者没有意识到大多数他们使用的jQuery方法可以使用原生方法,或者更轻量级的方法来代替.下面是一些代码示例,展示一些常用的jQuery方法,以及其等价原生方法. 译者

【shell 】 test, /usr/bin/test, [ ], 和/usr/bin/[都是等价命令

 test, /usr/bin/test, [ ], 和/usr/bin/[都是等价命令 #!/bin/bash   echo  if test -z "$1"    then      echo "No command-line arguments."    else      echo "First command-line argument is $1."  fi   echo   if /usr/bin/test -z "$1&

离散数学等价式证明题,,,,求急!!!!!!!!

问题描述 离散数学等价式证明题,,,,求急!!!!!!!! 第8题第一个 解决方案 q->p !(q & !p) !q | p p->(q->p) !p | !q | p !q p->q !p | q !(p->(p->q)) (!p | !p | q) !q 左右都是!q

c++-运行结果左右不等价,请问什么原因?

问题描述 运行结果左右不等价,请问什么原因? 要求:809*??=800*??+9*??+1 其中??代表的两位数8*??的结果为两位数,9*??的结果为3位数.求??代表的两位数,及809*??后的结果. 代码如下:#includelong output(long blong i){printf(""n%ld/%ld=809*%ld+%ld""biib%i);}int main(){long int abi;a=809;for(i=10;i{b=i*a+1;if(

转换-有没有关于“将A算法等价转化为B算法”的资料或书籍?

问题描述 有没有关于"将A算法等价转化为B算法"的资料或书籍? 就是将算法进行等价转换的一些方法:串行算法转并行算法,或者是原来的算法只有一个循环变量,而转换后的算法新增了一个循环变量. 解决方案 真正的并行算法还是要靠人去找. 比如说,现在我们还没有找到一种求圆周率10进制结果的并行算法,虽然它的串行算法有很多. 解决方案二: 如果串行算法能转化为并行的,编译器和cpu就帮你做了. 你说的书籍无非就是编译原理,编译的过程其实就是寻找等价并且最优化的算法.

Sed 与 Linux 等价命令代码鉴赏(转)

  参考了     http://www.chinaunix.net/jh/24/307045.html                       sed     http://bbs.chinaunix.net/viewthread.php?tid=316482                 awk 这两篇文章,感觉关于Sed还有东西可以写.顺便考察考察自己的Sed水平.                                          增加了<<sed 与 unix 命