2.编写shell脚本test02.sh实现如下功能:读取class.txt中的内容,根据内容设计脚本,在mytest02目录中创建以班级名称命名的目录,在每个班级目录中创建以每个学号命名的txt文件。(class.txt的内容入下图所示)
时间: 2024-03-26 14:38:08 浏览: 71
好的,以下是实现该功能的Shell脚本代码:
```bash
#!/bin/bash
# 定义class.txt文件路径
class_file="class.txt"
# 读取class.txt文件内容,逐行处理
while read line
do
# 获取班级名称和学号列表
class_name=$(echo $line | awk '{print $1}')
stu_list=$(echo $line | awk '{print $2}')
# 在mytest02目录中创建以班级名称命名的目录
mkdir -p mytest02/$class_name
# 遍历学号列表,创建以学号命名的txt文件
for stu_id in $stu_list
do
touch mytest02/$class_name/$stu_id.txt
done
done < $class_file
```
解释一下该脚本的执行步骤:
1. 定义变量`class_file`,用于存放class.txt文件的路径;
2. 使用`while read`循环读取class.txt文件中的每一行数据;
3. 对于每一行数据,使用`awk`命令获取班级名称和学号列表;
4. 使用`mkdir -p`命令在mytest02目录中创建以班级名称命名的目录;
5. 使用`for`循环遍历学号列表,使用`touch`命令在班级目录中创建以学号命名的txt文件。
注意事项:
- 该脚本需要在当前目录下存在名为class.txt的文件,且该文件内数据格式应与题目描述一致;
- 如果mytest02目录已存在,脚本会自动在该目录下新建班级目录和学号文件。如果不希望覆盖原有文件,请在执行脚本前备份mytest02目录。
阅读全文