Shells: Tutorial


* Einf├╝hrung * Installation * Paketmanager * Grundlagen * Shells * Entwicklung * KDE * Skriptsprachen * AWK * PHP * Perl * Apache * Veranstaltungen * Schulungen * B├╝cher * Netzwerk * OpenOffice * OpenSource * Samba

Shells


© <a href="http://www.fotolia.de/p/29003">Ljupco Smokovski</a> - FOTOLIA
Home
Erste Schritte mit der Bourne-Shell
Dateien zeilenweise zusammenf├╝gen
Head or Tail
Schleifen und Z├Ąhlen
Shell-Variablen
Pipes
Sortieren von Daten
Wer sucht der findet!
Praktische Shell-Skripte
Rechtschreibung
Schleifen und elegant Z├Ąhlen
Texte formatieren mit fmt und fold
Umlenkung der Ein- und der Ausgaben
Klammer-Erweiterung
Verkn├╝pfen von Textdateien mittels Schl├╝sselfeldern
Mit freundlicher Unterstützung von:

Linux-Kurse und Seminare Linux Kurse
Veranstalter des
Linux-Tag
am Bodensee
2007 und 2008

Kontakt
Haftung
Impressum
Problem Hilfe Startseite


Praktische Shell-Skripte

Man hat eine Menge von Dateien, die in mehrere zip-Dateien verpackt werden sollen, die jeweils nicht gr├Â├čer als 2 MByte sein d├╝rfen. Dieses Problem taucht in der Praxis beispielsweise auf, wenn man das Programm Gallery, ein Open Source Photalbum, benutzt. Dort kann man entweder einzelne Bilder hochladen oder ein gezipptes File mit mehreren Bildern, aber in der Default-Einstellung darf kein Bild und keine Zip-Datei gr├Â├čer als 2 MByte sein.

Das folgende Skript erzeugt Zip-Dateien mit den Namen p0.zip, p1.zip, p2.zip usw. Die Zip-Dateien werden iterativ erzeugt, d.h. in jedem Schritt wird ein weiteres Bild hinzugef├╝gt, aber nur, wenn die Gr├Â├če des neuen Bildes plus die des vorherigen Zip-Files nicht gr├Â├čer als 2000 kBytes ist.


#!/bin/sh
# 

counter=0
for i in *.JPG
do 
    echo $i
    zip_name=`echo p${counter}.zip`
    size=`ls -s  $zip_name | cut -d' ' -f1`
    fsize=`ls -s  $i | cut -d' ' -f1`
    size=`expr $size + $fsize`


    echo $size
    if [ $size -gt  2000 ]
    then
	counter=`expr $counter + 1`
	zip_name=`echo p${counter}.zip`
	if [ -f $zip_name ]
	then
	    rm $zip_name
	fi
    fi
    zip  $zip_name $i
done
© Copyright 2007 - 2010, Bernd Klein mit freundlicher Unterst├╝tzung von Bodenseo, Linux-Kurse und Schulungen,
Foto linke Seite (Mann mit Strick und Colt): Foto: ┬ę Ljupco Smokovski, fotolia 984022