|
CSE Home | About Us | Search | Contact Info |
Due: Thursday, April 9, at 11 pm.
In this assignment you'll gain some more experience with shell commands and with writing short shell scripts.
General hint: Before trying to write and debug a script , it's very helpful to first work out the necessary commands by experimenting in a shell window.
xyzzy
(and
nothing more) is printed on standard out, and nothing is printed
on standard error when the command is entered. You can precede your commands
with other commands (e.g., to create a file) and/or pass options to your
commands. Solve this problem for each of the listed commands individually.echo, cat, ls, grep, !!Hint: The last one can be tricky. Think about various ways to define commands, aliases, or shell scripts.
problem1
describe your solution, including
each command you use and a very brief explanation of it.private
such that when you run private
foo
,
the entire subtree of the file-system starting at foo
(so just foo
if it
is a file, but foo
and all of its files and subdirectories recursively if
it is a directory) has its permissions changed as follows:
defprivate
such that entering source
defprivate
would
make private
available in the shell.combine
that takes 2 or more
arguments, call them f1, f2, ..., fn
. Script combine
should
work as follows:stderr
and exit.f1
already exists, print "Error: first file
exists" on stderr
and exit.f2, ..., fn
and
copy them to stdout
. Do not print any error messages from this (for example
if some file
does not exist or is a directory). Instead, any
such error messages should be written to f1
./dev/stdout
and/or /dev/stderr
. These
are not portable across *nix systems, although they are found on most
versions of Linux, and the problem can be solved without them.shift, $@, -lt, -a
.datedlinecount
that works as follows:total
../datedlinecount log foo bar; ./datedlinecount
log foo*; cat log
might produce something like:Mon Mar 26 20:42:16 PDT 2009 4 foo 17 bar 21 total Mon Mar 26 20:42:17 PDT 2009 4 foo 3 food 7 totalHints:
shift, date, wc, $@
.Assessment: Your solutions should be
bash
.Identifying information including your name, CSE 374 Homework 2, the problem number, and the date should appear as comments in each of your files.
Turn-in Instructions: Use the turn-in drop box link on
the main course web page to submit your files. If you wish, you can
combine your files into an archive (see the tar
command) and turn that
in as a single file. The choice is yours; do whichever is most convenient.
Computer Science & Engineering University of Washington Box 352350 Seattle, WA 98195-2350 (206) 543-1695 voice, (206) 543-2969 FAX [comments to Hal Perkins] |