美文网首页
Shell Script (二)善用判断式

Shell Script (二)善用判断式

作者: Qihang | 来源:发表于2018-01-14 11:55 被阅读7次
  • test命令
    • test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。在shell中,如果命令返回0,则表示成功;任何非0的返回值,都表示失败;同时shell提供了特殊参赛$?来获取上个命令的返回值。
    • 文件类型判断
      -e 文件名  如果文件存在则为真
      -r 文件名  如果文件存在且可读则为真
      -w 文件名  如果文件存在且可写则为真
      -x 文件名  如果文件存在且可执行则为真
      -s 文件名  如果文件存在且至少有一个字符则为真
      -d 文件名  如果文件存在且为目录则为真
      -f 文件名  如果文件存在且为普通文件则为真
      -c 文件名  如果文件存在且为字符型特殊文件则为真
      -b 文件名  如果文件存在且为块特殊文件则为真
      
    • 文件权限判断
      -r 文件名 如果具有“可读”权限则为真
      -w 文件名 如果具有“可写”权限则为真
      -x 文件名 如果具有“可执行”权限则为真
      -u 文件名 如果具有“SUID”属性则为真
      -g 文件名 如果具有“SGID”属性则为真
      -k 文件名 如果具有“Sticky bit”属性则为真
      -s 文件名 如果文件存在且为“非空文件”则为真
      
    • 文件比较判断
      FILE1 -ef FILE2 两个文件指向同一个inode,既是硬链接,则为真
      FILE1 -nt FILE2 FILE1比FILE2更新,既FILE1修改时间晚于FILE2,则为真
      FILE1 -ot FILE2 FILE1比FILE2更旧,既FILE1修改时间早于FILE2,则为真
      
    • 整数判断
      -eq 等于则为真
      -ne 不等于则为真
      -gt 大于则为真
      -ge 大于等于则为真
      -lt 小于则为真
      -le 小于等于则为真
      
    • 字符串判断
      =           等于则为真
      !=          不相等则为真
      -z 字符串  字符串的长度为零则为真
      -n 字符串  字符串的长度不为零则为真
      
    • 多条件判断
      条件1 -a 条件2  如果两个条件都成立则为真
      条件1 -o 条件2  任何一个条件成立则为真
      ! 条件1         条件1的反向状态
      
  • []判断符号 中括号两端必须有空格分割,变量用单引号或双引号括起来。在bash中“==”和“=”作用是一样的
    #!/bin/bash
    a=5
    b=6
    result=$[a+b] # 注意等号两边不能有空格
    echo "result 为: $result"
    
  • 默认变量
    • $# 一共有几个参数

    • $@ 所有参数的值

    • $* 所有参数的值

    • $n 第n个参数是什么

    • shift 造成参数号码的偏移

    • bash ./sh05.sh one two three four five six

    #!/bin/bash
    
    echo "Total parameter number is ==> $#"
    echo "Your whole parameter is ==> '$@'"
    
    shift #1个变量的shift
    echo "1个变量移位"
    echo "Total parameter number is ==> $#"
    echo "Your whole parameter is ==> '$@'"
    
    shift 3 #3个变量的shift
    echo "3个变量移位"
    echo "Total parameter number is ==> $#"
    echo "Your whole parameter is ==> '$@'"
    
    
    ** 输出结果 **
    Total parameter number is ==> 6
    Your whole parameter is ==> 'one two three four five six'
    1个变量移位
    Total parameter number is ==> 5
    Your whole parameter is ==> 'two three four five six'
    3个变量移位
    Total parameter number is ==> 2
    Your whole parameter is ==> 'five six'
    
    

相关文章

网友评论

      本文标题:Shell Script (二)善用判断式

      本文链接:https://www.haomeiwen.com/subject/cgdkoxtx.html