shell脚本常用脚本:if判断

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本常用脚本:if判断相关的知识,希望对你有一定的参考价值。

    shell脚本常用脚本:if判断

 

str1 = str2      当两个串有相同内容、长度时为真

str1 != str2      当串str1str2不等时为真

-n str1        当串的长度大于0时为真(串非空)

-z str1        当串的长度为0时为真(空串)

str1           当串str1为非空时为真

[ "2006.01.23" \> "2005.03.01" ] && echo dayu || echo budayu

int1 -eq int2    两数相等为真

int1 -ne int2    两数不等为真

int1 -gt int2    int1大于int2为真

int1 -ge int2    int1大于等于int2为真

int1 -lt int2    int1小于int2为真

int1 -le int2    int1小于等于int2为真

-r file     用户可读为真

-w file     用户可写为真

-x file     用户可执行为真

-f file     文件为正规文件为真

-d file     文件为目录为真

-c file     文件为字符特殊文件为真

-b file     文件为块特殊文件为真

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

-t file     当文件描述符(默认为1)指定的设备为终端时为真

-a        

-o       

!        非

 

上面的三种写在括号内,对应的 && || 写在中括号之间。例如,if  [   "$a"  eq   1  -o  "$b" eq 2 ]  &&  [   "$c"  eq  3 ]

 

 

单分支结构

If [条件]

         then

                  指令

fi

 

 

If [条件]; then

         指令

fi

 

提示:分号相当于命令换行,上面两种语法相同,在脚本中一般使用第一种

 

 

脚本实例:

比较大小

[[email protected] if]# cat if01.sh

#!/bin/bash

#a=12

#b=11

read -p "pls input two number:" a b

if [ $a -gt $b ]

        then

         echo "yes $a > $b"

fi

if [ $a -lt $b ]

        then

         echo "yes $a < $b"

fi

if [ $a -eq $b ]

        then

         echo "yes $a = $b"

fi

 

方法二:

语法:

If [条件]

then

                  指令

else

         指令

fi

 

 

双分支脚本实例:

比较大小

[[email protected] if]# cat if02.sh

#!/bin/bash

#a=12

#b=11

read -p "pls input two number:" a b

if [ $a -gt $b ]

        then

         echo "yes $a > $b"

else

        if [ $a -lt $b ]

        then

         echo "yes $a < $b"

        else

         echo "yes $a = $b"

        fi

fi

 

 

 

#传参做判断

[[email protected] if]# ./if04.sh

pls input two number:10

Usage :sh ./if04.sh num1 num2

[[email protected] if]# ./if04.sh

pls input two number:11 1 1

Usage :sh ./if04.sh num1 num2

[[email protected] if]# cat if04.sh

#!/bin/bash

#a=12

#b=11

read -p "pls input two number:" a b

if [ $# -ne 2 ]

  then

   echo "Usage :sh $0 num1 num2"

  exit 1

 elif [ $a -gt $b ]

        then

         echo "yes $a > $b"

 elif [ $a -lt $b ]

        then

         echo "yes $a < $b"

else

         echo "yes $a = $b"

fi

多分支结构

 

语法:

If [条件]

then

                  指令

elif [条件]

         then

         指令

elif [条件]

         then

         指令

elif [条件]

         then

         指令

         … …

else

         指令

fi

 

 

多分支脚本实例:

比较大小

[[email protected] if]# cat if03.sh

#!/bin/bash

#a=12

#b=11

read -p "pls input two number:" a b

if [ $a -gt $b ]

        then

         echo "yes $a > $b"

 elif [ $a -lt $b ]

        then

         echo "yes $a < $b"

else

         echo "yes $a = $b"

fi

 

传参判断方式计算:

[[email protected] if]# ./if05.sh 15 1f

第二个参数必须为数字

[[email protected] if]# ./if05.sh 1w 1

第一个参数必须为数字

[[email protected] if]# cat if05.sh

#!/bin/bash

a=$1

b=$2

 

#read -p "pls input two number:" a b

if [ $# -ne 2 ]

  then

        echo "Usage :sh $0 num1 num2"

        exit 1

fi

[ -n "`echo $1 |sed 's/[0-9]//g'`" ] && echo "第一个参数必须为数字" && exit 1

[ -n "`echo $2 |sed 's/[0-9]//g'`" ] && echo "第二个参数必须为数字" && exit 1

 

 

if [ $a -gt $b ]

        then

         echo "yes $a > $b"

elif [ $a -lt $b ]

        then

         echo "yes $a < $b"

else

         echo "yes $a = $b"

fi


以上是关于shell脚本常用脚本:if判断的主要内容,如果未能解决你的问题,请参考以下文章

Shell脚本中的if和case逻辑判断

shell 脚本 if 判断多个条件

if 条件判断 和 判断总结---shell脚本

shell——记录个人脚本的一个进阶

shell脚本常用命令(HandBook_2)

shell脚本的if判断语句