standardout auf bildschirm und ins logfile (ohne tee)

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von neutrino1, 03.05.2005.

  1. #1 neutrino1, 03.05.2005
    neutrino1

    neutrino1 Mitglied

    Dabei seit:
    03.05.2005
    Beiträge:
    30
    Zustimmungen:
    0
    Hi!

    Ich möchte standardout sowohl am Bildschirm als auch in ein logfile schreiben. tee konnte ich nicht verwenden, da sonst der RC=0 (nämlich vom tee) ist, auch wenn das script einen Fehler produziert.
    Nun hab ich das versucht:

    exec 3> ${LOGFILE}
    exec 1>&3
    main

    standardout sollte doch eigentlich in den filedeskriptor 3 kopiert werden und der soll ins logfile schreiben - das logfile wird zwar geschrieben, am Bildschirm ist nichts zu sehen.
    Weiß wer, was ich da falsch mache?
     
  2. Anzeige

    Schau dir mal diesen Ratgeber an. Viele Antworten inkl. passender Shell-Befehle!
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 skynnyr, 03.05.2005
    Zuletzt bearbeitet: 03.05.2005
    skynnyr

    skynnyr Mitglied

    Dabei seit:
    03.06.2004
    Beiträge:
    37
    Zustimmungen:
    0
    Da ich nicht weiß, was du mit dem Splitten der Standardausgabe erreichen willst, ist mein Vorschlag möglicherweise sinnlos. Aber was hälst du von tail -f?
    Code:
    tail -f ${LOGFILE} & tailPID=$!
    machwas > ${LOGFILE}
    kill -9 $tailPID
     
  4. #3 neutrino1, 04.05.2005
    neutrino1

    neutrino1 Mitglied

    Dabei seit:
    03.05.2005
    Beiträge:
    30
    Zustimmungen:
    0
    Hi!

    Das Skript wird von einem SchedulingTool gesteuert - dieses Tool kann nur den standardout darstellen und braucht außerdem den richtigen returncode (no nah) fürs scheduling. Trotzdem soll aber auch ein logfile geschrieben werden. Ich wollte halt einfach eine elegante Lösung.
    Ich hab jetzt letzendich meine erste Lösung (dafür eine "russische") implentiert (in der function main sind andere function, die eine exit-function im Fehlerfallaufrufen:

    Code:
    export RC_FILE="${TMPDIR}/${SCRIPTNAME%_sh}.$$"
    ....
    (main 2>&1;echo $? > ${RC_FILE}) |tee -a ${LOGFILE}
    RC_MAIN=$(cat ${RC_FILE}) && rm -f ${RC_FILE}
    ....
    exit ${RC_MAIN}
    
    Trotzdem Danke für Deine Anregung!
    Ciao
    Robert
     
  5. #4 ninguno, 13.05.2005
    ninguno

    ninguno Tripel-As

    Dabei seit:
    13.05.2005
    Beiträge:
    162
    Zustimmungen:
    0
    in der bash könntest du die $PIPESTATUS[] array variable verwenden:

    main 2>&1 |tee -a ${LOGFILE}
    exit ${PIPESTATUS[0]}
     
  6. Cyber

    Cyber .:DISTORTED:.

    Dabei seit:
    16.05.2003
    Beiträge:
    999
    Zustimmungen:
    0
    Ort:
    D -> BW -> Karlsruhe
    Hmm, könnte auch so gehen:
    Code:
    RETVALFILE="/tmp/"$(date +%s%N)
        ( PROGRAMM | tee -a $LOGFILE ; echo $? > $RETVALFILE )
        RETVAL=`cat $RETVALFILE`
    rm -rf $RETVALFILE
    
     
  7. #6 neutrino1, 17.05.2005
    neutrino1

    neutrino1 Mitglied

    Dabei seit:
    03.05.2005
    Beiträge:
    30
    Zustimmungen:
    0
    Hi!

    Danke, ist eine gute Idee, von der ich noch nichts gehört hatte.
    Leider steht mir nur die 88-ksh zur Verfügung, und dort geht es nicht.

    Ciao
     
  8. #7 neutrino1, 17.05.2005
    neutrino1

    neutrino1 Mitglied

    Dabei seit:
    03.05.2005
    Beiträge:
    30
    Zustimmungen:
    0
    Hi!

    Das genau hat nicht funktioniert, weil in $RETVALFILE der Returnstatus vom tee hineingeschrieben wird und der is 0, egal wie PROGRAMM endet.

    Ciao
     
Thema:

standardout auf bildschirm und ins logfile (ohne tee)

Die Seite wird geladen...

standardout auf bildschirm und ins logfile (ohne tee) - Ähnliche Themen

  1. VNC: nur grauer Bildschirm

    VNC: nur grauer Bildschirm: Hallo, habe wie folgt http://teguhth.blogspot.in/2013/08/how-to-enable-vncserver-on-solaris-10.html einen VNC Server auf meinem Oracle Solaris 10...
  2. Kaum Bildschirm/Anzeige Einstellmöglichkeiten

    Kaum Bildschirm/Anzeige Einstellmöglichkeiten: Hallöchen Ich habe nach langer Zeit wieder mal zu Kubuntu 14.04 gewechselt :) Nun versuche ich seit Stunden Anzeige nach Wünschen zu...
  3. Debian: Bash-Skript darf nur (weiter)laufen, wenn Bildschirmschoner an

    Debian: Bash-Skript darf nur (weiter)laufen, wenn Bildschirmschoner an: Hallo zusammen, ich bräuchte mal einen Hinweis. Ziel ist es, dass das Bash-Skript nur läuft, wenn der PC gerade nicht benutzt wird. Ich dachte...
  4. GUbutnu 14.04 LTS DualMonitor-Mode: Ubuntu merkt sich die Bildschirmpositionen nicht

    GUbutnu 14.04 LTS DualMonitor-Mode: Ubuntu merkt sich die Bildschirmpositionen nicht: Liebe Community, ich habe vor kurzem GUbuntu 14.04 LTS aufgesetzt. Es funktioniert soweit auch wunderbar, nur habe ich das Problem, dass es...
  5. Wayland 1.3 mit Echtzeit-Bildschirmaufnahmen

    Wayland 1.3 mit Echtzeit-Bildschirmaufnahmen: Kristian Høgsberg, der Initiator von Wayland, hat Version 1.3 von Wayland und der Kompositor-Referenzimplementation Weston freigegeben. Die...