• shell流程控制语句


    一、文件存在判断

      -d  判断该文件是否存在,并且是否为目录文件(是目录为真)

      -e  判断该文件是否存在(存在为真)

      -f  判断该文件是否存在,并且是否为普通文件(是普通文件为真)

    二、文件权限判断

      -r  判断该文件是否存在,并且是否有读权限(有读权限为真)

      -w  判断该文件是否存在,并且是否有写权限(有写权限为真)

      -x  判断该文件是否存在,并且是否有执行权限(有执行权限为真)

    三、整数判断

      shell作为弱类型语言,默认所有内容都是字符串,但是下列比较命令会将两边的内容自动转换成数值类型,所以不用(())

      -eq  相等

      -ne  不相等

      -ge  大于等于

      -le  小于等于

      -gt  大于

      -lt  小于

    四、字符串类型

      -z  字符串是否为空,为空返回真

      -n  字符串是否非空,非空返回真

      ==  相等,相等为真(=也可用来判断字符串是否相等,但是容易与赋值运算混乱)

      !=  不等,不等为真

    五、多重条件判断

      -a  都真则真

      -o  一真则真

      !    非

    六、if语句

      单分支:

      if [条件判断式]

      then 程序

      fi

      双分支:

      if[]

      then

        echo "1"

      else

        echo "2"

      fi

      多分支:

      if[]

      then

        echo "1"

      elif[]

      then

        echo "2"

      else

        echo "3"

      fi

    七、case语句

      case $a  in

      "yes")

        echo "aa"

        ;;

      "no")

        echo "bb"

        ;;

      *)

        echo "cc"

        ;;

      esac

    八、for循环

      for i  in  1 2 3 4 5

      do

        echo $i

      done

      for i  in  $(cat a.txt)

      do

        echo $i

      done

      s=0

      for (( i=1;i<=100;i=i+1 ))

      do

        s=$(( $s+$2 ))

      done

    九、while循环

      while [ $i -le 100  ]

      do

        .....

      done

      while read line

      do

        ......

      done < cat a.txt

    注意:1.为什么有些脚本的if语句的判断条件里,变量会多加一个x字符(X也行)

          因为如果某个字符串为空,if判断语句就会少参数,会出现一些奇怪的结果,通常写成 :if [ "X$answer" == "Xyes" ]

       2.变量最好放在双引号里面,这样判断比较准确

  • 相关阅读:
    【心得】软件团队Git工作流及Jira的基本知识和常见问题解释
    项目系统Netty的Channel和用户之间的关系绑定正确做法,以及Channel通道的安全性方案
    Redis中的事务(多命令)操作
    Redis中的订阅模式
    Redis中有序列表(ZSet)相关命令
    Redis散列(Hash)的相关命令
    输入输出流String间的转换
    linux 常用命令
    Gradle 使用
    c 学习笔记 0
  • 原文地址:https://www.cnblogs.com/yinguojin/p/9247937.html
Copyright © 2020-2023  润新知