Shell脚本之条件语句
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shell脚本之条件语句相关的知识,希望对你有一定的参考价值。
Shell脚本之条件语句
本章结构
条件测试
文件测试
整数测试
字符串与逻辑测试
if语句
if单分支语句
if双分支语句
if多分支语句
if嵌套语句
一.条件测试
格式1: test 条件表达式
格式2:[ 条件表达式 ]
二.文件测试
-d:测试是否为目录(Directory)
-e:测试目录或文件是否存在(Exist)
-f:测试是否为文件(File)
-r:测试当前用户是否有权限读取(Read)
-w:测试当前用户是否有权限写入(Write)
-x:测试当前用户是否有权限执行(eXcute)
[root@localhost ~]# test -d /etc/yum //测试/etc/yum是否是目录
[root@localhost ~]# echo $? //上一条命令执行状态0就是正常执行,1就是错误
0
[root@localhost ~]# test -f /etc/yum //测试/etc/yum是否是文件
[root@localhost ~]# echo $?
1
[root@localhost ~]# test -e /etc/yum //测试/etc/yum是否存在
[root@localhost ~]# echo $?
0
[root@localhost ~]#
三.整数测试
-eq:等于(Equal)
-ne:不等于(Not Equal)
-gt:大于(Greater Than)
-lt:小于(Lesser Than)
-le:小于或等于(Lesser or Equal)
-ge:大于或等于(Greater or Equal)
[root@localhost ~]# [ $(who|wc -l) -gt 10 ]&& echo "有点多!" //统计当前用户量
有点多!
四.字符串比较
=:字符串内容相同
!=:字符串内容不同,!表示相反的意思
-z:字符串内容为空
五.逻辑测试
-a或&&:逻辑与、“而且”的意思
-o或||: 逻辑或、“或者”的意思
!:逻辑否
[root@localhost ~]# [ ! -e /opt/abc ]&&mkdir /opt/abc // /opt/abc这个目录不存在我就创建这个目录
[root@localhost ~]# ls /opt
abc rh
6.if语句单分支
#!/bin/bash
mulu="/etc/ccc"
if [ ! -d $mulu ]
then
mkdir -p $mulu
fi
7.if双分支语句
#!/bin/bash
ping -c 3 -i 0.2 -W 3 $1 &>/dev/null
if [ $? -eq 0 ]
then
echo "Host $1 is up "
else
echo "Host $1 is down "
fi
-C发数据包 ,-0.2每隔两秒发一次 -W 3次回复 所有输出到这个无用的目录中
[root@localhost ~]# ./c.sh
Host is down
8.if多分支和嵌套语句
#!/bin/bash
#一场跑步比赛,10秒内进入决赛,进入决赛之后会被分进男子组或女子组
read -p "请输入你的比赛时间" soucre
if [ $soucre -lt 10 ]
then
echo "进入决赛"
read -p "请输入你的性别(男/女) " sex
if [ $sex = "男" ]
then
echo "进入男子组"
else
echo "进入女子组"
fi
else "被淘汰"
fi
~
~
以上是关于Shell脚本之条件语句的主要内容,如果未能解决你的问题,请参考以下文章