staging.inyokaproject.org

Shell/Umleitungen

Status: Gelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |
Dieses Thema ist die Diskussion des Artikels Shell/Umleitungen.

noisefloor Team-Icon

(Themenstarter)

Anmeldungsdatum:
6. Juni 2006

Beiträge: 29567

Hallo,

seit 11:31 Uhr ist es im Artikel... Bitte noch mal drüber schauen, ob so ok.

Gruß, noisefloor

Marco_Jagodzinska

Anmeldungsdatum:
24. November 2011

Beiträge: Zähle...

Hallo,

müsste es am Ende von "Umleiten der Ausgabe mit >" nicht heißen: "In alten Versionen der Bash funktionierte die Umleitung mit >>& nicht."?

Und "funktionierte" klingt danach, dass es jetzt funktioniert. Bei mir mit Ubuntu 17.04 und GNU bash, Version 4.4.7(1)-release (x86_64-pc-linux-gnu) funktioniert es jedoch auch nicht.

Viele Grüße, Jago

noisefloor Team-Icon

(Themenstarter)

Anmeldungsdatum:
6. Juni 2006

Beiträge: 29567

Hallo,

dass das nicht fehlt ist richtig. Lt. meiner kurzen Recherche funktioniert >>& ab Bash 4 - womit es auch bei dir laufen sollten...

Gruß, noisefloor

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13242

noisefloor schrieb:

dass das nicht fehlt ist richtig. Lt. meiner kurzen Recherche funktioniert >>& ab Bash 4 - womit es auch bei dir laufen sollten...

Zwei Anmerkungen:

  • ">>&" gibt es nicht, da fehlt auf jeden Fall noch der FD oder ein "-" zum Schließen

  • Die Sache ist m.E. schon recht lange im POSIX-Standard festgelegt, m.e. mindestens sei 2008 (siehe hier).

noisefloor Team-Icon

(Themenstarter)

Anmeldungsdatum:
6. Juni 2006

Beiträge: 29567

Hallo,

ich hatte nur kurz bei Google nach >>& gesucht, da war in einem Thread auch von Bash 3 vs. 4 die Rede. Könntest du das dann im Artikel korrigieren? Mir war bis dato >>& sowie so nicht bekannt. Das stammt auch nicht von mir, als ich den Artikel vor ~10 Jahren geschrieben habe ☺

Gruß, noisefloor

Marco_Jagodzinska

Anmeldungsdatum:
24. November 2011

Beiträge: 48

Im Artikel stand auch &>> [zuerst &]. Deshalb meine Frage, ob das (wenn überhaupt) nicht >>& [& am Ende] heißen müsste.

Funktioniert bei mir auf jeden Fall nicht.

Marco_Jagodzinska

Anmeldungsdatum:
24. November 2011

Beiträge: 48

Die Lösung aus dem Artikel funktioniert bei mir übrigens super, sowohl stdout als stderr werden bei mir angehangen. (Und nicht wie man vielleicht erwarten würde, dass Fehler die Outputdatei überschreiben.)

1
./my_command.sh >> results.log 2>&1 

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13242

noisefloor schrieb:

ich hatte nur kurz bei Google nach >>& gesucht, da war in einem Thread auch von Bash 3 vs. 4 die Rede. Könntest du das dann im Artikel korrigieren?

Ich schaue mal, dass ich es am WE mache.

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13242

Aaah! Ich muss mich korrigieren: >& und >>& gibt es natürlich, aber nur in der bash, zsh und anderen. Ich verwende das nie, weil ich für Skripte immer die sh benutze, die nur den POSIX-Standard implementiert. Ich habe jetzt folgendes geändert:

  • List am Anfang um << usw. ergänzt und Link zum aktuellen POSIX-Standard eingefügt

  • Anmerkung zur Vererbung geöffneter Kanäle hinzugefügt

  • Warnung zum Überschreiben um "noclobber" ergänzt

  • Hinweis, dass &> nicht POSIX ist

  • Hinweis auf "noclobber" für interaktive Shells inklusive >|

  • Globale Umleitung für den Prozess ergänzt um Erläuterung, dass man damit wiederholtes Öffnen und Schließen der Datei vermeiden kann

  • Hinweis zum Schließen von Kanälen

  • Link zu Umleitungen im POSIX-Standard

Schaut mal bitte drüber, ob ich es nicht zu kompliziert gemacht habe.

noisefloor Team-Icon

(Themenstarter)

Anmeldungsdatum:
6. Juni 2006

Beiträge: 29567

Hallo,

IMHO ist das ok so.

Gruß, noisefloor

Antworten |