0

New to Bash - I'm trying to run a script that copies the profile from a mounted Windows drive using ditto. I have run the ditto command with the username included so know it works, now trying to use a variable input to run. But get an error msg with this. I have tried with "" around the variable but still getting an error - what am I missing?

#!/bin/bash

echo "Enter user name: " 
read username

echo "Transfer of $username profile started at " > ~/Desktop/transfer.log
date >> ~/Desktop/transfer.log
clear
echo "Transferring Data Folder to Documents Folder"
ditto -v /Volumes/C/Data ~/Documents/Data 2>> ~Desktop/transfer.log
echo "Data transfer complete"

echo "Transferring Documents Folder - Will error on system folders My Music, My Pictures, My Videos"
ditto -v /Volumes/C/Users/$username/Documents ~/Documents 2>> ~Desktop/transfer.log
echo "Documents transfer complete"

echo "Transferring Downloads Folder"
ditto -v /Volumes/C/Users/$username/Downloads ~/Documents/Downloads 2>> ~Desktop/transfer.log
echo "Downloads transfer complete"

echo "Transferring Favorites Folder to Documents Folder"
ditto -v /Volumes/mpc/Users/$username/Favorites ~/Documents/Favorites 2>> ~Desktop/transfer.log
echo "Favorites transfer complete"

echo "Transferring Desktop Folder"
ditto -v /Volumes/C/Users/$username/Desktop ~/Desktop 2>> ~Desktop/transfer.log
echo "Desktop transfer complete"

echo "Transferring Music Folder"
ditto -v /Volumes/C/Users/$username/Music ~/Music 2>> ~Desktop/transfer.log
echo "Music transfer complete"

echo "Transferring Pictures Folder"
ditto -v /Volumes/C/Users/$username/Pictures ~/Documents/Pictures 2>> ~Desktop/transfer.log
echo "Pictures transfer complete"

echo "Transferring Videos Folder"
ditto -v /Volumes/C/Users/$username/Videos ~/Videos 2>> ~Desktop/transfer.log
echo "Videos transfer complete"

echo "Transferring PST from AppData to Documents Folder"
cp -v /Volumes/C/Users/$username/AppData/Local/Microsoft/Outlook/*.pst ~/Documents/Outlook Files 2>> ~Desktop/transfer.log
echo "AppData transfer complete"

echo "Removing My Music, My Pictures, My Videos"
rm -r "~/Documents/My Music"
rm -r "~/Documents/My Pictures"
rm -r "~/Documents/My Videos"
echo "Removal complete"

echo "Transfer Complete - Press any key to exit"
read Exit
exit
Jonathan Mee
  • 37,899
  • 23
  • 129
  • 288
  • 2
    Please create a [Minimal, Complete, Verifiable Example](http://stackoverflow.com/help/mcve) – Jonathan Mee Jan 24 '17 at 13:46
  • What is the error message ? Also, edit your question, and don't post a wall of code, just the relevant part that doesn't work – Aserre Jan 24 '17 at 14:31
  • You need to quote any argument with spaces, for example `~/"Documents/Outlook Files"` – Grisha Levit Jan 24 '17 at 17:25
  • Also, you must *not* quote the `~/` (when used to reference your home folder). For example, use `rm -r ~/"Documents/My Music"` instead of `rm -r "~/Documents/My Music"`. – Gordon Davisson Jan 24 '17 at 19:02

0 Answers0