bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: passing array to command line argument.


From: Dolphin06
Subject: Re: passing array to command line argument.
Date: Tue, 9 Dec 2008 08:45:44 -0800 (PST)

I dont get it right, i always display only the first one, and i dont know how
to write a scalar variable.
I tried like this :
ssh $USER@$SERVER script2 -f "${my_array[@]}"

It's not changing anything.
I m using bash.
Thank you.

Stephane Chazelas wrote:
> 
> On Tue, Dec 09, 2008 at 09:14:51AM -0500, Chet Ramey wrote:
>> > 
>> > Hello i would like to pass an array to my script command line argument,
>> but
>> > only the first element of the array is displayed.  Here is my process :
>> > 
>> > script1:
>> > my_array=(el1 el2 el3)
>> > script2 -f $my_array
>> 
>> You're only passing the first element of the array to script2.  An
>> unsubscripted word expansion expands to the first element of an array.
> [...]
> 
> More exactly, an unsubscripted word expansion expands to the
> element of subscript 0 or to the empty string if that element is
> not defined.
> 
> After
> 
> a[12]=foo
> 
> The first element is "foo", but $a expands to the empty string.
> 
> $a is a shortcut for ${a[0]} and a=bar is a shortcut for a[0]=bar 
> 
> This is similar to ksh but different from zsh where arrays and
> scalars are of different types, and arrays are not scarse arrays
> but normal arrays. In zsh, a[12]=foo allocates an array of 12
> elements, the first 11 being empty; $a is the same as $a[*] and
> is the list of non-empty elements in $a. Doing a=foo, would
> change the type of $a to be a scalar, so you'd lose all the
> array elements. The OP's code is actually zsh (or rc/es) syntax,
> though it would make more sense to do:
> 
> scalar -f "${my_array[@]}"
> 
> which would work the same in bash, ksh93 and zsh (and in zsh, it
> wouldn't discard the empty elements, contrary to $my_array).
> 
> -- 
> Stéphane
> 
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/passing-array-to-command-line-argument.-tp20914576p20918475.html
Sent from the Gnu - Bash mailing list archive at Nabble.com.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]