Menu
CoddyTech

成功提示

本课属于 Coddy Terminal 学习旅程的“基础知识”单元。第 79 课,共 82 课。

challenge icon

挑战

简单

我们来完善这个备份脚本,添加一条最终成功消息,总结备份了什么。

修改 backup.sh,完成以下操作:

  1. 保留上一课中的所有现有代码(工作区中的 backup.sh 就是那个版本,如下所示)
  2. 在 "Files copied successfully" 消息后添加一行最终摘要
  3. 打印:Backup complete: [source_dir] -> [backup_dir]

上一课结束时的脚本如下:

#!/bin/bash
read -p "Enter directory to backup: " source_dir
echo "Backing up: $source_dir"
backup_dir="backup_$(date +%Y%m%d_%H%M%S)"
mkdir "$backup_dir"
echo "Created backup folder: $backup_dir"
cp "$source_dir"/* "$backup_dir"/
echo "Files copied successfully"

最快的修改方法是用 cat > backup.sh << 'EOF' ... EOF 重写整个文件,并在结尾的 EOF 之前添加新的一行。

运行脚本,并在提示时输入 documents。输出应该如下所示:

Backing up: documents
Created backup folder: backup_20240115_143052
Files copied successfully
Backup complete: documents -> backup_20240115_143052

输出中的时间戳会根据当前日期和时间而有所不同。

恭喜!你已经编写了一个完整的备份脚本,它可以:

  • 提示用户输入源文件夹
  • 创建带时间戳的备份文件夹
  • 将所有文件复制到备份文件夹
  • 在每个步骤提供清晰的反馈

提示:在脚本末尾添加 echo "Backup complete: $source_dir -> $backup_dir",以显示最终摘要消息。

亲手试试

终端
cat > backup.sh << 'EOF'
#!/bin/bash
echo "Enter folder to backup:"
read folder
echo "Backing up: $folder"
timestamp=$(date +%Y%m%d_%H%M%S)
backup_dir="backup_$timestamp"
mkdir "$backup_dir"
echo "Created backup folder: $backup_dir"
cp "$folder"/* "$backup_dir"/
echo "Files copied successfully"
EOF
chmod +x backup.sh
echo "documents" | bash backup.sh

基础知识中的所有课

自己练习: Terminal 在线编辑器