In bash one can escape arguments that contain whitespace.
foo "a string"
This also works for arguments to a command or function:
bar() {
    foo "$@"
}
bar "a string"
So far so good, but what if I want to manipulate the arguments before calling foo?
This does not work:
bar() {
    for arg in "$@"
    do
        args="$args \"prefix $arg\""
    done
    # Everything looks good ...
    echo $args
    # ... but it isn't.
    foo $args
    # foo "$args" would just be silly
}
bar a b c
So how do you build argument lists when the arguments contain whitespace?
 
     
     
     
     
     
    