Writing C-shell scripts

Download Report

Transcript Writing C-shell scripts

Integer variables
#!/bin/csh
# sum of numbers from $argv[1] to $argv[2]
set low = $argv[1]
set high = $argv[2]
set sum = 0
set current = $low
while ( $current <= $high)
@ sum += $current
@ current++
end
echo The sum of the numbers from $low to $high is $sum.
Searching the File Tree: Find Command
General form
find filename…expression…
find ~ -name \*.awk –print
Searches the subtree rooted at home directory
visiting each file and printing each file that
ends in .awk
Some important primary expressions
• -atime n
• -name filename
• -exec cmd (end of command must be
punctuated by a space then \;)
• -newer file
• -print
(see pages 149-151 of text for more details)
The different shells
Name
of shell
sh
csh
bash
zsh
ksh
tcsh
# of internal
commands
32
52
50
73
43
56
Size of
man pages
44,000
77,000
127,000
133,000
141,000
199,800
Complexity
1.0
1.73
2.86
3.00
3.18
4.99
The if Statement – Bourne Shell
if [ condition ]
then
commands
else
commands
fi
Test condition operators – Bourne shell
String = string
String != string
Value –eq value
Value –ne value
Value –gt value
Value –ge value
Value –lt value
Value –le value
Referencing arguments – Bourne shell
$0, $1, $2, … (same as csh)
$* (list of all the variable)
$# (number of variables)
Bourne shell script
#!/bin/sh
# lookup a person's phone number in the phone book
if [ $# -ne 1 ]
then
echo "\nusage:$0 name\n"
else
grep "$1" phone_book
fi
The while Statement – Bourne Shell
while [ condition ]
do
commands
done
Infinite Loop
while true
while :
The for Statement – Bourne Shell
for variable in list
do
commands
done
#!/bin/sh
for index in 1 2 3 4 5
do
echo $index
done
Clean - Bourne Shell
http://www.ececs.uc.edu/~berman/620/cleanbourne
File Types
1. Ordinary file – contains text, programs, or
other data
2. Directory – contains names and addresses
of other files
3. Special file – represents an I/O device
4. Link – pointer to another file
5. Socket – used for interprocess
communication