something like this script below, it is written for MKS toolkit to be run on windows but it's based on ksh, it's pretty simple, used for uncompress zips and rars, menu based, simple menu though
#!/bin/ksh
# dir ---------> nombre de directorio
# numzip ------> cantidad de zips que hay en cada directorio
# zipname -----> nombre de cada zip en el directorio
# numrar ------> cantidad de rars que hay en cada directorio
# rarname -----> nombre de cada rar en el directorio
# log --------> ruta de los logs
# data --------> directorio de software
# identstr ----> las 3 primeras letras de los ficheros, sirve como wild card
export log=e:\/download\/\/log
export data=e:\/download\/\/rips
export ddate=`date +%C%y%m%d`
unzip()
{
for dir in `grep ^ dir.txt`
do
cd $dir
echo "checking for zips in $dir" >> $log\/${ddate}error.txt
ls *.zip > zip.txt 2>> $log\/${ddate}error.txt
if [ $? -eq 0 ]
then
numzip=`cat zip.txt | wc -l`
identstr=`head -1 zip.txt | awk '{print substr($1, 1,3)}'`
pkunzip -od $identstr\*.zip >> $log\/${ddate}uncompress.log
status=$?
if [ `ls *.zip | wc -l` -gt $numzip ]
then
echo "More zips were extracted in $dir" >> $log\/${ddate}error.txt
fi
case $status in
0) for zipname in `grep ^ zip.txt`
do
rm $zipname
done
;;
1) echo "Pkunzip exits with error status 1"
;;
11) echo "CRC Error during zip extraction in $dir, Status 11" >> $log\/${ddate}error.txt
;;
*) print "Unexpected exit status, error in $dir" >> $log\/${ddate}error.txt
;;
esac
fi
cd $data
done
}
unrar()
{
for dir in `grep ^ dir.txt`
do
cd $dir
echo "checking for rars in $dir" >> $log\/${ddate}error.txt
ls *.r* > rar.txt 2>> $log\/${ddate}error.txt
if [ $? -eq 0 ]
then
numrar=`cat rar.txt | wc -l`
identstr=`head -1 rar.txt | awk '{print substr($1, 1,3)}'`
rar x -z -y $identstr\*.rar >> $log\/${ddate}uncompress.log
status=$?
if [ `ls *.r* | wc -l` -gt $numrar ]
then
echo "More rars were extracted in $dir" >> $log\/${ddate}error.txt
fi
case $status in
0) for rarname in `grep ^ rar.txt`
do
rm $rarname
done
;;
3) echo "CRC Error during rar extraction in $dir" >> $log\/${ddate}error.txt
;;
*) print "Unexpected exit status, error in $dir" >> $log\/${ddate}error.txt
;;
esac
fi
cd $data
done
}
cleanup()
for dir in `grep ^ dir.txt`
do
cd $dir
rm rar.txt zip.txt *.diz 2>> $log\/${ddate}error.txt
cd $data
done
echo "Please select uncompressing options"
echo "1. unzip only"
echo "2. unrar only"
echo "3. unzip & unrar"
echo "4. unzip, unrar & cleanup"
echo "5. cleanup only\n"
read option
echo "Error Log starting.........................................\n" > $log\/${ddate}error.txt
echo "Process Log starting.........................................\n" > $log\/${ddate}uncompress.log
case $option in
1) unzip
;;
2) unrar
;;
3) unzip
unrar
;;
4) unzip
unrar
cleanup
;;
5) cleanup
;;
*) print "Please insert options 1 ~ 5"
;;
esac