5.3壳编程2
条件判断:
,,如果用户不存在
,,,,添加用户,给密码并显示添加成功
,,否则
,,,,显示如果已经存在,没有添加
bash中如何实现条件判断?
条件测试类型:
,,整数测试
,,字符测试
,,文件测试
条件测试的表达式:
,,[expressopm]前后一定有空格
,,“expressopm”
,,测试表达式
整数比较:
,,情商:测试两个整数是否相等;相等为0比真如一个情商B美元
,,- ne:测试两个整数是否不等;不等,为真0,相等,假
,,gt:测试一个数是否大于另一个数:大于,为真
,,lt:测试一个数是否小于另一个数
,,通用电气:大于或等于
,,勒:小于或等于
命令间的逻辑关系:
,,逻辑与:,,
,,,,第一个条件为假时,第二条件不用再判断,最终结果已经有:
,,,,第一个条件为真时,第二条件必须得判断
,,逻辑或:| |
id user1,比;/dev/null,,回声“你好,学生。”
如果用户user6不存在,就添加用户user6
!id user6,,useradd user6
id user6 | | useradd user6
变量名称:只能包含字母,数字和下划线,并且不能以数字开的头,不应该跟
,,,,,系统中已有的环境变量重名
,,,,,最好做到见名知义纳米second.sh
# !/bin/bash
行=皐c - l/etc/inittab”
# echo $行
FINLINES=癳cho $ |行切- d”“f1”
# echo $ FINLINES
[$ FINLINES gt 100],,回声“/etc/inittab文件。”,
, | |,呼应“/etc/inittab文件是一个小。”,
如果用户存在,就显示用户已存在,否则,就添加此用户:
, id user1,,回声“user1的存在。”| | useradd user1
如果用户不存在,就添加:否,则显示其已经存在
!id user1,,useradd user1 | |,呼应“user1存在。”
如果用户不存在,添加并且给密码,否则,显示其已经存在
!id user1,,useradd user1,,回声“user1”| passwd——stdin user1 | |
,回声“user1的存在。”
练习,写一个脚本,完成以下要求:
1添加3个用户user1、user2, user3;但要先判断用户是否存在,
,不存在而后再添加
2添加完成后,显示一共添加了几个用户:当然,不能包括因为事先
,存在而没有添加的
3最后显示当前系统上共有多少个用户
, nano adduser.sh
# !/bin/bash
!id user1,比;/dev/null,,useradd user1,,回声“user1”| passwd
,——stdin user1,比;/dev/null | |回声“user1存在。”
!id user2,比;/dev/null,,useradd user2,,回声“user2”| passwd
,——stdin user2,比;/dev/null | |回声“user2存在。”
!id user3,比;/dev/null,,useradd user3,,回声“user3”| passwd
,——stdin user3,比;/dev/null | |回声“user3存在。”
用户=皐c - l/etc/passwd |削减- d: f1的
echo " $用户用户。”
如果UID为0:那么
,,显示为管理员
否则
,,显示为普通用户
名称=user16
用户id=癷d - u $名称”(~下的反引号)命令引用表示命令的执行结果
如果(USERID eq 0美元);然后
,回声“Admin”
其他,回声“普通用户”。
fi
反引号引用表示命令的执行结果
没有反引号表示命令的执行状态(是否成功)
如果id名称;美元然后
练习写一个脚本,完成以下要求:
给定一个用户:
,1如果其UID为0,就显示此为管理员
,2否则,就显示其为普通用户纳米third.sh
# !/bin/bash
# NAME=user1
用户id=癷d - u $名称”
(USERID eq 0美元),,回声“Admin”| |回声“普通用户”。
条件判断,控制结构:
单分支如果语句
如果判断条件,然后(然后写下一行,分号可以省略)
,,语句1
,,statement2
,,……
fi
双分支的如果语句:
如果判断条件;然后
,,语句1
,,statement2
,,其他…
,,statement3
,,statement4
,,……
fi
纳米tt.sh
# !/bin/bash
# NAME=user1
如果id名称和美元比;/dev/null;然后
,,回声”美元的名字存在。”
其他,美元,useradd名称
,,echo $名字| passwd, stdin,美元的名字,在/dev/null
,美元,呼应“添加名字完了。”