
实验内容与步骤
1. 使用for循环批量添加linux用户。
首先,创建文件,然后为文件授权,最后运行文件。
首先输入需要添加用户的总数量,然后进入for循环,添加用户。
也可以将输出的信息添加到user.txt文件。
2.名字,数量,密码不能为空if判断。
y=$(echo $num | sed ‘s/[0-9]//g’)
这句将num中素有数字替换成空字符串的代码也可以用以下正则的表达式书写
y=$(echo $num | sed ‘s/^[0-9]*$//g’)
它的意思是如果num是以数字开头和数字结尾的一个纯数字,那么替换成空字符串,否则不做替换
echo $pass | passwd –stdin $name$i
这句表示给用户赋予新的密码
以上是自己输入用户,自己进行添加
下面是添加类似stu1,stu2。。。类似的用户:
1 | #!/bin/bash |
3.熟练使用sed命令判断num的数字类型命令。
采用if循环,通过sed来判断输入的num变量是否为整数,并在屏幕上进行相应的反馈。
4.使用管道操作条件。
管道就是一个进程与另一个进程之间通信的通道,它通常是用作把一个进程的输出通过管道连接到另一个进程的输入。它是半双工运作的,想要同时双向传输需要使用两个管道。管道又可以分为匿名管道和命名管道,shell中使用到的是匿名管道。
管道的本质是内存中的缓冲区,可以看作是打开到内存中的文件。所以需要使用两个文件描述符来索引它,一个表示读端,一个表示写端。并且规定,数据只能从读端读取、只能往写端写入。
管道的局限性:
① 数据自己读不能自己写。
② 数据一旦被读走,便不在管道中存在,不可反复读取。
③ 由于管道采用半双工通信方式。因此,数据只能在一个方向上流动。
④ 只能在有公共祖先的进程间使用管道。
管道命令的操作符是:”|”,它只能处理由前面一条指令传出的正确输出信息,对错误信息是没有直接处理能力的。然后,传递给下一条指令,作为操作对象。
基本格式: 指令1 | 指令2 | …
【指令1】正确输出,作为【指令2】的输入,然后【指令2】的输出作为【指令3】的输入,如果【指令3】有输出,那么输出就会直接显示在屏幕上面了。通过管道之后【指令1】和【指令2】的正确输出是不显示在屏幕上面的。
【提醒注意】:
管道命令只能处理前一条指令的正确输出,不能处理错误输出;
管道命令的后一条指令,必须能够接收标准输入流命令才能执行。