Text-only | Table of Contents (frame/ no frame) |
(18) Flow control |
![]() ![]() ![]() |
list && list
list || list
Example:
mkdir tempdir && cp workfile tempdir sshd || echo "sshd failed to start"
if
list; then list ; elif list; then list; else list; fi
Example:
if [ -r $myfile ] then cat $myfile else echo $myfile not readable fi
while
list; do list; done
until
list; do list; done
until
form just negates the test.
for
identifier [ in words ]; do; list; done
Example:
for file in *.dat do echo Processing $file done
$?
can be used instead of some of the above.
Compound commands can be thought of as running in an implicit subshell. They
can have I/O redirection independant of the rest of the script. Setting of variables in a real subshell does not
leave them set in the parent script. Setting variables in implicit subshells varies in behaviour among shells.
Older sh
could not set variables in an implicit subshell and then use them later,
but current ksh
can do this (mostly).
Example: ex11 display, text
Reading a file line by line. The book by Randal Michael contains 12 example ways to read a file line by line,
which vary tremendously in efficiency. This example shows the simplest and fastest way.
flow-control.src last modified Mar 26, 2010 | Introduction | Table of Contents (frame/no frame) |
Printable (single file) |
© Dartmouth College |