Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!swrinde!elroy.jpl.nasa.gov!decwrl!nsc!amdahl!krs From: krs@uts.amdahl.com (Kris Stephens [Hail Eris!]) Newsgroups: comp.unix.shell Subject: Re: for loops Keywords: sh: for i to $FILES Message-ID: <5bQ701Uo530=00@amdahl.uts.amdahl.com> Date: 5 Apr 91 17:36:16 GMT References: <3693@ux.acs.umn.edu> <2816@maestro.htsa.aha.nl> Reply-To: krs@amdahl.uts.amdahl.com (Kris Stephens [Hail Eris!]) Organization: Amdahl Corporation, Sunnyvale CA Lines: 32 In article <2816@maestro.htsa.aha.nl> miquels@maestro.htsa.aha.nl (Miquel van Smoorenburg) writes: >In article <3693@ux.acs.umn.edu> edh@ux.acs.umn.edu (Merlinus Ambrosius) writes: >>In sh, I'd like to do something like a BASIC for loop. Say I have $FILES >>set to some number, and I'd like to go through a loop $FILES times. Can >>this be done in sh? > >POSIX states that sh(1) should be able to evaluate expressions, >so you can do something like >while [ $FILES != 0 ] >do > echo -n '* ' > FILES=$[$FILES - 1] >done > >But I haven't seen a sh anywhere that is already capable of doing this >(not even the one I am writing myself for Minix... yet.). >Maybe somebody knows if a new ksh can do this? #### ksh fragment #### while [ $FILES -gt 0 ] do echo "$FILES" ((FILES -= 1)) # or ((FILES = $FILES - 1)) done #### ksh fragment #### ...Kris -- Kristopher Stephens, | (408-746-6047) | krs@uts.amdahl.com | KC6DFS Amdahl Corporation | | | [The opinions expressed above are mine, solely, and do not ] [necessarily reflect the opinions or policies of Amdahl Corp. ]