深入学习Linux之流程控制if语句

流程控制语句if

语法格式:


(1)if  [ 条件 ]  
	then

		commands

fi
(2) 双分支if语句

语法格式:

if [ 条件 ]; then

  		commands
else

        commands

fi
(3)多分支if语句
语法结构:

if [ 条件1 ]; then

        commands

elif  [ 条件2 ] ; then

        commands

elif [ 条件3 ]; then

        commands

else

        commands

fi
例:1

#!/bin/bash
if ls /opt/kkk ; then
	echo "this is OK"
else
	mkdir /opt/kkk
fi
例2:查询一个用户是否存在,是否有家目录;如果没有新建该用户

#!/bin/bash
#键盘输入用户名
read -p "请输入用户名:" name
if grep $name /etc/passwd ; then
	echo " 用户存在"
elif ls -d /home/$name ; then
	echo "家目录存在"
else
	useradd $name
fi

test 测试命令(可用 [ ] 符号代替)

shell 中的test 是用来检查某个条件是否成立,这可以是数字、字符、文件三个方面的测试

格式:test 测试条件

说明:$? 正确为0 ,错误为非0

数值比较
在这里插入图片描述

数值比较例子
[root@localhost ~]# vim  k1.sh

#!/bin/bash
if test 5 -eq 4 ;then
   echo "ok"
else
   echo "no"
fi                              

[root@localhost ~]# vim k2.sh
#!/bin/bash
if [ 5 -gt 4 ] ;then
   echo "OK"
else
   echo "no"
fi

[root@localhost ~]# sh k2.sh
测试例子比较两个数的大小
[root@localhost ~]# vim k3.sh#!/bin/bashread -p 
"请输入两个数据" a b
if [ $a -gt $b ];then    
	echo "$a>$b"
elif [ $a -lt $b ];then    
	echo "$a<$b"else    
	echo "$a=$b"
fi
 [root@localhost ~]# sh k3.sh
 请输入两个数据5 5
 5=5
 [root@localhost ~]# sh k3.sh请输入两个数据
 6 5
 6>5
 [root@localhost ~]# sh k3.sh
 请输入两个数据5 6 
 5<6

字符串比较
在这里插入图片描述

字符串比较例子
[root@localhost ~]# vim k5.sh

#!/bin/bash
read -p "请输入用户名:" name
if [ $name == "root" ];then
   echo "you are administrator"
else
   echo "you are general user"
fi

文件比较 (标记蓝色为常用的)
在这里插入图片描述
在这里插入图片描述

文件比较例子
[root@localhost ~]# vim k7.sh

#!/bin/bash
if [ -d /boot ] ;then
   echo "ok"
else
   echo "err"
fi
                           
[root@localhost ~]# sh  k7.sh
ok

[root@localhost ~]# test -e /root/k7.sh && echo "ok" || echo "err"
ok
[root@localhost ~]# vim +11 k8.sh

#!/bin/bash
#clear /var/log/messages

#判断当前用户

if [ $USER != "root" ];then
   echo "you must root"
   exit 10
fi
#判断文件是否存在
if [ ! -f /var/log/messages ];then
   echo "文件不存在"
   exit 12
fi
tail -100 /var/log/messages >/var/log/test

>/var/log/messages
mv /var/log/test /var/log/messages

[root@localhost ~]# sh k8.sh
[root@localhost ~]# echo $?
0

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值