please can any one help me bundle several files into one

#!/bin/sh
#call function from loop
filevalidate()
{
case $# in
0) echo "usage enshar file1 file2 ... > outputfile ! " >/deb/sterr ;;
*) for filename
do

if [ $filename -gt 1 ]; then
	echo "invalid pathname  > try bin " $filename >/dev/stderr
	exit 1
fi

if [ -d $filename ]; then
		echo "is a directory!" $filename >/dev/stderr
	exit 2
fi

if [ ! -r $filename ] || [ ! -f $filename ]; then
	echo "unreadable or non existant "  $filename >/dev/stderr
	exit 3
fi

grep -- "^!EnShAr!" "$filename"

if [ $? -eq 0 ]; then
echo "cant enshar it or already enshared! "  $filename >/dev/stderr
exit 5  
fi
if [ $filename = "" ]; then
echo "usage is enshar file1 file2 .. > outputfile" >/dev/stderr  
exit 6
fi

done ;;
esac
}

for filename in $*
do
filevalidate $filename
done

for filename in $*
do
echo cat \>$filename \<\<"\\!EnShAr!"
cat <$filename
echo "!EnShAr!"
echo set \`cksum $filename\`
set `cksum $filename`
echo "test \$filename = $filename || echo \$0: BAD checksum in
$filename >&2"
done

exit 0

#this is what i have so far and only works 80%
#kind regards

Is there a reason you cannot use tar?
If you tell us exactly what you are trying to do, we can help you.

thats the point no compression utiliy as it use CPU usuage

any thanks for responding !!

um, what you're doing has cpu usage. tar does what shar does, it packs, it doesn't necessarily compress or encrypt files. You can read a tar in an editor.
Especially if it's just a text file archive. Anyway, how you pack things is not that important.

Again, can you tell us what you are trying to do, minus the cpu problem.

In other words, what are your requirements?

$ enshar README cars Unix > eg.shar
$ mailx -s 'Re: Please send me your brilliant stuff' \
> p.scott@shu.ac.uk < eg.shar
$

You have to:

o work out how to use the shar file to extract the files it
contains,

o work out how it works, and

o write a shell script called `enshar' to produce shar files to
exactly the same format. (But your's won't have been e-mailed, so
they won't have any e-mail headers!)

Notice that `enshar' doesn't generate files directly; it only sends to
standard output. In the example, `eg.shar' was created because the
user redirected `enshar's output into `eg.shar'.

If `enshar' finds an error, it outputs an error message and executes an
`exit n'. The required error messages and the values of `n' are as
follows:

 1  Usage: enshar file [ ... ]

 2  enshar: &lt;parameter&gt;: can't be a pathname

 3  enshar: &lt;parameter&gt;: is a directory

 4  enshar: &lt;parameter&gt;: doesn't exist

 5  enshar: &lt;parameter&gt;: can't be read

 6  enshar: &lt;parameter&gt;: can't enshar

Notes:

o The first error message is given if the script is called without
parameters.

o The second error message is given if a parameter has a `/' character
in it.

o Error messages three to five are given if the file specified by a
parameter is: a directory, non-existant or unreadable.

o Error message six is given if the file specified by the parameter
contains the line that is used as the `here document' delimiter.

o `enshar' doesn't need to check all its parameters before generating
any output. That is, it can fail after outputting part of the shar
file. It would be an error for `enshar' to output anything else after
generating an error message.

6 In error messages two to six `<parameter>' should be replaced by the
value of the actual parameter that caused the problem.

Homework. You should read the FAQ. Homework help is not allowed here.