On Mon, Nov 7, 2011 at 7:23 AM, Peng Yu <pengyu...@gmail.com> wrote:
> Hi Clark,
>
>> What do you mean by "1 long argument"?
>>
>> [bash-4.2.10] # cat foo.sh
>> v="  a b c ( a'b | "
>> set -o noglob
>> a=( $v )
>> set +o noglob
>> for i in "${a[@]}"; do
>>     echo "$i"
>> done
>> [bash-4.2.10] # bash foo.sh
>> a
>> b
>> c
>> (
>> a'b
>> |
>> [bash-4.2.10] #
>
>
> I misunderstood the usage of "${args[@]}". I though it returns only
> one long argument "  a b c ( a'b | ", but it actually expanded to 6
> short arguments "a", "b", "c", "(", "a'b" and  "|". Thanks for
> clarification.
>
>
>
> --
> Regards,
> Peng
>
>

If you use "${args[*]}" (with quotes and an asterisk instead of an at
sign), the result is one long argument. Otherwise, it's split.

-- 
Visit serverfault.com to get your system administration questions answered.

Reply via email to