2.编写shell脚本test02.sh实现如下功能:读取class.txt中的内容,根据内容设计脚本,在mytest02目录中创建以班级名称命名的目录,在每个班级目录中创建以每个学号命名的txt文件。(class.txt的内容入下图所示)
时间: 2024-03-26 09:40:06 浏览: 53
好的,以下是实现该功能的shell脚本test02.sh的代码:
```bash
#!/bin/bash
# 循环读取class.txt文件中的每一行
while read line
do
# 提取班级名称和学号
class=$(echo $line | cut -d ' ' -f 1)
id=$(echo $line | cut -d ' ' -f 2)
# 创建班级目录
mkdir -p mytest02/$class
# 在班级目录下创建以学号命名的txt文件
touch mytest02/$class/$id.txt
done < class.txt
echo "创建完成!"
```
解释一下上述代码:
- 第1行声明使用bash解释器。
- 第4-11行使用while循环逐行读取class.txt文件中的内容。
- 第6-7行使用cut命令提取每行中的班级名称和学号。
- 第9行使用mkdir命令创建以班级名称命名的目录,-p选项表示自动创建不存在的父目录。
- 第11行使用touch命令在班级目录下创建以学号命名的txt文件。
- 第13行输出创建完成的提示信息。
注意事项:
- 脚本执行前,确保class.txt文件存在且内容符合要求。
- 班级名称和学号之间用空格分隔。
- 如果class.txt文件中存在空行,脚本会自动跳过。
- 如果mytest02目录已经存在,脚本会在该目录下创建班级目录和txt文件,不会提示是否覆盖。
相关问题
编写shell脚本test02.sh实现如下功能:读取class.txt中的内容,根据内容设计脚本,在mytest02目录中创建以班级名称命名的目录,在每个班级目录中创建以每个学号命名的txt文件
好的,我理解了您的要求。以下是实现该功能的shell脚本test02.sh:
```shell
#!/bin/bash
# 读取class.txt并逐行处理
while read line
do
# 获取班级名称和学生列表
class=$(echo $line | awk '{print $1}')
students=$(echo $line | awk '{print $2}')
# 在mytest02目录中创建班级目录
mkdir mytest02/$class
# 循环处理每个学生
for student in $students
do
# 在班级目录中创建以学号命名的txt文件
touch mytest02/$class/$student.txt
done
done < class.txt
```
这个脚本会逐行读取class.txt文件,每行格式为“班级名称 学生列表”,然后根据班级名称在mytest02目录中创建一个以该名称命名的目录。接着,它会循环处理每个学生,创建一个以学号命名的txt文件,并放在班级目录中。
7.编写shell脚本test07.sh实现如下功能:生成一个长度为50的随机数组,将其中的偶数当前目录下的mytest07目录中的abc.txt中。
好的,请按照以下步骤操作:
1. 首先在当前目录下创建一个名为mytest07的文件夹,可以使用以下命令:
```
mkdir mytest07
```
2. 然后编写shell脚本test07.sh,可以使用以下代码:
```bash
#!/bin/bash
# 生成长度为50的随机数组
arr=()
for ((i=0;i<50;i++))
do
arr[i]=$((RANDOM%100))
done
# 将偶数写入abc.txt文件中
for ((i=0;i<50;i++))
do
if [[ $((arr[i]%2)) -eq 0 ]]
then
echo ${arr[i]} >> ./mytest07/abc.txt
fi
done
```
3. 接着给test07.sh文件执行权限,可以使用以下命令:
```
chmod +x test07.sh
```
4. 最后执行test07.sh脚本,可以使用以下命令:
```
./test07.sh
```
执行完成后,当前目录下的mytest07目录中的abc.txt文件中将会包含随机数组中的所有偶数。
阅读全文