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.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…