Aqui está uma maneira de fazer isso.
excludes=( ".*" temp/ "Ubuntu One/" )
rsync --delete "${excludes[@]/#/--exclude=}"
Note que o acima usa a sintaxe bash, então não funcionará com sh. Além disso, as citações são vitais, não as omitir.
Veja o link para uma explicação de por que colocar mais de um argumento em uma variável de string está errado.
EDIT: A partir da pasta de colagem em seus comentários, isso parece ser o que você quer.
#!/bin/bash
source=/home/chris/
backupdir=/media/alteplatte/backups
backupname=$(date +%Y-%m-%d)-cd
excludes=( ".*" temp/ "Ubuntu One/" )
linkdest=$backupdir/link
if [[ -d $backupdir ]]; then
rsync -av ${linkdest:+"--link-dest=$linkdest"} --delete \
"${excludes[@]/#/--exclude=}" "$source" "$backupdir/$backupname"
else
echo "$0: $backupdir: Not a directory, make sure the filesystem is mounted" >&2
exit 1
fi