2011-01-30 43 views
3

我使用Ubuntu将超过一百张CD中包含的文件复制到单个硬盘驱动器。当CD的内容完成复制到硬盘驱动器时,我收到没有任何迹象表明它已完成。我想创建shell脚本,执行以下操作:完成后通知脚本文件复制

  1. 提示我的名字给一个新的文件夹
  2. 在创建的目标硬盘
  3. 将文件夹复制当前CD的内容CD驱动器到新的文件夹
  4. 通知我当复制操作完成

我已经安装libnotify到我的电脑,但我愿意使用的通知等手段。

回答

3
#!/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" [email protected] 
    printf 'Copy to folder %s is complete.\n' "$name" 
done 
1

谢谢丹尼斯,它的魅力!仅供参考,以下是我最终使用的内容:

#!/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