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

Re: print command



On Fri, Oct 31, 2003 at 09:27:27PM +0100, theocrite@free.fr wrote:
> Quoting Bijan Soleymani <bijan@psq.com>:
> 
> > On Fri, Oct 31, 2003 at 02:50:17PM -0500, Vivek Kumar wrote:
> > > Hi,
> > > 
> > > Is there any other command to print any character say "*" 80 times..
> > > 
> > > like echo "******************************"
> > > (In bsh  or ksh)
> > > 
> > > Is there any short command ??
> > 
> > A possible not good way to do this in bash:
> > for x in `seq 80`; do echo -n "*"; done ; echo
> > 
> > the last echo is to get the newline to print.
> > 
> > In perl you could do:
> > perl -e 'for(1..80){print "*";}print "\n";'
> > 
> > Technically that is shorter than:
> > echo
> > "********************************************************************************"
> 
> Can you just explain how to use this for ? It seems far away the ones I know
> (C,C++,basic,Java,php,etc.)

Since bash is the default shell in Debian you should be able to open up
an xterm and type:
for x in `seq 80`; do echo -n \*; done; echo

Basically this is the bash (or sh) for loop.

for variable in list; do list of tasks; done

it takes the list of variables and then runs the list of tasks
substituting into the variable each time.

For example:
bijan@server:~$ for x in 1 2 3; do echo $x; done
1
2
3

The command "seq n" generates a list of numbers from 1 to n. Enclosing
it in parenthese makes the shell substitute it in the command line.

My perl example was pretty bad:
perl -e 'for(1..80){print "*";}print "\n";'
The actual code is:
for(1..80)
{print "*";}
print "\n";

1..80 creates a list of numbers from 1 to 80
for in perl can be used both as in C/C++ or as in bash to loop over each
element of a list.

A better way of doing it in perl was described by David Z Maze:
print "*" x 80 . "\n";
This prints the string "*" 80 times and sticks "\n" at the end.
x in perl can be used to multiply a string.
. in perl can be used to concatenate two string.

Bijan
-- 
Bijan Soleymani <bijan@psq.com>
http://www.crasseux.com

Attachment: signature.asc
Description: Digital signature


Reply to: