自学内容网 自学内容网

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)!