This little script is a great example of how something simple in UNIX can do a lot. It skips past the mail header and comments that come before some shell archives (19.2), then feeds the archive to a shell. You can use it while you're reading a message with most UNIX mail programs (1.33):
&save | unshar
or give it the name of an archive file on its command line:
%unshar somefile.shar
and so on. Here's a version of the script:
#! /bin/sh # IGNORE LINES BEFORE FIRST "#" COMMENT STARTING IN FIRST COLUMN: sed -n '/^#/,$p' $1 | sh
The script reads from its standard input or a single file.
It skips all lines until the comment (#
) that starts most
shell archives; the rest of the lines are piped to the shell.
It doesn't read from multiple files; that would add another couple
of lines for a loop - and make the script too long! :-)
In the last few years,
much fancier unshar programs (19.3)
have come out.
They protect against "Trojan horses" buried in shar files and let
systems without a Bourne shell (like DOS) unpack shell archives.
This basic script still does a fine job though.
[It also gives one more demonstration of why at least basic knowledge
of
sed (34.24)
is so important to would-be power users.
It's an incredibly handy
utility. -TOR ]
-