bash - surround all array elements or arguments with quotes

Viewed 3258

I want to write a function in bash that forwards arguments to cp command. For example: for the input

<function> "path/with whitespace/file1" "path/with whitespace/file2" "target path"

I want it to actually do:

cp "path/with whitespace/file1" "path/with whitespace/file2" "target path"

But instead, right now I'm achieving:

cp path/with whitespace/file1 path/with whitespace/file2 target path

The method I tried to use is to store all the arguments in an array, and then just run the cp command together with the array. Like this:

function func {
    argumentsArray=( "$@" )
    cp ${argumentsArray[@]}
}

unfortunately, It doesn't transfer the quotes like I already mentioned, and therefore the copy fails.

1 Answers
Related