文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>test命令的使用

test命令的使用

时间:2006-08-23  来源:sosogh

一.在bash中使用test命令有3种方式: (1)test (2)[] (3)[[]] 第一跟第二种是等价的,但是第三种就有点区别(个人认为[[]]是[]的增强版)   二.test的目的: 测试某个条件是真还是假 然后根据真,假来决定下一步该做什么,典型的就是应用在if中,如: if [ 1 -eq 1 ];then echo 'true';else echo 'false';fi     三.有什么好测? (1)测试文件的特性,如:什么类型,是否存在 (2)测试字符串:2个字符串是否相等,1个字符串是否空,非空 (3)测试2个整数:相等?不等?大于?小于? (4)逻辑组合:同时,任一,     (1)测试文件的特性 (具体的内容请看info coreutilis test) -b file  如果file存在且是xxx属性,此表达式则为真 -c file -d file -f file -h file -L file -p file -S file -t file -e file -s file -g file -k file -r file -u file -w file -x file -O file -G file   file1 -nt file2 file1 -ot file2 file1 -ef file2   (2)测试字符串 -z  string -n  string string1 = string2 string1 != string2 string1 \> string2 string1 \< string2     ">", "<"是字符串比较操作符,而不是“算术比较符号”。用于比较字符串的大小,使用字典顺序,与当前的locale有关。   string1 \> string2中\>的“反斜杠”,是为了取消>在shell中的特殊意义:重定向   如你在cmdline中输入以下: [ 3 > 2 ] 在看ls命令看看,你当前目录下,是不是多了个“2”文件,因为>在shell中是“重定向”   [ 3 \> 2 ] 这个才是字符比较   [ 12 \>  3 ]     →→→→→→→   $?的值是1,也就是说上面的条件false,因为这个是字符比较,而不是“数值比较”   [ 12 -gt 3 ]     →→→→→→→   $?的值是0,也就是说上面的条件true,因为这个是数值比较,而不是“字符比较”   另外[[]]中的==   !=    =   等3个操作符号跟在[]中有所不同 在[[]]中,以上操作符右边的都不再是string,而是parttern 如: [ 2 = ? ] $?的值是1,false,因为以上的表示“字符2”是否等于“字符?”,肯定的“字符2”不等于“字符?” [[ 2 = ? ]]  (详细的信息可以  help [[ ) $?的值为0,true,因为以上的表示“通配符?”是否能够匹配到“字符2”,因为?在shell中是表示一个字符,所以?匹配2,所以$?的值就是o,true   (3)算术比较(具体信息man test或者info coreuntils test)  arg1  -eq  arg2  arg1  -ne  arg2  arg1  -lt  arg2  arg1  -gt  arg2  arg1  -le  arg2  arg1  -ge  arg2   (4)逻辑组合  ! expr : 如果expr为假,$?才为0,真  expr1 -a expr2:expr1跟expr2同时为真时候,$?才为0  真  expr1 -a expr2:expr1跟expr2任意一个为真时候,$?都为0  真                                                          
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载