Ich habe diesen Befehl ausgeführt:
python ./manage.py dumpdata partyapp.InvitationTemplate > partyapp_dump.json
So speichern Sie Daten in der partyapp_dump.json
Datei. Alle Daten werden jedoch nur auf dem Bildschirm gedruckt und eine leere partyapp_dump.json
Datei wird erstellt.
Warum könnte das passieren? Ich habe getestet ls > partyapp_dump.json
und das hat perfekt funktioniert.
&>
Ihrer Information , funktioniert nur in Bash 4.0 und iirc neueren Versionen von zsh. Für eine tragbarere Lösungfoo > bar 2&>1
. Referenz: mywiki.wooledge.org/BashFAQ/014Ihre Python-App muss die Ausgabe auf den STDERR-Ausgabekanal anstatt auf das normale STDOUT schreiben. Mit dem Shell-Konstrukt werden
>
nur Daten abgefangen und umgeleitet, die in den Ausgabekanal geschrieben wurden. Tatsächlich können jedoch mehrere andere Kanäle gedruckt werden, wobei der häufigste der zweite ist, der normalerweise für Fehler verwendet wird.Sie können versuchen, STDERR (2. Kanal) auch so einzufangen:
Das
2>&1
Konstrukt verbindet den Ausgabestream für Fehler mit dem normalen Ausgabekanal. Es ist ungewöhnlich, dass ein Programm eine Ausgabe generiert, die Sie auf dem Fehlerkanal erfassen möchten. Normalerweise ist dies für Debug-Informationen und nicht für Anwendungsdaten reserviert. Bitte verwenden Sie dieses Skript mit einem gewissen Vorsicht , da es in einer Nicht-Standard - Art und Weise verhalten.Sie können die Ausgabe- und Fehlerkanäle auch in verschiedene Dateien wie folgt kopieren:
quelle
Zusätzlich zu der bereits vorgeschlagenen Erklärung für die Ausgabe von stderr vs stdout kann Ihre Anwendung diese beiden Streams einfach ignorieren und explizit "/ dev / tty" für ihre Ausgabe öffnen.
quelle
Wenn die
noclobber
bash-Option aktiviert ist, schlägt die Umleitung fehl (wenn auch nicht im Hintergrund), wenn die Zieldatei bereits vorhanden ist.Verwenden Sie diese Option, um
cmd >| file
das Überschreiben einer vorhandenen Datei zu erzwingen.quelle
Wenn Sie sich verlaufen haben, können Sie immer versuchen, es mit strace auszuführen, um zu sehen, was die Prozesse tun:
quelle
strace
.