shell第三章(条件测试)
一。基本语法:
1.test -参数 条件表达式
注释:-f判断是否为普通文件,需要搭配echo $?来鉴别真假
2.[条件表达式]
注释:两端需要添加空格
3.[[条件表达式]]
注释:条件要求严格,两侧需要添加空格,但是支持小数
4.((条件表达式))
注释:内部不需要添加空格,但是不支持小数
第一第二种格式等价,判断条件是否为真,echo $?,真返回0,假返回0
第三种:[[ ]]是扩展命令,可以使用通配符等进行模式匹配,$$ || > <等操作可以直接应用于双中括号,但是不能用于单中括号中
第四种:(())一般用于if条件内,两端不需要有空格,测试对象为整数
二。简单循环语句的编写:
拓展:
$():将字符串识别为命令
cat /etc/passwd:进行查看此文件的内容
wc -l:统计内容来源的行数,字符数,存储字节数(题目中统计总账户数)
-lt:相当于小于,判断是否小于
三。命令分隔符:
cmd1;cmd2:以独立的程序依次执行cmd1和cmd2
(cmd1;cmd2):在同一进程中依次执行cmd1和cmd2
cmd1&cmd2:cmd1和cmd2同时执行,分属于不同的进程
cmd1&&cmd2:当cmd1为真,则执行cmd2
cmd1||cmd2:当cmd1不为真,则执行cmd2
cmd2&:后台执行
注释:用来判断id root是否存在,存在则没有信息录入/dev/null(类似于空洞),则表示为真,没有此用户,则会用内容录入/dev/null,从而为假
四。案例分析
例1:判断当前已经登陆的账户数,若超过2个则输出too many
注释:who:用来查看当前有多少用户进行登陆,cut:进行截取第一列,sort -u:对容进行去重后排序,wc -l:用来统计总数,-gt:表示大于
例2:测试日志文件是否大于50
3.输入一个文件目录看是否存在,存在则提示,不存在则进行新建后查看
4.输入两个数,看是否是数字,从而进行运算
注释:-n:判断是否非空,-a:表示连接
5.显示所有系统用户名称,从键盘获账户,判断是否为系统账户还是普通账户
注释:
0:超级管理员
1-99:系统用户
1000以上:普通用户
id -u 用户名:仅显示用户id
6.对于文件的空白行进行显示行数
原文地址:https://blog.csdn.net/2301_78530830/article/details/143693321
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!