Unix: csh Shell Loop Example

by on July 29, 2013 · 1 comment· LAST UPDATED July 29, 2013

in , ,

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.

Tutorial details
DifficultyEasy (rss)
Root privilegesNo
Requirementstcsh/csh
Estimated completion time5 minute

Syntax

The syntax is as follows:

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

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

OR

foreach n ( 1 2 3 4 5 )
#command1
#command2
end

Examples

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

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

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

Sample outputs:

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

csh foreach example

 
#!/bin/csh
echo "Setting name servers...."
foreach i ( ns1.cyberciti.biz ns2.cyberciti.biz  )
   echo $i
end

Sample outputs:

Setting name servers....
ns1.cyberciti.biz
ns2.cyberciti.biz

You can use wild card with foreach as follows:

 
#!/bin/csh
foreach i (*)
        if (-f $i) then
            echo "$i is a file."
        endif
        if (-d $i) then
             echo "$i is a directory."
        endif
end
 

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
TwitterFacebookGoogle+PDF versionFound an error/typo on this page? Help us!

{ 1 comment… read it below or add one }

1 Flávio Veras July 30, 2013 at 10:01 am

What about giving us the same examples for /bin/sh?
Thanx in advance.

Reply

Leave a Comment

Tagged as: , ,

Previous Faq:

Next Faq: