条件判断:
如果用户不存在,添加用户,给密码并显示添加成功
否则,显示如果已经存在,不用添加。
bash中如何实现条件判断?
条件测试类型:
整数测试
字符测试
文件测试
条件测试的表达式:
[ expression ]
` expression `
test expression
整数比较:
-eq:测试两个整数是否相等;比如:$A -eq $B
#A=3
#B=6
#[ $A -eq $B ]
#echo $?
#B=3
#[ $A -eq $B ]
-ne:测试两个整数是否不等,
-gt:测试一个数是否大于另一个数
-lt:测试一个数是否小于另一个数
-ge:大于或等于
-le:小于或等于
命令间的逻辑关系:
逻辑与:&&
第一个条件为假时,第二条件不用再判断,最终结果已经有
逻辑或:||
逻辑非:
#id user1 &>/dev/null && echo "Hello,student."
#id student2 &>/dev/null && echo "Hello,student2."
如果用户user6不存在,就添加用户user6
! id user6 && useradd user6
id user6 ||useradd user6
变量名称
1、只能包含字母、数字和下划线,并且不能数字开头
2、不应该跟系统中已有的环境变量重名
3、最好做到风名知义
#nano second.sh
#!/bin/bash
LINES=`wc -l /etc/inittab`
echo $LINES
FINLINES=`echo $LINES|cut -d '' -f1`
echo $FINLINES
[ $FINLINES -gt 100 ] && echo "/etc/inittab is a big file." || echo "/etc/inittab is a small file."
#chomd +x second.sh
#./second.sh
如果用户存在,就显示用户存在,否则就添加此用户
id user1 && echo "user1 exists." || useradd user1
如果用户不存在,就添加;否则,显示其已经存在
! id user1 && useradd user1 || echo "user1 exists."
如果用户不存在,就添加并且给密码;否则,显示其已经存在
! id user1 && useradd user1 && echo "user1" |passwd --stdin user1 || echo "user1 exists."
练习一:
nano addusers2.sh
#!/bin/bash
! id user1 &> /dev/null && useradd user1 && echo "user1" |passwd -stdin user1 &>dev/null
|| echo "user1 exists."
! id user2 &> /dev/null && useradd user1 && echo "user2" |passwd -stdin user2&>dev/null
|| echo "user2 exists."
! id user3 &> /dev/null && useradd user3 && echo "user3" |passwd -stdin user2&>dev/null
|| echo "user3 exists."
USERS=`wc -l /etc/passwd|cut -d: f1`
echo "$USERS users."
#chmod +x adduser2.sh
#./adduser2.sh
#cat adduser2.sh
#nano third.sh
#!/bin/bash
NAME=user1
USERID=`id -u $NAME`
[ $USERID -eq 0 ] && echo "Admin" ||echo "Common user."
#chomod +x third.sh
#./third.sh
#cat ./third.sh
条件判断,控制结构:
单分支的if语句
if 判断条件; then
statement1
statement2
……
fi
双分支的if语句:
if 判断条件;then
statement1
statement2
……
else
statement3
statement4
……
fi
if 判断条件
then
statement1
statement2
……
else
statement3
statement4
……
fi
#clear
#nano usertest.sh
#!/bin/bash
NAME=user1
if id $NAME &> /dev/null; then
echo "$NAME exists."
fi
#chmod +x usertest.sh
#./usertest.sh
#!/bin/bash
NAME=user1
if id $NAME &> /dev/null; then
echo "$NAME exists."
else
echo "$NAME not exist."
fi
#chmod +x usertest.sh
#./usertest.sh
#!/bin/bash
NAME=user1
if id $NAME &> /dev/null; then
echo "$NAME exists."
else
useradd $NAME
echo $NAME |passwd --stdin $NAME &>/dev/nulls
echo "Add $NAME finished."
fi
#chmod +x usertest.sh
#./usertest.sh
NAME=user16
USERID=`id -u $NAME`
if [ $USERID -eq 0] ;then
echo "Admin"
else
echo "Common user."
fi
NAME=user16
if [ `id -u $NAME` -eq 0] ;then
echo "Admin"
else
echo "Common user."
fi
#判定用户是否存在
if id $NAME;then
#ls /var
#echo $?
#A=`ls /var`
#echo $A