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