【发布时间】:2023-03-02 21:12:02
【问题描述】:
我正在使用 Ubuntu 将一百多张 CD 中包含的文件复制到单个硬盘驱动器。当 CD 的内容完成复制到硬盘驱动器时,我没有收到任何完成的指示。我想创建执行以下操作的 shell 脚本:
- 提示我输入新文件夹的名称
- 在目标硬盘上创建文件夹
- 将当前光驱中的CD内容复制到新文件夹中
- 复制操作完成时通知我
我已经在我的计算机上安装了 libnotify,但我愿意使用其他通知方式。
【问题讨论】:
我正在使用 Ubuntu 将一百多张 CD 中包含的文件复制到单个硬盘驱动器。当 CD 的内容完成复制到硬盘驱动器时,我没有收到任何完成的指示。我想创建执行以下操作的 shell 脚本:
我已经在我的计算机上安装了 libnotify,但我愿意使用其他通知方式。
【问题讨论】:
#!/bin/bash
while read -r -p "Enter a folder name: " name
do
[[ -z $name ]] && break # quit if user presses enter without input
mkdir -p "$name"
cp source "$name" # use your current copy method
# Notifications: choose one or all six or add your own
notify-send "Copy complete" "Folder: $name"
zenity --title="Copy complete" --text="Copying to folder $name is complete" --info&
dialog --title "Copy complete" --msgbox "\nCopying to folder\n$name\nis complete\n" 10 60
for i in {1..4}
do
printf '\a' # make some noise
sleep 1
done
echo "Copying to folder: $name is complete" | mail -S "Copy completion notification" keyslinger@example.com
printf 'Copy to folder %s is complete.\n' "$name"
done
【讨论】:
谢谢,丹尼斯,它很有魅力!仅供参考,这是我最终使用的:
#!/bin/bash
while read -r -p "Enter a folder name: " name
do
[[ -z $name ]] && break # quit if user presses enter without input
cd /media/Iomega_HDD
mkdir -p "$name"
cdname=`volname`
cdname=${cdname%% *} #trim white space from variable holding cd name
cdname=${cdname#* }
cp -r /media/"$cdname"/. "$name"
# Notifications:
notify-send "Copy complete" "Folder: $name"
printf 'Copy to folder %s is complete.\n' "$name"
eject
done
【讨论】: