SHELL脚本编程---判断
1、条件判断
条件判断在bash分为整数判断,字符判断和文件判断。
1-1条件判断的表达式: ① [ expression ] (注意单词词头和词尾都需要空格)
② ` expression `(注意同上)
③ test expression
1-2 整数测试
① -eq 测试两个数是否相等,相等为真,不等为假
② -ne 测试两个数是否不等, 反之。
③ -gt (大于),-lt (小于),-ge(大于或等于),-le(小于或等于)
1-3 文件类的测试
① -e (exist) FILE 测试该文件是否存在
② -f FILE 测试该文件是否为普通文件
③ -d FILE 测试该文件是否为目录文件
④ -r FILE 测试该文件对执行当前脚本文件的用户来说是否有读权限
⑤ -w FILE 测试该文件对执行当前脚本文件的用户来说是否有写权限
⑥ -x FILE 测试该文件对执行当前脚本文件的用户来说是否有执行权限
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
1、如果用户不存在,就要添加用户,否则就显示用户已存在
id newuser &> /dev/null && echo “newuser exist” || useradd newuser
如果用户不存在,添加还给密码,否则,显示用户已经存在
id newuser2 && echo “newuser2 exists” || useradd newuser2 && echo “newuser2” | passwd --stdin newuser2
添加三个用户,user1-user3。需要提前判断用户是否存在,并显示添加了几个用户。最后显示当前系统上用户的数量
#!/bin/bash
read -p "Plz input your username :" User
id $User &> /dev/null
RETVAL=$?
if [ $RETVAL -eq 0 ];then
for i in {1..3};do
useradd $User$i && echo "$User$i" | passwd -- stdin $User$i &> /dev/null
done
else
echo "$User exists"
fi
练习题二:
写一个脚本,使用一个变量保存用户名,判断其是否存在先,而且如果其UID为0,就说它是管理员,如果不为0就说它们是普通用户。
写一个简单脚本,完成如下的任务、
使用一个变量保存用户名,删除变量中的用户,以及它的家目录,显示“删除成功”信息。
练习题三:
判断当前系统上是否有用户默认的shell为bash,如果有,就显示有多少个这样的用户,否则,就显示没有。
========(注意:这里面有个叫RETVAL=$? 这个写在那个命令语句后面,执行的就是哪个后面的命令执行状态返回结果。)=========
练习题四:
判断当前系统上是否有用户默认的shell为bash,如果有,就显示其中的一个用户名,否则,就显示没有。
练习四:写脚本,给定一个文件,如/etc/inittab,判断文件中是否有空白的行,如果有,显示空白行数,否则,显示没有空白行。
练习四改进:写脚本,让用户随便输入一个文件,判断该文件是否有效,如果有效,则显示其空白的行,否则,显示没有空白行。
练习五:随便给一个用户,判断它的UID和GID是否一致,如果一致,显示用户为”good guy“
否则,显示为bad guy
练习六:判定命令历史中历史命令的总条目是否大于等于1000,如果大于等于1000,则显示“need clean up”,否则显示“ok!”
转载于:https://blog.51cto.com/libincla/1574622