[clug] Rosetta code: bash/bourne shell 'loops' example
Hal
hal.ashburner at gmail.com
Sun Mar 21 04:04:53 MDT 2010
On 03/21/2010 08:55 PM, steve jenkin wrote:
> Peter Barker wrote on 21/03/10 8:01 PM:
>
>> On Sun, 21 Mar 2010, steve jenkin wrote:
>>
>> I think I prefer this - what I think to be pretty idiomatic:
>>
>> pbarker at eccles:~$ for i in `seq 1 5`; do for j in `seq 1 $i`; do echo -n
>> '*'; done; echo; done
>> *
>> **
>> ***
>> ****
>> *****
>> pbarker at eccles:~$
>>
>> Or did I miss something?
>>
> Elegant...
> I wasn't aware of the 'seq' command/builtin
> [hence my "yes|head|tr -d '\n' "]
>
> The Rosetta people made a distinction between "Unix Shell" and "Unix
> pipeline", which I find a little arbitrary and confusing...
>
> Didn't look further to find how they drew the line.
>
> I like your one-liner better :-)
>
So do I compared to the following bash-ism.
$ for ((i=1; $i <=5; i=$i+1));do for ((j=1; $j <=$i; j=$j+1)); do
printf "*"; done; printf "\n"; done
But it might save a fork or two.
Hal
More information about the linux
mailing list