Anzeige:
Ergebnis 1 bis 2 von 2

Thema: Debug output in bash skript umleiten

  1. #1
    Registrierter Benutzer Avatar von TheGuardian1987
    Registriert seit
    22.02.2012
    Beiträge
    1

    Debug output in bash skript umleiten

    Hallo Zusammen,

    ich habe leider ein Problem beim bash Skripten.

    Ich möchte gerne das von mir aufgerufene Kommandos mit allen Parametern ausgegeben werden, damit man die durchgeführten Schritte nachvollziehen kann. Hierfür wollte ich die Bash option set -x verwenden:

    Beispiel:
    Code:
    set -x
    echo "Hallo Welt"
    Output:
    Code:
    59+ echo 'Hallo Welt'
    Hallo Welt
    So weit so gut. Nun bin ich auf der Shell aber nicht in der Lage diesen Output umzuleiten.

    Folgender Aufruf filtert, wie erwartet, nur STDOUT.

    Code:
    echo "Hallo Welt" >/dev/null
    60+ echo 'Hallo Welt'
    Der Debug Output scheint aber auch nicht auf STDERR umleitbar zu sein:

    Code:
    echo "Hallo Welt" >/dev/null 2>/dev/null
    61+ echo 'Hallo Welt'
    Ich konnte trotz längerer Suche keinen Hinweis finden, woran dieses verhalten liegt.

    Nur um das Vorwegzunehmen:

    Die folgende Lösung finde ich recht unschön und das es funktioniert ist mir bekannt, aber nicht gewünscht.

    Code:
    echo 'echo "Hallo Welt"'
    echo 'Hallo Welt'

  2. #2
    Registrierter Benutzer Avatar von jeebee
    Registriert seit
    01.01.2005
    Ort
    Bern || Zürich
    Beiträge
    540
    Der Output von "set -x" wird von der ausführenden Shell generiert, d.h. um das erwünschte Verhalten zu haben musst du etwas in der Art machen:

    File skript.sh:
    Code:
    #!/bin/bash
    set -x
    echo "Hallo Welt"
    und dann mit
    Code:
    chmod +x skript.sh
    ausführbar machen. Wenn du jetzt
    Code:
    ./skript.sh 2>trace.txt
    ausführst, hast du den "set -x"-Output im File trace.txt.
    my very own 128 bit integer
    C4 D3 B8 A8 9E A0 C6 EC 7D EC A8 15 28 D1 92 58
    more information

Stichworte

Lesezeichen

Berechtigungen

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