用脚本完成以下任务
添加5个用户,user1,user2.。。。。user5
每个用户的密码同用户名,而且要求,添加密码后不显示passwd命令的执行结果
每个用户添加完成后,都要显示用户某某已成功添加
useradd user1
echo “user1“ | passwd �Cstdinuser1 &>/dev/null
echo “add user1 successfully”
条件判断:
如果用户不存在
添加用户,给密码并显示添加成功;
否则
显示用户已存在,不添加
bash中如何实现条件判断?
条件判断类型:
整数判断
-eq:判断两个整数是否相等;为真,等为假比如 $A �Ceq $B 返回值为0表示成功
-ne:判断两个整数是否不等;不等为真 相等为假
-gt:判断一个数是否大于另一个书;大于,为真;否则为假
-lt:判断一个数是否小于另一个书;小于,为真;否则为假
-ge:大于或等于
-le:小于或等于
字符判断
文件判断
条件判断的表达式:
[expression ]
[[xpression ] ]
testexpression
命令间的逻辑关系:
逻辑与:&&(第一个条件为假时,第二个条件不用再判断)
逻辑或:||(第一个条件为真时,第二个条件必须判断)
如果用户user1不存在,就添加用户user1
! id user1 && useradduser1(!表示取反,真的变为假的)
id user1 || useradd user1
变量名称:只能包含字母,数字和下划线,并且不能以数字开头,不应该和系统中已有的环境变量重名;
如果用户存在,显示用户已存在,否则,就添加此用户。
id user1 && echo “user1 exists.” ||useradd user1
如果用户不存在就添加,否则显示已存在
! id user1 && useradd user1 || echo“ user1 exists.”
使用脚本完成以下任务:
添加3个用户user1,user2,user3;要求先判断用户是否存在,不存在则添加
显示但前系统上共有多少个用户
Vim adduser.sh
#!/bin/bash
! id user1&> /dev/null && useradd user1 && echo “user1” | passwd �C-stdinuser1 &> /dev/null || echo “user1 exists”
USERS=`wc �Cl/etc/passwd | cut �Cd: -f1`
echo “$USERS users.”
使用脚本完成以下任务:
给定一个用户:
1. 如果其UID为0,就显示此用户为管理员
2. 否则,就显示为普通用户
vim xxx.sh
#!/bin/bash
NAME=user1
USERID=`id �Cu $NAME`
[ $USERID �Ceq 0 ]&& echo “admin” || echo “common user.”
条件判断,控制结构:
单分支if语句
if 判断条件 ; then
statement1
statement2
fi
双分支if语句:
if 判断条件; then
statement1
statement2
else
statement3
statement4
fi
例1
#!/bin/bash
NAME=user1
if id$NAME &> /dev/null; then
echo “$NAME exists.”
else
echo “$NAME not exists.”
Fi
例2
#!/bin/bash
NAME=user1
if id$NAME &> /dev/null; then
echo “$NAME exists.”
else
useradd $NAME
echo $NAME | passwd �C-stdin $NAME&> /dev/null
echo “add $NAME finished.”
fi
例3
给定一个用户:
1. 如果其UID为0,就显示此用户为管理员
2. 否则,就显示为普通用户
#!/bin/bash
NAME=user1
USERID=`id�Cu $NAME`
if [$USERID �Ceq 0 ]; then
echo “admin”
else
echo “common user”
fi