Se você está sempre usando todos os parâmetros, apenas chame tar
da seguinte forma: tar -cvf backup.tar "$@"
. Caso contrário, se você estiver selecionando um subconjunto (embora não mostre), crie a lista de arquivos em uma matriz como esta:
declare -a files
while [[ $# > 0 ]]; do
key="$1"
shift
# assume some filtering goes on here
files+=("$key")
done
tar -cvf backup.tar "${files[@]}"