条件判断:


   如果用户不存在,添加用户,给密码并显示添加成功

    

   否则,显示如果已经存在,不用添加。


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