Re: double "triangle" loop for $* ?
On 2006-11-01, Stephane CHAZELAS wrote:
> 2006-10-31, 16:11(-08), Yakov:
>> I'm curious how to write the double "triangle" loop for $* in posix sh
>> analogous to this loop: for(k=0; k<N;k++) for(j=0; j<k; j++) body;
>> preferably in posix shell. I'm experienced shell scripter but here,
>> I'm stumped: for x in $*; do for y in ????; do body; done; done;
>> (???? must become the slice of $* list from $1 to one before
>> the element represented by $x)
>>
>> Is it possible at all ? bash-specific solutions are welcome, too,
>> but posix sh are preferred.
> [...]
>
> for x in $*
>
> is not correct.
It may be correct. The OP may want it ...
> split against spaces (the ones used for concatenation and
> the one in the positional parameters themselves)tabs and newline
> characters, and filename generation is performed (? is expanded
> to the list of single character files in the current directory
> for instance).
....
--
Chris F.A. Johnson, author <http://cfaj.freeshell.org/shell>
Shell Scripting Recipes: A Problem-Solution Approach (2005, Apress)
===== My code in this post, if any, assumes the POSIX locale
===== and is released under the GNU General Public Licence
|