shell脚本练习及小总结
写4个脚本,要求如下
一.给定一个用户:
1、如果其UID为0,就显示此为管理员;
2、否则,就显示其为普通用户;
vim .sh 结尾的文件
修改username 测试不同用户
二.断当前系统上是否有用户的默认shell为bash;
如果有,就显示有多少个这类用户;否则,就显示没有这类用户;
三.给定一个文件,比如/etc/inittab
判断这个文件中是否有空白行;
如果有,则显示其空白行数;否则,显示没有空白行。
四.给定一个用户,判断其UID与GID是否一样
如果一样,就显示此用户为“good guy”;否则,就显示此用户为“bad guy”
拓展
字符串运算符:
$ 检测字符串是否为空,不为空返回 true。
= 检测两个字符串是否相等,相等返回 true。
!= 检测两个字符串是否不相等,不相等返回 true。
-z 检测字符串长度是否为0,为0返回 true。
-n 检测字符串长度是否不为 0,不为 0 返回 true
关系运算符
-eq 检测两个数是否相等,相等返回 true。 (equal)
-ne 检测两个数是否不相等,不相等返回 true。 (unequal)
-gt 检测左边的数是否大于右边的,如果是,则返回 true。 (greater than)
-lt 检测左边的数是否小于右边的,如果是,则返回 true。 (less than)
-ge 检测左边的数是否大于等于右边的,如果是,则返回 true。
-le 检测左边的数是否小于等于右边的,如果是,则返回 true。
文件测试符
-r 检测文件是否可读,如果是,则返回 true。
-w 检测文件是否可写,如果是,则返回 true。
-x 检测文件是否可执行,如果是,则返回 true。
-s 检测文件是否为空(文件大小是否大于0),不为空返回 true。
-e 检测文件(包括目录)是否存在,如果是,则返回 true。
-d 检测文件是否是目录,如果是,则返回 true。
-f 检测文件是否是普通文件(既不是目录,也不是设备文件),如果是,则返回 true。
逻辑运算符
&& 是逻辑“与”,只有当前面语句执行成功的时候才会执行后面的命令。
|| 是逻辑“或”,只有当前面语句执行失败的时候才会执行后面的命令。
! 是逻辑“非”,代表对逻辑测试结果取反值,之前是正确则变错误,错误则变正确。