Unix: csh Shell Loop Example

in Categories , , last updated July 29, 2013

Can you give me a simple loop example in csh shell in Linux or Unix like operating systems?

The C shell (csh) or the improved version, tcsh is a Unix shell that was originally created by Bill Joy at University of California, Berkeley in the late 1970s.


The syntax is as follows:

while ( condition )
# do something
# command 1
# command 2

set i = 1
while ( i < 5 ) # do something till i < 5 # command 1 # command 2 @ i++ end


foreach n ( 1 2 3 4 5 )


The following csh code will print welcome message five times on screen:

 # demoloop.csh - Sample loop script
 set j = 1
 while ( $j <= 5 )
   echo "Welcome $j times"
   @ j++

Save and close the file. Run it as follows:
chmod +x demoloop.csh

Sample outputs:

Welcome 1 times
Welcome 2 times
Welcome 3 times
Welcome 4 times
Welcome 5 times

csh foreach example

echo "Setting name servers...."
foreach i ( ns1.cyberciti.biz ns2.cyberciti.biz  ) 
   echo $i 

Sample outputs:

Setting name servers....

You can use wild card with foreach as follows:

foreach i (*)
        if (-f $i) then
            echo "$i is a file."
        if (-d $i) then
             echo "$i is a directory."

Sample outputs:

mycal.pl is a file.
skl is a directory.
x is a file.
x.pl is a file.
y is a file.

Please note that csh was popular for many innovative features but csh has never been as popular for scripting. If you are writing system level rc scripts avoid using csh. You may want to use /bin/sh for any scripts that might have to run on other systems.

Recommended readings
  • tcsh(1)

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.

Share this on (or read 2 comments/add one below):

2 comment

  1. How to write script in c shell to write all numbers from input number down to 1 using loop

    Have a question? Post it on our forum!