Shell篇(1)-shell介绍及test判断语句


shell脚本 (script): 是一种Linux操作命令 , 用户运行脚本时就会自动执行文件中的命令


   shell大致可分为两类 : 

       

       1. 入门级脚本 : 脚本文件中仅包含一些操作命令 , 无任何逻辑判断语句 , 这种脚本只会按照从上到下的顺序来执行命令 , 如果某行命令错误会自动跳过 , 去执行下一条命令

       2. 高级脚本 : 在入门级脚本的基础上在加入条件判断 if , 循环(for , while , until)等逻辑控制语句 , 让脚本更具有通用性和可移植性


   编写shell脚本的思路:


       1. 根据目标需求分析需要用到哪些操作命令

扫描二维码关注公众号,回复: 5343169 查看本文章

       2. 将操作的命令写入到shell脚本文件中 , 不考虑逻辑判断

       3. 运行和测试入门级脚本

       4. 对入门级脚本进行优化 , 即添加条件判断if, 循环等逻辑控制语句

       5. 运行和测试入门级脚本优化后的高级脚本


     test条件判断:

      

     功能 : 用来判断文件 , 权限 , 值(数值是否相等 , 是否为空) .

     帮助手册 : 在Linux系统中可通过 man test  来查看


     格式:

     test  条件  语句

     

     例1 : 判断字符长度是否为零

           test  -z   $x   (-z 意为 -zero , 表示$x的字符长度为零时 , 判断则为正确)

     

     例2 : 如图命令行所示;

            image.png

            (echo  $?  显示的是上一条命令的执行状态码 , 0 表示正确 , 1 表示错误 )

            先判断变量y字符长度是否为0 , echo $? 显示状态码为0 , 表示判断结果为正确 ; 再赋给y一个值 , 显然test  -z  $y  判断结果为错误 ,所以echo $? 输出的状态码为 1

      

      test 判断语句功能选项介绍


      一 . 判断字符长度是否为零 :


      test  -z   $y    (上述例子以解释)

      test  -n   $y    -n  (no  zero) : 判断当前变量y字符长度不为0时 , 结果为正确


      二 . 判断字符串内容是否相等 :


      test   a=b        判断 a 和 b 值是否相等 , 相等则为正确

      test   a != b     判断 a 和 b 值是否相等 , 不相等则为正确 , ! 表示取反

      

      例 : 判断内容相不相等:

      image.png 

      三 . 判断整数值的大小 :

     

      格式: test    值1  [选项]  值2

      选项有:  -eq        相等

                   -ne    不想等

                   -gt     大于

                   -lt      小于

                   -ge    大于等于

                   -lt      小于等于

      例 : 判断 5 和 4 值的大小:

      image.png


      四 . 判断文件类型:

      

      格式 : [  -d   /etc  ]    判断/etc  是否为目录 , /etc 为目录则为真 ( [ ] 两头一定要空格)

      Linux系统文件类型分为 : 普通文件 , 文件目录 , 块设备 , 字符设备 , 软链接文件 , 套接字 , 管道文件

      上述文件类型对应的选项为:   -f            -d           -b           -c             -L              -S           -p

      例 :判断 /etc 是否为目录

      image.png

      例2: 判断/etc/a.txt 文件是否存在 , 存在则显示"a.txt exists" ,否则就创建/etc/a.txt

             [  -f  /etc/a.txt  ] && echo "a.txt exists" || touch /etc/a.txt


     五 . 判断当前文件是否为可读(read) , 可写{write} , 可执行(exec) 权限:

     

     格式 : [  -r  文件名  ]    [  -w  文件名  ]    [  -x  文件名  ]

     例 : 创建文件a.txt , 判断a.txt 权限是否为能可执行

     image.png

     

     六 . 逻辑的 与 或 非

     

     格式:  [ ! abc = abcd ]

              [  adc = abc  -a  123 =123  ]     条件全部为真时则为真

              [  abc = abcd  -o  123 =123  ]   有一个为真时则为真

     image.png

     

      

          

猜你喜欢

转载自blog.51cto.com/14181896/2355675
今日推荐