• shell常用测试命令


    预定义变量:                                                                                                                                                        

     预定义变量是由Bash程序预先定义好的一类特殊变量,用户只能使用预定义变量,而不能创建新的预定义变量,也不能直接为预定义变量赋值。预定义比变量使用"$"符合和另一个符号组合表示。

    $#:表示获取命令中位置参数的个数。

    $*:表示获取所有位置参数的内容。

    $?:表示前一条命令执行后的返回状态,返回值为0表示执行正确,任何非0值均表示出现异常。

    $0:表示获取当前执行的脚本或程序的名称。

    $n:表示获取执行shell脚本的第n个参数,n=1..9,如果大于9用大括号括起来${10}

    $$:获取当前shell的进程号(pid)  示例:echo "$$" >m.pid

    $!:执行上一个指令的PID,上一个后台运行进程的进程号

    $_:在此之前的命令(上一个命令)或脚本的最后一个参数

    预定义变量进阶:                                                                                                                              

    $* : 将命令行所有参数视为单个字符串,等同于“$1$2$3”

    $@ : 将命令行每个参数视为单独的字符串,等同于“$1” “$2” “$3”。这是将参数传递给其他程序的最佳方法,因为他会保留所有内嵌在每个参数里的任何空白;

    文件测试:                                                                                                                                                           

    -d测试是否为目录(Directory)。

    -s file 文件大小非0时为真。

    -e测试目录或文件是否存在(Exist)。

    -f测试是否为文件(File)。

    -r测试当前用户是否有权限读(Read)。

    -w测试当前用户是否有权限写(Write)。

    -x测试是否有执行权限(Excute)。

    附:-d参数使用示例:#[ -d /tmp/ ] 

              #echo $?    //查看前一条命令的返回值,0表示成立,tmp目录存在。

              #[ -d /tmp/ ]  && echo "YES"  //如果tmp目录存在则在屏幕上打印YES。

    整数值比较:                                                                                                                                         

    -eq第1个数等于(Equal)第2个

    -ne第1个数不等于(Not Equal)第2个数

    -gt第1个数大于(Greater Than)第2个数

    -lt第1个数小于(Lesser Than)第2个数

    -le第1个数小于或等于(Lesser or Equal)第2个数

    -ge第1个数大于或等于(Greater or Equal)第2个数

      附:-gt参数使用示例:#[ 6 -gt 5 ] && echo "Too many"

    在 [] 中使用的比较符 在(()) , [[]]中使用的比较符
    -eq ==
    -ne !=
    -gt >
    -ge >=
    -lt <
    -le <=

    字符串比较:                                                                                                                                                

    =第1个字符串与第2个字符串相同。

    !=第1个字符串与第2个字符串不相同,其中“!”表示取反的意思。

    -z检查字符串是否为空(Zero),对于未定义或赋予空值的变量将视为空串。

    -n 检查值是否不为空

    逻辑测试:                                                                                                                                             

     与&&:逻辑与,表示“而且”的意思,只有当前后两个条件都成立时,整个测试命令的返回值才为0。使用Test命令测试时,“&&”可以改为“-a”。

    或||:逻辑或,表示“或者”的意思,只要前后两个条件中有一个成立时,整个测试命令的返回值即为0(结果成立)。使用Test命令测试时,“||”可以改为“-o”。

    非!:逻辑否,表示“不”的意思,只有当指定的条件不成立时,整个测试命令的返回值才为0(结果成立)。

    [] 单中括号与双 [[]] 总结:                                                                                                                                                                                                                                      

    [] : 使用-a,-o,-eq,-gt,-ne类似的字母对比符使用单中括号;

    [[]] :使用&&,||,>,=,<,测试符号;

    [[ -f a.sh || -e b.sh ]]&&echo "0" || echo "1"

    [ -f a.sh ] || [ -f b.sh ]
    [ -f a.sh ] && [ -f b.sh ]

    重要:如果括号中包含变量必须要用 “ ”括起来;

    查看shell脚本执行过程                                                                                          

    -n  只检查语法
    -v 显示执行的详细信息
    -x  显示脚本执行的过程
     

    作者:唐胜伟
    出处:http://www.cnblogs.com/tangshengwei/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。 

  • 相关阅读:
    面试题,找出每个产品的最新五个产品,还有其它方法吗 —— 游标加表变量
    SQL排序,重名和调名
    存储过程分页
    Perl/Python 感概
    Perl解析INI文件
    Perl 多进程文件锁
    Windows Sharepoint Services 版本更新
    工作、SOA、MBF...
    Windows Sharepoint Services 版本更新
    被CDOEXM折磨了一把
  • 原文地址:https://www.cnblogs.com/tangshengwei/p/4651193.html
Copyright © 2020-2023  润新知