1.编写一个shell脚本函数并运行该函数,要求该函数完成功能为:利用for循环将目录/home/学号 下的 .c文件移动到/var/学号 目录。 例:“学号”命名规则为:姓名缩写+学号 ( 例如刘洋 ly042240327 )
时间: 2024-11-27 08:24:26 浏览: 24
编写一个名为`move_c_files.sh`的shell脚本,可以完成这个任务。首先,我们需要创建一个函数来遍历目录、找到`.c`文件并移动它们。以下是脚本的基本结构:
```bash
#!/bin/bash
# 函数 move_c_files
function move_c_files() {
local student_id=$1
source_dir="/home/$student_id"
dest_dir="/var/$student_id"
# 验证目标目录是否存在
if [ ! -d "$dest_dir" ]; then
echo "Directory $dest_dir does not exist. Creating it..."
mkdir -p "$dest_dir"
fi
# 使用find查找.c文件并移动
for file in "$source_dir"/*.c; do
cp "$file" "$dest_dir/"
echo "Moved file ${file##*/} to ${dest_dir}/${file##*/}"
done
}
# 获取用户输入的姓名首字母和学号
read -p "Please enter your name abbreviation and student ID (e.g., ly042240327): " user_input
# 分割输入得到姓名和学号
name_initial=$(echo "$user_input" | cut -d' ' -f1)
student_id=$(echo "$user_input" | cut -d' ' -f2)
# 调用函数,传递姓名首字母和学号作为参数
move_c_files "$name_initial"
#
阅读全文