Unix: csh Shell Loop Example
C
an 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.
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
tcsh(1)