shell编程 之 test命令

shell编程里的测试test命令基本可以分为3种数据类型,每种都不一样。个人更倾向于理解为条件语句的写法规则,就是test加条件加判断语句。

1 数值类型

基本可以分为6个判断:-eq等于,-ne不等于,-gt大于,-lt小于,-ge大于等于,-le小于等于

实例:a=1;b=2

if test $[a] -eq $[b]    #如果a等于b,那就...,-ne,-gt,,等等都可以,另外提一句,要是不是一个算式的话,可以不加方括号,$a + $b

then

echo "a=b"    #缩进4个4个都行,习惯性缩进4个

else

echo "a!=b"

ps:算式有两种写法:$[a + b]和`expr $a + $b`

2 字符串

有4个判断:= ,!= , -z (长度为0)和-n(长度不为0)

实例:astr='hehehehe' ; bstr='hahahaha'

if test $astr = $bstr

then

echo "astr = bstr"

else

echo "astr !=bstr"

fi

3 文件测试

基本上有9个常用的参数,基本格式是test + 参数 +文件名,参数分别是:

-e:exists,存在这样的一个文件;

-r:readable,文件是可读的;

-w:writable,文件的可写的;

-x:文件是可执行的,

-s:存在且不为空

-d:directory,存在目录

-f:file,存在且为普通文件,

-c:文件存在而且为字符型的特殊文件    #这个地方怎么理解呢,可以和ls命令中最前面的一个字符相关联:‘-’表示文件。d则表示目录,l表示连接文件,b表示设备文件里面的可供存储的接口设备,c表示设备文件里面的串行端口设置。https://zhidao.baidu.com/question/1820545103813500748.htm  

实例:

cd /etc

if test -f /etc/passwd        #此处可以结合与或非逻辑语句:形如 if test -e ./notFile -o -e ./bash 表示存在./notFile 或者./bash

                then

                     echo "yes"

        else 

           echo "no"

        fi

上一篇:ASP.NET中关于XML的AJAX的读取与删除


下一篇:xcode archive 一直是灰色的