基于字符串进行判断

image.png
1、==用法
1.1、使⽤ read编写⼀个备份脚本,需要⽤户传递2个参数,源和⽬标。

 [root@web01 ~]# cat read-3.sh
#!/bin/bash
read -p "你要备份的⽂件或⽬录路径是: " src
read -p "你要备份到哪个⽬录下存储:" dest
read -p "你确定将 $src 备份到 $dest 吗? [ y | n ]" action
#判断⽤户输⼊的是y还是n,y则进⾏备份,n则提示没有备份
if [ $action == "y" ];then
 echo "-----------备份开始--------------"
 cp -rp $src $dest
 sleep 3
 echo "-----------备份结束--------------"
else
 echo "-----------备份退出--------------"
 exit
fi

1.2、判断当前登录⽤户是管理员还是普通⽤户,如果是管理员输出”hey admin“ 如果是普通⽤户输出”hey guest“
[root@web01 shell-if]# cat if-04.sh
#!/bin/bash
if [ $USER == "root" ];then
 echo "hey admin"
else
 echo "hey guest"
fi
2、!=用法
2.1、判断当前⽤户是不是root执⾏,如果不是那么返回“ERROR”
[root@web01 shell-if]# cat if-03.sh
#!/bin/bash
if [ $USER != "root" ];then
 echo "ERROR!"
 exit
fi
3、使用命令判断
#!/usr/bin/bash

read -p "请输入你要查询的用户:" usera

if  grep "$usera" /etc/passwd &>/dev/null ;then
        echo "$usera: 该用户存在系统中"

elif ls -d /home/$usera  &>/dev/null ;then
        echo "$usera: 该用户不在系统中,但存在家目录"

else
        echo "$usera: 该用户不存在系统中"
fi

5、-z用法
[root@web01 shell-if]# cat if-11.sh
#!/bin/bash
read -p "请输⼊⼀个字符: " action
if [ -z $action ];then
 echo "请不要直接回⻋..."
 exit
fi
echo "你输⼊的是: $action"
6、多条件比对(&& 和 -a 都是或者意思)
两个条件都成立为真
if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
 umask 002
else
 umask 022
fi

或者

if [ $UID -gt 199 -a "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
 umask 002 #真 (必须两个条件都为真)
else
 umask 022 #假 (只要有⼀个条件不为真)
fi
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容