shell脚本常用脚本:if判断

shell脚本常用脚本:if判断

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

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

-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

原文地址:http://blog.51cto.com/xianlei/2088006

时间: 2024-10-14 11:46:50

shell脚本常用脚本:if判断的相关文章

shell脚本常用脚本:for循环

shell脚本常用脚本:for循环 wheil 很多循环可以用for循环替换 for循环语法结构 for 变量名 in 变量取值列表 do 指令 done for ((exp1;exp2;exp3)) do 指令 Done 脚本实例:for  99乘法表 #!/bin/bash #Date       :2016-11-22 15:04:12 ##date "+%Y-%m-%d %H:%M:%S" #Author   :jorbabe #Mail       :[email prote

shell脚本常用脚本:while

while条件句 语法: 条件满足一直做 while 条件 do 指令 Done ========== 条件满足退出(不多见) until 条件 do 指令 done 脚本实例:守护进程监控 Sleep:按秒打印 Usleep:微秒打印, 单位是微秒(百万分之一秒): #!/bin/bash #Date       :2016-11-22 15:04:12 ##date "+%Y-%m-%d %H:%M:%S" #Author   :jorbabe #Mail       :[emai

shell之常用脚本

1 批量创建用户: #!/bin/bash i=30 groupadd class2 while [ $i -le 50 ] do if id user$i &> /dev/null then echo "This user$i is exist" else useradd -g class2 user$i && echo "user$i" | passwd --stdin user$i &> /dev/null &

linux Shell中常用的条件判断

-b file            若文件存在且是一个块特殊文件,则为真 -c file            若文件存在且是一个字符特殊文件,则为真 -d file            若文件存在且是一个目录,则为真 -e file            若文件存在,则为真 -f file            若文件存在且是一个规则文件,则为真 -g file            若文件存在且设置了SGID位的值,则为真 -h file            若文件存在且为一个符合链接

Shell编程(脚本)的常用命令和语句

一些常用的Shell编程(脚本)命令和语句,可以满足一般需求. 接收到的命令参数: 参数个数: $# 参数值: 命令本身:$0 第一个参数:$1 第二个参数:$2 -- 退出命令: exit echo命令: 换行: echo 输出后不换行: echo -n "请选择(y/n)?" 利用转义符号输出双引号: echo "欢迎使用\"正式服务器\"部署工具." 输出中带变量: echo "即将部署项目:$project_name"

shell脚本进阶之循环判断

p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-bottom: .0001pt; text-align: justify; font-size: 14.0pt; font-family: 等线 } h1 { margin-top: 15.6pt; margin-right: 0cm; margin-left: 0cm; margin-bottom: .0001pt; text-align: justify; line-he

shell脚本中实现自动判断用户有无密码

在最近完成老师布置的作业的时候遇到了如何让shell脚本中的命令自动判断一个用户是否已设置密码的问题,虽然看似不是很难的一个问题,但是在这一功能实现的过程中却包含了许多细小的而重要的知识.刚开始小编对此很是头疼,虽然我们查看一个用户是否有密码并不是很难,直接cat /etc/shadow这个文件看看密码位是否有加密的字符就行了,但是让命令自己去判断和匹配就不是很顺利了,小编上网查看后,并没有得到很好的答案,大多数都是人工查看的答案,并不适用于shell脚本中自动的判断,所以在认真对比/etc/p

shell脚本 - 日期比较与判断

比较2个日期的相差天数 1. 脚本参考 脚本1: #!/bin/bash #格式化过期日期,格式化过期日期完整时间以当前时间作为参考! expday="2018-04-11 `date +%T`" echo "Expire day is $expday" #当前日期时间格式为stamp时间戳 todays=`date +%s` echo "Today is $(date +"%F %T")" #以下2种方式做时间的四则运算,分

[Shell]if 常用判断条件

IF 判断 之前也写过简单的shell脚本,也不是转职运维,和系统相关的工作比较少,所以不怎么熟练. 最近由于系统总是出现各种乱七八糟的问题,也没有人来协助,只好自己写shell脚本了,都是些基础的脚本,但由于shell的语法和通常的高级语言有些不一样,所以还是要系统的看下常用的部分. if语句就是很重要的一个. 这种文章很多,只是拿来主义,如果有心得体会也会加上,小计下以后备查. 基本结构:  if语句块需要使用if结束 if condition then statements elif co