Anzeige:
Ergebnis 1 bis 4 von 4

Thema: Fehlerroutine in Script einbauen

  1. #1
    Gast

    Talking Fehlerroutine in Script einbauen

    Hallo,
    ich habe noch ein anderes Script erstellt, mit dem Dateien, die User in einem Verzeichnis erstellen, automatisch in PDF-Dateien umgewandelt werden.
    Dabei kommt es vor, daß die User nicht wie notwendig mit einem postscriptfähigem Druckertreiber, die Datei erzeugen sondern mit einem anderen Druckertreiber. Außerdem sind manchmal die erzeugten Dateien buggy.
    Ich möchte nun in untenstehendem Script die Fehlerausgabe von "ps2pdf" abfangen und dem Benutzer eine sinnvolle Mitteilung machen.
    Wie geht das?
    mein Script:
    ****************
    #!/bin/bash

    # Wechseln ins Einlauf-Verzeichnis
    cd /nw-dienste/pool/organisation/pdf-erstellung/in

    # Suchen nach der ersten PDF-Datei
    # uebersetzen der Dateien und Ausgabe in Ausgabe-Verzeichnis
    # Definieren einer Variablen durch Abfrage des Verzeichnisses
    set $(ls -a)
    # ueberspringen der ersten beiden Eintraege (. und ..)
    # da Schleife sonst immer durchlaufen wird
    shift 2
    # alle Eintraege uebersetzen und ins Ausgabeverzeichnis
    # kopieren
    for i
    do
    # uebersetzen der postscrpt-Datei in PDF
    /usr/bin/ps2pdf $i ../out/$i.pdf
    # loeschen der Datei
    rm $i
    date>>/root/batches/pdf-erstellung/pdf.ausgabe
    mail -s "pdf-erstellung" w.ginzky@domaene.de</root/batches/pdf-erstellung/pdf.txt
    done
    ************
    Danke fuer Eure Hilfe,
    Werner

  2. #2
    Registrierter Benutzer
    Registriert seit
    19.10.1999
    Ort
    Dresden
    Beiträge
    255

    Post

    /usr/bin/ps2pdf $i ../out/$i.pdf 2&gt;/dev/null &#0124; &#0124; echo "Fehler..."

    Thomas

  3. #3
    Gast

    Post

    Hallo Thomas,
    ich habe etwas rumprobiert aber bin leider nicht weitergekommen.
    Das Kommando "ps2pdf" erzeugt einen Fehler, wenn man mit einem nichtpostscriptfähigen Druckertreiber die Druckdatei erzeugt hat, mit der "ps2pdf" das pdf erzeugen soll.
    Ich möchte nun gerne mit z.B.
    for i
    ps2pdf $i -d /verzeichnis
    if Fehler then
    ...
    else kein Fehler then

    fi
    done

    die (Fehler)ausgabe des Befehls abfangen und entsprechend darauf reagieren.
    Kannst Du oder auch sonst jemand dabei helfen?
    Vielen Dank,
    Werner

  4. #4
    Registrierter Benutzer
    Registriert seit
    19.10.1999
    Ort
    Dresden
    Beiträge
    255

    Post

    In der Bashvariablen $? steht der Rückgabewert des letzten Kommandos. Er ist 0, wenn das Kommando sauber durchlief und &gt;0 sonst. Also testet Du in der if-Bedingung, ob $? verschieden 0 ist:

    <code>if [ "$?" -ne "0" ]; then ...</code>

    Thomas

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •