On Mon, Nov 7, 2011 at 8:29 AM, Dennis Williamson
<dennistwilliam...@gmail.com> wrote:
> 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.

Thanks! I didn't notice this difference before.


-- 
Regards,
Peng

Reply via email to