Previous | Table of Contents | Next |
# | anything following a # to the end of the current line is treated as a comment and ignored. If the first character of a script file is #, a C shell is invoked. Otherwise a Bourne shell is invoked. |
#!interpreter | if the first line of a script file starts with this, then the script is run by the specified interpreter. For example, #!/bin/ksh would cause a Korn shell to be invoked. C shell options flags can also be enabled here. |
The C shell provides a number of options that are useful in debugging scripts: n, v, and x (see C Shell Options). The n option causes commands to be read without being executed and is used to check for syntax errors. The v option causes the input to displayed as it is read. The x option causes commands in C shell scripts to be displayed as they are executed. This is the most useful, general debugging option. For example, tscript could be run in trace mode if invoked csh x tscript.
~/.cshrc | read at beginning of execution by C shell |
~/.history | contains previously executed commands |
~/.login | read by login shell after .cshrc file |
~/.logout | read by login shell at logout |
Regular expressions are used in many UNIX commands, including awk, ed, egrep, grep, sed, and vi.
c | non-special character c | ||||||||||
\c | special character c | ||||||||||
^ | beginning of line | ||||||||||
$ | end of line | ||||||||||
. | any single character | ||||||||||
[abc] | any character a, b, or c | ||||||||||
[ac] | any character in range a through c | ||||||||||
[^abc] | any character except a, b, or c | ||||||||||
[^ac] | any character except characters in range a through c | ||||||||||
\n | nth \(...\) match (grep only) | ||||||||||
rexp* | zero or more occurrences of regular expression rexp
rexp+
| one or more occurrences of regular expression rexp
| rexp?
| zero or one occurrence of regular expression rexp
| rexp1 | rexp2
| regular expressions rexp1 or rexp2
| \(rexp\)
| tagged regular expression rexp (grep only)
| (rexp)
| regular expression rexp (egrep only)
| |
The following commands are frequently used in C shell scripts to filter input and output.
awk/nawk - Pattern Scanning and Processing Language
$awk [ options ] [ 'program' ] [ parameters ] [ files ] $nawk [ options ] [ 'program' ] [ files ]
Description:
The awk/nawk command performs actions for lines in files that match patterns specified in program. Each input line is made up of fields separated by whitespace.
Options:
ffile | get patterns from file instead of program | ||
Fc | separate fields with character c (default whitespace) | ||
v variable=value | assign value to variable (nawk only) | ||
parameters | parameters have the format variable=expression
files
| read standard input if files is or no files are specified
| |
Program Format:
Patterns in program can be associated with a statement to perform if an input line matches the pattern. The format is:
{ statement }
A missing pattern always matches, and a missing statement prints the current input line.
Patterns:
BEGIN | match before first input line |
END | match after last input line |
pattern1, pattern2, ..., patternn | match if pattern1, pattern2, or patternn match current input line |
pattern1 && pattern2 | match if pattern1 and pattern2 match current input line |
pattern1 || pattern2 | match if pattern1 or pattern2 match current input line |
!pattern | match if pattern does not match current input line |
/regular-expression/ | match if regular-expression matches current input line |
relational-expression | match if relational-expression evaluates to true |
Flow Control Statements:
break | exit from for or while loop |
continue | execute next for or while loop |
delete variable[expression] | delete element expression from array variable |
do statement while (expression) | execute statement while expression is true |
exit | skip remaining input |
for (expression1; expression2; expression3) statement | execute statement while expression2 is true; loop is usually initialized with expression1 and incremented with expression3 |
for (variable in array) statement | execute statement, setting variable to successive elements in array |
if (expression) statement1 [ else statement2 ] | execute statement1 if expression is true, otherwise execute statement2 |
next | skip rest of the input line |
return[expression] | return value of expression |
system(command) | execute command and return status |
while (expression) statement | execute statement while expression is true |
Input/Output Statements:
close(file) | close file |
getline | set $0 to next input record (set NF, NR, FNR) |
getline<file | set $0 to next input from file (set NF) |
getline variable | set variable to next input record (set NR, FNR) |
getline variable<file | set variable to next input record from file |
command | getline | pipe output of command into getline |
print current input record | |
print expression | print expression; multiple expressions must be separated with a , |
print expression>file | print expression to file; multiple expressions must be separated with a , |
printf format expression | print expression according to C-like format. Multiple expressions must be separated with a ,. Output can also be appended to file using >>, or piped to a command using |. |
printf format expression>file | print expression to file according to C-like format. Multiple expressions must be separated with a ,. Output can also be appended to file using >>, or piped to a command using |. |
Previous | Table of Contents | Next |