SHELL脚本编程---判断
1、条件判断
条件判断在bash分为整数判断,字符判断和文件判断。
1-1条件判断的表达式: ① [ expression ] (注意单词词头和词尾都需要空格)
② [[ expression ]](注意同上)
③ test expression
1-2 整数比较
① -eq 测试两个数是否相等,相等为真,不等为假
② -ne 测试两个数是否不等, 反之。
③ -gt (大于),-lt (小于),-ge(大于或等于),-le(小于或等于)
逻辑与:&& 逻辑或: ||
2、条件判断,控制结构
if 判断条件;then
statement1
statement2
statement3
………
fi 单分支if语句。
双分支的if语句
if 判断条件;then
statement1
else
statement2
fi
命令执行状态返回值:0为真,其他数值全为假。
==================以下全部都为练习例题===============
逻辑判断题1、
1、如果用户不存在,则添加用户
id USERNAME &> /dev/null || useradd USERNAME
(一般在脚本中定义的变量内容,脚本执行结束,变量就会被撤销)
逻辑判断2、
1、如果用户存在,就显示用户已经存在,否则就添加此用户。
id newuser && echo “newuser exists” || useradd newuser
逻辑判断3、
1、如果用户不存在,就要添加用户,否则就显示用户已存在
id newuser &> /dev/null && echo “newuser exist” || useradd newuser
逻辑判断4、
如果用户不存在,添加还给密码,否则,显示用户已经存在
id newuser2 && echo “newuser2 exists” || useradd newuser2 && echo “newuser2” | passwd --stdin newuser2
条件判断练习题:
添加三个用户,user1-user3。需要提前判断用户是否存在,并显示添加了几个用户。最后显示当前系统上用户的数量
练习题二:
写一个脚本,使用一个变量保存用户名,判断其是否存在先,而且如果其UID为0,就说它是管理员,如果不为0就说它们是普通用户。
写一个简单脚本,完成如下的任务、
使用一个变量保存用户名,删除变量中的用户,以及它的家目录,显示“删除成功”信息。
练习题三:
判断当前系统上是否有用户默认的shell为bash,如果有,就显示有多少个这样的用户,否则,就显示没有。
========(注意:这里面有个叫RETVAL=$? 这个写在那个命令语句后面,执行的就是哪个后面的命令执行状态返回结果。)=========
练习题四:
判断当前系统上是否有用户默认的shell为bash,如果有,就显示其中的一个用户名,否则,就显示没有。
练习四:写脚本,给定一个文件,如/etc/inittab,判断文件中是否有空白的行,如果有,显示空白行数,否则,显示没有空白行。
练习四改进:写脚本,让用户随便输入一个文件,判断该文件是否有效,如果有效,则显示其空白的行,否则,显示没有空白行。
练习五:随便给一个用户,判断它的UID和GID是否一致,如果一致,显示用户为”good guy“
否则,显示为bad guy
练习六:判定命令历史中历史命令的总条目是否大于等于1000,如果大于等于1000,则显示“need clean up”,否则显示“ok!”
或者是